discover-2.1.2/0002755002342100234210000000000010655642005012005 5ustar pereperediscover-2.1.2/README0000644002342100234210000000165710266266027012700 0ustar perepere$Progeny$ This package contains a library and front-end program for retrieving information about a system's hardware. It uses system-dependent code to scan the hardware and system-independent code to query XML data sources for information about said hardware, the latter being the bulk of the work. The Discover program provides a full interface to the hardware-querying functionality of the library, but not the lower levels. Other programs may be introduced in the future to provide access to these other layers (for querying the XML data sources separately from the system's hardware, for example). The Discover package comes with no data of its own. Data files are distributed by Progeny and possibly by others. See for details. If you have checked out the discover module from CVS, you will need to configure the build environment. See buildtools/README and doctools/README for details. discover-2.1.2/configure.ac0000644002342100234210000003052010655641025014272 0ustar perepere# Copyright 2002 Hewlett-Packard Company # Copyright 2002 Progeny Linux Systems, Inc. # # 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 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 # THE COPYRIGHT HOLDER(S) 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. AC_INIT(discover, 2.1.2, [debian-boot@lists.debian.org]) AC_REVISION([$Progeny$]) AC_PREREQ(2.53) # There's a bug in autoconf 2.53 when creating # abs_top_builddir from top_builddir. We have autoconf in our CVS # repository, where this bug has been fixed. GNU cvs has a similar fix, # but lots of other changes. AC_CONFIG_AUX_DIR(buildtools) AC_CONFIG_HEADERS(config.h) AC_CONFIG_SRCDIR(config.h.in) AC_COPYRIGHT([Copyright 2002 Progeny Linux Systems, Inc.]) # Set variables for canonical build, host, and target system type. AC_CANONICAL_BUILD() AC_CANONICAL_HOST() AC_CANONICAL_TARGET() ############################################################################### # Versioning # LT_CURRENT is the major version number of the library (SONAME). It # must be incremented every time an incompatible change is made. When # LT_CURRENT is incremented, PACKAGE_MAJOR must also be incremented # (and PACKAGE_{MINOR,MICRO} reset to 0). LT_CURRENT and # PACKAGE_MAJOR must always be equal. # LT_{REVISION,AGE} are not related to PACKAGE_{MINOR,MICRO}. The # former are managed according to libtool's versioning spec and the # latter according to Progeny release policy. # Package version PACKAGE_MAJOR=2 PACKAGE_MINOR=1 PACKAGE_MICRO=0 # Library version LT_CURRENT=2 LT_REVISION=1 LT_AGE=0 ############################################################################### # Arguments AC_ARG_WITH(default-url, [ --with-default-url=FOO Use FOO for the default data source URL.], DISCOVER_DEFAULT_URL=${withval} ) AC_ARG_WITH(pcmcia-headers, [ --with-pcmcia-headers=DIR Directory containing PCMCIA headers like ], if test x$withval = xyes; then AC_MSG_ERROR([--with-pcmcia-headers must be given a pathname.]) else pcmcia_headers=${withval} fi ) AC_ARG_WITH(sysdeps, [ --with-sysdeps=FOO Use the code in the directory FOO for system-dependent interfaces.], SYSDEPS=sysdeps/${withval} if test $withval = linux; then LINUXSYSDEP=libsysdeps.la else STUBSYSDEP=libsysdeps.la fi ) AC_ARG_ENABLE(curl, [ --enable-curl Use curl to read configuration and hardware data.], ENABLE_CURL=$enableval, ENABLE_CURL=probe ) ############################################################################### # Checks for programs AC_PROG_CC_STDC() AC_PROG_CPP() AC_PROG_INSTALL() if test "${INSTALL_DIR}" = ""; then INSTALL_DIR="${INSTALL} -m 755 -d" fi AC_PROG_LIBTOOL() if test "${DOXYGEN}" = ''; then AC_PATH_PROG(DOXYGEN, doxygen, false) fi if test "${CURL_CONFIG}" = ''; then AC_PATH_TOOL(CURL_CONFIG, curl-config, false) fi ############################################################################### # Checks for libraries and functions PROGENY_REPLACE_FUNCS() AC_HEADER_DIRENT() AC_CHECK_HEADER(expat.h, , AC_MSG_ERROR([Can't find expat.h.])) AC_CHECK_LIB(expat, XML_ParserCreate, , AC_MSG_ERROR([Can't find expat library.])) # curl if test "${ENABLE_CURL}" '!=' "no"; then AC_DEFINE(HAVE_LIBCURL, 1, [Define to 1 if you have the `curl' library (-lcurl).]) # Unfortunately, curl-config --libs returns both LDFLAGS and LIBS # and it would be difficult to separate them. Just dump it all into # LIBS. AC_MSG_CHECKING([for curl libs]) curl_libs=`${CURL_CONFIG} --libs` if test $? -ne 0; then AC_MSG_ERROR([curl-config --libs failed.]) fi # More curl workarounds. Adding the system include path with -I and/or # system library path with -L causes problems on some systems. curl_libs=`echo ${curl_libs} | sed -e 's|-L/usr/lib||g'` AC_MSG_RESULT(${curl_libs}) # Yet more curl madness. curl-config --cflags returns CPPFLAGS only, so # let's put it into CPPFLAGS where it belongs. AC_MSG_CHECKING([for curl cflags]) curl_cflags=`${CURL_CONFIG} --cflags` if test $? -ne 0; then AC_MSG_ERROR([curl-config --cflags failed.]) fi curl_cflags=`echo ${curl_cflags} | sed -e 's|-I/usr/include||g'` AC_MSG_RESULT(${curl_cflags}) LIBS="${LIBS} ${curl_libs}" CPPFLAGS="${CPPFLAGS} ${curl_cflags}" fi # check AM_PATH_CHECK(0.8.2, , true) if test "x${CHECK_LIBS}" = "x"; then # Try to reassure the user after check's stupid error message. echo "You will not be able to run the test suite, no worries." fi ############################################################################### # Miscellaneous AC_C_BIGENDIAN if test ${datadir} = '${prefix}/share'; then if test "${prefix}" = "NONE"; then DATADIR="${ac_default_prefix}/share" else DATADIR="${prefix}/share" fi else DATADIR="${datadir}" fi if test ${sysconfdir} = '${prefix}/etc'; then if test "${prefix}" = "NONE"; then SYSCONFDIR="${ac_default_prefix}/etc" else SYSCONFDIR="${prefix}/etc" fi else SYSCONFDIR="${sysconfdir}" fi if test "x${DISCOVER_DEFAULT_URL}" = "x"; then DISCOVER_DEFAULT_URL=file://${DATADIR}/${PACKAGE_NAME}/list.xml fi case ${target_os} in linux*) if test "x${SYSDEPS}" = "x"; then SYSDEPS=sysdeps/linux LINUXSYSDEP=libsysdeps.la fi if test "${SYSDEPS}" = "sysdeps/linux"; then AC_DEFINE(_GNU_SOURCE, 1, [Enable all GNU extensions.]) PATH_PROC_IDE="/proc/ide" PATH_PROC_PCI="/proc/bus/pci/devices" PATH_PROC_PCI_DIR=`dirname $PATH_PROC_PCI` PATH_SYS_PCI="/sys/bus/pci/devices" PATH_PROC_SCSI="/proc/scsi/scsi" PATH_PROC_USB="/proc/bus/usb/devices" AC_DEFINE_UNQUOTED(PATH_PROC_IDE, "$PATH_PROC_IDE", [Define path to /proc/ide.]) AC_DEFINE_UNQUOTED(PATH_PROC_PCI, "$PATH_PROC_PCI", [Define path to /proc/bus/pci/devices.]) AC_DEFINE_UNQUOTED(PATH_PROC_PCI_DIR, "$PATH_PROC_PCI_DIR", [Define path to /proc/bus/pci.]) AC_DEFINE_UNQUOTED(PATH_SYS_PCI, "$PATH_SYS_PCI", [Define path to /sys/bus/pci/devices.]) AC_DEFINE_UNQUOTED(PATH_PROC_SCSI, "$PATH_PROC_SCSI", [Define path to /proc/scsi/scsi.]) AC_DEFINE_UNQUOTED(PATH_PROC_USB, "$PATH_PROC_USB", [Define path to /proc/bus/usb/devices.]) if test "x${pcmcia_headers}" = "x"; then # found=no # for pcmcia_headers in "/lib/modules/`uname -r`/build/include" \ # "/usr/src/kernel-headers-`uname -r`/include" \ # /usr/src/linux*/include \ # /usr/local/src/linux*/include # do # AC_MSG_CHECKING([for PCMCIA headers in ${pcmcia_headers}]) # if test -f "${pcmcia_headers}/pcmcia/version.h"; then # found=yes # AC_MSG_RESULT([yes]) # break # else # AC_MSG_RESULT([no]) # fi # done # if test ${found} = no; then # AC_MSG_ERROR([Could not find PCMCIA headers.]) # fi pcmcia_headers="`cd ${srcdir} && pwd`/${SYSDEPS}" else AC_MSG_CHECKING([for PCMCIA headers in ${pcmcia_headers}]) if ! test -f "${pcmcia_headers}/pcmcia/version.h"; then AC_MSG_RESULT([no]) AC_MSG_ERROR([No PCMCIA headers in ${pcmcia_headers} .]) else AC_MSG_RESULT([yes]) fi fi CPPFLAGS="${CPPFLAGS} -I${pcmcia_headers}" fi ;; *) if test "x${SYSDEPS}" = "x"; then SYSDEPS=sysdeps/stub STUBSYSDEP=libsysdeps.la fi ;; esac AC_MSG_CHECKING([for sysdeps in ${SYSDEPS}]) if test -f ${srcdir}/${SYSDEPS}/Makefile.in; then AC_MSG_RESULT([yes]) else AC_MSG_ERROR([Could not find ${SYSDEPS}.]) fi # For discover-config(1). export_LIBS="-ldiscover ${LIBS}" case ${prefix} in NONE) export_CPPFLAGS="-I${ac_default_prefix}/include" export_LDFLAGS="-L${ac_default_prefix}/lib -Wl,-R${ac_default_prefix}/lib" ;; /usr) export_CPPFLAGS="" export_LDFLAGS="" ;; *) export_CPPFLAGS="-I${prefix}/include" export_LDFLAGS="-L${prefix}/lib -Wl,-R${prefix}/lib" esac ############################################################################### # Output CPPFLAGS="${CPPFLAGS} -I\${top_srcdir} -I\${top_builddir}" CPPFLAGS="${CPPFLAGS} -I\${top_srcdir}/include" LTLIBOBJS=`echo "$LIB@&t@OBJS" | sed 's,\.[[^.]]* ,.lo ,g;s,\.[[^.]]*$,.lo,'` AC_DEFINE_UNQUOTED(DISCOVER_DEFAULT_URL, "${DISCOVER_DEFAULT_URL}", [Define URL for default list of data files.]) # 'TARGET' sounds like a potential namespace collision, so prefix it. AC_DEFINE_UNQUOTED(DISCOVER_TARGET, "${target}", [Target CPU, vendor, and OS]) AC_DEFINE_UNQUOTED(PACKAGE_MAJOR, ${PACKAGE_MAJOR}, [Discover major version number]) AC_DEFINE_UNQUOTED(PACKAGE_MINOR, ${PACKAGE_MINOR}, [Discover minor version number]) AC_DEFINE_UNQUOTED(PACKAGE_MICRO, ${PACKAGE_MICRO}, [Discover micro version number]) AC_DEFINE_UNQUOTED(SYSCONFDIR, "${SYSCONFDIR}", [Path to system configuration directory]) AC_SUBST(PACKAGE_MAJOR) AC_SUBST(PACKAGE_MINOR) AC_SUBST(PACKAGE_MICRO) AC_SUBST(LT_CURRENT) AC_SUBST(LT_REVISION) AC_SUBST(LT_AGE) AC_SUBST(INSTALL_DIR) AC_SUBST(LIBS) AC_SUBST(LTLIBOBJS) AC_SUBST(SYSDEPS) AC_SUBST(LINUXSYSDEP) AC_SUBST(STUBSYSDEP) AC_SUBST(export_CPPFLAGS) AC_SUBST(export_LDFLAGS) AC_SUBST(export_LIBS) AC_SUBST(CURL_CONFIG) AC_SUBST(DISCOVER_DEFAULT_URL) PROGENY_CONFIG_SCRIPT(discover-config) PROGENY_CONFIG_SCRIPT_VAR(lt_current, ${LT_CURRENT}) PROGENY_CONFIG_SCRIPT_VAR(lt_revision, ${LT_REVISION}) PROGENY_CONFIG_SCRIPT_VAR(lt_age, ${LT_AGE}) # standard parameters PROGENY_SHOW_CONFIG() PROGENY_SHOW_CONFIG_VAR(CFLAGS, ${CFLAGS}) PROGENY_SHOW_CONFIG_VAR(CPPFLAGS, ${CPPFLAGS}) PROGENY_SHOW_CONFIG_VAR(LDFLAGS, ${LDFLAGS}) PROGENY_SHOW_CONFIG_VAR(LIBS, ${LIBS}) PROGENY_SHOW_CONFIG_VAR(LTLIBOBJS, ${LTLIBOBJS}) PROGENY_SHOW_CONFIG_VAR(DISCOVER_DEFAULT_URL, ${DISCOVER_DEFAULT_URL}) PROGENY_SHOW_CONFIG_VAR(SYSDEPS, ${SYSDEPS}) # OS-specific parameters case ${target_os} in linux*) if test "${SYSDEPS}" = "sysdeps/linux"; then PROGENY_SHOW_CONFIG_VAR(pcmcia_headers, ${pcmcia_headers}) fi ;; esac AC_CONFIG_FILES([ Makefile:buildtools/recur.mk:buildtools/build.mk:Makefile.in buildtools/Makefile discover/Makefile:buildtools/build.mk:discover/Makefile.in discover-xml/Makefile:buildtools/build.mk:discover-xml/Makefile.in doc/Makefile:buildtools/build.mk:doc/Makefile.in doctools/Makefile etc/Makefile:buildtools/build.mk:etc/Makefile.in portability/Makefile include/Makefile:buildtools/recur.mk:buildtools/build.mk:include/Makefile.in include/discover/Makefile:buildtools/build.mk:include/discover/Makefile.in lib/Makefile:buildtools/build.mk:lib/Makefile.in scripts/Makefile:buildtools/build.mk:scripts/Makefile.in sysdeps/Makefile:buildtools/build.mk:sysdeps/Makefile.in:buildtools/recur.mk sysdeps/linux/Makefile:buildtools/recur.mk:buildtools/build.mk:sysdeps/linux/Makefile.in sysdeps/linux/pcmcia/Makefile:buildtools/build.mk:sysdeps/linux/pcmcia/Makefile.in sysdeps/stub/Makefile:buildtools/build.mk:sysdeps/stub/Makefile.in tests/Makefile:buildtools/build.mk:tests/Makefile.in ]) AC_OUTPUT() discover-2.1.2/RELEASE0000644002342100234210000000404410266266027013014 0ustar perepereRelease notes for Discover 2.0 17 Oct 2002 ----------------------------------------------- Copyright 2002 Progeny Linux Systems, Inc. Please see the LICENSE file for licensing information. Further license-related information is also contained in the manual. This is the initial release of Discover 2.0, which replaces Discover 1 (which in turn was an extensive rewrite of Mandrake's detect software). Discover 1 was widely used only on Debian-based systems, but Discover 2 is targeted at a much broader audience, including non-Linux platforms. The command-line syntax for Discover 2.0 is quite different from that of Discover 1. Any software that used the original Discover command-line utility to report hardware information must be updated for Discover 2. One of the more subtle changes between Discover 1 and Discover 2 is the remapping of some busclasses: sound has become audio, video has become display. There is still a video busclass; however, it now represents video-capturing devices rather than display devices. The error handling in Discover is inadequate. Without the verbose flag to the discover executable, no errors are printed on the screen; even with the flag, libdiscover returns only a limited amount of error data through its status structure. The sysdeps are currently written for Linux only. There is a stubs section of the sysdep directory. This is to provide a base on which to build new sysdeps. Discover 2.0 was designed to be a versatile, multiple-platform querying tool, and additional sysdeps will always be welcome. The Linux sysdeps can be found in the linux subdirectory. As of 2.0, the ATA busclass sysdep is not working properly, so Discover does not support ATA. Linux has a rather unique way of reporting ATA device information, but the busclass should become available in the near future. The SCSI and PCMCIA busclasses are currently suffering from a lack of good data. There is a limited amount of data currently present; it was used mostly for testing purposes. Please feel free to contribute data for these busclasses. discover-2.1.2/Makefile.in0000644002342100234210000000426310266266027014061 0ustar perepere# $Progeny$ # Autoconf defines top_builddir to an empty string at the top-level # when srcdir == builddir, so we need to redefine distdir. distdir= ${builddir}/${distname} SUBDIR= buildtools doctools portability etc doc scripts \ sysdeps include lib discover tests discover-xml all: @${MAKE} __recur TARGET=$@ check test: all @cd tests && ${MAKE} check ############################################################################### # Clean distclean_FILES= Makefile config.h config.log config.status libtool maintainer_clean_FILES= aclocal.m4 autom4te.cache config.h.in configure clean: @${MAKE} __recur TARGET=$@ # Recursion should always happen first so that commands executed in # this directory are distinguishable from commands executed in the # last subdirectory, but this one must be an exception because this # Makefile is removed. distclean: @${MAKE} __recur TARGET=$@ rm -rf ${distclean_FILES} maintainer-clean: @${MAKE} __recur TARGET=$@ rm -rf ${distclean_FILES} ${maintainer_clean_FILES} ############################################################################### # Installation install: @${MAKE} __recur TARGET=$@ ${INSTALL_DATA} ${srcdir}/discover.dtd \ ${DESTDIR}${datadir}/discover/dtd/discover.dtd uninstall: @${MAKE} __recur TARGET=$@ rm -f ${DESTDIR}${datadir}/discover/dtd/discover.dtd ############################################################################### # Distribution DISTFILES= Makefile.in config.h.in configure configure.ac \ AUTHORS INSTALL LICENSE README RELEASE discover.dtd \ package.ent dist: ${distname}.tar.bz2 distdir: ${distdir} distcheck: ${distname}.tar.bz2 ${top_srcdir}/buildtools/distcheck ${distname} ${distname}.tar.bz2: ${distdir} ${top_srcdir}/buildtools/dist ${distname} ${distdir}: ${DISTFILES} ${top_srcdir}/buildtools/distdir ${distdir} ${DISTFILES} @${MAKE} __recur TARGET=distdir ############################################################################### # Development aids aclocal.m4: aclibs ${top_srcdir}/buildtools/setup aclocal config.h.in: aclocal.m4 configure.ac ${top_srcdir}/buildtools/setup autoheader configure: aclocal.m4 config.h.in configure.ac ${top_srcdir}/buildtools/setup autoconf discover-2.1.2/AUTHORS0000644002342100234210000000261310266266027013061 0ustar perepere$Progeny$ Written and maintained by Progeny Linux Systems, Inc. Eric Gillespie G. Branden Robinson John R. Daily Josh Bressers The code in sysdeps/linux was taken from MandrakeSoft's detect library and listed the following people in the AUTHORS file: Main programmers: Alexandre Dussart Bernhard Rosenkraenzer(fixes, clean pcmcia) Felipe Rivera Marquez(fixes, clean, others, docs) Jamie Fifield(bug fixes, smp detection) Philippe Chauvat(fixes, clean, ports) Andrew Post(fixes) Stefan Siegel(fixes, cleanups, scanner, scsi, tape) Additional help: Dan Helfman(debian packaging) Balazs Scheidler(configure scripts) Christophe Romain(bug fixes) Eric Dumas(bug fixes, cleanup) Michael Vogt(bug fixes) Pablo Saratxaga(i18n) Martin Mares(pci) discover-2.1.2/scripts/0002755002342100234210000000000010655642004013473 5ustar pereperediscover-2.1.2/scripts/discover-pkginstall0000755002342100234210000001056610655637375017432 0ustar perepere#! /bin/sh # $Progeny$ # Copyright 2002 Hewlett-Packard Company # Copyright 2004 Progeny Linux Systems, Inc. # Copyright 2006 Petter Reinholdtsen # # Based on discover-modprobe, modified to install debian packages instead # # 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 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 # THE COPYRIGHT HOLDER(S) 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. set -e # Make sure the debconf question is asked in a sub-process, to avoid # locking the debconf database when installing packages. if [ true = "$DISCOVER_PKGINSTALL_ASKING" ] ; then . /usr/share/debconf/confmodule pkglist="`echo $@ | sed 's/ /, /g'`" db_subst discover/install_hw_packages PACKAGES "$pkglist" db_set discover/install_hw_packages "$pkglist" db_fset discover/install_hw_packages seen false db_input medium discover/install_hw_packages || [ $? -eq 30 ] db_go db_get discover/install_hw_packages db_stop echo $RET | sed 's/,//g' 1>&15 exit 0 fi # Too bad we don't have something like sysexits.h for POSIX sh... EX_USAGE=64 # These defaults are only used if discover-config can not be found. # This is the case if /usr isn't mounted yet. sysconfdir=/etc discover=discover types="all" if [ -x /usr/bin/discover-config ]; then sysconfdir="$(discover-config --sysconfdir)" fi if [ -x /sbin/discover ]; then discover=/sbin/discover elif [ -x /usr/bin/discover ]; then discover=/usr/bin/discover elif [ -x /bin/discover-static ]; then discover=/bin/discover-static fi conf="${sysconfdir}/discover-pkginstall.conf" [ -e ${conf} ] && . "${conf}" usage () { cat <$tempfile packages=$(cat $tempfile) rm $tempfile if [ "$packages" ] ; then $nop aptitude install -y $packages assist_modules fi fi else ${verbose} && echo "No hardware specific packages found for this machine" fi exit 0 discover-2.1.2/scripts/Makefile.in0000644002342100234210000000244410475517302015544 0ustar perepere# $Progeny$ all: ${srcdir}/discover-modprobe ${srcdir}/init ############################################################################### # Clean clean_FILES= #none distclean_FILES= Makefile clean: distclean: rm -rf ${clean_FILES} ${distclean_FILES} maintainer-clean: rm -rf ${clean_FILES} ${distclean_FILES} ############################################################################### # Installation install: ${srcdir}/discover-modprobe ${srcdir}/discover-pkginstall install-init ${INSTALL_DIR} ${DESTDIR}${sbindir} ${INSTALL_SCRIPT} ${srcdir}/discover-modprobe \ ${DESTDIR}${sbindir}/discover-modprobe ${INSTALL_SCRIPT} ${srcdir}/discover-pkginstall \ ${DESTDIR}${sbindir}/discover-pkginstall install-init: ${srcdir}/init ${INSTALL_DIR} ${DESTDIR}${datadir}/discover ${INSTALL_SCRIPT} ${srcdir}/init ${DESTDIR}${datadir}/discover/init-discover uninstall: # uninstall-init rm -f ${DESTDIR}${sbindir}/discover-modprobe rm -f ${DESTDIR}${sbindir}/discover-pkginstall uninstall-init: rm -f ${DESTDIR}${sysconfdir}/init.d/discover ############################################################################### # Distribution DISTFILES= Makefile.in discover-modprobe init discover-pkginstall distdir: ${DISTFILES} ${top_srcdir}/buildtools/distdir ${distdir}/${_THISDIR_} ${DISTFILES} discover-2.1.2/scripts/init0000644002342100234210000000102510470336535014361 0ustar perepere#!/bin/sh -e ### BEGIN INIT INFO # Provides: discover # Required-Start: mountvirtfs checkroot $local_fs # Required-Stop: # Default-Start: S 1 2 3 4 5 # Default-Stop: 0 6 ### END INIT INFO # $Progeny$ test -x /sbin/discover-modprobe || exit 0 case "$1" in start|restart) if [ "$VERBOSE" = "no" ] ; then discover-modprobe else discover-modprobe -v fi ;; stop|reload|force-reload) exit 0 ;; *) echo "usage: /etc/init.d/discover [start|stop|force-reload]" exit 1 esac discover-2.1.2/scripts/discover-modprobe0000755002342100234210000001162610470336314017047 0ustar perepere#! /bin/sh # $Progeny$ # Copyright 2002 Hewlett-Packard Company # Copyright 2004 Progeny Linux Systems, Inc. # # 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 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 # THE COPYRIGHT HOLDER(S) 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. # Too bad we don't have something like sysexits.h for POSIX sh... EX_USAGE=64 # These defaults are only used if discover-config can not be found. # This is the case if /usr isn't mounted yet. sysconfdir=/etc localstatedir=/lib discover=discover if [ -x /usr/bin/discover-config ]; then sysconfdir="$(discover-config --sysconfdir)" localstatedir="$(discover-config --localstatedir)" fi if [ -x /sbin/discover ]; then discover=/sbin/discover elif [ -x /usr/bin/discover ]; then discover=/usr/bin/discover elif [ -x /bin/discover-static ]; then discover=/bin/discover-static fi conf="${sysconfdir}/discover-modprobe.conf" crashdir="${localstatedir}/discover" crashfile="${crashdir}/crash" . "${conf}" if [ -f /lib/lsb/init-functions ]; then . /lib/lsb/init-functions else log_begin_msg() { echo "$@"; } log_success_msg() { echo "$@"; } log_warning_msg() { echo "$@"; } fi . /etc/default/rcS [ -d "${crashdir}" ] || mkdir -p "${crashdir}" skip () { echo ${skip} | grep -q $1 return $? } usage () { cat < /dev/null 2>&1 if [ $? -eq 1 ]; then module_details_uniq="${module_details_uniq} ${module_info}" fi done module_details=${module_details_uniq} ${verbose} && log_begin_msg "Discovering hardware: ${module_details}" if [ -f "${crashfile}" ]; then # The system crashed trying to load a module during the last boot # cycle, so add an appropriate "skip" line to # ${sysconfdir}/discover.conf. crashmodule=$(cat "${crashfile}") printf 'skip="${skip} %s"\n' ${crashmodule} >> "${conf}" rm -f "${crashfile}" sync fi # Load the modules. for module_info in ${module_details}; do module_name=$(echo ${module_info} | sed 's/^\([^ ]\+\).*/\1/') if [ ${module_name} = "ignore" ] || [ ${module_name} = "unknown" ]; then continue fi if skip ${module_name}; then ${verbose} && log_warning_msg "Skipping ${module_name}; edit ${conf} to re-enable it." continue fi if ! (modprobe -l "${module_name}*" | grep -q -E "${module_name}\.o|${module_name}\.ko"); then ${verbose} && log_warning_msg "Skipping ${module_name}; assuming it is compiled into the kernel." continue fi if is_loaded ${module_name} ; then log_warning_msg "Skipping Module ${module_name}. It's already loaded." >&2 continue fi ${verbose} && log_begin_msg "Loading ${module_info}:" # Note the module being loaded in "${crashfile}". If loading the # module crashes the machine, this file will exist at the next # boot, and we'll add an appropriate "skip" line to # discover-modprobe.conf so we don't try to load it again. echo ${module_name} > "${crashfile}" sync ${nop} modprobe ${module_info} # The module loaded without incident, so we can safely remove the crash # file. rm -f "${crashfile}" sync done exit 0 discover-2.1.2/sysdeps/0002755002342100234210000000000010655642004013476 5ustar pereperediscover-2.1.2/sysdeps/Makefile.in0000644002342100234210000000137510470336315015547 0ustar perepere# $Progeny$ SUBDIR= linux stub all: @${MAKE} __recur TARGET=$@ ############################################################################### # Clean distclean_FILES= Makefile clean: @${MAKE} __recur TARGET=$@ distclean: @${MAKE} __recur TARGET=$@ rm -rf ${distclean_FILES} maintainer-clean: @${MAKE} __recur TARGET=$@ rm -rf ${distclean_FILES} ############################################################################### # Installation install: @${MAKE} __recur TARGET=$@ uninstall: @${MAKE} __recur TARGET=$@ ############################################################################### # Distribution DISTFILES= Makefile.in distdir: ${top_srcdir}/buildtools/distdir ${distdir}/${_THISDIR_} ${DISTFILES} @${MAKE} __recur TARGET=$@ discover-2.1.2/sysdeps/stub/0002755002342100234210000000000010655642004014453 5ustar pereperediscover-2.1.2/sysdeps/stub/Makefile.in0000644002342100234210000000154010266266026016522 0ustar perepere# $Progeny$ all: @STUBSYSDEP@ ############################################################################### # Build SOURCES= stubs.c OBJS= stubs.lo libsysdeps.la: ${OBJS} ${LTLINK} -o $@ ${OBJS} ############################################################################### # Clean clean_FILES= libsysdeps.la ${OBJS} distclean_FILES= Makefile clean: ${LTCLEAN} ${clean_FILES} distclean: clean ${LTCLEAN} ${clean_FILES} ${distclean_FILES} maintainer-clean: ${LTCLEAN} ${clean_FILES} ${distclean_FILES} ############################################################################### # Installation install: uninstall: ############################################################################### # Distribution DISTFILES= Makefile.in ${SOURCES} distdir: ${DISTFILES} ${top_srcdir}/buildtools/distdir ${distdir}/${_THISDIR_} ${DISTFILES} discover-2.1.2/sysdeps/stub/stubs.c0000644002342100234210000000474110513646220015760 0ustar perepere/* $Progeny$ */ /** * @file stubs.c * @brief Stub system-dependent code * * This file represents a dummy OS-dependent hardware interface. These * routines are the skeleton structure that must be followed to * allow Discover to operate on multiple architectures. */ /* stubs.c -- Stubs for Discover device scan routines * * Copyright 2002 Progeny Linux Systems, Inc. * Copyright 2002 Hewlett-Packard Company * * 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 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 * THE COPYRIGHT HOLDER(S) 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. */ #include #include #include /* For NULL */ /** * @defgroup sysdeps System-dependent interfaces * @{ */ /** * Get the list of ATA devices, scanning the bus if necessary. */ discover_sysdep_data_t * _discover_get_ata_raw(void) { return NULL; } /** * Get the list of PCI devices, scanning the bus if necessary. */ discover_sysdep_data_t * _discover_get_pci_raw(void) { return NULL; } /** * Get the list of PCMCIA devices, scanning the bus if necessary. */ discover_sysdep_data_t * _discover_get_pcmcia_raw(void) { return NULL; } /** * Get the list of SCSI devices, scanning the bus if necessary. */ discover_sysdep_data_t * _discover_get_scsi_raw(void) { return NULL; } /** * Get the list of USB devices, scanning the bus if necessary. */ discover_sysdep_data_t * _discover_get_usb_raw(void) { return NULL; } /** @} */ /* * Local variables: * c-file-style: "progeny" * indent-tabs-mode: nil * End: */ /* vim: set cin fo=tcroq sw=4 et sts=4 tw=75: */ discover-2.1.2/sysdeps/linux/0002755002342100234210000000000010655642004014635 5ustar pereperediscover-2.1.2/sysdeps/linux/pcmcia.c0000644002342100234210000001344010266266026016241 0ustar perepere/* $Progeny$ */ /* pcmcia.c - Scan the PCMCIA bus * * Copyright 2002 Hewlett-Packard Company * Copyright 2001, 2002 Progeny Linux Systems, Inc. * Copyright (C) 1998-2000 MandrakeSoft * * This file is derived from "cardctl.c" from the pcmcia-cs distribution. * * Modifications by MandrakeSoft and Progeny Linux Systems, Inc. are * licensed as follows: * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * */ /*====================================================================== PCMCIA device control program cardctl.c 1.43 1998/12/07 06:04:32 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 initial developer of the original code is David A. Hinds . Portions created by David A. Hinds are Copyright (C) 1999 David A. Hinds. All Rights Reserved. Alternatively, the contents of this file may be used under the terms of the GNU General 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. ======================================================================*/ #include "config.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include /* XXX: There's no reason for this to be global. */ static int major = 0; static int lookup_dev(char *name){ FILE *f; int n; char s[32], t[32]; f = fopen("/proc/devices", "r"); if(f == NULL){ return -errno; } /*endif*/ while(fgets(s, 32, f) != NULL){ if(sscanf(s, "%d %s", &n, t) == 2){ if(strcmp(name, t) == 0){ break; } /*endif*/ } /*endif*/ } /*endwhile*/ fclose(f); if (strcmp(name, t) == 0){ return n; }else{ return -ENODEV; } /*endif*/ } /*endfunc lookup_dev*/ static int open_sock(int sock) { int fd; char *fn; dev_t dev = (major<<8) + sock; if((fn = tmpnam(NULL)) == NULL){ return -1; } /*endif*/ if(mknod(fn, (S_IFCHR|S_IREAD|S_IWRITE), dev) != 0){ return -1; } /*endif*/ fd = open(fn, O_RDONLY); unlink(fn); return fd; } static int get_tuple(int fd, cisdata_t code, ds_ioctl_arg_t *arg){ arg->tuple.DesiredTuple = code; arg->tuple.Attributes = TUPLE_RETURN_COMMON; arg->tuple.TupleOffset = 0; if((ioctl(fd, DS_GET_FIRST_TUPLE, arg) == 0) && (ioctl(fd, DS_GET_TUPLE_DATA, arg) == 0) && (ioctl(fd, DS_PARSE_TUPLE, arg) == 0)){ return 0; }else{ return -1; } /*endif*/ } /*endfunc get_tuple*/ #define MAX_SOCKS 8 /* * This function is specific to each sysdep. */ static void _discover_sysdep_init(discover_sysdep_data_t *node) { node->vendor = _discover_xmalloc(5); node->model = _discover_xmalloc(5); } discover_sysdep_data_t * _discover_get_pcmcia_raw(void) { int fd, ns; ds_ioctl_arg_t arg; cistpl_manfid_t *manfid = &arg.tuple_parse.parse.manfid; discover_sysdep_data_t *head = NULL, *node, *last = NULL; unsigned int id; major = lookup_dev("pcmcia"); if (major < 0) { /* We don't have a PCMCIA driver. */ return NULL; } for (ns = 0; ns < MAX_SOCKS; ns++) { fd = open_sock(ns); if (fd < 0) { break; } if (get_tuple(fd, CISTPL_MANFID, &arg) == 0) { node = _discover_sysdep_data_new(); _discover_sysdep_init(node); id = (manfid->manf * 0x10000) + manfid->card; sprintf(node->vendor, "%04x", id >> 16); sprintf(node->model, "%04x", id & 0xffff); #if 0 /* XXX: Do we have a way to extract this? */ node->busclass = ???; #endif if (head == NULL) { head = node; last = head; } else { last->next = node; last = node; } } close(fd); } return head; } /* * Local variables: * c-file-style: "progeny" * indent-tabs-mode: nil * End: */ /* vim: set cin fo=tcroq sw=4 et sts=4 tw=75: */ discover-2.1.2/sysdeps/linux/Makefile.in0000644002342100234210000000203310513646220016673 0ustar perepere# $Progeny$ SUBDIR= pcmcia all: @LINUXSYSDEP@ ############################################################################### # Build SOURCES= ata.c pci.c pcmcia.c usb.c scsi.c OBJS= ata.lo pci.lo pcmcia.lo usb.lo scsi.lo libsysdeps.la: ${OBJS} ${LTLINK} -o $@ ${OBJS} ############################################################################### # Clean clean_FILES= libsysdeps.la ${OBJS} distclean_FILES= Makefile clean: @${MAKE} __recur TARGET=$@ ${LTCLEAN} ${clean_FILES} distclean: clean @${MAKE} __recur TARGET=$@ ${LTCLEAN} ${clean_FILES} ${distclean_FILES} maintainer-clean: @${MAKE} __recur TARGET=$@ ${LTCLEAN} ${clean_FILES} ${distclean_FILES} ############################################################################### # Installation install: uninstall: ############################################################################### # Distribution DISTFILES= Makefile.in ${SOURCES} distdir: ${DISTFILES} ${top_srcdir}/buildtools/distdir ${distdir}/${_THISDIR_} ${DISTFILES} @${MAKE} __recur TARGET=$@ discover-2.1.2/sysdeps/linux/pci.c0000644002342100234210000002350010470336315015552 0ustar perepere/* $Progeny$ */ /* pci.c - Scan the PCI bus * * AUTHOR: John R. Daily * * Copyright 2002 Hewlett-Packard Company * Copyright 2001, 2002 Progeny Linux Systems, Inc. * Copyright (C) 1998-2000 MandrakeSoft * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #include "config.h" #include #include #include #include #include #include #include #include #include #include /* * We just need a path length sufficiently long for paths like * /proc/bus/pci/02/07.0 */ #ifdef _MAX_PATH_LEN #undef _MAX_PATH_LEN #endif #define _MAX_PATH_LEN 256 /* * This function is specific to each sysdep. */ static void _discover_sysdep_init(discover_sysdep_data_t *node) { node->busclass = _discover_xmalloc(5); node->vendor = _discover_xmalloc(5); node->model = _discover_xmalloc(5); } discover_sysdep_data_t * _discover_get_pci_raw_proc(void) { FILE *devices_file; int individual_device_file; char *line = NULL; size_t len = 0; discover_sysdep_data_t *head = NULL, *node, *last = NULL; unsigned int i; unsigned int bus; unsigned int slot; unsigned int function; unsigned int sfcombo; /* Slot/function combination byte */ char file_path[_MAX_PATH_LEN]; u_int16_t devtype; if ((devices_file = fopen(PATH_PROC_PCI, "r"))) { while (getline(&line, &len, devices_file) >= 0) { if (line[0] == '\n' || line[0] == '#') { continue; } node = _discover_sysdep_data_new(); _discover_sysdep_init(node); if (sscanf(line, "%02x%02x\t%4s%4s", &bus, &sfcombo, node->vendor, node->model) != 4) { perror("Failed to read expected data from devices file"); exit(-1); } /* * The first 5 bits of the 2nd bite refer to the slot in the * PCI bus where this device can be found. The last 3 bits * describe the function this card is performing in this * context. */ slot = (sfcombo & 0xf8) >> 3; function = (sfcombo & 0x7); /* * Now we can read the busclass from the individual PCI file * in /proc/bus/pci//. and extract the * device type. */ if (snprintf(file_path, _MAX_PATH_LEN, "%s/%02x/%02x.%1x", PATH_PROC_PCI_DIR, bus, slot, function) >= _MAX_PATH_LEN) { fprintf(stderr, "Path to PCI device file too long.\n"); exit(-1); } /* We use open instead of fopen because fopen will give us * a buffered file which causes a read-ahead. On some * devices reading undefined parts of the PCI * configuration causes the system to crash. */ individual_device_file = open(file_path, O_RDONLY); if (individual_device_file == -1) { perror("Unable to locate device file"); exit(-1); } lseek(individual_device_file, 5 * sizeof(u_int16_t), SEEK_SET); if (read(individual_device_file, &devtype, sizeof(u_int16_t)) != sizeof(u_int16_t)) { perror("Unable to read device type from file"); exit(-1); } close(individual_device_file); #ifdef WORDS_BIGENDIAN /* If we're on a big-endian machine, then convert DEVTYPE to little-endian so we don't have mismatches. */ devtype = ((devtype << 8) & 0xff00) | ((devtype >> 8) & 0xff); #endif /* WORD_BIGENDIAN */ snprintf(node->busclass, 5, "%.4x", devtype); if (head == NULL) { head = node; last = head; } else { last->next = node; last = node; } } free(line); fclose(devices_file); } return head; } discover_sysdep_data_t * _discover_get_pci_raw_sys(void) { discover_sysdep_data_t *head = NULL, *node, *last = NULL; FILE *f; DIR *pciDir; struct dirent *pci_device_entry; unsigned int len; char *device_dir, *line, *class, *vendor, *model, *p; char **device_dir_list = NULL; size_t device_dir_list_len, device_dir_index, device_dir_index2; char path[256]; /* Open the directory containing all the PCI device dirs. */ pciDir = opendir(PATH_SYS_PCI); if (pciDir == NULL) return _discover_get_pci_raw_proc(); /* * The order of links in PATH_SYS_PCI is not sorted. Since * module load order can affect things like device naming, * we should collect the device directory names and sort them. * We need to sort so that we mimic the order provided in * PATH_PROC_PCI, so upgrades from 2.4 to 2.6 aren't affected. * (Perniciously, the unsorted order in PATH_SYS_PCI seems to be * the exact opposite of that in PATH_PROC_PCI, thus guaranteeing * that modules will be loaded in the opposite order without a sort.) */ for (pci_device_entry = readdir(pciDir); pci_device_entry; pci_device_entry = readdir(pciDir)) { device_dir = strdup(pci_device_entry->d_name); if (device_dir == NULL) continue; if (device_dir[0] == '.') { free(device_dir); continue; } if (device_dir_list == NULL) { device_dir_list = (char **)malloc(sizeof(char *)); device_dir_list_len = 1; } else { device_dir_list = (char **)realloc(device_dir_list, sizeof(char *) * ++device_dir_list_len); } if (device_dir_list != NULL) { device_dir_list[device_dir_list_len - 1] = device_dir; } else { free(device_dir); } } closedir(pciDir); if (device_dir_list == NULL) return _discover_get_pci_raw_proc(); /* Do the sort. */ /* XXX: this turns out to not quite mimic the order we need. */ /* qsort(device_dir_list, device_dir_list_len, sizeof(char *), strcmp); */ /* For now, observe the pernicious nature of /sys and reverse the raw unsorted order. */ device_dir_index = 0; device_dir_index2 = device_dir_list_len - 1; while (device_dir_index < device_dir_index2) { device_dir = device_dir_list[device_dir_index]; device_dir_list[device_dir_index] = device_dir_list[device_dir_index2]; device_dir_list[device_dir_index2] = device_dir; device_dir_index++; device_dir_index2--; } /* Loop through the PCI device dirs. */ class = vendor = model = NULL; for (device_dir_index = 0; device_dir_index < device_dir_list_len; device_dir_index++) { device_dir = device_dir_list[device_dir_index]; if (device_dir == NULL) continue; /* Clean up from tne last loop, if necessary. */ if (class) { free(class); class = NULL; } if (vendor) { free(vendor); vendor = NULL; } if (model) { free(model); model = NULL; } /* Read each of the three files holding the busclass, vendor, and model information. */ snprintf(path, 256, "%s/%s/class", PATH_SYS_PCI, device_dir); f = fopen(path, "r"); if (!f) continue; getline(&class, &len, f); fclose(f); class[6] = '\0'; for (p = class; *(p + 2) != '\0'; p++) *p = *(p + 2); *p = '\0'; snprintf(path, 256, "%s/%s/vendor", PATH_SYS_PCI, device_dir); f = fopen(path, "r"); if (!f) continue; getline(&vendor, &len, f); fclose(f); vendor[6] = '\0'; for (p = vendor; *(p + 2) != '\0'; p++) *p = *(p + 2); *p = '\0'; snprintf(path, 256, "%s/%s/device", PATH_SYS_PCI, device_dir); f = fopen(path, "r"); if (!f) continue; getline(&model, &len, f); fclose(f); model[6] = '\0'; for (p = model; *(p + 2) != '\0'; p++) *p = *(p + 2); *p = '\0'; /* Create a new sysdep node and populate it. */ node = _discover_sysdep_data_new(); if (!node) continue; node->busclass = class; node->vendor = vendor; node->model = model; class = vendor = model = NULL; /* Stick the new node in the list. */ if (head == NULL) { head = node; last = head; } else { last->next = node; last = node; } /* Clean up the directory list memory as we go. */ free(device_dir); } free(device_dir_list); return head; } discover_sysdep_data_t * _discover_get_pci_raw(void) { if (!access(PATH_SYS_PCI, R_OK)) return _discover_get_pci_raw_sys(); else return _discover_get_pci_raw_proc(); } /* * Local variables: * c-file-style: "progeny" * indent-tabs-mode: nil * End: */ /* vim: set cin fo=tcroq sw=4 et sts=4 tw=75: */ discover-2.1.2/sysdeps/linux/scsi.c0000644002342100234210000001104110266266026015741 0ustar perepere/* $Progeny$ */ /* scsi.c -- Scan the SCSI bus * * AUTHOR: John R. Daily * * Copyright 2002 Hewlett-Packard Company * Copyright 2001, 2002 Progeny Linux Systems, Inc. * Copyright (C) 1998-2000 MandrakeSoft * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #include "config.h" #include #include #include #include #include /* * The Linux kernel reports SCSI devices using human-readable names, * obliterating the original SCSI device type. We can undo some of * the damage, but not all of it. * * This list is taken from kernel 2.4.17, in drivers/scsi/scsi.c. */ char *scsi_kernel_mappings[] = { "Direct-Access", "Sequential-Access", "Printer", "Processor", "WORM", "CD-ROM", "Scanner", "Optical Device", "Medium Changer", "Communications", "Unknown", "Unknown", "Unknown", "Enclosure", NULL }; /* * This function is specific to each sysdep. */ static void _discover_sysdep_init(discover_sysdep_data_t *node) { node->busclass = _discover_xmalloc(2); node->vendor = _discover_xmalloc(9); node->model = _discover_xmalloc(17); } discover_sysdep_data_t * _discover_get_scsi_raw(void) { FILE *file; char *line2, *line3; char *type; char *vendor, *model; int i, found_one = 0; discover_sysdep_data_t *head = NULL, *node, *last = NULL; line2 = (char *)_discover_xmalloc(1024); if (line2 == NULL) { return NULL; } line3 = (char *)_discover_xmalloc(1024); if (line3 == NULL) { return NULL; } /********************************************************************/ /* Length of text fields in `/proc/scsi/scsi' */ /* - Type 17 chars */ /* - Vendor 8 chars */ /* - Model 16 chars */ /********************************************************************/ if((file = fopen(PATH_PROC_SCSI, "r")) == NULL){ free(line2); free(line3); return NULL; } fgets(line2, 500, file); if(strstr(line2, "Attached devices:") == NULL){ fclose(file); free(line2); free(line3); return NULL; } while((fgets(line2, 500, file) != NULL) && (fgets(line2, 500, file) != NULL) && (fgets(line3, 500, file) != NULL)) { node = _discover_sysdep_data_new(); _discover_sysdep_init(node); /* * We don't want trailing spaces to throw off the string * comparison. */ line2[18]='\0'; for(i = 17; line2[i] == ' '; i--) { line2[i] = '\0'; } line2[42]='\0'; for(i = 41; line2[i] == ' '; i--) { line2[i] = '\0'; } line3[27]='\0'; for(i = 26; line3[i] == ' '; i--) { line3[i] = '\0'; } type = line3 + 10; vendor = line2 + 10; model = line2 + 26; for (i = 0; scsi_kernel_mappings[i]; i++) { if (strncmp(type, scsi_kernel_mappings[i], strlen(scsi_kernel_mappings[i])) == 0) { sprintf(node->busclass, "%x", i); found_one = 1; } } if (!found_one) { /* One of the "unknown" classes */ node->busclass[0] = 'a'; } strcpy(node->vendor, vendor); strcpy(node->model, model); if (head == NULL) { head = node; last = head; } else { last->next = node; last = node; } } free(line2); free(line3); fclose(file); return head; } /* * Local variables: * c-file-style: "progeny" * indent-tabs-mode: nil * End: */ /* vim: set cin fo=tcroq sw=4 et sts=4 tw=75: */ discover-2.1.2/sysdeps/linux/pcmcia/0002755002342100234210000000000010655642004016071 5ustar pereperediscover-2.1.2/sysdeps/linux/pcmcia/ciscode.h0000644002342100234210000001000510266266026017651 0ustar perepere/* * ciscode.h 1.56 2002/10/25 06:37:30 * * 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 initial developer of the original code is David A. Hinds * . Portions created by David A. Hinds * are Copyright (C) 1999 David A. Hinds. All Rights Reserved. * * Alternatively, the contents of this file may be used under the * terms of the GNU General 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. */ #ifndef _LINUX_CISCODE_H #define _LINUX_CISCODE_H /* Manufacturer and Product ID codes */ #define MANFID_3COM 0x0101 #define PRODID_3COM_3CXEM556 0x0035 #define PRODID_3COM_3CCFEM556 0x0556 #define PRODID_3COM_3C562 0x0562 #define MANFID_ACCTON 0x01bf #define PRODID_ACCTON_EN2226 0x010a #define MANFID_ADAPTEC 0x012f #define PRODID_ADAPTEC_SCSI 0x0001 #define MANFID_ATT 0xffff #define PRODID_ATT_KIT 0x0100 #define MANFID_CONTEC 0xc001 #define MANFID_FUJITSU 0x0004 #define PRODID_FUJITSU_MBH10302 0x0004 #define PRODID_FUJITSU_MBH10304 0x1003 #define PRODID_FUJITSU_LA501 0x2000 #define MANFID_IBM 0x00a4 #define PRODID_IBM_HOME_AND_AWAY 0x002e #define MANFID_INTEL 0x0089 #define PRODID_INTEL_DUAL_RS232 0x0301 #define PRODID_INTEL_2PLUS 0x8422 #define MANFID_KME 0x0032 #define PRODID_KME_KXLC005_A 0x0704 #define PRODID_KME_KXLC005_B 0x2904 #define MANFID_LINKSYS 0x0143 #define PRODID_LINKSYS_PCMLM28 0xc0ab #define PRODID_LINKSYS_3400 0x3341 #define MANFID_MEGAHERTZ 0x0102 #define PRODID_MEGAHERTZ_VARIOUS 0x0000 #define PRODID_MEGAHERTZ_EM3288 0x0006 #define MANFID_MACNICA 0xc00b #define MANFID_MOTOROLA 0x0109 #define PRODID_MOTOROLA_MARINER 0x0501 #define MANFID_NATINST 0x010b #define PRODID_NATINST_QUAD_RS232 0xd180 #define MANFID_NEW_MEDIA 0x0057 #define MANFID_NOKIA 0x0124 #define PRODID_NOKIA_CARDPHONE 0x0900 #define MANFID_OLICOM 0x0121 #define PRODID_OLICOM_OC2231 0x3122 #define PRODID_OLICOM_OC2232 0x3222 #define MANFID_OMEGA 0x0137 #define PRODID_OMEGA_QSP_100 0x0025 #define MANFID_OSITECH 0x0140 #define PRODID_OSITECH_JACK_144 0x0001 #define PRODID_OSITECH_JACK_288 0x0002 #define PRODID_OSITECH_JACK_336 0x0007 #define PRODID_OSITECH_SEVEN 0x0008 #define MANFID_OXSEMI 0x0279 #define MANFID_PIONEER 0x000b #define MANFID_PSION 0x016c #define PRODID_PSION_NET100 0x0023 #define MANFID_QUATECH 0x0137 #define PRODID_QUATECH_SPP100 0x0003 #define PRODID_QUATECH_DUAL_RS232 0x0012 #define PRODID_QUATECH_DUAL_RS232_D1 0x0007 #define PRODID_QUATECH_DUAL_RS232_D2 0x0052 #define PRODID_QUATECH_QUAD_RS232 0x001b #define PRODID_QUATECH_DUAL_RS422 0x000e #define PRODID_QUATECH_QUAD_RS422 0x0045 #define MANFID_SMC 0x0108 #define PRODID_SMC_ETHER 0x0105 #define MANFID_SOCKET 0x0104 #define PRODID_SOCKET_DUAL_RS232 0x0006 #define PRODID_SOCKET_EIO 0x000a #define PRODID_SOCKET_LPE 0x000d #define PRODID_SOCKET_LPE_CF 0x0075 #define MANFID_SUNDISK 0x0045 #define MANFID_TDK 0x0105 #define PRODID_TDK_CF010 0x0900 #define PRODID_TDK_GN3410 0x4815 #define MANFID_TOSHIBA 0x0098 #define MANFID_UNGERMANN 0x02c0 #define MANFID_XIRCOM 0x0105 #endif /* _LINUX_CISCODE_H */ discover-2.1.2/sysdeps/linux/pcmcia/Makefile.in0000644002342100234210000000202210470336314020127 0ustar perepere# $Progeny: Makefile.in 4087 2004-02-13 01:36:47Z imurdock $ all: ############################################################################### # Build pcmcia_HEADERS= \ ${srcdir}/bulkmem.h \ ${srcdir}/ciscode.h \ ${srcdir}/cisreg.h \ ${srcdir}/cistpl.h \ ${srcdir}/cs.h \ ${srcdir}/cs_types.h \ ${srcdir}/ds.h \ ${srcdir}/ftl.h \ ${srcdir}/mem_op.h \ ${srcdir}/memory.h \ ${srcdir}/ss.h \ ${srcdir}/version.h \ ############################################################################### # Clean distclean_FILES= Makefile clean: distclean: ${LTCLEAN} ${distclean_FILES} maintainer-clean: ${LTCLEAN} ${distclean_FILES} ############################################################################### # Installation install: ############################################################################### # Distribution DISTFILES= Makefile.in ${pcmcia_HEADERS} distdir: ${DISTFILES} ${top_srcdir}/buildtools/distdir ${distdir}/${_THISDIR_} ${DISTFILES} discover-2.1.2/sysdeps/linux/pcmcia/ds.h0000644002342100234210000001201410266266026016650 0ustar perepere/* * ds.h 1.56 2000/06/12 21:55:40 * * 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 initial developer of the original code is David A. Hinds * . Portions created by David A. Hinds * are Copyright (C) 1999 David A. Hinds. All Rights Reserved. * * Alternatively, the contents of this file may be used under the * terms of the GNU General 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. */ #ifndef _LINUX_DS_H #define _LINUX_DS_H #include #include typedef struct tuple_parse_t { tuple_t tuple; cisdata_t data[255]; cisparse_t parse; } tuple_parse_t; typedef struct win_info_t { window_handle_t handle; win_req_t window; memreq_t map; } win_info_t; typedef struct bind_info_t { dev_info_t dev_info; u_char function; struct dev_link_t *instance; char name[DEV_NAME_LEN]; u_short major, minor; void *next; } bind_info_t; typedef struct mtd_info_t { dev_info_t dev_info; u_int Attributes; u_int CardOffset; } mtd_info_t; typedef union ds_ioctl_arg_t { servinfo_t servinfo; adjust_t adjust; config_info_t config; tuple_t tuple; tuple_parse_t tuple_parse; client_req_t client_req; cs_status_t status; conf_reg_t conf_reg; cisinfo_t cisinfo; region_info_t region; bind_info_t bind_info; mtd_info_t mtd_info; win_info_t win_info; cisdump_t cisdump; } ds_ioctl_arg_t; #define DS_GET_CARD_SERVICES_INFO _IOR ('d', 1, servinfo_t) #define DS_ADJUST_RESOURCE_INFO _IOWR('d', 2, adjust_t) #define DS_GET_CONFIGURATION_INFO _IOWR('d', 3, config_info_t) #define DS_GET_FIRST_TUPLE _IOWR('d', 4, tuple_t) #define DS_GET_NEXT_TUPLE _IOWR('d', 5, tuple_t) #define DS_GET_TUPLE_DATA _IOWR('d', 6, tuple_parse_t) #define DS_PARSE_TUPLE _IOWR('d', 7, tuple_parse_t) #define DS_RESET_CARD _IO ('d', 8) #define DS_GET_STATUS _IOWR('d', 9, cs_status_t) #define DS_ACCESS_CONFIGURATION_REGISTER _IOWR('d', 10, conf_reg_t) #define DS_VALIDATE_CIS _IOR ('d', 11, cisinfo_t) #define DS_SUSPEND_CARD _IO ('d', 12) #define DS_RESUME_CARD _IO ('d', 13) #define DS_EJECT_CARD _IO ('d', 14) #define DS_INSERT_CARD _IO ('d', 15) #define DS_GET_FIRST_REGION _IOWR('d', 16, region_info_t) #define DS_GET_NEXT_REGION _IOWR('d', 17, region_info_t) #define DS_REPLACE_CIS _IOWR('d', 18, cisdump_t) #define DS_GET_FIRST_WINDOW _IOR ('d', 19, win_info_t) #define DS_GET_NEXT_WINDOW _IOWR('d', 20, win_info_t) #define DS_GET_MEM_PAGE _IOWR('d', 21, win_info_t) #define DS_BIND_REQUEST _IOWR('d', 60, bind_info_t) #define DS_GET_DEVICE_INFO _IOWR('d', 61, bind_info_t) #define DS_GET_NEXT_DEVICE _IOWR('d', 62, bind_info_t) #define DS_UNBIND_REQUEST _IOW ('d', 63, bind_info_t) #define DS_BIND_MTD _IOWR('d', 64, mtd_info_t) #ifdef __KERNEL__ #include typedef struct dev_node_t { char dev_name[DEV_NAME_LEN]; u_short major, minor; struct dev_node_t *next; } dev_node_t; typedef struct dev_link_t { dev_node_t *dev; u_int state, open; wait_queue_head_t pending; client_handle_t handle; io_req_t io; irq_req_t irq; config_req_t conf; window_handle_t win; void *priv; struct dev_link_t *next; } dev_link_t; /* Flags for device state */ #define DEV_PRESENT 0x01 #define DEV_CONFIG 0x02 #define DEV_STALE_CONFIG 0x04 /* release on close */ #define DEV_STALE_LINK 0x08 /* detach on release */ #define DEV_CONFIG_PENDING 0x10 #define DEV_RELEASE_PENDING 0x20 #define DEV_SUSPEND 0x40 #define DEV_BUSY 0x80 #define DEV_OK(l) \ ((l) && ((l->state & ~DEV_BUSY) == (DEV_CONFIG|DEV_PRESENT))) extern struct bus_type pcmcia_bus_type; struct pcmcia_driver { int use_count; dev_link_t *(*attach)(void); void (*detach)(dev_link_t *); struct module *owner; struct device_driver drv; }; /* driver registration */ int pcmcia_register_driver(struct pcmcia_driver *driver); void pcmcia_unregister_driver(struct pcmcia_driver *driver); /* error reporting */ void cs_error(client_handle_t handle, int func, int ret); #endif /* __KERNEL__ */ #endif /* _LINUX_DS_H */ discover-2.1.2/sysdeps/linux/pcmcia/cs_types.h0000644002342100234210000000402410266266026020075 0ustar perepere/* * cs_types.h 1.18 2000/06/12 21:55:40 * * 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 initial developer of the original code is David A. Hinds * . Portions created by David A. Hinds * are Copyright (C) 1999 David A. Hinds. All Rights Reserved. * * Alternatively, the contents of this file may be used under the * terms of the GNU General 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. */ #ifndef _LINUX_CS_TYPES_H #define _LINUX_CS_TYPES_H #ifdef __KERNEL__ #include #else #include #endif #ifdef __arm__ typedef u_int ioaddr_t; #else typedef u_short ioaddr_t; #endif typedef u_short socket_t; typedef u_int event_t; typedef u_char cisdata_t; typedef u_short page_t; struct client_t; typedef struct client_t *client_handle_t; struct window_t; typedef struct window_t *window_handle_t; struct region_t; typedef struct region_t *memory_handle_t; struct eraseq_t; typedef struct eraseq_t *eraseq_handle_t; #ifndef DEV_NAME_LEN #define DEV_NAME_LEN 32 #endif typedef char dev_info_t[DEV_NAME_LEN]; #endif /* _LINUX_CS_TYPES_H */ discover-2.1.2/sysdeps/linux/pcmcia/cs.h0000644002342100234210000003317710266266026016664 0ustar perepere/* * cs.h 1.71 2000/08/29 00:54:20 * * 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 initial developer of the original code is David A. Hinds * . Portions created by David A. Hinds * are Copyright (C) 1999 David A. Hinds. All Rights Reserved. * * Alternatively, the contents of this file may be used under the * terms of the GNU General 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. */ #ifndef _LINUX_CS_H #define _LINUX_CS_H /* For AccessConfigurationRegister */ typedef struct conf_reg_t { u_char Function; u_int Action; off_t Offset; u_int Value; } conf_reg_t; /* Actions */ #define CS_READ 1 #define CS_WRITE 2 /* for AdjustResourceInfo */ typedef struct adjust_t { u_int Action; u_int Resource; u_int Attributes; union { struct memory { u_long Base; u_long Size; } memory; struct io { ioaddr_t BasePort; ioaddr_t NumPorts; u_int IOAddrLines; } io; struct irq { u_int IRQ; } irq; } resource; } adjust_t; /* Action field */ #define REMOVE_MANAGED_RESOURCE 1 #define ADD_MANAGED_RESOURCE 2 #define GET_FIRST_MANAGED_RESOURCE 3 #define GET_NEXT_MANAGED_RESOURCE 4 /* Resource field */ #define RES_MEMORY_RANGE 1 #define RES_IO_RANGE 2 #define RES_IRQ 3 /* Attribute field */ #define RES_IRQ_TYPE 0x03 #define RES_IRQ_TYPE_EXCLUSIVE 0 #define RES_IRQ_TYPE_TIME 1 #define RES_IRQ_TYPE_DYNAMIC 2 #define RES_IRQ_CSC 0x04 #define RES_SHARED 0x08 #define RES_RESERVED 0x10 #define RES_ALLOCATED 0x20 #define RES_REMOVED 0x40 typedef struct servinfo_t { char Signature[2]; u_int Count; u_int Revision; u_int CSLevel; char *VendorString; } servinfo_t; typedef struct event_callback_args_t { client_handle_t client_handle; void *info; void *mtdrequest; void *buffer; void *misc; void *client_data; } event_callback_args_t; /* for GetConfigurationInfo */ typedef struct config_info_t { u_char Function; u_int Attributes; u_int Vcc, Vpp1, Vpp2; u_int IntType; u_int ConfigBase; u_char Status, Pin, Copy, Option, ExtStatus; u_int Present; u_int CardValues; u_int AssignedIRQ; u_int IRQAttributes; ioaddr_t BasePort1; ioaddr_t NumPorts1; u_int Attributes1; ioaddr_t BasePort2; ioaddr_t NumPorts2; u_int Attributes2; u_int IOAddrLines; } config_info_t; /* For CardValues field */ #define CV_OPTION_VALUE 0x01 #define CV_STATUS_VALUE 0x02 #define CV_PIN_REPLACEMENT 0x04 #define CV_COPY_VALUE 0x08 #define CV_EXT_STATUS 0x10 /* For GetFirst/NextClient */ typedef struct client_req_t { socket_t Socket; u_int Attributes; } client_req_t; #define CLIENT_THIS_SOCKET 0x01 /* For RegisterClient */ typedef struct client_reg_t { dev_info_t *dev_info; u_int Attributes; u_int EventMask; int (*event_handler)(event_t event, int priority, event_callback_args_t *); event_callback_args_t event_callback_args; u_int Version; } client_reg_t; /* ModifyConfiguration */ typedef struct modconf_t { u_int Attributes; u_int Vcc, Vpp1, Vpp2; } modconf_t; /* Attributes for ModifyConfiguration */ #define CONF_IRQ_CHANGE_VALID 0x100 #define CONF_VCC_CHANGE_VALID 0x200 #define CONF_VPP1_CHANGE_VALID 0x400 #define CONF_VPP2_CHANGE_VALID 0x800 /* For RequestConfiguration */ typedef struct config_req_t { u_int Attributes; u_int Vcc, Vpp1, Vpp2; u_int IntType; u_int ConfigBase; u_char Status, Pin, Copy, ExtStatus; u_char ConfigIndex; u_int Present; } config_req_t; /* Attributes for RequestConfiguration */ #define CONF_ENABLE_IRQ 0x01 #define CONF_ENABLE_DMA 0x02 #define CONF_ENABLE_SPKR 0x04 #define CONF_VALID_CLIENT 0x100 /* IntType field */ #define INT_MEMORY 0x01 #define INT_MEMORY_AND_IO 0x02 #define INT_CARDBUS 0x04 #define INT_ZOOMED_VIDEO 0x08 /* For RequestIO and ReleaseIO */ typedef struct io_req_t { ioaddr_t BasePort1; ioaddr_t NumPorts1; u_int Attributes1; ioaddr_t BasePort2; ioaddr_t NumPorts2; u_int Attributes2; u_int IOAddrLines; } io_req_t; /* Attributes for RequestIO and ReleaseIO */ #define IO_SHARED 0x01 #define IO_FIRST_SHARED 0x02 #define IO_FORCE_ALIAS_ACCESS 0x04 #define IO_DATA_PATH_WIDTH 0x18 #define IO_DATA_PATH_WIDTH_8 0x00 #define IO_DATA_PATH_WIDTH_16 0x08 #define IO_DATA_PATH_WIDTH_AUTO 0x10 /* For RequestIRQ and ReleaseIRQ */ typedef struct irq_req_t { u_int Attributes; u_int AssignedIRQ; u_int IRQInfo1, IRQInfo2; void *Handler; void *Instance; } irq_req_t; /* Attributes for RequestIRQ and ReleaseIRQ */ #define IRQ_TYPE 0x03 #define IRQ_TYPE_EXCLUSIVE 0x00 #define IRQ_TYPE_TIME 0x01 #define IRQ_TYPE_DYNAMIC_SHARING 0x02 #define IRQ_FORCED_PULSE 0x04 #define IRQ_FIRST_SHARED 0x08 #define IRQ_HANDLE_PRESENT 0x10 #define IRQ_PULSE_ALLOCATED 0x100 /* Bits in IRQInfo1 field */ #define IRQ_MASK 0x0f #define IRQ_NMI_ID 0x01 #define IRQ_IOCK_ID 0x02 #define IRQ_BERR_ID 0x04 #define IRQ_VEND_ID 0x08 #define IRQ_INFO2_VALID 0x10 #define IRQ_LEVEL_ID 0x20 #define IRQ_PULSE_ID 0x40 #define IRQ_SHARE_ID 0x80 typedef struct eventmask_t { u_int Attributes; u_int EventMask; } eventmask_t; #define CONF_EVENT_MASK_VALID 0x01 /* Configuration registers present */ #define PRESENT_OPTION 0x001 #define PRESENT_STATUS 0x002 #define PRESENT_PIN_REPLACE 0x004 #define PRESENT_COPY 0x008 #define PRESENT_EXT_STATUS 0x010 #define PRESENT_IOBASE_0 0x020 #define PRESENT_IOBASE_1 0x040 #define PRESENT_IOBASE_2 0x080 #define PRESENT_IOBASE_3 0x100 #define PRESENT_IOSIZE 0x200 /* For GetMemPage, MapMemPage */ typedef struct memreq_t { u_int CardOffset; page_t Page; } memreq_t; /* For ModifyWindow */ typedef struct modwin_t { u_int Attributes; u_int AccessSpeed; } modwin_t; /* For RequestWindow */ typedef struct win_req_t { u_int Attributes; u_long Base; u_int Size; u_int AccessSpeed; } win_req_t; /* Attributes for RequestWindow */ #define WIN_ADDR_SPACE 0x0001 #define WIN_ADDR_SPACE_MEM 0x0000 #define WIN_ADDR_SPACE_IO 0x0001 #define WIN_MEMORY_TYPE 0x0002 #define WIN_MEMORY_TYPE_CM 0x0000 #define WIN_MEMORY_TYPE_AM 0x0002 #define WIN_ENABLE 0x0004 #define WIN_DATA_WIDTH 0x0018 #define WIN_DATA_WIDTH_8 0x0000 #define WIN_DATA_WIDTH_16 0x0008 #define WIN_DATA_WIDTH_32 0x0010 #define WIN_PAGED 0x0020 #define WIN_SHARED 0x0040 #define WIN_FIRST_SHARED 0x0080 #define WIN_USE_WAIT 0x0100 #define WIN_STRICT_ALIGN 0x0200 #define WIN_MAP_BELOW_1MB 0x0400 #define WIN_PREFETCH 0x0800 #define WIN_CACHEABLE 0x1000 #define WIN_BAR_MASK 0xe000 #define WIN_BAR_SHIFT 13 /* Attributes for RegisterClient */ #define INFO_MASTER_CLIENT 0x01 #define INFO_IO_CLIENT 0x02 #define INFO_MTD_CLIENT 0x04 #define INFO_MEM_CLIENT 0x08 #define MAX_NUM_CLIENTS 3 #define INFO_CARD_SHARE 0x10 #define INFO_CARD_EXCL 0x20 typedef struct cs_status_t { u_char Function; event_t CardState; event_t SocketState; } cs_status_t; typedef struct error_info_t { int func; int retcode; } error_info_t; /* Special stuff for binding drivers to sockets */ typedef struct bind_req_t { struct pcmcia_socket *Socket; u_char Function; dev_info_t *dev_info; } bind_req_t; /* Flag to bind to all functions */ #define BIND_FN_ALL 0xff typedef struct mtd_bind_t { struct pcmcia_socket *Socket; u_int Attributes; u_int CardOffset; dev_info_t *dev_info; } mtd_bind_t; /* Events */ #define CS_EVENT_PRI_LOW 0 #define CS_EVENT_PRI_HIGH 1 #define CS_EVENT_WRITE_PROTECT 0x000001 #define CS_EVENT_CARD_LOCK 0x000002 #define CS_EVENT_CARD_INSERTION 0x000004 #define CS_EVENT_CARD_REMOVAL 0x000008 #define CS_EVENT_BATTERY_DEAD 0x000010 #define CS_EVENT_BATTERY_LOW 0x000020 #define CS_EVENT_READY_CHANGE 0x000040 #define CS_EVENT_CARD_DETECT 0x000080 #define CS_EVENT_RESET_REQUEST 0x000100 #define CS_EVENT_RESET_PHYSICAL 0x000200 #define CS_EVENT_CARD_RESET 0x000400 #define CS_EVENT_REGISTRATION_COMPLETE 0x000800 #define CS_EVENT_RESET_COMPLETE 0x001000 #define CS_EVENT_PM_SUSPEND 0x002000 #define CS_EVENT_PM_RESUME 0x004000 #define CS_EVENT_INSERTION_REQUEST 0x008000 #define CS_EVENT_EJECTION_REQUEST 0x010000 #define CS_EVENT_MTD_REQUEST 0x020000 #define CS_EVENT_ERASE_COMPLETE 0x040000 #define CS_EVENT_REQUEST_ATTENTION 0x080000 #define CS_EVENT_CB_DETECT 0x100000 #define CS_EVENT_3VCARD 0x200000 #define CS_EVENT_XVCARD 0x400000 /* Return codes */ #define CS_SUCCESS 0x00 #define CS_BAD_ADAPTER 0x01 #define CS_BAD_ATTRIBUTE 0x02 #define CS_BAD_BASE 0x03 #define CS_BAD_EDC 0x04 #define CS_BAD_IRQ 0x06 #define CS_BAD_OFFSET 0x07 #define CS_BAD_PAGE 0x08 #define CS_READ_FAILURE 0x09 #define CS_BAD_SIZE 0x0a #define CS_BAD_SOCKET 0x0b #define CS_BAD_TYPE 0x0d #define CS_BAD_VCC 0x0e #define CS_BAD_VPP 0x0f #define CS_BAD_WINDOW 0x11 #define CS_WRITE_FAILURE 0x12 #define CS_NO_CARD 0x14 #define CS_UNSUPPORTED_FUNCTION 0x15 #define CS_UNSUPPORTED_MODE 0x16 #define CS_BAD_SPEED 0x17 #define CS_BUSY 0x18 #define CS_GENERAL_FAILURE 0x19 #define CS_WRITE_PROTECTED 0x1a #define CS_BAD_ARG_LENGTH 0x1b #define CS_BAD_ARGS 0x1c #define CS_CONFIGURATION_LOCKED 0x1d #define CS_IN_USE 0x1e #define CS_NO_MORE_ITEMS 0x1f #define CS_OUT_OF_RESOURCE 0x20 #define CS_BAD_HANDLE 0x21 #define CS_BAD_TUPLE 0x40 #ifdef __KERNEL__ /* * The main Card Services entry point */ enum service { AccessConfigurationRegister, AddSocketServices, AdjustResourceInfo, CheckEraseQueue, CloseMemory, CopyMemory, DeregisterClient, DeregisterEraseQueue, GetCardServicesInfo, GetClientInfo, GetConfigurationInfo, GetEventMask, GetFirstClient, GetFirstPartion, GetFirstRegion, GetFirstTuple, GetNextClient, GetNextPartition, GetNextRegion, GetNextTuple, GetStatus, GetTupleData, MapLogSocket, MapLogWindow, MapMemPage, MapPhySocket, MapPhyWindow, ModifyConfiguration, ModifyWindow, OpenMemory, ParseTuple, ReadMemory, RegisterClient, RegisterEraseQueue, RegisterMTD, RegisterTimer, ReleaseConfiguration, ReleaseExclusive, ReleaseIO, ReleaseIRQ, ReleaseSocketMask, ReleaseWindow, ReplaceSocketServices, RequestConfiguration, RequestExclusive, RequestIO, RequestIRQ, RequestSocketMask, RequestWindow, ResetCard, ReturnSSEntry, SetEventMask, SetRegion, ValidateCIS, VendorSpecific, WriteMemory, BindDevice, BindMTD, ReportError, SuspendCard, ResumeCard, EjectCard, InsertCard, ReplaceCIS, GetFirstWindow, GetNextWindow, GetMemPage }; #ifdef IN_CARD_SERVICES extern int CardServices(int func, void *a1, void *a2, void *a3); #else extern int CardServices(int func, ...); #endif int pcmcia_access_configuration_register(client_handle_t handle, conf_reg_t *reg); int pcmcia_bind_device(bind_req_t *req); int pcmcia_bind_mtd(mtd_bind_t *req); int pcmcia_deregister_client(client_handle_t handle); int pcmcia_get_configuration_info(client_handle_t handle, config_info_t *config); int pcmcia_get_card_services_info(servinfo_t *info); int pcmcia_get_first_client(client_handle_t *handle, client_req_t *req); int pcmcia_get_next_client(client_handle_t *handle, client_req_t *req); int pcmcia_get_window(window_handle_t *handle, int idx, win_req_t *req); int pcmcia_get_first_window(window_handle_t *win, win_req_t *req); int pcmcia_get_next_window(window_handle_t *win, win_req_t *req); int pcmcia_get_status(client_handle_t handle, cs_status_t *status); int pcmcia_get_mem_page(window_handle_t win, memreq_t *req); int pcmcia_map_mem_page(window_handle_t win, memreq_t *req); int pcmcia_modify_configuration(client_handle_t handle, modconf_t *mod); int pcmcia_modify_window(window_handle_t win, modwin_t *req); int pcmcia_register_client(client_handle_t *handle, client_reg_t *req); int pcmcia_release_configuration(client_handle_t handle); int pcmcia_release_io(client_handle_t handle, io_req_t *req); int pcmcia_release_irq(client_handle_t handle, irq_req_t *req); int pcmcia_release_window(window_handle_t win); int pcmcia_request_configuration(client_handle_t handle, config_req_t *req); int pcmcia_request_io(client_handle_t handle, io_req_t *req); int pcmcia_request_irq(client_handle_t handle, irq_req_t *req); int pcmcia_request_window(client_handle_t *handle, win_req_t *req, window_handle_t *wh); int pcmcia_reset_card(client_handle_t handle, client_req_t *req); int pcmcia_suspend_card(client_handle_t handle, client_req_t *req); int pcmcia_resume_card(client_handle_t handle, client_req_t *req); int pcmcia_eject_card(client_handle_t handle, client_req_t *req); int pcmcia_insert_card(client_handle_t handle, client_req_t *req); int pcmcia_set_event_mask(client_handle_t handle, eventmask_t *mask); int pcmcia_report_error(client_handle_t handle, error_info_t *err); struct pci_bus *pcmcia_lookup_bus(client_handle_t handle); /* rsrc_mgr.c */ int pcmcia_adjust_resource_info(client_handle_t handle, adjust_t *adj); #endif /* __KERNEL__ */ #endif /* _LINUX_CS_H */ discover-2.1.2/sysdeps/linux/pcmcia/ss.h0000644002342100234210000001527410266266026016702 0ustar perepere/* * ss.h 1.28 2000/06/12 21:55:40 * * 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 initial developer of the original code is David A. Hinds * . Portions created by David A. Hinds * are Copyright (C) 1999 David A. Hinds. All Rights Reserved. * * Alternatively, the contents of this file may be used under the * terms of the GNU General 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. */ #ifndef _LINUX_SS_H #define _LINUX_SS_H #include #include #include #include /* Definitions for card status flags for GetStatus */ #define SS_WRPROT 0x0001 #define SS_CARDLOCK 0x0002 #define SS_EJECTION 0x0004 #define SS_INSERTION 0x0008 #define SS_BATDEAD 0x0010 #define SS_BATWARN 0x0020 #define SS_READY 0x0040 #define SS_DETECT 0x0080 #define SS_POWERON 0x0100 #define SS_GPI 0x0200 #define SS_STSCHG 0x0400 #define SS_CARDBUS 0x0800 #define SS_3VCARD 0x1000 #define SS_XVCARD 0x2000 #define SS_PENDING 0x4000 #define SS_ZVCARD 0x8000 /* InquireSocket capabilities */ #define SS_CAP_PAGE_REGS 0x0001 #define SS_CAP_VIRTUAL_BUS 0x0002 #define SS_CAP_MEM_ALIGN 0x0004 #define SS_CAP_STATIC_MAP 0x0008 #define SS_CAP_PCCARD 0x4000 #define SS_CAP_CARDBUS 0x8000 /* for GetSocket, SetSocket */ typedef struct socket_state_t { u_int flags; u_int csc_mask; u_char Vcc, Vpp; u_char io_irq; } socket_state_t; extern socket_state_t dead_socket; /* Socket configuration flags */ #define SS_PWR_AUTO 0x0010 #define SS_IOCARD 0x0020 #define SS_RESET 0x0040 #define SS_DMA_MODE 0x0080 #define SS_SPKR_ENA 0x0100 #define SS_OUTPUT_ENA 0x0200 /* Flags for I/O port and memory windows */ #define MAP_ACTIVE 0x01 #define MAP_16BIT 0x02 #define MAP_AUTOSZ 0x04 #define MAP_0WS 0x08 #define MAP_WRPROT 0x10 #define MAP_ATTRIB 0x20 #define MAP_USE_WAIT 0x40 #define MAP_PREFETCH 0x80 /* Use this just for bridge windows */ #define MAP_IOSPACE 0x20 typedef struct pccard_io_map { u_char map; u_char flags; u_short speed; ioaddr_t start, stop; } pccard_io_map; typedef struct pccard_mem_map { u_char map; u_char flags; u_short speed; u_long sys_start, sys_stop; u_int card_start; } pccard_mem_map; typedef struct cb_bridge_map { u_char map; u_char flags; u_int start, stop; } cb_bridge_map; /* * Socket operations. */ struct pcmcia_socket; struct pccard_operations { int (*init)(struct pcmcia_socket *sock); int (*suspend)(struct pcmcia_socket *sock); int (*register_callback)(struct pcmcia_socket *sock, void (*handler)(void *, unsigned int), void * info); int (*get_status)(struct pcmcia_socket *sock, u_int *value); int (*get_socket)(struct pcmcia_socket *sock, socket_state_t *state); int (*set_socket)(struct pcmcia_socket *sock, socket_state_t *state); int (*set_io_map)(struct pcmcia_socket *sock, struct pccard_io_map *io); int (*set_mem_map)(struct pcmcia_socket *sock, struct pccard_mem_map *mem); }; /* * Calls to set up low-level "Socket Services" drivers */ struct pcmcia_socket; typedef struct erase_busy_t { eraseq_entry_t *erase; client_handle_t client; struct timer_list timeout; struct erase_busy_t *prev, *next; } erase_busy_t; typedef struct io_window_t { u_int Attributes; ioaddr_t BasePort, NumPorts; ioaddr_t InUse, Config; } io_window_t; #define WINDOW_MAGIC 0xB35C typedef struct window_t { u_short magic; u_short index; client_handle_t handle; struct pcmcia_socket *sock; u_long base; u_long size; pccard_mem_map ctl; } window_t; /* Maximum number of IO windows per socket */ #define MAX_IO_WIN 2 /* Maximum number of memory windows per socket */ #define MAX_WIN 4 struct config_t; struct region_t; struct pcmcia_socket { struct module *owner; spinlock_t lock; socket_state_t socket; u_int state; u_short functions; u_short lock_count; client_handle_t clients; pccard_mem_map cis_mem; u_char *cis_virt; struct config_t *config; struct { u_int AssignedIRQ; u_int Config; } irq; io_window_t io[MAX_IO_WIN]; window_t win[MAX_WIN]; struct region_t *c_region, *a_region; erase_busy_t erase_busy; struct list_head cis_cache; u_int fake_cis_len; char *fake_cis; struct list_head socket_list; struct completion socket_released; /* deprecated */ unsigned int sock; /* socket number */ /* socket capabilities */ u_int features; u_int irq_mask; u_int map_size; ioaddr_t io_offset; u_char pci_irq; struct pci_dev * cb_dev; /* socket operations */ struct pccard_operations * ops; /* Zoom video behaviour is so chip specific its not worth adding this to _ops */ void (*zoom_video)(struct pcmcia_socket *, int); /* state thread */ struct semaphore skt_sem; /* protects socket h/w state */ struct task_struct *thread; struct completion thread_done; wait_queue_head_t thread_wait; spinlock_t thread_lock; /* protects thread_events */ unsigned int thread_events; /* pcmcia (16-bit) */ struct pcmcia_bus_socket *pcmcia; /* cardbus (32-bit) */ #ifdef CONFIG_CARDBUS struct resource * cb_cis_res; u_char *cb_cis_virt; #endif /* socket device */ struct class_device dev; void *driver_data; /* data internal to the socket driver */ }; struct pcmcia_socket * pcmcia_get_socket_by_nr(unsigned int nr); extern void pcmcia_parse_events(struct pcmcia_socket *socket, unsigned int events); extern int pcmcia_register_socket(struct pcmcia_socket *socket); extern void pcmcia_unregister_socket(struct pcmcia_socket *socket); extern struct class pcmcia_socket_class; /* socket drivers are expected to use these callbacks in their .drv struct */ extern int pcmcia_socket_dev_suspend(struct device *dev, u32 state); extern int pcmcia_socket_dev_resume(struct device *dev); #endif /* _LINUX_SS_H */ discover-2.1.2/sysdeps/linux/pcmcia/ftl.h0000644002342100234210000000465410266266026017042 0ustar perepere/* * ftl.h 1.8 2000/06/12 21:55:40 * * 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 initial developer of the original code is David A. Hinds * . Portions created by David A. Hinds * are Copyright (C) 1999 David A. Hinds. All Rights Reserved. * * Alternatively, the contents of this file may be used under the * terms of the GNU General 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. */ #ifndef _LINUX_FTL_H #define _LINUX_FTL_H typedef struct erase_unit_header_t { u_char LinkTargetTuple[5]; u_char DataOrgTuple[10]; u_char NumTransferUnits; u_int EraseCount; u_short LogicalEUN; u_char BlockSize; u_char EraseUnitSize; u_short FirstPhysicalEUN; u_short NumEraseUnits; u_int FormattedSize; u_int FirstVMAddress; u_short NumVMPages; u_char Flags; u_char Code; u_int SerialNumber; u_int AltEUHOffset; u_int BAMOffset; u_char Reserved[12]; u_char EndTuple[2]; } erase_unit_header_t; /* Flags in erase_unit_header_t */ #define HIDDEN_AREA 0x01 #define REVERSE_POLARITY 0x02 #define DOUBLE_BAI 0x04 /* Definitions for block allocation information */ #define BLOCK_FREE(b) ((b) == 0xffffffff) #define BLOCK_DELETED(b) (((b) == 0) || ((b) == 0xfffffffe)) #define BLOCK_TYPE(b) ((b) & 0x7f) #define BLOCK_ADDRESS(b) ((b) & ~0x7f) #define BLOCK_NUMBER(b) ((b) >> 9) #define BLOCK_CONTROL 0x30 #define BLOCK_DATA 0x40 #define BLOCK_REPLACEMENT 0x60 #define BLOCK_BAD 0x70 #endif /* _LINUX_FTL_H */ discover-2.1.2/sysdeps/linux/pcmcia/cisreg.h0000644002342100234210000000723110266266026017523 0ustar perepere/* * cisreg.h 1.17 2000/06/12 21:55:41 * * 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 initial developer of the original code is David A. Hinds * . Portions created by David A. Hinds * are Copyright (C) 1999 David A. Hinds. All Rights Reserved. * * Alternatively, the contents of this file may be used under the * terms of the GNU General 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. */ #ifndef _LINUX_CISREG_H #define _LINUX_CISREG_H /* * Offsets from ConfigBase for CIS registers */ #define CISREG_COR 0x00 #define CISREG_CCSR 0x02 #define CISREG_PRR 0x04 #define CISREG_SCR 0x06 #define CISREG_ESR 0x08 #define CISREG_IOBASE_0 0x0a #define CISREG_IOBASE_1 0x0c #define CISREG_IOBASE_2 0x0e #define CISREG_IOBASE_3 0x10 #define CISREG_IOSIZE 0x12 /* * Configuration Option Register */ #define COR_CONFIG_MASK 0x3f #define COR_MFC_CONFIG_MASK 0x38 #define COR_FUNC_ENA 0x01 #define COR_ADDR_DECODE 0x02 #define COR_IREQ_ENA 0x04 #define COR_LEVEL_REQ 0x40 #define COR_SOFT_RESET 0x80 /* * Card Configuration and Status Register */ #define CCSR_INTR_ACK 0x01 #define CCSR_INTR_PENDING 0x02 #define CCSR_POWER_DOWN 0x04 #define CCSR_AUDIO_ENA 0x08 #define CCSR_IOIS8 0x20 #define CCSR_SIGCHG_ENA 0x40 #define CCSR_CHANGED 0x80 /* * Pin Replacement Register */ #define PRR_WP_STATUS 0x01 #define PRR_READY_STATUS 0x02 #define PRR_BVD2_STATUS 0x04 #define PRR_BVD1_STATUS 0x08 #define PRR_WP_EVENT 0x10 #define PRR_READY_EVENT 0x20 #define PRR_BVD2_EVENT 0x40 #define PRR_BVD1_EVENT 0x80 /* * Socket and Copy Register */ #define SCR_SOCKET_NUM 0x0f #define SCR_COPY_NUM 0x70 /* * Extended Status Register */ #define ESR_REQ_ATTN_ENA 0x01 #define ESR_REQ_ATTN 0x10 /* * CardBus Function Status Registers */ #define CBFN_EVENT 0x00 #define CBFN_MASK 0x04 #define CBFN_STATE 0x08 #define CBFN_FORCE 0x0c /* * These apply to all the CardBus function registers */ #define CBFN_WP 0x0001 #define CBFN_READY 0x0002 #define CBFN_BVD2 0x0004 #define CBFN_BVD1 0x0008 #define CBFN_GWAKE 0x0010 #define CBFN_INTR 0x8000 /* * Extra bits in the Function Event Mask Register */ #define FEMR_BAM_ENA 0x0020 #define FEMR_PWM_ENA 0x0040 #define FEMR_WKUP_MASK 0x4000 /* * Indirect Addressing Registers for Zoomed Video: these are addresses * in common memory space */ #define CISREG_ICTRL0 0x02 /* control registers */ #define CISREG_ICTRL1 0x03 #define CISREG_IADDR0 0x04 /* address registers */ #define CISREG_IADDR1 0x05 #define CISREG_IADDR2 0x06 #define CISREG_IADDR3 0x07 #define CISREG_IDATA0 0x08 /* data registers */ #define CISREG_IDATA1 0x09 #define ICTRL0_COMMON 0x01 #define ICTRL0_AUTOINC 0x02 #define ICTRL0_BYTEGRAN 0x04 #endif /* _LINUX_CISREG_H */ discover-2.1.2/sysdeps/linux/pcmcia/mem_op.h0000644002342100234210000000716210266266026017526 0ustar perepere/* * mem_op.h 1.13 2000/06/12 21:55:40 * * 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 initial developer of the original code is David A. Hinds * . Portions created by David A. Hinds * are Copyright (C) 1999 David A. Hinds. All Rights Reserved. * * Alternatively, the contents of this file may be used under the * terms of the GNU General 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. */ #ifndef _LINUX_MEM_OP_H #define _LINUX_MEM_OP_H #include #include /* If UNSAFE_MEMCPY is defined, we use the (optimized) system routines to copy between a card and kernel memory. These routines do 32-bit operations which may not work with all PCMCIA controllers. The safe versions defined here will do only 8-bit and 16-bit accesses. */ #ifdef UNSAFE_MEMCPY #define copy_from_pc memcpy_fromio #define copy_to_pc memcpy_toio static inline void copy_pc_to_user(void *to, const void *from, size_t n) { size_t odd = (n & 3); n -= odd; while (n) { put_user(__raw_readl(from), (int *)to); (char *)from += 4; (char *)to += 4; n -= 4; } while (odd--) put_user(readb((char *)from++), (char *)to++); } static inline void copy_user_to_pc(void *to, const void *from, size_t n) { int l; char c; size_t odd = (n & 3); n -= odd; while (n) { get_user(l, (int *)from); __raw_writel(l, to); (char *)to += 4; (char *)from += 4; n -= 4; } while (odd--) { get_user(c, (char *)from++); writeb(c, (char *)to++); } } #else /* UNSAFE_MEMCPY */ static inline void copy_from_pc(void *to, const void *from, size_t n) { size_t odd = (n & 1); n -= odd; while (n) { *(u_short *)to = __raw_readw(from); (char *)to += 2; (char *)from += 2; n -= 2; } if (odd) *(u_char *)to = readb(from); } static inline void copy_to_pc(void *to, const void *from, size_t n) { size_t odd = (n & 1); n -= odd; while (n) { __raw_writew(*(u_short *)from, to); (char *)to += 2; (char *)from += 2; n -= 2; } if (odd) writeb(*(u_char *)from, to); } static inline void copy_pc_to_user(void *to, const void *from, size_t n) { size_t odd = (n & 1); n -= odd; while (n) { put_user(__raw_readw(from), (short *)to); (char *)to += 2; (char *)from += 2; n -= 2; } if (odd) put_user(readb(from), (char *)to); } static inline void copy_user_to_pc(void *to, const void *from, size_t n) { short s; char c; size_t odd = (n & 1); n -= odd; while (n) { get_user(s, (short *)from); __raw_writew(s, to); (char *)to += 2; (char *)from += 2; n -= 2; } if (odd) { get_user(c, (char *)from); writeb(c, to); } } #endif /* UNSAFE_MEMCPY */ #endif /* _LINUX_MEM_OP_H */ discover-2.1.2/sysdeps/linux/pcmcia/memory.h0000644002342100234210000000315210266266026017555 0ustar perepere/* * memory.h 1.7 2000/06/12 21:55:40 * * 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 initial developer of the original code is David A. Hinds * . Portions created by David A. Hinds * are Copyright (C) 1999 David A. Hinds. All Rights Reserved. * * Alternatively, the contents of this file may be used under the * terms of the GNU General 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. */ #ifndef _LINUX_MEMORY_H #define _LINUX_MEMORY_H typedef struct erase_info_t { u_long Offset; u_long Size; } erase_info_t; #define MEMGETINFO _IOR('M', 1, region_info_t) #define MEMERASE _IOW('M', 2, erase_info_t) #endif /* _LINUX_MEMORY_H */ discover-2.1.2/sysdeps/linux/pcmcia/bulkmem.h0000644002342100234210000001331610266266026017704 0ustar perepere/* * Definitions for bulk memory services * * bulkmem.h 1.12 2000/06/12 21:55:41 * * 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 initial developer of the original code is David A. Hinds * . Portions created by David A. Hinds * are Copyright (C) 1999 David A. Hinds. All Rights Reserved. * * Alternatively, the contents of this file may be used under the * terms of the GNU General 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. * bulkmem.h 1.3 1995/05/27 04:49:49 */ #ifndef _LINUX_BULKMEM_H #define _LINUX_BULKMEM_H /* For GetFirstRegion and GetNextRegion */ typedef struct region_info_t { u_int Attributes; u_int CardOffset; u_int RegionSize; u_int AccessSpeed; u_int BlockSize; u_int PartMultiple; u_char JedecMfr, JedecInfo; memory_handle_t next; } region_info_t; #define REGION_TYPE 0x0001 #define REGION_TYPE_CM 0x0000 #define REGION_TYPE_AM 0x0001 #define REGION_PREFETCH 0x0008 #define REGION_CACHEABLE 0x0010 #define REGION_BAR_MASK 0xe000 #define REGION_BAR_SHIFT 13 /* For OpenMemory */ typedef struct open_mem_t { u_int Attributes; u_int Offset; } open_mem_t; /* Attributes for OpenMemory */ #define MEMORY_TYPE 0x0001 #define MEMORY_TYPE_CM 0x0000 #define MEMORY_TYPE_AM 0x0001 #define MEMORY_EXCLUSIVE 0x0002 #define MEMORY_PREFETCH 0x0008 #define MEMORY_CACHEABLE 0x0010 #define MEMORY_BAR_MASK 0xe000 #define MEMORY_BAR_SHIFT 13 typedef struct eraseq_entry_t { memory_handle_t Handle; u_char State; u_int Size; u_int Offset; void *Optional; } eraseq_entry_t; typedef struct eraseq_hdr_t { int QueueEntryCnt; eraseq_entry_t *QueueEntryArray; } eraseq_hdr_t; #define ERASE_QUEUED 0x00 #define ERASE_IN_PROGRESS(n) (((n) > 0) && ((n) < 0x80)) #define ERASE_IDLE 0xff #define ERASE_PASSED 0xe0 #define ERASE_FAILED 0xe1 #define ERASE_MISSING 0x80 #define ERASE_MEDIA_WRPROT 0x84 #define ERASE_NOT_ERASABLE 0x85 #define ERASE_BAD_OFFSET 0xc1 #define ERASE_BAD_TECH 0xc2 #define ERASE_BAD_SOCKET 0xc3 #define ERASE_BAD_VCC 0xc4 #define ERASE_BAD_VPP 0xc5 #define ERASE_BAD_SIZE 0xc6 /* For CopyMemory */ typedef struct copy_op_t { u_int Attributes; u_int SourceOffset; u_int DestOffset; u_int Count; } copy_op_t; /* For ReadMemory and WriteMemory */ typedef struct mem_op_t { u_int Attributes; u_int Offset; u_int Count; } mem_op_t; #define MEM_OP_BUFFER 0x01 #define MEM_OP_BUFFER_USER 0x00 #define MEM_OP_BUFFER_KERNEL 0x01 #define MEM_OP_DISABLE_ERASE 0x02 #define MEM_OP_VERIFY 0x04 /* For RegisterMTD */ typedef struct mtd_reg_t { u_int Attributes; u_int Offset; u_long MediaID; } mtd_reg_t; /* * Definitions for MTD requests */ typedef struct mtd_request_t { u_int SrcCardOffset; u_int DestCardOffset; u_int TransferLength; u_int Function; u_long MediaID; u_int Status; u_int Timeout; } mtd_request_t; /* Fields in MTD Function */ #define MTD_REQ_ACTION 0x003 #define MTD_REQ_ERASE 0x000 #define MTD_REQ_READ 0x001 #define MTD_REQ_WRITE 0x002 #define MTD_REQ_COPY 0x003 #define MTD_REQ_NOERASE 0x004 #define MTD_REQ_VERIFY 0x008 #define MTD_REQ_READY 0x010 #define MTD_REQ_TIMEOUT 0x020 #define MTD_REQ_LAST 0x040 #define MTD_REQ_FIRST 0x080 #define MTD_REQ_KERNEL 0x100 /* Status codes */ #define MTD_WAITREQ 0x00 #define MTD_WAITTIMER 0x01 #define MTD_WAITRDY 0x02 #define MTD_WAITPOWER 0x03 /* * Definitions for MTD helper functions */ /* For MTDModifyWindow */ typedef struct mtd_mod_win_t { u_int Attributes; u_int AccessSpeed; u_int CardOffset; } mtd_mod_win_t; /* For MTDSetVpp */ typedef struct mtd_vpp_req_t { u_char Vpp1, Vpp2; } mtd_vpp_req_t; /* For MTDRDYMask */ typedef struct mtd_rdy_req_t { u_int Mask; } mtd_rdy_req_t; enum mtd_helper { MTDRequestWindow, MTDModifyWindow, MTDReleaseWindow, MTDSetVpp, MTDRDYMask }; #ifdef IN_CARD_SERVICES extern int MTDHelperEntry(int func, void *a1, void *a2); #else extern int MTDHelperEntry(int func, ...); #endif int pcmcia_get_first_region(client_handle_t handle, region_info_t *rgn); int pcmcia_get_next_region(client_handle_t handle, region_info_t *rgn); int pcmcia_register_mtd(client_handle_t handle, mtd_reg_t *reg); int pcmcia_register_erase_queue(client_handle_t *handle, eraseq_hdr_t *header, eraseq_handle_t *e); int pcmcia_deregister_erase_queue(eraseq_handle_t eraseq); int pcmcia_check_erase_queue(eraseq_handle_t eraseq); int pcmcia_open_memory(client_handle_t *handle, open_mem_t *open, memory_handle_t *m); int pcmcia_close_memory(memory_handle_t handle); int pcmcia_read_memory(memory_handle_t handle, mem_op_t *req, caddr_t buf); int pcmcia_write_memory(memory_handle_t handle, mem_op_t *req, caddr_t buf); int pcmcia_copy_memory(memory_handle_t handle, copy_op_t *req); #endif /* _LINUX_BULKMEM_H */ discover-2.1.2/sysdeps/linux/pcmcia/cistpl.h0000644002342100234210000003742410266266026017554 0ustar perepere/* * cistpl.h 1.34 2000/06/19 23:18:12 * * 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 initial developer of the original code is David A. Hinds * . Portions created by David A. Hinds * are Copyright (C) 1999 David A. Hinds. All Rights Reserved. * * Alternatively, the contents of this file may be used under the * terms of the GNU General 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. */ #ifndef _LINUX_CISTPL_H #define _LINUX_CISTPL_H #define CISTPL_NULL 0x00 #define CISTPL_DEVICE 0x01 #define CISTPL_LONGLINK_CB 0x02 #define CISTPL_INDIRECT 0x03 #define CISTPL_CONFIG_CB 0x04 #define CISTPL_CFTABLE_ENTRY_CB 0x05 #define CISTPL_LONGLINK_MFC 0x06 #define CISTPL_BAR 0x07 #define CISTPL_PWR_MGMNT 0x08 #define CISTPL_EXTDEVICE 0x09 #define CISTPL_CHECKSUM 0x10 #define CISTPL_LONGLINK_A 0x11 #define CISTPL_LONGLINK_C 0x12 #define CISTPL_LINKTARGET 0x13 #define CISTPL_NO_LINK 0x14 #define CISTPL_VERS_1 0x15 #define CISTPL_ALTSTR 0x16 #define CISTPL_DEVICE_A 0x17 #define CISTPL_JEDEC_C 0x18 #define CISTPL_JEDEC_A 0x19 #define CISTPL_CONFIG 0x1a #define CISTPL_CFTABLE_ENTRY 0x1b #define CISTPL_DEVICE_OC 0x1c #define CISTPL_DEVICE_OA 0x1d #define CISTPL_DEVICE_GEO 0x1e #define CISTPL_DEVICE_GEO_A 0x1f #define CISTPL_MANFID 0x20 #define CISTPL_FUNCID 0x21 #define CISTPL_FUNCE 0x22 #define CISTPL_SWIL 0x23 #define CISTPL_END 0xff /* Layer 2 tuples */ #define CISTPL_VERS_2 0x40 #define CISTPL_FORMAT 0x41 #define CISTPL_GEOMETRY 0x42 #define CISTPL_BYTEORDER 0x43 #define CISTPL_DATE 0x44 #define CISTPL_BATTERY 0x45 #define CISTPL_FORMAT_A 0x47 /* Layer 3 tuples */ #define CISTPL_ORG 0x46 #define CISTPL_SPCL 0x90 typedef struct cistpl_longlink_t { u_int addr; } cistpl_longlink_t; typedef struct cistpl_checksum_t { u_short addr; u_short len; u_char sum; } cistpl_checksum_t; #define CISTPL_MAX_FUNCTIONS 8 #define CISTPL_MFC_ATTR 0x00 #define CISTPL_MFC_COMMON 0x01 typedef struct cistpl_longlink_mfc_t { u_char nfn; struct { u_char space; u_int addr; } fn[CISTPL_MAX_FUNCTIONS]; } cistpl_longlink_mfc_t; #define CISTPL_MAX_ALTSTR_STRINGS 4 typedef struct cistpl_altstr_t { u_char ns; u_char ofs[CISTPL_MAX_ALTSTR_STRINGS]; char str[254]; } cistpl_altstr_t; #define CISTPL_DTYPE_NULL 0x00 #define CISTPL_DTYPE_ROM 0x01 #define CISTPL_DTYPE_OTPROM 0x02 #define CISTPL_DTYPE_EPROM 0x03 #define CISTPL_DTYPE_EEPROM 0x04 #define CISTPL_DTYPE_FLASH 0x05 #define CISTPL_DTYPE_SRAM 0x06 #define CISTPL_DTYPE_DRAM 0x07 #define CISTPL_DTYPE_FUNCSPEC 0x0d #define CISTPL_DTYPE_EXTEND 0x0e #define CISTPL_MAX_DEVICES 4 typedef struct cistpl_device_t { u_char ndev; struct { u_char type; u_char wp; u_int speed; u_int size; } dev[CISTPL_MAX_DEVICES]; } cistpl_device_t; #define CISTPL_DEVICE_MWAIT 0x01 #define CISTPL_DEVICE_3VCC 0x02 typedef struct cistpl_device_o_t { u_char flags; cistpl_device_t device; } cistpl_device_o_t; #define CISTPL_VERS_1_MAX_PROD_STRINGS 4 typedef struct cistpl_vers_1_t { u_char major; u_char minor; u_char ns; u_char ofs[CISTPL_VERS_1_MAX_PROD_STRINGS]; char str[254]; } cistpl_vers_1_t; typedef struct cistpl_jedec_t { u_char nid; struct { u_char mfr; u_char info; } id[CISTPL_MAX_DEVICES]; } cistpl_jedec_t; typedef struct cistpl_manfid_t { u_short manf; u_short card; } cistpl_manfid_t; #define CISTPL_FUNCID_MULTI 0x00 #define CISTPL_FUNCID_MEMORY 0x01 #define CISTPL_FUNCID_SERIAL 0x02 #define CISTPL_FUNCID_PARALLEL 0x03 #define CISTPL_FUNCID_FIXED 0x04 #define CISTPL_FUNCID_VIDEO 0x05 #define CISTPL_FUNCID_NETWORK 0x06 #define CISTPL_FUNCID_AIMS 0x07 #define CISTPL_FUNCID_SCSI 0x08 #define CISTPL_SYSINIT_POST 0x01 #define CISTPL_SYSINIT_ROM 0x02 typedef struct cistpl_funcid_t { u_char func; u_char sysinit; } cistpl_funcid_t; typedef struct cistpl_funce_t { u_char type; u_char data[0]; } cistpl_funce_t; /*====================================================================== Modem Function Extension Tuples ======================================================================*/ #define CISTPL_FUNCE_SERIAL_IF 0x00 #define CISTPL_FUNCE_SERIAL_CAP 0x01 #define CISTPL_FUNCE_SERIAL_SERV_DATA 0x02 #define CISTPL_FUNCE_SERIAL_SERV_FAX 0x03 #define CISTPL_FUNCE_SERIAL_SERV_VOICE 0x04 #define CISTPL_FUNCE_SERIAL_CAP_DATA 0x05 #define CISTPL_FUNCE_SERIAL_CAP_FAX 0x06 #define CISTPL_FUNCE_SERIAL_CAP_VOICE 0x07 #define CISTPL_FUNCE_SERIAL_IF_DATA 0x08 #define CISTPL_FUNCE_SERIAL_IF_FAX 0x09 #define CISTPL_FUNCE_SERIAL_IF_VOICE 0x0a /* UART identification */ #define CISTPL_SERIAL_UART_8250 0x00 #define CISTPL_SERIAL_UART_16450 0x01 #define CISTPL_SERIAL_UART_16550 0x02 #define CISTPL_SERIAL_UART_8251 0x03 #define CISTPL_SERIAL_UART_8530 0x04 #define CISTPL_SERIAL_UART_85230 0x05 /* UART capabilities */ #define CISTPL_SERIAL_UART_SPACE 0x01 #define CISTPL_SERIAL_UART_MARK 0x02 #define CISTPL_SERIAL_UART_ODD 0x04 #define CISTPL_SERIAL_UART_EVEN 0x08 #define CISTPL_SERIAL_UART_5BIT 0x01 #define CISTPL_SERIAL_UART_6BIT 0x02 #define CISTPL_SERIAL_UART_7BIT 0x04 #define CISTPL_SERIAL_UART_8BIT 0x08 #define CISTPL_SERIAL_UART_1STOP 0x10 #define CISTPL_SERIAL_UART_MSTOP 0x20 #define CISTPL_SERIAL_UART_2STOP 0x40 typedef struct cistpl_serial_t { u_char uart_type; u_char uart_cap_0; u_char uart_cap_1; } cistpl_serial_t; typedef struct cistpl_modem_cap_t { u_char flow; u_char cmd_buf; u_char rcv_buf_0, rcv_buf_1, rcv_buf_2; u_char xmit_buf_0, xmit_buf_1, xmit_buf_2; } cistpl_modem_cap_t; #define CISTPL_SERIAL_MOD_103 0x01 #define CISTPL_SERIAL_MOD_V21 0x02 #define CISTPL_SERIAL_MOD_V23 0x04 #define CISTPL_SERIAL_MOD_V22 0x08 #define CISTPL_SERIAL_MOD_212A 0x10 #define CISTPL_SERIAL_MOD_V22BIS 0x20 #define CISTPL_SERIAL_MOD_V26 0x40 #define CISTPL_SERIAL_MOD_V26BIS 0x80 #define CISTPL_SERIAL_MOD_V27BIS 0x01 #define CISTPL_SERIAL_MOD_V29 0x02 #define CISTPL_SERIAL_MOD_V32 0x04 #define CISTPL_SERIAL_MOD_V32BIS 0x08 #define CISTPL_SERIAL_MOD_V34 0x10 #define CISTPL_SERIAL_ERR_MNP2_4 0x01 #define CISTPL_SERIAL_ERR_V42_LAPM 0x02 #define CISTPL_SERIAL_CMPR_V42BIS 0x01 #define CISTPL_SERIAL_CMPR_MNP5 0x02 #define CISTPL_SERIAL_CMD_AT1 0x01 #define CISTPL_SERIAL_CMD_AT2 0x02 #define CISTPL_SERIAL_CMD_AT3 0x04 #define CISTPL_SERIAL_CMD_MNP_AT 0x08 #define CISTPL_SERIAL_CMD_V25BIS 0x10 #define CISTPL_SERIAL_CMD_V25A 0x20 #define CISTPL_SERIAL_CMD_DMCL 0x40 typedef struct cistpl_data_serv_t { u_char max_data_0; u_char max_data_1; u_char modulation_0; u_char modulation_1; u_char error_control; u_char compression; u_char cmd_protocol; u_char escape; u_char encrypt; u_char misc_features; u_char ccitt_code[0]; } cistpl_data_serv_t; typedef struct cistpl_fax_serv_t { u_char max_data_0; u_char max_data_1; u_char modulation; u_char encrypt; u_char features_0; u_char features_1; u_char ccitt_code[0]; } cistpl_fax_serv_t; typedef struct cistpl_voice_serv_t { u_char max_data_0; u_char max_data_1; } cistpl_voice_serv_t; /*====================================================================== LAN Function Extension Tuples ======================================================================*/ #define CISTPL_FUNCE_LAN_TECH 0x01 #define CISTPL_FUNCE_LAN_SPEED 0x02 #define CISTPL_FUNCE_LAN_MEDIA 0x03 #define CISTPL_FUNCE_LAN_NODE_ID 0x04 #define CISTPL_FUNCE_LAN_CONNECTOR 0x05 /* LAN technologies */ #define CISTPL_LAN_TECH_ARCNET 0x01 #define CISTPL_LAN_TECH_ETHERNET 0x02 #define CISTPL_LAN_TECH_TOKENRING 0x03 #define CISTPL_LAN_TECH_LOCALTALK 0x04 #define CISTPL_LAN_TECH_FDDI 0x05 #define CISTPL_LAN_TECH_ATM 0x06 #define CISTPL_LAN_TECH_WIRELESS 0x07 typedef struct cistpl_lan_tech_t { u_char tech; } cistpl_lan_tech_t; typedef struct cistpl_lan_speed_t { u_int speed; } cistpl_lan_speed_t; /* LAN media definitions */ #define CISTPL_LAN_MEDIA_UTP 0x01 #define CISTPL_LAN_MEDIA_STP 0x02 #define CISTPL_LAN_MEDIA_THIN_COAX 0x03 #define CISTPL_LAN_MEDIA_THICK_COAX 0x04 #define CISTPL_LAN_MEDIA_FIBER 0x05 #define CISTPL_LAN_MEDIA_900MHZ 0x06 #define CISTPL_LAN_MEDIA_2GHZ 0x07 #define CISTPL_LAN_MEDIA_5GHZ 0x08 #define CISTPL_LAN_MEDIA_DIFF_IR 0x09 #define CISTPL_LAN_MEDIA_PTP_IR 0x0a typedef struct cistpl_lan_media_t { u_char media; } cistpl_lan_media_t; typedef struct cistpl_lan_node_id_t { u_char nb; u_char id[16]; } cistpl_lan_node_id_t; typedef struct cistpl_lan_connector_t { u_char code; } cistpl_lan_connector_t; /*====================================================================== IDE Function Extension Tuples ======================================================================*/ #define CISTPL_IDE_INTERFACE 0x01 typedef struct cistpl_ide_interface_t { u_char interface; } cistpl_ide_interface_t; /* First feature byte */ #define CISTPL_IDE_SILICON 0x04 #define CISTPL_IDE_UNIQUE 0x08 #define CISTPL_IDE_DUAL 0x10 /* Second feature byte */ #define CISTPL_IDE_HAS_SLEEP 0x01 #define CISTPL_IDE_HAS_STANDBY 0x02 #define CISTPL_IDE_HAS_IDLE 0x04 #define CISTPL_IDE_LOW_POWER 0x08 #define CISTPL_IDE_REG_INHIBIT 0x10 #define CISTPL_IDE_HAS_INDEX 0x20 #define CISTPL_IDE_IOIS16 0x40 typedef struct cistpl_ide_feature_t { u_char feature1; u_char feature2; } cistpl_ide_feature_t; #define CISTPL_FUNCE_IDE_IFACE 0x01 #define CISTPL_FUNCE_IDE_MASTER 0x02 #define CISTPL_FUNCE_IDE_SLAVE 0x03 /*====================================================================== Configuration Table Entries ======================================================================*/ #define CISTPL_BAR_SPACE 0x07 #define CISTPL_BAR_SPACE_IO 0x10 #define CISTPL_BAR_PREFETCH 0x20 #define CISTPL_BAR_CACHEABLE 0x40 #define CISTPL_BAR_1MEG_MAP 0x80 typedef struct cistpl_bar_t { u_char attr; u_int size; } cistpl_bar_t; typedef struct cistpl_config_t { u_char last_idx; u_int base; u_int rmask[4]; u_char subtuples; } cistpl_config_t; /* These are bits in the 'present' field, and indices in 'param' */ #define CISTPL_POWER_VNOM 0 #define CISTPL_POWER_VMIN 1 #define CISTPL_POWER_VMAX 2 #define CISTPL_POWER_ISTATIC 3 #define CISTPL_POWER_IAVG 4 #define CISTPL_POWER_IPEAK 5 #define CISTPL_POWER_IDOWN 6 #define CISTPL_POWER_HIGHZ_OK 0x01 #define CISTPL_POWER_HIGHZ_REQ 0x02 typedef struct cistpl_power_t { u_char present; u_char flags; u_int param[7]; } cistpl_power_t; typedef struct cistpl_timing_t { u_int wait, waitscale; u_int ready, rdyscale; u_int reserved, rsvscale; } cistpl_timing_t; #define CISTPL_IO_LINES_MASK 0x1f #define CISTPL_IO_8BIT 0x20 #define CISTPL_IO_16BIT 0x40 #define CISTPL_IO_RANGE 0x80 #define CISTPL_IO_MAX_WIN 16 typedef struct cistpl_io_t { u_char flags; u_char nwin; struct { u_int base; u_int len; } win[CISTPL_IO_MAX_WIN]; } cistpl_io_t; typedef struct cistpl_irq_t { u_int IRQInfo1; u_int IRQInfo2; } cistpl_irq_t; #define CISTPL_MEM_MAX_WIN 8 typedef struct cistpl_mem_t { u_char flags; u_char nwin; struct { u_int len; u_int card_addr; u_int host_addr; } win[CISTPL_MEM_MAX_WIN]; } cistpl_mem_t; #define CISTPL_CFTABLE_DEFAULT 0x0001 #define CISTPL_CFTABLE_BVDS 0x0002 #define CISTPL_CFTABLE_WP 0x0004 #define CISTPL_CFTABLE_RDYBSY 0x0008 #define CISTPL_CFTABLE_MWAIT 0x0010 #define CISTPL_CFTABLE_AUDIO 0x0800 #define CISTPL_CFTABLE_READONLY 0x1000 #define CISTPL_CFTABLE_PWRDOWN 0x2000 typedef struct cistpl_cftable_entry_t { u_char index; u_short flags; u_char interface; cistpl_power_t vcc, vpp1, vpp2; cistpl_timing_t timing; cistpl_io_t io; cistpl_irq_t irq; cistpl_mem_t mem; u_char subtuples; } cistpl_cftable_entry_t; #define CISTPL_CFTABLE_MASTER 0x000100 #define CISTPL_CFTABLE_INVALIDATE 0x000200 #define CISTPL_CFTABLE_VGA_PALETTE 0x000400 #define CISTPL_CFTABLE_PARITY 0x000800 #define CISTPL_CFTABLE_WAIT 0x001000 #define CISTPL_CFTABLE_SERR 0x002000 #define CISTPL_CFTABLE_FAST_BACK 0x004000 #define CISTPL_CFTABLE_BINARY_AUDIO 0x010000 #define CISTPL_CFTABLE_PWM_AUDIO 0x020000 typedef struct cistpl_cftable_entry_cb_t { u_char index; u_int flags; cistpl_power_t vcc, vpp1, vpp2; u_char io; cistpl_irq_t irq; u_char mem; u_char subtuples; } cistpl_cftable_entry_cb_t; typedef struct cistpl_device_geo_t { u_char ngeo; struct { u_char buswidth; u_int erase_block; u_int read_block; u_int write_block; u_int partition; u_int interleave; } geo[CISTPL_MAX_DEVICES]; } cistpl_device_geo_t; typedef struct cistpl_vers_2_t { u_char vers; u_char comply; u_short dindex; u_char vspec8, vspec9; u_char nhdr; u_char vendor, info; char str[244]; } cistpl_vers_2_t; typedef struct cistpl_org_t { u_char data_org; char desc[30]; } cistpl_org_t; #define CISTPL_ORG_FS 0x00 #define CISTPL_ORG_APPSPEC 0x01 #define CISTPL_ORG_XIP 0x02 typedef struct cistpl_format_t { u_char type; u_char edc; u_int offset; u_int length; } cistpl_format_t; #define CISTPL_FORMAT_DISK 0x00 #define CISTPL_FORMAT_MEM 0x01 #define CISTPL_EDC_NONE 0x00 #define CISTPL_EDC_CKSUM 0x01 #define CISTPL_EDC_CRC 0x02 #define CISTPL_EDC_PCC 0x03 typedef union cisparse_t { cistpl_device_t device; cistpl_checksum_t checksum; cistpl_longlink_t longlink; cistpl_longlink_mfc_t longlink_mfc; cistpl_vers_1_t version_1; cistpl_altstr_t altstr; cistpl_jedec_t jedec; cistpl_manfid_t manfid; cistpl_funcid_t funcid; cistpl_funce_t funce; cistpl_bar_t bar; cistpl_config_t config; cistpl_cftable_entry_t cftable_entry; cistpl_cftable_entry_cb_t cftable_entry_cb; cistpl_device_geo_t device_geo; cistpl_vers_2_t vers_2; cistpl_org_t org; cistpl_format_t format; } cisparse_t; typedef struct tuple_t { u_int Attributes; cisdata_t DesiredTuple; u_int Flags; /* internal use */ u_int LinkOffset; /* internal use */ u_int CISOffset; /* internal use */ cisdata_t TupleCode; cisdata_t TupleLink; cisdata_t TupleOffset; cisdata_t TupleDataMax; cisdata_t TupleDataLen; cisdata_t *TupleData; } tuple_t; /* Special cisdata_t value */ #define RETURN_FIRST_TUPLE 0xff /* Attributes for tuple calls */ #define TUPLE_RETURN_LINK 0x01 #define TUPLE_RETURN_COMMON 0x02 /* For ValidateCIS */ typedef struct cisinfo_t { u_int Chains; } cisinfo_t; #define CISTPL_MAX_CIS_SIZE 0x200 /* For ReplaceCIS */ typedef struct cisdump_t { u_int Length; cisdata_t Data[CISTPL_MAX_CIS_SIZE]; } cisdump_t; int pcmcia_get_first_tuple(client_handle_t handle, tuple_t *tuple); int pcmcia_get_next_tuple(client_handle_t handle, tuple_t *tuple); int pcmcia_get_tuple_data(client_handle_t handle, tuple_t *tuple); int pcmcia_parse_tuple(client_handle_t handle, tuple_t *tuple, cisparse_t *parse); int pcmcia_validate_cis(client_handle_t handle, cisinfo_t *info); int pcmcia_replace_cis(client_handle_t handle, cisdump_t *cis); #endif /* LINUX_CISTPL_H */ discover-2.1.2/sysdeps/linux/pcmcia/version.h0000644002342100234210000000016310266266026017731 0ustar perepere/* version.h 1.94 2000/10/03 17:55:48 (David Hinds) */ #define CS_RELEASE "3.1.22" #define CS_RELEASE_CODE 0x3116 discover-2.1.2/sysdeps/linux/ata.c0000644002342100234210000001216510266266026015555 0ustar perepere/* $Progeny$ */ /* ata.c -- Scan the ATA bus * * Copyright 2001, 2002 Progeny Linux Systems, Inc. * Copyright (C) 1998-2000 MandrakeSoft * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #include "config.h" #include #include #include #include #include /* * This function is specific to each sysdep. */ static void _discover_sysdep_init(discover_sysdep_data_t *node) { } discover_sysdep_data_t * _discover_get_ata_raw(void) { char path[256]; char *line; char *ide_link; FILE *f; struct stat state; size_t len = 0; DIR *ideDir; /* Pointer to a directory */ struct dirent *ide_link_entry; /* ide_link is a possible link to */ /* the hdx disk. */ char *model_name, *model_id, *vendor_name; discover_sysdep_data_t *first, *last, *node; first = last = node = NULL; ideDir = opendir(PATH_PROC_IDE); if(ideDir == NULL){ return NULL; }/*endif*/ /* For each link in the PATH_PROC_IDE */ for (ide_link_entry = readdir(ideDir); ide_link_entry; ide_link_entry = readdir(ideDir)) { ide_link = ide_link_entry->d_name; if (strncmp(ide_link, "hd", 2) == 0) { /* Make test for this hdx possible disk. */ sprintf(path,"%s/%s", PATH_PROC_IDE, ide_link); if (!lstat(path, &state)) { /* Not so fast! Make sure that the device isn't being * handled by the IDE-SCSI driver; otherwise, the * device might show up twice (for example, CD burners with * CD-ROM detection). */ sprintf(path, "%s/%s/driver", PATH_PROC_IDE, ide_link); if (!(f = fopen(path, "r"))) { return NULL; } line = NULL; getline(&line, &len, f); fclose(f); line[8] = 0x00; if (!strcmp(line, "ide-scsi")) { continue; } /* Get vendor and model. */ sprintf(path, "%s/%s/model", PATH_PROC_IDE, ide_link); if (!(f = fopen(path, "r"))) { return NULL; } getline(&line, &len, f); fclose(f); /* * Since vendors and models are given as one string, * split them here. We assume that the first word is * the vendor, which might not necessarily be true, but * is our best guess. */ vendor_name = line; model_name = line; while ((*model_name != ' ') && (*model_name != '\0')) model_name++; if (*model_name == ' ') *model_name++ = '\0'; vendor_name = strdup(vendor_name); if (strlen(model_name) > 0) { if (model_name[strlen(model_name) - 1] == '\n') model_name[strlen(model_name) - 1] = '\0'; /* Chomp! */ model_name = strdup(model_name); } else { model_name = strdup(""); //will be freed } free(line); line = NULL; /* Determine the drive type (floppy, hd...). */ sprintf(path, "%s/%s/media", PATH_PROC_IDE, ide_link); if (!(f = fopen(path, "r"))){ return NULL; } getline(&line, &len, f); fclose(f); model_id = line; model_id[strlen(model_id) - 1] = '\0'; /* Chomp! */ line = NULL; /* Initialize the node */ node = _discover_sysdep_data_new(); _discover_sysdep_init(node); /* Save the node information */ node->busclass = model_id; node->model = model_name; node->vendor = vendor_name; if (last) { last->next = node; last = node; } else { first = last = node; } } } } closedir(ideDir); return first; } /* * Local variables: * c-file-style: "progeny" * indent-tabs-mode: nil * End: */ /* vim: set cin fo=tcroq sw=4 et sts=4 tw=75: */ discover-2.1.2/sysdeps/linux/usb.c0000644002342100234210000000562610266266026015605 0ustar perepere/* $Progeny$ */ /* usb.c -- Scan the USB bus * * AUTHORS: John R. Daily * * Copyright 2002 Hewlett-Packard Company * Copyright 2001, 2002 Progeny Linux Systems, Inc. * Copyright (C) 1998-2000 MandrakeSoft * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #include "config.h" #include #include #include #include #include /* * This function is specific to each sysdep. */ static void _discover_sysdep_init(discover_sysdep_data_t *node) { node->busclass = _discover_xmalloc(5); node->vendor = _discover_xmalloc(5); node->model = _discover_xmalloc(5); } discover_sysdep_data_t * _discover_get_usb_raw(void) { FILE *f; char *line = NULL; size_t len = 0; discover_sysdep_data_t *head = NULL, *node, *last = NULL; unsigned int id; char class[3], subclass[3]; if ((f = fopen(PATH_PROC_USB, "r"))) { while (getline(&line, &len, f) >= 0) { node = _discover_sysdep_data_new(); _discover_sysdep_init(node); if (strstr(line, "ProdID=")) { sscanf(line, "P: Vendor=%s ProdID=%s Rev=%*2x.%*02x\n", node->vendor, node->model); while (getline(&line, &len, f) >= 0){ if(strstr(line, "I: ")){ sscanf(line, "I: If#=%*2d Alt=%*2d #EPs=%*2d " "Cls=%2s(%*5c) Sub=%2s Prot=%*02x " "Driver=%*s\n", class, subclass); snprintf(node->busclass, 5, "%s%s", class, subclass); break; } } if (head == NULL) { head = node; last = head; } else { last->next = node; last = node; } } else { free(node->busclass); free(node->vendor); free(node->model); free(node); } } fclose(f); free(line); } return head; } /* * Local variables: * c-file-style: "progeny" * indent-tabs-mode: nil * End: */ /* vim: set cin fo=tcroq sw=4 et sts=4 tw=75: */ discover-2.1.2/discover.dtd0000644002342100234210000000213210272036044014307 0ustar perepere discover-2.1.2/doc/0002755002342100234210000000000010655642004012551 5ustar pereperediscover-2.1.2/doc/crash-snippet.xml0000644002342100234210000000303310475523124016051 0ustar perepere &localstatedir;/lib/discover/crash A crash file written and erased each time discover-modprobe attempts to load a module. If the file lingers, the computer is assumed to have crashed while loading that module, and the module name is added to discover-modprobe.conf as a module to skip in the future. discover-2.1.2/doc/Makefile.in0000644002342100234210000000652310470336315014622 0ustar perepere# $Progeny$ doc_files= ${srcdir}/guide.html \ ${srcdir}/guide.txt \ ${srcdir}/api-reference \ ${srcdir}/discover.1 \ ${srcdir}/discover-config.1 \ ${srcdir}/discover.conf.5 \ ${srcdir}/discover-modprobe.conf.5 \ ${srcdir}/discover-modprobe.8 refentries= discover-config.refentry \ discover-modprobe.conf.refentry \ discover-modprobe.refentry \ discover.conf.refentry \ discover.refentry sed_regexp = -e " s|/.*/discover.conf|${sysconfdir}/discover.conf|g " \ -e " s|/.*/list.xml|@DISCOVER_DEFAULT_URL@|g " \ -e " s|/.*/discover-modprobe.conf|${sysconfdir}/discover-modprobe.conf|g " all: ${doc_files} ############################################################################### # Clean clean_FILES= #none distclean_FILES= Makefile maintainer_clean_FILES= ${doc_files} discover-config.refentry clean: distclean: rm -rf ${clean_FILES} ${distclean_FILES} maintainer-clean: rm -rf ${clean_FILES} ${distclean_FILES} ${maintainer_clean_FILES} ############################################################################### # Installation install: ${doc_files} ${INSTALL_DIR} ${DESTDIR}${datadir}/doc/discover ${INSTALL_DIR} ${DESTDIR}${mandir}/man1 ${INSTALL_DIR} ${DESTDIR}${mandir}/man5 ${INSTALL_DIR} ${DESTDIR}${mandir}/man8 @${MAKE} __sed_install FROM=${srcdir}/guide.html \ TO=${DESTDIR}${datadir}/doc/discover/guide.html @${MAKE} __sed_install FROM=${srcdir}/guide.txt \ TO=${DESTDIR}${datadir}/doc/discover/guide.txt # XXX: If you have these, you're smarter than the # average bear cp -r ${srcdir}/api-reference/html \ ${DESTDIR}${datadir}/doc/discover/api-reference @${MAKE} __sed_install FROM=${srcdir}/discover.1 \ TO=${DESTDIR}${mandir}/man1/discover.1 @${MAKE} __sed_install FROM=${srcdir}/discover-config.1 \ TO=${DESTDIR}${mandir}/man1/discover-config.1 @${MAKE} __sed_install FROM=${srcdir}/discover.conf.5 \ TO=${DESTDIR}${mandir}/man5/discover.conf.5 @${MAKE} __sed_install FROM=${srcdir}/discover-modprobe.conf.5 \ TO=${DESTDIR}${mandir}/man5/discover-modprobe.conf.5 @${MAKE} __sed_install FROM=${srcdir}/discover-modprobe.8 \ TO=${DESTDIR}${mandir}/man8/discover-modprobe.8 uninstall: rm -f ${DESTDIR}${datadir}/doc/discover/guide.html rm -f ${DESTDIR}${datadir}/doc/discover/guide.txt rm -rf ${DESTDIR}${datadir}/doc/discover/api-reference rm -f ${DESTDIR}${mandir}/man1/discover-config.1 rm -f ${DESTDIR}${mandir}/man8/discover-modprobe.8 rm -f ${DESTDIR}${mandir}/man5/discover-modprobe.conf.5 ############################################################################### # Distribution DISTFILES= Doxyfile GNUmakefile Makefile.in \ discover.refentry \ bus-classes.xml \ crash-snippet.xml \ device-types.xml \ guide.xml \ range.fig \ ${doc_files} \ ${refentries} distdir: ${DISTFILES} ${top_srcdir}/buildtools/distdir ${distdir}/${_THISDIR_} ${DISTFILES} cp -r api-reference ${distdir}/${_THISDIR_} # This rule exists because the documentation is generated as # part of the distribution archive, in an environment where the # directory layout may differ from that to be used on the # installed system, and passed to the configure script. # # It's this, or force people to use all sorts of XML-based build # tools installed and configured to just write. __sed_install: sed ${sed_regexp} ${FROM} > ${FROM}.sed ${INSTALL_DATA} ${FROM}.sed ${TO} rm ${FROM}.sed discover-2.1.2/doc/guide.html0000644002342100234210000037200710475523154014547 0ustar perepere The Discover Hardware Detection System

The Discover Hardware Detection System

G. Branden Robinson

John R. Daily

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 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 THE COPYRIGHT HOLDER(S) 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.

Linux is a registered trademark of Linus Torvalds.

$Progeny$

Table of Contents
What Is Discover?
I. Data Structure
1. Overview of the Discover Data Format
2. Master List
3. Busclass Lists
3.1. The busclass_list element
3.1.1. The bus attribute
3.2. The busclass element
3.2.1. The id attribute
3.2.2. The name attribute
4. Vendor Lists
4.1. The vendor_list element
4.1.1. The bus attribute
4.2. The vendor element
4.2.1. The id attribute
4.2.2. The name attribute
5. Device Lists
5.1. The device_list element
5.1.1. The bus attribute
5.2. The device element
5.3. The data element
5.3.1. The class attribute
5.3.2. The version attribute
5.4. Accessing the Device Data
II. Recommended Data Content Conventions
6. Data Hierarchy
6.1. Linux Kernel Modules
6.2. XFree86 X Servers
6.3. Locally-Defined Interfaces
7. Why Order Matters
8. Using Data Versioning
8.1. Specifying a Range
8.2. How the Discover Library Matches a Range
III. Command-Line Tools
9. discover Manual Page
discover -- hardware detection utility
10. discover.conf Manual Page
discover.conf -- configuration file format for discover(1)
11. discover-modprobe Manual Page
discover-modprobe -- kernel module loading using discover(1)
12. discover-modprobe.conf Manual Page
discover-modprobe.conf -- configuration file for discover-modprobe(5)
IV. Library
13. The Discover Library
13.1. Library Design Principles
13.2. Discover Data Sources
13.3. The Bus Map
13.4. Scanning the System
13.5. Using discover_device_t Structures
14. System Dependencies
14.1. API
A. Discover API Reference
B. Discover DTD
C. Discover Configuration File DTD
D. Licensing Issue on the Linux Sysdeps
List of Figures
6-1. Linux interface
6-2. XFree86 interface

What Is Discover?

Discover is a tool that reports information about a system's hardware. It uses operating system-dependent modules (selected at build time) to detect what hardware is actually on the system and provides system-independent interfaces for querying XML data sources about this hardware. These data sources contain specific information required to enable support for various devices via defined software interfaces. The tool can be accessed by linking to the Discover library or by calling discover (which itself links to the Discover library) and parsing its output. In the future, other interfaces (for example, modules for interpreted languages such as Perl and Python) may be included.

Why use Discover? There are at least a few reasons:

  • Flexibility. Discover is designed from the ground up to be flexible. It is portable to a variety of operating environments, and its modular design supports the addition of arbitrary methods for querying the host operating system (OS) about installed devices. Discover is also designed to be flexible in terms of the types of data that can be retrieved. Discover does not tie the user to retrieving only one type of information, such as the name of the Linux kernel module that should be loaded to support a given device. Instead, Discover supports the association of arbitrary data with hardware devices, typically through specification of an interface to the hardware in question, such as a Linux kernel module or an XFree86 server driver module.

  • Updatability. Many hardware-autodetection programs suffer from an inherent limitation in that they are restricted to reading hardware lists or databases that are stored on the local filesystem. This is not an efficient approach in the fast-moving world of consumer computer hardware, with new devices constantly being introduced. A couple of months after the latest version of your OS of choice is released, it may fail to recognize that the latest revision of, for instance, a video chipset is compatible with an older one, and can use the same software interfaces. Discover overcomes this problem by supporting the retrieval of hardware information via HTTP[1] ("over the web"). When HTTP access is impossible, Discover falls back to locally stored hardware lists.

  • Portability. On top of its flexibility in terms of system interfaces to hardware, Discover has been written to be broadly portable to all of today's popular POSIX-compliant systems. Discover is not a Linux-only solution. Discover is intended to provide operating system vendors, computer manufacturers, and third-party vendors of software and peripherals with a powerful tool for describing the hardware they support to the interfaces they care about. Because Discover's data sources can be anywhere on the Internet, the OS vendor need not be the sole provider of hardware catalogs.

  • Usability. Discover is not an in-house tool designed to solve a narrow class of problems. Discover is designed to be easy to use from the perspectives of the individual system administrator, the applications programmer, and the hardware manufacturer or support staff. Discover's XML database structure, its command-line tools, and its library API are well documented and support extensions to meet diverse demands.

  • Freely licensed. Discover has a copyright license that is highly adaptable to the needs of the varied audiences to which Discover is targeted. Under the so-called "UCB/BSD" or "MIT/X Consortium" terms, after the names of American universities and some very well known software projects that used these terms, anyone is free to copy, modify, and distribute the software, and to extend (or not) these same freedoms to those who receive the software. Progeny would like to see Discover adopted by a wide variety of existing software products, such the various GNU/Linux distributions; the FreeBSD, NetBSD, and OpenBSD projects; the GNU Project of the Free Software Foundation; the XFree86 Project; system integrators; and the designers and manufacturers of computer hardware. We believe that Discover's design empowers those with the greatest knowledge of hardware and the software interfaces to that hardware to express that knowledge and make it available to the world, thereby ameliorating an entire class of computer configuration problems. Progeny does not want Discover's licensing to stand in the way of realizing that dream, which is why we have chosen these license terms.

We must take a moment to explain what Discover is not: Discover is not a replacement for the service — usually provided by the underlying operating system kernel or a user-space program that interfaces with it — of simply translating bus-specific vendor and model identifiers to human-readable names. Discover performs its own translations of this data as a convenience for generating human-readable reports, but it does not attempt to enumerate all hardware devices that exist for a particular bus architecture. Rather, Discover is intended only to catalog data for which there is some useful information to impart regarding software interfaces. Facilities already exist in modern operating systems for answering the questions "What is the name of this device?" and "Who manufactured it?" Discover's role is to answer questions like "What Linux kernel module do I need to load for this device to work?" More importantly, Discover will enable you to provide answers in the future to questions you don't even expect to ask today.

Discover is not intended to be a comprehensive hardware-management tool. It is an enabling technology, designed to provide data that a tool layered above it can use. Two applications are provided with Discover to demonstrate how the library can be leveraged: the command-line utility discover, and a Linux kernel module loading script, discover-modprobe, designed to be invoked at system boot time.

This manual is divided into four parts. First, we examine the Discover XML data file format, exploring the elements and attributes used to describe hardware and various interfaces to it. This part will enable you to read and understand a Discover XML file. Next, we offer some recommendations for writing your own Discover XML data. Knowing the syntax is valuable, but knowing how best to take advantage of it is even more useful. We then present the reference pages describing Progeny's Discover-based command-line tools and the configuration files used to control their behavior. You may want to use these references as a guide when implementing your own Discover-based applications. The final part describes the Discover library API so that you can develop your own solutions based on Discover. Appendices offer references to the formal descriptions of the Discover API and XML DTDs.


Chapter 1. Overview of the Discover Data Format

Most modern computer peripherals contain self-identifying information in a format standardized for the hardware interface (bus). This enables the OS on the host system to query or scan a bus and catalog the devices. In general, the OS stores this information in the same basic format in which it is returned, without translating it more times than necessary for device drivers to communicate with the peripheral. However, this information varies by bus type and is often insufficiently clear for human consumption. Furthermore, many operating systems do not contain a comprehensive database that maps each peripheral to every subsystem running on the OS that may want to communicate with that peripheral. Discover addresses these issues by providing flexible databases stored in XML format.

Extensible Markup Language (XML) is a highly flexible hypertext format. Discover uses XML exclusively to store hardware information externally. Some familiarity with XML syntax is therefore assumed. For more information, see the W3C's XML website.

For a formal description of Discover's XML data format, see the Discover Document Type Definition (DTD) document. The purpose of this document is to present the information in a form digestible by the novice.

Because each hardware bus type, such as PCI or USB, communicates different details about the connected devices (essentially, each one solves the same problem in a different way), Discover has a different set of lists for each bus type. For each bus, up to three lists are stored: a bus class list maps the bus specification's notion of a device type (hereinafter referred to as a "device class" to reduce confusion) to Discover's device types, which are used for running selective queries; a vendor list associates bus-specific vendor identification data with natural-language names for hardware vendors; and a device list contains information specific to individual devices.


Chapter 2. Master List

When Discover is provided with a URL for the retrieval of hardware information, the data retrieved is expected to be in XML format and to contain further URLs for retrieval.

The root element must be discover-data, which has no attributes, and can only contain location elements.

The location element is always empty, and has three required attributes: bus, type, and url.

location Attributes

type

This attribute can have one of these values: busclass, device, or vendor. See Chapter 3, Chapter 4, and Chapter 5.

url

This must be a valid URL containing one of the three types of data lists.

bus

This is the bus to which the URL applies. See Section 3.2.2 for a list of valid bus names.


Chapter 3. Busclass Lists

As noted in the previous chapter, a busclass list provides a mapping between device classes recognized by the hardware bus and the device type names used by Discover. Because every bus is different, sometimes there is no perfect, one-to-one correspondence between Discover device types and the device classes recognized by a particular bus. This is one reason that the busclass lists, like other types of Discover data lists, are updatable. Revisions in a bus specification may demand updates to the mapping.

The device classes recognized by a bus are typically determined by the specification for the bus as determined by a standards committee or other technical body, and do not change frequently (if at all).

Example 3-1. The busclass_list element

<?xml version="1.0"?>

<busclass_list bus="usb">
  <busclass id="0202" name="modem"/>
  <busclass id="1030" name="broadband"/>
  <busclass id="0101" name="printer"/>
  <busclass id="ffff" name="imaging"/>
  <busclass id="0206" name="network"/>
  <busclass id="0300" name="humaninput"/>
  <busclass id="ff00" name="video"/>
  <busclass id="0000" name="unknown"/>
  <busclass id="0804" name="removabledisk"/>
</busclass_list>

In the foregoing example, we can see one possible mapping of the USB bus's numeric device class IDs to Discover's device type names (see Section 3.2.2). The file begins by declaring the version of the XML standard to which it conforms, and then presents data. The format should be fairly familiar to those accustomed to HTML-style structured markup languages.

Not all of Discover's supported device types are listed in the example; for example, display is missing. This is not a problem, since not all buses are used for all hardware applications. USB 1.1 would be a poor choice of bus for VGA-compatible display controllers, for instance, because the available bandwidth on the USB 1.1 bus is insufficient to handle typical data loads for such devices.

Another infelicity in the above example is the association of the ffff device class ID with the Discover device type imaging. In actuality, a device type class of ffff in the USB specification indicates a device of an unknown classification. In practice, most consumer-level devices with this device class are scanners, one of the first applications of USB technology in the consumer marketplace. It is possible that in certain deployments, the association of USB's unknown device class ID with Discover's imaging device type is suboptimal — another reason the busclass lists are not hard-coded into the library.


3.1. The busclass_list element

A busclass_list element possesses a bus attribute and contains one or more busclass elements.


3.1.1. The bus attribute

The bus attribute of the busclass_list element is set to the name of the bus being described by the busclass list.

The bus attribute presently supports the following values:

  • ata

  • pci

  • pcmcia

  • scsi

  • usb

We expect to support more buses in the future; ieee1394 and sbus are possible candidates.


3.2. The busclass element

A busclass element possesses two attributes, id and name, and contains no elements.


3.2.1. The id attribute

The id attribute is set to a bus-specific device class identifier.


3.2.2. The name attribute

The name attribute is set to a Discover device type. Discover's device types are an effort to balance a few criteria:

  • Device types ("bus classes" in Discover terminology) defined by the PCI specification

  • Bus classes defined by the USB specification

  • Bus classes defined by the SCSI specification

  • Device types commonly conceived of by the personal computer user

Discover's definitions of device types will not meet with universal agreement; as happens in most categorization problems, some decisions had to be made arbitrarily. Discover does not attempt to solve the general problem of grouping various peripherals into categories; rather, Discover solves the problem for itself and uses bus-specific mappings to translate a device's own notion of its type to Discover's device type.

  • audio

    A device capable of producing an analog or digital sound signal is an audio device. Typically, any device commonly referred to as a "sound card" is classified by Discover as an audio device.

  • bridge

    A device that provides access to devices of a different type, commonly on a different bus, is a bridge device. For instance, consumer PCI chipsets often feature a bridge to ATA (also known as IDE) devices.

  • broadband

    An interface device to a computer communications network implemented on top of a technology not explicitly designed for that purpose is a broadband device. Examples include ISDN terminal adapters as well as DSL and cable "modems"; analog phone-line modems are not included in this classification (see "modem" below).

  • display

    A device controlled by the host machine's CPU and capable of producing an analog or digital video signal for output purposes is a display device. Typically, any device commonly referred to as a "video card" is classified by Discover as a display device.

  • fixeddisk

    A high-speed, fixed magnetic storage device such as a hard disk drive is a fixeddisk device. Removable media devices such as floppy disk drives, CD-ROM drives, magneto-optical devices, tape drives, and Compact Flash card readers are not included in this classification.

  • humaninput

    A device that receives tactile input from a person for the purpose of directing a computer's activity is a humaninput device. Examples include keyboards, mice, trackballs, joysticks, gamepads, digital tablets manipulated with a stylus or finger, and so forth. Input devices that rely upon non-tactile means of determining a person's intent, such as speech-recognition devices or cameras, are not included in this classification.

  • imaging

    A device that captures still images for input purposes is an imaging device. Scanners and digital cameras are examples of imaging devices. Motion-capture devices such as television tuner cards, webcams, and digital video cameras are not included in this classification.

  • miscellaneous

    Any device that cannot logically be classified as another device type is a miscellaneous device.

  • modem

    An analog phone-line modulator/demodulator (modem) is classified by Discover as a modem device. No other kind of device is so classified.

  • network

    An interface device to a conventional computer data communications network that does not require the use of a terminal adapter is a network device. For example, Ethernet and Token Ring network interface cards are network devices. Analog phone-line modems; terminal adapters for technologies such as ISDN and DSL; and "cable modems" are not "network" devices.

  • optical

    An optical-technology storage device, often using read-only media, is an optical device. By far the most common examples of these devices are CD-ROM and DVD-ROM drives, including versions of these drives that can "burn" (write to) optical discs.

  • printer

    A device that renders visual output in a permanent or semi-permanent manner to a physical medium is a printer. Typically, any device colloquially referred to as a "printer" is also classified by Discover as a printer.

  • removabledisk

    Storage devices that feature removable media using just about any technology except that of magnetic tape, CD-ROM, and DVD-ROM drives are removabledisk devices. Examples include floppy disk drives, magneto-optical drives, and Compact Flash card readers.

  • tape

    A sequential-access mass storage device using magnetic tape is a tape device. Commonly used for archival and backup purposes, DAT drives are examples of tape devices.

  • video

    A device that produces a real-time digital video signal for input purposes is a video device. Webcams, digital video cameras, and television tuners are examples of video devices. Note that still digital cameras with "movie" capability are not considered video devices unless they can transmit the live video signal to the host in real time.


Chapter 4. Vendor Lists

Many buses have vendor identification numbers that are registered with that bus's standardization body and programmed into the devices when they are manufactured. These numbers generally are assigned arbitrarily, and typically have little meaning to the end user; therefore, most hardware detection tools provide a way to translate these numeric vendor IDs to human-readable strings. Thus, instead of knowing that your PCI or AGP video card was manufactured by "1002," you can determine that it was manufactured by "ATI Technologies, Inc."

Example 4-1. The vendor_list element

<?xml version="1.0"?>

<vendor_list bus="pci">
  <vendor id="0675" name="Dynalink"/>
  <vendor id="0e11" name="Compaq Computer Corporation"/>
  <vendor id="1004" name="VLSI Technology Inc"/>
  <vendor id="1025" name="Acer Incorporated [ALI]"/>
  <vendor id="102b" name="Matrox Graphics, Inc."/>
  <vendor id="109e" name="Brooktree Corporation"/>
</vendor_list>

The foregoing example is similar in structure to the busclass list example; a numeric vendor ID maps to a vendor name, which can be used by Discover for queries or reports generated for the user's benefit.


4.1. The vendor_list element

A vendor_list element possesses a bus attribute and contains one or more vendor elements.


4.1.1. The bus attribute

The bus attribute of the vendor_list element is set to the name of the bus being described by the vendor list.

The following bus attributes are supported:

  • ata

  • pci

  • pcmcia

  • scsi

  • usb


4.2. The vendor element

A vendor element possesses two attributes, id and name, and contains no elements.


4.2.1. The id attribute

The id attribute is set to a bus-specific vendor identifier.


4.2.2. The name attribute

The name attribute is set to a human-readable vendor identifier, typically the official name of the corporation or other business entity that designed or manufactured that peripheral.


Chapter 5. Device Lists

The device lists are the heart of Discover's functionality. They are the most frequently updated lists and contain the information of greatest value.

Discover's device lists not only provide a way to identify individual peripherals by name, but also permit the specification of an arbitrary quantity of organized data for each device, supporting an arbitrary number of software interfaces.

Note

The following is a fictitious example. The information within it is for illustrative purposes only. See Part II in The Discover Hardware Detection System for a discussion of the "real" hardware data as provided by Progeny, and for some suggested conventions on organizing the data namespace.

Example 5-1. Sample device data

<?xml version="1.0"?>

<device_list bus="pci">
  <device busclass="1984" model="0101" model_name="Cerebral Reprogrammer" vendor="B16B">
    <data class="linux">
      <data class="module">
        <data class="name">winston</data>
        <data class="options">base_address=0x300 manual_override=0</data>
      </data>
    </data>
    <data class="win2k">
      <data class="hal_driver">
        <data class="StrUglyHungarianNotatedDriverName">settlement</data>
        <data class="flags">NSA_KEY=96b5f3e3283a62c85f6cb6f4017135c2</data>
      </data>
    </data>
  </device>
</device_list>

The example above includes a device_list element containing device elements, and a device element that defines the device itself, but reserves any software- or interface-specific details to the data elements it contains.

The actual data provided in the example is accessed by means of data paths; see Section 5.4 for further information.


5.1. The device_list element

A device_list element possesses a bus attribute and contains one or more device elements.


5.1.1. The bus attribute

The bus attribute of the device_list element is set to the name of the bus described by the device list.

The following bus attributes are supported:

  • ata

  • pci

  • pcmcia

  • scsi

  • usb


5.2. The device element

A device element possesses four attributes:

  • busclass

  • vendor

  • model

  • model_name

All of these attributes must be specified for each device element. The busclass attribute is set to a busclass identifier, vendor to a vendor identifier, model to a bus-specific model identifier, and model_name to a human-readable vendor identifier, typically the name of the product under which the device reporting the model identifier is sold or otherwise distributed.

A device element contains zero or more data elements.


5.3. The data element

A data element possesses a mandatory class attribute, an optional version attribute, and zero or more data elements.

The ability to nest data elements inside other data elements affords interface designers and device driver authors the ability to specify a hierarchy of data, instead of being compelled to encapsulate only one piece of data per device for their interface.


5.3.1. The class attribute

A class attribute is set to an arbitrary value determined by an interface designer. For data elements whose parent element is a device element, this should be the name of the interface being described, such as freebsd, linux, or xfree86.

A data element whose parent element is a data element should set this attribute to a term reflecting the interface designer's intended data hierarchy. Discover does not mandate any particular hierarchy for interface designers.


5.3.2. The version attribute

Data elements have an optional attribute named version. This indicates a version range applicable to the data contained within the element. The purpose of this attribute is to permit the specification of data that is valid only for a range of versions of the given interface. For example, the Linux kernel changed some of the names of its modules between the 2.2 and 2.4 series.

Discover's range syntax, common in mathematical writings, is expressed as an interval; that is, it consists of a pair of endpoints with a comma between them, and brackets or parentheses as qualifiers for inclusion or exclusion of the endpoints' exact values. For example, the version specification [1.0, 2.0) matches any version less than 2.0 and greater than or equal to 1.0. It is the responsibility of the calling environment to specify the version of the interface actually in use. In other words, the Discover library does not take it upon itself to determine the currently running version of the Linux kernel, XFree86 X server, CUPS printing daemon, and so forth.

Due to the lack of consistent standards for version numbers (in fact, some version numbers aren't numbers at all), Discover requires simplifications for the version attribute. The versions that express the range must be in dotted-decimal form, such as 7.1.0. The version that is supplied to the Discover library as part of a query (for example, via the --data-version argument to discover) may or may not comply with this requirement, but should be expressed such that it compares in a desirable way against version strings that do.

In place of the upper end of the range, inf (infinity) can be used if the information is still relevant and should be for forseeable versions.


5.4. Accessing the Device Data

Discover data is grouped into hierarchical data elements. This data can be accessed via its data path. The data path is the concatenation of the class attribute values of a data element and all its parents, separated by slash (/) characters. In the following example, quux is accessed via the data path "foo/bar":

<data class="foo">
  <data class="bar">quux</data>
</data>

In Example 5-1 above, we would determine the name of the Linux kernel module ("winston") for the "Cerebral Reprogrammer" device by referencing the data path linux/module/name; similarly, the data path win2k/hal_driver/flags returns NSA_KEY=96b5f3e3283a62c85f6cb6f4017135c2.

II. Recommended Data Content Conventions

As discussed in the preface, Discover is not intended to be a replacement for system utilities such as lspci on Linux. A device element should exist for a piece of hardware only if there is some interface information to communicate about the hardware; that is, some data elements to house within the device element. This part of the manual contains Progeny's recommendations on how to organize that information for maximum utility.


Chapter 6. Data Hierarchy

As discussed in Section 5.4, the XML structure around the data allows for a hierarchical view.

While Discover does not mandate any particular hierarchy or namespace organization for data elements, the XML files provided by Progeny express — and some applications based on Discover (such as discover-modprobe) expect — a certain structure for Linux kernel module and XFree86 configuration information.

At Progeny, we have often found it convenient to refer to a top-level data element's class attribute value as an "interface" (see the following example).

Example 6-1. Defining an interface

<device busclass="0300" vendor="de8d" model="90a9" model_name="Stingray">
  <data class="xfree86">
    <data class="server" version="[3, 4)">
      <data class="name">XF86_SVGA</data>
    </data>
  </data>
  <data class="openbsd">
    <data class="security_level">untrusted</data>
  </data>
</device>

In Example 6-1, two interfaces have been defined for the "Stingray" device: xfree86 and openbsd.


6.1. Linux Kernel Modules

A hardware device that requires a particular Linux kernel module should have nested data elements to describe that module. The top-level data element should have a class attribute with a value of linux. Underneath that should be a data element with a class of module.

Within that data element, there should be one or two more, one with a class of name, and an optional one with a class of options. The former has as content the name of the module; the latter, options to be passed to modprobe.

Figure 6-1. Linux interface

/linux
    |
    |-/module
          |
          |-/name
          |
          |-/options

In Figure 6-1, each component of the tree represents a data element; the label is the value of its class attribute.

If the kernel version affects the choice of module name or options, the top-level linux data element should have a version range attribute; see Section 5.3.2.

Example 6-2. Using the linux interface

<device busclass="0204" model="1702" model_name="IS64PH ISDN Adapter" vendor="0675">
  <data class="linux">
    <data class="module">
       <data class="name">hisax</data>
       <data class="options">io=0x300 irq=11</data>
    </data>
  </data>
</device>

See Example 8-1 for guidance on how to specify different Linux kernel modules for the same device, depending on the version of the Linux kernel in use.


6.2. XFree86 X Servers

The data hierarchy of a video card device (Discover's display type) should include a top-level data element with a class attribute of xfree86 (the interface) and likely with a version attribute as well; nested within that element will be a server data element containing a name data element identifying the name of the server executable. For XFree86 version 4.0 or greater, the name will always be XFree86, and the server data element will also contain a device data element, which contains one or more data elements communicating information to be stored in the XF86Config file. The children of the device data element are named in correspondence with the syntax of the XF86Config file's Device section; see the XF86Config manual page for further information. In particular, note that in many cases only a driver data element is necessary.

Figure 6-2. XFree86 interface

/xfree86
    |
    |-/server
          |
          |-/name
          |
          |-/device
                |
                |-/driver
                |
                |-/chipid
                |
                |-/chipset
                |
                |-/ramdac
                |
                |-/dacspeed
                |
                |-/videoram
                |
                |-/options
                |
                |-...

Figure 6-2 illustrates the xfree86 interface. Example 6-3 shows how you might write xfree86 interface information for a Discover display device.

Example 6-3. Using the xfree86 interface

<device busclass="0300" vendor="1002" model="4654" model_name="Mach64 VT [264VT FT]">
  <data class="xfree86">
    <data class="server" version="[4, inf)">
      <data class="name">XFree86</data>
      <data class="device">
        <data class="driver">ati</data>
      </data>
    </data>
    <data class="server" version="(0, 4)">
      <data class="name">XF86_Mach64</data>
    </data>
  </data>
</device>

6.3. Locally-Defined Interfaces

Progeny recommends that publicly distributed Discover XML files avoid using the interface name local; that is, a class attribute value of local in a top-level data element. This means that data paths such as local/foo/bar should not be defined in a public Discover XML file, but both foo/bar/local and foo/local/bar are okay.

The intention is to reserve this part of the namespace for users' experiments with defining their own — and possibly future, widely adopted — interface definitions for Discover data. An interface definition could thus be "beta tested" by a person or organization to ensure that it is efficiently structured before it is unleashed upon the world elsewhere in the namespace, where people may write tools that expect to be able to resolve the interface definition's data paths.

Likewise, Progeny recommends that authors of applications that use Discover avoid traversing into a top-level local data element, which may impose an undesirable support burden on the designers of the interface while they are still working out their design. (The application also may not find the data it desires, or may not get back what it expects.)


Chapter 7. Why Order Matters

When searching device elements, the first exact match will be selected. Subsequent matches are ignored.

Specifically, three comparisons are made:

  1. The hardware must provide identification that matches attributes of the device element. As an example, a PCI device supplies numeric vendor and model identifiers, which are used to match the model and vendor attributes.

  2. The class attributes of child data elements must match the data path as given to the library for searching.

  3. The first version range, if any, associated with the nested data elements must encompass any version provided by the client.

Example 7-1. Matching device elements

Assume that the path linux/module/name is provided, along with a version of 2.4.2. The following is sample data; the device elements may be from the same or different data files.


<device busclass="0000" vendor="102f" model="5555" model_name="100VG ethernet">
  <data class="linux" version="[2.4, inf)">(1)
    <data class="modules">
        <data class="name">vg100</data>
    </data>
  </data>
  <data class="linux" version="[2.0, 2.2)">(2)
    <data class="module">
        <data class="name">vg100</data>
        <data class="options">io=0x300</data>
    </data>
  </data>
</device>

<device busclass="0000" vendor="102f" model="5555" model_name="100VG ethernet">
  <data class="linux">(3)
    <data class="module">
        <data class="name">vg100new</data>
    </data>
  </data>
  <data class="linux" version="[2.4, inf)">(4)
    <data class="module">
        <data class="name">vg100old</data>
    </data>
  </data>
</device>

(1)
This item is the first one scanned, and would match, except that the requested data path includes "module" as a component, not "modules" as specified here.
(2)
This item doesn't match because the provided range is outside the limits defined by the element. (2.4.2 is not greater than or equal to 2.0 and less than 2.2.)
(3)
This item matches because no range is given, so "vg100new" is the value returned.
(4)
This is the nearest match, but the Discover library will never select it because its previous sibling has no version range, and thus will catch any version provided.

Chapter 8. Using Data Versioning

8.1. Specifying a Range

Because multiple versions of a software interface often are in simultaneous deployment, Progeny recommendeds that the upper bound of a data element's version attribute be defined as the first version that is inconsistent with the information provided within it, and that the upper end of the interval be open (terminated with a parenthesis). As an example, suppose we know that the name of the Linux kernel module to drive the RealTek RTL-8139 Ethernet device was rtl8139 in the 2.2 kernel series and 8139too in the 2.4 series. To express this, we would say the following:

Example 8-1. Using the version attribute of the data element

<device_list bus="pci">
<device busclass="0200" model="8139" model_name="RTL-8139" vendor="10ec">
  <data class="linux" version="[2.4,inf)">
    <data class="module">
       <data class="name">8139too</data>
    </data>
  </data>
  <data class="linux" version="[2.2,2.4)">
    <data class="module">
       <data class="name">rtl8139</data>
    </data>
  </data>
</device>
</device_list>

In the first data element, for instance, we would not use a version attribute of [2.2.0,2.2.19] because it is needlessly specific. What happens if the Linux kernel developers release Linux kernel 2.2.20? By saying [2.2,2.4), we "catch" everything in the kernel 2.2 series[2] — past, present, and future.


8.2. How the Discover Library Matches a Range

The data files will be searched in order; the first data path that matches the version range or doesn't have a version range will be returned.

Recalling the discussion in Section 5.3.2, if you want the first data element matching the requested data path to also be the "fallback" element if no version range applies, you can duplicate that data element and place it at the end. However, a better practice is to make certain that all reasonable versions will match one of the ranges, and that the first range listed has an open-ended high end, such as [2.4, inf) for Linux kernel modules in Example 8-1. This will have the effect of "assuming" that all unversioned requests for linux data will be for Linux kernel 2.4 or later.

III. Command-Line Tools

Table of Contents
9. discover Manual Page
discover -- hardware detection utility
10. discover.conf Manual Page
discover.conf -- configuration file format for discover(1)
11. discover-modprobe Manual Page
discover-modprobe -- kernel module loading using discover(1)
12. discover-modprobe.conf Manual Page
discover-modprobe.conf -- configuration file for discover-modprobe(5)

Chapter 9. discover Manual Page

discover

Name

discover -- hardware detection utility

Synopsis

discover [DATA_OPTIONS] [DISPLAY_OPTIONS] [--bus-summary] [bus...]

discover [DATA_OPTIONS] [DISPLAY_OPTIONS] --type-summary [type...]

discover [DATA_OPTIONS] --data-path=path/to/data... [--data-version=version] [--normalize-whitespace] [--format=format string] [type | id...]

DATA_OPTIONS

  • -d | --disable-bus=bus

  • -e | --enable-bus=bus

  • --insert-url=url

  • --append-url=url

  • -v | --verbose

DISPLAY_OPTIONS

  • --model | --no-model

  • --model-id | --no-model-id

  • --vendor | --no-vendor

  • --vendor-id | --no-vendor-id

Description

discover provides an extensible hardware detection and reporting interface. Hardware information is stored in an XML data format and can be retrieved across the network.

Fundamental modes of operation:

  • Display a list of hardware devices based on type of device or system bus on which the devices reside, via --type-summary or --bus-summary (the latter of which is the default behavior).

  • Query specified data for attached hardware, via --data-path.

Options

-h | --help

Display a simple help message.

-v | --verbose

Instruct the tool to provide feedback as it operates. This will affect the output as discover parses certain arguments, so this should appear early in the command line.

-V | --version

Display the tool name and version.

-b | --bus-summary

This is the default behavior: Display basic information regarding all devices on the appropriate buses. See Selecting Buses.

-t | --type-summary

Summarize devices by class of hardware. Examples of valid device types include broadband, fixeddisk, display, and network. See Device Types.

--data-path=path/to/data

Query matching devices for detailed information. Device-specific data is stored in a hierarchical fashion, and the query argument comprises strings naming each level in that hierarchy.

Typically, the top-level component of the data path will be the "platform" that will need the information, such as linux or xfree86. For example, to retrieve the Linux kernel module name for a piece of hardware, the --data-path argument would be linux/module/name.

If multiple --data-path arguments are given and no format string (see --format) is provided, only the last path is used.

See also the --data-version argument.

--data-version=version

Specify a version string for the platform that will use the information specified by the argument to --data-path.

This string must be in dotted-decimal notation in order to be matched against a range of values, and thus may be shorter than the real version.

--format=format string

Dictate the output of the results of the queries specified by --data-path arguments. This format string should follow printf(3) specifications, although only %s and appropriate flags, precision, and width values are supported (or make sense); literal text and %% can also be used. The behavior when the string is poorly formatted is undefined. See also --normalize-whitespace.

-d | --disable-bus=bus

Use this option to override the list of buses to scan by default as defined in discover.conf. Use all as an argument to disable all buses; this is useful only if followed by --enable-bus (or -e) arguments.

-e | --enable-bus=bus

Specify a bus to be scanned.

--insert-url=url

Insert a URL at the head of the list of network resources to include in the search for hardware information. Earlier data overrides later data; to override the local data sources, insert URLs into the list. See also --append-url.

--append-url=url

Append a URL to the end of the list of network resources to search for hardware information. See also --insert-url.

--model

Include the model description in summary information. This is enabled by default.

--model-id

Include the numeric model identifier in summary information.

--no-model

Do not include the model description in summary information.

--no-model-id

Do not include the numeric model identifier in summary information. This is the default.

--vendor

Include the vendor description in summary information. This is enabled by default.

--vendor-id

Include the numeric vendor identifier in summary information.

--no-vendor

Do not include the vendor description in summary information.

--no-vendor-id

Do not include the numeric vendor identifier in summary information. This is the default.

--normalize-whitespace

Consolidate whitespace in the results of a --data-path query. The default is not to do so, which faithfully reproduces all text in the raw XML data.

With this option enabled, leading and trailing whitespace is removed, and any consecutive internal whitespaces are compressed to a single space character.

Selecting Buses

discover.conf defines two lists of system buses: one to scan by default (used by the discover command), and one never to scan (used by the Discover library).

You can override and/or extend the list of default buses with --disable-bus and --enable-bus. The list of buses not to scan cannot be overridden without changing discover.conf, so that list should be used only for buses that may be dangerous to probe.

Both arguments take the string "all" as a value.

If a bus summary is being performed, which is indicated either by the presence of --bus-summary or the absence of --type-summary and --data-path, any unattached arguments on the command line will be interpreted as the only buses to scan. This is equivalent to using --disable-bus all before invoking --enable-bus for the buses of interest.

The following buses are currently supported by Discover:

  • ata

  • pci

  • pcmcia

  • scsi

  • usb

Device Types

Discover defines its own device types, to which the device types used by each bus are mapped. Discover currently recognizes the following device types:

  • audio

    A device capable of producing an analog or digital sound signal is an audio device. Typically, any device commonly referred to as a "sound card" is classified by Discover as an audio device.

  • bridge

    A device that provides access to devices of a different type, commonly on a different bus, is a bridge device. For instance, consumer PCI chipsets often feature a bridge to ATA (also known as IDE) devices.

  • broadband

    An interface device to a computer communications network implemented on top of a technology not explicitly designed for that purpose is a broadband device. Examples include ISDN terminal adapters as well as DSL and cable "modems"; analog phone-line modems are not included in this classification (see "modem" below).

  • display

    A device controlled by the host machine's CPU and capable of producing an analog or digital video signal for output purposes is a display device. Typically, any device commonly referred to as a "video card" is classified by Discover as a display device.

  • fixeddisk

    A high-speed, fixed magnetic storage device such as a hard disk drive is a fixeddisk device. Removable media devices such as floppy disk drives, CD-ROM drives, magneto-optical devices, tape drives, and Compact Flash card readers are not included in this classification.

  • humaninput

    A device that receives tactile input from a person for the purpose of directing a computer's activity is a humaninput device. Examples include keyboards, mice, trackballs, joysticks, gamepads, digital tablets manipulated with a stylus or finger, and so forth. Input devices that rely upon non-tactile means of determining a person's intent, such as speech-recognition devices or cameras, are not included in this classification.

  • imaging

    A device that captures still images for input purposes is an imaging device. Scanners and digital cameras are examples of imaging devices. Motion-capture devices such as television tuner cards, webcams, and digital video cameras are not included in this classification.

  • miscellaneous

    Any device that cannot logically be classified as another device type is a miscellaneous device.

  • modem

    An analog phone-line modulator/demodulator (modem) is classified by Discover as a modem device. No other kind of device is so classified.

  • network

    An interface device to a conventional computer data communications network that does not require the use of a terminal adapter is a network device. For example, Ethernet and Token Ring network interface cards are network devices. Analog phone-line modems; terminal adapters for technologies such as ISDN and DSL; and "cable modems" are not "network" devices.

  • optical

    An optical-technology storage device, often using read-only media, is an optical device. By far the most common examples of these devices are CD-ROM and DVD-ROM drives, including versions of these drives that can "burn" (write to) optical discs.

  • printer

    A device that renders visual output in a permanent or semi-permanent manner to a physical medium is a printer. Typically, any device colloquially referred to as a "printer" is also classified by Discover as a printer.

  • removabledisk

    Storage devices that feature removable media using just about any technology except that of magnetic tape, CD-ROM, and DVD-ROM drives are removabledisk devices. Examples include floppy disk drives, magneto-optical drives, and Compact Flash card readers.

  • tape

    A sequential-access mass storage device using magnetic tape is a tape device. Commonly used for archival and backup purposes, DAT drives are examples of tape devices.

  • video

    A device that produces a real-time digital video signal for input purposes is a video device. Webcams, digital video cameras, and television tuners are examples of video devices. Note that still digital cameras with "movie" capability are not considered video devices unless they can transmit the live video signal to the host in real time.

Examples

Example 9-1. Scan the local buses

# discover
Intel Corporation 82815 Chipset Host Bridge and Memory Controller Hub
unknown unknown
unknown unknown
unknown unknown
Intel Corporation 82815 Chipset IDE controller
Intel Corporation 82815 Chipset USB (A)
Intel Corporation 82815 System Management bus controller
ATI Technologies, Inc. Rage 128 Pro GL [PF]
3Com Corporation 3c905C-TX [Fast Etherlink]
Ensoniq ES1371 [AudioPCI-97]
unknown unknown

Example 9-2. View PCI video cards

# discover -v --type-summary --disable-bus all --enable-bus pci display
Disabled pci
Disabled pcmcia
Disabled scsi
Disabled usb
Enabled pci
Loading XML data... pci Done
Scanning buses... pci Done
ATI Technologies, Inc. Rage 128 Pro GL [PF]

Example 9-3. Query for the driver module for XFree86 server version 4.2.0

# discover --data-path=xfree86/server/device/driver --data-version=4.2.0 display
ati

Example 9-4. Get model and vendor information by type

$ discover -t --no-model
Intel Corporation
NVIDIA Corporation
3Com Corporation
$ discover -t --no-vendor
82815 System Management bus controller
Vanta [NV6]
3c905C-TX [Fast Etherlink]

Files

/etc/discover.conf.d

The directory containing configuration files that control the default behavior for both the discover tool and the Discover library.

/discover/list.xml

An XML file containing URLs with hardware information. This list can be extended with --append-url and --extend-url.

Authors

Josh Bressers, John R. Daily, and G. Branden Robinson developed the current implementation of Discover for Progeny Linux Systems.

The Linux implementation of the system-dependent interfaces is derived from detect, by MandrakeSoft SA.

See Also

discover.conf(5), discover-modprobe(8)


Chapter 10. discover.conf Manual Page

discover.conf

Name

discover.conf -- configuration file format for discover(1)

Description

Discover looks for configuration files in a configuration directory, containing a number of files. These define the system buses that should be scanned by default, those that should never be scanned, and the URLs for hardware data files beyond the local copy provided with the software.

The file format is XML; the DTD is provided with the Discover software, and can be used for informational or validation purposes.

Examples

Example 10-1. Establishing default buses to scan


<?xml version="1.0"?>

<!DOCTYPE conffile SYSTEM "conffile.dtd">

<conffile>
  <busscan scan="default">
    <bus name="ata"/>
    <bus name="pci"/>
    <bus name="pcmcia"/>
    <bus name="scsi"/>
    <bus name="usb"/>
  </busscan>
</conffile>

Example 10-2. A more complex example


<?xml version="1.0"?>

<!DOCTYPE conffile SYSTEM "conffile.dtd">

<conffile>
  <busscan scan="default">
    <bus name="ata"/>
    <bus name="pci"/>
    <bus name="pcmcia"/>
    <bus name="usb"/>
  </busscan>
  <!-- My ancient SCSI card locks up when probed -->
  <busscan scan="never">
    <bus name="scsi"/>
  </busscan>
  <data-sources>
    <data-source url="http://www.example.com/discover/xfree86.xml"
                 label="Updated XFree86 hardware information">
  </data-sources>
</conffile>

Authors

Josh Bressers, John R. Daily, and G. Branden Robinson developed the current implementation of Discover for Progeny Linux Systems.

The Linux implementation of the system-dependent interfaces is derived from detect, by MandrakeSoft SA.

See Also

discover(1)


Chapter 11. discover-modprobe Manual Page

discover-modprobe

Name

discover-modprobe -- kernel module loading using discover(1)

Synopsis

discover-modprobe [-n] [-v]

Description

discover-modprobe loads kernel modules identified by discover. It will typically be invoked automatically at boot time.

Options

-n

Echo the modprobe invocations instead of running them.

-v

Be verbose.

Files

/etc/discover-modprobe.conf

This configuration file defines the types of modules to load by default, and specific modules not to load.

/var/lib/discover/crash

A crash file written and erased each time discover-modprobe attempts to load a module. If the file lingers, the computer is assumed to have crashed while loading that module, and the module name is added to discover-modprobe.conf as a module to skip in the future.

See Also

discover-modprobe.conf(5), modprobe(8), discover(1)


Chapter 12. discover-modprobe.conf Manual Page

discover-modprobe.conf

Name

discover-modprobe.conf -- configuration file for discover-modprobe(5)

Description

discover-modprobe.conf is the configuration file for discover-modprobe, which is responsible for retrieving and loading kernel modules.

Warning

This file is a shell script, and as such is subject to a string variable assignment syntax. No space is allowed between the variable name, the equal (=) sign, and the value(s) assigned. If multiple values are to be assigned, the list must be space-delimited with surrounding quotes.

Two directives can be used in this file: types and skip. Both can be defined multiple times.

types

This describes the classes of hardware that should be scanned and queried.

skip

These modules should never be loaded. See the "Files" section for details on the mechanism for generating these entries automatically.

Files

/var/lib/discover/crash

A crash file written and erased each time discover-modprobe attempts to load a module. If the file lingers, the computer is assumed to have crashed while loading that module, and the module name is added to discover-modprobe.conf as a module to skip in the future.

See Also

discover-modprobe(8), modprobe(8), discover(1)


Chapter 13. The Discover Library

13.1. Library Design Principles

Lazy allocation is used throughout Discover. This means that there are no "init" functions, and no functions to scan the bus. Instead, retrieval functions scan or initialize as necessary. Each of these retrieval functions has an equivalent function for freeing the allocated memory. This is valuable to long-lived processes to aid in memory management, but even short-lived processes may want to use them to force reloading of the information.


13.2. Discover Data Sources

Discover knows about one data source by default: the local data from the discover-data package. Additional sources can be added with the discover_conf_append_url and discover_conf_insert_url functions. As their names suggest, they append or insert URLs on the data source list. Earlier data overrides later data; to override the local data sources, insert URLs.


13.3. The Bus Map

Most high-level operations begin at the bus map. Bus maps (discover_bus_map_t) are retrieved with calls to discover_conf_get_bus_map or discover_conf_get_bus_map_by_name. discover_conf_get_bus_map returns an array of maps, one for each supported bus, with the last element being all 0s. discover_conf_get_bus_map_by_name returns the map for the named bus. The map contains pointers to all the functions that operate on the bus, as well as the scan_default variable, which determines whether the bus is scanned by default. There is also a scan_never variable, but it is for internal use only. The name of the bus is stored in the name variable.

The following functions are available in the bus map. The "get" functions take a single discover_error_t argument and return a list of discover_device_t structures, while the "free" functions take no arguments and return no value.

get_devices

Retrieve the list of devices found on this bus. Returns NULL if the bus is not present on the system, or if no devices are attached to it.

xml_get_busclasses

Retrieve the list of busclasses for this bus (from the XML data sources).

xml_get_devices

Retrieve the list of devices for this bus (from the XML data sources). Note that this is the list of devices that Discover knows about, not the list of devices present on the system.

xml_get_vendors

Retrieve the list of vendors for this bus (from the XML data sources).

xml_get_busclass_urls

Retrieve the list of URLs from which busclass data is retrieved. This function is probably not useful to most clients.

xml_get_device_urls

Retrieve the list of URLs from which device data is retrieved. This function is probably not useful to most clients.

xml_get_vendor_urls

Retrieve the list of URLs from which vendor data is retrieved. This function is probably not useful to most clients.

free_devices

Free the list of devices.

xml_free_busclasses

Free the list of busclasses.

xml_free_devices

Free the list of devices (the XML data, not the list of devices found on the system).

xml_free_vendors

Free the list of vendors.

xml_free_busclass_urls

Free the list of busclass URLs.

xml_free_device_urls

Free the list of device URLs.

xml_free_vendor_urls

Free the list of vendor URLs.


13.4. Scanning the System

Discover provides a few ways to scan the system for information.

You can walk the bus map:

for (i = 0; busmap[i].name; i++) {
    if (busmap[i].scan == DISCOVER_SCAN_DEFAULT) {
        devices = busmap[i].get_devices(&status);
        check_status(status);
        do_something_cool(devices);
    }
}

You can scan a specific bus:

devices = discover_get_pci_devices(&status);
check_status(status);
do_something_cool(devices);

Perhaps most usefully, you can scan for devices of a specific type:

devices = discover_device_find("video", &status);
check_status(status);
do_something_video(devices);


13.5. Using discover_device_t Structures

Now that you have some device structures, what can you do with them? The most interesting operation is retrieving data with discover_device_get_data. Also available are discover_device_get_vendor_name, discover_device_get_model_name, discover_device_get_model_id, and discover_device_get_vendor_id.

discover_device_get_data takes a data path and a version number and searches for the first data structure that matches.

discover_device_get_vendor_name returns the human-readable name for the device's vendor.

discover_device_get_model_name returns the human-readable name for the device's model.

discover_device_get_model_id returns the bus-specific ID for the device model.

discover_device_get_vendor_id returns the bus-specific ID for the device vendor.


Chapter 14. System Dependencies

14.1. API

The system-dependent code (sysdeps) that must be custom-written for each operating system conforms to a very simple API. Discover invokes _discover_get_busname_raw() with no arguments, and expects a linked list of discover_sysdep_data_t structures in return.

The discover_sysdep_data_t structures should contain as much descriptive information as they can regarding the devices discovered. Specifically, the three pieces of information desired are the busclass (device type), vendor identifier, and model identifier, which is a unique identification string that the vendor has provided for the given piece of hardware.

Example 14-1. Linux PCI sysdep code

#include <config.h>

#include <stdio.h>
#include <stdlib.h>

#include <sysdep.h>

discover_sysdep_data_t *
_discover_get_pci_raw(void)
{
    FILE *f;
    char *line = NULL;
    size_t len = 0;
    discover_sysdep_data_t *head = NULL, *node, *last = NULL;
    unsigned int id;

    if ((f = fopen(PATH_PROC_PCI, "r"))) {
        while (getline(&line, &len, f) >= 0) {
            if (line[0] == '\n' || line[0] == '#') {
                continue;
            }

            node = _discover_sysdep_data_new();
            sscanf(line, "%*04x\t%08x", &id);
            node->vendor = (id >> 16);
            node->model = id & 0xffff;

            if (head == NULL) {
                head = node;
                last = head;
            } else {
                last->next = node;
                last = node;
            }
        }
        free(line);
        fclose(f);
    }
    return head;
}

Appendix A. Discover API Reference

The API reference is here.


Appendix B. Discover DTD


<!-- $Progeny$ -->

<!ELEMENT discover-data (location)*>

<!ELEMENT location EMPTY>
<!ATTLIST location bus          NMTOKEN #REQUIRED
                   type         NMTOKEN #REQUIRED
                   url          CDATA   #REQUIRED>

<!ELEMENT busclass_list (busclass)*>
<!ATTLIST busclass_list bus NMTOKEN #REQUIRED>

<!ELEMENT busclass EMPTY>
<!ATTLIST busclass id           NMTOKEN #REQUIRED
                   name         NMTOKEN #REQUIRED>

<!ELEMENT vendor_list (vendor)*>
<!ATTLIST vendor_list bus NMTOKEN #REQUIRED>

<!ELEMENT vendor EMPTY>
<!ATTLIST vendor id             CDATA #REQUIRED
                 name           CDATA #REQUIRED>

<!ELEMENT device_list (device)*>
<!ATTLIST device_list bus NMTOKEN #REQUIRED>

<!ELEMENT device (data)*>
<!ATTLIST device busclass       NMTOKEN #REQUIRED
                 model          CDATA #DEFAULT default
                 model_name     CDATA   #REQUIRED
                 vendor         CDATA #REQUIRED>

<!ELEMENT data (#PCDATA|data)*>
<!ATTLIST data class		NMTOKEN	#REQUIRED
               version		CDATA	#IMPLIED>

<!-- vim:set ai et sts=8 sw=8 tw=0: -->

    

Appendix C. Discover Configuration File DTD


<!-- $Progeny$ -->

<!ELEMENT conffile (busscan*,data-sources?)>

<!ELEMENT data-sources (data-source)*>
<!ELEMENT data-source EMPTY>
<!ATTLIST data-source url          CDATA #REQUIRED
                      label        CDATA #IMPLIED
                      place        NMTOKEN #IMPLIED>

<!ELEMENT busscan (bus)*>

<!-- The attributes will likely be handled by different parts of        -->
<!-- Discover. If there is a list of buses never to scan, the library   -->
<!-- should be aware of it. If there is a list of buses to scan by      -->
<!-- default, that will be of interest to the client tool.              -->
<!ATTLIST busscan scan (default|never) #REQUIRED>

<!ELEMENT bus EMPTY>
<!ATTLIST bus name              NMTOKEN #REQUIRED>

    

Appendix D. Licensing Issue on the Linux Sysdeps

It should be noted that the Linux-specific files in the sysdeps/linux directory of the source distribution are derived from code written for the Detect library by MandrakeSoft SA, and are licensed under the GNU Project's General Public License (GPL).

Note that section 2 of the GPL places requirements on derived works that prevent licensees from exercising some of the permissions granted under the license on the rest of Discover. However, not everyone who modifies or distributes Discover will necessarily be subject to the terms of the GPL. If you do not compile, use, or distribute the Linux sysdeps (for instance, if you are building Discover for FreeBSD), then the license terms on them do not attach.

We realize, however, that it is desirable that all of Discover be under the the same license terms. There are a few possible solutions to this problem:

  • If you do not need the Linux sysdeps, you can delete them from your copy of Discover.

  • You can rewrite the Linux sysdeps. The resulting code will be your work, so the only limitations on you will be those imposed by Discover's license. If you do so, we encourage you to license your rewrite under the same terms as the rest of Discover — in that event, Progeny will be happy to incorporate your code into a future release of Discover.

  • You can contact MandrakeSoft SA and negotiate a different license to their code that is used in the Linux sysdeps.

  • You can contact MandrakeSoft SA and attempt to persuade them to relicense their code that is used in the Linux sydeps under the terms used by the rest of Discover. (MandrakeSoft SA would not have to abandon or assign their copyright.) If you succeed in this effort, please let Progeny know and we will update the license terms on our copy of the MandrakeSoft SA code.

  • You can wait; eventually Progeny employees, or some volunteer, will rewrite the Linux sysdeps and license them under the terms that the rest of Discover uses.

Note

The foregoing discussing is not legal advice and makes no claim to be such. It is a layperson's understanding of the licensing issues from a software developer's perspective. Progeny makes no warranties or guarantees as to the accuracy of the above analysis in a legal context. If you require a professional legal opinion, consult attorneys specializing in copyright and licensed to practice in the jurisdictions of interest to you or to your organization.

Notes

[1]

Other protocols such as FTP are available but deprecated; Discover uses integrity verification mechanisms such as MD5 checksums in the HTTP protocol.

[2]

We would say [2.2,2.3) instead, but, like many Free Software projects, the Linux kernel uses odd minor version numbers to denote unstable, development series of the software, and even minor version numbers to denote stable, production series of the software. In the example, then, we arbitrarily treat all 2.3 series kernels the same as 2.2 kernels.

discover-2.1.2/doc/discover.conf.refentry0000644002342100234210000000763510475523147017112 0ustar perepere $Progeny$ &author.jdaily; 2002 &progeny.inc; discover.conf 5 discover.conf configuration file format for discover(1) Description &discover; looks for configuration files in a configuration directory, containing a number of files. These define the system buses that should be scanned by default, those that should never be scanned, and the URLs for hardware data files beyond the local copy provided with the software. The file format is &xml;; the DTD is provided with the &discover; software, and can be used for informational or validation purposes. Examples Establishing default buses to scan ]]> A more complex example ]]> Authors &name.bress;, &name.jdaily;, and &name.branden; developed the current implementation of &discover; for Progeny Linux Systems. The Linux implementation of the system-dependent interfaces is derived from detect, by MandrakeSoft SA. See Also discover(1) discover-2.1.2/doc/discover-config.10000644002342100234210000000331510655641247015724 0ustar perepere.TH "discover-config" "1" .SH "NAME" discover-config \(em config script .SH "SYNOPSIS" .PP \fBdiscover-config\fR [options] .SH "Description" .PP \fBdiscover-config\fR reports stuff about the package's configuration. .SH "Options" .IP "\fB\-\-VAR\fP" 10 Print the value of the variable VAR followed by a newline. See below for a list of available variables. .IP "\fB-l, \-\-list-vars\fP" 10 List the available variables. .SH "Variables" .IP " \(bu" 6 \fBmajor_version\fP .IP " \(bu" 6 \fBminor_version\fP .IP " \(bu" 6 \fBmicro_version\fP .IP " \(bu" 6 \fBversion\fP .IP " \(bu" 6 \fBcppflags\fP .IP " \(bu" 6 \fBldflags\fP .IP " \(bu" 6 \fBlibs\fP .IP " \(bu" 6 \fBprefix\fP .IP " \(bu" 6 \fBexec_prefix\fP .IP " \(bu" 6 \fBbindir\fP .IP " \(bu" 6 \fBsbindir\fP .IP " \(bu" 6 \fBlibexecdir\fP .IP " \(bu" 6 \fBdatadir\fP .IP " \(bu" 6 \fBsysconfdir\fP .IP " \(bu" 6 \fBsharedstatedir\fP .IP " \(bu" 6 \fBlocalstatedir\fP .IP " \(bu" 6 \fBlibdir\fP .IP " \(bu" 6 \fBincludedir\fP .IP " \(bu" 6 \fBoldincludedir\fP .IP " \(bu" 6 \fBinfodir\fP .IP " \(bu" 6 \fBmandir\fP .IP " \(bu" 6 \fBbuild\fP .IP " \(bu" 6 \fBbuild_cpu\fP .IP " \(bu" 6 \fBbuild_vendor\fP .IP " \(bu" 6 \fBbuild_os\fP .IP " \(bu" 6 \fBhost\fP .IP " \(bu" 6 \fBhost_cpu\fP .IP " \(bu" 6 \fBhost_vendor\fP .IP " \(bu" 6 \fBhost_os\fP .IP " \(bu" 6 \fBtarget\fP .IP " \(bu" 6 \fBtarget_cpu\fP .IP " \(bu" 6 \fBtarget_vendor\fP .IP " \(bu" 6 \fBtarget_os\fP .IP " \(bu" 6 \fBlt_current\fP .IP " \(bu" 6 \fBlt_revision\fP .IP " \(bu" 6 \fBlt_age\fP .\" created by instant / docbook-to-man, Mon 06 Aug 2007, 17:47 discover-2.1.2/doc/discover.conf.50000644002342100234210000000337710475523155015416 0ustar perepere.TH "discover.conf" "5" .SH "NAME" discover.conf \(em configuration file format for discover(1) .SH "Description" .PP \fBDiscover\fP looks for configuration files in a configuration directory, containing a number of files. These define the system buses that should be scanned by default, those that should never be scanned, and the URLs for hardware data files beyond the local copy provided with the software. .PP The file format is XML; the \fIDTD\fR is provided with the \fBDiscover\fP software, and can be used for informational or validation purposes. .SH "Examples" .PP \fBEstablishing default buses to scan\fR .PP .nf .fi .PP .PP \fBA more complex example\fR .PP .nf .fi .PP .SH "Authors" .PP Josh Bressers, John R. Daily, and G. Branden Robinson developed the current implementation of \fBDiscover\fP for Progeny Linux Systems. .PP The Linux implementation of the system-dependent interfaces is derived from \fBdetect\fR, by MandrakeSoft SA. .SH "See Also" .PP discover(1) .\" created by instant / docbook-to-man, Thu 31 Aug 2006, 11:05 discover-2.1.2/doc/GNUmakefile0000644002342100234210000000165510266266026014634 0ustar perepere# $Progeny$ include Makefile doctools= ${top_srcdir}/doctools # According to Norm, we've hit a basic limitation of XSL + # xsltproc. Daniel has to finish the python extension interface to # xsltproc before that functionality will work. ONLINE_TECH= dsssl include ${doctools}/docbook.mk DOXYGEN= /usr/bin/doxygen GUIDE_FILES= \ guide.xml \ discover.refentry \ discover.conf.refentry \ discover-modprobe.refentry \ discover-modprobe.conf.refentry # GNU make is non-POSIX-complaint and completely ignores .DEFAULT, # so declare all target redundant to the one already declared in # the included Makefile. .DEFAULT: all all: ${doc_files} discover-config.refentry: ${top_builddir}/buildtools/config-script.refentry cp ${top_builddir}/buildtools/config-script.refentry $@ guide.html: ${GUIDE_FILES} validate: validate-guide validate-guide: $(call validate,guide.xml) api-reference: ${DOXYGEN} ${srcdir}/Doxyfile discover-2.1.2/doc/Doxyfile0000644002342100234210000000170510266266026014264 0ustar perepere# $Progeny$ PROJECT_NAME= discover # Only include structures defined in headers. EXTRACT_LOCAL_CLASSES= NO # We don't need the headers pointlessly duplicated. VERBATIM_HEADERS= NO # Yeah baby yeah! OPTIMIZE_OUTPUT_FOR_C= YES # warnings QUIET= YES WARNINGS= YES WARN_IF_UNDOCUMENTED= YES WARN_LOGFILE= # input EXCLUDE= ../lib/curl.c ../lib/utils.c FILE_PATTERNS= *.c INPUT= ../lib ../sysdeps/stub \ ../include/discover/discover.h \ ../include/discover/discover-conf.h \ ../include/discover/discover-xml.h \ ../include/discover/sysdep.h # output OUTPUT_DIRECTORY= api-reference OUTPUT_LANGUAGE= English GENERATE_HTML= YES # Directory under ${OUTPUT_DIRECTORY} where output HTML files are placed. HTML_OUTPUT= html GENERATE_MAN= YES # Directory under ${OUTPUT_DIRECTORY} where output man pages are placed. MAN_OUTPUT= man MAN_EXTENSION= .3 MAN_LINKS= YES SOURCE_BROWSER= YES REFERENCED_BY_RELATION= YES REFERENCES_RELATION= YES discover-2.1.2/doc/guide.xml0000644002342100234210000021735510475523124014404 0ustar perepere %progeny-entity; %config-entity; %package-entity; ] > $Progeny$ &author.branden; &author.jdaily; The &discover; Hardware Detection System Discover 2002 Progeny Linux Systems, Inc. 2002 Hewlett-Packard Company &license.mit; Linux is a registered trademark of Linus Torvalds. What Is &discover;? &discover; is a tool that reports information about a system's hardware. It uses operating system-dependent modules (selected at build time) to detect what hardware is actually on the system and provides system-independent interfaces for querying &xml; data sources about this hardware. These data sources contain specific information required to enable support for various devices via defined software interfaces. The tool can be accessed by linking to the &discover; library or by calling discover (which itself links to the &discover; library) and parsing its output. In the future, other interfaces (for example, modules for interpreted languages such as Perl and Python) may be included. Why use &discover;? There are at least a few reasons: Flexibility. &discover; is designed from the ground up to be flexible. It is portable to a variety of operating environments, and its modular design supports the addition of arbitrary methods for querying the host operating system (OS) about installed devices. &discover; is also designed to be flexible in terms of the types of data that can be retrieved. &discover; does not tie the user to retrieving only one type of information, such as the name of the Linux kernel module that should be loaded to support a given device. Instead, &discover; supports the association of arbitrary data with hardware devices, typically through specification of an interface to the hardware in question, such as a Linux kernel module or an XFree86 server driver module. Updatability. Many hardware-autodetection programs suffer from an inherent limitation in that they are restricted to reading hardware lists or databases that are stored on the local filesystem. This is not an efficient approach in the fast-moving world of consumer computer hardware, with new devices constantly being introduced. A couple of months after the latest version of your OS of choice is released, it may fail to recognize that the latest revision of, for instance, a video chipset is compatible with an older one, and can use the same software interfaces. &discover; overcomes this problem by supporting the retrieval of hardware information via &http;Other protocols such as &ftp; are available but deprecated; &discover; uses integrity verification mechanisms such as MD5 checksums in the &http; protocol. (over the web). When &http; access is impossible, &discover; falls back to locally stored hardware lists. Portability. On top of its flexibility in terms of system interfaces to hardware, &discover; has been written to be broadly portable to all of today's popular POSIX-compliant systems. &discover; is not a Linux-only solution. &discover; is intended to provide operating system vendors, computer manufacturers, and third-party vendors of software and peripherals with a powerful tool for describing the hardware they support to the interfaces they care about. Because &discover;'s data sources can be anywhere on the Internet, the OS vendor need not be the sole provider of hardware catalogs. Usability. &discover; is not an in-house tool designed to solve a narrow class of problems. &discover; is designed to be easy to use from the perspectives of the individual system administrator, the applications programmer, and the hardware manufacturer or support staff. &discover;'s &xml; database structure, its command-line tools, and its library &api; are well documented and support extensions to meet diverse demands. Freely licensed. &discover; has a copyright license that is highly adaptable to the needs of the varied audiences to which &discover; is targeted. Under the so-called UCB/BSD or MIT/X Consortium terms, after the names of American universities and some very well known software projects that used these terms, anyone is free to copy, modify, and distribute the software, and to extend (or not) these same freedoms to those who receive the software. Progeny would like to see &discover; adopted by a wide variety of existing software products, such the various GNU/Linux distributions; the FreeBSD, NetBSD, and OpenBSD projects; the GNU Project of the Free Software Foundation; the XFree86 Project; system integrators; and the designers and manufacturers of computer hardware. We believe that &discover;'s design empowers those with the greatest knowledge of hardware and the software interfaces to that hardware to express that knowledge and make it available to the world, thereby ameliorating an entire class of computer configuration problems. Progeny does not want &discover;'s licensing to stand in the way of realizing that dream, which is why we have chosen these license terms. We must take a moment to explain what &discover; is not: &discover; is not a replacement for the service — usually provided by the underlying operating system kernel or a user-space program that interfaces with it — of simply translating bus-specific vendor and model identifiers to human-readable names. &discover; performs its own translations of this data as a convenience for generating human-readable reports, but it does not attempt to enumerate all hardware devices that exist for a particular bus architecture. Rather, &discover; is intended only to catalog data for which there is some useful information to impart regarding software interfaces. Facilities already exist in modern operating systems for answering the questions What is the name of this device? and Who manufactured it? &discover;'s role is to answer questions like What Linux kernel module do I need to load for this device to work? More importantly, &discover; will enable you to provide answers in the future to questions you don't even expect to ask today. &discover; is not intended to be a comprehensive hardware-management tool. It is an enabling technology, designed to provide data that a tool layered above it can use. Two applications are provided with &discover; to demonstrate how the library can be leveraged: the command-line utility &discover-command;, and a Linux kernel module loading script, discover-modprobe, designed to be invoked at system boot time. This manual is divided into four parts. First, we examine the &discover; &xml; data file format, exploring the elements and attributes used to describe hardware and various interfaces to it. This part will enable you to read and understand a &discover; &xml; file. Next, we offer some recommendations for writing your own &discover; &xml; data. Knowing the syntax is valuable, but knowing how best to take advantage of it is even more useful. We then present the reference pages describing Progeny's &discover;-based command-line tools and the configuration files used to control their behavior. You may want to use these references as a guide when implementing your own &discover;-based applications. The final part describes the &discover; library &api; so that you can develop your own solutions based on &discover;. Appendices offer references to the formal descriptions of the &discover; &api; and &xml; &dtd;s. Data Structure Overview of the &discover; Data Format Most modern computer peripherals contain self-identifying information in a format standardized for the hardware interface (bus). This enables the OS on the host system to query or scan a bus and catalog the devices. In general, the OS stores this information in the same basic format in which it is returned, without translating it more times than necessary for device drivers to communicate with the peripheral. However, this information varies by bus type and is often insufficiently clear for human consumption. Furthermore, many operating systems do not contain a comprehensive database that maps each peripheral to every subsystem running on the OS that may want to communicate with that peripheral. &discover; addresses these issues by providing flexible databases stored in &xml; format. Extensible Markup Language (&xml;) is a highly flexible hypertext format. &discover; uses &xml; exclusively to store hardware information externally. Some familiarity with &xml; syntax is therefore assumed. For more information, see the W3C's &xml; website. For a formal description of &discover;'s &xml; data format, see the &discover; Document Type Definition (&dtd;) document. The purpose of this document is to present the information in a form digestible by the novice. Because each hardware bus type, such as &pci; or &usb;, communicates different details about the connected devices (essentially, each one solves the same problem in a different way), &discover; has a different set of lists for each bus type. For each bus, up to three lists are stored: a bus class list maps the bus specification's notion of a device type (hereinafter referred to as a device class to reduce confusion) to &discover;'s device types, which are used for running selective queries; a vendor list associates bus-specific vendor identification data with natural-language names for hardware vendors; and a device list contains information specific to individual devices. Master List When &discover; is provided with a &url; for the retrieval of hardware information, the data retrieved is expected to be in &xml; format and to contain further &url;s for retrieval. The root element must be discover-data, which has no attributes, and can only contain location elements. The location element is always empty, and has three required attributes: bus, type, and url. <sgmltag class="element">location</sgmltag> Attributes type This attribute can have one of these values: busclass, device, or vendor. See , , and . url This must be a valid &url; containing one of the three types of data lists. bus This is the bus to which the &url; applies. See for a list of valid bus names. Busclass Lists As noted in the previous chapter, a busclass list provides a mapping between device classes recognized by the hardware bus and the device type names used by &discover;. Because every bus is different, sometimes there is no perfect, one-to-one correspondence between &discover; device types and the device classes recognized by a particular bus. This is one reason that the busclass lists, like other types of &discover; data lists, are updatable. Revisions in a bus specification may demand updates to the mapping. The device classes recognized by a bus are typically determined by the specification for the bus as determined by a standards committee or other technical body, and do not change frequently (if at all). The <sgmltag>busclass_list</sgmltag> element ]]> In the foregoing example, we can see one possible mapping of the &usb; bus's numeric device class IDs to &discover;'s device type names (see ). The file begins by declaring the version of the &xml; standard to which it conforms, and then presents data. The format should be fairly familiar to those accustomed to &html;-style structured markup languages. Not all of &discover;'s supported device types are listed in the example; for example, display is missing. This is not a problem, since not all buses are used for all hardware applications. &usb; 1.1 would be a poor choice of bus for &vga;-compatible display controllers, for instance, because the available bandwidth on the &usb; 1.1 bus is insufficient to handle typical data loads for such devices. Another infelicity in the above example is the association of the ffff device class ID with the &discover; device type imaging. In actuality, a device type class of ffff in the &usb; specification indicates a device of an unknown classification. In practice, most consumer-level devices with this device class are scanners, one of the first applications of &usb; technology in the consumer marketplace. It is possible that in certain deployments, the association of &usb;'s unknown device class ID with &discover;'s imaging device type is suboptimal — another reason the busclass lists are not hard-coded into the library.
The <sgmltag>busclass_list</sgmltag> element A busclass_list element possesses a bus attribute and contains one or more busclass elements.
The <sgmltag>bus</sgmltag> attribute The bus attribute of the busclass_list element is set to the name of the bus being described by the busclass list. The bus attribute presently supports the following values: &bus-classes; We expect to support more buses in the future; ieee1394 and sbus are possible candidates.
The <sgmltag>busclass</sgmltag> element A busclass element possesses two attributes, id and name, and contains no elements.
The <sgmltag>id</sgmltag> attribute The id attribute is set to a bus-specific device class identifier.
The <sgmltag>name</sgmltag> attribute The name attribute is set to a &discover; device type. &discover;'s device types are an effort to balance a few criteria: Device types (bus classes in &discover; terminology) defined by the &pci; specification Bus classes defined by the &usb; specification Bus classes defined by the &scsi; specification Device types commonly conceived of by the personal computer user &discover;'s definitions of device types will not meet with universal agreement; as happens in most categorization problems, some decisions had to be made arbitrarily. &discover; does not attempt to solve the general problem of grouping various peripherals into categories; rather, &discover; solves the problem for itself and uses bus-specific mappings to translate a device's own notion of its type to &discover;'s device type. &device-types;
Vendor Lists Many buses have vendor identification numbers that are registered with that bus's standardization body and programmed into the devices when they are manufactured. These numbers generally are assigned arbitrarily, and typically have little meaning to the end user; therefore, most hardware detection tools provide a way to translate these numeric vendor IDs to human-readable strings. Thus, instead of knowing that your &pci; or &agp; video card was manufactured by 1002, you can determine that it was manufactured by ATI Technologies, Inc. The <sgmltag>vendor_list</sgmltag> element ]]> The foregoing example is similar in structure to the busclass list example; a numeric vendor ID maps to a vendor name, which can be used by &discover; for queries or reports generated for the user's benefit.
The <sgmltag>vendor_list</sgmltag> element A vendor_list element possesses a bus attribute and contains one or more vendor elements.
The <sgmltag>bus</sgmltag> attribute The bus attribute of the vendor_list element is set to the name of the bus being described by the vendor list. The following bus attributes are supported: &bus-classes;
The <sgmltag>vendor</sgmltag> element A vendor element possesses two attributes, id and name, and contains no elements.
The <sgmltag>id</sgmltag> attribute The id attribute is set to a bus-specific vendor identifier.
The <sgmltag>name</sgmltag> attribute The name attribute is set to a human-readable vendor identifier, typically the official name of the corporation or other business entity that designed or manufactured that peripheral.
Device Lists The device lists are the heart of &discover;'s functionality. They are the most frequently updated lists and contain the information of greatest value. &discover;'s device lists not only provide a way to identify individual peripherals by name, but also permit the specification of an arbitrary quantity of organized data for each device, supporting an arbitrary number of software interfaces. The following is a fictitious example. The information within it is for illustrative purposes only. See for a discussion of the real hardware data as provided by Progeny, and for some suggested conventions on organizing the data namespace. Sample device data winston base_address=0x300 manual_override=0 settlement NSA_KEY=96b5f3e3283a62c85f6cb6f4017135c2 ]]> The example above includes a device_list element containing device elements, and a device element that defines the device itself, but reserves any software- or interface-specific details to the data elements it contains. The actual data provided in the example is accessed by means of data paths; see for further information.
The <sgmltag>device_list</sgmltag> element A device_list element possesses a bus attribute and contains one or more device elements.
The <sgmltag>bus</sgmltag> attribute The bus attribute of the device_list element is set to the name of the bus described by the device list. The following bus attributes are supported: &bus-classes;
The <sgmltag>device</sgmltag> element A device element possesses four attributes: busclass vendor model model_name All of these attributes must be specified for each device element. The busclass attribute is set to a busclass identifier, vendor to a vendor identifier, model to a bus-specific model identifier, and model_name to a human-readable vendor identifier, typically the name of the product under which the device reporting the model identifier is sold or otherwise distributed. A device element contains zero or more data elements.
The <sgmltag>data</sgmltag> element A data element possesses a mandatory class attribute, an optional version attribute, and zero or more data elements. The ability to nest data elements inside other data elements affords interface designers and device driver authors the ability to specify a hierarchy of data, instead of being compelled to encapsulate only one piece of data per device for their interface.
The <sgmltag>class</sgmltag> attribute A class attribute is set to an arbitrary value determined by an interface designer. For data elements whose parent element is a device element, this should be the name of the interface being described, such as freebsd, linux, or xfree86. A data element whose parent element is a data element should set this attribute to a term reflecting the interface designer's intended data hierarchy. &discover; does not mandate any particular hierarchy for interface designers.
The <sgmltag>version</sgmltag> attribute Data elements have an optional attribute named version. This indicates a version range applicable to the data contained within the element. The purpose of this attribute is to permit the specification of data that is valid only for a range of versions of the given interface. For example, the Linux kernel changed some of the names of its modules between the 2.2 and 2.4 series. &discover;'s range syntax, common in mathematical writings, is expressed as an interval; that is, it consists of a pair of endpoints with a comma between them, and brackets or parentheses as qualifiers for inclusion or exclusion of the endpoints' exact values. For example, the version specification [1.0, 2.0) matches any version less than 2.0 and greater than or equal to 1.0. It is the responsibility of the calling environment to specify the version of the interface actually in use. In other words, the &discover; library does not take it upon itself to determine the currently running version of the Linux kernel, XFree86 X server, CUPS printing daemon, and so forth. Due to the lack of consistent standards for version numbers (in fact, some version numbers aren't numbers at all), &discover; requires simplifications for the version attribute. The versions that express the range must be in dotted-decimal form, such as 7.1.0. The version that is supplied to the &discover; library as part of a query (for example, via the argument to &discover-command;) may or may not comply with this requirement, but should be expressed such that it compares in a desirable way against version strings that do. In place of the upper end of the range, inf (infinity) can be used if the information is still relevant and should be for forseeable versions.
Accessing the Device Data &discover; data is grouped into hierarchical data elements. This data can be accessed via its data path. The data path is the concatenation of the class attribute values of a data element and all its parents, separated by slash (/) characters. In the following example, quux is accessed via the data path foo/bar: quux ]]> In above, we would determine the name of the Linux kernel module (winston) for the Cerebral Reprogrammer device by referencing the data path linux/module/name; similarly, the data path win2k/hal_driver/flags returns NSA_KEY=96b5f3e3283a62c85f6cb6f4017135c2.
Recommended Data Content Conventions As discussed in the preface, &discover; is not intended to be a replacement for system utilities such as lspci on Linux. A device element should exist for a piece of hardware only if there is some interface information to communicate about the hardware; that is, some data elements to house within the device element. This part of the manual contains Progeny's recommendations on how to organize that information for maximum utility. Data Hierarchy As discussed in , the &xml; structure around the data allows for a hierarchical view. While &discover; does not mandate any particular hierarchy or namespace organization for data elements, the &xml; files provided by Progeny express — and some applications based on &discover; (such as discover-modprobe) expect — a certain structure for Linux kernel module and XFree86 configuration information. At Progeny, we have often found it convenient to refer to a top-level data element's class attribute value as an interface (see the following example). Defining an interface XF86_SVGA untrusted ]]> In , two interfaces have been defined for the Stingray device: xfree86 and openbsd.
Linux Kernel Modules A hardware device that requires a particular Linux kernel module should have nested data elements to describe that module. The top-level data element should have a class attribute with a value of linux. Underneath that should be a data element with a class of module. Within that data element, there should be one or two more, one with a class of name, and an optional one with a class of options. The former has as content the name of the module; the latter, options to be passed to modprobe.
Linux interface
In , each component of the tree represents a data element; the label is the value of its class attribute. If the kernel version affects the choice of module name or options, the top-level linux data element should have a version range attribute; see . Using the <sgmltag class="attvalue">linux</sgmltag> interface hisax io=0x300 irq=11 ]]> See for guidance on how to specify different Linux kernel modules for the same device, depending on the version of the Linux kernel in use.
XFree86 X Servers The data hierarchy of a video card device (&discover;'s display type) should include a top-level data element with a class attribute of xfree86 (the interface) and likely with a version attribute as well; nested within that element will be a server data element containing a name data element identifying the name of the server executable. For XFree86 version 4.0 or greater, the name will always be XFree86, and the server data element will also contain a device data element, which contains one or more data elements communicating information to be stored in the XF86Config file. The children of the device data element are named in correspondence with the syntax of the XF86Config file's Device section; see the XF86Config manual page for further information. In particular, note that in many cases only a driver data element is necessary.
XFree86 interface
illustrates the xfree86 interface. shows how you might write xfree86 interface information for a &discover; display device. Using the <sgmltag class="attvalue">xfree86</sgmltag> interface XFree86 ati XF86_Mach64 ]]>
Locally-Defined Interfaces Progeny recommends that publicly distributed &discover; &xml; files avoid using the interface name local; that is, a class attribute value of local in a top-level data element. This means that data paths such as local/foo/bar should not be defined in a public &discover; &xml; file, but both foo/bar/local and foo/local/bar are okay. The intention is to reserve this part of the namespace for users' experiments with defining their own — and possibly future, widely adopted — interface definitions for &discover; data. An interface definition could thus be beta tested by a person or organization to ensure that it is efficiently structured before it is unleashed upon the world elsewhere in the namespace, where people may write tools that expect to be able to resolve the interface definition's data paths. Likewise, Progeny recommends that authors of applications that use &discover; avoid traversing into a top-level local data element, which may impose an undesirable support burden on the designers of the interface while they are still working out their design. (The application also may not find the data it desires, or may not get back what it expects.)
Why Order Matters When searching device elements, the first exact match will be selected. Subsequent matches are ignored. Specifically, three comparisons are made: The hardware must provide identification that matches attributes of the device element. As an example, a &pci; device supplies numeric vendor and model identifiers, which are used to match the model and vendor attributes. The class attributes of child data elements must match the data path as given to the library for searching. The first version range, if any, associated with the nested data elements must encompass any version provided by the client. Matching <sgmltag>device</sgmltag> elements Assume that the path linux/module/name is provided, along with a version of 2.4.2. The following is sample data; the device elements may be from the same or different data files. ]]> vg100 ]]> vg100 io=0x300 ]]> vg100new ]]> vg100old ]]> This item is the first one scanned, and would match, except that the requested data path includes module as a component, not modules as specified here. This item doesn't match because the provided range is outside the limits defined by the element. (2.4.2 is not greater than or equal to 2.0 and less than 2.2.) This item matches because no range is given, so vg100new is the value returned. This is the nearest match, but the &discover; library will never select it because its previous sibling has no version range, and thus will catch any version provided. Using Data Versioning
Specifying a Range Because multiple versions of a software interface often are in simultaneous deployment, Progeny recommendeds that the upper bound of a data element's version attribute be defined as the first version that is inconsistent with the information provided within it, and that the upper end of the interval be open (terminated with a parenthesis). As an example, suppose we know that the name of the Linux kernel module to drive the RealTek RTL-8139 Ethernet device was rtl8139 in the 2.2 kernel series and 8139too in the 2.4 series. To express this, we would say the following: Using the <sgmltag>version</sgmltag> attribute of the <sgmltag>data</sgmltag> element 8139too rtl8139 ]]> In the first data element, for instance, we would not use a version attribute of [2.2.0,2.2.19] because it is needlessly specific. What happens if the Linux kernel developers release Linux kernel 2.2.20? By saying [2.2,2.4), we catch everything in the kernel 2.2 seriesWe would say [2.2,2.3) instead, but, like many Free Software projects, the Linux kernel uses odd minor version numbers to denote unstable, development series of the software, and even minor version numbers to denote stable, production series of the software. In the example, then, we arbitrarily treat all 2.3 series kernels the same as 2.2 kernels. — past, present, and future.
How the &discover; Library Matches a Range The data files will be searched in order; the first data path that matches the version range or doesn't have a version range will be returned. Recalling the discussion in , if you want the first data element matching the requested data path to also be the fallback element if no version range applies, you can duplicate that data element and place it at the end. However, a better practice is to make certain that all reasonable versions will match one of the ranges, and that the first range listed has an open-ended high end, such as [2.4, inf) for Linux kernel modules in . This will have the effect of assuming that all unversioned requests for linux data will be for Linux kernel 2.4 or later.
Command-Line Tools <command>discover</command> Manual Page &discover-1; <filename>discover.conf</filename> Manual Page &discover-conf-5; <command>discover-modprobe</command> Manual Page &discover-modprobe-8; <filename>discover-modprobe.conf</filename> Manual Page &discover-modprobe-conf-5; Library The &discover; Library
Library Design Principles Lazy allocation is used throughout &discover;. This means that there are no init functions, and no functions to scan the bus. Instead, retrieval functions scan or initialize as necessary. Each of these retrieval functions has an equivalent function for freeing the allocated memory. This is valuable to long-lived processes to aid in memory management, but even short-lived processes may want to use them to force reloading of the information.
&discover; Data Sources &discover; knows about one data source by default: the local data from the discover-data package. Additional sources can be added with the discover_conf_append_url and discover_conf_insert_url functions. As their names suggest, they append or insert &url;s on the data source list. Earlier data overrides later data; to override the local data sources, insert &url;s.
The Bus Map Most high-level operations begin at the bus map. Bus maps (discover_bus_map_t) are retrieved with calls to discover_conf_get_bus_map or discover_conf_get_bus_map_by_name. discover_conf_get_bus_map returns an array of maps, one for each supported bus, with the last element being all 0s. discover_conf_get_bus_map_by_name returns the map for the named bus. The map contains pointers to all the functions that operate on the bus, as well as the scan_default variable, which determines whether the bus is scanned by default. There is also a scan_never variable, but it is for internal use only. The name of the bus is stored in the name variable. The following functions are available in the bus map. The get functions take a single discover_error_t argument and return a list of discover_device_t structures, while the free functions take no arguments and return no value. get_devices Retrieve the list of devices found on this bus. Returns NULL if the bus is not present on the system, or if no devices are attached to it. xml_get_busclasses Retrieve the list of busclasses for this bus (from the &xml; data sources). xml_get_devices Retrieve the list of devices for this bus (from the &xml; data sources). Note that this is the list of devices that &discover; knows about, not the list of devices present on the system. xml_get_vendors Retrieve the list of vendors for this bus (from the &xml; data sources). xml_get_busclass_urls Retrieve the list of &url;s from which busclass data is retrieved. This function is probably not useful to most clients. xml_get_device_urls Retrieve the list of &url;s from which device data is retrieved. This function is probably not useful to most clients. xml_get_vendor_urls Retrieve the list of &url;s from which vendor data is retrieved. This function is probably not useful to most clients. free_devices Free the list of devices. xml_free_busclasses Free the list of busclasses. xml_free_devices Free the list of devices (the &xml; data, not the list of devices found on the system). xml_free_vendors Free the list of vendors. xml_free_busclass_urls Free the list of busclass &url;s. xml_free_device_urls Free the list of device &url;s. xml_free_vendor_urls Free the list of vendor &url;s.
Scanning the System &discover; provides a few ways to scan the system for information. You can walk the bus map: You can scan a specific bus: Perhaps most usefully, you can scan for devices of a specific type:
Using <type>discover_device_t</type> Structures Now that you have some device structures, what can you do with them? The most interesting operation is retrieving data with discover_device_get_data. Also available are discover_device_get_vendor_name, discover_device_get_model_name, discover_device_get_model_id, and discover_device_get_vendor_id. discover_device_get_data takes a data path and a version number and searches for the first data structure that matches. discover_device_get_vendor_name returns the human-readable name for the device's vendor. discover_device_get_model_name returns the human-readable name for the device's model. discover_device_get_model_id returns the bus-specific ID for the device model. discover_device_get_vendor_id returns the bus-specific ID for the device vendor.
System Dependencies
&api; The system-dependent code (sysdeps) that must be custom-written for each operating system conforms to a very simple &api;. &discover; invokes _discover_get_busname_raw() with no arguments, and expects a linked list of discover_sysdep_data_t structures in return. The discover_sysdep_data_t structures should contain as much descriptive information as they can regarding the devices discovered. Specifically, the three pieces of information desired are the busclass (device type), vendor identifier, and model identifier, which is a unique identification string that the vendor has provided for the given piece of hardware. Linux &pci; sysdep code #include #include #include discover_sysdep_data_t * _discover_get_pci_raw(void) { FILE *f; char *line = NULL; size_t len = 0; discover_sysdep_data_t *head = NULL, *node, *last = NULL; unsigned int id; if ((f = fopen(PATH_PROC_PCI, "r"))) { while (getline(&line, &len, f) >= 0) { if (line[0] == '\n' || line[0] == '#') { continue; } node = _discover_sysdep_data_new(); sscanf(line, "%*04x\t%08x", &id); node->vendor = (id >> 16); node->model = id & 0xffff; if (head == NULL) { head = node; last = head; } else { last->next = node; last = node; } } free(line); fclose(f); } return head; }]]>
&discover; &api; Reference The &api; reference is here. &discover; &dtd; &discover; Configuration File &dtd; Licensing Issue on the Linux Sysdeps It should be noted that the Linux-specific files in the sysdeps/linux directory of the source distribution are derived from code written for the Detect library by MandrakeSoft SA, and are licensed under the GNU Project's General Public License (GPL). Note that section 2 of the GPL places requirements on derived works that prevent licensees from exercising some of the permissions granted under the license on the rest of &discover;. However, not everyone who modifies or distributes &discover; will necessarily be subject to the terms of the GPL. If you do not compile, use, or distribute the Linux sysdeps (for instance, if you are building &discover; for FreeBSD), then the license terms on them do not attach. We realize, however, that it is desirable that all of &discover; be under the the same license terms. There are a few possible solutions to this problem: If you do not need the Linux sysdeps, you can delete them from your copy of &discover;. You can rewrite the Linux sysdeps. The resulting code will be your work, so the only limitations on you will be those imposed by &discover;'s license. If you do so, we encourage you to license your rewrite under the same terms as the rest of &discover; — in that event, Progeny will be happy to incorporate your code into a future release of &discover;. You can contact MandrakeSoft SA and negotiate a different license to their code that is used in the Linux sysdeps. You can contact MandrakeSoft SA and attempt to persuade them to relicense their code that is used in the Linux sydeps under the terms used by the rest of &discover;. (MandrakeSoft SA would not have to abandon or assign their copyright.) If you succeed in this effort, please let Progeny know and we will update the license terms on our copy of the MandrakeSoft SA code. You can wait; eventually Progeny employees, or some volunteer, will rewrite the Linux sysdeps and license them under the terms that the rest of &discover; uses. The foregoing discussing is not legal advice and makes no claim to be such. It is a layperson's understanding of the licensing issues from a software developer's perspective. Progeny makes no warranties or guarantees as to the accuracy of the above analysis in a legal context. If you require a professional legal opinion, consult attorneys specializing in copyright and licensed to practice in the jurisdictions of interest to you or to your organization.
discover-2.1.2/doc/discover-modprobe.refentry0000644002342100234210000000647310475523147017772 0ustar perepere $Progeny$ &author.jdaily; 2002 &progeny.inc; discover-modprobe 8 discover-modprobe kernel module loading using discover(1) discover-modprobe -n -v Description discover-modprobe loads kernel modules identified by &discover-command;. It will typically be invoked automatically at boot time. Options Echo the modprobe invocations instead of running them. Be verbose. Files &sysconfdir;/discover-modprobe.conf This configuration file defines the types of modules to load by default, and specific modules not to load. &crash-snippet; See Also discover-modprobe.conf(5), modprobe(8), discover(1) discover-2.1.2/doc/api-reference/0002755002342100234210000000000010272033370015251 5ustar pereperediscover-2.1.2/doc/api-reference/man/0002755002342100234210000000000010272033370016024 5ustar pereperediscover-2.1.2/doc/api-reference/man/man3/0002755002342100234210000000000010272033371016663 5ustar pereperediscover-2.1.2/doc/api-reference/man/man3/discover_xml_url_t.30000644002342100234210000000002110655642004022645 0ustar perepere.so man3/types.3 discover-2.1.2/doc/api-reference/man/man3/discover_free_devices.30000644002342100234210000000002610655642004023270 0ustar perepere.so man3/discover.h.3 discover-2.1.2/doc/api-reference/man/man3/vendor-xml.c.30000644002342100234210000000370310655642004021270 0ustar perepere.TH "/home/pere/src/debiancvs/pkg-discover/discover/trunk/lib/vendor-xml.c" 3 "28 Jul 2005" "discover" \" -*- nroff -*- .ad l .nh .SH NAME /home/pere/src/debiancvs/pkg-discover/discover/trunk/lib/vendor-xml.c \- Vendor XML data file parsing. .SH SYNOPSIS .br .PP \fC#include 'config.h'\fP .br \fC#include \fP .br \fC#include \fP .br \fC#include \fP .br \fC#include \fP .br \fC#include \fP .br \fC#include \fP .br \fC#include \fP .br \fC#include \fP .br \fC#include \fP .br \fC#include \fP .br .SS "Functions" .in +1c .ti -1c .RI "void \fBdiscover_xml_merge_vendor_url\fP (\fBdiscover_xml_vendor_t\fP **vlist, char *url, \fBdiscover_error_t\fP *status)" .br .ti -1c .RI "\fBdiscover_xml_vendor_t\fP * \fBdiscover_xml_get_vendors\fP (\fBdiscover_bus_t\fP bus, \fBdiscover_error_t\fP *status)" .br .ti -1c .RI "void \fBdiscover_xml_free_vendors\fP (void)" .br .ti -1c .RI "char * \fBdiscover_xml_vendor_id2name\fP (\fBdiscover_xml_vendor_t\fP *vendors, char *id)" .br .ti -1c .RI "char * \fBdiscover_xml_vendor_get_id\fP (\fBdiscover_xml_vendor_t\fP *vendor)" .br .ti -1c .RI "char * \fBdiscover_xml_vendor_get_name\fP (\fBdiscover_xml_vendor_t\fP *vendor)" .br .ti -1c .RI "\fBdiscover_xml_vendor_t\fP * \fBdiscover_xml_vendor_get_next\fP (\fBdiscover_xml_vendor_t\fP *vendor)" .br .ti -1c .RI "\fBdiscover_xml_vendor_t\fP * \fBdiscover_xml_vendor_new\fP (void)" .br .ti -1c .RI "void \fBdiscover_xml_vendor_free\fP (\fBdiscover_xml_vendor_t\fP *vendors)" .br .in -1c .SH "Detailed Description" .PP Vendor XML data file parsing. This file contains the routines needed to properly process the vendor XML data. This file is responsible for handling URLs and storing the XML data during the parsing process. .PP Definition in file \fBvendor-xml.c\fP. .SH "Author" .PP Generated automatically by Doxygen for discover from the source code. discover-2.1.2/doc/api-reference/man/man3/discover_conf_insert_url.30000644002342100234210000000002010655642004024032 0ustar perepere.so man3/conf.3 discover-2.1.2/doc/api-reference/man/man3/discover_xml_busclass_new.30000644002342100234210000000003010655642004024210 0ustar perepere.so man3/busclass_xml.3 discover-2.1.2/doc/api-reference/man/man3/discover_xml_url_new.30000644002342100234210000000002310655642004023175 0ustar perepere.so man3/url_xml.3 discover-2.1.2/doc/api-reference/man/man3/discover_device_copy.30000644002342100234210000000002210655642004023132 0ustar perepere.so man3/device.3 discover-2.1.2/doc/api-reference/man/man3/_discover_get_usb_raw.30000644002342100234210000000002310655642004023302 0ustar perepere.so man3/sysdeps.3 discover-2.1.2/doc/api-reference/man/man3/_discover_get_pcmcia_raw.30000644002342100234210000000002310655642004023745 0ustar perepere.so man3/sysdeps.3 discover-2.1.2/doc/api-reference/man/man3/create_message.30000644002342100234210000000003210655642004021713 0ustar perepere.so man3/discover_error.3 discover-2.1.2/doc/api-reference/man/man3/discover_device_get_vendor_name.30000644002342100234210000000002210655642004025314 0ustar perepere.so man3/device.3 discover-2.1.2/doc/api-reference/man/man3/BUS_COUNT.30000644002342100234210000000002110655642004020343 0ustar perepere.so man3/types.3 discover-2.1.2/doc/api-reference/man/man3/_discover_get_pci_raw.30000644002342100234210000000002310655642004023264 0ustar perepere.so man3/sysdeps.3 discover-2.1.2/doc/api-reference/man/man3/discover_xml_vendor_free.30000644002342100234210000000002610655642004024023 0ustar perepere.so man3/vendor_xml.3 discover-2.1.2/doc/api-reference/man/man3/discover_device_get_data_struct.30000644002342100234210000000002210655642004025334 0ustar perepere.so man3/device.3 discover-2.1.2/doc/api-reference/man/man3/discover_xml_merge_device_url.30000644002342100234210000000002610655642004025025 0ustar perepere.so man3/device_xml.3 discover-2.1.2/doc/api-reference/man/man3/discover_xml_busclass_func_t.30000644002342100234210000000002110655642004024675 0ustar perepere.so man3/types.3 discover-2.1.2/doc/api-reference/man/man3/discover_data_t.30000644002342100234210000000002110655642004022074 0ustar perepere.so man3/types.3 discover-2.1.2/doc/api-reference/man/man3/value.30000644002342100234210000000004710655642004020066 0ustar perepere.so man3/discover_sysdep_device_data.3 discover-2.1.2/doc/api-reference/man/man3/discover_xml_url_get_next.30000644002342100234210000000002310655642004024221 0ustar perepere.so man3/url_xml.3 discover-2.1.2/doc/api-reference/man/man3/discover_sysdep_device_data.30000644002342100234210000000277110655642004024475 0ustar perepere.TH "discover_sysdep_device_data" 3 "28 Jul 2005" "discover" \" -*- nroff -*- .ad l .nh .SH NAME discover_sysdep_device_data \- .SH SYNOPSIS .br .PP \fC#include \fP .PP .SS "Data Fields" .in +1c .ti -1c .RI "char * \fBpath\fP" .br .ti -1c .RI "char * \fBvalue\fP" .br .ti -1c .RI "\fBdiscover_sysdep_device_data\fP * \fBnext\fP" .br .in -1c .SH "Detailed Description" .PP Linked list node, used to return data specific to the sysdep/device in question, to be passed to the user under the 'device' data path. .PP Definition at line 43 of file sysdep.h. .SH "Field Documentation" .PP .SS "struct \fBdiscover_sysdep_device_data\fP* \fBdiscover_sysdep_device_data::next\fP" .PP Pointer to the next data node .PP Definition at line 49 of file sysdep.h. .PP Referenced by _discover_convert_device_data(), _discover_free_sysdep_device_data(), and _discover_sysdep_device_data_new(). .SS "char* \fBdiscover_sysdep_device_data::path\fP" .PP String giving the path for the data (not including 'device' .PP Definition at line 45 of file sysdep.h. .PP Referenced by _discover_convert_device_data(), _discover_free_sysdep_device_data(), and _discover_sysdep_device_data_new(). .SS "char* \fBdiscover_sysdep_device_data::value\fP" .PP String with the data's value .PP Definition at line 47 of file sysdep.h. .PP Referenced by _discover_convert_device_data(), _discover_free_sysdep_device_data(), and _discover_sysdep_device_data_new(). .SH "Author" .PP Generated automatically by Doxygen for discover from the source code. discover-2.1.2/doc/api-reference/man/man3/discover_xml_url_get_type.30000644002342100234210000000002310655642004024224 0ustar perepere.so man3/url_xml.3 discover-2.1.2/doc/api-reference/man/man3/discover_bus_map.30000644002342100234210000000315010655642004022274 0ustar perepere.TH "discover_bus_map" 3 "28 Jul 2005" "discover" \" -*- nroff -*- .ad l .nh .SH NAME discover_bus_map \- .SH SYNOPSIS .br .PP \fC#include \fP .PP .SS "Data Fields" .in +1c .ti -1c .RI "char * \fBname\fP" .br .ti -1c .RI "int \fBscan_default\fP" .br .ti -1c .RI "int \fBscan_never\fP" .br .ti -1c .RI "\fBdiscover_sysdep_raw_func_t\fP * \fBget_raw\fP" .br .in -1c .SH "Detailed Description" .PP Bus scanning information is loaded from the config file. The scan_default member may be set to 0 to avoid scanning a specified bus. If the scan_never flag is set, the bus will never be scanned; this behavior is controlled from the config file. .PP The function pointer exists to allow client code to override the sysdeps; it is used by the unit tests provided with Discover. .PP Definition at line 178 of file discover.h. .SH "Field Documentation" .PP .SS "\fBdiscover_sysdep_raw_func_t\fP* \fBdiscover_bus_map::get_raw\fP" .PP Function pointer that will acquire data .PP Definition at line 186 of file discover.h. .PP Referenced by discover_get_devices(). .SS "char* \fBdiscover_bus_map::name\fP" .PP Human-readable name .PP Definition at line 180 of file discover.h. .PP Referenced by discover_conf_get_bus_name(). .SS "int \fBdiscover_bus_map::scan_default\fP" .PP Boolean (sort of) defining the bus's default behavior .PP Definition at line 182 of file discover.h. .SS "int \fBdiscover_bus_map::scan_never\fP" .PP Never scan this bus if true .PP Definition at line 184 of file discover.h. .PP Referenced by discover_get_devices(). .SH "Author" .PP Generated automatically by Doxygen for discover from the source code. discover-2.1.2/doc/api-reference/man/man3/path.30000644002342100234210000000004710655642004017706 0ustar perepere.so man3/discover_sysdep_device_data.3 discover-2.1.2/doc/api-reference/man/man3/discover_device_get_busclass.30000644002342100234210000000002210655642004024636 0ustar perepere.so man3/device.3 discover-2.1.2/doc/api-reference/man/man3/discover_conf_append_url.30000644002342100234210000000002010655642004023775 0ustar perepere.so man3/conf.3 discover-2.1.2/doc/api-reference/man/man3/discover_error_t.30000644002342100234210000000002110655642004022314 0ustar perepere.so man3/types.3 discover-2.1.2/doc/api-reference/man/man3/discover_xml_busclass_free.30000644002342100234210000000003010655642004024340 0ustar perepere.so man3/busclass_xml.3 discover-2.1.2/doc/api-reference/man/man3/discover_free_func_t.30000644002342100234210000000002110655642004023117 0ustar perepere.so man3/types.3 discover-2.1.2/doc/api-reference/man/man3/busclass_xml.30000644002342100234210000001144610655642004021456 0ustar perepere.TH "Busclass list XML parsing" 3 "28 Jul 2005" "discover" \" -*- nroff -*- .ad l .nh .SH NAME Busclass list XML parsing \- .SS "Functions" .in +1c .ti -1c .RI "void \fBdiscover_xml_merge_busclass_url\fP (\fBdiscover_xml_busclass_t\fP **blist, char *url, \fBdiscover_error_t\fP *status)" .br .ti -1c .RI "\fBdiscover_xml_busclass_t\fP * \fBdiscover_xml_get_busclasses\fP (\fBdiscover_bus_t\fP bus, \fBdiscover_error_t\fP *status)" .br .ti -1c .RI "void \fBdiscover_xml_free_busclasses\fP (void)" .br .ti -1c .RI "char * \fBdiscover_xml_busclass_to_class\fP (char *busclass, \fBdiscover_xml_busclass_t\fP *busclasses)" .br .ti -1c .RI "int \fBdiscover_xml_busclass_cmp\fP (char *busclass, char *discover_class, \fBdiscover_xml_busclass_t\fP *busclasses)" .br .ti -1c .RI "char * \fBdiscover_xml_busclass_get_id\fP (\fBdiscover_xml_busclass_t\fP *busclass)" .br .ti -1c .RI "char * \fBdiscover_xml_busclass_get_name\fP (\fBdiscover_xml_busclass_t\fP *busclass)" .br .ti -1c .RI "\fBdiscover_xml_busclass_t\fP * \fBdiscover_xml_busclass_get_next\fP (\fBdiscover_xml_busclass_t\fP *busclass)" .br .ti -1c .RI "\fBdiscover_xml_busclass_t\fP * \fBdiscover_xml_busclass_new\fP (void)" .br .ti -1c .RI "void \fBdiscover_xml_busclass_free\fP (\fBdiscover_xml_busclass_t\fP *busclasses)" .br .in -1c .SH "Function Documentation" .PP .SS "int discover_xml_busclass_cmp (char * busclass, char * discover_class, \fBdiscover_xml_busclass_t\fP * busclasses)" .PP Compare a busclass to a device class, returning the same kind of value returned by strcmp(3). Note that this function has a special case for the class 'all'; it is considered equal to all busclasses. .PP \fBParameters:\fP .RS 4 \fIbusclass\fP Busclass to compare .br \fIdiscover_class\fP Device class to compare .br \fIbusclasses\fP List of busclasses to search .RE .PP .PP Definition at line 295 of file busclass-xml.c. .PP References discover_xml_busclass_to_class(). .PP Referenced by discover_device_find(). .SS "void discover_xml_busclass_free (\fBdiscover_xml_busclass_t\fP * busclasses)" .PP Free the busclass or list of busclasses. .PP \fBParameters:\fP .RS 4 \fIbusclasses\fP Busclass or list of busclasses to free .RE .PP .PP Definition at line 382 of file busclass-xml.c. .PP Referenced by discover_xml_free_busclasses(). .SS "char* discover_xml_busclass_get_id (\fBdiscover_xml_busclass_t\fP * busclass)" .PP Get the id member of busclass. .PP \fBParameters:\fP .RS 4 \fIbusclass\fP .RE .PP .PP Definition at line 327 of file busclass-xml.c. .SS "char* discover_xml_busclass_get_name (\fBdiscover_xml_busclass_t\fP * busclass)" .PP Get the name member of busclass. .PP \fBParameters:\fP .RS 4 \fIbusclass\fP .RE .PP .PP Definition at line 340 of file busclass-xml.c. .SS "\fBdiscover_xml_busclass_t\fP* discover_xml_busclass_get_next (\fBdiscover_xml_busclass_t\fP * busclass)" .PP Get the next member of busclass (used for traversing lists of busclasses). .PP Definition at line 352 of file busclass-xml.c. .SS "\fBdiscover_xml_busclass_t\fP* discover_xml_busclass_new (void)" .PP Create and initialize a new discover_xml_busclass_t object. .PP Definition at line 363 of file busclass-xml.c. .SS "char* discover_xml_busclass_to_class (char * busclass, \fBdiscover_xml_busclass_t\fP * busclasses)" .PP Return the device class corresponding to a busclass. .PP \fBParameters:\fP .RS 4 \fIbusclass\fP Busclass to look up .br \fIbusclasses\fP List of busclasses to search .RE .PP .PP Definition at line 263 of file busclass-xml.c. .PP Referenced by discover_xml_busclass_cmp(). .SS "void discover_xml_free_busclasses (void)" .PP Free the list of busclasses. .PP Definition at line 247 of file busclass-xml.c. .PP References BUS_COUNT, and discover_xml_busclass_free(). .SS "\fBdiscover_xml_busclass_t\fP* discover_xml_get_busclasses (\fBdiscover_bus_t\fP bus, \fBdiscover_error_t\fP * status)" .PP Get the list of busclasses by bus type. .PP \fBParameters:\fP .RS 4 \fIbus\fP Type of bus for which busclasses are required .br \fIstatus\fP Address in which to place status report .RE .PP .PP Definition at line 213 of file busclass-xml.c. .PP References discover_error::code, discover_xml_get_data_urls(), discover_xml_merge_busclass_url(), discover_xml_url_get_next(), and discover_xml_url_get_url(). .PP Referenced by discover_device_find(), and discover_xml_get_devices(). .SS "void discover_xml_merge_busclass_url (\fBdiscover_xml_busclass_t\fP ** blist, char * url, \fBdiscover_error_t\fP * status)" .PP Merge new busclasses into a list. .PP \fBParameters:\fP .RS 4 \fIblist\fP Address of the list to merge busclasses into .br \fIurl\fP URL of the document defining the busclasses .br \fIstatus\fP Address in which to place status report .RE .PP .PP Definition at line 171 of file busclass-xml.c. .PP References discover_error::code, DISCOVER_EIO, and DISCOVER_EXML. .PP Referenced by discover_xml_get_busclasses(). discover-2.1.2/doc/api-reference/man/man3/discover_device_get_model_id.30000644002342100234210000000002210655642004024573 0ustar perepere.so man3/device.3 discover-2.1.2/doc/api-reference/man/man3/STDIO_READ.30000644002342100234210000000002610655642004020424 0ustar perepere.so man3/load-url.c.3 discover-2.1.2/doc/api-reference/man/man3/discover_conf_get_bus_name.30000644002342100234210000000002010655642004024274 0ustar perepere.so man3/conf.3 discover-2.1.2/doc/api-reference/man/man3/discover_create_message_t.30000644002342100234210000000002110655642004024132 0ustar perepere.so man3/types.3 discover-2.1.2/doc/api-reference/man/man3/discover_xml_url_copy.30000644002342100234210000000002310655642004023356 0ustar perepere.so man3/url_xml.3 discover-2.1.2/doc/api-reference/man/man3/discover_filetype_t.30000644002342100234210000000002110655642004023004 0ustar perepere.so man3/types.3 discover-2.1.2/doc/api-reference/man/man3/_real_discover_conf_get_bus_map.30000644002342100234210000000002210655642004025275 0ustar perepere.so man3/conf.c.3 discover-2.1.2/doc/api-reference/man/man3/discover_error_new.30000644002342100234210000000002010655642004022641 0ustar perepere.so man3/core.3 discover-2.1.2/doc/api-reference/man/man3/discover_error.30000644002342100234210000000405510655642004022004 0ustar perepere.TH "discover_error" 3 "28 Jul 2005" "discover" \" -*- nroff -*- .ad l .nh .SH NAME discover_error \- .SH SYNOPSIS .br .PP \fC#include \fP .PP .SS "Data Fields" .in +1c .ti -1c .RI "\fBdiscover_error_code_t\fP \fBcode\fP" .br .ti -1c .RI "char * \fBmessage\fP" .br .ti -1c .RI "\fBdiscover_create_message_t\fP * \fBcreate_message\fP" .br .in -1c .SH "Detailed Description" .PP All functions that perform some action (as opposed to returning a member of a structure, for example) take an argument of this type. It is used to report that the action succeeded, or why it failed. .PP Definition at line 106 of file discover.h. .SH "Field Documentation" .PP .SS "\fBdiscover_error_code_t\fP \fBdiscover_error::code\fP" .PP Return the error code value that is checked .PP Definition at line 108 of file discover.h. .PP Referenced by _real_discover_conf_get_bus_map(), _real_discover_conf_get_bus_map_by_name(), discover_conf_append_url(), discover_conf_get_bus_map(), discover_conf_get_bus_map_by_name(), discover_conf_get_urls(), discover_conf_insert_url(), discover_conf_load(), discover_conf_name_to_bus(), discover_device_find(), discover_device_get_data(), discover_error_new(), discover_get_devices(), discover_strerror(), discover_xml_get_busclasses(), discover_xml_get_data_urls(), discover_xml_get_devices(), discover_xml_get_urls(), discover_xml_get_vendors(), discover_xml_merge_busclass_url(), discover_xml_merge_device_url(), discover_xml_merge_vendor_url(), and discover_xml_version_cmp(). .SS "\fBdiscover_create_message_t\fP* \fBdiscover_error::create_message\fP" .PP Function pointer into a routine to create a message for us .PP Definition at line 112 of file discover.h. .PP Referenced by discover_conf_load(), discover_device_find(), and discover_error_new(). .SS "char* \fBdiscover_error::message\fP" .PP String containing the message from the last error .PP Definition at line 110 of file discover.h. .PP Referenced by discover_error_free(), and discover_error_new(). .SH "Author" .PP Generated automatically by Doxygen for discover from the source code. discover-2.1.2/doc/api-reference/man/man3/discover_data_get_text.30000644002342100234210000000002210655642004023455 0ustar perepere.so man3/device.3 discover-2.1.2/doc/api-reference/man/man3/discover_xml_busclass_get_id.30000644002342100234210000000003010655642004024652 0ustar perepere.so man3/busclass_xml.3 discover-2.1.2/doc/api-reference/man/man3/vendor_xml.30000644002342100234210000000721710655642004021135 0ustar perepere.TH "Vendor list XML parsing" 3 "28 Jul 2005" "discover" \" -*- nroff -*- .ad l .nh .SH NAME Vendor list XML parsing \- .SS "Functions" .in +1c .ti -1c .RI "void \fBdiscover_xml_merge_vendor_url\fP (\fBdiscover_xml_vendor_t\fP **vlist, char *url, \fBdiscover_error_t\fP *status)" .br .ti -1c .RI "\fBdiscover_xml_vendor_t\fP * \fBdiscover_xml_get_vendors\fP (\fBdiscover_bus_t\fP bus, \fBdiscover_error_t\fP *status)" .br .ti -1c .RI "void \fBdiscover_xml_free_vendors\fP (void)" .br .ti -1c .RI "char * \fBdiscover_xml_vendor_id2name\fP (\fBdiscover_xml_vendor_t\fP *vendors, char *id)" .br .ti -1c .RI "char * \fBdiscover_xml_vendor_get_id\fP (\fBdiscover_xml_vendor_t\fP *vendor)" .br .ti -1c .RI "char * \fBdiscover_xml_vendor_get_name\fP (\fBdiscover_xml_vendor_t\fP *vendor)" .br .ti -1c .RI "\fBdiscover_xml_vendor_t\fP * \fBdiscover_xml_vendor_get_next\fP (\fBdiscover_xml_vendor_t\fP *vendor)" .br .ti -1c .RI "\fBdiscover_xml_vendor_t\fP * \fBdiscover_xml_vendor_new\fP (void)" .br .ti -1c .RI "void \fBdiscover_xml_vendor_free\fP (\fBdiscover_xml_vendor_t\fP *vendors)" .br .in -1c .SH "Function Documentation" .PP .SS "void discover_xml_free_vendors (void)" .PP Free the list of vendors. .PP Definition at line 248 of file vendor-xml.c. .PP References BUS_COUNT, and discover_xml_vendor_free(). .SS "\fBdiscover_xml_vendor_t\fP* discover_xml_get_vendors (\fBdiscover_bus_t\fP bus, \fBdiscover_error_t\fP * status)" .PP Get the list of vendors by bus type. .PP \fBParameters:\fP .RS 4 \fIbus\fP Type of bus for which vendors are required .br \fIstatus\fP Address in which to place status report .RE .PP .PP Definition at line 215 of file vendor-xml.c. .PP References discover_error::code, discover_xml_get_data_urls(), discover_xml_merge_vendor_url(), discover_xml_url_get_next(), and discover_xml_url_get_url(). .PP Referenced by discover_xml_get_devices(). .SS "void discover_xml_merge_vendor_url (\fBdiscover_xml_vendor_t\fP ** vlist, char * url, \fBdiscover_error_t\fP * status)" .PP Merge new vendors into a list. .PP \fBParameters:\fP .RS 4 \fIvlist\fP Address of the list to merge vendors into .br \fIurl\fP URL of the document defining the vendors .br \fIstatus\fP Address in which to place status report .RE .PP .PP Definition at line 173 of file vendor-xml.c. .PP References discover_error::code, DISCOVER_EIO, and DISCOVER_EXML. .PP Referenced by discover_xml_get_vendors(). .SS "void discover_xml_vendor_free (\fBdiscover_xml_vendor_t\fP * vendors)" .PP Free the vendor or list of vendors. .PP \fBParameters:\fP .RS 4 \fIvendors\fP Vendor or list of vendors to free .RE .PP .PP Definition at line 342 of file vendor-xml.c. .PP Referenced by discover_xml_free_vendors(). .SS "char* discover_xml_vendor_get_id (\fBdiscover_xml_vendor_t\fP * vendor)" .PP Get the id member of vendor. .PP Definition at line 290 of file vendor-xml.c. .SS "char* discover_xml_vendor_get_name (\fBdiscover_xml_vendor_t\fP * vendor)" .PP Get the name member of vendor. .PP Definition at line 301 of file vendor-xml.c. .SS "\fBdiscover_xml_vendor_t\fP* discover_xml_vendor_get_next (\fBdiscover_xml_vendor_t\fP * vendor)" .PP Get the next member of vendor. .PP Definition at line 312 of file vendor-xml.c. .SS "char* discover_xml_vendor_id2name (\fBdiscover_xml_vendor_t\fP * vendors, char * id)" .PP Convert a vendor ID to a human-readable string naming the vendor. .PP \fBParameters:\fP .RS 4 \fIvendors\fP List of vendors to search .br \fIid\fP Vendor ID to search for .RE .PP .PP Definition at line 264 of file vendor-xml.c. .SS "\fBdiscover_xml_vendor_t\fP* discover_xml_vendor_new (void)" .PP Create and initialize a new discover_xml_vendor_t structure. .PP Definition at line 323 of file vendor-xml.c. discover-2.1.2/doc/api-reference/man/man3/_discover_sysdep_device_data_new.30000644002342100234210000000002410655642004025472 0ustar perepere.so man3/sysdep.h.3 discover-2.1.2/doc/api-reference/man/man3/_real_discover_conf_get_bus_map_by_name.30000644002342100234210000000002210655642004026767 0ustar perepere.so man3/conf.c.3 discover-2.1.2/doc/api-reference/man/man3/discover_xml_free_busclasses.30000644002342100234210000000003010655642004024670 0ustar perepere.so man3/busclass_xml.3 discover-2.1.2/doc/api-reference/man/man3/stubs.c.30000644002342100234210000000224410655642004020334 0ustar perepere.TH "/home/pere/src/debiancvs/pkg-discover/discover/trunk/sysdeps/stub/stubs.c" 3 "28 Jul 2005" "discover" \" -*- nroff -*- .ad l .nh .SH NAME /home/pere/src/debiancvs/pkg-discover/discover/trunk/sysdeps/stub/stubs.c \- Stub system-dependent code. .SH SYNOPSIS .br .PP \fC#include \fP .br \fC#include \fP .br \fC#include \fP .br .SS "Functions" .in +1c .ti -1c .RI "\fBdiscover_sysdep_data_t\fP * \fB_discover_get_ata_raw\fP (void)" .br .ti -1c .RI "\fBdiscover_sysdep_data_t\fP * \fB_discover_get_pci_raw\fP (void)" .br .ti -1c .RI "\fBdiscover_sysdep_data_t\fP * \fB_discover_get_pcmcia_raw\fP (void)" .br .ti -1c .RI "\fBdiscover_sysdep_data_t\fP * \fB_discover_get_scsi_raw\fP (void)" .br .ti -1c .RI "\fBdiscover_sysdep_data_t\fP * \fB_discover_get_usb_raw\fP (void)" .br .in -1c .SH "Detailed Description" .PP Stub system-dependent code. This file represents a dummy OS-dependent hardware interface. These routines are the skeleton structure that must be followed to allow Discover to operate on multiple architectures. .PP Definition in file \fBstubs.c\fP. .SH "Author" .PP Generated automatically by Doxygen for discover from the source code. discover-2.1.2/doc/api-reference/man/man3/discover_data_new.30000644002342100234210000000002210655642004022423 0ustar perepere.so man3/device.3 discover-2.1.2/doc/api-reference/man/man3/discover_device_get_model_name.30000644002342100234210000000002210655642004025117 0ustar perepere.so man3/device.3 discover-2.1.2/doc/api-reference/man/man3/busclass-xml.c.30000644002342100234210000000423110655642004021607 0ustar perepere.TH "/home/pere/src/debiancvs/pkg-discover/discover/trunk/lib/busclass-xml.c" 3 "28 Jul 2005" "discover" \" -*- nroff -*- .ad l .nh .SH NAME /home/pere/src/debiancvs/pkg-discover/discover/trunk/lib/busclass-xml.c \- Busclass XML data file parsing. .SH SYNOPSIS .br .PP \fC#include 'config.h'\fP .br \fC#include \fP .br \fC#include \fP .br \fC#include \fP .br \fC#include \fP .br \fC#include \fP .br \fC#include \fP .br \fC#include \fP .br \fC#include \fP .br \fC#include \fP .br \fC#include \fP .br .SS "Functions" .in +1c .ti -1c .RI "void \fBdiscover_xml_merge_busclass_url\fP (\fBdiscover_xml_busclass_t\fP **blist, char *url, \fBdiscover_error_t\fP *status)" .br .ti -1c .RI "\fBdiscover_xml_busclass_t\fP * \fBdiscover_xml_get_busclasses\fP (\fBdiscover_bus_t\fP bus, \fBdiscover_error_t\fP *status)" .br .ti -1c .RI "void \fBdiscover_xml_free_busclasses\fP (void)" .br .ti -1c .RI "char * \fBdiscover_xml_busclass_to_class\fP (char *busclass, \fBdiscover_xml_busclass_t\fP *busclasses)" .br .ti -1c .RI "int \fBdiscover_xml_busclass_cmp\fP (char *busclass, char *discover_class, \fBdiscover_xml_busclass_t\fP *busclasses)" .br .ti -1c .RI "char * \fBdiscover_xml_busclass_get_id\fP (\fBdiscover_xml_busclass_t\fP *busclass)" .br .ti -1c .RI "char * \fBdiscover_xml_busclass_get_name\fP (\fBdiscover_xml_busclass_t\fP *busclass)" .br .ti -1c .RI "\fBdiscover_xml_busclass_t\fP * \fBdiscover_xml_busclass_get_next\fP (\fBdiscover_xml_busclass_t\fP *busclass)" .br .ti -1c .RI "\fBdiscover_xml_busclass_t\fP * \fBdiscover_xml_busclass_new\fP (void)" .br .ti -1c .RI "void \fBdiscover_xml_busclass_free\fP (\fBdiscover_xml_busclass_t\fP *busclasses)" .br .in -1c .SH "Detailed Description" .PP Busclass XML data file parsing. This file contains the routines needed to properly process the busclass XML data. This file is responsible for handling URLs and actually storing the XML data during the parsing process. .PP Definition in file \fBbusclass-xml.c\fP. .SH "Author" .PP Generated automatically by Doxygen for discover from the source code. discover-2.1.2/doc/api-reference/man/man3/discover_conf_get_urls.30000644002342100234210000000002010655642004023470 0ustar perepere.so man3/conf.3 discover-2.1.2/doc/api-reference/man/man3/discover_micro_version.30000644002342100234210000000002010655642004023515 0ustar perepere.so man3/core.3 discover-2.1.2/doc/api-reference/man/man3/discover_data_free.30000644002342100234210000000002210655642004022553 0ustar perepere.so man3/device.3 discover-2.1.2/doc/api-reference/man/man3/discover_xml_url_get_label.30000644002342100234210000000002310655642004024322 0ustar perepere.so man3/url_xml.3 discover-2.1.2/doc/api-reference/man/man3/discover_sysdep_device_data_t.30000644002342100234210000000002410655642004025005 0ustar perepere.so man3/sysdep.h.3 discover-2.1.2/doc/api-reference/man/man3/IDLEN.30000644002342100234210000000003010655642004017575 0ustar perepere.so man3/device-xml.c.3 discover-2.1.2/doc/api-reference/man/man3/NAMLEN.30000644002342100234210000000002210655642004017715 0ustar perepere.so man3/conf.c.3 discover-2.1.2/doc/api-reference/man/man3/discover_xml_busclass_t.30000644002342100234210000000002110655642004023662 0ustar perepere.so man3/types.3 ././@LongLink0000000000000000000000000000016300000000000011565 Lustar rootrootdiscover-2.1.2/doc/api-reference/man/man3/_home_pere_src_debiancvs_pkg-discover_discover_trunk_include_discover_.3discover-2.1.2/doc/api-reference/man/man3/_home_pere_src_debiancvs_pkg-discover_discover_trunk_inclu0000644002342100234210000000133410655642004032570 0ustar perepere.TH "/home/pere/src/debiancvs/pkg-discover/discover/trunk/include/discover/ Directory Reference" 3 "28 Jul 2005" "discover" \" -*- nroff -*- .ad l .nh .SH NAME /home/pere/src/debiancvs/pkg-discover/discover/trunk/include/discover/ Directory Reference \- .SS "Files" .in +1c .ti -1c .RI "file \fBdiscover-conf.h\fP" .br .RI "\fIPublic interface for reading Discover configuration data. \fP" .PP .in +1c .ti -1c .RI "file \fBdiscover-xml.h\fP" .br .RI "\fIPublic interface to Discover's XML handling. \fP" .PP .in +1c .ti -1c .RI "file \fBdiscover.h\fP" .br .RI "\fIPublic interface for Discover library. \fP" .PP .in +1c .ti -1c .RI "file \fBsysdep.h\fP" .br .RI "\fIPrivate interface for system dependencies. \fP" .PP .in -1c discover-2.1.2/doc/api-reference/man/man3/conf.c.30000644002342100234210000000762010655642004020124 0ustar perepere.TH "/home/pere/src/debiancvs/pkg-discover/discover/trunk/lib/conf.c" 3 "28 Jul 2005" "discover" \" -*- nroff -*- .ad l .nh .SH NAME /home/pere/src/debiancvs/pkg-discover/discover/trunk/lib/conf.c \- Configuration handling (including XML parsing). .SH SYNOPSIS .br .PP \fC#include 'config.h'\fP .br \fC#include \fP .br \fC#include \fP .br \fC#include \fP .br \fC#include \fP .br \fC#include \fP .br \fC#include \fP .br \fC#include \fP .br \fC#include \fP .br \fC#include \fP .br .SS "Defines" .in +1c .ti -1c .RI "#define \fBdirent\fP direct" .br .ti -1c .RI "#define \fBNAMLEN\fP(d) (d)->d_namlen" .br .in -1c .SS "Enumerations" .in +1c .ti -1c .RI "enum \fBstate\fP { \fBSTART\fP, \fBBUSSCAN\fP, \fBDATA_SOURCES\fP }" .br .ti -1c .RI "enum \fBscan_flag\fP { \fBSCAN_NEVER\fP, \fBSCAN_DEFAULT\fP }" .br .in -1c .SS "Functions" .in +1c .ti -1c .RI "\fBdiscover_bus_map_t\fP * \fB_real_discover_conf_get_bus_map\fP (\fBdiscover_bus_t\fP bus, \fBdiscover_error_t\fP *status)" .br .ti -1c .RI "\fBdiscover_bus_map_t\fP * \fB_real_discover_conf_get_bus_map_by_name\fP (char *name, \fBdiscover_error_t\fP *status)" .br .ti -1c .RI "void \fBdiscover_conf_load\fP (\fBdiscover_error_t\fP *status)" .br .ti -1c .RI "int \fBdiscover_conf_name_to_bus\fP (char *name, \fBdiscover_error_t\fP *status)" .br .ti -1c .RI "\fBdiscover_bus_map_t\fP * \fBdiscover_conf_get_full_bus_map\fP (\fBdiscover_error_t\fP *status)" .br .ti -1c .RI "\fBdiscover_bus_map_t\fP * \fBdiscover_conf_get_bus_map_by_name\fP (char *name, \fBdiscover_error_t\fP *status)" .br .ti -1c .RI "\fBdiscover_bus_map_t\fP * \fBdiscover_conf_get_bus_map\fP (\fBdiscover_bus_t\fP bus, \fBdiscover_error_t\fP *status)" .br .ti -1c .RI "void \fBdiscover_conf_insert_url\fP (char *url, \fBdiscover_error_t\fP *status)" .br .ti -1c .RI "void \fBdiscover_conf_append_url\fP (char *url, \fBdiscover_error_t\fP *status)" .br .ti -1c .RI "\fBdiscover_xml_url_t\fP * \fBdiscover_conf_get_urls\fP (\fBdiscover_error_t\fP *status)" .br .ti -1c .RI "void \fBdiscover_conf_free\fP (void)" .br .ti -1c .RI "char * \fBdiscover_conf_get_bus_name\fP (\fBdiscover_bus_t\fP bus)" .br .ti -1c .RI "char * \fBdiscover_conf_get_filetype_name\fP (\fBdiscover_filetype_t\fP filetype)" .br .in -1c .SH "Detailed Description" .PP Configuration handling (including XML parsing). Configuration-related data is handled here. This file is responsible for loading and parsing the XML data read from the configuration file. This file also holds the routines that are responsible for altering the URL list as requested by the caller. .PP Definition in file \fBconf.c\fP. .SH "Enumeration Type Documentation" .PP .SS "enum \fBscan_flag\fP" .PP Define the values for a scannable bus. .PP Definition at line 93 of file conf.c. .SS "enum \fBstate\fP" .PP Describe the current state within the XML structure. .PP Definition at line 90 of file conf.c. .SH "Function Documentation" .PP .SS "\fBdiscover_bus_map_t\fP* _real_discover_conf_get_bus_map (\fBdiscover_bus_t\fP bus, \fBdiscover_error_t\fP * status)" .PP Function that loads the bus map .PP The 'real' get_bus_map functions don't call conf_load(), which is important to avoid infinite loops. .PP Definition at line 154 of file conf.c. .PP References BUS_COUNT, discover_error::code, and DISCOVER_EBUSNOTFOUND. .PP Referenced by _real_discover_conf_get_bus_map_by_name(). .SS "\fBdiscover_bus_map_t\fP* _real_discover_conf_get_bus_map_by_name (char * name, \fBdiscover_error_t\fP * status)" .PP Internal function that really loads the bus map .PP Definition at line 168 of file conf.c. .PP References _real_discover_conf_get_bus_map(), discover_error::code, and discover_conf_name_to_bus(). .PP Referenced by discover_conf_get_bus_map_by_name(). .SH "Author" .PP Generated automatically by Doxygen for discover from the source code. discover-2.1.2/doc/api-reference/man/man3/dirent.30000644002342100234210000000002210655642004020230 0ustar perepere.so man3/conf.c.3 discover-2.1.2/doc/api-reference/man/man3/discover_device_get_next.30000644002342100234210000000002210655642004023775 0ustar perepere.so man3/device.3 discover-2.1.2/doc/api-reference/man/man3/busclass.30000644002342100234210000000004010655642004020562 0ustar perepere.so man3/discover_sysdep_data.3 discover-2.1.2/doc/api-reference/man/man3/discover_conf_load.30000644002342100234210000000002010655642004022563 0ustar perepere.so man3/conf.3 discover-2.1.2/doc/api-reference/man/man3/device_xml.30000644002342100234210000001161510655642004021074 0ustar perepere.TH "Device list XML parsing" 3 "28 Jul 2005" "discover" \" -*- nroff -*- .ad l .nh .SH NAME Device list XML parsing \- .SS "Functions" .in +1c .ti -1c .RI "void \fBdiscover_xml_merge_device_url\fP (\fBdiscover_device_t\fP **dlist, char *url, \fBdiscover_xml_busclass_t\fP *busclasses, \fBdiscover_xml_vendor_t\fP *vendors, \fBdiscover_error_t\fP *status)" .br .ti -1c .RI "\fBdiscover_device_t\fP * \fBdiscover_xml_get_devices\fP (\fBdiscover_bus_t\fP bus, \fBdiscover_error_t\fP *status)" .br .ti -1c .RI "void \fBdiscover_xml_free_devices\fP (void)" .br .ti -1c .RI "\fBdiscover_device_t\fP * \fBdiscover_xml_find_device\fP (\fBdiscover_device_t\fP *xml_devices, char *target_vendor, char *target_model, \fBdiscover_error_t\fP *status)" .br .ti -1c .RI "\fBdiscover_device_t\fP * \fBdiscover_xml_find_next_device\fP (\fBdiscover_device_t\fP *xml_devices, char *target_vendor, char *target_model, \fBdiscover_error_t\fP *status)" .br .ti -1c .RI "\fBdiscover_device_t\fP * \fBdiscover_xml_get_matching_devices\fP (\fBdiscover_device_t\fP *xml_devices, char *target_vendor, char *target_model, \fBdiscover_error_t\fP *status)" .br .in -1c .SH "Function Documentation" .PP .SS "\fBdiscover_device_t\fP* discover_xml_find_device (\fBdiscover_device_t\fP * xml_devices, char * target_vendor, char * target_model, \fBdiscover_error_t\fP * status)" .PP Find the first device in xml_devices matching target_vendor and/or target_model. (One or both can be specified, but not zero.) .PP \fBParameters:\fP .RS 4 \fIxml_devices\fP List of devices to search .br \fItarget_vendor\fP Vendor for which to search .br \fItarget_model\fP Model for which to search .br \fIstatus\fP Address in which to place status report .RE .PP .PP Definition at line 550 of file device-xml.c. .PP Referenced by discover_xml_find_next_device(), and discover_xml_get_matching_devices(). .SS "\fBdiscover_device_t\fP* discover_xml_find_next_device (\fBdiscover_device_t\fP * xml_devices, char * target_vendor, char * target_model, \fBdiscover_error_t\fP * status)" .PP Find the next device in xml_devices matching target_vendor and/or target_model. (One or both can be specified, but not zero.) .PP The first device in the list is assumed to have been processed, so we simply call \fBdiscover_xml_find_device()\fP on the next pointer. .PP \fBParameters:\fP .RS 4 \fIxml_devices\fP List of devices to search .br \fItarget_vendor\fP Vendor for which to search .br \fItarget_model\fP Model for which to search .br \fIstatus\fP Address in which to place status report .RE .PP .PP Definition at line 594 of file device-xml.c. .PP References discover_xml_find_device(). .PP Referenced by discover_xml_get_matching_devices(). .SS "void discover_xml_free_devices (void)" .PP Free the list of XML devices. .PP Definition at line 531 of file device-xml.c. .PP References BUS_COUNT, and discover_device_free(). .SS "\fBdiscover_device_t\fP* discover_xml_get_devices (\fBdiscover_bus_t\fP bus, \fBdiscover_error_t\fP * status)" .PP Get the list of devices for the required bus. .PP \fBParameters:\fP .RS 4 \fIbus\fP Bus for which the devices are requested .br \fIstatus\fP Address in which to place status report .RE .PP .PP Definition at line 484 of file device-xml.c. .PP References discover_error::code, discover_xml_get_busclasses(), discover_xml_get_data_urls(), discover_xml_get_vendors(), discover_xml_merge_device_url(), discover_xml_url_get_next(), and discover_xml_url_get_url(). .PP Referenced by discover_get_devices(). .SS "\fBdiscover_device_t\fP* discover_xml_get_matching_devices (\fBdiscover_device_t\fP * xml_devices, char * target_vendor, char * target_model, \fBdiscover_error_t\fP * status)" .PP Find and duplicate all devices in xml_devices matching target_vendor and/or target_model. (One or both can be specified, but not zero.) .PP \fBParameters:\fP .RS 4 \fIxml_devices\fP List of devices to search .br \fItarget_vendor\fP Vendor for which to search .br \fItarget_model\fP Model for which to search .br \fIstatus\fP Address in which to place status report .RE .PP .PP Definition at line 614 of file device-xml.c. .PP References discover_device_copy(), discover_device_new(), discover_xml_find_device(), and discover_xml_find_next_device(). .PP Referenced by discover_get_devices(). .SS "void discover_xml_merge_device_url (\fBdiscover_device_t\fP ** dlist, char * url, \fBdiscover_xml_busclass_t\fP * busclasses, \fBdiscover_xml_vendor_t\fP * vendors, \fBdiscover_error_t\fP * status)" .PP Merge new busclasses into a list. .PP \fBParameters:\fP .RS 4 \fIdlist\fP Address of the list to merge busclasses into .br \fIurl\fP URL of the document defining the busclasses .br \fIbusclasses\fP List of busclasses for this bus .br \fIvendors\fP List of vendors for this bus .br \fIstatus\fP Address in which to place status report .RE .PP .PP Definition at line 425 of file device-xml.c. .PP References discover_error::code, DISCOVER_EIO, and DISCOVER_EXML. .PP Referenced by discover_xml_get_devices(). discover-2.1.2/doc/api-reference/man/man3/discover_xml_url_get_bus.30000644002342100234210000000002310655642004024034 0ustar perepere.so man3/url_xml.3 discover-2.1.2/doc/api-reference/man/man3/discover_conf_get_filetype_name.30000644002342100234210000000002010655642004025324 0ustar perepere.so man3/conf.3 discover-2.1.2/doc/api-reference/man/man3/MAXBUFLEN.30000644002342100234210000000003110655642004020264 0ustar perepere.so man3/version-cmp.c.3 discover-2.1.2/doc/api-reference/man/man3/discover_xml_url_func_t.30000644002342100234210000000002110655642004023660 0ustar perepere.so man3/types.3 discover-2.1.2/doc/api-reference/man/man3/discover_conf_get_full_bus_map.30000644002342100234210000000002010655642004025153 0ustar perepere.so man3/conf.3 discover-2.1.2/doc/api-reference/man/man3/discover_major_version.30000644002342100234210000000002010655642004023514 0ustar perepere.so man3/core.3 discover-2.1.2/doc/api-reference/man/man3/raw_sysdep_function_t.30000644002342100234210000000002410655642004023355 0ustar perepere.so man3/sysdep.c.3 discover-2.1.2/doc/api-reference/man/man3/DISCOVER_EDEVICENOTFOUND.30000644002342100234210000000002110655642004022461 0ustar perepere.so man3/types.3 discover-2.1.2/doc/api-reference/man/man3/discover_device_func_t.30000644002342100234210000000002110655642004023435 0ustar perepere.so man3/types.3 discover-2.1.2/doc/api-reference/man/man3/discover_xml_merge_vendor_url.30000644002342100234210000000002610655642004025063 0ustar perepere.so man3/vendor_xml.3 discover-2.1.2/doc/api-reference/man/man3/discover_xml_find_device.30000644002342100234210000000002610655642004023764 0ustar perepere.so man3/device_xml.3 discover-2.1.2/doc/api-reference/man/man3/discover_xml_busclass_cmp.30000644002342100234210000000003010655642004024176 0ustar perepere.so man3/busclass_xml.3 discover-2.1.2/doc/api-reference/man/man3/scan_flag.30000644002342100234210000000002210655642004020660 0ustar perepere.so man3/conf.c.3 discover-2.1.2/doc/api-reference/man/man3/DISCOVER_ENOIMPL.30000644002342100234210000000002110655642004021343 0ustar perepere.so man3/types.3 discover-2.1.2/doc/api-reference/man/man3/range_state.30000644002342100234210000000003110655642004021237 0ustar perepere.so man3/version-cmp.c.3 discover-2.1.2/doc/api-reference/man/man3/discover_device_find.30000644002342100234210000000002210655642004023100 0ustar perepere.so man3/device.3 discover-2.1.2/doc/api-reference/man/man3/DISCOVER_EBADVERSION.30000644002342100234210000000002110655642004022001 0ustar perepere.so man3/types.3 discover-2.1.2/doc/api-reference/man/man3/discover_xml_free_data_urls.30000644002342100234210000000002310655642004024501 0ustar perepere.so man3/url_xml.3 discover-2.1.2/doc/api-reference/man/man3/discover_xml_url_free.30000644002342100234210000000002310655642004023325 0ustar perepere.so man3/url_xml.3 discover-2.1.2/doc/api-reference/man/man3/device-xml.c.30000644002342100234210000000523110655642004021230 0ustar perepere.TH "/home/pere/src/debiancvs/pkg-discover/discover/trunk/lib/device-xml.c" 3 "28 Jul 2005" "discover" \" -*- nroff -*- .ad l .nh .SH NAME /home/pere/src/debiancvs/pkg-discover/discover/trunk/lib/device-xml.c \- Device XML data file parsing. .SH SYNOPSIS .br .PP \fC#include 'config.h'\fP .br \fC#include \fP .br \fC#include \fP .br \fC#include \fP .br \fC#include \fP .br \fC#include \fP .br \fC#include \fP .br \fC#include \fP .br \fC#include \fP .br \fC#include \fP .br \fC#include \fP .br \fC#include \fP .br \fC#include \fP .br \fC#include \fP .br \fC#include \fP .br .SS "Defines" .in +1c .ti -1c .RI "#define \fBIDLEN\fP 5" .br .in -1c .SS "Enumerations" .in +1c .ti -1c .RI "enum \fBstate\fP { \fBSTART\fP, \fBFINISH\fP, \fBDEVICE\fP, \fBDATA\fP }" .br .in -1c .SS "Functions" .in +1c .ti -1c .RI "void \fBdiscover_xml_merge_device_url\fP (\fBdiscover_device_t\fP **dlist, char *url, \fBdiscover_xml_busclass_t\fP *busclasses, \fBdiscover_xml_vendor_t\fP *vendors, \fBdiscover_error_t\fP *status)" .br .ti -1c .RI "\fBdiscover_device_t\fP * \fBdiscover_xml_get_devices\fP (\fBdiscover_bus_t\fP bus, \fBdiscover_error_t\fP *status)" .br .ti -1c .RI "void \fBdiscover_xml_free_devices\fP (void)" .br .ti -1c .RI "\fBdiscover_device_t\fP * \fBdiscover_xml_find_device\fP (\fBdiscover_device_t\fP *xml_devices, char *target_vendor, char *target_model, \fBdiscover_error_t\fP *status)" .br .ti -1c .RI "\fBdiscover_device_t\fP * \fBdiscover_xml_find_next_device\fP (\fBdiscover_device_t\fP *xml_devices, char *target_vendor, char *target_model, \fBdiscover_error_t\fP *status)" .br .ti -1c .RI "\fBdiscover_device_t\fP * \fBdiscover_xml_get_matching_devices\fP (\fBdiscover_device_t\fP *xml_devices, char *target_vendor, char *target_model, \fBdiscover_error_t\fP *status)" .br .in -1c .SH "Detailed Description" .PP Device XML data file parsing. This file contains the routines needed to properly process the device XML data. This file is responsible for handling URLs and storing the XML data during the parsing process. .PP Definition in file \fBdevice-xml.c\fP. .SH "Define Documentation" .PP .SS "#define IDLEN 5" .PP Length (including terminating null) of model and vendor ID strings .PP Definition at line 77 of file device-xml.c. .SH "Enumeration Type Documentation" .PP .SS "enum \fBstate\fP" .PP Representative of the state within the XML data .PP Definition at line 82 of file device-xml.c. .SH "Author" .PP Generated automatically by Doxygen for discover from the source code. discover-2.1.2/doc/api-reference/man/man3/discover_xml_stack_destroy.30000644002342100234210000000002310655642004024400 0ustar perepere.so man3/stack.c.3 discover-2.1.2/doc/api-reference/man/man3/discover_bus_map_t.30000644002342100234210000000002110655642004022611 0ustar perepere.so man3/types.3 discover-2.1.2/doc/api-reference/man/man3/code.30000644002342100234210000000003210655642004017656 0ustar perepere.so man3/discover_error.3 discover-2.1.2/doc/api-reference/man/man3/DISCOVER_EDATANOTFOUND.30000644002342100234210000000002110655642004022233 0ustar perepere.so man3/types.3 discover-2.1.2/doc/api-reference/man/man3/name.30000644002342100234210000000003410655642004017666 0ustar perepere.so man3/discover_bus_map.3 discover-2.1.2/doc/api-reference/man/man3/discover-xml.h.30000644002342100234210000001210210655642004021607 0ustar perepere.TH "/home/pere/src/debiancvs/pkg-discover/discover/trunk/include/discover/discover-xml.h" 3 "28 Jul 2005" "discover" \" -*- nroff -*- .ad l .nh .SH NAME /home/pere/src/debiancvs/pkg-discover/discover/trunk/include/discover/discover-xml.h \- Public interface to Discover's XML handling. .SH SYNOPSIS .br .PP \fC#include \fP .br .SS "Functions" .in +1c .ti -1c .RI "\fBdiscover_device_t\fP * \fBdiscover_xml_find_device\fP (\fBdiscover_device_t\fP *xml_devices, char *target_vendor, char *target_model, \fBdiscover_error_t\fP *status)" .br .ti -1c .RI "\fBdiscover_device_t\fP * \fBdiscover_xml_find_next_device\fP (\fBdiscover_device_t\fP *xml_devices, char *target_vendor, char *target_model, \fBdiscover_error_t\fP *status)" .br .ti -1c .RI "\fBdiscover_device_t\fP * \fBdiscover_xml_get_matching_devices\fP (\fBdiscover_device_t\fP *xml_devices, char *target_vendor, char *target_model, \fBdiscover_error_t\fP *status)" .br .ti -1c .RI "int \fBdiscover_xml_version_cmp\fP (char *range, char *version, \fBdiscover_error_t\fP *status)" .br .ti -1c .RI "\fBdiscover_xml_url_t\fP * \fBdiscover_xml_url_new\fP (void)" .br .ti -1c .RI "void \fBdiscover_xml_url_copy\fP (\fBdiscover_xml_url_t\fP *src, \fBdiscover_xml_url_t\fP *dst)" .br .ti -1c .RI "void \fBdiscover_xml_url_free\fP (\fBdiscover_xml_url_t\fP *urls)" .br .ti -1c .RI "char * \fBdiscover_xml_url_get_url\fP (\fBdiscover_xml_url_t\fP *url)" .br .ti -1c .RI "char * \fBdiscover_xml_url_get_bus\fP (\fBdiscover_xml_url_t\fP *url)" .br .ti -1c .RI "char * \fBdiscover_xml_url_get_type\fP (\fBdiscover_xml_url_t\fP *url)" .br .ti -1c .RI "\fBdiscover_xml_url_t\fP * \fBdiscover_xml_url_get_next\fP (\fBdiscover_xml_url_t\fP *url)" .br .ti -1c .RI "\fBdiscover_xml_url_t\fP * \fBdiscover_xml_url_get_last\fP (\fBdiscover_xml_url_t\fP *url)" .br .ti -1c .RI "char * \fBdiscover_xml_url_get_label\fP (\fBdiscover_xml_url_t\fP *url)" .br .ti -1c .RI "\fBdiscover_xml_url_t\fP * \fBdiscover_xml_get_urls\fP (\fBdiscover_error_t\fP *status)" .br .ti -1c .RI "void \fBdiscover_xml_free_urls\fP (void)" .br .ti -1c .RI "\fBdiscover_xml_url_t\fP * \fBdiscover_xml_get_data_urls\fP (\fBdiscover_bus_t\fP bus, \fBdiscover_filetype_t\fP filetype, \fBdiscover_error_t\fP *status)" .br .ti -1c .RI "void \fBdiscover_xml_free_data_urls\fP (void)" .br .ti -1c .RI "\fBdiscover_xml_busclass_t\fP * \fBdiscover_xml_busclass_new\fP (void)" .br .ti -1c .RI "\fBdiscover_xml_busclass_t\fP * \fBdiscover_xml_get_busclasses\fP (\fBdiscover_bus_t\fP bus, \fBdiscover_error_t\fP *status)" .br .ti -1c .RI "void \fBdiscover_xml_free_busclasses\fP (void)" .br .ti -1c .RI "void \fBdiscover_xml_merge_busclass_url\fP (\fBdiscover_xml_busclass_t\fP **blist, char *filename, \fBdiscover_error_t\fP *status)" .br .ti -1c .RI "char * \fBdiscover_xml_busclass_to_class\fP (char *busclass, \fBdiscover_xml_busclass_t\fP *busclasses)" .br .ti -1c .RI "int \fBdiscover_xml_busclass_cmp\fP (char *busclass, char *discover_class, \fBdiscover_xml_busclass_t\fP *busclasses)" .br .ti -1c .RI "char * \fBdiscover_xml_busclass_get_id\fP (\fBdiscover_xml_busclass_t\fP *busclass)" .br .ti -1c .RI "char * \fBdiscover_xml_busclass_get_name\fP (\fBdiscover_xml_busclass_t\fP *busclass)" .br .ti -1c .RI "\fBdiscover_xml_busclass_t\fP * \fBdiscover_xml_busclass_get_next\fP (\fBdiscover_xml_busclass_t\fP *busclass)" .br .ti -1c .RI "void \fBdiscover_xml_busclass_free\fP (\fBdiscover_xml_busclass_t\fP *busclasses)" .br .ti -1c .RI "\fBdiscover_device_t\fP * \fBdiscover_xml_get_devices\fP (\fBdiscover_bus_t\fP bus, \fBdiscover_error_t\fP *status)" .br .ti -1c .RI "void \fBdiscover_xml_free_devices\fP (void)" .br .ti -1c .RI "void \fBdiscover_xml_merge_device_url\fP (\fBdiscover_device_t\fP **dlist, char *url, \fBdiscover_xml_busclass_t\fP *busclasses, \fBdiscover_xml_vendor_t\fP *vendors, \fBdiscover_error_t\fP *status)" .br .ti -1c .RI "\fBdiscover_xml_vendor_t\fP * \fBdiscover_xml_vendor_new\fP (void)" .br .ti -1c .RI "void \fBdiscover_xml_merge_vendor_url\fP (\fBdiscover_xml_vendor_t\fP **vlist, char *filename, \fBdiscover_error_t\fP *status)" .br .ti -1c .RI "\fBdiscover_xml_vendor_t\fP * \fBdiscover_xml_get_vendors\fP (\fBdiscover_bus_t\fP bus, \fBdiscover_error_t\fP *status)" .br .ti -1c .RI "void \fBdiscover_xml_free_vendors\fP (void)" .br .ti -1c .RI "char * \fBdiscover_xml_vendor_id2name\fP (\fBdiscover_xml_vendor_t\fP *vendors, char *id)" .br .ti -1c .RI "char * \fBdiscover_xml_vendor_get_id\fP (\fBdiscover_xml_vendor_t\fP *vendor)" .br .ti -1c .RI "char * \fBdiscover_xml_vendor_get_name\fP (\fBdiscover_xml_vendor_t\fP *vendor)" .br .ti -1c .RI "\fBdiscover_xml_vendor_t\fP * \fBdiscover_xml_vendor_get_next\fP (\fBdiscover_xml_vendor_t\fP *vendor)" .br .ti -1c .RI "void \fBdiscover_xml_vendor_free\fP (\fBdiscover_xml_vendor_t\fP *vendors)" .br .in -1c .SH "Detailed Description" .PP Public interface to Discover's XML handling. Public interface that exposes Discover's XML routines. These functions are used to read the XML data loaded from the specified configuration file(s). .PP Definition in file \fBdiscover-xml.h\fP. .SH "Author" .PP Generated automatically by Doxygen for discover from the source code. discover-2.1.2/doc/api-reference/man/man3/stack.c.30000644002342100234210000000511510655642004020301 0ustar perepere.TH "/home/pere/src/debiancvs/pkg-discover/discover/trunk/lib/stack.c" 3 "28 Jul 2005" "discover" \" -*- nroff -*- .ad l .nh .SH NAME /home/pere/src/debiancvs/pkg-discover/discover/trunk/lib/stack.c \- Stack routines for Discover. .SH SYNOPSIS .br .PP \fC#include \fP .br \fC#include \fP .br \fC#include \fP .br \fC#include \fP .br \fC#include \fP .br \fC#include \fP .br .SS "Functions" .in +1c .ti -1c .RI "discover_xml_stack * \fBdiscover_xml_stack_new\fP ()" .br .ti -1c .RI "void \fBdiscover_xml_stack_destroy\fP (discover_xml_stack *stack)" .br .ti -1c .RI "void \fBdiscover_xml_stack_push\fP (discover_xml_stack **stack, void *data)" .br .ti -1c .RI "void * \fBdiscover_xml_stack_pop\fP (discover_xml_stack **stack)" .br .ti -1c .RI "void * \fBdiscover_xml_stack_get\fP (discover_xml_stack *stack)" .br .ti -1c .RI "void * \fBdiscover_xml_stack_getbynum\fP (discover_xml_stack *stack, int i)" .br .in -1c .SH "Detailed Description" .PP Stack routines for Discover. This is a generic stack routine that Discover uses. The stack is needed because there wasn't a good way to track the traversal depth through the XML data. These routines brought much sanity to the XML parsing process. They are generic enough that they can be used for any number of applications. .PP Definition in file \fBstack.c\fP. .SH "Function Documentation" .PP .SS "void discover_xml_stack_destroy (discover_xml_stack * stack)" .PP Routine responsible for destroying the stack base once we're done .PP Definition at line 62 of file stack.c. .PP Referenced by discover_xml_stack_pop(). .SS "void* discover_xml_stack_get (discover_xml_stack * stack)" .PP Return the top item without popping it. .PP Definition at line 103 of file stack.c. .SS "void* discover_xml_stack_getbynum (discover_xml_stack * stack, int i)" .PP Return the item at depth i on the stack. .PP Definition at line 109 of file stack.c. .SS "discover_xml_stack* discover_xml_stack_new ()" .PP Routine responsible for creating the base of the stack .PP Definition at line 48 of file stack.c. .PP Referenced by discover_xml_stack_push(). .SS "void* discover_xml_stack_pop (discover_xml_stack ** stack)" .PP Pop an item from the stack. .PP Definition at line 83 of file stack.c. .PP References discover_xml_stack_destroy(). .SS "void discover_xml_stack_push (discover_xml_stack ** stack, void * data)" .PP Push an item onto the stack. .PP Definition at line 69 of file stack.c. .PP References discover_xml_stack_new(). .SH "Author" .PP Generated automatically by Doxygen for discover from the source code. discover-2.1.2/doc/api-reference/man/man3/DISCOVER_EBUSDISABLED.30000644002342100234210000000002110655642004022066 0ustar perepere.so man3/types.3 discover-2.1.2/doc/api-reference/man/man3/DISCOVER_EXML.30000644002342100234210000000002110655642004021005 0ustar perepere.so man3/types.3 discover-2.1.2/doc/api-reference/man/man3/discover_device_free.30000644002342100234210000000002210655642004023101 0ustar perepere.so man3/device.3 ././@LongLink0000000000000000000000000000015200000000000011563 Lustar rootrootdiscover-2.1.2/doc/api-reference/man/man3/_home_pere_src_debiancvs_pkg-discover_discover_trunk_sysdeps_.3discover-2.1.2/doc/api-reference/man/man3/_home_pere_src_debiancvs_pkg-discover_discover_trunk_sysde0000644002342100234210000000046710655642004032613 0ustar perepere.TH "/home/pere/src/debiancvs/pkg-discover/discover/trunk/sysdeps/ Directory Reference" 3 "28 Jul 2005" "discover" \" -*- nroff -*- .ad l .nh .SH NAME /home/pere/src/debiancvs/pkg-discover/discover/trunk/sysdeps/ Directory Reference \- .SS "Directories" .in +1c .ti -1c .RI "directory \fBstub\fP" .br .in -1c discover-2.1.2/doc/api-reference/man/man3/DISCOVER_EBUSNOTFOUND.30000644002342100234210000000002110655642004022153 0ustar perepere.so man3/types.3 discover-2.1.2/doc/api-reference/man/man3/discover_device_t.30000644002342100234210000000002110655642004022422 0ustar perepere.so man3/types.3 discover-2.1.2/doc/api-reference/man/man3/discover_xml_stack_push.30000644002342100234210000000002310655642004023666 0ustar perepere.so man3/stack.c.3 discover-2.1.2/doc/api-reference/man/man3/_discover_free_sysdep_device_data.30000644002342100234210000000002410655642004025622 0ustar perepere.so man3/sysdep.h.3 discover-2.1.2/doc/api-reference/man/man3/discover_sysdep_data.30000644002342100234210000000360110655642004023147 0ustar perepere.TH "discover_sysdep_data" 3 "28 Jul 2005" "discover" \" -*- nroff -*- .ad l .nh .SH NAME discover_sysdep_data \- .SH SYNOPSIS .br .PP \fC#include \fP .PP .SS "Data Fields" .in +1c .ti -1c .RI "char * \fBbusclass\fP" .br .ti -1c .RI "char * \fBvendor\fP" .br .ti -1c .RI "char * \fBmodel\fP" .br .ti -1c .RI "\fBdiscover_sysdep_device_data_t\fP * \fBdata\fP" .br .ti -1c .RI "\fBdiscover_sysdep_data\fP * \fBnext\fP" .br .in -1c .SH "Detailed Description" .PP Linked list node, used to return hardware-identification information discovered by the system-dependent interface .PP Definition at line 56 of file sysdep.h. .SH "Field Documentation" .PP .SS "char* \fBdiscover_sysdep_data::busclass\fP" .PP String describing the general device class .PP Definition at line 58 of file sysdep.h. .PP Referenced by _discover_free_sysdep_data(), and _discover_sysdep_data_new(). .SS "\fBdiscover_sysdep_device_data_t\fP* \fBdiscover_sysdep_data::data\fP" .PP Pointer to any sysdep/device specific data to be returned .PP Definition at line 64 of file sysdep.h. .PP Referenced by _discover_free_sysdep_data(), and _discover_sysdep_data_new(). .SS "char* \fBdiscover_sysdep_data::model\fP" .PP String identifying the model .PP Definition at line 62 of file sysdep.h. .PP Referenced by _discover_free_sysdep_data(), and _discover_sysdep_data_new(). .SS "struct \fBdiscover_sysdep_data\fP* \fBdiscover_sysdep_data::next\fP" .PP Pointer to the next hardware device discovered .PP Definition at line 66 of file sysdep.h. .PP Referenced by _discover_free_sysdep_data(), and _discover_sysdep_data_new(). .SS "char* \fBdiscover_sysdep_data::vendor\fP" .PP String describing the manufacturer or distributor .PP Definition at line 60 of file sysdep.h. .PP Referenced by _discover_free_sysdep_data(), and _discover_sysdep_data_new(). .SH "Author" .PP Generated automatically by Doxygen for discover from the source code. discover-2.1.2/doc/api-reference/man/man3/discover_data_get_next.30000644002342100234210000000002210655642004023447 0ustar perepere.so man3/device.3 discover-2.1.2/doc/api-reference/man/man3/discover_data_get_first.30000644002342100234210000000002210655642004023620 0ustar perepere.so man3/device.3 discover-2.1.2/doc/api-reference/man/man3/discover_xml_vendor_func_t.30000644002342100234210000000002110655642004024353 0ustar perepere.so man3/types.3 discover-2.1.2/doc/api-reference/man/man3/get_raw.30000644002342100234210000000003410655642004020376 0ustar perepere.so man3/discover_bus_map.3 discover-2.1.2/doc/api-reference/man/man3/discover_xml_vendor_t.30000644002342100234210000000002110655642004023340 0ustar perepere.so man3/types.3 discover-2.1.2/doc/api-reference/man/man3/_discover_free_sysdep_data.30000644002342100234210000000002410655642004024303 0ustar perepere.so man3/sysdep.h.3 discover-2.1.2/doc/api-reference/man/man3/DISCOVER_SUCCESS.30000644002342100234210000000002110655642004021350 0ustar perepere.so man3/types.3 discover-2.1.2/doc/api-reference/man/man3/discover_xml_vendor_new.30000644002342100234210000000002610655642004023673 0ustar perepere.so man3/vendor_xml.3 discover-2.1.2/doc/api-reference/man/man3/discover_xml_free_vendors.30000644002342100234210000000002610655642004024206 0ustar perepere.so man3/vendor_xml.3 discover-2.1.2/doc/api-reference/man/man3/discover_xml_stack_pop.30000644002342100234210000000002310655642004023505 0ustar perepere.so man3/stack.c.3 ././@LongLink0000000000000000000000000000015700000000000011570 Lustar rootrootdiscover-2.1.2/doc/api-reference/man/man3/_home_pere_src_debiancvs_pkg-discover_discover_trunk_sysdeps_stub_.3discover-2.1.2/doc/api-reference/man/man3/_home_pere_src_debiancvs_pkg-discover_discover_trunk_sysde0000644002342100234210000000054710655642004032612 0ustar perepere.TH "/home/pere/src/debiancvs/pkg-discover/discover/trunk/sysdeps/stub/ Directory Reference" 3 "28 Jul 2005" "discover" \" -*- nroff -*- .ad l .nh .SH NAME /home/pere/src/debiancvs/pkg-discover/discover/trunk/sysdeps/stub/ Directory Reference \- .SS "Files" .in +1c .ti -1c .RI "file \fBstubs.c\fP" .br .RI "\fIStub system-dependent code. \fP" .PP .in -1c discover-2.1.2/doc/api-reference/man/man3/url_xml.30000644002342100234210000001173510655642004020442 0ustar perepere.TH "URL list XML parsing" 3 "28 Jul 2005" "discover" \" -*- nroff -*- .ad l .nh .SH NAME URL list XML parsing \- .SS "Functions" .in +1c .ti -1c .RI "\fBdiscover_xml_url_t\fP * \fBdiscover_xml_get_urls\fP (\fBdiscover_error_t\fP *status)" .br .ti -1c .RI "void \fBdiscover_xml_free_urls\fP (void)" .br .ti -1c .RI "\fBdiscover_xml_url_t\fP * \fBdiscover_xml_get_data_urls\fP (\fBdiscover_bus_t\fP bus, \fBdiscover_filetype_t\fP filetype, \fBdiscover_error_t\fP *status)" .br .ti -1c .RI "void \fBdiscover_xml_free_data_urls\fP (void)" .br .ti -1c .RI "\fBdiscover_xml_url_t\fP * \fBdiscover_xml_url_new\fP (void)" .br .ti -1c .RI "void \fBdiscover_xml_url_copy\fP (\fBdiscover_xml_url_t\fP *src, \fBdiscover_xml_url_t\fP *dst)" .br .ti -1c .RI "char * \fBdiscover_xml_url_get_url\fP (\fBdiscover_xml_url_t\fP *url)" .br .ti -1c .RI "char * \fBdiscover_xml_url_get_label\fP (\fBdiscover_xml_url_t\fP *url)" .br .ti -1c .RI "char * \fBdiscover_xml_url_get_bus\fP (\fBdiscover_xml_url_t\fP *url)" .br .ti -1c .RI "char * \fBdiscover_xml_url_get_type\fP (\fBdiscover_xml_url_t\fP *url)" .br .ti -1c .RI "\fBdiscover_xml_url_t\fP * \fBdiscover_xml_url_get_next\fP (\fBdiscover_xml_url_t\fP *url)" .br .ti -1c .RI "\fBdiscover_xml_url_t\fP * \fBdiscover_xml_url_get_last\fP (\fBdiscover_xml_url_t\fP *url)" .br .ti -1c .RI "void \fBdiscover_xml_url_free\fP (\fBdiscover_xml_url_t\fP *urls)" .br .in -1c .SH "Function Documentation" .PP .SS "void discover_xml_free_data_urls (void)" .PP Free the list of data URLs. .PP Definition at line 310 of file url-xml.c. .PP References BUS_COUNT, and discover_xml_url_free(). .SS "void discover_xml_free_urls (void)" .PP Free the list of URLs. .PP Definition at line 244 of file url-xml.c. .PP References discover_xml_url_free(). .SS "\fBdiscover_xml_url_t\fP* discover_xml_get_data_urls (\fBdiscover_bus_t\fP bus, \fBdiscover_filetype_t\fP filetype, \fBdiscover_error_t\fP * status)" .PP Get the list of data URLs, based on the bus type and type of data required. .PP \fBParameters:\fP .RS 4 \fIbus\fP Bus in question .br \fIfiletype\fP Type of file (vendor, busclass, or device) .br \fIstatus\fP Address in which to place status report .RE .PP .PP Definition at line 261 of file url-xml.c. .PP References discover_error::code, discover_conf_get_bus_name(), discover_conf_get_filetype_name(), DISCOVER_EDATANOTFOUND, discover_xml_get_urls(), discover_xml_url_copy(), and discover_xml_url_new(). .PP Referenced by discover_xml_get_busclasses(), discover_xml_get_devices(), and discover_xml_get_vendors(). .SS "\fBdiscover_xml_url_t\fP* discover_xml_get_urls (\fBdiscover_error_t\fP * status)" .PP Get the list of URLs from which bus and device data will be retrieved. .PP \fBParameters:\fP .RS 4 \fIstatus\fP Address in which to place status report .RE .PP .PP Definition at line 182 of file url-xml.c. .PP References discover_error::code, discover_conf_get_urls(), DISCOVER_EIO, DISCOVER_EXML, and discover_xml_url_free(). .PP Referenced by discover_xml_get_data_urls(). .SS "void discover_xml_url_copy (\fBdiscover_xml_url_t\fP * src, \fBdiscover_xml_url_t\fP * dst)" .PP Copy a URL structure. .PP \fBParameters:\fP .RS 4 \fIsrc\fP Copy from (source) .br \fIdst\fP Copy to (destination) .RE .PP .PP Definition at line 349 of file url-xml.c. .PP Referenced by discover_xml_get_data_urls(). .SS "void discover_xml_url_free (\fBdiscover_xml_url_t\fP * urls)" .PP Free the URL or list of URLs. .PP \fBParameters:\fP .RS 4 \fIurls\fP URL or list of URLs to free .RE .PP .PP Definition at line 444 of file url-xml.c. .PP Referenced by discover_conf_free(), discover_xml_free_data_urls(), discover_xml_free_urls(), and discover_xml_get_urls(). .SS "char* discover_xml_url_get_bus (\fBdiscover_xml_url_t\fP * url)" .PP Get the bus member of URL. .PP Definition at line 398 of file url-xml.c. .SS "char* discover_xml_url_get_label (\fBdiscover_xml_url_t\fP * url)" .PP Get the label member of url. .PP Definition at line 387 of file url-xml.c. .SS "\fBdiscover_xml_url_t\fP* discover_xml_url_get_last (\fBdiscover_xml_url_t\fP * url)" .PP Get the last member of url. .PP Definition at line 431 of file url-xml.c. .SS "\fBdiscover_xml_url_t\fP* discover_xml_url_get_next (\fBdiscover_xml_url_t\fP * url)" .PP Get the next member of url. .PP Definition at line 420 of file url-xml.c. .PP Referenced by discover_xml_get_busclasses(), discover_xml_get_devices(), and discover_xml_get_vendors(). .SS "char* discover_xml_url_get_type (\fBdiscover_xml_url_t\fP * url)" .PP Get the type member of url. .PP Definition at line 409 of file url-xml.c. .SS "char* discover_xml_url_get_url (\fBdiscover_xml_url_t\fP * url)" .PP Get the url member of url. .PP Definition at line 376 of file url-xml.c. .PP Referenced by discover_xml_get_busclasses(), discover_xml_get_devices(), and discover_xml_get_vendors(). .SS "\fBdiscover_xml_url_t\fP* discover_xml_url_new (void)" .PP Create and initialize a new (empty) URL structure. .PP Definition at line 326 of file url-xml.c. .PP Referenced by discover_conf_get_urls(), and discover_xml_get_data_urls(). discover-2.1.2/doc/api-reference/man/man3/discover_xml_vendor_get_name.30000644002342100234210000000002610655642004024661 0ustar perepere.so man3/vendor_xml.3 discover-2.1.2/doc/api-reference/man/man3/discover_xml_free_devices.30000644002342100234210000000002610655642004024150 0ustar perepere.so man3/device_xml.3 discover-2.1.2/doc/api-reference/man/man3/sysdeps.30000644002342100234210000000272510655642004020451 0ustar perepere.TH "System-dependent interfaces" 3 "28 Jul 2005" "discover" \" -*- nroff -*- .ad l .nh .SH NAME System-dependent interfaces \- .SS "Functions" .in +1c .ti -1c .RI "\fBdiscover_sysdep_data_t\fP * \fB_discover_get_ata_raw\fP (void)" .br .ti -1c .RI "\fBdiscover_sysdep_data_t\fP * \fB_discover_get_pci_raw\fP (void)" .br .ti -1c .RI "\fBdiscover_sysdep_data_t\fP * \fB_discover_get_pcmcia_raw\fP (void)" .br .ti -1c .RI "\fBdiscover_sysdep_data_t\fP * \fB_discover_get_scsi_raw\fP (void)" .br .ti -1c .RI "\fBdiscover_sysdep_data_t\fP * \fB_discover_get_usb_raw\fP (void)" .br .in -1c .SH "Function Documentation" .PP .SS "\fBdiscover_sysdep_data_t\fP* _discover_get_ata_raw (void)" .PP Get the list of ATA devices, scanning the bus if necessary. .PP Definition at line 51 of file stubs.c. .SS "\fBdiscover_sysdep_data_t\fP* _discover_get_pci_raw (void)" .PP Get the list of PCI devices, scanning the bus if necessary. .PP Definition at line 60 of file stubs.c. .SS "\fBdiscover_sysdep_data_t\fP* _discover_get_pcmcia_raw (void)" .PP Get the list of PCMCIA devices, scanning the bus if necessary. .PP Definition at line 69 of file stubs.c. .SS "\fBdiscover_sysdep_data_t\fP* _discover_get_scsi_raw (void)" .PP Get the list of SCSI devices, scanning the bus if necessary. .PP Definition at line 78 of file stubs.c. .SS "\fBdiscover_sysdep_data_t\fP* _discover_get_usb_raw (void)" .PP Get the list of USB devices, scanning the bus if necessary. .PP Definition at line 87 of file stubs.c. discover-2.1.2/doc/api-reference/man/man3/_discover_convert_device_data.30000644002342100234210000000002410655642004024772 0ustar perepere.so man3/sysdep.c.3 discover-2.1.2/doc/api-reference/man/man3/discover_xml_stack_new.30000644002342100234210000000002310655642004023500 0ustar perepere.so man3/stack.c.3 discover-2.1.2/doc/api-reference/man/man3/discover_conf_free.30000644002342100234210000000002010655642004022565 0ustar perepere.so man3/conf.3 discover-2.1.2/doc/api-reference/man/man3/range_states.30000644002342100234210000000003110655642004021422 0ustar perepere.so man3/version-cmp.c.3 discover-2.1.2/doc/api-reference/man/man3/_discover_get_ata_raw.30000644002342100234210000000002310655642004023256 0ustar perepere.so man3/sysdeps.3 discover-2.1.2/doc/api-reference/man/man3/next.30000644002342100234210000000004010655642004017721 0ustar perepere.so man3/discover_sysdep_data.3 discover-2.1.2/doc/api-reference/man/man3/discover_error_code_t.30000644002342100234210000000002110655642004023306 0ustar perepere.so man3/types.3 discover-2.1.2/doc/api-reference/man/man3/data.30000644002342100234210000000004010655642004017654 0ustar perepere.so man3/discover_sysdep_data.3 discover-2.1.2/doc/api-reference/man/man3/scan_default.30000644002342100234210000000003410655642004021376 0ustar perepere.so man3/discover_bus_map.3 discover-2.1.2/doc/api-reference/man/man3/discover_sysdep_raw_func_t.30000644002342100234210000000002110655642004024356 0ustar perepere.so man3/types.3 discover-2.1.2/doc/api-reference/man/man3/load-url.c.30000644002342100234210000000167410655642004020721 0ustar perepere.TH "/home/pere/src/debiancvs/pkg-discover/discover/trunk/lib/load-url.c" 3 "28 Jul 2005" "discover" \" -*- nroff -*- .ad l .nh .SH NAME /home/pere/src/debiancvs/pkg-discover/discover/trunk/lib/load-url.c \- File loading helper functions. .SH SYNOPSIS .br .PP \fC#include 'config.h'\fP .br \fC#include \fP .br \fC#include \fP .br \fC#include \fP .br \fC#include \fP .br \fC#include \fP .br .SS "Defines" .in +1c .ti -1c .RI "#define \fBSTDIO_READ\fP(f, buf, len) fread(buf, 1, len, f)" .br .in -1c .SS "Typedefs" .in +1c .ti -1c .RI "typedef FILE * \fBstdio_file\fP" .br .in -1c .SS "Functions" .in +1c .ti -1c .RI "int \fB_discover_load_url\fP (const char *url, XML_Parser parser)" .br .in -1c .SH "Detailed Description" .PP File loading helper functions. .PP Definition in file \fBload-url.c\fP. .SH "Author" .PP Generated automatically by Doxygen for discover from the source code. discover-2.1.2/doc/api-reference/man/man3/version_cmp.30000644002342100234210000000145010655642004021275 0ustar perepere.TH "Version comparison" 3 "28 Jul 2005" "discover" \" -*- nroff -*- .ad l .nh .SH NAME Version comparison \- .SS "Functions" .in +1c .ti -1c .RI "int \fBdiscover_xml_version_cmp\fP (char *range, char *version, \fBdiscover_error_t\fP *status)" .br .in -1c .SH "Function Documentation" .PP .SS "int discover_xml_version_cmp (char * range, char * version, \fBdiscover_error_t\fP * status)" .PP Compare a version number against a version range, returning 1 if the number matches the range or 0 if not. .PP \fBParameters:\fP .RS 4 \fIrange\fP Range to compare against version .br \fIversion\fP Version to compare against range .br \fIstatus\fP Address in which to place status report .RE .PP .PP Definition at line 438 of file version-cmp.c. .PP References discover_error::code, and DISCOVER_EBADVERSION. discover-2.1.2/doc/api-reference/man/man3/discover_xml_stack_get.30000644002342100234210000000002310655642004023466 0ustar perepere.so man3/stack.c.3 discover-2.1.2/doc/api-reference/man/man3/discover_minor_version.30000644002342100234210000000002010655642004023530 0ustar perepere.so man3/core.3 discover-2.1.2/doc/api-reference/man/man3/_discover_load_url.30000644002342100234210000000002610655642004022605 0ustar perepere.so man3/load-url.c.3 discover-2.1.2/doc/api-reference/man/man3/device.30000644002342100234210000002045710655642004020220 0ustar perepere.TH "Devices" 3 "28 Jul 2005" "discover" \" -*- nroff -*- .ad l .nh .SH NAME Devices \- .SS "Functions" .in +1c .ti -1c .RI "\fBdiscover_device_t\fP * \fBdiscover_device_find\fP (char *discover_class, \fBdiscover_error_t\fP *status)" .br .ti -1c .RI "char * \fBdiscover_device_get_data\fP (\fBdiscover_device_t\fP *device, char *discover_class, char *version, \fBdiscover_error_t\fP *status)" .br .ti -1c .RI "void \fBdiscover_device_copy\fP (\fBdiscover_device_t\fP *src, \fBdiscover_device_t\fP *dst)" .br .ti -1c .RI "char * \fBdiscover_data_get_class\fP (\fBdiscover_data_t\fP *data)" .br .ti -1c .RI "char * \fBdiscover_data_get_text\fP (\fBdiscover_data_t\fP *data)" .br .ti -1c .RI "\fBdiscover_data_t\fP * \fBdiscover_data_get_parent\fP (\fBdiscover_data_t\fP *data)" .br .ti -1c .RI "\fBdiscover_data_t\fP * \fBdiscover_data_get_child\fP (\fBdiscover_data_t\fP *data)" .br .ti -1c .RI "\fBdiscover_data_t\fP * \fBdiscover_data_get_next\fP (\fBdiscover_data_t\fP *data)" .br .ti -1c .RI "\fBdiscover_data_t\fP * \fBdiscover_data_get_prev\fP (\fBdiscover_data_t\fP *data)" .br .ti -1c .RI "\fBdiscover_data_t\fP * \fBdiscover_data_get_first\fP (\fBdiscover_data_t\fP *data)" .br .ti -1c .RI "\fBdiscover_data_t\fP * \fBdiscover_data_new\fP (void)" .br .ti -1c .RI "void \fBdiscover_data_free\fP (\fBdiscover_data_t\fP *data_tree)" .br .ti -1c .RI "char * \fBdiscover_device_get_busclass\fP (\fBdiscover_device_t\fP *device)" .br .ti -1c .RI "char * \fBdiscover_device_get_model_id\fP (\fBdiscover_device_t\fP *device)" .br .ti -1c .RI "char * \fBdiscover_device_get_model_name\fP (\fBdiscover_device_t\fP *device)" .br .ti -1c .RI "char * \fBdiscover_device_get_vendor_id\fP (\fBdiscover_device_t\fP *device)" .br .ti -1c .RI "char * \fBdiscover_device_get_vendor_name\fP (\fBdiscover_device_t\fP *device)" .br .ti -1c .RI "\fBdiscover_data_t\fP * \fBdiscover_device_get_data_struct\fP (\fBdiscover_device_t\fP *device)" .br .ti -1c .RI "\fBdiscover_device_t\fP * \fBdiscover_device_get_next\fP (\fBdiscover_device_t\fP *device)" .br .ti -1c .RI "\fBdiscover_device_t\fP * \fBdiscover_device_new\fP (void)" .br .ti -1c .RI "void \fBdiscover_device_free\fP (\fBdiscover_device_t\fP *devices, int free_data)" .br .in -1c .SH "Function Documentation" .PP .SS "void discover_data_free (\fBdiscover_data_t\fP * data_tree)" .PP Free the data tree. Note that unlike the other free functions in Discover, this one does not free data_tree itself. This is a side-effect of how it is implemented. It frees all children and siblings of data_tree as well as the data. After calling discover_data_free, you have to call free(3) on data_tree itself. .PP \fBParameters:\fP .RS 4 \fIdata_tree\fP Data tree to free .RE .PP .PP Definition at line 436 of file device.c. .PP References discover_data_free(). .PP Referenced by discover_data_free(), and discover_device_free(). .SS "\fBdiscover_data_t\fP* discover_data_get_child (\fBdiscover_data_t\fP * data)" .PP Get the child member of data. .PP Definition at line 341 of file device.c. .SS "char* discover_data_get_class (\fBdiscover_data_t\fP * data)" .PP Get the class member of data. .PP Definition at line 308 of file device.c. .SS "\fBdiscover_data_t\fP* discover_data_get_first (\fBdiscover_data_t\fP * data)" .PP Get the first member of data. .PP Definition at line 374 of file device.c. .SS "\fBdiscover_data_t\fP* discover_data_get_next (\fBdiscover_data_t\fP * data)" .PP Get the next member of data. .PP Definition at line 352 of file device.c. .SS "\fBdiscover_data_t\fP* discover_data_get_parent (\fBdiscover_data_t\fP * data)" .PP Get the parent member of data. .PP Definition at line 330 of file device.c. .SS "\fBdiscover_data_t\fP* discover_data_get_prev (\fBdiscover_data_t\fP * data)" .PP Get the prev member of data. .PP Definition at line 363 of file device.c. .SS "char* discover_data_get_text (\fBdiscover_data_t\fP * data)" .PP Get the text member of data. .PP Definition at line 319 of file device.c. .SS "\fBdiscover_data_t\fP* discover_data_new (void)" .PP Create and initialize a new discover_data_t structure. .PP Definition at line 409 of file device.c. .PP Referenced by _discover_convert_device_data(). .SS "void discover_device_copy (\fBdiscover_device_t\fP * src, \fBdiscover_device_t\fP * dst)" .PP Copy a device structure. .PP \fBParameters:\fP .RS 4 \fIsrc\fP Copy from (source) .br \fIdst\fP Copy to (destination) .RE .PP .PP Definition at line 268 of file device.c. .PP Referenced by discover_device_find(), and discover_xml_get_matching_devices(). .SS "\fBdiscover_device_t\fP* discover_device_find (char * discover_class, \fBdiscover_error_t\fP * status)" .PP Get a list of devices of a specified class on all buses scanned by default. .PP \fBParameters:\fP .RS 4 \fIdiscover_class\fP Class of devices to find .br \fIstatus\fP Address in which to place status report .RE .PP .PP Definition at line 63 of file device.c. .PP References discover_error::code, discover_error::create_message, discover_conf_get_full_bus_map(), discover_device_copy(), discover_device_get_next(), discover_device_new(), DISCOVER_EDEVICENOTFOUND, discover_get_devices(), DISCOVER_SUCCESS, discover_xml_busclass_cmp(), and discover_xml_get_busclasses(). .SS "void discover_device_free (\fBdiscover_device_t\fP * devices, int free_data)" .PP Free the device or list of devices. Pass 1 as the second argument to free the data structure for this device, 0 to leave it. It is necessary to specify 0 when one structure was copied from another with discover_device_copy. Otherwise, you must pass 1. .PP \fBParameters:\fP .RS 4 \fIdevices\fP Device or list of devices to free .br \fIfree_data\fP Whether to free the data structure .RE .PP .PP Definition at line 592 of file device.c. .PP References discover_data_free(). .PP Referenced by discover_free_devices(), and discover_xml_free_devices(). .SS "char* discover_device_get_busclass (\fBdiscover_device_t\fP * device)" .PP Get the busclass member of device. .PP Definition at line 485 of file device.c. .SS "char* discover_device_get_data (\fBdiscover_device_t\fP * device, char * discover_class, char * version, \fBdiscover_error_t\fP * status)" .PP Get the data matching the class path and version number (optional) from the device structure. .PP The class parameter requires further explanation. The XML data sources have hierarchical data elements for each device. You access the data in an element by specifying the path along the data elements to it. .PP For example, device elements for video cards usually have a data element of class 'xfree86' containing data related to the XFree86 package; that element itself usually contains a data element of class 'server' that specifies which server to use for this video card. You access this data by passing the string 'xfree86/server' to this function. .PP \fBParameters:\fP .RS 4 \fIdevice\fP Device from which to get the data .br \fIdiscover_class\fP Class to search for .br \fIversion\fP Version number to require (NULL for unversioned search) .br \fIstatus\fP Address in which to place status report .RE .PP .PP Definition at line 204 of file device.c. .PP References discover_error::code. .SS "\fBdiscover_data_t\fP* discover_device_get_data_struct (\fBdiscover_device_t\fP * device)" .PP Get the data member of device. .PP Definition at line 540 of file device.c. .SS "char* discover_device_get_model_id (\fBdiscover_device_t\fP * device)" .PP Get the model_id member of device. .PP Definition at line 496 of file device.c. .SS "char* discover_device_get_model_name (\fBdiscover_device_t\fP * device)" .PP Get the model_name member of device. .PP Definition at line 507 of file device.c. .SS "\fBdiscover_device_t\fP* discover_device_get_next (\fBdiscover_device_t\fP * device)" .PP Get the next member of device. .PP Definition at line 551 of file device.c. .PP Referenced by discover_device_find(). .SS "char* discover_device_get_vendor_id (\fBdiscover_device_t\fP * device)" .PP Get the vendor_id member of device. .PP Definition at line 518 of file device.c. .SS "char* discover_device_get_vendor_name (\fBdiscover_device_t\fP * device)" .PP Get the vendor_name member of device. .PP Definition at line 529 of file device.c. .SS "\fBdiscover_device_t\fP* discover_device_new (void)" .PP Create and initialize a new discover_device_t structure. .PP Definition at line 562 of file device.c. .PP Referenced by discover_device_find(), discover_get_devices(), and discover_xml_get_matching_devices(). discover-2.1.2/doc/api-reference/man/man3/discover_xml_vendor_get_id.30000644002342100234210000000002610655642004024335 0ustar perepere.so man3/vendor_xml.3 discover-2.1.2/doc/api-reference/man/man3/discover_data_get_prev.30000644002342100234210000000002210655642004023445 0ustar perepere.so man3/device.3 discover-2.1.2/doc/api-reference/man/man3/version-cmp.c.30000644002342100234210000000373410655642004021443 0ustar perepere.TH "/home/pere/src/debiancvs/pkg-discover/discover/trunk/lib/version-cmp.c" 3 "28 Jul 2005" "discover" \" -*- nroff -*- .ad l .nh .SH NAME /home/pere/src/debiancvs/pkg-discover/discover/trunk/lib/version-cmp.c \- Version comparison functions. .SH SYNOPSIS .br .PP \fC#include 'config.h'\fP .br \fC#include \fP .br \fC#include \fP .br \fC#include \fP .br \fC#include \fP .br \fC#include \fP .br \fC#include \fP .br \fC#include \fP .br .SS "Defines" .in +1c .ti -1c .RI "#define \fBMAXBUFLEN\fP 256" .br .in -1c .SS "Typedefs" .in +1c .ti -1c .RI "typedef enum \fBrange_states\fP \fBrange_state\fP" .br .in -1c .SS "Enumerations" .in +1c .ti -1c .RI "enum \fBrange_states\fP { \fBSTART\fP, \fBOPEN\fP, \fBVERSION1\fP, \fBVERSEP1\fP, \fBPAUSE1\fP, \fBSEPARATOR\fP, \fBI\fP, \fBN\fP, \fBF\fP, \fBVERSION2\fP, \fBVERSEP2\fP, \fBPAUSE2\fP, \fBCLOSE\fP, \fBERROR\fP }" .br .in -1c .SS "Functions" .in +1c .ti -1c .RI "int \fBdiscover_xml_version_cmp\fP (char *range, char *version, \fBdiscover_error_t\fP *status)" .br .in -1c .SH "Detailed Description" .PP Version comparison functions. This file holds the routines needed to process version data in the XML file. This version data is used to look for information pertaining to a particular version of the OS/software requiring that information. .PP Definition in file \fBversion-cmp.c\fP. .SH "Define Documentation" .PP .SS "#define MAXBUFLEN 256" .PP This probably shouldn't be here; it's bad practice (3.0, right). .PP Definition at line 55 of file version-cmp.c. .SH "Typedef Documentation" .PP .SS "typedef enum \fBrange_states\fP \fBrange_state\fP" .PP This is used as a placeholder while comparing versions of modules. .SH "Enumeration Type Documentation" .PP .SS "enum \fBrange_states\fP" .PP Version placeholders .PP Definition at line 58 of file version-cmp.c. .SH "Author" .PP Generated automatically by Doxygen for discover from the source code. discover-2.1.2/doc/api-reference/man/man3/discover_xml_merge_busclass_url.30000644002342100234210000000003010655642004025400 0ustar perepere.so man3/busclass_xml.3 discover-2.1.2/doc/api-reference/man/man3/sysdep.h.30000644002342100234210000000660110655642004020511 0ustar perepere.TH "/home/pere/src/debiancvs/pkg-discover/discover/trunk/include/discover/sysdep.h" 3 "28 Jul 2005" "discover" \" -*- nroff -*- .ad l .nh .SH NAME /home/pere/src/debiancvs/pkg-discover/discover/trunk/include/discover/sysdep.h \- Private interface for system dependencies. .SH SYNOPSIS .br .PP .SS "Typedefs" .in +1c .ti -1c .RI "typedef \fBdiscover_sysdep_device_data\fP \fBdiscover_sysdep_device_data_t\fP" .br .ti -1c .RI "typedef \fBdiscover_sysdep_data\fP \fBdiscover_sysdep_data_t\fP" .br .in -1c .SS "Functions" .in +1c .ti -1c .RI "\fBdiscover_sysdep_data_t\fP * \fB_discover_sysdep_data_new\fP (void)" .br .ti -1c .RI "\fBdiscover_sysdep_device_data_t\fP * \fB_discover_sysdep_device_data_new\fP (void)" .br .ti -1c .RI "void \fB_discover_free_sysdep_data\fP (\fBdiscover_sysdep_data_t\fP *)" .br .ti -1c .RI "void \fB_discover_free_sysdep_device_data\fP (\fBdiscover_sysdep_device_data_t\fP *)" .br .ti -1c .RI "\fBdiscover_sysdep_data_t\fP * \fB_discover_get_ata_raw\fP (void)" .br .ti -1c .RI "\fBdiscover_sysdep_data_t\fP * \fB_discover_get_pci_raw\fP (void)" .br .ti -1c .RI "\fBdiscover_sysdep_data_t\fP * \fB_discover_get_usb_raw\fP (void)" .br .ti -1c .RI "\fBdiscover_sysdep_data_t\fP * \fB_discover_get_pcmcia_raw\fP (void)" .br .ti -1c .RI "\fBdiscover_sysdep_data_t\fP * \fB_discover_get_scsi_raw\fP (void)" .br .in -1c .SH "Detailed Description" .PP Private interface for system dependencies. .PP Definition in file \fBsysdep.h\fP. .SH "Typedef Documentation" .PP .SS "typedef struct \fBdiscover_sysdep_data\fP \fBdiscover_sysdep_data_t\fP" .PP Linked list node, used to return hardware-identification information discovered by the system-dependent interface .SS "typedef struct \fBdiscover_sysdep_device_data\fP \fBdiscover_sysdep_device_data_t\fP" .PP Linked list node, used to return data specific to the sysdep/device in question, to be passed to the user under the 'device' data path. .SH "Function Documentation" .PP .SS "void _discover_free_sysdep_data (\fBdiscover_sysdep_data_t\fP * head)" .PP Release the memory that the sysdep data was holding. .PP Definition at line 92 of file sysdep.c. .PP References _discover_free_sysdep_device_data(), discover_sysdep_data::busclass, discover_sysdep_data::data, discover_sysdep_data::model, discover_sysdep_data::next, and discover_sysdep_data::vendor. .PP Referenced by discover_get_devices(). .SS "void _discover_free_sysdep_device_data (\fBdiscover_sysdep_device_data_t\fP * head)" .PP Release memory being held by device-specific data. .PP Definition at line 117 of file sysdep.c. .PP References discover_sysdep_device_data::next, discover_sysdep_device_data::path, and discover_sysdep_device_data::value. .PP Referenced by _discover_free_sysdep_data(). .SS "\fBdiscover_sysdep_data_t\fP* _discover_sysdep_data_new (void)" .PP Create a new instance of sysdep data. .PP Definition at line 66 of file sysdep.c. .PP References discover_sysdep_data::busclass, discover_sysdep_data::data, discover_sysdep_data::model, discover_sysdep_data::next, and discover_sysdep_data::vendor. .SS "\fBdiscover_sysdep_device_data_t\fP* _discover_sysdep_device_data_new (void)" .PP Create a new instance of sysdep device data. .PP Definition at line 80 of file sysdep.c. .PP References discover_sysdep_device_data::next, discover_sysdep_device_data::path, and discover_sysdep_device_data::value. .SH "Author" .PP Generated automatically by Doxygen for discover from the source code. discover-2.1.2/doc/api-reference/man/man3/discover_xml_get_data_urls.30000644002342100234210000000002310655642004024337 0ustar perepere.so man3/url_xml.3 discover-2.1.2/doc/api-reference/man/man3/_discover_create_message.30000644002342100234210000000002010655642004023745 0ustar perepere.so man3/core.3 discover-2.1.2/doc/api-reference/man/man3/discover_conf_get_bus_map_by_name.30000644002342100234210000000002010655642004025623 0ustar perepere.so man3/conf.3 discover-2.1.2/doc/api-reference/man/man3/discover_strerror.30000644002342100234210000000002010655642004022521 0ustar perepere.so man3/core.3 ././@LongLink0000000000000000000000000000015200000000000011563 Lustar rootrootdiscover-2.1.2/doc/api-reference/man/man3/_home_pere_src_debiancvs_pkg-discover_discover_trunk_include_.3discover-2.1.2/doc/api-reference/man/man3/_home_pere_src_debiancvs_pkg-discover_discover_trunk_inclu0000644002342100234210000000047310655642004032573 0ustar perepere.TH "/home/pere/src/debiancvs/pkg-discover/discover/trunk/include/ Directory Reference" 3 "28 Jul 2005" "discover" \" -*- nroff -*- .ad l .nh .SH NAME /home/pere/src/debiancvs/pkg-discover/discover/trunk/include/ Directory Reference \- .SS "Directories" .in +1c .ti -1c .RI "directory \fBdiscover\fP" .br .in -1c discover-2.1.2/doc/api-reference/man/man3/_discover_get_scsi_raw.30000644002342100234210000000002310655642004023452 0ustar perepere.so man3/sysdeps.3 discover-2.1.2/doc/api-reference/man/man3/discover_xml_vendor_get_next.30000644002342100234210000000002610655642004024717 0ustar perepere.so man3/vendor_xml.3 discover-2.1.2/doc/api-reference/man/man3/message.30000644002342100234210000000003210655642004020370 0ustar perepere.so man3/discover_error.3 discover-2.1.2/doc/api-reference/man/man3/core.c.30000644002342100234210000000244710655642004020131 0ustar perepere.TH "/home/pere/src/debiancvs/pkg-discover/discover/trunk/lib/core.c" 3 "28 Jul 2005" "discover" \" -*- nroff -*- .ad l .nh .SH NAME /home/pere/src/debiancvs/pkg-discover/discover/trunk/lib/core.c \- Core and miscellaneous routines. .SH SYNOPSIS .br .PP \fC#include 'config.h'\fP .br \fC#include \fP .br \fC#include \fP .br \fC#include \fP .br \fC#include \fP .br .SS "Functions" .in +1c .ti -1c .RI "\fBdiscover_error_t\fP * \fBdiscover_error_new\fP (void)" .br .ti -1c .RI "void * \fB_discover_create_message\fP (\fBdiscover_error_t\fP **status, char *message)" .br .ti -1c .RI "void \fBdiscover_error_free\fP (\fBdiscover_error_t\fP *status)" .br .ti -1c .RI "char * \fBdiscover_strerror\fP (\fBdiscover_error_t\fP *err)" .br .ti -1c .RI "int \fBdiscover_major_version\fP (void)" .br .ti -1c .RI "int \fBdiscover_minor_version\fP (void)" .br .ti -1c .RI "int \fBdiscover_micro_version\fP (void)" .br .in -1c .SH "Detailed Description" .PP Core and miscellaneous routines. This file provides core routines that don't really fit anyplace else. There are likely some other routines that really should be in here. .PP Definition in file \fBcore.c\fP. .SH "Author" .PP Generated automatically by Doxygen for discover from the source code. discover-2.1.2/doc/api-reference/man/man3/DISCOVER_EIO.30000644002342100234210000000002110655642004020654 0ustar perepere.so man3/types.3 discover-2.1.2/doc/api-reference/man/man3/discover_xml_stack_getbynum.30000644002342100234210000000002310655642004024541 0ustar perepere.so man3/stack.c.3 discover-2.1.2/doc/api-reference/man/man3/url-xml.c.30000644002342100234210000000474510655642004020604 0ustar perepere.TH "/home/pere/src/debiancvs/pkg-discover/discover/trunk/lib/url-xml.c" 3 "28 Jul 2005" "discover" \" -*- nroff -*- .ad l .nh .SH NAME /home/pere/src/debiancvs/pkg-discover/discover/trunk/lib/url-xml.c \- XML URL handling. .SH SYNOPSIS .br .PP \fC#include 'config.h'\fP .br \fC#include \fP .br \fC#include \fP .br \fC#include \fP .br \fC#include \fP .br \fC#include \fP .br \fC#include \fP .br \fC#include \fP .br \fC#include \fP .br \fC#include \fP .br .SS "Enumerations" .in +1c .ti -1c .RI "enum \fBstate\fP { \fBSTART\fP, \fBDISCOVER_DATA\fP }" .br .in -1c .SS "Functions" .in +1c .ti -1c .RI "\fBdiscover_xml_url_t\fP * \fBdiscover_xml_get_urls\fP (\fBdiscover_error_t\fP *status)" .br .ti -1c .RI "void \fBdiscover_xml_free_urls\fP (void)" .br .ti -1c .RI "\fBdiscover_xml_url_t\fP * \fBdiscover_xml_get_data_urls\fP (\fBdiscover_bus_t\fP bus, \fBdiscover_filetype_t\fP filetype, \fBdiscover_error_t\fP *status)" .br .ti -1c .RI "void \fBdiscover_xml_free_data_urls\fP (void)" .br .ti -1c .RI "\fBdiscover_xml_url_t\fP * \fBdiscover_xml_url_new\fP (void)" .br .ti -1c .RI "void \fBdiscover_xml_url_copy\fP (\fBdiscover_xml_url_t\fP *src, \fBdiscover_xml_url_t\fP *dst)" .br .ti -1c .RI "char * \fBdiscover_xml_url_get_url\fP (\fBdiscover_xml_url_t\fP *url)" .br .ti -1c .RI "char * \fBdiscover_xml_url_get_label\fP (\fBdiscover_xml_url_t\fP *url)" .br .ti -1c .RI "char * \fBdiscover_xml_url_get_bus\fP (\fBdiscover_xml_url_t\fP *url)" .br .ti -1c .RI "char * \fBdiscover_xml_url_get_type\fP (\fBdiscover_xml_url_t\fP *url)" .br .ti -1c .RI "\fBdiscover_xml_url_t\fP * \fBdiscover_xml_url_get_next\fP (\fBdiscover_xml_url_t\fP *url)" .br .ti -1c .RI "\fBdiscover_xml_url_t\fP * \fBdiscover_xml_url_get_last\fP (\fBdiscover_xml_url_t\fP *url)" .br .ti -1c .RI "void \fBdiscover_xml_url_free\fP (\fBdiscover_xml_url_t\fP *urls)" .br .in -1c .SH "Detailed Description" .PP XML URL handling. This file is used when loading data about the URLs to be parsed. This data will be read from a file, either specified from the configuration file or passed in as an append or insert. .PP Definition in file \fBurl-xml.c\fP. .SH "Enumeration Type Documentation" .PP .SS "enum \fBstate\fP" .PP Define possible states within the XML data. .PP Definition at line 52 of file url-xml.c. .SH "Author" .PP Generated automatically by Doxygen for discover from the source code. discover-2.1.2/doc/api-reference/man/man3/discover_conf_name_to_bus.30000644002342100234210000000002010655642004024137 0ustar perepere.so man3/conf.3 discover-2.1.2/doc/api-reference/man/man3/discover_xml_get_matching_devices.30000644002342100234210000000002610655642004025660 0ustar perepere.so man3/device_xml.3 discover-2.1.2/doc/api-reference/man/man3/discover_xml_busclass_get_name.30000644002342100234210000000003010655642004025176 0ustar perepere.so man3/busclass_xml.3 discover-2.1.2/doc/api-reference/man/man3/discover_device_get_data.30000644002342100234210000000002210655642004023730 0ustar perepere.so man3/device.3 discover-2.1.2/doc/api-reference/man/man3/DISCOVER_ESYS.30000644002342100234210000000002110655642004021023 0ustar perepere.so man3/types.3 discover-2.1.2/doc/api-reference/man/man3/discover_xml_url_get_last.30000644002342100234210000000002310655642004024206 0ustar perepere.so man3/url_xml.3 discover-2.1.2/doc/api-reference/man/man3/vendor.30000644002342100234210000000004010655642004020240 0ustar perepere.so man3/discover_sysdep_data.3 discover-2.1.2/doc/api-reference/man/man3/_discover_sysdep_data_new.30000644002342100234210000000002410655642004024153 0ustar perepere.so man3/sysdep.h.3 discover-2.1.2/doc/api-reference/man/man3/discover_xml_free_urls.30000644002342100234210000000002310655642004023510 0ustar perepere.so man3/url_xml.3 discover-2.1.2/doc/api-reference/man/man3/discover_get_devices.30000644002342100234210000000002610655642004023126 0ustar perepere.so man3/discover.h.3 discover-2.1.2/doc/api-reference/man/man3/conf.30000644002342100234210000001414610655642004017704 0ustar perepere.TH "Configuration handling" 3 "28 Jul 2005" "discover" \" -*- nroff -*- .ad l .nh .SH NAME Configuration handling \- .SS "Functions" .in +1c .ti -1c .RI "void \fBdiscover_conf_load\fP (\fBdiscover_error_t\fP *status)" .br .ti -1c .RI "int \fBdiscover_conf_name_to_bus\fP (char *name, \fBdiscover_error_t\fP *status)" .br .ti -1c .RI "\fBdiscover_bus_map_t\fP * \fBdiscover_conf_get_full_bus_map\fP (\fBdiscover_error_t\fP *status)" .br .ti -1c .RI "\fBdiscover_bus_map_t\fP * \fBdiscover_conf_get_bus_map_by_name\fP (char *name, \fBdiscover_error_t\fP *status)" .br .ti -1c .RI "\fBdiscover_bus_map_t\fP * \fBdiscover_conf_get_bus_map\fP (\fBdiscover_bus_t\fP bus, \fBdiscover_error_t\fP *status)" .br .ti -1c .RI "void \fBdiscover_conf_insert_url\fP (char *url, \fBdiscover_error_t\fP *status)" .br .ti -1c .RI "void \fBdiscover_conf_append_url\fP (char *url, \fBdiscover_error_t\fP *status)" .br .ti -1c .RI "\fBdiscover_xml_url_t\fP * \fBdiscover_conf_get_urls\fP (\fBdiscover_error_t\fP *status)" .br .ti -1c .RI "void \fBdiscover_conf_free\fP (void)" .br .ti -1c .RI "char * \fBdiscover_conf_get_bus_name\fP (\fBdiscover_bus_t\fP bus)" .br .ti -1c .RI "char * \fBdiscover_conf_get_filetype_name\fP (\fBdiscover_filetype_t\fP filetype)" .br .in -1c .SH "Function Documentation" .PP .SS "void discover_conf_append_url (char * url, \fBdiscover_error_t\fP * status)" .PP Append the URL specified in url at the tail of the list of URLs where Discover data will be retrieved. .PP \fBParameters:\fP .RS 4 \fIurl\fP URL to append .br \fIstatus\fP Address in which to place status report .RE .PP .PP Definition at line 579 of file conf.c. .PP References discover_error::code, and discover_conf_load(). .SS "void discover_conf_free (void)" .PP Free configuration data. This is mainly useful so that the next call to discover_conf_load will reload the configuration data. .PP Definition at line 650 of file conf.c. .PP References discover_xml_url_free(). .SS "\fBdiscover_bus_map_t\fP* discover_conf_get_bus_map (\fBdiscover_bus_t\fP bus, \fBdiscover_error_t\fP * status)" .PP Get the bus map for a single bus. .PP \fBParameters:\fP .RS 4 \fIbus\fP Name of the bus whose map to get .br \fIstatus\fP Address in which to place status report .RE .PP .PP Definition at line 532 of file conf.c. .PP References BUS_COUNT, discover_error::code, discover_conf_load(), and DISCOVER_EBUSNOTFOUND. .PP Referenced by discover_get_devices(). .SS "\fBdiscover_bus_map_t\fP* discover_conf_get_bus_map_by_name (char * name, \fBdiscover_error_t\fP * status)" .PP Get the bus map by name for a single bus. .PP \fBParameters:\fP .RS 4 \fIname\fP Name of the bus whose map to get .br \fIstatus\fP Address in which to place status report .RE .PP .PP Definition at line 509 of file conf.c. .PP References _real_discover_conf_get_bus_map_by_name(), discover_error::code, and discover_conf_load(). .SS "char* discover_conf_get_bus_name (\fBdiscover_bus_t\fP bus)" .PP Translate an enum bus value into a string. .PP \fBParameters:\fP .RS 4 \fIbus\fP Bus type in enumerated form .RE .PP .PP Definition at line 666 of file conf.c. .PP References BUS_COUNT, and discover_bus_map::name. .PP Referenced by discover_xml_get_data_urls(). .SS "char* discover_conf_get_filetype_name (\fBdiscover_filetype_t\fP filetype)" .PP Translate an enum filetype value into a string. .PP \fBParameters:\fP .RS 4 \fIfiletype\fP Filetype in enumerated form .RE .PP .PP Definition at line 682 of file conf.c. .PP Referenced by discover_xml_get_data_urls(). .SS "\fBdiscover_bus_map_t\fP* discover_conf_get_full_bus_map (\fBdiscover_error_t\fP * status)" .PP Get the full bus map, listing all buses. .PP \fBParameters:\fP .RS 4 \fIstatus\fP Address in which to place status report .RE .PP .PP Definition at line 496 of file conf.c. .PP References discover_conf_load(). .PP Referenced by discover_device_find(). .SS "\fBdiscover_xml_url_t\fP* discover_conf_get_urls (\fBdiscover_error_t\fP * status)" .PP Get the list of URLs from which XML data will be retrieved. .PP \fBParameters:\fP .RS 4 \fIstatus\fP Address in which to place status report .RE .PP .PP Definition at line 599 of file conf.c. .PP References discover_error::code, discover_conf_load(), and discover_xml_url_new(). .PP Referenced by discover_xml_get_urls(). .SS "void discover_conf_insert_url (char * url, \fBdiscover_error_t\fP * status)" .PP Insert the URL specified in url at the head of the list of URLs where Discover data will be retrieved. .PP \fBParameters:\fP .RS 4 \fIurl\fP URL to insert .br \fIstatus\fP Address in which to place status report .RE .PP .PP Definition at line 557 of file conf.c. .PP References discover_error::code, and discover_conf_load(). .SS "void discover_conf_load (\fBdiscover_error_t\fP * status)" .PP Ensure that the configuration file is loaded. Repeated calls to this function will not change anything, unless you call discover_conf_free. .PP Technically, this function will lie to you if there is no conf file. Even though no configuration was loaded, repeated calls still will not change anything. However, if we don't do this and a config file is created between the time some long-lived caller first calls discover_conf_load and the time it calls it again, it will be loaded. This doesn't strike me as idempotent behavior. So, repeated calls even in this case will not change anything unless you call discover_conf_free. .PP \fBParameters:\fP .RS 4 \fIstatus\fP Address in which to place status report .RE .PP .PP Definition at line 378 of file conf.c. .PP References discover_error::code, discover_error::create_message, and DISCOVER_EXML. .PP Referenced by discover_conf_append_url(), discover_conf_get_bus_map(), discover_conf_get_bus_map_by_name(), discover_conf_get_full_bus_map(), discover_conf_get_urls(), and discover_conf_insert_url(). .SS "int discover_conf_name_to_bus (char * name, \fBdiscover_error_t\fP * status)" .PP Get the bus enumeration for a bus name. .PP \fBParameters:\fP .RS 4 \fIname\fP Name of the bus .br \fIstatus\fP Address in which to place status report .RE .PP .PP Definition at line 477 of file conf.c. .PP References discover_error::code, and DISCOVER_EBUSNOTFOUND. .PP Referenced by _real_discover_conf_get_bus_map_by_name(). discover-2.1.2/doc/api-reference/man/man3/scan_never.30000644002342100234210000000003410655642004021071 0ustar perepere.so man3/discover_bus_map.3 discover-2.1.2/doc/api-reference/man/man3/device.c.30000644002342100234210000000621210655642004020432 0ustar perepere.TH "/home/pere/src/debiancvs/pkg-discover/discover/trunk/lib/device.c" 3 "28 Jul 2005" "discover" \" -*- nroff -*- .ad l .nh .SH NAME /home/pere/src/debiancvs/pkg-discover/discover/trunk/lib/device.c \- Device enumeration and information management. .SH SYNOPSIS .br .PP \fC#include 'config.h'\fP .br \fC#include \fP .br \fC#include \fP .br \fC#include \fP .br \fC#include \fP .br \fC#include \fP .br \fC#include \fP .br \fC#include \fP .br \fC#include \fP .br \fC#include \fP .br .SS "Functions" .in +1c .ti -1c .RI "\fBdiscover_device_t\fP * \fBdiscover_device_find\fP (char *discover_class, \fBdiscover_error_t\fP *status)" .br .ti -1c .RI "char * \fBdiscover_device_get_data\fP (\fBdiscover_device_t\fP *device, char *discover_class, char *version, \fBdiscover_error_t\fP *status)" .br .ti -1c .RI "void \fBdiscover_device_copy\fP (\fBdiscover_device_t\fP *src, \fBdiscover_device_t\fP *dst)" .br .ti -1c .RI "char * \fBdiscover_data_get_class\fP (\fBdiscover_data_t\fP *data)" .br .ti -1c .RI "char * \fBdiscover_data_get_text\fP (\fBdiscover_data_t\fP *data)" .br .ti -1c .RI "\fBdiscover_data_t\fP * \fBdiscover_data_get_parent\fP (\fBdiscover_data_t\fP *data)" .br .ti -1c .RI "\fBdiscover_data_t\fP * \fBdiscover_data_get_child\fP (\fBdiscover_data_t\fP *data)" .br .ti -1c .RI "\fBdiscover_data_t\fP * \fBdiscover_data_get_next\fP (\fBdiscover_data_t\fP *data)" .br .ti -1c .RI "\fBdiscover_data_t\fP * \fBdiscover_data_get_prev\fP (\fBdiscover_data_t\fP *data)" .br .ti -1c .RI "\fBdiscover_data_t\fP * \fBdiscover_data_get_first\fP (\fBdiscover_data_t\fP *data)" .br .ti -1c .RI "\fBdiscover_data_t\fP * \fBdiscover_data_new\fP (void)" .br .ti -1c .RI "void \fBdiscover_data_free\fP (\fBdiscover_data_t\fP *data_tree)" .br .ti -1c .RI "char * \fBdiscover_device_get_busclass\fP (\fBdiscover_device_t\fP *device)" .br .ti -1c .RI "char * \fBdiscover_device_get_model_id\fP (\fBdiscover_device_t\fP *device)" .br .ti -1c .RI "char * \fBdiscover_device_get_model_name\fP (\fBdiscover_device_t\fP *device)" .br .ti -1c .RI "char * \fBdiscover_device_get_vendor_id\fP (\fBdiscover_device_t\fP *device)" .br .ti -1c .RI "char * \fBdiscover_device_get_vendor_name\fP (\fBdiscover_device_t\fP *device)" .br .ti -1c .RI "\fBdiscover_data_t\fP * \fBdiscover_device_get_data_struct\fP (\fBdiscover_device_t\fP *device)" .br .ti -1c .RI "\fBdiscover_device_t\fP * \fBdiscover_device_get_next\fP (\fBdiscover_device_t\fP *device)" .br .ti -1c .RI "\fBdiscover_device_t\fP * \fBdiscover_device_new\fP (void)" .br .ti -1c .RI "void \fBdiscover_device_free\fP (\fBdiscover_device_t\fP *devices, int free_data)" .br .in -1c .SH "Detailed Description" .PP Device enumeration and information management. This file contains many device-related routines. Most of these routines are used to alter or access data pertaining to a device. These routines will likely be most interesting to people writing code against the Discover API. .PP Definition in file \fBdevice.c\fP. .SH "Author" .PP Generated automatically by Doxygen for discover from the source code. discover-2.1.2/doc/api-reference/man/man3/discover-conf.h.30000644002342100234210000000357110655642004021746 0ustar perepere.TH "/home/pere/src/debiancvs/pkg-discover/discover/trunk/include/discover/discover-conf.h" 3 "28 Jul 2005" "discover" \" -*- nroff -*- .ad l .nh .SH NAME /home/pere/src/debiancvs/pkg-discover/discover/trunk/include/discover/discover-conf.h \- Public interface for reading Discover configuration data. .SH SYNOPSIS .br .PP \fC#include \fP .br .SS "Functions" .in +1c .ti -1c .RI "void \fBdiscover_conf_load\fP (\fBdiscover_error_t\fP *status)" .br .ti -1c .RI "\fBdiscover_bus_map_t\fP * \fBdiscover_conf_get_full_bus_map\fP (\fBdiscover_error_t\fP *status)" .br .ti -1c .RI "\fBdiscover_bus_map_t\fP * \fBdiscover_conf_get_bus_map\fP (\fBdiscover_bus_t\fP bus, \fBdiscover_error_t\fP *status)" .br .ti -1c .RI "\fBdiscover_bus_map_t\fP * \fBdiscover_conf_get_bus_map_by_name\fP (char *name, \fBdiscover_error_t\fP *status)" .br .ti -1c .RI "void \fBdiscover_conf_insert_url\fP (char *url, \fBdiscover_error_t\fP *status)" .br .ti -1c .RI "void \fBdiscover_conf_append_url\fP (char *url, \fBdiscover_error_t\fP *status)" .br .ti -1c .RI "\fBdiscover_xml_url_t\fP * \fBdiscover_conf_get_urls\fP (\fBdiscover_error_t\fP *status)" .br .ti -1c .RI "void \fBdiscover_conf_free\fP (void)" .br .ti -1c .RI "char * \fBdiscover_conf_get_bus_name\fP (\fBdiscover_bus_t\fP bus)" .br .ti -1c .RI "char * \fBdiscover_conf_get_filetype_name\fP (\fBdiscover_filetype_t\fP filetype)" .br .ti -1c .RI "int \fBdiscover_conf_name_to_bus\fP (char *name, \fBdiscover_error_t\fP *status)" .br .in -1c .SH "Detailed Description" .PP Public interface for reading Discover configuration data. These routines are the public interface used to read the configuration data from the desired source. These interfaces are also used to alter the URLs searched for configuration data. .PP Definition in file \fBdiscover-conf.h\fP. .SH "Author" .PP Generated automatically by Doxygen for discover from the source code. discover-2.1.2/doc/api-reference/man/man3/discover_xml_url_get_url.30000644002342100234210000000002310655642004024045 0ustar perepere.so man3/url_xml.3 discover-2.1.2/doc/api-reference/man/man3/discover_xml_find_next_device.30000644002342100234210000000002610655642004025022 0ustar perepere.so man3/device_xml.3 discover-2.1.2/doc/api-reference/man/man3/discover_xml_busclass_to_class.30000644002342100234210000000003010655642004025226 0ustar perepere.so man3/busclass_xml.3 discover-2.1.2/doc/api-reference/man/man3/discover_xml_get_vendors.30000644002342100234210000000002610655642004024044 0ustar perepere.so man3/vendor_xml.3 discover-2.1.2/doc/api-reference/man/man3/discover_error_free.30000644002342100234210000000002010655642004022771 0ustar perepere.so man3/core.3 discover-2.1.2/doc/api-reference/man/man3/types.30000644002342100234210000001411010655642004020112 0ustar perepere.TH "Types" 3 "28 Jul 2005" "discover" \" -*- nroff -*- .ad l .nh .SH NAME Types \- .SS "Data Structures" .in +1c .ti -1c .RI "struct \fBdiscover_error\fP" .br .ti -1c .RI "struct \fBdiscover_bus_map\fP" .br .in -1c .SS "Defines" .in +1c .ti -1c .RI "#define \fBBUS_COUNT\fP 5" .br .in -1c .SS "Typedefs" .in +1c .ti -1c .RI "typedef void *( \fBdiscover_create_message_t\fP )(struct \fBdiscover_error\fP **, char *)" .br .ti -1c .RI "typedef \fBdiscover_error\fP \fBdiscover_error_t\fP" .br .ti -1c .RI "typedef \fBdiscover_bus_map\fP \fBdiscover_bus_map_t\fP" .br .ti -1c .RI "typedef discover_device \fBdiscover_device_t\fP" .br .ti -1c .RI "typedef discover_data \fBdiscover_data_t\fP" .br .ti -1c .RI "typedef discover_xml_busclass \fBdiscover_xml_busclass_t\fP" .br .ti -1c .RI "typedef discover_xml_vendor \fBdiscover_xml_vendor_t\fP" .br .ti -1c .RI "typedef discover_xml_url \fBdiscover_xml_url_t\fP" .br .ti -1c .RI "typedef \fBdiscover_device_t\fP *( \fBdiscover_device_func_t\fP )(\fBdiscover_error_t\fP *)" .br .ti -1c .RI "typedef \fBdiscover_xml_busclass_t\fP *( \fBdiscover_xml_busclass_func_t\fP )(\fBdiscover_error_t\fP *)" .br .ti -1c .RI "typedef \fBdiscover_xml_vendor_t\fP *( \fBdiscover_xml_vendor_func_t\fP )(\fBdiscover_error_t\fP *)" .br .ti -1c .RI "typedef \fBdiscover_xml_url_t\fP *( \fBdiscover_xml_url_func_t\fP )(\fBdiscover_error_t\fP *)" .br .ti -1c .RI "typedef void( \fBdiscover_free_func_t\fP )(void)" .br .ti -1c .RI "typedef \fBdiscover_sysdep_data_t\fP *( \fBdiscover_sysdep_raw_func_t\fP )(void)" .br .in -1c .SS "Enumerations" .in +1c .ti -1c .RI "enum \fBdiscover_error_code_t\fP { \fBDISCOVER_SUCCESS\fP, \fBDISCOVER_EIO\fP, \fBDISCOVER_EXML\fP, \fBDISCOVER_ESYS\fP, \fBDISCOVER_EBUSDISABLED\fP, \fBDISCOVER_EBUSNOTFOUND\fP, \fBDISCOVER_EDATANOTFOUND\fP, \fBDISCOVER_EDEVICENOTFOUND\fP, \fBDISCOVER_EBADVERSION\fP, \fBDISCOVER_ENOIMPL\fP }" .br .ti -1c .RI "enum \fBdiscover_bus_t\fP { \fBATA\fP, \fBPCI\fP, \fBPCMCIA\fP, \fBSCSI\fP, \fBUSB\fP }" .br .ti -1c .RI "enum \fBdiscover_filetype_t\fP { \fBVENDOR_TYPE\fP, \fBBUSCLASS_TYPE\fP, \fBDEVICE_TYPE\fP }" .br .in -1c .SH "Define Documentation" .PP .SS "#define BUS_COUNT 5" .PP Number of buses we support .PP Definition at line 157 of file discover.h. .PP Referenced by _real_discover_conf_get_bus_map(), discover_conf_get_bus_map(), discover_conf_get_bus_name(), discover_free_devices(), discover_xml_free_busclasses(), discover_xml_free_data_urls(), discover_xml_free_devices(), and discover_xml_free_vendors(). .SH "Typedef Documentation" .PP .SS "typedef struct \fBdiscover_bus_map\fP \fBdiscover_bus_map_t\fP" .PP Mapping of bus names to functions .PP Definition at line 116 of file discover.h. .SS "typedef void*( \fBdiscover_create_message_t\fP)(struct \fBdiscover_error\fP **, char *)" .PP Signature of functions that assist with creating message strings .PP Definition at line 99 of file discover.h. .SS "typedef struct discover_data \fBdiscover_data_t\fP" .PP Data element from the device XML files .PP Definition at line 120 of file discover.h. .SS "typedef \fBdiscover_device_t\fP*( \fBdiscover_device_func_t\fP)(\fBdiscover_error_t\fP *)" .PP Signature of functions returning discover_device_t structures .PP Definition at line 129 of file discover.h. .SS "typedef struct discover_device \fBdiscover_device_t\fP" .PP Structure describing a device .PP Definition at line 118 of file discover.h. .SS "typedef struct \fBdiscover_error\fP \fBdiscover_error_t\fP" .PP All functions that perform some action (as opposed to returning a member of a structure, for example) take an argument of this type. It is used to report that the action succeeded, or why it failed. .SS "typedef void( \fBdiscover_free_func_t\fP)(void)" .PP Signature of functions that free internal lists .PP Definition at line 137 of file discover.h. .SS "typedef \fBdiscover_sysdep_data_t\fP*( \fBdiscover_sysdep_raw_func_t\fP)(void)" .PP Signature of functions that return sysdep_data_t lists .PP Definition at line 141 of file discover.h. .SS "typedef \fBdiscover_xml_busclass_t\fP*( \fBdiscover_xml_busclass_func_t\fP)(\fBdiscover_error_t\fP *)" .PP Signature of functions returning discover_xml_busclass_t structures .PP Definition at line 131 of file discover.h. .SS "typedef struct discover_xml_busclass \fBdiscover_xml_busclass_t\fP" .PP Structure for mapping Discover device types to bus-specific classes .PP Definition at line 122 of file discover.h. .SS "typedef \fBdiscover_xml_url_t\fP*( \fBdiscover_xml_url_func_t\fP)(\fBdiscover_error_t\fP *)" .PP Signature of functions returning discover_xml_url_t structures .PP Definition at line 135 of file discover.h. .SS "typedef struct discover_xml_url \fBdiscover_xml_url_t\fP" .PP Structure describing a URL where XML data can be found .PP Definition at line 126 of file discover.h. .SS "typedef \fBdiscover_xml_vendor_t\fP*( \fBdiscover_xml_vendor_func_t\fP)(\fBdiscover_error_t\fP *)" .PP Signature of functions returning discover_xml_vendor_t structures .PP Definition at line 133 of file discover.h. .SS "typedef struct discover_xml_vendor \fBdiscover_xml_vendor_t\fP" .PP Structure for mapping vendor names to bus-specific IDs .PP Definition at line 124 of file discover.h. .SH "Enumeration Type Documentation" .PP .SS "enum \fBdiscover_bus_t\fP" .PP Enumerate the buses. .PP Definition at line 146 of file discover.h. .SS "enum \fBdiscover_error_code_t\fP" .PP \fBEnumeration values: \fP .in +1c .TP \fB\fIDISCOVER_SUCCESS \fP\fP Success .TP \fB\fIDISCOVER_EIO \fP\fP Input/output error .TP \fB\fIDISCOVER_EXML \fP\fP XML parse error .TP \fB\fIDISCOVER_ESYS \fP\fP System error .TP \fB\fIDISCOVER_EBUSDISABLED \fP\fP Disabled bus .TP \fB\fIDISCOVER_EBUSNOTFOUND \fP\fP Bus not found .TP \fB\fIDISCOVER_EDATANOTFOUND \fP\fP Data source not found .TP \fB\fIDISCOVER_EDEVICENOTFOUND \fP\fP Device not found .TP \fB\fIDISCOVER_EBADVERSION \fP\fP Invalid version range .TP \fB\fIDISCOVER_ENOIMPL \fP\fP Action not implemented for this platform .PP Definition at line 73 of file discover.h. .SS "enum \fBdiscover_filetype_t\fP" .PP Enumerate the types of data files: vendor, busclass, and device. .PP Definition at line 162 of file discover.h. discover-2.1.2/doc/api-reference/man/man3/discover_data_get_class.30000644002342100234210000000002210655642004023576 0ustar perepere.so man3/device.3 discover-2.1.2/doc/api-reference/man/man3/discover_xml_busclass_get_next.30000644002342100234210000000003010655642004025234 0ustar perepere.so man3/busclass_xml.3 ././@LongLink0000000000000000000000000000014600000000000011566 Lustar rootrootdiscover-2.1.2/doc/api-reference/man/man3/_home_pere_src_debiancvs_pkg-discover_discover_trunk_lib_.3discover-2.1.2/doc/api-reference/man/man3/_home_pere_src_debiancvs_pkg-discover_discover_trunk_lib_.0000644002342100234210000000246610655642004032450 0ustar perepere.TH "/home/pere/src/debiancvs/pkg-discover/discover/trunk/lib/ Directory Reference" 3 "28 Jul 2005" "discover" \" -*- nroff -*- .ad l .nh .SH NAME /home/pere/src/debiancvs/pkg-discover/discover/trunk/lib/ Directory Reference \- .SS "Files" .in +1c .ti -1c .RI "file \fBbusclass-xml.c\fP" .br .RI "\fIBusclass XML data file parsing. \fP" .PP .in +1c .ti -1c .RI "file \fBconf.c\fP" .br .RI "\fIConfiguration handling (including XML parsing). \fP" .PP .in +1c .ti -1c .RI "file \fBcore.c\fP" .br .RI "\fICore and miscellaneous routines. \fP" .PP .in +1c .ti -1c .RI "file \fBdevice-xml.c\fP" .br .RI "\fIDevice XML data file parsing. \fP" .PP .in +1c .ti -1c .RI "file \fBdevice.c\fP" .br .RI "\fIDevice enumeration and information management. \fP" .PP .in +1c .ti -1c .RI "file \fBload-url.c\fP" .br .RI "\fIFile loading helper functions. \fP" .PP .in +1c .ti -1c .RI "file \fBstack.c\fP" .br .RI "\fIStack routines for Discover. \fP" .PP .in +1c .ti -1c .RI "file \fBsysdep.c\fP" .br .RI "\fIInteract with system dependencies. \fP" .PP .in +1c .ti -1c .RI "file \fBurl-xml.c\fP" .br .RI "\fIXML URL handling. \fP" .PP .in +1c .ti -1c .RI "file \fBvendor-xml.c\fP" .br .RI "\fIVendor XML data file parsing. \fP" .PP .in +1c .ti -1c .RI "file \fBversion-cmp.c\fP" .br .RI "\fIVersion comparison functions. \fP" .PP .in -1c discover-2.1.2/doc/api-reference/man/man3/discover_xml_vendor_id2name.30000644002342100234210000000002610655642004024421 0ustar perepere.so man3/vendor_xml.3 discover-2.1.2/doc/api-reference/man/man3/discover_conf_get_bus_map.30000644002342100234210000000002010655642004024131 0ustar perepere.so man3/conf.3 discover-2.1.2/doc/api-reference/man/man3/discover_bus_t.30000644002342100234210000000002110655642004021754 0ustar perepere.so man3/types.3 discover-2.1.2/doc/api-reference/man/man3/discover_data_get_child.30000644002342100234210000000002210655642004023554 0ustar perepere.so man3/device.3 discover-2.1.2/doc/api-reference/man/man3/discover_device_new.30000644002342100234210000000002210655642004022751 0ustar perepere.so man3/device.3 discover-2.1.2/doc/api-reference/man/man3/state.30000644002342100234210000000002210655642004020063 0ustar perepere.so man3/conf.c.3 discover-2.1.2/doc/api-reference/man/man3/sysdep.c.30000644002342100234210000001170010655642004020500 0ustar perepere.TH "/home/pere/src/debiancvs/pkg-discover/discover/trunk/lib/sysdep.c" 3 "28 Jul 2005" "discover" \" -*- nroff -*- .ad l .nh .SH NAME /home/pere/src/debiancvs/pkg-discover/discover/trunk/lib/sysdep.c \- Interact with system dependencies. .SH SYNOPSIS .br .PP \fC#include \fP .br \fC#include \fP .br \fC#include \fP .br \fC#include \fP .br \fC#include \fP .br \fC#include \fP .br \fC#include \fP .br \fC#include \fP .br \fC#include \fP .br .SS "Typedefs" .in +1c .ti -1c .RI "typedef \fBdiscover_sysdep_data_t\fP *( \fBraw_sysdep_function_t\fP )(void)" .br .in -1c .SS "Functions" .in +1c .ti -1c .RI "\fBdiscover_sysdep_data_t\fP * \fB_discover_sysdep_data_new\fP (void)" .br .ti -1c .RI "\fBdiscover_sysdep_device_data_t\fP * \fB_discover_sysdep_device_data_new\fP (void)" .br .ti -1c .RI "void \fB_discover_free_sysdep_data\fP (\fBdiscover_sysdep_data_t\fP *head)" .br .ti -1c .RI "void \fB_discover_free_sysdep_device_data\fP (\fBdiscover_sysdep_device_data_t\fP *head)" .br .ti -1c .RI "\fBdiscover_data_t\fP * \fB_discover_convert_device_data\fP (\fBdiscover_sysdep_device_data_t\fP *head)" .br .ti -1c .RI "\fBdiscover_device_t\fP * \fBdiscover_get_devices\fP (\fBdiscover_bus_t\fP bus, \fBdiscover_error_t\fP *status)" .br .ti -1c .RI "void \fBdiscover_free_devices\fP (void)" .br .in -1c .SH "Detailed Description" .PP Interact with system dependencies. This file holds the routines that interact with the system-dependent interface. This file essentially bridges the gap between the XML data and the hardware contained within the machine. .PP Definition in file \fBsysdep.c\fP. .SH "Typedef Documentation" .PP .SS "typedef \fBdiscover_sysdep_data_t\fP*( \fBraw_sysdep_function_t\fP)(void)" .PP Function pointers .PP Definition at line 49 of file sysdep.c. .SH "Function Documentation" .PP .SS "\fBdiscover_data_t\fP* _discover_convert_device_data (\fBdiscover_sysdep_device_data_t\fP * head)" .PP Convert sysdep device data into discover data under the 'device' node. .PP Set up the toplevel data node. .PP Set up the first parent below 'device' for this node. .PP Set up the token parser. .PP Split the node path by the path separator. .PP Set up the new data node. .PP Does this node have a predecessor in the path? .PP No; make it a child of the 'device' node. .PP Yes; make it a child of the previous. .PP Clean up after the token parser. .PP Definition at line 135 of file sysdep.c. .PP References discover_data_new(), discover_sysdep_device_data::next, discover_sysdep_device_data::path, and discover_sysdep_device_data::value. .PP Referenced by discover_get_devices(). .SS "void _discover_free_sysdep_data (\fBdiscover_sysdep_data_t\fP * head)" .PP Release the memory that the sysdep data was holding. .PP Definition at line 92 of file sysdep.c. .PP References _discover_free_sysdep_device_data(), discover_sysdep_data::busclass, discover_sysdep_data::data, discover_sysdep_data::model, discover_sysdep_data::next, and discover_sysdep_data::vendor. .PP Referenced by discover_get_devices(). .SS "void _discover_free_sysdep_device_data (\fBdiscover_sysdep_device_data_t\fP * head)" .PP Release memory being held by device-specific data. .PP Definition at line 117 of file sysdep.c. .PP References discover_sysdep_device_data::next, discover_sysdep_device_data::path, and discover_sysdep_device_data::value. .PP Referenced by _discover_free_sysdep_data(). .SS "\fBdiscover_sysdep_data_t\fP* _discover_sysdep_data_new (void)" .PP Create a new instance of sysdep data. .PP Definition at line 66 of file sysdep.c. .PP References discover_sysdep_data::busclass, discover_sysdep_data::data, discover_sysdep_data::model, discover_sysdep_data::next, and discover_sysdep_data::vendor. .SS "\fBdiscover_sysdep_device_data_t\fP* _discover_sysdep_device_data_new (void)" .PP Create a new instance of sysdep device data. .PP Definition at line 80 of file sysdep.c. .PP References discover_sysdep_device_data::next, discover_sysdep_device_data::path, and discover_sysdep_device_data::value. .SS "void discover_free_devices (void)" .PP Free the currently allocated memory holding the device information. .PP Definition at line 301 of file sysdep.c. .PP References BUS_COUNT, and discover_device_free(). .SS "\fBdiscover_device_t\fP* discover_get_devices (\fBdiscover_bus_t\fP bus, \fBdiscover_error_t\fP * status)" .PP Function responsible for returning a devicelist of current devices .PP Definition at line 206 of file sysdep.c. .PP References _discover_convert_device_data(), _discover_free_sysdep_data(), discover_error::code, discover_conf_get_bus_map(), discover_device_new(), DISCOVER_EBUSDISABLED, DISCOVER_SUCCESS, discover_xml_get_devices(), discover_xml_get_matching_devices(), discover_bus_map::get_raw, and discover_bus_map::scan_never. .PP Referenced by discover_device_find(). .SH "Author" .PP Generated automatically by Doxygen for discover from the source code. discover-2.1.2/doc/api-reference/man/man3/discover_xml_get_urls.30000644002342100234210000000002310655642004023346 0ustar perepere.so man3/url_xml.3 discover-2.1.2/doc/api-reference/man/man3/core.30000644002342100234210000000407710655642004017711 0ustar perepere.TH "Core functionality" 3 "28 Jul 2005" "discover" \" -*- nroff -*- .ad l .nh .SH NAME Core functionality \- .SS "Functions" .in +1c .ti -1c .RI "\fBdiscover_error_t\fP * \fBdiscover_error_new\fP (void)" .br .ti -1c .RI "void * \fB_discover_create_message\fP (\fBdiscover_error_t\fP **status, char *message)" .br .ti -1c .RI "void \fBdiscover_error_free\fP (\fBdiscover_error_t\fP *status)" .br .ti -1c .RI "char * \fBdiscover_strerror\fP (\fBdiscover_error_t\fP *err)" .br .ti -1c .RI "int \fBdiscover_major_version\fP (void)" .br .ti -1c .RI "int \fBdiscover_minor_version\fP (void)" .br .ti -1c .RI "int \fBdiscover_micro_version\fP (void)" .br .in -1c .SH "Function Documentation" .PP .SS "void* _discover_create_message (\fBdiscover_error_t\fP ** status, char * message)" .PP Allocate memory for a char * variable. This routine was written for discover_error_t struct. .PP Definition at line 82 of file core.c. .PP Referenced by discover_error_new(). .SS "void discover_error_free (\fBdiscover_error_t\fP * status)" .PP Free a discover_error_t structure. .PP Definition at line 95 of file core.c. .PP References discover_error::message. .SS "\fBdiscover_error_t\fP* discover_error_new (void)" .PP Allocate and initialize a discover_error_t structure. .PP Definition at line 68 of file core.c. .PP References _discover_create_message(), discover_error::code, discover_error::create_message, and discover_error::message. .SS "int discover_major_version (void)" .PP Get the major version number. .PP Definition at line 124 of file core.c. .SS "int discover_micro_version (void)" .PP Get the micro version number. .PP Definition at line 142 of file core.c. .SS "int discover_minor_version (void)" .PP Get the minor version number. .PP Definition at line 133 of file core.c. .SS "char* discover_strerror (\fBdiscover_error_t\fP * err)" .PP Convert an error code to a human-readable string localized according to the current locale (XXX: no i18n yet). .PP \fBParameters:\fP .RS 4 \fIerr\fP Error code to convert .RE .PP .PP Definition at line 111 of file core.c. .PP References discover_error::code. discover-2.1.2/doc/api-reference/man/man3/discover_xml_version_cmp.30000644002342100234210000000002710655642004024052 0ustar perepere.so man3/version_cmp.3 discover-2.1.2/doc/api-reference/man/man3/discover_xml_get_busclasses.30000644002342100234210000000003010655642004024526 0ustar perepere.so man3/busclass_xml.3 discover-2.1.2/doc/api-reference/man/man3/discover_sysdep_data_t.30000644002342100234210000000002410655642004023466 0ustar perepere.so man3/sysdep.h.3 discover-2.1.2/doc/api-reference/man/man3/stdio_file.30000644002342100234210000000002610655642004021070 0ustar perepere.so man3/load-url.c.3 discover-2.1.2/doc/api-reference/man/man3/discover_device_get_vendor_id.30000644002342100234210000000002210655642004024770 0ustar perepere.so man3/device.3 discover-2.1.2/doc/api-reference/man/man3/discover_data_get_parent.30000644002342100234210000000002210655642004023762 0ustar perepere.so man3/device.3 discover-2.1.2/doc/api-reference/man/man3/model.30000644002342100234210000000004010655642004020043 0ustar perepere.so man3/discover_sysdep_data.3 discover-2.1.2/doc/api-reference/man/man3/discover_xml_get_devices.30000644002342100234210000000002610655642004024006 0ustar perepere.so man3/device_xml.3 discover-2.1.2/doc/api-reference/man/man3/discover.h.30000644002342100234210000001362210655642004021021 0ustar perepere.TH "/home/pere/src/debiancvs/pkg-discover/discover/trunk/include/discover/discover.h" 3 "28 Jul 2005" "discover" \" -*- nroff -*- .ad l .nh .SH NAME /home/pere/src/debiancvs/pkg-discover/discover/trunk/include/discover/discover.h \- Public interface for Discover library. .SH SYNOPSIS .br .PP \fC#include \fP .br \fC#include \fP .br .SS "Defines" .in +1c .ti -1c .RI "#define \fBBUS_COUNT\fP 5" .br .in -1c .SS "Typedefs" .in +1c .ti -1c .RI "typedef void *( \fBdiscover_create_message_t\fP )(struct \fBdiscover_error\fP **, char *)" .br .ti -1c .RI "typedef \fBdiscover_error\fP \fBdiscover_error_t\fP" .br .ti -1c .RI "typedef \fBdiscover_bus_map\fP \fBdiscover_bus_map_t\fP" .br .ti -1c .RI "typedef discover_device \fBdiscover_device_t\fP" .br .ti -1c .RI "typedef discover_data \fBdiscover_data_t\fP" .br .ti -1c .RI "typedef discover_xml_busclass \fBdiscover_xml_busclass_t\fP" .br .ti -1c .RI "typedef discover_xml_vendor \fBdiscover_xml_vendor_t\fP" .br .ti -1c .RI "typedef discover_xml_url \fBdiscover_xml_url_t\fP" .br .ti -1c .RI "typedef \fBdiscover_device_t\fP *( \fBdiscover_device_func_t\fP )(\fBdiscover_error_t\fP *)" .br .ti -1c .RI "typedef \fBdiscover_xml_busclass_t\fP *( \fBdiscover_xml_busclass_func_t\fP )(\fBdiscover_error_t\fP *)" .br .ti -1c .RI "typedef \fBdiscover_xml_vendor_t\fP *( \fBdiscover_xml_vendor_func_t\fP )(\fBdiscover_error_t\fP *)" .br .ti -1c .RI "typedef \fBdiscover_xml_url_t\fP *( \fBdiscover_xml_url_func_t\fP )(\fBdiscover_error_t\fP *)" .br .ti -1c .RI "typedef void( \fBdiscover_free_func_t\fP )(void)" .br .ti -1c .RI "typedef \fBdiscover_sysdep_data_t\fP *( \fBdiscover_sysdep_raw_func_t\fP )(void)" .br .in -1c .SS "Enumerations" .in +1c .ti -1c .RI "enum \fBdiscover_error_code_t\fP { \fBDISCOVER_SUCCESS\fP, \fBDISCOVER_EIO\fP, \fBDISCOVER_EXML\fP, \fBDISCOVER_ESYS\fP, \fBDISCOVER_EBUSDISABLED\fP, \fBDISCOVER_EBUSNOTFOUND\fP, \fBDISCOVER_EDATANOTFOUND\fP, \fBDISCOVER_EDEVICENOTFOUND\fP, \fBDISCOVER_EBADVERSION\fP, \fBDISCOVER_ENOIMPL\fP }" .br .ti -1c .RI "enum \fBdiscover_bus_t\fP { \fBATA\fP, \fBPCI\fP, \fBPCMCIA\fP, \fBSCSI\fP, \fBUSB\fP }" .br .ti -1c .RI "enum \fBdiscover_filetype_t\fP { \fBVENDOR_TYPE\fP, \fBBUSCLASS_TYPE\fP, \fBDEVICE_TYPE\fP }" .br .in -1c .SS "Functions" .in +1c .ti -1c .RI "\fBdiscover_device_t\fP * \fBdiscover_get_devices\fP (\fBdiscover_bus_t\fP bus, \fBdiscover_error_t\fP *status)" .br .ti -1c .RI "void \fBdiscover_free_devices\fP (void)" .br .ti -1c .RI "\fBdiscover_error_t\fP * \fBdiscover_error_new\fP (void)" .br .ti -1c .RI "void \fBdiscover_error_free\fP (\fBdiscover_error_t\fP *status)" .br .ti -1c .RI "char * \fBdiscover_strerror\fP (\fBdiscover_error_t\fP *err)" .br .ti -1c .RI "int \fBdiscover_major_version\fP (void)" .br .ti -1c .RI "int \fBdiscover_minor_version\fP (void)" .br .ti -1c .RI "int \fBdiscover_micro_version\fP (void)" .br .ti -1c .RI "\fBdiscover_device_t\fP * \fBdiscover_device_new\fP (void)" .br .ti -1c .RI "\fBdiscover_device_t\fP * \fBdiscover_device_find\fP (char *discover_class, \fBdiscover_error_t\fP *status)" .br .ti -1c .RI "char * \fBdiscover_device_get_data\fP (\fBdiscover_device_t\fP *device, char *path, char *version, \fBdiscover_error_t\fP *status)" .br .ti -1c .RI "void \fBdiscover_device_copy\fP (\fBdiscover_device_t\fP *src, \fBdiscover_device_t\fP *dst)" .br .ti -1c .RI "char * \fBdiscover_device_get_busclass\fP (\fBdiscover_device_t\fP *device)" .br .ti -1c .RI "char * \fBdiscover_device_get_model_id\fP (\fBdiscover_device_t\fP *device)" .br .ti -1c .RI "char * \fBdiscover_device_get_model_name\fP (\fBdiscover_device_t\fP *device)" .br .ti -1c .RI "char * \fBdiscover_device_get_vendor_id\fP (\fBdiscover_device_t\fP *device)" .br .ti -1c .RI "char * \fBdiscover_device_get_vendor_name\fP (\fBdiscover_device_t\fP *device)" .br .ti -1c .RI "\fBdiscover_data_t\fP * \fBdiscover_device_get_data_struct\fP (\fBdiscover_device_t\fP *device)" .br .ti -1c .RI "\fBdiscover_device_t\fP * \fBdiscover_device_get_next\fP (\fBdiscover_device_t\fP *device)" .br .ti -1c .RI "void \fBdiscover_device_free\fP (\fBdiscover_device_t\fP *devices, int free_data)" .br .ti -1c .RI "\fBdiscover_data_t\fP * \fBdiscover_data_new\fP (void)" .br .ti -1c .RI "char * \fBdiscover_data_get_class\fP (\fBdiscover_data_t\fP *data)" .br .ti -1c .RI "char * \fBdiscover_data_get_text\fP (\fBdiscover_data_t\fP *data)" .br .ti -1c .RI "\fBdiscover_data_t\fP * \fBdiscover_data_get_parent\fP (\fBdiscover_data_t\fP *data)" .br .ti -1c .RI "\fBdiscover_data_t\fP * \fBdiscover_data_get_child\fP (\fBdiscover_data_t\fP *data)" .br .ti -1c .RI "\fBdiscover_data_t\fP * \fBdiscover_data_get_next\fP (\fBdiscover_data_t\fP *data)" .br .ti -1c .RI "\fBdiscover_data_t\fP * \fBdiscover_data_get_prev\fP (\fBdiscover_data_t\fP *prev)" .br .ti -1c .RI "\fBdiscover_data_t\fP * \fBdiscover_data_get_first\fP (\fBdiscover_data_t\fP *data)" .br .ti -1c .RI "void \fBdiscover_data_free\fP (\fBdiscover_data_t\fP *data_tree)" .br .in -1c .SH "Detailed Description" .PP Public interface for Discover library. .PP Definition in file \fBdiscover.h\fP. .SH "Function Documentation" .PP .SS "void discover_free_devices (void)" .PP Free the currently allocated memory holding the device information. .PP Definition at line 301 of file sysdep.c. .PP References BUS_COUNT, and discover_device_free(). .SS "\fBdiscover_device_t\fP* discover_get_devices (\fBdiscover_bus_t\fP bus, \fBdiscover_error_t\fP * status)" .PP Function responsible for returning a devicelist of current devices .PP Definition at line 206 of file sysdep.c. .PP References _discover_convert_device_data(), _discover_free_sysdep_data(), discover_error::code, discover_conf_get_bus_map(), discover_device_new(), DISCOVER_EBUSDISABLED, DISCOVER_SUCCESS, discover_xml_get_devices(), discover_xml_get_matching_devices(), discover_bus_map::get_raw, and discover_bus_map::scan_never. .PP Referenced by discover_device_find(). .SH "Author" .PP Generated automatically by Doxygen for discover from the source code. discover-2.1.2/doc/api-reference/html/0002755002342100234210000000000010272033371016216 5ustar pereperediscover-2.1.2/doc/api-reference/html/sysdep_8h-source.html0000644002342100234210000002152410655642004022316 0ustar perepere discover: /home/pere/src/debiancvs/pkg-discover/discover/trunk/include/discover/sysdep.h Source File

sysdep.h

Go to the documentation of this file.
00001 
00006 /* $Progeny$
00007  *
00008  * AUTHOR: John R. Daily <jdaily@progeny.com>
00009  *
00010  * Copyright 2002 Progeny Linux Systems, Inc.
00011  *
00012  * Permission is hereby granted, free of charge, to any person obtaining a
00013  * copy of this software and associated documentation files (the "Software"),
00014  * to deal in the Software without restriction, including without limitation
00015  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
00016  * and/or sell copies of the Software, and to permit persons to whom the
00017  * Software is furnished to do so, subject to the following conditions:
00018  *
00019  * The above copyright notice and this permission notice shall be included in
00020  * all copies or substantial portions of the Software.
00021  *
00022  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
00023  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
00024  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
00025  * THE COPYRIGHT HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
00026  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
00027  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
00028  * DEALINGS IN THE SOFTWARE.
00029  */
00030 
00031 #ifndef SYSDEP_H
00032 #define SYSDEP_H
00033 
00034 #ifdef __cplusplus
00035     extern "C" {
00036 #endif
00037 
00043 typedef struct discover_sysdep_device_data {
00045     char *path;
00047     char *value;
00049     struct discover_sysdep_device_data *next;
00050 } discover_sysdep_device_data_t;
00051 
00056 typedef struct discover_sysdep_data {
00058     char *busclass;
00060     char *vendor;
00062     char *model;
00064     discover_sysdep_device_data_t *data;
00066     struct discover_sysdep_data *next;
00067 } discover_sysdep_data_t;
00068 
00069 discover_sysdep_data_t *_discover_sysdep_data_new(void);
00070 discover_sysdep_device_data_t *_discover_sysdep_device_data_new(void);
00071 void _discover_free_sysdep_data(discover_sysdep_data_t *);
00072 void _discover_free_sysdep_device_data(discover_sysdep_device_data_t *);
00073 
00074 discover_sysdep_data_t *_discover_get_ata_raw(void);
00075 discover_sysdep_data_t *_discover_get_pci_raw(void);
00076 discover_sysdep_data_t *_discover_get_usb_raw(void);
00077 discover_sysdep_data_t *_discover_get_pcmcia_raw(void);
00078 discover_sysdep_data_t *_discover_get_scsi_raw(void);
00079 
00080 #ifdef __cplusplus
00081     }
00082 #endif
00083 
00084 #endif
00085 
00086 /*
00087  * Local variables:
00088  * c-file-style: "progeny"
00089  * indent-tabs-mode: nil
00090  * End:
00091  */
00092 /* vim: set cin fo=tcroq sw=4 et sts=4 tw=75: */

Generated on Thu Jul 28 03:38:00 2005 for discover by  doxygen 1.4.2
discover-2.1.2/doc/api-reference/html/busclass-xml_8c.html0000644002342100234210000001304010655642004022113 0ustar perepere discover: /home/pere/src/debiancvs/pkg-discover/discover/trunk/lib/busclass-xml.c File Reference

busclass-xml.c File Reference

Busclass XML data file parsing. More...

#include "config.h"
#include <sys/types.h>
#include <assert.h>
#include <limits.h>
#include <stdio.h>
#include <string.h>
#include <expat.h>
#include <discover/discover.h>
#include <discover/discover-xml.h>
#include <discover/load-url.h>
#include <discover/utils.h>

Go to the source code of this file.

Functions

void discover_xml_merge_busclass_url (discover_xml_busclass_t **blist, char *url, discover_error_t *status)
discover_xml_busclass_tdiscover_xml_get_busclasses (discover_bus_t bus, discover_error_t *status)
void discover_xml_free_busclasses (void)
char * discover_xml_busclass_to_class (char *busclass, discover_xml_busclass_t *busclasses)
int discover_xml_busclass_cmp (char *busclass, char *discover_class, discover_xml_busclass_t *busclasses)
char * discover_xml_busclass_get_id (discover_xml_busclass_t *busclass)
char * discover_xml_busclass_get_name (discover_xml_busclass_t *busclass)
discover_xml_busclass_tdiscover_xml_busclass_get_next (discover_xml_busclass_t *busclass)
discover_xml_busclass_tdiscover_xml_busclass_new (void)
void discover_xml_busclass_free (discover_xml_busclass_t *busclasses)


Detailed Description

Busclass XML data file parsing.

This file contains the routines needed to properly process the busclass XML data. This file is responsible for handling URLs and actually storing the XML data during the parsing process.

Definition in file busclass-xml.c.


Generated on Thu Jul 28 03:38:00 2005 for discover by  doxygen 1.4.2
discover-2.1.2/doc/api-reference/html/device-xml_8c-source.html0000644002342100234210000010434510655642004023042 0ustar perepere discover: /home/pere/src/debiancvs/pkg-discover/discover/trunk/lib/device-xml.c Source File

device-xml.c

Go to the documentation of this file.
00001 
00010 /* $Progeny$
00011  *
00012  * AUTHOR: John R. Daily <jdaily@progeny.com>
00013  *
00014  * Copyright 2002 Progeny Linux Systems, Inc.
00015  * Copyright 2002 Hewlett-Packard Company
00016  *
00017  * Permission is hereby granted, free of charge, to any person obtaining a
00018  * copy of this software and associated documentation files (the "Software"),
00019  * to deal in the Software without restriction, including without limitation
00020  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
00021  * and/or sell copies of the Software, and to permit persons to whom the
00022  * Software is furnished to do so, subject to the following conditions:
00023  *
00024  * The above copyright notice and this permission notice shall be included in
00025  * all copies or substantial portions of the Software.
00026  *
00027  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
00028  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
00029  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
00030  * THE COPYRIGHT HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
00031  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
00032  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
00033  * DEALINGS IN THE SOFTWARE.
00034  */
00035 
00036 /*
00037  * This is slightly different than busclass-xml.c and vendor-xml.c.
00038  * With those, the data that interests us is actually in the
00039  * XML files, so the structures built by those modules are the final
00040  * structures.
00041 
00042  * With the devices, the list we build here is only an intermediate
00043  * place to store the discover_device structures.  When we probe the
00044  * bus, we will move the discover_device structures for which
00045  * we have found corresponding hardware from this list to the final
00046  * one. (That action happens in the modules for the individual buses,
00047  * such as pci.c.)
00048 
00049  * Whereas busclass-xml.c and vendor-xml.c create pci_busclasses and
00050  * pci_vendors lists, respectively, this module creates
00051  * pci_devices_xml.  Objects are moved from this list to the
00052  * pci_devices list in pci.c, and the rest are freed.
00053  */
00054 
00055 #include "config.h"
00056 
00057 #include <sys/types.h>
00058 
00059 #include <assert.h>
00060 #include <ctype.h>
00061 #include <limits.h>
00062 #include <stdbool.h>
00063 #include <string.h>
00064 #include <errno.h>
00065 
00066 #include <expat.h>
00067 
00068 #include <discover/discover.h>
00069 #include <discover/discover-xml.h>
00070 
00071 #include <discover/load-url.h>
00072 #include <discover/device.h>
00073 #include <discover/utils.h>
00074 #include <discover/stack.h>
00075 
00077 #define IDLEN 5
00078 
00079 static discover_device_t *devices_xml[BUS_COUNT];
00080 
00082 enum state { START, FINISH, DEVICE, DATA };
00083 struct context {
00084     enum state state;
00085 
00086     discover_xml_busclass_t *busclasses;
00087     discover_xml_vendor_t *vendors;
00088 
00089     /* Device stuff */
00090     discover_device_t **dhead;
00091     discover_device_t *dtail;
00092 
00093     /* data stuff */
00094     discover_xml_stack *stack;
00095 /*
00096     discover_data_t *data_current;
00097     discover_data_t *data_parent;
00098 */
00099     int nesting;
00100     int last_nesting;
00101 
00102     int unknown_level; /* How deep are we into unknown XML tags? */
00103 };
00104 
00105 static char *known_device_elements[] = {
00106     "data",
00107     "device",
00108     "device_list",
00109     NULL
00110 };
00111 
00112 static void
00113 get_data_failure_handler(discover_error_t **status, char *url)
00114 {
00115     char *errmsg;
00116     static int maxurlsize = 1024; /* If your URL is longer than this,
00117                                      you've got problems */
00118 
00119     if((*status)->code == DISCOVER_EIO) {
00120         errmsg = _discover_xmalloc(maxurlsize + 1);
00121         snprintf(errmsg, maxurlsize, "Resource not found: %s", url);
00122         (*status)->create_message(status, errmsg);
00123         free(errmsg);
00124     } else {
00125         if (errno) {
00126             errmsg = _discover_xmalloc(maxurlsize + 1);
00127             snprintf(errmsg, maxurlsize, "Problem loading resource: %s: %s",
00128                      strerror(errno), url);
00129             (*status)->create_message(status, errmsg);
00130             free(errmsg);
00131         } else {
00132             (*status)->create_message(status,
00133                     "Unknown failure from system-dependent libraries");
00134         }
00135     }
00136 }
00137 
00138 static bool
00139 unknown_device_element(const XML_Char * const tag)
00140 {
00141     int i;
00142     for (i = 0; known_device_elements[i] != NULL; i++) {
00143         if (strcmp(tag, known_device_elements[i]) == 0)
00144             return false;
00145     }
00146     return true;
00147 }
00148 
00149 static void
00150 create_device(struct context *context, const XML_Char *attrs[])
00151 {
00152     int i;
00153     char *busclass, *model_id, *model_name, *vendor_id, *vendor_name;
00154     discover_device_t *new_device;
00155 
00156     assert(context != NULL);
00157     assert(attrs != NULL);
00158 
00159     busclass = model_id = model_name = vendor_id = NULL;
00160     for (i = 0; attrs[i]; i += 2) {
00161         if (strcmp(attrs[i], "busclass") == 0) {
00162             busclass = (char *)attrs[i + 1];
00163 
00164         } else if (strcmp(attrs[i], "model") == 0) {
00165             model_id = (char *)attrs[i + 1];
00166 
00167         } else if (strcmp(attrs[i], "model_name") == 0) {
00168             model_name = (char *)attrs[i + 1];
00169 
00170         } else if (strcmp(attrs[i], "vendor") == 0) {
00171             vendor_id = (char *)attrs[i + 1];
00172         }
00173     }
00174 
00175     assert(model_id != NULL);
00176     assert(model_name != NULL);
00177     assert(vendor_id != NULL);
00178 
00179     vendor_name = discover_xml_vendor_id2name(context->vendors, vendor_id);
00180     assert(vendor_name != NULL);
00181 
00182     context->stack = discover_xml_stack_new();
00183 
00184     new_device = discover_device_new();
00185     new_device->busclasses = context->busclasses;
00186     new_device->vendors = context->vendors;
00187     if (busclass) {
00188         new_device->busclass = _discover_xstrdup(busclass);
00189     } else {
00190         new_device->busclass = NULL;
00191     }
00192     new_device->model_id = _discover_xstrdup(model_id);
00193     new_device->model_name = _discover_xstrdup(model_name);
00194     new_device->vendor_id = _discover_xstrdup(vendor_id);
00195     new_device->vendor_name = _discover_xstrdup(vendor_name);
00196     new_device->data = NULL;
00197     new_device->next = NULL;
00198 
00199     if (*(context->dhead)) {
00200         context->dtail->next = new_device;
00201         context->dtail = new_device;
00202     } else {
00203         *(context->dhead) = new_device;
00204         context->dtail = new_device;
00205     }
00206 }
00207 
00208 static void
00209 create_data(struct context *context, const XML_Char *attrs[])
00210 {
00211     discover_data_t *new_data, *current_data;
00212     discover_xml_stack *stack;
00213     int i;
00214     char *discover_class, *version;
00215 
00216     assert(context != NULL);
00217     assert(attrs != NULL);
00218 
00219     new_data = discover_data_new();
00220     new_data->text = NULL;
00221     new_data->next = new_data->prev = new_data->child = NULL;
00222 
00223 
00224     discover_class = version = NULL;
00225     for (i = 0; attrs[i]; i += 2) {
00226         if (strcmp(attrs[i], "class") == 0) {
00227             discover_class = (char *)attrs[i + 1];
00228         } else if (strcmp(attrs[i], "version") == 0) {
00229             version = (char *)attrs[i + 1];
00230         }
00231     }
00232 
00233     assert(discover_class != NULL);
00234 
00235     new_data->discover_class = _discover_xstrdup(discover_class);
00236     if (version) {
00237         new_data->version = _discover_xstrdup(version);
00238     }
00239 
00240     stack = context->stack;
00241 
00242     assert(stack != NULL);
00243 
00244     current_data = discover_xml_stack_get(stack);
00245 
00246     if(current_data) { /* The first time through this, we have no data. */
00247         /* First element of the list */
00248         if(stack->depth > context->nesting) {
00249             discover_xml_stack_pop(&stack);
00250             //current_data = discover_xml_stack_pop(&stack);
00251             new_data->prev = current_data;
00252             new_data->prev->next = new_data;
00253             if(context->nesting) {
00254                 new_data->parent =
00255                     discover_xml_stack_getbynum(stack, context->nesting);
00256             }
00257         } else {
00258             /* Brand new child */
00259             new_data->parent = current_data;
00260             new_data->parent->child = new_data;
00261         }
00262     }
00263 
00264     discover_xml_stack_push(&stack, new_data);
00265     context->stack = stack;
00266 }
00267 
00268 static void
00269 start_element(void *ctx, const XML_Char *name, const XML_Char *attrs[])
00270 {
00271     struct context *context = ctx;
00272 
00273     assert(context != NULL);
00274     assert(name != NULL);
00275     assert(attrs != NULL);
00276 
00277 
00278     if (unknown_device_element(name)) {
00279         context->unknown_level++;
00280         return;
00281     }
00282 
00283     if (context->unknown_level > 0) {
00284         return;
00285     }
00286 
00287     switch (context->state) {
00288     case FINISH:
00289         return;
00290 
00291     case START:
00292         if (strcmp(name, "device") == 0) {
00293             context->state = DEVICE;
00294             create_device(context, attrs);
00295         }
00296         break;
00297 
00298     case DEVICE:
00299         if (strcmp(name, "data") == 0) {
00300             context->nesting = context->last_nesting = 0;
00301             context->state = DATA;
00302         }
00303         /* Falls through */
00304 
00305     case DATA:
00306         if (strcmp(name, "data") == 0) {
00307             create_data(context, attrs);
00308             context->last_nesting = context->nesting;
00309             context->nesting++;
00310         }
00311         break;
00312     }
00313 }
00314 
00315 static void
00316 end_element(void *ctx, const XML_Char *name)
00317 {
00318     struct context *context = ctx;
00319     discover_device_t *device;
00320     discover_data_t *current_data;
00321     discover_xml_stack *stack;
00322 
00323 
00324     assert(context != NULL);
00325     assert(name != NULL);
00326 
00327 
00328     if (unknown_device_element(name)) {
00329         context->unknown_level--;
00330         return;
00331     }
00332 
00333     if (context->unknown_level > 0) {
00334         return;
00335     }
00336 
00337     switch (context->state) {
00338     case FINISH:
00339     case START:
00340         break;
00341 
00342     case DEVICE:
00343         context->state = START;
00344         device = context->dtail;
00345         stack = context->stack;
00346         current_data = discover_xml_stack_get(stack);
00347         device->data = discover_data_get_first(current_data);
00348 
00349         while (discover_xml_stack_pop(&(context->stack))) ;
00350         discover_xml_stack_destroy(context->stack);
00351         context->stack = NULL;
00352 
00353         break;
00354 
00355     case DATA:
00356         context->nesting--;
00357         stack = context->stack;
00358         if((context->nesting + 2) <= stack->depth) {
00359             while((context->nesting + 1 < stack->depth) &&
00360                     stack->depth > 1) {
00361                 discover_xml_stack_pop(&stack);
00362             }
00363             context->stack = stack;
00364         }
00365 
00366         if (context->nesting == 0) {
00367             context->state = DEVICE;
00368         }
00369     }
00370 }
00371 
00372 static void
00373 cdata(void *ctx, const XML_Char *data, int len)
00374 {
00375     struct context *context = ctx;
00376     size_t old_len;
00377     discover_data_t *current_data;
00378 
00379     assert(context != NULL);
00380     assert(data != NULL);
00381 
00382     if (context->state == DATA
00383         && context->nesting > context->last_nesting) {
00384         assert(context->stack != NULL);
00385         current_data = context->stack->data;
00386         assert(current_data != NULL);
00387 
00388         if (!current_data->text) {
00389             old_len = 0;
00390             current_data->text = _discover_xmalloc(1);
00391             current_data->text[0] = '\0';
00392         } else {
00393             old_len = strlen(current_data->text);
00394         }
00395         current_data->text
00396             = _discover_xrealloc(current_data->text,
00397                                  old_len + len + 1);
00398         strncat(current_data->text,
00399                 (const char *)data,
00400                 (unsigned int)len);
00401     }
00402 }
00403 
00418 /* Sshh!  Don't tell, but this doesn't actually do any merging at all.
00419  * Instead, it simply inserts newer entries at the front of the list,
00420  * meaning that device info found later supersedes info found earlier.
00421  * This gives the illusion of merging, but potentially wastes memory
00422  * with duplicates.
00423  */
00424 void
00425 discover_xml_merge_device_url(discover_device_t **dlist, char *url,
00426                               discover_xml_busclass_t *busclasses,
00427                               discover_xml_vendor_t *vendors,
00428                               discover_error_t *status)
00429 {
00430     XML_Parser parser;
00431     struct context context;
00432 
00433     assert(url != NULL);
00434     assert(busclasses != NULL);
00435     assert(vendors != NULL);
00436     assert(status != NULL);
00437 
00438     context.state = START;
00439     context.dhead = dlist;
00440     if (*(context.dhead)) {
00441         discover_device_t *next = *(context.dhead);
00442         while(next->next != NULL) {
00443             next = next->next;
00444         }
00445         context.dtail = next;
00446     } else {
00447         context.dtail = NULL;
00448     }
00449 
00450     context.busclasses = busclasses;
00451     context.vendors = vendors;
00452     context.unknown_level = 0;
00453     context.stack = NULL;
00454 
00455     parser = XML_ParserCreate(NULL);
00456     XML_SetElementHandler(parser, start_element, end_element);
00457     XML_SetCharacterDataHandler(parser, cdata);
00458     XML_SetUserData(parser, &context);
00459 
00460     if (!_discover_load_url(url, parser)) {
00461         XML_ParserFree(parser);
00462         status->code = DISCOVER_EIO;
00463         return;
00464     }
00465 
00466     if (!XML_Parse(parser, "", 0, 1)) {
00467         XML_ParserFree(parser);
00468         status->code = DISCOVER_EXML;
00469         return;
00470     }
00471 
00472     XML_ParserFree(parser);
00473 
00474     return;
00475 }
00476 
00483 discover_device_t *
00484 discover_xml_get_devices(discover_bus_t bus, discover_error_t *status)
00485 {
00486     discover_xml_url_t *urls, *i;
00487     char *url;
00488     discover_xml_busclass_t *busclasses;
00489     discover_xml_vendor_t *vendors;
00490 
00491     assert(status != NULL);
00492 
00493     status->code = 0;
00494 
00495     if (!devices_xml[bus]) {
00496         urls = discover_xml_get_data_urls(bus, DEVICE, status);
00497         if (status->code != 0) {
00498             return NULL;
00499         }
00500 
00501         busclasses = discover_xml_get_busclasses(bus, status);
00502         if (status->code != 0) {
00503             return NULL;
00504         }
00505 
00506         vendors = discover_xml_get_vendors(bus, status);
00507         if (status->code != 0) {
00508             return NULL;
00509         }
00510 
00511         for (i = urls;
00512              i;
00513              i = discover_xml_url_get_next(i)) {
00514             url = discover_xml_url_get_url(i);
00515             discover_xml_merge_device_url(&(devices_xml[bus]), url,
00516                                           busclasses, vendors, status);
00517             if (status->code != 0) {
00518                 get_data_failure_handler(&status, url);
00519             }
00520         }
00521     }
00522 
00523 
00524     return devices_xml[bus];
00525 }
00526 
00530 void
00531 discover_xml_free_devices(void)
00532 {
00533     int i;
00534     for (i = 0; i < BUS_COUNT; i++) {
00535         discover_device_free(devices_xml[i], 1);
00536         devices_xml[i] = NULL;
00537     }
00538 }
00539 
00549 discover_device_t *
00550 discover_xml_find_device(discover_device_t *xml_devices,
00551                          char *target_vendor, char *target_model,
00552                          discover_error_t *status)
00553 {
00554     discover_device_t *device;
00555 
00556     assert(target_vendor || target_model);
00557 
00558     for (device = xml_devices;
00559          device;
00560          device = device->next) {
00561         if (target_vendor && target_model) {
00562             if (strcmp(device->model_id, target_model) == 0
00563                 && strcmp(device->vendor_id, target_vendor) == 0) {
00564                 break;
00565             }
00566         } else if (target_vendor) {
00567             if (strcmp(device->vendor_id, target_vendor) == 0) {
00568                 break;
00569             }
00570         } else {
00571             /* We only have target_model. */
00572             if (strcmp(device->model_id, target_model) == 0) {
00573                 break;
00574             }
00575         }
00576     }
00577 
00578     return device;
00579 }
00580 
00593 discover_device_t *
00594 discover_xml_find_next_device(discover_device_t *xml_devices,
00595                          char *target_vendor, char *target_model,
00596                          discover_error_t *status)
00597 {
00598     return discover_xml_find_device(xml_devices->next,
00599                                     target_vendor, target_model,
00600                                     status);
00601 }
00602 
00603 
00613 discover_device_t *
00614 discover_xml_get_matching_devices(discover_device_t *xml_devices,
00615                                   char *target_vendor, char *target_model,
00616                                   discover_error_t *status)
00617 {
00618     discover_device_t *device, *last, *copy;
00619     discover_device_t *head_device = NULL;
00620 
00621     device = discover_xml_find_device(xml_devices, target_vendor,
00622                                       target_model, status);
00623     last = NULL;
00624 
00625     while(device) {
00626         copy = discover_device_new();
00627         discover_device_copy(device, copy);
00628         copy->next = NULL;
00629         copy->extra = NULL;
00630 
00631         if (last) {
00632             last->extra = copy;
00633         } else {
00634             head_device = copy;
00635         }
00636 
00637         last = copy;
00638 
00639         device = discover_xml_find_next_device(device, target_vendor,
00640                                                target_model, status);
00641     }
00642 
00643     return head_device;
00644 }
00645 
00648 /*
00649  * Local variables:
00650  * c-file-style: "progeny"
00651  * indent-tabs-mode: nil
00652  * End:
00653  */
00654 /* vim: set cin fo=tcroq sw=4 et sts=4 tw=75: */

Generated on Thu Jul 28 03:38:00 2005 for discover by  doxygen 1.4.2
discover-2.1.2/doc/api-reference/html/group__url__xml.html0000644002342100234210000005650410655642004022314 0ustar perepere discover: URL list XML parsing

URL list XML parsing


Functions

discover_xml_url_tdiscover_xml_get_urls (discover_error_t *status)
void discover_xml_free_urls (void)
discover_xml_url_tdiscover_xml_get_data_urls (discover_bus_t bus, discover_filetype_t filetype, discover_error_t *status)
void discover_xml_free_data_urls (void)
discover_xml_url_tdiscover_xml_url_new (void)
void discover_xml_url_copy (discover_xml_url_t *src, discover_xml_url_t *dst)
char * discover_xml_url_get_url (discover_xml_url_t *url)
char * discover_xml_url_get_label (discover_xml_url_t *url)
char * discover_xml_url_get_bus (discover_xml_url_t *url)
char * discover_xml_url_get_type (discover_xml_url_t *url)
discover_xml_url_tdiscover_xml_url_get_next (discover_xml_url_t *url)
discover_xml_url_tdiscover_xml_url_get_last (discover_xml_url_t *url)
void discover_xml_url_free (discover_xml_url_t *urls)

Function Documentation

void discover_xml_free_data_urls void   ) 
 

Free the list of data URLs.

Definition at line 310 of file url-xml.c.

References BUS_COUNT, and discover_xml_url_free().

void discover_xml_free_urls void   ) 
 

Free the list of URLs.

Definition at line 244 of file url-xml.c.

References discover_xml_url_free().

discover_xml_url_t* discover_xml_get_data_urls discover_bus_t  bus,
discover_filetype_t  filetype,
discover_error_t status
 

Get the list of data URLs, based on the bus type and type of data required.

Parameters:
bus Bus in question
filetype Type of file (vendor, busclass, or device)
status Address in which to place status report

Definition at line 261 of file url-xml.c.

References discover_error::code, discover_conf_get_bus_name(), discover_conf_get_filetype_name(), DISCOVER_EDATANOTFOUND, discover_xml_get_urls(), discover_xml_url_copy(), and discover_xml_url_new().

Referenced by discover_xml_get_busclasses(), discover_xml_get_devices(), and discover_xml_get_vendors().

discover_xml_url_t* discover_xml_get_urls discover_error_t status  ) 
 

Get the list of URLs from which bus and device data will be retrieved.

Parameters:
status Address in which to place status report

Definition at line 182 of file url-xml.c.

References discover_error::code, discover_conf_get_urls(), DISCOVER_EIO, DISCOVER_EXML, and discover_xml_url_free().

Referenced by discover_xml_get_data_urls().

void discover_xml_url_copy discover_xml_url_t src,
discover_xml_url_t dst
 

Copy a URL structure.

Parameters:
src Copy from (source)
dst Copy to (destination)

Definition at line 349 of file url-xml.c.

Referenced by discover_xml_get_data_urls().

void discover_xml_url_free discover_xml_url_t urls  ) 
 

Free the URL or list of URLs.

Parameters:
urls URL or list of URLs to free

Definition at line 444 of file url-xml.c.

Referenced by discover_conf_free(), discover_xml_free_data_urls(), discover_xml_free_urls(), and discover_xml_get_urls().

char* discover_xml_url_get_bus discover_xml_url_t url  ) 
 

Get the bus member of URL.

Definition at line 398 of file url-xml.c.

char* discover_xml_url_get_label discover_xml_url_t url  ) 
 

Get the label member of url.

Definition at line 387 of file url-xml.c.

discover_xml_url_t* discover_xml_url_get_last discover_xml_url_t url  ) 
 

Get the last member of url.

Definition at line 431 of file url-xml.c.

discover_xml_url_t* discover_xml_url_get_next discover_xml_url_t url  ) 
 

Get the next member of url.

Definition at line 420 of file url-xml.c.

Referenced by discover_xml_get_busclasses(), discover_xml_get_devices(), and discover_xml_get_vendors().

char* discover_xml_url_get_type discover_xml_url_t url  ) 
 

Get the type member of url.

Definition at line 409 of file url-xml.c.

char* discover_xml_url_get_url discover_xml_url_t url  ) 
 

Get the url member of url.

Definition at line 376 of file url-xml.c.

Referenced by discover_xml_get_busclasses(), discover_xml_get_devices(), and discover_xml_get_vendors().

discover_xml_url_t* discover_xml_url_new void   ) 
 

Create and initialize a new (empty) URL structure.

Definition at line 326 of file url-xml.c.

Referenced by discover_conf_get_urls(), and discover_xml_get_data_urls().


Generated on Thu Jul 28 03:38:01 2005 for discover by  doxygen 1.4.2
discover-2.1.2/doc/api-reference/html/dir_000001.html0000644002342100234210000000536110655642004020471 0ustar perepere discover: /home/pere/src/debiancvs/pkg-discover/discover/trunk/include/discover/ Directory Reference

discover Directory Reference


Files

file  discover-conf.h [code]
 Public interface for reading Discover configuration data.
file  discover-xml.h [code]
 Public interface to Discover's XML handling.
file  discover.h [code]
 Public interface for Discover library.
file  sysdep.h [code]
 Private interface for system dependencies.

Generated on Thu Jul 28 03:38:01 2005 for discover by  doxygen 1.4.2
discover-2.1.2/doc/api-reference/html/conf_8c-source.html0000644002342100234210000010544410655642004021733 0ustar perepere discover: /home/pere/src/debiancvs/pkg-discover/discover/trunk/lib/conf.c Source File

conf.c

Go to the documentation of this file.
00001 
00012 /* $Progeny$
00013  *
00014  * Copyright 2002-2005 Progeny Linux Systems, Inc.
00015  * Copyright 2002 Hewlett-Packard Company
00016  *
00017  * Permission is hereby granted, free of charge, to any person obtaining a
00018  * copy of this software and associated documentation files (the "Software"),
00019  * to deal in the Software without restriction, including without limitation
00020  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
00021  * and/or sell copies of the Software, and to permit persons to whom the
00022  * Software is furnished to do so, subject to the following conditions:
00023  *
00024  * The above copyright notice and this permission notice shall be included in
00025  * all copies or substantial portions of the Software.
00026  *
00027  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
00028  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
00029  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
00030  * THE COPYRIGHT HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
00031  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
00032  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
00033  * DEALINGS IN THE SOFTWARE.
00034  */
00035 
00036 #include "config.h"
00037 
00038 #if HAVE_DIRENT_H
00039 #include <dirent.h>
00040 #define NAMLEN(d) strlen((d)->d_name)
00041 #else
00042 #define dirent direct
00043 #define NAMLEN(d) (d)->d_namlen
00044 #if HAVE_SYS_NDIR_H
00045 #include <sys/ndir.h>
00046 #endif
00047 #if HAVE_SYS_DIR_H
00048 #include <sys/dir.h>
00049 #endif
00050 #if HAVE_NDIR_H
00051 #include <ndir.h>
00052 #endif
00053 #endif
00054 
00055 #include <assert.h>
00056 #include <string.h>
00057 
00058 #include <expat.h>
00059 
00060 #include <discover/discover.h>
00061 #include <discover/discover-conf.h>
00062 #include <discover/discover-xml.h>
00063 
00064 #include <discover/load-url.h>
00065 #include <discover/url-xml.h>
00066 #include <discover/utils.h>
00067 
00068 /*Busmaps we understand
00069  */
00070 static discover_bus_map_t bus_map[] = {
00071     { "ata", 0, 0, NULL },
00072     { "pci", 0, 0, NULL },
00073     { "pcmcia", 0, 0, NULL },
00074     { "scsi", 0, 0, NULL },
00075     { "usb", 0, 0, NULL },
00076     { NULL }
00077 };
00078 
00079 static char * filetype_map[] = {
00080     "vendor", "busclass", "device"
00081 };
00082 
00083 static int conf_loaded = 0;
00084 
00085 static discover_xml_url_t *pre_urls = NULL;
00086 static discover_xml_url_t *post_urls = NULL;
00087 static discover_xml_url_t *urls = NULL;
00088 
00090 enum state { START, BUSSCAN, DATA_SOURCES };
00091 
00093 enum scan_flag { SCAN_NEVER, SCAN_DEFAULT };
00094 
00095 struct context {
00096     enum state state;
00097     enum scan_flag scan;
00098     discover_error_t *status;
00099 
00100     int unknown_level; 
00101 };
00102 
00103 static char *known_conf_elements[] = {
00104     "bus",
00105     "data-source",
00106     "busscan",
00107     "data-sources",
00108     "conffile",
00109     NULL
00110 };
00111 
00112 
00113 static bool
00114 unknown_conf_element(const XML_Char * const tag)
00115 {
00116     int i;
00117     for (i = 0; known_conf_elements[i] != NULL; i++) {
00118         if (strcmp(tag, known_conf_elements[i]) == 0)
00119             return false;
00120     }
00121     return true;
00122 }
00123 
00124 static enum scan_flag
00125 get_scan_flag(const XML_Char *attrs[])
00126 {
00127     int i;
00128     char *scan;
00129 
00130     assert(attrs != NULL);
00131 
00132     scan = NULL;
00133     for (i = 0; attrs[i]; i+= 2) {
00134         if (strcmp(attrs[i], "scan") == 0) {
00135             scan = (char *)attrs[i + 1];
00136         }
00137     }
00138 
00139     assert(scan != NULL);
00140 
00141     if (strcmp(scan, "default") == 0) {
00142         return SCAN_DEFAULT;
00143     } else {
00144         return SCAN_NEVER;
00145     }
00146 }
00147 
00153 discover_bus_map_t *
00154 _real_discover_conf_get_bus_map(discover_bus_t bus, discover_error_t *status)
00155 {
00156     assert(status != NULL);
00157     assert(bus >= 0);
00158 
00159     if (bus >= BUS_COUNT) {
00160         status->code = DISCOVER_EBUSNOTFOUND;
00161     }
00162 
00163     return (discover_bus_map_t *)(bus_map + bus);
00164 }
00165 
00167 discover_bus_map_t *
00168 _real_discover_conf_get_bus_map_by_name(char *name, discover_error_t *status)
00169 {
00170     discover_bus_t bus;
00171 
00172     assert(status != NULL);
00173 
00174     bus = discover_conf_name_to_bus(name, status);
00175 
00176     if (status->code != 0) {
00177         return NULL;
00178     }
00179 
00180     return _real_discover_conf_get_bus_map(bus, status);
00181 }
00182 
00183 static void
00184 _real_discover_conf_insert_url(char *url, discover_error_t *status)
00185 {
00186     discover_xml_url_t *new;
00187 
00188     assert(url != NULL);
00189     assert(status != NULL);
00190 
00191     status->code = 0;
00192 
00193     new = discover_xml_url_new();
00194     new->url = _discover_xstrdup(url);
00195 
00196     new->next = pre_urls;
00197     if (pre_urls) {
00198         if (pre_urls->last) {
00199             new->last = pre_urls->last;
00200         } else {
00201             new->last = pre_urls;
00202         }
00203     } else {
00204         new->last = NULL;
00205     }
00206 
00207     pre_urls = new;
00208 }
00209 
00210 static void
00211 _real_discover_conf_append_url(char *url, discover_error_t *status)
00212 {
00213     discover_xml_url_t *new;
00214 
00215     assert(url != NULL);
00216     assert(status != NULL);
00217 
00218     status->code = 0;
00219 
00220     new = discover_xml_url_new();
00221     new->url = _discover_xstrdup(url);
00222 
00223     if (post_urls) {
00224         if (post_urls->last) {
00225             post_urls->last->next = new;
00226         } else {
00227             post_urls->next = new;
00228         }
00229         post_urls->last = new;
00230     } else {
00231         post_urls = new;
00232         post_urls->next = NULL;
00233         post_urls->last = NULL;
00234     }
00235 }
00236 
00237 static void
00238 start_element(void *ctx, const XML_Char *name, const XML_Char *attrs[])
00239 {
00240     struct context *context = ctx;
00241     discover_bus_map_t *busmap;
00242     discover_error_t *status;
00243     char *busname;
00244     char *found_url;
00245     int prepend_url;
00246     int i;
00247 
00248     assert(context != NULL);
00249     assert(name != NULL);
00250 
00251     if (unknown_conf_element(name)) {
00252         context->unknown_level++;
00253         return;
00254     }
00255 
00256     if (context->unknown_level > 0) {
00257         return;
00258     }
00259 
00260     status = context->status;
00261 
00262     switch (context->state) {
00263     case START:
00264         if (strcmp(name, "busscan") == 0) {
00265             context->state = BUSSCAN;
00266             context->scan = get_scan_flag(attrs);
00267         } else if (strcmp(name, "data-sources") == 0) {
00268             context->state = DATA_SOURCES;
00269         }
00270         break;
00271 
00272     case BUSSCAN:
00273         if (strcmp(name, "bus") == 0) {
00274             assert(attrs != NULL);
00275 
00276             for (i = 0; attrs[i]; i += 2) {
00277                 if (strcmp(attrs[i], "name") == 0) {
00278                     busname = (char *)attrs[i + 1];
00279                     busmap = _real_discover_conf_get_bus_map_by_name(busname, status);
00280                     if (status->code != 0) {
00281                         return;
00282                     }
00283                     if (context->scan == SCAN_DEFAULT) {
00284                         busmap->scan_default = 1;
00285                     } else {
00286                         busmap->scan_never = 1;
00287                     }
00288                 }
00289             }
00290         }
00291         break;
00292 
00293     case DATA_SOURCES:
00294         if (strcmp(name, "data-source") == 0) {
00295             found_url = NULL;
00296             prepend_url = 0;
00297             for (i = 0; attrs[i]; i += 2) {
00298                 if (strcmp(attrs[i], "url") == 0) {
00299                     found_url = (char *)attrs[i + 1];
00300                 }
00301                 else if ((strcmp(attrs[i], "place") == 0) &&
00302                          (strcmp(attrs[i + 1], "before") == 0)) {
00303                     prepend_url = 1;
00304                 }
00305             }
00306             if (found_url != NULL) {
00307                 if (prepend_url != 0) {
00308                     _real_discover_conf_insert_url(found_url, status);
00309                 } else {
00310                     _real_discover_conf_append_url(found_url, status);
00311                 }
00312                 if (status->code != 0) {
00313                     return;
00314                 }
00315             }
00316         }
00317         break;
00318     }
00319 }
00320 
00321 static void
00322 end_element(void *ctx, const XML_Char *name)
00323 {
00324     struct context *context = ctx;
00325 
00326     assert(context != NULL);
00327     assert(name != NULL);
00328 
00329     if (unknown_conf_element(name)) {
00330         context->unknown_level--;
00331         return;
00332     }
00333 
00334     if (context->unknown_level > 0) {
00335         return;
00336     }
00337 
00338     switch (context->state) {
00339     case START:
00340     break;
00341 
00342     case BUSSCAN:
00343         if (strcmp(name, "busscan") == 0) {
00344             context->state = START;
00345         }
00346     break;
00347 
00348     case DATA_SOURCES:
00349         if (strcmp(name, "data-sources") == 0) {
00350             context->state = START;
00351         }
00352     break;
00353     }
00354 }
00355 
00377 void
00378 discover_conf_load(discover_error_t *status)
00379 {
00380     XML_Parser parser;
00381     struct context context;
00382     int load_url_status;
00383     int conf_load_error = 0;
00384     int conf_parse_error = 0;
00385     DIR *confdir;
00386     struct dirent *confent;
00387     char buf[512];
00388 
00389     assert(status != NULL);
00390 
00391     status->code = 0;
00392 
00393     if (conf_loaded) {
00394         return;
00395     }
00396 
00397     confdir = opendir(SYSCONFDIR "/discover.conf.d");
00398     if (confdir != NULL) {
00399         while ((confent = readdir(confdir)) != NULL) {
00400             if (strchr(confent->d_name, '.') != NULL) {
00401                 continue;
00402             }
00403 
00404             context.state = START;
00405             context.status = status;
00406             context.unknown_level = 0;
00407 
00408             parser = XML_ParserCreate(NULL);
00409             XML_SetElementHandler(parser, start_element, end_element);
00410             XML_SetUserData(parser, &context);
00411 
00412             strcpy(buf, "file:///" SYSCONFDIR "/discover.conf.d/");
00413             strncat(buf, confent->d_name, sizeof(buf));
00414             buf[sizeof(buf) - 1] = '\0';
00415 
00416             load_url_status = _discover_load_url(buf, parser);
00417 
00418             /* start_element may change status. */
00419             if (status->code != 0) {
00420                 char *message = _discover_xmalloc(256);
00421                 snprintf(message, 256, "Error parsing configuration file %s", 
00422                          buf);
00423                 status->create_message(&status, message);
00424                 XML_ParserFree(parser);
00425                 conf_parse_error = 1;
00426                 break;
00427             }
00428 
00429             /* Ignore URL load errors; the conf file is not mandatory. */
00430             if (!load_url_status) {
00431                 conf_load_error = 1;
00432                 XML_ParserFree(parser);
00433                 continue;
00434             }
00435 
00436             if (!XML_Parse(parser, "", 0, 1)) {
00437                 char *message = _discover_xmalloc(256);
00438                 snprintf(message, 256, "Error parsing configuration file %s", 
00439                          buf);
00440                 status->create_message(&status, message);
00441                 status->code = DISCOVER_EXML;
00442                 XML_ParserFree(parser);
00443                 conf_parse_error = 1;
00444                 break;
00445             }
00446 
00447 
00448             XML_ParserFree(parser);
00449         }
00450 
00451         closedir(confdir);
00452 
00453         if (conf_parse_error) {
00454             return;
00455         }
00456     }
00457 
00458     if (conf_load_error) {
00459         char *message = _discover_xmalloc(256);
00460         snprintf(message, 256, 
00461                  "Failed loading one or more configuration files");
00462         status->create_message(&status, message);
00463     }
00464 
00465     conf_loaded = 1;
00466 
00467     return;
00468 }
00469 
00476 int
00477 discover_conf_name_to_bus(char *name, discover_error_t *status)
00478 {
00479     int i;
00480     for (i = 0; bus_map[i].name; i++) {
00481         if (strcmp(bus_map[i].name, name) == 0) {
00482             return i;
00483         }
00484     }
00485 
00486     status->code = DISCOVER_EBUSNOTFOUND;
00487     return -1;
00488 }
00489 
00495 discover_bus_map_t *
00496 discover_conf_get_full_bus_map(discover_error_t *status)
00497 {
00498     discover_conf_load(status);
00499     return bus_map;
00500 }
00501 
00508 discover_bus_map_t *
00509 discover_conf_get_bus_map_by_name(char *name, discover_error_t *status)
00510 {
00511     assert(status != NULL);
00512 
00513     discover_conf_load(status);
00514     if (status->code != 0) {
00515         return NULL;
00516     }
00517 
00518     /*
00519      * The "real" one won't call conf_load(), which will be useful
00520      * elsewhere.
00521      */
00522     return _real_discover_conf_get_bus_map_by_name(name, status);
00523 }
00524 
00531 discover_bus_map_t *
00532 discover_conf_get_bus_map(discover_bus_t bus, discover_error_t *status)
00533 {
00534     assert(status != NULL);
00535     assert(bus >= 0);
00536 
00537     if (bus >= BUS_COUNT) {
00538         status->code = DISCOVER_EBUSNOTFOUND;
00539     }
00540 
00541     discover_conf_load(status);
00542     if (status->code != 0) {
00543         return NULL;
00544     }
00545 
00546     return (discover_bus_map_t *)(bus_map + bus);
00547 }
00548 
00556 void
00557 discover_conf_insert_url(char *url, discover_error_t *status)
00558 {
00559     assert(status != NULL);
00560 
00561     discover_conf_load(status);
00562     if (status->code != 0) {
00563         return;
00564     }
00565 
00566     _real_discover_conf_insert_url(url, status);
00567 
00568     return;
00569 }
00570 
00578 void
00579 discover_conf_append_url(char *url, discover_error_t *status)
00580 {
00581     assert(status != NULL);
00582 
00583     discover_conf_load(status);
00584     if (status->code != 0) {
00585         return;
00586     }
00587 
00588     _real_discover_conf_append_url(url, status);
00589 
00590     return;
00591 }
00592 
00598 discover_xml_url_t *
00599 discover_conf_get_urls(discover_error_t *status)
00600 {
00601     discover_xml_url_t *new;
00602 
00603     assert(status != NULL);
00604 
00605     status->code = 0;
00606 
00607     if (!urls) {
00608         discover_conf_load(status);
00609 
00610         new = discover_xml_url_new();
00611         new->url = _discover_xstrdup(DISCOVER_DEFAULT_URL);
00612 
00613         if (pre_urls) {
00614             urls = pre_urls;
00615             if (urls->last) {
00616                 urls->last->next = new;
00617             } else {
00618                 urls->next = new;
00619             }
00620             urls->last = new;
00621         } else {
00622             urls = new;
00623         }
00624 
00625         if (post_urls) {
00626             if (urls->last) {
00627                 urls->last->next = post_urls;
00628             } else {
00629                 urls->next = post_urls;
00630             }
00631 
00632             if (post_urls->last) {
00633                 urls->last = post_urls->last;
00634             } else {
00635                 urls->last = post_urls;
00636             }
00637         }
00638 
00639         post_urls = pre_urls = NULL;
00640     }
00641 
00642     return urls;
00643 }
00644 
00649 void
00650 discover_conf_free(void)
00651 {
00652     conf_loaded = 0;
00653 
00654     if (urls) {
00655         discover_xml_url_free(urls);
00656         urls = NULL;
00657     }
00658 }
00659 
00665 char *
00666 discover_conf_get_bus_name(discover_bus_t bus)
00667 {
00668     assert(bus >= 0);
00669     if (bus >= BUS_COUNT) {
00670         return NULL;
00671     }
00672 
00673     return bus_map[bus].name;
00674 }
00675 
00681 char *
00682 discover_conf_get_filetype_name(discover_filetype_t filetype)
00683 {
00684     if (filetype >= 3) {
00685         return NULL;
00686     }
00687 
00688     return filetype_map[filetype];
00689 }
00690 
00693 /*
00694  * Local variables:
00695  * c-file-style: "progeny"
00696  * indent-tabs-mode: nil
00697  * End:
00698  */
00699 /* vim: set cin fo=tcroq sw=4 et sts=4 tw=75: */

Generated on Thu Jul 28 03:38:00 2005 for discover by  doxygen 1.4.2
discover-2.1.2/doc/api-reference/html/discover-conf_8h-source.html0000644002342100234210000001517410655642004023554 0ustar perepere discover: /home/pere/src/debiancvs/pkg-discover/discover/trunk/include/discover/discover-conf.h Source File

discover-conf.h

Go to the documentation of this file.
00001 
00010 /* $Progeny$
00011  *
00012  * Copyright 2002 Hewlett-Packard Company
00013  *
00014  * Permission is hereby granted, free of charge, to any person obtaining a
00015  * copy of this software and associated documentation files (the "Software"),
00016  * to deal in the Software without restriction, including without limitation
00017  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
00018  * and/or sell copies of the Software, and to permit persons to whom the
00019  * Software is furnished to do so, subject to the following conditions:
00020  *
00021  * The above copyright notice and this permission notice shall be included in
00022  * all copies or substantial portions of the Software.
00023  *
00024  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
00025  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
00026  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
00027  * THE COPYRIGHT HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
00028  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
00029  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
00030  * DEALINGS IN THE SOFTWARE.
00031  */
00032 
00033 #ifndef DISCOVER_CONF_H
00034 #define DISCOVER_CONF_H
00035 
00036 #include <discover/discover.h>
00037 
00038 #ifdef __cplusplus
00039     extern "C" {
00040 #endif
00041 
00042 void discover_conf_load(discover_error_t *status);
00043 discover_bus_map_t *discover_conf_get_full_bus_map(discover_error_t *status);
00044 discover_bus_map_t *discover_conf_get_bus_map(discover_bus_t bus,
00045                                               discover_error_t *status);
00046 discover_bus_map_t *discover_conf_get_bus_map_by_name(char *name,
00047                                                       discover_error_t *status);
00048 
00049 void discover_conf_insert_url(char *url, discover_error_t *status);
00050 void discover_conf_append_url(char *url, discover_error_t *status);
00051 discover_xml_url_t *discover_conf_get_urls(discover_error_t *status);
00052 void discover_conf_free(void);
00053 
00054 char *discover_conf_get_bus_name(discover_bus_t bus);
00055 char *discover_conf_get_filetype_name(discover_filetype_t filetype);
00056 int discover_conf_name_to_bus(char *name, discover_error_t *status);
00057 
00058 #ifdef __cplusplus
00059     }
00060 #endif
00061 
00062 #endif

Generated on Thu Jul 28 03:38:00 2005 for discover by  doxygen 1.4.2
discover-2.1.2/doc/api-reference/html/structdiscover__bus__map.html0000644002342100234210000001443010655642004024177 0ustar perepere discover: discover_bus_map Struct Reference

discover_bus_map Struct Reference
[Types]

#include <discover.h>


Data Fields

char * name
int scan_default
int scan_never
discover_sysdep_raw_func_tget_raw


Detailed Description

Bus scanning information is loaded from the config file. The scan_default member may be set to 0 to avoid scanning a specified bus. If the scan_never flag is set, the bus will never be scanned; this behavior is controlled from the config file.

The function pointer exists to allow client code to override the sysdeps; it is used by the unit tests provided with Discover.

Definition at line 178 of file discover.h.


Field Documentation

discover_sysdep_raw_func_t* discover_bus_map::get_raw
 

Function pointer that will acquire data

Definition at line 186 of file discover.h.

Referenced by discover_get_devices().

char* discover_bus_map::name
 

Human-readable name

Definition at line 180 of file discover.h.

Referenced by discover_conf_get_bus_name().

int discover_bus_map::scan_default
 

Boolean (sort of) defining the bus's default behavior

Definition at line 182 of file discover.h.

int discover_bus_map::scan_never
 

Never scan this bus if true

Definition at line 184 of file discover.h.

Referenced by discover_get_devices().


The documentation for this struct was generated from the following file:
  • /home/pere/src/debiancvs/pkg-discover/discover/trunk/include/discover/discover.h

Generated on Thu Jul 28 03:38:01 2005 for discover by  doxygen 1.4.2
discover-2.1.2/doc/api-reference/html/discover-conf_8h.html0000644002342100234210000001251110655642004022246 0ustar perepere discover: /home/pere/src/debiancvs/pkg-discover/discover/trunk/include/discover/discover-conf.h File Reference

discover-conf.h File Reference

Public interface for reading Discover configuration data. More...

#include <discover/discover.h>

Go to the source code of this file.

Functions

void discover_conf_load (discover_error_t *status)
discover_bus_map_tdiscover_conf_get_full_bus_map (discover_error_t *status)
discover_bus_map_tdiscover_conf_get_bus_map (discover_bus_t bus, discover_error_t *status)
discover_bus_map_tdiscover_conf_get_bus_map_by_name (char *name, discover_error_t *status)
void discover_conf_insert_url (char *url, discover_error_t *status)
void discover_conf_append_url (char *url, discover_error_t *status)
discover_xml_url_tdiscover_conf_get_urls (discover_error_t *status)
void discover_conf_free (void)
char * discover_conf_get_bus_name (discover_bus_t bus)
char * discover_conf_get_filetype_name (discover_filetype_t filetype)
int discover_conf_name_to_bus (char *name, discover_error_t *status)


Detailed Description

Public interface for reading Discover configuration data.

These routines are the public interface used to read the configuration data from the desired source. These interfaces are also used to alter the URLs searched for configuration data.

Definition in file discover-conf.h.


Generated on Thu Jul 28 03:38:00 2005 for discover by  doxygen 1.4.2
discover-2.1.2/doc/api-reference/html/structdiscover__sysdep__device__data.html0000644002342100234210000001341110655642004026525 0ustar perepere discover: discover_sysdep_device_data Struct Reference

discover_sysdep_device_data Struct Reference

#include <sysdep.h>


Data Fields

char * path
char * value
discover_sysdep_device_datanext


Detailed Description

Linked list node, used to return data specific to the sysdep/device in question, to be passed to the user under the "device" data path.

Definition at line 43 of file sysdep.h.


Field Documentation

struct discover_sysdep_device_data* discover_sysdep_device_data::next
 

Pointer to the next data node

Definition at line 49 of file sysdep.h.

Referenced by _discover_convert_device_data(), _discover_free_sysdep_device_data(), and _discover_sysdep_device_data_new().

char* discover_sysdep_device_data::path
 

String giving the path for the data (not including "device"

Definition at line 45 of file sysdep.h.

Referenced by _discover_convert_device_data(), _discover_free_sysdep_device_data(), and _discover_sysdep_device_data_new().

char* discover_sysdep_device_data::value
 

String with the data's value

Definition at line 47 of file sysdep.h.

Referenced by _discover_convert_device_data(), _discover_free_sysdep_device_data(), and _discover_sysdep_device_data_new().


The documentation for this struct was generated from the following file:
  • /home/pere/src/debiancvs/pkg-discover/discover/trunk/include/discover/sysdep.h

Generated on Thu Jul 28 03:38:01 2005 for discover by  doxygen 1.4.2
discover-2.1.2/doc/api-reference/html/discover_8h.html0000644002342100234210000004651310655642004021334 0ustar perepere discover: /home/pere/src/debiancvs/pkg-discover/discover/trunk/include/discover/discover.h File Reference

discover.h File Reference

Public interface for Discover library. More...

#include <stdbool.h>
#include <discover/sysdep.h>

Go to the source code of this file.

Defines

#define BUS_COUNT   5

Typedefs

typedef void *( discover_create_message_t )(struct discover_error **, char *)
typedef discover_error discover_error_t
typedef discover_bus_map discover_bus_map_t
typedef discover_device discover_device_t
typedef discover_data discover_data_t
typedef discover_xml_busclass discover_xml_busclass_t
typedef discover_xml_vendor discover_xml_vendor_t
typedef discover_xml_url discover_xml_url_t
typedef discover_device_t *( discover_device_func_t )(discover_error_t *)
typedef discover_xml_busclass_t *( discover_xml_busclass_func_t )(discover_error_t *)
typedef discover_xml_vendor_t *( discover_xml_vendor_func_t )(discover_error_t *)
typedef discover_xml_url_t *( discover_xml_url_func_t )(discover_error_t *)
typedef void( discover_free_func_t )(void)
typedef discover_sysdep_data_t *( discover_sysdep_raw_func_t )(void)

Enumerations

enum  discover_error_code_t {
  DISCOVER_SUCCESS, DISCOVER_EIO, DISCOVER_EXML, DISCOVER_ESYS,
  DISCOVER_EBUSDISABLED, DISCOVER_EBUSNOTFOUND, DISCOVER_EDATANOTFOUND, DISCOVER_EDEVICENOTFOUND,
  DISCOVER_EBADVERSION, DISCOVER_ENOIMPL
}
enum  discover_bus_t {
  ATA, PCI, PCMCIA, SCSI,
  USB
}
enum  discover_filetype_t { VENDOR_TYPE, BUSCLASS_TYPE, DEVICE_TYPE }

Functions

discover_device_tdiscover_get_devices (discover_bus_t bus, discover_error_t *status)
void discover_free_devices (void)
discover_error_tdiscover_error_new (void)
void discover_error_free (discover_error_t *status)
char * discover_strerror (discover_error_t *err)
int discover_major_version (void)
int discover_minor_version (void)
int discover_micro_version (void)
discover_device_tdiscover_device_new (void)
discover_device_tdiscover_device_find (char *discover_class, discover_error_t *status)
char * discover_device_get_data (discover_device_t *device, char *path, char *version, discover_error_t *status)
void discover_device_copy (discover_device_t *src, discover_device_t *dst)
char * discover_device_get_busclass (discover_device_t *device)
char * discover_device_get_model_id (discover_device_t *device)
char * discover_device_get_model_name (discover_device_t *device)
char * discover_device_get_vendor_id (discover_device_t *device)
char * discover_device_get_vendor_name (discover_device_t *device)
discover_data_tdiscover_device_get_data_struct (discover_device_t *device)
discover_device_tdiscover_device_get_next (discover_device_t *device)
void discover_device_free (discover_device_t *devices, int free_data)
discover_data_tdiscover_data_new (void)
char * discover_data_get_class (discover_data_t *data)
char * discover_data_get_text (discover_data_t *data)
discover_data_tdiscover_data_get_parent (discover_data_t *data)
discover_data_tdiscover_data_get_child (discover_data_t *data)
discover_data_tdiscover_data_get_next (discover_data_t *data)
discover_data_tdiscover_data_get_prev (discover_data_t *prev)
discover_data_tdiscover_data_get_first (discover_data_t *data)
void discover_data_free (discover_data_t *data_tree)


Detailed Description

Public interface for Discover library.

Definition in file discover.h.


Function Documentation

void discover_free_devices void   ) 
 

Free the currently allocated memory holding the device information.

Definition at line 301 of file sysdep.c.

References BUS_COUNT, and discover_device_free().

discover_device_t* discover_get_devices discover_bus_t  bus,
discover_error_t status
 

Function responsible for returning a devicelist of current devices

Definition at line 206 of file sysdep.c.

References _discover_convert_device_data(), _discover_free_sysdep_data(), discover_error::code, discover_conf_get_bus_map(), discover_device_new(), DISCOVER_EBUSDISABLED, DISCOVER_SUCCESS, discover_xml_get_devices(), discover_xml_get_matching_devices(), discover_bus_map::get_raw, and discover_bus_map::scan_never.

Referenced by discover_device_find().


Generated on Thu Jul 28 03:38:00 2005 for discover by  doxygen 1.4.2
discover-2.1.2/doc/api-reference/html/doxygen.png0000644002342100234210000000240110655642004020400 0ustar perepere‰PNG  IHDRd-ok>ÂgAMAÖØÔOX2tEXtSoftwareAdobe ImageReadyqÉe<]PLTEǾÏ"&©ÈÎï¶»ÖÓÚú“¢Þ ¬à¶Âõ‡§ÕÙêÉÊÎáâæ{ŽÔ¡ëˆ™× ²ø§¬¹ÀÀ±ÝÝÎùùéõõçëëåED9×ÖËhg]_X<@:#mhUÿÿÿÝÀ1tRNSÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÍvÿIDATxÚbC£: d#„„………h` @¡X",***LKˆ.–], ºX@t± €èb @ÑÅ€BµD„6–š%""´° € ˜% ˆ™B:H¢ˆ²Áf@• ˆRPy"K`\PbC(!II!h©…ëƒ(ñ„Ä!ꈬC„Ä…àl!0[X\J\$TMˆ(’>a$S„ Ù@ Ш@R.$‚¬LJBR¢‰AÌG1 ¬ Â(FȃÔPhhÁTÀ¢„%!`€&q°%u P ¹¢ ¬ € ¹CT$B¢à|‚ºW„¤Àl £!B`R$( …Ĉ‘’ž@AÅ%ĤÄ%@,(—ʂڱ%$ÁââRPmB U`1IˆYB  99€\1 yCCCÿf"[N 'Ü=TGÈ’øl8˜^Kû5<êSæRɤ”%î@@ à›Ê b1 qÅAXHˆ¸&ØB’R y n˜P„Ìã–4A €€j¹€€>Ü ˜ t!˜+(.ÈÅWQ±A2ÜÜMUÜ‚’’‚‚â `1 %`19€F< 3cZÄ`óe!\ˆ DÈ+. 83‹³Àä¸!lYYA -6‚EJŠ¢V €@©žXXX 4„å Ê@86Ð`RdB´€4I "Ý "–@xrÊŒ‚H€AÊ`—f ÉȰCŒ"XV0ɲ³C b@2…¬H ¬È“ p)!(ì‚ 0Ž4ˆ)(%RÁÎ ¶$€TÊ€¥Àþb‡b,säÐ@7À üѰ‚Òî?f¥Ö—\PIx!I´¦"”Ȉ’3¨ QY˜ÿt^^ÛØgv- }>WJOAV`$&#”¦8ùøø8€\FF ›SFJ$ÂÆ€ÐƊС䈉ÀÀ 4ª…Èäå -Á§‡ €H²…—ŸŸŸf ?ðâ5„ €k1Âd‰,ŒÃ ³ƒ“€.€"­F™ËË€àñ‚½ÁIÈ€"±Ù4ÉH gx|‚f©m)))9´. aMDƒ& ºX@t± €èb @ÑÅ€¢‹%DKˆ.–], ºX@t± €èb @€d`‚ɽSµOIEND®B`‚discover-2.1.2/doc/api-reference/html/group__vendor__xml.html0000644002342100234210000004176010655642004023005 0ustar perepere discover: Vendor list XML parsing

Vendor list XML parsing


Functions

void discover_xml_merge_vendor_url (discover_xml_vendor_t **vlist, char *url, discover_error_t *status)
discover_xml_vendor_tdiscover_xml_get_vendors (discover_bus_t bus, discover_error_t *status)
void discover_xml_free_vendors (void)
char * discover_xml_vendor_id2name (discover_xml_vendor_t *vendors, char *id)
char * discover_xml_vendor_get_id (discover_xml_vendor_t *vendor)
char * discover_xml_vendor_get_name (discover_xml_vendor_t *vendor)
discover_xml_vendor_tdiscover_xml_vendor_get_next (discover_xml_vendor_t *vendor)
discover_xml_vendor_tdiscover_xml_vendor_new (void)
void discover_xml_vendor_free (discover_xml_vendor_t *vendors)

Function Documentation

void discover_xml_free_vendors void   ) 
 

Free the list of vendors.

Definition at line 248 of file vendor-xml.c.

References BUS_COUNT, and discover_xml_vendor_free().

discover_xml_vendor_t* discover_xml_get_vendors discover_bus_t  bus,
discover_error_t status
 

Get the list of vendors by bus type.

Parameters:
bus Type of bus for which vendors are required
status Address in which to place status report

Definition at line 215 of file vendor-xml.c.

References discover_error::code, discover_xml_get_data_urls(), discover_xml_merge_vendor_url(), discover_xml_url_get_next(), and discover_xml_url_get_url().

Referenced by discover_xml_get_devices().

void discover_xml_merge_vendor_url discover_xml_vendor_t **  vlist,
char *  url,
discover_error_t status
 

Merge new vendors into a list.

Parameters:
vlist Address of the list to merge vendors into
url URL of the document defining the vendors
status Address in which to place status report

Definition at line 173 of file vendor-xml.c.

References discover_error::code, DISCOVER_EIO, and DISCOVER_EXML.

Referenced by discover_xml_get_vendors().

void discover_xml_vendor_free discover_xml_vendor_t vendors  ) 
 

Free the vendor or list of vendors.

Parameters:
vendors Vendor or list of vendors to free

Definition at line 342 of file vendor-xml.c.

Referenced by discover_xml_free_vendors().

char* discover_xml_vendor_get_id discover_xml_vendor_t vendor  ) 
 

Get the id member of vendor.

Definition at line 290 of file vendor-xml.c.

char* discover_xml_vendor_get_name discover_xml_vendor_t vendor  ) 
 

Get the name member of vendor.

Definition at line 301 of file vendor-xml.c.

discover_xml_vendor_t* discover_xml_vendor_get_next discover_xml_vendor_t vendor  ) 
 

Get the next member of vendor.

Definition at line 312 of file vendor-xml.c.

char* discover_xml_vendor_id2name discover_xml_vendor_t vendors,
char *  id
 

Convert a vendor ID to a human-readable string naming the vendor.

Parameters:
vendors List of vendors to search
id Vendor ID to search for

Definition at line 264 of file vendor-xml.c.

discover_xml_vendor_t* discover_xml_vendor_new void   ) 
 

Create and initialize a new discover_xml_vendor_t structure.

Definition at line 323 of file vendor-xml.c.


Generated on Thu Jul 28 03:38:01 2005 for discover by  doxygen 1.4.2
discover-2.1.2/doc/api-reference/html/group__sysdeps.html0000644002342100234210000001743010655642004022160 0ustar perepere discover: System-dependent interfaces

System-dependent interfaces


Functions

discover_sysdep_data_t_discover_get_ata_raw (void)
discover_sysdep_data_t_discover_get_pci_raw (void)
discover_sysdep_data_t_discover_get_pcmcia_raw (void)
discover_sysdep_data_t_discover_get_scsi_raw (void)
discover_sysdep_data_t_discover_get_usb_raw (void)

Function Documentation

discover_sysdep_data_t* _discover_get_ata_raw void   ) 
 

Get the list of ATA devices, scanning the bus if necessary.

Definition at line 51 of file stubs.c.

discover_sysdep_data_t* _discover_get_pci_raw void   ) 
 

Get the list of PCI devices, scanning the bus if necessary.

Definition at line 60 of file stubs.c.

discover_sysdep_data_t* _discover_get_pcmcia_raw void   ) 
 

Get the list of PCMCIA devices, scanning the bus if necessary.

Definition at line 69 of file stubs.c.

discover_sysdep_data_t* _discover_get_scsi_raw void   ) 
 

Get the list of SCSI devices, scanning the bus if necessary.

Definition at line 78 of file stubs.c.

discover_sysdep_data_t* _discover_get_usb_raw void   ) 
 

Get the list of USB devices, scanning the bus if necessary.

Definition at line 87 of file stubs.c.


Generated on Thu Jul 28 03:38:01 2005 for discover by  doxygen 1.4.2
discover-2.1.2/doc/api-reference/html/group__version__cmp.html0000644002342100234210000000726110655642004023152 0ustar perepere discover: Version comparison

Version comparison


Functions

int discover_xml_version_cmp (char *range, char *version, discover_error_t *status)

Function Documentation

int discover_xml_version_cmp char *  range,
char *  version,
discover_error_t status
 

Compare a version number against a version range, returning 1 if the number matches the range or 0 if not.

Parameters:
range Range to compare against version
version Version to compare against range
status Address in which to place status report

Definition at line 438 of file version-cmp.c.

References discover_error::code, and DISCOVER_EBADVERSION.


Generated on Thu Jul 28 03:38:01 2005 for discover by  doxygen 1.4.2
discover-2.1.2/doc/api-reference/html/stubs_8c-source.html0000644002342100234210000001342310655642004022141 0ustar perepere discover: /home/pere/src/debiancvs/pkg-discover/discover/trunk/sysdeps/stub/stubs.c Source File

stubs.c

Go to the documentation of this file.
00001 /* $Progeny$ */
00002 
00012 /* stubs.c -- Stubs for Discover device scan routines
00013  *
00014  * Copyright 2002 Progeny Linux Systems, Inc.
00015  * Copyright 2002 Hewlett-Packard Company
00016  *
00017  * Permission is hereby granted, free of charge, to any person obtaining a
00018  * copy of this software and associated documentation files (the "Software"),
00019  * to deal in the Software without restriction, including without limitation
00020  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
00021  * and/or sell copies of the Software, and to permit persons to whom the
00022  * Software is furnished to do so, subject to the following conditions:
00023  *
00024  * The above copyright notice and this permission notice shall be included in
00025  * all copies or substantial portions of the Software.
00026  *
00027  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
00028  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
00029  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
00030  * THE COPYRIGHT HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
00031  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
00032  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
00033  * DEALINGS IN THE SOFTWARE.
00034  */
00035 
00036 #include <config.h>
00037 
00038 #include <sysdep.h>
00039 
00040 #include <stdio.h>  /* For NULL */
00041 
00050 discover_sysdep_data_t *
00051 _discover_get_ata_raw(void)
00052 {
00053     return NULL;
00054 }
00055 
00059 discover_sysdep_data_t *
00060 _discover_get_pci_raw(void)
00061 {
00062     return NULL;
00063 }
00064 
00068 discover_sysdep_data_t *
00069 _discover_get_pcmcia_raw(void)
00070 {
00071     return NULL;
00072 }
00073 
00077 discover_sysdep_data_t *
00078 _discover_get_scsi_raw(void)
00079 {
00080     return NULL;
00081 }
00082 
00086 discover_sysdep_data_t *
00087 _discover_get_usb_raw(void)
00088 {
00089     return NULL;
00090 }
00091 
00094 /*
00095  * Local variables:
00096  * c-file-style: "progeny"
00097  * indent-tabs-mode: nil
00098  * End:
00099  */
00100 /* vim: set cin fo=tcroq sw=4 et sts=4 tw=75: */

Generated on Thu Jul 28 03:38:00 2005 for discover by  doxygen 1.4.2
discover-2.1.2/doc/api-reference/html/doxygen.css0000644002342100234210000001604510655642004020415 0ustar perepereBODY,H1,H2,H3,H4,H5,H6,P,CENTER,TD,TH,UL,DL,DIV { font-family: Geneva, Arial, Helvetica, sans-serif; } BODY,TD { font-size: 90%; } H1 { text-align: center; font-size: 160%; } H2 { font-size: 120%; } H3 { font-size: 100%; } CAPTION { font-weight: bold } DIV.qindex { width: 100%; background-color: #eeeeff; border: 1px solid #b0b0b0; text-align: center; margin: 2px; padding: 2px; line-height: 140%; } DIV.nav { width: 100%; background-color: #eeeeff; border: 1px solid #b0b0b0; text-align: center; margin: 2px; padding: 2px; line-height: 140%; } DIV.navtab { background-color: #eeeeff; border: 1px solid #b0b0b0; text-align: center; margin: 2px; margin-right: 15px; padding: 2px; } TD.navtab { font-size: 70%; } A.qindex { text-decoration: none; font-weight: bold; color: #1A419D; } A.qindex:visited { text-decoration: none; font-weight: bold; color: #1A419D } A.qindex:hover { text-decoration: none; background-color: #ddddff; } A.qindexHL { text-decoration: none; font-weight: bold; background-color: #6666cc; color: #ffffff; border: 1px double #9295C2; } A.qindexHL:hover { text-decoration: none; background-color: #6666cc; color: #ffffff; } A.qindexHL:visited { text-decoration: none; background-color: #6666cc; color: #ffffff } A.el { text-decoration: none; font-weight: bold } A.elRef { font-weight: bold } A.code:link { text-decoration: none; font-weight: normal; color: #0000FF} A.code:visited { text-decoration: none; font-weight: normal; color: #0000FF} A.codeRef:link { font-weight: normal; color: #0000FF} A.codeRef:visited { font-weight: normal; color: #0000FF} A:hover { text-decoration: none; background-color: #f2f2ff } DL.el { margin-left: -1cm } .fragment { font-family: Fixed, monospace; font-size: 95%; } PRE.fragment { border: 1px solid #CCCCCC; background-color: #f5f5f5; margin-top: 4px; margin-bottom: 4px; margin-left: 2px; margin-right: 8px; padding-left: 6px; padding-right: 6px; padding-top: 4px; padding-bottom: 4px; } DIV.ah { background-color: black; font-weight: bold; color: #ffffff; margin-bottom: 3px; margin-top: 3px } TD.md { background-color: #F4F4FB; font-weight: bold; } TD.mdPrefix { background-color: #F4F4FB; color: #606060; font-size: 80%; } TD.mdname1 { background-color: #F4F4FB; font-weight: bold; color: #602020; } TD.mdname { background-color: #F4F4FB; font-weight: bold; color: #602020; width: 600px; } DIV.groupHeader { margin-left: 16px; margin-top: 12px; margin-bottom: 6px; font-weight: bold; } DIV.groupText { margin-left: 16px; font-style: italic; font-size: 90% } BODY { background: white; color: black; margin-right: 20px; margin-left: 20px; } TD.indexkey { background-color: #eeeeff; font-weight: bold; padding-right : 10px; padding-top : 2px; padding-left : 10px; padding-bottom : 2px; margin-left : 0px; margin-right : 0px; margin-top : 2px; margin-bottom : 2px; border: 1px solid #CCCCCC; } TD.indexvalue { background-color: #eeeeff; font-style: italic; padding-right : 10px; padding-top : 2px; padding-left : 10px; padding-bottom : 2px; margin-left : 0px; margin-right : 0px; margin-top : 2px; margin-bottom : 2px; border: 1px solid #CCCCCC; } TR.memlist { background-color: #f0f0f0; } P.formulaDsp { text-align: center; } IMG.formulaDsp { } IMG.formulaInl { vertical-align: middle; } SPAN.keyword { color: #008000 } SPAN.keywordtype { color: #604020 } SPAN.keywordflow { color: #e08000 } SPAN.comment { color: #800000 } SPAN.preprocessor { color: #806020 } SPAN.stringliteral { color: #002080 } SPAN.charliteral { color: #008080 } .mdTable { border: 1px solid #868686; background-color: #F4F4FB; } .mdRow { padding: 8px 10px; } .mdescLeft { padding: 0px 8px 4px 8px; font-size: 80%; font-style: italic; background-color: #FAFAFA; border-top: 1px none #E0E0E0; border-right: 1px none #E0E0E0; border-bottom: 1px none #E0E0E0; border-left: 1px none #E0E0E0; margin: 0px; } .mdescRight { padding: 0px 8px 4px 8px; font-size: 80%; font-style: italic; background-color: #FAFAFA; border-top: 1px none #E0E0E0; border-right: 1px none #E0E0E0; border-bottom: 1px none #E0E0E0; border-left: 1px none #E0E0E0; margin: 0px; } .memItemLeft { padding: 1px 0px 0px 8px; margin: 4px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: #E0E0E0; border-right-color: #E0E0E0; border-bottom-color: #E0E0E0; border-left-color: #E0E0E0; border-top-style: solid; border-right-style: none; border-bottom-style: none; border-left-style: none; background-color: #FAFAFA; font-size: 80%; } .memItemRight { padding: 1px 8px 0px 8px; margin: 4px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: #E0E0E0; border-right-color: #E0E0E0; border-bottom-color: #E0E0E0; border-left-color: #E0E0E0; border-top-style: solid; border-right-style: none; border-bottom-style: none; border-left-style: none; background-color: #FAFAFA; font-size: 80%; } .memTemplItemLeft { padding: 1px 0px 0px 8px; margin: 4px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: #E0E0E0; border-right-color: #E0E0E0; border-bottom-color: #E0E0E0; border-left-color: #E0E0E0; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; background-color: #FAFAFA; font-size: 80%; } .memTemplItemRight { padding: 1px 8px 0px 8px; margin: 4px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: #E0E0E0; border-right-color: #E0E0E0; border-bottom-color: #E0E0E0; border-left-color: #E0E0E0; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; background-color: #FAFAFA; font-size: 80%; } .memTemplParams { padding: 1px 0px 0px 8px; margin: 4px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: #E0E0E0; border-right-color: #E0E0E0; border-bottom-color: #E0E0E0; border-left-color: #E0E0E0; border-top-style: solid; border-right-style: none; border-bottom-style: none; border-left-style: none; color: #606060; background-color: #FAFAFA; font-size: 80%; } .search { color: #003399; font-weight: bold; } FORM.search { margin-bottom: 0px; margin-top: 0px; } INPUT.search { font-size: 75%; color: #000080; font-weight: normal; background-color: #eeeeff; } TD.tiny { font-size: 75%; } a { color: #252E78; } a:visited { color: #3D2185; } .dirtab { padding: 4px; border-collapse: collapse; border: 1px solid #b0b0b0; } TH.dirtab { background: #eeeeff; font-weight: bold; } HR { height: 1px; border: none; border-top: 1px solid black; } discover-2.1.2/doc/api-reference/html/sysdep_8h.html0000644002342100234210000003063010655642004021016 0ustar perepere discover: /home/pere/src/debiancvs/pkg-discover/discover/trunk/include/discover/sysdep.h File Reference

sysdep.h File Reference

Private interface for system dependencies. More...

Go to the source code of this file.

Typedefs

typedef discover_sysdep_device_data discover_sysdep_device_data_t
typedef discover_sysdep_data discover_sysdep_data_t

Functions

discover_sysdep_data_t_discover_sysdep_data_new (void)
discover_sysdep_device_data_t_discover_sysdep_device_data_new (void)
void _discover_free_sysdep_data (discover_sysdep_data_t *)
void _discover_free_sysdep_device_data (discover_sysdep_device_data_t *)
discover_sysdep_data_t_discover_get_ata_raw (void)
discover_sysdep_data_t_discover_get_pci_raw (void)
discover_sysdep_data_t_discover_get_usb_raw (void)
discover_sysdep_data_t_discover_get_pcmcia_raw (void)
discover_sysdep_data_t_discover_get_scsi_raw (void)


Detailed Description

Private interface for system dependencies.

Definition in file sysdep.h.


Typedef Documentation

typedef struct discover_sysdep_data discover_sysdep_data_t
 

Linked list node, used to return hardware-identification information discovered by the system-dependent interface

typedef struct discover_sysdep_device_data discover_sysdep_device_data_t
 

Linked list node, used to return data specific to the sysdep/device in question, to be passed to the user under the "device" data path.


Function Documentation

void _discover_free_sysdep_data discover_sysdep_data_t head  ) 
 

Release the memory that the sysdep data was holding.

Definition at line 92 of file sysdep.c.

References _discover_free_sysdep_device_data(), discover_sysdep_data::busclass, discover_sysdep_data::data, discover_sysdep_data::model, discover_sysdep_data::next, and discover_sysdep_data::vendor.

Referenced by discover_get_devices().

void _discover_free_sysdep_device_data discover_sysdep_device_data_t head  ) 
 

Release memory being held by device-specific data.

Definition at line 117 of file sysdep.c.

References discover_sysdep_device_data::next, discover_sysdep_device_data::path, and discover_sysdep_device_data::value.

Referenced by _discover_free_sysdep_data().

discover_sysdep_data_t* _discover_sysdep_data_new void   ) 
 

Create a new instance of sysdep data.

Definition at line 66 of file sysdep.c.

References discover_sysdep_data::busclass, discover_sysdep_data::data, discover_sysdep_data::model, discover_sysdep_data::next, and discover_sysdep_data::vendor.

discover_sysdep_device_data_t* _discover_sysdep_device_data_new void   ) 
 

Create a new instance of sysdep device data.

Definition at line 80 of file sysdep.c.

References discover_sysdep_device_data::next, discover_sysdep_device_data::path, and discover_sysdep_device_data::value.


Generated on Thu Jul 28 03:38:00 2005 for discover by  doxygen 1.4.2
discover-2.1.2/doc/api-reference/html/functions_rela.html0000644002342100234210000000270310655642004022123 0ustar perepere discover: Data Fields - Related Functions
_ | b | d | i | m | r | s


Generated on Thu Jul 28 03:38:01 2005 for discover by  doxygen 1.4.2
discover-2.1.2/doc/api-reference/html/core_8c-source.html0000644002342100234210000002042410655642004021730 0ustar perepere discover: /home/pere/src/debiancvs/pkg-discover/discover/trunk/lib/core.c Source File

core.c

Go to the documentation of this file.
00001 
00011 /* $Progeny$
00012  *
00013  * Copyright 2002 Progeny Linux Systems, Inc.
00014  * Copyright 2002 Hewlett-Packard Company
00015  *
00016  * Permission is hereby granted, free of charge, to any person obtaining a
00017  * copy of this software and associated documentation files (the "Software"),
00018  * to deal in the Software without restriction, including without limitation
00019  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
00020  * and/or sell copies of the Software, and to permit persons to whom the
00021  * Software is furnished to do so, subject to the following conditions:
00022  *
00023  * The above copyright notice and this permission notice shall be included in
00024  * all copies or substantial portions of the Software.
00025  *
00026  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
00027  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
00028  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
00029  * THE COPYRIGHT HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
00030  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
00031  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
00032  * DEALINGS IN THE SOFTWARE.
00033  */
00034 
00035 #include "config.h"
00036 
00037 #include <assert.h>
00038 
00039 #include <discover/discover.h>
00040 #include <discover/discover-xml.h>
00041 
00042 #include <discover/utils.h>
00043 
00044 static char *discover_errlist[] = {
00045     N_("Success."),
00046     N_("Input/output error."),
00047     N_("XML parsing error."),
00048     N_("System error."),
00049     N_("Disabled bus."),
00050     N_("Bus not found."),
00051     N_("Data source not found."),
00052     N_("Device not found."),
00053     N_("Invalid version range."),
00054     N_("Not implemented.")
00055 };
00056 static int
00057 discover_nerr = sizeof(discover_errlist) / sizeof(discover_errlist[0]);
00058 
00067 discover_error_t *
00068 discover_error_new(void)
00069 {
00070     discover_error_t *status = _discover_xmalloc(sizeof(discover_error_t));
00071     status->code = 0;
00072     status->message = NULL;
00073     status->create_message = _discover_create_message;
00074     return status;
00075 }
00076 
00081 void *
00082 _discover_create_message(discover_error_t **status, char *message)
00083 {
00084     if((*status)->message) {
00085         free((*status)->message);
00086     }
00087     (*status)->message = _discover_xmalloc(strlen(message) + 1);
00088     strcpy((*status)->message, message);
00089 }
00090 
00094 void
00095 discover_error_free(discover_error_t *status)
00096 {
00097     assert(status != NULL);
00098     if (status->message != NULL) {
00099         free(status->message);
00100     }
00101     free(status);
00102 }
00103 
00110 char *
00111 discover_strerror(discover_error_t *err)
00112 {
00113     assert(err != NULL);
00114     assert(err->code >= 0);
00115     assert(err->code < discover_nerr);
00116 
00117     return _(discover_errlist[err->code]);
00118 }
00119 
00123 int
00124 discover_major_version(void)
00125 {
00126     return PACKAGE_MAJOR;
00127 }
00128 
00132 int
00133 discover_minor_version(void)
00134 {
00135     return PACKAGE_MINOR;
00136 }
00137 
00141 int
00142 discover_micro_version(void)
00143 {
00144     return PACKAGE_MICRO;
00145 }
00146 

Generated on Thu Jul 28 03:38:00 2005 for discover by  doxygen 1.4.2
discover-2.1.2/doc/api-reference/html/load-url_8c-source.html0000644002342100234210000001612510655642004022522 0ustar perepere discover: /home/pere/src/debiancvs/pkg-discover/discover/trunk/lib/load-url.c Source File

load-url.c

Go to the documentation of this file.
00001 
00006 /* $Progeny$
00007  *
00008  * Copyright 2003 Hewlett-Packard Company
00009  *
00010  * Permission is hereby granted, free of charge, to any person obtaining a
00011  * copy of this software and associated documentation files (the "Software"),
00012  * to deal in the Software without restriction, including without limitation
00013  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
00014  * and/or sell copies of the Software, and to permit persons to whom the
00015  * Software is furnished to do so, subject to the following conditions:
00016  *
00017  * The above copyright notice and this permission notice shall be included in
00018  * all copies or substantial portions of the Software.
00019  *
00020  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
00021  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
00022  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
00023  * THE COPYRIGHT HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
00024  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
00025  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
00026  * DEALINGS IN THE SOFTWARE.
00027  */
00028 
00029 #include "config.h"
00030 
00031 #ifndef HAVE_LIBCURL
00032 
00033 #include <assert.h>
00034 #include <expat.h>
00035 
00036 #include <discover/load-url.h>
00037 
00038 #ifdef HAVE_ZLIB
00039 #include <zlib.h>
00040 #define stdio_file gzFile
00041 #define fopen gzopen
00042 #define STDIO_READ fread
00043 #define fclose gzclose
00044 #else
00045 #include <stdio.h>
00046 typedef FILE *stdio_file;
00047 #define STDIO_READ(f, buf, len) fread(buf, 1, len, f)
00048 #endif
00049 
00050 #include <string.h>
00051 
00052 int
00053 _discover_load_url(const char *url, XML_Parser parser)
00054 {
00055     const char *file_path;
00056     stdio_file url_file;
00057     char buf[4096];
00058     char *tmp;
00059     size_t len;
00060     int parse_result;
00061 
00062     assert(url != NULL);
00063 
00064     if (strncmp(url, "file:", 5))
00065         return 0;
00066 
00067     /* We have three accepted formats for the url: file://host/path,
00068      * file:///path, and file://path.  The third is not actually
00069      * legal, but curl allows it to refer to a file in the current
00070      * directory.  Since we use that format in the test suite, we need
00071      * to support it here.
00072      *
00073      * For file://host/path and file:///path, the strchr call takes us
00074      * directly to the correct absolute path.  For file://path, url +
00075      * 7 is just "path" so we use that relative path. */
00076     file_path = strchr(url + 7, '/');
00077     if (!file_path) {
00078         file_path = url + 7;
00079     }
00080 
00081     if (*file_path == '\0')
00082         return 0;
00083 
00084     url_file = fopen(file_path, "r");
00085     if (url_file == NULL)
00086         return 0;
00087 
00088     do
00089     {
00090         len = STDIO_READ(url_file, buf, sizeof(buf));
00091         if (len > 0)
00092             parse_result = XML_Parse(parser, buf, len, 0);
00093     } while ((len > 0) && (parse_result != 0));
00094 
00095     fclose(url_file);
00096 
00097     return (parse_result != 0);
00098 }
00099 
00100 #endif

Generated on Thu Jul 28 03:38:00 2005 for discover by  doxygen 1.4.2
discover-2.1.2/doc/api-reference/html/annotated.html0000644002342100234210000000320310655642004021061 0ustar perepere discover: Data Structures

discover Data Structures

Here are the data structures with brief descriptions:
discover_bus_map
discover_error
discover_sysdep_data
discover_sysdep_device_data

Generated on Thu Jul 28 03:38:01 2005 for discover by  doxygen 1.4.2
discover-2.1.2/doc/api-reference/html/group__device__xml.html0000644002342100234210000004613010655642004022743 0ustar perepere discover: Device list XML parsing

Device list XML parsing


Functions

void discover_xml_merge_device_url (discover_device_t **dlist, char *url, discover_xml_busclass_t *busclasses, discover_xml_vendor_t *vendors, discover_error_t *status)
discover_device_tdiscover_xml_get_devices (discover_bus_t bus, discover_error_t *status)
void discover_xml_free_devices (void)
discover_device_tdiscover_xml_find_device (discover_device_t *xml_devices, char *target_vendor, char *target_model, discover_error_t *status)
discover_device_tdiscover_xml_find_next_device (discover_device_t *xml_devices, char *target_vendor, char *target_model, discover_error_t *status)
discover_device_tdiscover_xml_get_matching_devices (discover_device_t *xml_devices, char *target_vendor, char *target_model, discover_error_t *status)

Function Documentation

discover_device_t* discover_xml_find_device discover_device_t xml_devices,
char *  target_vendor,
char *  target_model,
discover_error_t status
 

Find the first device in xml_devices matching target_vendor and/or target_model. (One or both can be specified, but not zero.)

Parameters:
xml_devices List of devices to search
target_vendor Vendor for which to search
target_model Model for which to search
status Address in which to place status report

Definition at line 550 of file device-xml.c.

Referenced by discover_xml_find_next_device(), and discover_xml_get_matching_devices().

discover_device_t* discover_xml_find_next_device discover_device_t xml_devices,
char *  target_vendor,
char *  target_model,
discover_error_t status
 

Find the next device in xml_devices matching target_vendor and/or target_model. (One or both can be specified, but not zero.)

The first device in the list is assumed to have been processed, so we simply call discover_xml_find_device() on the next pointer.

Parameters:
xml_devices List of devices to search
target_vendor Vendor for which to search
target_model Model for which to search
status Address in which to place status report

Definition at line 594 of file device-xml.c.

References discover_xml_find_device().

Referenced by discover_xml_get_matching_devices().

void discover_xml_free_devices void   ) 
 

Free the list of XML devices.

Definition at line 531 of file device-xml.c.

References BUS_COUNT, and discover_device_free().

discover_device_t* discover_xml_get_devices discover_bus_t  bus,
discover_error_t status
 

Get the list of devices for the required bus.

Parameters:
bus Bus for which the devices are requested
status Address in which to place status report

Definition at line 484 of file device-xml.c.

References discover_error::code, discover_xml_get_busclasses(), discover_xml_get_data_urls(), discover_xml_get_vendors(), discover_xml_merge_device_url(), discover_xml_url_get_next(), and discover_xml_url_get_url().

Referenced by discover_get_devices().

discover_device_t* discover_xml_get_matching_devices discover_device_t xml_devices,
char *  target_vendor,
char *  target_model,
discover_error_t status
 

Find and duplicate all devices in xml_devices matching target_vendor and/or target_model. (One or both can be specified, but not zero.)

Parameters:
xml_devices List of devices to search
target_vendor Vendor for which to search
target_model Model for which to search
status Address in which to place status report

Definition at line 614 of file device-xml.c.

References discover_device_copy(), discover_device_new(), discover_xml_find_device(), and discover_xml_find_next_device().

Referenced by discover_get_devices().

void discover_xml_merge_device_url discover_device_t **  dlist,
char *  url,
discover_xml_busclass_t busclasses,
discover_xml_vendor_t vendors,
discover_error_t status
 

Merge new busclasses into a list.

Parameters:
dlist Address of the list to merge busclasses into
url URL of the document defining the busclasses
busclasses List of busclasses for this bus
vendors List of vendors for this bus
status Address in which to place status report

Definition at line 425 of file device-xml.c.

References discover_error::code, DISCOVER_EIO, and DISCOVER_EXML.

Referenced by discover_xml_get_devices().


Generated on Thu Jul 28 03:38:01 2005 for discover by  doxygen 1.4.2
discover-2.1.2/doc/api-reference/html/group__core.html0000644002342100234210000002557010655642004021422 0ustar perepere discover: Core functionality

Core functionality


Functions

discover_error_tdiscover_error_new (void)
void * _discover_create_message (discover_error_t **status, char *message)
void discover_error_free (discover_error_t *status)
char * discover_strerror (discover_error_t *err)
int discover_major_version (void)
int discover_minor_version (void)
int discover_micro_version (void)

Function Documentation

void* _discover_create_message discover_error_t **  status,
char *  message
 

Allocate memory for a char * variable. This routine was written for discover_error_t struct.

Definition at line 82 of file core.c.

Referenced by discover_error_new().

void discover_error_free discover_error_t status  ) 
 

Free a discover_error_t structure.

Definition at line 95 of file core.c.

References discover_error::message.

discover_error_t* discover_error_new void   ) 
 

Allocate and initialize a discover_error_t structure.

Definition at line 68 of file core.c.

References _discover_create_message(), discover_error::code, discover_error::create_message, and discover_error::message.

int discover_major_version void   ) 
 

Get the major version number.

Definition at line 124 of file core.c.

int discover_micro_version void   ) 
 

Get the micro version number.

Definition at line 142 of file core.c.

int discover_minor_version void   ) 
 

Get the minor version number.

Definition at line 133 of file core.c.

char* discover_strerror discover_error_t err  ) 
 

Convert an error code to a human-readable string localized according to the current locale (XXX: no i18n yet).

Parameters:
err Error code to convert

Definition at line 111 of file core.c.

References discover_error::code.


Generated on Thu Jul 28 03:38:01 2005 for discover by  doxygen 1.4.2
discover-2.1.2/doc/api-reference/html/conf_8c.html0000644002342100234210000003112610655642004020430 0ustar perepere discover: /home/pere/src/debiancvs/pkg-discover/discover/trunk/lib/conf.c File Reference

conf.c File Reference

Configuration handling (including XML parsing). More...

#include "config.h"
#include <assert.h>
#include <string.h>
#include <expat.h>
#include <discover/discover.h>
#include <discover/discover-conf.h>
#include <discover/discover-xml.h>
#include <discover/load-url.h>
#include <discover/url-xml.h>
#include <discover/utils.h>

Go to the source code of this file.

Defines

#define dirent   direct
#define NAMLEN(d)   (d)->d_namlen

Enumerations

enum  state { START, BUSSCAN, DATA_SOURCES }
enum  scan_flag { SCAN_NEVER, SCAN_DEFAULT }

Functions

discover_bus_map_t_real_discover_conf_get_bus_map (discover_bus_t bus, discover_error_t *status)
discover_bus_map_t_real_discover_conf_get_bus_map_by_name (char *name, discover_error_t *status)
void discover_conf_load (discover_error_t *status)
int discover_conf_name_to_bus (char *name, discover_error_t *status)
discover_bus_map_tdiscover_conf_get_full_bus_map (discover_error_t *status)
discover_bus_map_tdiscover_conf_get_bus_map_by_name (char *name, discover_error_t *status)
discover_bus_map_tdiscover_conf_get_bus_map (discover_bus_t bus, discover_error_t *status)
void discover_conf_insert_url (char *url, discover_error_t *status)
void discover_conf_append_url (char *url, discover_error_t *status)
discover_xml_url_tdiscover_conf_get_urls (discover_error_t *status)
void discover_conf_free (void)
char * discover_conf_get_bus_name (discover_bus_t bus)
char * discover_conf_get_filetype_name (discover_filetype_t filetype)


Detailed Description

Configuration handling (including XML parsing).

Configuration-related data is handled here. This file is responsible for loading and parsing the XML data read from the configuration file. This file also holds the routines that are responsible for altering the URL list as requested by the caller.

Definition in file conf.c.


Enumeration Type Documentation

enum scan_flag
 

Define the values for a scannable bus.

Definition at line 93 of file conf.c.

enum state
 

Describe the current state within the XML structure.

Definition at line 90 of file conf.c.


Function Documentation

discover_bus_map_t* _real_discover_conf_get_bus_map discover_bus_t  bus,
discover_error_t status
 

Function that loads the bus map

The "real" get_bus_map functions don't call conf_load(), which is important to avoid infinite loops.

Definition at line 154 of file conf.c.

References BUS_COUNT, discover_error::code, and DISCOVER_EBUSNOTFOUND.

Referenced by _real_discover_conf_get_bus_map_by_name().

discover_bus_map_t* _real_discover_conf_get_bus_map_by_name char *  name,
discover_error_t status
 

Internal function that really loads the bus map

Definition at line 168 of file conf.c.

References _real_discover_conf_get_bus_map(), discover_error::code, and discover_conf_name_to_bus().

Referenced by discover_conf_get_bus_map_by_name().


Generated on Thu Jul 28 03:38:00 2005 for discover by  doxygen 1.4.2
discover-2.1.2/doc/api-reference/html/globals_type.html0000644002342100234210000000553410655642004021601 0ustar perepere discover: Data Fields


Generated on Thu Jul 28 03:38:01 2005 for discover by  doxygen 1.4.2
discover-2.1.2/doc/api-reference/html/discover-xml_8h-source.html0000644002342100234210000003753210655642004023431 0ustar perepere discover: /home/pere/src/debiancvs/pkg-discover/discover/trunk/include/discover/discover-xml.h Source File

discover-xml.h

Go to the documentation of this file.
00001 
00010 /* $Progeny$
00011  *
00012  * AUTHOR: John R. Daily <jdaily@progeny.com>
00013  *
00014  * Copyright 2002 Hewlett-Packard Company
00015  * Copyright 2002 Progeny Linux Systems, Inc.
00016  *
00017  * Permission is hereby granted, free of charge, to any person obtaining a
00018  * copy of this software and associated documentation files (the "Software"),
00019  * to deal in the Software without restriction, including without limitation
00020  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
00021  * and/or sell copies of the Software, and to permit persons to whom the
00022  * Software is furnished to do so, subject to the following conditions:
00023  *
00024  * The above copyright notice and this permission notice shall be included in
00025  * all copies or substantial portions of the Software.
00026  *
00027  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
00028  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
00029  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
00030  * THE COPYRIGHT HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
00031  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
00032  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
00033  * DEALINGS IN THE SOFTWARE.
00034  */
00035 
00036 #ifndef DISCOVER_XML_H
00037 #define DISCOVER_XML_H
00038 
00039 #include <discover/discover.h>
00040 
00041 #ifdef __cplusplus
00042     extern "C" {
00043 #endif
00044 
00045 discover_device_t *
00046 discover_xml_find_device(discover_device_t *xml_devices,
00047                          char *target_vendor, char *target_model,
00048                          discover_error_t *status);
00049 discover_device_t *
00050 discover_xml_find_next_device(discover_device_t *xml_devices,
00051                               char *target_vendor, char *target_model,
00052                               discover_error_t *status);
00053 
00054 discover_device_t *
00055 discover_xml_get_matching_devices(discover_device_t *xml_devices,
00056                                   char *target_vendor, char *target_model,
00057                                   discover_error_t *status);
00058 
00059 int discover_xml_version_cmp(char *range, char *version,
00060                              discover_error_t *status);
00061 
00062 /******************************************************************************
00063  * url
00064  */
00065 
00066 discover_xml_url_t *discover_xml_url_new(void);
00067 void discover_xml_url_copy(discover_xml_url_t *src, discover_xml_url_t *dst);
00068 void discover_xml_url_free(discover_xml_url_t *urls);
00069 
00070 char *
00071 discover_xml_url_get_url(discover_xml_url_t *url);
00072 
00073 char *
00074 discover_xml_url_get_bus(discover_xml_url_t *url);
00075 
00076 char *
00077 discover_xml_url_get_type(discover_xml_url_t *url);
00078 
00079 discover_xml_url_t *
00080 discover_xml_url_get_next(discover_xml_url_t *url);
00081 
00082 discover_xml_url_t *
00083 discover_xml_url_get_last(discover_xml_url_t *url);
00084 
00085 char *
00086 discover_xml_url_get_label(discover_xml_url_t *url);
00087 
00088 discover_xml_url_t *discover_xml_get_urls(discover_error_t *status);
00089 void discover_xml_free_urls(void);
00090 
00091 discover_xml_url_t *discover_xml_get_data_urls(discover_bus_t bus,
00092                                                discover_filetype_t filetype,
00093                                                discover_error_t *status);
00094 void discover_xml_free_data_urls(void);
00095 
00096 /******************************************************************************
00097  * busclass
00098  */
00099 
00100 discover_xml_busclass_t *discover_xml_busclass_new(void);
00101 
00102 discover_xml_busclass_t *discover_xml_get_busclasses(discover_bus_t bus,
00103                                                      discover_error_t *status);
00104 
00105 void discover_xml_free_busclasses(void);
00106 
00107 void
00108 discover_xml_merge_busclass_url(discover_xml_busclass_t **blist,
00109                                 char *filename, discover_error_t *status);
00110 
00111 char *discover_xml_busclass_to_class(char *busclass,
00112                                      discover_xml_busclass_t *busclasses);
00113 int discover_xml_busclass_cmp(char *busclass, char *discover_class,
00114                               discover_xml_busclass_t *busclasses);
00115 char *discover_xml_busclass_get_id(discover_xml_busclass_t *busclass);
00116 
00117 char *discover_xml_busclass_get_name(discover_xml_busclass_t *busclass);
00118 discover_xml_busclass_t *
00119 discover_xml_busclass_get_next(discover_xml_busclass_t *busclass);
00120 
00121 void discover_xml_busclass_free(discover_xml_busclass_t *busclasses);
00122 
00123 /******************************************************************************
00124  * device
00125  */
00126 
00127 discover_device_t *
00128 discover_xml_get_devices(discover_bus_t bus, discover_error_t *status);
00129 
00130 void discover_xml_free_devices(void);
00131 
00132 void
00133 discover_xml_merge_device_url(discover_device_t **dlist, char *url,
00134                               discover_xml_busclass_t *busclasses,
00135                               discover_xml_vendor_t *vendors,
00136                               discover_error_t *status);
00137 
00138 /******************************************************************************
00139  * vendor
00140  */
00141 
00142 discover_xml_vendor_t *discover_xml_vendor_new(void);
00143 
00144 void
00145 discover_xml_merge_vendor_url(discover_xml_vendor_t **vlist, char *filename,
00146                               discover_error_t *status);
00147 discover_xml_vendor_t *discover_xml_get_vendors(discover_bus_t bus,
00148                                                 discover_error_t *status);
00149 void discover_xml_free_vendors(void);
00150 
00151 char *discover_xml_vendor_id2name(discover_xml_vendor_t *vendors, char *id);
00152 char *discover_xml_vendor_get_id(discover_xml_vendor_t *vendor);
00153 char *discover_xml_vendor_get_name(discover_xml_vendor_t *vendor);
00154 discover_xml_vendor_t *
00155 discover_xml_vendor_get_next(discover_xml_vendor_t *vendor);
00156 
00157 void discover_xml_vendor_free(discover_xml_vendor_t *vendors);
00158 
00159 #ifdef __cplusplus
00160     }
00161 #endif
00162 
00163 #endif

Generated on Thu Jul 28 03:38:00 2005 for discover by  doxygen 1.4.2
discover-2.1.2/doc/api-reference/html/stubs_8c.html0000644002342100234210000000657510655642004020655 0ustar perepere discover: /home/pere/src/debiancvs/pkg-discover/discover/trunk/sysdeps/stub/stubs.c File Reference

stubs.c File Reference

Stub system-dependent code. More...

#include <config.h>
#include <sysdep.h>
#include <stdio.h>

Go to the source code of this file.

Functions

discover_sysdep_data_t_discover_get_ata_raw (void)
discover_sysdep_data_t_discover_get_pci_raw (void)
discover_sysdep_data_t_discover_get_pcmcia_raw (void)
discover_sysdep_data_t_discover_get_scsi_raw (void)
discover_sysdep_data_t_discover_get_usb_raw (void)


Detailed Description

Stub system-dependent code.

This file represents a dummy OS-dependent hardware interface. These routines are the skeleton structure that must be followed to allow Discover to operate on multiple architectures.

Definition in file stubs.c.


Generated on Thu Jul 28 03:38:01 2005 for discover by  doxygen 1.4.2
discover-2.1.2/doc/api-reference/html/globals_func.html0000644002342100234210000003750610655642004021557 0ustar perepere discover: Data Fields
_ | d

- _ -

- d -


Generated on Thu Jul 28 03:38:01 2005 for discover by  doxygen 1.4.2
discover-2.1.2/doc/api-reference/html/vendor-xml_8c.html0000644002342100234210000001216010655642004021573 0ustar perepere discover: /home/pere/src/debiancvs/pkg-discover/discover/trunk/lib/vendor-xml.c File Reference

vendor-xml.c File Reference

Vendor XML data file parsing. More...

#include "config.h"
#include <sys/types.h>
#include <assert.h>
#include <limits.h>
#include <stdio.h>
#include <string.h>
#include <expat.h>
#include <discover/discover.h>
#include <discover/discover-xml.h>
#include <discover/load-url.h>
#include <discover/utils.h>

Go to the source code of this file.

Functions

void discover_xml_merge_vendor_url (discover_xml_vendor_t **vlist, char *url, discover_error_t *status)
discover_xml_vendor_tdiscover_xml_get_vendors (discover_bus_t bus, discover_error_t *status)
void discover_xml_free_vendors (void)
char * discover_xml_vendor_id2name (discover_xml_vendor_t *vendors, char *id)
char * discover_xml_vendor_get_id (discover_xml_vendor_t *vendor)
char * discover_xml_vendor_get_name (discover_xml_vendor_t *vendor)
discover_xml_vendor_tdiscover_xml_vendor_get_next (discover_xml_vendor_t *vendor)
discover_xml_vendor_tdiscover_xml_vendor_new (void)
void discover_xml_vendor_free (discover_xml_vendor_t *vendors)


Detailed Description

Vendor XML data file parsing.

This file contains the routines needed to properly process the vendor XML data. This file is responsible for handling URLs and storing the XML data during the parsing process.

Definition in file vendor-xml.c.


Generated on Thu Jul 28 03:38:01 2005 for discover by  doxygen 1.4.2
discover-2.1.2/doc/api-reference/html/vendor-xml_8c-source.html0000644002342100234210000004434610655642004023104 0ustar perepere discover: /home/pere/src/debiancvs/pkg-discover/discover/trunk/lib/vendor-xml.c Source File

vendor-xml.c

Go to the documentation of this file.
00001 
00011 /* $Progeny$
00012  *
00013  * AUTHOR: John R. Daily <jdaily@progeny.com>
00014  *
00015  * Copyright 2002 Progeny Linux Systems, Inc.
00016  * Copyright 2002 Hewlett-Packard Company
00017  *
00018  * Permission is hereby granted, free of charge, to any person obtaining a
00019  * copy of this software and associated documentation files (the "Software"),
00020  * to deal in the Software without restriction, including without limitation
00021  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
00022  * and/or sell copies of the Software, and to permit persons to whom the
00023  * Software is furnished to do so, subject to the following conditions:
00024  *
00025  * The above copyright notice and this permission notice shall be included in
00026  * all copies or substantial portions of the Software.
00027  *
00028  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
00029  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
00030  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
00031  * THE COPYRIGHT HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
00032  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
00033  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
00034  * DEALINGS IN THE SOFTWARE.
00035  */
00036 
00037 #include "config.h"
00038 
00039 #include <sys/types.h>
00040 
00041 #include <assert.h>
00042 #include <limits.h>
00043 #include <stdio.h>
00044 #include <string.h>
00045 
00046 #include <expat.h>
00047 
00048 #include <discover/discover.h>
00049 #include <discover/discover-xml.h>
00050 
00051 #include <discover/load-url.h>
00052 #include <discover/utils.h>
00053 
00055 struct discover_xml_vendor {
00056     char *id;
00057     char *name;
00058     discover_xml_vendor_t *next;
00059 };
00060 
00061 static discover_xml_vendor_t *vendors[BUS_COUNT];
00062 
00064 struct context {
00065     discover_xml_vendor_t **vlist;
00066 
00067     int unknown_level; /* How deep are we into unknown XML tags? */
00068 };
00069 
00070 static char *known_vendor_elements[] = {
00071     "vendor",
00072     "vendor_list",
00073     NULL
00074 };
00075 
00076 
00077 static bool
00078 unknown_vendor_element(const XML_Char * const tag)
00079 {
00080     int i;
00081     for (i = 0; known_vendor_elements[i] != NULL; i++) {
00082         if (strcmp(tag, known_vendor_elements[i]) == 0)
00083             return false;
00084     }
00085     return true;
00086 }
00087 
00088 static void
00089 start_element(void *ctx, const XML_Char *name, const XML_Char *attrs[])
00090 {
00091     struct context *context = ctx;
00092     int i;
00093     char *vid, *vname;
00094     discover_xml_vendor_t *next, **vlist;
00095 
00096     assert(context != NULL);
00097     assert(name != NULL);
00098     assert(attrs != NULL);
00099 
00100     if (unknown_vendor_element(name)) {
00101         context->unknown_level++;
00102         return;
00103     }
00104 
00105     if (context->unknown_level > 0) {
00106         return;
00107     }
00108 
00109     if (strcmp(name, "vendor") == 0) {
00110         vid = vname = NULL;
00111         for (i = 0; attrs[i]; i += 2) {
00112             if (strcmp(attrs[i], "id") == 0) {
00113                 vid = (char *) attrs[i + 1];
00114             } else if (strcmp(attrs[i], "name") == 0) {
00115                 vname = (char *) attrs[i + 1];
00116             }
00117         }
00118 
00119         assert(vid != NULL);
00120         assert(vname != NULL);
00121 
00122         vlist = context->vlist;
00123         next = *vlist;
00124         *vlist = discover_xml_vendor_new();
00125         (*vlist)->id = _discover_xstrdup(vid);
00126         (*vlist)->name = _discover_xstrdup(vname);
00127         (*vlist)->next = next;
00128     }
00129 }
00130 
00131 static void
00132 end_element(void *ctx, const XML_Char *name)
00133 {
00134     struct context *context = ctx;
00135 
00136     assert(context != NULL);
00137     assert(name != NULL);
00138 
00139     if (unknown_vendor_element(name)) {
00140         context->unknown_level--;
00141         return;
00142     }
00143 
00144     if (context->unknown_level > 0) {
00145         return;
00146     }
00147 
00148     /*
00149      * We don't have any end tags to worry about, but if we did, they
00150      * would be handled here.
00151      */
00152 }
00153 
00166 /* Sshh!  Don't tell, but this doesn't actually do any merging at all.
00167  * Instead, it simply inserts newer entries at the front of the list,
00168  * meaning that vendor info found later supersedes info found earlier.
00169  * This gives the illusion of merging, but potentially wastes memory
00170  * with duplicates.
00171  */
00172 void
00173 discover_xml_merge_vendor_url(discover_xml_vendor_t **vlist,
00174                               char *url, discover_error_t *status)
00175 {
00176     XML_Parser parser;
00177     struct context context;
00178 
00179     assert(url != NULL);
00180     assert(status != NULL);
00181 
00182     status->code = 0;
00183 
00184     context.vlist = vlist;
00185     context.unknown_level = 0;
00186 
00187     parser = XML_ParserCreate(NULL);
00188     XML_SetElementHandler(parser, start_element, end_element);
00189     XML_SetUserData(parser, &context);
00190 
00191     if (!_discover_load_url(url, parser)) {
00192         XML_ParserFree(parser);
00193         status->code = DISCOVER_EIO;
00194         return;
00195     }
00196 
00197     if (!XML_Parse(parser, "", 0, 1)) {
00198         XML_ParserFree(parser);
00199         status->code = DISCOVER_EXML;
00200         return;
00201     }
00202 
00203     XML_ParserFree(parser);
00204 
00205     return;
00206 }
00207 
00214 discover_xml_vendor_t *
00215 discover_xml_get_vendors(discover_bus_t bus, discover_error_t *status)
00216 {
00217     discover_xml_url_t *urls, *i;
00218     char *url;
00219 
00220     assert(status != NULL);
00221 
00222     status->code = 0;
00223 
00224     if (!vendors[bus]) {
00225         urls = discover_xml_get_data_urls(bus, VENDOR_TYPE, status);
00226         if (status->code != 0) {
00227             return NULL;
00228         }
00229 
00230         for (i = urls;
00231              i;
00232              i = discover_xml_url_get_next(i)) {
00233             url = discover_xml_url_get_url(i);
00234             discover_xml_merge_vendor_url(&(vendors[bus]), url, status);
00235             if (status->code != 0) {
00236                 return NULL;
00237             }
00238         }
00239     }
00240 
00241     return vendors[bus];
00242 }
00243 
00247 void
00248 discover_xml_free_vendors(void)
00249 {
00250     int i;
00251     for (i = 0; i < BUS_COUNT; i++) {
00252         discover_xml_vendor_free(vendors[i]);
00253         vendors[i] = NULL;
00254     }
00255 }
00256 
00263 char *
00264 discover_xml_vendor_id2name(discover_xml_vendor_t *vendors, char *id)
00265 {
00266     discover_xml_vendor_t *vendor;
00267     char *name;
00268 
00269     assert(vendors != NULL);
00270     assert(id != NULL);
00271 
00272     name = NULL;
00273 
00274     for (vendor = vendors;
00275          vendor;
00276          vendor = vendor->next) {
00277         if (strcmp(id, vendor->id) == 0) {
00278             name = vendor->name;
00279             break;
00280         }
00281     }
00282 
00283     return name;
00284 }
00285 
00289 char *
00290 discover_xml_vendor_get_id(discover_xml_vendor_t *vendor)
00291 {
00292     assert(vendor != NULL);
00293 
00294     return vendor->id;
00295 }
00296 
00300 char *
00301 discover_xml_vendor_get_name(discover_xml_vendor_t *vendor)
00302 {
00303     assert(vendor != NULL);
00304 
00305     return vendor->name;
00306 }
00307 
00311 discover_xml_vendor_t *
00312 discover_xml_vendor_get_next(discover_xml_vendor_t *vendor)
00313 {
00314     assert(vendor != NULL);
00315 
00316     return vendor->next;
00317 }
00318 
00322 discover_xml_vendor_t *
00323 discover_xml_vendor_new(void)
00324 {
00325     discover_xml_vendor_t *new;
00326 
00327     new = _discover_xmalloc(sizeof(discover_xml_vendor_t));
00328 
00329     new->id = NULL;
00330     new->name = NULL;
00331     new->next = NULL;
00332 
00333     return new;
00334 }
00335 
00341 void
00342 discover_xml_vendor_free(discover_xml_vendor_t *vendors)
00343 {
00344     discover_xml_vendor_t *vendor, *last;
00345 
00346     last = NULL;
00347 
00348     for (vendor = vendors;
00349          vendor;
00350          vendor = vendor->next) {
00351         if (vendor->id) {
00352             free(vendor->id);
00353         }
00354 
00355         if (vendor->name) {
00356             free(vendor->name);
00357         }
00358 
00359         if (last) {
00360             free(last);
00361         }
00362         last = vendor;
00363     }
00364 
00365     if (last) {
00366         free(last);
00367     }
00368 }
00369 
00372 /*
00373  * Local variables:
00374  * c-file-style: "progeny"
00375  * indent-tabs-mode: nil
00376  * End:
00377  */
00378 /* vim: set cin fo=tcroq sw=4 et sts=4 tw=75: */

Generated on Thu Jul 28 03:38:00 2005 for discover by  doxygen 1.4.2
discover-2.1.2/doc/api-reference/html/index.html0000644002342100234210000000376410655642004020227 0ustar perepere discover: Discover API Reference

Discover API Reference

This is the Discover application programming interface (API) reference. If you have not already read The Discover Hardware Detection System, you should do so now. The following list describes the contents of the links at the top of the page:

  • Main page -- This page

  • Modules -- List of top-level modules; you probably want to start here, where navigation is fastest

  • Data Structures -- List of data structures used by Discover

  • File List -- List of files comprising Discover's external interface, with links to documentation and source code

  • Data Fields -- List of fields used in Discover's structs and unions

  • Globals -- List of global symbols, with links to file summaries

The Discover library was written by Eric Gillespie, John R. Daily, and Josh Bressers, with design input from Branden Robinson.


Generated on Thu Jul 28 03:38:00 2005 for discover by  doxygen 1.4.2
discover-2.1.2/doc/api-reference/html/globals.html0000644002342100234210000004706310655642004020543 0ustar perepere discover: Data Fields
_ | b | d | i | m | r | s

Here is a list of all documented functions, variables, defines, enums, and typedefs with links to the documentation:

- _ -

- b -

- d -

- i -

- m -

- r -

- s -


Generated on Thu Jul 28 03:38:01 2005 for discover by  doxygen 1.4.2
discover-2.1.2/doc/api-reference/html/stack_8c.html0000644002342100234210000002417110655642004020612 0ustar perepere discover: /home/pere/src/debiancvs/pkg-discover/discover/trunk/lib/stack.c File Reference

stack.c File Reference

Stack routines for Discover. More...

#include <stdio.h>
#include <assert.h>
#include <stdbool.h>
#include <stdlib.h>
#include <discover/utils.h>
#include <discover/stack.h>

Go to the source code of this file.

Functions

discover_xml_stack * discover_xml_stack_new ()
void discover_xml_stack_destroy (discover_xml_stack *stack)
void discover_xml_stack_push (discover_xml_stack **stack, void *data)
void * discover_xml_stack_pop (discover_xml_stack **stack)
void * discover_xml_stack_get (discover_xml_stack *stack)
void * discover_xml_stack_getbynum (discover_xml_stack *stack, int i)


Detailed Description

Stack routines for Discover.

This is a generic stack routine that Discover uses. The stack is needed because there wasn't a good way to track the traversal depth through the XML data. These routines brought much sanity to the XML parsing process. They are generic enough that they can be used for any number of applications.

Definition in file stack.c.


Function Documentation

void discover_xml_stack_destroy discover_xml_stack *  stack  ) 
 

Routine responsible for destroying the stack base once we're done

Definition at line 62 of file stack.c.

Referenced by discover_xml_stack_pop().

void* discover_xml_stack_get discover_xml_stack *  stack  ) 
 

Return the top item without popping it.

Definition at line 103 of file stack.c.

void* discover_xml_stack_getbynum discover_xml_stack *  stack,
int  i
 

Return the item at depth i on the stack.

Definition at line 109 of file stack.c.

discover_xml_stack* discover_xml_stack_new  ) 
 

Routine responsible for creating the base of the stack

Definition at line 48 of file stack.c.

Referenced by discover_xml_stack_push().

void* discover_xml_stack_pop discover_xml_stack **  stack  ) 
 

Pop an item from the stack.

Definition at line 83 of file stack.c.

References discover_xml_stack_destroy().

void discover_xml_stack_push discover_xml_stack **  stack,
void *  data
 

Push an item onto the stack.

Definition at line 69 of file stack.c.

References discover_xml_stack_new().


Generated on Thu Jul 28 03:38:00 2005 for discover by  doxygen 1.4.2
discover-2.1.2/doc/api-reference/html/version-cmp_8c.html0000644002342100234210000001343610655642004021751 0ustar perepere discover: /home/pere/src/debiancvs/pkg-discover/discover/trunk/lib/version-cmp.c File Reference

version-cmp.c File Reference

Version comparison functions. More...

#include "config.h"
#include <assert.h>
#include <ctype.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <discover/discover.h>
#include <discover/utils.h>

Go to the source code of this file.

Defines

#define MAXBUFLEN   256

Typedefs

typedef enum range_states range_state

Enumerations

enum  range_states {
  START, OPEN, VERSION1, VERSEP1,
  PAUSE1, SEPARATOR, I, N,
  F, VERSION2, VERSEP2, PAUSE2,
  CLOSE, ERROR
}

Functions

int discover_xml_version_cmp (char *range, char *version, discover_error_t *status)


Detailed Description

Version comparison functions.

This file holds the routines needed to process version data in the XML file. This version data is used to look for information pertaining to a particular version of the OS/software requiring that information.

Definition in file version-cmp.c.


Define Documentation

#define MAXBUFLEN   256
 

This probably shouldn't be here; it's bad practice (3.0, right).

Definition at line 55 of file version-cmp.c.


Typedef Documentation

typedef enum range_states range_state
 

This is used as a placeholder while comparing versions of modules.


Enumeration Type Documentation

enum range_states
 

Version placeholders

Definition at line 58 of file version-cmp.c.


Generated on Thu Jul 28 03:38:01 2005 for discover by  doxygen 1.4.2
discover-2.1.2/doc/api-reference/html/group__conf.html0000644002342100234210000005755710655642004021431 0ustar perepere discover: Configuration handling

Configuration handling


Functions

void discover_conf_load (discover_error_t *status)
int discover_conf_name_to_bus (char *name, discover_error_t *status)
discover_bus_map_tdiscover_conf_get_full_bus_map (discover_error_t *status)
discover_bus_map_tdiscover_conf_get_bus_map_by_name (char *name, discover_error_t *status)
discover_bus_map_tdiscover_conf_get_bus_map (discover_bus_t bus, discover_error_t *status)
void discover_conf_insert_url (char *url, discover_error_t *status)
void discover_conf_append_url (char *url, discover_error_t *status)
discover_xml_url_tdiscover_conf_get_urls (discover_error_t *status)
void discover_conf_free (void)
char * discover_conf_get_bus_name (discover_bus_t bus)
char * discover_conf_get_filetype_name (discover_filetype_t filetype)

Function Documentation

void discover_conf_append_url char *  url,
discover_error_t status
 

Append the URL specified in url at the tail of the list of URLs where Discover data will be retrieved.

Parameters:
url URL to append
status Address in which to place status report

Definition at line 579 of file conf.c.

References discover_error::code, and discover_conf_load().

void discover_conf_free void   ) 
 

Free configuration data. This is mainly useful so that the next call to discover_conf_load will reload the configuration data.

Definition at line 650 of file conf.c.

References discover_xml_url_free().

discover_bus_map_t* discover_conf_get_bus_map discover_bus_t  bus,
discover_error_t status
 

Get the bus map for a single bus.

Parameters:
bus Name of the bus whose map to get
status Address in which to place status report

Definition at line 532 of file conf.c.

References BUS_COUNT, discover_error::code, discover_conf_load(), and DISCOVER_EBUSNOTFOUND.

Referenced by discover_get_devices().

discover_bus_map_t* discover_conf_get_bus_map_by_name char *  name,
discover_error_t status
 

Get the bus map by name for a single bus.

Parameters:
name Name of the bus whose map to get
status Address in which to place status report

Definition at line 509 of file conf.c.

References _real_discover_conf_get_bus_map_by_name(), discover_error::code, and discover_conf_load().

char* discover_conf_get_bus_name discover_bus_t  bus  ) 
 

Translate an enum bus value into a string.

Parameters:
bus Bus type in enumerated form

Definition at line 666 of file conf.c.

References BUS_COUNT, and discover_bus_map::name.

Referenced by discover_xml_get_data_urls().

char* discover_conf_get_filetype_name discover_filetype_t  filetype  ) 
 

Translate an enum filetype value into a string.

Parameters:
filetype Filetype in enumerated form

Definition at line 682 of file conf.c.

Referenced by discover_xml_get_data_urls().

discover_bus_map_t* discover_conf_get_full_bus_map discover_error_t status  ) 
 

Get the full bus map, listing all buses.

Parameters:
status Address in which to place status report

Definition at line 496 of file conf.c.

References discover_conf_load().

Referenced by discover_device_find().

discover_xml_url_t* discover_conf_get_urls discover_error_t status  ) 
 

Get the list of URLs from which XML data will be retrieved.

Parameters:
status Address in which to place status report

Definition at line 599 of file conf.c.

References discover_error::code, discover_conf_load(), and discover_xml_url_new().

Referenced by discover_xml_get_urls().

void discover_conf_insert_url char *  url,
discover_error_t status
 

Insert the URL specified in url at the head of the list of URLs where Discover data will be retrieved.

Parameters:
url URL to insert
status Address in which to place status report

Definition at line 557 of file conf.c.

References discover_error::code, and discover_conf_load().

void discover_conf_load discover_error_t status  ) 
 

Ensure that the configuration file is loaded. Repeated calls to this function will not change anything, unless you call discover_conf_free.

Technically, this function will lie to you if there is no conf file. Even though no configuration was loaded, repeated calls still will not change anything. However, if we don't do this and a config file is created between the time some long-lived caller first calls discover_conf_load and the time it calls it again, it will be loaded. This doesn't strike me as idempotent behavior. So, repeated calls even in this case will not change anything unless you call discover_conf_free.

Parameters:
status Address in which to place status report

Definition at line 378 of file conf.c.

References discover_error::code, discover_error::create_message, and DISCOVER_EXML.

Referenced by discover_conf_append_url(), discover_conf_get_bus_map(), discover_conf_get_bus_map_by_name(), discover_conf_get_full_bus_map(), discover_conf_get_urls(), and discover_conf_insert_url().

int discover_conf_name_to_bus char *  name,
discover_error_t status
 

Get the bus enumeration for a bus name.

Parameters:
name Name of the bus
status Address in which to place status report

Definition at line 477 of file conf.c.

References discover_error::code, and DISCOVER_EBUSNOTFOUND.

Referenced by _real_discover_conf_get_bus_map_by_name().


Generated on Thu Jul 28 03:38:01 2005 for discover by  doxygen 1.4.2
discover-2.1.2/doc/api-reference/html/group__busclass__xml.html0000644002342100234210000005105610655642004023326 0ustar perepere discover: Busclass list XML parsing

Busclass list XML parsing


Functions

void discover_xml_merge_busclass_url (discover_xml_busclass_t **blist, char *url, discover_error_t *status)
discover_xml_busclass_tdiscover_xml_get_busclasses (discover_bus_t bus, discover_error_t *status)
void discover_xml_free_busclasses (void)
char * discover_xml_busclass_to_class (char *busclass, discover_xml_busclass_t *busclasses)
int discover_xml_busclass_cmp (char *busclass, char *discover_class, discover_xml_busclass_t *busclasses)
char * discover_xml_busclass_get_id (discover_xml_busclass_t *busclass)
char * discover_xml_busclass_get_name (discover_xml_busclass_t *busclass)
discover_xml_busclass_tdiscover_xml_busclass_get_next (discover_xml_busclass_t *busclass)
discover_xml_busclass_tdiscover_xml_busclass_new (void)
void discover_xml_busclass_free (discover_xml_busclass_t *busclasses)

Function Documentation

int discover_xml_busclass_cmp char *  busclass,
char *  discover_class,
discover_xml_busclass_t busclasses
 

Compare a busclass to a device class, returning the same kind of value returned by strcmp(3). Note that this function has a special case for the class 'all'; it is considered equal to all busclasses.

Parameters:
busclass Busclass to compare
discover_class Device class to compare
busclasses List of busclasses to search

Definition at line 295 of file busclass-xml.c.

References discover_xml_busclass_to_class().

Referenced by discover_device_find().

void discover_xml_busclass_free discover_xml_busclass_t busclasses  ) 
 

Free the busclass or list of busclasses.

Parameters:
busclasses Busclass or list of busclasses to free

Definition at line 382 of file busclass-xml.c.

Referenced by discover_xml_free_busclasses().

char* discover_xml_busclass_get_id discover_xml_busclass_t busclass  ) 
 

Get the id member of busclass.

Parameters:
busclass 

Definition at line 327 of file busclass-xml.c.

char* discover_xml_busclass_get_name discover_xml_busclass_t busclass  ) 
 

Get the name member of busclass.

Parameters:
busclass 

Definition at line 340 of file busclass-xml.c.

discover_xml_busclass_t* discover_xml_busclass_get_next discover_xml_busclass_t busclass  ) 
 

Get the next member of busclass (used for traversing lists of busclasses).

Definition at line 352 of file busclass-xml.c.

discover_xml_busclass_t* discover_xml_busclass_new void   ) 
 

Create and initialize a new discover_xml_busclass_t object.

Definition at line 363 of file busclass-xml.c.

char* discover_xml_busclass_to_class char *  busclass,
discover_xml_busclass_t busclasses
 

Return the device class corresponding to a busclass.

Parameters:
busclass Busclass to look up
busclasses List of busclasses to search

Definition at line 263 of file busclass-xml.c.

Referenced by discover_xml_busclass_cmp().

void discover_xml_free_busclasses void   ) 
 

Free the list of busclasses.

Definition at line 247 of file busclass-xml.c.

References BUS_COUNT, and discover_xml_busclass_free().

discover_xml_busclass_t* discover_xml_get_busclasses discover_bus_t  bus,
discover_error_t status
 

Get the list of busclasses by bus type.

Parameters:
bus Type of bus for which busclasses are required
status Address in which to place status report

Definition at line 213 of file busclass-xml.c.

References discover_error::code, discover_xml_get_data_urls(), discover_xml_merge_busclass_url(), discover_xml_url_get_next(), and discover_xml_url_get_url().

Referenced by discover_device_find(), and discover_xml_get_devices().

void discover_xml_merge_busclass_url discover_xml_busclass_t **  blist,
char *  url,
discover_error_t status
 

Merge new busclasses into a list.

Parameters:
blist Address of the list to merge busclasses into
url URL of the document defining the busclasses
status Address in which to place status report

Definition at line 171 of file busclass-xml.c.

References discover_error::code, DISCOVER_EIO, and DISCOVER_EXML.

Referenced by discover_xml_get_busclasses().


Generated on Thu Jul 28 03:38:01 2005 for discover by  doxygen 1.4.2
discover-2.1.2/doc/api-reference/html/files.html0000644002342100234210000001215610655642004020215 0ustar perepere discover: File Index

discover File List

Here is a list of all documented files with brief descriptions:
/home/pere/src/debiancvs/pkg-discover/discover/trunk/include/discover/discover-conf.h [code]Public interface for reading Discover configuration data
/home/pere/src/debiancvs/pkg-discover/discover/trunk/include/discover/discover-xml.h [code]Public interface to Discover's XML handling
/home/pere/src/debiancvs/pkg-discover/discover/trunk/include/discover/discover.h [code]Public interface for Discover library
/home/pere/src/debiancvs/pkg-discover/discover/trunk/include/discover/sysdep.h [code]Private interface for system dependencies
/home/pere/src/debiancvs/pkg-discover/discover/trunk/lib/busclass-xml.c [code]Busclass XML data file parsing
/home/pere/src/debiancvs/pkg-discover/discover/trunk/lib/conf.c [code]Configuration handling (including XML parsing)
/home/pere/src/debiancvs/pkg-discover/discover/trunk/lib/core.c [code]Core and miscellaneous routines
/home/pere/src/debiancvs/pkg-discover/discover/trunk/lib/device-xml.c [code]Device XML data file parsing
/home/pere/src/debiancvs/pkg-discover/discover/trunk/lib/device.c [code]Device enumeration and information management
/home/pere/src/debiancvs/pkg-discover/discover/trunk/lib/load-url.c [code]File loading helper functions
/home/pere/src/debiancvs/pkg-discover/discover/trunk/lib/stack.c [code]Stack routines for Discover
/home/pere/src/debiancvs/pkg-discover/discover/trunk/lib/sysdep.c [code]Interact with system dependencies
/home/pere/src/debiancvs/pkg-discover/discover/trunk/lib/url-xml.c [code]XML URL handling
/home/pere/src/debiancvs/pkg-discover/discover/trunk/lib/vendor-xml.c [code]Vendor XML data file parsing
/home/pere/src/debiancvs/pkg-discover/discover/trunk/lib/version-cmp.c [code]Version comparison functions
/home/pere/src/debiancvs/pkg-discover/discover/trunk/sysdeps/stub/stubs.c [code]Stub system-dependent code

Generated on Thu Jul 28 03:38:00 2005 for discover by  doxygen 1.4.2
discover-2.1.2/doc/api-reference/html/device_8c.html0000644002342100234210000002146310655642004020745 0ustar perepere discover: /home/pere/src/debiancvs/pkg-discover/discover/trunk/lib/device.c File Reference

device.c File Reference

Device enumeration and information management. More...

#include "config.h"
#include <sys/types.h>
#include <assert.h>
#include <stdbool.h>
#include <string.h>
#include <discover/discover.h>
#include <discover/discover-conf.h>
#include <discover/discover-xml.h>
#include <discover/device.h>
#include <discover/utils.h>

Go to the source code of this file.

Functions

discover_device_tdiscover_device_find (char *discover_class, discover_error_t *status)
char * discover_device_get_data (discover_device_t *device, char *discover_class, char *version, discover_error_t *status)
void discover_device_copy (discover_device_t *src, discover_device_t *dst)
char * discover_data_get_class (discover_data_t *data)
char * discover_data_get_text (discover_data_t *data)
discover_data_tdiscover_data_get_parent (discover_data_t *data)
discover_data_tdiscover_data_get_child (discover_data_t *data)
discover_data_tdiscover_data_get_next (discover_data_t *data)
discover_data_tdiscover_data_get_prev (discover_data_t *data)
discover_data_tdiscover_data_get_first (discover_data_t *data)
discover_data_tdiscover_data_new (void)
void discover_data_free (discover_data_t *data_tree)
char * discover_device_get_busclass (discover_device_t *device)
char * discover_device_get_model_id (discover_device_t *device)
char * discover_device_get_model_name (discover_device_t *device)
char * discover_device_get_vendor_id (discover_device_t *device)
char * discover_device_get_vendor_name (discover_device_t *device)
discover_data_tdiscover_device_get_data_struct (discover_device_t *device)
discover_device_tdiscover_device_get_next (discover_device_t *device)
discover_device_tdiscover_device_new (void)
void discover_device_free (discover_device_t *devices, int free_data)


Detailed Description

Device enumeration and information management.

This file contains many device-related routines. Most of these routines are used to alter or access data pertaining to a device. These routines will likely be most interesting to people writing code against the Discover API.

Definition in file device.c.


Generated on Thu Jul 28 03:38:00 2005 for discover by  doxygen 1.4.2
discover-2.1.2/doc/api-reference/html/discover_8h-source.html0000644002342100234210000004151710655642004022631 0ustar perepere discover: /home/pere/src/debiancvs/pkg-discover/discover/trunk/include/discover/discover.h Source File

discover.h

Go to the documentation of this file.
00001 
00006 /* $Progeny$
00007  *
00008  * Copyright 2001, 2002 Progeny Linux Systems, Inc.
00009  * Copyright 2002 Hewlett-Packard Company
00010  *
00011  * Permission is hereby granted, free of charge, to any person obtaining a
00012  * copy of this software and associated documentation files (the "Software"),
00013  * to deal in the Software without restriction, including without limitation
00014  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
00015  * and/or sell copies of the Software, and to permit persons to whom the
00016  * Software is furnished to do so, subject to the following conditions:
00017  *
00018  * The above copyright notice and this permission notice shall be included in
00019  * all copies or substantial portions of the Software.
00020  *
00021  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
00022  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
00023  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
00024  * THE COPYRIGHT HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
00025  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
00026  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
00027  * DEALINGS IN THE SOFTWARE.
00028  */
00029 
00030 #ifndef DISCOVER_H
00031 #define DISCOVER_H
00032 
00033 #include <stdbool.h>
00034 
00035 #ifdef __cplusplus
00036     extern "C" {
00037 #endif
00038 
00073 typedef enum {
00075     DISCOVER_SUCCESS,
00077     DISCOVER_EIO,
00079     DISCOVER_EXML,
00081     DISCOVER_ESYS,
00083     DISCOVER_EBUSDISABLED,
00085     DISCOVER_EBUSNOTFOUND,
00087     DISCOVER_EDATANOTFOUND,
00089     DISCOVER_EDEVICENOTFOUND,
00091     DISCOVER_EBADVERSION,
00093     DISCOVER_ENOIMPL
00094 } discover_error_code_t;
00095 
00096 struct discover_error;
00097 
00099 typedef void *(discover_create_message_t)(struct discover_error **, char *);
00100 
00106 typedef struct discover_error {
00108     discover_error_code_t code;
00110     char *message;
00112     discover_create_message_t *create_message;
00113 } discover_error_t;
00114 
00116 typedef struct discover_bus_map         discover_bus_map_t;
00118 typedef struct discover_device          discover_device_t;
00120 typedef struct discover_data            discover_data_t;
00122 typedef struct discover_xml_busclass    discover_xml_busclass_t;
00124 typedef struct discover_xml_vendor      discover_xml_vendor_t;
00126 typedef struct discover_xml_url         discover_xml_url_t;
00127 
00129 typedef discover_device_t *(discover_device_func_t)(discover_error_t *);
00131 typedef discover_xml_busclass_t *(discover_xml_busclass_func_t)(discover_error_t *);
00133 typedef discover_xml_vendor_t *(discover_xml_vendor_func_t)(discover_error_t *);
00135 typedef discover_xml_url_t *(discover_xml_url_func_t)(discover_error_t *);
00137 typedef void (discover_free_func_t)(void);
00138 
00139 #include <discover/sysdep.h>
00141 typedef discover_sysdep_data_t *(discover_sysdep_raw_func_t)(void);
00142 
00146 typedef enum {
00147     ATA,
00148     PCI,
00149     PCMCIA,
00150     SCSI,
00151     USB
00152 } discover_bus_t;
00153 
00157 #define BUS_COUNT 5
00158 
00162 typedef enum {
00163     VENDOR_TYPE,
00164     BUSCLASS_TYPE,
00165     DEVICE_TYPE
00166 } discover_filetype_t;
00167 
00168 
00178 struct discover_bus_map {
00180     char *name;
00182     int scan_default;
00184     int scan_never;
00186     discover_sysdep_raw_func_t *get_raw;
00187 };
00188 
00192 discover_device_t *discover_get_devices(discover_bus_t bus, discover_error_t *status);
00193 
00195 void discover_free_devices(void);
00196 
00197 discover_error_t *discover_error_new(void);
00198 void discover_error_free(discover_error_t *status);
00199 char *discover_strerror(discover_error_t *err);
00200 int discover_major_version(void);
00201 int discover_minor_version(void);
00202 int discover_micro_version(void);
00203 
00204 /******************************************************************************
00205  * discover_device
00206  */
00207 
00208 discover_device_t *discover_device_new(void);
00209 
00210 /* Class is "video", "sound", etc. */
00211 discover_device_t *discover_device_find(char *discover_class,
00212                                              discover_error_t *status);
00213 
00214 char *discover_device_get_data(discover_device_t *device,
00215                                char *path, char *version,
00216                                discover_error_t *status);
00217 
00218 void
00219 discover_device_copy(discover_device_t *src, discover_device_t *dst);
00220 
00221 char *discover_device_get_busclass(discover_device_t *device);
00222 char *discover_device_get_model_id(discover_device_t *device);
00223 char *discover_device_get_model_name(discover_device_t *device);
00224 char *discover_device_get_vendor_id(discover_device_t *device);
00225 char *discover_device_get_vendor_name(discover_device_t *device);
00226 
00227 discover_data_t *
00228 discover_device_get_data_struct(discover_device_t *device);
00229 
00230 discover_device_t *
00231 discover_device_get_next(discover_device_t *device);
00232 
00233 void discover_device_free(discover_device_t *devices, int free_data);
00234 
00235 /******************************************************************************
00236  * discover_data
00237  */
00238 
00239 discover_data_t *discover_data_new(void);
00240 
00241 char *discover_data_get_class(discover_data_t *data);
00242 char *discover_data_get_text(discover_data_t *data);
00243 discover_data_t *discover_data_get_parent(discover_data_t *data);
00244 discover_data_t *discover_data_get_child(discover_data_t *data);
00245 discover_data_t *discover_data_get_next(discover_data_t *data);
00246 discover_data_t *discover_data_get_prev(discover_data_t *prev);
00247 discover_data_t *discover_data_get_first(discover_data_t *data);
00248 void discover_data_free(discover_data_t *data_tree);
00249 
00250 #ifdef __cplusplus
00251     }
00252 #endif
00253 
00254 #endif
00255 
00256 /*
00257  * Local variables:
00258  * c-file-style: "progeny"
00259  * indent-tabs-mode: nil
00260  * End:
00261  */
00262 /* vim: set cin fo=tcroq sw=4 et sts=4 tw=75: */

Generated on Thu Jul 28 03:38:00 2005 for discover by  doxygen 1.4.2
discover-2.1.2/doc/api-reference/html/version-cmp_8c-source.html0000644002342100234210000006240610655642004023250 0ustar perepere discover: /home/pere/src/debiancvs/pkg-discover/discover/trunk/lib/version-cmp.c Source File

version-cmp.c

Go to the documentation of this file.
00001 
00011 /* $Progeny$
00012  *
00013  * AUTHOR: John R. Daily <jdaily@progeny.com>
00014  *
00015  * Copyright 2002 Progeny Linux Systems, Inc.
00016  * Copyright 2002 Hewlett-Packard Company
00017  *
00018  * Permission is hereby granted, free of charge, to any person obtaining a
00019  * copy of this software and associated documentation files (the "Software"),
00020  * to deal in the Software without restriction, including without limitation
00021  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
00022  * and/or sell copies of the Software, and to permit persons to whom the
00023  * Software is furnished to do so, subject to the following conditions:
00024  *
00025  * The above copyright notice and this permission notice shall be included in
00026  * all copies or substantial portions of the Software.
00027  *
00028  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
00029  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
00030  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
00031  * THE COPYRIGHT HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
00032  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
00033  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
00034  * DEALINGS IN THE SOFTWARE.
00035  */
00036 
00037 /*
00038  * This package should include a state machine diagram that
00039  * is important to understanding this code.
00040  */
00041 
00042 #include "config.h"
00043 
00044 #include <assert.h>
00045 #include <ctype.h>
00046 #include <stdio.h>
00047 #include <stdlib.h>
00048 #include <string.h>
00049 
00050 #include <discover/discover.h>
00051 
00052 #include <discover/utils.h>
00053 
00055 #define MAXBUFLEN 256
00056 
00058 typedef enum range_states {
00059     START,
00060     OPEN,
00061     VERSION1,
00062     VERSEP1,
00063     PAUSE1,
00064     SEPARATOR,
00065     I, N, F,
00066     VERSION2,
00067     VERSEP2,
00068     PAUSE2,
00069     CLOSE,
00070     ERROR
00071 }
00073 range_state;
00074 
00075 /*
00076  * For now, we only understand '.' as a separator, but that could
00077  * change.
00078  */
00079 static int
00080 is_versep_char(char c)
00081 {
00082     return c == '.';
00083 }
00084 
00085 /*
00086  * Wrapper for isdigit(), in case we want to add more legitimate
00087  * version characters later.
00088  */
00089 static int
00090 is_version_char(char c)
00091 {
00092     return isdigit(c);
00093 }
00094 
00095 /*
00096  * We only handle dot-separated integers. Anything else becomes
00097  * subject to interpretation.
00098  *
00099  * Return values:
00100  *   1 - v1 is higher
00101  *   0 - v2 is higher
00102  *  -1 - v1, v2 are equivalent
00103  *
00104  * The string "inf" represents an undefined upper bound; the equivalent on
00105  * the lower bound should be 0.
00106  */
00107 static int
00108 version_compare(const char *const v1, const char *const v2)
00109 {
00110     int int1, int2;
00111     char *word1, *word2;
00112     char *version1, *version2;
00113     char *buffer1;
00114     char *buffer2;
00115 
00116     if (strcmp(v1, v2) == 0) {
00117         return -1;
00118     }
00119 
00120     if (strcmp(v1, "inf") == 0) {
00121         return 1;
00122     }
00123 
00124     if (strcmp(v2, "inf") == 0) {
00125         return 0;
00126     }
00127 
00128     buffer1 = _discover_xmalloc(MAXBUFLEN);
00129     buffer2 = _discover_xmalloc(MAXBUFLEN);
00130 
00131     version1 = _discover_xstrdup(v1);
00132     version2 = _discover_xstrdup(v2);
00133 
00134     word1 = strtok_r(version1, ".", &buffer1);
00135     word2 = strtok_r(version2, ".", &buffer2);
00136 
00137     do {
00138         sscanf(word1, "%d", &int1);
00139         sscanf(word2, "%d", &int2);
00140 
00141         if (int1 != int2) {
00142             return int1 > int2;
00143         }
00144 
00145         word1 = strtok_r(NULL, ".", &buffer1);
00146         word2 = strtok_r(NULL, ".", &buffer2);
00147 
00148     } while(word1 != NULL && word2 != NULL);
00149 
00150     free(version1);
00151     free(version2);
00152 
00153     if (word2 == NULL && word1 == NULL) {
00154         return -1;
00155     }
00156     if (word2 == NULL) {
00157         return 1;
00158     }
00159     return -0;
00160 }
00161 
00162 
00163 static int
00164 determine_range(char * range_text, char **upper,
00165                 int *upper_inclusive, char **lower, int *lower_inclusive,
00166                 char **next)
00167 {
00168     char *current = range_text;
00169     char c;
00170     char last_char = '\0';
00171 
00172     char buffer1[MAXBUFLEN];
00173     char *bufptr1 = buffer1;
00174 
00175     char buffer2[MAXBUFLEN];
00176     char *bufptr2 = buffer2;
00177 
00178     range_state state = START;
00179     range_state last_good_state = START;
00180     int first_inclusive = -1, second_inclusive = -1;
00181 
00182     while(1) {
00183         c = *current;
00184 
00185         switch(state) {
00186         case START:
00187             if (isspace(c)) {
00188                 state = START;
00189             } else if (c == '(' || c == '[') {
00190                 state = OPEN;
00191             } else {
00192                 last_good_state = state;
00193                 state = ERROR;
00194             }
00195             break;
00196 
00197         case OPEN:
00198             if (last_char == '[') {
00199                 first_inclusive = 1;
00200             } else {
00201                 first_inclusive = 0;
00202             }
00203 
00204             if (isspace(c)) {
00205                 state = OPEN;
00206             } else if (is_version_char(c)) {
00207                 state = VERSION1;
00208             } else {
00209                 last_good_state = state;
00210                 state = ERROR;
00211             }
00212             break;
00213 
00214         case VERSION1:
00215             if (bufptr1 - buffer1 > 254) {
00216                 last_good_state = state;
00217                 state = ERROR;
00218                 break;
00219             }
00220 
00221             *bufptr1 = last_char;
00222             bufptr1++;
00223 
00224             if (isspace(c) || c == ',') {
00225                 *bufptr1 = '\0';
00226 
00227                 if (c == ',') {
00228                     state = SEPARATOR;
00229                 } else {
00230                     state = PAUSE1;
00231                 }
00232             } else if (is_version_char(c)) {
00233                 state = VERSION1;
00234             } else if (is_versep_char(c)) {
00235                 state = VERSEP1;
00236             } else {
00237                 last_good_state = VERSION1;
00238                 state = ERROR;
00239             }
00240             break;
00241 
00242         case VERSEP1:
00243             if (bufptr1 - buffer1 > 254) {
00244                 last_good_state = state;
00245                 state = ERROR;
00246                 break;
00247             }
00248 
00249             *bufptr1 = last_char;
00250             bufptr1++;
00251 
00252             if (is_version_char(c)) {
00253                 state = VERSION1;
00254             } else {
00255                 last_good_state = VERSION1;
00256                 state = ERROR;
00257             }
00258             break;
00259 
00260         case PAUSE1:
00261             if (isspace(c)) {
00262                 state = PAUSE1;
00263             } else if (c == ',') {
00264                 state = SEPARATOR;
00265             } else {
00266                 last_good_state = PAUSE1;
00267                 state = ERROR;
00268             }
00269             break;
00270 
00271         case SEPARATOR:
00272             if (isspace(c)) {
00273                 state = SEPARATOR;
00274             } else if (is_version_char(c)) {
00275                 state = VERSION2;
00276             } else if (c == 'i') {
00277                 state = I;
00278             } else {
00279                 last_good_state = SEPARATOR;
00280                 state = ERROR;
00281             }
00282             break;
00283 
00284         case I:
00285             if (c == 'n') {
00286                 state = N;
00287             } else {
00288                 last_good_state = state;
00289                 state = ERROR;
00290             }
00291             break;
00292 
00293         case N:
00294             if (c == 'f') {
00295                 state = F;
00296             } else {
00297                 last_good_state = state;
00298                 state = ERROR;
00299             }
00300             break;
00301 
00302         case F:
00303             strcpy(bufptr2, "inf");
00304             if (isspace(c)) {
00305                 state = PAUSE2;
00306             } else if (c == ')' || c == ']') {
00307                 state = CLOSE;
00308             } else {
00309                 last_good_state = state;
00310                 state = ERROR;
00311             }
00312             break;
00313 
00314         case VERSION2:
00315             if (bufptr2 - buffer2 > 254) {
00316                 last_good_state = state;
00317                 state = ERROR;
00318                 break;
00319             }
00320 
00321             *bufptr2 = last_char;
00322             bufptr2++;
00323 
00324             if (isspace(c) || c == ')' || c == ']') {
00325                 *bufptr2 = '\0';
00326 
00327                 if (c == ')' || c == ']') {
00328                     state = CLOSE;
00329                 } else {
00330                     state = PAUSE2;
00331                 }
00332             } else if (is_version_char(c)) {
00333                 state = VERSION2;
00334             } else if (is_versep_char(c)) {
00335                 state = VERSEP2;
00336             } else {
00337                 last_good_state = VERSION2;
00338                 state = ERROR;
00339             }
00340             break;
00341 
00342         case VERSEP2:
00343             if (bufptr2 - buffer2 > 254) {
00344                 last_good_state = state;
00345                 state = ERROR;
00346                 break;
00347             }
00348 
00349             *bufptr2 = last_char;
00350             bufptr2++;
00351 
00352             if (is_version_char(c)) {
00353                 state = VERSION2;
00354             } else {
00355                 last_good_state = VERSION2;
00356                 state = ERROR;
00357             }
00358             break;
00359 
00360         case PAUSE2:
00361             if (isspace(c)) {
00362                 state = PAUSE2;
00363             } else if (c == ')' || c == ']') {
00364                 state = CLOSE;
00365             } else {
00366                 last_good_state = PAUSE2;
00367                 state = ERROR;
00368             }
00369             break;
00370 
00371         case CLOSE:
00372             *next = current;
00373 
00374             if (last_char == ')') {
00375                 second_inclusive = 0;
00376             } else if (last_char == ']') {
00377                 second_inclusive = 1;
00378             }
00379 
00380             if (version_compare(buffer1, buffer2) == 1) {
00381                 *upper = _discover_xmalloc(bufptr1 - buffer1 + 1);
00382                 strcpy(*upper, buffer1);
00383                 *upper_inclusive = first_inclusive;
00384 
00385                 *lower = _discover_xmalloc(bufptr2 - buffer2 + 1);
00386                 strcpy(*lower, buffer2);
00387                 *lower_inclusive = second_inclusive;
00388             } else {
00389                 *lower = _discover_xmalloc(bufptr1 - buffer1 + 1);
00390                 strcpy(*lower, buffer1);
00391                 *lower_inclusive = first_inclusive;
00392 
00393                 *upper = _discover_xmalloc(bufptr2 - buffer2 + 1);
00394                 strcpy(*upper, buffer2);
00395                 *upper_inclusive = second_inclusive;
00396             }
00397 
00398             /* EXIT POINT */
00399             return 1;
00400 
00401         default:
00402             state = ERROR;
00403             last_good_state = -1;
00404             break;
00405         }
00406 
00407         if (state == ERROR) {
00408             /* Do something. */
00409             return 0;
00410         }
00411 
00412         /*
00413          * We don't care about recording spaces; let's simplify by not
00414          * doing so, in case we'd be missing something valuable.
00415          */
00416         if (!isspace(*current)) {
00417             last_char = *current;
00418         }
00419 
00420         current++;
00421     }
00422 }
00423 
00437 int
00438 discover_xml_version_cmp(char *range, char *version, discover_error_t *status)
00439 {
00440     char *upper, *lower;
00441     int upper_inclusive, lower_inclusive;
00442     char *next_range;
00443     int range_count = 0;
00444 
00445     assert(range != NULL);
00446     assert(version != NULL);
00447     assert(status != NULL);
00448 
00449     next_range = range;
00450 
00451     while(*next_range != '\0') {
00452         range_count++;
00453         if (determine_range(next_range, &upper, &upper_inclusive,
00454                             &lower, &lower_inclusive, &next_range)) {
00455             /*
00456              * First test: Does this version match the upper end of the
00457              * range exactly? If so, is the upper end of the range
00458              * inclusive?
00459              *
00460              * Second test: Does this version match the lower end of the
00461              * range? If so, is the lower end inclusive?
00462              *
00463              * Finally, is the version higher than the lower end, and lower
00464              * then the upper end?
00465              */
00466             if (version_compare(version, upper) == -1
00467                 && upper_inclusive) {
00468                 return range_count;
00469             } else if (version_compare(version, lower) == -1
00470                        && lower_inclusive) {
00471                 return range_count;
00472             } else if (version_compare(version, lower) > 0 &&
00473                        version_compare(upper, version) > 0) {
00474                 return range_count;
00475             }
00476 
00477         } else {
00478             status->code = DISCOVER_EBADVERSION;
00479             return -1;
00480         }
00481     }
00482 
00483     return 0;
00484 }
00485 

Generated on Thu Jul 28 03:38:00 2005 for discover by  doxygen 1.4.2
discover-2.1.2/doc/api-reference/html/busclass-xml_8c-source.html0000644002342100234210000004741010655642004023421 0ustar perepere discover: /home/pere/src/debiancvs/pkg-discover/discover/trunk/lib/busclass-xml.c Source File

busclass-xml.c

Go to the documentation of this file.
00001 
00010 /* $Progeny$
00011  *
00012  * AUTHOR: John R. Daily <jdaily@progeny.com>
00013  *
00014  * Copyright 2002 Progeny Linux Systems, Inc.
00015  * Copyright 2002 Hewlett-Packard Company
00016  *
00017  * Permission is hereby granted, free of charge, to any person obtaining a
00018  * copy of this software and associated documentation files (the "Software"),
00019  * to deal in the Software without restriction, including without limitation
00020  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
00021  * and/or sell copies of the Software, and to permit persons to whom the
00022  * Software is furnished to do so, subject to the following conditions:
00023  *
00024  * The above copyright notice and this permission notice shall be included in
00025  * all copies or substantial portions of the Software.
00026  *
00027  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
00028  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
00029  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
00030  * THE COPYRIGHT HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
00031  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
00032  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
00033  * DEALINGS IN THE SOFTWARE.
00034  */
00035 
00036 #include "config.h"
00037 
00038 #include <sys/types.h>
00039 
00040 #include <assert.h>
00041 #include <limits.h>
00042 #include <stdio.h>
00043 #include <string.h>
00044 
00045 #include <expat.h>
00046 
00047 #include <discover/discover.h>
00048 #include <discover/discover-xml.h>
00049 
00050 #include <discover/load-url.h>
00051 #include <discover/utils.h>
00052 
00054 struct discover_xml_busclass {
00055     char *id;
00056     char *name;
00057     discover_xml_busclass_t *next;
00058 };
00059 
00060 static discover_xml_busclass_t *busclasses[BUS_COUNT];
00061 
00062 struct context {
00063     discover_xml_busclass_t **blist;
00064 
00065     int unknown_level; /* How deep are we into unknown XML tags? */
00066 };
00067 
00068 static char *known_bus_elements[] = {
00069     "busclass",
00070     "busclass_list",
00071     NULL
00072 };
00073 
00074 static bool
00075 unknown_bus_element(const XML_Char * const tag)
00076 {
00077     int i;
00078     for (i = 0; known_bus_elements[i] != NULL; i++) {
00079         if (strcmp(tag, known_bus_elements[i]) == 0)
00080             return false;
00081     }
00082     return true;
00083 }
00084 
00085 static void
00086 start_element(void *ctx, const XML_Char *name, const XML_Char *attrs[])
00087 {
00088     struct context *context = ctx;
00089     int i;
00090     char *vid, *vname;
00091     discover_xml_busclass_t *next, **blist;
00092 
00093     assert(context != NULL);
00094     assert(name != NULL);
00095     assert(attrs != NULL);
00096 
00097     if (unknown_bus_element(name)) {
00098         context->unknown_level++;
00099         return;
00100     }
00101 
00102     if (context->unknown_level > 0) {
00103         return;
00104     }
00105 
00106     if (strcmp(name, "busclass") == 0) {
00107         vid = vname = NULL;
00108         for (i = 0; attrs[i]; i += 2) {
00109             if (strcmp(attrs[i], "id") == 0) {
00110                 vid = (char *) attrs[i + 1];
00111             } else if (strcmp(attrs[i], "name") == 0) {
00112                 vname = (char *) attrs[i + 1];
00113             }
00114         }
00115 
00116         assert(vid != NULL);
00117         assert(vname != NULL);
00118 
00119         blist = context->blist;
00120         next = *blist;
00121         *blist = discover_xml_busclass_new();
00122         (*blist)->id = _discover_xstrdup(vid);
00123         (*blist)->name = _discover_xstrdup(vname);
00124         (*blist)->next = next;
00125     }
00126 }
00127 
00128 static void
00129 end_element(void *ctx, const XML_Char *name)
00130 {
00131     struct context *context = ctx;
00132 
00133     assert(context != NULL);
00134     assert(name != NULL);
00135 
00136     if (unknown_bus_element(name)) {
00137         context->unknown_level--;
00138         return;
00139     }
00140 
00141     if (context->unknown_level > 0) {
00142         return;
00143     }
00144 
00145     /*
00146      * We don't have any end tags to worry about, but if we did, they
00147      * would be handled here.
00148      */
00149 }
00150 
00151 
00164 /* Sshh!  Don't tell, but this doesn't actually do any merging at all.
00165  * Instead, it simply inserts newer entries at the front of the list,
00166  * meaning that busclass info found later supersedes info found earlier.
00167  * This gives the illusion of merging, but potentially wastes memory
00168  * with duplicates.
00169  */
00170 void
00171 discover_xml_merge_busclass_url(discover_xml_busclass_t **blist,
00172                                 char *url, discover_error_t *status)
00173 {
00174     XML_Parser parser;
00175     struct context context;
00176 
00177     assert(url != NULL);
00178     assert(status != NULL);
00179 
00180     status->code = 0;
00181 
00182     context.blist = blist;
00183     context.unknown_level = 0;
00184 
00185     parser = XML_ParserCreate(NULL);
00186     XML_SetElementHandler(parser, start_element, end_element);
00187     XML_SetUserData(parser, &context);
00188 
00189     if (!_discover_load_url(url, parser)) {
00190         XML_ParserFree(parser);
00191         status->code = DISCOVER_EIO;
00192         return;
00193     }
00194 
00195     if (!XML_Parse(parser, "", 0, 1)) {
00196         XML_ParserFree(parser);
00197         status->code = DISCOVER_EXML;
00198         return;
00199     }
00200 
00201     XML_ParserFree(parser);
00202 
00203     return;
00204 }
00205 
00212 discover_xml_busclass_t *
00213 discover_xml_get_busclasses(discover_bus_t bus, discover_error_t *status)
00214 {
00215     discover_xml_url_t *urls, *i;
00216     char *url;
00217 
00218     assert(status != NULL);
00219 
00220     status->code = 0;
00221 
00222     if (!busclasses[bus]) {
00223         urls = discover_xml_get_data_urls(bus, BUSCLASS_TYPE, status);
00224         if (status->code != 0) {
00225             return NULL;
00226         }
00227 
00228         for (i = urls;
00229              i;
00230              i = discover_xml_url_get_next(i)) {
00231             url = discover_xml_url_get_url(i);
00232             discover_xml_merge_busclass_url(&(busclasses[bus]), url, status);
00233             if (status->code != 0) {
00234                 return NULL;
00235             }
00236         }
00237     }
00238 
00239     return busclasses[bus];
00240 }
00241 
00242 
00246 void
00247 discover_xml_free_busclasses(void)
00248 {
00249     int i;
00250     for (i = 0; i < BUS_COUNT; i++) {
00251         discover_xml_busclass_free(busclasses[i]);
00252         busclasses[i] = NULL;
00253     }
00254 }
00255 
00262 char *
00263 discover_xml_busclass_to_class(char *busclass,
00264                                discover_xml_busclass_t *busclasses)
00265 {
00266     char *result;
00267 
00268     assert(busclass != NULL);
00269     assert(busclasses != NULL);
00270 
00271     result = NULL;
00272 
00273     for (;
00274          busclasses;
00275          busclasses = busclasses->next) {
00276         if (strcmp(busclass, busclasses->id) == 0) {
00277             result = busclasses->name;
00278             break;
00279         }
00280     }
00281 
00282     return result;
00283 }
00284 
00294 int
00295 discover_xml_busclass_cmp(char *busclass, char *discover_class,
00296                           discover_xml_busclass_t *busclasses)
00297 {
00298     char *found_class_name = NULL;
00299 
00300     assert(busclass != NULL);
00301     assert(discover_class != NULL);
00302     assert(busclasses != NULL);
00303 
00304     if (strcmp(discover_class, "all") == 0) {
00305         return 0;
00306     }
00307 
00308     found_class_name = discover_xml_busclass_to_class(busclass, busclasses);
00309 
00310     /*
00311      * If the busclass database doesn't know about this device class, we
00312      * can't make any valid comparison.
00313      */
00314     if (found_class_name == NULL) {
00315         return -1;
00316     }
00317 
00318     return strcmp(found_class_name, discover_class);
00319 }
00320 
00326 char *
00327 discover_xml_busclass_get_id(discover_xml_busclass_t *busclass)
00328 {
00329     assert(busclass != NULL);
00330 
00331     return busclass->id;
00332 }
00333 
00339 char *
00340 discover_xml_busclass_get_name(discover_xml_busclass_t *busclass)
00341 {
00342     assert(busclass != NULL);
00343 
00344     return busclass->name;
00345 }
00346 
00351 discover_xml_busclass_t *
00352 discover_xml_busclass_get_next(discover_xml_busclass_t *busclass)
00353 {
00354     assert(busclass != NULL);
00355 
00356     return busclass->next;
00357 }
00358 
00362 discover_xml_busclass_t *
00363 discover_xml_busclass_new(void)
00364 {
00365     discover_xml_busclass_t *new;
00366 
00367     new = _discover_xmalloc(sizeof(discover_xml_busclass_t));
00368 
00369     new->id = NULL;
00370     new->name = NULL;
00371     new->next = NULL;
00372 
00373     return new;
00374 }
00375 
00381 void
00382 discover_xml_busclass_free(discover_xml_busclass_t *busclasses)
00383 {
00384     discover_xml_busclass_t *busclass, *last;
00385 
00386     last = NULL;
00387 
00388     for (busclass = busclasses;
00389          busclass;
00390          busclass = busclass->next) {
00391         if (busclass->id) {
00392             free(busclass->id);
00393         }
00394 
00395         if (busclass->name) {
00396             free(busclass->name);
00397         }
00398 
00399         if (last) {
00400             free(last);
00401         }
00402         last = busclass;
00403     }
00404 
00405     if (last) {
00406         free(last);
00407     }
00408 }
00409 
00412 /*
00413  * Local variables:
00414  * c-file-style: "progeny"
00415  * indent-tabs-mode: nil
00416  * End:
00417  */
00418 /* vim: set cin fo=tcroq sw=4 et sts=4 tw=75: */

Generated on Thu Jul 28 03:38:00 2005 for discover by  doxygen 1.4.2
discover-2.1.2/doc/api-reference/html/dir_000000.html0000644002342100234210000000271210655642004020465 0ustar perepere discover: /home/pere/src/debiancvs/pkg-discover/discover/trunk/include/ Directory Reference

include Directory Reference


Directories

directory  discover

Generated on Thu Jul 28 03:38:01 2005 for discover by  doxygen 1.4.2
discover-2.1.2/doc/api-reference/html/dir_000003.html0000644002342100234210000000270610655642004020473 0ustar perepere discover: /home/pere/src/debiancvs/pkg-discover/discover/trunk/sysdeps/ Directory Reference

sysdeps Directory Reference


Directories

directory  stub

Generated on Thu Jul 28 03:38:01 2005 for discover by  doxygen 1.4.2
discover-2.1.2/doc/api-reference/html/sysdep_8c-source.html0000644002342100234210000005007710655642004022316 0ustar perepere discover: /home/pere/src/debiancvs/pkg-discover/discover/trunk/lib/sysdep.c Source File

sysdep.c

Go to the documentation of this file.
00001 
00010 /* $Progeny$
00011  *
00012  * AUTHOR: John R. Daily <jdaily@progeny.com>
00013  *
00014  * Copyright 2002 Progeny Linux Systems, Inc.
00015  *
00016  * Permission is hereby granted, free of charge, to any person obtaining a
00017  * copy of this software and associated documentation files (the "Software"),
00018  * to deal in the Software without restriction, including without limitation
00019  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
00020  * and/or sell copies of the Software, and to permit persons to whom the
00021  * Software is furnished to do so, subject to the following conditions:
00022  *
00023  * The above copyright notice and this permission notice shall be included in
00024  * all copies or substantial portions of the Software.
00025  *
00026  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
00027  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
00028  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
00029  * THE COPYRIGHT HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
00030  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
00031  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
00032  * DEALINGS IN THE SOFTWARE.
00033  */
00034 #include <assert.h>
00035 
00036 #include <stdio.h>
00037 #include <string.h>
00038 
00039 #include <discover/discover.h>
00040 #include <discover/discover-conf.h>
00041 #include <discover/discover-xml.h>
00042 #include <discover/sysdep.h>
00043 
00044 #include <discover/device.h>
00045 #include <discover/utils.h>
00046 
00047 
00049 typedef discover_sysdep_data_t *(raw_sysdep_function_t)(void);
00050 
00051 static raw_sysdep_function_t *raw_map[] = {
00052     _discover_get_ata_raw,
00053     _discover_get_pci_raw,
00054     _discover_get_pcmcia_raw,
00055     _discover_get_scsi_raw,
00056     _discover_get_usb_raw
00057 };
00058 
00059 
00060 /*
00061  * Utility functions
00062  */
00063 
00065 discover_sysdep_data_t *
00066 _discover_sysdep_data_new(void)
00067 {
00068     discover_sysdep_data_t *node =
00069         _discover_xmalloc(sizeof(discover_sysdep_data_t));
00070     node->busclass = NULL;
00071     node->vendor = NULL;
00072     node->model = NULL;
00073     node->data = NULL;
00074     node->next = NULL;
00075     return node;
00076 }
00077 
00079 discover_sysdep_device_data_t *
00080 _discover_sysdep_device_data_new(void)
00081 {
00082     discover_sysdep_device_data_t *node =
00083         _discover_xmalloc(sizeof(discover_sysdep_device_data_t));
00084     node->path = NULL;
00085     node->value = NULL;
00086     node->next = NULL;
00087     return node;
00088 }
00089 
00091 void
00092 _discover_free_sysdep_data(discover_sysdep_data_t *head)
00093 {
00094     discover_sysdep_data_t *node;
00095 
00096     while (head) {
00097         node = head->next;
00098         if (head->vendor) {
00099             free(head->vendor);
00100         }
00101         if (head->model) {
00102             free(head->model);
00103         }
00104         if (head->busclass) {
00105             free(head->busclass);
00106         }
00107         if (head->data) {
00108             _discover_free_sysdep_device_data(head->data);
00109         }
00110         free(head);
00111         head = node;
00112     }
00113 }
00114 
00116 void
00117 _discover_free_sysdep_device_data(discover_sysdep_device_data_t *head)
00118 {
00119     discover_sysdep_device_data_t *node;
00120     while (head) {
00121         node = head->next;
00122         if (head->path) {
00123             free(head->path);
00124         }
00125         if (head->value) {
00126             free(head->value);
00127         }
00128         free(head);
00129         head = node;
00130     }
00131 }
00132 
00134 discover_data_t *
00135 _discover_convert_device_data(discover_sysdep_device_data_t *head)
00136 {
00137     discover_data_t *data_head, *data_current, *data_new;
00138     discover_sysdep_device_data_t *node;
00139     char *buffer, *path, *token;
00140 
00142     data_head = discover_data_new();
00143     data_head->discover_class = _discover_xstrdup("device");
00144 
00145     /*
00146      * Step through the device data nodes returned by the sysdeps.
00147      * Each node will have a path relative to the "device" toplevel,
00148      * separated by slashes, as well as a value.  We need to set
00149      * each one up to look like it came from the XML data.
00150      */
00151     for (node = head; node; node = head->next) {
00153         data_current = NULL;
00154 
00156         path = _discover_xstrdup(node->path);
00157         buffer = _discover_xstrdup(node->path);
00158 
00160         for (token = strtok_r(path, "/", &buffer); token;
00161              token = strtok_r(NULL, "/", &buffer)) {
00163             data_new = discover_data_new();
00164             data_new->discover_class = _discover_xstrdup(token);
00165 
00167             if (data_current == NULL) {
00169                 if (data_head->child == NULL) {
00170                     data_head->child = data_new;
00171                 } else {
00172                     data_current = data_head->child;
00173                     while (data_current->next)
00174                         data_current = data_current->next;
00175                     data_current->next = data_new;
00176                 }
00177             } else {
00179                 data_current->child = data_new;
00180                 data_new->parent = data_current;
00181             }
00182 
00183             data_current = data_new;
00184         }
00185 
00186         /*
00187          * We've gotten to the very last path element; set the 
00188          * node's value here.
00189          */
00190         data_current->text = _discover_xstrdup(node->value);
00191 
00193         free(path);
00194         free(buffer);
00195     }
00196 
00197     return data_head;
00198 }
00199 
00200 /*
00201  * Functions that access the sysdeps
00202  */
00203 static discover_device_t *devices[BUS_COUNT];
00204 
00205 discover_device_t *
00206 discover_get_devices(discover_bus_t bus, discover_error_t *status)
00207 {
00208     discover_device_t *device, *last;
00209     discover_device_t *xml_devices;
00210     discover_bus_map_t *busmap;
00211     discover_sysdep_data_t *head, *node;
00212     discover_data_t *data_head, *data_node;
00213 
00214     assert(status);
00215 
00216     status->code = DISCOVER_SUCCESS;
00217     device = last = NULL;
00218 
00219     busmap = discover_conf_get_bus_map(bus, status);
00220     if (status->code != 0) {
00221         return NULL;
00222     }
00223 
00224     if (busmap->scan_never) {
00225         status->code = DISCOVER_EBUSDISABLED;
00226         return NULL;
00227     }
00228 
00229     if (devices[bus]) {
00230         return devices[bus];
00231     }
00232 
00233     xml_devices = discover_xml_get_devices(bus, status);
00234     if (!xml_devices) {
00235         return NULL;
00236     }
00237 
00238     /*
00239      * Allow overrides of this function.
00240      */
00241     if (busmap->get_raw) {
00242         head = node = busmap->get_raw();
00243     } else {
00244         head = node = raw_map[bus]();
00245     }
00246 
00247     while (node) {
00248         /*
00249          * The variable names are ambiguous:
00250          *   node   -  Hardware data retrieved from the OS
00251          *   device -  Matching hardware data from our database
00252          */
00253         device =
00254             discover_xml_get_matching_devices(xml_devices, node->vendor,
00255                                               node->model, status);
00256 
00257         if (!device) {
00258             device = discover_device_new();
00259             device->model_id = strdup(node->model);
00260             device->vendor_id = strdup(node->vendor);
00261         }
00262 
00263         /*
00264          * If we get a busclass from the hardware, treat it as
00265          * canonical.
00266          */
00267         if (node->busclass != NULL) {
00268             if (device->busclass != NULL) {
00269                 free(device->busclass);
00270             }
00271             device->busclass = strdup(node->busclass);
00272         }
00273 
00274         /* Add sysdep data to the data nodes. */
00275         if (node->data != NULL) {
00276             data_head = _discover_convert_device_data(node->data);
00277             if (data_head != NULL) {
00278                 for (data_node = data_head; data_node->next != NULL; 
00279                      data_node = data_node->next) ;
00280                 data_node->next = device->data;
00281                 device->data = data_head;
00282             }
00283         }
00284 
00285         if (last) {
00286             last->next = device;
00287             last = device;
00288         } else {
00289             devices[bus] = last = device;
00290         }
00291 
00292         node = node->next;
00293     }
00294 
00295     _discover_free_sysdep_data(head);
00296 
00297     return devices[bus];
00298 }
00299 
00300 void
00301 discover_free_devices(void)
00302 {
00303     int i;
00304 
00305     for (i = 0; i < BUS_COUNT; i++) {
00306         discover_device_free(devices[i], 0);
00307         devices[i] = NULL;
00308     }
00309 }
00310 
00311 /*
00312  * Local variables:
00313  * c-file-style: "progeny"
00314  * indent-tabs-mode: nil
00315  * End:
00316  */
00317 /* vim: set cin fo=tcroq sw=4 et sts=4 tw=75: */

Generated on Thu Jul 28 03:38:00 2005 for discover by  doxygen 1.4.2
discover-2.1.2/doc/api-reference/html/dir_000002.html0000644002342100234210000001162710655642004020474 0ustar perepere discover: /home/pere/src/debiancvs/pkg-discover/discover/trunk/lib/ Directory Reference

lib Directory Reference


Files

file  busclass-xml.c [code]
 Busclass XML data file parsing.
file  conf.c [code]
 Configuration handling (including XML parsing).
file  core.c [code]
 Core and miscellaneous routines.
file  device-xml.c [code]
 Device XML data file parsing.
file  device.c [code]
 Device enumeration and information management.
file  load-url.c [code]
 File loading helper functions.
file  stack.c [code]
 Stack routines for Discover.
file  sysdep.c [code]
 Interact with system dependencies.
file  url-xml.c [code]
 XML URL handling.
file  vendor-xml.c [code]
 Vendor XML data file parsing.
file  version-cmp.c [code]
 Version comparison functions.

Generated on Thu Jul 28 03:38:01 2005 for discover by  doxygen 1.4.2
discover-2.1.2/doc/api-reference/html/globals_defs.html0000644002342100234210000000310710655642004021533 0ustar perepere discover: Data Fields


Generated on Thu Jul 28 03:38:01 2005 for discover by  doxygen 1.4.2
discover-2.1.2/doc/api-reference/html/load-url_8c.html0000644002342100234210000000525410655642004021225 0ustar perepere discover: /home/pere/src/debiancvs/pkg-discover/discover/trunk/lib/load-url.c File Reference

load-url.c File Reference

File loading helper functions. More...

#include "config.h"
#include <assert.h>
#include <expat.h>
#include <discover/load-url.h>
#include <stdio.h>
#include <string.h>

Go to the source code of this file.

Defines

#define STDIO_READ(f, buf, len)   fread(buf, 1, len, f)

Typedefs

typedef FILE * stdio_file

Functions

int _discover_load_url (const char *url, XML_Parser parser)


Detailed Description

File loading helper functions.

Definition in file load-url.c.


Generated on Thu Jul 28 03:38:00 2005 for discover by  doxygen 1.4.2
discover-2.1.2/doc/api-reference/html/dir_000004.html0000644002342100234210000000321610655642004020471 0ustar perepere discover: /home/pere/src/debiancvs/pkg-discover/discover/trunk/sysdeps/stub/ Directory Reference

stub Directory Reference


Files

file  stubs.c [code]
 Stub system-dependent code.

Generated on Thu Jul 28 03:38:01 2005 for discover by  doxygen 1.4.2
discover-2.1.2/doc/api-reference/html/group__device.html0000644002342100234210000011007510655642004021724 0ustar perepere discover: Devices

Devices


Functions

discover_device_tdiscover_device_find (char *discover_class, discover_error_t *status)
char * discover_device_get_data (discover_device_t *device, char *discover_class, char *version, discover_error_t *status)
void discover_device_copy (discover_device_t *src, discover_device_t *dst)
char * discover_data_get_class (discover_data_t *data)
char * discover_data_get_text (discover_data_t *data)
discover_data_tdiscover_data_get_parent (discover_data_t *data)
discover_data_tdiscover_data_get_child (discover_data_t *data)
discover_data_tdiscover_data_get_next (discover_data_t *data)
discover_data_tdiscover_data_get_prev (discover_data_t *data)
discover_data_tdiscover_data_get_first (discover_data_t *data)
discover_data_tdiscover_data_new (void)
void discover_data_free (discover_data_t *data_tree)
char * discover_device_get_busclass (discover_device_t *device)
char * discover_device_get_model_id (discover_device_t *device)
char * discover_device_get_model_name (discover_device_t *device)
char * discover_device_get_vendor_id (discover_device_t *device)
char * discover_device_get_vendor_name (discover_device_t *device)
discover_data_tdiscover_device_get_data_struct (discover_device_t *device)
discover_device_tdiscover_device_get_next (discover_device_t *device)
discover_device_tdiscover_device_new (void)
void discover_device_free (discover_device_t *devices, int free_data)

Function Documentation

void discover_data_free discover_data_t data_tree  ) 
 

Free the data tree. Note that unlike the other free functions in Discover, this one does not free data_tree itself. This is a side-effect of how it is implemented. It frees all children and siblings of data_tree as well as the data. After calling discover_data_free, you have to call free(3) on data_tree itself.

Parameters:
data_tree Data tree to free

Definition at line 436 of file device.c.

References discover_data_free().

Referenced by discover_data_free(), and discover_device_free().

discover_data_t* discover_data_get_child discover_data_t data  ) 
 

Get the child member of data.

Definition at line 341 of file device.c.

char* discover_data_get_class discover_data_t data  ) 
 

Get the class member of data.

Definition at line 308 of file device.c.

discover_data_t* discover_data_get_first discover_data_t data  ) 
 

Get the first member of data.

Definition at line 374 of file device.c.

discover_data_t* discover_data_get_next discover_data_t data  ) 
 

Get the next member of data.

Definition at line 352 of file device.c.

discover_data_t* discover_data_get_parent discover_data_t data  ) 
 

Get the parent member of data.

Definition at line 330 of file device.c.

discover_data_t* discover_data_get_prev discover_data_t data  ) 
 

Get the prev member of data.

Definition at line 363 of file device.c.

char* discover_data_get_text discover_data_t data  ) 
 

Get the text member of data.

Definition at line 319 of file device.c.

discover_data_t* discover_data_new void   ) 
 

Create and initialize a new discover_data_t structure.

Definition at line 409 of file device.c.

Referenced by _discover_convert_device_data().

void discover_device_copy discover_device_t src,
discover_device_t dst
 

Copy a device structure.

Parameters:
src Copy from (source)
dst Copy to (destination)

Definition at line 268 of file device.c.

Referenced by discover_device_find(), and discover_xml_get_matching_devices().

discover_device_t* discover_device_find char *  discover_class,
discover_error_t status
 

Get a list of devices of a specified class on all buses scanned by default.

Parameters:
discover_class Class of devices to find
status Address in which to place status report

Definition at line 63 of file device.c.

References discover_error::code, discover_error::create_message, discover_conf_get_full_bus_map(), discover_device_copy(), discover_device_get_next(), discover_device_new(), DISCOVER_EDEVICENOTFOUND, discover_get_devices(), DISCOVER_SUCCESS, discover_xml_busclass_cmp(), and discover_xml_get_busclasses().

void discover_device_free discover_device_t devices,
int  free_data
 

Free the device or list of devices. Pass 1 as the second argument to free the data structure for this device, 0 to leave it. It is necessary to specify 0 when one structure was copied from another with discover_device_copy. Otherwise, you must pass 1.

Parameters:
devices Device or list of devices to free
free_data Whether to free the data structure

Definition at line 592 of file device.c.

References discover_data_free().

Referenced by discover_free_devices(), and discover_xml_free_devices().

char* discover_device_get_busclass discover_device_t device  ) 
 

Get the busclass member of device.

Definition at line 485 of file device.c.

char* discover_device_get_data discover_device_t device,
char *  discover_class,
char *  version,
discover_error_t status
 

Get the data matching the class path and version number (optional) from the device structure.

The class parameter requires further explanation. The XML data sources have hierarchical data elements for each device. You access the data in an element by specifying the path along the data elements to it.

For example, device elements for video cards usually have a data element of class "xfree86" containing data related to the XFree86 package; that element itself usually contains a data element of class "server" that specifies which server to use for this video card. You access this data by passing the string "xfree86/server" to this function.

Parameters:
device Device from which to get the data
discover_class Class to search for
version Version number to require (NULL for unversioned search)
status Address in which to place status report

Definition at line 204 of file device.c.

References discover_error::code.

discover_data_t* discover_device_get_data_struct discover_device_t device  ) 
 

Get the data member of device.

Definition at line 540 of file device.c.

char* discover_device_get_model_id discover_device_t device  ) 
 

Get the model_id member of device.

Definition at line 496 of file device.c.

char* discover_device_get_model_name discover_device_t device  ) 
 

Get the model_name member of device.

Definition at line 507 of file device.c.

discover_device_t* discover_device_get_next discover_device_t device  ) 
 

Get the next member of device.

Definition at line 551 of file device.c.

Referenced by discover_device_find().

char* discover_device_get_vendor_id discover_device_t device  ) 
 

Get the vendor_id member of device.

Definition at line 518 of file device.c.

char* discover_device_get_vendor_name discover_device_t device  ) 
 

Get the vendor_name member of device.

Definition at line 529 of file device.c.

discover_device_t* discover_device_new void   ) 
 

Create and initialize a new discover_device_t structure.

Definition at line 562 of file device.c.

Referenced by discover_device_find(), discover_get_devices(), and discover_xml_get_matching_devices().


Generated on Thu Jul 28 03:38:01 2005 for discover by  doxygen 1.4.2
discover-2.1.2/doc/api-reference/html/functions_vars.html0000644002342100234210000000476510655642004022165 0ustar perepere discover: Data Fields - Variables


Generated on Thu Jul 28 03:38:01 2005 for discover by  doxygen 1.4.2
discover-2.1.2/doc/api-reference/html/modules.html0000644002342100234210000000333010655642004020555 0ustar perepere discover: Module Index

discover Modules

Here is a list of all modules:
Generated on Thu Jul 28 03:38:01 2005 for discover by  doxygen 1.4.2
discover-2.1.2/doc/api-reference/html/core_8c.html0000644002342100234210000000733010655642004020433 0ustar perepere discover: /home/pere/src/debiancvs/pkg-discover/discover/trunk/lib/core.c File Reference

core.c File Reference

Core and miscellaneous routines. More...

#include "config.h"
#include <assert.h>
#include <discover/discover.h>
#include <discover/discover-xml.h>
#include <discover/utils.h>

Go to the source code of this file.

Functions

discover_error_tdiscover_error_new (void)
void * _discover_create_message (discover_error_t **status, char *message)
void discover_error_free (discover_error_t *status)
char * discover_strerror (discover_error_t *err)
int discover_major_version (void)
int discover_minor_version (void)
int discover_micro_version (void)


Detailed Description

Core and miscellaneous routines.

This file provides core routines that don't really fit anyplace else. There are likely some other routines that really should be in here.

Definition in file core.c.


Generated on Thu Jul 28 03:38:00 2005 for discover by  doxygen 1.4.2
discover-2.1.2/doc/api-reference/html/globals_enum.html0000644002342100234210000000364510655642004021565 0ustar perepere discover: Data Fields


Generated on Thu Jul 28 03:38:01 2005 for discover by  doxygen 1.4.2
discover-2.1.2/doc/api-reference/html/sysdep_8c.html0000644002342100234210000004215110655642004021012 0ustar perepere discover: /home/pere/src/debiancvs/pkg-discover/discover/trunk/lib/sysdep.c File Reference

sysdep.c File Reference

Interact with system dependencies. More...

#include <assert.h>
#include <stdio.h>
#include <string.h>
#include <discover/discover.h>
#include <discover/discover-conf.h>
#include <discover/discover-xml.h>
#include <discover/sysdep.h>
#include <discover/device.h>
#include <discover/utils.h>

Go to the source code of this file.

Typedefs

typedef discover_sysdep_data_t *( raw_sysdep_function_t )(void)

Functions

discover_sysdep_data_t_discover_sysdep_data_new (void)
discover_sysdep_device_data_t_discover_sysdep_device_data_new (void)
void _discover_free_sysdep_data (discover_sysdep_data_t *head)
void _discover_free_sysdep_device_data (discover_sysdep_device_data_t *head)
discover_data_t_discover_convert_device_data (discover_sysdep_device_data_t *head)
discover_device_tdiscover_get_devices (discover_bus_t bus, discover_error_t *status)
void discover_free_devices (void)


Detailed Description

Interact with system dependencies.

This file holds the routines that interact with the system-dependent interface. This file essentially bridges the gap between the XML data and the hardware contained within the machine.

Definition in file sysdep.c.


Typedef Documentation

typedef discover_sysdep_data_t*( raw_sysdep_function_t)(void)
 

Function pointers

Definition at line 49 of file sysdep.c.


Function Documentation

discover_data_t* _discover_convert_device_data discover_sysdep_device_data_t head  ) 
 

Convert sysdep device data into discover data under the "device" node.

Set up the toplevel data node.

Set up the first parent below "device" for this node.

Set up the token parser.

Split the node path by the path separator.

Set up the new data node.

Does this node have a predecessor in the path?

No; make it a child of the "device" node.

Yes; make it a child of the previous.

Clean up after the token parser.

Definition at line 135 of file sysdep.c.

References discover_data_new(), discover_sysdep_device_data::next, discover_sysdep_device_data::path, and discover_sysdep_device_data::value.

Referenced by discover_get_devices().

void _discover_free_sysdep_data discover_sysdep_data_t head  ) 
 

Release the memory that the sysdep data was holding.

Definition at line 92 of file sysdep.c.

References _discover_free_sysdep_device_data(), discover_sysdep_data::busclass, discover_sysdep_data::data, discover_sysdep_data::model, discover_sysdep_data::next, and discover_sysdep_data::vendor.

Referenced by discover_get_devices().

void _discover_free_sysdep_device_data discover_sysdep_device_data_t head  ) 
 

Release memory being held by device-specific data.

Definition at line 117 of file sysdep.c.

References discover_sysdep_device_data::next, discover_sysdep_device_data::path, and discover_sysdep_device_data::value.

Referenced by _discover_free_sysdep_data().

discover_sysdep_data_t* _discover_sysdep_data_new void   ) 
 

Create a new instance of sysdep data.

Definition at line 66 of file sysdep.c.

References discover_sysdep_data::busclass, discover_sysdep_data::data, discover_sysdep_data::model, discover_sysdep_data::next, and discover_sysdep_data::vendor.

discover_sysdep_device_data_t* _discover_sysdep_device_data_new void   ) 
 

Create a new instance of sysdep device data.

Definition at line 80 of file sysdep.c.

References discover_sysdep_device_data::next, discover_sysdep_device_data::path, and discover_sysdep_device_data::value.

void discover_free_devices void   ) 
 

Free the currently allocated memory holding the device information.

Definition at line 301 of file sysdep.c.

References BUS_COUNT, and discover_device_free().

discover_device_t* discover_get_devices discover_bus_t  bus,
discover_error_t status
 

Function responsible for returning a devicelist of current devices

Definition at line 206 of file sysdep.c.

References _discover_convert_device_data(), _discover_free_sysdep_data(), discover_error::code, discover_conf_get_bus_map(), discover_device_new(), DISCOVER_EBUSDISABLED, DISCOVER_SUCCESS, discover_xml_get_devices(), discover_xml_get_matching_devices(), discover_bus_map::get_raw, and discover_bus_map::scan_never.

Referenced by discover_device_find().


Generated on Thu Jul 28 03:38:01 2005 for discover by  doxygen 1.4.2
discover-2.1.2/doc/api-reference/html/structdiscover__sysdep__data.html0000644002342100234210000001742210655642004025055 0ustar perepere discover: discover_sysdep_data Struct Reference

discover_sysdep_data Struct Reference

#include <sysdep.h>


Data Fields

char * busclass
char * vendor
char * model
discover_sysdep_device_data_tdata
discover_sysdep_datanext


Detailed Description

Linked list node, used to return hardware-identification information discovered by the system-dependent interface

Definition at line 56 of file sysdep.h.


Field Documentation

char* discover_sysdep_data::busclass
 

String describing the general device class

Definition at line 58 of file sysdep.h.

Referenced by _discover_free_sysdep_data(), and _discover_sysdep_data_new().

discover_sysdep_device_data_t* discover_sysdep_data::data
 

Pointer to any sysdep/device specific data to be returned

Definition at line 64 of file sysdep.h.

Referenced by _discover_free_sysdep_data(), and _discover_sysdep_data_new().

char* discover_sysdep_data::model
 

String identifying the model

Definition at line 62 of file sysdep.h.

Referenced by _discover_free_sysdep_data(), and _discover_sysdep_data_new().

struct discover_sysdep_data* discover_sysdep_data::next
 

Pointer to the next hardware device discovered

Definition at line 66 of file sysdep.h.

Referenced by _discover_free_sysdep_data(), and _discover_sysdep_data_new().

char* discover_sysdep_data::vendor
 

String describing the manufacturer or distributor

Definition at line 60 of file sysdep.h.

Referenced by _discover_free_sysdep_data(), and _discover_sysdep_data_new().


The documentation for this struct was generated from the following file:
  • /home/pere/src/debiancvs/pkg-discover/discover/trunk/include/discover/sysdep.h

Generated on Thu Jul 28 03:38:01 2005 for discover by  doxygen 1.4.2
discover-2.1.2/doc/api-reference/html/functions.html0000644002342100234210000000513610655642004021123 0ustar perepere discover: Data Fields Here is a list of all documented struct and union fields with links to the struct/union documentation for each field:


Generated on Thu Jul 28 03:38:01 2005 for discover by  doxygen 1.4.2
discover-2.1.2/doc/api-reference/html/stack_8c-source.html0000644002342100234210000001571110655642004022110 0ustar perepere discover: /home/pere/src/debiancvs/pkg-discover/discover/trunk/lib/stack.c Source File

stack.c

Go to the documentation of this file.
00001 /* $Progeny$ */
00002 
00014 /*
00015  * AUTHOR: Josh Bressers <bressers@progeny.com>
00016  *
00017  * Copyright 2002 Progeny Linux Systems, Inc.
00018  *
00019  * Permission is hereby granted, free of charge, to any person obtaining a
00020  * copy of this software and associated documentation files (the "Software"),
00021  * to deal in the Software without restriction, including without limitation
00022  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
00023  * and/or sell copies of the Software, and to permit persons to whom the
00024  * Software is furnished to do so, subject to the following conditions:
00025  *
00026  * The above copyright notice and this permission notice shall be included in
00027  * all copies or substantial portions of the Software.
00028  *
00029  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
00030  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
00031  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
00032  * THE COPYRIGHT HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
00033  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
00034  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
00035  * DEALINGS IN THE SOFTWARE.
00036  */
00037 
00038 #include <stdio.h>
00039 #include <assert.h>
00040 #include <stdbool.h>
00041 #include <stdlib.h>
00042 
00043 #include <discover/utils.h>
00044 #include <discover/stack.h>
00045 
00046 
00048 discover_xml_stack * discover_xml_stack_new()
00049 {
00050     discover_xml_stack *stack;
00051     stack = (discover_xml_stack *) _discover_xmalloc(sizeof(discover_xml_stack));
00052     assert(stack != NULL);
00053 
00054     stack->prev = NULL;
00055     stack->data = NULL;
00056     stack->depth = 0;
00057 
00058     return stack;
00059 }
00060 
00062 void discover_xml_stack_destroy(discover_xml_stack *stack)
00063 {
00064     free(stack);
00065 }
00066 
00068 void
00069 discover_xml_stack_push(discover_xml_stack **stack, void *data)
00070 {
00071     discover_xml_stack *new_stack;
00072 
00073     new_stack = discover_xml_stack_new();
00074 
00075 
00076     new_stack->prev = *stack;
00077     new_stack->data = data;
00078     new_stack->depth = (*stack)->depth + 1;
00079     *stack = new_stack;
00080 }
00081 
00083 void * discover_xml_stack_pop(discover_xml_stack **stack)
00084 {
00085     void *ctx;
00086     discover_xml_stack *oldstack;
00087 
00088     if((*stack)->prev == 0) {
00089         return NULL;
00090     }
00091 
00092     oldstack = *stack;
00093     ctx = (*stack)->data;
00094 
00095     *stack = (*stack)->prev;
00096     (*stack)->depth = oldstack->depth - 1;
00097     discover_xml_stack_destroy(oldstack);
00098 
00099     return ctx;
00100 }
00101 
00103 void * discover_xml_stack_get(discover_xml_stack *stack)
00104 {
00105         return stack->data;
00106 }
00107 
00109 void * discover_xml_stack_getbynum(discover_xml_stack *stack, int i)
00110 {
00111     discover_xml_stack *S;
00112 
00113     S = stack;
00114     while(S->depth < i) {
00115         S = stack->prev;
00116     }
00117     return S->data;
00118 }
00119 
00120 /*
00121  * Local variables:
00122  * c-file-style: "progeny"
00123  * indent-tabs-mode: nil
00124  * End:
00125  */
00126 /* vim: set cin fo=tcroq sw=4 et sts=4 tw=75: */

Generated on Thu Jul 28 03:38:00 2005 for discover by  doxygen 1.4.2
discover-2.1.2/doc/api-reference/html/dirs.html0000644002342100234210000000256210655642004020054 0ustar perepere discover: Directory Hierarchy

discover Directories

This directory hierarchy is sorted roughly, but not completely, alphabetically:
Generated on Thu Jul 28 03:38:01 2005 for discover by  doxygen 1.4.2
discover-2.1.2/doc/api-reference/html/url-xml_8c.html0000644002342100234210000001635610655642004021113 0ustar perepere discover: /home/pere/src/debiancvs/pkg-discover/discover/trunk/lib/url-xml.c File Reference

url-xml.c File Reference

XML URL handling. More...

#include "config.h"
#include <assert.h>
#include <string.h>
#include <expat.h>
#include <discover/discover.h>
#include <discover/discover-conf.h>
#include <discover/discover-xml.h>
#include <discover/load-url.h>
#include <discover/url-xml.h>
#include <discover/utils.h>

Go to the source code of this file.

Enumerations

enum  state { START, DISCOVER_DATA }

Functions

discover_xml_url_tdiscover_xml_get_urls (discover_error_t *status)
void discover_xml_free_urls (void)
discover_xml_url_tdiscover_xml_get_data_urls (discover_bus_t bus, discover_filetype_t filetype, discover_error_t *status)
void discover_xml_free_data_urls (void)
discover_xml_url_tdiscover_xml_url_new (void)
void discover_xml_url_copy (discover_xml_url_t *src, discover_xml_url_t *dst)
char * discover_xml_url_get_url (discover_xml_url_t *url)
char * discover_xml_url_get_label (discover_xml_url_t *url)
char * discover_xml_url_get_bus (discover_xml_url_t *url)
char * discover_xml_url_get_type (discover_xml_url_t *url)
discover_xml_url_tdiscover_xml_url_get_next (discover_xml_url_t *url)
discover_xml_url_tdiscover_xml_url_get_last (discover_xml_url_t *url)
void discover_xml_url_free (discover_xml_url_t *urls)


Detailed Description

XML URL handling.

This file is used when loading data about the URLs to be parsed. This data will be read from a file, either specified from the configuration file or passed in as an append or insert.

Definition in file url-xml.c.


Enumeration Type Documentation

enum state
 

Define possible states within the XML data.

Definition at line 52 of file url-xml.c.


Generated on Thu Jul 28 03:38:01 2005 for discover by  doxygen 1.4.2
discover-2.1.2/doc/api-reference/html/globals_eval.html0000644002342100234210000000431510655642004021543 0ustar perepere discover: Data Fields


Generated on Thu Jul 28 03:38:01 2005 for discover by  doxygen 1.4.2
discover-2.1.2/doc/api-reference/html/structdiscover__error.html0000644002342100234210000001653110655642004023547 0ustar perepere discover: discover_error Struct Reference

discover_error Struct Reference
[Types]

#include <discover.h>


Data Fields

discover_error_code_t code
char * message
discover_create_message_tcreate_message


Detailed Description

All functions that perform some action (as opposed to returning a member of a structure, for example) take an argument of this type. It is used to report that the action succeeded, or why it failed.

Definition at line 106 of file discover.h.


Field Documentation

discover_error_code_t discover_error::code
 

Return the error code value that is checked

Definition at line 108 of file discover.h.

Referenced by _real_discover_conf_get_bus_map(), _real_discover_conf_get_bus_map_by_name(), discover_conf_append_url(), discover_conf_get_bus_map(), discover_conf_get_bus_map_by_name(), discover_conf_get_urls(), discover_conf_insert_url(), discover_conf_load(), discover_conf_name_to_bus(), discover_device_find(), discover_device_get_data(), discover_error_new(), discover_get_devices(), discover_strerror(), discover_xml_get_busclasses(), discover_xml_get_data_urls(), discover_xml_get_devices(), discover_xml_get_urls(), discover_xml_get_vendors(), discover_xml_merge_busclass_url(), discover_xml_merge_device_url(), discover_xml_merge_vendor_url(), and discover_xml_version_cmp().

discover_create_message_t* discover_error::create_message
 

Function pointer into a routine to create a message for us

Definition at line 112 of file discover.h.

Referenced by discover_conf_load(), discover_device_find(), and discover_error_new().

char* discover_error::message
 

String containing the message from the last error

Definition at line 110 of file discover.h.

Referenced by discover_error_free(), and discover_error_new().


The documentation for this struct was generated from the following file:
  • /home/pere/src/debiancvs/pkg-discover/discover/trunk/include/discover/discover.h

Generated on Thu Jul 28 03:38:01 2005 for discover by  doxygen 1.4.2
discover-2.1.2/doc/api-reference/html/device_8c-source.html0000644002342100234210000007151710655642004022250 0ustar perepere discover: /home/pere/src/debiancvs/pkg-discover/discover/trunk/lib/device.c Source File

device.c

Go to the documentation of this file.
00001 
00011 /* $Progeny$
00012  *
00013  * Copyright 2001, 2002 Progeny Linux Systems, Inc.
00014  * Copyright 2002 Hewlett-Packard Company
00015  *
00016  * Permission is hereby granted, free of charge, to any person obtaining a
00017  * copy of this software and associated documentation files (the "Software"),
00018  * to deal in the Software without restriction, including without limitation
00019  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
00020  * and/or sell copies of the Software, and to permit persons to whom the
00021  * Software is furnished to do so, subject to the following conditions:
00022  *
00023  * The above copyright notice and this permission notice shall be included in
00024  * all copies or substantial portions of the Software.
00025  *
00026  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
00027  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
00028  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
00029  * THE COPYRIGHT HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
00030  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
00031  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
00032  * DEALINGS IN THE SOFTWARE.
00033  */
00034 
00035 #include "config.h"
00036 
00037 #include <sys/types.h>
00038 
00039 #include <assert.h>
00040 #include <stdbool.h>
00041 #include <string.h>
00042 
00043 #include <discover/discover.h>
00044 #include <discover/discover-conf.h>
00045 #include <discover/discover-xml.h>
00046 
00047 #include <discover/device.h>
00048 #include <discover/utils.h>
00049 
00062 discover_device_t *
00063 discover_device_find(char *discover_class, discover_error_t *status)
00064 {
00065     discover_device_t *result, *device, *last, *new_device;
00066     discover_xml_busclass_t *busclasses;
00067     discover_bus_map_t *busmap;
00068     int i;
00069 
00070     assert(discover_class);
00071 
00072     result = last = NULL;
00073 
00074     busmap = discover_conf_get_full_bus_map(status);
00075     if (status->code != 0) {
00076         return NULL;
00077     }
00078 
00079     for (i = 0; busmap[i].name; i++) {
00080         if (!busmap[i].scan_default) {
00081             continue;
00082         }
00083 
00084         busclasses = discover_xml_get_busclasses(i, status);
00085         if (status->code != 0) {
00086             return result;
00087         }
00088         for (device = discover_get_devices(i, status);
00089              device;
00090              device = discover_device_get_next(device)) {
00091             if (!device->busclass) {
00092                 /* This is a device about which we know nothing. */
00093                 continue;
00094             }
00095             if (discover_xml_busclass_cmp(device->busclass, discover_class,
00096                                           busclasses) == 0) {
00097                 new_device = discover_device_new();
00098                 discover_device_copy(device, new_device);
00099                 new_device->next = NULL;
00100 
00101                 if (last) {
00102                     last->next = new_device;
00103                     last = new_device;
00104                 } else {
00105                     result = last = new_device;
00106                 }
00107             }
00108         }
00109 
00110         if (status->code != 0) {
00111             return result;
00112         }
00113     }
00114 
00115     if (result) {
00116         status->code = DISCOVER_SUCCESS;
00117     } else {
00118         char *message = _discover_xmalloc(100);
00119         snprintf(message, 100, "Device \"%s\" not found",
00120                     discover_class);
00121         status->code = DISCOVER_EDEVICENOTFOUND;
00122         status->create_message(&status, message);
00123     }
00124 
00125     return result;
00126 }
00127 
00128 static discover_data_t *
00129 scan_data_list(discover_data_t *node, char *discover_class, char **version,
00130                discover_error_t *status)
00131 {
00132     discover_data_t *result = NULL;
00133     int cmp;
00134 
00135     for ( ; node != NULL; node = node->next) {
00136         if (strcmp(node->discover_class, discover_class) == 0) {
00137             if (*version && node->version) {
00138                 cmp = discover_xml_version_cmp(node->version,
00139                                                *version, status);
00140 
00141                 if (status->code != 0) {
00142                     return result;
00143                 }
00144                 if (cmp) {
00145                     result = node;
00146                     /* The version is no longer relevant for nested data
00147                      * elements.
00148                      */
00149                     *version = NULL;
00150                     break;
00151                 }
00152             } else {
00153                 result = node;
00154                 break;
00155             }
00156         }
00157     }
00158     return result;
00159 }
00160 
00161 
00162 static discover_data_t *
00163 get_data(discover_device_t *device, char *discover_class, char **version,
00164          discover_error_t *status)
00165 {
00166     assert(device != NULL);
00167     assert(discover_class != NULL);
00168 
00169     return scan_data_list(device->data, discover_class, version, status);
00170 }
00171 
00172 static discover_data_t *
00173 get_child_data(discover_data_t *data, char *discover_class, char **version,
00174                discover_error_t *status)
00175 {
00176     assert(data != NULL);
00177     assert(discover_class != NULL);
00178 
00179     return scan_data_list(data->child, discover_class, version, status);
00180 }
00181 
00203 char *
00204 discover_device_get_data(discover_device_t *device, char *discover_class,
00205                          char *version, discover_error_t *status)
00206 {
00207     discover_data_t *data;
00208     char *result, *tmp, *tmp_orig, **argv, *block;
00209     size_t argv_len;
00210     int i;
00211 
00212     assert(device != NULL);
00213     assert(discover_class != NULL);
00214     assert(status != NULL);
00215 
00216     status->code = 0;
00217 
00218     data = NULL;
00219     result = NULL;
00220     tmp_orig = tmp = _discover_xstrdup(discover_class);
00221     argv = NULL;
00222     argv_len = 0;
00223 
00224     while ((block = strsep(&tmp, "/"))) {
00225         argv_len++;
00226         argv = _discover_xrealloc(argv, sizeof(char *) * argv_len);
00227         argv[argv_len - 1] = block;
00228     }
00229 
00230 
00231     while(!data && device) {
00232         data = get_data(device, argv[0], &version, status);
00233 
00234         if (data) {
00235             for (i = 1; i < argv_len; i++) {
00236                 data = get_child_data(data, argv[i], &version, status);
00237                 if (status->code != 0) {
00238                     goto out;
00239                 }
00240                 if (!data) {
00241                     break;
00242                 }
00243             }
00244         }
00245 
00246         device = device->extra;
00247     }
00248 
00249     if (data) {
00250         result = data->text;
00251     }
00252 
00253 out:
00254 
00255     free(tmp_orig);
00256     free(argv);
00257 
00258     return result;
00259 }
00260 
00267 void
00268 discover_device_copy(discover_device_t *src, discover_device_t *dst)
00269 {
00270     assert(src != NULL);
00271     assert(dst != NULL);
00272 
00273     if (src->busclass) {
00274         dst->busclass = _discover_xstrdup(src->busclass);
00275     }
00276 
00277     if (src->model_id) {
00278         dst->model_id = _discover_xstrdup(src->model_id);
00279     }
00280 
00281     if (src->model_name) {
00282         dst->model_name = _discover_xstrdup(src->model_name);
00283     }
00284 
00285     if (src->vendor_id) {
00286         dst->vendor_id = _discover_xstrdup(src->vendor_id);
00287     }
00288 
00289     if (src->vendor_name) {
00290         dst->vendor_name = _discover_xstrdup(src->vendor_name);
00291     }
00292 
00293     dst->busclasses = src->busclasses;
00294     dst->vendors = src->vendors;
00295     dst->data = src->data;
00296     dst->extra = src->extra;
00297     dst->next = src->next;
00298 }
00299 
00300 /******************************************************************************
00301  * Data accessors
00302  */
00303 
00307 char *
00308 discover_data_get_class(discover_data_t *data)
00309 {
00310     assert(data != NULL);
00311 
00312     return data->discover_class;
00313 }
00314 
00318 char *
00319 discover_data_get_text(discover_data_t *data)
00320 {
00321     assert(data != NULL);
00322 
00323     return data->text;
00324 }
00325 
00329 discover_data_t *
00330 discover_data_get_parent(discover_data_t *data)
00331 {
00332     assert(data != NULL);
00333 
00334     return data->parent;
00335 }
00336 
00340 discover_data_t *
00341 discover_data_get_child(discover_data_t *data)
00342 {
00343     assert(data != NULL);
00344 
00345     return data->child;
00346 }
00347 
00351 discover_data_t *
00352 discover_data_get_next(discover_data_t *data)
00353 {
00354     assert(data != NULL);
00355 
00356     return data->next;
00357 }
00358 
00362 discover_data_t *
00363 discover_data_get_prev(discover_data_t *data)
00364 {
00365     assert(data != NULL);
00366 
00367     return data->prev;
00368 }
00369 
00373 discover_data_t *
00374 discover_data_get_first(discover_data_t *data)
00375 {
00376     int i = 1;
00377 
00378     if (data == NULL) {
00379         return NULL;
00380     }
00381 
00382     while(i) {
00383         if(data->prev) {
00384             data = data->prev;
00385         } else if(data->parent) {
00386             data = data->parent;
00387         } else {
00388             i = 0;
00389         }
00390     }
00391 /*
00392 
00393     for (;
00394          data->prev;
00395          data = data->prev)
00396     ;
00397     for (;
00398          data->parent;
00399          data = data->parent)
00400     ;
00401 */
00402     return data;
00403 }
00404 
00408 discover_data_t *
00409 discover_data_new(void)
00410 {
00411     discover_data_t *new;
00412 
00413     new = _discover_xmalloc(sizeof(discover_data_t));
00414 
00415     new->discover_class = NULL;
00416     new->version = NULL;
00417     new->text = NULL;
00418     new->parent = NULL;
00419     new->child = NULL;
00420     new->next = NULL;
00421     new->prev = NULL;
00422 
00423     return new;
00424 }
00425 
00435 void
00436 discover_data_free(discover_data_t *data_tree)
00437 {
00438     discover_data_t *data, *last;
00439 
00440     last = NULL;
00441 
00442     if (data_tree) {
00443         for (data = data_tree->next;
00444              data;
00445              data = data->next) {
00446             discover_data_free(data);
00447 
00448             if (last) {
00449                 free(last);
00450             }
00451             last = data;
00452         }
00453 
00454         if (last) {
00455             free(last);
00456         }
00457 
00458         if (data_tree->child) {
00459             discover_data_free(data_tree->child);
00460             free(data_tree->child);
00461         }
00462 
00463         if (data_tree->discover_class) {
00464             free(data_tree->discover_class);
00465         }
00466 
00467         if (data_tree->version) {
00468             free(data_tree->version);
00469         }
00470 
00471         if (data_tree->text) {
00472             free(data_tree->text);
00473         }
00474     }
00475 }
00476 
00477 /******************************************************************************
00478  * Device accessors
00479  */
00480 
00484 char *
00485 discover_device_get_busclass(discover_device_t *device)
00486 {
00487     assert(device != NULL);
00488 
00489     return device->busclass;
00490 }
00491 
00495 char *
00496 discover_device_get_model_id(discover_device_t *device)
00497 {
00498     assert(device != NULL);
00499 
00500     return device->model_id;
00501 }
00502 
00506 char *
00507 discover_device_get_model_name(discover_device_t *device)
00508 {
00509     assert(device != NULL);
00510 
00511     return device->model_name;
00512 }
00513 
00517 char *
00518 discover_device_get_vendor_id(discover_device_t *device)
00519 {
00520     assert(device != NULL);
00521 
00522     return device->vendor_id;
00523 }
00524 
00528 char *
00529 discover_device_get_vendor_name(discover_device_t *device)
00530 {
00531     assert(device != NULL);
00532 
00533     return device->vendor_name;
00534 }
00535 
00539 discover_data_t *
00540 discover_device_get_data_struct(discover_device_t *device)
00541 {
00542     assert(device != NULL);
00543 
00544     return device->data;
00545 }
00546 
00550 discover_device_t *
00551 discover_device_get_next(discover_device_t *device)
00552 {
00553     assert(device != NULL);
00554 
00555     return device->next;
00556 }
00557 
00561 discover_device_t *
00562 discover_device_new(void)
00563 {
00564     discover_device_t *new;
00565 
00566     new = _discover_xmalloc(sizeof(discover_device_t));
00567 
00568     new->busclass = NULL;
00569     new->model_id = NULL;
00570     new->model_name = NULL;
00571     new->vendor_id = NULL;
00572     new->vendor_name = NULL;
00573     new->busclasses = NULL;
00574     new->vendors = NULL;
00575     new->data = NULL;
00576     new->next = NULL;
00577     new->extra = NULL;
00578 
00579     return new;
00580 }
00581 
00591 void
00592 discover_device_free(discover_device_t *devices, int free_data)
00593 {
00594     discover_device_t *device, *last;
00595 
00596     last = NULL;
00597 
00598     for (device = devices;
00599          device;
00600          device = device->next) {
00601         if (device->busclass) {
00602             free(device->busclass);
00603         }
00604 
00605         if (device->model_id) {
00606             free(device->model_id);
00607         }
00608 
00609         if (device->model_name) {
00610             free(device->model_name);
00611         }
00612 
00613         if (device->vendor_id) {
00614             free(device->vendor_id);
00615         }
00616 
00617         if (device->vendor_name) {
00618             free(device->vendor_name);
00619         }
00620 
00621         if (free_data && device->data) {
00622             discover_data_free(device->data);
00623             free(device->data);
00624         }
00625 
00626         if (last) {
00627             free(last);
00628         }
00629         last = device;
00630     }
00631 
00632     if (last) {
00633         free(last);
00634     }
00635 }
00636 
00639 /*
00640  * Local variables:
00641  * c-file-style: "progeny"
00642  * indent-tabs-mode: nil
00643  * End:
00644  */
00645 /* vim: set cin fo=tcroq sw=4 et sts=4 tw=75: */

Generated on Thu Jul 28 03:38:00 2005 for discover by  doxygen 1.4.2
discover-2.1.2/doc/api-reference/html/url-xml_8c-source.html0000644002342100234210000005566110655642004022413 0ustar perepere discover: /home/pere/src/debiancvs/pkg-discover/discover/trunk/lib/url-xml.c Source File

url-xml.c

Go to the documentation of this file.
00001 
00010 /* $Progeny$
00011  *
00012  * AUTHOR: John R. Daily <jdaily@progeny.com>
00013  *
00014  * Copyright 2002 Progeny Linux Systems, Inc.
00015  * Copyright 2002 Hewlett-Packard Company
00016  *
00017  * Permission is hereby granted, free of charge, to any person obtaining a
00018  * copy of this software and associated documentation files (the "Software"),
00019  * to deal in the Software without restriction, including without limitation
00020  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
00021  * and/or sell copies of the Software, and to permit persons to whom the
00022  * Software is furnished to do so, subject to the following conditions:
00023  *
00024  * The above copyright notice and this permission notice shall be included in
00025  * all copies or substantial portions of the Software.
00026  *
00027  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
00028  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
00029  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
00030  * THE COPYRIGHT HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
00031  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
00032  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
00033  * DEALINGS IN THE SOFTWARE.
00034  */
00035 
00036 #include "config.h"
00037 
00038 #include <assert.h>
00039 #include <string.h>
00040 
00041 #include <expat.h>
00042 
00043 #include <discover/discover.h>
00044 #include <discover/discover-conf.h>
00045 #include <discover/discover-xml.h>
00046 
00047 #include <discover/load-url.h>
00048 #include <discover/url-xml.h>
00049 #include <discover/utils.h>
00050 
00052 enum state { START, DISCOVER_DATA };
00053 struct context {
00054     enum state state;
00055 
00056     discover_xml_url_t *urls;
00057     int unknown_level; /* How deep are we into unknown XML tags? */
00058 };
00059 
00060 static discover_xml_url_t *xml_urls = NULL;
00061 static discover_xml_url_t *data_urls[BUS_COUNT][3];
00062 
00063 static char *known_url_elements[] = {
00064     "location",
00065     "discover-data",
00066     NULL
00067 };
00068 
00069 
00070 static bool
00071 unknown_url_element(const XML_Char * const tag)
00072 {
00073     int i;
00074     for (i = 0; known_url_elements[i] != NULL; i++) {
00075         if (strcmp(tag, known_url_elements[i]) == 0)
00076             return false;
00077     }
00078     return true;
00079 }
00080 
00081 static void
00082 add_location(struct context *context, const XML_Char *attrs[])
00083 {
00084     discover_xml_url_t *new;
00085     int i;
00086 
00087     assert(context != NULL);
00088     assert(attrs != NULL);
00089 
00090     new = discover_xml_url_new();
00091 
00092     for (i = 0; attrs[i]; i += 2) {
00093         if (strcmp(attrs[i], "url") == 0) {
00094             new->url = _discover_xstrdup(attrs[i + 1]);
00095         } else if (strcmp(attrs[i], "bus") == 0) {
00096             new->bus = _discover_xstrdup(attrs[i + 1]);
00097         } else if (strcmp(attrs[i], "type") == 0) {
00098             new->type = _discover_xstrdup(attrs[i + 1]);
00099         }
00100     }
00101 
00102     if (context->urls) {
00103         if (context->urls->last) {
00104             context->urls->last->next = new;
00105         } else {
00106             context->urls->next = new;
00107         }
00108         context->urls->last = new;
00109     } else {
00110         context->urls = new;
00111         context->urls->next = context->urls->last = NULL;
00112     }
00113 }
00114 
00115 static void
00116 start_element(void *ctx, const XML_Char *name, const XML_Char *attrs[])
00117 {
00118     struct context *context = ctx;
00119 
00120     assert(context != NULL);
00121     assert(name != NULL);
00122 
00123     if (unknown_url_element(name)) {
00124         context->unknown_level++;
00125         return;
00126     }
00127 
00128     if (context->unknown_level > 0) {
00129         return;
00130     }
00131 
00132     switch (context->state) {
00133     case START:
00134         if (strcmp(name, "discover-data") == 0) {
00135             context->state = DISCOVER_DATA;
00136         }
00137         break;
00138 
00139     case DISCOVER_DATA:
00140         if (strcmp(name, "location") == 0) {
00141             add_location(context, attrs);
00142         }
00143         break;
00144     }
00145 }
00146 
00147 static void
00148 end_element(void *ctx, const XML_Char *name)
00149 {
00150     struct context *context = ctx;
00151 
00152     assert(context != NULL);
00153     assert(name != NULL);
00154 
00155     if (unknown_url_element(name)) {
00156         context->unknown_level--;
00157         return;
00158     }
00159 
00160     if (context->unknown_level > 0) {
00161         return;
00162     }
00163 
00164     /*
00165      * We don't have any end tags to worry about, but if we did, they
00166      * would be handled here.
00167      */
00168 }
00169 
00181 discover_xml_url_t *
00182 discover_xml_get_urls(discover_error_t *status)
00183 {
00184     discover_xml_url_t *urls, *i;
00185     XML_Parser parser;
00186     struct context context;
00187     int loaded_urls = 0;
00188 
00189     assert(status != NULL);
00190 
00191     status->code = 0;
00192 
00193     if (!xml_urls) {
00194         context.state = START;
00195         context.urls = NULL;
00196         context.unknown_level = 0;
00197 
00198         urls = discover_conf_get_urls(status);
00199         if (status->code != 0) {
00200             return NULL;
00201         }
00202 
00203         for (i = urls;
00204              i;
00205              i = i->next) {
00206             parser = XML_ParserCreate(NULL);
00207             XML_SetElementHandler(parser, start_element, end_element);
00208             XML_SetUserData(parser, &context);
00209 
00210             if (_discover_load_url(i->url, parser)) {
00211                 loaded_urls++;
00212             }
00213 
00214         }
00215 
00216         if (loaded_urls == 0) {
00217             discover_xml_url_free(context.urls);
00218             XML_ParserFree(parser);
00219             status->code = DISCOVER_EIO;
00220             return NULL;
00221         }
00222 
00223         if (!XML_Parse(parser, "", 0, 1)) {
00224             status->code = DISCOVER_EXML;
00225         }
00226 
00227         XML_ParserFree(parser);
00228         xml_urls = context.urls;
00229 
00230         /* This must be done here because there could be bogus status left
00231          * over from the XML_Parse check above.  (We assume something good
00232          * happened by this point.)
00233          */
00234         status->code = 0;
00235     }
00236 
00237     return xml_urls;
00238 }
00239 
00243 void
00244 discover_xml_free_urls(void)
00245 {
00246     if (xml_urls) {
00247         discover_xml_url_free(xml_urls);
00248         xml_urls = NULL;
00249     }
00250 }
00251 
00260 discover_xml_url_t *
00261 discover_xml_get_data_urls(discover_bus_t bus, discover_filetype_t filetype,
00262                            discover_error_t *status)
00263 {
00264     discover_xml_url_t *urls, *i, *new;
00265     char *busname = discover_conf_get_bus_name(bus);
00266     char *filetypename = discover_conf_get_filetype_name(filetype);
00267 
00268     assert(status != NULL);
00269     assert(busname != NULL);
00270 
00271     status->code = 0;
00272 
00273     if (!data_urls[bus][filetype]) {
00274         urls = discover_xml_get_urls(status);
00275         if (status->code != 0) {
00276             return NULL;
00277         }
00278 
00279         status->code = DISCOVER_EDATANOTFOUND;
00280         for (i = urls;
00281              i;
00282              i = i->next) {
00283             if (strcmp(i->bus, busname) == 0
00284                 && strcmp(i->type, filetypename) == 0) {
00285 
00286                 status->code = 0;
00287 
00288                 new = discover_xml_url_new();
00289                 discover_xml_url_copy(i, new);
00290 
00291                 if (data_urls[bus][filetype]) {
00292                     data_urls[bus][filetype]->last->next = new;
00293                     data_urls[bus][filetype]->last = new;
00294                 } else {
00295                     data_urls[bus][filetype] = new;
00296                     data_urls[bus][filetype]->last = new;
00297                     data_urls[bus][filetype]->next = NULL;
00298                 }
00299             }
00300         }
00301     }
00302 
00303     return data_urls[bus][filetype];
00304 }
00305 
00309 void
00310 discover_xml_free_data_urls(void)
00311 {
00312     int b, f;
00313 
00314     for(b = 0; b < BUS_COUNT; b++) {
00315         for(f = 0; f < 3; f++) {
00316             discover_xml_url_free(data_urls[b][f]);
00317             data_urls[b][f] = NULL;
00318         }
00319     }
00320 }
00321 
00325 discover_xml_url_t *
00326 discover_xml_url_new(void)
00327 {
00328     discover_xml_url_t *new;
00329 
00330     new = _discover_xmalloc(sizeof(discover_xml_url_t));
00331 
00332     new->url = NULL;
00333     new->bus = NULL;
00334     new->type = NULL;
00335     new->label = NULL;
00336     new->next = NULL;
00337     new->last = NULL;
00338 
00339     return new;
00340 }
00341 
00348 void
00349 discover_xml_url_copy(discover_xml_url_t *src,
00350                       discover_xml_url_t *dst)
00351 {
00352     assert(src != NULL);
00353     assert(dst != NULL);
00354 
00355     if (src->url) {
00356         dst->url = _discover_xstrdup(src->url);
00357     }
00358 
00359     if (src->bus) {
00360         dst->bus = _discover_xstrdup(src->bus);
00361     }
00362 
00363     if (src->type) {
00364         dst->type = _discover_xstrdup(src->type);
00365     }
00366 
00367     if (src->label) {
00368         dst->label = _discover_xstrdup(src->label);
00369     }
00370 }
00371 
00375 char *
00376 discover_xml_url_get_url(discover_xml_url_t *url)
00377 {
00378     assert(url != NULL);
00379 
00380     return url->url;
00381 }
00382 
00386 char *
00387 discover_xml_url_get_label(discover_xml_url_t *url)
00388 {
00389     assert(url != NULL);
00390 
00391     return url->label;
00392 }
00393 
00397 char *
00398 discover_xml_url_get_bus(discover_xml_url_t *url)
00399 {
00400     assert(url != NULL);
00401 
00402     return url->bus;
00403 }
00404 
00408 char *
00409 discover_xml_url_get_type(discover_xml_url_t *url)
00410 {
00411     assert(url != NULL);
00412 
00413     return url->type;
00414 }
00415 
00419 discover_xml_url_t *
00420 discover_xml_url_get_next(discover_xml_url_t *url)
00421 {
00422     assert(url != NULL);
00423 
00424     return url->next;
00425 }
00426 
00430 discover_xml_url_t *
00431 discover_xml_url_get_last(discover_xml_url_t *url)
00432 {
00433     assert(url != NULL);
00434 
00435     return url->last;
00436 }
00437 
00443 void
00444 discover_xml_url_free(discover_xml_url_t *urls)
00445 {
00446     discover_xml_url_t *url, *last;
00447 
00448     last = NULL;
00449 
00450     for (url = urls;
00451          url;
00452          url = url->next) {
00453         if (url->url) {
00454             free(url->url);
00455         }
00456 
00457         if (url->bus) {
00458             free(url->bus);
00459         }
00460 
00461         if (url->type) {
00462             free(url->type);
00463         }
00464 
00465         if (url->label) {
00466             free(url->label);
00467         }
00468 
00469         if (last) {
00470             free(last);
00471         }
00472         last = url;
00473     }
00474 
00475     if (last) {
00476         free(last);
00477     }
00478 }
00479 

Generated on Thu Jul 28 03:38:00 2005 for discover by  doxygen 1.4.2
discover-2.1.2/doc/api-reference/html/discover-xml_8h.html0000644002342100234210000003507410655642004022132 0ustar perepere discover: /home/pere/src/debiancvs/pkg-discover/discover/trunk/include/discover/discover-xml.h File Reference

discover-xml.h File Reference

Public interface to Discover's XML handling. More...

#include <discover/discover.h>

Go to the source code of this file.

Functions

discover_device_tdiscover_xml_find_device (discover_device_t *xml_devices, char *target_vendor, char *target_model, discover_error_t *status)
discover_device_tdiscover_xml_find_next_device (discover_device_t *xml_devices, char *target_vendor, char *target_model, discover_error_t *status)
discover_device_tdiscover_xml_get_matching_devices (discover_device_t *xml_devices, char *target_vendor, char *target_model, discover_error_t *status)
int discover_xml_version_cmp (char *range, char *version, discover_error_t *status)
discover_xml_url_tdiscover_xml_url_new (void)
void discover_xml_url_copy (discover_xml_url_t *src, discover_xml_url_t *dst)
void discover_xml_url_free (discover_xml_url_t *urls)
char * discover_xml_url_get_url (discover_xml_url_t *url)
char * discover_xml_url_get_bus (discover_xml_url_t *url)
char * discover_xml_url_get_type (discover_xml_url_t *url)
discover_xml_url_tdiscover_xml_url_get_next (discover_xml_url_t *url)
discover_xml_url_tdiscover_xml_url_get_last (discover_xml_url_t *url)
char * discover_xml_url_get_label (discover_xml_url_t *url)
discover_xml_url_tdiscover_xml_get_urls (discover_error_t *status)
void discover_xml_free_urls (void)
discover_xml_url_tdiscover_xml_get_data_urls (discover_bus_t bus, discover_filetype_t filetype, discover_error_t *status)
void discover_xml_free_data_urls (void)
discover_xml_busclass_tdiscover_xml_busclass_new (void)
discover_xml_busclass_tdiscover_xml_get_busclasses (discover_bus_t bus, discover_error_t *status)
void discover_xml_free_busclasses (void)
void discover_xml_merge_busclass_url (discover_xml_busclass_t **blist, char *filename, discover_error_t *status)
char * discover_xml_busclass_to_class (char *busclass, discover_xml_busclass_t *busclasses)
int discover_xml_busclass_cmp (char *busclass, char *discover_class, discover_xml_busclass_t *busclasses)
char * discover_xml_busclass_get_id (discover_xml_busclass_t *busclass)
char * discover_xml_busclass_get_name (discover_xml_busclass_t *busclass)
discover_xml_busclass_tdiscover_xml_busclass_get_next (discover_xml_busclass_t *busclass)
void discover_xml_busclass_free (discover_xml_busclass_t *busclasses)
discover_device_tdiscover_xml_get_devices (discover_bus_t bus, discover_error_t *status)
void discover_xml_free_devices (void)
void discover_xml_merge_device_url (discover_device_t **dlist, char *url, discover_xml_busclass_t *busclasses, discover_xml_vendor_t *vendors, discover_error_t *status)
discover_xml_vendor_tdiscover_xml_vendor_new (void)
void discover_xml_merge_vendor_url (discover_xml_vendor_t **vlist, char *filename, discover_error_t *status)
discover_xml_vendor_tdiscover_xml_get_vendors (discover_bus_t bus, discover_error_t *status)
void discover_xml_free_vendors (void)
char * discover_xml_vendor_id2name (discover_xml_vendor_t *vendors, char *id)
char * discover_xml_vendor_get_id (discover_xml_vendor_t *vendor)
char * discover_xml_vendor_get_name (discover_xml_vendor_t *vendor)
discover_xml_vendor_tdiscover_xml_vendor_get_next (discover_xml_vendor_t *vendor)
void discover_xml_vendor_free (discover_xml_vendor_t *vendors)


Detailed Description

Public interface to Discover's XML handling.

Public interface that exposes Discover's XML routines. These functions are used to read the XML data loaded from the specified configuration file(s).

Definition in file discover-xml.h.


Generated on Thu Jul 28 03:38:00 2005 for discover by  doxygen 1.4.2
discover-2.1.2/doc/api-reference/html/device-xml_8c.html0000644002342100234210000001616210655642004021543 0ustar perepere discover: /home/pere/src/debiancvs/pkg-discover/discover/trunk/lib/device-xml.c File Reference

device-xml.c File Reference

Device XML data file parsing. More...

#include "config.h"
#include <sys/types.h>
#include <assert.h>
#include <ctype.h>
#include <limits.h>
#include <stdbool.h>
#include <string.h>
#include <errno.h>
#include <expat.h>
#include <discover/discover.h>
#include <discover/discover-xml.h>
#include <discover/load-url.h>
#include <discover/device.h>
#include <discover/utils.h>
#include <discover/stack.h>

Go to the source code of this file.

Defines

#define IDLEN   5

Enumerations

enum  state { START, FINISH, DEVICE, DATA }

Functions

void discover_xml_merge_device_url (discover_device_t **dlist, char *url, discover_xml_busclass_t *busclasses, discover_xml_vendor_t *vendors, discover_error_t *status)
discover_device_tdiscover_xml_get_devices (discover_bus_t bus, discover_error_t *status)
void discover_xml_free_devices (void)
discover_device_tdiscover_xml_find_device (discover_device_t *xml_devices, char *target_vendor, char *target_model, discover_error_t *status)
discover_device_tdiscover_xml_find_next_device (discover_device_t *xml_devices, char *target_vendor, char *target_model, discover_error_t *status)
discover_device_tdiscover_xml_get_matching_devices (discover_device_t *xml_devices, char *target_vendor, char *target_model, discover_error_t *status)


Detailed Description

Device XML data file parsing.

This file contains the routines needed to properly process the device XML data. This file is responsible for handling URLs and storing the XML data during the parsing process.

Definition in file device-xml.c.


Define Documentation

#define IDLEN   5
 

Length (including terminating null) of model and vendor ID strings

Definition at line 77 of file device-xml.c.


Enumeration Type Documentation

enum state
 

Representative of the state within the XML data

Definition at line 82 of file device-xml.c.


Generated on Thu Jul 28 03:38:00 2005 for discover by  doxygen 1.4.2
discover-2.1.2/doc/api-reference/html/group__types.html0000644002342100234210000005772210655642004021642 0ustar perepere discover: Types

Types


Data Structures

struct  discover_error
struct  discover_bus_map

Defines

#define BUS_COUNT   5

Typedefs

typedef void *( discover_create_message_t )(struct discover_error **, char *)
typedef discover_error discover_error_t
typedef discover_bus_map discover_bus_map_t
typedef discover_device discover_device_t
typedef discover_data discover_data_t
typedef discover_xml_busclass discover_xml_busclass_t
typedef discover_xml_vendor discover_xml_vendor_t
typedef discover_xml_url discover_xml_url_t
typedef discover_device_t *( discover_device_func_t )(discover_error_t *)
typedef discover_xml_busclass_t *( discover_xml_busclass_func_t )(discover_error_t *)
typedef discover_xml_vendor_t *( discover_xml_vendor_func_t )(discover_error_t *)
typedef discover_xml_url_t *( discover_xml_url_func_t )(discover_error_t *)
typedef void( discover_free_func_t )(void)
typedef discover_sysdep_data_t *( discover_sysdep_raw_func_t )(void)

Enumerations

enum  discover_error_code_t {
  DISCOVER_SUCCESS, DISCOVER_EIO, DISCOVER_EXML, DISCOVER_ESYS,
  DISCOVER_EBUSDISABLED, DISCOVER_EBUSNOTFOUND, DISCOVER_EDATANOTFOUND, DISCOVER_EDEVICENOTFOUND,
  DISCOVER_EBADVERSION, DISCOVER_ENOIMPL
}
enum  discover_bus_t {
  ATA, PCI, PCMCIA, SCSI,
  USB
}
enum  discover_filetype_t { VENDOR_TYPE, BUSCLASS_TYPE, DEVICE_TYPE }

Define Documentation

#define BUS_COUNT   5
 

Number of buses we support

Definition at line 157 of file discover.h.

Referenced by _real_discover_conf_get_bus_map(), discover_conf_get_bus_map(), discover_conf_get_bus_name(), discover_free_devices(), discover_xml_free_busclasses(), discover_xml_free_data_urls(), discover_xml_free_devices(), and discover_xml_free_vendors().


Typedef Documentation

typedef struct discover_bus_map discover_bus_map_t
 

Mapping of bus names to functions

Definition at line 116 of file discover.h.

typedef void*( discover_create_message_t)(struct discover_error **, char *)
 

Signature of functions that assist with creating message strings

Definition at line 99 of file discover.h.

typedef struct discover_data discover_data_t
 

Data element from the device XML files

Definition at line 120 of file discover.h.

typedef discover_device_t*( discover_device_func_t)(discover_error_t *)
 

Signature of functions returning discover_device_t structures

Definition at line 129 of file discover.h.

typedef struct discover_device discover_device_t
 

Structure describing a device

Definition at line 118 of file discover.h.

typedef struct discover_error discover_error_t
 

All functions that perform some action (as opposed to returning a member of a structure, for example) take an argument of this type. It is used to report that the action succeeded, or why it failed.

typedef void( discover_free_func_t)(void)
 

Signature of functions that free internal lists

Definition at line 137 of file discover.h.

typedef discover_sysdep_data_t*( discover_sysdep_raw_func_t)(void)
 

Signature of functions that return sysdep_data_t lists

Definition at line 141 of file discover.h.

typedef discover_xml_busclass_t*( discover_xml_busclass_func_t)(discover_error_t *)
 

Signature of functions returning discover_xml_busclass_t structures

Definition at line 131 of file discover.h.

typedef struct discover_xml_busclass discover_xml_busclass_t
 

Structure for mapping Discover device types to bus-specific classes

Definition at line 122 of file discover.h.

typedef discover_xml_url_t*( discover_xml_url_func_t)(discover_error_t *)
 

Signature of functions returning discover_xml_url_t structures

Definition at line 135 of file discover.h.

typedef struct discover_xml_url discover_xml_url_t
 

Structure describing a URL where XML data can be found

Definition at line 126 of file discover.h.

typedef discover_xml_vendor_t*( discover_xml_vendor_func_t)(discover_error_t *)
 

Signature of functions returning discover_xml_vendor_t structures

Definition at line 133 of file discover.h.

typedef struct discover_xml_vendor discover_xml_vendor_t
 

Structure for mapping vendor names to bus-specific IDs

Definition at line 124 of file discover.h.


Enumeration Type Documentation

enum discover_bus_t
 

Enumerate the buses.

Definition at line 146 of file discover.h.

enum discover_error_code_t
 

Enumeration values:
DISCOVER_SUCCESS  Success
DISCOVER_EIO  Input/output error
DISCOVER_EXML  XML parse error
DISCOVER_ESYS  System error
DISCOVER_EBUSDISABLED  Disabled bus
DISCOVER_EBUSNOTFOUND  Bus not found
DISCOVER_EDATANOTFOUND  Data source not found
DISCOVER_EDEVICENOTFOUND  Device not found
DISCOVER_EBADVERSION  Invalid version range
DISCOVER_ENOIMPL  Action not implemented for this platform

Definition at line 73 of file discover.h.

enum discover_filetype_t
 

Enumerate the types of data files: vendor, busclass, and device.

Definition at line 162 of file discover.h.


Generated on Thu Jul 28 03:38:01 2005 for discover by  doxygen 1.4.2
discover-2.1.2/doc/api-reference/latex/0002755002342100234210000000000010272033371016367 5ustar pereperediscover-2.1.2/doc/api-reference/latex/vendor-xml_8c.tex0000644002342100234210000000424610655642004021606 0ustar perepere\section{/home/pere/src/debiancvs/pkg-discover/discover/trunk/lib/vendor-xml.c File Reference} \label{vendor-xml_8c}\index{/home/pere/src/debiancvs/pkg-discover/discover/trunk/lib/vendor-xml.c@{/home/pere/src/debiancvs/pkg-discover/discover/trunk/lib/vendor-xml.c}} Vendor XML data file parsing. {\tt \#include \char`\"{}config.h\char`\"{}}\par {\tt \#include $<$sys/types.h$>$}\par {\tt \#include $<$assert.h$>$}\par {\tt \#include $<$limits.h$>$}\par {\tt \#include $<$stdio.h$>$}\par {\tt \#include $<$string.h$>$}\par {\tt \#include $<$expat.h$>$}\par {\tt \#include $<$discover/discover.h$>$}\par {\tt \#include $<$discover/discover-xml.h$>$}\par {\tt \#include $<$discover/load-url.h$>$}\par {\tt \#include $<$discover/utils.h$>$}\par \subsection*{Functions} \begin{CompactItemize} \item void {\bf discover\_\-xml\_\-merge\_\-vendor\_\-url} ({\bf discover\_\-xml\_\-vendor\_\-t} $\ast$$\ast$vlist, char $\ast$url, {\bf discover\_\-error\_\-t} $\ast$status) \item {\bf discover\_\-xml\_\-vendor\_\-t} $\ast$ {\bf discover\_\-xml\_\-get\_\-vendors} ({\bf discover\_\-bus\_\-t} bus, {\bf discover\_\-error\_\-t} $\ast$status) \item void {\bf discover\_\-xml\_\-free\_\-vendors} (void) \item char $\ast$ {\bf discover\_\-xml\_\-vendor\_\-id2name} ({\bf discover\_\-xml\_\-vendor\_\-t} $\ast$vendors, char $\ast$id) \item char $\ast$ {\bf discover\_\-xml\_\-vendor\_\-get\_\-id} ({\bf discover\_\-xml\_\-vendor\_\-t} $\ast$vendor) \item char $\ast$ {\bf discover\_\-xml\_\-vendor\_\-get\_\-name} ({\bf discover\_\-xml\_\-vendor\_\-t} $\ast$vendor) \item {\bf discover\_\-xml\_\-vendor\_\-t} $\ast$ {\bf discover\_\-xml\_\-vendor\_\-get\_\-next} ({\bf discover\_\-xml\_\-vendor\_\-t} $\ast$vendor) \item {\bf discover\_\-xml\_\-vendor\_\-t} $\ast$ {\bf discover\_\-xml\_\-vendor\_\-new} (void) \item void {\bf discover\_\-xml\_\-vendor\_\-free} ({\bf discover\_\-xml\_\-vendor\_\-t} $\ast$vendors) \end{CompactItemize} \subsection{Detailed Description} Vendor XML data file parsing. This file contains the routines needed to properly process the vendor XML data. This file is responsible for handling URLs and storing the XML data during the parsing process. Definition in file {\bf vendor-xml.c}.discover-2.1.2/doc/api-reference/latex/group__version__cmp.tex0000644002342100234210000000231610655642004023153 0ustar perepere\section{Version comparison} \label{group__version__cmp}\index{Version comparison@{Version comparison}} \subsection*{Functions} \begin{CompactItemize} \item int {\bf discover\_\-xml\_\-version\_\-cmp} (char $\ast$range, char $\ast$version, {\bf discover\_\-error\_\-t} $\ast$status) \end{CompactItemize} \subsection{Function Documentation} \index{version_cmp@{version\_\-cmp}!discover_xml_version_cmp@{discover\_\-xml\_\-version\_\-cmp}} \index{discover_xml_version_cmp@{discover\_\-xml\_\-version\_\-cmp}!version_cmp@{version\_\-cmp}} \subsubsection{\setlength{\rightskip}{0pt plus 5cm}int discover\_\-xml\_\-version\_\-cmp (char $\ast$ {\em range}, char $\ast$ {\em version}, {\bf discover\_\-error\_\-t} $\ast$ {\em status})}\label{group__version__cmp_ga0} Compare a version number against a version range, returning 1 if the number matches the range or 0 if not. \begin{Desc} \item[Parameters:] \begin{description} \item[{\em range}]Range to compare against version \item[{\em version}]Version to compare against range \item[{\em status}]Address in which to place status report \end{description} \end{Desc} Definition at line 438 of file version-cmp.c. References discover\_\-error::code, and DISCOVER\_\-EBADVERSION.discover-2.1.2/doc/api-reference/latex/version-cmp_8c.tex0000644002342100234210000000535210655642004021754 0ustar perepere\section{/home/pere/src/debiancvs/pkg-discover/discover/trunk/lib/version-cmp.c File Reference} \label{version-cmp_8c}\index{/home/pere/src/debiancvs/pkg-discover/discover/trunk/lib/version-cmp.c@{/home/pere/src/debiancvs/pkg-discover/discover/trunk/lib/version-cmp.c}} Version comparison functions. {\tt \#include \char`\"{}config.h\char`\"{}}\par {\tt \#include $<$assert.h$>$}\par {\tt \#include $<$ctype.h$>$}\par {\tt \#include $<$stdio.h$>$}\par {\tt \#include $<$stdlib.h$>$}\par {\tt \#include $<$string.h$>$}\par {\tt \#include $<$discover/discover.h$>$}\par {\tt \#include $<$discover/utils.h$>$}\par \subsection*{Defines} \begin{CompactItemize} \item \#define {\bf MAXBUFLEN}~256 \end{CompactItemize} \subsection*{Typedefs} \begin{CompactItemize} \item typedef enum {\bf range\_\-states} {\bf range\_\-state} \end{CompactItemize} \subsection*{Enumerations} \begin{CompactItemize} \item enum {\bf range\_\-states} \{ \par {\bf START}, {\bf OPEN}, {\bf VERSION1}, {\bf VERSEP1}, \par {\bf PAUSE1}, {\bf SEPARATOR}, {\bf I}, {\bf N}, \par {\bf F}, {\bf VERSION2}, {\bf VERSEP2}, {\bf PAUSE2}, \par {\bf CLOSE}, {\bf ERROR} \} \end{CompactItemize} \subsection*{Functions} \begin{CompactItemize} \item int {\bf discover\_\-xml\_\-version\_\-cmp} (char $\ast$range, char $\ast$version, {\bf discover\_\-error\_\-t} $\ast$status) \end{CompactItemize} \subsection{Detailed Description} Version comparison functions. This file holds the routines needed to process version data in the XML file. This version data is used to look for information pertaining to a particular version of the OS/software requiring that information. Definition in file {\bf version-cmp.c}. \subsection{Define Documentation} \index{version-cmp.c@{version-cmp.c}!MAXBUFLEN@{MAXBUFLEN}} \index{MAXBUFLEN@{MAXBUFLEN}!version-cmp.c@{version-cmp.c}} \subsubsection{\setlength{\rightskip}{0pt plus 5cm}\#define MAXBUFLEN~256}\label{version-cmp_8c_a0} This probably shouldn't be here; it's bad practice (3.0, right). Definition at line 55 of file version-cmp.c. \subsection{Typedef Documentation} \index{version-cmp.c@{version-cmp.c}!range_state@{range\_\-state}} \index{range_state@{range\_\-state}!version-cmp.c@{version-cmp.c}} \subsubsection{\setlength{\rightskip}{0pt plus 5cm}typedef enum {\bf range\_\-states} {\bf range\_\-state}}\label{version-cmp_8c_a1} This is used as a placeholder while comparing versions of modules. \subsection{Enumeration Type Documentation} \index{version-cmp.c@{version-cmp.c}!range_states@{range\_\-states}} \index{range_states@{range\_\-states}!version-cmp.c@{version-cmp.c}} \subsubsection{\setlength{\rightskip}{0pt plus 5cm}enum {\bf range\_\-states}}\label{version-cmp_8c_a21} Version placeholders Definition at line 58 of file version-cmp.c.discover-2.1.2/doc/api-reference/latex/index.tex0000644002342100234210000000200110655642004020213 0ustar perepereThis is the Discover application programming interface (API) reference. If you have not already read {\tt The Discover Hardware Detection System}, you should do so now. The following list describes the contents of the links at the top of the page: \begin{itemize} \item Main page -- This page\end{itemize} \begin{itemize} \item Modules -- List of top-level modules; you probably want to start here, where navigation is fastest\end{itemize} \begin{itemize} \item Data Structures -- List of data structures used by Discover\end{itemize} \begin{itemize} \item File List -- List of files comprising Discover's external interface, with links to documentation and source code\end{itemize} \begin{itemize} \item Data Fields -- List of fields used in Discover's structs and unions\end{itemize} \begin{itemize} \item Globals -- List of global symbols, with links to file summaries\end{itemize} The Discover library was written by Eric Gillespie, John R. Daily, and Josh Bressers, with design input from Branden Robinson. discover-2.1.2/doc/api-reference/latex/doxygen.sty0000644002342100234210000000371610655642004020616 0ustar perepere\NeedsTeXFormat{LaTeX2e} \ProvidesPackage{doxygen} \RequirePackage{calc} \RequirePackage{array} \pagestyle{fancyplain} \newcommand{\clearemptydoublepage}{\newpage{\pagestyle{empty}\cleardoublepage}} \renewcommand{\chaptermark}[1]{\markboth{#1}{}} \renewcommand{\sectionmark}[1]{\markright{\thesection\ #1}} \lhead[\fancyplain{}{\bfseries\thepage}] {\fancyplain{}{\bfseries\rightmark}} \rhead[\fancyplain{}{\bfseries\leftmark}] {\fancyplain{}{\bfseries\thepage}} \rfoot[\fancyplain{}{\bfseries\scriptsize Generated on Thu Jul 28 03:38:00 2005 for discover by Doxygen }]{} \lfoot[]{\fancyplain{}{\bfseries\scriptsize Generated on Thu Jul 28 03:38:00 2005 for discover by Doxygen }} \cfoot{} \newenvironment{CompactList} {\begin{list}{}{ \setlength{\leftmargin}{0.5cm} \setlength{\itemsep}{0pt} \setlength{\parsep}{0pt} \setlength{\topsep}{0pt} \renewcommand{\makelabel}{}}} {\end{list}} \newenvironment{CompactItemize} { \begin{itemize} \setlength{\itemsep}{-3pt} \setlength{\parsep}{0pt} \setlength{\topsep}{0pt} \setlength{\partopsep}{0pt} } {\end{itemize}} \newcommand{\PBS}[1]{\let\temp=\\#1\let\\=\temp} \newlength{\tmplength} \newenvironment{TabularC}[1] { \setlength{\tmplength} {\linewidth/(#1)-\tabcolsep*2-\arrayrulewidth*(#1+1)/(#1)} \par\begin{tabular*}{\linewidth} {*{#1}{|>{\PBS\raggedright\hspace{0pt}}p{\the\tmplength}}|} } {\end{tabular*}\par} \newcommand{\entrylabel}[1]{ {\parbox[b]{\labelwidth-4pt}{\makebox[0pt][l]{\textbf{#1}}\\}}} \newenvironment{Desc} {\begin{list}{} { \settowidth{\labelwidth}{40pt} \setlength{\leftmargin}{\labelwidth} \setlength{\parsep}{0pt} \setlength{\itemsep}{-4pt} \renewcommand{\makelabel}{\entrylabel} } } {\end{list}} \newenvironment{Indent} {\begin{list}{}{\setlength{\leftmargin}{0.5cm}} \item[]\ignorespaces} {\unskip\end{list}} \setlength{\parindent}{0cm} \setlength{\parskip}{0.2cm} \addtocounter{secnumdepth}{1} \sloppy \usepackage[T1]{fontenc} discover-2.1.2/doc/api-reference/latex/group__core.tex0000644002342100234210000000736210655642004021426 0ustar perepere\section{Core functionality} \label{group__core}\index{Core functionality@{Core functionality}} \subsection*{Functions} \begin{CompactItemize} \item {\bf discover\_\-error\_\-t} $\ast$ {\bf discover\_\-error\_\-new} (void) \item void $\ast$ {\bf \_\-discover\_\-create\_\-message} ({\bf discover\_\-error\_\-t} $\ast$$\ast$status, char $\ast$message) \item void {\bf discover\_\-error\_\-free} ({\bf discover\_\-error\_\-t} $\ast$status) \item char $\ast$ {\bf discover\_\-strerror} ({\bf discover\_\-error\_\-t} $\ast$err) \item int {\bf discover\_\-major\_\-version} (void) \item int {\bf discover\_\-minor\_\-version} (void) \item int {\bf discover\_\-micro\_\-version} (void) \end{CompactItemize} \subsection{Function Documentation} \index{core@{core}!_discover_create_message@{\_\-discover\_\-create\_\-message}} \index{_discover_create_message@{\_\-discover\_\-create\_\-message}!core@{core}} \subsubsection{\setlength{\rightskip}{0pt plus 5cm}void$\ast$ \_\-discover\_\-create\_\-message ({\bf discover\_\-error\_\-t} $\ast$$\ast$ {\em status}, char $\ast$ {\em message})}\label{group__core_ga1} Allocate memory for a char $\ast$ variable. This routine was written for discover\_\-error\_\-t struct. Definition at line 82 of file core.c. Referenced by discover\_\-error\_\-new().\index{core@{core}!discover_error_free@{discover\_\-error\_\-free}} \index{discover_error_free@{discover\_\-error\_\-free}!core@{core}} \subsubsection{\setlength{\rightskip}{0pt plus 5cm}void discover\_\-error\_\-free ({\bf discover\_\-error\_\-t} $\ast$ {\em status})}\label{group__core_ga2} Free a discover\_\-error\_\-t structure. Definition at line 95 of file core.c. References discover\_\-error::message.\index{core@{core}!discover_error_new@{discover\_\-error\_\-new}} \index{discover_error_new@{discover\_\-error\_\-new}!core@{core}} \subsubsection{\setlength{\rightskip}{0pt plus 5cm}{\bf discover\_\-error\_\-t}$\ast$ discover\_\-error\_\-new (void)}\label{group__core_ga0} Allocate and initialize a discover\_\-error\_\-t structure. Definition at line 68 of file core.c. References \_\-discover\_\-create\_\-message(), discover\_\-error::code, discover\_\-error::create\_\-message, and discover\_\-error::message.\index{core@{core}!discover_major_version@{discover\_\-major\_\-version}} \index{discover_major_version@{discover\_\-major\_\-version}!core@{core}} \subsubsection{\setlength{\rightskip}{0pt plus 5cm}int discover\_\-major\_\-version (void)}\label{group__core_ga4} Get the major version number. Definition at line 124 of file core.c.\index{core@{core}!discover_micro_version@{discover\_\-micro\_\-version}} \index{discover_micro_version@{discover\_\-micro\_\-version}!core@{core}} \subsubsection{\setlength{\rightskip}{0pt plus 5cm}int discover\_\-micro\_\-version (void)}\label{group__core_ga6} Get the micro version number. Definition at line 142 of file core.c.\index{core@{core}!discover_minor_version@{discover\_\-minor\_\-version}} \index{discover_minor_version@{discover\_\-minor\_\-version}!core@{core}} \subsubsection{\setlength{\rightskip}{0pt plus 5cm}int discover\_\-minor\_\-version (void)}\label{group__core_ga5} Get the minor version number. Definition at line 133 of file core.c.\index{core@{core}!discover_strerror@{discover\_\-strerror}} \index{discover_strerror@{discover\_\-strerror}!core@{core}} \subsubsection{\setlength{\rightskip}{0pt plus 5cm}char$\ast$ discover\_\-strerror ({\bf discover\_\-error\_\-t} $\ast$ {\em err})}\label{group__core_ga3} Convert an error code to a human-readable string localized according to the current locale (XXX: no i18n yet). \begin{Desc} \item[Parameters:] \begin{description} \item[{\em err}]Error code to convert \end{description} \end{Desc} Definition at line 111 of file core.c. References discover\_\-error::code.discover-2.1.2/doc/api-reference/latex/core_8c.tex0000644002342100234210000000251310655642004020436 0ustar perepere\section{/home/pere/src/debiancvs/pkg-discover/discover/trunk/lib/core.c File Reference} \label{core_8c}\index{/home/pere/src/debiancvs/pkg-discover/discover/trunk/lib/core.c@{/home/pere/src/debiancvs/pkg-discover/discover/trunk/lib/core.c}} Core and miscellaneous routines. {\tt \#include \char`\"{}config.h\char`\"{}}\par {\tt \#include $<$assert.h$>$}\par {\tt \#include $<$discover/discover.h$>$}\par {\tt \#include $<$discover/discover-xml.h$>$}\par {\tt \#include $<$discover/utils.h$>$}\par \subsection*{Functions} \begin{CompactItemize} \item {\bf discover\_\-error\_\-t} $\ast$ {\bf discover\_\-error\_\-new} (void) \item void $\ast$ {\bf \_\-discover\_\-create\_\-message} ({\bf discover\_\-error\_\-t} $\ast$$\ast$status, char $\ast$message) \item void {\bf discover\_\-error\_\-free} ({\bf discover\_\-error\_\-t} $\ast$status) \item char $\ast$ {\bf discover\_\-strerror} ({\bf discover\_\-error\_\-t} $\ast$err) \item int {\bf discover\_\-major\_\-version} (void) \item int {\bf discover\_\-minor\_\-version} (void) \item int {\bf discover\_\-micro\_\-version} (void) \end{CompactItemize} \subsection{Detailed Description} Core and miscellaneous routines. This file provides core routines that don't really fit anyplace else. There are likely some other routines that really should be in here. Definition in file {\bf core.c}.discover-2.1.2/doc/api-reference/latex/dir_000000.tex0000644002342100234210000000060210655642004020466 0ustar perepere\section{/home/pere/src/debiancvs/pkg-discover/discover/trunk/include/ Directory Reference} \label{dir_000000}\index{/home/pere/src/debiancvs/pkg-discover/discover/trunk/include/ Directory Reference@{/home/pere/src/debiancvs/pkg-discover/discover/trunk/include/ Directory Reference}} \subsection*{Directories} \begin{CompactItemize} \item directory {\bf discover} \end{CompactItemize} discover-2.1.2/doc/api-reference/latex/group__busclass__xml.tex0000644002342100234210000002135210655642004023327 0ustar perepere\section{Busclass list XML parsing} \label{group__busclass__xml}\index{Busclass list XML parsing@{Busclass list XML parsing}} \subsection*{Functions} \begin{CompactItemize} \item void {\bf discover\_\-xml\_\-merge\_\-busclass\_\-url} ({\bf discover\_\-xml\_\-busclass\_\-t} $\ast$$\ast$blist, char $\ast$url, {\bf discover\_\-error\_\-t} $\ast$status) \item {\bf discover\_\-xml\_\-busclass\_\-t} $\ast$ {\bf discover\_\-xml\_\-get\_\-busclasses} ({\bf discover\_\-bus\_\-t} bus, {\bf discover\_\-error\_\-t} $\ast$status) \item void {\bf discover\_\-xml\_\-free\_\-busclasses} (void) \item char $\ast$ {\bf discover\_\-xml\_\-busclass\_\-to\_\-class} (char $\ast$busclass, {\bf discover\_\-xml\_\-busclass\_\-t} $\ast$busclasses) \item int {\bf discover\_\-xml\_\-busclass\_\-cmp} (char $\ast$busclass, char $\ast$discover\_\-class, {\bf discover\_\-xml\_\-busclass\_\-t} $\ast$busclasses) \item char $\ast$ {\bf discover\_\-xml\_\-busclass\_\-get\_\-id} ({\bf discover\_\-xml\_\-busclass\_\-t} $\ast$busclass) \item char $\ast$ {\bf discover\_\-xml\_\-busclass\_\-get\_\-name} ({\bf discover\_\-xml\_\-busclass\_\-t} $\ast$busclass) \item {\bf discover\_\-xml\_\-busclass\_\-t} $\ast$ {\bf discover\_\-xml\_\-busclass\_\-get\_\-next} ({\bf discover\_\-xml\_\-busclass\_\-t} $\ast$busclass) \item {\bf discover\_\-xml\_\-busclass\_\-t} $\ast$ {\bf discover\_\-xml\_\-busclass\_\-new} (void) \item void {\bf discover\_\-xml\_\-busclass\_\-free} ({\bf discover\_\-xml\_\-busclass\_\-t} $\ast$busclasses) \end{CompactItemize} \subsection{Function Documentation} \index{busclass_xml@{busclass\_\-xml}!discover_xml_busclass_cmp@{discover\_\-xml\_\-busclass\_\-cmp}} \index{discover_xml_busclass_cmp@{discover\_\-xml\_\-busclass\_\-cmp}!busclass_xml@{busclass\_\-xml}} \subsubsection{\setlength{\rightskip}{0pt plus 5cm}int discover\_\-xml\_\-busclass\_\-cmp (char $\ast$ {\em busclass}, char $\ast$ {\em discover\_\-class}, {\bf discover\_\-xml\_\-busclass\_\-t} $\ast$ {\em busclasses})}\label{group__busclass__xml_ga4} Compare a busclass to a device class, returning the same kind of value returned by strcmp(3). Note that this function has a special case for the class 'all'; it is considered equal to all busclasses. \begin{Desc} \item[Parameters:] \begin{description} \item[{\em busclass}]Busclass to compare \item[{\em discover\_\-class}]Device class to compare \item[{\em busclasses}]List of busclasses to search \end{description} \end{Desc} Definition at line 295 of file busclass-xml.c. References discover\_\-xml\_\-busclass\_\-to\_\-class(). Referenced by discover\_\-device\_\-find().\index{busclass_xml@{busclass\_\-xml}!discover_xml_busclass_free@{discover\_\-xml\_\-busclass\_\-free}} \index{discover_xml_busclass_free@{discover\_\-xml\_\-busclass\_\-free}!busclass_xml@{busclass\_\-xml}} \subsubsection{\setlength{\rightskip}{0pt plus 5cm}void discover\_\-xml\_\-busclass\_\-free ({\bf discover\_\-xml\_\-busclass\_\-t} $\ast$ {\em busclasses})}\label{group__busclass__xml_ga9} Free the busclass or list of busclasses. \begin{Desc} \item[Parameters:] \begin{description} \item[{\em busclasses}]Busclass or list of busclasses to free \end{description} \end{Desc} Definition at line 382 of file busclass-xml.c. Referenced by discover\_\-xml\_\-free\_\-busclasses().\index{busclass_xml@{busclass\_\-xml}!discover_xml_busclass_get_id@{discover\_\-xml\_\-busclass\_\-get\_\-id}} \index{discover_xml_busclass_get_id@{discover\_\-xml\_\-busclass\_\-get\_\-id}!busclass_xml@{busclass\_\-xml}} \subsubsection{\setlength{\rightskip}{0pt plus 5cm}char$\ast$ discover\_\-xml\_\-busclass\_\-get\_\-id ({\bf discover\_\-xml\_\-busclass\_\-t} $\ast$ {\em busclass})}\label{group__busclass__xml_ga5} Get the id member of busclass. \begin{Desc} \item[Parameters:] \begin{description} \item[{\em busclass}]\end{description} \end{Desc} Definition at line 327 of file busclass-xml.c.\index{busclass_xml@{busclass\_\-xml}!discover_xml_busclass_get_name@{discover\_\-xml\_\-busclass\_\-get\_\-name}} \index{discover_xml_busclass_get_name@{discover\_\-xml\_\-busclass\_\-get\_\-name}!busclass_xml@{busclass\_\-xml}} \subsubsection{\setlength{\rightskip}{0pt plus 5cm}char$\ast$ discover\_\-xml\_\-busclass\_\-get\_\-name ({\bf discover\_\-xml\_\-busclass\_\-t} $\ast$ {\em busclass})}\label{group__busclass__xml_ga6} Get the name member of busclass. \begin{Desc} \item[Parameters:] \begin{description} \item[{\em busclass}]\end{description} \end{Desc} Definition at line 340 of file busclass-xml.c.\index{busclass_xml@{busclass\_\-xml}!discover_xml_busclass_get_next@{discover\_\-xml\_\-busclass\_\-get\_\-next}} \index{discover_xml_busclass_get_next@{discover\_\-xml\_\-busclass\_\-get\_\-next}!busclass_xml@{busclass\_\-xml}} \subsubsection{\setlength{\rightskip}{0pt plus 5cm}{\bf discover\_\-xml\_\-busclass\_\-t}$\ast$ discover\_\-xml\_\-busclass\_\-get\_\-next ({\bf discover\_\-xml\_\-busclass\_\-t} $\ast$ {\em busclass})}\label{group__busclass__xml_ga7} Get the next member of busclass (used for traversing lists of busclasses). Definition at line 352 of file busclass-xml.c.\index{busclass_xml@{busclass\_\-xml}!discover_xml_busclass_new@{discover\_\-xml\_\-busclass\_\-new}} \index{discover_xml_busclass_new@{discover\_\-xml\_\-busclass\_\-new}!busclass_xml@{busclass\_\-xml}} \subsubsection{\setlength{\rightskip}{0pt plus 5cm}{\bf discover\_\-xml\_\-busclass\_\-t}$\ast$ discover\_\-xml\_\-busclass\_\-new (void)}\label{group__busclass__xml_ga8} Create and initialize a new discover\_\-xml\_\-busclass\_\-t object. Definition at line 363 of file busclass-xml.c.\index{busclass_xml@{busclass\_\-xml}!discover_xml_busclass_to_class@{discover\_\-xml\_\-busclass\_\-to\_\-class}} \index{discover_xml_busclass_to_class@{discover\_\-xml\_\-busclass\_\-to\_\-class}!busclass_xml@{busclass\_\-xml}} \subsubsection{\setlength{\rightskip}{0pt plus 5cm}char$\ast$ discover\_\-xml\_\-busclass\_\-to\_\-class (char $\ast$ {\em busclass}, {\bf discover\_\-xml\_\-busclass\_\-t} $\ast$ {\em busclasses})}\label{group__busclass__xml_ga3} Return the device class corresponding to a busclass. \begin{Desc} \item[Parameters:] \begin{description} \item[{\em busclass}]Busclass to look up \item[{\em busclasses}]List of busclasses to search \end{description} \end{Desc} Definition at line 263 of file busclass-xml.c. Referenced by discover\_\-xml\_\-busclass\_\-cmp().\index{busclass_xml@{busclass\_\-xml}!discover_xml_free_busclasses@{discover\_\-xml\_\-free\_\-busclasses}} \index{discover_xml_free_busclasses@{discover\_\-xml\_\-free\_\-busclasses}!busclass_xml@{busclass\_\-xml}} \subsubsection{\setlength{\rightskip}{0pt plus 5cm}void discover\_\-xml\_\-free\_\-busclasses (void)}\label{group__busclass__xml_ga2} Free the list of busclasses. Definition at line 247 of file busclass-xml.c. References BUS\_\-COUNT, and discover\_\-xml\_\-busclass\_\-free().\index{busclass_xml@{busclass\_\-xml}!discover_xml_get_busclasses@{discover\_\-xml\_\-get\_\-busclasses}} \index{discover_xml_get_busclasses@{discover\_\-xml\_\-get\_\-busclasses}!busclass_xml@{busclass\_\-xml}} \subsubsection{\setlength{\rightskip}{0pt plus 5cm}{\bf discover\_\-xml\_\-busclass\_\-t}$\ast$ discover\_\-xml\_\-get\_\-busclasses ({\bf discover\_\-bus\_\-t} {\em bus}, {\bf discover\_\-error\_\-t} $\ast$ {\em status})}\label{group__busclass__xml_ga1} Get the list of busclasses by bus type. \begin{Desc} \item[Parameters:] \begin{description} \item[{\em bus}]Type of bus for which busclasses are required \item[{\em status}]Address in which to place status report \end{description} \end{Desc} Definition at line 213 of file busclass-xml.c. References discover\_\-error::code, discover\_\-xml\_\-get\_\-data\_\-urls(), discover\_\-xml\_\-merge\_\-busclass\_\-url(), discover\_\-xml\_\-url\_\-get\_\-next(), and discover\_\-xml\_\-url\_\-get\_\-url(). Referenced by discover\_\-device\_\-find(), and discover\_\-xml\_\-get\_\-devices().\index{busclass_xml@{busclass\_\-xml}!discover_xml_merge_busclass_url@{discover\_\-xml\_\-merge\_\-busclass\_\-url}} \index{discover_xml_merge_busclass_url@{discover\_\-xml\_\-merge\_\-busclass\_\-url}!busclass_xml@{busclass\_\-xml}} \subsubsection{\setlength{\rightskip}{0pt plus 5cm}void discover\_\-xml\_\-merge\_\-busclass\_\-url ({\bf discover\_\-xml\_\-busclass\_\-t} $\ast$$\ast$ {\em blist}, char $\ast$ {\em url}, {\bf discover\_\-error\_\-t} $\ast$ {\em status})}\label{group__busclass__xml_ga0} Merge new busclasses into a list. \begin{Desc} \item[Parameters:] \begin{description} \item[{\em blist}]Address of the list to merge busclasses into \item[{\em url}]URL of the document defining the busclasses \item[{\em status}]Address in which to place status report \end{description} \end{Desc} Definition at line 171 of file busclass-xml.c. References discover\_\-error::code, DISCOVER\_\-EIO, and DISCOVER\_\-EXML. Referenced by discover\_\-xml\_\-get\_\-busclasses().discover-2.1.2/doc/api-reference/latex/dir_000001.tex0000644002342100234210000000162310655642004020473 0ustar perepere\section{/home/pere/src/debiancvs/pkg-discover/discover/trunk/include/discover/ Directory Reference} \label{dir_000001}\index{/home/pere/src/debiancvs/pkg-discover/discover/trunk/include/discover/ Directory Reference@{/home/pere/src/debiancvs/pkg-discover/discover/trunk/include/discover/ Directory Reference}} \subsection*{Files} \begin{CompactItemize} \item file {\bf discover-conf.h} \begin{CompactList}\small\item\em Public interface for reading Discover configuration data. \item\end{CompactList} \item file {\bf discover-xml.h} \begin{CompactList}\small\item\em Public interface to Discover's XML handling. \item\end{CompactList} \item file {\bf discover.h} \begin{CompactList}\small\item\em Public interface for Discover library. \item\end{CompactList} \item file {\bf sysdep.h} \begin{CompactList}\small\item\em Private interface for system dependencies. \item\end{CompactList} \end{CompactItemize} discover-2.1.2/doc/api-reference/latex/dir_000004.tex0000644002342100234210000000073310655642004020477 0ustar perepere\section{/home/pere/src/debiancvs/pkg-discover/discover/trunk/sysdeps/stub/ Directory Reference} \label{dir_000004}\index{/home/pere/src/debiancvs/pkg-discover/discover/trunk/sysdeps/stub/ Directory Reference@{/home/pere/src/debiancvs/pkg-discover/discover/trunk/sysdeps/stub/ Directory Reference}} \subsection*{Files} \begin{CompactItemize} \item file {\bf stubs.c} \begin{CompactList}\small\item\em Stub system-dependent code. \item\end{CompactList} \end{CompactItemize} discover-2.1.2/doc/api-reference/latex/device-xml_8c.tex0000644002342100234210000000652410655642004021551 0ustar perepere\section{/home/pere/src/debiancvs/pkg-discover/discover/trunk/lib/device-xml.c File Reference} \label{device-xml_8c}\index{/home/pere/src/debiancvs/pkg-discover/discover/trunk/lib/device-xml.c@{/home/pere/src/debiancvs/pkg-discover/discover/trunk/lib/device-xml.c}} Device XML data file parsing. {\tt \#include \char`\"{}config.h\char`\"{}}\par {\tt \#include $<$sys/types.h$>$}\par {\tt \#include $<$assert.h$>$}\par {\tt \#include $<$ctype.h$>$}\par {\tt \#include $<$limits.h$>$}\par {\tt \#include $<$stdbool.h$>$}\par {\tt \#include $<$string.h$>$}\par {\tt \#include $<$errno.h$>$}\par {\tt \#include $<$expat.h$>$}\par {\tt \#include $<$discover/discover.h$>$}\par {\tt \#include $<$discover/discover-xml.h$>$}\par {\tt \#include $<$discover/load-url.h$>$}\par {\tt \#include $<$discover/device.h$>$}\par {\tt \#include $<$discover/utils.h$>$}\par {\tt \#include $<$discover/stack.h$>$}\par \subsection*{Defines} \begin{CompactItemize} \item \#define {\bf IDLEN}~5 \end{CompactItemize} \subsection*{Enumerations} \begin{CompactItemize} \item enum {\bf state} \{ {\bf START}, {\bf FINISH}, {\bf DEVICE}, {\bf DATA} \} \end{CompactItemize} \subsection*{Functions} \begin{CompactItemize} \item void {\bf discover\_\-xml\_\-merge\_\-device\_\-url} ({\bf discover\_\-device\_\-t} $\ast$$\ast$dlist, char $\ast$url, {\bf discover\_\-xml\_\-busclass\_\-t} $\ast$busclasses, {\bf discover\_\-xml\_\-vendor\_\-t} $\ast$vendors, {\bf discover\_\-error\_\-t} $\ast$status) \item {\bf discover\_\-device\_\-t} $\ast$ {\bf discover\_\-xml\_\-get\_\-devices} ({\bf discover\_\-bus\_\-t} bus, {\bf discover\_\-error\_\-t} $\ast$status) \item void {\bf discover\_\-xml\_\-free\_\-devices} (void) \item {\bf discover\_\-device\_\-t} $\ast$ {\bf discover\_\-xml\_\-find\_\-device} ({\bf discover\_\-device\_\-t} $\ast$xml\_\-devices, char $\ast$target\_\-vendor, char $\ast$target\_\-model, {\bf discover\_\-error\_\-t} $\ast$status) \item {\bf discover\_\-device\_\-t} $\ast$ {\bf discover\_\-xml\_\-find\_\-next\_\-device} ({\bf discover\_\-device\_\-t} $\ast$xml\_\-devices, char $\ast$target\_\-vendor, char $\ast$target\_\-model, {\bf discover\_\-error\_\-t} $\ast$status) \item {\bf discover\_\-device\_\-t} $\ast$ {\bf discover\_\-xml\_\-get\_\-matching\_\-devices} ({\bf discover\_\-device\_\-t} $\ast$xml\_\-devices, char $\ast$target\_\-vendor, char $\ast$target\_\-model, {\bf discover\_\-error\_\-t} $\ast$status) \end{CompactItemize} \subsection{Detailed Description} Device XML data file parsing. This file contains the routines needed to properly process the device XML data. This file is responsible for handling URLs and storing the XML data during the parsing process. Definition in file {\bf device-xml.c}. \subsection{Define Documentation} \index{device-xml.c@{device-xml.c}!IDLEN@{IDLEN}} \index{IDLEN@{IDLEN}!device-xml.c@{device-xml.c}} \subsubsection{\setlength{\rightskip}{0pt plus 5cm}\#define IDLEN~5}\label{device-xml_8c_a0} Length (including terminating null) of model and vendor ID strings Definition at line 77 of file device-xml.c. \subsection{Enumeration Type Documentation} \index{device-xml.c@{device-xml.c}!state@{state}} \index{state@{state}!device-xml.c@{device-xml.c}} \subsubsection{\setlength{\rightskip}{0pt plus 5cm}enum {\bf state}}\label{device-xml_8c_a20} Representative of the state within the XML data Definition at line 82 of file device-xml.c.discover-2.1.2/doc/api-reference/latex/dir_000003.tex0000644002342100234210000000057610655642004020503 0ustar perepere\section{/home/pere/src/debiancvs/pkg-discover/discover/trunk/sysdeps/ Directory Reference} \label{dir_000003}\index{/home/pere/src/debiancvs/pkg-discover/discover/trunk/sysdeps/ Directory Reference@{/home/pere/src/debiancvs/pkg-discover/discover/trunk/sysdeps/ Directory Reference}} \subsection*{Directories} \begin{CompactItemize} \item directory {\bf stub} \end{CompactItemize} discover-2.1.2/doc/api-reference/latex/group__device__xml.tex0000644002342100234210000001733610655642004022756 0ustar perepere\section{Device list XML parsing} \label{group__device__xml}\index{Device list XML parsing@{Device list XML parsing}} \subsection*{Functions} \begin{CompactItemize} \item void {\bf discover\_\-xml\_\-merge\_\-device\_\-url} ({\bf discover\_\-device\_\-t} $\ast$$\ast$dlist, char $\ast$url, {\bf discover\_\-xml\_\-busclass\_\-t} $\ast$busclasses, {\bf discover\_\-xml\_\-vendor\_\-t} $\ast$vendors, {\bf discover\_\-error\_\-t} $\ast$status) \item {\bf discover\_\-device\_\-t} $\ast$ {\bf discover\_\-xml\_\-get\_\-devices} ({\bf discover\_\-bus\_\-t} bus, {\bf discover\_\-error\_\-t} $\ast$status) \item void {\bf discover\_\-xml\_\-free\_\-devices} (void) \item {\bf discover\_\-device\_\-t} $\ast$ {\bf discover\_\-xml\_\-find\_\-device} ({\bf discover\_\-device\_\-t} $\ast$xml\_\-devices, char $\ast$target\_\-vendor, char $\ast$target\_\-model, {\bf discover\_\-error\_\-t} $\ast$status) \item {\bf discover\_\-device\_\-t} $\ast$ {\bf discover\_\-xml\_\-find\_\-next\_\-device} ({\bf discover\_\-device\_\-t} $\ast$xml\_\-devices, char $\ast$target\_\-vendor, char $\ast$target\_\-model, {\bf discover\_\-error\_\-t} $\ast$status) \item {\bf discover\_\-device\_\-t} $\ast$ {\bf discover\_\-xml\_\-get\_\-matching\_\-devices} ({\bf discover\_\-device\_\-t} $\ast$xml\_\-devices, char $\ast$target\_\-vendor, char $\ast$target\_\-model, {\bf discover\_\-error\_\-t} $\ast$status) \end{CompactItemize} \subsection{Function Documentation} \index{device_xml@{device\_\-xml}!discover_xml_find_device@{discover\_\-xml\_\-find\_\-device}} \index{discover_xml_find_device@{discover\_\-xml\_\-find\_\-device}!device_xml@{device\_\-xml}} \subsubsection{\setlength{\rightskip}{0pt plus 5cm}{\bf discover\_\-device\_\-t}$\ast$ discover\_\-xml\_\-find\_\-device ({\bf discover\_\-device\_\-t} $\ast$ {\em xml\_\-devices}, char $\ast$ {\em target\_\-vendor}, char $\ast$ {\em target\_\-model}, {\bf discover\_\-error\_\-t} $\ast$ {\em status})}\label{group__device__xml_ga3} Find the first device in xml\_\-devices matching target\_\-vendor and/or target\_\-model. (One or both can be specified, but not zero.) \begin{Desc} \item[Parameters:] \begin{description} \item[{\em xml\_\-devices}]List of devices to search \item[{\em target\_\-vendor}]Vendor for which to search \item[{\em target\_\-model}]Model for which to search \item[{\em status}]Address in which to place status report \end{description} \end{Desc} Definition at line 550 of file device-xml.c. Referenced by discover\_\-xml\_\-find\_\-next\_\-device(), and discover\_\-xml\_\-get\_\-matching\_\-devices().\index{device_xml@{device\_\-xml}!discover_xml_find_next_device@{discover\_\-xml\_\-find\_\-next\_\-device}} \index{discover_xml_find_next_device@{discover\_\-xml\_\-find\_\-next\_\-device}!device_xml@{device\_\-xml}} \subsubsection{\setlength{\rightskip}{0pt plus 5cm}{\bf discover\_\-device\_\-t}$\ast$ discover\_\-xml\_\-find\_\-next\_\-device ({\bf discover\_\-device\_\-t} $\ast$ {\em xml\_\-devices}, char $\ast$ {\em target\_\-vendor}, char $\ast$ {\em target\_\-model}, {\bf discover\_\-error\_\-t} $\ast$ {\em status})}\label{group__device__xml_ga4} Find the next device in xml\_\-devices matching target\_\-vendor and/or target\_\-model. (One or both can be specified, but not zero.) The first device in the list is assumed to have been processed, so we simply call {\bf discover\_\-xml\_\-find\_\-device()}{\rm (p.\,\pageref{group__device__xml_ga3})} on the next pointer. \begin{Desc} \item[Parameters:] \begin{description} \item[{\em xml\_\-devices}]List of devices to search \item[{\em target\_\-vendor}]Vendor for which to search \item[{\em target\_\-model}]Model for which to search \item[{\em status}]Address in which to place status report \end{description} \end{Desc} Definition at line 594 of file device-xml.c. References discover\_\-xml\_\-find\_\-device(). Referenced by discover\_\-xml\_\-get\_\-matching\_\-devices().\index{device_xml@{device\_\-xml}!discover_xml_free_devices@{discover\_\-xml\_\-free\_\-devices}} \index{discover_xml_free_devices@{discover\_\-xml\_\-free\_\-devices}!device_xml@{device\_\-xml}} \subsubsection{\setlength{\rightskip}{0pt plus 5cm}void discover\_\-xml\_\-free\_\-devices (void)}\label{group__device__xml_ga2} Free the list of XML devices. Definition at line 531 of file device-xml.c. References BUS\_\-COUNT, and discover\_\-device\_\-free().\index{device_xml@{device\_\-xml}!discover_xml_get_devices@{discover\_\-xml\_\-get\_\-devices}} \index{discover_xml_get_devices@{discover\_\-xml\_\-get\_\-devices}!device_xml@{device\_\-xml}} \subsubsection{\setlength{\rightskip}{0pt plus 5cm}{\bf discover\_\-device\_\-t}$\ast$ discover\_\-xml\_\-get\_\-devices ({\bf discover\_\-bus\_\-t} {\em bus}, {\bf discover\_\-error\_\-t} $\ast$ {\em status})}\label{group__device__xml_ga1} Get the list of devices for the required bus. \begin{Desc} \item[Parameters:] \begin{description} \item[{\em bus}]Bus for which the devices are requested \item[{\em status}]Address in which to place status report \end{description} \end{Desc} Definition at line 484 of file device-xml.c. References discover\_\-error::code, discover\_\-xml\_\-get\_\-busclasses(), discover\_\-xml\_\-get\_\-data\_\-urls(), discover\_\-xml\_\-get\_\-vendors(), discover\_\-xml\_\-merge\_\-device\_\-url(), discover\_\-xml\_\-url\_\-get\_\-next(), and discover\_\-xml\_\-url\_\-get\_\-url(). Referenced by discover\_\-get\_\-devices().\index{device_xml@{device\_\-xml}!discover_xml_get_matching_devices@{discover\_\-xml\_\-get\_\-matching\_\-devices}} \index{discover_xml_get_matching_devices@{discover\_\-xml\_\-get\_\-matching\_\-devices}!device_xml@{device\_\-xml}} \subsubsection{\setlength{\rightskip}{0pt plus 5cm}{\bf discover\_\-device\_\-t}$\ast$ discover\_\-xml\_\-get\_\-matching\_\-devices ({\bf discover\_\-device\_\-t} $\ast$ {\em xml\_\-devices}, char $\ast$ {\em target\_\-vendor}, char $\ast$ {\em target\_\-model}, {\bf discover\_\-error\_\-t} $\ast$ {\em status})}\label{group__device__xml_ga5} Find and duplicate all devices in xml\_\-devices matching target\_\-vendor and/or target\_\-model. (One or both can be specified, but not zero.) \begin{Desc} \item[Parameters:] \begin{description} \item[{\em xml\_\-devices}]List of devices to search \item[{\em target\_\-vendor}]Vendor for which to search \item[{\em target\_\-model}]Model for which to search \item[{\em status}]Address in which to place status report \end{description} \end{Desc} Definition at line 614 of file device-xml.c. References discover\_\-device\_\-copy(), discover\_\-device\_\-new(), discover\_\-xml\_\-find\_\-device(), and discover\_\-xml\_\-find\_\-next\_\-device(). Referenced by discover\_\-get\_\-devices().\index{device_xml@{device\_\-xml}!discover_xml_merge_device_url@{discover\_\-xml\_\-merge\_\-device\_\-url}} \index{discover_xml_merge_device_url@{discover\_\-xml\_\-merge\_\-device\_\-url}!device_xml@{device\_\-xml}} \subsubsection{\setlength{\rightskip}{0pt plus 5cm}void discover\_\-xml\_\-merge\_\-device\_\-url ({\bf discover\_\-device\_\-t} $\ast$$\ast$ {\em dlist}, char $\ast$ {\em url}, {\bf discover\_\-xml\_\-busclass\_\-t} $\ast$ {\em busclasses}, {\bf discover\_\-xml\_\-vendor\_\-t} $\ast$ {\em vendors}, {\bf discover\_\-error\_\-t} $\ast$ {\em status})}\label{group__device__xml_ga0} Merge new busclasses into a list. \begin{Desc} \item[Parameters:] \begin{description} \item[{\em dlist}]Address of the list to merge busclasses into \item[{\em url}]URL of the document defining the busclasses \item[{\em busclasses}]List of busclasses for this bus \item[{\em vendors}]List of vendors for this bus \item[{\em status}]Address in which to place status report \end{description} \end{Desc} Definition at line 425 of file device-xml.c. References discover\_\-error::code, DISCOVER\_\-EIO, and DISCOVER\_\-EXML. Referenced by discover\_\-xml\_\-get\_\-devices().discover-2.1.2/doc/api-reference/latex/conf_8c.tex0000644002342100234210000001260310655642004020434 0ustar perepere\section{/home/pere/src/debiancvs/pkg-discover/discover/trunk/lib/conf.c File Reference} \label{conf_8c}\index{/home/pere/src/debiancvs/pkg-discover/discover/trunk/lib/conf.c@{/home/pere/src/debiancvs/pkg-discover/discover/trunk/lib/conf.c}} Configuration handling (including XML parsing). {\tt \#include \char`\"{}config.h\char`\"{}}\par {\tt \#include $<$assert.h$>$}\par {\tt \#include $<$string.h$>$}\par {\tt \#include $<$expat.h$>$}\par {\tt \#include $<$discover/discover.h$>$}\par {\tt \#include $<$discover/discover-conf.h$>$}\par {\tt \#include $<$discover/discover-xml.h$>$}\par {\tt \#include $<$discover/load-url.h$>$}\par {\tt \#include $<$discover/url-xml.h$>$}\par {\tt \#include $<$discover/utils.h$>$}\par \subsection*{Defines} \begin{CompactItemize} \item \#define {\bf dirent}~direct\label{conf_8c_a0} \item \#define {\bf NAMLEN}(d)~(d) $\rightarrow$ d\_\-namlen\label{conf_8c_a1} \end{CompactItemize} \subsection*{Enumerations} \begin{CompactItemize} \item enum {\bf state} \{ {\bf START}, {\bf BUSSCAN}, {\bf DATA\_\-SOURCES} \} \item enum {\bf scan\_\-flag} \{ {\bf SCAN\_\-NEVER}, {\bf SCAN\_\-DEFAULT} \} \end{CompactItemize} \subsection*{Functions} \begin{CompactItemize} \item {\bf discover\_\-bus\_\-map\_\-t} $\ast$ {\bf \_\-real\_\-discover\_\-conf\_\-get\_\-bus\_\-map} ({\bf discover\_\-bus\_\-t} bus, {\bf discover\_\-error\_\-t} $\ast$status) \item {\bf discover\_\-bus\_\-map\_\-t} $\ast$ {\bf \_\-real\_\-discover\_\-conf\_\-get\_\-bus\_\-map\_\-by\_\-name} (char $\ast$name, {\bf discover\_\-error\_\-t} $\ast$status) \item void {\bf discover\_\-conf\_\-load} ({\bf discover\_\-error\_\-t} $\ast$status) \item int {\bf discover\_\-conf\_\-name\_\-to\_\-bus} (char $\ast$name, {\bf discover\_\-error\_\-t} $\ast$status) \item {\bf discover\_\-bus\_\-map\_\-t} $\ast$ {\bf discover\_\-conf\_\-get\_\-full\_\-bus\_\-map} ({\bf discover\_\-error\_\-t} $\ast$status) \item {\bf discover\_\-bus\_\-map\_\-t} $\ast$ {\bf discover\_\-conf\_\-get\_\-bus\_\-map\_\-by\_\-name} (char $\ast$name, {\bf discover\_\-error\_\-t} $\ast$status) \item {\bf discover\_\-bus\_\-map\_\-t} $\ast$ {\bf discover\_\-conf\_\-get\_\-bus\_\-map} ({\bf discover\_\-bus\_\-t} bus, {\bf discover\_\-error\_\-t} $\ast$status) \item void {\bf discover\_\-conf\_\-insert\_\-url} (char $\ast$url, {\bf discover\_\-error\_\-t} $\ast$status) \item void {\bf discover\_\-conf\_\-append\_\-url} (char $\ast$url, {\bf discover\_\-error\_\-t} $\ast$status) \item {\bf discover\_\-xml\_\-url\_\-t} $\ast$ {\bf discover\_\-conf\_\-get\_\-urls} ({\bf discover\_\-error\_\-t} $\ast$status) \item void {\bf discover\_\-conf\_\-free} (void) \item char $\ast$ {\bf discover\_\-conf\_\-get\_\-bus\_\-name} ({\bf discover\_\-bus\_\-t} bus) \item char $\ast$ {\bf discover\_\-conf\_\-get\_\-filetype\_\-name} ({\bf discover\_\-filetype\_\-t} filetype) \end{CompactItemize} \subsection{Detailed Description} Configuration handling (including XML parsing). Configuration-related data is handled here. This file is responsible for loading and parsing the XML data read from the configuration file. This file also holds the routines that are responsible for altering the URL list as requested by the caller. Definition in file {\bf conf.c}. \subsection{Enumeration Type Documentation} \index{conf.c@{conf.c}!scan_flag@{scan\_\-flag}} \index{scan_flag@{scan\_\-flag}!conf.c@{conf.c}} \subsubsection{\setlength{\rightskip}{0pt plus 5cm}enum {\bf scan\_\-flag}}\label{conf_8c_a34} Define the values for a scannable bus. Definition at line 93 of file conf.c.\index{conf.c@{conf.c}!state@{state}} \index{state@{state}!conf.c@{conf.c}} \subsubsection{\setlength{\rightskip}{0pt plus 5cm}enum {\bf state}}\label{conf_8c_a33} Describe the current state within the XML structure. Definition at line 90 of file conf.c. \subsection{Function Documentation} \index{conf.c@{conf.c}!_real_discover_conf_get_bus_map@{\_\-real\_\-discover\_\-conf\_\-get\_\-bus\_\-map}} \index{_real_discover_conf_get_bus_map@{\_\-real\_\-discover\_\-conf\_\-get\_\-bus\_\-map}!conf.c@{conf.c}} \subsubsection{\setlength{\rightskip}{0pt plus 5cm}{\bf discover\_\-bus\_\-map\_\-t}$\ast$ \_\-real\_\-discover\_\-conf\_\-get\_\-bus\_\-map ({\bf discover\_\-bus\_\-t} {\em bus}, {\bf discover\_\-error\_\-t} $\ast$ {\em status})}\label{conf_8c_a16} Function that loads the bus map The \char`\"{}real\char`\"{} get\_\-bus\_\-map functions don't call conf\_\-load(), which is important to avoid infinite loops. Definition at line 154 of file conf.c. References BUS\_\-COUNT, discover\_\-error::code, and DISCOVER\_\-EBUSNOTFOUND. Referenced by \_\-real\_\-discover\_\-conf\_\-get\_\-bus\_\-map\_\-by\_\-name().\index{conf.c@{conf.c}!_real_discover_conf_get_bus_map_by_name@{\_\-real\_\-discover\_\-conf\_\-get\_\-bus\_\-map\_\-by\_\-name}} \index{_real_discover_conf_get_bus_map_by_name@{\_\-real\_\-discover\_\-conf\_\-get\_\-bus\_\-map\_\-by\_\-name}!conf.c@{conf.c}} \subsubsection{\setlength{\rightskip}{0pt plus 5cm}{\bf discover\_\-bus\_\-map\_\-t}$\ast$ \_\-real\_\-discover\_\-conf\_\-get\_\-bus\_\-map\_\-by\_\-name (char $\ast$ {\em name}, {\bf discover\_\-error\_\-t} $\ast$ {\em status})}\label{conf_8c_a17} Internal function that really loads the bus map Definition at line 168 of file conf.c. References \_\-real\_\-discover\_\-conf\_\-get\_\-bus\_\-map(), discover\_\-error::code, and discover\_\-conf\_\-name\_\-to\_\-bus(). Referenced by discover\_\-conf\_\-get\_\-bus\_\-map\_\-by\_\-name().discover-2.1.2/doc/api-reference/latex/Makefile0000644002342100234210000000152710655642004020036 0ustar perepereall clean: refman.dvi ps: refman.ps pdf: refman.pdf ps_2on1: refman_2on1.ps pdf_2on1: refman_2on1.pdf refman.ps: refman.dvi dvips -o refman.ps refman.dvi refman.pdf: refman.ps ps2pdf refman.ps refman.pdf refman.dvi: refman.tex doxygen.sty echo "Running latex..." latex refman.tex echo "Running makeindex..." makeindex refman.idx echo "Rerunning latex...." latex refman.tex latex_count=5 ; \ while egrep -s 'Rerun (LaTeX|to get cross-references right)' refman.log && [ $$latex_count -gt 0 ] ;\ do \ echo "Rerunning latex...." ;\ latex refman.tex ;\ latex_count=`expr $$latex_count - 1` ;\ done refman_2on1.ps: refman.ps psnup -2 refman.ps >refman_2on1.ps refman_2on1.pdf: refman_2on1.ps ps2pdf refman_2on1.ps refman_2on1.pdf clean: rm -f *.ps *.dvi *.aux *.toc *.idx *.ind *.ilg *.log *.out refman.pdf discover-2.1.2/doc/api-reference/latex/refman.tex0000644002342100234210000000364010655642004020366 0ustar perepere\documentclass[a4paper]{book} \usepackage{a4wide} \usepackage{makeidx} \usepackage{fancyhdr} \usepackage{graphicx} \usepackage{multicol} \usepackage{float} \usepackage{textcomp} \usepackage{alltt} \usepackage{doxygen} \makeindex \setcounter{tocdepth}{1} \renewcommand{\footrulewidth}{0.4pt} \begin{document} \begin{titlepage} \vspace*{7cm} \begin{center} {\Large discover Reference Manual}\\ \vspace*{1cm} {\large Generated by Doxygen 1.4.2}\\ \vspace*{0.5cm} {\small Thu Jul 28 03:38:00 2005}\\ \end{center} \end{titlepage} \clearemptydoublepage \pagenumbering{roman} \tableofcontents \clearemptydoublepage \pagenumbering{arabic} \chapter{Discover API Reference } \label{index}\input{index} \chapter{discover Module Index} \input{modules} \chapter{discover Directory Hierarchy} \input{dirs} \chapter{discover Data Structure Index} \input{annotated} \chapter{discover File Index} \input{files} \chapter{discover Module Documentation} \input{group__busclass__xml} \include{group__conf} \include{group__core} \include{group__device__xml} \include{group__device} \include{group__url__xml} \include{group__vendor__xml} \include{group__version__cmp} \include{group__sysdeps} \include{group__types} \chapter{discover Directory Documentation} \input{dir_000001} \include{dir_000000} \include{dir_000002} \include{dir_000004} \include{dir_000003} \chapter{discover Data Structure Documentation} \input{structdiscover__bus__map} \include{structdiscover__error} \include{structdiscover__sysdep__data} \include{structdiscover__sysdep__device__data} \chapter{discover File Documentation} \input{discover-conf_8h} \include{discover-xml_8h} \include{discover_8h} \include{sysdep_8h} \include{busclass-xml_8c} \include{conf_8c} \include{core_8c} \include{device-xml_8c} \include{device_8c} \include{load-url_8c} \include{stack_8c} \include{sysdep_8c} \include{url-xml_8c} \include{vendor-xml_8c} \include{version-cmp_8c} \include{stubs_8c} \printindex \end{document} discover-2.1.2/doc/api-reference/latex/modules.tex0000644002342100234210000000156410655642004020571 0ustar perepere\section{discover Modules} Here is a list of all modules:\begin{CompactList} \item \contentsline{section}{Busclass list XML parsing}{\pageref{group__busclass__xml}}{} \item \contentsline{section}{Configuration handling}{\pageref{group__conf}}{} \item \contentsline{section}{Core functionality}{\pageref{group__core}}{} \item \contentsline{section}{Device list XML parsing}{\pageref{group__device__xml}}{} \item \contentsline{section}{Devices}{\pageref{group__device}}{} \item \contentsline{section}{URL list XML parsing}{\pageref{group__url__xml}}{} \item \contentsline{section}{Vendor list XML parsing}{\pageref{group__vendor__xml}}{} \item \contentsline{section}{Version comparison}{\pageref{group__version__cmp}}{} \item \contentsline{section}{System-dependent interfaces}{\pageref{group__sysdeps}}{} \item \contentsline{section}{Types}{\pageref{group__types}}{} \end{CompactList} discover-2.1.2/doc/api-reference/latex/group__device.tex0000644002342100234210000003531110655642004021730 0ustar perepere\section{Devices} \label{group__device}\index{Devices@{Devices}} \subsection*{Functions} \begin{CompactItemize} \item {\bf discover\_\-device\_\-t} $\ast$ {\bf discover\_\-device\_\-find} (char $\ast$discover\_\-class, {\bf discover\_\-error\_\-t} $\ast$status) \item char $\ast$ {\bf discover\_\-device\_\-get\_\-data} ({\bf discover\_\-device\_\-t} $\ast$device, char $\ast$discover\_\-class, char $\ast$version, {\bf discover\_\-error\_\-t} $\ast$status) \item void {\bf discover\_\-device\_\-copy} ({\bf discover\_\-device\_\-t} $\ast$src, {\bf discover\_\-device\_\-t} $\ast$dst) \item char $\ast$ {\bf discover\_\-data\_\-get\_\-class} ({\bf discover\_\-data\_\-t} $\ast$data) \item char $\ast$ {\bf discover\_\-data\_\-get\_\-text} ({\bf discover\_\-data\_\-t} $\ast$data) \item {\bf discover\_\-data\_\-t} $\ast$ {\bf discover\_\-data\_\-get\_\-parent} ({\bf discover\_\-data\_\-t} $\ast$data) \item {\bf discover\_\-data\_\-t} $\ast$ {\bf discover\_\-data\_\-get\_\-child} ({\bf discover\_\-data\_\-t} $\ast$data) \item {\bf discover\_\-data\_\-t} $\ast$ {\bf discover\_\-data\_\-get\_\-next} ({\bf discover\_\-data\_\-t} $\ast$data) \item {\bf discover\_\-data\_\-t} $\ast$ {\bf discover\_\-data\_\-get\_\-prev} ({\bf discover\_\-data\_\-t} $\ast$data) \item {\bf discover\_\-data\_\-t} $\ast$ {\bf discover\_\-data\_\-get\_\-first} ({\bf discover\_\-data\_\-t} $\ast$data) \item {\bf discover\_\-data\_\-t} $\ast$ {\bf discover\_\-data\_\-new} (void) \item void {\bf discover\_\-data\_\-free} ({\bf discover\_\-data\_\-t} $\ast$data\_\-tree) \item char $\ast$ {\bf discover\_\-device\_\-get\_\-busclass} ({\bf discover\_\-device\_\-t} $\ast$device) \item char $\ast$ {\bf discover\_\-device\_\-get\_\-model\_\-id} ({\bf discover\_\-device\_\-t} $\ast$device) \item char $\ast$ {\bf discover\_\-device\_\-get\_\-model\_\-name} ({\bf discover\_\-device\_\-t} $\ast$device) \item char $\ast$ {\bf discover\_\-device\_\-get\_\-vendor\_\-id} ({\bf discover\_\-device\_\-t} $\ast$device) \item char $\ast$ {\bf discover\_\-device\_\-get\_\-vendor\_\-name} ({\bf discover\_\-device\_\-t} $\ast$device) \item {\bf discover\_\-data\_\-t} $\ast$ {\bf discover\_\-device\_\-get\_\-data\_\-struct} ({\bf discover\_\-device\_\-t} $\ast$device) \item {\bf discover\_\-device\_\-t} $\ast$ {\bf discover\_\-device\_\-get\_\-next} ({\bf discover\_\-device\_\-t} $\ast$device) \item {\bf discover\_\-device\_\-t} $\ast$ {\bf discover\_\-device\_\-new} (void) \item void {\bf discover\_\-device\_\-free} ({\bf discover\_\-device\_\-t} $\ast$devices, int free\_\-data) \end{CompactItemize} \subsection{Function Documentation} \index{device@{device}!discover_data_free@{discover\_\-data\_\-free}} \index{discover_data_free@{discover\_\-data\_\-free}!device@{device}} \subsubsection{\setlength{\rightskip}{0pt plus 5cm}void discover\_\-data\_\-free ({\bf discover\_\-data\_\-t} $\ast$ {\em data\_\-tree})}\label{group__device_ga14} Free the data tree. Note that unlike the other free functions in Discover, this one does not free data\_\-tree itself. This is a side-effect of how it is implemented. It frees all children and siblings of data\_\-tree as well as the data. After calling discover\_\-data\_\-free, you have to call free(3) on data\_\-tree itself. \begin{Desc} \item[Parameters:] \begin{description} \item[{\em data\_\-tree}]Data tree to free \end{description} \end{Desc} Definition at line 436 of file device.c. References discover\_\-data\_\-free(). Referenced by discover\_\-data\_\-free(), and discover\_\-device\_\-free().\index{device@{device}!discover_data_get_child@{discover\_\-data\_\-get\_\-child}} \index{discover_data_get_child@{discover\_\-data\_\-get\_\-child}!device@{device}} \subsubsection{\setlength{\rightskip}{0pt plus 5cm}{\bf discover\_\-data\_\-t}$\ast$ discover\_\-data\_\-get\_\-child ({\bf discover\_\-data\_\-t} $\ast$ {\em data})}\label{group__device_ga9} Get the child member of data. Definition at line 341 of file device.c.\index{device@{device}!discover_data_get_class@{discover\_\-data\_\-get\_\-class}} \index{discover_data_get_class@{discover\_\-data\_\-get\_\-class}!device@{device}} \subsubsection{\setlength{\rightskip}{0pt plus 5cm}char$\ast$ discover\_\-data\_\-get\_\-class ({\bf discover\_\-data\_\-t} $\ast$ {\em data})}\label{group__device_ga6} Get the class member of data. Definition at line 308 of file device.c.\index{device@{device}!discover_data_get_first@{discover\_\-data\_\-get\_\-first}} \index{discover_data_get_first@{discover\_\-data\_\-get\_\-first}!device@{device}} \subsubsection{\setlength{\rightskip}{0pt plus 5cm}{\bf discover\_\-data\_\-t}$\ast$ discover\_\-data\_\-get\_\-first ({\bf discover\_\-data\_\-t} $\ast$ {\em data})}\label{group__device_ga12} Get the first member of data. Definition at line 374 of file device.c.\index{device@{device}!discover_data_get_next@{discover\_\-data\_\-get\_\-next}} \index{discover_data_get_next@{discover\_\-data\_\-get\_\-next}!device@{device}} \subsubsection{\setlength{\rightskip}{0pt plus 5cm}{\bf discover\_\-data\_\-t}$\ast$ discover\_\-data\_\-get\_\-next ({\bf discover\_\-data\_\-t} $\ast$ {\em data})}\label{group__device_ga10} Get the next member of data. Definition at line 352 of file device.c.\index{device@{device}!discover_data_get_parent@{discover\_\-data\_\-get\_\-parent}} \index{discover_data_get_parent@{discover\_\-data\_\-get\_\-parent}!device@{device}} \subsubsection{\setlength{\rightskip}{0pt plus 5cm}{\bf discover\_\-data\_\-t}$\ast$ discover\_\-data\_\-get\_\-parent ({\bf discover\_\-data\_\-t} $\ast$ {\em data})}\label{group__device_ga8} Get the parent member of data. Definition at line 330 of file device.c.\index{device@{device}!discover_data_get_prev@{discover\_\-data\_\-get\_\-prev}} \index{discover_data_get_prev@{discover\_\-data\_\-get\_\-prev}!device@{device}} \subsubsection{\setlength{\rightskip}{0pt plus 5cm}{\bf discover\_\-data\_\-t}$\ast$ discover\_\-data\_\-get\_\-prev ({\bf discover\_\-data\_\-t} $\ast$ {\em data})}\label{group__device_ga11} Get the prev member of data. Definition at line 363 of file device.c.\index{device@{device}!discover_data_get_text@{discover\_\-data\_\-get\_\-text}} \index{discover_data_get_text@{discover\_\-data\_\-get\_\-text}!device@{device}} \subsubsection{\setlength{\rightskip}{0pt plus 5cm}char$\ast$ discover\_\-data\_\-get\_\-text ({\bf discover\_\-data\_\-t} $\ast$ {\em data})}\label{group__device_ga7} Get the text member of data. Definition at line 319 of file device.c.\index{device@{device}!discover_data_new@{discover\_\-data\_\-new}} \index{discover_data_new@{discover\_\-data\_\-new}!device@{device}} \subsubsection{\setlength{\rightskip}{0pt plus 5cm}{\bf discover\_\-data\_\-t}$\ast$ discover\_\-data\_\-new (void)}\label{group__device_ga13} Create and initialize a new discover\_\-data\_\-t structure. Definition at line 409 of file device.c. Referenced by \_\-discover\_\-convert\_\-device\_\-data().\index{device@{device}!discover_device_copy@{discover\_\-device\_\-copy}} \index{discover_device_copy@{discover\_\-device\_\-copy}!device@{device}} \subsubsection{\setlength{\rightskip}{0pt plus 5cm}void discover\_\-device\_\-copy ({\bf discover\_\-device\_\-t} $\ast$ {\em src}, {\bf discover\_\-device\_\-t} $\ast$ {\em dst})}\label{group__device_ga5} Copy a device structure. \begin{Desc} \item[Parameters:] \begin{description} \item[{\em src}]Copy from (source) \item[{\em dst}]Copy to (destination) \end{description} \end{Desc} Definition at line 268 of file device.c. Referenced by discover\_\-device\_\-find(), and discover\_\-xml\_\-get\_\-matching\_\-devices().\index{device@{device}!discover_device_find@{discover\_\-device\_\-find}} \index{discover_device_find@{discover\_\-device\_\-find}!device@{device}} \subsubsection{\setlength{\rightskip}{0pt plus 5cm}{\bf discover\_\-device\_\-t}$\ast$ discover\_\-device\_\-find (char $\ast$ {\em discover\_\-class}, {\bf discover\_\-error\_\-t} $\ast$ {\em status})}\label{group__device_ga0} Get a list of devices of a specified class on all buses scanned by default. \begin{Desc} \item[Parameters:] \begin{description} \item[{\em discover\_\-class}]Class of devices to find \item[{\em status}]Address in which to place status report \end{description} \end{Desc} Definition at line 63 of file device.c. References discover\_\-error::code, discover\_\-error::create\_\-message, discover\_\-conf\_\-get\_\-full\_\-bus\_\-map(), discover\_\-device\_\-copy(), discover\_\-device\_\-get\_\-next(), discover\_\-device\_\-new(), DISCOVER\_\-EDEVICENOTFOUND, discover\_\-get\_\-devices(), DISCOVER\_\-SUCCESS, discover\_\-xml\_\-busclass\_\-cmp(), and discover\_\-xml\_\-get\_\-busclasses().\index{device@{device}!discover_device_free@{discover\_\-device\_\-free}} \index{discover_device_free@{discover\_\-device\_\-free}!device@{device}} \subsubsection{\setlength{\rightskip}{0pt plus 5cm}void discover\_\-device\_\-free ({\bf discover\_\-device\_\-t} $\ast$ {\em devices}, int {\em free\_\-data})}\label{group__device_ga23} Free the device or list of devices. Pass 1 as the second argument to free the data structure for this device, 0 to leave it. It is necessary to specify 0 when one structure was copied from another with discover\_\-device\_\-copy. Otherwise, you must pass 1. \begin{Desc} \item[Parameters:] \begin{description} \item[{\em devices}]Device or list of devices to free \item[{\em free\_\-data}]Whether to free the data structure \end{description} \end{Desc} Definition at line 592 of file device.c. References discover\_\-data\_\-free(). Referenced by discover\_\-free\_\-devices(), and discover\_\-xml\_\-free\_\-devices().\index{device@{device}!discover_device_get_busclass@{discover\_\-device\_\-get\_\-busclass}} \index{discover_device_get_busclass@{discover\_\-device\_\-get\_\-busclass}!device@{device}} \subsubsection{\setlength{\rightskip}{0pt plus 5cm}char$\ast$ discover\_\-device\_\-get\_\-busclass ({\bf discover\_\-device\_\-t} $\ast$ {\em device})}\label{group__device_ga15} Get the busclass member of device. Definition at line 485 of file device.c.\index{device@{device}!discover_device_get_data@{discover\_\-device\_\-get\_\-data}} \index{discover_device_get_data@{discover\_\-device\_\-get\_\-data}!device@{device}} \subsubsection{\setlength{\rightskip}{0pt plus 5cm}char$\ast$ discover\_\-device\_\-get\_\-data ({\bf discover\_\-device\_\-t} $\ast$ {\em device}, char $\ast$ {\em discover\_\-class}, char $\ast$ {\em version}, {\bf discover\_\-error\_\-t} $\ast$ {\em status})}\label{group__device_ga4} Get the data matching the class path and version number (optional) from the device structure. The class parameter requires further explanation. The XML data sources have hierarchical data elements for each device. You access the data in an element by specifying the path along the data elements to it. For example, device elements for video cards usually have a data element of class \char`\"{}xfree86\char`\"{} containing data related to the XFree86 package; that element itself usually contains a data element of class \char`\"{}server\char`\"{} that specifies which server to use for this video card. You access this data by passing the string \char`\"{}xfree86/server\char`\"{} to this function. \begin{Desc} \item[Parameters:] \begin{description} \item[{\em device}]Device from which to get the data \item[{\em discover\_\-class}]Class to search for \item[{\em version}]Version number to require (NULL for unversioned search) \item[{\em status}]Address in which to place status report \end{description} \end{Desc} Definition at line 204 of file device.c. References discover\_\-error::code.\index{device@{device}!discover_device_get_data_struct@{discover\_\-device\_\-get\_\-data\_\-struct}} \index{discover_device_get_data_struct@{discover\_\-device\_\-get\_\-data\_\-struct}!device@{device}} \subsubsection{\setlength{\rightskip}{0pt plus 5cm}{\bf discover\_\-data\_\-t}$\ast$ discover\_\-device\_\-get\_\-data\_\-struct ({\bf discover\_\-device\_\-t} $\ast$ {\em device})}\label{group__device_ga20} Get the data member of device. Definition at line 540 of file device.c.\index{device@{device}!discover_device_get_model_id@{discover\_\-device\_\-get\_\-model\_\-id}} \index{discover_device_get_model_id@{discover\_\-device\_\-get\_\-model\_\-id}!device@{device}} \subsubsection{\setlength{\rightskip}{0pt plus 5cm}char$\ast$ discover\_\-device\_\-get\_\-model\_\-id ({\bf discover\_\-device\_\-t} $\ast$ {\em device})}\label{group__device_ga16} Get the model\_\-id member of device. Definition at line 496 of file device.c.\index{device@{device}!discover_device_get_model_name@{discover\_\-device\_\-get\_\-model\_\-name}} \index{discover_device_get_model_name@{discover\_\-device\_\-get\_\-model\_\-name}!device@{device}} \subsubsection{\setlength{\rightskip}{0pt plus 5cm}char$\ast$ discover\_\-device\_\-get\_\-model\_\-name ({\bf discover\_\-device\_\-t} $\ast$ {\em device})}\label{group__device_ga17} Get the model\_\-name member of device. Definition at line 507 of file device.c.\index{device@{device}!discover_device_get_next@{discover\_\-device\_\-get\_\-next}} \index{discover_device_get_next@{discover\_\-device\_\-get\_\-next}!device@{device}} \subsubsection{\setlength{\rightskip}{0pt plus 5cm}{\bf discover\_\-device\_\-t}$\ast$ discover\_\-device\_\-get\_\-next ({\bf discover\_\-device\_\-t} $\ast$ {\em device})}\label{group__device_ga21} Get the next member of device. Definition at line 551 of file device.c. Referenced by discover\_\-device\_\-find().\index{device@{device}!discover_device_get_vendor_id@{discover\_\-device\_\-get\_\-vendor\_\-id}} \index{discover_device_get_vendor_id@{discover\_\-device\_\-get\_\-vendor\_\-id}!device@{device}} \subsubsection{\setlength{\rightskip}{0pt plus 5cm}char$\ast$ discover\_\-device\_\-get\_\-vendor\_\-id ({\bf discover\_\-device\_\-t} $\ast$ {\em device})}\label{group__device_ga18} Get the vendor\_\-id member of device. Definition at line 518 of file device.c.\index{device@{device}!discover_device_get_vendor_name@{discover\_\-device\_\-get\_\-vendor\_\-name}} \index{discover_device_get_vendor_name@{discover\_\-device\_\-get\_\-vendor\_\-name}!device@{device}} \subsubsection{\setlength{\rightskip}{0pt plus 5cm}char$\ast$ discover\_\-device\_\-get\_\-vendor\_\-name ({\bf discover\_\-device\_\-t} $\ast$ {\em device})}\label{group__device_ga19} Get the vendor\_\-name member of device. Definition at line 529 of file device.c.\index{device@{device}!discover_device_new@{discover\_\-device\_\-new}} \index{discover_device_new@{discover\_\-device\_\-new}!device@{device}} \subsubsection{\setlength{\rightskip}{0pt plus 5cm}{\bf discover\_\-device\_\-t}$\ast$ discover\_\-device\_\-new (void)}\label{group__device_ga22} Create and initialize a new discover\_\-device\_\-t structure. Definition at line 562 of file device.c. Referenced by discover\_\-device\_\-find(), discover\_\-get\_\-devices(), and discover\_\-xml\_\-get\_\-matching\_\-devices().discover-2.1.2/doc/api-reference/latex/discover-xml_8h.tex0000644002342100234210000001370010655642004022127 0ustar perepere\section{/home/pere/src/debiancvs/pkg-discover/discover/trunk/include/discover/discover-xml.h File Reference} \label{discover-xml_8h}\index{/home/pere/src/debiancvs/pkg-discover/discover/trunk/include/discover/discover-xml.h@{/home/pere/src/debiancvs/pkg-discover/discover/trunk/include/discover/discover-xml.h}} Public interface to Discover's XML handling. {\tt \#include $<$discover/discover.h$>$}\par \subsection*{Functions} \begin{CompactItemize} \item {\bf discover\_\-device\_\-t} $\ast$ {\bf discover\_\-xml\_\-find\_\-device} ({\bf discover\_\-device\_\-t} $\ast$xml\_\-devices, char $\ast$target\_\-vendor, char $\ast$target\_\-model, {\bf discover\_\-error\_\-t} $\ast$status) \item {\bf discover\_\-device\_\-t} $\ast$ {\bf discover\_\-xml\_\-find\_\-next\_\-device} ({\bf discover\_\-device\_\-t} $\ast$xml\_\-devices, char $\ast$target\_\-vendor, char $\ast$target\_\-model, {\bf discover\_\-error\_\-t} $\ast$status) \item {\bf discover\_\-device\_\-t} $\ast$ {\bf discover\_\-xml\_\-get\_\-matching\_\-devices} ({\bf discover\_\-device\_\-t} $\ast$xml\_\-devices, char $\ast$target\_\-vendor, char $\ast$target\_\-model, {\bf discover\_\-error\_\-t} $\ast$status) \item int {\bf discover\_\-xml\_\-version\_\-cmp} (char $\ast$range, char $\ast$version, {\bf discover\_\-error\_\-t} $\ast$status) \item {\bf discover\_\-xml\_\-url\_\-t} $\ast$ {\bf discover\_\-xml\_\-url\_\-new} (void) \item void {\bf discover\_\-xml\_\-url\_\-copy} ({\bf discover\_\-xml\_\-url\_\-t} $\ast$src, {\bf discover\_\-xml\_\-url\_\-t} $\ast$dst) \item void {\bf discover\_\-xml\_\-url\_\-free} ({\bf discover\_\-xml\_\-url\_\-t} $\ast$urls) \item char $\ast$ {\bf discover\_\-xml\_\-url\_\-get\_\-url} ({\bf discover\_\-xml\_\-url\_\-t} $\ast$url) \item char $\ast$ {\bf discover\_\-xml\_\-url\_\-get\_\-bus} ({\bf discover\_\-xml\_\-url\_\-t} $\ast$url) \item char $\ast$ {\bf discover\_\-xml\_\-url\_\-get\_\-type} ({\bf discover\_\-xml\_\-url\_\-t} $\ast$url) \item {\bf discover\_\-xml\_\-url\_\-t} $\ast$ {\bf discover\_\-xml\_\-url\_\-get\_\-next} ({\bf discover\_\-xml\_\-url\_\-t} $\ast$url) \item {\bf discover\_\-xml\_\-url\_\-t} $\ast$ {\bf discover\_\-xml\_\-url\_\-get\_\-last} ({\bf discover\_\-xml\_\-url\_\-t} $\ast$url) \item char $\ast$ {\bf discover\_\-xml\_\-url\_\-get\_\-label} ({\bf discover\_\-xml\_\-url\_\-t} $\ast$url) \item {\bf discover\_\-xml\_\-url\_\-t} $\ast$ {\bf discover\_\-xml\_\-get\_\-urls} ({\bf discover\_\-error\_\-t} $\ast$status) \item void {\bf discover\_\-xml\_\-free\_\-urls} (void) \item {\bf discover\_\-xml\_\-url\_\-t} $\ast$ {\bf discover\_\-xml\_\-get\_\-data\_\-urls} ({\bf discover\_\-bus\_\-t} bus, {\bf discover\_\-filetype\_\-t} filetype, {\bf discover\_\-error\_\-t} $\ast$status) \item void {\bf discover\_\-xml\_\-free\_\-data\_\-urls} (void) \item {\bf discover\_\-xml\_\-busclass\_\-t} $\ast$ {\bf discover\_\-xml\_\-busclass\_\-new} (void) \item {\bf discover\_\-xml\_\-busclass\_\-t} $\ast$ {\bf discover\_\-xml\_\-get\_\-busclasses} ({\bf discover\_\-bus\_\-t} bus, {\bf discover\_\-error\_\-t} $\ast$status) \item void {\bf discover\_\-xml\_\-free\_\-busclasses} (void) \item void {\bf discover\_\-xml\_\-merge\_\-busclass\_\-url} ({\bf discover\_\-xml\_\-busclass\_\-t} $\ast$$\ast$blist, char $\ast$filename, {\bf discover\_\-error\_\-t} $\ast$status) \item char $\ast$ {\bf discover\_\-xml\_\-busclass\_\-to\_\-class} (char $\ast$busclass, {\bf discover\_\-xml\_\-busclass\_\-t} $\ast$busclasses) \item int {\bf discover\_\-xml\_\-busclass\_\-cmp} (char $\ast$busclass, char $\ast$discover\_\-class, {\bf discover\_\-xml\_\-busclass\_\-t} $\ast$busclasses) \item char $\ast$ {\bf discover\_\-xml\_\-busclass\_\-get\_\-id} ({\bf discover\_\-xml\_\-busclass\_\-t} $\ast$busclass) \item char $\ast$ {\bf discover\_\-xml\_\-busclass\_\-get\_\-name} ({\bf discover\_\-xml\_\-busclass\_\-t} $\ast$busclass) \item {\bf discover\_\-xml\_\-busclass\_\-t} $\ast$ {\bf discover\_\-xml\_\-busclass\_\-get\_\-next} ({\bf discover\_\-xml\_\-busclass\_\-t} $\ast$busclass) \item void {\bf discover\_\-xml\_\-busclass\_\-free} ({\bf discover\_\-xml\_\-busclass\_\-t} $\ast$busclasses) \item {\bf discover\_\-device\_\-t} $\ast$ {\bf discover\_\-xml\_\-get\_\-devices} ({\bf discover\_\-bus\_\-t} bus, {\bf discover\_\-error\_\-t} $\ast$status) \item void {\bf discover\_\-xml\_\-free\_\-devices} (void) \item void {\bf discover\_\-xml\_\-merge\_\-device\_\-url} ({\bf discover\_\-device\_\-t} $\ast$$\ast$dlist, char $\ast$url, {\bf discover\_\-xml\_\-busclass\_\-t} $\ast$busclasses, {\bf discover\_\-xml\_\-vendor\_\-t} $\ast$vendors, {\bf discover\_\-error\_\-t} $\ast$status) \item {\bf discover\_\-xml\_\-vendor\_\-t} $\ast$ {\bf discover\_\-xml\_\-vendor\_\-new} (void) \item void {\bf discover\_\-xml\_\-merge\_\-vendor\_\-url} ({\bf discover\_\-xml\_\-vendor\_\-t} $\ast$$\ast$vlist, char $\ast$filename, {\bf discover\_\-error\_\-t} $\ast$status) \item {\bf discover\_\-xml\_\-vendor\_\-t} $\ast$ {\bf discover\_\-xml\_\-get\_\-vendors} ({\bf discover\_\-bus\_\-t} bus, {\bf discover\_\-error\_\-t} $\ast$status) \item void {\bf discover\_\-xml\_\-free\_\-vendors} (void) \item char $\ast$ {\bf discover\_\-xml\_\-vendor\_\-id2name} ({\bf discover\_\-xml\_\-vendor\_\-t} $\ast$vendors, char $\ast$id) \item char $\ast$ {\bf discover\_\-xml\_\-vendor\_\-get\_\-id} ({\bf discover\_\-xml\_\-vendor\_\-t} $\ast$vendor) \item char $\ast$ {\bf discover\_\-xml\_\-vendor\_\-get\_\-name} ({\bf discover\_\-xml\_\-vendor\_\-t} $\ast$vendor) \item {\bf discover\_\-xml\_\-vendor\_\-t} $\ast$ {\bf discover\_\-xml\_\-vendor\_\-get\_\-next} ({\bf discover\_\-xml\_\-vendor\_\-t} $\ast$vendor) \item void {\bf discover\_\-xml\_\-vendor\_\-free} ({\bf discover\_\-xml\_\-vendor\_\-t} $\ast$vendors) \end{CompactItemize} \subsection{Detailed Description} Public interface to Discover's XML handling. Public interface that exposes Discover's XML routines. These functions are used to read the XML data loaded from the specified configuration file(s). Definition in file {\bf discover-xml.h}.discover-2.1.2/doc/api-reference/latex/structdiscover__sysdep__data.tex0000644002342100234210000000647110655642004025064 0ustar perepere\section{discover\_\-sysdep\_\-data Struct Reference} \label{structdiscover__sysdep__data}\index{discover_sysdep_data@{discover\_\-sysdep\_\-data}} {\tt \#include $<$sysdep.h$>$} \subsection*{Data Fields} \begin{CompactItemize} \item char $\ast$ {\bf busclass} \item char $\ast$ {\bf vendor} \item char $\ast$ {\bf model} \item {\bf discover\_\-sysdep\_\-device\_\-data\_\-t} $\ast$ {\bf data} \item {\bf discover\_\-sysdep\_\-data} $\ast$ {\bf next} \end{CompactItemize} \subsection{Detailed Description} Linked list node, used to return hardware-identification information discovered by the system-dependent interface Definition at line 56 of file sysdep.h. \subsection{Field Documentation} \index{discover_sysdep_data@{discover\_\-sysdep\_\-data}!busclass@{busclass}} \index{busclass@{busclass}!discover_sysdep_data@{discover\_\-sysdep\_\-data}} \subsubsection{\setlength{\rightskip}{0pt plus 5cm}char$\ast$ {\bf discover\_\-sysdep\_\-data::busclass}}\label{structdiscover__sysdep__data_o0} String describing the general device class Definition at line 58 of file sysdep.h. Referenced by \_\-discover\_\-free\_\-sysdep\_\-data(), and \_\-discover\_\-sysdep\_\-data\_\-new().\index{discover_sysdep_data@{discover\_\-sysdep\_\-data}!data@{data}} \index{data@{data}!discover_sysdep_data@{discover\_\-sysdep\_\-data}} \subsubsection{\setlength{\rightskip}{0pt plus 5cm}{\bf discover\_\-sysdep\_\-device\_\-data\_\-t}$\ast$ {\bf discover\_\-sysdep\_\-data::data}}\label{structdiscover__sysdep__data_o3} Pointer to any sysdep/device specific data to be returned Definition at line 64 of file sysdep.h. Referenced by \_\-discover\_\-free\_\-sysdep\_\-data(), and \_\-discover\_\-sysdep\_\-data\_\-new().\index{discover_sysdep_data@{discover\_\-sysdep\_\-data}!model@{model}} \index{model@{model}!discover_sysdep_data@{discover\_\-sysdep\_\-data}} \subsubsection{\setlength{\rightskip}{0pt plus 5cm}char$\ast$ {\bf discover\_\-sysdep\_\-data::model}}\label{structdiscover__sysdep__data_o2} String identifying the model Definition at line 62 of file sysdep.h. Referenced by \_\-discover\_\-free\_\-sysdep\_\-data(), and \_\-discover\_\-sysdep\_\-data\_\-new().\index{discover_sysdep_data@{discover\_\-sysdep\_\-data}!next@{next}} \index{next@{next}!discover_sysdep_data@{discover\_\-sysdep\_\-data}} \subsubsection{\setlength{\rightskip}{0pt plus 5cm}struct {\bf discover\_\-sysdep\_\-data}$\ast$ {\bf discover\_\-sysdep\_\-data::next}}\label{structdiscover__sysdep__data_o4} Pointer to the next hardware device discovered Definition at line 66 of file sysdep.h. Referenced by \_\-discover\_\-free\_\-sysdep\_\-data(), and \_\-discover\_\-sysdep\_\-data\_\-new().\index{discover_sysdep_data@{discover\_\-sysdep\_\-data}!vendor@{vendor}} \index{vendor@{vendor}!discover_sysdep_data@{discover\_\-sysdep\_\-data}} \subsubsection{\setlength{\rightskip}{0pt plus 5cm}char$\ast$ {\bf discover\_\-sysdep\_\-data::vendor}}\label{structdiscover__sysdep__data_o1} String describing the manufacturer or distributor Definition at line 60 of file sysdep.h. Referenced by \_\-discover\_\-free\_\-sysdep\_\-data(), and \_\-discover\_\-sysdep\_\-data\_\-new(). The documentation for this struct was generated from the following file:\begin{CompactItemize} \item /home/pere/src/debiancvs/pkg-discover/discover/trunk/include/discover/{\bf sysdep.h}\end{CompactItemize} discover-2.1.2/doc/api-reference/latex/device_8c.tex0000644002342100234210000000703110655642004020745 0ustar perepere\section{/home/pere/src/debiancvs/pkg-discover/discover/trunk/lib/device.c File Reference} \label{device_8c}\index{/home/pere/src/debiancvs/pkg-discover/discover/trunk/lib/device.c@{/home/pere/src/debiancvs/pkg-discover/discover/trunk/lib/device.c}} Device enumeration and information management. {\tt \#include \char`\"{}config.h\char`\"{}}\par {\tt \#include $<$sys/types.h$>$}\par {\tt \#include $<$assert.h$>$}\par {\tt \#include $<$stdbool.h$>$}\par {\tt \#include $<$string.h$>$}\par {\tt \#include $<$discover/discover.h$>$}\par {\tt \#include $<$discover/discover-conf.h$>$}\par {\tt \#include $<$discover/discover-xml.h$>$}\par {\tt \#include $<$discover/device.h$>$}\par {\tt \#include $<$discover/utils.h$>$}\par \subsection*{Functions} \begin{CompactItemize} \item {\bf discover\_\-device\_\-t} $\ast$ {\bf discover\_\-device\_\-find} (char $\ast$discover\_\-class, {\bf discover\_\-error\_\-t} $\ast$status) \item char $\ast$ {\bf discover\_\-device\_\-get\_\-data} ({\bf discover\_\-device\_\-t} $\ast$device, char $\ast$discover\_\-class, char $\ast$version, {\bf discover\_\-error\_\-t} $\ast$status) \item void {\bf discover\_\-device\_\-copy} ({\bf discover\_\-device\_\-t} $\ast$src, {\bf discover\_\-device\_\-t} $\ast$dst) \item char $\ast$ {\bf discover\_\-data\_\-get\_\-class} ({\bf discover\_\-data\_\-t} $\ast$data) \item char $\ast$ {\bf discover\_\-data\_\-get\_\-text} ({\bf discover\_\-data\_\-t} $\ast$data) \item {\bf discover\_\-data\_\-t} $\ast$ {\bf discover\_\-data\_\-get\_\-parent} ({\bf discover\_\-data\_\-t} $\ast$data) \item {\bf discover\_\-data\_\-t} $\ast$ {\bf discover\_\-data\_\-get\_\-child} ({\bf discover\_\-data\_\-t} $\ast$data) \item {\bf discover\_\-data\_\-t} $\ast$ {\bf discover\_\-data\_\-get\_\-next} ({\bf discover\_\-data\_\-t} $\ast$data) \item {\bf discover\_\-data\_\-t} $\ast$ {\bf discover\_\-data\_\-get\_\-prev} ({\bf discover\_\-data\_\-t} $\ast$data) \item {\bf discover\_\-data\_\-t} $\ast$ {\bf discover\_\-data\_\-get\_\-first} ({\bf discover\_\-data\_\-t} $\ast$data) \item {\bf discover\_\-data\_\-t} $\ast$ {\bf discover\_\-data\_\-new} (void) \item void {\bf discover\_\-data\_\-free} ({\bf discover\_\-data\_\-t} $\ast$data\_\-tree) \item char $\ast$ {\bf discover\_\-device\_\-get\_\-busclass} ({\bf discover\_\-device\_\-t} $\ast$device) \item char $\ast$ {\bf discover\_\-device\_\-get\_\-model\_\-id} ({\bf discover\_\-device\_\-t} $\ast$device) \item char $\ast$ {\bf discover\_\-device\_\-get\_\-model\_\-name} ({\bf discover\_\-device\_\-t} $\ast$device) \item char $\ast$ {\bf discover\_\-device\_\-get\_\-vendor\_\-id} ({\bf discover\_\-device\_\-t} $\ast$device) \item char $\ast$ {\bf discover\_\-device\_\-get\_\-vendor\_\-name} ({\bf discover\_\-device\_\-t} $\ast$device) \item {\bf discover\_\-data\_\-t} $\ast$ {\bf discover\_\-device\_\-get\_\-data\_\-struct} ({\bf discover\_\-device\_\-t} $\ast$device) \item {\bf discover\_\-device\_\-t} $\ast$ {\bf discover\_\-device\_\-get\_\-next} ({\bf discover\_\-device\_\-t} $\ast$device) \item {\bf discover\_\-device\_\-t} $\ast$ {\bf discover\_\-device\_\-new} (void) \item void {\bf discover\_\-device\_\-free} ({\bf discover\_\-device\_\-t} $\ast$devices, int free\_\-data) \end{CompactItemize} \subsection{Detailed Description} Device enumeration and information management. This file contains many device-related routines. Most of these routines are used to alter or access data pertaining to a device. These routines will likely be most interesting to people writing code against the Discover API. Definition in file {\bf device.c}.discover-2.1.2/doc/api-reference/latex/stack_8c.tex0000644002342100234210000001035310655642004020614 0ustar perepere\section{/home/pere/src/debiancvs/pkg-discover/discover/trunk/lib/stack.c File Reference} \label{stack_8c}\index{/home/pere/src/debiancvs/pkg-discover/discover/trunk/lib/stack.c@{/home/pere/src/debiancvs/pkg-discover/discover/trunk/lib/stack.c}} Stack routines for Discover. {\tt \#include $<$stdio.h$>$}\par {\tt \#include $<$assert.h$>$}\par {\tt \#include $<$stdbool.h$>$}\par {\tt \#include $<$stdlib.h$>$}\par {\tt \#include $<$discover/utils.h$>$}\par {\tt \#include $<$discover/stack.h$>$}\par \subsection*{Functions} \begin{CompactItemize} \item discover\_\-xml\_\-stack $\ast$ {\bf discover\_\-xml\_\-stack\_\-new} () \item void {\bf discover\_\-xml\_\-stack\_\-destroy} (discover\_\-xml\_\-stack $\ast$stack) \item void {\bf discover\_\-xml\_\-stack\_\-push} (discover\_\-xml\_\-stack $\ast$$\ast$stack, void $\ast$data) \item void $\ast$ {\bf discover\_\-xml\_\-stack\_\-pop} (discover\_\-xml\_\-stack $\ast$$\ast$stack) \item void $\ast$ {\bf discover\_\-xml\_\-stack\_\-get} (discover\_\-xml\_\-stack $\ast$stack) \item void $\ast$ {\bf discover\_\-xml\_\-stack\_\-getbynum} (discover\_\-xml\_\-stack $\ast$stack, int i) \end{CompactItemize} \subsection{Detailed Description} Stack routines for Discover. This is a generic stack routine that Discover uses. The stack is needed because there wasn't a good way to track the traversal depth through the XML data. These routines brought much sanity to the XML parsing process. They are generic enough that they can be used for any number of applications. Definition in file {\bf stack.c}. \subsection{Function Documentation} \index{stack.c@{stack.c}!discover_xml_stack_destroy@{discover\_\-xml\_\-stack\_\-destroy}} \index{discover_xml_stack_destroy@{discover\_\-xml\_\-stack\_\-destroy}!stack.c@{stack.c}} \subsubsection{\setlength{\rightskip}{0pt plus 5cm}void discover\_\-xml\_\-stack\_\-destroy (discover\_\-xml\_\-stack $\ast$ {\em stack})}\label{stack_8c_a1} Routine responsible for destroying the stack base once we're done Definition at line 62 of file stack.c. Referenced by discover\_\-xml\_\-stack\_\-pop().\index{stack.c@{stack.c}!discover_xml_stack_get@{discover\_\-xml\_\-stack\_\-get}} \index{discover_xml_stack_get@{discover\_\-xml\_\-stack\_\-get}!stack.c@{stack.c}} \subsubsection{\setlength{\rightskip}{0pt plus 5cm}void$\ast$ discover\_\-xml\_\-stack\_\-get (discover\_\-xml\_\-stack $\ast$ {\em stack})}\label{stack_8c_a4} Return the top item without popping it. Definition at line 103 of file stack.c.\index{stack.c@{stack.c}!discover_xml_stack_getbynum@{discover\_\-xml\_\-stack\_\-getbynum}} \index{discover_xml_stack_getbynum@{discover\_\-xml\_\-stack\_\-getbynum}!stack.c@{stack.c}} \subsubsection{\setlength{\rightskip}{0pt plus 5cm}void$\ast$ discover\_\-xml\_\-stack\_\-getbynum (discover\_\-xml\_\-stack $\ast$ {\em stack}, int {\em i})}\label{stack_8c_a5} Return the item at depth i on the stack. Definition at line 109 of file stack.c.\index{stack.c@{stack.c}!discover_xml_stack_new@{discover\_\-xml\_\-stack\_\-new}} \index{discover_xml_stack_new@{discover\_\-xml\_\-stack\_\-new}!stack.c@{stack.c}} \subsubsection{\setlength{\rightskip}{0pt plus 5cm}discover\_\-xml\_\-stack$\ast$ discover\_\-xml\_\-stack\_\-new ()}\label{stack_8c_a0} Routine responsible for creating the base of the stack Definition at line 48 of file stack.c. Referenced by discover\_\-xml\_\-stack\_\-push().\index{stack.c@{stack.c}!discover_xml_stack_pop@{discover\_\-xml\_\-stack\_\-pop}} \index{discover_xml_stack_pop@{discover\_\-xml\_\-stack\_\-pop}!stack.c@{stack.c}} \subsubsection{\setlength{\rightskip}{0pt plus 5cm}void$\ast$ discover\_\-xml\_\-stack\_\-pop (discover\_\-xml\_\-stack $\ast$$\ast$ {\em stack})}\label{stack_8c_a3} Pop an item from the stack. Definition at line 83 of file stack.c. References discover\_\-xml\_\-stack\_\-destroy().\index{stack.c@{stack.c}!discover_xml_stack_push@{discover\_\-xml\_\-stack\_\-push}} \index{discover_xml_stack_push@{discover\_\-xml\_\-stack\_\-push}!stack.c@{stack.c}} \subsubsection{\setlength{\rightskip}{0pt plus 5cm}void discover\_\-xml\_\-stack\_\-push (discover\_\-xml\_\-stack $\ast$$\ast$ {\em stack}, void $\ast$ {\em data})}\label{stack_8c_a2} Push an item onto the stack. Definition at line 69 of file stack.c. References discover\_\-xml\_\-stack\_\-new().discover-2.1.2/doc/api-reference/latex/stubs_8c.tex0000644002342100234210000000235110655642004020646 0ustar perepere\section{/home/pere/src/debiancvs/pkg-discover/discover/trunk/sysdeps/stub/stubs.c File Reference} \label{stubs_8c}\index{/home/pere/src/debiancvs/pkg-discover/discover/trunk/sysdeps/stub/stubs.c@{/home/pere/src/debiancvs/pkg-discover/discover/trunk/sysdeps/stub/stubs.c}} Stub system-dependent code. {\tt \#include $<$config.h$>$}\par {\tt \#include $<$sysdep.h$>$}\par {\tt \#include $<$stdio.h$>$}\par \subsection*{Functions} \begin{CompactItemize} \item {\bf discover\_\-sysdep\_\-data\_\-t} $\ast$ {\bf \_\-discover\_\-get\_\-ata\_\-raw} (void) \item {\bf discover\_\-sysdep\_\-data\_\-t} $\ast$ {\bf \_\-discover\_\-get\_\-pci\_\-raw} (void) \item {\bf discover\_\-sysdep\_\-data\_\-t} $\ast$ {\bf \_\-discover\_\-get\_\-pcmcia\_\-raw} (void) \item {\bf discover\_\-sysdep\_\-data\_\-t} $\ast$ {\bf \_\-discover\_\-get\_\-scsi\_\-raw} (void) \item {\bf discover\_\-sysdep\_\-data\_\-t} $\ast$ {\bf \_\-discover\_\-get\_\-usb\_\-raw} (void) \end{CompactItemize} \subsection{Detailed Description} Stub system-dependent code. This file represents a dummy OS-dependent hardware interface. These routines are the skeleton structure that must be followed to allow Discover to operate on multiple architectures. Definition in file {\bf stubs.c}.discover-2.1.2/doc/api-reference/latex/structdiscover__error.tex0000644002342100234210000000612210655642004023547 0ustar perepere\section{discover\_\-error Struct Reference} \label{structdiscover__error}\index{discover_error@{discover\_\-error}} {\tt \#include $<$discover.h$>$} \subsection*{Data Fields} \begin{CompactItemize} \item {\bf discover\_\-error\_\-code\_\-t} {\bf code} \item char $\ast$ {\bf message} \item {\bf discover\_\-create\_\-message\_\-t} $\ast$ {\bf create\_\-message} \end{CompactItemize} \subsection{Detailed Description} All functions that perform some action (as opposed to returning a member of a structure, for example) take an argument of this type. It is used to report that the action succeeded, or why it failed. Definition at line 106 of file discover.h. \subsection{Field Documentation} \index{discover_error@{discover\_\-error}!code@{code}} \index{code@{code}!discover_error@{discover\_\-error}} \subsubsection{\setlength{\rightskip}{0pt plus 5cm}{\bf discover\_\-error\_\-code\_\-t} {\bf discover\_\-error::code}}\label{structdiscover__error_o0} Return the error code value that is checked Definition at line 108 of file discover.h. Referenced by \_\-real\_\-discover\_\-conf\_\-get\_\-bus\_\-map(), \_\-real\_\-discover\_\-conf\_\-get\_\-bus\_\-map\_\-by\_\-name(), discover\_\-conf\_\-append\_\-url(), discover\_\-conf\_\-get\_\-bus\_\-map(), discover\_\-conf\_\-get\_\-bus\_\-map\_\-by\_\-name(), discover\_\-conf\_\-get\_\-urls(), discover\_\-conf\_\-insert\_\-url(), discover\_\-conf\_\-load(), discover\_\-conf\_\-name\_\-to\_\-bus(), discover\_\-device\_\-find(), discover\_\-device\_\-get\_\-data(), discover\_\-error\_\-new(), discover\_\-get\_\-devices(), discover\_\-strerror(), discover\_\-xml\_\-get\_\-busclasses(), discover\_\-xml\_\-get\_\-data\_\-urls(), discover\_\-xml\_\-get\_\-devices(), discover\_\-xml\_\-get\_\-urls(), discover\_\-xml\_\-get\_\-vendors(), discover\_\-xml\_\-merge\_\-busclass\_\-url(), discover\_\-xml\_\-merge\_\-device\_\-url(), discover\_\-xml\_\-merge\_\-vendor\_\-url(), and discover\_\-xml\_\-version\_\-cmp().\index{discover_error@{discover\_\-error}!create_message@{create\_\-message}} \index{create_message@{create\_\-message}!discover_error@{discover\_\-error}} \subsubsection{\setlength{\rightskip}{0pt plus 5cm}{\bf discover\_\-create\_\-message\_\-t}$\ast$ {\bf discover\_\-error::create\_\-message}}\label{structdiscover__error_o2} Function pointer into a routine to create a message for us Definition at line 112 of file discover.h. Referenced by discover\_\-conf\_\-load(), discover\_\-device\_\-find(), and discover\_\-error\_\-new().\index{discover_error@{discover\_\-error}!message@{message}} \index{message@{message}!discover_error@{discover\_\-error}} \subsubsection{\setlength{\rightskip}{0pt plus 5cm}char$\ast$ {\bf discover\_\-error::message}}\label{structdiscover__error_o1} String containing the message from the last error Definition at line 110 of file discover.h. Referenced by discover\_\-error\_\-free(), and discover\_\-error\_\-new(). The documentation for this struct was generated from the following file:\begin{CompactItemize} \item /home/pere/src/debiancvs/pkg-discover/discover/trunk/include/discover/{\bf discover.h}\end{CompactItemize} discover-2.1.2/doc/api-reference/latex/group__vendor__xml.tex0000644002342100234210000001557410655642004023016 0ustar perepere\section{Vendor list XML parsing} \label{group__vendor__xml}\index{Vendor list XML parsing@{Vendor list XML parsing}} \subsection*{Functions} \begin{CompactItemize} \item void {\bf discover\_\-xml\_\-merge\_\-vendor\_\-url} ({\bf discover\_\-xml\_\-vendor\_\-t} $\ast$$\ast$vlist, char $\ast$url, {\bf discover\_\-error\_\-t} $\ast$status) \item {\bf discover\_\-xml\_\-vendor\_\-t} $\ast$ {\bf discover\_\-xml\_\-get\_\-vendors} ({\bf discover\_\-bus\_\-t} bus, {\bf discover\_\-error\_\-t} $\ast$status) \item void {\bf discover\_\-xml\_\-free\_\-vendors} (void) \item char $\ast$ {\bf discover\_\-xml\_\-vendor\_\-id2name} ({\bf discover\_\-xml\_\-vendor\_\-t} $\ast$vendors, char $\ast$id) \item char $\ast$ {\bf discover\_\-xml\_\-vendor\_\-get\_\-id} ({\bf discover\_\-xml\_\-vendor\_\-t} $\ast$vendor) \item char $\ast$ {\bf discover\_\-xml\_\-vendor\_\-get\_\-name} ({\bf discover\_\-xml\_\-vendor\_\-t} $\ast$vendor) \item {\bf discover\_\-xml\_\-vendor\_\-t} $\ast$ {\bf discover\_\-xml\_\-vendor\_\-get\_\-next} ({\bf discover\_\-xml\_\-vendor\_\-t} $\ast$vendor) \item {\bf discover\_\-xml\_\-vendor\_\-t} $\ast$ {\bf discover\_\-xml\_\-vendor\_\-new} (void) \item void {\bf discover\_\-xml\_\-vendor\_\-free} ({\bf discover\_\-xml\_\-vendor\_\-t} $\ast$vendors) \end{CompactItemize} \subsection{Function Documentation} \index{vendor_xml@{vendor\_\-xml}!discover_xml_free_vendors@{discover\_\-xml\_\-free\_\-vendors}} \index{discover_xml_free_vendors@{discover\_\-xml\_\-free\_\-vendors}!vendor_xml@{vendor\_\-xml}} \subsubsection{\setlength{\rightskip}{0pt plus 5cm}void discover\_\-xml\_\-free\_\-vendors (void)}\label{group__vendor__xml_ga2} Free the list of vendors. Definition at line 248 of file vendor-xml.c. References BUS\_\-COUNT, and discover\_\-xml\_\-vendor\_\-free().\index{vendor_xml@{vendor\_\-xml}!discover_xml_get_vendors@{discover\_\-xml\_\-get\_\-vendors}} \index{discover_xml_get_vendors@{discover\_\-xml\_\-get\_\-vendors}!vendor_xml@{vendor\_\-xml}} \subsubsection{\setlength{\rightskip}{0pt plus 5cm}{\bf discover\_\-xml\_\-vendor\_\-t}$\ast$ discover\_\-xml\_\-get\_\-vendors ({\bf discover\_\-bus\_\-t} {\em bus}, {\bf discover\_\-error\_\-t} $\ast$ {\em status})}\label{group__vendor__xml_ga1} Get the list of vendors by bus type. \begin{Desc} \item[Parameters:] \begin{description} \item[{\em bus}]Type of bus for which vendors are required \item[{\em status}]Address in which to place status report \end{description} \end{Desc} Definition at line 215 of file vendor-xml.c. References discover\_\-error::code, discover\_\-xml\_\-get\_\-data\_\-urls(), discover\_\-xml\_\-merge\_\-vendor\_\-url(), discover\_\-xml\_\-url\_\-get\_\-next(), and discover\_\-xml\_\-url\_\-get\_\-url(). Referenced by discover\_\-xml\_\-get\_\-devices().\index{vendor_xml@{vendor\_\-xml}!discover_xml_merge_vendor_url@{discover\_\-xml\_\-merge\_\-vendor\_\-url}} \index{discover_xml_merge_vendor_url@{discover\_\-xml\_\-merge\_\-vendor\_\-url}!vendor_xml@{vendor\_\-xml}} \subsubsection{\setlength{\rightskip}{0pt plus 5cm}void discover\_\-xml\_\-merge\_\-vendor\_\-url ({\bf discover\_\-xml\_\-vendor\_\-t} $\ast$$\ast$ {\em vlist}, char $\ast$ {\em url}, {\bf discover\_\-error\_\-t} $\ast$ {\em status})}\label{group__vendor__xml_ga0} Merge new vendors into a list. \begin{Desc} \item[Parameters:] \begin{description} \item[{\em vlist}]Address of the list to merge vendors into \item[{\em url}]URL of the document defining the vendors \item[{\em status}]Address in which to place status report \end{description} \end{Desc} Definition at line 173 of file vendor-xml.c. References discover\_\-error::code, DISCOVER\_\-EIO, and DISCOVER\_\-EXML. Referenced by discover\_\-xml\_\-get\_\-vendors().\index{vendor_xml@{vendor\_\-xml}!discover_xml_vendor_free@{discover\_\-xml\_\-vendor\_\-free}} \index{discover_xml_vendor_free@{discover\_\-xml\_\-vendor\_\-free}!vendor_xml@{vendor\_\-xml}} \subsubsection{\setlength{\rightskip}{0pt plus 5cm}void discover\_\-xml\_\-vendor\_\-free ({\bf discover\_\-xml\_\-vendor\_\-t} $\ast$ {\em vendors})}\label{group__vendor__xml_ga8} Free the vendor or list of vendors. \begin{Desc} \item[Parameters:] \begin{description} \item[{\em vendors}]Vendor or list of vendors to free \end{description} \end{Desc} Definition at line 342 of file vendor-xml.c. Referenced by discover\_\-xml\_\-free\_\-vendors().\index{vendor_xml@{vendor\_\-xml}!discover_xml_vendor_get_id@{discover\_\-xml\_\-vendor\_\-get\_\-id}} \index{discover_xml_vendor_get_id@{discover\_\-xml\_\-vendor\_\-get\_\-id}!vendor_xml@{vendor\_\-xml}} \subsubsection{\setlength{\rightskip}{0pt plus 5cm}char$\ast$ discover\_\-xml\_\-vendor\_\-get\_\-id ({\bf discover\_\-xml\_\-vendor\_\-t} $\ast$ {\em vendor})}\label{group__vendor__xml_ga4} Get the id member of vendor. Definition at line 290 of file vendor-xml.c.\index{vendor_xml@{vendor\_\-xml}!discover_xml_vendor_get_name@{discover\_\-xml\_\-vendor\_\-get\_\-name}} \index{discover_xml_vendor_get_name@{discover\_\-xml\_\-vendor\_\-get\_\-name}!vendor_xml@{vendor\_\-xml}} \subsubsection{\setlength{\rightskip}{0pt plus 5cm}char$\ast$ discover\_\-xml\_\-vendor\_\-get\_\-name ({\bf discover\_\-xml\_\-vendor\_\-t} $\ast$ {\em vendor})}\label{group__vendor__xml_ga5} Get the name member of vendor. Definition at line 301 of file vendor-xml.c.\index{vendor_xml@{vendor\_\-xml}!discover_xml_vendor_get_next@{discover\_\-xml\_\-vendor\_\-get\_\-next}} \index{discover_xml_vendor_get_next@{discover\_\-xml\_\-vendor\_\-get\_\-next}!vendor_xml@{vendor\_\-xml}} \subsubsection{\setlength{\rightskip}{0pt plus 5cm}{\bf discover\_\-xml\_\-vendor\_\-t}$\ast$ discover\_\-xml\_\-vendor\_\-get\_\-next ({\bf discover\_\-xml\_\-vendor\_\-t} $\ast$ {\em vendor})}\label{group__vendor__xml_ga6} Get the next member of vendor. Definition at line 312 of file vendor-xml.c.\index{vendor_xml@{vendor\_\-xml}!discover_xml_vendor_id2name@{discover\_\-xml\_\-vendor\_\-id2name}} \index{discover_xml_vendor_id2name@{discover\_\-xml\_\-vendor\_\-id2name}!vendor_xml@{vendor\_\-xml}} \subsubsection{\setlength{\rightskip}{0pt plus 5cm}char$\ast$ discover\_\-xml\_\-vendor\_\-id2name ({\bf discover\_\-xml\_\-vendor\_\-t} $\ast$ {\em vendors}, char $\ast$ {\em id})}\label{group__vendor__xml_ga3} Convert a vendor ID to a human-readable string naming the vendor. \begin{Desc} \item[Parameters:] \begin{description} \item[{\em vendors}]List of vendors to search \item[{\em id}]Vendor ID to search for \end{description} \end{Desc} Definition at line 264 of file vendor-xml.c.\index{vendor_xml@{vendor\_\-xml}!discover_xml_vendor_new@{discover\_\-xml\_\-vendor\_\-new}} \index{discover_xml_vendor_new@{discover\_\-xml\_\-vendor\_\-new}!vendor_xml@{vendor\_\-xml}} \subsubsection{\setlength{\rightskip}{0pt plus 5cm}{\bf discover\_\-xml\_\-vendor\_\-t}$\ast$ discover\_\-xml\_\-vendor\_\-new (void)}\label{group__vendor__xml_ga7} Create and initialize a new discover\_\-xml\_\-vendor\_\-t structure. Definition at line 323 of file vendor-xml.c.discover-2.1.2/doc/api-reference/latex/dirs.tex0000644002342100234210000000102010655642004020045 0ustar perepere\section{discover Directories} This directory hierarchy is sorted roughly, but not completely, alphabetically:\begin{CompactList} \item \contentsline{section}{include}{\pageref{dir_000000}}{} \begin{CompactList} \item \contentsline{section}{discover}{\pageref{dir_000001}}{} \end{CompactList} \item \contentsline{section}{lib}{\pageref{dir_000002}}{} \item \contentsline{section}{sysdeps}{\pageref{dir_000003}}{} \begin{CompactList} \item \contentsline{section}{stub}{\pageref{dir_000004}}{} \end{CompactList} \end{CompactList} discover-2.1.2/doc/api-reference/latex/files.tex0000644002342100234210000000543510655642004020224 0ustar perepere\section{discover File List} Here is a list of all documented files with brief descriptions:\begin{CompactList} \item\contentsline{section}{/home/pere/src/debiancvs/pkg-discover/discover/trunk/include/discover/{\bf discover-conf.h} (Public interface for reading Discover configuration data )}{\pageref{discover-conf_8h}}{} \item\contentsline{section}{/home/pere/src/debiancvs/pkg-discover/discover/trunk/include/discover/{\bf discover-xml.h} (Public interface to Discover's XML handling )}{\pageref{discover-xml_8h}}{} \item\contentsline{section}{/home/pere/src/debiancvs/pkg-discover/discover/trunk/include/discover/{\bf discover.h} (Public interface for Discover library )}{\pageref{discover_8h}}{} \item\contentsline{section}{/home/pere/src/debiancvs/pkg-discover/discover/trunk/include/discover/{\bf sysdep.h} (Private interface for system dependencies )}{\pageref{sysdep_8h}}{} \item\contentsline{section}{/home/pere/src/debiancvs/pkg-discover/discover/trunk/lib/{\bf busclass-xml.c} (Busclass XML data file parsing )}{\pageref{busclass-xml_8c}}{} \item\contentsline{section}{/home/pere/src/debiancvs/pkg-discover/discover/trunk/lib/{\bf conf.c} (Configuration handling (including XML parsing) )}{\pageref{conf_8c}}{} \item\contentsline{section}{/home/pere/src/debiancvs/pkg-discover/discover/trunk/lib/{\bf core.c} (Core and miscellaneous routines )}{\pageref{core_8c}}{} \item\contentsline{section}{/home/pere/src/debiancvs/pkg-discover/discover/trunk/lib/{\bf device-xml.c} (Device XML data file parsing )}{\pageref{device-xml_8c}}{} \item\contentsline{section}{/home/pere/src/debiancvs/pkg-discover/discover/trunk/lib/{\bf device.c} (Device enumeration and information management )}{\pageref{device_8c}}{} \item\contentsline{section}{/home/pere/src/debiancvs/pkg-discover/discover/trunk/lib/{\bf load-url.c} (File loading helper functions )}{\pageref{load-url_8c}}{} \item\contentsline{section}{/home/pere/src/debiancvs/pkg-discover/discover/trunk/lib/{\bf stack.c} (Stack routines for Discover )}{\pageref{stack_8c}}{} \item\contentsline{section}{/home/pere/src/debiancvs/pkg-discover/discover/trunk/lib/{\bf sysdep.c} (Interact with system dependencies )}{\pageref{sysdep_8c}}{} \item\contentsline{section}{/home/pere/src/debiancvs/pkg-discover/discover/trunk/lib/{\bf url-xml.c} (XML URL handling )}{\pageref{url-xml_8c}}{} \item\contentsline{section}{/home/pere/src/debiancvs/pkg-discover/discover/trunk/lib/{\bf vendor-xml.c} (Vendor XML data file parsing )}{\pageref{vendor-xml_8c}}{} \item\contentsline{section}{/home/pere/src/debiancvs/pkg-discover/discover/trunk/lib/{\bf version-cmp.c} (Version comparison functions )}{\pageref{version-cmp_8c}}{} \item\contentsline{section}{/home/pere/src/debiancvs/pkg-discover/discover/trunk/sysdeps/stub/{\bf stubs.c} (Stub system-dependent code )}{\pageref{stubs_8c}}{} \end{CompactList} discover-2.1.2/doc/api-reference/latex/group__sysdeps.tex0000644002342100234210000000555010655642004022165 0ustar perepere\section{System-dependent interfaces} \label{group__sysdeps}\index{System-dependent interfaces@{System-dependent interfaces}} \subsection*{Functions} \begin{CompactItemize} \item {\bf discover\_\-sysdep\_\-data\_\-t} $\ast$ {\bf \_\-discover\_\-get\_\-ata\_\-raw} (void) \item {\bf discover\_\-sysdep\_\-data\_\-t} $\ast$ {\bf \_\-discover\_\-get\_\-pci\_\-raw} (void) \item {\bf discover\_\-sysdep\_\-data\_\-t} $\ast$ {\bf \_\-discover\_\-get\_\-pcmcia\_\-raw} (void) \item {\bf discover\_\-sysdep\_\-data\_\-t} $\ast$ {\bf \_\-discover\_\-get\_\-scsi\_\-raw} (void) \item {\bf discover\_\-sysdep\_\-data\_\-t} $\ast$ {\bf \_\-discover\_\-get\_\-usb\_\-raw} (void) \end{CompactItemize} \subsection{Function Documentation} \index{sysdeps@{sysdeps}!_discover_get_ata_raw@{\_\-discover\_\-get\_\-ata\_\-raw}} \index{_discover_get_ata_raw@{\_\-discover\_\-get\_\-ata\_\-raw}!sysdeps@{sysdeps}} \subsubsection{\setlength{\rightskip}{0pt plus 5cm}{\bf discover\_\-sysdep\_\-data\_\-t}$\ast$ \_\-discover\_\-get\_\-ata\_\-raw (void)}\label{group__sysdeps_ga0} Get the list of ATA devices, scanning the bus if necessary. Definition at line 51 of file stubs.c.\index{sysdeps@{sysdeps}!_discover_get_pci_raw@{\_\-discover\_\-get\_\-pci\_\-raw}} \index{_discover_get_pci_raw@{\_\-discover\_\-get\_\-pci\_\-raw}!sysdeps@{sysdeps}} \subsubsection{\setlength{\rightskip}{0pt plus 5cm}{\bf discover\_\-sysdep\_\-data\_\-t}$\ast$ \_\-discover\_\-get\_\-pci\_\-raw (void)}\label{group__sysdeps_ga1} Get the list of PCI devices, scanning the bus if necessary. Definition at line 60 of file stubs.c.\index{sysdeps@{sysdeps}!_discover_get_pcmcia_raw@{\_\-discover\_\-get\_\-pcmcia\_\-raw}} \index{_discover_get_pcmcia_raw@{\_\-discover\_\-get\_\-pcmcia\_\-raw}!sysdeps@{sysdeps}} \subsubsection{\setlength{\rightskip}{0pt plus 5cm}{\bf discover\_\-sysdep\_\-data\_\-t}$\ast$ \_\-discover\_\-get\_\-pcmcia\_\-raw (void)}\label{group__sysdeps_ga2} Get the list of PCMCIA devices, scanning the bus if necessary. Definition at line 69 of file stubs.c.\index{sysdeps@{sysdeps}!_discover_get_scsi_raw@{\_\-discover\_\-get\_\-scsi\_\-raw}} \index{_discover_get_scsi_raw@{\_\-discover\_\-get\_\-scsi\_\-raw}!sysdeps@{sysdeps}} \subsubsection{\setlength{\rightskip}{0pt plus 5cm}{\bf discover\_\-sysdep\_\-data\_\-t}$\ast$ \_\-discover\_\-get\_\-scsi\_\-raw (void)}\label{group__sysdeps_ga3} Get the list of SCSI devices, scanning the bus if necessary. Definition at line 78 of file stubs.c.\index{sysdeps@{sysdeps}!_discover_get_usb_raw@{\_\-discover\_\-get\_\-usb\_\-raw}} \index{_discover_get_usb_raw@{\_\-discover\_\-get\_\-usb\_\-raw}!sysdeps@{sysdeps}} \subsubsection{\setlength{\rightskip}{0pt plus 5cm}{\bf discover\_\-sysdep\_\-data\_\-t}$\ast$ \_\-discover\_\-get\_\-usb\_\-raw (void)}\label{group__sysdeps_ga4} Get the list of USB devices, scanning the bus if necessary. Definition at line 87 of file stubs.c.discover-2.1.2/doc/api-reference/latex/dir_000002.tex0000644002342100234210000000316310655642004020475 0ustar perepere\section{/home/pere/src/debiancvs/pkg-discover/discover/trunk/lib/ Directory Reference} \label{dir_000002}\index{/home/pere/src/debiancvs/pkg-discover/discover/trunk/lib/ Directory Reference@{/home/pere/src/debiancvs/pkg-discover/discover/trunk/lib/ Directory Reference}} \subsection*{Files} \begin{CompactItemize} \item file {\bf busclass-xml.c} \begin{CompactList}\small\item\em Busclass XML data file parsing. \item\end{CompactList} \item file {\bf conf.c} \begin{CompactList}\small\item\em Configuration handling (including XML parsing). \item\end{CompactList} \item file {\bf core.c} \begin{CompactList}\small\item\em Core and miscellaneous routines. \item\end{CompactList} \item file {\bf device-xml.c} \begin{CompactList}\small\item\em Device XML data file parsing. \item\end{CompactList} \item file {\bf device.c} \begin{CompactList}\small\item\em Device enumeration and information management. \item\end{CompactList} \item file {\bf load-url.c} \begin{CompactList}\small\item\em File loading helper functions. \item\end{CompactList} \item file {\bf stack.c} \begin{CompactList}\small\item\em Stack routines for Discover. \item\end{CompactList} \item file {\bf sysdep.c} \begin{CompactList}\small\item\em Interact with system dependencies. \item\end{CompactList} \item file {\bf url-xml.c} \begin{CompactList}\small\item\em XML URL handling. \item\end{CompactList} \item file {\bf vendor-xml.c} \begin{CompactList}\small\item\em Vendor XML data file parsing. \item\end{CompactList} \item file {\bf version-cmp.c} \begin{CompactList}\small\item\em Version comparison functions. \item\end{CompactList} \end{CompactItemize} discover-2.1.2/doc/api-reference/latex/discover-conf_8h.tex0000644002342100234210000000407410655642004022260 0ustar perepere\section{/home/pere/src/debiancvs/pkg-discover/discover/trunk/include/discover/discover-conf.h File Reference} \label{discover-conf_8h}\index{/home/pere/src/debiancvs/pkg-discover/discover/trunk/include/discover/discover-conf.h@{/home/pere/src/debiancvs/pkg-discover/discover/trunk/include/discover/discover-conf.h}} Public interface for reading Discover configuration data. {\tt \#include $<$discover/discover.h$>$}\par \subsection*{Functions} \begin{CompactItemize} \item void {\bf discover\_\-conf\_\-load} ({\bf discover\_\-error\_\-t} $\ast$status) \item {\bf discover\_\-bus\_\-map\_\-t} $\ast$ {\bf discover\_\-conf\_\-get\_\-full\_\-bus\_\-map} ({\bf discover\_\-error\_\-t} $\ast$status) \item {\bf discover\_\-bus\_\-map\_\-t} $\ast$ {\bf discover\_\-conf\_\-get\_\-bus\_\-map} ({\bf discover\_\-bus\_\-t} bus, {\bf discover\_\-error\_\-t} $\ast$status) \item {\bf discover\_\-bus\_\-map\_\-t} $\ast$ {\bf discover\_\-conf\_\-get\_\-bus\_\-map\_\-by\_\-name} (char $\ast$name, {\bf discover\_\-error\_\-t} $\ast$status) \item void {\bf discover\_\-conf\_\-insert\_\-url} (char $\ast$url, {\bf discover\_\-error\_\-t} $\ast$status) \item void {\bf discover\_\-conf\_\-append\_\-url} (char $\ast$url, {\bf discover\_\-error\_\-t} $\ast$status) \item {\bf discover\_\-xml\_\-url\_\-t} $\ast$ {\bf discover\_\-conf\_\-get\_\-urls} ({\bf discover\_\-error\_\-t} $\ast$status) \item void {\bf discover\_\-conf\_\-free} (void) \item char $\ast$ {\bf discover\_\-conf\_\-get\_\-bus\_\-name} ({\bf discover\_\-bus\_\-t} bus) \item char $\ast$ {\bf discover\_\-conf\_\-get\_\-filetype\_\-name} ({\bf discover\_\-filetype\_\-t} filetype) \item int {\bf discover\_\-conf\_\-name\_\-to\_\-bus} (char $\ast$name, {\bf discover\_\-error\_\-t} $\ast$status) \end{CompactItemize} \subsection{Detailed Description} Public interface for reading Discover configuration data. These routines are the public interface used to read the configuration data from the desired source. These interfaces are also used to alter the URLs searched for configuration data. Definition in file {\bf discover-conf.h}.discover-2.1.2/doc/api-reference/latex/structdiscover__bus__map.tex0000644002342100234210000000527710655642004024215 0ustar perepere\section{discover\_\-bus\_\-map Struct Reference} \label{structdiscover__bus__map}\index{discover_bus_map@{discover\_\-bus\_\-map}} {\tt \#include $<$discover.h$>$} \subsection*{Data Fields} \begin{CompactItemize} \item char $\ast$ {\bf name} \item int {\bf scan\_\-default} \item int {\bf scan\_\-never} \item {\bf discover\_\-sysdep\_\-raw\_\-func\_\-t} $\ast$ {\bf get\_\-raw} \end{CompactItemize} \subsection{Detailed Description} Bus scanning information is loaded from the config file. The scan\_\-default member may be set to 0 to avoid scanning a specified bus. If the scan\_\-never flag is set, the bus will never be scanned; this behavior is controlled from the config file. The function pointer exists to allow client code to override the sysdeps; it is used by the unit tests provided with Discover. Definition at line 178 of file discover.h. \subsection{Field Documentation} \index{discover_bus_map@{discover\_\-bus\_\-map}!get_raw@{get\_\-raw}} \index{get_raw@{get\_\-raw}!discover_bus_map@{discover\_\-bus\_\-map}} \subsubsection{\setlength{\rightskip}{0pt plus 5cm}{\bf discover\_\-sysdep\_\-raw\_\-func\_\-t}$\ast$ {\bf discover\_\-bus\_\-map::get\_\-raw}}\label{structdiscover__bus__map_o3} Function pointer that will acquire data Definition at line 186 of file discover.h. Referenced by discover\_\-get\_\-devices().\index{discover_bus_map@{discover\_\-bus\_\-map}!name@{name}} \index{name@{name}!discover_bus_map@{discover\_\-bus\_\-map}} \subsubsection{\setlength{\rightskip}{0pt plus 5cm}char$\ast$ {\bf discover\_\-bus\_\-map::name}}\label{structdiscover__bus__map_o0} Human-readable name Definition at line 180 of file discover.h. Referenced by discover\_\-conf\_\-get\_\-bus\_\-name().\index{discover_bus_map@{discover\_\-bus\_\-map}!scan_default@{scan\_\-default}} \index{scan_default@{scan\_\-default}!discover_bus_map@{discover\_\-bus\_\-map}} \subsubsection{\setlength{\rightskip}{0pt plus 5cm}int {\bf discover\_\-bus\_\-map::scan\_\-default}}\label{structdiscover__bus__map_o1} Boolean (sort of) defining the bus's default behavior Definition at line 182 of file discover.h.\index{discover_bus_map@{discover\_\-bus\_\-map}!scan_never@{scan\_\-never}} \index{scan_never@{scan\_\-never}!discover_bus_map@{discover\_\-bus\_\-map}} \subsubsection{\setlength{\rightskip}{0pt plus 5cm}int {\bf discover\_\-bus\_\-map::scan\_\-never}}\label{structdiscover__bus__map_o2} Never scan this bus if true Definition at line 184 of file discover.h. Referenced by discover\_\-get\_\-devices(). The documentation for this struct was generated from the following file:\begin{CompactItemize} \item /home/pere/src/debiancvs/pkg-discover/discover/trunk/include/discover/{\bf discover.h}\end{CompactItemize} discover-2.1.2/doc/api-reference/latex/discover_8h.tex0000644002342100234210000001625410655642004021340 0ustar perepere\section{/home/pere/src/debiancvs/pkg-discover/discover/trunk/include/discover/discover.h File Reference} \label{discover_8h}\index{/home/pere/src/debiancvs/pkg-discover/discover/trunk/include/discover/discover.h@{/home/pere/src/debiancvs/pkg-discover/discover/trunk/include/discover/discover.h}} Public interface for Discover library. {\tt \#include $<$stdbool.h$>$}\par {\tt \#include $<$discover/sysdep.h$>$}\par \subsection*{Defines} \begin{CompactItemize} \item \#define {\bf BUS\_\-COUNT}~5 \end{CompactItemize} \subsection*{Typedefs} \begin{CompactItemize} \item typedef void $\ast$( {\bf discover\_\-create\_\-message\_\-t} )(struct {\bf discover\_\-error} $\ast$$\ast$, char $\ast$) \item typedef {\bf discover\_\-error} {\bf discover\_\-error\_\-t} \item typedef {\bf discover\_\-bus\_\-map} {\bf discover\_\-bus\_\-map\_\-t} \item typedef discover\_\-device {\bf discover\_\-device\_\-t} \item typedef discover\_\-data {\bf discover\_\-data\_\-t} \item typedef discover\_\-xml\_\-busclass {\bf discover\_\-xml\_\-busclass\_\-t} \item typedef discover\_\-xml\_\-vendor {\bf discover\_\-xml\_\-vendor\_\-t} \item typedef discover\_\-xml\_\-url {\bf discover\_\-xml\_\-url\_\-t} \item typedef {\bf discover\_\-device\_\-t} $\ast$( {\bf discover\_\-device\_\-func\_\-t} )({\bf discover\_\-error\_\-t} $\ast$) \item typedef {\bf discover\_\-xml\_\-busclass\_\-t} $\ast$( {\bf discover\_\-xml\_\-busclass\_\-func\_\-t} )({\bf discover\_\-error\_\-t} $\ast$) \item typedef {\bf discover\_\-xml\_\-vendor\_\-t} $\ast$( {\bf discover\_\-xml\_\-vendor\_\-func\_\-t} )({\bf discover\_\-error\_\-t} $\ast$) \item typedef {\bf discover\_\-xml\_\-url\_\-t} $\ast$( {\bf discover\_\-xml\_\-url\_\-func\_\-t} )({\bf discover\_\-error\_\-t} $\ast$) \item typedef void( {\bf discover\_\-free\_\-func\_\-t} )(void) \item typedef {\bf discover\_\-sysdep\_\-data\_\-t} $\ast$( {\bf discover\_\-sysdep\_\-raw\_\-func\_\-t} )(void) \end{CompactItemize} \subsection*{Enumerations} \begin{CompactItemize} \item enum {\bf discover\_\-error\_\-code\_\-t} \{ \par {\bf DISCOVER\_\-SUCCESS}, {\bf DISCOVER\_\-EIO}, {\bf DISCOVER\_\-EXML}, {\bf DISCOVER\_\-ESYS}, \par {\bf DISCOVER\_\-EBUSDISABLED}, {\bf DISCOVER\_\-EBUSNOTFOUND}, {\bf DISCOVER\_\-EDATANOTFOUND}, {\bf DISCOVER\_\-EDEVICENOTFOUND}, \par {\bf DISCOVER\_\-EBADVERSION}, {\bf DISCOVER\_\-ENOIMPL} \} \item enum {\bf discover\_\-bus\_\-t} \{ \par {\bf ATA}, {\bf PCI}, {\bf PCMCIA}, {\bf SCSI}, \par {\bf USB} \} \item enum {\bf discover\_\-filetype\_\-t} \{ {\bf VENDOR\_\-TYPE}, {\bf BUSCLASS\_\-TYPE}, {\bf DEVICE\_\-TYPE} \} \end{CompactItemize} \subsection*{Functions} \begin{CompactItemize} \item {\bf discover\_\-device\_\-t} $\ast$ {\bf discover\_\-get\_\-devices} ({\bf discover\_\-bus\_\-t} bus, {\bf discover\_\-error\_\-t} $\ast$status) \item void {\bf discover\_\-free\_\-devices} (void) \item {\bf discover\_\-error\_\-t} $\ast$ {\bf discover\_\-error\_\-new} (void) \item void {\bf discover\_\-error\_\-free} ({\bf discover\_\-error\_\-t} $\ast$status) \item char $\ast$ {\bf discover\_\-strerror} ({\bf discover\_\-error\_\-t} $\ast$err) \item int {\bf discover\_\-major\_\-version} (void) \item int {\bf discover\_\-minor\_\-version} (void) \item int {\bf discover\_\-micro\_\-version} (void) \item {\bf discover\_\-device\_\-t} $\ast$ {\bf discover\_\-device\_\-new} (void) \item {\bf discover\_\-device\_\-t} $\ast$ {\bf discover\_\-device\_\-find} (char $\ast$discover\_\-class, {\bf discover\_\-error\_\-t} $\ast$status) \item char $\ast$ {\bf discover\_\-device\_\-get\_\-data} ({\bf discover\_\-device\_\-t} $\ast$device, char $\ast$path, char $\ast$version, {\bf discover\_\-error\_\-t} $\ast$status) \item void {\bf discover\_\-device\_\-copy} ({\bf discover\_\-device\_\-t} $\ast$src, {\bf discover\_\-device\_\-t} $\ast$dst) \item char $\ast$ {\bf discover\_\-device\_\-get\_\-busclass} ({\bf discover\_\-device\_\-t} $\ast$device) \item char $\ast$ {\bf discover\_\-device\_\-get\_\-model\_\-id} ({\bf discover\_\-device\_\-t} $\ast$device) \item char $\ast$ {\bf discover\_\-device\_\-get\_\-model\_\-name} ({\bf discover\_\-device\_\-t} $\ast$device) \item char $\ast$ {\bf discover\_\-device\_\-get\_\-vendor\_\-id} ({\bf discover\_\-device\_\-t} $\ast$device) \item char $\ast$ {\bf discover\_\-device\_\-get\_\-vendor\_\-name} ({\bf discover\_\-device\_\-t} $\ast$device) \item {\bf discover\_\-data\_\-t} $\ast$ {\bf discover\_\-device\_\-get\_\-data\_\-struct} ({\bf discover\_\-device\_\-t} $\ast$device) \item {\bf discover\_\-device\_\-t} $\ast$ {\bf discover\_\-device\_\-get\_\-next} ({\bf discover\_\-device\_\-t} $\ast$device) \item void {\bf discover\_\-device\_\-free} ({\bf discover\_\-device\_\-t} $\ast$devices, int free\_\-data) \item {\bf discover\_\-data\_\-t} $\ast$ {\bf discover\_\-data\_\-new} (void) \item char $\ast$ {\bf discover\_\-data\_\-get\_\-class} ({\bf discover\_\-data\_\-t} $\ast$data) \item char $\ast$ {\bf discover\_\-data\_\-get\_\-text} ({\bf discover\_\-data\_\-t} $\ast$data) \item {\bf discover\_\-data\_\-t} $\ast$ {\bf discover\_\-data\_\-get\_\-parent} ({\bf discover\_\-data\_\-t} $\ast$data) \item {\bf discover\_\-data\_\-t} $\ast$ {\bf discover\_\-data\_\-get\_\-child} ({\bf discover\_\-data\_\-t} $\ast$data) \item {\bf discover\_\-data\_\-t} $\ast$ {\bf discover\_\-data\_\-get\_\-next} ({\bf discover\_\-data\_\-t} $\ast$data) \item {\bf discover\_\-data\_\-t} $\ast$ {\bf discover\_\-data\_\-get\_\-prev} ({\bf discover\_\-data\_\-t} $\ast$prev) \item {\bf discover\_\-data\_\-t} $\ast$ {\bf discover\_\-data\_\-get\_\-first} ({\bf discover\_\-data\_\-t} $\ast$data) \item void {\bf discover\_\-data\_\-free} ({\bf discover\_\-data\_\-t} $\ast$data\_\-tree) \end{CompactItemize} \subsection{Detailed Description} Public interface for Discover library. Definition in file {\bf discover.h}. \subsection{Function Documentation} \index{discover.h@{discover.h}!discover_free_devices@{discover\_\-free\_\-devices}} \index{discover_free_devices@{discover\_\-free\_\-devices}!discover.h@{discover.h}} \subsubsection{\setlength{\rightskip}{0pt plus 5cm}void discover\_\-free\_\-devices (void)}\label{discover_8h_a34} Free the currently allocated memory holding the device information. Definition at line 301 of file sysdep.c. References BUS\_\-COUNT, and discover\_\-device\_\-free().\index{discover.h@{discover.h}!discover_get_devices@{discover\_\-get\_\-devices}} \index{discover_get_devices@{discover\_\-get\_\-devices}!discover.h@{discover.h}} \subsubsection{\setlength{\rightskip}{0pt plus 5cm}{\bf discover\_\-device\_\-t}$\ast$ discover\_\-get\_\-devices ({\bf discover\_\-bus\_\-t} {\em bus}, {\bf discover\_\-error\_\-t} $\ast$ {\em status})}\label{discover_8h_a33} Function responsible for returning a devicelist of current devices Definition at line 206 of file sysdep.c. References \_\-discover\_\-convert\_\-device\_\-data(), \_\-discover\_\-free\_\-sysdep\_\-data(), discover\_\-error::code, discover\_\-conf\_\-get\_\-bus\_\-map(), discover\_\-device\_\-new(), DISCOVER\_\-EBUSDISABLED, DISCOVER\_\-SUCCESS, discover\_\-xml\_\-get\_\-devices(), discover\_\-xml\_\-get\_\-matching\_\-devices(), discover\_\-bus\_\-map::get\_\-raw, and discover\_\-bus\_\-map::scan\_\-never. Referenced by discover\_\-device\_\-find().discover-2.1.2/doc/api-reference/latex/busclass-xml_8c.tex0000644002342100234210000000463410655642004022131 0ustar perepere\section{/home/pere/src/debiancvs/pkg-discover/discover/trunk/lib/busclass-xml.c File Reference} \label{busclass-xml_8c}\index{/home/pere/src/debiancvs/pkg-discover/discover/trunk/lib/busclass-xml.c@{/home/pere/src/debiancvs/pkg-discover/discover/trunk/lib/busclass-xml.c}} Busclass XML data file parsing. {\tt \#include \char`\"{}config.h\char`\"{}}\par {\tt \#include $<$sys/types.h$>$}\par {\tt \#include $<$assert.h$>$}\par {\tt \#include $<$limits.h$>$}\par {\tt \#include $<$stdio.h$>$}\par {\tt \#include $<$string.h$>$}\par {\tt \#include $<$expat.h$>$}\par {\tt \#include $<$discover/discover.h$>$}\par {\tt \#include $<$discover/discover-xml.h$>$}\par {\tt \#include $<$discover/load-url.h$>$}\par {\tt \#include $<$discover/utils.h$>$}\par \subsection*{Functions} \begin{CompactItemize} \item void {\bf discover\_\-xml\_\-merge\_\-busclass\_\-url} ({\bf discover\_\-xml\_\-busclass\_\-t} $\ast$$\ast$blist, char $\ast$url, {\bf discover\_\-error\_\-t} $\ast$status) \item {\bf discover\_\-xml\_\-busclass\_\-t} $\ast$ {\bf discover\_\-xml\_\-get\_\-busclasses} ({\bf discover\_\-bus\_\-t} bus, {\bf discover\_\-error\_\-t} $\ast$status) \item void {\bf discover\_\-xml\_\-free\_\-busclasses} (void) \item char $\ast$ {\bf discover\_\-xml\_\-busclass\_\-to\_\-class} (char $\ast$busclass, {\bf discover\_\-xml\_\-busclass\_\-t} $\ast$busclasses) \item int {\bf discover\_\-xml\_\-busclass\_\-cmp} (char $\ast$busclass, char $\ast$discover\_\-class, {\bf discover\_\-xml\_\-busclass\_\-t} $\ast$busclasses) \item char $\ast$ {\bf discover\_\-xml\_\-busclass\_\-get\_\-id} ({\bf discover\_\-xml\_\-busclass\_\-t} $\ast$busclass) \item char $\ast$ {\bf discover\_\-xml\_\-busclass\_\-get\_\-name} ({\bf discover\_\-xml\_\-busclass\_\-t} $\ast$busclass) \item {\bf discover\_\-xml\_\-busclass\_\-t} $\ast$ {\bf discover\_\-xml\_\-busclass\_\-get\_\-next} ({\bf discover\_\-xml\_\-busclass\_\-t} $\ast$busclass) \item {\bf discover\_\-xml\_\-busclass\_\-t} $\ast$ {\bf discover\_\-xml\_\-busclass\_\-new} (void) \item void {\bf discover\_\-xml\_\-busclass\_\-free} ({\bf discover\_\-xml\_\-busclass\_\-t} $\ast$busclasses) \end{CompactItemize} \subsection{Detailed Description} Busclass XML data file parsing. This file contains the routines needed to properly process the busclass XML data. This file is responsible for handling URLs and actually storing the XML data during the parsing process. Definition in file {\bf busclass-xml.c}.discover-2.1.2/doc/api-reference/latex/group__conf.tex0000644002342100234210000002371110655642004021417 0ustar perepere\section{Configuration handling} \label{group__conf}\index{Configuration handling@{Configuration handling}} \subsection*{Functions} \begin{CompactItemize} \item void {\bf discover\_\-conf\_\-load} ({\bf discover\_\-error\_\-t} $\ast$status) \item int {\bf discover\_\-conf\_\-name\_\-to\_\-bus} (char $\ast$name, {\bf discover\_\-error\_\-t} $\ast$status) \item {\bf discover\_\-bus\_\-map\_\-t} $\ast$ {\bf discover\_\-conf\_\-get\_\-full\_\-bus\_\-map} ({\bf discover\_\-error\_\-t} $\ast$status) \item {\bf discover\_\-bus\_\-map\_\-t} $\ast$ {\bf discover\_\-conf\_\-get\_\-bus\_\-map\_\-by\_\-name} (char $\ast$name, {\bf discover\_\-error\_\-t} $\ast$status) \item {\bf discover\_\-bus\_\-map\_\-t} $\ast$ {\bf discover\_\-conf\_\-get\_\-bus\_\-map} ({\bf discover\_\-bus\_\-t} bus, {\bf discover\_\-error\_\-t} $\ast$status) \item void {\bf discover\_\-conf\_\-insert\_\-url} (char $\ast$url, {\bf discover\_\-error\_\-t} $\ast$status) \item void {\bf discover\_\-conf\_\-append\_\-url} (char $\ast$url, {\bf discover\_\-error\_\-t} $\ast$status) \item {\bf discover\_\-xml\_\-url\_\-t} $\ast$ {\bf discover\_\-conf\_\-get\_\-urls} ({\bf discover\_\-error\_\-t} $\ast$status) \item void {\bf discover\_\-conf\_\-free} (void) \item char $\ast$ {\bf discover\_\-conf\_\-get\_\-bus\_\-name} ({\bf discover\_\-bus\_\-t} bus) \item char $\ast$ {\bf discover\_\-conf\_\-get\_\-filetype\_\-name} ({\bf discover\_\-filetype\_\-t} filetype) \end{CompactItemize} \subsection{Function Documentation} \index{conf@{conf}!discover_conf_append_url@{discover\_\-conf\_\-append\_\-url}} \index{discover_conf_append_url@{discover\_\-conf\_\-append\_\-url}!conf@{conf}} \subsubsection{\setlength{\rightskip}{0pt plus 5cm}void discover\_\-conf\_\-append\_\-url (char $\ast$ {\em url}, {\bf discover\_\-error\_\-t} $\ast$ {\em status})}\label{group__conf_ga6} Append the URL specified in url at the tail of the list of URLs where Discover data will be retrieved. \begin{Desc} \item[Parameters:] \begin{description} \item[{\em url}]URL to append \item[{\em status}]Address in which to place status report \end{description} \end{Desc} Definition at line 579 of file conf.c. References discover\_\-error::code, and discover\_\-conf\_\-load().\index{conf@{conf}!discover_conf_free@{discover\_\-conf\_\-free}} \index{discover_conf_free@{discover\_\-conf\_\-free}!conf@{conf}} \subsubsection{\setlength{\rightskip}{0pt plus 5cm}void discover\_\-conf\_\-free (void)}\label{group__conf_ga8} Free configuration data. This is mainly useful so that the next call to discover\_\-conf\_\-load will reload the configuration data. Definition at line 650 of file conf.c. References discover\_\-xml\_\-url\_\-free().\index{conf@{conf}!discover_conf_get_bus_map@{discover\_\-conf\_\-get\_\-bus\_\-map}} \index{discover_conf_get_bus_map@{discover\_\-conf\_\-get\_\-bus\_\-map}!conf@{conf}} \subsubsection{\setlength{\rightskip}{0pt plus 5cm}{\bf discover\_\-bus\_\-map\_\-t}$\ast$ discover\_\-conf\_\-get\_\-bus\_\-map ({\bf discover\_\-bus\_\-t} {\em bus}, {\bf discover\_\-error\_\-t} $\ast$ {\em status})}\label{group__conf_ga4} Get the bus map for a single bus. \begin{Desc} \item[Parameters:] \begin{description} \item[{\em bus}]Name of the bus whose map to get \item[{\em status}]Address in which to place status report \end{description} \end{Desc} Definition at line 532 of file conf.c. References BUS\_\-COUNT, discover\_\-error::code, discover\_\-conf\_\-load(), and DISCOVER\_\-EBUSNOTFOUND. Referenced by discover\_\-get\_\-devices().\index{conf@{conf}!discover_conf_get_bus_map_by_name@{discover\_\-conf\_\-get\_\-bus\_\-map\_\-by\_\-name}} \index{discover_conf_get_bus_map_by_name@{discover\_\-conf\_\-get\_\-bus\_\-map\_\-by\_\-name}!conf@{conf}} \subsubsection{\setlength{\rightskip}{0pt plus 5cm}{\bf discover\_\-bus\_\-map\_\-t}$\ast$ discover\_\-conf\_\-get\_\-bus\_\-map\_\-by\_\-name (char $\ast$ {\em name}, {\bf discover\_\-error\_\-t} $\ast$ {\em status})}\label{group__conf_ga3} Get the bus map by name for a single bus. \begin{Desc} \item[Parameters:] \begin{description} \item[{\em name}]Name of the bus whose map to get \item[{\em status}]Address in which to place status report \end{description} \end{Desc} Definition at line 509 of file conf.c. References \_\-real\_\-discover\_\-conf\_\-get\_\-bus\_\-map\_\-by\_\-name(), discover\_\-error::code, and discover\_\-conf\_\-load().\index{conf@{conf}!discover_conf_get_bus_name@{discover\_\-conf\_\-get\_\-bus\_\-name}} \index{discover_conf_get_bus_name@{discover\_\-conf\_\-get\_\-bus\_\-name}!conf@{conf}} \subsubsection{\setlength{\rightskip}{0pt plus 5cm}char$\ast$ discover\_\-conf\_\-get\_\-bus\_\-name ({\bf discover\_\-bus\_\-t} {\em bus})}\label{group__conf_ga9} Translate an enum bus value into a string. \begin{Desc} \item[Parameters:] \begin{description} \item[{\em bus}]Bus type in enumerated form \end{description} \end{Desc} Definition at line 666 of file conf.c. References BUS\_\-COUNT, and discover\_\-bus\_\-map::name. Referenced by discover\_\-xml\_\-get\_\-data\_\-urls().\index{conf@{conf}!discover_conf_get_filetype_name@{discover\_\-conf\_\-get\_\-filetype\_\-name}} \index{discover_conf_get_filetype_name@{discover\_\-conf\_\-get\_\-filetype\_\-name}!conf@{conf}} \subsubsection{\setlength{\rightskip}{0pt plus 5cm}char$\ast$ discover\_\-conf\_\-get\_\-filetype\_\-name ({\bf discover\_\-filetype\_\-t} {\em filetype})}\label{group__conf_ga10} Translate an enum filetype value into a string. \begin{Desc} \item[Parameters:] \begin{description} \item[{\em filetype}]Filetype in enumerated form \end{description} \end{Desc} Definition at line 682 of file conf.c. Referenced by discover\_\-xml\_\-get\_\-data\_\-urls().\index{conf@{conf}!discover_conf_get_full_bus_map@{discover\_\-conf\_\-get\_\-full\_\-bus\_\-map}} \index{discover_conf_get_full_bus_map@{discover\_\-conf\_\-get\_\-full\_\-bus\_\-map}!conf@{conf}} \subsubsection{\setlength{\rightskip}{0pt plus 5cm}{\bf discover\_\-bus\_\-map\_\-t}$\ast$ discover\_\-conf\_\-get\_\-full\_\-bus\_\-map ({\bf discover\_\-error\_\-t} $\ast$ {\em status})}\label{group__conf_ga2} Get the full bus map, listing all buses. \begin{Desc} \item[Parameters:] \begin{description} \item[{\em status}]Address in which to place status report \end{description} \end{Desc} Definition at line 496 of file conf.c. References discover\_\-conf\_\-load(). Referenced by discover\_\-device\_\-find().\index{conf@{conf}!discover_conf_get_urls@{discover\_\-conf\_\-get\_\-urls}} \index{discover_conf_get_urls@{discover\_\-conf\_\-get\_\-urls}!conf@{conf}} \subsubsection{\setlength{\rightskip}{0pt plus 5cm}{\bf discover\_\-xml\_\-url\_\-t}$\ast$ discover\_\-conf\_\-get\_\-urls ({\bf discover\_\-error\_\-t} $\ast$ {\em status})}\label{group__conf_ga7} Get the list of URLs from which XML data will be retrieved. \begin{Desc} \item[Parameters:] \begin{description} \item[{\em status}]Address in which to place status report \end{description} \end{Desc} Definition at line 599 of file conf.c. References discover\_\-error::code, discover\_\-conf\_\-load(), and discover\_\-xml\_\-url\_\-new(). Referenced by discover\_\-xml\_\-get\_\-urls().\index{conf@{conf}!discover_conf_insert_url@{discover\_\-conf\_\-insert\_\-url}} \index{discover_conf_insert_url@{discover\_\-conf\_\-insert\_\-url}!conf@{conf}} \subsubsection{\setlength{\rightskip}{0pt plus 5cm}void discover\_\-conf\_\-insert\_\-url (char $\ast$ {\em url}, {\bf discover\_\-error\_\-t} $\ast$ {\em status})}\label{group__conf_ga5} Insert the URL specified in url at the head of the list of URLs where Discover data will be retrieved. \begin{Desc} \item[Parameters:] \begin{description} \item[{\em url}]URL to insert \item[{\em status}]Address in which to place status report \end{description} \end{Desc} Definition at line 557 of file conf.c. References discover\_\-error::code, and discover\_\-conf\_\-load().\index{conf@{conf}!discover_conf_load@{discover\_\-conf\_\-load}} \index{discover_conf_load@{discover\_\-conf\_\-load}!conf@{conf}} \subsubsection{\setlength{\rightskip}{0pt plus 5cm}void discover\_\-conf\_\-load ({\bf discover\_\-error\_\-t} $\ast$ {\em status})}\label{group__conf_ga0} Ensure that the configuration file is loaded. Repeated calls to this function will not change anything, unless you call discover\_\-conf\_\-free. Technically, this function will lie to you if there is no conf file. Even though no configuration was loaded, repeated calls still will not change anything. However, if we don't do this and a config file is created between the time some long-lived caller first calls discover\_\-conf\_\-load and the time it calls it again, it will be loaded. This doesn't strike me as idempotent behavior. So, repeated calls even in this case will not change anything unless you call discover\_\-conf\_\-free. \begin{Desc} \item[Parameters:] \begin{description} \item[{\em status}]Address in which to place status report \end{description} \end{Desc} Definition at line 378 of file conf.c. References discover\_\-error::code, discover\_\-error::create\_\-message, and DISCOVER\_\-EXML. Referenced by discover\_\-conf\_\-append\_\-url(), discover\_\-conf\_\-get\_\-bus\_\-map(), discover\_\-conf\_\-get\_\-bus\_\-map\_\-by\_\-name(), discover\_\-conf\_\-get\_\-full\_\-bus\_\-map(), discover\_\-conf\_\-get\_\-urls(), and discover\_\-conf\_\-insert\_\-url().\index{conf@{conf}!discover_conf_name_to_bus@{discover\_\-conf\_\-name\_\-to\_\-bus}} \index{discover_conf_name_to_bus@{discover\_\-conf\_\-name\_\-to\_\-bus}!conf@{conf}} \subsubsection{\setlength{\rightskip}{0pt plus 5cm}int discover\_\-conf\_\-name\_\-to\_\-bus (char $\ast$ {\em name}, {\bf discover\_\-error\_\-t} $\ast$ {\em status})}\label{group__conf_ga1} Get the bus enumeration for a bus name. \begin{Desc} \item[Parameters:] \begin{description} \item[{\em name}]Name of the bus \item[{\em status}]Address in which to place status report \end{description} \end{Desc} Definition at line 477 of file conf.c. References discover\_\-error::code, and DISCOVER\_\-EBUSNOTFOUND. Referenced by \_\-real\_\-discover\_\-conf\_\-get\_\-bus\_\-map\_\-by\_\-name().discover-2.1.2/doc/api-reference/latex/structdiscover__sysdep__device__data.tex0000644002342100234210000000522310655642004026534 0ustar perepere\section{discover\_\-sysdep\_\-device\_\-data Struct Reference} \label{structdiscover__sysdep__device__data}\index{discover_sysdep_device_data@{discover\_\-sysdep\_\-device\_\-data}} {\tt \#include $<$sysdep.h$>$} \subsection*{Data Fields} \begin{CompactItemize} \item char $\ast$ {\bf path} \item char $\ast$ {\bf value} \item {\bf discover\_\-sysdep\_\-device\_\-data} $\ast$ {\bf next} \end{CompactItemize} \subsection{Detailed Description} Linked list node, used to return data specific to the sysdep/device in question, to be passed to the user under the \char`\"{}device\char`\"{} data path. Definition at line 43 of file sysdep.h. \subsection{Field Documentation} \index{discover_sysdep_device_data@{discover\_\-sysdep\_\-device\_\-data}!next@{next}} \index{next@{next}!discover_sysdep_device_data@{discover\_\-sysdep\_\-device\_\-data}} \subsubsection{\setlength{\rightskip}{0pt plus 5cm}struct {\bf discover\_\-sysdep\_\-device\_\-data}$\ast$ {\bf discover\_\-sysdep\_\-device\_\-data::next}}\label{structdiscover__sysdep__device__data_o2} Pointer to the next data node Definition at line 49 of file sysdep.h. Referenced by \_\-discover\_\-convert\_\-device\_\-data(), \_\-discover\_\-free\_\-sysdep\_\-device\_\-data(), and \_\-discover\_\-sysdep\_\-device\_\-data\_\-new().\index{discover_sysdep_device_data@{discover\_\-sysdep\_\-device\_\-data}!path@{path}} \index{path@{path}!discover_sysdep_device_data@{discover\_\-sysdep\_\-device\_\-data}} \subsubsection{\setlength{\rightskip}{0pt plus 5cm}char$\ast$ {\bf discover\_\-sysdep\_\-device\_\-data::path}}\label{structdiscover__sysdep__device__data_o0} String giving the path for the data (not including \char`\"{}device\char`\"{} Definition at line 45 of file sysdep.h. Referenced by \_\-discover\_\-convert\_\-device\_\-data(), \_\-discover\_\-free\_\-sysdep\_\-device\_\-data(), and \_\-discover\_\-sysdep\_\-device\_\-data\_\-new().\index{discover_sysdep_device_data@{discover\_\-sysdep\_\-device\_\-data}!value@{value}} \index{value@{value}!discover_sysdep_device_data@{discover\_\-sysdep\_\-device\_\-data}} \subsubsection{\setlength{\rightskip}{0pt plus 5cm}char$\ast$ {\bf discover\_\-sysdep\_\-device\_\-data::value}}\label{structdiscover__sysdep__device__data_o1} String with the data's value Definition at line 47 of file sysdep.h. Referenced by \_\-discover\_\-convert\_\-device\_\-data(), \_\-discover\_\-free\_\-sysdep\_\-device\_\-data(), and \_\-discover\_\-sysdep\_\-device\_\-data\_\-new(). The documentation for this struct was generated from the following file:\begin{CompactItemize} \item /home/pere/src/debiancvs/pkg-discover/discover/trunk/include/discover/{\bf sysdep.h}\end{CompactItemize} discover-2.1.2/doc/api-reference/latex/sysdep_8h.tex0000644002342100234210000001262610655642004021030 0ustar perepere\section{/home/pere/src/debiancvs/pkg-discover/discover/trunk/include/discover/sysdep.h File Reference} \label{sysdep_8h}\index{/home/pere/src/debiancvs/pkg-discover/discover/trunk/include/discover/sysdep.h@{/home/pere/src/debiancvs/pkg-discover/discover/trunk/include/discover/sysdep.h}} Private interface for system dependencies. \subsection*{Typedefs} \begin{CompactItemize} \item typedef {\bf discover\_\-sysdep\_\-device\_\-data} {\bf discover\_\-sysdep\_\-device\_\-data\_\-t} \item typedef {\bf discover\_\-sysdep\_\-data} {\bf discover\_\-sysdep\_\-data\_\-t} \end{CompactItemize} \subsection*{Functions} \begin{CompactItemize} \item {\bf discover\_\-sysdep\_\-data\_\-t} $\ast$ {\bf \_\-discover\_\-sysdep\_\-data\_\-new} (void) \item {\bf discover\_\-sysdep\_\-device\_\-data\_\-t} $\ast$ {\bf \_\-discover\_\-sysdep\_\-device\_\-data\_\-new} (void) \item void {\bf \_\-discover\_\-free\_\-sysdep\_\-data} ({\bf discover\_\-sysdep\_\-data\_\-t} $\ast$) \item void {\bf \_\-discover\_\-free\_\-sysdep\_\-device\_\-data} ({\bf discover\_\-sysdep\_\-device\_\-data\_\-t} $\ast$) \item {\bf discover\_\-sysdep\_\-data\_\-t} $\ast$ {\bf \_\-discover\_\-get\_\-ata\_\-raw} (void) \item {\bf discover\_\-sysdep\_\-data\_\-t} $\ast$ {\bf \_\-discover\_\-get\_\-pci\_\-raw} (void) \item {\bf discover\_\-sysdep\_\-data\_\-t} $\ast$ {\bf \_\-discover\_\-get\_\-usb\_\-raw} (void) \item {\bf discover\_\-sysdep\_\-data\_\-t} $\ast$ {\bf \_\-discover\_\-get\_\-pcmcia\_\-raw} (void) \item {\bf discover\_\-sysdep\_\-data\_\-t} $\ast$ {\bf \_\-discover\_\-get\_\-scsi\_\-raw} (void) \end{CompactItemize} \subsection{Detailed Description} Private interface for system dependencies. Definition in file {\bf sysdep.h}. \subsection{Typedef Documentation} \index{sysdep.h@{sysdep.h}!discover_sysdep_data_t@{discover\_\-sysdep\_\-data\_\-t}} \index{discover_sysdep_data_t@{discover\_\-sysdep\_\-data\_\-t}!sysdep.h@{sysdep.h}} \subsubsection{\setlength{\rightskip}{0pt plus 5cm}typedef struct {\bf discover\_\-sysdep\_\-data} {\bf discover\_\-sysdep\_\-data\_\-t}}\label{sysdep_8h_a1} Linked list node, used to return hardware-identification information discovered by the system-dependent interface \index{sysdep.h@{sysdep.h}!discover_sysdep_device_data_t@{discover\_\-sysdep\_\-device\_\-data\_\-t}} \index{discover_sysdep_device_data_t@{discover\_\-sysdep\_\-device\_\-data\_\-t}!sysdep.h@{sysdep.h}} \subsubsection{\setlength{\rightskip}{0pt plus 5cm}typedef struct {\bf discover\_\-sysdep\_\-device\_\-data} {\bf discover\_\-sysdep\_\-device\_\-data\_\-t}}\label{sysdep_8h_a0} Linked list node, used to return data specific to the sysdep/device in question, to be passed to the user under the \char`\"{}device\char`\"{} data path. \subsection{Function Documentation} \index{sysdep.h@{sysdep.h}!_discover_free_sysdep_data@{\_\-discover\_\-free\_\-sysdep\_\-data}} \index{_discover_free_sysdep_data@{\_\-discover\_\-free\_\-sysdep\_\-data}!sysdep.h@{sysdep.h}} \subsubsection{\setlength{\rightskip}{0pt plus 5cm}void \_\-discover\_\-free\_\-sysdep\_\-data ({\bf discover\_\-sysdep\_\-data\_\-t} $\ast$ {\em head})}\label{sysdep_8h_a4} Release the memory that the sysdep data was holding. Definition at line 92 of file sysdep.c. References \_\-discover\_\-free\_\-sysdep\_\-device\_\-data(), discover\_\-sysdep\_\-data::busclass, discover\_\-sysdep\_\-data::data, discover\_\-sysdep\_\-data::model, discover\_\-sysdep\_\-data::next, and discover\_\-sysdep\_\-data::vendor. Referenced by discover\_\-get\_\-devices().\index{sysdep.h@{sysdep.h}!_discover_free_sysdep_device_data@{\_\-discover\_\-free\_\-sysdep\_\-device\_\-data}} \index{_discover_free_sysdep_device_data@{\_\-discover\_\-free\_\-sysdep\_\-device\_\-data}!sysdep.h@{sysdep.h}} \subsubsection{\setlength{\rightskip}{0pt plus 5cm}void \_\-discover\_\-free\_\-sysdep\_\-device\_\-data ({\bf discover\_\-sysdep\_\-device\_\-data\_\-t} $\ast$ {\em head})}\label{sysdep_8h_a5} Release memory being held by device-specific data. Definition at line 117 of file sysdep.c. References discover\_\-sysdep\_\-device\_\-data::next, discover\_\-sysdep\_\-device\_\-data::path, and discover\_\-sysdep\_\-device\_\-data::value. Referenced by \_\-discover\_\-free\_\-sysdep\_\-data().\index{sysdep.h@{sysdep.h}!_discover_sysdep_data_new@{\_\-discover\_\-sysdep\_\-data\_\-new}} \index{_discover_sysdep_data_new@{\_\-discover\_\-sysdep\_\-data\_\-new}!sysdep.h@{sysdep.h}} \subsubsection{\setlength{\rightskip}{0pt plus 5cm}{\bf discover\_\-sysdep\_\-data\_\-t}$\ast$ \_\-discover\_\-sysdep\_\-data\_\-new (void)}\label{sysdep_8h_a2} Create a new instance of sysdep data. Definition at line 66 of file sysdep.c. References discover\_\-sysdep\_\-data::busclass, discover\_\-sysdep\_\-data::data, discover\_\-sysdep\_\-data::model, discover\_\-sysdep\_\-data::next, and discover\_\-sysdep\_\-data::vendor.\index{sysdep.h@{sysdep.h}!_discover_sysdep_device_data_new@{\_\-discover\_\-sysdep\_\-device\_\-data\_\-new}} \index{_discover_sysdep_device_data_new@{\_\-discover\_\-sysdep\_\-device\_\-data\_\-new}!sysdep.h@{sysdep.h}} \subsubsection{\setlength{\rightskip}{0pt plus 5cm}{\bf discover\_\-sysdep\_\-device\_\-data\_\-t}$\ast$ \_\-discover\_\-sysdep\_\-device\_\-data\_\-new (void)}\label{sysdep_8h_a3} Create a new instance of sysdep device data. Definition at line 80 of file sysdep.c. References discover\_\-sysdep\_\-device\_\-data::next, discover\_\-sysdep\_\-device\_\-data::path, and discover\_\-sysdep\_\-device\_\-data::value.discover-2.1.2/doc/api-reference/latex/annotated.tex0000644002342100234210000000103410655642004021066 0ustar perepere\section{discover Data Structures} Here are the data structures with brief descriptions:\begin{CompactList} \item\contentsline{section}{{\bf discover\_\-bus\_\-map} }{\pageref{structdiscover__bus__map}}{} \item\contentsline{section}{{\bf discover\_\-error} }{\pageref{structdiscover__error}}{} \item\contentsline{section}{{\bf discover\_\-sysdep\_\-data} }{\pageref{structdiscover__sysdep__data}}{} \item\contentsline{section}{{\bf discover\_\-sysdep\_\-device\_\-data} }{\pageref{structdiscover__sysdep__device__data}}{} \end{CompactList} discover-2.1.2/doc/api-reference/latex/Helvetica.ttf0000644002342100234210000007777010655642004021036 0ustar perepere€pOS/2p2rýüVcmapÍñ¡­TJgasp  glyfd92°b”headRwûeD6hheaû‰e|$hmtx˜¸#e ˆloca,ˆg(ŒkernÿÕÿEh´Xmaxpkk nameËà?k,‚post3;k°ýcvt {$1l°ˆfpgmw&©õr8°prepsÂÖÀw舚3š3Ñf MONO@ ­ÓþQ3>²  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`a0~ ­ÿÿ  ­ÿÿÿãÿcÿcÿÿB´ä¸™@ä ää¼1 ™.+ö<ý>” ” %@9OŸu! ” ”%¸ÿÀµ9 ¸¡³ ©h+ö]+íääö]+íääô<<<ô<<<?<<54&'þ‡©{ µ5LjotV]ˆ[³j\vºeXˆ,Tj9î½jiyg{ji‰a‘Ó´WÂŒ"‘D` =A0ªlÀwPVVMb«jqýù"%j’U»ú ¶(ˆ]\|%ý œsbw/wÿÊŸÓ '3@ h¸š@1+¼Ÿ e Ÿ@ %(¼Ÿe.Ÿ²% ¼š+1š³"¬5¼šš@ u4WZ+ö]íôíöíôí?íýí<r 88)^    1^ j7q˜+ö]íô]íô]äôí]ô]]íä?äí?í‡.+}Ä<‡Ä<<‡Ä10]]]]]]]]]]]]]]]]]]]]]]]]]]%#"'&5467.5463267&>54&#" 326ÍYÒzá„k¯®cBÏ–¿þë-»0Re€ymþuE_GIa##Mþ¶’fŽ‚Q­­cc˜|™ˆÛSrŽB„øєþ±Xt(À|†[F…Eh?K_^D"K*ý5™W•IYÀeZ³'º&@î jq§+ö]í?í991053ˆ.Í0³õõþî|þQ`Ó=@ '¸3³Ÿ¸3@Ÿ^ ¬Œ+ö]ýöíöí?7¶ÍPW296ÍÍq‹&Ma[A¸jm,@ppMM#pp+Nä]æ/Mí10q]5!A)¸µµº‡Í%@< <_o¯  ¡˜+ö]]í?í10353ºÍÍÍÿç9ÓS¹ÿÞ²9¸ÿÞ@ 9—Ÿ¯v è踩µ³z+<ôíí?73û´AÓT—â/t{>|®GÊ_<Àç@6;;»¿»ÇÉI Y Tk dzz‰¼ååð ¿ ·¾ÿðÿàÿð ÿð@ Ê ¸¤³O¸µ ¸»@ sÓ@!#4» 8@ µ?_oº$±‹+ö]ôíö+<ôí?<ý7>54&#"'>32ü7%£šï¨™{‚œ¹øÑÓöH§Â¢\­­A32#"&V´•k¯¢}3L s¸†jiŒ´!ê®xÊkfd‚þèÖÁÿƒ™‡°‚|¡žx}c‚„„ µÇg²d_œ.½ŽÀþõæº ô@6X h š © É LL ”   Ê  »» @  Ê ¸f· @4 ¸7@ @"#4€!5¸ÿÀ@ 4 µ¸Œ±‹+ì]+ö++ô+<æý<??ô<ö<9999‡.+}Ä10C\X¹ ÿÞ²9 ¸ÿÔ@ 39"-9<++++Y]]C\X@ @ 9 €P9 @&9 "9 @-9+++++Y!!533#–ý„“ÆÆ´þ5_¥¶üJ¥þ¡•ýkUÿç!¦ê@KyŠ–§Ã Ö Û * 00 ºÿàÿà@ Ê ¸¤@ @ @¸»·Ó@¸@# _o€s@!#40 ¼5• 8²µº8ÿÀ@ !#4 @¸’±‹+ö]+íôíôíö]q+íô]<?íý]ä?í9/]9/]íä‡.+}Ä9108888q]732654&#"'!!632#"&U½™l‚´­ŒWŒ(©ŽÙý·O„‘ÀtôÈý€ЋĢš²O?ñ¬þv\þöÑÇ‘²àMÿçÀ*²@'kD@DD ZT kddjd tu…†ÖÔ¸ÿà´' # !¸ÿà@(@ P  Ó_¸h@ " ¸8@µ%s@!#40, º89@ ?_o¸$³+Ç‹+ö]ííö]q+íôí?í?íý]ä9/]í108888]]&'&#">32#"763232654&#"û³,IkVAUbA¼g´ýwЄáþä‰è­Ýý7OŽNr¤¢{zªSj0M0>îÜc`þ÷ÒŠí~K|©Á¨ÂüÝ]ªY¸ž˜¯¯a§ p@Ä    ¸»@0 s@!#4O_os ëO__?_o¸’±‹+Nô]q54'#"5432#"&4&#"326p­|aS}P66»m¶üÆí{zñ¢¬ÚË¥tx²©|}¡SznLØp VkØßšþãþòþçþ³®¿4›¶ÄœŒ¯¯¹†&8@  << 7¶ÍÍÍPW296YÍÍü§ÍÍq‹&Ma[pâ;ÃZ@ €»ZZ²@ºPP@«« < uWZ+ö]<íNö/Míííííí910]5 pËüþ¨š³þÄþÁ³r¡:G@' %%%%0ŸÏ¿ WZ+Näæ/Mí]qí<í<íí999910!5!!5!:ü8Èü8È^¨ý›¨pâ;ÃZ@ €»ZZ²@ºPP@«« < uWZ+æ]Nö54&#"'>3253Ø1$»8¤wsš¹÷Ë×ZƒX6¸Íi$jM:;+¥b:iŸ™ÍÚê¦`¢tNJ`lþ—ÍÍoþQÕÕGW÷@W! !!%5 3EID!F$FIGVTz)%)& *&)569C%VY[!V)VIYVee%f)vzr$…„Œ‹!‡&PS¸»@ '0 P  »HCK»´C: ¸»·: +p++ºM'»¶/H$¸ƒ@P>$ $0pº©ž´?8*$+º #ž@ 55XWŒ+Nô]Míýíôíô]íôýäý]í/íí]?í?äíí?]äí99910]]%#".5463273327654$#"3 $73#",'&547!2#"&'&32>54&#"‰A¡QY¨i£òrWž9"³)5Vr…«þ­Íêþ}ÕÕ“õbXµ3øþªñÞþ‰þøCTdzÁ@ø‹ra̶ØEU þ‚T8|qH‡a@qj@£K[hØŸ? []›ýaŒ'=P §"®Ûþgêõþž©°~iÚr啽ÛôÝ ËÉ­ËþÞáÊ*'L‰˜C„Ëfˆ–AÎÿýYº#3#!!&'3ÑXÝ«ý›¡Ùñ™F"3ºúF¼þDZ–¹w‹–éº*@PF#V#f#s „ iup s ƒƒ ' '* **))&T%& ,  ]+;\+ö]<ý54.#!!27>54.#!–&¨Ësfg…W€ÁŒþ“=8JKF‚žþÛm^&CZ:T•Œþ­ºY¹e^¦3'¼€g±`1RfMIo)û  8kFRy1fÿçvÓ¸@`cj 2 cpt€„š«¥ ¹´ Ç Ðäó*(* G VWVhk{‹š™š¨¤¨Õ¸ÿÞ²(9¸ÿÀ@'(9  &J& & c\+Nô]MíNö]Míôí?í?í910++]]q]r#"$54$32.#"326´Â=þÃåíþ×›¯CÂÜ,;¿3“©ã\m憣â1ïûÁnÒåU±àË- ’¢þï‘»þ銼žZº„@& C&    ];\+ö]<ý<ö]í?<ý54&'&#!žù«Z~YtsNz‘Í…þ±9‘¥1EM—lN­þ̺LbþÏħþþ©a2­61E馿÷*¢èº [@  ¸ÿÀ@4TJ     ] ;[+Nô]?¬ýàrs¹^ØÖs´g¸”0p€MQ„OˆŸÄþø€a7¡º h¹ ÿÀ@'4   Ð    ]€    ¸ÿÀ@4]  P ` p ;Y+]qö+]<ý<]ö<ý<?53#"&;¯pcIj(ÂYÁ‚ÁÍ ¨|Cs~òü¸ÊjÞ–Rº …@1"79 :' 56 G W†×v ÙÙ (ŒŠªê 5Ö ¸ÿà@ !4 !4¸ÿÞ³ 9 ¸ÿà³!4¸ÿà³!4¸ÿà³!4¸ÿÀ³4¸ÿÞ@=9 %%= =          ¸:@0 °ÀàJ¸:@ 0 €°¸†@ ] ;¨+ô]íý]qíô]qí<<<<?<<54&#!¡ŠÄÌzÊÓM(ULÿôÂUnW-!Ká¡…–N—£þ0ºOÈyœÖ%$Nuþq1„Œ8 ýu37yGh†\ÿçëÓ0þ@œccst%'59CILED$F'SY\W(‰( &$$'%64#D%E/Z V#U%l j kfey z z}u$s%†Š ‰ Š…$ƒ%’ ––%$ !%$" -í- P`p¸°@%-- &J &))2!&&T 1c[+Nô]MäííNö]Míôí?í?íý]äý]ô9999910]q]q732>54&'&$'.54>32.#"#"$&\· _È}oªSP\;þlQig~ò”£ù†º­©°¡98ÙX€z†ûÇþó™×nWBsDEg#a+7£eoÁdiÌ‹Ž[O33k(;µvuÏsté0ººO@  ¸s³ ¸· /¸µ ¸s³¶™+ö]<ô]<ýä]æ<<??<ý<10!!5!!þŠþ ­­úó¡ÿç"ºq@ &XXɸÿÀ@44;FJv¦è ¸»@ &]  P`p€ &  ¸ÿÀ@ 4 ];Y+Nô+]íM]]qöMí?í?<10]+]3#"$53326`ÂdþûÔÎþúpÂG­}Ö¶ºü±Ýþü£Ž éOü²¿µb Fº õ@H/*(% / 0 ` ‰‰ À ð P     é  ee¸ÿÀ@ (9P€¸@ @(9_Ÿ¸@ P0`À𸈳 `¨+ô]qä]q+ä]q+íí?<í?<‡.+}ć.+}ÄK° SK°QZX² ¸ÿñ² ¸ÿñ²¸ÿî888888YK°(SK°6QZX¹ÿÀ8Y10]q]]!3673AýÈÒ}."-ŒÆýºû×€pxx)úFvºŒ@D)&)&9696IGIGXWXW˜˜  ¸ÿ<³ ¸ÿ<³  ¸ÿ<@Z         A Q QQ@Q¶ ¸‹±¨+Nô]MýýýýNEeDæ?<<(7@Ž * *) **9 67:*I*] ]*j i*`0Š †)𛩠¦ª(¶»(ÄÏ(ÒÝ(D+,*499,IH,VY+fi+v ‡ É ù ù+74/$42!_)o))/?ŸÿŸ¯ï¸ª@•E' 2 )aa%!$¸[@'@&& &0&¯&&19¸ÿÀ@#409À9 99%"/$¿Ï?18ö]qíôí]q+ö]íô<ýåå?í?ä?íýä9/]qíq999910]q]q%#"&54>76767654'&#"'>32#&326765Í@G CCSS``››š ¤¤   jiju p € ¦ µ ¶ µ  † ã"_o¸ª@I0@P`p àð    $"$ +I$Ï?14Ä+ö]qíö]rKS#KQZX¹ÿÀ8Yírôír?í?í9/9/]ä]ä10]q]q#"4632.#"326<±ï®Úþ÷r鉭ܯZˆª¤„jŽ…·Ï ¬¯¡klÃÓÖ‚FÿèߺÖ@«  % 4 D 55WT RSgde c`ÀÔÕÝååïëåàÿ+<<Kp.$ .:5 KE FIW V g åçúô    3%%Ð@`€t$¿Ïßÿ?O4P+Nô]qMíý]q<íý<ä?í?Þ@dU]] U eko e 'Ùúö1:1AMAQ\Ramaxxöö P`p  ¸ª@ • @ ¸ÿÀ@ '*4°  ¸ÿÀ³%&4¸ÿÀ@#403$@$*4?O47+Nô]+MýäNq++öq+Mí?íýä?í9/]<ýq<99910]]qr#"32!326!&'&#"^º,î¹éþïÜÕüè ²…cŒýÚQ 8V‰|©V£´ (þÞþù ¯ºh•†Ch¦€Ó³@ /0@p› œ ©  ( °À¸ÿÀ@(4   + Ÿÿ@%’¸ÿÀ³184¸ÿÀ@ 4£¼º!ö ++ö]++<ô<<ííí]??<<<ý32&#"3#²ŸŸƒvL\82RDÏÏšŒqk4FW F`bŒüfBþQê>*ð@` , %L E , &,#9 6J FVX h ú õ.#,'>#>'L', ,6!6)?,F F!E)T!T)ic!c)`,€,Ú'è!î#ï'¸±´(¸ª@ 0`p€Àи}@A E" 3%3 %Ð@`€t%"$¿Ïßÿ?O+,t!4P++Nô]qMíôíý]q<ýäö<?íä?íý]ä?íä?<10]q]q32676'#"5463253#"&32654&#"f¯ 2Ct}ˆv°ÛðnѼz¦eÛ ¾ê™¦}|¨­zx¨XQ%2dZ7°‹<ݘŒ˜€üjøÏx«*ÑÀ¿ÌÃÆÃ‡èº±¹ÿÀ@ 4%5Eº ¸ÿà@$4  % @364ÿ À  N¸ÿÀ@464°ðp °ÿ%¸ÿÀ@364ð ÐàNGP+ö]q+<ý<]q+ô]q+í?#ƹ ÿØ@A 4%ää áå Õö  #  # # Ð%% %%%¸]µ%¸]@3#%Р?O$%¸x³!GP++Nô]qr32632#4.#"#4&#"‡¡2¦jv—~Êžª³#\>p”´XdL:&•N_bXº¯¶ý'l_:•¤ý—²xxPš‘ýÙ‡æ>Ì@¨¸ãçðö¸ÿð@1 4y˜Ðàÿ   $ @364ÿ ÿ  N¸ÿÀ@464°ðp °À3%¸ÿÀ@364ð ÐàNö]q+<ý<ô<]q+ö]q+í<<? Á@]  GHVYgi4::5EKKE\\ R]]Rmm dmmdw  [TT [ lee l  $¸ÿÀ@$%40 1߸ÿÀ@#40$@$%4?147+ö]+íq+]ö]]+í?í?í10q]qC\X@ SS bb ]Y7632#"32654&#"D¤‰ÅÛ{ë‹ßþí¹²‡†²³…‡²'ŽvþáýÍë‚ ÌËÌÑÅËʇþi!>Ï@¥ -=K? °  ) #22Bp ::JJY[ \\jk imkÀ ÓÝÝÓääà ÿ #++5:FJZå ëþ  $Ð  @ ` €  t33%À °ð?OG7+Nô]qr32#"&'32654&#"‡¤:’hˆÐjuß{Z.¦vx«§ts±þi½ŠQQŒÿ˜£þû‹L:ýû¤ÍÄËÕËÊ×Hþià>¾@˜ +*;Ky ??K 44?DDSScc`€ÔÕæé ê)" +95 IF ZiÙ Ûãéæü   3%Ð@`€t$¿Ïßÿ?Ot!4P++Nô]qMíý]q<ýô<??í??í9910]]qq#"4>325332654&#",*—U½þïoÓ~Åq¢ý!¬xs¦¯vu£þi;N. þƒ¦ŽúC­ÍÍÃÇÔÖÇ…Æ>ƒ@;/#4CSft      (" "%¸ÿÀ@364ð ÐàNGÄ+ö]q+<ýä]ôrä???í999999ɇ}Ä10]r]33>32&#"…¢>i?[^>BB;^&¡qH:§'G?`rýÔ?ÿè±>0Ù@{"": J D$V"e"| Ž „$¦«, 0K,ÖU2 \\ \ \ \ \ jj j j j j ´&´''&$'$)6$Z Y d&d(t#t$€$“ œ ’(—,•0¤ © £'¤(³&Å&¸ÿÞ@9Z'%  & .¸ª@?O_¯Ïoß»Uª@@иÿÀ³4¸ÿÀ@4.\l. $@4¸[²$*¸ÿÀ·9Ð**2¸ÿÀ@&'*4`2À2?2€22$ $"ß?O147+Nô]qMôíírN]q+öq+Míô+ír?í?íq9/++]qräý]qrä99910Cy@@'-#,&"  (- !#"# ) (' +++<<+<<+++++*++]q]rq]732654'&'.5467>32.#"#"&?²‰{|x5%“Æ™OA8*‘S}½Z° si|j/„¿—ViÆ}ÏÙ=kreD=#%2INGy(+H{gR\R7# $3A|\ZŸW¬$ÿò*™€¹ ÿÀ³#&4 ¸ÿÀ@A#&4€  +  "" % ÿE E`p€  °Àкj6±f+ö]qôäí<ý<äô<?í?<ý<9933É10]++%#".5#5373#32Le¢cŒlþŒý“M,ƒÿèà&½¹ÿÀ@ 4 4¸ÿð@)4+$    3%@364ÿÀN¸ÿÀ@464°ðp °ÿ % ¸ÿÀ@364ð  Ð à  NGP+ö]q+í]q+ö]q+<ýä?í??<99910Cy@    ++**]+++!5#".'&5332>53?|Õ^£O ´ nQQŽ;´œ´HmO5s’ý³1GQSˆ9ûÚè& ^·5"9 ¸ÿÞ@ 9 44¸ÿê³4¸ÿê³4 ¸ÿØ@ !4(!4 ¸ÿè@ "%4"%4 ¸ÿÚ@µ(.4 (.4 )( & 95 HG VVYX ffii xwwyx w ‡‡†‰ˆŠ ˜ ‘ ¬¢ ½·± ÉÅ ÚÕ ìã ûô ,   (& 7 O@ @4@ 4 %  %  /  "@@@ €  ¸µ@€¸@ @" êÒ+öíý]ý]íä]9999?<<!4¸ÿÂ@J!4)( /99 IFFI O\TTZ Plccj {t{ ‹…‰ ùô&)+ 9¥×¸ÿÀ·4,9 ¸ÿÔ@'9:  % a+ a + ¸´¸[@,"  @`€ðt ~¯Ooÿt!|Ä++Nô]q!4++++qY]C\X¹ÿÞ²9 ¸ÿÞ²9 ¸ÿè·9 = ¸ÿð²9 ¸ÿø@ 999++++++++Y35#!5!63!(¤sXþOdýÁoyjë’’wý^{ ›9þQ|Ó*{@MG(44 4% 4')** %  %   ®%:%&:®*':&®**_i+ph+ö]<ôäôäýäý<ô<<<?í?í9/í9910++++q>7>76;#";#"'..'9Ma  1H8&V8hD W]ncA_8b,@T aMdOŠN5Tf= K‚þúEkt-.½×Ã%D6gžhŠP¼þQYÓ2¹~@¡Ÿ¯v ¡¡˜+Nô]7.54'.+532rMa  1H8&V8hD `Xs^A_8b,@T ad£P‰þ²5Ue= KƒúCo…%7µ×Ã&C5hžþ˜‰PW-VuU@   + ;   ¸ÿà@ 4 Ô Ô ¸X@ qŒ+Nô<ö</Môýäôí+í]í10]56323267#".#"Wj¬<„zEE#A‹6@ƒRþNCÿ¢ÿ¹Õb999°×^ssIwVX‡Zª|ª|@¬r9ªªA9º9sUsßs<sVssUsMsasSsU9¹9ª¬p¬r¬psZoVÿýV–ÇfÇžV¢ã¨9mǤ9¿7V–s–ª˜Çœ9cVž9XÇ¡V\ã0Ç¡V V Vã)9‹99'Á6sÿáªYsJs†PsFsK9sBs‡LjÇÿ¢ˆǃª‡s‡sDs‡sHª…?9$sƒÇ!(¬9¼¬/¬Wllllòš<Âj T š  ˜ x à X ž Ú JfP¤Ò Zx¼ÖXÈN@@‚ˆ ¦!Ž""Œ#â$x%$%°'n'¾)z*+z,$-Â/~11„2@3j5Z89x:’:î;X;°<8ª?ÞAB8C‚D|EìFàG„H`JbKL4MHN`OP®QnSØT¤U°WBZ@\]è_¨`¦`òaôb”Ta€Æ$ÿ7ÿÛ<ÿÛÿh$ÿ$7ÿh$9ÿh$:ÿ´$<ÿh$YÿÛ$ZÿÛ$\ÿÛ)ÿ)ÿ)$ÿ/ÿ´/7ÿh/9ÿh/:ÿh/<ÿh/\ÿ´3ÿÛ3þø3þø3$ÿh57ÿÛ59ÿÛ5:ÿÛ5<ÿÛ7ÿÛ7ÿ7ÿ7ÿ7ÿ7ÿ7$ÿh72ÿÛ7Dÿ7Fÿ7Hÿ7Lÿ´7Rÿ7Uÿ´7Vÿ7Xÿ´7Zÿ7\ÿ9ÿD9ÿ9ÿD9ÿ´9ÿ´9$ÿh9Dÿh9Hÿ9LÿÛ9Rÿ9Uÿ´9Xÿ´9\ÿ´:ÿ:ÿÛ:ÿ:ÿÛ:ÿÛ:$ÿ´:Dÿ´:HÿÛ:L:RÿÛ:UÿÛ:XÿÛ:\ÿî<ÿÛ<þø<ÿD<þø<ÿ<ÿ{<$ÿh<Dÿh<HÿD<Lÿ´<RÿD<Sÿh<TÿD<Xÿ<YÿIIÿÛUÿUÿYÿhYÿhZÿZÿ\ÿh\ÿhbXB±N      *ArialRegularArialArialRegularArialÿ'–b  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`a.nullnonmarkingreturnºº§&ÿçÿèÿçþiÿèºþiÿè길ÿÿÿÿ¨­i­¿Â𯹴ÈDœ|”‡ZȉRRD”ÿ´/¡¡ÍW~ºÿé…Ó‡… "APoLÿu\߃7Lnp€ÿXÿŽÿ’ÿ¤¥¹Èÿý ccÍÿîØÿÜ-\•™ß’ µ@W€¹rš]ÿgÿú!wÍMÍÀ+Leç|CØÿ£ÿ°ÿÄ]hšº5G!\ÿMÿÍ-x€™²¶¶¸½Ú ðÿ¤ÿð,I´ÎÀþýþ?)9Io¾ÇÐ#Áo 2@zÿÔ1UW§´æ÷~~ÆFÿB…‘¿ÂÅá/OV)ožr,11di‰˜ÇÞ+¶ Ï£«ûþàÿ&›Á  s‚ÖãC_›â”©Òa^m«÷8Q[h|‡‘™ÍÐèATkïhq½BBSsƒ†‹èþXþÄþÑþ÷ÿ2ÿ†Q|‘•ž´¹ÏÙÙßâ  !U{{~¢¨©´ÐÐâéòõû!""#rw”œÏÏÐìù"+5<Yoq‡µáÏÿ22–Ÿ¨«Âð ‚Ìü£ý*ýÞþþˆþ–þ²þ´ÿá<Qaajx–¥¯Ó *>LQ_jqx‚„𥍩®¼Í×ï !".5BOO^eq’´Öú *G]ety–°ÌÝâöüüÿ "&+G_užçç\Ëå m†¸ñ6>PQ]¶Ô`¶Ãµ·àEµŽ3ÎÎ-_dM?¨ˆ}´$x;;Nð&”ÆŸö;MKSj1ª<Ãí¼eεx ~ï ²9Å0+ËÚß¡Û í§P ½>X!œ®q}µE ûŒ+Nª‡T2øÿN´7ãƒkØíwˆ—dgŽ3|禞)n*ÉiŠ´©9$„]šïÙuÏ Þ¬¼Ï®MðRhm}†qÿyXÒgV%à”|2!”r\/¶º¸AMrLjU™šš˜²xiWnδT¸geçË@AA@?>=<;:987543210/.-,+*)('&%$#"!  ,E#F` °&`°&#HH-,E#F#a °&a°&#HH-,E#F`° a °F`°&#HH-,E#F#a° ` °&a° a°&#HH-,E#F`°@a °f`°&#HH-,E#F#a°@` °&a°@a°&#HH-, <<-, E# °ÍD# ¸ZQX# °D#Y °íQX# °MD#Y °QX# ° D#Y!!-, EhD °` E°FvhŠE`D-,± C#Ce -,± C#C -,°#p±>°#p±E:± -,E°#DE°#D-, E°%Ead°PQXED!!Y-,°Cc#b°#B°+-, E°C`D-,°C°Ce -, i°@a°‹ ±,ÀŠŒ¸b`+ d#da\X°aY-,E°+°#D°zä-,E°+°#D-,°CX‡E°+°#D°zäŠEi °#DŠŠ‡ ° QX°+°#D°zä!°zäYY-,-,°%F`ŠF°@aŒH-,KS \X°…YX°…Y-, °%E°#DE°#DEe#E °%`j ° #B#hŠj`a °аRy!²@¹ÿàE ŠTX#!°?#YaD±ŠRy³@ E ŠTX#!°?#YaD-,±C#C -,±C#C -,± C#C -,± C#Ce -,±C#Ce -,±C#Ce -,KRXED!!Y-, °%#I°@`° c °RX#°%8#°%e8Šc8!!!!!Y-,K°dQXEi° C`Š:!!!Y-,°%# Šõ°`#íì-,°%# Šõ°a#íì-,°%õíì-, °` <<-, °a <<-,°++°**-,°C°C -,>°**-,5-,v¸##p ¸#E °PX°aY:/-,!! d#d‹¸@b-,!°€QX d#d‹¸ b²@/+Y°`-,!°ÀQX d#d‹¸Ub²€/+Y°`-, d#d‹¸@b`#!-,´°&°&°&°&Eh:°-,´°&°&°&°&Ehe:°-,KS#KQZX EŠ`D!!Y-,KTX EŠ`D!!Y-,KS#KQZX8!!Y-,KTX8!!Y-,°CXY-,°CXY-,KT°C\ZX8!!Y-,°C\X °%°% d#dad¸QX°%°% F°`H F°`HY !!!!Y-,°C\X °%°% d#dad¸QX°%°% F¸ÿð`H F¸ÿð`HY !!!!Y-,KS#KQZX°:+!!Y-,KS#KQZX°;+!!Y-,KS#KQZ°C\ZX8!!Y-, ŠKT°&KTZŠŠ °C\ZX8!!Y-,KRX°%°%I°%°%Ia °TX! C°UX°%°%¸ÿÀ8¸ÿÀ8Y°@TX C°TX°%¸ÿÀ8Y C°TX°%°%¸ÿÀ8¸ÿÀ8°%¸ÿÀ8YYYY!!!!-,F#F`ŠŠF# FŠ`Ša¸ÿ€b# #йŠpE` °PX°a¸ÿº‹°FŒY°`h:-¸Á³$ÿA¿¿/¿?¿O¿_¿¿¿"²dA »Ê²é¦¢@j@&CI2@ CI2@&:=2@ :=2Ÿ Ÿ&@&–™2@ –™2@&Ž’2@ Ž’2@&„Œ2@ „Œ2@&z2@ z2@&lv2@ lv2@&dj2@ dj2@&Z_2@ Z_2@&OT2@ OT2¸ž·$'7Ok Aw0w@wPwwwwù›²**¸š@+)*€º€¼€R€¢€e€~€€<€^€+€€€@€»8€@´€@€»8€9@€Ê€­€s€&€%€$€ 7@¸!²I3@¸!²E3@¸!³AB2@¸!³=>2A!?!!¿!Ï!ÿ!@!³ "2@¸!³2@¸"³*?2@¸!³.:2oAHÃÃÃßÃ/Ã`ÃÏÃÃ?Ã_ÃÀÃïÃÿÃß"""/"?"_""ï"¿!ï!o!!¯!/!?!O!ÃÃ""!!@+HOÿ7¸ ¶÷ ø÷ A ޲ù¸˜²&»A—9&%8s54«2²V¸²&,º¶ùä鸶è»× ¸²Õ¸«¶Ô‰É/¸²¼&¸²º ¸¶¹8­Ê¸²&¸š²~&¸š¶}Gk¸²e&¸š²^s¸@R&ZH‰Db@s¸¶?^<&¸š²5¸¶0»+¸¶*V)¸²#¸²U7¸h@,–XO62,!  ¸ÿà@+J°KKSBK°ÀcKb °öS#¸ QZ°#B°KKTB°8+K¸ÿR°7+K°P[X±ŽY°8+°ˆ¸TX¸ÿ±Ž…°CX¹…¹(…YYv??>9FD>9FD>9FD>9FD>9F`D>9F`D+++++++++++++++++++++++°–KSX°ªY°2KSX°ÿYK°“S \X¹òðED¹ñðEDYX¹>òERX¹ò>DYYK¸VS \X¹ ñED¹&ñEDYX¹ ERX¹ DYYK¸šS \X¹%òED¹$òEDYX¹ %ERX¹% DYYK¸S \X±s$ED±$$EDYX¹ sERX¹s DYYK¸S \X±Ê%ED±%%EDYX¹€ÊERX¹Ê€DYYK°>S \X±ED±EDYX¹ERX¹DYYK°VS \X±ED±/EDYX¹‰ERX¹‰DYYK¸S \X±ED±EDYX¹ àERX¹ àDYY+++++++++++++++++++++++++++++++++++++++++eB++³;Yc\Ee#E`#Ee`#E`°‹vh°€b ±cYEe#E °&`bch °&ae°Y#eD°c#D ±;\Ee#E °&`bch °&ae°\#eD°;#D±\ETX±\@eD²;@;E#aDY³GP47Ee#E`#Ee`#E`°‰vh°€b ±4PEe#E °&`bch °&ae°P#eD°4#D ±G7Ee#E °&`bch °&ae°7#eD°G#D±7ETX±7@eD²G@GE#aDYKSBKPX±BYC\X±BY³ CX`!YBp>°CX¹;!~º¨ +Y° #B° #B°CX¹-A-Aº +Y°#B°#B°CX¹~;!º¨ +Y°#B°#B+tusuEiDEiDEiDsssstustu++++tu+++++sssssssssssssssssssssssss+++E°@aDstK°*SK°?QZX±E°@`DYK°:SK°?QZX± E¸ÿÀ`DYK°.SK°:QZX±E°@`DYK°.SK°$}\par {\tt \#include $<$expat.h$>$}\par {\tt \#include $<$discover/load-url.h$>$}\par {\tt \#include $<$stdio.h$>$}\par {\tt \#include $<$string.h$>$}\par \subsection*{Defines} \begin{CompactItemize} \item \#define {\bf STDIO\_\-READ}(f, buf, len)~fread(buf, 1, len, f)\label{load-url_8c_a0} \end{CompactItemize} \subsection*{Typedefs} \begin{CompactItemize} \item typedef FILE $\ast$ {\bf stdio\_\-file}\label{load-url_8c_a1} \end{CompactItemize} \subsection*{Functions} \begin{CompactItemize} \item int {\bf \_\-discover\_\-load\_\-url} (const char $\ast$url, XML\_\-Parser parser)\label{load-url_8c_a2} \end{CompactItemize} \subsection{Detailed Description} File loading helper functions. Definition in file {\bf load-url.c}.discover-2.1.2/doc/api-reference/latex/group__url__xml.tex0000644002342100234210000002245310655642004022315 0ustar perepere\section{URL list XML parsing} \label{group__url__xml}\index{URL list XML parsing@{URL list XML parsing}} \subsection*{Functions} \begin{CompactItemize} \item {\bf discover\_\-xml\_\-url\_\-t} $\ast$ {\bf discover\_\-xml\_\-get\_\-urls} ({\bf discover\_\-error\_\-t} $\ast$status) \item void {\bf discover\_\-xml\_\-free\_\-urls} (void) \item {\bf discover\_\-xml\_\-url\_\-t} $\ast$ {\bf discover\_\-xml\_\-get\_\-data\_\-urls} ({\bf discover\_\-bus\_\-t} bus, {\bf discover\_\-filetype\_\-t} filetype, {\bf discover\_\-error\_\-t} $\ast$status) \item void {\bf discover\_\-xml\_\-free\_\-data\_\-urls} (void) \item {\bf discover\_\-xml\_\-url\_\-t} $\ast$ {\bf discover\_\-xml\_\-url\_\-new} (void) \item void {\bf discover\_\-xml\_\-url\_\-copy} ({\bf discover\_\-xml\_\-url\_\-t} $\ast$src, {\bf discover\_\-xml\_\-url\_\-t} $\ast$dst) \item char $\ast$ {\bf discover\_\-xml\_\-url\_\-get\_\-url} ({\bf discover\_\-xml\_\-url\_\-t} $\ast$url) \item char $\ast$ {\bf discover\_\-xml\_\-url\_\-get\_\-label} ({\bf discover\_\-xml\_\-url\_\-t} $\ast$url) \item char $\ast$ {\bf discover\_\-xml\_\-url\_\-get\_\-bus} ({\bf discover\_\-xml\_\-url\_\-t} $\ast$url) \item char $\ast$ {\bf discover\_\-xml\_\-url\_\-get\_\-type} ({\bf discover\_\-xml\_\-url\_\-t} $\ast$url) \item {\bf discover\_\-xml\_\-url\_\-t} $\ast$ {\bf discover\_\-xml\_\-url\_\-get\_\-next} ({\bf discover\_\-xml\_\-url\_\-t} $\ast$url) \item {\bf discover\_\-xml\_\-url\_\-t} $\ast$ {\bf discover\_\-xml\_\-url\_\-get\_\-last} ({\bf discover\_\-xml\_\-url\_\-t} $\ast$url) \item void {\bf discover\_\-xml\_\-url\_\-free} ({\bf discover\_\-xml\_\-url\_\-t} $\ast$urls) \end{CompactItemize} \subsection{Function Documentation} \index{url_xml@{url\_\-xml}!discover_xml_free_data_urls@{discover\_\-xml\_\-free\_\-data\_\-urls}} \index{discover_xml_free_data_urls@{discover\_\-xml\_\-free\_\-data\_\-urls}!url_xml@{url\_\-xml}} \subsubsection{\setlength{\rightskip}{0pt plus 5cm}void discover\_\-xml\_\-free\_\-data\_\-urls (void)}\label{group__url__xml_ga3} Free the list of data URLs. Definition at line 310 of file url-xml.c. References BUS\_\-COUNT, and discover\_\-xml\_\-url\_\-free().\index{url_xml@{url\_\-xml}!discover_xml_free_urls@{discover\_\-xml\_\-free\_\-urls}} \index{discover_xml_free_urls@{discover\_\-xml\_\-free\_\-urls}!url_xml@{url\_\-xml}} \subsubsection{\setlength{\rightskip}{0pt plus 5cm}void discover\_\-xml\_\-free\_\-urls (void)}\label{group__url__xml_ga1} Free the list of URLs. Definition at line 244 of file url-xml.c. References discover\_\-xml\_\-url\_\-free().\index{url_xml@{url\_\-xml}!discover_xml_get_data_urls@{discover\_\-xml\_\-get\_\-data\_\-urls}} \index{discover_xml_get_data_urls@{discover\_\-xml\_\-get\_\-data\_\-urls}!url_xml@{url\_\-xml}} \subsubsection{\setlength{\rightskip}{0pt plus 5cm}{\bf discover\_\-xml\_\-url\_\-t}$\ast$ discover\_\-xml\_\-get\_\-data\_\-urls ({\bf discover\_\-bus\_\-t} {\em bus}, {\bf discover\_\-filetype\_\-t} {\em filetype}, {\bf discover\_\-error\_\-t} $\ast$ {\em status})}\label{group__url__xml_ga2} Get the list of data URLs, based on the bus type and type of data required. \begin{Desc} \item[Parameters:] \begin{description} \item[{\em bus}]Bus in question \item[{\em filetype}]Type of file (vendor, busclass, or device) \item[{\em status}]Address in which to place status report \end{description} \end{Desc} Definition at line 261 of file url-xml.c. References discover\_\-error::code, discover\_\-conf\_\-get\_\-bus\_\-name(), discover\_\-conf\_\-get\_\-filetype\_\-name(), DISCOVER\_\-EDATANOTFOUND, discover\_\-xml\_\-get\_\-urls(), discover\_\-xml\_\-url\_\-copy(), and discover\_\-xml\_\-url\_\-new(). Referenced by discover\_\-xml\_\-get\_\-busclasses(), discover\_\-xml\_\-get\_\-devices(), and discover\_\-xml\_\-get\_\-vendors().\index{url_xml@{url\_\-xml}!discover_xml_get_urls@{discover\_\-xml\_\-get\_\-urls}} \index{discover_xml_get_urls@{discover\_\-xml\_\-get\_\-urls}!url_xml@{url\_\-xml}} \subsubsection{\setlength{\rightskip}{0pt plus 5cm}{\bf discover\_\-xml\_\-url\_\-t}$\ast$ discover\_\-xml\_\-get\_\-urls ({\bf discover\_\-error\_\-t} $\ast$ {\em status})}\label{group__url__xml_ga0} Get the list of URLs from which bus and device data will be retrieved. \begin{Desc} \item[Parameters:] \begin{description} \item[{\em status}]Address in which to place status report \end{description} \end{Desc} Definition at line 182 of file url-xml.c. References discover\_\-error::code, discover\_\-conf\_\-get\_\-urls(), DISCOVER\_\-EIO, DISCOVER\_\-EXML, and discover\_\-xml\_\-url\_\-free(). Referenced by discover\_\-xml\_\-get\_\-data\_\-urls().\index{url_xml@{url\_\-xml}!discover_xml_url_copy@{discover\_\-xml\_\-url\_\-copy}} \index{discover_xml_url_copy@{discover\_\-xml\_\-url\_\-copy}!url_xml@{url\_\-xml}} \subsubsection{\setlength{\rightskip}{0pt plus 5cm}void discover\_\-xml\_\-url\_\-copy ({\bf discover\_\-xml\_\-url\_\-t} $\ast$ {\em src}, {\bf discover\_\-xml\_\-url\_\-t} $\ast$ {\em dst})}\label{group__url__xml_ga5} Copy a URL structure. \begin{Desc} \item[Parameters:] \begin{description} \item[{\em src}]Copy from (source) \item[{\em dst}]Copy to (destination) \end{description} \end{Desc} Definition at line 349 of file url-xml.c. Referenced by discover\_\-xml\_\-get\_\-data\_\-urls().\index{url_xml@{url\_\-xml}!discover_xml_url_free@{discover\_\-xml\_\-url\_\-free}} \index{discover_xml_url_free@{discover\_\-xml\_\-url\_\-free}!url_xml@{url\_\-xml}} \subsubsection{\setlength{\rightskip}{0pt plus 5cm}void discover\_\-xml\_\-url\_\-free ({\bf discover\_\-xml\_\-url\_\-t} $\ast$ {\em urls})}\label{group__url__xml_ga12} Free the URL or list of URLs. \begin{Desc} \item[Parameters:] \begin{description} \item[{\em urls}]URL or list of URLs to free \end{description} \end{Desc} Definition at line 444 of file url-xml.c. Referenced by discover\_\-conf\_\-free(), discover\_\-xml\_\-free\_\-data\_\-urls(), discover\_\-xml\_\-free\_\-urls(), and discover\_\-xml\_\-get\_\-urls().\index{url_xml@{url\_\-xml}!discover_xml_url_get_bus@{discover\_\-xml\_\-url\_\-get\_\-bus}} \index{discover_xml_url_get_bus@{discover\_\-xml\_\-url\_\-get\_\-bus}!url_xml@{url\_\-xml}} \subsubsection{\setlength{\rightskip}{0pt plus 5cm}char$\ast$ discover\_\-xml\_\-url\_\-get\_\-bus ({\bf discover\_\-xml\_\-url\_\-t} $\ast$ {\em url})}\label{group__url__xml_ga8} Get the bus member of URL. Definition at line 398 of file url-xml.c.\index{url_xml@{url\_\-xml}!discover_xml_url_get_label@{discover\_\-xml\_\-url\_\-get\_\-label}} \index{discover_xml_url_get_label@{discover\_\-xml\_\-url\_\-get\_\-label}!url_xml@{url\_\-xml}} \subsubsection{\setlength{\rightskip}{0pt plus 5cm}char$\ast$ discover\_\-xml\_\-url\_\-get\_\-label ({\bf discover\_\-xml\_\-url\_\-t} $\ast$ {\em url})}\label{group__url__xml_ga7} Get the label member of url. Definition at line 387 of file url-xml.c.\index{url_xml@{url\_\-xml}!discover_xml_url_get_last@{discover\_\-xml\_\-url\_\-get\_\-last}} \index{discover_xml_url_get_last@{discover\_\-xml\_\-url\_\-get\_\-last}!url_xml@{url\_\-xml}} \subsubsection{\setlength{\rightskip}{0pt plus 5cm}{\bf discover\_\-xml\_\-url\_\-t}$\ast$ discover\_\-xml\_\-url\_\-get\_\-last ({\bf discover\_\-xml\_\-url\_\-t} $\ast$ {\em url})}\label{group__url__xml_ga11} Get the last member of url. Definition at line 431 of file url-xml.c.\index{url_xml@{url\_\-xml}!discover_xml_url_get_next@{discover\_\-xml\_\-url\_\-get\_\-next}} \index{discover_xml_url_get_next@{discover\_\-xml\_\-url\_\-get\_\-next}!url_xml@{url\_\-xml}} \subsubsection{\setlength{\rightskip}{0pt plus 5cm}{\bf discover\_\-xml\_\-url\_\-t}$\ast$ discover\_\-xml\_\-url\_\-get\_\-next ({\bf discover\_\-xml\_\-url\_\-t} $\ast$ {\em url})}\label{group__url__xml_ga10} Get the next member of url. Definition at line 420 of file url-xml.c. Referenced by discover\_\-xml\_\-get\_\-busclasses(), discover\_\-xml\_\-get\_\-devices(), and discover\_\-xml\_\-get\_\-vendors().\index{url_xml@{url\_\-xml}!discover_xml_url_get_type@{discover\_\-xml\_\-url\_\-get\_\-type}} \index{discover_xml_url_get_type@{discover\_\-xml\_\-url\_\-get\_\-type}!url_xml@{url\_\-xml}} \subsubsection{\setlength{\rightskip}{0pt plus 5cm}char$\ast$ discover\_\-xml\_\-url\_\-get\_\-type ({\bf discover\_\-xml\_\-url\_\-t} $\ast$ {\em url})}\label{group__url__xml_ga9} Get the type member of url. Definition at line 409 of file url-xml.c.\index{url_xml@{url\_\-xml}!discover_xml_url_get_url@{discover\_\-xml\_\-url\_\-get\_\-url}} \index{discover_xml_url_get_url@{discover\_\-xml\_\-url\_\-get\_\-url}!url_xml@{url\_\-xml}} \subsubsection{\setlength{\rightskip}{0pt plus 5cm}char$\ast$ discover\_\-xml\_\-url\_\-get\_\-url ({\bf discover\_\-xml\_\-url\_\-t} $\ast$ {\em url})}\label{group__url__xml_ga6} Get the url member of url. Definition at line 376 of file url-xml.c. Referenced by discover\_\-xml\_\-get\_\-busclasses(), discover\_\-xml\_\-get\_\-devices(), and discover\_\-xml\_\-get\_\-vendors().\index{url_xml@{url\_\-xml}!discover_xml_url_new@{discover\_\-xml\_\-url\_\-new}} \index{discover_xml_url_new@{discover\_\-xml\_\-url\_\-new}!url_xml@{url\_\-xml}} \subsubsection{\setlength{\rightskip}{0pt plus 5cm}{\bf discover\_\-xml\_\-url\_\-t}$\ast$ discover\_\-xml\_\-url\_\-new (void)}\label{group__url__xml_ga4} Create and initialize a new (empty) URL structure. Definition at line 326 of file url-xml.c. Referenced by discover\_\-conf\_\-get\_\-urls(), and discover\_\-xml\_\-get\_\-data\_\-urls().discover-2.1.2/doc/api-reference/latex/group__types.tex0000644002342100234210000003023110655642004021631 0ustar perepere\section{Types} \label{group__types}\index{Types@{Types}} \subsection*{Data Structures} \begin{CompactItemize} \item struct {\bf discover\_\-error} \item struct {\bf discover\_\-bus\_\-map} \end{CompactItemize} \subsection*{Defines} \begin{CompactItemize} \item \#define {\bf BUS\_\-COUNT}~5 \end{CompactItemize} \subsection*{Typedefs} \begin{CompactItemize} \item typedef void $\ast$( {\bf discover\_\-create\_\-message\_\-t} )(struct {\bf discover\_\-error} $\ast$$\ast$, char $\ast$) \item typedef {\bf discover\_\-error} {\bf discover\_\-error\_\-t} \item typedef {\bf discover\_\-bus\_\-map} {\bf discover\_\-bus\_\-map\_\-t} \item typedef discover\_\-device {\bf discover\_\-device\_\-t} \item typedef discover\_\-data {\bf discover\_\-data\_\-t} \item typedef discover\_\-xml\_\-busclass {\bf discover\_\-xml\_\-busclass\_\-t} \item typedef discover\_\-xml\_\-vendor {\bf discover\_\-xml\_\-vendor\_\-t} \item typedef discover\_\-xml\_\-url {\bf discover\_\-xml\_\-url\_\-t} \item typedef {\bf discover\_\-device\_\-t} $\ast$( {\bf discover\_\-device\_\-func\_\-t} )({\bf discover\_\-error\_\-t} $\ast$) \item typedef {\bf discover\_\-xml\_\-busclass\_\-t} $\ast$( {\bf discover\_\-xml\_\-busclass\_\-func\_\-t} )({\bf discover\_\-error\_\-t} $\ast$) \item typedef {\bf discover\_\-xml\_\-vendor\_\-t} $\ast$( {\bf discover\_\-xml\_\-vendor\_\-func\_\-t} )({\bf discover\_\-error\_\-t} $\ast$) \item typedef {\bf discover\_\-xml\_\-url\_\-t} $\ast$( {\bf discover\_\-xml\_\-url\_\-func\_\-t} )({\bf discover\_\-error\_\-t} $\ast$) \item typedef void( {\bf discover\_\-free\_\-func\_\-t} )(void) \item typedef {\bf discover\_\-sysdep\_\-data\_\-t} $\ast$( {\bf discover\_\-sysdep\_\-raw\_\-func\_\-t} )(void) \end{CompactItemize} \subsection*{Enumerations} \begin{CompactItemize} \item enum {\bf discover\_\-error\_\-code\_\-t} \{ \par {\bf DISCOVER\_\-SUCCESS}, {\bf DISCOVER\_\-EIO}, {\bf DISCOVER\_\-EXML}, {\bf DISCOVER\_\-ESYS}, \par {\bf DISCOVER\_\-EBUSDISABLED}, {\bf DISCOVER\_\-EBUSNOTFOUND}, {\bf DISCOVER\_\-EDATANOTFOUND}, {\bf DISCOVER\_\-EDEVICENOTFOUND}, \par {\bf DISCOVER\_\-EBADVERSION}, {\bf DISCOVER\_\-ENOIMPL} \} \item enum {\bf discover\_\-bus\_\-t} \{ \par {\bf ATA}, {\bf PCI}, {\bf PCMCIA}, {\bf SCSI}, \par {\bf USB} \} \item enum {\bf discover\_\-filetype\_\-t} \{ {\bf VENDOR\_\-TYPE}, {\bf BUSCLASS\_\-TYPE}, {\bf DEVICE\_\-TYPE} \} \end{CompactItemize} \subsection{Define Documentation} \index{types@{types}!BUS_COUNT@{BUS\_\-COUNT}} \index{BUS_COUNT@{BUS\_\-COUNT}!types@{types}} \subsubsection{\setlength{\rightskip}{0pt plus 5cm}\#define BUS\_\-COUNT~5}\label{group__types_ga14} Number of buses we support Definition at line 157 of file discover.h. Referenced by \_\-real\_\-discover\_\-conf\_\-get\_\-bus\_\-map(), discover\_\-conf\_\-get\_\-bus\_\-map(), discover\_\-conf\_\-get\_\-bus\_\-name(), discover\_\-free\_\-devices(), discover\_\-xml\_\-free\_\-busclasses(), discover\_\-xml\_\-free\_\-data\_\-urls(), discover\_\-xml\_\-free\_\-devices(), and discover\_\-xml\_\-free\_\-vendors(). \subsection{Typedef Documentation} \index{types@{types}!discover_bus_map_t@{discover\_\-bus\_\-map\_\-t}} \index{discover_bus_map_t@{discover\_\-bus\_\-map\_\-t}!types@{types}} \subsubsection{\setlength{\rightskip}{0pt plus 5cm}typedef struct {\bf discover\_\-bus\_\-map} {\bf discover\_\-bus\_\-map\_\-t}}\label{group__types_ga2} Mapping of bus names to functions Definition at line 116 of file discover.h.\index{types@{types}!discover_create_message_t@{discover\_\-create\_\-message\_\-t}} \index{discover_create_message_t@{discover\_\-create\_\-message\_\-t}!types@{types}} \subsubsection{\setlength{\rightskip}{0pt plus 5cm}typedef void$\ast$( {\bf discover\_\-create\_\-message\_\-t})(struct {\bf discover\_\-error} $\ast$$\ast$, char $\ast$)}\label{group__types_ga0} Signature of functions that assist with creating message strings Definition at line 99 of file discover.h.\index{types@{types}!discover_data_t@{discover\_\-data\_\-t}} \index{discover_data_t@{discover\_\-data\_\-t}!types@{types}} \subsubsection{\setlength{\rightskip}{0pt plus 5cm}typedef struct discover\_\-data {\bf discover\_\-data\_\-t}}\label{group__types_ga4} Data element from the device XML files Definition at line 120 of file discover.h.\index{types@{types}!discover_device_func_t@{discover\_\-device\_\-func\_\-t}} \index{discover_device_func_t@{discover\_\-device\_\-func\_\-t}!types@{types}} \subsubsection{\setlength{\rightskip}{0pt plus 5cm}typedef {\bf discover\_\-device\_\-t}$\ast$( {\bf discover\_\-device\_\-func\_\-t})({\bf discover\_\-error\_\-t} $\ast$)}\label{group__types_ga8} Signature of functions returning discover\_\-device\_\-t structures Definition at line 129 of file discover.h.\index{types@{types}!discover_device_t@{discover\_\-device\_\-t}} \index{discover_device_t@{discover\_\-device\_\-t}!types@{types}} \subsubsection{\setlength{\rightskip}{0pt plus 5cm}typedef struct discover\_\-device {\bf discover\_\-device\_\-t}}\label{group__types_ga3} Structure describing a device Definition at line 118 of file discover.h.\index{types@{types}!discover_error_t@{discover\_\-error\_\-t}} \index{discover_error_t@{discover\_\-error\_\-t}!types@{types}} \subsubsection{\setlength{\rightskip}{0pt plus 5cm}typedef struct {\bf discover\_\-error} {\bf discover\_\-error\_\-t}}\label{group__types_ga1} All functions that perform some action (as opposed to returning a member of a structure, for example) take an argument of this type. It is used to report that the action succeeded, or why it failed. \index{types@{types}!discover_free_func_t@{discover\_\-free\_\-func\_\-t}} \index{discover_free_func_t@{discover\_\-free\_\-func\_\-t}!types@{types}} \subsubsection{\setlength{\rightskip}{0pt plus 5cm}typedef void( {\bf discover\_\-free\_\-func\_\-t})(void)}\label{group__types_ga12} Signature of functions that free internal lists Definition at line 137 of file discover.h.\index{types@{types}!discover_sysdep_raw_func_t@{discover\_\-sysdep\_\-raw\_\-func\_\-t}} \index{discover_sysdep_raw_func_t@{discover\_\-sysdep\_\-raw\_\-func\_\-t}!types@{types}} \subsubsection{\setlength{\rightskip}{0pt plus 5cm}typedef {\bf discover\_\-sysdep\_\-data\_\-t}$\ast$( {\bf discover\_\-sysdep\_\-raw\_\-func\_\-t})(void)}\label{group__types_ga13} Signature of functions that return sysdep\_\-data\_\-t lists Definition at line 141 of file discover.h.\index{types@{types}!discover_xml_busclass_func_t@{discover\_\-xml\_\-busclass\_\-func\_\-t}} \index{discover_xml_busclass_func_t@{discover\_\-xml\_\-busclass\_\-func\_\-t}!types@{types}} \subsubsection{\setlength{\rightskip}{0pt plus 5cm}typedef {\bf discover\_\-xml\_\-busclass\_\-t}$\ast$( {\bf discover\_\-xml\_\-busclass\_\-func\_\-t})({\bf discover\_\-error\_\-t} $\ast$)}\label{group__types_ga9} Signature of functions returning discover\_\-xml\_\-busclass\_\-t structures Definition at line 131 of file discover.h.\index{types@{types}!discover_xml_busclass_t@{discover\_\-xml\_\-busclass\_\-t}} \index{discover_xml_busclass_t@{discover\_\-xml\_\-busclass\_\-t}!types@{types}} \subsubsection{\setlength{\rightskip}{0pt plus 5cm}typedef struct discover\_\-xml\_\-busclass {\bf discover\_\-xml\_\-busclass\_\-t}}\label{group__types_ga5} Structure for mapping Discover device types to bus-specific classes Definition at line 122 of file discover.h.\index{types@{types}!discover_xml_url_func_t@{discover\_\-xml\_\-url\_\-func\_\-t}} \index{discover_xml_url_func_t@{discover\_\-xml\_\-url\_\-func\_\-t}!types@{types}} \subsubsection{\setlength{\rightskip}{0pt plus 5cm}typedef {\bf discover\_\-xml\_\-url\_\-t}$\ast$( {\bf discover\_\-xml\_\-url\_\-func\_\-t})({\bf discover\_\-error\_\-t} $\ast$)}\label{group__types_ga11} Signature of functions returning discover\_\-xml\_\-url\_\-t structures Definition at line 135 of file discover.h.\index{types@{types}!discover_xml_url_t@{discover\_\-xml\_\-url\_\-t}} \index{discover_xml_url_t@{discover\_\-xml\_\-url\_\-t}!types@{types}} \subsubsection{\setlength{\rightskip}{0pt plus 5cm}typedef struct discover\_\-xml\_\-url {\bf discover\_\-xml\_\-url\_\-t}}\label{group__types_ga7} Structure describing a URL where XML data can be found Definition at line 126 of file discover.h.\index{types@{types}!discover_xml_vendor_func_t@{discover\_\-xml\_\-vendor\_\-func\_\-t}} \index{discover_xml_vendor_func_t@{discover\_\-xml\_\-vendor\_\-func\_\-t}!types@{types}} \subsubsection{\setlength{\rightskip}{0pt plus 5cm}typedef {\bf discover\_\-xml\_\-vendor\_\-t}$\ast$( {\bf discover\_\-xml\_\-vendor\_\-func\_\-t})({\bf discover\_\-error\_\-t} $\ast$)}\label{group__types_ga10} Signature of functions returning discover\_\-xml\_\-vendor\_\-t structures Definition at line 133 of file discover.h.\index{types@{types}!discover_xml_vendor_t@{discover\_\-xml\_\-vendor\_\-t}} \index{discover_xml_vendor_t@{discover\_\-xml\_\-vendor\_\-t}!types@{types}} \subsubsection{\setlength{\rightskip}{0pt plus 5cm}typedef struct discover\_\-xml\_\-vendor {\bf discover\_\-xml\_\-vendor\_\-t}}\label{group__types_ga6} Structure for mapping vendor names to bus-specific IDs Definition at line 124 of file discover.h. \subsection{Enumeration Type Documentation} \index{types@{types}!discover_bus_t@{discover\_\-bus\_\-t}} \index{discover_bus_t@{discover\_\-bus\_\-t}!types@{types}} \subsubsection{\setlength{\rightskip}{0pt plus 5cm}enum {\bf discover\_\-bus\_\-t}}\label{group__types_ga16} Enumerate the buses. Definition at line 146 of file discover.h.\index{types@{types}!discover_error_code_t@{discover\_\-error\_\-code\_\-t}} \index{discover_error_code_t@{discover\_\-error\_\-code\_\-t}!types@{types}} \subsubsection{\setlength{\rightskip}{0pt plus 5cm}enum {\bf discover\_\-error\_\-code\_\-t}}\label{group__types_ga15} \begin{Desc} \item[Enumeration values: ]\par \begin{description} \index{DISCOVER_SUCCESS@{DISCOVER\_\-SUCCESS}!types@{types}}\index{types@{types}!DISCOVER_SUCCESS@{DISCOVER\_\-SUCCESS}}\item[{\em DISCOVER\_\-SUCCESS\label{group__types_gga15a15} }]Success \index{DISCOVER_EIO@{DISCOVER\_\-EIO}!types@{types}}\index{types@{types}!DISCOVER_EIO@{DISCOVER\_\-EIO}}\item[{\em DISCOVER\_\-EIO\label{group__types_gga15a16} }]Input/output error \index{DISCOVER_EXML@{DISCOVER\_\-EXML}!types@{types}}\index{types@{types}!DISCOVER_EXML@{DISCOVER\_\-EXML}}\item[{\em DISCOVER\_\-EXML\label{group__types_gga15a17} }]XML parse error \index{DISCOVER_ESYS@{DISCOVER\_\-ESYS}!types@{types}}\index{types@{types}!DISCOVER_ESYS@{DISCOVER\_\-ESYS}}\item[{\em DISCOVER\_\-ESYS\label{group__types_gga15a18} }]System error \index{DISCOVER_EBUSDISABLED@{DISCOVER\_\-EBUSDISABLED}!types@{types}}\index{types@{types}!DISCOVER_EBUSDISABLED@{DISCOVER\_\-EBUSDISABLED}}\item[{\em DISCOVER\_\-EBUSDISABLED\label{group__types_gga15a19} }]Disabled bus \index{DISCOVER_EBUSNOTFOUND@{DISCOVER\_\-EBUSNOTFOUND}!types@{types}}\index{types@{types}!DISCOVER_EBUSNOTFOUND@{DISCOVER\_\-EBUSNOTFOUND}}\item[{\em DISCOVER\_\-EBUSNOTFOUND\label{group__types_gga15a20} }]Bus not found \index{DISCOVER_EDATANOTFOUND@{DISCOVER\_\-EDATANOTFOUND}!types@{types}}\index{types@{types}!DISCOVER_EDATANOTFOUND@{DISCOVER\_\-EDATANOTFOUND}}\item[{\em DISCOVER\_\-EDATANOTFOUND\label{group__types_gga15a21} }]Data source not found \index{DISCOVER_EDEVICENOTFOUND@{DISCOVER\_\-EDEVICENOTFOUND}!types@{types}}\index{types@{types}!DISCOVER_EDEVICENOTFOUND@{DISCOVER\_\-EDEVICENOTFOUND}}\item[{\em DISCOVER\_\-EDEVICENOTFOUND\label{group__types_gga15a22} }]Device not found \index{DISCOVER_EBADVERSION@{DISCOVER\_\-EBADVERSION}!types@{types}}\index{types@{types}!DISCOVER_EBADVERSION@{DISCOVER\_\-EBADVERSION}}\item[{\em DISCOVER\_\-EBADVERSION\label{group__types_gga15a23} }]Invalid version range \index{DISCOVER_ENOIMPL@{DISCOVER\_\-ENOIMPL}!types@{types}}\index{types@{types}!DISCOVER_ENOIMPL@{DISCOVER\_\-ENOIMPL}}\item[{\em DISCOVER\_\-ENOIMPL\label{group__types_gga15a24} }]Action not implemented for this platform \end{description} \end{Desc} Definition at line 73 of file discover.h.\index{types@{types}!discover_filetype_t@{discover\_\-filetype\_\-t}} \index{discover_filetype_t@{discover\_\-filetype\_\-t}!types@{types}} \subsubsection{\setlength{\rightskip}{0pt plus 5cm}enum {\bf discover\_\-filetype\_\-t}}\label{group__types_ga17} Enumerate the types of data files: vendor, busclass, and device. Definition at line 162 of file discover.h.discover-2.1.2/doc/api-reference/latex/url-xml_8c.tex0000644002342100234210000000567410655642004021121 0ustar perepere\section{/home/pere/src/debiancvs/pkg-discover/discover/trunk/lib/url-xml.c File Reference} \label{url-xml_8c}\index{/home/pere/src/debiancvs/pkg-discover/discover/trunk/lib/url-xml.c@{/home/pere/src/debiancvs/pkg-discover/discover/trunk/lib/url-xml.c}} XML URL handling. {\tt \#include \char`\"{}config.h\char`\"{}}\par {\tt \#include $<$assert.h$>$}\par {\tt \#include $<$string.h$>$}\par {\tt \#include $<$expat.h$>$}\par {\tt \#include $<$discover/discover.h$>$}\par {\tt \#include $<$discover/discover-conf.h$>$}\par {\tt \#include $<$discover/discover-xml.h$>$}\par {\tt \#include $<$discover/load-url.h$>$}\par {\tt \#include $<$discover/url-xml.h$>$}\par {\tt \#include $<$discover/utils.h$>$}\par \subsection*{Enumerations} \begin{CompactItemize} \item enum {\bf state} \{ {\bf START}, {\bf DISCOVER\_\-DATA} \} \end{CompactItemize} \subsection*{Functions} \begin{CompactItemize} \item {\bf discover\_\-xml\_\-url\_\-t} $\ast$ {\bf discover\_\-xml\_\-get\_\-urls} ({\bf discover\_\-error\_\-t} $\ast$status) \item void {\bf discover\_\-xml\_\-free\_\-urls} (void) \item {\bf discover\_\-xml\_\-url\_\-t} $\ast$ {\bf discover\_\-xml\_\-get\_\-data\_\-urls} ({\bf discover\_\-bus\_\-t} bus, {\bf discover\_\-filetype\_\-t} filetype, {\bf discover\_\-error\_\-t} $\ast$status) \item void {\bf discover\_\-xml\_\-free\_\-data\_\-urls} (void) \item {\bf discover\_\-xml\_\-url\_\-t} $\ast$ {\bf discover\_\-xml\_\-url\_\-new} (void) \item void {\bf discover\_\-xml\_\-url\_\-copy} ({\bf discover\_\-xml\_\-url\_\-t} $\ast$src, {\bf discover\_\-xml\_\-url\_\-t} $\ast$dst) \item char $\ast$ {\bf discover\_\-xml\_\-url\_\-get\_\-url} ({\bf discover\_\-xml\_\-url\_\-t} $\ast$url) \item char $\ast$ {\bf discover\_\-xml\_\-url\_\-get\_\-label} ({\bf discover\_\-xml\_\-url\_\-t} $\ast$url) \item char $\ast$ {\bf discover\_\-xml\_\-url\_\-get\_\-bus} ({\bf discover\_\-xml\_\-url\_\-t} $\ast$url) \item char $\ast$ {\bf discover\_\-xml\_\-url\_\-get\_\-type} ({\bf discover\_\-xml\_\-url\_\-t} $\ast$url) \item {\bf discover\_\-xml\_\-url\_\-t} $\ast$ {\bf discover\_\-xml\_\-url\_\-get\_\-next} ({\bf discover\_\-xml\_\-url\_\-t} $\ast$url) \item {\bf discover\_\-xml\_\-url\_\-t} $\ast$ {\bf discover\_\-xml\_\-url\_\-get\_\-last} ({\bf discover\_\-xml\_\-url\_\-t} $\ast$url) \item void {\bf discover\_\-xml\_\-url\_\-free} ({\bf discover\_\-xml\_\-url\_\-t} $\ast$urls) \end{CompactItemize} \subsection{Detailed Description} XML URL handling. This file is used when loading data about the URLs to be parsed. This data will be read from a file, either specified from the configuration file or passed in as an append or insert. Definition in file {\bf url-xml.c}. \subsection{Enumeration Type Documentation} \index{url-xml.c@{url-xml.c}!state@{state}} \index{state@{state}!url-xml.c@{url-xml.c}} \subsubsection{\setlength{\rightskip}{0pt plus 5cm}enum {\bf state}}\label{url-xml_8c_a22} Define possible states within the XML data. Definition at line 52 of file url-xml.c.discover-2.1.2/doc/api-reference/latex/sysdep_8c.tex0000644002342100234210000001713710655642004021025 0ustar perepere\section{/home/pere/src/debiancvs/pkg-discover/discover/trunk/lib/sysdep.c File Reference} \label{sysdep_8c}\index{/home/pere/src/debiancvs/pkg-discover/discover/trunk/lib/sysdep.c@{/home/pere/src/debiancvs/pkg-discover/discover/trunk/lib/sysdep.c}} Interact with system dependencies. {\tt \#include $<$assert.h$>$}\par {\tt \#include $<$stdio.h$>$}\par {\tt \#include $<$string.h$>$}\par {\tt \#include $<$discover/discover.h$>$}\par {\tt \#include $<$discover/discover-conf.h$>$}\par {\tt \#include $<$discover/discover-xml.h$>$}\par {\tt \#include $<$discover/sysdep.h$>$}\par {\tt \#include $<$discover/device.h$>$}\par {\tt \#include $<$discover/utils.h$>$}\par \subsection*{Typedefs} \begin{CompactItemize} \item typedef {\bf discover\_\-sysdep\_\-data\_\-t} $\ast$( {\bf raw\_\-sysdep\_\-function\_\-t} )(void) \end{CompactItemize} \subsection*{Functions} \begin{CompactItemize} \item {\bf discover\_\-sysdep\_\-data\_\-t} $\ast$ {\bf \_\-discover\_\-sysdep\_\-data\_\-new} (void) \item {\bf discover\_\-sysdep\_\-device\_\-data\_\-t} $\ast$ {\bf \_\-discover\_\-sysdep\_\-device\_\-data\_\-new} (void) \item void {\bf \_\-discover\_\-free\_\-sysdep\_\-data} ({\bf discover\_\-sysdep\_\-data\_\-t} $\ast$head) \item void {\bf \_\-discover\_\-free\_\-sysdep\_\-device\_\-data} ({\bf discover\_\-sysdep\_\-device\_\-data\_\-t} $\ast$head) \item {\bf discover\_\-data\_\-t} $\ast$ {\bf \_\-discover\_\-convert\_\-device\_\-data} ({\bf discover\_\-sysdep\_\-device\_\-data\_\-t} $\ast$head) \item {\bf discover\_\-device\_\-t} $\ast$ {\bf discover\_\-get\_\-devices} ({\bf discover\_\-bus\_\-t} bus, {\bf discover\_\-error\_\-t} $\ast$status) \item void {\bf discover\_\-free\_\-devices} (void) \end{CompactItemize} \subsection{Detailed Description} Interact with system dependencies. This file holds the routines that interact with the system-dependent interface. This file essentially bridges the gap between the XML data and the hardware contained within the machine. Definition in file {\bf sysdep.c}. \subsection{Typedef Documentation} \index{sysdep.c@{sysdep.c}!raw_sysdep_function_t@{raw\_\-sysdep\_\-function\_\-t}} \index{raw_sysdep_function_t@{raw\_\-sysdep\_\-function\_\-t}!sysdep.c@{sysdep.c}} \subsubsection{\setlength{\rightskip}{0pt plus 5cm}typedef {\bf discover\_\-sysdep\_\-data\_\-t}$\ast$( {\bf raw\_\-sysdep\_\-function\_\-t})(void)}\label{sysdep_8c_a0} Function pointers Definition at line 49 of file sysdep.c. \subsection{Function Documentation} \index{sysdep.c@{sysdep.c}!_discover_convert_device_data@{\_\-discover\_\-convert\_\-device\_\-data}} \index{_discover_convert_device_data@{\_\-discover\_\-convert\_\-device\_\-data}!sysdep.c@{sysdep.c}} \subsubsection{\setlength{\rightskip}{0pt plus 5cm}{\bf discover\_\-data\_\-t}$\ast$ \_\-discover\_\-convert\_\-device\_\-data ({\bf discover\_\-sysdep\_\-device\_\-data\_\-t} $\ast$ {\em head})}\label{sysdep_8c_a7} Convert sysdep device data into discover data under the \char`\"{}device\char`\"{} node. Set up the toplevel data node. Set up the first parent below \char`\"{}device\char`\"{} for this node. Set up the token parser. Split the node path by the path separator. Set up the new data node. Does this node have a predecessor in the path? No; make it a child of the \char`\"{}device\char`\"{} node. Yes; make it a child of the previous. Clean up after the token parser. Definition at line 135 of file sysdep.c. References discover\_\-data\_\-new(), discover\_\-sysdep\_\-device\_\-data::next, discover\_\-sysdep\_\-device\_\-data::path, and discover\_\-sysdep\_\-device\_\-data::value. Referenced by discover\_\-get\_\-devices().\index{sysdep.c@{sysdep.c}!_discover_free_sysdep_data@{\_\-discover\_\-free\_\-sysdep\_\-data}} \index{_discover_free_sysdep_data@{\_\-discover\_\-free\_\-sysdep\_\-data}!sysdep.c@{sysdep.c}} \subsubsection{\setlength{\rightskip}{0pt plus 5cm}void \_\-discover\_\-free\_\-sysdep\_\-data ({\bf discover\_\-sysdep\_\-data\_\-t} $\ast$ {\em head})}\label{sysdep_8c_a5} Release the memory that the sysdep data was holding. Definition at line 92 of file sysdep.c. References \_\-discover\_\-free\_\-sysdep\_\-device\_\-data(), discover\_\-sysdep\_\-data::busclass, discover\_\-sysdep\_\-data::data, discover\_\-sysdep\_\-data::model, discover\_\-sysdep\_\-data::next, and discover\_\-sysdep\_\-data::vendor. Referenced by discover\_\-get\_\-devices().\index{sysdep.c@{sysdep.c}!_discover_free_sysdep_device_data@{\_\-discover\_\-free\_\-sysdep\_\-device\_\-data}} \index{_discover_free_sysdep_device_data@{\_\-discover\_\-free\_\-sysdep\_\-device\_\-data}!sysdep.c@{sysdep.c}} \subsubsection{\setlength{\rightskip}{0pt plus 5cm}void \_\-discover\_\-free\_\-sysdep\_\-device\_\-data ({\bf discover\_\-sysdep\_\-device\_\-data\_\-t} $\ast$ {\em head})}\label{sysdep_8c_a6} Release memory being held by device-specific data. Definition at line 117 of file sysdep.c. References discover\_\-sysdep\_\-device\_\-data::next, discover\_\-sysdep\_\-device\_\-data::path, and discover\_\-sysdep\_\-device\_\-data::value. Referenced by \_\-discover\_\-free\_\-sysdep\_\-data().\index{sysdep.c@{sysdep.c}!_discover_sysdep_data_new@{\_\-discover\_\-sysdep\_\-data\_\-new}} \index{_discover_sysdep_data_new@{\_\-discover\_\-sysdep\_\-data\_\-new}!sysdep.c@{sysdep.c}} \subsubsection{\setlength{\rightskip}{0pt plus 5cm}{\bf discover\_\-sysdep\_\-data\_\-t}$\ast$ \_\-discover\_\-sysdep\_\-data\_\-new (void)}\label{sysdep_8c_a3} Create a new instance of sysdep data. Definition at line 66 of file sysdep.c. References discover\_\-sysdep\_\-data::busclass, discover\_\-sysdep\_\-data::data, discover\_\-sysdep\_\-data::model, discover\_\-sysdep\_\-data::next, and discover\_\-sysdep\_\-data::vendor.\index{sysdep.c@{sysdep.c}!_discover_sysdep_device_data_new@{\_\-discover\_\-sysdep\_\-device\_\-data\_\-new}} \index{_discover_sysdep_device_data_new@{\_\-discover\_\-sysdep\_\-device\_\-data\_\-new}!sysdep.c@{sysdep.c}} \subsubsection{\setlength{\rightskip}{0pt plus 5cm}{\bf discover\_\-sysdep\_\-device\_\-data\_\-t}$\ast$ \_\-discover\_\-sysdep\_\-device\_\-data\_\-new (void)}\label{sysdep_8c_a4} Create a new instance of sysdep device data. Definition at line 80 of file sysdep.c. References discover\_\-sysdep\_\-device\_\-data::next, discover\_\-sysdep\_\-device\_\-data::path, and discover\_\-sysdep\_\-device\_\-data::value.\index{sysdep.c@{sysdep.c}!discover_free_devices@{discover\_\-free\_\-devices}} \index{discover_free_devices@{discover\_\-free\_\-devices}!sysdep.c@{sysdep.c}} \subsubsection{\setlength{\rightskip}{0pt plus 5cm}void discover\_\-free\_\-devices (void)}\label{sysdep_8c_a9} Free the currently allocated memory holding the device information. Definition at line 301 of file sysdep.c. References BUS\_\-COUNT, and discover\_\-device\_\-free().\index{sysdep.c@{sysdep.c}!discover_get_devices@{discover\_\-get\_\-devices}} \index{discover_get_devices@{discover\_\-get\_\-devices}!sysdep.c@{sysdep.c}} \subsubsection{\setlength{\rightskip}{0pt plus 5cm}{\bf discover\_\-device\_\-t}$\ast$ discover\_\-get\_\-devices ({\bf discover\_\-bus\_\-t} {\em bus}, {\bf discover\_\-error\_\-t} $\ast$ {\em status})}\label{sysdep_8c_a8} Function responsible for returning a devicelist of current devices Definition at line 206 of file sysdep.c. References \_\-discover\_\-convert\_\-device\_\-data(), \_\-discover\_\-free\_\-sysdep\_\-data(), discover\_\-error::code, discover\_\-conf\_\-get\_\-bus\_\-map(), discover\_\-device\_\-new(), DISCOVER\_\-EBUSDISABLED, DISCOVER\_\-SUCCESS, discover\_\-xml\_\-get\_\-devices(), discover\_\-xml\_\-get\_\-matching\_\-devices(), discover\_\-bus\_\-map::get\_\-raw, and discover\_\-bus\_\-map::scan\_\-never. Referenced by discover\_\-device\_\-find().discover-2.1.2/doc/discover.refentry0000644002342100234210000004402610475523147016161 0ustar perepere $Progeny$ &author.jdaily; 2002 &progeny.inc; discover 1 discover hardware detection utility discover DATA_OPTIONS DISPLAY_OPTIONS --bus-summary bus discover DATA_OPTIONS DISPLAY_OPTIONS --type-summary type discover DATA_OPTIONS --data-path=path/to/data --data-version=version --normalize-whitespace --format=format string type | id DATA_OPTIONS DISPLAY_OPTIONS Description &discover-command; provides an extensible hardware detection and reporting interface. Hardware information is stored in an &xml; data format and can be retrieved across the network. Fundamental modes of operation: Display a list of hardware devices based on type of device or system bus on which the devices reside, via or (the latter of which is the default behavior). Query specified data for attached hardware, via . Options Display a simple help message. Instruct the tool to provide feedback as it operates. This will affect the output as &discover-command; parses certain arguments, so this should appear early in the command line. Display the tool name and version. This is the default behavior: Display basic information regarding all devices on the appropriate buses. See . Summarize devices by class of hardware. Examples of valid device types include broadband, fixeddisk, display, and network. See . Query matching devices for detailed information. Device-specific data is stored in a hierarchical fashion, and the query argument comprises strings naming each level in that hierarchy. Typically, the top-level component of the data path will be the platform that will need the information, such as linux or xfree86. For example, to retrieve the Linux kernel module name for a piece of hardware, the argument would be linux/module/name. If multiple arguments are given and no format string (see ) is provided, only the last path is used. See also the argument. Specify a version string for the platform that will use the information specified by the argument to . This string must be in dotted-decimal notation in order to be matched against a range of values, and thus may be shorter than the real version. Dictate the output of the results of the queries specified by arguments. This format string should follow printf(3) specifications, although only %s and appropriate flags, precision, and width values are supported (or make sense); literal text and %% can also be used. The behavior when the string is poorly formatted is undefined. See also . Use this option to override the list of buses to scan by default as defined in discover.conf. Use all as an argument to disable all buses; this is useful only if followed by (or ) arguments. Specify a bus to be scanned. Insert a URL at the head of the list of network resources to include in the search for hardware information. Earlier data overrides later data; to override the local data sources, insert URLs into the list. See also . Append a URL to the end of the list of network resources to search for hardware information. See also . Include the model description in summary information. This is enabled by default. Include the numeric model identifier in summary information. Do not include the model description in summary information. Do not include the numeric model identifier in summary information. This is the default. Include the vendor description in summary information. This is enabled by default. Include the numeric vendor identifier in summary information. Do not include the vendor description in summary information. Do not include the numeric vendor identifier in summary information. This is the default. Consolidate whitespace in the results of a query. The default is not to do so, which faithfully reproduces all text in the raw &xml; data. With this option enabled, leading and trailing whitespace is removed, and any consecutive internal whitespaces are compressed to a single space character. Selecting Buses discover.conf defines two lists of system buses: one to scan by default (used by the &discover-command; command), and one never to scan (used by the &discover; library). You can override and/or extend the list of default buses with and . The list of buses not to scan cannot be overridden without changing discover.conf, so that list should be used only for buses that may be dangerous to probe. Both arguments take the string all as a value. If a bus summary is being performed, which is indicated either by the presence of or the absence of and , any unattached arguments on the command line will be interpreted as the only buses to scan. This is equivalent to using before invoking for the buses of interest. The following buses are currently supported by &discover;: &bus-classes; Device Types &discover; defines its own device types, to which the device types used by each bus are mapped. &discover; currently recognizes the following device types: &device-types; Examples Scan the local buses View PCI video cards Query for the driver module for XFree86 server version 4.2.0 Get model and vendor information by type Files &sysconfdir;/discover.conf.d The directory containing configuration files that control the default behavior for both the &discover-command; tool and the &discover; library. &datadir;/discover/list.xml An &xml; file containing URLs with hardware information. This list can be extended with and . Authors &name.bress;, &name.jdaily;, and &name.branden; developed the current implementation of &discover; for Progeny Linux Systems. The Linux implementation of the system-dependent interfaces is derived from detect, by MandrakeSoft SA. See Also discover.conf(5), discover-modprobe(8) discover-2.1.2/doc/range.fig0000644002342100234210000002026310266266026014341 0ustar perepere#FIG 3.2 Portrait Center Metric Letter 106.00 Single -2 # $Progeny: range.fig,v 1.5 2002/06/03 17:43:38 jdaily Exp $ # This is a diagram of the state machine to parse version ranges for # Discover 2.0. Examples: # (2.0, 3.1] Matches 2.0 < version <= 3.1 # (inf, 4.0] [1.1, 1.1] Matches version >= 4.0 or version == 1.1 # # Copyright 2002 Hewlett-Packard Company # # 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 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 # THE COPYRIGHT HOLDER(S) 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. 1200 2 0 32 #8e8e8e 6 3645 540 4770 1080 2 4 0 1 0 7 100 0 20 4.000 0 0 7 0 0 5 4747 1080 4747 540 3667 540 3667 1080 4747 1080 4 0 0 100 0 16 12 0.0000 4 135 375 4020 877 Start\001 -6 6 3645 1845 4725 2385 2 4 0 1 0 7 100 0 20 4.000 0 0 7 0 0 5 4725 2385 4725 1845 3645 1845 3645 2385 4725 2385 4 0 0 100 0 16 12 0.0000 4 180 465 3952 2160 Open\001 -6 6 3645 3195 4770 3735 2 4 0 1 0 7 100 0 20 4.000 0 0 7 0 0 5 4747 3735 4747 3195 3667 3195 3667 3735 4747 3735 4 0 0 100 0 16 12 0.0000 4 135 750 3832 3532 Version1\001 -6 6 4717 412 5482 1267 5 1 0 1 0 7 50 0 -1 0.000 0 1 1 0 5056.812 839.500 4739 1087 5459 817 4739 592 0 0 1.00 60.00 120.00 4 0 0 50 0 0 12 0.0000 4 135 285 4957 907 WS\001 -6 6 4687 1717 5452 2572 5 1 0 1 0 7 50 0 -1 0.000 0 1 1 0 5026.812 2144.500 4709 2392 5429 2122 4709 1897 0 0 1.00 60.00 120.00 4 0 0 50 0 0 12 0.0000 4 135 285 4927 2212 WS\001 -6 6 3780 3735 4635 4500 5 1 0 1 0 7 50 0 -1 0.000 0 0 1 0 4207.500 4074.812 4455 3757 4185 4477 3960 3757 0 0 1.00 60.00 120.00 4 0 0 50 0 0 12 0.0000 4 135 240 4087 4185 0-9\001 -6 6 690 484 3240 2547 6 690 484 3165 934 4 0 0 50 0 0 14 0.0000 4 195 2475 690 634 Range Parser State Machine\001 4 0 0 50 0 0 12 0.0000 4 135 1215 690 934 for Discover 2.0\001 -6 6 690 1610 3240 2547 4 0 0 50 0 0 12 0.0000 4 180 2160 690 2052 WS stands for White Space.\001 4 0 0 50 0 0 12 0.0000 4 180 2490 690 2277 0-9 stands for all digits. All other\001 4 0 0 50 0 0 12 0.0000 4 180 2340 690 2502 characters are treated literally.\001 4 0 0 50 0 0 12 0.0000 4 180 2550 690 1745 Notes regarding state transitions:\001 -6 -6 6 3645 4770 4770 5310 2 4 0 1 0 7 100 0 20 4.000 0 0 7 0 0 5 4747 5310 4747 4770 3667 4770 3667 5310 4747 5310 4 0 0 100 0 16 12 0.0000 4 180 735 3840 5085 VerSep1\001 -6 6 1800 6480 2925 7020 2 4 0 1 0 7 100 0 20 4.000 0 0 7 0 0 5 2902 7020 2902 6480 1822 6480 1822 7020 2902 7020 4 0 0 100 0 16 12 0.0000 4 180 735 1995 6795 VerSep2\001 -6 6 1890 8460 6525 9045 6 1890 8460 3015 9045 2 4 0 1 0 7 100 0 20 4.000 0 0 7 0 0 5 2992 9022 2992 8482 1912 8482 1912 9022 2992 9022 4 0 0 100 0 16 12 0.0000 4 135 630 2137 8820 Pause2\001 -6 6 5400 8460 6525 9045 2 4 0 1 0 7 100 0 20 4.000 0 0 7 0 0 5 6502 9022 6502 8482 5422 8482 5422 9022 6502 9022 4 0 0 100 0 16 12 0.0000 4 135 480 5722 8820 Close\001 -6 -6 6 3645 7020 4770 7605 2 4 0 1 0 7 100 0 20 4.000 0 0 7 0 0 5 4747 7582 4747 7042 3667 7042 3667 7582 4747 7582 4 0 0 100 0 16 12 0.0000 4 135 750 3832 7380 Version2\001 -6 6 1980 5625 6435 6210 6 1980 5625 3105 6210 2 4 0 1 0 7 100 0 20 4.000 0 0 7 0 0 5 3082 6187 3082 5647 2002 5647 2002 6187 3082 6187 4 0 0 100 0 16 12 0.0000 4 135 630 2227 5985 Pause1\001 -6 6 5355 5625 6435 6210 2 4 0 1 0 7 100 0 20 4.000 0 0 7 0 0 5 6435 6187 6435 5647 5355 5647 5355 6187 6435 6187 4 0 0 100 0 16 12 0.0000 4 180 810 5490 5962 Separator\001 -6 -6 6 6397 5497 7162 6352 5 1 0 1 0 7 50 0 -1 0.000 0 1 1 0 6736.812 5924.500 6419 6172 7139 5902 6419 5677 0 0 1.00 60.00 120.00 4 0 0 50 0 0 12 0.0000 4 135 285 6637 5992 WS\001 -6 6 6457 8325 7222 9180 5 1 0 1 0 7 50 0 -1 0.000 0 1 1 0 6796.812 8752.500 6479 9000 7199 8730 6479 8505 0 0 1.00 60.00 120.00 4 0 0 50 0 0 12 0.0000 4 135 285 6697 8820 WS\001 -6 6 1303 5513 2025 6321 5 1 0 1 0 7 50 0 -1 0.000 0 0 1 0 1707.188 5917.500 2025 6165 1305 5895 2025 5670 0 0 1.00 60.00 120.00 4 0 0 50 0 0 12 0.0000 4 135 285 1521 5984 WS\001 -6 6 3825 7560 4680 8325 5 1 0 1 0 7 50 0 -1 0.000 0 0 1 0 4252.500 7899.812 4500 7582 4230 8302 4005 7582 0 0 1.00 60.00 120.00 4 0 0 50 0 0 12 0.0000 4 135 240 4132 8010 0-9\001 -6 6 1230 8357 1952 9165 5 1 0 1 0 7 50 0 -1 0.000 0 0 1 0 1634.188 8761.500 1952 9009 1232 8739 1952 8514 0 0 1.00 60.00 120.00 4 0 0 50 0 0 12 0.0000 4 135 285 1448 8828 WS\001 -6 6 7605 6300 8685 6840 2 4 0 1 0 7 100 0 20 4.000 0 0 7 0 0 5 8685 6840 8685 6300 7605 6300 7605 6840 8685 6840 4 0 0 100 0 16 12 0.0000 4 135 45 8122 6637 I\001 -6 6 7605 7290 8685 7875 2 4 0 1 0 7 100 0 20 4.000 0 0 7 0 0 5 8685 7852 8685 7312 7605 7312 7605 7852 8685 7852 4 0 0 100 0 16 12 0.0000 4 135 135 8077 7650 N\001 -6 6 7605 8370 8730 8955 2 4 0 1 0 7 100 0 20 4.000 0 0 7 0 0 5 8707 8932 8707 8392 7627 8392 7627 8932 8707 8932 4 0 0 100 0 16 12 0.0000 4 135 120 8107 8730 F\001 -6 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 3 0 0 1.00 60.00 120.00 3690 3510 2610 3510 2610 5625 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 3 0 0 1.00 60.00 120.00 4770 3510 5940 3510 5940 5625 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2 0 0 1.00 60.00 120.00 4230 2385 4230 3195 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2 0 0 1.00 60.00 120.00 4230 1080 4230 1845 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 4 0 0 1.00 60.00 120.00 3645 3600 3150 3600 3150 5040 3690 5040 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 4 0 0 1.00 60.00 120.00 4770 5040 5175 5040 5175 3600 4770 3600 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 4 0 0 1.00 60.00 120.00 3690 7155 3240 7155 3240 6795 2880 6795 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2 0 0 1.00 60.00 120.00 3082 5910 5355 5910 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2 0 0 1.00 60.00 120.00 3015 8775 5400 8775 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 3 0 0 1.00 60.00 120.00 3645 7290 2475 7290 2475 8505 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 3 0 0 1.00 60.00 120.00 4770 7335 5940 7335 5940 8505 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 4 0 0 1.00 60.00 120.00 5850 6165 5850 6705 4230 6705 4230 7065 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 3 0 0 1.00 60.00 120.00 6075 6165 6075 6705 7605 6705 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 4 0 0 1.00 60.00 120.00 7875 8955 7875 9405 6165 9405 6165 9000 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 4 0 0 1.00 60.00 120.00 8325 8955 8325 9675 2475 9675 2475 9000 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2 0 0 1.00 60.00 120.00 8145 6840 8145 7313 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2 0 0 1.00 60.00 120.00 8145 7860 8145 8408 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 3 0 0 1.00 60.00 120.00 2925 6615 3915 6615 3915 7020 4 0 0 50 0 0 12 0.0000 4 195 4185 2542 10080 $Progeny: range.fig,v 1.5 2002/06/03 17:43:38 jdaily Exp $\001 4 0 0 50 0 0 12 0.0000 4 180 135 3945 1425 [(\001 4 0 0 50 0 0 12 0.0000 4 135 285 2730 3427 WS\001 4 0 0 50 0 0 12 0.0000 4 45 45 5355 3405 ,\001 4 0 0 50 0 0 12 0.0000 4 135 240 3870 2610 0-9\001 4 0 0 50 0 0 12 0.0000 4 15 45 3240 4320 .\001 4 0 0 50 0 0 12 0.0000 4 135 240 5265 4365 0-9\001 4 0 0 50 0 0 12 0.0000 4 15 45 3465 7020 .\001 4 0 0 50 0 0 12 0.0000 4 45 45 4087 6075 ,\001 4 0 0 50 0 0 12 0.0000 4 180 135 6022 7725 )]\001 4 0 0 50 0 0 12 0.0000 4 180 135 4087 8970 )]\001 4 0 0 50 0 0 12 0.0000 4 135 240 5160 6630 0-9\001 4 0 0 50 0 0 12 0.0000 4 135 285 2100 7784 WS\001 4 0 0 50 0 0 12 0.0000 4 135 285 8415 9225 WS\001 4 0 0 50 0 0 12 0.0000 4 180 135 7650 9180 )]\001 4 0 0 50 0 0 12 0.0000 4 90 90 8235 7110 n\001 4 0 0 50 0 0 12 0.0000 4 135 60 8235 8190 f\001 4 0 0 50 0 0 12 0.0000 4 135 45 6165 6525 i\001 4 0 0 50 0 0 12 0.0000 4 135 240 3240 6525 0-9\001 discover-2.1.2/doc/discover.10000644002342100234210000003331210475523154014455 0ustar perepere.TH "discover" "1" .SH "NAME" discover \(em hardware detection utility .SH "SYNOPSIS" .PP \fBdiscover\fR [DATA_OPTIONS] [DISPLAY_OPTIONS] [\-\-bus-summary] [bus \&...] .PP \fBdiscover\fR [DATA_OPTIONS] [DISPLAY_OPTIONS] \-\-type-summary [type \&...] .PP \fBdiscover\fR [DATA_OPTIONS] \-\-data-path=\fIpath/to/data\fR \&... [\-\-data-version=\fIversion\fR] [\-\-normalize-whitespace] [\-\-format=\fIformat string\fR] [type | id \&...] .IP "DATA_OPTIONS" 10 .RS .IP " \(bu" 6 \fB-d | \-\-disable-bus=\fIbus\fR\fP .IP " \(bu" 6 \fB-e | \-\-enable-bus=\fIbus\fR\fP .IP " \(bu" 6 \fB\-\-insert-url=\fIurl\fR\fP .IP " \(bu" 6 \fB\-\-append-url=\fIurl\fR\fP .IP " \(bu" 6 \fB-v | \-\-verbose\fP .RE .IP "DISPLAY_OPTIONS" 10 .RS .IP " \(bu" 6 \fB\-\-model | \-\-no-model\fP .IP " \(bu" 6 \fB\-\-model-id | \-\-no-model-id\fP .IP " \(bu" 6 \fB\-\-vendor | \-\-no-vendor\fP .IP " \(bu" 6 \fB\-\-vendor-id | \-\-no-vendor-id\fP .RE .SH "Description" .PP \fBdiscover\fR provides an extensible hardware detection and reporting interface. Hardware information is stored in an XML data format and can be retrieved across the network. .PP Fundamental modes of operation: .IP " \(bu" 6 Display a list of hardware devices based on type of device or system bus on which the devices reside, via \fB\-\-type-summary\fP or \fB\-\-bus-summary\fP (the latter of which is the default behavior). .IP " \(bu" 6 Query specified data for attached hardware, via \fB\-\-data-path\fP. .SH "Options" .IP "\fB-h | \-\-help\fP" 10 Display a simple help message. .IP "\fB-v | \-\-verbose\fP" 10 Instruct the tool to provide feedback as it operates. This will affect the output as \fBdiscover\fR parses certain arguments, so this should appear early in the command line. .IP "\fB-V | \-\-version\fP" 10 Display the tool name and version. .IP "\fB-b | \-\-bus-summary\fP" 10 This is the default behavior: Display basic information regarding all devices on the appropriate buses. See \fI"Selecting Buses"\fR >. .IP "\fB-t | \-\-type-summary\fP" 10 Summarize devices by class of hardware. Examples of valid device types include \fBbroadband\fP, \fBfixeddisk\fP, \fBdisplay\fP, and \fBnetwork\fP. See \fI"Device Types"\fR >. .IP "\fB\-\-data-path=\fIpath/to/data\fR\fP" 10 Query matching devices for detailed information. Device-specific data is stored in a hierarchical fashion, and the query argument comprises strings naming each level in that hierarchy. .IP "" 10 Typically, the top-level component of the data path will be the ``\fIplatform\fP'' that will need the information, such as \fBlinux\fP or \fBxfree86\fP. For example, to retrieve the Linux kernel module name for a piece of hardware, the \fB\-\-data-path\fP argument would be \fBlinux/module/name\fP. .IP "" 10 If multiple \fB\-\-data-path\fP arguments are given and no format string (see \fB\-\-format\fP) is provided, only the last path is used. .IP "" 10 See also the \fB\-\-data-version\fP argument. .IP "\fB\-\-data-version=\fIversion\fR\fP" 10 Specify a version string for the platform that will use the information specified by the argument to \fB\-\-data-path\fP. .IP "" 10 This string must be in dotted-decimal notation in order to be matched against a range of values, and thus may be shorter than the real version. .IP "\fB\-\-format=\fIformat string\fR\fP" 10 Dictate the output of the results of the queries specified by \fB\-\-data-path\fP arguments. This format string should follow \fBprintf(3)\fP specifications, although only \fB%s\fP and appropriate flags, precision, and width values are supported (or make sense); literal text and \fB%%\fP can also be used. The behavior when the string is poorly formatted is undefined. See also \fB\-\-normalize-whitespace\fP. .IP "\fB-d | \-\-disable-bus=\fIbus\fR\fP" 10 Use this option to override the list of buses to scan by default as defined in \fBdiscover.conf\fP. Use \fIall\fR as an argument to disable all buses; this is useful only if followed by \fB\-\-enable-bus\fP (or \fB-e\fP) arguments. .IP "\fB-e | \-\-enable-bus=\fIbus\fR\fP" 10 Specify a bus to be scanned. .IP "\fB\-\-insert-url=\fIurl\fR\fP" 10 Insert a URL at the head of the list of network resources to include in the search for hardware information. Earlier data overrides later data; to override the local data sources, insert URLs into the list. See also \fB\-\-append-url\fP. .IP "\fB\-\-append-url=\fIurl\fR\fP" 10 Append a URL to the end of the list of network resources to search for hardware information. See also \fB\-\-insert-url\fP. .IP "\fB\-\-model\fP" 10 Include the model description in summary information. This is enabled by default. .IP "\fB\-\-model-id\fP" 10 Include the numeric model identifier in summary information. .IP "\fB\-\-no-model\fP" 10 Do not include the model description in summary information. .IP "\fB\-\-no-model-id\fP" 10 Do not include the numeric model identifier in summary information. This is the default. .IP "\fB\-\-vendor\fP" 10 Include the vendor description in summary information. This is enabled by default. .IP "\fB\-\-vendor-id\fP" 10 Include the numeric vendor identifier in summary information. .IP "\fB\-\-no-vendor\fP" 10 Do not include the vendor description in summary information. .IP "\fB\-\-no-vendor-id\fP" 10 Do not include the numeric vendor identifier in summary information. This is the default. .IP "\fB\-\-normalize-whitespace\fP" 10 Consolidate whitespace in the results of a \fB\-\-data-path\fP query. The default is not to do so, which faithfully reproduces all text in the raw XML data. .IP "" 10 With this option enabled, leading and trailing whitespace is removed, and any consecutive internal whitespaces are compressed to a single space character. .SH "Selecting Buses" .PP \fBdiscover.conf\fP defines two lists of system buses: one to scan by default (used by the \fBdiscover\fR command), and one never to scan (used by the \fBDiscover\fP library). .PP You can override and/or extend the list of default buses with \fB\-\-disable-bus\fP and \fB\-\-enable-bus\fP. The list of buses \fInot\fP to scan cannot be overridden without changing \fBdiscover.conf\fP, so that list should be used only for buses that may be dangerous to probe. .PP Both arguments take the string ``\fIall\fP'' as a value. .PP If a bus summary is being performed, which is indicated either by the presence of \fB\-\-bus-summary\fP or the absence of \fB\-\-type-summary\fP and \fB\-\-data-path\fP, any unattached arguments on the command line will be interpreted as the only buses to scan. This is equivalent to using \fB\-\-disable-bus all\fP before invoking \fB\-\-enable-bus\fP for the buses of interest. .PP The following buses are currently supported by \fBDiscover\fP: .IP " \(bu" 6 \fBata\fP .IP " \(bu" 6 \fBpci\fP .IP " \(bu" 6 \fBpcmcia\fP .IP " \(bu" 6 \fBscsi\fP .IP " \(bu" 6 \fBusb\fP .SH "Device Types" .PP \fBDiscover\fP defines its own device types, to which the device types used by each bus are mapped. \fBDiscover\fP currently recognizes the following device types: .IP " \(bu" 6 \fBaudio\fP .IP "" 10 A device capable of producing an analog or digital sound signal is an \fIaudio\fR device. Typically, any device commonly referred to as a ``\fIsound card\fP'' is classified by \fBDiscover\fP as an audio device. .IP " \(bu" 6 \fBbridge\fP .IP "" 10 A device that provides access to devices of a different type, commonly on a different bus, is a \fIbridge\fR device. For instance, consumer PCI chipsets often feature a bridge to ATA (also known as IDE) devices. .IP " \(bu" 6 \fBbroadband\fP .IP "" 10 An interface device to a computer communications network implemented on top of a technology not explicitly designed for that purpose is a \fIbroadband\fR device. Examples include ISDN terminal adapters as well as DSL and cable ``\fImodems\fP''; analog phone-line modems are not included in this classification (see ``\fImodem\fP'' below). .IP " \(bu" 6 \fBdisplay\fP .IP "" 10 A device controlled by the host machine's CPU and capable of producing an analog or digital video signal for output purposes is a \fIdisplay\fR device. Typically, any device commonly referred to as a ``\fIvideo card\fP'' is classified by \fBDiscover\fP as a display device. .IP " \(bu" 6 \fBfixeddisk\fP .IP "" 10 A high-speed, fixed magnetic storage device such as a hard disk drive is a \fIfixeddisk\fR device. Removable media devices such as floppy disk drives, CD-ROM drives, magneto-optical devices, tape drives, and Compact Flash card readers are not included in this classification. .IP " \(bu" 6 \fBhumaninput\fP .IP "" 10 A device that receives tactile input from a person for the purpose of directing a computer's activity is a \fIhumaninput\fR device. Examples include keyboards, mice, trackballs, joysticks, gamepads, digital tablets manipulated with a stylus or finger, and so forth. Input devices that rely upon non-tactile means of determining a person's intent, such as speech-recognition devices or cameras, are not included in this classification. .IP " \(bu" 6 \fBimaging\fP .IP "" 10 A device that captures still images for input purposes is an \fIimaging\fR device. Scanners and digital cameras are examples of imaging devices. Motion-capture devices such as television tuner cards, webcams, and digital video cameras are not included in this classification. .IP " \(bu" 6 \fBmiscellaneous\fP .IP "" 10 Any device that cannot logically be classified as another device type is a \fImiscellaneous\fR device. .IP " \(bu" 6 \fBmodem\fP .IP "" 10 An analog phone-line modulator/demodulator (modem) is classified by \fBDiscover\fP as a \fImodem\fR device. No other kind of device is so classified. .IP " \(bu" 6 \fBnetwork\fP .IP "" 10 An interface device to a conventional computer data communications network that does not require the use of a terminal adapter is a \fInetwork\fR device. For example, Ethernet and Token Ring network interface cards are network devices. Analog phone-line modems; terminal adapters for technologies such as ISDN and DSL; and ``\fIcable modems\fP'' are not ``\fInetwork\fP'' devices. .IP " \(bu" 6 \fBoptical\fP .IP "" 10 An optical-technology storage device, often using read-only media, is an \fIoptical\fR device. By far the most common examples of these devices are CD-ROM and DVD-ROM drives, including versions of these drives that can ``\fIburn\fP'' (write to) optical discs. .IP " \(bu" 6 \fBprinter\fP .IP "" 10 A device that renders visual output in a permanent or semi-permanent manner to a physical medium is a \fIprinter\fR. Typically, any device colloquially referred to as a ``\fIprinter\fP'' is also classified by \fBDiscover\fP as a printer. .IP " \(bu" 6 \fBremovabledisk\fP .IP "" 10 Storage devices that feature removable media using just about any technology except that of magnetic tape, CD-ROM, and DVD-ROM drives are \fIremovabledisk\fR devices. Examples include floppy disk drives, magneto-optical drives, and Compact Flash card readers. .IP " \(bu" 6 \fBtape\fP .IP "" 10 A sequential-access mass storage device using magnetic tape is a \fItape\fR device. Commonly used for archival and backup purposes, DAT drives are examples of tape devices. .IP " \(bu" 6 \fBvideo\fP .IP "" 10 A device that produces a real-time digital video signal for input purposes is a \fIvideo\fR device. Webcams, digital video cameras, and television tuners are examples of video devices. Note that still digital cameras with ``\fImovie\fP'' capability are \fInot\fP considered video devices unless they can transmit the live video signal to the host in real time. .SH "Examples" .PP \fBScan the local buses\fR .PP .nf # discover Intel Corporation 82815 Chipset Host Bridge and Memory Controller Hub unknown unknown unknown unknown unknown unknown Intel Corporation 82815 Chipset IDE controller Intel Corporation 82815 Chipset USB (A) Intel Corporation 82815 System Management bus controller ATI Technologies, Inc. Rage 128 Pro GL [PF] 3Com Corporation 3c905C-TX [Fast Etherlink] Ensoniq ES1371 [AudioPCI-97] unknown unknown .fi .PP \fBView PCI video cards\fR .PP .nf # discover \-v \-\-type-summary \-\-disable-bus all \-\-enable-bus pci display Disabled pci Disabled pcmcia Disabled scsi Disabled usb Enabled pci Loading XML data... pci Done Scanning buses... pci Done ATI Technologies, Inc. Rage 128 Pro GL [PF] .fi .PP \fBQuery for the driver module for XFree86 server version 4.2.0\fR .PP .nf # discover \-\-data-path=xfree86/server/device/driver \-\-data-version=4.2.0 display ati .fi .PP \fBGet model and vendor information by type\fR .PP .nf $ discover \-t \-\-no-model Intel Corporation NVIDIA Corporation 3Com Corporation $ discover \-t \-\-no-vendor 82815 System Management bus controller Vanta [NV6] 3c905C-TX [Fast Etherlink] .fi .SH "Files" .IP "\fB/etc/discover.conf.d\fP" 10 The directory containing configuration files that control the default behavior for both the \fBdiscover\fR tool and the \fBDiscover\fP library. .IP "\fB/discover/list.xml\fP" 10 An XML file containing URLs with hardware information. This list can be extended with \fB\-\-append-url\fP and \fB\-\-extend-url\fP. .SH "Authors" .PP Josh Bressers, John R. Daily, and G. Branden Robinson developed the current implementation of \fBDiscover\fP for Progeny Linux Systems. .PP The Linux implementation of the system-dependent interfaces is derived from \fBdetect\fR, by MandrakeSoft SA. .SH "See Also" .PP discover.conf(5), discover-modprobe(8) .\" created by instant / docbook-to-man, Thu 31 Aug 2006, 11:05 discover-2.1.2/doc/discover-config.refentry0000644002342100234210000001030010655641247017412 0ustar perepere discover-config 1 discover-config config script discover-config options Description discover-config reports stuff about the package's configuration. Options Print the value of the variable VAR followed by a newline. See below for a list of available variables. List the available variables. Variables major_version minor_version micro_version version cppflags ldflags libs prefix exec_prefix bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build build_cpu build_vendor build_os host host_cpu host_vendor host_os target target_cpu target_vendor target_os lt_current lt_revision lt_age discover-2.1.2/doc/guide.txt0000644002342100234210000027323210475523154014422 0ustar perepere The Discover Hardware Detection System G. Branden Robinson John R. Daily Copyright (c) 2002 Progeny Linux Systems, Inc. Copyright (c) 2002 Hewlett-Packard Company 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 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 THE COPYRIGHT HOLDER(S) 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. Linux is a registered trademark of Linus Torvalds. $Progeny$ ---------------------------------------------------------------------- Table of Contents What Is Discover? I. Data Structure 1. Overview of the Discover Data Format 2. Master List 3. Busclass Lists 3.1. The busclass_list element 3.1.1. The bus attribute 3.2. The busclass element 3.2.1. The id attribute 3.2.2. The name attribute 4. Vendor Lists 4.1. The vendor_list element 4.1.1. The bus attribute 4.2. The vendor element 4.2.1. The id attribute 4.2.2. The name attribute 5. Device Lists 5.1. The device_list element 5.1.1. The bus attribute 5.2. The device element 5.3. The data element 5.3.1. The class attribute 5.3.2. The version attribute 5.4. Accessing the Device Data II. Recommended Data Content Conventions 6. Data Hierarchy 6.1. Linux Kernel Modules 6.2. XFree86 X Servers 6.3. Locally-Defined Interfaces 7. Why Order Matters 8. Using Data Versioning 8.1. Specifying a Range 8.2. How the Discover Library Matches a Range III. Command-Line Tools 9. discover Manual Page discover -- hardware detection utility 10. discover.conf Manual Page discover.conf -- configuration file format for discover(1) 11. discover-modprobe Manual Page discover-modprobe -- kernel module loading using discover(1) 12. discover-modprobe.conf Manual Page discover-modprobe.conf -- configuration file for discover-modprobe(5) IV. Library 13. The Discover Library 13.1. Library Design Principles 13.2. Discover Data Sources 13.3. The Bus Map 13.4. Scanning the System 13.5. Using discover_device_t Structures 14. System Dependencies 14.1. API A. Discover API Reference B. Discover DTD C. Discover Configuration File DTD D. Licensing Issue on the Linux Sysdeps List of Figures 6-1. Linux interface 6-2. XFree86 interface List of Examples 3-1. The busclass_list element 4-1. The vendor_list element 5-1. Sample device data 6-1. Defining an interface 6-2. Using the linux interface 6-3. Using the xfree86 interface 7-1. Matching device elements 8-1. Using the version attribute of the data element 9-1. Scan the local buses 9-2. View PCI video cards 9-3. Query for the driver module for XFree86 server version 4.2.0 9-4. Get model and vendor information by type 10-1. Establishing default buses to scan 10-2. A more complex example 14-1. Linux PCI sysdep code ---------------------------------------------------------------------- What Is Discover? Discover is a tool that reports information about a system's hardware. It uses operating system-dependent modules (selected at build time) to detect what hardware is actually on the system and provides system-independent interfaces for querying XML data sources about this hardware. These data sources contain specific information required to enable support for various devices via defined software interfaces. The tool can be accessed by linking to the Discover library or by calling discover (which itself links to the Discover library) and parsing its output. In the future, other interfaces (for example, modules for interpreted languages such as Perl and Python) may be included. Why use Discover? There are at least a few reasons: * Flexibility. Discover is designed from the ground up to be flexible. It is portable to a variety of operating environments, and its modular design supports the addition of arbitrary methods for querying the host operating system (OS) about installed devices. Discover is also designed to be flexible in terms of the types of data that can be retrieved. Discover does not tie the user to retrieving only one type of information, such as the name of the Linux kernel module that should be loaded to support a given device. Instead, Discover supports the association of arbitrary data with hardware devices, typically through specification of an interface to the hardware in question, such as a Linux kernel module or an XFree86 server driver module. * Updatability. Many hardware-autodetection programs suffer from an inherent limitation in that they are restricted to reading hardware lists or databases that are stored on the local filesystem. This is not an efficient approach in the fast-moving world of consumer computer hardware, with new devices constantly being introduced. A couple of months after the latest version of your OS of choice is released, it may fail to recognize that the latest revision of, for instance, a video chipset is compatible with an older one, and can use the same software interfaces. Discover overcomes this problem by supporting the retrieval of hardware information via HTTP[1] ("over the web"). When HTTP access is impossible, Discover falls back to locally stored hardware lists. * Portability. On top of its flexibility in terms of system interfaces to hardware, Discover has been written to be broadly portable to all of today's popular POSIX-compliant systems. Discover is not a Linux-only solution. Discover is intended to provide operating system vendors, computer manufacturers, and third-party vendors of software and peripherals with a powerful tool for describing the hardware they support to the interfaces they care about. Because Discover's data sources can be anywhere on the Internet, the OS vendor need not be the sole provider of hardware catalogs. * Usability. Discover is not an in-house tool designed to solve a narrow class of problems. Discover is designed to be easy to use from the perspectives of the individual system administrator, the applications programmer, and the hardware manufacturer or support staff. Discover's XML database structure, its command-line tools, and its library API are well documented and support extensions to meet diverse demands. * Freely licensed. Discover has a copyright license that is highly adaptable to the needs of the varied audiences to which Discover is targeted. Under the so-called "UCB/BSD" or "MIT/X Consortium" terms, after the names of American universities and some very well known software projects that used these terms, anyone is free to copy, modify, and distribute the software, and to extend (or not) these same freedoms to those who receive the software. Progeny would like to see Discover adopted by a wide variety of existing software products, such the various GNU/Linux distributions; the FreeBSD, NetBSD, and OpenBSD projects; the GNU Project of the Free Software Foundation; the XFree86 Project; system integrators; and the designers and manufacturers of computer hardware. We believe that Discover's design empowers those with the greatest knowledge of hardware and the software interfaces to that hardware to express that knowledge and make it available to the world, thereby ameliorating an entire class of computer configuration problems. Progeny does not want Discover's licensing to stand in the way of realizing that dream, which is why we have chosen these license terms. We must take a moment to explain what Discover is not: Discover is not a replacement for the service - usually provided by the underlying operating system kernel or a user-space program that interfaces with it - of simply translating bus-specific vendor and model identifiers to human-readable names. Discover performs its own translations of this data as a convenience for generating human-readable reports, but it does not attempt to enumerate all hardware devices that exist for a particular bus architecture. Rather, Discover is intended only to catalog data for which there is some useful information to impart regarding software interfaces. Facilities already exist in modern operating systems for answering the questions "What is the name of this device?" and "Who manufactured it?" Discover's role is to answer questions like "What Linux kernel module do I need to load for this device to work?" More importantly, Discover will enable you to provide answers in the future to questions you don't even expect to ask today. Discover is not intended to be a comprehensive hardware-management tool. It is an enabling technology, designed to provide data that a tool layered above it can use. Two applications are provided with Discover to demonstrate how the library can be leveraged: the command-line utility discover, and a Linux kernel module loading script, discover-modprobe, designed to be invoked at system boot time. This manual is divided into four parts. First, we examine the Discover XML data file format, exploring the elements and attributes used to describe hardware and various interfaces to it. This part will enable you to read and understand a Discover XML file. Next, we offer some recommendations for writing your own Discover XML data. Knowing the syntax is valuable, but knowing how best to take advantage of it is even more useful. We then present the reference pages describing Progeny's Discover-based command-line tools and the configuration files used to control their behavior. You may want to use these references as a guide when implementing your own Discover-based applications. The final part describes the Discover library API so that you can develop your own solutions based on Discover. Appendices offer references to the formal descriptions of the Discover API and XML DTDs. I. Data Structure Table of Contents 1. Overview of the Discover Data Format 2. Master List 3. Busclass Lists 3.1. The busclass_list element 3.1.1. The bus attribute 3.2. The busclass element 3.2.1. The id attribute 3.2.2. The name attribute 4. Vendor Lists 4.1. The vendor_list element 4.1.1. The bus attribute 4.2. The vendor element 4.2.1. The id attribute 4.2.2. The name attribute 5. Device Lists 5.1. The device_list element 5.1.1. The bus attribute 5.2. The device element 5.3. The data element 5.3.1. The class attribute 5.3.2. The version attribute 5.4. Accessing the Device Data ---------------------------------------------------------------------- Chapter 1. Overview of the Discover Data Format Most modern computer peripherals contain self-identifying information in a format standardized for the hardware interface (bus). This enables the OS on the host system to query or scan a bus and catalog the devices. In general, the OS stores this information in the same basic format in which it is returned, without translating it more times than necessary for device drivers to communicate with the peripheral. However, this information varies by bus type and is often insufficiently clear for human consumption. Furthermore, many operating systems do not contain a comprehensive database that maps each peripheral to every subsystem running on the OS that may want to communicate with that peripheral. Discover addresses these issues by providing flexible databases stored in XML format. Extensible Markup Language (XML) is a highly flexible hypertext format. Discover uses XML exclusively to store hardware information externally. Some familiarity with XML syntax is therefore assumed. For more information, see the W3C's XML website. For a formal description of Discover's XML data format, see the Discover Document Type Definition (DTD) document. The purpose of this document is to present the information in a form digestible by the novice. Because each hardware bus type, such as PCI or USB, communicates different details about the connected devices (essentially, each one solves the same problem in a different way), Discover has a different set of lists for each bus type. For each bus, up to three lists are stored: a bus class list maps the bus specification's notion of a device type (hereinafter referred to as a "device class" to reduce confusion) to Discover's device types, which are used for running selective queries; a vendor list associates bus-specific vendor identification data with natural-language names for hardware vendors; and a device list contains information specific to individual devices. ---------------------------------------------------------------------- Chapter 2. Master List When Discover is provided with a URL for the retrieval of hardware information, the data retrieved is expected to be in XML format and to contain further URLs for retrieval. The root element must be discover-data, which has no attributes, and can only contain location elements. The location element is always empty, and has three required attributes: bus, type, and url. location Attributes type This attribute can have one of these values: busclass, device, or vendor. See Chapter 3, Chapter 4, and Chapter 5. url This must be a valid URL containing one of the three types of data lists. bus This is the bus to which the URL applies. See Section 3.2.2 for a list of valid bus names. ---------------------------------------------------------------------- Chapter 3. Busclass Lists As noted in the previous chapter, a busclass list provides a mapping between device classes recognized by the hardware bus and the device type names used by Discover. Because every bus is different, sometimes there is no perfect, one-to-one correspondence between Discover device types and the device classes recognized by a particular bus. This is one reason that the busclass lists, like other types of Discover data lists, are updatable. Revisions in a bus specification may demand updates to the mapping. The device classes recognized by a bus are typically determined by the specification for the bus as determined by a standards committee or other technical body, and do not change frequently (if at all). Example 3-1. The busclass_list element In the foregoing example, we can see one possible mapping of the USB bus's numeric device class IDs to Discover's device type names (see Section 3.2.2). The file begins by declaring the version of the XML standard to which it conforms, and then presents data. The format should be fairly familiar to those accustomed to HTML-style structured markup languages. Not all of Discover's supported device types are listed in the example; for example, display is missing. This is not a problem, since not all buses are used for all hardware applications. USB 1.1 would be a poor choice of bus for VGA-compatible display controllers, for instance, because the available bandwidth on the USB 1.1 bus is insufficient to handle typical data loads for such devices. Another infelicity in the above example is the association of the ffff device class ID with the Discover device type imaging. In actuality, a device type class of ffff in the USB specification indicates a device of an unknown classification. In practice, most consumer-level devices with this device class are scanners, one of the first applications of USB technology in the consumer marketplace. It is possible that in certain deployments, the association of USB's unknown device class ID with Discover's imaging device type is suboptimal - another reason the busclass lists are not hard-coded into the library. ---------------------------------------------------------------------- 3.1. The busclass_list element A busclass_list element possesses a bus attribute and contains one or more busclass elements. ---------------------------------------------------------------------- 3.1.1. The bus attribute The bus attribute of the busclass_list element is set to the name of the bus being described by the busclass list. The bus attribute presently supports the following values: * ata * pci * pcmcia * scsi * usb We expect to support more buses in the future; ieee1394 and sbus are possible candidates. ---------------------------------------------------------------------- 3.2. The busclass element A busclass element possesses two attributes, id and name, and contains no elements. ---------------------------------------------------------------------- 3.2.1. The id attribute The id attribute is set to a bus-specific device class identifier. ---------------------------------------------------------------------- 3.2.2. The name attribute The name attribute is set to a Discover device type. Discover's device types are an effort to balance a few criteria: * Device types ("bus classes" in Discover terminology) defined by the PCI specification * Bus classes defined by the USB specification * Bus classes defined by the SCSI specification * Device types commonly conceived of by the personal computer user Discover's definitions of device types will not meet with universal agreement; as happens in most categorization problems, some decisions had to be made arbitrarily. Discover does not attempt to solve the general problem of grouping various peripherals into categories; rather, Discover solves the problem for itself and uses bus-specific mappings to translate a device's own notion of its type to Discover's device type. * audio A device capable of producing an analog or digital sound signal is an audio device. Typically, any device commonly referred to as a "sound card" is classified by Discover as an audio device. * bridge A device that provides access to devices of a different type, commonly on a different bus, is a bridge device. For instance, consumer PCI chipsets often feature a bridge to ATA (also known as IDE) devices. * broadband An interface device to a computer communications network implemented on top of a technology not explicitly designed for that purpose is a broadband device. Examples include ISDN terminal adapters as well as DSL and cable "modems"; analog phone-line modems are not included in this classification (see "modem" below). * display A device controlled by the host machine's CPU and capable of producing an analog or digital video signal for output purposes is a display device. Typically, any device commonly referred to as a "video card" is classified by Discover as a display device. * fixeddisk A high-speed, fixed magnetic storage device such as a hard disk drive is a fixeddisk device. Removable media devices such as floppy disk drives, CD-ROM drives, magneto-optical devices, tape drives, and Compact Flash card readers are not included in this classification. * humaninput A device that receives tactile input from a person for the purpose of directing a computer's activity is a humaninput device. Examples include keyboards, mice, trackballs, joysticks, gamepads, digital tablets manipulated with a stylus or finger, and so forth. Input devices that rely upon non-tactile means of determining a person's intent, such as speech-recognition devices or cameras, are not included in this classification. * imaging A device that captures still images for input purposes is an imaging device. Scanners and digital cameras are examples of imaging devices. Motion-capture devices such as television tuner cards, webcams, and digital video cameras are not included in this classification. * miscellaneous Any device that cannot logically be classified as another device type is a miscellaneous device. * modem An analog phone-line modulator/demodulator (modem) is classified by Discover as a modem device. No other kind of device is so classified. * network An interface device to a conventional computer data communications network that does not require the use of a terminal adapter is a network device. For example, Ethernet and Token Ring network interface cards are network devices. Analog phone-line modems; terminal adapters for technologies such as ISDN and DSL; and "cable modems" are not "network" devices. * optical An optical-technology storage device, often using read-only media, is an optical device. By far the most common examples of these devices are CD-ROM and DVD-ROM drives, including versions of these drives that can "burn" (write to) optical discs. * printer A device that renders visual output in a permanent or semi-permanent manner to a physical medium is a printer. Typically, any device colloquially referred to as a "printer" is also classified by Discover as a printer. * removabledisk Storage devices that feature removable media using just about any technology except that of magnetic tape, CD-ROM, and DVD-ROM drives are removabledisk devices. Examples include floppy disk drives, magneto-optical drives, and Compact Flash card readers. * tape A sequential-access mass storage device using magnetic tape is a tape device. Commonly used for archival and backup purposes, DAT drives are examples of tape devices. * video A device that produces a real-time digital video signal for input purposes is a video device. Webcams, digital video cameras, and television tuners are examples of video devices. Note that still digital cameras with "movie" capability are not considered video devices unless they can transmit the live video signal to the host in real time. ---------------------------------------------------------------------- Chapter 4. Vendor Lists Many buses have vendor identification numbers that are registered with that bus's standardization body and programmed into the devices when they are manufactured. These numbers generally are assigned arbitrarily, and typically have little meaning to the end user; therefore, most hardware detection tools provide a way to translate these numeric vendor IDs to human-readable strings. Thus, instead of knowing that your PCI or AGP video card was manufactured by "1002," you can determine that it was manufactured by "ATI Technologies, Inc." Example 4-1. The vendor_list element The foregoing example is similar in structure to the busclass list example; a numeric vendor ID maps to a vendor name, which can be used by Discover for queries or reports generated for the user's benefit. ---------------------------------------------------------------------- 4.1. The vendor_list element A vendor_list element possesses a bus attribute and contains one or more vendor elements. ---------------------------------------------------------------------- 4.1.1. The bus attribute The bus attribute of the vendor_list element is set to the name of the bus being described by the vendor list. The following bus attributes are supported: * ata * pci * pcmcia * scsi * usb ---------------------------------------------------------------------- 4.2. The vendor element A vendor element possesses two attributes, id and name, and contains no elements. ---------------------------------------------------------------------- 4.2.1. The id attribute The id attribute is set to a bus-specific vendor identifier. ---------------------------------------------------------------------- 4.2.2. The name attribute The name attribute is set to a human-readable vendor identifier, typically the official name of the corporation or other business entity that designed or manufactured that peripheral. ---------------------------------------------------------------------- Chapter 5. Device Lists The device lists are the heart of Discover's functionality. They are the most frequently updated lists and contain the information of greatest value. Discover's device lists not only provide a way to identify individual peripherals by name, but also permit the specification of an arbitrary quantity of organized data for each device, supporting an arbitrary number of software interfaces. Note The following is a fictitious example. The information within it is for illustrative purposes only. See Part II in The Discover Hardware Detection System for a discussion of the "real" hardware data as provided by Progeny, and for some suggested conventions on organizing the data namespace. Example 5-1. Sample device data winston base_address=0x300 manual_override=0 settlement NSA_KEY=96b5f3e3283a62c85f6cb6f4017135c2 The example above includes a device_list element containing device elements, and a device element that defines the device itself, but reserves any software- or interface-specific details to the data elements it contains. The actual data provided in the example is accessed by means of data paths; see Section 5.4 for further information. ---------------------------------------------------------------------- 5.1. The device_list element A device_list element possesses a bus attribute and contains one or more device elements. ---------------------------------------------------------------------- 5.1.1. The bus attribute The bus attribute of the device_list element is set to the name of the bus described by the device list. The following bus attributes are supported: * ata * pci * pcmcia * scsi * usb ---------------------------------------------------------------------- 5.2. The device element A device element possesses four attributes: * busclass * vendor * model * model_name All of these attributes must be specified for each device element. The busclass attribute is set to a busclass identifier, vendor to a vendor identifier, model to a bus-specific model identifier, and model_name to a human-readable vendor identifier, typically the name of the product under which the device reporting the model identifier is sold or otherwise distributed. A device element contains zero or more data elements. ---------------------------------------------------------------------- 5.3. The data element A data element possesses a mandatory class attribute, an optional version attribute, and zero or more data elements. The ability to nest data elements inside other data elements affords interface designers and device driver authors the ability to specify a hierarchy of data, instead of being compelled to encapsulate only one piece of data per device for their interface. ---------------------------------------------------------------------- 5.3.1. The class attribute A class attribute is set to an arbitrary value determined by an interface designer. For data elements whose parent element is a device element, this should be the name of the interface being described, such as freebsd, linux, or xfree86. A data element whose parent element is a data element should set this attribute to a term reflecting the interface designer's intended data hierarchy. Discover does not mandate any particular hierarchy for interface designers. ---------------------------------------------------------------------- 5.3.2. The version attribute Data elements have an optional attribute named version. This indicates a version range applicable to the data contained within the element. The purpose of this attribute is to permit the specification of data that is valid only for a range of versions of the given interface. For example, the Linux kernel changed some of the names of its modules between the 2.2 and 2.4 series. Discover's range syntax, common in mathematical writings, is expressed as an interval; that is, it consists of a pair of endpoints with a comma between them, and brackets or parentheses as qualifiers for inclusion or exclusion of the endpoints' exact values. For example, the version specification [1.0, 2.0) matches any version less than 2.0 and greater than or equal to 1.0. It is the responsibility of the calling environment to specify the version of the interface actually in use. In other words, the Discover library does not take it upon itself to determine the currently running version of the Linux kernel, XFree86 X server, CUPS printing daemon, and so forth. Due to the lack of consistent standards for version numbers (in fact, some version numbers aren't numbers at all), Discover requires simplifications for the version attribute. The versions that express the range must be in dotted-decimal form, such as 7.1.0. The version that is supplied to the Discover library as part of a query (for example, via the --data-version argument to discover) may or may not comply with this requirement, but should be expressed such that it compares in a desirable way against version strings that do. In place of the upper end of the range, inf (infinity) can be used if the information is still relevant and should be for forseeable versions. ---------------------------------------------------------------------- 5.4. Accessing the Device Data Discover data is grouped into hierarchical data elements. This data can be accessed via its data path. The data path is the concatenation of the class attribute values of a data element and all its parents, separated by slash (/) characters. In the following example, quux is accessed via the data path "foo/bar": quux In Example 5-1 above, we would determine the name of the Linux kernel module ("winston") for the "Cerebral Reprogrammer" device by referencing the data path linux/module/name; similarly, the data path win2k/hal_driver/flags returns NSA_KEY=96b5f3e3283a62c85f6cb6f4017135c2. II. Recommended Data Content Conventions As discussed in the preface, Discover is not intended to be a replacement for system utilities such as lspci on Linux. A device element should exist for a piece of hardware only if there is some interface information to communicate about the hardware; that is, some data elements to house within the device element. This part of the manual contains Progeny's recommendations on how to organize that information for maximum utility. Table of Contents 6. Data Hierarchy 6.1. Linux Kernel Modules 6.2. XFree86 X Servers 6.3. Locally-Defined Interfaces 7. Why Order Matters 8. Using Data Versioning 8.1. Specifying a Range 8.2. How the Discover Library Matches a Range ---------------------------------------------------------------------- Chapter 6. Data Hierarchy As discussed in Section 5.4, the XML structure around the data allows for a hierarchical view. While Discover does not mandate any particular hierarchy or namespace organization for data elements, the XML files provided by Progeny express - and some applications based on Discover (such as discover-modprobe) expect - a certain structure for Linux kernel module and XFree86 configuration information. At Progeny, we have often found it convenient to refer to a top-level data element's class attribute value as an "interface" (see the following example). Example 6-1. Defining an interface XF86_SVGA untrusted In Example 6-1, two interfaces have been defined for the "Stingray" device: xfree86 and openbsd. ---------------------------------------------------------------------- 6.1. Linux Kernel Modules A hardware device that requires a particular Linux kernel module should have nested data elements to describe that module. The top-level data element should have a class attribute with a value of linux. Underneath that should be a data element with a class of module. Within that data element, there should be one or two more, one with a class of name, and an optional one with a class of options. The former has as content the name of the module; the latter, options to be passed to modprobe. Figure 6-1. Linux interface /linux | |-/module | |-/name | |-/options In Figure 6-1, each component of the tree represents a data element; the label is the value of its class attribute. If the kernel version affects the choice of module name or options, the top-level linux data element should have a version range attribute; see Section 5.3.2. Example 6-2. Using the linux interface hisax io=0x300 irq=11 See Example 8-1 for guidance on how to specify different Linux kernel modules for the same device, depending on the version of the Linux kernel in use. ---------------------------------------------------------------------- 6.2. XFree86 X Servers The data hierarchy of a video card device (Discover's display type) should include a top-level data element with a class attribute of xfree86 (the interface) and likely with a version attribute as well; nested within that element will be a server data element containing a name data element identifying the name of the server executable. For XFree86 version 4.0 or greater, the name will always be XFree86, and the server data element will also contain a device data element, which contains one or more data elements communicating information to be stored in the XF86Config file. The children of the device data element are named in correspondence with the syntax of the XF86Config file's Device section; see the XF86Config manual page for further information. In particular, note that in many cases only a driver data element is necessary. Figure 6-2. XFree86 interface /xfree86 | |-/server | |-/name | |-/device | |-/driver | |-/chipid | |-/chipset | |-/ramdac | |-/dacspeed | |-/videoram | |-/options | |-... Figure 6-2 illustrates the xfree86 interface. Example 6-3 shows how you might write xfree86 interface information for a Discover display device. Example 6-3. Using the xfree86 interface XFree86 ati XF86_Mach64 ---------------------------------------------------------------------- 6.3. Locally-Defined Interfaces Progeny recommends that publicly distributed Discover XML files avoid using the interface name local; that is, a class attribute value of local in a top-level data element. This means that data paths such as local/foo/bar should not be defined in a public Discover XML file, but both foo/bar/local and foo/local/bar are okay. The intention is to reserve this part of the namespace for users' experiments with defining their own - and possibly future, widely adopted - interface definitions for Discover data. An interface definition could thus be "beta tested" by a person or organization to ensure that it is efficiently structured before it is unleashed upon the world elsewhere in the namespace, where people may write tools that expect to be able to resolve the interface definition's data paths. Likewise, Progeny recommends that authors of applications that use Discover avoid traversing into a top-level local data element, which may impose an undesirable support burden on the designers of the interface while they are still working out their design. (The application also may not find the data it desires, or may not get back what it expects.) ---------------------------------------------------------------------- Chapter 7. Why Order Matters When searching device elements, the first exact match will be selected. Subsequent matches are ignored. Specifically, three comparisons are made: 1. The hardware must provide identification that matches attributes of the device element. As an example, a PCI device supplies numeric vendor and model identifiers, which are used to match the model and vendor attributes. 2. The class attributes of child data elements must match the data path as given to the library for searching. 3. The first version range, if any, associated with the nested data elements must encompass any version provided by the client. Example 7-1. Matching device elements Assume that the path linux/module/name is provided, along with a version of 2.4.2. The following is sample data; the device elements may be from the same or different data files. (1) vg100 (2) vg100 io=0x300 (3) vg100new (4) vg100old (1) This item is the first one scanned, and would match, except that the requested data path includes "module" as a component, not "modules" as specified here. (2) This item doesn't match because the provided range is outside the limits defined by the element. (2.4.2 is not greater than or equal to 2.0 and less than 2.2.) (3) This item matches because no range is given, so "vg100new" is the value returned. (4) This is the nearest match, but the Discover library will never select it because its previous sibling has no version range, and thus will catch any version provided. ---------------------------------------------------------------------- Chapter 8. Using Data Versioning 8.1. Specifying a Range Because multiple versions of a software interface often are in simultaneous deployment, Progeny recommendeds that the upper bound of a data element's version attribute be defined as the first version that is inconsistent with the information provided within it, and that the upper end of the interval be open (terminated with a parenthesis). As an example, suppose we know that the name of the Linux kernel module to drive the RealTek RTL-8139 Ethernet device was rtl8139 in the 2.2 kernel series and 8139too in the 2.4 series. To express this, we would say the following: Example 8-1. Using the version attribute of the data element 8139too rtl8139 In the first data element, for instance, we would not use a version attribute of [2.2.0,2.2.19] because it is needlessly specific. What happens if the Linux kernel developers release Linux kernel 2.2.20? By saying [2.2,2.4), we "catch" everything in the kernel 2.2 series[2] - past, present, and future. ---------------------------------------------------------------------- 8.2. How the Discover Library Matches a Range The data files will be searched in order; the first data path that matches the version range or doesn't have a version range will be returned. Recalling the discussion in Section 5.3.2, if you want the first data element matching the requested data path to also be the "fallback" element if no version range applies, you can duplicate that data element and place it at the end. However, a better practice is to make certain that all reasonable versions will match one of the ranges, and that the first range listed has an open-ended high end, such as [2.4, inf) for Linux kernel modules in Example 8-1. This will have the effect of "assuming" that all unversioned requests for linux data will be for Linux kernel 2.4 or later. III. Command-Line Tools Table of Contents 9. discover Manual Page discover -- hardware detection utility 10. discover.conf Manual Page discover.conf -- configuration file format for discover(1) 11. discover-modprobe Manual Page discover-modprobe -- kernel module loading using discover(1) 12. discover-modprobe.conf Manual Page discover-modprobe.conf -- configuration file for discover-modprobe(5) ---------------------------------------------------------------------- Chapter 9. discover Manual Page discover Name discover -- hardware detection utility Synopsis discover [DATA_OPTIONS] [DISPLAY_OPTIONS] [--bus-summary] [bus...] discover [DATA_OPTIONS] [DISPLAY_OPTIONS] --type-summary [type...] discover [DATA_OPTIONS] --data-path=path/to/data... [--data-version=version] [--normalize-whitespace] [--format=format string] [type | id...] DATA_OPTIONS * -d | --disable-bus=bus * -e | --enable-bus=bus * --insert-url=url * --append-url=url * -v | --verbose DISPLAY_OPTIONS * --model | --no-model * --model-id | --no-model-id * --vendor | --no-vendor * --vendor-id | --no-vendor-id Description discover provides an extensible hardware detection and reporting interface. Hardware information is stored in an XML data format and can be retrieved across the network. Fundamental modes of operation: * Display a list of hardware devices based on type of device or system bus on which the devices reside, via --type-summary or --bus-summary (the latter of which is the default behavior). * Query specified data for attached hardware, via --data-path. Options -h | --help Display a simple help message. -v | --verbose Instruct the tool to provide feedback as it operates. This will affect the output as discover parses certain arguments, so this should appear early in the command line. -V | --version Display the tool name and version. -b | --bus-summary This is the default behavior: Display basic information regarding all devices on the appropriate buses. See Selecting Buses. -t | --type-summary Summarize devices by class of hardware. Examples of valid device types include broadband, fixeddisk, display, and network. See Device Types. --data-path=path/to/data Query matching devices for detailed information. Device-specific data is stored in a hierarchical fashion, and the query argument comprises strings naming each level in that hierarchy. Typically, the top-level component of the data path will be the "platform" that will need the information, such as linux or xfree86. For example, to retrieve the Linux kernel module name for a piece of hardware, the --data-path argument would be linux/module/name. If multiple --data-path arguments are given and no format string (see --format) is provided, only the last path is used. See also the --data-version argument. --data-version=version Specify a version string for the platform that will use the information specified by the argument to --data-path. This string must be in dotted-decimal notation in order to be matched against a range of values, and thus may be shorter than the real version. --format=format string Dictate the output of the results of the queries specified by --data-path arguments. This format string should follow printf(3) specifications, although only %s and appropriate flags, precision, and width values are supported (or make sense); literal text and %% can also be used. The behavior when the string is poorly formatted is undefined. See also --normalize-whitespace. -d | --disable-bus=bus Use this option to override the list of buses to scan by default as defined in discover.conf. Use all as an argument to disable all buses; this is useful only if followed by --enable-bus (or -e) arguments. -e | --enable-bus=bus Specify a bus to be scanned. --insert-url=url Insert a URL at the head of the list of network resources to include in the search for hardware information. Earlier data overrides later data; to override the local data sources, insert URLs into the list. See also --append-url. --append-url=url Append a URL to the end of the list of network resources to search for hardware information. See also --insert-url. --model Include the model description in summary information. This is enabled by default. --model-id Include the numeric model identifier in summary information. --no-model Do not include the model description in summary information. --no-model-id Do not include the numeric model identifier in summary information. This is the default. --vendor Include the vendor description in summary information. This is enabled by default. --vendor-id Include the numeric vendor identifier in summary information. --no-vendor Do not include the vendor description in summary information. --no-vendor-id Do not include the numeric vendor identifier in summary information. This is the default. --normalize-whitespace Consolidate whitespace in the results of a --data-path query. The default is not to do so, which faithfully reproduces all text in the raw XML data. With this option enabled, leading and trailing whitespace is removed, and any consecutive internal whitespaces are compressed to a single space character. Selecting Buses discover.conf defines two lists of system buses: one to scan by default (used by the discover command), and one never to scan (used by the Discover library). You can override and/or extend the list of default buses with --disable-bus and --enable-bus. The list of buses not to scan cannot be overridden without changing discover.conf, so that list should be used only for buses that may be dangerous to probe. Both arguments take the string "all" as a value. If a bus summary is being performed, which is indicated either by the presence of --bus-summary or the absence of --type-summary and --data-path, any unattached arguments on the command line will be interpreted as the only buses to scan. This is equivalent to using --disable-bus all before invoking --enable-bus for the buses of interest. The following buses are currently supported by Discover: * ata * pci * pcmcia * scsi * usb Device Types Discover defines its own device types, to which the device types used by each bus are mapped. Discover currently recognizes the following device types: * audio A device capable of producing an analog or digital sound signal is an audio device. Typically, any device commonly referred to as a "sound card" is classified by Discover as an audio device. * bridge A device that provides access to devices of a different type, commonly on a different bus, is a bridge device. For instance, consumer PCI chipsets often feature a bridge to ATA (also known as IDE) devices. * broadband An interface device to a computer communications network implemented on top of a technology not explicitly designed for that purpose is a broadband device. Examples include ISDN terminal adapters as well as DSL and cable "modems"; analog phone-line modems are not included in this classification (see "modem" below). * display A device controlled by the host machine's CPU and capable of producing an analog or digital video signal for output purposes is a display device. Typically, any device commonly referred to as a "video card" is classified by Discover as a display device. * fixeddisk A high-speed, fixed magnetic storage device such as a hard disk drive is a fixeddisk device. Removable media devices such as floppy disk drives, CD-ROM drives, magneto-optical devices, tape drives, and Compact Flash card readers are not included in this classification. * humaninput A device that receives tactile input from a person for the purpose of directing a computer's activity is a humaninput device. Examples include keyboards, mice, trackballs, joysticks, gamepads, digital tablets manipulated with a stylus or finger, and so forth. Input devices that rely upon non-tactile means of determining a person's intent, such as speech-recognition devices or cameras, are not included in this classification. * imaging A device that captures still images for input purposes is an imaging device. Scanners and digital cameras are examples of imaging devices. Motion-capture devices such as television tuner cards, webcams, and digital video cameras are not included in this classification. * miscellaneous Any device that cannot logically be classified as another device type is a miscellaneous device. * modem An analog phone-line modulator/demodulator (modem) is classified by Discover as a modem device. No other kind of device is so classified. * network An interface device to a conventional computer data communications network that does not require the use of a terminal adapter is a network device. For example, Ethernet and Token Ring network interface cards are network devices. Analog phone-line modems; terminal adapters for technologies such as ISDN and DSL; and "cable modems" are not "network" devices. * optical An optical-technology storage device, often using read-only media, is an optical device. By far the most common examples of these devices are CD-ROM and DVD-ROM drives, including versions of these drives that can "burn" (write to) optical discs. * printer A device that renders visual output in a permanent or semi-permanent manner to a physical medium is a printer. Typically, any device colloquially referred to as a "printer" is also classified by Discover as a printer. * removabledisk Storage devices that feature removable media using just about any technology except that of magnetic tape, CD-ROM, and DVD-ROM drives are removabledisk devices. Examples include floppy disk drives, magneto-optical drives, and Compact Flash card readers. * tape A sequential-access mass storage device using magnetic tape is a tape device. Commonly used for archival and backup purposes, DAT drives are examples of tape devices. * video A device that produces a real-time digital video signal for input purposes is a video device. Webcams, digital video cameras, and television tuners are examples of video devices. Note that still digital cameras with "movie" capability are not considered video devices unless they can transmit the live video signal to the host in real time. Examples Example 9-1. Scan the local buses # discover Intel Corporation 82815 Chipset Host Bridge and Memory Controller Hub unknown unknown unknown unknown unknown unknown Intel Corporation 82815 Chipset IDE controller Intel Corporation 82815 Chipset USB (A) Intel Corporation 82815 System Management bus controller ATI Technologies, Inc. Rage 128 Pro GL [PF] 3Com Corporation 3c905C-TX [Fast Etherlink] Ensoniq ES1371 [AudioPCI-97] unknown unknown Example 9-2. View PCI video cards # discover -v --type-summary --disable-bus all --enable-bus pci display Disabled pci Disabled pcmcia Disabled scsi Disabled usb Enabled pci Loading XML data... pci Done Scanning buses... pci Done ATI Technologies, Inc. Rage 128 Pro GL [PF] Example 9-3. Query for the driver module for XFree86 server version 4.2.0 # discover --data-path=xfree86/server/device/driver --data-version=4.2.0 display ati Example 9-4. Get model and vendor information by type $ discover -t --no-model Intel Corporation NVIDIA Corporation 3Com Corporation $ discover -t --no-vendor 82815 System Management bus controller Vanta [NV6] 3c905C-TX [Fast Etherlink] Files /etc/discover.conf.d The directory containing configuration files that control the default behavior for both the discover tool and the Discover library. /discover/list.xml An XML file containing URLs with hardware information. This list can be extended with --append-url and --extend-url. Authors Josh Bressers, John R. Daily, and G. Branden Robinson developed the current implementation of Discover for Progeny Linux Systems. The Linux implementation of the system-dependent interfaces is derived from detect, by MandrakeSoft SA. See Also discover.conf(5), discover-modprobe(8) ---------------------------------------------------------------------- Chapter 10. discover.conf Manual Page discover.conf Name discover.conf -- configuration file format for discover(1) Description Discover looks for configuration files in a configuration directory, containing a number of files. These define the system buses that should be scanned by default, those that should never be scanned, and the URLs for hardware data files beyond the local copy provided with the software. The file format is XML; the DTD is provided with the Discover software, and can be used for informational or validation purposes. Examples Example 10-1. Establishing default buses to scan Example 10-2. A more complex example Authors Josh Bressers, John R. Daily, and G. Branden Robinson developed the current implementation of Discover for Progeny Linux Systems. The Linux implementation of the system-dependent interfaces is derived from detect, by MandrakeSoft SA. See Also discover(1) ---------------------------------------------------------------------- Chapter 11. discover-modprobe Manual Page discover-modprobe Name discover-modprobe -- kernel module loading using discover(1) Synopsis discover-modprobe [-n] [-v] Description discover-modprobe loads kernel modules identified by discover. It will typically be invoked automatically at boot time. Options -n Echo the modprobe invocations instead of running them. -v Be verbose. Files /etc/discover-modprobe.conf This configuration file defines the types of modules to load by default, and specific modules not to load. /var/lib/discover/crash A crash file written and erased each time discover-modprobe attempts to load a module. If the file lingers, the computer is assumed to have crashed while loading that module, and the module name is added to discover-modprobe.conf as a module to skip in the future. See Also discover-modprobe.conf(5), modprobe(8), discover(1) ---------------------------------------------------------------------- Chapter 12. discover-modprobe.conf Manual Page discover-modprobe.conf Name discover-modprobe.conf -- configuration file for discover-modprobe(5) Description discover-modprobe.conf is the configuration file for discover-modprobe, which is responsible for retrieving and loading kernel modules. Warning This file is a shell script, and as such is subject to a string variable assignment syntax. No space is allowed between the variable name, the equal (=) sign, and the value(s) assigned. If multiple values are to be assigned, the list must be space-delimited with surrounding quotes. Two directives can be used in this file: types and skip. Both can be defined multiple times. types This describes the classes of hardware that should be scanned and queried. skip These modules should never be loaded. See the "Files" section for details on the mechanism for generating these entries automatically. Files /var/lib/discover/crash A crash file written and erased each time discover-modprobe attempts to load a module. If the file lingers, the computer is assumed to have crashed while loading that module, and the module name is added to discover-modprobe.conf as a module to skip in the future. See Also discover-modprobe(8), modprobe(8), discover(1) IV. Library Table of Contents 13. The Discover Library 13.1. Library Design Principles 13.2. Discover Data Sources 13.3. The Bus Map 13.4. Scanning the System 13.5. Using discover_device_t Structures 14. System Dependencies 14.1. API ---------------------------------------------------------------------- Chapter 13. The Discover Library 13.1. Library Design Principles Lazy allocation is used throughout Discover. This means that there are no "init" functions, and no functions to scan the bus. Instead, retrieval functions scan or initialize as necessary. Each of these retrieval functions has an equivalent function for freeing the allocated memory. This is valuable to long-lived processes to aid in memory management, but even short-lived processes may want to use them to force reloading of the information. ---------------------------------------------------------------------- 13.2. Discover Data Sources Discover knows about one data source by default: the local data from the discover-data package. Additional sources can be added with the discover_conf_append_url and discover_conf_insert_url functions. As their names suggest, they append or insert URLs on the data source list. Earlier data overrides later data; to override the local data sources, insert URLs. ---------------------------------------------------------------------- 13.3. The Bus Map Most high-level operations begin at the bus map. Bus maps (discover_bus_map_t) are retrieved with calls to discover_conf_get_bus_map or discover_conf_get_bus_map_by_name. discover_conf_get_bus_map returns an array of maps, one for each supported bus, with the last element being all 0s. discover_conf_get_bus_map_by_name returns the map for the named bus. The map contains pointers to all the functions that operate on the bus, as well as the scan_default variable, which determines whether the bus is scanned by default. There is also a scan_never variable, but it is for internal use only. The name of the bus is stored in the name variable. The following functions are available in the bus map. The "get" functions take a single discover_error_t argument and return a list of discover_device_t structures, while the "free" functions take no arguments and return no value. get_devices Retrieve the list of devices found on this bus. Returns NULL if the bus is not present on the system, or if no devices are attached to it. xml_get_busclasses Retrieve the list of busclasses for this bus (from the XML data sources). xml_get_devices Retrieve the list of devices for this bus (from the XML data sources). Note that this is the list of devices that Discover knows about, not the list of devices present on the system. xml_get_vendors Retrieve the list of vendors for this bus (from the XML data sources). xml_get_busclass_urls Retrieve the list of URLs from which busclass data is retrieved. This function is probably not useful to most clients. xml_get_device_urls Retrieve the list of URLs from which device data is retrieved. This function is probably not useful to most clients. xml_get_vendor_urls Retrieve the list of URLs from which vendor data is retrieved. This function is probably not useful to most clients. free_devices Free the list of devices. xml_free_busclasses Free the list of busclasses. xml_free_devices Free the list of devices (the XML data, not the list of devices found on the system). xml_free_vendors Free the list of vendors. xml_free_busclass_urls Free the list of busclass URLs. xml_free_device_urls Free the list of device URLs. xml_free_vendor_urls Free the list of vendor URLs. ---------------------------------------------------------------------- 13.4. Scanning the System Discover provides a few ways to scan the system for information. You can walk the bus map: for (i = 0; busmap[i].name; i++) { if (busmap[i].scan == DISCOVER_SCAN_DEFAULT) { devices = busmap[i].get_devices(&status); check_status(status); do_something_cool(devices); } } You can scan a specific bus: devices = discover_get_pci_devices(&status); check_status(status); do_something_cool(devices); Perhaps most usefully, you can scan for devices of a specific type: devices = discover_device_find("video", &status); check_status(status); do_something_video(devices); ---------------------------------------------------------------------- 13.5. Using discover_device_t Structures Now that you have some device structures, what can you do with them? The most interesting operation is retrieving data with discover_device_get_data. Also available are discover_device_get_vendor_name, discover_device_get_model_name, discover_device_get_model_id, and discover_device_get_vendor_id. discover_device_get_data takes a data path and a version number and searches for the first data structure that matches. discover_device_get_vendor_name returns the human-readable name for the device's vendor. discover_device_get_model_name returns the human-readable name for the device's model. discover_device_get_model_id returns the bus-specific ID for the device model. discover_device_get_vendor_id returns the bus-specific ID for the device vendor. ---------------------------------------------------------------------- Chapter 14. System Dependencies 14.1. API The system-dependent code (sysdeps) that must be custom-written for each operating system conforms to a very simple API. Discover invokes _discover_get_busname_raw() with no arguments, and expects a linked list of discover_sysdep_data_t structures in return. The discover_sysdep_data_t structures should contain as much descriptive information as they can regarding the devices discovered. Specifically, the three pieces of information desired are the busclass (device type), vendor identifier, and model identifier, which is a unique identification string that the vendor has provided for the given piece of hardware. Example 14-1. Linux PCI sysdep code #include #include #include #include discover_sysdep_data_t * _discover_get_pci_raw(void) { FILE *f; char *line = NULL; size_t len = 0; discover_sysdep_data_t *head = NULL, *node, *last = NULL; unsigned int id; if ((f = fopen(PATH_PROC_PCI, "r"))) { while (getline(&line, &len, f) >= 0) { if (line[0] == '\n' || line[0] == '#') { continue; } node = _discover_sysdep_data_new(); sscanf(line, "%*04x\t%08x", &id); node->vendor = (id >> 16); node->model = id & 0xffff; if (head == NULL) { head = node; last = head; } else { last->next = node; last = node; } } free(line); fclose(f); } return head; } ---------------------------------------------------------------------- Appendix A. Discover API Reference The API reference is here. ---------------------------------------------------------------------- Appendix B. Discover DTD ---------------------------------------------------------------------- Appendix C. Discover Configuration File DTD ---------------------------------------------------------------------- Appendix D. Licensing Issue on the Linux Sysdeps It should be noted that the Linux-specific files in the sysdeps/linux directory of the source distribution are derived from code written for the Detect library by MandrakeSoft SA, and are licensed under the GNU Project's General Public License (GPL). Note that section 2 of the GPL places requirements on derived works that prevent licensees from exercising some of the permissions granted under the license on the rest of Discover. However, not everyone who modifies or distributes Discover will necessarily be subject to the terms of the GPL. If you do not compile, use, or distribute the Linux sysdeps (for instance, if you are building Discover for FreeBSD), then the license terms on them do not attach. We realize, however, that it is desirable that all of Discover be under the the same license terms. There are a few possible solutions to this problem: * If you do not need the Linux sysdeps, you can delete them from your copy of Discover. * You can rewrite the Linux sysdeps. The resulting code will be your work, so the only limitations on you will be those imposed by Discover's license. If you do so, we encourage you to license your rewrite under the same terms as the rest of Discover - in that event, Progeny will be happy to incorporate your code into a future release of Discover. * You can contact MandrakeSoft SA and negotiate a different license to their code that is used in the Linux sysdeps. * You can contact MandrakeSoft SA and attempt to persuade them to relicense their code that is used in the Linux sydeps under the terms used by the rest of Discover. (MandrakeSoft SA would not have to abandon or assign their copyright.) If you succeed in this effort, please let Progeny know and we will update the license terms on our copy of the MandrakeSoft SA code. * You can wait; eventually Progeny employees, or some volunteer, will rewrite the Linux sysdeps and license them under the terms that the rest of Discover uses. Note The foregoing discussing is not legal advice and makes no claim to be such. It is a layperson's understanding of the licensing issues from a software developer's perspective. Progeny makes no warranties or guarantees as to the accuracy of the above analysis in a legal context. If you require a professional legal opinion, consult attorneys specializing in copyright and licensed to practice in the jurisdictions of interest to you or to your organization. Notes [1] Other protocols such as FTP are available but deprecated; Discover uses integrity verification mechanisms such as MD5 checksums in the HTTP protocol. [2] We would say [2.2,2.3) instead, but, like many Free Software projects, the Linux kernel uses odd minor version numbers to denote unstable, development series of the software, and even minor version numbers to denote stable, production series of the software. In the example, then, we arbitrarily treat all 2.3 series kernels the same as 2.2 kernels. discover-2.1.2/doc/discover-modprobe.conf.refentry0000644002342100234210000000665210475523147020715 0ustar perepere $Progeny$ &author.jdaily; 2002 &progeny.inc; discover-modprobe.conf 5 discover-modprobe.conf configuration file for discover-modprobe(5) Description discover-modprobe.conf is the configuration file for discover-modprobe, which is responsible for retrieving and loading kernel modules. This file is a shell script, and as such is subject to a string variable assignment syntax. No space is allowed between the variable name, the equal (=) sign, and the value(s) assigned. If multiple values are to be assigned, the list must be space-delimited with surrounding quotes. Two directives can be used in this file: types and skip. Both can be defined multiple times. types This describes the classes of hardware that should be scanned and queried. skip These modules should never be loaded. See the Files section for details on the mechanism for generating these entries automatically. Files &crash-snippet; See Also discover-modprobe(8), modprobe(8), discover(1) discover-2.1.2/doc/bus-classes.xml0000644002342100234210000000265710475523124015530 0ustar perepere ata pci pcmcia scsi usb discover-2.1.2/doc/discover-modprobe.conf.50000644002342100234210000000267410475523155017222 0ustar perepere.TH "discover-modprobe.conf" "5" .SH "NAME" discover-modprobe.conf \(em configuration file for discover-modprobe(5) .SH "Description" .PP \fBdiscover-modprobe.conf\fP is the configuration file for \fBdiscover-modprobe\fR, which is responsible for retrieving and loading kernel modules. .PP .RS \fBWarning: .PP This file is a shell script, and as such is subject to a string variable assignment syntax. No space is allowed between the variable name, the equal (=) sign, and the value(s) assigned. If multiple values are to be assigned, the list must be space-delimited with surrounding quotes. .RE .PP Two directives can be used in this file: \fBtypes\fP and \fBskip\fP. Both can be defined multiple times. .IP "\fBtypes\fP" 10 This describes the classes of hardware that should be scanned and queried. .IP "\fBskip\fP" 10 These modules should never be loaded. See the ``\fIFiles\fP'' section for details on the mechanism for generating these entries automatically. .SH "Files" .IP "\fB/var/lib/discover/crash\fP" 10 A crash file written and erased each time \fBdiscover-modprobe\fR attempts to load a module. If the file lingers, the computer is assumed to have crashed while loading that module, and the module name is added to \fBdiscover-modprobe.conf\fP as a module to skip in the future. .SH "See Also" .PP discover-modprobe(8), modprobe(8), discover(1) .\" created by instant / docbook-to-man, Thu 31 Aug 2006, 11:05 discover-2.1.2/doc/device-types.xml0000644002342100234210000001561310475523124015701 0ustar perepere audio A device capable of producing an analog or digital sound signal is an audio device. Typically, any device commonly referred to as a sound card is classified by &discover; as an audio device. bridge A device that provides access to devices of a different type, commonly on a different bus, is a bridge device. For instance, consumer &pci; chipsets often feature a bridge to &ata; (also known as IDE) devices. broadband An interface device to a computer communications network implemented on top of a technology not explicitly designed for that purpose is a broadband device. Examples include ISDN terminal adapters as well as DSL and cable modems; analog phone-line modems are not included in this classification (see modem below). display A device controlled by the host machine's CPU and capable of producing an analog or digital video signal for output purposes is a display device. Typically, any device commonly referred to as a video card is classified by &discover; as a display device. fixeddisk A high-speed, fixed magnetic storage device such as a hard disk drive is a fixeddisk device. Removable media devices such as floppy disk drives, CD-ROM drives, magneto-optical devices, tape drives, and Compact Flash card readers are not included in this classification. humaninput A device that receives tactile input from a person for the purpose of directing a computer's activity is a humaninput device. Examples include keyboards, mice, trackballs, joysticks, gamepads, digital tablets manipulated with a stylus or finger, and so forth. Input devices that rely upon non-tactile means of determining a person's intent, such as speech-recognition devices or cameras, are not included in this classification. imaging A device that captures still images for input purposes is an imaging device. Scanners and digital cameras are examples of imaging devices. Motion-capture devices such as television tuner cards, webcams, and digital video cameras are not included in this classification. miscellaneous Any device that cannot logically be classified as another device type is a miscellaneous device. modem An analog phone-line modulator/demodulator (modem) is classified by &discover; as a modem device. No other kind of device is so classified. network An interface device to a conventional computer data communications network that does not require the use of a terminal adapter is a network device. For example, Ethernet and Token Ring network interface cards are network devices. Analog phone-line modems; terminal adapters for technologies such as ISDN and DSL; and cable modems are not network devices. optical An optical-technology storage device, often using read-only media, is an optical device. By far the most common examples of these devices are CD-ROM and DVD-ROM drives, including versions of these drives that can burn (write to) optical discs. printer A device that renders visual output in a permanent or semi-permanent manner to a physical medium is a printer. Typically, any device colloquially referred to as a printer is also classified by &discover; as a printer. removabledisk Storage devices that feature removable media using just about any technology except that of magnetic tape, CD-ROM, and DVD-ROM drives are removabledisk devices. Examples include floppy disk drives, magneto-optical drives, and Compact Flash card readers. tape A sequential-access mass storage device using magnetic tape is a tape device. Commonly used for archival and backup purposes, DAT drives are examples of tape devices. video A device that produces a real-time digital video signal for input purposes is a video device. Webcams, digital video cameras, and television tuners are examples of video devices. Note that still digital cameras with movie capability are not considered video devices unless they can transmit the live video signal to the host in real time. discover-2.1.2/doc/discover-modprobe.80000644002342100234210000000210210475523155016263 0ustar perepere.TH "discover-modprobe" "8" .SH "NAME" discover-modprobe \(em kernel module loading using discover(1) .SH "SYNOPSIS" .PP \fBdiscover-modprobe\fR [\-n] [\-v] .SH "Description" .PP \fBdiscover-modprobe\fR loads kernel modules identified by \fBdiscover\fR. It will typically be invoked automatically at boot time. .SH "Options" .IP "\fB-n\fP" 10 Echo the \fBmodprobe\fR invocations instead of running them. .IP "\fB-v\fP" 10 Be verbose. .SH "Files" .IP "\fB/etc/discover-modprobe.conf\fP" 10 This configuration file defines the types of modules to load by default, and specific modules \fInot\fP to load. .IP "\fB/var/lib/discover/crash\fP" 10 A crash file written and erased each time \fBdiscover-modprobe\fR attempts to load a module. If the file lingers, the computer is assumed to have crashed while loading that module, and the module name is added to \fBdiscover-modprobe.conf\fP as a module to skip in the future. .SH "See Also" .PP discover-modprobe.conf(5), modprobe(8), discover(1) .\" created by instant / docbook-to-man, Thu 31 Aug 2006, 11:05 discover-2.1.2/INSTALL0000644002342100234210000000502310266266027013040 0ustar perepere1) Dependencies --------------- You will need the curl and expat libraries to successfully compile Discover on your platform. There has been extensive testing with libcurl 7.9.5 and expat 1.95.2. Please let us know if you experience problems with differing versions (within reason; we don't want to hear about libcurl 0.99.2 failing). Discover relies on the discover-data package being installed. The data is shipped separately from Discover and should be updated far more often than Discover itself is. An optional yet useful package is check, which allows unit tests to be run with the "make check" command from the Discover source directory. If you plan to do any development on libdiscover, it is highly recommended you install check. Curl: http://curl.haxx.se/ Expat: http://www.jclark.com/xml/expat.html Check: http://check.sourceforge.net/ Discover-data http://hackers.progeny.com/discover/ 2) Install Instructions ----------------------- * Overview: ./configure make make install * Detailed instructions: By default, Discover will install in the /usr/local directory. If you want the install to put Discover elsewhere, use the --prefix= option with configure. configure --help will list several additional options not covered in this document. By default, Discover will look for the configuration information in /usr/local/etc/discover and for the data in /usr/local/share/discover. This directory should also be the target of the discover-data install. Once configure has run successfully, you need to run make. The makefiles are generated from configure, so editing these by hand is not recommended. If you need to make changes to a makefile, the recommended mechanism is to edit the corresponding Makefile.in and rerun configure. This will protect you from losing changes if configure is run again in the future. If you want to test your build, the check library must have been found by configure, and "make check" must be run. This will use an internal set of XML data files to verify some library functionality. To install Discover, issue the "make install" command with the appropriate permissions (typically as root). This will place the discover command in ${PREFIX}/bin and the library in ${PREFIX}/lib ($PREFIX defaults to /usr/local). Assuming that you have the data installed, you should be able to run "discover" at this point and see a list of your hardware. See the Discover manual for further details. 3) Contact ---------- Feel free to mail questions and comments to: discover-workers@lists.progeny.com discover-2.1.2/portability/0002755002342100234210000000000010655642004014346 5ustar pereperediscover-2.1.2/portability/stdbool.h0000644002342100234210000000337010266266026016172 0ustar perepere/* stdbool.h -- C99 Boolean types * * $Progeny$ * * Copyright (C) 2001 Progeny Linux Systems, Inc. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * 3. Neither the name of the authors nor the names of any contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE AUTHORS AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. */ #ifndef STDBOOL_H #define STDBOOL_H /* C++ has bool already. */ #ifndef __cplusplus #define bool int #define true 1 #define false 0 #define __bool_true_false_are_defined 1 #endif #endif discover-2.1.2/portability/Makefile.in0000644002342100234210000000346610266266026016426 0ustar perepere# $Progeny$ .POSIX: VPATH= @srcdir@ builddir= @builddir@ abs_builddir= @abs_builddir@ top_builddir= @top_builddir@ abs_top_builddir= @abs_top_builddir@ srcdir= @srcdir@ abs_srcdir= @abs_srcdir@ top_srcdir= @top_srcdir@ abs_top_srcdir= @abs_top_srcdir@ CC= @CC@ CPP= @CPP@ INSTALL_DIR= @INSTALL_DIR@ LIBTOOL= sh ${top_builddir}/libtool LTCLEAN= ${LIBTOOL} --mode=clean rm -rf LTCOMPILE= ${LIBTOOL} --mode=compile ${CC} -c ${CPPFLAGS} ${CFLAGS} LTLINK= ${LIBTOOL} --mode=link ${CC} ${LDFLAGS} CFLAGS= @CFLAGS@ CPPFLAGS= @DEFS@ @CPPFLAGS@ LDFLAGS= @LDFLAGS@ LIBS= @LIBS@ LTLIBOBJS= @LTLIBOBJS@ .SUFFIXES: .c .lo .c.lo: ${LTCOMPILE} $< && touch $@ all: libportability.la ############################################################################### # Build SOURCES= alloca.c \ mkdtemp.c \ mkstemp.c \ strsep.c HEADERS= alloca.h \ mkdtemp.h \ mkstemp.h \ stdbool.h \ strsep.h libportability.la: ${LTLIBOBJS} ${LTLINK} -o $@ ${LTLIBOBJS} ############################################################################### # Clean clean_FILES= libportability.la ${LTLIBOBJS} distclean_FILES= Makefile clean: ${LTCLEAN} ${clean_FILES} distclean: ${LTCLEAN} ${clean_FILES} ${distclean_FILES} maintainer-clean: ${LTCLEAN} ${clean_FILES} ${distclean_FILES} ############################################################################### # Installation install: uninstall: ############################################################################### # Distribution PACKAGE_TARNAME= @PACKAGE_TARNAME@ PACKAGE_VERSION= @PACKAGE_VERSION@ distname= ${PACKAGE_TARNAME}-${PACKAGE_VERSION} distdir= ${top_builddir}/${distname} DISTFILES= Makefile.in ${SOURCES} ${HEADERS} replace-funcs.m4 distdir: ${DISTFILES} ${top_srcdir}/buildtools/distdir ${distdir}/${_THISDIR_} ${DISTFILES} discover-2.1.2/portability/mkdtemp.c0000644002342100234210000000665710266266026016173 0ustar perepere/* $Progeny$ */ /* $NetBSD: gettemp.c,v 1.5 1999/09/20 04:39:30 lukem Exp $ */ /* * Copyright (c) 1987, 1993 * The Regents of the University of California. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. */ #include #include #include #include #include static int do_mkdtemp(char *path) { char *start, *trv; struct stat sbuf; pid_t pid; /* To guarantee multiple calls generate unique names even if the file is not created. 676 different possibilities with 7 or more X's, 26 with 6 or less. */ static char xtra[2] = "aa"; int xcnt = 0; pid = getpid(); /* Move to end of path and count trailing X's. */ for (trv = path; *trv; ++trv) if (*trv == 'X') xcnt++; else xcnt = 0; /* Use at least one from xtra. Use 2 if more than 6 X's. */ if (*(trv-1) == 'X') *--trv = xtra[0]; if (xcnt > 6 && *(trv-1) == 'X') *--trv = xtra[1]; /* Set remaining X's to pid digits with 0's to the left. */ while (*--trv == 'X') { *trv = (pid % 10) + '0'; pid /= 10; } /* update xtra for next call. */ if (xtra[0] != 'z') xtra[0]++; else { xtra[0] = 'a'; if (xtra[1] != 'z') xtra[1]++; else xtra[1] = 'a'; } /* * check the target directory; if you have six X's and it * doesn't exist this runs for a *very* long time. */ for (start = trv + 1;; --trv) { if (trv <= path) break; if (*trv == '/') { *trv = '\0'; if (stat(path, &sbuf)) return (0); if (!S_ISDIR(sbuf.st_mode)) { errno = ENOTDIR; return (0); } *trv = '/'; break; } } for (;;) { if (mkdir(path, 0700) >= 0) return (1); if (errno != EEXIST) return (0); /* tricky little algorithm for backward compatibility */ for (trv = start;;) { if (!*trv) return (0); if (*trv == 'z') *trv++ = 'a'; else { if (isdigit((unsigned char)*trv)) *trv = 'a'; else ++*trv; break; } } } /*NOTREACHED*/ } char * mkdtemp(char *path) { return (do_mkdtemp(path) ? path : (char *)NULL); } discover-2.1.2/portability/mkstemp.h0000644002342100234210000000005210266266026016176 0ustar perepere/* $Progeny$ */ int mkstemp(char *path); discover-2.1.2/portability/alloca.c0000644002342100234210000003342310266266026015754 0ustar perepere/* alloca.c -- allocate automatically reclaimed memory (Mostly) portable public-domain implementation -- D A Gwyn $Progeny$ This implementation of the PWB library alloca function, which is used to allocate space off the run-time stack so that it is automatically reclaimed upon procedure exit, was inspired by discussions with J. Q. Johnson of Cornell. J.Otto Tennant contributed the Cray support. There are some preprocessor constants that can be defined when compiling for your specific system, for improved efficiency; however, the defaults should be okay. The general concept of this implementation is to keep track of all alloca-allocated blocks, and reclaim any that are found to be deeper in the stack than the current invocation. This heuristic does not reclaim storage as soon as it becomes invalid, but it will do so eventually. As a special case, alloca(0) reclaims storage without allocating any. It is a good idea to use alloca(0) in your main control loop, etc. to force garbage collection. */ #ifdef HAVE_CONFIG_H #include #endif #ifdef emacs #include "blockinput.h" #endif /* If compiling with GCC 2, this file's not needed. */ #if !defined (__GNUC__) || __GNUC__ < 2 /* If someone has defined alloca as a macro, there must be some other way alloca is supposed to work. */ #ifndef alloca #ifdef emacs #ifdef static /* actually, only want this if static is defined as "" -- this is for usg, in which emacs must undefine static in order to make unexec workable */ #ifndef STACK_DIRECTION you lose -- must know STACK_DIRECTION at compile-time #endif /* STACK_DIRECTION undefined */ #endif /* static */ #endif /* emacs */ /* If your stack is a linked list of frames, you have to provide an "address metric" ADDRESS_FUNCTION macro. */ #if defined (CRAY) && defined (CRAY_STACKSEG_END) long i00afunc (); #define ADDRESS_FUNCTION(arg) (char *) i00afunc (&(arg)) #else #define ADDRESS_FUNCTION(arg) &(arg) #endif #if __STDC__ typedef void *pointer; #else typedef char *pointer; #endif #define NULL 0 /* Different portions of Emacs need to call different versions of malloc. The Emacs executable needs alloca to call xmalloc, because ordinary malloc isn't protected from input signals. On the other hand, the utilities in lib-src need alloca to call malloc; some of them are very simple, and don't have an xmalloc routine. Non-Emacs programs expect this to call use xmalloc. Callers below should use malloc. */ #ifndef emacs #define malloc xmalloc #endif extern pointer malloc (); /* Define STACK_DIRECTION if you know the direction of stack growth for your system; otherwise it will be automatically deduced at run-time. STACK_DIRECTION > 0 => grows toward higher addresses STACK_DIRECTION < 0 => grows toward lower addresses STACK_DIRECTION = 0 => direction of growth unknown */ #ifndef STACK_DIRECTION #define STACK_DIRECTION 0 /* Direction unknown. */ #endif #if STACK_DIRECTION != 0 #define STACK_DIR STACK_DIRECTION /* Known at compile-time. */ #else /* STACK_DIRECTION == 0; need run-time code. */ static int stack_dir; /* 1 or -1 once known. */ #define STACK_DIR stack_dir static void find_stack_direction () { static char *addr = NULL; /* Address of first `dummy', once known. */ auto char dummy; /* To get stack address. */ if (addr == NULL) { /* Initial entry. */ addr = ADDRESS_FUNCTION (dummy); find_stack_direction (); /* Recurse once. */ } else { /* Second entry. */ if (ADDRESS_FUNCTION (dummy) > addr) stack_dir = 1; /* Stack grew upward. */ else stack_dir = -1; /* Stack grew downward. */ } } #endif /* STACK_DIRECTION == 0 */ /* An "alloca header" is used to: (a) chain together all alloca'ed blocks; (b) keep track of stack depth. It is very important that sizeof(header) agree with malloc alignment chunk size. The following default should work okay. */ #ifndef ALIGN_SIZE #define ALIGN_SIZE sizeof(double) #endif typedef union hdr { char align[ALIGN_SIZE]; /* To force sizeof(header). */ struct { union hdr *next; /* For chaining headers. */ char *deep; /* For stack depth measure. */ } h; } header; static header *last_alloca_header = NULL; /* -> last alloca header. */ /* Return a pointer to at least SIZE bytes of storage, which will be automatically reclaimed upon exit from the procedure that called alloca. Originally, this space was supposed to be taken from the current stack frame of the caller, but that method cannot be made to work for some implementations of C, for example under Gould's UTX/32. */ pointer alloca (size) unsigned size; { auto char probe; /* Probes stack depth: */ register char *depth = ADDRESS_FUNCTION (probe); #if STACK_DIRECTION == 0 if (STACK_DIR == 0) /* Unknown growth direction. */ find_stack_direction (); #endif /* Reclaim garbage, defined as all alloca'd storage that was allocated from deeper in the stack than currently. */ { register header *hp; /* Traverses linked list. */ #ifdef emacs BLOCK_INPUT; #endif for (hp = last_alloca_header; hp != NULL;) if ((STACK_DIR > 0 && hp->h.deep > depth) || (STACK_DIR < 0 && hp->h.deep < depth)) { register header *np = hp->h.next; free ((pointer) hp); /* Collect garbage. */ hp = np; /* -> next header. */ } else break; /* Rest are not deeper. */ last_alloca_header = hp; /* -> last valid storage. */ #ifdef emacs UNBLOCK_INPUT; #endif } if (size == 0) return NULL; /* No allocation required. */ /* Allocate combined header + user data storage. */ { register pointer new = malloc (sizeof (header) + size); /* Address of header. */ ((header *) new)->h.next = last_alloca_header; ((header *) new)->h.deep = depth; last_alloca_header = (header *) new; /* User storage begins just after header. */ return (pointer) ((char *) new + sizeof (header)); } } #if defined (CRAY) && defined (CRAY_STACKSEG_END) #ifdef DEBUG_I00AFUNC #include #endif #ifndef CRAY_STACK #define CRAY_STACK #ifndef CRAY2 /* Stack structures for CRAY-1, CRAY X-MP, and CRAY Y-MP */ struct stack_control_header { long shgrow:32; /* Number of times stack has grown. */ long shaseg:32; /* Size of increments to stack. */ long shhwm:32; /* High water mark of stack. */ long shsize:32; /* Current size of stack (all segments). */ }; /* The stack segment linkage control information occurs at the high-address end of a stack segment. (The stack grows from low addresses to high addresses.) The initial part of the stack segment linkage control information is 0200 (octal) words. This provides for register storage for the routine which overflows the stack. */ struct stack_segment_linkage { long ss[0200]; /* 0200 overflow words. */ long sssize:32; /* Number of words in this segment. */ long ssbase:32; /* Offset to stack base. */ long:32; long sspseg:32; /* Offset to linkage control of previous segment of stack. */ long:32; long sstcpt:32; /* Pointer to task common address block. */ long sscsnm; /* Private control structure number for microtasking. */ long ssusr1; /* Reserved for user. */ long ssusr2; /* Reserved for user. */ long sstpid; /* Process ID for pid based multi-tasking. */ long ssgvup; /* Pointer to multitasking thread giveup. */ long sscray[7]; /* Reserved for Cray Research. */ long ssa0; long ssa1; long ssa2; long ssa3; long ssa4; long ssa5; long ssa6; long ssa7; long sss0; long sss1; long sss2; long sss3; long sss4; long sss5; long sss6; long sss7; }; #else /* CRAY2 */ /* The following structure defines the vector of words returned by the STKSTAT library routine. */ struct stk_stat { long now; /* Current total stack size. */ long maxc; /* Amount of contiguous space which would be required to satisfy the maximum stack demand to date. */ long high_water; /* Stack high-water mark. */ long overflows; /* Number of stack overflow ($STKOFEN) calls. */ long hits; /* Number of internal buffer hits. */ long extends; /* Number of block extensions. */ long stko_mallocs; /* Block allocations by $STKOFEN. */ long underflows; /* Number of stack underflow calls ($STKRETN). */ long stko_free; /* Number of deallocations by $STKRETN. */ long stkm_free; /* Number of deallocations by $STKMRET. */ long segments; /* Current number of stack segments. */ long maxs; /* Maximum number of stack segments so far. */ long pad_size; /* Stack pad size. */ long current_address; /* Current stack segment address. */ long current_size; /* Current stack segment size. This number is actually corrupted by STKSTAT to include the fifteen word trailer area. */ long initial_address; /* Address of initial segment. */ long initial_size; /* Size of initial segment. */ }; /* The following structure describes the data structure which trails any stack segment. I think that the description in 'asdef' is out of date. I only describe the parts that I am sure about. */ struct stk_trailer { long this_address; /* Address of this block. */ long this_size; /* Size of this block (does not include this trailer). */ long unknown2; long unknown3; long link; /* Address of trailer block of previous segment. */ long unknown5; long unknown6; long unknown7; long unknown8; long unknown9; long unknown10; long unknown11; long unknown12; long unknown13; long unknown14; }; #endif /* CRAY2 */ #endif /* not CRAY_STACK */ #ifdef CRAY2 /* Determine a "stack measure" for an arbitrary ADDRESS. I doubt that "lint" will like this much. */ static long i00afunc (long *address) { struct stk_stat status; struct stk_trailer *trailer; long *block, size; long result = 0; /* We want to iterate through all of the segments. The first step is to get the stack status structure. We could do this more quickly and more directly, perhaps, by referencing the $LM00 common block, but I know that this works. */ STKSTAT (&status); /* Set up the iteration. */ trailer = (struct stk_trailer *) (status.current_address + status.current_size - 15); /* There must be at least one stack segment. Therefore it is a fatal error if "trailer" is null. */ if (trailer == 0) abort (); /* Discard segments that do not contain our argument address. */ while (trailer != 0) { block = (long *) trailer->this_address; size = trailer->this_size; if (block == 0 || size == 0) abort (); trailer = (struct stk_trailer *) trailer->link; if ((block <= address) && (address < (block + size))) break; } /* Set the result to the offset in this segment and add the sizes of all predecessor segments. */ result = address - block; if (trailer == 0) { return result; } do { if (trailer->this_size <= 0) abort (); result += trailer->this_size; trailer = (struct stk_trailer *) trailer->link; } while (trailer != 0); /* We are done. Note that if you present a bogus address (one not in any segment), you will get a different number back, formed from subtracting the address of the first block. This is probably not what you want. */ return (result); } #else /* not CRAY2 */ /* Stack address function for a CRAY-1, CRAY X-MP, or CRAY Y-MP. Determine the number of the cell within the stack, given the address of the cell. The purpose of this routine is to linearize, in some sense, stack addresses for alloca. */ static long i00afunc (long address) { long stkl = 0; long size, pseg, this_segment, stack; long result = 0; struct stack_segment_linkage *ssptr; /* Register B67 contains the address of the end of the current stack segment. If you (as a subprogram) store your registers on the stack and find that you are past the contents of B67, you have overflowed the segment. B67 also points to the stack segment linkage control area, which is what we are really interested in. */ stkl = CRAY_STACKSEG_END (); ssptr = (struct stack_segment_linkage *) stkl; /* If one subtracts 'size' from the end of the segment, one has the address of the first word of the segment. If this is not the first segment, 'pseg' will be nonzero. */ pseg = ssptr->sspseg; size = ssptr->sssize; this_segment = stkl - size; /* It is possible that calling this routine itself caused a stack overflow. Discard stack segments which do not contain the target address. */ while (!(this_segment <= address && address <= stkl)) { #ifdef DEBUG_I00AFUNC fprintf (stderr, "%011o %011o %011o\n", this_segment, address, stkl); #endif if (pseg == 0) break; stkl = stkl - pseg; ssptr = (struct stack_segment_linkage *) stkl; size = ssptr->sssize; pseg = ssptr->sspseg; this_segment = stkl - size; } result = address - this_segment; /* If you subtract pseg from the current end of the stack, you get the address of the previous stack segment's end. This seems a little convoluted to me, but I'll bet you save a cycle somewhere. */ while (pseg != 0) { #ifdef DEBUG_I00AFUNC fprintf (stderr, "%011o %011o\n", pseg, size); #endif stkl = stkl - pseg; ssptr = (struct stack_segment_linkage *) stkl; size = ssptr->sssize; pseg = ssptr->sspseg; result += size; } return (result); } #endif /* not CRAY2 */ #endif /* CRAY */ #endif /* no alloca */ #endif /* not GCC version 2 */ discover-2.1.2/portability/replace-funcs.m40000644002342100234210000000040010266266026017333 0ustar perepere# $Progeny$ AC_DEFUN(PROGENY_REPLACE_FUNCS, [ AC_REPLACE_FUNCS(alloca mkdtemp mkstemp strsep) CPPFLAGS="${CPPFLAGS} -I\${top_srcdir}/portability" libportability="\${top_builddir}/portability/libportability.la" AC_SUBST(libportability) ]) discover-2.1.2/portability/strsep.h0000644002342100234210000000010210266266026016032 0ustar perepere/* $Progeny$ */ char *strsep(char **stringp, const char *delim); discover-2.1.2/portability/mkstemp.c0000644002342100234210000000753610266266026016207 0ustar perepere/* $Progeny$ */ /* $NetBSD: mkstemp.c,v 1.4 1999/09/20 04:39:31 lukem Exp $ */ /* * Copyright (c) 1987, 1993 * The Regents of the University of California. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. */ #include #include #include #include #include #include #include #include #include static int __gettemp(path, doopen, domkdir) char *path; int *doopen; int domkdir; { char *start, *trv; struct stat sbuf; u_int pid; /* To guarantee multiple calls generate unique names even if the file is not created. 676 different possibilities with 7 or more X's, 26 with 6 or less. */ static char xtra[2] = "aa"; int xcnt = 0; /* doopen may be NULL */ pid = getpid(); /* Move to end of path and count trailing X's. */ for (trv = path; *trv; ++trv) if (*trv == 'X') xcnt++; else xcnt = 0; /* Use at least one from xtra. Use 2 if more than 6 X's. */ if (*(trv-1) == 'X') *--trv = xtra[0]; if (xcnt > 6 && *(trv-1) == 'X') *--trv = xtra[1]; /* Set remaining X's to pid digits with 0's to the left. */ while (*--trv == 'X') { *trv = (pid % 10) + '0'; pid /= 10; } /* update xtra for next call. */ if (xtra[0] != 'z') xtra[0]++; else { xtra[0] = 'a'; if (xtra[1] != 'z') xtra[1]++; else xtra[1] = 'a'; } /* * check the target directory; if you have six X's and it * doesn't exist this runs for a *very* long time. */ for (start = trv + 1;; --trv) { if (trv <= path) break; if (*trv == '/') { *trv = '\0'; if (stat(path, &sbuf)) return (0); if (!S_ISDIR(sbuf.st_mode)) { errno = ENOTDIR; return (0); } *trv = '/'; break; } } for (;;) { if (doopen) { if ((*doopen = open(path, O_CREAT|O_EXCL|O_RDWR, 0600)) >= 0) return (1); if (errno != EEXIST) return (0); } else if (domkdir) { if (mkdir(path, 0700) >= 0) return (1); if (errno != EEXIST) return (0); } else if (lstat(path, &sbuf)) return (errno == ENOENT ? 1 : 0); /* tricky little algorithm for backward compatibility */ for (trv = start;;) { if (!*trv) return (0); if (*trv == 'z') *trv++ = 'a'; else { if (isdigit((unsigned char)*trv)) *trv = 'a'; else ++*trv; break; } } } /*NOTREACHED*/ } int mkstemp(path) char *path; { int fd; assert(path != NULL); return (__gettemp(path, &fd, 0) ? fd : -1); } discover-2.1.2/portability/alloca.h0000644002342100234210000000007110266266026015752 0ustar perepere/* $Progeny$ */ extern void *alloca(unsigned int size); discover-2.1.2/portability/strsep.c0000644002342100234210000000414010266266026016033 0ustar perepere/* $Progeny$ */ /* $NetBSD: strsep.c,v 1.13 2002/01/31 22:43:41 tv Exp $ */ /*- * Copyright (c) 1990, 1993 * The Regents of the University of California. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. */ #include #include char * strsep(char **stringp, const char *delim) { char *s; const char *spanp; int c, sc; char *tok; assert(stringp != NULL); assert(delim != NULL); if ((s = *stringp) == NULL) return (NULL); for (tok = s;;) { c = *s++; spanp = delim; do { if ((sc = *spanp++) == c) { if (c == 0) s = NULL; else s[-1] = 0; *stringp = s; return (tok); } } while (sc != 0); } /* NOTREACHED */ } discover-2.1.2/portability/mkdtemp.h0000644002342100234210000000007010266266026016157 0ustar perepere/* $Progeny$ */ extern char * mkdtemp(char *TEMPLATE); discover-2.1.2/lib/0002755002342100234210000000000010655642004012552 5ustar pereperediscover-2.1.2/lib/curl.c0000644002342100234210000000702510266266027013672 0ustar perepere/** * @file curl.c * @brief Curl helper functions */ /* $Progeny$ * * Copyright 2002 Hewlett-Packard Company * * 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 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 * THE COPYRIGHT HOLDER(S) 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. */ #include "config.h" #ifdef HAVE_LIBCURL #include #include #include #include #include #include #include #include #include static CURL *curl_handle = NULL; static char *user_agent = NULL; #define DISCOVER_CURL_NAME "curl" char * _discover_curl_get_user_agent(void) { size_t len; char *curlversion = curl_version(); if (!user_agent) { len = strlen(PACKAGE_NAME); len += 1; /* '/' */ len += strlen(PACKAGE_VERSION); len += 2; /* ' ' '(' */ len += strlen(DISCOVER_TARGET); len += 1; /* ')' */ len += 1; /* ' ' */ len += strlen(DISCOVER_CURL_NAME); len += 1; /* '/' */ len += strlen(curlversion); len += 1; /* '\0' */ user_agent = _discover_xmalloc(len); snprintf(user_agent, len, "%s/%s (%s) %s/%s", PACKAGE_NAME, PACKAGE_VERSION, DISCOVER_TARGET, DISCOVER_CURL_NAME, curlversion); } return user_agent; } CURL * _discover_curl_get_handle(void) { if (!curl_handle) { curl_handle = curl_easy_init(); user_agent = _discover_curl_get_user_agent(); curl_easy_setopt(curl_handle, CURLOPT_USERAGENT, user_agent); } return curl_handle; } void _discover_curl_cleanup(void) { curl_easy_cleanup(curl_handle); curl_handle = NULL; } size_t _discover_curl_xmlparse_callback(void *ptr, size_t size, size_t nmemb, void *stream) { char *data = ptr; XML_Parser parser = stream; size_t len; assert(data != NULL); assert(parser != NULL); len = size * nmemb; if (!XML_Parse(parser, data, len, 0)) { return 0; } return len; } int _discover_load_url(const char *url, XML_Parser parser) { CURL *curl; CURLcode curl_status; assert(url != NULL); curl = _discover_curl_get_handle(); curl_easy_setopt(curl, CURLOPT_URL, url); curl_easy_setopt(curl, CURLOPT_FILE, parser); curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, _discover_curl_xmlparse_callback); curl_status = curl_easy_perform(curl); _discover_curl_cleanup(); return (curl_status == 0); } #endif discover-2.1.2/lib/core.c0000644002342100234210000000675410266266027013665 0ustar perepere/** * @file core.c * @brief Core and miscellaneous routines * * This file provides core routines that don't really fit anyplace * else. There are likely some other routines that really should be in * here. * */ /* $Progeny$ * * Copyright 2002 Progeny Linux Systems, Inc. * Copyright 2002 Hewlett-Packard Company * * 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 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 * THE COPYRIGHT HOLDER(S) 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. */ #include "config.h" #include #include #include #include static char *discover_errlist[] = { N_("Success."), N_("Input/output error."), N_("XML parsing error."), N_("System error."), N_("Disabled bus."), N_("Bus not found."), N_("Data source not found."), N_("Device not found."), N_("Invalid version range."), N_("Not implemented.") }; static int discover_nerr = sizeof(discover_errlist) / sizeof(discover_errlist[0]); /** * @defgroup core Core functionality * @{ */ /** * Allocate and initialize a discover_error_t structure. */ discover_error_t * discover_error_new(void) { discover_error_t *status = _discover_xmalloc(sizeof(discover_error_t)); status->code = 0; status->message = NULL; status->create_message = _discover_create_message; return status; } /** * Allocate memory for a char * variable. * This routine was written for discover_error_t struct. */ void * _discover_create_message(discover_error_t **status, char *message) { if((*status)->message) { free((*status)->message); } (*status)->message = _discover_xmalloc(strlen(message) + 1); strcpy((*status)->message, message); } /** * Free a discover_error_t structure. */ void discover_error_free(discover_error_t *status) { assert(status != NULL); if (status->message != NULL) { free(status->message); } free(status); } /** * Convert an error code to a human-readable string localized * according to the current locale (XXX: no i18n yet). * * @param err Error code to convert */ char * discover_strerror(discover_error_t *err) { assert(err != NULL); assert(err->code >= 0); assert(err->code < discover_nerr); return _(discover_errlist[err->code]); } /** * Get the major version number. */ int discover_major_version(void) { return PACKAGE_MAJOR; } /** * Get the minor version number. */ int discover_minor_version(void) { return PACKAGE_MINOR; } /** * Get the micro version number. */ int discover_micro_version(void) { return PACKAGE_MICRO; } /** @} */ discover-2.1.2/lib/Makefile.in0000644002342100234210000000501010266266027014616 0ustar perepere# $Progeny$ SYSDEPS= @SYSDEPS@ LT_CURRENT= @LT_CURRENT@ LT_REVISION= @LT_REVISION@ LT_AGE= @LT_AGE@ all: libdiscover.la #libdiscover_pic.a ############################################################################### # Build libdiscover_SOURCES= \ core.c \ conf.c \ busclass-xml.c device-xml.c vendor-xml.c \ curl.c \ load-url.c \ device.c \ url-xml.c \ utils.c version-cmp.c stack.c sysdep.c libdiscover_HEADERS= \ ${top_builddir}/include/discover/discover.h \ ${top_builddir}/include/discover/discover-conf.h \ ${top_builddir}/include/discover/discover-xml.h \ ${top_builddir}/include/discover/curl.h \ ${top_builddir}/include/discover/load-url.h \ ${top_builddir}/include/discover/device.h \ ${top_builddir}/include/discover/url-xml.h \ ${top_builddir}/include/discover/utils.h \ ${top_builddir}/include/discover/stack.h \ ${top_builddir}/include/discover/sysdep.h libdiscover_OBJS= \ core.lo \ conf.lo \ busclass-xml.lo device-xml.lo vendor-xml.lo \ curl.lo \ load-url.lo \ device.lo \ url-xml.lo \ utils.lo version-cmp.lo stack.lo sysdep.lo libdiscover_LIBS= ${libportability} ${LIBS} \ ${top_builddir}/${SYSDEPS}/libsysdeps.la libdiscover.la: ${libdiscover_OBJS} ${top_builddir}/${SYSDEPS}/libsysdeps.la ${libportability} ${LTLINK} -rpath ${libdir} \ -version-info ${LT_CURRENT}:${LT_REVISION}:${LT_AGE} \ -o $@ ${libdiscover_OBJS} ${libdiscover_LIBS} ############################################################################### # Clean clean_FILES= discover-config libdiscover.la ${libdiscover_OBJS} #libdiscover_pic.a distclean_FILES= Makefile clean: ${LTCLEAN} ${clean_FILES} distclean: ${LTCLEAN} ${clean_FILES} ${distclean_FILES} maintainer-clean: ${LTCLEAN} ${clean_FILES} ${distclean_FILES} ############################################################################### # Installation install: libdiscover.la #libdiscover_pic.a ${INSTALL_DIR} ${DESTDIR}${libdir} ${INSTALL_LIB} libdiscover.la ${DESTDIR}${libdir}/libdiscover.la # ${INSTALL_LIB} libdiscover_pic.a ${DESTDIR}${libdir}/libdiscover_pic.a uninstall: ${UNINSTALL_LIB} ${DESTDIR}${libdir}/libdiscover.la # ${UNINSTALL_LIB} ${DESTDIR}${libdir}/libdiscover_pic.a ############################################################################### # Distribution DISTFILES= Makefile.in ${libdiscover_SOURCES} distdir: ${DISTFILES} ${top_srcdir}/buildtools/distdir ${distdir}/${_THISDIR_} ${DISTFILES} discover-2.1.2/lib/conf.c0000644002342100234210000004045710513646220013650 0ustar perepere/** * @file conf.c * @brief Configuration handling (including XML parsing) * * Configuration-related data is handled here. This file * is responsible for loading and parsing the XML data read from * the configuration file. This file also holds the routines that are * responsible for altering the URL list as requested by the caller. * */ /* $Progeny$ * * Copyright 2002-2005 Progeny Linux Systems, Inc. * Copyright 2002 Hewlett-Packard Company * * 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 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 * THE COPYRIGHT HOLDER(S) 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. */ #include "config.h" #if HAVE_DIRENT_H #include #define NAMLEN(d) strlen((d)->d_name) #else #define dirent direct #define NAMLEN(d) (d)->d_namlen #if HAVE_SYS_NDIR_H #include #endif #if HAVE_SYS_DIR_H #include #endif #if HAVE_NDIR_H #include #endif #endif #include #include #include #include #include #include #include #include #include /*Busmaps we understand */ static discover_bus_map_t bus_map[] = { { "ata", 0, 0, NULL }, { "pci", 0, 0, NULL }, { "pcmcia", 0, 0, NULL }, { "scsi", 0, 0, NULL }, { "usb", 0, 0, NULL }, { NULL } }; static char * filetype_map[] = { "vendor", "busclass", "device" }; static int conf_loaded = 0; static discover_xml_url_t *pre_urls = NULL; static discover_xml_url_t *post_urls = NULL; static discover_xml_url_t *urls = NULL; /** Describe the current state within the XML structure. */ enum state { START, BUSSCAN, DATA_SOURCES }; /** Define the values for a scannable bus. */ enum scan_flag { SCAN_NEVER, SCAN_DEFAULT }; struct context { enum state state; enum scan_flag scan; discover_error_t *status; int unknown_level; /** How deep are we into unknown XML tags? */ }; static char *known_conf_elements[] = { "bus", "data-source", "busscan", "data-sources", "conffile", NULL }; static bool unknown_conf_element(const XML_Char * const tag) { int i; for (i = 0; known_conf_elements[i] != NULL; i++) { if (strcmp(tag, known_conf_elements[i]) == 0) return false; } return true; } static enum scan_flag get_scan_flag(const XML_Char *attrs[]) { int i; char *scan; assert(attrs != NULL); scan = NULL; for (i = 0; attrs[i]; i+= 2) { if (strcmp(attrs[i], "scan") == 0) { scan = (char *)attrs[i + 1]; } } assert(scan != NULL); if (strcmp(scan, "default") == 0) { return SCAN_DEFAULT; } else { return SCAN_NEVER; } } /** Function that loads the bus map * * The "real" get_bus_map functions don't call conf_load(), which is * important to avoid infinite loops. */ discover_bus_map_t * _real_discover_conf_get_bus_map(discover_bus_t bus, discover_error_t *status) { assert(status != NULL); assert(bus >= 0); if (bus >= BUS_COUNT) { status->code = DISCOVER_EBUSNOTFOUND; } return (discover_bus_map_t *)(bus_map + bus); } /** Internal function that really loads the bus map */ discover_bus_map_t * _real_discover_conf_get_bus_map_by_name(char *name, discover_error_t *status) { discover_bus_t bus; assert(status != NULL); bus = discover_conf_name_to_bus(name, status); if (status->code != 0) { return NULL; } return _real_discover_conf_get_bus_map(bus, status); } static void _real_discover_conf_insert_url(char *url, discover_error_t *status) { discover_xml_url_t *new; assert(url != NULL); assert(status != NULL); status->code = 0; new = discover_xml_url_new(); new->url = _discover_xstrdup(url); new->next = pre_urls; if (pre_urls) { if (pre_urls->last) { new->last = pre_urls->last; } else { new->last = pre_urls; } } else { new->last = NULL; } pre_urls = new; } static void _real_discover_conf_append_url(char *url, discover_error_t *status) { discover_xml_url_t *new; assert(url != NULL); assert(status != NULL); status->code = 0; new = discover_xml_url_new(); new->url = _discover_xstrdup(url); if (post_urls) { if (post_urls->last) { post_urls->last->next = new; } else { post_urls->next = new; } post_urls->last = new; } else { post_urls = new; post_urls->next = NULL; post_urls->last = NULL; } } static void start_element(void *ctx, const XML_Char *name, const XML_Char *attrs[]) { struct context *context = ctx; discover_bus_map_t *busmap; discover_error_t *status; char *busname; char *found_url; int prepend_url; int i; assert(context != NULL); assert(name != NULL); if (unknown_conf_element(name)) { context->unknown_level++; return; } if (context->unknown_level > 0) { return; } status = context->status; switch (context->state) { case START: if (strcmp(name, "busscan") == 0) { context->state = BUSSCAN; context->scan = get_scan_flag(attrs); } else if (strcmp(name, "data-sources") == 0) { context->state = DATA_SOURCES; } break; case BUSSCAN: if (strcmp(name, "bus") == 0) { assert(attrs != NULL); for (i = 0; attrs[i]; i += 2) { if (strcmp(attrs[i], "name") == 0) { busname = (char *)attrs[i + 1]; busmap = _real_discover_conf_get_bus_map_by_name(busname, status); if (status->code != 0) { return; } if (context->scan == SCAN_DEFAULT) { busmap->scan_default = 1; } else { busmap->scan_never = 1; } } } } break; case DATA_SOURCES: if (strcmp(name, "data-source") == 0) { found_url = NULL; prepend_url = 0; for (i = 0; attrs[i]; i += 2) { if (strcmp(attrs[i], "url") == 0) { found_url = (char *)attrs[i + 1]; } else if ((strcmp(attrs[i], "place") == 0) && (strcmp(attrs[i + 1], "before") == 0)) { prepend_url = 1; } } if (found_url != NULL) { if (prepend_url != 0) { _real_discover_conf_insert_url(found_url, status); } else { _real_discover_conf_append_url(found_url, status); } if (status->code != 0) { return; } } } break; } } static void end_element(void *ctx, const XML_Char *name) { struct context *context = ctx; assert(context != NULL); assert(name != NULL); if (unknown_conf_element(name)) { context->unknown_level--; return; } if (context->unknown_level > 0) { return; } switch (context->state) { case START: break; case BUSSCAN: if (strcmp(name, "busscan") == 0) { context->state = START; } break; case DATA_SOURCES: if (strcmp(name, "data-sources") == 0) { context->state = START; } break; } } /** * @defgroup conf Configuration handling * @{ */ /** * Ensure that the configuration file is loaded. Repeated calls to this * function will not change anything, unless you call * discover_conf_free. * * Technically, this function will lie to you if there is no conf * file. Even though no configuration was loaded, repeated calls still * will not change anything. However, if we don't do this and a * config file is created between the time some long-lived caller * first calls discover_conf_load and the time it calls it again, it * will be loaded. This doesn't strike me as idempotent behavior. * So, repeated calls even in this case will not change anything * unless you call discover_conf_free. * * @param status Address in which to place status report */ void discover_conf_load(discover_error_t *status) { XML_Parser parser; struct context context; int load_url_status; int conf_load_error = 0; int conf_parse_error = 0; DIR *confdir; struct dirent *confent; char buf[512]; assert(status != NULL); status->code = 0; if (conf_loaded) { return; } confdir = opendir(SYSCONFDIR "/discover.conf.d"); if (confdir != NULL) { while ((confent = readdir(confdir)) != NULL) { if (strchr(confent->d_name, '.') != NULL) { continue; } context.state = START; context.status = status; context.unknown_level = 0; parser = XML_ParserCreate(NULL); XML_SetElementHandler(parser, start_element, end_element); XML_SetUserData(parser, &context); strcpy(buf, "file:///" SYSCONFDIR "/discover.conf.d/"); strncat(buf, confent->d_name, sizeof(buf)); buf[sizeof(buf) - 1] = '\0'; load_url_status = _discover_load_url(buf, parser); /* start_element may change status. */ if (status->code != 0) { char *message = _discover_xmalloc(256); snprintf(message, 256, "Error parsing configuration file %s", buf); status->create_message(&status, message); XML_ParserFree(parser); conf_parse_error = 1; break; } /* Ignore URL load errors; the conf file is not mandatory. */ if (!load_url_status) { conf_load_error = 1; XML_ParserFree(parser); continue; } if (!XML_Parse(parser, "", 0, 1)) { char *message = _discover_xmalloc(256); snprintf(message, 256, "Error parsing configuration file %s", buf); status->create_message(&status, message); status->code = DISCOVER_EXML; XML_ParserFree(parser); conf_parse_error = 1; break; } XML_ParserFree(parser); } closedir(confdir); if (conf_parse_error) { return; } } if (conf_load_error) { char *message = _discover_xmalloc(256); snprintf(message, 256, "Failed loading one or more configuration files"); status->create_message(&status, message); } conf_loaded = 1; return; } /** * Get the bus enumeration for a bus name. * * @param name Name of the bus * @param status Address in which to place status report */ int discover_conf_name_to_bus(char *name, discover_error_t *status) { int i; for (i = 0; bus_map[i].name; i++) { if (strcmp(bus_map[i].name, name) == 0) { return i; } } status->code = DISCOVER_EBUSNOTFOUND; return -1; } /** * Get the full bus map, listing all buses. * * @param status Address in which to place status report */ discover_bus_map_t * discover_conf_get_full_bus_map(discover_error_t *status) { discover_conf_load(status); return bus_map; } /** * Get the bus map by name for a single bus. * * @param name Name of the bus whose map to get * @param status Address in which to place status report */ discover_bus_map_t * discover_conf_get_bus_map_by_name(char *name, discover_error_t *status) { assert(status != NULL); discover_conf_load(status); if (status->code != 0) { return NULL; } /* * The "real" one won't call conf_load(), which will be useful * elsewhere. */ return _real_discover_conf_get_bus_map_by_name(name, status); } /** * Get the bus map for a single bus. * * @param bus Name of the bus whose map to get * @param status Address in which to place status report */ discover_bus_map_t * discover_conf_get_bus_map(discover_bus_t bus, discover_error_t *status) { assert(status != NULL); assert(bus >= 0); if (bus >= BUS_COUNT) { status->code = DISCOVER_EBUSNOTFOUND; } discover_conf_load(status); if (status->code != 0) { return NULL; } return (discover_bus_map_t *)(bus_map + bus); } /** * Insert the URL specified in url at the head of the list of URLs * where Discover data will be retrieved. * * @param url URL to insert * @param status Address in which to place status report **/ void discover_conf_insert_url(char *url, discover_error_t *status) { assert(status != NULL); discover_conf_load(status); if (status->code != 0) { return; } _real_discover_conf_insert_url(url, status); return; } /** * Append the URL specified in url at the tail of the list of URLs * where Discover data will be retrieved. * * @param url URL to append * @param status Address in which to place status report **/ void discover_conf_append_url(char *url, discover_error_t *status) { assert(status != NULL); discover_conf_load(status); if (status->code != 0) { return; } _real_discover_conf_append_url(url, status); return; } /** * Get the list of URLs from which XML data will be retrieved. * * @param status Address in which to place status report **/ discover_xml_url_t * discover_conf_get_urls(discover_error_t *status) { discover_xml_url_t *new; assert(status != NULL); status->code = 0; if (!urls) { discover_conf_load(status); new = discover_xml_url_new(); new->url = _discover_xstrdup(DISCOVER_DEFAULT_URL); if (pre_urls) { urls = pre_urls; if (urls->last) { urls->last->next = new; } else { urls->next = new; } urls->last = new; } else { urls = new; } if (post_urls) { if (urls->last) { urls->last->next = post_urls; } else { urls->next = post_urls; } if (post_urls->last) { urls->last = post_urls->last; } else { urls->last = post_urls; } } post_urls = pre_urls = NULL; } return urls; } /** * Free configuration data. This is mainly useful so that the next * call to discover_conf_load will reload the configuration data. */ void discover_conf_free(void) { conf_loaded = 0; if (urls) { discover_xml_url_free(urls); urls = NULL; } } /** * Translate an enum bus value into a string. * * @param bus Bus type in enumerated form * */ char * discover_conf_get_bus_name(discover_bus_t bus) { assert(bus >= 0); if (bus >= BUS_COUNT) { return NULL; } return bus_map[bus].name; } /** * Translate an enum filetype value into a string. * * @param filetype Filetype in enumerated form * */ char * discover_conf_get_filetype_name(discover_filetype_t filetype) { if (filetype >= 3) { return NULL; } return filetype_map[filetype]; } /** @} */ /* * Local variables: * c-file-style: "progeny" * indent-tabs-mode: nil * End: */ /* vim: set cin fo=tcroq sw=4 et sts=4 tw=75: */ discover-2.1.2/lib/version-cmp.c0000644002342100234210000003042510266266027015167 0ustar perepere/** * @file version-cmp.c * @brief Version comparison functions * * This file holds the routines needed to process version data in the XML * file. This version data is used to look for information * pertaining to a particular version of the OS/software requiring that * information. */ /* $Progeny$ * * AUTHOR: John R. Daily * * Copyright 2002 Progeny Linux Systems, Inc. * Copyright 2002 Hewlett-Packard Company * * 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 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 * THE COPYRIGHT HOLDER(S) 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. */ /* * This package should include a state machine diagram that * is important to understanding this code. */ #include "config.h" #include #include #include #include #include #include #include /** This probably shouldn't be here; it's bad practice (3.0, right). */ #define MAXBUFLEN 256 /** Version placeholders */ typedef enum range_states { START, OPEN, VERSION1, VERSEP1, PAUSE1, SEPARATOR, I, N, F, VERSION2, VERSEP2, PAUSE2, CLOSE, ERROR } /** This is used as a placeholder while comparing versions of modules. */ range_state; /* * For now, we only understand '.' as a separator, but that could * change. */ static int is_versep_char(char c) { return c == '.'; } /* * Wrapper for isdigit(), in case we want to add more legitimate * version characters later. */ static int is_version_char(char c) { return isdigit(c); } /* * We only handle dot-separated integers. Anything else becomes * subject to interpretation. * * Return values: * 1 - v1 is higher * 0 - v2 is higher * -1 - v1, v2 are equivalent * * The string "inf" represents an undefined upper bound; the equivalent on * the lower bound should be 0. */ static int version_compare(const char *const v1, const char *const v2) { int int1, int2; char *word1, *word2; char *version1, *version2; char *buffer1; char *buffer2; if (strcmp(v1, v2) == 0) { return -1; } if (strcmp(v1, "inf") == 0) { return 1; } if (strcmp(v2, "inf") == 0) { return 0; } buffer1 = _discover_xmalloc(MAXBUFLEN); buffer2 = _discover_xmalloc(MAXBUFLEN); version1 = _discover_xstrdup(v1); version2 = _discover_xstrdup(v2); word1 = strtok_r(version1, ".", &buffer1); word2 = strtok_r(version2, ".", &buffer2); do { sscanf(word1, "%d", &int1); sscanf(word2, "%d", &int2); if (int1 != int2) { return int1 > int2; } word1 = strtok_r(NULL, ".", &buffer1); word2 = strtok_r(NULL, ".", &buffer2); } while(word1 != NULL && word2 != NULL); free(version1); free(version2); if (word2 == NULL && word1 == NULL) { return -1; } if (word2 == NULL) { return 1; } return -0; } static int determine_range(char * range_text, char **upper, int *upper_inclusive, char **lower, int *lower_inclusive, char **next) { char *current = range_text; char c; char last_char = '\0'; char buffer1[MAXBUFLEN]; char *bufptr1 = buffer1; char buffer2[MAXBUFLEN]; char *bufptr2 = buffer2; range_state state = START; range_state last_good_state = START; int first_inclusive = -1, second_inclusive = -1; while(1) { c = *current; switch(state) { case START: if (isspace(c)) { state = START; } else if (c == '(' || c == '[') { state = OPEN; } else { last_good_state = state; state = ERROR; } break; case OPEN: if (last_char == '[') { first_inclusive = 1; } else { first_inclusive = 0; } if (isspace(c)) { state = OPEN; } else if (is_version_char(c)) { state = VERSION1; } else { last_good_state = state; state = ERROR; } break; case VERSION1: if (bufptr1 - buffer1 > 254) { last_good_state = state; state = ERROR; break; } *bufptr1 = last_char; bufptr1++; if (isspace(c) || c == ',') { *bufptr1 = '\0'; if (c == ',') { state = SEPARATOR; } else { state = PAUSE1; } } else if (is_version_char(c)) { state = VERSION1; } else if (is_versep_char(c)) { state = VERSEP1; } else { last_good_state = VERSION1; state = ERROR; } break; case VERSEP1: if (bufptr1 - buffer1 > 254) { last_good_state = state; state = ERROR; break; } *bufptr1 = last_char; bufptr1++; if (is_version_char(c)) { state = VERSION1; } else { last_good_state = VERSION1; state = ERROR; } break; case PAUSE1: if (isspace(c)) { state = PAUSE1; } else if (c == ',') { state = SEPARATOR; } else { last_good_state = PAUSE1; state = ERROR; } break; case SEPARATOR: if (isspace(c)) { state = SEPARATOR; } else if (is_version_char(c)) { state = VERSION2; } else if (c == 'i') { state = I; } else { last_good_state = SEPARATOR; state = ERROR; } break; case I: if (c == 'n') { state = N; } else { last_good_state = state; state = ERROR; } break; case N: if (c == 'f') { state = F; } else { last_good_state = state; state = ERROR; } break; case F: strcpy(bufptr2, "inf"); if (isspace(c)) { state = PAUSE2; } else if (c == ')' || c == ']') { state = CLOSE; } else { last_good_state = state; state = ERROR; } break; case VERSION2: if (bufptr2 - buffer2 > 254) { last_good_state = state; state = ERROR; break; } *bufptr2 = last_char; bufptr2++; if (isspace(c) || c == ')' || c == ']') { *bufptr2 = '\0'; if (c == ')' || c == ']') { state = CLOSE; } else { state = PAUSE2; } } else if (is_version_char(c)) { state = VERSION2; } else if (is_versep_char(c)) { state = VERSEP2; } else { last_good_state = VERSION2; state = ERROR; } break; case VERSEP2: if (bufptr2 - buffer2 > 254) { last_good_state = state; state = ERROR; break; } *bufptr2 = last_char; bufptr2++; if (is_version_char(c)) { state = VERSION2; } else { last_good_state = VERSION2; state = ERROR; } break; case PAUSE2: if (isspace(c)) { state = PAUSE2; } else if (c == ')' || c == ']') { state = CLOSE; } else { last_good_state = PAUSE2; state = ERROR; } break; case CLOSE: *next = current; if (last_char == ')') { second_inclusive = 0; } else if (last_char == ']') { second_inclusive = 1; } if (version_compare(buffer1, buffer2) == 1) { *upper = _discover_xmalloc(bufptr1 - buffer1 + 1); strcpy(*upper, buffer1); *upper_inclusive = first_inclusive; *lower = _discover_xmalloc(bufptr2 - buffer2 + 1); strcpy(*lower, buffer2); *lower_inclusive = second_inclusive; } else { *lower = _discover_xmalloc(bufptr1 - buffer1 + 1); strcpy(*lower, buffer1); *lower_inclusive = first_inclusive; *upper = _discover_xmalloc(bufptr2 - buffer2 + 1); strcpy(*upper, buffer2); *upper_inclusive = second_inclusive; } /* EXIT POINT */ return 1; default: state = ERROR; last_good_state = -1; break; } if (state == ERROR) { /* Do something. */ return 0; } /* * We don't care about recording spaces; let's simplify by not * doing so, in case we'd be missing something valuable. */ if (!isspace(*current)) { last_char = *current; } current++; } } /** * @defgroup version_cmp Version comparison * @{ */ /** * Compare a version number against a version range, returning 1 if * the number matches the range or 0 if not. * * @param range Range to compare against version * @param version Version to compare against range * @param status Address in which to place status report */ int discover_xml_version_cmp(char *range, char *version, discover_error_t *status) { char *upper, *lower; int upper_inclusive, lower_inclusive; char *next_range; int range_count = 0; assert(range != NULL); assert(version != NULL); assert(status != NULL); next_range = range; while(*next_range != '\0') { range_count++; if (determine_range(next_range, &upper, &upper_inclusive, &lower, &lower_inclusive, &next_range)) { /* * First test: Does this version match the upper end of the * range exactly? If so, is the upper end of the range * inclusive? * * Second test: Does this version match the lower end of the * range? If so, is the lower end inclusive? * * Finally, is the version higher than the lower end, and lower * then the upper end? */ if (version_compare(version, upper) == -1 && upper_inclusive) { return range_count; } else if (version_compare(version, lower) == -1 && lower_inclusive) { return range_count; } else if (version_compare(version, lower) > 0 && version_compare(upper, version) > 0) { return range_count; } } else { status->code = DISCOVER_EBADVERSION; return -1; } } return 0; } /** @} */ discover-2.1.2/lib/busclass-xml.c0000644002342100234210000002301610266266027015340 0ustar perepere/** * @file busclass-xml.c * @brief Busclass XML data file parsing * * This file contains the routines needed to properly process the busclass * XML data. This file is responsible for handling URLs and actually * storing the XML data during the parsing process. */ /* $Progeny$ * * AUTHOR: John R. Daily * * Copyright 2002 Progeny Linux Systems, Inc. * Copyright 2002 Hewlett-Packard Company * * 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 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 * THE COPYRIGHT HOLDER(S) 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. */ #include "config.h" #include #include #include #include #include #include #include #include #include #include /** A list member describing a busclass */ struct discover_xml_busclass { char *id; char *name; discover_xml_busclass_t *next; }; static discover_xml_busclass_t *busclasses[BUS_COUNT]; struct context { discover_xml_busclass_t **blist; int unknown_level; /* How deep are we into unknown XML tags? */ }; static char *known_bus_elements[] = { "busclass", "busclass_list", NULL }; static bool unknown_bus_element(const XML_Char * const tag) { int i; for (i = 0; known_bus_elements[i] != NULL; i++) { if (strcmp(tag, known_bus_elements[i]) == 0) return false; } return true; } static void start_element(void *ctx, const XML_Char *name, const XML_Char *attrs[]) { struct context *context = ctx; int i; char *vid, *vname; discover_xml_busclass_t *next, **blist; assert(context != NULL); assert(name != NULL); assert(attrs != NULL); if (unknown_bus_element(name)) { context->unknown_level++; return; } if (context->unknown_level > 0) { return; } if (strcmp(name, "busclass") == 0) { vid = vname = NULL; for (i = 0; attrs[i]; i += 2) { if (strcmp(attrs[i], "id") == 0) { vid = (char *) attrs[i + 1]; } else if (strcmp(attrs[i], "name") == 0) { vname = (char *) attrs[i + 1]; } } assert(vid != NULL); assert(vname != NULL); blist = context->blist; next = *blist; *blist = discover_xml_busclass_new(); (*blist)->id = _discover_xstrdup(vid); (*blist)->name = _discover_xstrdup(vname); (*blist)->next = next; } } static void end_element(void *ctx, const XML_Char *name) { struct context *context = ctx; assert(context != NULL); assert(name != NULL); if (unknown_bus_element(name)) { context->unknown_level--; return; } if (context->unknown_level > 0) { return; } /* * We don't have any end tags to worry about, but if we did, they * would be handled here. */ } /** * @defgroup busclass_xml Busclass list XML parsing * @{ */ /** * Merge new busclasses into a list. * * @param blist Address of the list to merge busclasses into * @param url URL of the document defining the busclasses * @param status Address in which to place status report */ /* Sshh! Don't tell, but this doesn't actually do any merging at all. * Instead, it simply inserts newer entries at the front of the list, * meaning that busclass info found later supersedes info found earlier. * This gives the illusion of merging, but potentially wastes memory * with duplicates. */ void discover_xml_merge_busclass_url(discover_xml_busclass_t **blist, char *url, discover_error_t *status) { XML_Parser parser; struct context context; assert(url != NULL); assert(status != NULL); status->code = 0; context.blist = blist; context.unknown_level = 0; parser = XML_ParserCreate(NULL); XML_SetElementHandler(parser, start_element, end_element); XML_SetUserData(parser, &context); if (!_discover_load_url(url, parser)) { XML_ParserFree(parser); status->code = DISCOVER_EIO; return; } if (!XML_Parse(parser, "", 0, 1)) { XML_ParserFree(parser); status->code = DISCOVER_EXML; return; } XML_ParserFree(parser); return; } /** * Get the list of busclasses by bus type. * * @param bus Type of bus for which busclasses are required * @param status Address in which to place status report */ discover_xml_busclass_t * discover_xml_get_busclasses(discover_bus_t bus, discover_error_t *status) { discover_xml_url_t *urls, *i; char *url; assert(status != NULL); status->code = 0; if (!busclasses[bus]) { urls = discover_xml_get_data_urls(bus, BUSCLASS_TYPE, status); if (status->code != 0) { return NULL; } for (i = urls; i; i = discover_xml_url_get_next(i)) { url = discover_xml_url_get_url(i); discover_xml_merge_busclass_url(&(busclasses[bus]), url, status); if (status->code != 0) { return NULL; } } } return busclasses[bus]; } /** * Free the list of busclasses. */ void discover_xml_free_busclasses(void) { int i; for (i = 0; i < BUS_COUNT; i++) { discover_xml_busclass_free(busclasses[i]); busclasses[i] = NULL; } } /** * Return the device class corresponding to a busclass. * * @param busclass Busclass to look up * @param busclasses List of busclasses to search */ char * discover_xml_busclass_to_class(char *busclass, discover_xml_busclass_t *busclasses) { char *result; assert(busclass != NULL); assert(busclasses != NULL); result = NULL; for (; busclasses; busclasses = busclasses->next) { if (strcmp(busclass, busclasses->id) == 0) { result = busclasses->name; break; } } return result; } /** * Compare a busclass to a device class, returning the same kind of * value returned by strcmp(3). Note that this function has a special * case for the class 'all'; it is considered equal to all busclasses. * * @param busclass Busclass to compare * @param discover_class Device class to compare * @param busclasses List of busclasses to search */ int discover_xml_busclass_cmp(char *busclass, char *discover_class, discover_xml_busclass_t *busclasses) { char *found_class_name = NULL; assert(busclass != NULL); assert(discover_class != NULL); assert(busclasses != NULL); if (strcmp(discover_class, "all") == 0) { return 0; } found_class_name = discover_xml_busclass_to_class(busclass, busclasses); /* * If the busclass database doesn't know about this device class, we * can't make any valid comparison. */ if (found_class_name == NULL) { return -1; } return strcmp(found_class_name, discover_class); } /** * Get the id member of busclass. * * @param busclass */ char * discover_xml_busclass_get_id(discover_xml_busclass_t *busclass) { assert(busclass != NULL); return busclass->id; } /** * Get the name member of busclass. * * @param busclass */ char * discover_xml_busclass_get_name(discover_xml_busclass_t *busclass) { assert(busclass != NULL); return busclass->name; } /** * Get the next member of busclass (used for traversing lists of * busclasses). */ discover_xml_busclass_t * discover_xml_busclass_get_next(discover_xml_busclass_t *busclass) { assert(busclass != NULL); return busclass->next; } /** * Create and initialize a new discover_xml_busclass_t object. */ discover_xml_busclass_t * discover_xml_busclass_new(void) { discover_xml_busclass_t *new; new = _discover_xmalloc(sizeof(discover_xml_busclass_t)); new->id = NULL; new->name = NULL; new->next = NULL; return new; } /** * Free the busclass or list of busclasses. * * @param busclasses Busclass or list of busclasses to free */ void discover_xml_busclass_free(discover_xml_busclass_t *busclasses) { discover_xml_busclass_t *busclass, *last; last = NULL; for (busclass = busclasses; busclass; busclass = busclass->next) { if (busclass->id) { free(busclass->id); } if (busclass->name) { free(busclass->name); } if (last) { free(last); } last = busclass; } if (last) { free(last); } } /** @} */ /* * Local variables: * c-file-style: "progeny" * indent-tabs-mode: nil * End: */ /* vim: set cin fo=tcroq sw=4 et sts=4 tw=75: */ discover-2.1.2/lib/device-xml.c0000644002342100234210000004404210272036674014762 0ustar perepere/** * @file device-xml.c * @brief Device XML data file parsing * * This file contains the routines needed to properly process the device * XML data. This file is responsible for handling URLs and * storing the XML data during the parsing process. */ /* $Progeny$ * * AUTHOR: John R. Daily * * Copyright 2002 Progeny Linux Systems, Inc. * Copyright 2002 Hewlett-Packard Company * * 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 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 * THE COPYRIGHT HOLDER(S) 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. */ /* * This is slightly different than busclass-xml.c and vendor-xml.c. * With those, the data that interests us is actually in the * XML files, so the structures built by those modules are the final * structures. * With the devices, the list we build here is only an intermediate * place to store the discover_device structures. When we probe the * bus, we will move the discover_device structures for which * we have found corresponding hardware from this list to the final * one. (That action happens in the modules for the individual buses, * such as pci.c.) * Whereas busclass-xml.c and vendor-xml.c create pci_busclasses and * pci_vendors lists, respectively, this module creates * pci_devices_xml. Objects are moved from this list to the * pci_devices list in pci.c, and the rest are freed. */ #include "config.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include /** Length (including terminating null) of model and vendor ID strings */ #define IDLEN 5 static discover_device_t *devices_xml[BUS_COUNT]; /** Representative of the state within the XML data */ enum state { START, FINISH, DEVICE, DATA }; struct context { enum state state; discover_xml_busclass_t *busclasses; discover_xml_vendor_t *vendors; /* Device stuff */ discover_device_t **dhead; discover_device_t *dtail; /* data stuff */ discover_xml_stack *stack; /* discover_data_t *data_current; discover_data_t *data_parent; */ int nesting; int last_nesting; int unknown_level; /* How deep are we into unknown XML tags? */ }; static char *known_device_elements[] = { "data", "device", "device_list", NULL }; static void get_data_failure_handler(discover_error_t **status, char *url) { char *errmsg; static int maxurlsize = 1024; /* If your URL is longer than this, you've got problems */ if((*status)->code == DISCOVER_EIO) { errmsg = _discover_xmalloc(maxurlsize + 1); snprintf(errmsg, maxurlsize, "Resource not found: %s", url); (*status)->create_message(status, errmsg); free(errmsg); } else { if (errno) { errmsg = _discover_xmalloc(maxurlsize + 1); snprintf(errmsg, maxurlsize, "Problem loading resource: %s: %s", strerror(errno), url); (*status)->create_message(status, errmsg); free(errmsg); } else { (*status)->create_message(status, "Unknown failure from system-dependent libraries"); } } } static bool unknown_device_element(const XML_Char * const tag) { int i; for (i = 0; known_device_elements[i] != NULL; i++) { if (strcmp(tag, known_device_elements[i]) == 0) return false; } return true; } static void create_device(struct context *context, const XML_Char *attrs[]) { int i; char *busclass, *model_id, *model_name, *vendor_id, *vendor_name; discover_device_t *new_device; assert(context != NULL); assert(attrs != NULL); busclass = model_id = model_name = vendor_id = NULL; for (i = 0; attrs[i]; i += 2) { if (strcmp(attrs[i], "busclass") == 0) { busclass = (char *)attrs[i + 1]; } else if (strcmp(attrs[i], "model") == 0) { model_id = (char *)attrs[i + 1]; } else if (strcmp(attrs[i], "model_name") == 0) { model_name = (char *)attrs[i + 1]; } else if (strcmp(attrs[i], "vendor") == 0) { vendor_id = (char *)attrs[i + 1]; } } assert(model_id != NULL); assert(model_name != NULL); assert(vendor_id != NULL); vendor_name = discover_xml_vendor_id2name(context->vendors, vendor_id); assert(vendor_name != NULL); context->stack = discover_xml_stack_new(); new_device = discover_device_new(); new_device->busclasses = context->busclasses; new_device->vendors = context->vendors; if (busclass) { new_device->busclass = _discover_xstrdup(busclass); } else { new_device->busclass = NULL; } new_device->model_id = _discover_xstrdup(model_id); new_device->model_name = _discover_xstrdup(model_name); new_device->vendor_id = _discover_xstrdup(vendor_id); new_device->vendor_name = _discover_xstrdup(vendor_name); new_device->data = NULL; new_device->next = NULL; if (*(context->dhead)) { context->dtail->next = new_device; context->dtail = new_device; } else { *(context->dhead) = new_device; context->dtail = new_device; } } static void create_data(struct context *context, const XML_Char *attrs[]) { discover_data_t *new_data, *current_data; discover_xml_stack *stack; int i; char *discover_class, *version; assert(context != NULL); assert(attrs != NULL); new_data = discover_data_new(); new_data->text = NULL; new_data->next = new_data->prev = new_data->child = NULL; discover_class = version = NULL; for (i = 0; attrs[i]; i += 2) { if (strcmp(attrs[i], "class") == 0) { discover_class = (char *)attrs[i + 1]; } else if (strcmp(attrs[i], "version") == 0) { version = (char *)attrs[i + 1]; } } assert(discover_class != NULL); new_data->discover_class = _discover_xstrdup(discover_class); if (version) { new_data->version = _discover_xstrdup(version); } stack = context->stack; assert(stack != NULL); current_data = discover_xml_stack_get(stack); if(current_data) { /* The first time through this, we have no data. */ /* First element of the list */ if(stack->depth > context->nesting) { discover_xml_stack_pop(&stack); //current_data = discover_xml_stack_pop(&stack); new_data->prev = current_data; new_data->prev->next = new_data; if(context->nesting) { new_data->parent = discover_xml_stack_getbynum(stack, context->nesting); } } else { /* Brand new child */ new_data->parent = current_data; new_data->parent->child = new_data; } } discover_xml_stack_push(&stack, new_data); context->stack = stack; } static void start_element(void *ctx, const XML_Char *name, const XML_Char *attrs[]) { struct context *context = ctx; assert(context != NULL); assert(name != NULL); assert(attrs != NULL); if (unknown_device_element(name)) { context->unknown_level++; return; } if (context->unknown_level > 0) { return; } switch (context->state) { case FINISH: return; case START: if (strcmp(name, "device") == 0) { context->state = DEVICE; create_device(context, attrs); } break; case DEVICE: if (strcmp(name, "data") == 0) { context->nesting = context->last_nesting = 0; context->state = DATA; } /* Falls through */ case DATA: if (strcmp(name, "data") == 0) { create_data(context, attrs); context->last_nesting = context->nesting; context->nesting++; } break; } } static void end_element(void *ctx, const XML_Char *name) { struct context *context = ctx; discover_device_t *device; discover_data_t *current_data; discover_xml_stack *stack; assert(context != NULL); assert(name != NULL); if (unknown_device_element(name)) { context->unknown_level--; return; } if (context->unknown_level > 0) { return; } switch (context->state) { case FINISH: case START: break; case DEVICE: context->state = START; device = context->dtail; stack = context->stack; current_data = discover_xml_stack_get(stack); device->data = discover_data_get_first(current_data); while (discover_xml_stack_pop(&(context->stack))) ; discover_xml_stack_destroy(context->stack); context->stack = NULL; break; case DATA: context->nesting--; stack = context->stack; if((context->nesting + 2) <= stack->depth) { while((context->nesting + 1 < stack->depth) && stack->depth > 1) { discover_xml_stack_pop(&stack); } context->stack = stack; } if (context->nesting == 0) { context->state = DEVICE; } } } static void cdata(void *ctx, const XML_Char *data, int len) { struct context *context = ctx; size_t old_len; discover_data_t *current_data; assert(context != NULL); assert(data != NULL); if (context->state == DATA && context->nesting > context->last_nesting) { assert(context->stack != NULL); current_data = context->stack->data; assert(current_data != NULL); if (!current_data->text) { old_len = 0; current_data->text = _discover_xmalloc(1); current_data->text[0] = '\0'; } else { old_len = strlen(current_data->text); } current_data->text = _discover_xrealloc(current_data->text, old_len + len + 1); strncat(current_data->text, (const char *)data, (unsigned int)len); } } /** * @defgroup device_xml Device list XML parsing * @{ */ /** * Merge new busclasses into a list. * * @param dlist Address of the list to merge busclasses into * @param url URL of the document defining the busclasses * @param busclasses List of busclasses for this bus * @param vendors List of vendors for this bus * @param status Address in which to place status report */ /* Sshh! Don't tell, but this doesn't actually do any merging at all. * Instead, it simply inserts newer entries at the front of the list, * meaning that device info found later supersedes info found earlier. * This gives the illusion of merging, but potentially wastes memory * with duplicates. */ void discover_xml_merge_device_url(discover_device_t **dlist, char *url, discover_xml_busclass_t *busclasses, discover_xml_vendor_t *vendors, discover_error_t *status) { XML_Parser parser; struct context context; assert(url != NULL); assert(busclasses != NULL); assert(vendors != NULL); assert(status != NULL); context.state = START; context.dhead = dlist; if (*(context.dhead)) { discover_device_t *next = *(context.dhead); while(next->next != NULL) { next = next->next; } context.dtail = next; } else { context.dtail = NULL; } context.busclasses = busclasses; context.vendors = vendors; context.unknown_level = 0; context.stack = NULL; parser = XML_ParserCreate(NULL); XML_SetElementHandler(parser, start_element, end_element); XML_SetCharacterDataHandler(parser, cdata); XML_SetUserData(parser, &context); if (!_discover_load_url(url, parser)) { XML_ParserFree(parser); status->code = DISCOVER_EIO; return; } if (!XML_Parse(parser, "", 0, 1)) { XML_ParserFree(parser); status->code = DISCOVER_EXML; return; } XML_ParserFree(parser); return; } /** * Get the list of devices for the required bus. * * @param bus Bus for which the devices are requested * @param status Address in which to place status report */ discover_device_t * discover_xml_get_devices(discover_bus_t bus, discover_error_t *status) { discover_xml_url_t *urls, *i; char *url; discover_xml_busclass_t *busclasses; discover_xml_vendor_t *vendors; assert(status != NULL); status->code = 0; if (!devices_xml[bus]) { urls = discover_xml_get_data_urls(bus, DEVICE, status); if (status->code != 0) { return NULL; } busclasses = discover_xml_get_busclasses(bus, status); if (status->code != 0) { return NULL; } vendors = discover_xml_get_vendors(bus, status); if (status->code != 0) { return NULL; } for (i = urls; i; i = discover_xml_url_get_next(i)) { url = discover_xml_url_get_url(i); discover_xml_merge_device_url(&(devices_xml[bus]), url, busclasses, vendors, status); if (status->code != 0) { get_data_failure_handler(&status, url); } } } return devices_xml[bus]; } /** * Free the list of XML devices. */ void discover_xml_free_devices(void) { int i; for (i = 0; i < BUS_COUNT; i++) { discover_device_free(devices_xml[i], 1); devices_xml[i] = NULL; } } /** * Find the first device in xml_devices matching target_vendor and/or * target_model. (One or both can be specified, but not zero.) * * @param xml_devices List of devices to search * @param target_vendor Vendor for which to search * @param target_model Model for which to search * @param status Address in which to place status report */ discover_device_t * discover_xml_find_device(discover_device_t *xml_devices, char *target_vendor, char *target_model, discover_error_t *status) { discover_device_t *device; assert(target_vendor || target_model); for (device = xml_devices; device; device = device->next) { if (target_vendor && target_model) { if ((strcmp(device->model_id, target_model) == 0 || strcmp(device->model_id, "default") == 0) && strcmp(device->vendor_id, target_vendor) == 0) { break; } } else if (target_vendor) { if (strcmp(device->vendor_id, target_vendor) == 0) { break; } } else { /* We only have target_model. */ if ((strcmp(device->model_id, target_model) == 0)) { break; } } } return device; } /** * Find the next device in xml_devices matching target_vendor and/or * target_model. (One or both can be specified, but not zero.) * * The first device in the list is assumed to have been processed, * so we simply call discover_xml_find_device() on the next pointer. * * @param xml_devices List of devices to search * @param target_vendor Vendor for which to search * @param target_model Model for which to search * @param status Address in which to place status report */ discover_device_t * discover_xml_find_next_device(discover_device_t *xml_devices, char *target_vendor, char *target_model, discover_error_t *status) { return discover_xml_find_device(xml_devices->next, target_vendor, target_model, status); } /** * Find and duplicate all devices in xml_devices matching target_vendor * and/or target_model. (One or both can be specified, but not zero.) * * @param xml_devices List of devices to search * @param target_vendor Vendor for which to search * @param target_model Model for which to search * @param status Address in which to place status report */ discover_device_t * discover_xml_get_matching_devices(discover_device_t *xml_devices, char *target_vendor, char *target_model, discover_error_t *status) { discover_device_t *device, *last, *copy; discover_device_t *head_device = NULL; device = discover_xml_find_device(xml_devices, target_vendor, target_model, status); last = NULL; while(device) { copy = discover_device_new(); discover_device_copy(device, copy); copy->next = NULL; copy->extra = NULL; if (last) { last->next = copy; } else { head_device = copy; } last = copy; device = discover_xml_find_next_device(device, target_vendor, target_model, status); } return head_device; } /** @} */ /* * Local variables: * c-file-style: "progeny" * indent-tabs-mode: nil * End: */ /* vim: set cin fo=tcroq sw=4 et sts=4 tw=75: */ discover-2.1.2/lib/sysdep.c0000644002342100234210000002146410513646220014227 0ustar perepere/** * @file sysdep.c * @brief Interact with system dependencies * * This file holds the routines that interact with the system-dependent * interface. This file essentially bridges the gap between the XML data * and the hardware contained within the machine. */ /* $Progeny$ * * AUTHOR: John R. Daily * * Copyright 2002 Progeny Linux Systems, Inc. * * 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 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 * THE COPYRIGHT HOLDER(S) 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. */ #include #include #include #include #include #include #include #include #include /** Function pointers */ typedef discover_sysdep_data_t *(raw_sysdep_function_t)(void); static raw_sysdep_function_t *raw_map[] = { _discover_get_ata_raw, _discover_get_pci_raw, _discover_get_pcmcia_raw, _discover_get_scsi_raw, _discover_get_usb_raw }; /* * Utility functions */ /** Create a new instance of sysdep data. */ discover_sysdep_data_t * _discover_sysdep_data_new(void) { discover_sysdep_data_t *node = _discover_xmalloc(sizeof(discover_sysdep_data_t)); node->busclass = NULL; node->vendor = NULL; node->model = NULL; node->data = NULL; node->next = NULL; return node; } /** Create a new instance of sysdep device data. */ discover_sysdep_device_data_t * _discover_sysdep_device_data_new(void) { discover_sysdep_device_data_t *node = _discover_xmalloc(sizeof(discover_sysdep_device_data_t)); node->path = NULL; node->value = NULL; node->next = NULL; return node; } /** Release the memory that the sysdep data was holding. */ void _discover_free_sysdep_data(discover_sysdep_data_t *head) { discover_sysdep_data_t *node; while (head) { node = head->next; if (head->vendor) { free(head->vendor); } if (head->model) { free(head->model); } if (head->busclass) { free(head->busclass); } if (head->data) { _discover_free_sysdep_device_data(head->data); } free(head); head = node; } } /** Release memory being held by device-specific data. */ void _discover_free_sysdep_device_data(discover_sysdep_device_data_t *head) { discover_sysdep_device_data_t *node; while (head) { node = head->next; if (head->path) { free(head->path); } if (head->value) { free(head->value); } free(head); head = node; } } /** Convert sysdep device data into discover data under the "device" node. */ discover_data_t * _discover_convert_device_data(discover_sysdep_device_data_t *head) { discover_data_t *data_head, *data_current, *data_new; discover_sysdep_device_data_t *node; char *buffer, *path, *token; /** Set up the toplevel data node. */ data_head = discover_data_new(); data_head->discover_class = _discover_xstrdup("device"); /* * Step through the device data nodes returned by the sysdeps. * Each node will have a path relative to the "device" toplevel, * separated by slashes, as well as a value. We need to set * each one up to look like it came from the XML data. */ for (node = head; node; node = head->next) { /** Set up the first parent below "device" for this node. */ data_current = NULL; /** Set up the token parser. */ path = _discover_xstrdup(node->path); buffer = _discover_xstrdup(node->path); /** Split the node path by the path separator. */ for (token = strtok_r(path, "/", &buffer); token; token = strtok_r(NULL, "/", &buffer)) { /** Set up the new data node. */ data_new = discover_data_new(); data_new->discover_class = _discover_xstrdup(token); /** Does this node have a predecessor in the path? */ if (data_current == NULL) { /** No; make it a child of the "device" node. */ if (data_head->child == NULL) { data_head->child = data_new; } else { data_current = data_head->child; while (data_current->next) data_current = data_current->next; data_current->next = data_new; } } else { /** Yes; make it a child of the previous. */ data_current->child = data_new; data_new->parent = data_current; } data_current = data_new; } /* * We've gotten to the very last path element; set the * node's value here. */ data_current->text = _discover_xstrdup(node->value); /** Clean up after the token parser. */ free(path); free(buffer); } return data_head; } /* * Functions that access the sysdeps */ static discover_device_t *devices[BUS_COUNT]; discover_device_t * discover_get_devices(discover_bus_t bus, discover_error_t *status) { discover_device_t *device, *last, *tmp, *i; discover_device_t *xml_devices; discover_bus_map_t *busmap; discover_sysdep_data_t *head, *node; discover_data_t *data_head, *data_node; assert(status); status->code = DISCOVER_SUCCESS; device = last = NULL; busmap = discover_conf_get_bus_map(bus, status); if (status->code != 0) { return NULL; } if (busmap->scan_never) { status->code = DISCOVER_EBUSDISABLED; return NULL; } if (devices[bus]) { return devices[bus]; } xml_devices = discover_xml_get_devices(bus, status); if (!xml_devices) { return NULL; } /* * Allow overrides of this function. */ if (busmap->get_raw) { head = node = busmap->get_raw(); } else { head = node = raw_map[bus](); } while (node) { /* * The variable names are ambiguous: * node - Hardware data retrieved from the OS * device - Matching hardware data from our database */ device = discover_xml_get_matching_devices(xml_devices, node->vendor, node->model, status); if (!device) { device = discover_device_new(); device->model_id = strdup(node->model); device->vendor_id = strdup(node->vendor); } /* * If we get a busclass from the hardware, treat it as * canonical. */ if (node->busclass != NULL) { if (device->busclass != NULL) { free(device->busclass); } device->busclass = strdup(node->busclass); } /* Add sysdep data to the data nodes. */ if (node->data != NULL) { data_head = _discover_convert_device_data(node->data); if (data_head != NULL) { for (data_node = data_head; data_node->next != NULL; data_node = data_node->next) ; data_node->next = device->data; device->data = data_head; } } if (last) { /* walk to the end of the tree */ for (; last->next; last = last->next) ; last->next = device; last = device; } else { devices[bus] = last = device; } node = node->next; } _discover_free_sysdep_data(head); return devices[bus]; } void discover_free_devices(void) { int i; for (i = 0; i < BUS_COUNT; i++) { discover_device_free(devices[i], 0); devices[i] = NULL; } } /* * Local variables: * c-file-style: "progeny" * indent-tabs-mode: nil * End: */ /* vim: set cin fo=tcroq sw=4 et sts=4 tw=75: */ discover-2.1.2/lib/utils.c0000644002342100234210000000447010266266027014066 0ustar perepere/** * @file utils.c * @brief Helper utilities */ /* $Progeny$ * * Copyright 2002 Hewlett-Packard Company * Copyright 2002 Progeny Linux Systems, Inc. * * 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 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 * THE COPYRIGHT HOLDER(S) 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. * */ #include "config.h" #include #include #include #include #include #include #include #include #include void * _discover_xmalloc(size_t size) { void *result; /* * SUSv3 leaves the behavior when size == 0 undefined, so we'll protect * against that scenario here. */ assert(size > 0); result = malloc(size); if (!result) { perror("malloc"); exit(EX_OSERR); } return result; } void * _discover_xrealloc(void *ptr, size_t size) { void *result; assert(size >= 0); result = realloc(ptr, size); if (!result) { perror("realloc"); exit(EX_OSERR); } return result; } char * _discover_xstrdup(const char *s) { size_t len; char *copy; assert(s != NULL); len = strlen(s) + 1; copy = _discover_xmalloc(len); memcpy(copy, s, len); return copy; } /* * Local variables: * c-file-style: "progeny" * indent-tabs-mode: nil * End: */ /* vim: set cin fo=tcroq sw=4 et sts=4 tw=75: */ discover-2.1.2/lib/vendor-xml.c0000644002342100234210000002047210266266027015021 0ustar perepere/** * @file vendor-xml.c * @brief Vendor XML data file parsing * * This file contains the routines needed to properly process the vendor * XML data. This file is responsible for handling URLs and * storing the XML data during the parsing process. * */ /* $Progeny$ * * AUTHOR: John R. Daily * * Copyright 2002 Progeny Linux Systems, Inc. * Copyright 2002 Hewlett-Packard Company * * 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 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 * THE COPYRIGHT HOLDER(S) 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. */ #include "config.h" #include #include #include #include #include #include #include #include #include #include /** List member describing a hardware vendor */ struct discover_xml_vendor { char *id; char *name; discover_xml_vendor_t *next; }; static discover_xml_vendor_t *vendors[BUS_COUNT]; /** Structure that holds information about the XML being parsed */ struct context { discover_xml_vendor_t **vlist; int unknown_level; /* How deep are we into unknown XML tags? */ }; static char *known_vendor_elements[] = { "vendor", "vendor_list", NULL }; static bool unknown_vendor_element(const XML_Char * const tag) { int i; for (i = 0; known_vendor_elements[i] != NULL; i++) { if (strcmp(tag, known_vendor_elements[i]) == 0) return false; } return true; } static void start_element(void *ctx, const XML_Char *name, const XML_Char *attrs[]) { struct context *context = ctx; int i; char *vid, *vname; discover_xml_vendor_t *next, **vlist; assert(context != NULL); assert(name != NULL); assert(attrs != NULL); if (unknown_vendor_element(name)) { context->unknown_level++; return; } if (context->unknown_level > 0) { return; } if (strcmp(name, "vendor") == 0) { vid = vname = NULL; for (i = 0; attrs[i]; i += 2) { if (strcmp(attrs[i], "id") == 0) { vid = (char *) attrs[i + 1]; } else if (strcmp(attrs[i], "name") == 0) { vname = (char *) attrs[i + 1]; } } assert(vid != NULL); assert(vname != NULL); vlist = context->vlist; next = *vlist; *vlist = discover_xml_vendor_new(); (*vlist)->id = _discover_xstrdup(vid); (*vlist)->name = _discover_xstrdup(vname); (*vlist)->next = next; } } static void end_element(void *ctx, const XML_Char *name) { struct context *context = ctx; assert(context != NULL); assert(name != NULL); if (unknown_vendor_element(name)) { context->unknown_level--; return; } if (context->unknown_level > 0) { return; } /* * We don't have any end tags to worry about, but if we did, they * would be handled here. */ } /** * @defgroup vendor_xml Vendor list XML parsing * @{ */ /** * Merge new vendors into a list. * * @param vlist Address of the list to merge vendors into * @param url URL of the document defining the vendors * @param status Address in which to place status report */ /* Sshh! Don't tell, but this doesn't actually do any merging at all. * Instead, it simply inserts newer entries at the front of the list, * meaning that vendor info found later supersedes info found earlier. * This gives the illusion of merging, but potentially wastes memory * with duplicates. */ void discover_xml_merge_vendor_url(discover_xml_vendor_t **vlist, char *url, discover_error_t *status) { XML_Parser parser; struct context context; assert(url != NULL); assert(status != NULL); status->code = 0; context.vlist = vlist; context.unknown_level = 0; parser = XML_ParserCreate(NULL); XML_SetElementHandler(parser, start_element, end_element); XML_SetUserData(parser, &context); if (!_discover_load_url(url, parser)) { XML_ParserFree(parser); status->code = DISCOVER_EIO; return; } if (!XML_Parse(parser, "", 0, 1)) { XML_ParserFree(parser); status->code = DISCOVER_EXML; return; } XML_ParserFree(parser); return; } /** * Get the list of vendors by bus type. * * @param bus Type of bus for which vendors are required * @param status Address in which to place status report */ discover_xml_vendor_t * discover_xml_get_vendors(discover_bus_t bus, discover_error_t *status) { discover_xml_url_t *urls, *i; char *url; assert(status != NULL); status->code = 0; if (!vendors[bus]) { urls = discover_xml_get_data_urls(bus, VENDOR_TYPE, status); if (status->code != 0) { return NULL; } for (i = urls; i; i = discover_xml_url_get_next(i)) { url = discover_xml_url_get_url(i); discover_xml_merge_vendor_url(&(vendors[bus]), url, status); if (status->code != 0) { return NULL; } } } return vendors[bus]; } /** * Free the list of vendors. */ void discover_xml_free_vendors(void) { int i; for (i = 0; i < BUS_COUNT; i++) { discover_xml_vendor_free(vendors[i]); vendors[i] = NULL; } } /** * Convert a vendor ID to a human-readable string naming the vendor. * * @param vendors List of vendors to search * @param id Vendor ID to search for */ char * discover_xml_vendor_id2name(discover_xml_vendor_t *vendors, char *id) { discover_xml_vendor_t *vendor; char *name; assert(vendors != NULL); assert(id != NULL); name = NULL; for (vendor = vendors; vendor; vendor = vendor->next) { if (strcmp(id, vendor->id) == 0) { name = vendor->name; break; } } return name; } /** * Get the id member of vendor. */ char * discover_xml_vendor_get_id(discover_xml_vendor_t *vendor) { assert(vendor != NULL); return vendor->id; } /** * Get the name member of vendor. */ char * discover_xml_vendor_get_name(discover_xml_vendor_t *vendor) { assert(vendor != NULL); return vendor->name; } /** * Get the next member of vendor. */ discover_xml_vendor_t * discover_xml_vendor_get_next(discover_xml_vendor_t *vendor) { assert(vendor != NULL); return vendor->next; } /** * Create and initialize a new discover_xml_vendor_t structure. */ discover_xml_vendor_t * discover_xml_vendor_new(void) { discover_xml_vendor_t *new; new = _discover_xmalloc(sizeof(discover_xml_vendor_t)); new->id = NULL; new->name = NULL; new->next = NULL; return new; } /** * Free the vendor or list of vendors. * * @param vendors Vendor or list of vendors to free */ void discover_xml_vendor_free(discover_xml_vendor_t *vendors) { discover_xml_vendor_t *vendor, *last; last = NULL; for (vendor = vendors; vendor; vendor = vendor->next) { if (vendor->id) { free(vendor->id); } if (vendor->name) { free(vendor->name); } if (last) { free(last); } last = vendor; } if (last) { free(last); } } /** @} */ /* * Local variables: * c-file-style: "progeny" * indent-tabs-mode: nil * End: */ /* vim: set cin fo=tcroq sw=4 et sts=4 tw=75: */ discover-2.1.2/lib/device.c0000644002342100234210000003514010272036044014152 0ustar perepere/** * @file device.c * @brief Device enumeration and information management * * This file contains many device-related routines. Most of these routines * are used to alter or access data pertaining to a device. These routines * will likely be most interesting to people writing code against the * Discover API. */ /* $Progeny$ * * Copyright 2001, 2002 Progeny Linux Systems, Inc. * Copyright 2002 Hewlett-Packard Company * * 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 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 * THE COPYRIGHT HOLDER(S) 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. */ #include "config.h" #include #include #include #include #include #include #include #include #include /** * @defgroup device Devices * @{ */ /** * Get a list of devices of a specified class on all buses scanned by * default. * * @param discover_class Class of devices to find * @param status Address in which to place status report */ discover_device_t * discover_device_find(char *discover_class, discover_error_t *status) { discover_device_t *result, *device, *last, *new_device; discover_xml_busclass_t *busclasses; discover_bus_map_t *busmap; int i; assert(discover_class); result = last = NULL; busmap = discover_conf_get_full_bus_map(status); if (status->code != 0) { return NULL; } for (i = 0; busmap[i].name; i++) { if (!busmap[i].scan_default) { continue; } busclasses = discover_xml_get_busclasses(i, status); if (status->code != 0) { return result; } for (device = discover_get_devices(i, status); device; device = discover_device_get_next(device)) { if (!device->busclass) { /* This is a device about which we know nothing. */ continue; } if (discover_xml_busclass_cmp(device->busclass, discover_class, busclasses) == 0) { new_device = discover_device_new(); discover_device_copy(device, new_device); new_device->next = NULL; if (last) { for (; last->next; last = last->next) ; last->next = new_device; last = new_device; } else { result = last = new_device; } } else { } } if (status->code != 0) { return result; } } if (result) { status->code = DISCOVER_SUCCESS; } else { char *message = _discover_xmalloc(100); snprintf(message, 100, "Device \"%s\" not found", discover_class); status->code = DISCOVER_EDEVICENOTFOUND; status->create_message(&status, message); } return result; } static discover_data_t * scan_data_list(discover_data_t *node, char *discover_class, char **version, discover_error_t *status) { discover_data_t *result = NULL; int cmp; for ( ; node != NULL; node = node->next) { if (strcmp(node->discover_class, discover_class) == 0) { if (*version && node->version) { cmp = discover_xml_version_cmp(node->version, *version, status); if (status->code != 0) { return result; } if (cmp) { result = node; /* The version is no longer relevant for nested data * elements. */ *version = NULL; break; } } else { result = node; break; } } } return result; } static discover_data_t * get_data(discover_device_t *device, char *discover_class, char **version, discover_error_t *status) { assert(device != NULL); assert(discover_class != NULL); return scan_data_list(device->data, discover_class, version, status); } static discover_data_t * get_child_data(discover_data_t *data, char *discover_class, char **version, discover_error_t *status) { assert(data != NULL); assert(discover_class != NULL); return scan_data_list(data->child, discover_class, version, status); } /** * Get the data matching the class path and version number (optional) * from the device structure. * * The class parameter requires further explanation. The XML data * sources have hierarchical data elements for each device. You * access the data in an element by specifying the path along the data * elements to it. * * For example, device elements for video cards usually have a data * element of class "xfree86" containing data related to the XFree86 * package; that element itself usually contains a data element of * class "server" that specifies which server to use for this video * card. You access this data by passing the string "xfree86/server" * to this function. * * @param device Device from which to get the data * @param discover_class Class to search for * @param version Version number to require (NULL for unversioned search) * @param status Address in which to place status report */ char * discover_device_get_data(discover_device_t *device, char *discover_class, char *version, discover_error_t *status) { discover_data_t *data; char *result, *tmp, *tmp_orig, **argv, *block; size_t argv_len; int i; assert(device != NULL); assert(discover_class != NULL); assert(status != NULL); status->code = 0; data = NULL; result = NULL; tmp_orig = tmp = _discover_xstrdup(discover_class); argv = NULL; argv_len = 0; while ((block = strsep(&tmp, "/"))) { argv_len++; argv = _discover_xrealloc(argv, sizeof(char *) * argv_len); argv[argv_len - 1] = block; } while(!data && device) { data = get_data(device, argv[0], &version, status); if (data) { for (i = 1; i < argv_len; i++) { data = get_child_data(data, argv[i], &version, status); if (status->code != 0) { goto out; } if (!data) { break; } } } device = device->extra; } if (data) { result = data->text; } out: free(tmp_orig); free(argv); return result; } /** * Copy a device structure. * * @param src Copy from (source) * @param dst Copy to (destination) */ void discover_device_copy(discover_device_t *src, discover_device_t *dst) { assert(src != NULL); assert(dst != NULL); if (src->busclass) { dst->busclass = _discover_xstrdup(src->busclass); } if (src->model_id) { dst->model_id = _discover_xstrdup(src->model_id); } if (src->model_name) { dst->model_name = _discover_xstrdup(src->model_name); } if (src->vendor_id) { dst->vendor_id = _discover_xstrdup(src->vendor_id); } if (src->vendor_name) { dst->vendor_name = _discover_xstrdup(src->vendor_name); } dst->busclasses = src->busclasses; dst->vendors = src->vendors; dst->data = src->data; dst->extra = src->extra; dst->next = src->next; } /****************************************************************************** * Data accessors */ /** * Get the class member of data. */ char * discover_data_get_class(discover_data_t *data) { assert(data != NULL); return data->discover_class; } /** * Get the text member of data. */ char * discover_data_get_text(discover_data_t *data) { assert(data != NULL); return data->text; } /** * Get the parent member of data. */ discover_data_t * discover_data_get_parent(discover_data_t *data) { assert(data != NULL); return data->parent; } /** * Get the child member of data. */ discover_data_t * discover_data_get_child(discover_data_t *data) { assert(data != NULL); return data->child; } /** * Get the next member of data. */ discover_data_t * discover_data_get_next(discover_data_t *data) { assert(data != NULL); return data->next; } /** * Get the prev member of data. */ discover_data_t * discover_data_get_prev(discover_data_t *data) { assert(data != NULL); return data->prev; } /** * Get the first member of data. */ discover_data_t * discover_data_get_first(discover_data_t *data) { int i = 1; if (data == NULL) { return NULL; } while(i) { if(data->prev) { data = data->prev; } else if(data->parent) { data = data->parent; } else { i = 0; } } /* for (; data->prev; data = data->prev) ; for (; data->parent; data = data->parent) ; */ return data; } /** * Create and initialize a new discover_data_t structure. */ discover_data_t * discover_data_new(void) { discover_data_t *new; new = _discover_xmalloc(sizeof(discover_data_t)); new->discover_class = NULL; new->version = NULL; new->text = NULL; new->parent = NULL; new->child = NULL; new->next = NULL; new->prev = NULL; return new; } /** * Free the data tree. Note that unlike the other free functions in * Discover, this one does not free data_tree itself. This is a * side-effect of how it is implemented. It frees all children and * siblings of data_tree as well as the data. After calling * discover_data_free, you have to call free(3) on data_tree itself. * * @param data_tree Data tree to free */ void discover_data_free(discover_data_t *data_tree) { discover_data_t *data, *last; last = NULL; if (data_tree) { for (data = data_tree->next; data; data = data->next) { discover_data_free(data); if (last) { free(last); } last = data; } if (last) { free(last); } if (data_tree->child) { discover_data_free(data_tree->child); free(data_tree->child); } if (data_tree->discover_class) { free(data_tree->discover_class); } if (data_tree->version) { free(data_tree->version); } if (data_tree->text) { free(data_tree->text); } } } /****************************************************************************** * Device accessors */ /** * Get the busclass member of device. */ char * discover_device_get_busclass(discover_device_t *device) { assert(device != NULL); return device->busclass; } /** * Get the model_id member of device. */ char * discover_device_get_model_id(discover_device_t *device) { assert(device != NULL); return device->model_id; } /** * Get the model_name member of device. */ char * discover_device_get_model_name(discover_device_t *device) { assert(device != NULL); return device->model_name; } /** * Get the vendor_id member of device. */ char * discover_device_get_vendor_id(discover_device_t *device) { assert(device != NULL); return device->vendor_id; } /** * Get the vendor_name member of device. */ char * discover_device_get_vendor_name(discover_device_t *device) { assert(device != NULL); return device->vendor_name; } /** * Get the data member of device. */ discover_data_t * discover_device_get_data_struct(discover_device_t *device) { assert(device != NULL); return device->data; } /** * Get the next member of device. */ discover_device_t * discover_device_get_next(discover_device_t *device) { assert(device != NULL); return device->next; } /** * Create and initialize a new discover_device_t structure. */ discover_device_t * discover_device_new(void) { discover_device_t *new; new = _discover_xmalloc(sizeof(discover_device_t)); new->busclass = NULL; new->model_id = NULL; new->model_name = NULL; new->vendor_id = NULL; new->vendor_name = NULL; new->busclasses = NULL; new->vendors = NULL; new->data = NULL; new->next = NULL; new->extra = NULL; return new; } /** * Free the device or list of devices. Pass 1 as the second argument * to free the data structure for this device, 0 to leave it. It is * necessary to specify 0 when one structure was copied from another * with discover_device_copy. Otherwise, you must pass 1. * * @param devices Device or list of devices to free * @param free_data Whether to free the data structure */ void discover_device_free(discover_device_t *devices, int free_data) { discover_device_t *device, *last; last = NULL; for (device = devices; device; device = device->next) { if (device->busclass) { free(device->busclass); } if (device->model_id) { free(device->model_id); } if (device->model_name) { free(device->model_name); } if (device->vendor_id) { free(device->vendor_id); } if (device->vendor_name) { free(device->vendor_name); } if (free_data && device->data) { discover_data_free(device->data); free(device->data); } if (last) { free(last); } last = device; } if (last) { free(last); } } /** @} */ /* * Local variables: * c-file-style: "progeny" * indent-tabs-mode: nil * End: */ /* vim: set cin fo=tcroq sw=4 et sts=4 tw=75: */ discover-2.1.2/lib/url-xml.c0000644002342100234210000002441610266266027014330 0ustar perepere/** * @file url-xml.c * @brief XML URL handling * * This file is used when loading data about the URLs to be parsed. This * data will be read from a file, either specified from the configuration * file or passed in as an append or insert. */ /* $Progeny$ * * AUTHOR: John R. Daily * * Copyright 2002 Progeny Linux Systems, Inc. * Copyright 2002 Hewlett-Packard Company * * 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 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 * THE COPYRIGHT HOLDER(S) 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. */ #include "config.h" #include #include #include #include #include #include #include #include #include /** Define possible states within the XML data. */ enum state { START, DISCOVER_DATA }; struct context { enum state state; discover_xml_url_t *urls; int unknown_level; /* How deep are we into unknown XML tags? */ }; static discover_xml_url_t *xml_urls = NULL; static discover_xml_url_t *data_urls[BUS_COUNT][3]; static char *known_url_elements[] = { "location", "discover-data", NULL }; static bool unknown_url_element(const XML_Char * const tag) { int i; for (i = 0; known_url_elements[i] != NULL; i++) { if (strcmp(tag, known_url_elements[i]) == 0) return false; } return true; } static void add_location(struct context *context, const XML_Char *attrs[]) { discover_xml_url_t *new; int i; assert(context != NULL); assert(attrs != NULL); new = discover_xml_url_new(); for (i = 0; attrs[i]; i += 2) { if (strcmp(attrs[i], "url") == 0) { new->url = _discover_xstrdup(attrs[i + 1]); } else if (strcmp(attrs[i], "bus") == 0) { new->bus = _discover_xstrdup(attrs[i + 1]); } else if (strcmp(attrs[i], "type") == 0) { new->type = _discover_xstrdup(attrs[i + 1]); } } if (context->urls) { if (context->urls->last) { context->urls->last->next = new; } else { context->urls->next = new; } context->urls->last = new; } else { context->urls = new; context->urls->next = context->urls->last = NULL; } } static void start_element(void *ctx, const XML_Char *name, const XML_Char *attrs[]) { struct context *context = ctx; assert(context != NULL); assert(name != NULL); if (unknown_url_element(name)) { context->unknown_level++; return; } if (context->unknown_level > 0) { return; } switch (context->state) { case START: if (strcmp(name, "discover-data") == 0) { context->state = DISCOVER_DATA; } break; case DISCOVER_DATA: if (strcmp(name, "location") == 0) { add_location(context, attrs); } break; } } static void end_element(void *ctx, const XML_Char *name) { struct context *context = ctx; assert(context != NULL); assert(name != NULL); if (unknown_url_element(name)) { context->unknown_level--; return; } if (context->unknown_level > 0) { return; } /* * We don't have any end tags to worry about, but if we did, they * would be handled here. */ } /** * @defgroup url_xml URL list XML parsing * @{ */ /** * Get the list of URLs from which bus and device data will be * retrieved. * * @param status Address in which to place status report **/ discover_xml_url_t * discover_xml_get_urls(discover_error_t *status) { discover_xml_url_t *urls, *i; XML_Parser parser; struct context context; int loaded_urls = 0; assert(status != NULL); status->code = 0; if (!xml_urls) { context.state = START; context.urls = NULL; context.unknown_level = 0; urls = discover_conf_get_urls(status); if (status->code != 0) { return NULL; } for (i = urls; i; i = i->next) { parser = XML_ParserCreate(NULL); XML_SetElementHandler(parser, start_element, end_element); XML_SetUserData(parser, &context); if (_discover_load_url(i->url, parser)) { loaded_urls++; } } if (loaded_urls == 0) { discover_xml_url_free(context.urls); XML_ParserFree(parser); status->code = DISCOVER_EIO; return NULL; } if (!XML_Parse(parser, "", 0, 1)) { status->code = DISCOVER_EXML; } XML_ParserFree(parser); xml_urls = context.urls; /* This must be done here because there could be bogus status left * over from the XML_Parse check above. (We assume something good * happened by this point.) */ status->code = 0; } return xml_urls; } /** * Free the list of URLs. */ void discover_xml_free_urls(void) { if (xml_urls) { discover_xml_url_free(xml_urls); xml_urls = NULL; } } /** * Get the list of data URLs, based on the bus type and type of data * required. * * @param bus Bus in question * @param filetype Type of file (vendor, busclass, or device) * @param status Address in which to place status report **/ discover_xml_url_t * discover_xml_get_data_urls(discover_bus_t bus, discover_filetype_t filetype, discover_error_t *status) { discover_xml_url_t *urls, *i, *new; char *busname = discover_conf_get_bus_name(bus); char *filetypename = discover_conf_get_filetype_name(filetype); assert(status != NULL); assert(busname != NULL); status->code = 0; if (!data_urls[bus][filetype]) { urls = discover_xml_get_urls(status); if (status->code != 0) { return NULL; } status->code = DISCOVER_EDATANOTFOUND; for (i = urls; i; i = i->next) { if (strcmp(i->bus, busname) == 0 && strcmp(i->type, filetypename) == 0) { status->code = 0; new = discover_xml_url_new(); discover_xml_url_copy(i, new); if (data_urls[bus][filetype]) { data_urls[bus][filetype]->last->next = new; data_urls[bus][filetype]->last = new; } else { data_urls[bus][filetype] = new; data_urls[bus][filetype]->last = new; data_urls[bus][filetype]->next = NULL; } } } } return data_urls[bus][filetype]; } /** * Free the list of data URLs. */ void discover_xml_free_data_urls(void) { int b, f; for(b = 0; b < BUS_COUNT; b++) { for(f = 0; f < 3; f++) { discover_xml_url_free(data_urls[b][f]); data_urls[b][f] = NULL; } } } /** * Create and initialize a new (empty) URL structure. */ discover_xml_url_t * discover_xml_url_new(void) { discover_xml_url_t *new; new = _discover_xmalloc(sizeof(discover_xml_url_t)); new->url = NULL; new->bus = NULL; new->type = NULL; new->label = NULL; new->next = NULL; new->last = NULL; return new; } /** * Copy a URL structure. * * @param src Copy from (source) * @param dst Copy to (destination) */ void discover_xml_url_copy(discover_xml_url_t *src, discover_xml_url_t *dst) { assert(src != NULL); assert(dst != NULL); if (src->url) { dst->url = _discover_xstrdup(src->url); } if (src->bus) { dst->bus = _discover_xstrdup(src->bus); } if (src->type) { dst->type = _discover_xstrdup(src->type); } if (src->label) { dst->label = _discover_xstrdup(src->label); } } /** * Get the url member of url. */ char * discover_xml_url_get_url(discover_xml_url_t *url) { assert(url != NULL); return url->url; } /** * Get the label member of url. */ char * discover_xml_url_get_label(discover_xml_url_t *url) { assert(url != NULL); return url->label; } /** * Get the bus member of URL. */ char * discover_xml_url_get_bus(discover_xml_url_t *url) { assert(url != NULL); return url->bus; } /** * Get the type member of url. */ char * discover_xml_url_get_type(discover_xml_url_t *url) { assert(url != NULL); return url->type; } /** * Get the next member of url. */ discover_xml_url_t * discover_xml_url_get_next(discover_xml_url_t *url) { assert(url != NULL); return url->next; } /** * Get the last member of url. */ discover_xml_url_t * discover_xml_url_get_last(discover_xml_url_t *url) { assert(url != NULL); return url->last; } /** * Free the URL or list of URLs. * * @param urls URL or list of URLs to free */ void discover_xml_url_free(discover_xml_url_t *urls) { discover_xml_url_t *url, *last; last = NULL; for (url = urls; url; url = url->next) { if (url->url) { free(url->url); } if (url->bus) { free(url->bus); } if (url->type) { free(url->type); } if (url->label) { free(url->label); } if (last) { free(last); } last = url; } if (last) { free(last); } } /** @} */ discover-2.1.2/lib/load-url.c0000644002342100234210000000542310266266027014444 0ustar perepere/** * @file load-url.c * @brief File loading helper functions */ /* $Progeny$ * * Copyright 2003 Hewlett-Packard Company * * 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 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 * THE COPYRIGHT HOLDER(S) 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. */ #include "config.h" #ifndef HAVE_LIBCURL #include #include #include #ifdef HAVE_ZLIB #include #define stdio_file gzFile #define fopen gzopen #define STDIO_READ fread #define fclose gzclose #else #include typedef FILE *stdio_file; #define STDIO_READ(f, buf, len) fread(buf, 1, len, f) #endif #include int _discover_load_url(const char *url, XML_Parser parser) { const char *file_path; stdio_file url_file; char buf[4096]; char *tmp; size_t len; int parse_result; assert(url != NULL); if (strncmp(url, "file:", 5)) return 0; /* We have three accepted formats for the url: file://host/path, * file:///path, and file://path. The third is not actually * legal, but curl allows it to refer to a file in the current * directory. Since we use that format in the test suite, we need * to support it here. * * For file://host/path and file:///path, the strchr call takes us * directly to the correct absolute path. For file://path, url + * 7 is just "path" so we use that relative path. */ file_path = strchr(url + 7, '/'); if (!file_path) { file_path = url + 7; } if (*file_path == '\0') return 0; url_file = fopen(file_path, "r"); if (url_file == NULL) return 0; do { len = STDIO_READ(url_file, buf, sizeof(buf)); if (len > 0) parse_result = XML_Parse(parser, buf, len, 0); } while ((len > 0) && (parse_result != 0)); fclose(url_file); return (parse_result != 0); } #endif discover-2.1.2/lib/stack.c0000644002342100234210000000654010266266027014033 0ustar perepere/* $Progeny$ */ /** * @file stack.c * @brief Stack routines for Discover * * This is a generic stack routine that Discover uses. The stack is needed * because there wasn't a good way to track the traversal depth through the * XML data. These routines brought much sanity to the XML parsing * process. They are generic enough that they can be used for any number * of applications. */ /* * AUTHOR: Josh Bressers * * Copyright 2002 Progeny Linux Systems, Inc. * * 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 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 * THE COPYRIGHT HOLDER(S) 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. */ #include #include #include #include #include #include /** Routine responsible for creating the base of the stack */ discover_xml_stack * discover_xml_stack_new() { discover_xml_stack *stack; stack = (discover_xml_stack *) _discover_xmalloc(sizeof(discover_xml_stack)); assert(stack != NULL); stack->prev = NULL; stack->data = NULL; stack->depth = 0; return stack; } /** Routine responsible for destroying the stack base once we're done */ void discover_xml_stack_destroy(discover_xml_stack *stack) { free(stack); } /** Push an item onto the stack. */ void discover_xml_stack_push(discover_xml_stack **stack, void *data) { discover_xml_stack *new_stack; new_stack = discover_xml_stack_new(); new_stack->prev = *stack; new_stack->data = data; new_stack->depth = (*stack)->depth + 1; *stack = new_stack; } /** Pop an item from the stack. */ void * discover_xml_stack_pop(discover_xml_stack **stack) { void *ctx; discover_xml_stack *oldstack; if((*stack)->prev == 0) { return NULL; } oldstack = *stack; ctx = (*stack)->data; *stack = (*stack)->prev; (*stack)->depth = oldstack->depth - 1; discover_xml_stack_destroy(oldstack); return ctx; } /** Return the top item without popping it. */ void * discover_xml_stack_get(discover_xml_stack *stack) { return stack->data; } /** Return the item at depth i on the stack. */ void * discover_xml_stack_getbynum(discover_xml_stack *stack, int i) { discover_xml_stack *S; S = stack; while(S->depth < i) { S = stack->prev; } return S->data; } /* * Local variables: * c-file-style: "progeny" * indent-tabs-mode: nil * End: */ /* vim: set cin fo=tcroq sw=4 et sts=4 tw=75: */ discover-2.1.2/etc/0002755002342100234210000000000010655642004012557 5ustar pereperediscover-2.1.2/etc/discover.conf0000644002342100234210000000040710266266027015250 0ustar perepere discover-2.1.2/etc/Makefile.in0000644002342100234210000000322310266266027014627 0ustar perepere# $Progeny$ etc_files= ${srcdir}/discover.conf \ ${srcdir}/discover-modprobe.conf \ ${srcdir}/conffile.dtd all: ${etc_files} ############################################################################### # Clean clean_FILES= #none distclean_FILES= Makefile clean: distclean: rm -rf ${clean_FILES} ${distclean_FILES} maintainer-clean: rm -rf ${clean_FILES} ${distclean_FILES} ############################################################################### # Installation install: ${etc_files} ${INSTALL_DIR} ${DESTDIR}${sysconfdir} ${INSTALL_DIR} ${DESTDIR}${sysconfdir}/discover.conf.d ${INSTALL_DIR} ${DESTDIR}${datadir}/discover/dtd if [ ! -f ${DESTDIR}${sysconfdir}/discover.conf.d/00discover ]; then \ ${INSTALL_DATA} ${srcdir}/discover.conf \ ${DESTDIR}${sysconfdir}/discover.conf.d/00discover; \ fi if [ ! -f ${DESTDIR}${sysconfdir}/discover-modprobe.conf ]; then \ ${INSTALL_DATA} ${srcdir}/discover-modprobe.conf \ ${DESTDIR}${sysconfdir}/discover-modprobe.conf; \ else \ ${INSTALL_DATA} ${srcdir}/discover-modprobe.conf \ ${DESTDIR}${sysconfdir}/discover-modprobe.conf.example; \ fi ${INSTALL_DATA} ${srcdir}/conffile.dtd \ ${DESTDIR}${datadir}/discover/dtd/conffile.dtd uninstall: rm -f ${DESTDIR}${sysconfdir}/discover.conf.example rm -f ${DESTDIR}${sysconfdir}/discover-modprobe.conf.example rm -f ${DESTDIR}${datadir}/discover/dtd/conffile.dtd ############################################################################### # Distribution DISTFILES= Makefile.in conffile.dtd discover.conf \ discover-modprobe.conf distdir: ${DISTFILES} ${top_srcdir}/buildtools/distdir ${distdir}/${_THISDIR_} ${DISTFILES} discover-2.1.2/etc/conffile.dtd0000644002342100234210000000135010266266027015043 0ustar perepere discover-2.1.2/etc/discover-modprobe.conf0000644002342100234210000000053210266266027017054 0ustar perepere # $Progeny$ # Load modules for the following device types. Specify "all" # to detect all device types. types="all" # Don't ever load the foo, bar, or baz modules. #skip="foo bar baz" # Lines below this point have been automatically added by # discover-modprobe(8) to disable the loading of modules that have # previously crashed the machine: discover-2.1.2/doctools/0002755002342100234210000000000010655642004013632 5ustar pereperediscover-2.1.2/doctools/docbook-sgml.ced0000644002342100234210000134517610266266026016712 0ustar perepere;;; This file was created by psgml on Fri Jan 18 16:34:26 2002 (sgml-saved-dtd-version 7) ("/usr/share/sgml/docbook/dtd/4.1/dbgenent.mod" "/usr/share/sgml/docbook/dtd/4.1/dbhier.mod" "/usr/local/lib/xemacs/xemacs-packages/etc/psgml/cals-tbl.dtd" "/usr/share/sgml/docbook/dtd/4.1/dbpool.mod" "/usr/local/lib/xemacs/xemacs-packages/etc/psgml/ISO_8879-1986/entities/ISOtech" "/usr/local/lib/xemacs/xemacs-packages/etc/psgml/ISO_8879-1986/entities/ISOpub" "/usr/local/lib/xemacs/xemacs-packages/etc/psgml/ISO_8879-1986/entities/ISOnum" "/usr/local/lib/xemacs/xemacs-packages/etc/psgml/ISO_8879-1986/entities/ISOlat2" "/usr/local/lib/xemacs/xemacs-packages/etc/psgml/ISOlat1.ent" "/usr/local/lib/xemacs/xemacs-packages/etc/psgml/ISO_8879-1986/entities/ISOgrk4" "/usr/local/lib/xemacs/xemacs-packages/etc/psgml/ISO_8879-1986/entities/ISOgrk2" "/usr/local/lib/xemacs/xemacs-packages/etc/psgml/ISO_8879-1986/entities/ISOgrk2" "/usr/local/lib/xemacs/xemacs-packages/etc/psgml/ISO_8879-1986/entities/ISOgrk1" "/usr/local/lib/xemacs/xemacs-packages/etc/psgml/ISO_8879-1986/entities/ISOdia" "/usr/local/lib/xemacs/xemacs-packages/etc/psgml/ISO_8879-1986/entities/ISOcyr2" "/usr/local/lib/xemacs/xemacs-packages/etc/psgml/ISO_8879-1986/entities/ISOcyr1" "/usr/local/lib/xemacs/xemacs-packages/etc/psgml/ISO_8879-1986/entities/ISObox" "/usr/local/lib/xemacs/xemacs-packages/etc/psgml/ISO_8879-1986/entities/ISOamsr" "/usr/local/lib/xemacs/xemacs-packages/etc/psgml/ISO_8879-1986/entities/ISOamso" "/usr/local/lib/xemacs/xemacs-packages/etc/psgml/ISO_8879-1986/entities/ISOamsn" "/usr/local/lib/xemacs/xemacs-packages/etc/psgml/ISO_8879-1986/entities/ISOamsc" "/usr/local/lib/xemacs/xemacs-packages/etc/psgml/ISO_8879-1986/entities/ISOamsb" "/usr/local/lib/xemacs/xemacs-packages/etc/psgml/ISO_8879-1986/entities/ISOamsa" "/usr/share/sgml/docbook/dtd/4.1/dbcent.mod" "/usr/share/sgml/docbook/dtd/4.1/dbnotn.mod" "/usr/share/sgml/docbook/dtd/4.1/docbook.dtd" "/cvs/progeny/pgi/doctools/progeny.ent") (nil ("progeny-entity" text (nil "../doctools/progeny.ent" . "/cvs/progeny/pgi/doc/") nil) ("dbnotn.module" text "INCLUDE" nil) ("dbnotn" text ("-//OASIS//ENTITIES DocBook Notations V4.1//EN" nil . "/usr/share/sgml/docbook/dtd/4.1/") nil) ("local.notation.class" text "" nil) ("notation.class" text "BMP| CGM-CHAR | CGM-BINARY | CGM-CLEAR | DITROFF | DVI | EPS | EQN | FAX | GIF | GIF87a | GIF89a | JPG | JPEG | IGES | PCX | PIC | PNG | PS | SGML | TBL | TEX | TIFF | WMF | WPG | linespecific " nil) ("dbcent.module" text "INCLUDE" nil) ("dbcent" text ("-//OASIS//ENTITIES DocBook Character Entities V4.1//EN" nil . "/usr/share/sgml/docbook/dtd/4.1/") nil) ("ISOamsa.module" text "INCLUDE" nil) ("ISOamsa" text ("ISO 8879:1986//ENTITIES Added Math Symbols: Arrow Relations//EN" nil . "/usr/share/sgml/docbook/dtd/4.1/") nil) ("ISOamsb.module" text "INCLUDE" nil) ("ISOamsb" text ("ISO 8879:1986//ENTITIES Added Math Symbols: Binary Operators//EN" nil . "/usr/share/sgml/docbook/dtd/4.1/") nil) ("ISOamsc.module" text "INCLUDE" nil) ("ISOamsc" text ("ISO 8879:1986//ENTITIES Added Math Symbols: Delimiters//EN" nil . "/usr/share/sgml/docbook/dtd/4.1/") nil) ("ISOamsn.module" text "INCLUDE" nil) ("ISOamsn" text ("ISO 8879:1986//ENTITIES Added Math Symbols: Negated Relations//EN" nil . "/usr/share/sgml/docbook/dtd/4.1/") nil) ("ISOamso.module" text "INCLUDE" nil) ("ISOamso" text ("ISO 8879:1986//ENTITIES Added Math Symbols: Ordinary//EN" nil . "/usr/share/sgml/docbook/dtd/4.1/") nil) ("ISOamsr.module" text "INCLUDE" nil) ("ISOamsr" text ("ISO 8879:1986//ENTITIES Added Math Symbols: Relations//EN" nil . "/usr/share/sgml/docbook/dtd/4.1/") nil) ("ISObox.module" text "INCLUDE" nil) ("ISObox" text ("ISO 8879:1986//ENTITIES Box and Line Drawing//EN" nil . "/usr/share/sgml/docbook/dtd/4.1/") nil) ("ISOcyr1.module" text "INCLUDE" nil) ("ISOcyr1" text ("ISO 8879:1986//ENTITIES Russian Cyrillic//EN" nil . "/usr/share/sgml/docbook/dtd/4.1/") nil) ("ISOcyr2.module" text "INCLUDE" nil) ("ISOcyr2" text ("ISO 8879:1986//ENTITIES Non-Russian Cyrillic//EN" nil . "/usr/share/sgml/docbook/dtd/4.1/") nil) ("ISOdia.module" text "INCLUDE" nil) ("ISOdia" text ("ISO 8879:1986//ENTITIES Diacritical Marks//EN" nil . "/usr/share/sgml/docbook/dtd/4.1/") nil) ("ISOgrk1.module" text "INCLUDE" nil) ("ISOgrk1" text ("ISO 8879:1986//ENTITIES Greek Letters//EN" nil . "/usr/share/sgml/docbook/dtd/4.1/") nil) ("ISOgrk2.module" text "INCLUDE" nil) ("ISOgrk2" text ("ISO 8879:1986//ENTITIES Monotoniko Greek//EN" nil . "/usr/share/sgml/docbook/dtd/4.1/") nil) ("ISOgrk3.module" text "INCLUDE" nil) ("ISOgrk3" text ("ISO 8879:1986//ENTITIES Greek Symbols//EN" nil . "/usr/share/sgml/docbook/dtd/4.1/") nil) ("ISOgrk4.module" text "INCLUDE" nil) ("ISOgrk4" text ("ISO 8879:1986//ENTITIES Alternative Greek Symbols//EN" nil . "/usr/share/sgml/docbook/dtd/4.1/") nil) ("ISOlat1.module" text "INCLUDE" nil) ("ISOlat1" text ("ISO 8879:1986//ENTITIES Added Latin 1//EN" nil . "/usr/share/sgml/docbook/dtd/4.1/") nil) ("ISOlat2.module" text "INCLUDE" nil) ("ISOlat2" text ("ISO 8879:1986//ENTITIES Added Latin 2//EN" nil . "/usr/share/sgml/docbook/dtd/4.1/") nil) ("ISOnum.module" text "INCLUDE" nil) ("ISOnum" text ("ISO 8879:1986//ENTITIES Numeric and Special Graphic//EN" nil . "/usr/share/sgml/docbook/dtd/4.1/") nil) ("ISOpub.module" text "INCLUDE" nil) ("ISOpub" text ("ISO 8879:1986//ENTITIES Publishing//EN" nil . "/usr/share/sgml/docbook/dtd/4.1/") nil) ("ISOtech.module" text "INCLUDE" nil) ("ISOtech" text ("ISO 8879:1986//ENTITIES General Technical//EN" nil . "/usr/share/sgml/docbook/dtd/4.1/") nil) ("dbpool.module" text "INCLUDE" nil) ("dbpool" text ("-//OASIS//ELEMENTS DocBook Information Pool V4.1//EN" nil . "/usr/share/sgml/docbook/dtd/4.1/") nil) ("yesorno.attvals" text "NUMBER" nil) ("no.attval" text "0" nil) ("dbpool.redecl.module" text "IGNORE" nil) ("local.list.class" text "" nil) ("list.class" text "CalloutList|GlossList|ItemizedList|OrderedList|SegmentedList |SimpleList|VariableList " nil) ("local.admon.class" text "" nil) ("admon.class" text "Caution|Important|Note|Tip|Warning " nil) ("local.linespecific.class" text "" nil) ("linespecific.class" text "LiteralLayout|ProgramListing|ProgramListingCO|Screen |ScreenCO|ScreenShot " nil) ("local.method.synop.class" text "" nil) ("method.synop.class" text "ConstructorSynopsis |DestructorSynopsis |MethodSynopsis " nil) ("local.synop.class" text "" nil) ("synop.class" text "Synopsis|CmdSynopsis|FuncSynopsis |ClassSynopsis|FieldSynopsis |ConstructorSynopsis |DestructorSynopsis |MethodSynopsis " nil) ("local.para.class" text "" nil) ("para.class" text "FormalPara|Para|SimPara " nil) ("local.informal.class" text "" nil) ("informal.class" text "Address|BlockQuote |Graphic|GraphicCO|MediaObject|MediaObjectCO |InformalEquation |InformalExample |InformalFigure |InformalTable " nil) ("local.formal.class" text "" nil) ("formal.class" text "Equation|Example|Figure|Table " nil) ("ebnf.block.hook" text "" nil) ("local.compound.class" text "" nil) ("compound.class" text "MsgSet|Procedure|Sidebar|QandASet " nil) ("local.genobj.class" text "" nil) ("genobj.class" text "Anchor|BridgeHead|Remark|Highlights " nil) ("local.descobj.class" text "" nil) ("descobj.class" text "Abstract|AuthorBlurb|Epigraph " nil) ("local.ndxterm.class" text "" nil) ("ndxterm.class" text "IndexTerm " nil) ("local.xref.char.class" text "" nil) ("xref.char.class" text "FootnoteRef|XRef " nil) ("local.gen.char.class" text "" nil) ("gen.char.class" text "Abbrev|Acronym|Citation|CiteRefEntry|CiteTitle|Emphasis |FirstTerm|ForeignPhrase|GlossTerm|Footnote|Phrase |Quote|Trademark|WordAsWord " nil) ("local.link.char.class" text "" nil) ("link.char.class" text "Link|OLink|ULink " nil) ("ebnf.inline.hook" text "" nil) ("local.tech.char.class" text "" nil) ("tech.char.class" text "Action|Application |ClassName|MethodName|InterfaceName|ExceptionName |OOClass|OOInterface|OOException |Command|ComputerOutput |Database|Email|EnVar|ErrorCode|ErrorName|ErrorType|Filename |Function|GUIButton|GUIIcon|GUILabel|GUIMenu|GUIMenuItem |GUISubmenu|Hardware|Interface|KeyCap |KeyCode|KeyCombo|KeySym|Literal|Constant|Markup|MediaLabel |MenuChoice|MouseButton|Option|Optional|Parameter |Prompt|Property|Replaceable|ReturnValue|SGMLTag|StructField |StructName|Symbol|SystemItem|Token|Type|UserInput|VarName " nil) ("local.base.char.class" text "" nil) ("base.char.class" text "Anchor " nil) ("local.docinfo.char.class" text "" nil) ("docinfo.char.class" text "Author|AuthorInitials|CorpAuthor|ModeSpec|OtherCredit |ProductName|ProductNumber|RevHistory " nil) ("local.other.char.class" text "" nil) ("other.char.class" text "Remark|Subscript|Superscript " nil) ("local.inlineobj.char.class" text "" nil) ("inlineobj.char.class" text "InlineGraphic|InlineMediaObject|InlineEquation " nil) ("local.component.mix" text "" nil) ("component.mix" text "CalloutList|GlossList|ItemizedList|OrderedList|SegmentedList |SimpleList|VariableList |Caution|Important|Note|Tip|Warning |LiteralLayout|ProgramListing|ProgramListingCO|Screen |ScreenCO|ScreenShot |Synopsis|CmdSynopsis|FuncSynopsis |ClassSynopsis|FieldSynopsis |ConstructorSynopsis |DestructorSynopsis |MethodSynopsis |FormalPara|Para|SimPara |Address|BlockQuote |Graphic|GraphicCO|MediaObject|MediaObjectCO |InformalEquation |InformalExample |InformalFigure |InformalTable |Equation|Example|Figure|Table |MsgSet|Procedure|Sidebar|QandASet |Anchor|BridgeHead|Remark|Highlights |Abstract|AuthorBlurb|Epigraph |IndexTerm " nil) ("local.sidebar.mix" text "" nil) ("sidebar.mix" text "CalloutList|GlossList|ItemizedList|OrderedList|SegmentedList |SimpleList|VariableList |Caution|Important|Note|Tip|Warning |LiteralLayout|ProgramListing|ProgramListingCO|Screen |ScreenCO|ScreenShot |Synopsis|CmdSynopsis|FuncSynopsis |ClassSynopsis|FieldSynopsis |ConstructorSynopsis |DestructorSynopsis |MethodSynopsis |FormalPara|Para|SimPara |Address|BlockQuote |Graphic|GraphicCO|MediaObject|MediaObjectCO |InformalEquation |InformalExample |InformalFigure |InformalTable |Equation|Example|Figure|Table |Procedure |Anchor|BridgeHead|Remark|Highlights |IndexTerm " nil) ("local.qandaset.mix" text "" nil) ("qandaset.mix" text "CalloutList|GlossList|ItemizedList|OrderedList|SegmentedList |SimpleList|VariableList |Caution|Important|Note|Tip|Warning |LiteralLayout|ProgramListing|ProgramListingCO|Screen |ScreenCO|ScreenShot |Synopsis|CmdSynopsis|FuncSynopsis |ClassSynopsis|FieldSynopsis |ConstructorSynopsis |DestructorSynopsis |MethodSynopsis |FormalPara|Para|SimPara |Address|BlockQuote |Graphic|GraphicCO|MediaObject|MediaObjectCO |InformalEquation |InformalExample |InformalFigure |InformalTable |Equation|Example|Figure|Table |Procedure |Anchor|BridgeHead|Remark|Highlights |IndexTerm " nil) ("local.revdescription.mix" text "" nil) ("revdescription.mix" text "CalloutList|GlossList|ItemizedList|OrderedList|SegmentedList |SimpleList|VariableList |Caution|Important|Note|Tip|Warning |LiteralLayout|ProgramListing|ProgramListingCO|Screen |ScreenCO|ScreenShot |Synopsis|CmdSynopsis|FuncSynopsis |ClassSynopsis|FieldSynopsis |ConstructorSynopsis |DestructorSynopsis |MethodSynopsis |FormalPara|Para|SimPara |Address|BlockQuote |Graphic|GraphicCO|MediaObject|MediaObjectCO |InformalEquation |InformalExample |InformalFigure |InformalTable |Equation|Example|Figure|Table |Procedure |Anchor|BridgeHead|Remark|Highlights |IndexTerm " nil) ("local.footnote.mix" text "" nil) ("footnote.mix" text "CalloutList|GlossList|ItemizedList|OrderedList|SegmentedList |SimpleList|VariableList |LiteralLayout|ProgramListing|ProgramListingCO|Screen |ScreenCO|ScreenShot |Synopsis|CmdSynopsis|FuncSynopsis |ClassSynopsis|FieldSynopsis |ConstructorSynopsis |DestructorSynopsis |MethodSynopsis |FormalPara|Para|SimPara |Address|BlockQuote |Graphic|GraphicCO|MediaObject|MediaObjectCO |InformalEquation |InformalExample |InformalFigure |InformalTable " nil) ("local.example.mix" text "" nil) ("example.mix" text "CalloutList|GlossList|ItemizedList|OrderedList|SegmentedList |SimpleList|VariableList |LiteralLayout|ProgramListing|ProgramListingCO|Screen |ScreenCO|ScreenShot |Synopsis|CmdSynopsis|FuncSynopsis |ClassSynopsis|FieldSynopsis |ConstructorSynopsis |DestructorSynopsis |MethodSynopsis |FormalPara|Para|SimPara |Address|BlockQuote |Graphic|GraphicCO|MediaObject|MediaObjectCO |InformalEquation |InformalExample |InformalFigure |InformalTable |IndexTerm " nil) ("local.highlights.mix" text "" nil) ("highlights.mix" text "CalloutList|GlossList|ItemizedList|OrderedList|SegmentedList |SimpleList|VariableList |Caution|Important|Note|Tip|Warning |FormalPara|Para|SimPara |IndexTerm " nil) ("local.para.mix" text "" nil) ("para.mix" text "CalloutList|GlossList|ItemizedList|OrderedList|SegmentedList |SimpleList|VariableList |Caution|Important|Note|Tip|Warning |LiteralLayout|ProgramListing|ProgramListingCO|Screen |ScreenCO|ScreenShot |Address|BlockQuote |Graphic|GraphicCO|MediaObject|MediaObjectCO |InformalEquation |InformalExample |InformalFigure |InformalTable |Equation|Example|Figure|Table " nil) ("local.admon.mix" text "" nil) ("admon.mix" text "CalloutList|GlossList|ItemizedList|OrderedList|SegmentedList |SimpleList|VariableList |LiteralLayout|ProgramListing|ProgramListingCO|Screen |ScreenCO|ScreenShot |Synopsis|CmdSynopsis|FuncSynopsis |ClassSynopsis|FieldSynopsis |ConstructorSynopsis |DestructorSynopsis |MethodSynopsis |FormalPara|Para|SimPara |Address|BlockQuote |Graphic|GraphicCO|MediaObject|MediaObjectCO |InformalEquation |InformalExample |InformalFigure |InformalTable |Equation|Example|Figure|Table |Procedure|Sidebar |Anchor|BridgeHead|Remark |IndexTerm " nil) ("local.figure.mix" text "" nil) ("figure.mix" text "LiteralLayout|ProgramListing|ProgramListingCO|Screen |ScreenCO|ScreenShot |Synopsis|CmdSynopsis|FuncSynopsis |ClassSynopsis|FieldSynopsis |ConstructorSynopsis |DestructorSynopsis |MethodSynopsis |Address|BlockQuote |Graphic|GraphicCO|MediaObject|MediaObjectCO |InformalEquation |InformalExample |InformalFigure |InformalTable |IndexTerm " nil) ("local.tabentry.mix" text "" nil) ("tabentry.mix" text "CalloutList|GlossList|ItemizedList|OrderedList|SegmentedList |SimpleList|VariableList |Caution|Important|Note|Tip|Warning |LiteralLayout|ProgramListing|ProgramListingCO|Screen |ScreenCO|ScreenShot |FormalPara|Para|SimPara |Graphic|MediaObject " nil) ("local.glossdef.mix" text "" nil) ("glossdef.mix" text "CalloutList|GlossList|ItemizedList|OrderedList|SegmentedList |SimpleList|VariableList |LiteralLayout|ProgramListing|ProgramListingCO|Screen |ScreenCO|ScreenShot |Synopsis|CmdSynopsis|FuncSynopsis |ClassSynopsis|FieldSynopsis |ConstructorSynopsis |DestructorSynopsis |MethodSynopsis |FormalPara|Para|SimPara |Address|BlockQuote |Graphic|GraphicCO|MediaObject|MediaObjectCO |InformalEquation |InformalExample |InformalFigure |InformalTable |Equation|Example|Figure|Table |Remark |IndexTerm " nil) ("local.legalnotice.mix" text "" nil) ("legalnotice.mix" text "CalloutList|GlossList|ItemizedList|OrderedList|SegmentedList |SimpleList|VariableList |Caution|Important|Note|Tip|Warning |LiteralLayout|ProgramListing|ProgramListingCO|Screen |ScreenCO|ScreenShot |FormalPara|Para|SimPara |BlockQuote |IndexTerm " nil) ("local.textobject.mix" text "" nil) ("textobject.mix" text "CalloutList|GlossList|ItemizedList|OrderedList|SegmentedList |SimpleList|VariableList |Caution|Important|Note|Tip|Warning |LiteralLayout|ProgramListing|ProgramListingCO|Screen |ScreenCO|ScreenShot |FormalPara|Para|SimPara |BlockQuote " nil) ("local.mediaobject.mix" text "" nil) ("mediaobject.mix" text "VideoObject|AudioObject|ImageObject " nil) ("local.ubiq.mix" text "" nil) ("ubiq.mix" text "IndexTerm |BeginPage " nil) ("ubiq.exclusion" text "-(IndexTerm |BeginPage )" nil) ("ubiq.inclusion" text "+(IndexTerm |BeginPage )" nil) ("footnote.exclusion" text "-(Footnote|Equation|Example|Figure|Table )" nil) ("highlights.exclusion" text "-(IndexTerm |BeginPage |Equation|Example|Figure|Table )" nil) ("admon.exclusion" text "-(Caution|Important|Note|Tip|Warning )" nil) ("formal.exclusion" text "-(Equation|Example|Figure|Table )" nil) ("acronym.exclusion" text "-(Acronym)" nil) ("beginpage.exclusion" text "-(BeginPage)" nil) ("ndxterm.exclusion" text "-(IndexTerm )" nil) ("blockquote.exclusion" text "-(Epigraph)" nil) ("remark.exclusion" text "-(Remark|IndexTerm |BeginPage )" nil) ("glossterm.exclusion" text "-(GlossTerm)" nil) ("links.exclusion" text "-(Link|OLink|ULink|XRef)" nil) ("forminlines.hook" text "" nil) ("local.para.char.mix" text "" nil) ("para.char.mix" text "#PCDATA |FootnoteRef|XRef |Abbrev|Acronym|Citation|CiteRefEntry|CiteTitle|Emphasis |FirstTerm|ForeignPhrase|GlossTerm|Footnote|Phrase |Quote|Trademark|WordAsWord |Link|OLink|ULink |Action|Application |ClassName|MethodName|InterfaceName|ExceptionName |OOClass|OOInterface|OOException |Command|ComputerOutput |Database|Email|EnVar|ErrorCode|ErrorName|ErrorType|Filename |Function|GUIButton|GUIIcon|GUILabel|GUIMenu|GUIMenuItem |GUISubmenu|Hardware|Interface|KeyCap |KeyCode|KeyCombo|KeySym|Literal|Constant|Markup|MediaLabel |MenuChoice|MouseButton|Option|Optional|Parameter |Prompt|Property|Replaceable|ReturnValue|SGMLTag|StructField |StructName|Symbol|SystemItem|Token|Type|UserInput|VarName |Anchor |Author|AuthorInitials|CorpAuthor|ModeSpec|OtherCredit |ProductName|ProductNumber|RevHistory |Remark|Subscript|Superscript |InlineGraphic|InlineMediaObject|InlineEquation |Synopsis|CmdSynopsis|FuncSynopsis |ClassSynopsis|FieldSynopsis |ConstructorSynopsis |DestructorSynopsis |MethodSynopsis |IndexTerm " nil) ("local.title.char.mix" text "" nil) ("title.char.mix" text "#PCDATA |FootnoteRef|XRef |Abbrev|Acronym|Citation|CiteRefEntry|CiteTitle|Emphasis |FirstTerm|ForeignPhrase|GlossTerm|Footnote|Phrase |Quote|Trademark|WordAsWord |Link|OLink|ULink |Action|Application |ClassName|MethodName|InterfaceName|ExceptionName |OOClass|OOInterface|OOException |Command|ComputerOutput |Database|Email|EnVar|ErrorCode|ErrorName|ErrorType|Filename |Function|GUIButton|GUIIcon|GUILabel|GUIMenu|GUIMenuItem |GUISubmenu|Hardware|Interface|KeyCap |KeyCode|KeyCombo|KeySym|Literal|Constant|Markup|MediaLabel |MenuChoice|MouseButton|Option|Optional|Parameter |Prompt|Property|Replaceable|ReturnValue|SGMLTag|StructField |StructName|Symbol|SystemItem|Token|Type|UserInput|VarName |Anchor |Author|AuthorInitials|CorpAuthor|ModeSpec|OtherCredit |ProductName|ProductNumber|RevHistory |Remark|Subscript|Superscript |InlineGraphic|InlineMediaObject|InlineEquation |IndexTerm " nil) ("local.ndxterm.char.mix" text "" nil) ("ndxterm.char.mix" text "#PCDATA |FootnoteRef|XRef |Abbrev|Acronym|Citation|CiteRefEntry|CiteTitle|Emphasis |FirstTerm|ForeignPhrase|GlossTerm|Footnote|Phrase |Quote|Trademark|WordAsWord |Link|OLink|ULink |Action|Application |ClassName|MethodName|InterfaceName|ExceptionName |OOClass|OOInterface|OOException |Command|ComputerOutput |Database|Email|EnVar|ErrorCode|ErrorName|ErrorType|Filename |Function|GUIButton|GUIIcon|GUILabel|GUIMenu|GUIMenuItem |GUISubmenu|Hardware|Interface|KeyCap |KeyCode|KeyCombo|KeySym|Literal|Constant|Markup|MediaLabel |MenuChoice|MouseButton|Option|Optional|Parameter |Prompt|Property|Replaceable|ReturnValue|SGMLTag|StructField |StructName|Symbol|SystemItem|Token|Type|UserInput|VarName |Anchor |Author|AuthorInitials|CorpAuthor|ModeSpec|OtherCredit |ProductName|ProductNumber|RevHistory |Remark|Subscript|Superscript |InlineGraphic|InlineMediaObject " nil) ("local.cptr.char.mix" text "" nil) ("cptr.char.mix" text "#PCDATA |Link|OLink|ULink |Action|Application |ClassName|MethodName|InterfaceName|ExceptionName |OOClass|OOInterface|OOException |Command|ComputerOutput |Database|Email|EnVar|ErrorCode|ErrorName|ErrorType|Filename |Function|GUIButton|GUIIcon|GUILabel|GUIMenu|GUIMenuItem |GUISubmenu|Hardware|Interface|KeyCap |KeyCode|KeyCombo|KeySym|Literal|Constant|Markup|MediaLabel |MenuChoice|MouseButton|Option|Optional|Parameter |Prompt|Property|Replaceable|ReturnValue|SGMLTag|StructField |StructName|Symbol|SystemItem|Token|Type|UserInput|VarName |Anchor |Remark|Subscript|Superscript |InlineGraphic|InlineMediaObject |IndexTerm " nil) ("local.smallcptr.char.mix" text "" nil) ("smallcptr.char.mix" text "#PCDATA |Replaceable |InlineGraphic|InlineMediaObject |IndexTerm " nil) ("local.word.char.mix" text "" nil) ("word.char.mix" text "#PCDATA |Acronym|Emphasis|Trademark |Link|OLink|ULink |Anchor |Remark|Subscript|Superscript |InlineGraphic|InlineMediaObject |IndexTerm " nil) ("local.docinfo.char.mix" text "" nil) ("docinfo.char.mix" text "#PCDATA |Link|OLink|ULink |Emphasis|Trademark |Replaceable |Remark|Subscript|Superscript |InlineGraphic|InlineMediaObject |IndexTerm " nil) ("formalobject.title.content" text "Title, TitleAbbrev?" nil) ("arch.attrib" text "Arch CDATA #IMPLIED" nil) ("condition.attrib" text "Condition CDATA #IMPLIED" nil) ("conformance.attrib" text "Conformance NMTOKENS #IMPLIED" nil) ("os.attrib" text "OS CDATA #IMPLIED" nil) ("revision.attrib" text "Revision CDATA #IMPLIED" nil) ("security.attrib" text "Security CDATA #IMPLIED" nil) ("userlevel.attrib" text "UserLevel CDATA #IMPLIED" nil) ("vendor.attrib" text "Vendor CDATA #IMPLIED" nil) ("local.effectivity.attrib" text "" nil) ("effectivity.attrib" text "Arch CDATA #IMPLIED Condition CDATA #IMPLIED Conformance NMTOKENS #IMPLIED OS CDATA #IMPLIED Revision CDATA #IMPLIED Security CDATA #IMPLIED UserLevel CDATA #IMPLIED Vendor CDATA #IMPLIED " nil) ("id.attrib" text "Id ID #IMPLIED" nil) ("idreq.attrib" text "Id ID #REQUIRED" nil) ("lang.attrib" text "Lang CDATA #IMPLIED" nil) ("remap.attrib" text "Remap CDATA #IMPLIED" nil) ("role.attrib" text "Role CDATA #IMPLIED" nil) ("xreflabel.attrib" text "XRefLabel CDATA #IMPLIED" nil) ("revisionflag.attrib" text "RevisionFlag (Changed |Added |Deleted |Off) #IMPLIED" nil) ("local.common.attrib" text "" nil) ("common.attrib" text "Id ID #IMPLIED Lang CDATA #IMPLIED Remap CDATA #IMPLIED --Role is included explicitly on each element-- XRefLabel CDATA #IMPLIED RevisionFlag (Changed |Added |Deleted |Off) #IMPLIED Arch CDATA #IMPLIED Condition CDATA #IMPLIED Conformance NMTOKENS #IMPLIED OS CDATA #IMPLIED Revision CDATA #IMPLIED Security CDATA #IMPLIED UserLevel CDATA #IMPLIED Vendor CDATA #IMPLIED " nil) ("idreq.common.attrib" text "Id ID #REQUIRED Lang CDATA #IMPLIED Remap CDATA #IMPLIED --Role is included explicitly on each element-- XRefLabel CDATA #IMPLIED RevisionFlag (Changed |Added |Deleted |Off) #IMPLIED Arch CDATA #IMPLIED Condition CDATA #IMPLIED Conformance NMTOKENS #IMPLIED OS CDATA #IMPLIED Revision CDATA #IMPLIED Security CDATA #IMPLIED UserLevel CDATA #IMPLIED Vendor CDATA #IMPLIED " nil) ("local.graphics.attrib" text "" nil) ("graphics.attrib" text " --EntityRef: Name of an external entity containing the content of the graphic-- EntityRef ENTITY #IMPLIED --FileRef: Filename, qualified by a pathname if desired, designating the file containing the content of the graphic-- FileRef CDATA #IMPLIED --Format: Notation of the element content, if any-- Format (BMP| CGM-CHAR | CGM-BINARY | CGM-CLEAR | DITROFF | DVI | EPS | EQN | FAX | GIF | GIF87a | GIF89a | JPG | JPEG | IGES | PCX | PIC | PNG | PS | SGML | TBL | TEX | TIFF | WMF | WPG | linespecific ) #IMPLIED --SrcCredit: Information about the source of the Graphic-- SrcCredit CDATA #IMPLIED --Width: Same as CALS reprowid (desired width)-- Width NUTOKEN #IMPLIED --Depth: Same as CALS reprodep (desired depth)-- Depth NUTOKEN #IMPLIED --Align: Same as CALS hplace with 'none' removed; #IMPLIED means application-specific-- Align (Left |Right |Center) #IMPLIED --Scale: Conflation of CALS hscale and vscale-- Scale NUMBER #IMPLIED --Scalefit: Same as CALS scalefit-- Scalefit NUMBER #IMPLIED " nil) ("local.keyaction.attrib" text "" nil) ("keyaction.attrib" text " --Action: Key combination type; default is unspecified if one child element, Simul if there is more than one; if value is Other, the OtherAction attribute must have a nonempty value-- Action (Click |Double-Click |Press |Seq |Simul |Other) #IMPLIED --OtherAction: User-defined key combination type-- OtherAction CDATA #IMPLIED " nil) ("label.attrib" text "Label CDATA #IMPLIED" nil) ("linespecific.attrib" text "Format NOTATION (linespecific) linespecific LineNumbering (Numbered|Unnumbered) #IMPLIED" nil) ("linkend.attrib" text "Linkend IDREF #IMPLIED" nil) ("linkendreq.attrib" text "Linkend IDREF #REQUIRED" nil) ("linkends.attrib" text "Linkends IDREFS #IMPLIED" nil) ("local.mark.attrib" text "" nil) ("mark.attrib" text "Mark CDATA #IMPLIED " nil) ("moreinfo.attrib" text "MoreInfo (RefEntry|None) None" nil) ("pagenum.attrib" text "Pagenum CDATA #IMPLIED" nil) ("local.status.attrib" text "" nil) ("status.attrib" text "Status CDATA #IMPLIED " nil) ("width.attrib" text "Width NUMBER #IMPLIED" nil) ("title.module" text "INCLUDE" nil) ("local.title.attrib" text "" nil) ("title.role.attrib" text "Role CDATA #IMPLIED" nil) ("title.element" text "INCLUDE" nil) ("title.attlist" text "INCLUDE" nil) ("titleabbrev.module" text "INCLUDE" nil) ("local.titleabbrev.attrib" text "" nil) ("titleabbrev.role.attrib" text "Role CDATA #IMPLIED" nil) ("titleabbrev.element" text "INCLUDE" nil) ("titleabbrev.attlist" text "INCLUDE" nil) ("subtitle.module" text "INCLUDE" nil) ("local.subtitle.attrib" text "" nil) ("subtitle.role.attrib" text "Role CDATA #IMPLIED" nil) ("subtitle.element" text "INCLUDE" nil) ("subtitle.attlist" text "INCLUDE" nil) ("local.person.ident.mix" text "" nil) ("person.ident.mix" text "Honorific|FirstName|Surname|Lineage|OtherName|Affiliation |AuthorBlurb|Contrib " nil) ("local.bibliocomponent.mix" text "" nil) ("bibliocomponent.mix" text "Abbrev|Abstract|Address|ArtPageNums|Author |AuthorGroup|AuthorInitials|BiblioMisc|BiblioSet |Collab|ConfGroup|ContractNum|ContractSponsor |Copyright|CorpAuthor|CorpName|Date|Edition |Editor|InvPartNumber|ISBN|ISSN|IssueNum|OrgName |OtherCredit|PageNums|PrintHistory|ProductName |ProductNumber|PubDate|Publisher|PublisherName |PubsNumber|ReleaseInfo|RevHistory|SeriesVolNums |Subtitle|Title|TitleAbbrev|VolumeNum|CiteTitle |Honorific|FirstName|Surname|Lineage|OtherName|Affiliation |AuthorBlurb|Contrib |IndexTerm " nil) ("biblioentry.module" text "INCLUDE" nil) ("local.biblioentry.attrib" text "" nil) ("biblioentry.role.attrib" text "Role CDATA #IMPLIED" nil) ("biblioentry.element" text "INCLUDE" nil) ("biblioentry.attlist" text "INCLUDE" nil) ("bibliomixed.module" text "INCLUDE" nil) ("local.bibliomixed.attrib" text "" nil) ("bibliomixed.role.attrib" text "Role CDATA #IMPLIED" nil) ("bibliomixed.element" text "INCLUDE" nil) ("bibliomixed.attlist" text "INCLUDE" nil) ("articleinfo.module" text "INCLUDE" nil) ("local.articleinfo.attrib" text "" nil) ("articleinfo.role.attrib" text "Role CDATA #IMPLIED" nil) ("articleinfo.element" text "INCLUDE" nil) ("articleinfo.attlist" text "INCLUDE" nil) ("biblioset.module" text "INCLUDE" nil) ("local.biblioset.attrib" text "" nil) ("biblioset.role.attrib" text "Role CDATA #IMPLIED" nil) ("biblioset.element" text "INCLUDE" nil) ("biblioset.attlist" text "INCLUDE" nil) ("bibliomset.module" text "INCLUDE" nil) ("bibliomset.role.attrib" text "Role CDATA #IMPLIED" nil) ("local.bibliomset.attrib" text "" nil) ("bibliomset.element" text "INCLUDE" nil) ("bibliomset.attlist" text "INCLUDE" nil) ("bibliomisc.module" text "INCLUDE" nil) ("local.bibliomisc.attrib" text "" nil) ("bibliomisc.role.attrib" text "Role CDATA #IMPLIED" nil) ("bibliomisc.element" text "INCLUDE" nil) ("bibliomisc.attlist" text "INCLUDE" nil) ("subjectset.content.module" text "INCLUDE" nil) ("subjectset.module" text "INCLUDE" nil) ("local.subjectset.attrib" text "" nil) ("subjectset.role.attrib" text "Role CDATA #IMPLIED" nil) ("subjectset.element" text "INCLUDE" nil) ("subjectset.attlist" text "INCLUDE" nil) ("subject.module" text "INCLUDE" nil) ("local.subject.attrib" text "" nil) ("subject.role.attrib" text "Role CDATA #IMPLIED" nil) ("subject.element" text "INCLUDE" nil) ("subject.attlist" text "INCLUDE" nil) ("subjectterm.module" text "INCLUDE" nil) ("local.subjectterm.attrib" text "" nil) ("subjectterm.role.attrib" text "Role CDATA #IMPLIED" nil) ("subjectterm.element" text "INCLUDE" nil) ("subjectterm.attlist" text "INCLUDE" nil) ("keywordset.content.module" text "INCLUDE" nil) ("local.keywordset.attrib" text "" nil) ("keywordset.module" text "INCLUDE" nil) ("keywordset.role.attrib" text "Role CDATA #IMPLIED" nil) ("keywordset.element" text "INCLUDE" nil) ("keywordset.attlist" text "INCLUDE" nil) ("keyword.module" text "INCLUDE" nil) ("local.keyword.attrib" text "" nil) ("keyword.role.attrib" text "Role CDATA #IMPLIED" nil) ("keyword.element" text "INCLUDE" nil) ("keyword.attlist" text "INCLUDE" nil) ("itermset.module" text "INCLUDE" nil) ("local.itermset.attrib" text "" nil) ("itermset.role.attrib" text "Role CDATA #IMPLIED" nil) ("itermset.element" text "INCLUDE" nil) ("itermset.attlist" text "INCLUDE" nil) ("msgset.content.module" text "INCLUDE" nil) ("msgset.module" text "INCLUDE" nil) ("local.msgset.attrib" text "" nil) ("msgset.role.attrib" text "Role CDATA #IMPLIED" nil) ("msgset.element" text "INCLUDE" nil) ("msgset.attlist" text "INCLUDE" nil) ("msgentry.module" text "INCLUDE" nil) ("local.msgentry.attrib" text "" nil) ("msgentry.role.attrib" text "Role CDATA #IMPLIED" nil) ("msgentry.element" text "INCLUDE" nil) ("msgentry.attlist" text "INCLUDE" nil) ("simplemsgentry.module" text "INCLUDE" nil) ("local.simplemsgentry.attrib" text "" nil) ("simplemsgentry.role.attrib" text "Role CDATA #IMPLIED" nil) ("simplemsgentry.element" text "INCLUDE" nil) ("simplemsgentry.attlist" text "INCLUDE" nil) ("msg.module" text "INCLUDE" nil) ("local.msg.attrib" text "" nil) ("msg.role.attrib" text "Role CDATA #IMPLIED" nil) ("msg.element" text "INCLUDE" nil) ("msg.attlist" text "INCLUDE" nil) ("msgmain.module" text "INCLUDE" nil) ("local.msgmain.attrib" text "" nil) ("msgmain.role.attrib" text "Role CDATA #IMPLIED" nil) ("msgmain.element" text "INCLUDE" nil) ("msgmain.attlist" text "INCLUDE" nil) ("msgsub.module" text "INCLUDE" nil) ("local.msgsub.attrib" text "" nil) ("msgsub.role.attrib" text "Role CDATA #IMPLIED" nil) ("msgsub.element" text "INCLUDE" nil) ("msgsub.attlist" text "INCLUDE" nil) ("msgrel.module" text "INCLUDE" nil) ("local.msgrel.attrib" text "" nil) ("msgrel.role.attrib" text "Role CDATA #IMPLIED" nil) ("msgrel.element" text "INCLUDE" nil) ("msgrel.attlist" text "INCLUDE" nil) ("msginfo.module" text "INCLUDE" nil) ("local.msginfo.attrib" text "" nil) ("msginfo.role.attrib" text "Role CDATA #IMPLIED" nil) ("msginfo.element" text "INCLUDE" nil) ("msginfo.attlist" text "INCLUDE" nil) ("msglevel.module" text "INCLUDE" nil) ("local.msglevel.attrib" text "" nil) ("msglevel.role.attrib" text "Role CDATA #IMPLIED" nil) ("msglevel.element" text "INCLUDE" nil) ("msglevel.attlist" text "INCLUDE" nil) ("msgorig.module" text "INCLUDE" nil) ("local.msgorig.attrib" text "" nil) ("msgorig.role.attrib" text "Role CDATA #IMPLIED" nil) ("msgorig.element" text "INCLUDE" nil) ("msgorig.attlist" text "INCLUDE" nil) ("msgaud.module" text "INCLUDE" nil) ("local.msgaud.attrib" text "" nil) ("msgaud.role.attrib" text "Role CDATA #IMPLIED" nil) ("msgaud.element" text "INCLUDE" nil) ("msgaud.attlist" text "INCLUDE" nil) ("msgexplan.module" text "INCLUDE" nil) ("local.msgexplan.attrib" text "" nil) ("msgexplan.role.attrib" text "Role CDATA #IMPLIED" nil) ("msgexplan.element" text "INCLUDE" nil) ("msgexplan.attlist" text "INCLUDE" nil) ("qandset.content.module" text "INCLUDE" nil) ("qandset.module" text "INCLUDE" nil) ("local.qandset.attrib" text "" nil) ("qandset.role.attrib" text "Role CDATA #IMPLIED" nil) ("qandset.element" text "INCLUDE" nil) ("qandset.attlist" text "INCLUDE" nil) ("qandadiv.module" text "INCLUDE" nil) ("local.qandadiv.attrib" text "" nil) ("qandadiv.role.attrib" text "Role CDATA #IMPLIED" nil) ("qandadiv.element" text "INCLUDE" nil) ("qandadiv.attlist" text "INCLUDE" nil) ("qandaentry.module" text "INCLUDE" nil) ("local.qandaentry.attrib" text "" nil) ("qandaentry.role.attrib" text "Role CDATA #IMPLIED" nil) ("qandaentry.element" text "INCLUDE" nil) ("qandaentry.attlist" text "INCLUDE" nil) ("question.module" text "INCLUDE" nil) ("local.question.attrib" text "" nil) ("question.role.attrib" text "Role CDATA #IMPLIED" nil) ("question.element" text "INCLUDE" nil) ("question.attlist" text "INCLUDE" nil) ("answer.module" text "INCLUDE" nil) ("local.answer.attrib" text "" nil) ("answer.role.attrib" text "Role CDATA #IMPLIED" nil) ("answer.element" text "INCLUDE" nil) ("answer.attlist" text "INCLUDE" nil) ("label.module" text "INCLUDE" nil) ("local.label.attrib" text "" nil) ("label.role.attrib" text "Role CDATA #IMPLIED" nil) ("label.element" text "INCLUDE" nil) ("label.attlist" text "INCLUDE" nil) ("procedure.content.module" text "INCLUDE" nil) ("procedure.module" text "INCLUDE" nil) ("local.procedure.attrib" text "" nil) ("procedure.role.attrib" text "Role CDATA #IMPLIED" nil) ("procedure.element" text "INCLUDE" nil) ("procedure.attlist" text "INCLUDE" nil) ("step.module" text "INCLUDE" nil) ("local.step.attrib" text "" nil) ("step.role.attrib" text "Role CDATA #IMPLIED" nil) ("step.element" text "INCLUDE" nil) ("step.attlist" text "INCLUDE" nil) ("substeps.module" text "INCLUDE" nil) ("local.substeps.attrib" text "" nil) ("substeps.role.attrib" text "Role CDATA #IMPLIED" nil) ("substeps.element" text "INCLUDE" nil) ("substeps.attlist" text "INCLUDE" nil) ("sidebar.content.model" text "INCLUDE" nil) ("sidebarinfo.module" text "INCLUDE" nil) ("local.sidebarinfo.attrib" text "" nil) ("sidebarinfo.role.attrib" text "Role CDATA #IMPLIED" nil) ("sidebarinfo.element" text "INCLUDE" nil) ("sidebarinfo.attlist" text "INCLUDE" nil) ("sidebar.module" text "INCLUDE" nil) ("local.sidebar.attrib" text "" nil) ("sidebar.role.attrib" text "Role CDATA #IMPLIED" nil) ("sidebar.element" text "INCLUDE" nil) ("sidebar.attlist" text "INCLUDE" nil) ("abstract.module" text "INCLUDE" nil) ("local.abstract.attrib" text "" nil) ("abstract.role.attrib" text "Role CDATA #IMPLIED" nil) ("abstract.element" text "INCLUDE" nil) ("abstract.attlist" text "INCLUDE" nil) ("authorblurb.module" text "INCLUDE" nil) ("local.authorblurb.attrib" text "" nil) ("authorblurb.role.attrib" text "Role CDATA #IMPLIED" nil) ("authorblurb.element" text "INCLUDE" nil) ("authorblurb.attlist" text "INCLUDE" nil) ("blockquote.module" text "INCLUDE" nil) ("local.blockquote.attrib" text "" nil) ("blockquote.role.attrib" text "Role CDATA #IMPLIED" nil) ("blockquote.element" text "INCLUDE" nil) ("blockquote.attlist" text "INCLUDE" nil) ("attribution.module" text "INCLUDE" nil) ("local.attribution.attrib" text "" nil) ("attribution.role.attrib" text "Role CDATA #IMPLIED" nil) ("attribution.element" text "INCLUDE" nil) ("attribution.attlist" text "INCLUDE" nil) ("bridgehead.module" text "INCLUDE" nil) ("local.bridgehead.attrib" text "" nil) ("bridgehead.role.attrib" text "Role CDATA #IMPLIED" nil) ("bridgehead.element" text "INCLUDE" nil) ("bridgehead.attlist" text "INCLUDE" nil) ("remark.module" text "INCLUDE" nil) ("local.remark.attrib" text "" nil) ("remark.role.attrib" text "Role CDATA #IMPLIED" nil) ("remark.element" text "INCLUDE" nil) ("remark.attlist" text "INCLUDE" nil) ("epigraph.module" text "INCLUDE" nil) ("local.epigraph.attrib" text "" nil) ("epigraph.role.attrib" text "Role CDATA #IMPLIED" nil) ("epigraph.element" text "INCLUDE" nil) ("epigraph.attlist" text "INCLUDE" nil) ("footnote.module" text "INCLUDE" nil) ("local.footnote.attrib" text "" nil) ("footnote.role.attrib" text "Role CDATA #IMPLIED" nil) ("footnote.element" text "INCLUDE" nil) ("footnote.attlist" text "INCLUDE" nil) ("highlights.module" text "INCLUDE" nil) ("local.highlights.attrib" text "" nil) ("highlights.role.attrib" text "Role CDATA #IMPLIED" nil) ("highlights.element" text "INCLUDE" nil) ("highlights.attlist" text "INCLUDE" nil) ("formalpara.module" text "INCLUDE" nil) ("local.formalpara.attrib" text "" nil) ("formalpara.role.attrib" text "Role CDATA #IMPLIED" nil) ("formalpara.element" text "INCLUDE" nil) ("formalpara.attlist" text "INCLUDE" nil) ("para.module" text "INCLUDE" nil) ("local.para.attrib" text "" nil) ("para.role.attrib" text "Role CDATA #IMPLIED" nil) ("para.element" text "INCLUDE" nil) ("para.attlist" text "INCLUDE" nil) ("simpara.module" text "INCLUDE" nil) ("local.simpara.attrib" text "" nil) ("simpara.role.attrib" text "Role CDATA #IMPLIED" nil) ("simpara.element" text "INCLUDE" nil) ("simpara.attlist" text "INCLUDE" nil) ("admon.module" text "INCLUDE" nil) ("local.admon.attrib" text "" nil) ("admon.role.attrib" text "Role CDATA #IMPLIED" nil) ("admon.elements" text "INCLUDE" nil) ("admon.attlists" text "INCLUDE" nil) ("glosslist.module" text "INCLUDE" nil) ("local.glosslist.attrib" text "" nil) ("glosslist.role.attrib" text "Role CDATA #IMPLIED" nil) ("glosslist.element" text "INCLUDE" nil) ("glosslist.attlist" text "INCLUDE" nil) ("glossentry.content.module" text "INCLUDE" nil) ("glossentry.module" text "INCLUDE" nil) ("local.glossentry.attrib" text "" nil) ("glossentry.role.attrib" text "Role CDATA #IMPLIED" nil) ("glossentry.element" text "INCLUDE" nil) ("glossentry.attlist" text "INCLUDE" nil) ("glossdef.module" text "INCLUDE" nil) ("local.glossdef.attrib" text "" nil) ("glossdef.role.attrib" text "Role CDATA #IMPLIED" nil) ("glossdef.element" text "INCLUDE" nil) ("glossdef.attlist" text "INCLUDE" nil) ("glosssee.module" text "INCLUDE" nil) ("local.glosssee.attrib" text "" nil) ("glosssee.role.attrib" text "Role CDATA #IMPLIED" nil) ("glosssee.element" text "INCLUDE" nil) ("glosssee.attlist" text "INCLUDE" nil) ("glossseealso.module" text "INCLUDE" nil) ("local.glossseealso.attrib" text "" nil) ("glossseealso.role.attrib" text "Role CDATA #IMPLIED" nil) ("glossseealso.element" text "INCLUDE" nil) ("glossseealso.attlist" text "INCLUDE" nil) ("itemizedlist.module" text "INCLUDE" nil) ("local.itemizedlist.attrib" text "" nil) ("itemizedlist.role.attrib" text "Role CDATA #IMPLIED" nil) ("itemizedlist.element" text "INCLUDE" nil) ("itemizedlist.attlist" text "INCLUDE" nil) ("orderedlist.module" text "INCLUDE" nil) ("local.orderedlist.attrib" text "" nil) ("orderedlist.role.attrib" text "Role CDATA #IMPLIED" nil) ("orderedlist.element" text "INCLUDE" nil) ("orderedlist.attlist" text "INCLUDE" nil) ("listitem.module" text "INCLUDE" nil) ("local.listitem.attrib" text "" nil) ("listitem.role.attrib" text "Role CDATA #IMPLIED" nil) ("listitem.element" text "INCLUDE" nil) ("listitem.attlist" text "INCLUDE" nil) ("segmentedlist.content.module" text "INCLUDE" nil) ("segmentedlist.module" text "INCLUDE" nil) ("local.segmentedlist.attrib" text "" nil) ("segmentedlist.role.attrib" text "Role CDATA #IMPLIED" nil) ("segmentedlist.element" text "INCLUDE" nil) ("segmentedlist.attlist" text "INCLUDE" nil) ("segtitle.module" text "INCLUDE" nil) ("local.segtitle.attrib" text "" nil) ("segtitle.role.attrib" text "Role CDATA #IMPLIED" nil) ("segtitle.element" text "INCLUDE" nil) ("segtitle.attlist" text "INCLUDE" nil) ("seglistitem.module" text "INCLUDE" nil) ("local.seglistitem.attrib" text "" nil) ("seglistitem.role.attrib" text "Role CDATA #IMPLIED" nil) ("seglistitem.element" text "INCLUDE" nil) ("seglistitem.attlist" text "INCLUDE" nil) ("seg.module" text "INCLUDE" nil) ("local.seg.attrib" text "" nil) ("seg.role.attrib" text "Role CDATA #IMPLIED" nil) ("seg.element" text "INCLUDE" nil) ("seg.attlist" text "INCLUDE" nil) ("simplelist.content.module" text "INCLUDE" nil) ("simplelist.module" text "INCLUDE" nil) ("local.simplelist.attrib" text "" nil) ("simplelist.role.attrib" text "Role CDATA #IMPLIED" nil) ("simplelist.element" text "INCLUDE" nil) ("simplelist.attlist" text "INCLUDE" nil) ("member.module" text "INCLUDE" nil) ("local.member.attrib" text "" nil) ("member.role.attrib" text "Role CDATA #IMPLIED" nil) ("member.element" text "INCLUDE" nil) ("member.attlist" text "INCLUDE" nil) ("variablelist.content.module" text "INCLUDE" nil) ("variablelist.module" text "INCLUDE" nil) ("local.variablelist.attrib" text "" nil) ("variablelist.role.attrib" text "Role CDATA #IMPLIED" nil) ("variablelist.element" text "INCLUDE" nil) ("variablelist.attlist" text "INCLUDE" nil) ("varlistentry.module" text "INCLUDE" nil) ("local.varlistentry.attrib" text "" nil) ("varlistentry.role.attrib" text "Role CDATA #IMPLIED" nil) ("varlistentry.element" text "INCLUDE" nil) ("varlistentry.attlist" text "INCLUDE" nil) ("term.module" text "INCLUDE" nil) ("local.term.attrib" text "" nil) ("term.role.attrib" text "Role CDATA #IMPLIED" nil) ("term.element" text "INCLUDE" nil) ("term.attlist" text "INCLUDE" nil) ("calloutlist.content.module" text "INCLUDE" nil) ("calloutlist.module" text "INCLUDE" nil) ("local.calloutlist.attrib" text "" nil) ("calloutlist.role.attrib" text "Role CDATA #IMPLIED" nil) ("calloutlist.element" text "INCLUDE" nil) ("calloutlist.attlist" text "INCLUDE" nil) ("callout.module" text "INCLUDE" nil) ("local.callout.attrib" text "" nil) ("callout.role.attrib" text "Role CDATA #IMPLIED" nil) ("callout.element" text "INCLUDE" nil) ("callout.attlist" text "INCLUDE" nil) ("example.module" text "INCLUDE" nil) ("local.example.attrib" text "" nil) ("example.role.attrib" text "Role CDATA #IMPLIED" nil) ("example.element" text "INCLUDE" nil) ("example.attlist" text "INCLUDE" nil) ("informalexample.module" text "INCLUDE" nil) ("local.informalexample.attrib" text "" nil) ("informalexample.role.attrib" text "Role CDATA #IMPLIED" nil) ("informalexample.element" text "INCLUDE" nil) ("informalexample.attlist" text "INCLUDE" nil) ("programlistingco.module" text "INCLUDE" nil) ("local.programlistingco.attrib" text "" nil) ("programlistingco.role.attrib" text "Role CDATA #IMPLIED" nil) ("programlistingco.element" text "INCLUDE" nil) ("programlistingco.attlist" text "INCLUDE" nil) ("areaspec.content.module" text "INCLUDE" nil) ("areaspec.module" text "INCLUDE" nil) ("local.areaspec.attrib" text "" nil) ("areaspec.role.attrib" text "Role CDATA #IMPLIED" nil) ("areaspec.element" text "INCLUDE" nil) ("areaspec.attlist" text "INCLUDE" nil) ("area.module" text "INCLUDE" nil) ("local.area.attrib" text "" nil) ("area.role.attrib" text "Role CDATA #IMPLIED" nil) ("area.element" text "INCLUDE" nil) ("area.attlist" text "INCLUDE" nil) ("areaset.module" text "INCLUDE" nil) ("local.areaset.attrib" text "" nil) ("areaset.role.attrib" text "Role CDATA #IMPLIED" nil) ("areaset.element" text "INCLUDE" nil) ("areaset.attlist" text "INCLUDE" nil) ("programlisting.module" text "INCLUDE" nil) ("local.programlisting.attrib" text "" nil) ("programlisting.role.attrib" text "Role CDATA #IMPLIED" nil) ("programlisting.element" text "INCLUDE" nil) ("programlisting.attlist" text "INCLUDE" nil) ("literallayout.module" text "INCLUDE" nil) ("local.literallayout.attrib" text "" nil) ("literallayout.role.attrib" text "Role CDATA #IMPLIED" nil) ("literallayout.element" text "INCLUDE" nil) ("literallayout.attlist" text "INCLUDE" nil) ("screenco.module" text "INCLUDE" nil) ("local.screenco.attrib" text "" nil) ("screenco.role.attrib" text "Role CDATA #IMPLIED" nil) ("screenco.element" text "INCLUDE" nil) ("screenco.attlist" text "INCLUDE" nil) ("screen.module" text "INCLUDE" nil) ("local.screen.attrib" text "" nil) ("screen.role.attrib" text "Role CDATA #IMPLIED" nil) ("screen.element" text "INCLUDE" nil) ("screen.attlist" text "INCLUDE" nil) ("screenshot.content.module" text "INCLUDE" nil) ("screenshot.module" text "INCLUDE" nil) ("local.screenshot.attrib" text "" nil) ("screenshot.role.attrib" text "Role CDATA #IMPLIED" nil) ("screenshot.element" text "INCLUDE" nil) ("screenshot.attlist" text "INCLUDE" nil) ("screeninfo.module" text "INCLUDE" nil) ("local.screeninfo.attrib" text "" nil) ("screeninfo.role.attrib" text "Role CDATA #IMPLIED" nil) ("screeninfo.element" text "INCLUDE" nil) ("screeninfo.attlist" text "INCLUDE" nil) ("figure.module" text "INCLUDE" nil) ("local.figure.attrib" text "" nil) ("figure.role.attrib" text "Role CDATA #IMPLIED" nil) ("figure.element" text "INCLUDE" nil) ("figure.attlist" text "INCLUDE" nil) ("informalfigure.module" text "INCLUDE" nil) ("local.informalfigure.attrib" text "" nil) ("informalfigure.role.attrib" text "Role CDATA #IMPLIED" nil) ("informalfigure.element" text "INCLUDE" nil) ("informalfigure.attlist" text "INCLUDE" nil) ("graphicco.module" text "INCLUDE" nil) ("local.graphicco.attrib" text "" nil) ("graphicco.role.attrib" text "Role CDATA #IMPLIED" nil) ("graphicco.element" text "INCLUDE" nil) ("graphicco.attlist" text "INCLUDE" nil) ("graphic.module" text "INCLUDE" nil) ("local.graphic.attrib" text "" nil) ("graphic.role.attrib" text "Role CDATA #IMPLIED" nil) ("graphic.element" text "INCLUDE" nil) ("graphic.attlist" text "INCLUDE" nil) ("inlinegraphic.module" text "INCLUDE" nil) ("local.inlinegraphic.attrib" text "" nil) ("inlinegraphic.role.attrib" text "Role CDATA #IMPLIED" nil) ("inlinegraphic.element" text "INCLUDE" nil) ("inlinegraphic.attlist" text "INCLUDE" nil) ("mediaobject.content.module" text "INCLUDE" nil) ("mediaobject.module" text "INCLUDE" nil) ("local.mediaobject.attrib" text "" nil) ("mediaobject.role.attrib" text "Role CDATA #IMPLIED" nil) ("mediaobject.element" text "INCLUDE" nil) ("mediaobject.attlist" text "INCLUDE" nil) ("inlinemediaobject.module" text "INCLUDE" nil) ("local.inlinemediaobject.attrib" text "" nil) ("inlinemediaobject.role.attrib" text "Role CDATA #IMPLIED" nil) ("inlinemediaobject.element" text "INCLUDE" nil) ("inlinemediaobject.attlist" text "INCLUDE" nil) ("videoobject.module" text "INCLUDE" nil) ("local.videoobject.attrib" text "" nil) ("videoobject.role.attrib" text "Role CDATA #IMPLIED" nil) ("videoobject.element" text "INCLUDE" nil) ("videoobject.attlist" text "INCLUDE" nil) ("audioobject.module" text "INCLUDE" nil) ("local.audioobject.attrib" text "" nil) ("audioobject.role.attrib" text "Role CDATA #IMPLIED" nil) ("audioobject.element" text "INCLUDE" nil) ("audioobject.attlist" text "INCLUDE" nil) ("imageobject.module" text "INCLUDE" nil) ("local.imageobject.attrib" text "" nil) ("imageobject.role.attrib" text "Role CDATA #IMPLIED" nil) ("imageobject.element" text "INCLUDE" nil) ("imageobject.attlist" text "INCLUDE" nil) ("textobject.module" text "INCLUDE" nil) ("local.textobject.attrib" text "" nil) ("textobject.role.attrib" text "Role CDATA #IMPLIED" nil) ("textobject.element" text "INCLUDE" nil) ("textobject.attlist" text "INCLUDE" nil) ("objectinfo.module" text "INCLUDE" nil) ("local.objectinfo.attrib" text "" nil) ("objectinfo.role.attrib" text "Role CDATA #IMPLIED" nil) ("objectinfo.element" text "INCLUDE" nil) ("objectinfo.attlist" text "INCLUDE" nil) ("local.objectdata.attrib" text "" nil) ("objectdata.attrib" text " --EntityRef: Name of an external entity containing the content of the object data-- EntityRef ENTITY #IMPLIED --FileRef: Filename, qualified by a pathname if desired, designating the file containing the content of the object data-- FileRef CDATA #IMPLIED --Format: Notation of the element content, if any-- Format (BMP| CGM-CHAR | CGM-BINARY | CGM-CLEAR | DITROFF | DVI | EPS | EQN | FAX | GIF | GIF87a | GIF89a | JPG | JPEG | IGES | PCX | PIC | PNG | PS | SGML | TBL | TEX | TIFF | WMF | WPG | linespecific ) #IMPLIED --SrcCredit: Information about the source of the image-- SrcCredit CDATA #IMPLIED " nil) ("videodata.module" text "INCLUDE" nil) ("local.videodata.attrib" text "" nil) ("videodata.role.attrib" text "Role CDATA #IMPLIED" nil) ("videodata.element" text "INCLUDE" nil) ("videodata.attlist" text "INCLUDE" nil) ("audiodata.module" text "INCLUDE" nil) ("local.audiodata.attrib" text "" nil) ("audiodata.role.attrib" text "Role CDATA #IMPLIED" nil) ("audiodata.element" text "INCLUDE" nil) ("audiodata.attlist" text "INCLUDE" nil) ("imagedata.module" text "INCLUDE" nil) ("local.imagedata.attrib" text "" nil) ("imagedata.role.attrib" text "Role CDATA #IMPLIED" nil) ("imagedata.element" text "INCLUDE" nil) ("imagedata.attlist" text "INCLUDE" nil) ("caption.module" text "INCLUDE" nil) ("local.caption.attrib" text "" nil) ("caption.role.attrib" text "Role CDATA #IMPLIED" nil) ("caption.element" text "INCLUDE" nil) ("caption.attlist" text "INCLUDE" nil) ("mediaobjectco.module" text "INCLUDE" nil) ("local.mediaobjectco.attrib" text "" nil) ("mediaobjectco.role.attrib" text "Role CDATA #IMPLIED" nil) ("mediaobjectco.element" text "INCLUDE" nil) ("mediaobjectco.attlist" text "INCLUDE" nil) ("imageobjectco.module" text "INCLUDE" nil) ("local.imageobjectco.attrib" text "" nil) ("imageobjectco.role.attrib" text "Role CDATA #IMPLIED" nil) ("imageobjectco.element" text "INCLUDE" nil) ("imageobjectco.attlist" text "INCLUDE" nil) ("equation.content" text "(Alt?, (Graphic+|MediaObject+))" nil) ("inlineequation.content" text "(Alt?, (Graphic+|InlineMediaObject+))" nil) ("equation.module" text "INCLUDE" nil) ("local.equation.attrib" text "" nil) ("equation.role.attrib" text "Role CDATA #IMPLIED" nil) ("equation.element" text "INCLUDE" nil) ("equation.attlist" text "INCLUDE" nil) ("informalequation.module" text "INCLUDE" nil) ("local.informalequation.attrib" text "" nil) ("informalequation.role.attrib" text "Role CDATA #IMPLIED" nil) ("informalequation.element" text "INCLUDE" nil) ("informalequation.attlist" text "INCLUDE" nil) ("inlineequation.module" text "INCLUDE" nil) ("local.inlineequation.attrib" text "" nil) ("inlineequation.role.attrib" text "Role CDATA #IMPLIED" nil) ("inlineequation.element" text "INCLUDE" nil) ("inlineequation.attlist" text "INCLUDE" nil) ("alt.module" text "INCLUDE" nil) ("local.alt.attrib" text "" nil) ("alt.role.attrib" text "Role CDATA #IMPLIED" nil) ("alt.element" text "INCLUDE" nil) ("alt.attlist" text "INCLUDE" nil) ("table.module" text "INCLUDE" nil) ("tables.role.attrib" text "Role CDATA #IMPLIED" nil) ("bodyatt" text "Label CDATA #IMPLIED" nil) ("secur" text "Id ID #IMPLIED Lang CDATA #IMPLIED Remap CDATA #IMPLIED --Role is included explicitly on each element-- XRefLabel CDATA #IMPLIED RevisionFlag (Changed |Added |Deleted |Off) #IMPLIED Arch CDATA #IMPLIED Condition CDATA #IMPLIED Conformance NMTOKENS #IMPLIED OS CDATA #IMPLIED Revision CDATA #IMPLIED Security CDATA #IMPLIED UserLevel CDATA #IMPLIED Vendor CDATA #IMPLIED Role CDATA #IMPLIED" nil) ("tbl.table.name" text "Table" nil) ("tbl.table.mdl" text "((Title, TitleAbbrev?), (IndexTerm )*, (Graphic+|MediaObject+|tgroup+))" nil) ("tbl.table.excep" text "-(InformalTable|Equation|Example|Figure|Table )" nil) ("tbl.row.excep" text "" nil) ("tbl.entry.mdl" text "((CalloutList|GlossList|ItemizedList|OrderedList|SegmentedList |SimpleList|VariableList |Caution|Important|Note|Tip|Warning |LiteralLayout|ProgramListing|ProgramListingCO|Screen |ScreenCO|ScreenShot |FormalPara|Para|SimPara |Graphic|MediaObject )+ | (#PCDATA |FootnoteRef|XRef |Abbrev|Acronym|Citation|CiteRefEntry|CiteTitle|Emphasis |FirstTerm|ForeignPhrase|GlossTerm|Footnote|Phrase |Quote|Trademark|WordAsWord |Link|OLink|ULink |Action|Application |ClassName|MethodName|InterfaceName|ExceptionName |OOClass|OOInterface|OOException |Command|ComputerOutput |Database|Email|EnVar|ErrorCode|ErrorName|ErrorType|Filename |Function|GUIButton|GUIIcon|GUILabel|GUIMenu|GUIMenuItem |GUISubmenu|Hardware|Interface|KeyCap |KeyCode|KeyCombo|KeySym|Literal|Constant|Markup|MediaLabel |MenuChoice|MouseButton|Option|Optional|Parameter |Prompt|Property|Replaceable|ReturnValue|SGMLTag|StructField |StructName|Symbol|SystemItem|Token|Type|UserInput|VarName |Anchor |Author|AuthorInitials|CorpAuthor|ModeSpec|OtherCredit |ProductName|ProductNumber|RevHistory |Remark|Subscript|Superscript |InlineGraphic|InlineMediaObject|InlineEquation |Synopsis|CmdSynopsis|FuncSynopsis |ClassSynopsis|FieldSynopsis |ConstructorSynopsis |DestructorSynopsis |MethodSynopsis |IndexTerm )+)" nil) ("tbl.entry.excep" text "" nil) ("tbl.entrytbl.excep" text "-(entrytbl)" nil) ("calstbls" text ("-//USA-DOD//DTD Table Model 951010//EN" nil . "/usr/share/sgml/docbook/dtd/4.1/") nil) ("yesorno" text "NUMBER" nil) ("titles" text "title?" nil) ("paracon" text "#PCDATA" nil) ("tbl.table-titles.mdl" text "title?," nil) ("tbl.table-main.mdl" text "(tgroup+|graphic+)" nil) ("tbl.table.att" text " tabstyle NMTOKEN #IMPLIED tocentry NUMBER #IMPLIED shortentry NUMBER #IMPLIED orient (port|land) #IMPLIED pgwide NUMBER #IMPLIED " nil) ("tbl.tgroup.mdl" text "colspec*,spanspec*,thead?,tfoot?,tbody" nil) ("tbl.tgroup.att" text " tgroupstyle NMTOKEN #IMPLIED " nil) ("tbl.hdft.name" text "(thead|tfoot)" nil) ("tbl.hdft.mdl" text "colspec*,row+" nil) ("tbl.hdft.excep" text "-(entrytbl)" nil) ("tbl.row.mdl" text "(entry|entrytbl)+" nil) ("tbl.entrytbl.mdl" text "colspec*,spanspec*,thead?,tbody" nil) ("informaltable.module" text "INCLUDE" nil) ("local.informaltable.attrib" text "" nil) ("informaltable.element" text "INCLUDE" nil) ("informaltable.attlist" text "INCLUDE" nil) ("synopsis.module" text "INCLUDE" nil) ("local.synopsis.attrib" text "" nil) ("synopsis.role.attrib" text "Role CDATA #IMPLIED" nil) ("synopsis.element" text "INCLUDE" nil) ("synopsis.attlist" text "INCLUDE" nil) ("cmdsynopsis.content.module" text "INCLUDE" nil) ("cmdsynopsis.module" text "INCLUDE" nil) ("local.cmdsynopsis.attrib" text "" nil) ("cmdsynopsis.role.attrib" text "Role CDATA #IMPLIED" nil) ("cmdsynopsis.element" text "INCLUDE" nil) ("cmdsynopsis.attlist" text "INCLUDE" nil) ("arg.module" text "INCLUDE" nil) ("local.arg.attrib" text "" nil) ("arg.role.attrib" text "Role CDATA #IMPLIED" nil) ("arg.element" text "INCLUDE" nil) ("arg.attlist" text "INCLUDE" nil) ("group.module" text "INCLUDE" nil) ("local.group.attrib" text "" nil) ("group.role.attrib" text "Role CDATA #IMPLIED" nil) ("group.element" text "INCLUDE" nil) ("group.attlist" text "INCLUDE" nil) ("sbr.module" text "INCLUDE" nil) ("local.sbr.attrib" text "" nil) ("sbr.role.attrib" text "Role CDATA #IMPLIED" nil) ("sbr.element" text "INCLUDE" nil) ("sbr.attlist" text "INCLUDE" nil) ("synopfragmentref.module" text "INCLUDE" nil) ("local.synopfragmentref.attrib" text "" nil) ("synopfragmentref.role.attrib" text "Role CDATA #IMPLIED" nil) ("synopfragmentref.element" text "INCLUDE" nil) ("synopfragmentref.attlist" text "INCLUDE" nil) ("synopfragment.module" text "INCLUDE" nil) ("local.synopfragment.attrib" text "" nil) ("synopfragment.role.attrib" text "Role CDATA #IMPLIED" nil) ("synopfragment.element" text "INCLUDE" nil) ("synopfragment.attlist" text "INCLUDE" nil) ("funcsynopsis.content.module" text "INCLUDE" nil) ("funcsynopsis.module" text "INCLUDE" nil) ("local.funcsynopsis.attrib" text "" nil) ("funcsynopsis.role.attrib" text "Role CDATA #IMPLIED" nil) ("funcsynopsis.element" text "INCLUDE" nil) ("funcsynopsis.attlist" text "INCLUDE" nil) ("funcsynopsisinfo.module" text "INCLUDE" nil) ("local.funcsynopsisinfo.attrib" text "" nil) ("funcsynopsisinfo.role.attrib" text "Role CDATA #IMPLIED" nil) ("funcsynopsisinfo.element" text "INCLUDE" nil) ("funcsynopsisinfo.attlist" text "INCLUDE" nil) ("funcprototype.module" text "INCLUDE" nil) ("local.funcprototype.attrib" text "" nil) ("funcprototype.role.attrib" text "Role CDATA #IMPLIED" nil) ("funcprototype.element" text "INCLUDE" nil) ("funcprototype.attlist" text "INCLUDE" nil) ("funcdef.module" text "INCLUDE" nil) ("local.funcdef.attrib" text "" nil) ("funcdef.role.attrib" text "Role CDATA #IMPLIED" nil) ("funcdef.element" text "INCLUDE" nil) ("funcdef.attlist" text "INCLUDE" nil) ("void.module" text "INCLUDE" nil) ("local.void.attrib" text "" nil) ("void.role.attrib" text "Role CDATA #IMPLIED" nil) ("void.element" text "INCLUDE" nil) ("void.attlist" text "INCLUDE" nil) ("varargs.module" text "INCLUDE" nil) ("local.varargs.attrib" text "" nil) ("varargs.role.attrib" text "Role CDATA #IMPLIED" nil) ("varargs.element" text "INCLUDE" nil) ("varargs.attlist" text "INCLUDE" nil) ("paramdef.module" text "INCLUDE" nil) ("local.paramdef.attrib" text "" nil) ("paramdef.role.attrib" text "Role CDATA #IMPLIED" nil) ("paramdef.element" text "INCLUDE" nil) ("paramdef.attlist" text "INCLUDE" nil) ("funcparams.module" text "INCLUDE" nil) ("local.funcparams.attrib" text "" nil) ("funcparams.role.attrib" text "Role CDATA #IMPLIED" nil) ("funcparams.element" text "INCLUDE" nil) ("funcparams.attlist" text "INCLUDE" nil) ("classsynopsis.content.module" text "INCLUDE" nil) ("classsynopsis.module" text "INCLUDE" nil) ("local.classsynopsis.attrib" text "" nil) ("classsynopsis.role.attrib" text "Role CDATA #IMPLIED" nil) ("classsynopsis.element" text "INCLUDE" nil) ("classsynopsis.attlist" text "INCLUDE" nil) ("classsynopsisinfo.module" text "INCLUDE" nil) ("local.classsynopsisinfo.attrib" text "" nil) ("classsynopsisinfo.role.attrib" text "Role CDATA #IMPLIED" nil) ("classsynopsisinfo.element" text "INCLUDE" nil) ("classsynopsisinfo.attlist" text "INCLUDE" nil) ("ooclass.module" text "INCLUDE" nil) ("local.ooclass.attrib" text "" nil) ("ooclass.role.attrib" text "Role CDATA #IMPLIED" nil) ("ooclass.element" text "INCLUDE" nil) ("ooclass.attlist" text "INCLUDE" nil) ("oointerface.module" text "INCLUDE" nil) ("local.oointerface.attrib" text "" nil) ("oointerface.role.attrib" text "Role CDATA #IMPLIED" nil) ("oointerface.element" text "INCLUDE" nil) ("oointerface.attlist" text "INCLUDE" nil) ("ooexception.module" text "INCLUDE" nil) ("local.ooexception.attrib" text "" nil) ("ooexception.role.attrib" text "Role CDATA #IMPLIED" nil) ("ooexception.element" text "INCLUDE" nil) ("ooexception.attlist" text "INCLUDE" nil) ("modifier.module" text "INCLUDE" nil) ("local.modifier.attrib" text "" nil) ("modifier.role.attrib" text "Role CDATA #IMPLIED" nil) ("modifier.element" text "INCLUDE" nil) ("modifier.attlist" text "INCLUDE" nil) ("interfacename.module" text "INCLUDE" nil) ("local.interfacename.attrib" text "" nil) ("interfacename.role.attrib" text "Role CDATA #IMPLIED" nil) ("interfacename.element" text "INCLUDE" nil) ("interfacename.attlist" text "INCLUDE" nil) ("exceptionname.module" text "INCLUDE" nil) ("local.exceptionname.attrib" text "" nil) ("exceptionname.role.attrib" text "Role CDATA #IMPLIED" nil) ("exceptionname.element" text "INCLUDE" nil) ("exceptionname.attlist" text "INCLUDE" nil) ("fieldsynopsis.module" text "INCLUDE" nil) ("local.fieldsynopsis.attrib" text "" nil) ("fieldsynopsis.role.attrib" text "Role CDATA #IMPLIED" nil) ("fieldsynopsis.element" text "INCLUDE" nil) ("fieldsynopsis.attlist" text "INCLUDE" nil) ("initializer.module" text "INCLUDE" nil) ("local.initializer.attrib" text "" nil) ("initializer.role.attrib" text "Role CDATA #IMPLIED" nil) ("initializer.element" text "INCLUDE" nil) ("initializer.attlist" text "INCLUDE" nil) ("constructorsynopsis.module" text "INCLUDE" nil) ("local.constructorsynopsis.attrib" text "" nil) ("constructorsynopsis.role.attrib" text "Role CDATA #IMPLIED" nil) ("constructorsynopsis.element" text "INCLUDE" nil) ("constructorsynopsis.attlist" text "INCLUDE" nil) ("destructorsynopsis.module" text "INCLUDE" nil) ("local.destructorsynopsis.attrib" text "" nil) ("destructorsynopsis.role.attrib" text "Role CDATA #IMPLIED" nil) ("destructorsynopsis.element" text "INCLUDE" nil) ("destructorsynopsis.attlist" text "INCLUDE" nil) ("methodsynopsis.module" text "INCLUDE" nil) ("local.methodsynopsis.attrib" text "" nil) ("methodsynopsis.role.attrib" text "Role CDATA #IMPLIED" nil) ("methodsynopsis.element" text "INCLUDE" nil) ("methodsynopsis.attlist" text "INCLUDE" nil) ("methodname.module" text "INCLUDE" nil) ("local.methodname.attrib" text "" nil) ("methodname.role.attrib" text "Role CDATA #IMPLIED" nil) ("methodname.element" text "INCLUDE" nil) ("methodname.attlist" text "INCLUDE" nil) ("methodparam.module" text "INCLUDE" nil) ("local.methodparam.attrib" text "" nil) ("methodparam.role.attrib" text "Role CDATA #IMPLIED" nil) ("methodparam.element" text "INCLUDE" nil) ("methodparam.attlist" text "INCLUDE" nil) ("docinfo.content.module" text "INCLUDE" nil) ("ackno.module" text "INCLUDE" nil) ("local.ackno.attrib" text "" nil) ("ackno.role.attrib" text "Role CDATA #IMPLIED" nil) ("ackno.element" text "INCLUDE" nil) ("ackno.attlist" text "INCLUDE" nil) ("address.content.module" text "INCLUDE" nil) ("address.module" text "INCLUDE" nil) ("local.address.attrib" text "" nil) ("address.role.attrib" text "Role CDATA #IMPLIED" nil) ("address.element" text "INCLUDE" nil) ("address.attlist" text "INCLUDE" nil) ("street.module" text "INCLUDE" nil) ("local.street.attrib" text "" nil) ("street.role.attrib" text "Role CDATA #IMPLIED" nil) ("street.element" text "INCLUDE" nil) ("street.attlist" text "INCLUDE" nil) ("pob.module" text "INCLUDE" nil) ("local.pob.attrib" text "" nil) ("pob.role.attrib" text "Role CDATA #IMPLIED" nil) ("pob.element" text "INCLUDE" nil) ("pob.attlist" text "INCLUDE" nil) ("postcode.module" text "INCLUDE" nil) ("local.postcode.attrib" text "" nil) ("postcode.role.attrib" text "Role CDATA #IMPLIED" nil) ("postcode.element" text "INCLUDE" nil) ("postcode.attlist" text "INCLUDE" nil) ("city.module" text "INCLUDE" nil) ("local.city.attrib" text "" nil) ("city.role.attrib" text "Role CDATA #IMPLIED" nil) ("city.element" text "INCLUDE" nil) ("city.attlist" text "INCLUDE" nil) ("state.module" text "INCLUDE" nil) ("local.state.attrib" text "" nil) ("state.role.attrib" text "Role CDATA #IMPLIED" nil) ("state.element" text "INCLUDE" nil) ("state.attlist" text "INCLUDE" nil) ("country.module" text "INCLUDE" nil) ("local.country.attrib" text "" nil) ("country.role.attrib" text "Role CDATA #IMPLIED" nil) ("country.element" text "INCLUDE" nil) ("country.attlist" text "INCLUDE" nil) ("phone.module" text "INCLUDE" nil) ("local.phone.attrib" text "" nil) ("phone.role.attrib" text "Role CDATA #IMPLIED" nil) ("phone.element" text "INCLUDE" nil) ("phone.attlist" text "INCLUDE" nil) ("fax.module" text "INCLUDE" nil) ("local.fax.attrib" text "" nil) ("fax.role.attrib" text "Role CDATA #IMPLIED" nil) ("fax.element" text "INCLUDE" nil) ("fax.attlist" text "INCLUDE" nil) ("otheraddr.module" text "INCLUDE" nil) ("local.otheraddr.attrib" text "" nil) ("otheraddr.role.attrib" text "Role CDATA #IMPLIED" nil) ("otheraddr.element" text "INCLUDE" nil) ("otheraddr.attlist" text "INCLUDE" nil) ("affiliation.content.module" text "INCLUDE" nil) ("affiliation.module" text "INCLUDE" nil) ("local.affiliation.attrib" text "" nil) ("affiliation.role.attrib" text "Role CDATA #IMPLIED" nil) ("affiliation.element" text "INCLUDE" nil) ("affiliation.attlist" text "INCLUDE" nil) ("shortaffil.module" text "INCLUDE" nil) ("local.shortaffil.attrib" text "" nil) ("shortaffil.role.attrib" text "Role CDATA #IMPLIED" nil) ("shortaffil.element" text "INCLUDE" nil) ("shortaffil.attlist" text "INCLUDE" nil) ("jobtitle.module" text "INCLUDE" nil) ("local.jobtitle.attrib" text "" nil) ("jobtitle.role.attrib" text "Role CDATA #IMPLIED" nil) ("jobtitle.element" text "INCLUDE" nil) ("jobtitle.attlist" text "INCLUDE" nil) ("orgdiv.module" text "INCLUDE" nil) ("local.orgdiv.attrib" text "" nil) ("orgdiv.role.attrib" text "Role CDATA #IMPLIED" nil) ("orgdiv.element" text "INCLUDE" nil) ("orgdiv.attlist" text "INCLUDE" nil) ("artpagenums.module" text "INCLUDE" nil) ("local.artpagenums.attrib" text "" nil) ("argpagenums.role.attrib" text "Role CDATA #IMPLIED" nil) ("artpagenums.element" text "INCLUDE" nil) ("artpagenums.attlist" text "INCLUDE" nil) ("author.module" text "INCLUDE" nil) ("local.author.attrib" text "" nil) ("author.role.attrib" text "Role CDATA #IMPLIED" nil) ("author.element" text "INCLUDE" nil) ("author.attlist" text "INCLUDE" nil) ("authorgroup.content.module" text "INCLUDE" nil) ("authorgroup.module" text "INCLUDE" nil) ("local.authorgroup.attrib" text "" nil) ("authorgroup.role.attrib" text "Role CDATA #IMPLIED" nil) ("authorgroup.element" text "INCLUDE" nil) ("authorgroup.attlist" text "INCLUDE" nil) ("collab.content.module" text "INCLUDE" nil) ("collab.module" text "INCLUDE" nil) ("local.collab.attrib" text "" nil) ("collab.role.attrib" text "Role CDATA #IMPLIED" nil) ("collab.element" text "INCLUDE" nil) ("collab.attlist" text "INCLUDE" nil) ("collabname.module" text "INCLUDE" nil) ("local.collabname.attrib" text "" nil) ("collabname.role.attrib" text "Role CDATA #IMPLIED" nil) ("collabname.element" text "INCLUDE" nil) ("collabname.attlist" text "INCLUDE" nil) ("authorinitials.module" text "INCLUDE" nil) ("local.authorinitials.attrib" text "" nil) ("authorinitials.role.attrib" text "Role CDATA #IMPLIED" nil) ("authorinitials.element" text "INCLUDE" nil) ("authorinitials.attlist" text "INCLUDE" nil) ("confgroup.content.module" text "INCLUDE" nil) ("confgroup.module" text "INCLUDE" nil) ("local.confgroup.attrib" text "" nil) ("confgroup.role.attrib" text "Role CDATA #IMPLIED" nil) ("confgroup.element" text "INCLUDE" nil) ("confgroup.attlist" text "INCLUDE" nil) ("confdates.module" text "INCLUDE" nil) ("local.confdates.attrib" text "" nil) ("confdates.role.attrib" text "Role CDATA #IMPLIED" nil) ("confdates.element" text "INCLUDE" nil) ("confdates.attlist" text "INCLUDE" nil) ("conftitle.module" text "INCLUDE" nil) ("local.conftitle.attrib" text "" nil) ("conftitle.role.attrib" text "Role CDATA #IMPLIED" nil) ("conftitle.element" text "INCLUDE" nil) ("conftitle.attlist" text "INCLUDE" nil) ("confnum.module" text "INCLUDE" nil) ("local.confnum.attrib" text "" nil) ("confnum.role.attrib" text "Role CDATA #IMPLIED" nil) ("confnum.element" text "INCLUDE" nil) ("confnum.attlist" text "INCLUDE" nil) ("confsponsor.module" text "INCLUDE" nil) ("local.confsponsor.attrib" text "" nil) ("confsponsor.role.attrib" text "Role CDATA #IMPLIED" nil) ("confsponsor.element" text "INCLUDE" nil) ("confsponsor.attlist" text "INCLUDE" nil) ("contractnum.module" text "INCLUDE" nil) ("local.contractnum.attrib" text "" nil) ("contractnum.role.attrib" text "Role CDATA #IMPLIED" nil) ("contractnum.element" text "INCLUDE" nil) ("contractnum.attlist" text "INCLUDE" nil) ("contractsponsor.module" text "INCLUDE" nil) ("local.contractsponsor.attrib" text "" nil) ("contractsponsor.role.attrib" text "Role CDATA #IMPLIED" nil) ("contractsponsor.element" text "INCLUDE" nil) ("contractsponsor.attlist" text "INCLUDE" nil) ("copyright.content.module" text "INCLUDE" nil) ("copyright.module" text "INCLUDE" nil) ("local.copyright.attrib" text "" nil) ("copyright.role.attrib" text "Role CDATA #IMPLIED" nil) ("copyright.element" text "INCLUDE" nil) ("copyright.attlist" text "INCLUDE" nil) ("year.module" text "INCLUDE" nil) ("local.year.attrib" text "" nil) ("year.role.attrib" text "Role CDATA #IMPLIED" nil) ("year.element" text "INCLUDE" nil) ("year.attlist" text "INCLUDE" nil) ("holder.module" text "INCLUDE" nil) ("local.holder.attrib" text "" nil) ("holder.role.attrib" text "Role CDATA #IMPLIED" nil) ("holder.element" text "INCLUDE" nil) ("holder.attlist" text "INCLUDE" nil) ("corpauthor.module" text "INCLUDE" nil) ("local.corpauthor.attrib" text "" nil) ("corpauthor.role.attrib" text "Role CDATA #IMPLIED" nil) ("corpauthor.element" text "INCLUDE" nil) ("corpauthor.attlist" text "INCLUDE" nil) ("corpname.module" text "INCLUDE" nil) ("local.corpname.attrib" text "" nil) ("corpname.element" text "INCLUDE" nil) ("corpname.role.attrib" text "Role CDATA #IMPLIED" nil) ("corpname.attlist" text "INCLUDE" nil) ("date.module" text "INCLUDE" nil) ("local.date.attrib" text "" nil) ("date.role.attrib" text "Role CDATA #IMPLIED" nil) ("date.element" text "INCLUDE" nil) ("date.attlist" text "INCLUDE" nil) ("edition.module" text "INCLUDE" nil) ("local.edition.attrib" text "" nil) ("edition.role.attrib" text "Role CDATA #IMPLIED" nil) ("edition.element" text "INCLUDE" nil) ("edition.attlist" text "INCLUDE" nil) ("editor.module" text "INCLUDE" nil) ("local.editor.attrib" text "" nil) ("editor.role.attrib" text "Role CDATA #IMPLIED" nil) ("editor.element" text "INCLUDE" nil) ("editor.attlist" text "INCLUDE" nil) ("isbn.module" text "INCLUDE" nil) ("local.isbn.attrib" text "" nil) ("isbn.role.attrib" text "Role CDATA #IMPLIED" nil) ("isbn.element" text "INCLUDE" nil) ("isbn.attlist" text "INCLUDE" nil) ("issn.module" text "INCLUDE" nil) ("local.issn.attrib" text "" nil) ("issn.role.attrib" text "Role CDATA #IMPLIED" nil) ("issn.element" text "INCLUDE" nil) ("issn.attlist" text "INCLUDE" nil) ("invpartnumber.module" text "INCLUDE" nil) ("local.invpartnumber.attrib" text "" nil) ("invpartnumber.role.attrib" text "Role CDATA #IMPLIED" nil) ("invpartnumber.element" text "INCLUDE" nil) ("invpartnumber.attlist" text "INCLUDE" nil) ("issuenum.module" text "INCLUDE" nil) ("local.issuenum.attrib" text "" nil) ("issuenum.role.attrib" text "Role CDATA #IMPLIED" nil) ("issuenum.element" text "INCLUDE" nil) ("issuenum.attlist" text "INCLUDE" nil) ("legalnotice.module" text "INCLUDE" nil) ("local.legalnotice.attrib" text "" nil) ("legalnotice.role.attrib" text "Role CDATA #IMPLIED" nil) ("legalnotice.element" text "INCLUDE" nil) ("legalnotice.attlist" text "INCLUDE" nil) ("modespec.module" text "INCLUDE" nil) ("local.modespec.attrib" text "" nil) ("modespec.role.attrib" text "Role CDATA #IMPLIED" nil) ("modespec.element" text "INCLUDE" nil) ("modespec.attlist" text "INCLUDE" nil) ("orgname.module" text "INCLUDE" nil) ("local.orgname.attrib" text "" nil) ("orgname.role.attrib" text "Role CDATA #IMPLIED" nil) ("orgname.element" text "INCLUDE" nil) ("orgname.attlist" text "INCLUDE" nil) ("othercredit.module" text "INCLUDE" nil) ("local.othercredit.attrib" text "" nil) ("othercredit.role.attrib" text "Role CDATA #IMPLIED" nil) ("othercredit.element" text "INCLUDE" nil) ("othercredit.attlist" text "INCLUDE" nil) ("pagenums.module" text "INCLUDE" nil) ("local.pagenums.attrib" text "" nil) ("pagenums.role.attrib" text "Role CDATA #IMPLIED" nil) ("pagenums.element" text "INCLUDE" nil) ("pagenums.attlist" text "INCLUDE" nil) ("person.ident.module" text "INCLUDE" nil) ("contrib.module" text "INCLUDE" nil) ("local.contrib.attrib" text "" nil) ("contrib.role.attrib" text "Role CDATA #IMPLIED" nil) ("contrib.element" text "INCLUDE" nil) ("contrib.attlist" text "INCLUDE" nil) ("firstname.module" text "INCLUDE" nil) ("local.firstname.attrib" text "" nil) ("firstname.role.attrib" text "Role CDATA #IMPLIED" nil) ("firstname.element" text "INCLUDE" nil) ("firstname.attlist" text "INCLUDE" nil) ("honorific.module" text "INCLUDE" nil) ("local.honorific.attrib" text "" nil) ("honorific.role.attrib" text "Role CDATA #IMPLIED" nil) ("honorific.element" text "INCLUDE" nil) ("honorific.attlist" text "INCLUDE" nil) ("lineage.module" text "INCLUDE" nil) ("local.lineage.attrib" text "" nil) ("lineage.role.attrib" text "Role CDATA #IMPLIED" nil) ("lineage.element" text "INCLUDE" nil) ("lineage.attlist" text "INCLUDE" nil) ("othername.module" text "INCLUDE" nil) ("local.othername.attrib" text "" nil) ("othername.role.attrib" text "Role CDATA #IMPLIED" nil) ("othername.element" text "INCLUDE" nil) ("othername.attlist" text "INCLUDE" nil) ("surname.module" text "INCLUDE" nil) ("local.surname.attrib" text "" nil) ("surname.role.attrib" text "Role CDATA #IMPLIED" nil) ("surname.element" text "INCLUDE" nil) ("surname.attlist" text "INCLUDE" nil) ("printhistory.module" text "INCLUDE" nil) ("local.printhistory.attrib" text "" nil) ("printhistory.role.attrib" text "Role CDATA #IMPLIED" nil) ("printhistory.element" text "INCLUDE" nil) ("printhistory.attlist" text "INCLUDE" nil) ("productname.module" text "INCLUDE" nil) ("local.productname.attrib" text "" nil) ("productname.role.attrib" text "Role CDATA #IMPLIED" nil) ("productname.element" text "INCLUDE" nil) ("productname.attlist" text "INCLUDE" nil) ("productnumber.module" text "INCLUDE" nil) ("local.productnumber.attrib" text "" nil) ("productnumber.role.attrib" text "Role CDATA #IMPLIED" nil) ("productnumber.element" text "INCLUDE" nil) ("productnumber.attlist" text "INCLUDE" nil) ("pubdate.module" text "INCLUDE" nil) ("local.pubdate.attrib" text "" nil) ("pubdate.role.attrib" text "Role CDATA #IMPLIED" nil) ("pubdate.element" text "INCLUDE" nil) ("pubdate.attlist" text "INCLUDE" nil) ("publisher.content.module" text "INCLUDE" nil) ("publisher.module" text "INCLUDE" nil) ("local.publisher.attrib" text "" nil) ("publisher.role.attrib" text "Role CDATA #IMPLIED" nil) ("publisher.element" text "INCLUDE" nil) ("publisher.attlist" text "INCLUDE" nil) ("publishername.module" text "INCLUDE" nil) ("local.publishername.attrib" text "" nil) ("publishername.role.attrib" text "Role CDATA #IMPLIED" nil) ("publishername.element" text "INCLUDE" nil) ("publishername.attlist" text "INCLUDE" nil) ("pubsnumber.module" text "INCLUDE" nil) ("local.pubsnumber.attrib" text "" nil) ("pubsnumber.role.attrib" text "Role CDATA #IMPLIED" nil) ("pubsnumber.element" text "INCLUDE" nil) ("pubsnumber.attlist" text "INCLUDE" nil) ("releaseinfo.module" text "INCLUDE" nil) ("local.releaseinfo.attrib" text "" nil) ("releaseinfo.role.attrib" text "Role CDATA #IMPLIED" nil) ("releaseinfo.element" text "INCLUDE" nil) ("releaseinfo.attlist" text "INCLUDE" nil) ("revhistory.content.module" text "INCLUDE" nil) ("revhistory.module" text "INCLUDE" nil) ("local.revhistory.attrib" text "" nil) ("revhistory.role.attrib" text "Role CDATA #IMPLIED" nil) ("revhistory.element" text "INCLUDE" nil) ("revhistory.attlist" text "INCLUDE" nil) ("revision.module" text "INCLUDE" nil) ("local.revision.attrib" text "" nil) ("revision.role.attrib" text "Role CDATA #IMPLIED" nil) ("revision.element" text "INCLUDE" nil) ("revision.attlist" text "INCLUDE" nil) ("revnumber.module" text "INCLUDE" nil) ("local.revnumber.attrib" text "" nil) ("revnumber.role.attrib" text "Role CDATA #IMPLIED" nil) ("revnumber.element" text "INCLUDE" nil) ("revnumber.attlist" text "INCLUDE" nil) ("revremark.module" text "INCLUDE" nil) ("local.revremark.attrib" text "" nil) ("revremark.role.attrib" text "Role CDATA #IMPLIED" nil) ("revremark.element" text "INCLUDE" nil) ("revremark.attlist" text "INCLUDE" nil) ("revdescription.module" text "INCLUDE" nil) ("local.revdescription.attrib" text "" nil) ("revdescription.role.attrib" text "Role CDATA #IMPLIED" nil) ("revdescription.element" text "INCLUDE" nil) ("revdescription.attlist" text "INCLUDE" nil) ("seriesvolnums.module" text "INCLUDE" nil) ("local.seriesvolnums.attrib" text "" nil) ("seriesvolnums.role.attrib" text "Role CDATA #IMPLIED" nil) ("seriesvolnums.element" text "INCLUDE" nil) ("seriesvolnums.attlist" text "INCLUDE" nil) ("volumenum.module" text "INCLUDE" nil) ("local.volumenum.attrib" text "" nil) ("volumenum.role.attrib" text "Role CDATA #IMPLIED" nil) ("volumenum.element" text "INCLUDE" nil) ("volumenum.attlist" text "INCLUDE" nil) ("accel.module" text "INCLUDE" nil) ("local.accel.attrib" text "" nil) ("accel.role.attrib" text "Role CDATA #IMPLIED" nil) ("accel.element" text "INCLUDE" nil) ("accel.attlist" text "INCLUDE" nil) ("action.module" text "INCLUDE" nil) ("local.action.attrib" text "" nil) ("action.role.attrib" text "Role CDATA #IMPLIED" nil) ("action.element" text "INCLUDE" nil) ("action.attlist" text "INCLUDE" nil) ("application.module" text "INCLUDE" nil) ("local.application.attrib" text "" nil) ("application.role.attrib" text "Role CDATA #IMPLIED" nil) ("application.element" text "INCLUDE" nil) ("application.attlist" text "INCLUDE" nil) ("classname.module" text "INCLUDE" nil) ("local.classname.attrib" text "" nil) ("classname.role.attrib" text "Role CDATA #IMPLIED" nil) ("classname.element" text "INCLUDE" nil) ("classname.attlist" text "INCLUDE" nil) ("co.module" text "INCLUDE" nil) ("local.co.attrib" text "" nil) ("co.role.attrib" text "Role CDATA #IMPLIED" nil) ("co.element" text "INCLUDE" nil) ("co.attlist" text "INCLUDE" nil) ("command.module" text "INCLUDE" nil) ("local.command.attrib" text "" nil) ("command.role.attrib" text "Role CDATA #IMPLIED" nil) ("command.element" text "INCLUDE" nil) ("command.attlist" text "INCLUDE" nil) ("computeroutput.module" text "INCLUDE" nil) ("local.computeroutput.attrib" text "" nil) ("computeroutput.role.attrib" text "Role CDATA #IMPLIED" nil) ("computeroutput.element" text "INCLUDE" nil) ("computeroutput.attlist" text "INCLUDE" nil) ("database.module" text "INCLUDE" nil) ("local.database.attrib" text "" nil) ("database.role.attrib" text "Role CDATA #IMPLIED" nil) ("database.element" text "INCLUDE" nil) ("database.attlist" text "INCLUDE" nil) ("email.module" text "INCLUDE" nil) ("local.email.attrib" text "" nil) ("email.role.attrib" text "Role CDATA #IMPLIED" nil) ("email.element" text "INCLUDE" nil) ("email.attlist" text "INCLUDE" nil) ("envar.module" text "INCLUDE" nil) ("local.envar.attrib" text "" nil) ("envar.role.attrib" text "Role CDATA #IMPLIED" nil) ("envar.element" text "INCLUDE" nil) ("envar.attlist" text "INCLUDE" nil) ("errorcode.module" text "INCLUDE" nil) ("local.errorcode.attrib" text "" nil) ("errorcode.role.attrib" text "Role CDATA #IMPLIED" nil) ("errorcode.element" text "INCLUDE" nil) ("errorcode.attlist" text "INCLUDE" nil) ("errorname.module" text "INCLUDE" nil) ("local.errorname.attrib" text "" nil) ("errorname.role.attrib" text "Role CDATA #IMPLIED" nil) ("errorname.element" text "INCLUDE" nil) ("errorname.attlist" text "INCLUDE" nil) ("errortype.module" text "INCLUDE" nil) ("local.errortype.attrib" text "" nil) ("errortype.role.attrib" text "Role CDATA #IMPLIED" nil) ("errortype.element" text "INCLUDE" nil) ("errortype.attlist" text "INCLUDE" nil) ("filename.module" text "INCLUDE" nil) ("local.filename.attrib" text "" nil) ("filename.role.attrib" text "Role CDATA #IMPLIED" nil) ("filename.element" text "INCLUDE" nil) ("filename.attlist" text "INCLUDE" nil) ("function.module" text "INCLUDE" nil) ("local.function.attrib" text "" nil) ("function.role.attrib" text "Role CDATA #IMPLIED" nil) ("function.element" text "INCLUDE" nil) ("function.attlist" text "INCLUDE" nil) ("guibutton.module" text "INCLUDE" nil) ("local.guibutton.attrib" text "" nil) ("guibutton.role.attrib" text "Role CDATA #IMPLIED" nil) ("guibutton.element" text "INCLUDE" nil) ("guibutton.attlist" text "INCLUDE" nil) ("guiicon.module" text "INCLUDE" nil) ("local.guiicon.attrib" text "" nil) ("guiicon.role.attrib" text "Role CDATA #IMPLIED" nil) ("guiicon.element" text "INCLUDE" nil) ("guiicon.attlist" text "INCLUDE" nil) ("guilabel.module" text "INCLUDE" nil) ("local.guilabel.attrib" text "" nil) ("guilabel.role.attrib" text "Role CDATA #IMPLIED" nil) ("guilabel.element" text "INCLUDE" nil) ("guilabel.attlist" text "INCLUDE" nil) ("guimenu.module" text "INCLUDE" nil) ("local.guimenu.attrib" text "" nil) ("guimenu.role.attrib" text "Role CDATA #IMPLIED" nil) ("guimenu.element" text "INCLUDE" nil) ("guimenu.attlist" text "INCLUDE" nil) ("guimenuitem.module" text "INCLUDE" nil) ("local.guimenuitem.attrib" text "" nil) ("guimenuitem.role.attrib" text "Role CDATA #IMPLIED" nil) ("guimenuitem.element" text "INCLUDE" nil) ("guimenuitem.attlist" text "INCLUDE" nil) ("guisubmenu.module" text "INCLUDE" nil) ("local.guisubmenu.attrib" text "" nil) ("guisubmenu.role.attrib" text "Role CDATA #IMPLIED" nil) ("guisubmenu.element" text "INCLUDE" nil) ("guisubmenu.attlist" text "INCLUDE" nil) ("hardware.module" text "INCLUDE" nil) ("local.hardware.attrib" text "" nil) ("hardware.role.attrib" text "Role CDATA #IMPLIED" nil) ("hardware.element" text "INCLUDE" nil) ("hardware.attlist" text "INCLUDE" nil) ("interface.module" text "INCLUDE" nil) ("local.interface.attrib" text "" nil) ("interface.role.attrib" text "Role CDATA #IMPLIED" nil) ("interface.element" text "INCLUDE" nil) ("interface.attlist" text "INCLUDE" nil) ("keycap.module" text "INCLUDE" nil) ("local.keycap.attrib" text "" nil) ("keycap.role.attrib" text "Role CDATA #IMPLIED" nil) ("keycap.element" text "INCLUDE" nil) ("keycap.attlist" text "INCLUDE" nil) ("keycode.module" text "INCLUDE" nil) ("local.keycode.attrib" text "" nil) ("keycode.role.attrib" text "Role CDATA #IMPLIED" nil) ("keycode.element" text "INCLUDE" nil) ("keycode.attlist" text "INCLUDE" nil) ("keycombo.module" text "INCLUDE" nil) ("local.keycombo.attrib" text "" nil) ("keycombo.role.attrib" text "Role CDATA #IMPLIED" nil) ("keycombo.element" text "INCLUDE" nil) ("keycombo.attlist" text "INCLUDE" nil) ("keysym.module" text "INCLUDE" nil) ("local.keysym.attrib" text "" nil) ("keysysm.role.attrib" text "Role CDATA #IMPLIED" nil) ("keysym.element" text "INCLUDE" nil) ("keysym.attlist" text "INCLUDE" nil) ("lineannotation.module" text "INCLUDE" nil) ("local.lineannotation.attrib" text "" nil) ("lineannotation.role.attrib" text "Role CDATA #IMPLIED" nil) ("lineannotation.element" text "INCLUDE" nil) ("lineannotation.attlist" text "INCLUDE" nil) ("literal.module" text "INCLUDE" nil) ("local.literal.attrib" text "" nil) ("literal.role.attrib" text "Role CDATA #IMPLIED" nil) ("literal.element" text "INCLUDE" nil) ("literal.attlist" text "INCLUDE" nil) ("constant.module" text "INCLUDE" nil) ("local.constant.attrib" text "" nil) ("constant.role.attrib" text "Role CDATA #IMPLIED" nil) ("constant.element" text "INCLUDE" nil) ("constant.attlist" text "INCLUDE" nil) ("varname.module" text "INCLUDE" nil) ("local.varname.attrib" text "" nil) ("varname.role.attrib" text "Role CDATA #IMPLIED" nil) ("varname.element" text "INCLUDE" nil) ("varname.attlist" text "INCLUDE" nil) ("markup.module" text "INCLUDE" nil) ("local.markup.attrib" text "" nil) ("markup.role.attrib" text "Role CDATA #IMPLIED" nil) ("markup.element" text "INCLUDE" nil) ("markup.attlist" text "INCLUDE" nil) ("medialabel.module" text "INCLUDE" nil) ("local.medialabel.attrib" text "" nil) ("medialabel.role.attrib" text "Role CDATA #IMPLIED" nil) ("medialabel.element" text "INCLUDE" nil) ("medialabel.attlist" text "INCLUDE" nil) ("menuchoice.content.module" text "INCLUDE" nil) ("menuchoice.module" text "INCLUDE" nil) ("local.menuchoice.attrib" text "" nil) ("menuchoice.role.attrib" text "Role CDATA #IMPLIED" nil) ("menuchoice.element" text "INCLUDE" nil) ("menuchoice.attlist" text "INCLUDE" nil) ("shortcut.module" text "INCLUDE" nil) ("local.shortcut.attrib" text "" nil) ("shortcut.role.attrib" text "Role CDATA #IMPLIED" nil) ("shortcut.element" text "INCLUDE" nil) ("shortcut.attlist" text "INCLUDE" nil) ("mousebutton.module" text "INCLUDE" nil) ("local.mousebutton.attrib" text "" nil) ("mousebutton.role.attrib" text "Role CDATA #IMPLIED" nil) ("mousebutton.element" text "INCLUDE" nil) ("mousebutton.attlist" text "INCLUDE" nil) ("msgtext.module" text "INCLUDE" nil) ("local.msgtext.attrib" text "" nil) ("msgtext.role.attrib" text "Role CDATA #IMPLIED" nil) ("msgtext.element" text "INCLUDE" nil) ("msgtext.attlist" text "INCLUDE" nil) ("option.module" text "INCLUDE" nil) ("local.option.attrib" text "" nil) ("option.role.attrib" text "Role CDATA #IMPLIED" nil) ("option.element" text "INCLUDE" nil) ("option.attlist" text "INCLUDE" nil) ("optional.module" text "INCLUDE" nil) ("local.optional.attrib" text "" nil) ("optional.role.attrib" text "Role CDATA #IMPLIED" nil) ("optional.element" text "INCLUDE" nil) ("optional.attlist" text "INCLUDE" nil) ("parameter.module" text "INCLUDE" nil) ("local.parameter.attrib" text "" nil) ("parameter.role.attrib" text "Role CDATA #IMPLIED" nil) ("parameter.element" text "INCLUDE" nil) ("parameter.attlist" text "INCLUDE" nil) ("prompt.module" text "INCLUDE" nil) ("local.prompt.attrib" text "" nil) ("prompt.role.attrib" text "Role CDATA #IMPLIED" nil) ("prompt.element" text "INCLUDE" nil) ("prompt.attlist" text "INCLUDE" nil) ("property.module" text "INCLUDE" nil) ("local.property.attrib" text "" nil) ("property.role.attrib" text "Role CDATA #IMPLIED" nil) ("property.element" text "INCLUDE" nil) ("property.attlist" text "INCLUDE" nil) ("replaceable.module" text "INCLUDE" nil) ("local.replaceable.attrib" text "" nil) ("replaceable.role.attrib" text "Role CDATA #IMPLIED" nil) ("replaceable.element" text "INCLUDE" nil) ("replaceable.attlist" text "INCLUDE" nil) ("returnvalue.module" text "INCLUDE" nil) ("local.returnvalue.attrib" text "" nil) ("returnvalue.role.attrib" text "Role CDATA #IMPLIED" nil) ("returnvalue.element" text "INCLUDE" nil) ("returnvalue.attlist" text "INCLUDE" nil) ("sgmltag.module" text "INCLUDE" nil) ("local.sgmltag.attrib" text "" nil) ("sgmltag.role.attrib" text "Role CDATA #IMPLIED" nil) ("sgmltag.element" text "INCLUDE" nil) ("sgmltag.attlist" text "INCLUDE" nil) ("structfield.module" text "INCLUDE" nil) ("local.structfield.attrib" text "" nil) ("structfield.role.attrib" text "Role CDATA #IMPLIED" nil) ("structfield.element" text "INCLUDE" nil) ("structfield.attlist" text "INCLUDE" nil) ("structname.module" text "INCLUDE" nil) ("local.structname.attrib" text "" nil) ("structname.role.attrib" text "Role CDATA #IMPLIED" nil) ("structname.element" text "INCLUDE" nil) ("structname.attlist" text "INCLUDE" nil) ("symbol.module" text "INCLUDE" nil) ("local.symbol.attrib" text "" nil) ("symbol.role.attrib" text "Role CDATA #IMPLIED" nil) ("symbol.element" text "INCLUDE" nil) ("symbol.attlist" text "INCLUDE" nil) ("systemitem.module" text "INCLUDE" nil) ("local.systemitem.attrib" text "" nil) ("systemitem.role.attrib" text "Role CDATA #IMPLIED" nil) ("systemitem.element" text "INCLUDE" nil) ("systemitem.attlist" text "INCLUDE" nil) ("token.module" text "INCLUDE" nil) ("local.token.attrib" text "" nil) ("token.role.attrib" text "Role CDATA #IMPLIED" nil) ("token.element" text "INCLUDE" nil) ("token.attlist" text "INCLUDE" nil) ("type.module" text "INCLUDE" nil) ("local.type.attrib" text "" nil) ("type.role.attrib" text "Role CDATA #IMPLIED" nil) ("type.element" text "INCLUDE" nil) ("type.attlist" text "INCLUDE" nil) ("userinput.module" text "INCLUDE" nil) ("local.userinput.attrib" text "" nil) ("userinput.role.attrib" text "Role CDATA #IMPLIED" nil) ("userinput.element" text "INCLUDE" nil) ("userinput.attlist" text "INCLUDE" nil) ("abbrev.module" text "INCLUDE" nil) ("local.abbrev.attrib" text "" nil) ("abbrev.role.attrib" text "Role CDATA #IMPLIED" nil) ("abbrev.element" text "INCLUDE" nil) ("abbrev.attlist" text "INCLUDE" nil) ("acronym.module" text "INCLUDE" nil) ("local.acronym.attrib" text "" nil) ("acronym.role.attrib" text "Role CDATA #IMPLIED" nil) ("acronym.element" text "INCLUDE" nil) ("acronym.attlist" text "INCLUDE" nil) ("citation.module" text "INCLUDE" nil) ("local.citation.attrib" text "" nil) ("citation.role.attrib" text "Role CDATA #IMPLIED" nil) ("citation.element" text "INCLUDE" nil) ("citation.attlist" text "INCLUDE" nil) ("citerefentry.module" text "INCLUDE" nil) ("local.citerefentry.attrib" text "" nil) ("citerefentry.role.attrib" text "Role CDATA #IMPLIED" nil) ("citerefentry.element" text "INCLUDE" nil) ("citerefentry.attlist" text "INCLUDE" nil) ("refentrytitle.module" text "INCLUDE" nil) ("local.refentrytitle.attrib" text "" nil) ("refentrytitle.role.attrib" text "Role CDATA #IMPLIED" nil) ("refentrytitle.element" text "INCLUDE" nil) ("refentrytitle.attlist" text "INCLUDE" nil) ("manvolnum.module" text "INCLUDE" nil) ("local.manvolnum.attrib" text "" nil) ("namvolnum.role.attrib" text "Role CDATA #IMPLIED" nil) ("manvolnum.element" text "INCLUDE" nil) ("manvolnum.attlist" text "INCLUDE" nil) ("citetitle.module" text "INCLUDE" nil) ("local.citetitle.attrib" text "" nil) ("citetitle.role.attrib" text "Role CDATA #IMPLIED" nil) ("citetitle.element" text "INCLUDE" nil) ("citetitle.attlist" text "INCLUDE" nil) ("emphasis.module" text "INCLUDE" nil) ("local.emphasis.attrib" text "" nil) ("emphasis.role.attrib" text "Role CDATA #IMPLIED" nil) ("emphasis.element" text "INCLUDE" nil) ("emphasis.attlist" text "INCLUDE" nil) ("firstterm.module" text "INCLUDE" nil) ("local.firstterm.attrib" text "" nil) ("firstterm.role.attrib" text "Role CDATA #IMPLIED" nil) ("firstterm.element" text "INCLUDE" nil) ("firstterm.attlist" text "INCLUDE" nil) ("foreignphrase.module" text "INCLUDE" nil) ("local.foreignphrase.attrib" text "" nil) ("foreignphrase.role.attrib" text "Role CDATA #IMPLIED" nil) ("foreignphrase.element" text "INCLUDE" nil) ("foreignphrase.attlist" text "INCLUDE" nil) ("glossterm.module" text "INCLUDE" nil) ("local.glossterm.attrib" text "" nil) ("glossterm.role.attrib" text "Role CDATA #IMPLIED" nil) ("glossterm.element" text "INCLUDE" nil) ("glossterm.attlist" text "INCLUDE" nil) ("phrase.module" text "INCLUDE" nil) ("local.phrase.attrib" text "" nil) ("phrase.role.attrib" text "Role CDATA #IMPLIED" nil) ("phrase.element" text "INCLUDE" nil) ("phrase.attlist" text "INCLUDE" nil) ("quote.module" text "INCLUDE" nil) ("local.quote.attrib" text "" nil) ("quote.role.attrib" text "Role CDATA #IMPLIED" nil) ("quote.element" text "INCLUDE" nil) ("quote.attlist" text "INCLUDE" nil) ("ssscript.module" text "INCLUDE" nil) ("local.ssscript.attrib" text "" nil) ("ssscript.role.attrib" text "Role CDATA #IMPLIED" nil) ("ssscript.elements" text "INCLUDE" nil) ("ssscript.attlists" text "INCLUDE" nil) ("trademark.module" text "INCLUDE" nil) ("local.trademark.attrib" text "" nil) ("trademark.role.attrib" text "Role CDATA #IMPLIED" nil) ("trademark.element" text "INCLUDE" nil) ("trademark.attlist" text "INCLUDE" nil) ("wordasword.module" text "INCLUDE" nil) ("local.wordasword.attrib" text "" nil) ("wordasword.role.attrib" text "Role CDATA #IMPLIED" nil) ("wordasword.element" text "INCLUDE" nil) ("wordasword.attlist" text "INCLUDE" nil) ("link.module" text "INCLUDE" nil) ("local.link.attrib" text "" nil) ("link.role.attrib" text "Role CDATA #IMPLIED" nil) ("link.element" text "INCLUDE" nil) ("link.attlist" text "INCLUDE" nil) ("olink.module" text "INCLUDE" nil) ("local.olink.attrib" text "" nil) ("olink.role.attrib" text "Role CDATA #IMPLIED" nil) ("olink.element" text "INCLUDE" nil) ("olink.attlist" text "INCLUDE" nil) ("ulink.module" text "INCLUDE" nil) ("local.ulink.attrib" text "" nil) ("ulink.role.attrib" text "Role CDATA #IMPLIED" nil) ("ulink.element" text "INCLUDE" nil) ("ulink.attlist" text "INCLUDE" nil) ("footnoteref.module" text "INCLUDE" nil) ("local.footnoteref.attrib" text "" nil) ("footnoteref.role.attrib" text "Role CDATA #IMPLIED" nil) ("footnoteref.element" text "INCLUDE" nil) ("footnoteref.attlist" text "INCLUDE" nil) ("xref.module" text "INCLUDE" nil) ("local.xref.attrib" text "" nil) ("xref.role.attrib" text "Role CDATA #IMPLIED" nil) ("xref.element" text "INCLUDE" nil) ("xref.attlist" text "INCLUDE" nil) ("anchor.module" text "INCLUDE" nil) ("local.anchor.attrib" text "" nil) ("anchor.role.attrib" text "Role CDATA #IMPLIED" nil) ("anchor.element" text "INCLUDE" nil) ("anchor.attlist" text "INCLUDE" nil) ("beginpage.module" text "INCLUDE" nil) ("local.beginpage.attrib" text "" nil) ("beginpage.role.attrib" text "Role CDATA #IMPLIED" nil) ("beginpage.element" text "INCLUDE" nil) ("beginpage.attlist" text "INCLUDE" nil) ("indexterm.content.module" text "INCLUDE" nil) ("indexterm.module" text "INCLUDE" nil) ("local.indexterm.attrib" text "" nil) ("indexterm.role.attrib" text "Role CDATA #IMPLIED" nil) ("indexterm.element" text "INCLUDE" nil) ("indexterm.attlist" text "INCLUDE" nil) ("primsecter.module" text "INCLUDE" nil) ("local.primsecter.attrib" text "" nil) ("primsecter.role.attrib" text "Role CDATA #IMPLIED" nil) ("primsecter.elements" text "INCLUDE" nil) ("primsecter.attlists" text "INCLUDE" nil) ("containing.attlist" text "INCLUDE" nil) ("seeseealso.module" text "INCLUDE" nil) ("local.seeseealso.attrib" text "" nil) ("seeseealso.role.attrib" text "Role CDATA #IMPLIED" nil) ("seeseealso.elements" text "INCLUDE" nil) ("seeseealso.attlists" text "INCLUDE" nil) ("intermod.redecl.module" text "IGNORE" nil) ("dbhier.module" text "INCLUDE" nil) ("dbhier" text ("-//OASIS//ELEMENTS DocBook Document Hierarchy V4.1//EN" nil . "/usr/share/sgml/docbook/dtd/4.1/") nil) ("dbhier.redecl.module" text "IGNORE" nil) ("dbhier.redecl2.module" text "IGNORE" nil) ("local.appendix.class" text "" nil) ("appendix.class" text "Appendix " nil) ("local.article.class" text "" nil) ("article.class" text "Article " nil) ("local.book.class" text "" nil) ("book.class" text "Book " nil) ("local.chapter.class" text "" nil) ("chapter.class" text "Chapter " nil) ("local.index.class" text "" nil) ("index.class" text "Index|SetIndex " nil) ("local.refentry.class" text "" nil) ("refentry.class" text "RefEntry " nil) ("local.nav.class" text "" nil) ("nav.class" text "ToC|LoT|Index|Glossary|Bibliography " nil) ("forms.hook" text "" nil) ("local.divcomponent.mix" text "" nil) ("divcomponent.mix" text "CalloutList|GlossList|ItemizedList|OrderedList|SegmentedList |SimpleList|VariableList |Caution|Important|Note|Tip|Warning |LiteralLayout|ProgramListing|ProgramListingCO|Screen |ScreenCO|ScreenShot |Synopsis|CmdSynopsis|FuncSynopsis |ClassSynopsis|FieldSynopsis |ConstructorSynopsis |DestructorSynopsis |MethodSynopsis |FormalPara|Para|SimPara |Address|BlockQuote |Graphic|GraphicCO|MediaObject|MediaObjectCO |InformalEquation |InformalExample |InformalFigure |InformalTable |Equation|Example|Figure|Table |MsgSet|Procedure|Sidebar|QandASet |Anchor|BridgeHead|Remark|Highlights |Abstract|AuthorBlurb|Epigraph |IndexTerm " nil) ("local.refcomponent.mix" text "" nil) ("refcomponent.mix" text "CalloutList|GlossList|ItemizedList|OrderedList|SegmentedList |SimpleList|VariableList |Caution|Important|Note|Tip|Warning |LiteralLayout|ProgramListing|ProgramListingCO|Screen |ScreenCO|ScreenShot |Synopsis|CmdSynopsis|FuncSynopsis |ClassSynopsis|FieldSynopsis |ConstructorSynopsis |DestructorSynopsis |MethodSynopsis |FormalPara|Para|SimPara |Address|BlockQuote |Graphic|GraphicCO|MediaObject|MediaObjectCO |InformalEquation |InformalExample |InformalFigure |InformalTable |Equation|Example|Figure|Table |MsgSet|Procedure|Sidebar|QandASet |Anchor|BridgeHead|Remark|Highlights |Abstract|AuthorBlurb|Epigraph |IndexTerm " nil) ("local.indexdivcomponent.mix" text "" nil) ("indexdivcomponent.mix" text "ItemizedList|OrderedList|VariableList|SimpleList |LiteralLayout|ProgramListing|ProgramListingCO|Screen |ScreenCO|ScreenShot |Synopsis|CmdSynopsis|FuncSynopsis |ClassSynopsis|FieldSynopsis |ConstructorSynopsis |DestructorSynopsis |MethodSynopsis |FormalPara|Para|SimPara |Address|BlockQuote |Graphic|GraphicCO|MediaObject|MediaObjectCO |InformalEquation |InformalExample |InformalFigure |InformalTable |Anchor|Remark |Link|OLink|ULink " nil) ("local.refname.char.mix" text "" nil) ("refname.char.mix" text "#PCDATA |Action|Application |ClassName|MethodName|InterfaceName|ExceptionName |OOClass|OOInterface|OOException |Command|ComputerOutput |Database|Email|EnVar|ErrorCode|ErrorName|ErrorType|Filename |Function|GUIButton|GUIIcon|GUILabel|GUIMenu|GUIMenuItem |GUISubmenu|Hardware|Interface|KeyCap |KeyCode|KeyCombo|KeySym|Literal|Constant|Markup|MediaLabel |MenuChoice|MouseButton|Option|Optional|Parameter |Prompt|Property|Replaceable|ReturnValue|SGMLTag|StructField |StructName|Symbol|SystemItem|Token|Type|UserInput|VarName " nil) ("local.partcontent.mix" text "" nil) ("partcontent.mix" text "Appendix |Chapter |ToC|LoT|Index|Glossary|Bibliography |Article |Preface|RefEntry |Reference " nil) ("local.refinline.char.mix" text "" nil) ("refinline.char.mix" text "#PCDATA |FootnoteRef|XRef |Abbrev|Acronym|Citation|CiteRefEntry|CiteTitle|Emphasis |FirstTerm|ForeignPhrase|GlossTerm|Footnote|Phrase |Quote|Trademark|WordAsWord |Link|OLink|ULink |Action|Application |ClassName|MethodName|InterfaceName|ExceptionName |OOClass|OOInterface|OOException |Command|ComputerOutput |Database|Email|EnVar|ErrorCode|ErrorName|ErrorType|Filename |Function|GUIButton|GUIIcon|GUILabel|GUIMenu|GUIMenuItem |GUISubmenu|Hardware|Interface|KeyCap |KeyCode|KeyCombo|KeySym|Literal|Constant|Markup|MediaLabel |MenuChoice|MouseButton|Option|Optional|Parameter |Prompt|Property|Replaceable|ReturnValue|SGMLTag|StructField |StructName|Symbol|SystemItem|Token|Type|UserInput|VarName |Anchor |Author|AuthorInitials|CorpAuthor|ModeSpec|OtherCredit |ProductName|ProductNumber|RevHistory |Remark|Subscript|Superscript |IndexTerm " nil) ("local.refclass.char.mix" text "" nil) ("refclass.char.mix" text "#PCDATA |Application " nil) ("div.title.content" text "Title, Subtitle?, TitleAbbrev?" nil) ("bookcomponent.title.content" text "Title, Subtitle?, TitleAbbrev?" nil) ("sect.title.content" text "Title, Subtitle?, TitleAbbrev?" nil) ("refsect.title.content" text "Title, Subtitle?, TitleAbbrev?" nil) ("bookcomponent.content" text "((CalloutList|GlossList|ItemizedList|OrderedList|SegmentedList |SimpleList|VariableList |Caution|Important|Note|Tip|Warning |LiteralLayout|ProgramListing|ProgramListingCO|Screen |ScreenCO|ScreenShot |Synopsis|CmdSynopsis|FuncSynopsis |ClassSynopsis|FieldSynopsis |ConstructorSynopsis |DestructorSynopsis |MethodSynopsis |FormalPara|Para|SimPara |Address|BlockQuote |Graphic|GraphicCO|MediaObject|MediaObjectCO |InformalEquation |InformalExample |InformalFigure |InformalTable |Equation|Example|Figure|Table |MsgSet|Procedure|Sidebar|QandASet |Anchor|BridgeHead|Remark|Highlights |Abstract|AuthorBlurb|Epigraph |IndexTerm )+, (Sect1*|(RefEntry )*|SimpleSect*|Section*)) | (Sect1+|(RefEntry )+|SimpleSect+|Section+)" nil) ("set.content.module" text "INCLUDE" nil) ("set.module" text "INCLUDE" nil) ("local.set.attrib" text "" nil) ("set.role.attrib" text "Role CDATA #IMPLIED" nil) ("set.element" text "INCLUDE" nil) ("set.attlist" text "INCLUDE" nil) ("setinfo.module" text "INCLUDE" nil) ("local.setinfo.attrib" text "" nil) ("setinfo.role.attrib" text "Role CDATA #IMPLIED" nil) ("setinfo.element" text "INCLUDE" nil) ("setinfo.attlist" text "INCLUDE" nil) ("book.content.module" text "INCLUDE" nil) ("book.module" text "INCLUDE" nil) ("local.book.attrib" text "" nil) ("book.role.attrib" text "Role CDATA #IMPLIED" nil) ("book.element" text "INCLUDE" nil) ("book.attlist" text "INCLUDE" nil) ("bookinfo.module" text "INCLUDE" nil) ("local.bookinfo.attrib" text "" nil) ("bookinfo.role.attrib" text "Role CDATA #IMPLIED" nil) ("bookinfo.element" text "INCLUDE" nil) ("bookinfo.attlist" text "INCLUDE" nil) ("dedication.module" text "INCLUDE" nil) ("local.dedication.attrib" text "" nil) ("dedication.role.attrib" text "Role CDATA #IMPLIED" nil) ("dedication.element" text "INCLUDE" nil) ("dedication.attlist" text "INCLUDE" nil) ("colophon.module" text "INCLUDE" nil) ("local.colophon.attrib" text "" nil) ("colophon.role.attrib" text "Role CDATA #IMPLIED" nil) ("colophon.element" text "INCLUDE" nil) ("colophon.attlist" text "INCLUDE" nil) ("toc.content.module" text "INCLUDE" nil) ("toc.module" text "INCLUDE" nil) ("local.toc.attrib" text "" nil) ("toc.role.attrib" text "Role CDATA #IMPLIED" nil) ("toc.element" text "INCLUDE" nil) ("toc.attlist" text "INCLUDE" nil) ("tocfront.module" text "INCLUDE" nil) ("local.tocfront.attrib" text "" nil) ("tocfront.role.attrib" text "Role CDATA #IMPLIED" nil) ("tocfront.element" text "INCLUDE" nil) ("tocfront.attlist" text "INCLUDE" nil) ("tocentry.module" text "INCLUDE" nil) ("local.tocentry.attrib" text "" nil) ("tocentry.role.attrib" text "Role CDATA #IMPLIED" nil) ("tocentry.element" text "INCLUDE" nil) ("tocentry.attlist" text "INCLUDE" nil) ("tocpart.module" text "INCLUDE" nil) ("local.tocpart.attrib" text "" nil) ("tocpart.role.attrib" text "Role CDATA #IMPLIED" nil) ("tocpart.element" text "INCLUDE" nil) ("tocpart.attlist" text "INCLUDE" nil) ("tocchap.module" text "INCLUDE" nil) ("local.tocchap.attrib" text "" nil) ("tocchap.role.attrib" text "Role CDATA #IMPLIED" nil) ("tocchap.element" text "INCLUDE" nil) ("tocchap.attlist" text "INCLUDE" nil) ("toclevel1.module" text "INCLUDE" nil) ("local.toclevel1.attrib" text "" nil) ("toclevel1.role.attrib" text "Role CDATA #IMPLIED" nil) ("toclevel1.element" text "INCLUDE" nil) ("toclevel1.attlist" text "INCLUDE" nil) ("toclevel2.module" text "INCLUDE" nil) ("local.toclevel2.attrib" text "" nil) ("toclevel2.role.attrib" text "Role CDATA #IMPLIED" nil) ("toclevel2.element" text "INCLUDE" nil) ("toclevel2.attlist" text "INCLUDE" nil) ("toclevel3.module" text "INCLUDE" nil) ("local.toclevel3.attrib" text "" nil) ("toclevel3.role.attrib" text "Role CDATA #IMPLIED" nil) ("toclevel3.element" text "INCLUDE" nil) ("toclevel3.attlist" text "INCLUDE" nil) ("toclevel4.module" text "INCLUDE" nil) ("local.toclevel4.attrib" text "" nil) ("toclevel4.role.attrib" text "Role CDATA #IMPLIED" nil) ("toclevel4.element" text "INCLUDE" nil) ("toclevel4.attlist" text "INCLUDE" nil) ("toclevel5.module" text "INCLUDE" nil) ("local.toclevel5.attrib" text "" nil) ("toclevel5.role.attrib" text "Role CDATA #IMPLIED" nil) ("toclevel5.element" text "INCLUDE" nil) ("toclevel5.attlist" text "INCLUDE" nil) ("tocback.module" text "INCLUDE" nil) ("local.tocback.attrib" text "" nil) ("tocback.role.attrib" text "Role CDATA #IMPLIED" nil) ("tocback.element" text "INCLUDE" nil) ("tocback.attlist" text "INCLUDE" nil) ("lot.content.module" text "INCLUDE" nil) ("lot.module" text "INCLUDE" nil) ("local.lot.attrib" text "" nil) ("lot.role.attrib" text "Role CDATA #IMPLIED" nil) ("lot.element" text "INCLUDE" nil) ("lot.attlist" text "INCLUDE" nil) ("lotentry.module" text "INCLUDE" nil) ("local.lotentry.attrib" text "" nil) ("lotentry.role.attrib" text "Role CDATA #IMPLIED" nil) ("lotentry.element" text "INCLUDE" nil) ("lotentry.attlist" text "INCLUDE" nil) ("appendix.module" text "INCLUDE" nil) ("local.appendix.attrib" text "" nil) ("appendix.role.attrib" text "Role CDATA #IMPLIED" nil) ("appendix.element" text "INCLUDE" nil) ("appendix.attlist" text "INCLUDE" nil) ("chapter.module" text "INCLUDE" nil) ("local.chapter.attrib" text "" nil) ("chapter.role.attrib" text "Role CDATA #IMPLIED" nil) ("chapter.element" text "INCLUDE" nil) ("chapter.attlist" text "INCLUDE" nil) ("part.module" text "INCLUDE" nil) ("local.part.attrib" text "" nil) ("part.role.attrib" text "Role CDATA #IMPLIED" nil) ("part.element" text "INCLUDE" nil) ("part.attlist" text "INCLUDE" nil) ("preface.module" text "INCLUDE" nil) ("local.preface.attrib" text "" nil) ("preface.role.attrib" text "Role CDATA #IMPLIED" nil) ("preface.element" text "INCLUDE" nil) ("preface.attlist" text "INCLUDE" nil) ("reference.module" text "INCLUDE" nil) ("local.reference.attrib" text "" nil) ("reference.role.attrib" text "Role CDATA #IMPLIED" nil) ("reference.element" text "INCLUDE" nil) ("reference.attlist" text "INCLUDE" nil) ("partintro.module" text "INCLUDE" nil) ("local.partintro.attrib" text "" nil) ("partintro.role.attrib" text "Role CDATA #IMPLIED" nil) ("partintro.element" text "INCLUDE" nil) ("partintro.attlist" text "INCLUDE" nil) ("appendixinfo.module" text "INCLUDE" nil) ("local.appendixinfo.attrib" text "" nil) ("appendixinfo.role.attrib" text "Role CDATA #IMPLIED" nil) ("appendixinfo.element" text "INCLUDE" nil) ("appendixinfo.attlist" text "INCLUDE" nil) ("bibliographyinfo.module" text "INCLUDE" nil) ("local.bibliographyinfo.attrib" text "" nil) ("bibliographyinfo.role.attrib" text "Role CDATA #IMPLIED" nil) ("bibliographyinfo.element" text "INCLUDE" nil) ("bibliographyinfo.attlist" text "INCLUDE" nil) ("chapterinfo.module" text "INCLUDE" nil) ("local.chapterinfo.attrib" text "" nil) ("chapterinfo.role.attrib" text "Role CDATA #IMPLIED" nil) ("chapterinfo.element" text "INCLUDE" nil) ("chapterinfo.attlist" text "INCLUDE" nil) ("glossaryinfo.module" text "INCLUDE" nil) ("local.glossaryinfo.attrib" text "" nil) ("glossaryinfo.role.attrib" text "Role CDATA #IMPLIED" nil) ("glossaryinfo.element" text "INCLUDE" nil) ("glossaryinfo.attlist" text "INCLUDE" nil) ("indexinfo.module" text "INCLUDE" nil) ("local.indexinfo.attrib" text "" nil) ("indexinfo.role.attrib" text "Role CDATA #IMPLIED" nil) ("indexinfo.element" text "INCLUDE" nil) ("indexinfo.attlist" text "INCLUDE" nil) ("partinfo.module" text "INCLUDE" nil) ("local.partinfo.attrib" text "" nil) ("partinfo.role.attrib" text "Role CDATA #IMPLIED" nil) ("partinfo.element" text "INCLUDE" nil) ("partinfo.attlist" text "INCLUDE" nil) ("prefaceinfo.module" text "INCLUDE" nil) ("local.prefaceinfo.attrib" text "" nil) ("prefaceinfo.role.attrib" text "Role CDATA #IMPLIED" nil) ("prefaceinfo.element" text "INCLUDE" nil) ("prefaceinfo.attlist" text "INCLUDE" nil) ("refentryinfo.module" text "INCLUDE" nil) ("local.refentryinfo.attrib" text "" nil) ("refentryinfo.role.attrib" text "Role CDATA #IMPLIED" nil) ("refentryinfo.element" text "INCLUDE" nil) ("refentryinfo.attlist" text "INCLUDE" nil) ("refsect1info.module" text "INCLUDE" nil) ("local.refsect1info.attrib" text "" nil) ("refsect1info.role.attrib" text "Role CDATA #IMPLIED" nil) ("refsect1info.element" text "INCLUDE" nil) ("refsect1info.attlist" text "INCLUDE" nil) ("refsect2info.module" text "INCLUDE" nil) ("local.refsect2info.attrib" text "" nil) ("refsect2info.role.attrib" text "Role CDATA #IMPLIED" nil) ("refsect2info.element" text "INCLUDE" nil) ("refsect2info.attlist" text "INCLUDE" nil) ("refsect3info.module" text "INCLUDE" nil) ("local.refsect3info.attrib" text "" nil) ("refsect3info.role.attrib" text "Role CDATA #IMPLIED" nil) ("refsect3info.element" text "INCLUDE" nil) ("refsect3info.attlist" text "INCLUDE" nil) ("refsynopsisdivinfo.module" text "INCLUDE" nil) ("local.refsynopsisdivinfo.attrib" text "" nil) ("refsynopsisdivinfo.role.attrib" text "Role CDATA #IMPLIED" nil) ("refsynopsisdivinfo.element" text "INCLUDE" nil) ("refsynopsisdivinfo.attlist" text "INCLUDE" nil) ("referenceinfo.module" text "INCLUDE" nil) ("local.referenceinfo.attrib" text "" nil) ("referenceinfo.role.attrib" text "Role CDATA #IMPLIED" nil) ("referenceinfo.element" text "INCLUDE" nil) ("referenceinfo.attlist" text "INCLUDE" nil) ("sect1info.module" text "INCLUDE" nil) ("local.sect1info.attrib" text "" nil) ("sect1info.role.attrib" text "Role CDATA #IMPLIED" nil) ("sect1info.element" text "INCLUDE" nil) ("sect1info.attlist" text "INCLUDE" nil) ("sect2info.module" text "INCLUDE" nil) ("local.sect2info.attrib" text "" nil) ("sect2info.role.attrib" text "Role CDATA #IMPLIED" nil) ("sect2info.element" text "INCLUDE" nil) ("sect2info.attlist" text "INCLUDE" nil) ("sect3info.module" text "INCLUDE" nil) ("local.sect3info.attrib" text "" nil) ("sect3info.role.attrib" text "Role CDATA #IMPLIED" nil) ("sect3info.element" text "INCLUDE" nil) ("sect3info.attlist" text "INCLUDE" nil) ("sect4info.module" text "INCLUDE" nil) ("local.sect4info.attrib" text "" nil) ("sect4info.role.attrib" text "Role CDATA #IMPLIED" nil) ("sect4info.element" text "INCLUDE" nil) ("sect4info.attlist" text "INCLUDE" nil) ("sect5info.module" text "INCLUDE" nil) ("local.sect5info.attrib" text "" nil) ("sect5info.role.attrib" text "Role CDATA #IMPLIED" nil) ("sect5info.element" text "INCLUDE" nil) ("sect5info.attlist" text "INCLUDE" nil) ("setindexinfo.module" text "INCLUDE" nil) ("local.setindexinfo.attrib" text "" nil) ("setindexinfo.role.attrib" text "Role CDATA #IMPLIED" nil) ("setindexinfo.element" text "INCLUDE" nil) ("setindexinfo.attlist" text "INCLUDE" nil) ("section.content.module" text "INCLUDE" nil) ("section.module" text "INCLUDE" nil) ("local.section.attrib" text "" nil) ("section.role.attrib" text "Role CDATA #IMPLIED" nil) ("section.element" text "INCLUDE" nil) ("section.attlist" text "INCLUDE" nil) ("sectioninfo.module" text "INCLUDE" nil) ("sectioninfo.role.attrib" text "Role CDATA #IMPLIED" nil) ("local.sectioninfo.attrib" text "" nil) ("sectioninfo.element" text "INCLUDE" nil) ("sectioninfo.attlist" text "INCLUDE" nil) ("sect1.module" text "INCLUDE" nil) ("local.sect1.attrib" text "" nil) ("sect1.role.attrib" text "Role CDATA #IMPLIED" nil) ("sect1.element" text "INCLUDE" nil) ("sect1.attlist" text "INCLUDE" nil) ("sect2.module" text "INCLUDE" nil) ("local.sect2.attrib" text "" nil) ("sect2.role.attrib" text "Role CDATA #IMPLIED" nil) ("sect2.element" text "INCLUDE" nil) ("sect2.attlist" text "INCLUDE" nil) ("sect3.module" text "INCLUDE" nil) ("local.sect3.attrib" text "" nil) ("sect3.role.attrib" text "Role CDATA #IMPLIED" nil) ("sect3.element" text "INCLUDE" nil) ("sect3.attlist" text "INCLUDE" nil) ("sect4.module" text "INCLUDE" nil) ("local.sect4.attrib" text "" nil) ("sect4.role.attrib" text "Role CDATA #IMPLIED" nil) ("sect4.element" text "INCLUDE" nil) ("sect4.attlist" text "INCLUDE" nil) ("sect5.module" text "INCLUDE" nil) ("local.sect5.attrib" text "" nil) ("sect5.role.attrib" text "Role CDATA #IMPLIED" nil) ("sect5.element" text "INCLUDE" nil) ("sect5.attlist" text "INCLUDE" nil) ("simplesect.module" text "INCLUDE" nil) ("local.simplesect.attrib" text "" nil) ("simplesect.role.attrib" text "Role CDATA #IMPLIED" nil) ("simplesect.element" text "INCLUDE" nil) ("simplesect.attlist" text "INCLUDE" nil) ("bibliography.content.module" text "INCLUDE" nil) ("bibliography.module" text "INCLUDE" nil) ("local.bibliography.attrib" text "" nil) ("bibliography.role.attrib" text "Role CDATA #IMPLIED" nil) ("bibliography.element" text "INCLUDE" nil) ("bibliography.attlist" text "INCLUDE" nil) ("bibliodiv.module" text "INCLUDE" nil) ("local.bibliodiv.attrib" text "" nil) ("bibliodiv.role.attrib" text "Role CDATA #IMPLIED" nil) ("bibliodiv.element" text "INCLUDE" nil) ("bibliodiv.attlist" text "INCLUDE" nil) ("glossary.content.module" text "INCLUDE" nil) ("glossary.module" text "INCLUDE" nil) ("local.glossary.attrib" text "" nil) ("glossary.role.attrib" text "Role CDATA #IMPLIED" nil) ("glossary.element" text "INCLUDE" nil) ("glossary.attlist" text "INCLUDE" nil) ("glossdiv.module" text "INCLUDE" nil) ("local.glossdiv.attrib" text "" nil) ("glossdiv.role.attrib" text "Role CDATA #IMPLIED" nil) ("glossdiv.element" text "INCLUDE" nil) ("glossdiv.attlist" text "INCLUDE" nil) ("index.content.module" text "INCLUDE" nil) ("index.module" text "INCLUDE" nil) ("local.index.attrib" text "" nil) ("index.role.attrib" text "Role CDATA #IMPLIED" nil) ("index.element" text "INCLUDE" nil) ("index.attlist" text "INCLUDE" nil) ("setindex.module" text "INCLUDE" nil) ("local.setindex.attrib" text "" nil) ("setindex.role.attrib" text "Role CDATA #IMPLIED" nil) ("setindex.element" text "INCLUDE" nil) ("setindex.attlist" text "INCLUDE" nil) ("indexdiv.module" text "INCLUDE" nil) ("local.indexdiv.attrib" text "" nil) ("indexdiv.role.attrib" text "Role CDATA #IMPLIED" nil) ("indexdiv.element" text "INCLUDE" nil) ("indexdiv.attlist" text "INCLUDE" nil) ("indexentry.module" text "INCLUDE" nil) ("local.indexentry.attrib" text "" nil) ("indexentry.role.attrib" text "Role CDATA #IMPLIED" nil) ("indexentry.element" text "INCLUDE" nil) ("indexentry.attlist" text "INCLUDE" nil) ("primsecterie.module" text "INCLUDE" nil) ("local.primsecterie.attrib" text "" nil) ("primsecterie.role.attrib" text "Role CDATA #IMPLIED" nil) ("primsecterie.elements" text "INCLUDE" nil) ("primsecterie.attlists" text "INCLUDE" nil) ("seeie.module" text "INCLUDE" nil) ("local.seeie.attrib" text "" nil) ("seeie.role.attrib" text "Role CDATA #IMPLIED" nil) ("seeie.element" text "INCLUDE" nil) ("seeie.attlist" text "INCLUDE" nil) ("seealsoie.module" text "INCLUDE" nil) ("local.seealsoie.attrib" text "" nil) ("seealsoie.role.attrib" text "Role CDATA #IMPLIED" nil) ("seealsoie.element" text "INCLUDE" nil) ("seealsoie.attlist" text "INCLUDE" nil) ("refentry.content.module" text "INCLUDE" nil) ("refentry.module" text "INCLUDE" nil) ("local.refentry.attrib" text "" nil) ("refentry.role.attrib" text "Role CDATA #IMPLIED" nil) ("refentry.element" text "INCLUDE" nil) ("refentry.attlist" text "INCLUDE" nil) ("refmeta.module" text "INCLUDE" nil) ("local.refmeta.attrib" text "" nil) ("refmeta.role.attrib" text "Role CDATA #IMPLIED" nil) ("refmeta.element" text "INCLUDE" nil) ("refmeta.attlist" text "INCLUDE" nil) ("refmiscinfo.module" text "INCLUDE" nil) ("local.refmiscinfo.attrib" text "" nil) ("refmiscinfo.role.attrib" text "Role CDATA #IMPLIED" nil) ("refmiscinfo.element" text "INCLUDE" nil) ("refmiscinfo.attlist" text "INCLUDE" nil) ("refnamediv.module" text "INCLUDE" nil) ("local.refnamediv.attrib" text "" nil) ("refnamediv.role.attrib" text "Role CDATA #IMPLIED" nil) ("refnamediv.element" text "INCLUDE" nil) ("refnamediv.attlist" text "INCLUDE" nil) ("refdescriptor.module" text "INCLUDE" nil) ("local.refdescriptor.attrib" text "" nil) ("refdescriptor.role.attrib" text "Role CDATA #IMPLIED" nil) ("refdescriptor.element" text "INCLUDE" nil) ("refdescriptor.attlist" text "INCLUDE" nil) ("refname.module" text "INCLUDE" nil) ("local.refname.attrib" text "" nil) ("refname.role.attrib" text "Role CDATA #IMPLIED" nil) ("refname.element" text "INCLUDE" nil) ("refname.attlist" text "INCLUDE" nil) ("refpurpose.module" text "INCLUDE" nil) ("local.refpurpose.attrib" text "" nil) ("refpurpose.role.attrib" text "Role CDATA #IMPLIED" nil) ("refpurpose.element" text "INCLUDE" nil) ("refpurpose.attlist" text "INCLUDE" nil) ("refclass.module" text "INCLUDE" nil) ("local.refclass.attrib" text "" nil) ("refclass.role.attrib" text "Role CDATA #IMPLIED" nil) ("refclass.element" text "INCLUDE" nil) ("refclass.attlist" text "INCLUDE" nil) ("refsynopsisdiv.module" text "INCLUDE" nil) ("local.refsynopsisdiv.attrib" text "" nil) ("refsynopsisdiv.role.attrib" text "Role CDATA #IMPLIED" nil) ("refsynopsisdiv.element" text "INCLUDE" nil) ("refsynopsisdiv.attlist" text "INCLUDE" nil) ("refsect1.module" text "INCLUDE" nil) ("local.refsect1.attrib" text "" nil) ("refsect1.role.attrib" text "Role CDATA #IMPLIED" nil) ("refsect1.element" text "INCLUDE" nil) ("refsect1.attlist" text "INCLUDE" nil) ("refsect2.module" text "INCLUDE" nil) ("local.refsect2.attrib" text "" nil) ("refsect2.role.attrib" text "Role CDATA #IMPLIED" nil) ("refsect2.element" text "INCLUDE" nil) ("refsect2.attlist" text "INCLUDE" nil) ("refsect3.module" text "INCLUDE" nil) ("local.refsect3.attrib" text "" nil) ("refsect3.role.attrib" text "Role CDATA #IMPLIED" nil) ("refsect3.element" text "INCLUDE" nil) ("refsect3.attlist" text "INCLUDE" nil) ("article.module" text "INCLUDE" nil) ("local.article.attrib" text "" nil) ("article.role.attrib" text "Role CDATA #IMPLIED" nil) ("article.element" text "INCLUDE" nil) ("article.attlist" text "INCLUDE" nil) ("dbgenent.module" text "INCLUDE" nil) ("dbgenent" text ("-//OASIS//ENTITIES DocBook Additional General Entities V4.1//EN" nil . "/usr/share/sgml/docbook/dtd/4.1/") nil)) "REFENTRY" û}"SETINFO" "COLSPEC" "MEDIAOBJECT" "OPTIONAL" "REVREMARK" "CAUTION" "PRODUCTNAME" "TOKEN" "GLOSSTERM" "REFSECT1INFO" "SIMPLESECT" "TOCCHAP" "CLASSSYNOPSISINFO" "GLOSSDEF" "MSGREL" "ISSN" "BIBLIOMISC" "KEYCODE" "REFCLASS" "FUNCDEF" "KEYWORDSET" "FUNCTION" "REFSECT2INFO" "BEGINPAGE" "USERINPUT" "OOINTERFACE" "BIBLIODIV" "SEG" "CONSTRUCTORSYNOPSIS" "CMDSYNOPSIS" "REFSECT3INFO" "AREA" "TIP" "VARIABLELIST" "SUBJECTSET" "ADDRESS" "GUIMENU" "BOOK" "SEE" "MANVOLNUM" "CONFDATES" "BIBLIOMSET" "SYMBOL" "HARDWARE" "WORDASWORD" "REFNAME" "GLOSSDIV" "SETINDEX" "MSG" "ISSUENUM" "GUILABEL" "REFENTRY" "STREET" "LINEANNOTATION" "MSGINFO" "KEYCOMBO" "BIBLIOGRAPHYINFO" "CHAPTERINFO" "MSGAUD" "SERIESVOLNUMS" "DATABASE" "PARTINTRO" "PROCEDURE" "SEEALSO" "COLLABNAME" "ORGDIV" "GLOSSSEEALSO" "EPIGRAPH" "CLASSSYNOPSIS" "RELEASEINFO" "DATE" "INLINEMEDIAOBJECT" "STRUCTNAME" "GUIBUTTON" "PHRASE" "CHAPTER" "KEYWORD" "AFFILIATION" "PAGENUMS" "BIBLIOGRAPHY" "INITIALIZER" "SBR" "IMAGEOBJECTCO" "FIELDSYNOPSIS" "HONORIFIC" "VOLUMENUM" "FUNCPARAMS" "IMAGEDATA" "SEGLISTITEM" "INFORMALFIGURE" "MSGSUB" "EMPHASIS" "OTHERADDR" "PHONE" "FUNCPROTOTYPE" "INFORMALEXAMPLE" "GRAPHICCO" "FORMALPARA" "SYNOPSIS" "REFSYNOPSISDIV" "SECT5" "SECTIONINFO" "TGROUP" "BRIDGEHEAD" "COMMAND" "SECT4" "COUNTRY" "FUNCSYNOPSISINFO" "LISTITEM" "SIMPLELIST" "ISBN" "SECT3" "AREASET" "PUBLISHER" "TITLE" "GUISUBMENU" "TRADEMARK" "SECT2" "PRIMARY" "JOBTITLE" "AREASPEC" "ARTPAGENUMS" "SECT1" "GLOSSENTRY" "ABSTRACT" "MEDIAOBJECTCO" "CONTRACTSPONSOR" "REFMISCINFO" "REVNUMBER" "AUDIOOBJECT" "SUBSTEPS" "INVPARTNUMBER" "BIBLIOSET" "OTHERCREDIT" "KEYCAP" "SCREENINFO" "CORPNAME" "REFPURPOSE" "SEEIE" "SHORTAFFIL" "EQUATION" "WARNING" "IMPORTANT" "SURNAME" "ACTION" "CONFSPONSOR" "SUBSCRIPT" "ERRORNAME" "INDEXENTRY" "TOCENTRY" "SHORTCUT" "YEAR" "POB" "AUDIODATA" "TYPE" "FIRSTTERM" "SIDEBAR" "ANCHOR" "INDEXINFO" "HOLDER" "SPANSPEC" "FILENAME" "METHODNAME" "REFNAMEDIV" "DEDICATION" "OBJECTINFO" "CO" "MSGEXPLAN" "QUOTE" "REFERENCEINFO" "ITEMIZEDLIST" "MSGENTRY" "SGMLTAG" "PARAMETER" "GUIICON" "PREFACE" "SCREENSHOT" "DESTRUCTORSYNOPSIS" "RETURNVALUE" "PROPERTY" "FOREIGNPHRASE" "REFDESCRIPTOR" "SECTION" "TOCBACK" "PROGRAMLISTINGCO" "CORPAUTHOR" "GLOSSARYINFO" "PREFACEINFO" "ARG" "THEAD" "SEGTITLE" "MOUSEBUTTON" "REFSYNOPSISDIVINFO" "INFORMALTABLE" "PUBSNUMBER" "APPENDIX" "FUNCSYNOPSIS" "ENVAR" "FOOTNOTE" "ENTRY" "AUTHORINITIALS" "LITERAL" "KEYSYM" "OOCLASS" "LINK" "TERTIARYIE" "SECONDARY" "VARLISTENTRY" "TITLEABBREV" "TOCLEVEL5" "BOOKINFO" "REVISION" "GLOSSSEE" "EXAMPLE" "ITERMSET" "ERRORTYPE" "FOOTNOTEREF" "PARTINFO" "TOCLEVEL4" "METHODPARAM" "TOCLEVEL3" "REFENTRYTITLE" "VARARGS" "GLOSSLIST" "REMARK" "MODESPEC" "OPTION" "REFENTRYINFO" "TOCLEVEL2" "TOCFRONT" "MEMBER" "QANDADIV" "MSGMAIN" "CONFGROUP" "INTERFACENAME" "REFMETA" "SEEALSOIE" "SECT1INFO" "APPENDIXINFO" "TOCLEVEL1" "QUESTION" "INDEXDIV" "LABEL" "ANSWER" "LITERALLAYOUT" "SECT2INFO" "TOCPART" "PART" "VIDEOOBJECT" "INLINEGRAPHIC" "INTERFACE" "FAX" "CITY" "HIGHLIGHTS" "PROGRAMLISTING" "REVHISTORY" "SECT3INFO" "SYNOPFRAGMENT" "SUBJECT" "SUPERSCRIPT" "STRUCTFIELD" "CONFNUM" "MEDIALABEL" "SECT4INFO" "TOC" "TERM" "BLOCKQUOTE" "OLINK" "ABBREV" "VIDEODATA" "MSGORIG" "BIBLIOMIXED" "LINEAGE" "CLASSNAME" "SECT5INFO" "GLOSSARY" "SCREEN" "CITETITLE" "POSTCODE" "MSGSET" "LEGALNOTICE" "ORGNAME" "ARTICLE" "ROW" "SIMPARA" "COLLAB" "ARTICLEINFO" "INDEXTERM" "EMAIL" "SIDEBARINFO" "SIMPLEMSGENTRY" "MARKUP" "LOT" "COPYRIGHT" "VARNAME" "ACKNO" "ENTRYTBL" "SUBJECTTERM" "PRODUCTNUMBER" "REPLACEABLE" "EXCEPTIONNAME" "APPLICATION" "XREF" "SECONDARYIE" "INDEX" "VOID" "STEP" "OTHERNAME" "SYSTEMITEM" "PROMPT" "CONSTANT" "GUIMENUITEM" "CITEREFENTRY" "REFSECT3" "REFERENCE" "SCREENCO" "MSGTEXT" "SUBTITLE" "REFSECT2" "REVDESCRIPTION" "FIRSTNAME" "PRINTHISTORY" "REFSECT1" "IMAGEOBJECT" "PARAMDEF" "TBODY" "ALT" "CAPTION" "ATTRIBUTION" "QANDASET" "BIBLIOENTRY" "CONTRACTNUM" "ULINK" "SETINDEXINFO" "SET" "GROUP" "TFOOT" "TEXTOBJECT" "FIGURE" "MSGLEVEL" "AUTHORBLURB" "EDITION" "COMPUTEROUTPUT" "COLOPHON" "STATE" "MODIFIER" "SYNOPFRAGMENTREF" "NOTE" "GRAPHIC" "PUBLISHERNAME" "CALLOUT" "PARA" "METHODSYNOPSIS" "PUBDATE" "OOEXCEPTION" "CITATION" "LOTENTRY" "INFORMALEQUATION" "CALLOUTLIST" "PRIMARYIE" "QANDAENTRY" "CONTRIB" "ERRORCODE" "AUTHOR" "ACRONYM" "TERTIARY" "SEGMENTEDLIST" "EDITOR" "AUTHORGROUP" "INLINEEQUATION" "MENUCHOICE" "ACCEL" "CONFTITLE" "TABLE" "ORDEREDLIST" û}(attlist (("CONTENTS" IDREFS IMPLIED) ("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €9û&ûpû[Nû:ûûGUûVÑsûD<ûFÃûdrûhû1ûHO†û 2o„ûvû\G‰ºû,ûRêû$…Éûwûrz$}û×#âûûc9ûcûâ#×û}$zûrûwÉ…û$êûRû,º‰Gû\ûv„o2û †OûHû1ûhrûdÃFû<ûDsÑVûUûGûû:Nû[ûpû&(attlist (("COLNUM" NUMBER IMPLIED) ("COLNAME" NMTOKEN IMPLIED) ("COLWIDTH" CDATA IMPLIED) ("COLSEP" NUMBER IMPLIED) ("ROWSEP" NUMBER IMPLIED) ("ALIGN" (name-token-group ("LEFT" "RIGHT" "CENTER" "JUSTIFY" "CHAR")) IMPLIED) ("CHAR" CDATA IMPLIED) ("CHAROFF" NUTOKEN IMPLIED))) (attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €¦ù‚ûJûJ‚ùûNù‚ûJûX(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €@û&Húû “ážû-›û;+Iû ­³û2´û<®ãÀûyû û*û=ÊË8‡û,tû>%3¯J¢Ø”ûqÆû'=û]iûiÌû3ë£ûû4‘ûSûÍ(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) € û&Húû “áû2u\ûSûÍ(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €s,ûmà«û}ûun"õû¹ûûB±cÅET²ûgbûfû#$ûûca~ûl`ZÂÖûYû|?žháû&,û&áhž?û|ûYÖÂZ`ûl~aûcû$û#ûfbûg²TEÅc±ûBû¹ûõ"nûuû}«àûm,ûmà«û}ûun"õû¹ûûB±cÅET²ûgbûfû#$ûûca~ûl`ZÂÖûYû|?žháû&ûb!Ž(attlist (("CLASS" (name-token-group ("SERVICE" "TRADE" "REGISTERED" "COPYRIGHT")) (nil "Trade")) ("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €aû&ûg²TEÅcûxHúû “áûû1†âºÉûržû-›û;+Iû ­³û2´û<®ãÀûyû û*û=ÊË8‡û,tû>%3¯J¢Ø”ûqÆû'=û]iûiÌû3ë£ûû4‘ûSûÍ-u©KÇ µœ\ûû?ûjûsûû5Ù(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €û&Húû2(attlist (("LINKEND" IDREF IMPLIED) ("BASEFORM" CDATA IMPLIED) ("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €aû&ûg²TEÅcûxHúû “áûû1†âºÉûržû-›û;+Iû ­³û2´û<®ãÀûyû û*û=ÊË8‡û,tû>%3¯J¢Ø”ûqÆû'=û]iûiÌû3ë£ûû4‘ûSûÍ-u©KÇ µœ\ûû?ûjûsûû5Ù (attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €9û&ûpû[Nû:ûûGUûVÑsûD<ûFÃûdrûhû1ûHO†û 2o„ûvû\G‰ºû,ûRêû$…Éûwûrz$}û×#âûûc9ûcûâ#×û}$zûrûwÉ…û$êûRû,º‰Gû\ûv„o2û †OûHû1ûhrûdÃFû<ûDsÑVûUûGûû:Nû[ûpû&(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €sÑûD7ûmà«û}ûun"ûb!Žõû¹ûûB±cÅET²ûgbûfû#$ûûca~ûl`ZÂÖûYû|û?ûPžháû}û[Dû&7ûmà«û}ûun"ûb!Žõû¹ûûB±cÅET²ûgbûfû#$ûûca~ûl`ZÂÖûYû|û?ûPžháû}û[Dû&Ñ7ûmà«û}ûun"ûb!Žõû¹ûûB±cÅET²ûgbûfû#$ûûca~ûl`ZÂÖûYû|û?ûPžháû}û[Dû&7ûmà«û}ûun"ûb!Žõû¹ûûB±cÅET²ûgbûfû#$ûûca~ûl`ZÂÖûYû|û?ûPžháû}û[Dû&û&(attlist (("LABEL" CDATA IMPLIED) ("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €–ð–ð(attlist (("FORMAT" (NOTATION ("LINESPECIFIC")) (nil "linespecific")) ("LINENUMBERING" (name-token-group ("NUMBERED" "UNNUMBERED")) IMPLIED) ("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €Aû&Húû “ážû-›û;+Iû ­³û2´û<®ãÀûyû û*û=ÊË8‡û,tû>%3¯J¢Ø”ûqÆû'=û]iûiÌû3ë£ûû4‘ûSûÍ6(attlist (("SUBJECT" CDATA IMPLIED) ("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €(û&áû|ûYÖÂZ`ûl~aûcû$û#ûfbûg²TEÅc±ûBû¹ûõ"nûuû}«àûm)Cûmà«û}ûun"õû¹ûûB±cÅET²ûgbûfû#$ûûca~ûl`ZÂÖûYû|áû&C(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €sûCûC(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) € û&Húû “áû2u\ûSûÍ(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €aû&ûg²TEÅcûxHúû “áûû1†âºÉûržû-›û;+Iû ­³û2´û<®ãÀûyû û*û=ÊË8‡û,tû>%3¯J¢Ø”ûqÆû'=û]iûiÌû3ë£ûû4‘ûSûÍ-u©KÇ µœ\ûû?ûjûsûû5Ù(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €û&Húû2(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €û4(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €û2(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €MM(attlist (("MOREINFO" (name-token-group ("REFENTRY" "NONE")) (nil "None")) ("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €@û&Húû “ážû-›û;+Iû ­³û2´û<®ãÀûyû û*û=ÊË8‡û,tû>%3¯J¢Ø”ûqÆû'=û]iûiÌû3ë£ûû4‘ûSûÍ(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €9û&ûpû[Nû:ûûGUûVÑsûD<ûFÃûdrûhû1ûHO†û 2o„ûvû\G‰ºû,ûRêû$…Éûwûrz$}û×#âûûc9ûcûâ#×û}$zûrûwÉ…û$êûRû,º‰Gû\ûv„o2û †OûHû1ûhrûdÃFû<ûDsÑVûUûGûû:Nû[ûpû&(attlist (("PAGENUM" CDATA IMPLIED) ("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) (attlist (("MOREINFO" (name-token-group ("REFENTRY" "NONE")) (nil "None")) ("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €@û&Húû “ážû-›û;+Iû ­³û2´û<®ãÀûyû û*û=ÊË8‡û,tû>%3¯J¢Ø”ûqÆû'=û]iûiÌû3ë£ûû4‘ûSûÍ(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €û`ë(attlist (("STATUS" CDATA IMPLIED) ("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €8ûmà«û}ûun"ûb!Žõû¹ûûB±cÅET²ûgbûfû#$ûûca~ûl`ZÂÖûYû|û?ûPžháû}û[Dû&sûQû7û&Dû[}ûáhžûP?ûû|ûYÖÂZ`ûl~aûcû$û#ûfbûg²TEÅc±ûBû¹ûõŽ!ûb"nûuû}«àûmûQû9ûmà«û}ûun"ûb!Žõû¹ûûB±cÅET²ûgbûfû#$ûûca~ûl`ZÂÖûYû|û?ûPžháû}û[Dû&ÑûDûQûûQû7ûmà«û}ûun"ûb!Žõû¹ûûB±cÅET²ûgbûfû#$ûûca~ûl`ZÂÖûYû|û?ûPžháû}û[Dû&ûQû8ûmà«û}ûun"ûb!Žõû¹ûûB±cÅET²ûgbûfû#$ûûca~ûl`ZÂÖûYû|û?ûPžháû}û[Dû&ÑûQû(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €aû&ûg²TEÅcûxHúû “áûû1†âºÉûržû-›û;+Iû ­³û2´û<®ãÀûyû û*û=ÊË8‡û,tû>%3¯J¢Ø”ûqÆû'=û]iûiÌû3ë£ûû4‘ûSûÍ-u©KÇ µœ\ûû?ûjûsûû5Ù(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €£û`Üû8Üû8û3Üû3û3(attlist (("LABEL" CDATA IMPLIED) ("SEPCHAR" CDATA (nil " ")) ("CMDLENGTH" CDATA IMPLIED) ("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €RûV½iûi½ûVRû(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €9û&ûpû[Nû:ûûGUûVÑsûD<ûFÃûdrûhû1ûHO†û 2o„ûvû\G‰ºû,ûRêû$…Éûwûrz$}û×#âûûc9ûcûâ#×û}$zûrûwÉ…û$êûRû,º‰Gû\ûv„o2û †OûHû1ûhrûdÃFû<ûDsÑVûUûGûû:Nû[ûpû&(attlist (("LABEL" CDATA IMPLIED) ("LINKENDS" IDREFS IMPLIED) ("UNITS" (name-token-group ("CALSPAIR" "LINECOLUMN" "LINERANGE" "LINECOLUMNPAIR" "OTHER")) IMPLIED) ("OTHERUNITS" NAME IMPLIED) ("COORDS" CDATA REQUIRED) ("ID" ID REQUIRED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) (attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €s,ûmà«û}ûun"õû¹ûûB±cÅET²ûgbûfû#$ûûca~ûl`ZÂÖûYû|?žháû&,û&áhž?û|ûYÖÂZ`ûl~aûcû$û#ûfbûg²TEÅc±ûBû¹ûõ"nûuû}«àûm,ûmà«û}ûun"õû¹ûûB±cÅET²ûgbûfû#$ûûca~ûl`ZÂÖûYû|?žháû&ûb!Ž(attlist (("TERMLENGTH" CDATA IMPLIED) ("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €sÐÑÐÐÐ(attlist (("SCHEME" NAME IMPLIED) ("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €û û (attlist (("FORMAT" (NOTATION ("LINESPECIFIC")) (nil "linespecific")) ("LINENUMBERING" (name-token-group ("NUMBERED" "UNNUMBERED")) IMPLIED) ("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €]û'û^kû_ûû™5ûpû[Nû:ûûGU(attlist (("MOREINFO" (name-token-group ("REFENTRY" "NONE")) (nil "None")) ("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €ûzû&Húû2(attlist (("FPI" CDATA IMPLIED) ("LABEL" CDATA IMPLIED) ("STATUS" CDATA IMPLIED) ("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €¥ûû+ûP°LûAøû!Äû70û^Ósû^0û7Äû!øûAL°Pûû+û¥¥ûû+ûP°LûAøû!Äû70û^¥ûû+ûP°LûAøû!Äû70û^ÓÑûD¥ûû+ûP°LûAøû!Äû70û^Ó¥ûû+ûP°LûAøû!Äû70û^ÓÑû&(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €WHúû “áûû1†âºÉûržû-›û;+Iû ­³û2´û<®ãÀûyû û*û=ÊË8‡û,tû>%3¯J¢Ø”ûqÆû'=û]iûiÌû3ë£ûû4‘ûSûÍ-u©KÇ µœ\ûû?ûjûsûû5Ù(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €û&Húû “ážûSûÍu\ûs(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) € û&Húû “áû2u\ûSûÍ(attlist (("RELATION" CDATA IMPLIED) ("ROLE" CDATA IMPLIED) ("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED))) €4*û&ûpû[Nû:ûûGUûVÑsûD<ûFÃûdrûhû1ûHO†û 2o„ûvû\G‰ºû,ûRêû$…Éûwûrz$}ûû&(attlist (("CLASS" (name-token-group ("LIMIT")) IMPLIED) ("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €û&Húû2(attlist (("MOREINFO" (name-token-group ("REFENTRY" "NONE")) (nil "None")) ("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €û&Húû2(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €û&Húû “ážûSûÍu\ûs(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €6û-›û;+Iû ­³û2´û<®ãÀûyû û*û=ÊË8‡û,tû>%3¯J¢Ø”ûqÆû'=û]iûiÌû3ë£ûû4‘(attlist (("STATUS" CDATA IMPLIED) ("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €s9ûmà«û}ûun"ûb!Žõû¹ûûB±cÅET²ûgbûfû#$ûûca~ûl`ZÂÖûYû|û?ûPžháû}û[Dû&ÑûD|7û&Dû[}ûáhžûP?ûû|ûYÖÂZ`ûl~aûcû$û#ûfbûg²TEÅc±ûBû¹ûõŽ!ûb"nûuû}«àûm|7ûmà«û}ûun"ûb!Žõû¹ûûB±cÅET²ûgbûfû#$ûûca~ûl`ZÂÖûYû|û?ûPžháû}û[Dû&|8ûmà«û}ûun"ûb!Žõû¹ûûB±cÅET²ûgbûfû#$ûûca~ûl`ZÂÖûYû|û?ûPžháû}û[Dû&Ñ||(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €;ò•ûmà«û}ûun"ûb!Žõû¹ûûB±cÅET²ûgbûfû#$ûûca~ûl`ZÂÖûYû|û?ûPžháû}û[Dû&sûT•ò•9ò•û&Dû[}ûáhžûP?ûû|ûYÖÂZ`ûl~aûcû$û#ûfbûg²TEÅc±ûBû¹ûõŽ!ûb"nûuû}«àûm;ò•ûmà«û}ûun"ûb!Žõû¹ûûB±cÅET²ûgbûfû#$ûûca~ûl`ZÂÖûYû|û?ûPžháû}û[Dû&ÑûD:ò•ûmà«û}ûun"ûb!Žõû¹ûûB±cÅET²ûgbûfû#$ûûca~ûl`ZÂÖûYû|û?ûPžháû}û[Dû&s9ò•ûmà«û}ûun"ûb!Žõû¹ûûB±cÅET²ûgbûfû#$ûûca~ûl`ZÂÖûYû|û?ûPžháû}û[Dû&:ò•ûmà«û}ûun"ûb!Žõû¹ûûB±cÅET²ûgbûfû#$ûûca~ûl`ZÂÖûYû|û?ûPžháû}û[Dû&Ñû&(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €séé[(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) € û&Húû “áû2u\ûSûÍ(attlist (("MOREINFO" (name-token-group ("REFENTRY" "NONE")) (nil "None")) ("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €ûzû&Húû2(attlist (("STATUS" CDATA IMPLIED) ("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €áÍûûSìä¤ûSûÍá¤áÍûûS¤áÍûûSì¤dûIûIûIû&(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) € û&Húû “áû2u\ûSûÍ(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €aû&ûg²TEÅcûxHúû “áûû1†âºÉûržû-›û;+Iû ­³û2´û<®ãÀûyû û*û=ÊË8‡û,tû>%3¯J¢Ø”ûqÆû'=û]iûiÌû3ë£ûû4‘ûSûÍ-u©KÇ µœ\ûû?ûjûsûû5Ù(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €;ûûZ(attlist (("ACTION" (name-token-group ("CLICK" "DOUBLE-CLICK" "PRESS" "SEQ" "SIMUL" "OTHER")) IMPLIED) ("OTHERACTION" CDATA IMPLIED) ("MOREINFO" (name-token-group ("REFENTRY" "NONE")) (nil "None")) ("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €ÀË8‡‡8ËÀ(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €9û&ûpû[Nû:ûûGUûVÑsûD<ûFÃûdrûhû1ûHO†û 2o„ûvû\G‰ºû,ûRêû$…Éûwûrz$}û×#âûûc9ûcûâ#×û}$zûrûwÉ…û$êûRû,º‰Gû\ûv„o2û †OûHû1ûhrûdÃFû<ûDsÑVûUûGûû:Nû[ûpû&(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €9û&ûpû[Nû:ûûGUûVÑsûD<ûFÃûdrûhû1ûHO†û 2o„ûvû\G‰ºû,ûRêû$…Éûwûrz$}û×#âûûc9ûcûâ#×û}$zûrûwÉ…û$êûRû,º‰Gû\ûv„o2û †OûHû1ûhrûdÃFû<ûDsÑVûUûGûû:Nû[ûpû&(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €aû&ûg²TEÅcûxHúû “áûû1†âºÉûržû-›û;+Iû ­³û2´û<®ãÀûyû û*û=ÊË8‡û,tû>%3¯J¢Ø”ûqÆû'=û]iûiÌû3ë£ûû4‘ûSûÍ-u©KÇ µœ\ûû?ûjûsûû5Ù(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) € û&Húû “áû2u\ûSûÍ(attlist (("CLASS" (name-token-group ("NAME" "TABLE" "FIELD" "KEY1" "KEY2" "RECORD")) IMPLIED) ("MOREINFO" (name-token-group ("REFENTRY" "NONE")) (nil "None")) ("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €û&Húû2(attlist (("LABEL" CDATA IMPLIED) ("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) € s;ûmà«û}ûun"ûb!Žõû¹ûûB±cÅET²ûgbûfû#$ûûca~ûl`ZÂÖûYû|û?ûPžháû}û[Dû&· 4{ÑûD;ûmà«û}ûun"ûb!Žõû¹ûûB±cÅET²ûgbûfû#$ûûca~ûl`ZÂÖûYû|û?ûPžháû}û[Dû&· 4{;{ 4 · ûmà«û}ûun"ûb!Žõû¹ûûB±cÅET²ûgbûfû#$ûûca~ûl`ZÂÖûYû|û?ûPžháû}û[Dû&· 4{;ûmà«û}ûun"ûb!Žõû¹ûûB±cÅET²ûgbûfû#$ûûca~ûl`ZÂÖûYû|û?ûPžháû}û[Dû&· 4{Ñ;ûmà«û}ûun"ûb!Žõû¹ûûB±cÅET²ûgbûfû#$ûûca~ûl`ZÂÖûYû|û?ûPžháû}û[Dû&· 4{· 4 { 4  · û&(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €8ûmà«û}ûun"ûb!Žõû¹ûûB±cÅET²ûgbûfû#$ûûca~ûl`ZÂÖûYû|û?ûPžháû}û[Dû&sû97û&Dû[}ûáhžûP?ûû|ûYÖÂZ`ûl~aûcû$û#ûfbûg²TEÅc±ûBû¹ûõŽ!ûb"nûuû}«àûmû98ûmà«û}ûun"ûb!Žõû¹ûûB±cÅET²ûgbûfû#$ûûca~ûl`ZÂÖûYû|û?ûPžháû}û[Dû&Ñû9û97ûmà«û}ûun"ûb!Žõû¹ûûB±cÅET²ûgbûfû#$ûûca~ûl`ZÂÖûYû|û?ûPžháû}û[Dû&û9(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €WHúû “áûû1†âºÉûržû-›û;+Iû ­³û2´û<®ãÀûyû û*û=ÊË8‡û,tû>%3¯J¢Ø”ûqÆû'=û]iûiÌû3ë£ûû4‘ûSûÍ-u©KÇ µœ\ûû?ûjûsûû5Ù(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) € û&Húû “áû2u\ûSûÍ(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) € û&Húû “áû2u\ûSûÍ(attlist (("OTHERTERM" IDREF CONREF) ("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €aû&ûg²TEÅcûxHúû “áûû1†âºÉûržû-›û;+Iû ­³û2´û<®ãÀûyû û*û=ÊË8‡û,tû>%3¯J¢Ø”ûqÆû'=û]iûiÌû3ë£ûû4‘ûSûÍ-u©KÇ µœ\ûû?ûjûsûû5Ù(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €ûObûfû#û#ûfbbûfû#(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED) ("LANGUAGE" CDATA IMPLIED) ("CLASS" (name-token-group ("CLASS" "INTERFACE")) (nil "Class")))) €ûiÌ T²ûgÌûiûg²T (attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) € û&Húû “áû2u\ûSûÍ(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) € û&Húû “áû2u\ûSûÍ(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €¦ù‚ûJûJ‚ùù‚ûJûX(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €û&Húû2(attlist (("MOREINFO" (name-token-group ("REFENTRY" "NONE")) (nil "None")) ("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €ûzû&Húû2(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €aû&ûg²TEÅcûxHúû “áûû1†âºÉûržû-›û;+Iû ­³û2´û<®ãÀûyû û*û=ÊË8‡û,tû>%3¯J¢Ø”ûqÆû'=û]iûiÌû3ë£ûû4‘ûSûÍ-u©KÇ µœ\ûû?ûjûsûû5Ù(attlist (("LABEL" CDATA IMPLIED) ("STATUS" CDATA IMPLIED) ("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €:ss ûû+û7ûPÑûD;ûmà«û}ûun"ûb!Žõû¹ûûB±cÅET²ûgbûfû#$ûûca~ûl`ZÂÖûYû|û?ûPžháû}û[Dû&· 4 { ;ûmà«û}ûun"ûb!Žõû¹ûûB±cÅET²ûgbûfû#$ûûca~ûl`ZÂÖûYû|û?ûPžháû}û[Dû&· 4 {  Pûû7û+û;ûmà«û}ûun"ûb!Žõû¹ûûB±cÅET²ûgbûfû#$ûûca~ûl`ZÂÖûYû|û?ûPžháû}û[Dû&· 4 {  ûû+û7ûP;ûmà«û}ûun"ûb!Žõû¹ûûB±cÅET²ûgbûfû#$ûûca~ûl`ZÂÖûYû|û?ûPžháû}û[Dû&· 4 {  ûû+û7ûPÑ;ûmà«û}ûun"ûb!Žõû¹ûûB±cÅET²ûgbûfû#$ûûca~ûl`ZÂÖûYû|û?ûPžháû}û[Dû&· 4 { @û û+ û7 û P { 4 ·ûmà«û}ûun"ûb!Žõû¹ûûB±cÅET²ûgbûfû#$ûûca~ûl`ZÂÖûYû|û?ûPžháû}û[Dû&û û+ û7 û P ·û û+ û7 û P û û+ û7 û P 4 û û+ û7 û P { P û û7 û+ û û û+ û7 û P · 4{ û û+ û7 û P 4û û+ û7 û P û û+ û7 û P ·û&(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €$Bû xŒ$$B$B$Bû x(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) € û&Húû “áû2u\ûSûÍ(attlist (("STATUS" CDATA IMPLIED) ("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €9ûmà«û}ûun"ûb!Žõû¹ûûB±cÅET²ûgbûfû#$ûûca~ûl`ZÂÖûYû|û?ûPžháû}û[Dû&s9ûûQ7û&Dû[}ûáhžûP?ûû|ûYÖÂZ`ûl~aûcû$û#ûfbûg²TEÅc±ûBû¹ûõŽ!ûb"nûuû}«àûmûûQ9ûmà«û}ûun"ûb!Žõû¹ûûB±cÅET²ûgbûfû#$ûûca~ûl`ZÂÖûYû|û?ûPžháû}û[Dû&ÑûDûûQ8ûmà«û}ûun"ûb!Žõû¹ûûB±cÅET²ûgbûfû#$ûûca~ûl`ZÂÖûYû|û?ûPžháû}û[Dû&sûûQûQû7ûmà«û}ûun"ûb!Žõû¹ûûB±cÅET²ûgbûfû#$ûûca~ûl`ZÂÖûYû|û?ûPžháû}û[Dû&ûûQ8ûmà«û}ûun"ûb!Žõû¹ûûB±cÅET²ûgbûfû#$ûûca~ûl`ZÂÖûYû|û?ûPžháû}û[Dû&ÑûûQ(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €û&Húû2(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) (attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €yûJûm(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €›û`û-û-Q(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) € û&Húû “áû2u\ûSûÍ(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) € û&Húû “áû2u\ûSûÍ(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €@û&Húû “ážû-›û;+Iû ­³û2´û<®ãÀûyû û*û=ÊË8‡û,tû>%3¯J¢Ø”ûqÆû'=û]iûiÌû3ë£ûû4‘ûSûÍ(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ENTITYREF" ENTITY IMPLIED) ("FILEREF" CDATA IMPLIED) ("FORMAT" (name-token-group ("BMP" "CGM-CHAR" "CGM-BINARY" "CGM-CLEAR" "DITROFF" "DVI" "EPS" "EQN" "FAX" "GIF" "GIF87A" "GIF89A" "JPG" "JPEG" "IGES" "PCX" "PIC" "PNG" "PS" "SGML" "TBL" "TEX" "TIFF" "WMF" "WPG" "LINESPECIFIC")) IMPLIED) ("SRCCREDIT" CDATA IMPLIED) ("WIDTH" NUTOKEN IMPLIED) ("DEPTH" NUTOKEN IMPLIED) ("ALIGN" (name-token-group ("LEFT" "RIGHT" "CENTER")) IMPLIED) ("SCALE" NUMBER IMPLIED) ("SCALEFIT" NUMBER IMPLIED) ("ROLE" CDATA IMPLIED))) (attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €(attlist (("FLOAT" NUMBER (nil "0")) ("PGWIDE" NUMBER IMPLIED) ("LABEL" CDATA IMPLIED) ("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €ûSûÍû&ÂZ`ûl~aûcû$ûg²TEÅc±ûBû¹ûõõû¹ûûB±cÅET²ûg$ûûca~ûl`ZÂû&ÍûûS(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €sûCûC(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €aû&ûg²TEÅcûxHúû “áûû1†âºÉûržû-›û;+Iû ­³û2´û<®ãÀûyû û*û=ÊË8‡û,tû>%3¯J¢Ø”ûqÆû'=û]iûiÌû3ë£ûû4‘ûSûÍ-u©KÇ µœ\ûû?ûjûsûû5Ù(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) € û&Húû “áû2u\ûSûÍ(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) € û&Húû “áû2u\ûSûÍ(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €ûKßû8ûK(attlist (("WIDTH" NUMBER IMPLIED) ("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €#û&ÂZ`ûl~aûcû$û#ûfbûg²TEÅc±ûBû¹ûõ"nûuû}«àûm#ûmà«û}ûun"õû¹ûûB±cÅET²ûgbûfû#$ûûca~ûl`ZÂû&(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €yûcûm(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €sû&ûf(attlist (("LABEL" CDATA IMPLIED) ("FORMAT" (NOTATION ("LINESPECIFIC")) (nil "linespecific")) ("LINENUMBERING" (name-token-group ("NUMBERED" "UNNUMBERED")) IMPLIED) ("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €eûcû&ûg²TEÅcûxHúû “áûû1†âºÉûržû-›û;+Iû ­³û2´û<®ãÀûyû û*û=ÊË8‡û,tû>%3¯J¢Ø”ûqÆû'=û]iûiÌû3ë£ûû4‘ûSûÍ-u©KÇ µœ\ûû?ûjûsûû5Ù6§(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €sÁ8ûmà«û}ûun"ûb!Žõû¹ûûB±cÅET²ûgbûfû#$ûûca~ûl`ZÂÖûYû|û?ûPžháû}û[Dû&ûEÑûD8ûmà«û}ûun"ûb!Žõû¹ûûB±cÅET²ûgbûfû#$ûûca~ûl`ZÂÖûYû|û?ûPžháû}û[Dû&ûEs8ûmà«û}ûun"ûb!Žõû¹ûûB±cÅET²ûgbûfû#$ûûca~ûl`ZÂÖûYû|û?ûPžháû}û[Dû&ûE8ûEûmà«û}ûun"ûb!Žõû¹ûûB±cÅET²ûgbûfû#$ûûca~ûl`ZÂÖûYû|û?ûPžháû}û[Dû&ûE8ûmà«û}ûun"ûb!Žõû¹ûûB±cÅET²ûgbûfû#$ûûca~ûl`ZÂÖûYû|û?ûPžháû}û[Dû&ûEÑ8ûmà«û}ûun"ûb!Žõû¹ûûB±cÅET²ûgbûfû#$ûûca~ûl`ZÂÖûYû|û?ûPžháû}û[Dû&ûEûE(attlist (("RENDERAS" (name-token-group ("SECT1" "SECT2" "SECT3" "SECT4")) IMPLIED) ("LABEL" CDATA IMPLIED) ("STATUS" CDATA IMPLIED) ("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) € ûssûû+û7ûPÑûD9ûmà«û}ûun"ûb!Žõû¹ûûB±cÅET²ûgbûfû#$ûûca~ûl`ZÂÖûYû|û?ûPžháû}û[Dû&4 Pûû7û+û9ûmà«û}ûun"ûb!Žõû¹ûûB±cÅET²ûgbûfû#$ûûca~ûl`ZÂÖûYû|û?ûPžháû}û[Dû&4 ûû+û7ûP9ûmà«û}ûun"ûb!Žõû¹ûûB±cÅET²ûgbûfû#$ûûca~ûl`ZÂÖûYû|û?ûPžháû}û[Dû&4 ûû+û7ûPÑ9ûmà«û}ûun"ûb!Žõû¹ûûB±cÅET²ûgbûfû#$ûûca~ûl`ZÂÖûYû|û?ûPžháû}û[Dû&4 >û û+ û7 û P 4 ûmà«û}ûun"ûb!Žõû¹ûûB±cÅET²ûgbûfû#$ûûca~ûl`ZÂÖûYû|û?ûPžháû}û[Dû&û û+ û7 û P 4û û+ û7 û P P û û7 û+ û û û+ û7 û P 4 û û+ û7 û P (attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €9û&ûpû[Nû:ûûGUûVÑsûD<ûFÃûdrûhû1ûHO†û 2o„ûvû\G‰ºû,ûRêû$…Éûwûrz$}û×#âûûc9ûcûâ#×û}$zûrûwÉ…û$êûRû,º‰Gû\ûv„o2û †OûHû1ûhrûdÃFû<ûDsÑVûUûGûû:Nû[ûpû&(attlist (("COLS" NUMBER REQUIRED) ("TGROUPSTYLE" NMTOKEN IMPLIED) ("COLSEP" NUMBER IMPLIED) ("ROWSEP" NUMBER IMPLIED) ("ALIGN" (name-token-group ("LEFT" "RIGHT" "CENTER" "JUSTIFY" "CHAR")) IMPLIED) ("CHAR" CDATA IMPLIED) ("CHAROFF" NUTOKEN IMPLIED) ("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €ûW¾¡ûLûLûWûLûW¾¡ûL(attlist (("RENDERAS" (name-token-group ("OTHER" "SECT1" "SECT2" "SECT3" "SECT4" "SECT5")) IMPLIED) ("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €Yû&ûxHúû “áûû1†âºÉûržû-›û;+Iû ­³û2´û<®ãÀûyû û*û=ÊË8‡û,tû>%3¯J¢Ø”ûqÆû'=û]iûiÌû3ë£ûû4‘ûSûÍ-u©KÇ µœ\ûû?ûjûsûû5Ù(attlist (("MOREINFO" (name-token-group ("REFENTRY" "NONE")) (nil "None")) ("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €@û&Húû “ážû-›û;+Iû ­³û2´û<®ãÀûyû û*û=ÊË8‡û,tû>%3¯J¢Ø”ûqÆû'=û]iûiÌû3ë£ûû4‘ûSûÍ(attlist (("RENDERAS" (name-token-group ("SECT1" "SECT2" "SECT3" "SECT5")) IMPLIED) ("LABEL" CDATA IMPLIED) ("STATUS" CDATA IMPLIED) ("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €ûssûû+û7ûPÑûD:ûmà«û}ûun"ûb!Žõû¹ûûB±cÅET²ûgbûfû#$ûûca~ûl`ZÂÖûYû|û?ûPžháû}û[Dû&4e Pûû7û+û:ûmà«û}ûun"ûb!Žõû¹ûûB±cÅET²ûgbûfû#$ûûca~ûl`ZÂÖûYû|û?ûPžháû}û[Dû&4e ûû+û7ûP:ûmà«û}ûun"ûb!Žõû¹ûûB±cÅET²ûgbûfû#$ûûca~ûl`ZÂÖûYû|û?ûPžháû}û[Dû&4e ûû+û7ûPÑ:ûmà«û}ûun"ûb!Žõû¹ûûB±cÅET²ûgbûfû#$ûûca~ûl`ZÂÖûYû|û?ûPžháû}û[Dû&4e ?û û+ û7 û P 4 e ûmà«û}ûun"ûb!Žõû¹ûûB±cÅET²ûgbûfû#$ûûca~ûl`ZÂÖûYû|û?ûPžháû}û[Dû&û û+ û7 û P 4û û+ û7 û P eû û+ û7 û P P û û7 û+ û û û+ û7 û P e 4 û û+ û7 û P e û û+ û7 û P (attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) € û&Húû “áû2u\ûSûÍ(attlist (("FORMAT" (NOTATION ("LINESPECIFIC")) (nil "linespecific")) ("LINENUMBERING" (name-token-group ("NUMBERED" "UNNUMBERED")) IMPLIED) ("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €Aû&Húû “ážû-›û;+Iû ­³û2´û<®ãÀûyû û*û=ÊË8‡û,tû>%3¯J¢Ø”ûqÆû'=û]iûiÌû3ë£ûû4‘ûSûÍ6(attlist (("OVERRIDE" CDATA IMPLIED) ("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €7û&Dû[}ûáhžûP?ûû|ûYÖÂZ`ûl~aûcû$û#ûfbûg²TEÅc±ûBû¹ûõŽ!ûb"nûuû}«àûm7ûmà«û}ûun"ûb!Žõû¹ûûB±cÅET²ûgbûfû#$ûûca~ûl`ZÂÖûYû|û?ûPžháû}û[Dû&(attlist (("COLUMNS" NUMBER IMPLIED) ("TYPE" (name-token-group ("INLINE" "VERT" "HORIZ")) (nil "Vert")) ("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €çç(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) € û&Húû “áû2u\ûSûÍ(attlist (("RENDERAS" (name-token-group ("SECT1" "SECT2" "SECT4" "SECT5")) IMPLIED) ("LABEL" CDATA IMPLIED) ("STATUS" CDATA IMPLIED) ("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €ûssûû+û7ûPÑûD:ûmà«û}ûun"ûb!Žõû¹ûûB±cÅET²ûgbûfû#$ûûca~ûl`ZÂÖûYû|û?ûPžháû}û[Dû&4j Pûû7û+û:ûmà«û}ûun"ûb!Žõû¹ûûB±cÅET²ûgbûfû#$ûûca~ûl`ZÂÖûYû|û?ûPžháû}û[Dû&4j ûû+û7ûP:ûmà«û}ûun"ûb!Žõû¹ûûB±cÅET²ûgbûfû#$ûûca~ûl`ZÂÖûYû|û?ûPžháû}û[Dû&4j ûû+û7ûPÑ:ûmà«û}ûun"ûb!Žõû¹ûûB±cÅET²ûgbûfû#$ûûca~ûl`ZÂÖûYû|û?ûPžháû}û[Dû&4j ?û û+ û7 û P 4 j ûmà«û}ûun"ûb!Žõû¹ûûB±cÅET²ûgbûfû#$ûûca~ûl`ZÂÖûYû|û?ûPžháû}û[Dû&û û+ û7 û P 4û û+ û7 û P jû û+ û7 û P P û û7 û+ û û û+ û7 û P j 4 û û+ û7 û P j û û+ û7 û P (attlist (("LABEL" CDATA IMPLIED) ("UNITS" (name-token-group ("CALSPAIR" "LINECOLUMN" "LINERANGE" "LINECOLUMNPAIR" "OTHER")) IMPLIED) ("OTHERUNITS" NAME IMPLIED) ("COORDS" CDATA REQUIRED) ("ID" ID REQUIRED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €  (attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €ûd$(attlist (("PAGENUM" CDATA IMPLIED) ("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €Yû&ûxHúû “áûû1†âºÉûržû-›û;+Iû ­³û2´û<®ãÀûyû û*û=ÊË8‡û,tû>%3¯J¢Ø”ûqÆû'=û]iûiÌû3ë£ûû4‘ûSûÍ-u©KÇ µœ\ûû?ûjûsûû5Ù(attlist (("MOREINFO" (name-token-group ("REFENTRY" "NONE")) (nil "None")) ("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €ûzû&Húû2(attlist (("CLASS" (name-token-group ("SERVICE" "TRADE" "REGISTERED" "COPYRIGHT")) (nil "Trade")) ("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €@\Húû “ážû-›û;+Iû ­³û2´û<®ãÀûyû û*û=ÊË8‡û,tû>%3¯J¢Ø”ûqÆû'=û]iûiÌû3ë£ûû4‘ûSûÍ(attlist (("RENDERAS" (name-token-group ("SECT1" "SECT3" "SECT4" "SECT5")) IMPLIED) ("LABEL" CDATA IMPLIED) ("STATUS" CDATA IMPLIED) ("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €össûû+û7ûPÑûD:ûmà«û}ûun"ûb!Žõû¹ûûB±cÅET²ûgbûfû#$ûûca~ûl`ZÂÖûYû|û?ûPžháû}û[Dû&4p Pûû7û+û:ûmà«û}ûun"ûb!Žõû¹ûûB±cÅET²ûgbûfû#$ûûca~ûl`ZÂÖûYû|û?ûPžháû}û[Dû&4p ûû+û7ûP:ûmà«û}ûun"ûb!Žõû¹ûûB±cÅET²ûgbûfû#$ûûca~ûl`ZÂÖûYû|û?ûPžháû}û[Dû&4p ûû+û7ûPÑ:ûmà«û}ûun"ûb!Žõû¹ûûB±cÅET²ûgbûfû#$ûûca~ûl`ZÂÖûYû|û?ûPžháû}û[Dû&4p ?û û+ û7 û P 4 p ûmà«û}ûun"ûb!Žõû¹ûûB±cÅET²ûgbûfû#$ûûca~ûl`ZÂÖûYû|û?ûPžháû}û[Dû&û û+ û7 û P 4û û+ û7 û P pû û+ û7 û P P û û7 û+ û û û+ û7 û P p 4 û û+ û7 û P p û û+ û7 û P (attlist (("SORTAS" CDATA IMPLIED) ("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €WHúû “áûû1†âºÉûržû-›û;+Iû ­³û2´û<®ãÀûyû û*û=ÊË8‡û,tû>%3¯J¢Ø”ûqÆû'=û]iûiÌû3ë£ûû4‘ûSûÍ-u©KÇ µœ\ûû?ûjûsûû5Ù(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) € û&Húû “áû2u\ûSûÍ(attlist (("UNITS" (name-token-group ("CALSPAIR" "LINECOLUMN" "LINERANGE" "LINECOLUMNPAIR" "OTHER")) IMPLIED) ("OTHERUNITS" NAME IMPLIED) ("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €q  q(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) € û&Húû “áû2u\ûSûÍ(attlist (("RENDERAS" (name-token-group ("SECT2" "SECT3" "SECT4" "SECT5")) IMPLIED) ("LABEL" CDATA IMPLIED) ("STATUS" CDATA IMPLIED) ("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €îssûû+û7ûPÑûD:ûmà«û}ûun"ûb!Žõû¹ûûB±cÅET²ûgbûfû#$ûûca~ûl`ZÂÖûYû|û?ûPžháû}û[Dû&4v Pûû7û+û:ûmà«û}ûun"ûb!Žõû¹ûûB±cÅET²ûgbûfû#$ûûca~ûl`ZÂÖûYû|û?ûPžháû}û[Dû&4v ûû+û7ûP:ûmà«û}ûun"ûb!Žõû¹ûûB±cÅET²ûgbûfû#$ûûca~ûl`ZÂÖûYû|û?ûPžháû}û[Dû&4v ûû+û7ûPÑ:ûmà«û}ûun"ûb!Žõû¹ûûB±cÅET²ûgbûfû#$ûûca~ûl`ZÂÖûYû|û?ûPžháû}û[Dû&4v ?û û+ û7 û P 4 v ûmà«û}ûun"ûb!Žõû¹ûûB±cÅET²ûgbûfû#$ûûca~ûl`ZÂÖûYû|û?ûPžháû}û[Dû&û û+ û7 û P 4û û+ û7 û P vû û+ û7 û P P û û7 û+ û û û+ û7 û P v 4 û û+ û7 û P v û û+ û7 û P û&(attlist (("SORTAS" CDATA IMPLIED) ("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) € ûû&ûûsÕÕûû&Õûû&Õûû&ûÕ(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €sbûfû#û#ûfbbûfû#(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €¦SSSûX(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) € û&Húû “áû2u\ûSûÍ(attlist (("CLASS" CDATA IMPLIED) ("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) € û&Húû “áû2u\ûSûÍ(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) € û&Húû “áû2u\ûSûÍ(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €¦šš(attlist (("PERFORMANCE" (name-token-group ("OPTIONAL" "REQUIRED")) (nil "Required")) ("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €û9û9(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) € û&Húû “áû2u\ûSûÍ(attlist (("RELATION" CDATA IMPLIED) ("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €2û&ûpû[Nû:ûûGUûVÑsûD<ûFÃûdrûhû1ûHO†û 2o„ûvû\G‰ºû,ûRêû$…Éûwûrz$}û2û}$zûrûwÉ…û$êûRû,º‰Gû\ûv„o2û †OûHû1ûhrûdÃFû<ûDsÑVûUûGûû:Nû[ûpû&û&(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €ûpû[Nû:ûûGUUûGûû:Nû[ûp(attlist (("MOREINFO" (name-token-group ("REFENTRY" "NONE")) (nil "None")) ("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €û&Húû2(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €aû&ûg²TEÅcûxHúû “áûû1†âºÉûržû-›û;+Iû ­³û2´û<®ãÀûyû û*û=ÊË8‡û,tû>%3¯J¢Ø”ûqÆû'=û]iûiÌû3ë£ûû4‘ûSûÍ-u©KÇ µœ\ûû?ûjûsûû5Ùû&(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) € û&Húû “áû2u\ûSûÍ(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €Vû&û “áûû1†âºÉûržû-›û;+Iû ­³û2´û<®ãÀûyû û*û=ÊË8‡û,tû>%3¯J¢Ø”ûqÆû'=û]iûiÌû3ë£ûû4‘ûSûÍ-u©KÇ µœ\ûû?ûjûsûû5Ù(attlist (("LINKEND" IDREF IMPLIED) ("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €WHúû “áûû1†âºÉûržû-›û;+Iû ­³û2´û<®ãÀûyû û*û=ÊË8‡û,tû>%3¯J¢Ø”ûqÆû'=û]iûiÌû3ë£ûû4‘ûSûÍ-u©KÇ µœ\ûû?ûjûsûû5Ù(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) € û&Húû “áû2u\ûSûÍ(attlist (("LABEL" CDATA IMPLIED) ("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €ûMsûlûcûcûMÑûlûcûcûMûlûc(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €s,ûmà«û}ûun"õû¹ûûB±cÅET²ûgbûfû#$ûûca~ûl`ZÂÖûYû|?žháû&,û&áhž?û|ûYÖÂZ`ûl~aûcû$û#ûfbûg²TEÅc±ûBû¹ûõ"nûuû}«àûm,ûmà«û}ûun"õû¹ûûB±cÅET²ûgbûfû#$ûûca~ûl`ZÂÖûYû|?žháû&ûb!Ž(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €s,ûmà«û}ûun"õû¹ûûB±cÅET²ûgbûfû#$ûûca~ûl`ZÂÖûYû|?žháû&,û&áhž?û|ûYÖÂZ`ûl~aûcû$û#ûfbûg²TEÅc±ûBû¹ûõ"nûuû}«àûm,ûmà«û}ûun"õû¹ûûB±cÅET²ûgbûfû#$ûûca~ûl`ZÂÖûYû|?žháû&ûb!Ž(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) € û&Húû “áû2u\ûSûÍ(attlist (("MOREINFO" (name-token-group ("REFENTRY" "NONE")) (nil "None")) ("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €û&Húû2(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) € û&Húû “áû2u\ûSûÍ(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) € û “ážHú+û2\ûSûÍû&(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €û&Húû2(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €ûnû6í‹û6Îí‹(attlist (("LINKEND" IDREF IMPLIED) ("PAGENUM" CDATA IMPLIED) ("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €aû&ûg²TEÅcûxHúû “áûû1†âºÉûržû-›û;+Iû ­³û2´û<®ãÀûyû û*û=ÊË8‡û,tû>%3¯J¢Ø”ûqÆû'=û]iûiÌû3ë£ûû4‘ûSûÍ-u©KÇ µœ\ûû?ûjûsûû5Ù(attlist (("ACTION" (name-token-group ("CLICK" "DOUBLE-CLICK" "PRESS" "SEQ" "SIMUL" "OTHER")) IMPLIED) ("OTHERACTION" CDATA IMPLIED) ("MOREINFO" (name-token-group ("REFENTRY" "NONE")) (nil "None")) ("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €ÀË8‡‡8ËÀ(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) € û&Húû “áû2u\ûSûÍ(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) € û&Húû “áû2u\ûSûÍ(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ENTITYREF" ENTITY IMPLIED) ("FILEREF" CDATA IMPLIED) ("FORMAT" (name-token-group ("BMP" "CGM-CHAR" "CGM-BINARY" "CGM-CLEAR" "DITROFF" "DVI" "EPS" "EQN" "FAX" "GIF" "GIF87A" "GIF89A" "JPG" "JPEG" "IGES" "PCX" "PIC" "PNG" "PS" "SGML" "TBL" "TEX" "TIFF" "WMF" "WPG" "LINESPECIFIC")) IMPLIED) ("SRCCREDIT" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) (attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €û&Húû2(attlist (("LINKEND" IDREF IMPLIED) ("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €û&Húû “ážûSûÍu\ûs(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €sû(1ûmà«û}ûun"ûb!Žõû¹ûûB±cÅET²ûgbûfû#$ûûca~ûl`ZÂÖûYû|?žháûû&Ñ1ûmà«û}ûun"ûb!Žõû¹ûûB±cÅET²ûgbûfû#$ûûca~ûl`ZÂÖûYû|?žháûû&s1ûmà«û}ûun"ûb!Žõû¹ûûB±cÅET²ûgbûfû#$ûûca~ûl`ZÂÖûYû|?žháûû&1ûmà«û}ûun"ûb!Žõû¹ûûB±cÅET²ûgbûfû#$ûûca~ûl`ZÂÖûYû|?žháûû&1ûmà«û}ûun"ûb!Žõû¹ûûB±cÅET²ûgbûfû#$ûûca~ûl`ZÂÖûYû|?žháûû&(attlist (("ID" ID REQUIRED) ("PAGENUM" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) (attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €9û&ûpû[Nû:ûûGUûVÑsûD<ûFÃûdrûhû1ûHO†û 2o„ûvû\G‰ºû,ûRêû$…Éûwûrz$}û×#âûûc9ûcûâ#×û}$zûrûwÉ…û$êûRû,º‰Gû\ûv„o2û †OûHû1ûhrûdÃFû<ûDsÑVûUûGûû:Nû[ûpû&(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) € û&Húû “áû2u\ûSûÍ(attlist (("NAMEST" NMTOKEN REQUIRED) ("NAMEEND" NMTOKEN REQUIRED) ("SPANNAME" NMTOKEN REQUIRED) ("COLSEP" NUMBER IMPLIED) ("ROWSEP" NUMBER IMPLIED) ("ALIGN" (name-token-group ("LEFT" "RIGHT" "CENTER" "JUSTIFY" "CHAR")) IMPLIED) ("CHAR" CDATA IMPLIED) ("CHAROFF" NUTOKEN IMPLIED))) (attlist (("CLASS" (name-token-group ("HEADERFILE" "DEVICEFILE" "DIRECTORY" "LIBRARYFILE" "SYMLINK")) IMPLIED) ("PATH" CDATA IMPLIED) ("MOREINFO" (name-token-group ("REFENTRY" "NONE")) (nil "None")) ("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €û&Húû2(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €û&Húû2(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €¶...ŠáÍûûSûSûÍá(attlist (("STATUS" CDATA IMPLIED) ("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €sûmà«û}ûun"ûb!Žõû¹ûûB±bûfû#ûû&ÑûDûmà«û}ûun"ûb!Žõû¹ûûB±bûfû#ûû&ûmà«û}ûun"ûb!Žõû¹ûûB±bûfû#ûû&ûmà«û}ûun"ûb!Žõû¹ûûB±bûfû#ûû&Ñûmà«û}ûun"ûb!Žõû¹ûûB±bûfû#ûû&(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €9û&ûpû[Nû:ûûGUûVÑsûD<ûFÃûdrûhû1ûHO†û 2o„ûvû\G‰ºû,ûRêû$…Éûwûrz$}û×#âûûc9ûcûâ#×û}$zûrûwÉ…û$êûRû,º‰Gû\ûv„o2û †OûHû1ûhrûdÃFû<ûDsÑVûUûGûû:Nû[ûpû&(attlist (("LABEL" CDATA IMPLIED) ("LINKENDS" IDREFS IMPLIED) ("ID" ID REQUIRED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) (attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €s7ûmà«û}ûun"ûb!Žõû¹ûûB±cÅET²ûgbûfû#$ûûca~ûl`ZÂÖûYû|û?ûPžháû}û[Dû&7û&Dû[}ûáhžûP?ûû|ûYÖÂZ`ûl~aûcû$û#ûfbûg²TEÅc±ûBû¹ûõŽ!ûb"nûuû}«àûm7ûmà«û}ûun"ûb!Žõû¹ûûB±cÅET²ûgbûfû#$ûûca~ûl`ZÂÖûYû|û?ûPžháû}û[Dû&(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €aû&ûg²TEÅcûxHúû “áûû1†âºÉûržû-›û;+Iû ­³û2´û<®ãÀûyû û*û=ÊË8‡û,tû>%3¯J¢Ø”ûqÆû'=û]iûiÌû3ë£ûû4‘ûSûÍ-u©KÇ µœ\ûû?ûjûsûû5Ù(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €9û&ûpû[Nû:ûûGUûVÑsûD<ûFÃûdrûhû1ûHO†û 2o„ûvû\G‰ºû,ûRêû$…Éûwûrz$}û×#âûûc9ûcûâ#×û}$zûrûwÉ…û$êûRû,º‰Gû\ûv„o2û †OûHû1ûhrûdÃFû<ûDsÑVûUûGûû:Nû[ûpû&(attlist (("SPACING" (name-token-group ("NORMAL" "COMPACT")) IMPLIED) ("MARK" CDATA IMPLIED) ("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €smÑmmm(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €1¨71¨¨(attlist (("CLASS" (name-token-group ("ATTRIBUTE" "ATTVALUE" "ELEMENT" "ENDTAG" "EMPTYTAG" "GENENTITY" "NUMCHARREF" "PARAMENTITY" "PI" "XMLPI" "STARTTAG" "SGMLCOMMENT")) IMPLIED) ("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €û&Húû2(attlist (("CLASS" (name-token-group ("COMMAND" "FUNCTION" "OPTION")) IMPLIED) ("MOREINFO" (name-token-group ("REFENTRY" "NONE")) (nil "None")) ("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €û&Húû2(attlist (("MOREINFO" (name-token-group ("REFENTRY" "NONE")) (nil "None")) ("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €ûzû&Húû2(attlist (("STATUS" CDATA IMPLIED) ("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €¼ss ûû+û7ûPÑûD;ûmà«û}ûun"ûb!Žõû¹ûûB±cÅET²ûgbûfû#$ûûca~ûl`ZÂÖûYû|û?ûPžháû}û[Dû&· 4 { ;ûmà«û}ûun"ûb!Žõû¹ûûB±cÅET²ûgbûfû#$ûûca~ûl`ZÂÖûYû|û?ûPžháû}û[Dû&· 4 {  Pûû7û+û;ûmà«û}ûun"ûb!Žõû¹ûûB±cÅET²ûgbûfû#$ûûca~ûl`ZÂÖûYû|û?ûPžháû}û[Dû&· 4 {  ûû+û7ûP;ûmà«û}ûun"ûb!Žõû¹ûûB±cÅET²ûgbûfû#$ûûca~ûl`ZÂÖûYû|û?ûPžháû}û[Dû&· 4 {  ûû+û7ûPÑ;ûmà«û}ûun"ûb!Žõû¹ûûB±cÅET²ûgbûfû#$ûûca~ûl`ZÂÖûYû|û?ûPžháû}û[Dû&· 4 { @û û+ û7 û P { 4 ·ûmà«û}ûun"ûb!Žõû¹ûûB±cÅET²ûgbûfû#$ûûca~ûl`ZÂÖûYû|û?ûPžháû}û[Dû&û û+ û7 û P ·û û+ û7 û P û û+ û7 û P 4 û û+ û7 û P { P û û7 û+ û û û+ û7 û P · 4{ û û+ û7 û P 4û û+ û7 û P û û+ û7 û P ·û&(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €ˆûca~~aûc(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €£û`Üû8Üû8û3Üû3û3(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €û&Húû2(attlist (("MOREINFO" (name-token-group ("REFENTRY" "NONE")) (nil "None")) ("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €û&Húû2(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €aû&ûg²TEÅcûxHúû “áûû1†âºÉûržû-›û;+Iû ­³û2´û<®ãÀûyû û*û=ÊË8‡û,tû>%3¯J¢Ø”ûqÆû'=û]iûiÌû3ë£ûû4‘ûSûÍ-u©KÇ µœ\ûû?ûjûsûû5Ù(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €6û-›û;+Iû ­³û2´û<®ãÀûyû û*û=ÊË8‡û,tû>%3¯J¢Ø”ûqÆû'=û]iûiÌû3ë£ûû4‘(attlist (("LABEL" CDATA IMPLIED) ("STATUS" CDATA IMPLIED) ("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) € fssûû+û7ûPÑûD9ûmà«û}ûun"ûb!Žõû¹ûûB±cÅET²ûgbûfû#$ûûca~ûl`ZÂÖûYû|û?ûPžháû}û[Dû&4·Pûû7û+û9ûmà«û}ûun"ûb!Žõû¹ûûB±cÅET²ûgbûfû#$ûûca~ûl`ZÂÖûYû|û?ûPžháû}û[Dû&4·ûû+û7ûP9ûmà«û}ûun"ûb!Žõû¹ûûB±cÅET²ûgbûfû#$ûûca~ûl`ZÂÖûYû|û?ûPžháû}û[Dû&4·ûû+û7ûPÑ9ûmà«û}ûun"ûb!Žõû¹ûûB±cÅET²ûgbûfû#$ûûca~ûl`ZÂÖûYû|û?ûPžháû}û[Dû&4·>û û+ û7 û P 4 · ûmà«û}ûun"ûb!Žõû¹ûûB±cÅET²ûgbûfû#$ûûca~ûl`ZÂÖûYû|û?ûPžháû}û[Dû&û û+ û7 û P 4û û+ û7 û P ·P û û7 û+ û û û+ û7 û P · 4 û û+ û7 û P · û&(attlist (("LABEL" CDATA IMPLIED) ("LINKEND" IDREF IMPLIED) ("PAGENUM" CDATA IMPLIED) ("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €aû&ûg²TEÅcûxHúû “áûû1†âºÉûržû-›û;+Iû ­³û2´û<®ãÀûyû û*û=ÊË8‡û,tû>%3¯J¢Ø”ûqÆû'=û]iûiÌû3ë£ûû4‘ûSûÍ-u©KÇ µœ\ûû?ûjûsûû5Ù(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €yûûm(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) € û&Húû “áû2u\ûSûÍ(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €9û&ûpû[Nû:ûûGUûVÑsûD<ûFÃûdrûhû1ûHO†û 2o„ûvû\G‰ºû,ûRêû$…Éûwûrz$}û×#âûûc9ûcûâ#×û}$zûrûwÉ…û$êûRû,º‰Gû\ûv„o2û †OûHû1ûhrûdÃFû<ûDsÑVûUûGûû:Nû[ûpû&(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €9û&ûpû[Nû:ûûGUûVÑsûD<ûFÃûdrûhû1ûHO†û 2o„ûvû\G‰ºû,ûRêû$…Éûwûrz$}û×#âûûc9ûcûâ#×û}$zûrûwÉ…û$êûRû,º‰Gû\ûv„o2û †OûHû1ûhrûdÃFû<ûDsÑVûUûGûû:Nû[ûpû&(attlist (("CHOICE" (name-token-group ("OPT" "REQ" "PLAIN")) (nil "Opt")) ("REP" (name-token-group ("NOREPEAT" "REPEAT")) (nil "Norepeat")) ("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €Rû2ûaãûV½(attlist (("VALIGN" (name-token-group ("TOP" "MIDDLE" "BOTTOM")) IMPLIED) ("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €û"û"û/(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €Yû&ûxHúû “áûû1†âºÉûržû-›û;+Iû ­³û2´û<®ãÀûyû û*û=ÊË8‡û,tû>%3¯J¢Ø”ûqÆû'=û]iûiÌû3ë£ûû4‘ûSûÍ-u©KÇ µœ\ûû?ûjûsûû5Ù(attlist (("MOREINFO" (name-token-group ("REFENTRY" "NONE")) (nil "None")) ("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €û&Húû2(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €9û&ûpû[Nû:ûûGUûVÑsûD<ûFÃûdrûhû1ûHO†û 2o„ûvû\G‰ºû,ûRêû$…Éûwûrz$}û×#âûûc9ûcûâ#×û}$zûrûwÉ…û$êûRû,º‰Gû\ûv„o2û †OûHû1ûhrûdÃFû<ûDsÑVûUûGûû:Nû[ûpû&(attlist (("FRAME" (name-token-group ("TOP" "BOTTOM" "TOPBOT" "ALL" "SIDES" "NONE")) IMPLIED) ("COLSEP" NUMBER IMPLIED) ("ROWSEP" NUMBER IMPLIED) ("TABSTYLE" NMTOKEN IMPLIED) ("TOCENTRY" NUMBER IMPLIED) ("SHORTENTRY" NUMBER IMPLIED) ("ORIENT" (name-token-group ("PORT" "LAND")) IMPLIED) ("PGWIDE" NUMBER IMPLIED) ("LABEL" CDATA IMPLIED) ("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €gûcgûcÂÖûYû|(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) € û&Húû “áû2u\ûSûÍ(attlist (("LABEL" CDATA IMPLIED) ("STATUS" CDATA IMPLIED) ("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €ïss ûû+û7ûPÑûD;ûmà«û}ûun"ûb!Žõû¹ûûB±cÅET²ûgbûfû#$ûûca~ûl`ZÂÖûYû|û?ûPžháû}û[Dû&· 4 { ;ûmà«û}ûun"ûb!Žõû¹ûûB±cÅET²ûgbûfû#$ûûca~ûl`ZÂÖûYû|û?ûPžháû}û[Dû&· 4 {  Pûû7û+û;ûmà«û}ûun"ûb!Žõû¹ûûB±cÅET²ûgbûfû#$ûûca~ûl`ZÂÖûYû|û?ûPžháû}û[Dû&· 4 {  ûû+û7ûP;ûmà«û}ûun"ûb!Žõû¹ûûB±cÅET²ûgbûfû#$ûûca~ûl`ZÂÖûYû|û?ûPžháû}û[Dû&· 4 {  ûû+û7ûPÑ;ûmà«û}ûun"ûb!Žõû¹ûûB±cÅET²ûgbûfû#$ûûca~ûl`ZÂÖûYû|û?ûPžháû}û[Dû&· 4 { @û û+ û7 û P { 4 ·ûmà«û}ûun"ûb!Žõû¹ûûB±cÅET²ûgbûfû#$ûûca~ûl`ZÂÖûYû|û?ûPžháû}û[Dû&û û+ û7 û P ·û û+ û7 û P û û+ û7 û P 4 û û+ û7 û P { P û û7 û+ û û û+ û7 û P · 4{ û û+ û7 û P 4û û+ û7 û P û û+ û7 û P ·û&(attlist (("LABEL" CDATA IMPLIED) ("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €_ll_(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €û&Húû2(attlist (("LABEL" CDATA IMPLIED) ("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €"ÂZ`ûl~aûcû$û#ûfbûg²TEÅc±ûBû¹ûõ"nûuû}«àûm"ûmà«û}ûun"õû¹ûûB±cÅET²ûgbûfû#$ûûca~ûl`ZÂÇÖûYû|(attlist (("COLNAME" NMTOKEN IMPLIED) ("NAMEST" NMTOKEN IMPLIED) ("NAMEEND" NMTOKEN IMPLIED) ("SPANNAME" NMTOKEN IMPLIED) ("MOREROWS" NUMBER IMPLIED) ("COLSEP" NUMBER IMPLIED) ("ROWSEP" NUMBER IMPLIED) ("ALIGN" (name-token-group ("LEFT" "RIGHT" "CENTER" "JUSTIFY" "CHAR")) IMPLIED) ("CHAR" CDATA IMPLIED) ("CHAROFF" NUTOKEN IMPLIED) ("ROTATE" NUMBER IMPLIED) ("VALIGN" (name-token-group ("TOP" "MIDDLE" "BOTTOM")) IMPLIED) ("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €xÙû5ûûsûjû?û\œµ ÇK©u-ÍûûS‘û4û£ëû3Ìûiiû]=û'Æûq”Ø¢J¯3%û>t,û‡8ËÊû=û*û ûyÀã®û<´û2³­û I+û;›û-žûrɺâ†û1ûá“û úHûxcÅET²ûgû&ûcû#ûfb±ûBû¹ûõŽ!ûb"nûuû}«àûmaû&ûg²TEÅcûxHúû “áûû1†âºÉûržû-›û;+Iû ­³û2´û<®ãÀûyû û*û=ÊË8‡û,tû>%3¯J¢Ø”ûqÆû'=û]iûiÌû3ë£ûû4‘ûSûÍ-u©KÇ µœ\ûû?ûjûsûû5Ùûmà«û}ûun"ûb!Žõû¹ûûB±bûfû#ûc(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) € û&Húû “áû2u\ûSûÍ(attlist (("MOREINFO" (name-token-group ("REFENTRY" "NONE")) (nil "None")) ("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €@û&Húû “ážû-›û;+Iû ­³û2´û<®ãÀûyû û*û=ÊË8‡û,tû>%3¯J¢Ø”ûqÆû'=û]iûiÌû3ë£ûû4‘ûSûÍ(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €û&Húû2(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €û`û(attlist (("ENDTERM" IDREF IMPLIED) ("LINKEND" IDREF REQUIRED) ("TYPE" CDATA IMPLIED) ("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €aû&ûg²TEÅcûxHúû “áûû1†âºÉûržû-›û;+Iû ­³û2´û<®ãÀûyû û*û=ÊË8‡û,tû>%3¯J¢Ø”ûqÆû'=û]iûiÌû3ë£ûû4‘ûSûÍ-u©KÇ µœ\ûû?ûjûsûû5ÙÍûûSû5(attlist (("LINKENDS" IDREFS IMPLIED) ("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €WHúû “áûû1†âºÉûržû-›û;+Iû ­³û2´û<®ãÀûyû û*û=ÊË8‡û,tû>%3¯J¢Ø”ûqÆû'=û]iûiÌû3ë£ûû4‘ûSûÍ-u©KÇ µœ\ûû?ûjûsûû5Ù(attlist (("SORTAS" CDATA IMPLIED) ("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €WHúû “áûû1†âºÉûržû-›û;+Iû ­³û2´û<®ãÀûyû û*û=ÊË8‡û,tû>%3¯J¢Ø”ûqÆû'=û]iûiÌû3ë£ûû4‘ûSûÍ-u©KÇ µœ\ûû?ûjûsûû5Ù(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €ûûm(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €Yû&ûxHúû “áûû1†âºÉûržû-›û;+Iû ­³û2´û<®ãÀûyû û*û=ÊË8‡û,tû>%3¯J¢Ø”ûqÆû'=û]iûiÌû3ë£ûû4‘ûSûÍ-u©KÇ µœ\ûû?ûjûsûû5Ù(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €––(attlist (("CONTENTS" IDREFS IMPLIED) ("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €9û&ûpû[Nû:ûûGUûVÑsûD<ûFÃûdrûhû1ûHO†û 2o„ûvû\G‰ºû,ûRêû$…Éûwûrz$}û×#âûûc9ûcûâ#×û}$zûrûwÉ…û$êûRû,º‰Gû\ûv„o2û †OûHû1ûhrûdÃFû<ûDsÑVûUûGûû:Nû[ûpû&(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €GûFÉ(attlist (("OTHERTERM" IDREF CONREF) ("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €aû&ûg²TEÅcûxHúû “áûû1†âºÉûržû-›û;+Iû ­³û2´û<®ãÀûyû û*û=ÊË8‡û,tû>%3¯J¢Ø”ûqÆû'=û]iûiÌû3ë£ûû4‘ûSûÍ-u©KÇ µœ\ûû?ûjûsûû5Ù(attlist (("LABEL" CDATA IMPLIED) ("WIDTH" NUMBER IMPLIED) ("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €sÑ#ûmà«û}ûun"õû¹ûûB±cÅET²ûgbûfû#$ûûca~ûl`ZÂû&#ûmà«û}ûun"õû¹ûûB±cÅET²ûgbûfû#$ûûca~ûl`ZÂû&#ûmà«û}ûun"õû¹ûûB±cÅET²ûgbûfû#$ûûca~ûl`ZÂû&ÖûYû|(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €û&û&(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €û&Húû2(attlist (("LINKEND" IDREF REQUIRED) ("LABEL" CDATA IMPLIED) ("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) (attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €9û&ûpû[Nû:ûûGUûVÑsûD<ûFÃûdrûhû1ûHO†û 2o„ûvû\G‰ºû,ûRêû$…Éûwûrz$}û×#âûûc9ûcûâ#×û}$zûrûwÉ…û$êûRû,º‰Gû\ûv„o2û †OûHû1ûhrûdÃFû<ûDsÑVûUûGûû:Nû[ûpû&(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €–Ò–Ò(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED) ("CHOICE" (name-token-group ("OPT" "REQ" "PLAIN")) (nil "Req")) ("REP" (name-token-group ("NOREPEAT" "REPEAT")) (nil "Norepeat")))) €›û`®W®Wû`Qû`û`û`(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €–Û–Û(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €aû&ûg²TEÅcûxHúû “áûû1†âºÉûržû-›û;+Iû ­³û2´û<®ãÀûyû û*û=ÊË8‡û,tû>%3¯J¢Ø”ûqÆû'=û]iûiÌû3ë£ûû4‘ûSûÍ-u©KÇ µœ\ûû?ûjûsûû5Ù(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) (attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €||(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €aû&ûg²TEÅcûxHúû “áûû1†âºÉûržû-›û;+Iû ­³û2´û<®ãÀûyû û*û=ÊË8‡û,tû>%3¯J¢Ø”ûqÆû'=û]iûiÌû3ë£ûû4‘ûSûÍ-u©KÇ µœ\ûû?ûjûsûû5Ùáû&(attlist (("APPLICATION" (NOTATION ("BMP" "CGM-CHAR" "CGM-BINARY" "CGM-CLEAR" "DITROFF" "DVI" "EPS" "EQN" "FAX" "GIF" "GIF87A" "GIF89A" "JPG" "JPEG" "IGES" "PCX" "PIC" "PNG" "PS" "SGML" "TBL" "TEX" "TIFF" "WMF" "WPG" "LINESPECIFIC")) IMPLIED) ("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) € û&Húû “áû2u\ûSûÍû&(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €û&Húû2(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €9û&ûpû[Nû:ûûGUûVÑsûD<ûFÃûdrûhû1ûHO†û 2o„ûvû\G‰ºû,ûRêû$…Éûwûrz$}û×#âûûc9ûcûâ#×û}$zûrûwÉ…û$êûRû,º‰Gû\ûv„o2û †OûHû1ûhrûdÃFû<ûDsÑVûUûGûû:Nû[ûpû&(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €–Ý–Ý(attlist (("LABEL" CDATA IMPLIED) ("LINKEND" IDREF IMPLIED) ("PAGENUM" CDATA IMPLIED) ("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €aû&ûg²TEÅcûxHúû “áûû1†âºÉûržû-›û;+Iû ­³û2´û<®ãÀûyû û*û=ÊË8‡û,tû>%3¯J¢Ø”ûqÆû'=û]iûiÌû3ë£ûû4‘ûSûÍ-u©KÇ µœ\ûû?ûjûsûû5Ù(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €aû&ûg²TEÅcûxHúû “áûû1†âºÉûržû-›û;+Iû ­³û2´û<®ãÀûyû û*û=ÊË8‡û,tû>%3¯J¢Ø”ûqÆû'=û]iûiÌû3ë£ûû4‘ûSûÍ-u©KÇ µœ\ûû?ûjûsûû5Ù(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €2ûmà«û}ûun"ûb!Žõû¹ûûB±cÅET²ûgbûfû#$ûûca~ûl`ZÂÖûYû|?žháûû&sèûo1û&ûáhž?û|ûYÖÂZ`ûl~aûcû$û#ûfbûg²TEÅc±ûBû¹ûõŽ!ûb"nûuû}«àûmèûo2ûmà«û}ûun"ûb!Žõû¹ûûB±cÅET²ûgbûfû#$ûûca~ûl`ZÂÖûYû|?žháûû&Ñèûoèûo1ûmà«û}ûun"ûb!Žõû¹ûûB±cÅET²ûgbûfû#$ûûca~ûl`ZÂÖûYû|?žháûû&èûo(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €sûCûC(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €’$û û{)(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €û&Húû2(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €Þ€(€€(attlist (("LINKENDS" IDREFS IMPLIED) ("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €WHúû “áûû1†âºÉûržû-›û;+Iû ­³û2´û<®ãÀûyû û*û=ÊË8‡û,tû>%3¯J¢Ø”ûqÆû'=û]iûiÌû3ë£ûû4‘ûSûÍ-u©KÇ µœ\ûû?ûjûsûû5Ù(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €9û&ûpû[Nû:ûûGUûVÑsûD<ûFÃûdrûhû1ûHO†û 2o„ûvû\G‰ºû,ûRêû$…Éûwûrz$}û×#âûûc9ûcûâ#×û}$zûrûwÉ…û$êûRû,º‰Gû\ûv„o2û †OûHû1ûhrûdÃFû<ûDsÑVûUûGûû:Nû[ûpû&(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €9û&ûpû[Nû:ûûGUûVÑsûD<ûFÃûdrûhû1ûHO†û 2o„ûvû\G‰ºû,ûRêû$…Éûwûrz$}û×#âûûc9ûcûâ#×û}$zûrûwÉ…û$êûRû,º‰Gû\ûv„o2û †OûHû1ûhrûdÃFû<ûDsÑVûUûGûû:Nû[ûpû&(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €–å–å(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €ó1ûmà«û}ûun"ûb!Žõû¹ûûB±cÅET²ûgbûfû#$ûûca~ûl`ZÂÖûYû|?žháûû&1û&ûáhž?û|ûYÖÂZ`ûl~aûcû$û#ûfbûg²TEÅc±ûBû¹ûõŽ!ûb"nûuû}«àûm1ûmà«û}ûun"ûb!Žõû¹ûûB±cÅET²ûgbûfû#$ûûca~ûl`ZÂÖûYû|?žháûû&(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €%«û}"nõû¹ûûB±cÅET²ûgbûfû#$ûûca~ûl`ZžáÍûûSsûu•$ûSûÍážÂZ`ûl~aûcû$û#ûfbûg²TEÅc±ûBû¹ûõn"û}«•ûu&«û}"nõû¹ûûB±cÅET²ûgbûfû#$ûûca~ûl`ZžáÍûûSÑûDûu••$«û}"nõû¹ûûB±cÅET²ûgbûfû#$ûûca~ûl`ZžáÍûûSûu•%«û}"nõû¹ûûB±cÅET²ûgbûfû#$ûûca~ûl`ZžáÍûûSÑûu•(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €û&Húû “ážûSûÍu\ûs(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €3ûoûmà«û}ûun"ûb!Žõû¹ûûB±cÅET²ûgbûfû#$ûûca~ûl`ZÂÖûYû|?žháûû&óûo2ûoû&ûáhž?û|ûYÖÂZ`ûl~aûcû$û#ûfbûg²TEÅc±ûBû¹ûõŽ!ûb"nûuû}«àûm(attlist (("WIDTH" NUMBER IMPLIED) ("FORMAT" (NOTATION ("LINESPECIFIC")) (nil "linespecific")) ("LINENUMBERING" (name-token-group ("NUMBERED" "UNNUMBERED")) IMPLIED) ("CLASS" (name-token-group ("MONOSPACED" "NORMAL")) (nil "Normal")) ("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €cû&ûg²TEÅcûxHúû “áûû1†âºÉûržû-›û;+Iû ­³û2´û<®ãÀûyû û*û=ÊË8‡û,tû>%3¯J¢Ø”ûqÆû'=û]iûiÌû3ë£ûû4‘ûSûÍ-u©KÇ µœ\ûû?ûjûsûû5Ù6§(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €9û&ûpû[Nû:ûûGUûVÑsûD<ûFÃûdrûhû1ûHO†û 2o„ûvû\G‰ºû,ûRêû$…Éûwûrz$}û×#âûûc9ûcûâ#×û}$zûrûwÉ…û$êûRû,º‰Gû\ûv„o2û †OûHû1ûhrûdÃFû<ûDsÑVûUûGûû:Nû[ûpû&(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €– – (attlist (("LABEL" CDATA IMPLIED) ("STATUS" CDATA IMPLIED) ("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €Úss>ÑûD ÄLûû+û7ûPû!°4ûA ÄLûû+û7ûPû!°4ûA> ÄLûû+û7ûPû!°4ûA>Ñ ÄLûû+û7ûPû!°4ûA ÄLûû+û7ûPû!°4ûAû&(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €¦ûû(attlist (("ENTITYREF" ENTITY IMPLIED) ("FILEREF" CDATA IMPLIED) ("FORMAT" (name-token-group ("BMP" "CGM-CHAR" "CGM-BINARY" "CGM-CLEAR" "DITROFF" "DVI" "EPS" "EQN" "FAX" "GIF" "GIF87A" "GIF89A" "JPG" "JPEG" "IGES" "PCX" "PIC" "PNG" "PS" "SGML" "TBL" "TEX" "TIFF" "WMF" "WPG" "LINESPECIFIC")) IMPLIED) ("SRCCREDIT" CDATA IMPLIED) ("WIDTH" NUTOKEN IMPLIED) ("DEPTH" NUTOKEN IMPLIED) ("ALIGN" (name-token-group ("LEFT" "RIGHT" "CENTER")) IMPLIED) ("SCALE" NUMBER IMPLIED) ("SCALEFIT" NUMBER IMPLIED) ("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) (attlist (("MOREINFO" (name-token-group ("REFENTRY" "NONE")) (nil "None")) ("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €ûzû&Húû2(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) € û&Húû “áû2u\ûSûÍ(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) € û&Húû “áû2u\ûSûÍ(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €û&û#ûfbŽ!ûb"nûuû}«àûmûmà«û}ûun"ûb!Žbûfû#û&û&ÖûYû|(attlist (("WIDTH" NUMBER IMPLIED) ("FORMAT" (NOTATION ("LINESPECIFIC")) (nil "linespecific")) ("LINENUMBERING" (name-token-group ("NUMBERED" "UNNUMBERED")) IMPLIED) ("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €cû&ûg²TEÅcûxHúû “áûû1†âºÉûržû-›û;+Iû ­³û2´û<®ãÀûyû û*û=ÊË8‡û,tû>%3¯J¢Ø”ûqÆû'=û]iûiÌû3ë£ûû4‘ûSûÍ-u©KÇ µœ\ûû?ûjûsûû5Ù6§(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €ÔÔ(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €9û&ûpû[Nû:ûûGUûVÑsûD<ûFÃûdrûhû1ûHO†û 2o„ûvû\G‰ºû,ûRêû$…Éûwûrz$}û×#âûûc9ûcûâ#×û}$zûrûwÉ…û$êûRû,º‰Gû\ûv„o2û †OûHû1ûhrûdÃFû<ûDsÑVûUûGûû:Nû[ûpû&(attlist (("ID" ID REQUIRED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €ûV½½ûV(attlist (("WEIGHT" NUMBER IMPLIED) ("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €û0û0(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) € û “ážHú+û2\ûSûÍû&(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €û&Húû2(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) € û&Húû “áû2u\ûSûÍ(attlist (("CLASS" (name-token-group ("CARTRIDGE" "CDROM" "DISK" "TAPE")) IMPLIED) ("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €û&Húû2(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €9û&ûpû[Nû:ûûGUûVÑsûD<ûFÃûdrûhû1ûHO†û 2o„ûvû\G‰ºû,ûRêû$…Éûwûrz$}û×#âûûc9ûcûâ#×û}$zûrûwÉ…û$êûRû,º‰Gû\ûv„o2û †OûHû1ûhrûdÃFû<ûDsÑVûUûGûû:Nû[ûpû&(attlist (("PAGENUM" CDATA IMPLIED) ("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €¸÷ æs¸¸ ÷¸÷ æ¸÷ æÑûD¸÷ æ¸÷ æÑ(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €aû&ûg²TEÅcûxHúû “áûû1†âºÉûržû-›û;+Iû ­³û2´û<®ãÀûyû û*û=ÊË8‡û,tû>%3¯J¢Ø”ûqÆû'=û]iûiÌû3ë£ûû4‘ûSûÍ-u©KÇ µœ\ûû?ûjûsûû5Ù(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €ûOs7ûmà«û}ûun"ûb!Žõû¹ûûB±cÅET²ûgbûfû#$ûûca~ûl`ZÂÖûYû|û?ûPžháû}û[Dû&7ûmà«û}ûun"ûb!Žõû¹ûûB±cÅET²ûgbûfû#$ûûca~ûl`ZÂÖûYû|û?ûPžháû}û[Dû&ûO7ûmà«û}ûun"ûb!Žõû¹ûûB±cÅET²ûgbûfû#$ûûca~ûl`ZÂÖûYû|û?ûPžháû}û[Dû&7ûmà«û}ûun"ûb!Žõû¹ûûB±cÅET²ûgbûfû#$ûûca~ûl`ZÂÖûYû|û?ûPžháû}û[Dû&D(attlist (("TARGETDOCENT" ENTITY IMPLIED) ("LINKMODE" IDREF IMPLIED) ("LOCALINFO" CDATA IMPLIED) ("TYPE" CDATA IMPLIED) ("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €aû&ûg²TEÅcûxHúû “áûû1†âºÉûržû-›û;+Iû ­³û2´û<®ãÀûyû û*û=ÊË8‡û,tû>%3¯J¢Ø”ûqÆû'=û]iûiÌû3ë£ûû4‘ûSûÍ-u©KÇ µœ\ûû?ûjûsûû5ÙÍûûSû5(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €û&Húû “ážûSûÍu\ûs(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ENTITYREF" ENTITY IMPLIED) ("FILEREF" CDATA IMPLIED) ("FORMAT" (name-token-group ("BMP" "CGM-CHAR" "CGM-BINARY" "CGM-CLEAR" "DITROFF" "DVI" "EPS" "EQN" "FAX" "GIF" "GIF87A" "GIF89A" "JPG" "JPEG" "IGES" "PCX" "PIC" "PNG" "PS" "SGML" "TBL" "TEX" "TIFF" "WMF" "WPG" "LINESPECIFIC")) IMPLIED) ("SRCCREDIT" CDATA IMPLIED) ("WIDTH" NUTOKEN IMPLIED) ("DEPTH" NUTOKEN IMPLIED) ("ALIGN" (name-token-group ("LEFT" "RIGHT" "CENTER")) IMPLIED) ("SCALE" NUMBER IMPLIED) ("SCALEFIT" NUMBER IMPLIED) ("ROLE" CDATA IMPLIED))) (attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €û&Húû2(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €4*û&ûpû[Nû:ûûGUûVÑsûD<ûFÃûdrûhû1ûHO†û 2o„ûvû\G‰ºû,ûRêû$…Éûwûrz$}ûû&(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) € û&Húû “áû2u\ûSûÍ(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €û&Húû2(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €9û&ûpû[Nû:ûûGUûVÑsûD<ûFÃûdrûhû1ûHO†û 2o„ûvû\G‰ºû,ûRêû$…Éûwûrz$}û×#âûûc9ûcûâ#×û}$zûrûwÉ…û$êûRû,º‰Gû\ûv„o2û †OûHû1ûhrûdÃFû<ûDsÑVûUûGûû:Nû[ûpû&(attlist (("STATUS" CDATA IMPLIED) ("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) € 9ûmà«û}ûun"ûb!Žõû¹ûûB±cÅET²ûgbûfû#$ûûca~ûl`ZÂÖûYû|û?ûPžháû}û[Dû&s»/|7û&Dû[}ûáhžûP?ûû|ûYÖÂZ`ûl~aûcû$û#ûfbûg²TEÅc±ûBû¹ûõŽ!ûb"nûuû}«àûm/|9ûmà«û}ûun"ûb!Žõû¹ûûB±cÅET²ûgbûfû#$ûûca~ûl`ZÂÖûYû|û?ûPžháû}û[Dû&ÑûD/|8ûmà«û}ûun"ûb!Žõû¹ûûB±cÅET²ûgbûfû#$ûûca~ûl`ZÂÖûYû|û?ûPžháû}û[Dû&s/|P/P|7ûmà«û}ûun"ûb!Žõû¹ûûB±cÅET²ûgbûfû#$ûûca~ûl`ZÂÖûYû|û?ûPžháû}û[Dû&/|8ûmà«û}ûun"ûb!Žõû¹ûûB±cÅET²ûgbûfû#$ûûca~ûl`ZÂÖûYû|û?ûPžháû}û[Dû&Ñ/|(attlist (("WIDTH" NUMBER IMPLIED) ("FORMAT" (NOTATION ("LINESPECIFIC")) (nil "linespecific")) ("LINENUMBERING" (name-token-group ("NUMBERED" "UNNUMBERED")) IMPLIED) ("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €cû&ûg²TEÅcûxHúû “áûû1†âºÉûržû-›û;+Iû ­³û2´û<®ãÀûyû û*û=ÊË8‡û,tû>%3¯J¢Ø”ûqÆû'=û]iûiÌû3ë£ûû4‘ûSûÍ-u©KÇ µœ\ûû?ûjûsûû5Ù6§(attlist (("PUBWORK" (name-token-group ("ARTICLE" "BOOK" "CHAPTER" "PART" "REFENTRY" "SECTION" "JOURNAL" "SERIES" "SET" "MANUSCRIPT")) IMPLIED) ("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €aû&ûg²TEÅcûxHúû “áûû1†âºÉûržû-›û;+Iû ­³û2´û<®ãÀûyû û*û=ÊË8‡û,tû>%3¯J¢Ø”ûqÆû'=û]iûiÌû3ë£ûû4‘ûSûÍ-u©KÇ µœ\ûû?ûjûsûû5Ù(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) € û&Húû “áû2u\ûSûÍ(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €s¬û)Ѭû)¬û)¬û)(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €sûmà«û}ûun"ûb!Žõû¹ûûB±bûfû#ûû&û&ûû#ûfb±ûBû¹ûõŽ!ûb"nûuû}«àûmûmà«û}ûun"ûb!Žõû¹ûûB±bûfû#ûû&ÖûYû|(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) € û&Húû “áû2u\ûSûÍ(attlist (("CLASS" (name-token-group ("JOURNALARTICLE" "PRODUCTSHEET" "WHITEPAPER" "TECHREPORT" "SPECIFICATION" "FAQ")) IMPLIED) ("PARENTBOOK" IDREF IMPLIED) ("STATUS" CDATA IMPLIED) ("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €û+ û%s;ûmà«û}ûun"ûb!Žõû¹ûûB±cÅET²ûgbûfû#$ûûca~ûl`ZÂÖûYû|û?ûPžháû}û[Dû&· 4{ û+;ûmà«û}ûun"ûb!Žõû¹ûûB±cÅET²ûgbûfû#$ûûca~ûl`ZÂÖûYû|û?ûPžháû}û[Dû&· 4{ û+;ûmà«û}ûun"ûb!Žõû¹ûûB±cÅET²ûgbûfû#$ûûca~ûl`ZÂÖûYû|û?ûPžháû}û[Dû&· 4{ û+ ;ûmà«û}ûun"ûb!Žõû¹ûûB±cÅET²ûgbûfû#$ûûca~ûl`ZÂÖûYû|û?ûPžháû}û[Dû&· 4{ û+ û%Ñ ûD ;ûmà«û}ûun"ûb!Žõû¹ûûB±cÅET²ûgbûfû#$ûûca~ûl`ZÂÖûYû|û?ûPžháû}û[Dû&· 4{ Bû û+ û7 û P Ä û. { 4 ·ûmà«û}ûun"ûb!Žõû¹ûûB±cÅET²ûgbûfû#$ûûca~ûl`ZÂÖûYû|û?ûPžháû}û[Dû&û û+ û7 û P Ä û. ·û û+ û7 û P Ä û. û û+ û7 û P Ä û. 4û û+ û7 û P Ä û. { û+ û%;ûmà«û}ûun"ûb!Žõû¹ûûB±cÅET²ûgbûfû#$ûûca~ûl`ZÂÖûYû|û?ûPžháû}û[Dû&· 4{ û+ û%Ñ ;ûmà«û}ûun"ûb!Žõû¹ûûB±cÅET²ûgbûfû#$ûûca~ûl`ZÂÖûYû|û?ûPžháû}û[Dû&· 4{ û. Ä P û û7 û+ û û û+ û7 û P Ä û. · 4{ û û+ û7 û P Ä û. 4û û+ û7 û P Ä û. û û+ û7 û P Ä û. ·û&(attlist (("ROWSEP" NUMBER IMPLIED) ("VALIGN" (name-token-group ("TOP" "MIDDLE" "BOTTOM")) IMPLIED) ("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €û/ÈÈû/(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €aû&ûg²TEÅcûxHúû “áûû1†âºÉûržû-›û;+Iû ­³û2´û<®ãÀûyû û*û=ÊË8‡û,tû>%3¯J¢Ø”ûqÆû'=û]iûiÌû3ë£ûû4‘ûSûÍ-u©KÇ µœ\ûû?ûjûsûû5Ù(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €AN(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €9û&ûpû[Nû:ûûGUûVÑsûD<ûFÃûdrûhû1ûHO†û 2o„ûvû\G‰ºû,ûRêû$…Éûwûrz$}û×#âûûc9ûcûâ#×û}$zûrûwÉ…û$êûRû,º‰Gû\ûv„o2û †OûHû1ûhrûdÃFû<ûDsÑVûUûGûû:Nû[ûpû&(attlist (("PAGENUM" CDATA IMPLIED) ("SCOPE" (name-token-group ("ALL" "GLOBAL" "LOCAL")) IMPLIED) ("SIGNIFICANCE" (name-token-group ("PREFERRED" "NORMAL")) (nil "Normal")) ("CLASS" (name-token-group ("SINGULAR" "STARTOFRANGE" "ENDOFRANGE")) IMPLIED) ("STARTREF" IDREF CONREF) ("ZONE" IDREFS IMPLIED) ("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) € w@'Ï@@'ût@@' @û&(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) € û&Húû “áû2u\ûSûÍ(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €9û&ûpû[Nû:ûûGUûVÑsûD<ûFÃûdrûhû1ûHO†û 2o„ûvû\G‰ºû,ûRêû$…Éûwûrz$}û×#âûûc9ûcûâ#×û}$zûrûwÉ…û$êûRû,º‰Gû\ûv„o2û †OûHû1ûhrûdÃFû<ûDsÑVûUûGûû:Nû[ûpû&(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED) ("AUDIENCE" CDATA IMPLIED) ("LEVEL" CDATA IMPLIED) ("ORIGIN" CDATA IMPLIED))) €ûC¨(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €û&Húû2(attlist (("LABEL" CDATA IMPLIED) ("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €ûksûkûkÑûDûkûkÑ(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €˜ ˜ (attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €û&Húû2(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) € û&Húû “áû2u\ûSûÍ(attlist (("COLS" NUMBER REQUIRED) ("TGROUPSTYLE" NMTOKEN IMPLIED) ("COLNAME" NMTOKEN IMPLIED) ("SPANNAME" NMTOKEN IMPLIED) ("NAMEST" NMTOKEN IMPLIED) ("NAMEEND" NMTOKEN IMPLIED) ("COLSEP" NUMBER IMPLIED) ("ROWSEP" NUMBER IMPLIED) ("ALIGN" (name-token-group ("LEFT" "RIGHT" "CENTER" "JUSTIFY" "CHAR")) IMPLIED) ("CHAR" CDATA IMPLIED) ("CHAROFF" NUTOKEN IMPLIED) ("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €¾¡ûLûL¾¡ûLû/(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) € û&Húû “áû2u\ûSûÍ(attlist (("CLASS" (name-token-group ("COMMAND" "FUNCTION" "OPTION" "PARAMETER")) IMPLIED) ("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) € Húû “ážûSûÍ(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €û&Húû2(attlist (("CLASS" (name-token-group ("HARDWARE" "SOFTWARE")) IMPLIED) ("MOREINFO" (name-token-group ("REFENTRY" "NONE")) (nil "None")) ("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €aû&ûg²TEÅcûxHúû “áûû1†âºÉûržû-›û;+Iû ­³û2´û<®ãÀûyû û*û=ÊË8‡û,tû>%3¯J¢Ø”ûqÆû'=û]iûiÌû3ë£ûû4‘ûSûÍ-u©KÇ µœ\ûû?ûjûsûû5Ù(attlist (("ENDTERM" IDREF IMPLIED) ("LINKEND" IDREF REQUIRED) ("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) (attlist (("LINKENDS" IDREFS IMPLIED) ("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €WHúû “áûû1†âºÉûržû-›û;+Iû ­³û2´û<®ãÀûyû û*û=ÊË8‡û,tû>%3¯J¢Ø”ûqÆû'=û]iûiÌû3ë£ûû4‘ûSûÍ-u©KÇ µœ\ûû?ûjûsûû5Ù(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €;ò•ûmà«û}ûun"ûb!Žõû¹ûûB±cÅET²ûgbûfû#$ûûca~ûl`ZÂÖûYû|û?ûPžháû}û[Dû&sŸ•ò•9ò•û&Dû[}ûáhžûP?ûû|ûYÖÂZ`ûl~aûcû$û#ûfbûg²TEÅc±ûBû¹ûõŽ!ûb"nûuû}«àûm;ò•ûmà«û}ûun"ûb!Žõû¹ûûB±cÅET²ûgbûfû#$ûûca~ûl`ZÂÖûYû|û?ûPžháû}û[Dû&ÑûD:ò•ûmà«û}ûun"ûb!Žõû¹ûûB±cÅET²ûgbûfû#$ûûca~ûl`ZÂÖûYû|û?ûPžháû}û[Dû&s9ò•ûmà«û}ûun"ûb!Žõû¹ûûB±cÅET²ûgbûfû#$ûûca~ûl`ZÂÖûYû|û?ûPžháû}û[Dû&:ò•ûmà«û}ûun"ûb!Žõû¹ûûB±cÅET²ûgbûfû#$ûûca~ûl`ZÂÖûYû|û?ûPžháû}û[Dû&Ñû&(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) (attlist (("PERFORMANCE" (name-token-group ("OPTIONAL" "REQUIRED")) (nil "Required")) ("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €s8ûmà«û}ûun"ûb!Žõû¹ûûB±cÅET²ûgbûfû#$ûûca~ûl`ZÂÖûYû|û?ûPžháû}û[Dû&ƒ8ƒû&Dû[}ûáhžûP?ûû|ûYÖÂZ`ûl~aûcû$û#ûfbûg²TEÅc±ûBû¹ûõŽ!ûb"nûuû}«àûm8ƒûmà«û}ûun"ûb!Žõû¹ûûB±cÅET²ûgbûfû#$ûûca~ûl`ZÂÖûYû|û?ûPžháû}û[Dû&7û&Dû[}ûáhžûP?ûû|ûYÖÂZ`ûl~aûcû$û#ûfbûg²TEÅc±ûBû¹ûõŽ!ûb"nûuû}«àûm7û&Dû[}ûáhžûP?ûû|ûYÖÂZ`ûl~aûcû$û#ûfbûg²TEÅc±ûBû¹ûõŽ!ûb"nûuû}«àûm(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) € û&Húû “áû2u\ûSûÍ(attlist (("CLASS" (name-token-group ("CONSTANT" "GROUPNAME" "LIBRARY" "MACRO" "OSNAME" "RESOURCE" "SYSTEMNAME" "USERNAME")) IMPLIED) ("MOREINFO" (name-token-group ("REFENTRY" "NONE")) (nil "None")) ("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €ûsû&Húû2(attlist (("MOREINFO" (name-token-group ("REFENTRY" "NONE")) (nil "None")) ("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €û&Húû2(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED) ("CLASS" (name-token-group ("LIMIT")) IMPLIED))) €û&Húû2(attlist (("MOREINFO" (name-token-group ("REFENTRY" "NONE")) (nil "None")) ("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €ûzû&Húû2(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €Þ((attlist (("STATUS" CDATA IMPLIED) ("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €ssÑûD7ûmà«û}ûun"ûb!Žõû¹ûûB±cÅET²ûgbûfû#$ûûca~ûl`ZÂÖûYû|û?ûPžháû}û[Dû&7ûmà«û}ûun"ûb!Žõû¹ûûB±cÅET²ûgbûfû#$ûûca~ûl`ZÂÖûYû|û?ûPžháû}û[Dû&Ñ7ûmà«û}ûun"ûb!Žõû¹ûûB±cÅET²ûgbûfû#$ûûca~ûl`ZÂÖûYû|û?ûPžháû}û[Dû&7ûmà«û}ûun"ûb!Žõû¹ûûB±cÅET²ûgbûfû#$ûûca~ûl`ZÂÖûYû|û?ûPžháû}û[Dû&(attlist (("LABEL" CDATA IMPLIED) ("STATUS" CDATA IMPLIED) ("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €ªss>ÑûD44>4>Ñ44û&(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €yûûm(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €7û&Dû[}ûáhžûP?ûû|ûYÖÂZ`ûl~aûcû$û#ûfbûg²TEÅc±ûBû¹ûõŽ!ûb"nûuû}«àûm7ûmà«û}ûun"ûb!Žõû¹ûûB±cÅET²ûgbûfû#$ûûca~ûl`ZÂÖûYû|û?ûPžháû}û[Dû&(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €Yû&ûxHúû “áûû1†âºÉûržû-›û;+Iû ­³û2´û<®ãÀûyû û*û=ÊË8‡û,tû>%3¯J¢Ø”ûqÆû'=û]iûiÌû3ë£ûû4‘ûSûÍ-u©KÇ µœ\ûû?ûjûsûû5Ù(attlist (("STATUS" CDATA IMPLIED) ("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €ssÑûD8ûmà«û}ûun"ûb!Žõû¹ûûB±cÅET²ûgbûfû#$ûûca~ûl`ZÂÖûYû|û?ûPžháû}û[Dû&û@8ûmà«û}ûun"ûb!Žõû¹ûûB±cÅET²ûgbûfû#$ûûca~ûl`ZÂÖûYû|û?ûPžháû}û[Dû&û@Ñ8ûmà«û}ûun"ûb!Žõû¹ûûB±cÅET²ûgbûfû#$ûûca~ûl`ZÂÖûYû|û?ûPžháû}û[Dû&û@8û@ûmà«û}ûun"ûb!Žõû¹ûûB±cÅET²ûgbûfû#$ûûca~ûl`ZÂÖûYû|û?ûPžháû}û[Dû&û@û@(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €1û&ûáhž?û|ûYÖÂZ`ûl~aûcû$û#ûfbûg²TEÅc±ûBû¹ûõŽ!ûb"nûuû}«àûm1ûmà«û}ûun"ûb!Žõû¹ûûB±cÅET²ûgbûfû#$ûûca~ûl`ZÂÖûYû|?žháûû&(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) € û&Húû “áû2u\ûSûÍ(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €û#ûfbbûfû#(attlist (("STATUS" CDATA IMPLIED) ("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) € ssÑûD8ûmà«û}ûun"ûb!Žõû¹ûûB±cÅET²ûgbûfû#$ûûca~ûl`ZÂÖûYû|û?ûPžháû}û[Dû&ûE8ûmà«û}ûun"ûb!Žõû¹ûûB±cÅET²ûgbûfû#$ûûca~ûl`ZÂÖûYû|û?ûPžháû}û[Dû&ûEÑ8ûmà«û}ûun"ûb!Žõû¹ûûB±cÅET²ûgbûfû#$ûûca~ûl`ZÂÖûYû|û?ûPžháû}û[Dû&ûE8ûEûmà«û}ûun"ûb!Žõû¹ûûB±cÅET²ûgbûfû#$ûûca~ûl`ZÂÖûYû|û?ûPžháû}û[Dû&ûEûE(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €¦XX(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €W®û2(attlist (("VALIGN" (name-token-group ("TOP" "MIDDLE" "BOTTOM")) IMPLIED) ("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €û"û"(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €ûû#ûfb±ûBû¹ûõŽ!ûb"nûuû}«àûm(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €aû&ûg²TEÅcûxHúû “áûû1†âºÉûržû-›û;+Iû ­³û2´û<®ãÀûyû û*û=ÊË8‡û,tû>%3¯J¢Ø”ûqÆû'=û]iûiÌû3ë£ûû4‘ûSûÍ-u©KÇ µœ\ûû?ûjûsûû5Ù(attlist (("DEFAULTLABEL" (name-token-group ("QANDA" "NUMBER" "NONE")) IMPLIED) ("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €2ûmà«û}ûun"ûb!Žõû¹ûûB±cÅET²ûgbûfû#$ûûca~ûl`ZÂÖûYû|?žháûû&sèûo1û&ûáhž?û|ûYÖÂZ`ûl~aûcû$û#ûfbûg²TEÅc±ûBû¹ûõŽ!ûb"nûuû}«àûmèûo2ûmà«û}ûun"ûb!Žõû¹ûûB±cÅET²ûgbûfû#$ûûca~ûl`ZÂÖûYû|?žháûû&Ñèûoèûo1ûmà«û}ûun"ûb!Žõû¹ûûB±cÅET²ûgbûfû#$ûûca~ûl`ZÂÖûYû|?žháûû&èûo(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €3û}$zûrûwÉ…û$êûRû,º‰Gû\ûv„o2û †OûHû1ûhrûdÃFû<ûDsÑVûUûGûû:Nû[ûpû&û%3û%û&ûpû[Nû:ûûGUûVÑsûD<ûFÃûdrûhû1ûHO†û 2o„ûvû\G‰ºû,ûRêû$…Éûwûrz$}ûû&(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) € û&Húû “áû2u\ûSûÍ(attlist (("URL" CDATA REQUIRED) ("TYPE" CDATA IMPLIED) ("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €aû&ûg²TEÅcûxHúû “áûû1†âºÉûržû-›û;+Iû ­³û2´û<®ãÀûyû û*û=ÊË8‡û,tû>%3¯J¢Ø”ûqÆû'=û]iûiÌû3ë£ûû4‘ûSûÍ-u©KÇ µœ\ûû?ûjûsûû5ÙÍûûSû5(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €9û&ûpû[Nû:ûûGUûVÑsûD<ûFÃûdrûhû1ûHO†û 2o„ûvû\G‰ºû,ûRêû$…Éûwûrz$}û×#âûûc9ûcûâ#×û}$zûrûwÉ…û$êûRû,º‰Gû\ûv„o2û †OûHû1ûhrûdÃFû<ûDsÑVûUûGûû:Nû[ûpû&(attlist (("FPI" CDATA IMPLIED) ("STATUS" CDATA IMPLIED) ("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €ûs&&û&ûÑûD&0&û&ûÑ&û&(attlist (("CHOICE" (name-token-group ("OPT" "REQ" "PLAIN")) (nil "Opt")) ("REP" (name-token-group ("NOREPEAT" "REPEAT")) (nil "Norepeat")) ("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €Rû2ûaãûV½½ûVãûaû2R(attlist (("VALIGN" (name-token-group ("TOP" "MIDDLE" "BOTTOM")) IMPLIED) ("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €û"û"û/(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €¦Kûû#ûfb±ûBû¹ûõŽ!ûb"nûuû}«àûmûmà«û}ûun"ûb!Žõû¹ûûB±bûfû#ûKûmà«û}ûun"ûb!Žõû¹ûûB±bûfû#û(attlist (("FLOAT" NUMBER (nil "0")) ("PGWIDE" NUMBER IMPLIED) ("LABEL" CDATA IMPLIED) ("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €sÑõû¹ûûB±cÅET²ûg$ûûca~ûl`ZÂû&ÍûûSõû¹ûûB±cÅET²ûg$ûûca~ûl`ZÂû&ÍûûSõû¹ûûB±cÅET²ûg$ûûca~ûl`ZÂû&ÍûûS(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €û&Húû2(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €sbûfû#û#ûfbbûfû#(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) € û&Húû “áû2u\ûSûÍ(attlist (("MOREINFO" (name-token-group ("REFENTRY" "NONE")) (nil "None")) ("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €@û&Húû “ážû-›û;+Iû ­³û2´û<®ãÀûyû û*û=ÊË8‡û,tû>%3¯J¢Ø”ûqÆû'=û]iûiÌû3ë£ûû4‘ûSûÍ(attlist (("STATUS" CDATA IMPLIED) ("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €sûmà«û}ûun"ûb!Žõû¹ûûB±bûfû#ûÑûDûmà«û}ûun"ûb!Žõû¹ûûB±bûfû#ûûmà«û}ûun"ûb!Žõû¹ûûB±bûfû#ûûmà«û}ûun"ûb!Žõû¹ûûB±bûfû#ûÑûmà«û}ûun"ûb!Žõû¹ûûB±bûfû#û(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) € û&Húû “áû2u\ûSûÍ(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €û&Húû2(attlist (("LINKEND" IDREF REQUIRED) ("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) (attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €s,ûmà«û}ûun"õû¹ûûB±cÅET²ûgbûfû#$ûûca~ûl`ZÂÖûYû|?žháû&,û&áhž?û|ûYÖÂZ`ûl~aûcû$û#ûfbûg²TEÅc±ûBû¹ûõ"nûuû}«àûm,ûmà«û}ûun"õû¹ûûB±cÅET²ûgbûfû#$ûûca~ûl`ZÂÖûYû|?žháû&ûb!Ž(attlist (("ENTITYREF" ENTITY IMPLIED) ("FILEREF" CDATA IMPLIED) ("FORMAT" (name-token-group ("BMP" "CGM-CHAR" "CGM-BINARY" "CGM-CLEAR" "DITROFF" "DVI" "EPS" "EQN" "FAX" "GIF" "GIF87A" "GIF89A" "JPG" "JPEG" "IGES" "PCX" "PIC" "PNG" "PS" "SGML" "TBL" "TEX" "TIFF" "WMF" "WPG" "LINESPECIFIC")) IMPLIED) ("SRCCREDIT" CDATA IMPLIED) ("WIDTH" NUTOKEN IMPLIED) ("DEPTH" NUTOKEN IMPLIED) ("ALIGN" (name-token-group ("LEFT" "RIGHT" "CENTER")) IMPLIED) ("SCALE" NUMBER IMPLIED) ("SCALEFIT" NUMBER IMPLIED) ("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) (attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) € û&Húû “áû2u\ûSûÍ(attlist (("AREAREFS" IDREFS REQUIRED) ("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €7û&Dû[}ûáhžûP?ûû|ûYÖÂZ`ûl~aûcû$û#ûfbûg²TEÅc±ûBû¹ûõŽ!ûb"nûuû}«àûm7ûmà«û}ûun"ûb!Žõû¹ûûB±cÅET²ûgbûfû#$ûûca~ûl`ZÂÖûYû|û?ûPžháû}û[Dû&(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €û|ûYÖÂZ`ûl~aûcû$±ûBû¹ûõŽ!ûb"nûuû}«àûmû&ûg²TEÅcûxHúû “áûû1†âºÉûržû-›û;+Iû ­³û2´û<®ãÀûyû û*û=ÊË8‡û,tû>%3¯J¢Ø”ûqÆû'=û]iûiÌû3ë£ûû4‘ûSûÍ-u©KÇ µœ\ûû?ûjûsûû5Ù(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €›û8û`££Üû8û`û3Üû`û3û`û`û3(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) € û&Húû “áû2u\ûSûÍ(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €û`û3(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €aû&ûg²TEÅcûxHúû “áûû1†âºÉûržû-›û;+Iû ­³û2´û<®ãÀûyû û*û=ÊË8‡û,tû>%3¯J¢Ø”ûqÆû'=û]iûiÌû3ë£ûû4‘ûSûÍ-u©KÇ µœ\ûû?ûjûsûû5Ù(attlist (("SRCCREDIT" CDATA IMPLIED) ("PAGENUM" CDATA IMPLIED) ("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("LINKEND" IDREF IMPLIED) ("ROLE" CDATA IMPLIED))) €aû&ûg²TEÅcûxHúû “áûû1†âºÉûržû-›û;+Iû ­³û2´û<®ãÀûyû û*û=ÊË8‡û,tû>%3¯J¢Ø”ûqÆû'=û]iûiÌû3ë£ûû4‘ûSûÍ-u©KÇ µœ\ûû?ûjûsûû5Ù(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €ûMûcûcûc(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €sûeÑûeûeûe(attlist (("LINKENDS" IDREFS IMPLIED) ("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €WHúû “áûû1†âºÉûržû-›û;+Iû ­³û2´û<®ãÀûyû û*û=ÊË8‡û,tû>%3¯J¢Ø”ûqÆû'=û]iûiÌû3ë£ûû4‘ûSûÍ-u©KÇ µœ\ûû?ûjûsûû5Ù(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €ûññô(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) € û&Húû “áû2u\ûSûÍ(attlist (("MOREINFO" (name-token-group ("REFENTRY" "NONE")) (nil "None")) ("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €û&Húû2(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €ûpû[Nû:ûûGUUûGûû:Nû[ûp(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €û&Húû “ážûSûÍu\ûsûs(attlist (("SORTAS" CDATA IMPLIED) ("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €WHúû “áûû1†âºÉûržû-›û;+Iû ­³û2´û<®ãÀûyû û*û=ÊË8‡û,tû>%3¯J¢Ø”ûqÆû'=û]iûiÌû3ë£ûû4‘ûSûÍ-u©KÇ µœ\ûû?ûjûsûû5Ù(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €s¿Ñ¿¿¿¿YY(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €ûpû[Nû:ûûGUUûGûû:Nû[ûp(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €†ºû$ûvûrûrûvû$º†(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €ûMûcHHûcûcH(attlist (("MOREINFO" (name-token-group ("REFENTRY" "NONE")) (nil "None")) ("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €—J¯3%û>tûûtû>%3¯JJ¯3%û>tû(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €û&Húû2(attlist (("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) € û&Húû “áû2u\ûSûÍ(attlist (("FRAME" (name-token-group ("TOP" "BOTTOM" "TOPBOT" "ALL" "SIDES" "NONE")) IMPLIED) ("COLSEP" NUMBER IMPLIED) ("ROWSEP" NUMBER IMPLIED) ("TABSTYLE" NMTOKEN IMPLIED) ("TOCENTRY" NUMBER IMPLIED) ("SHORTENTRY" NUMBER IMPLIED) ("ORIENT" (name-token-group ("PORT" "LAND")) IMPLIED) ("PGWIDE" NUMBER IMPLIED) ("LABEL" CDATA IMPLIED) ("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €sû&Ñûcgû&ûcgû&ûcgûcgÂÖûYû|(attlist (("NUMERATION" (name-token-group ("ARABIC" "UPPERALPHA" "LOWERALPHA" "UPPERROMAN" "LOWERROMAN")) IMPLIED) ("INHERITNUM" (name-token-group ("INHERIT" "IGNORE")) (nil "Ignore")) ("CONTINUATION" (name-token-group ("CONTINUES" "RESTARTS")) (nil "Restarts")) ("SPACING" (name-token-group ("NORMAL" "COMPACT")) IMPLIED) ("ID" ID IMPLIED) ("LANG" CDATA IMPLIED) ("REMAP" CDATA IMPLIED) ("XREFLABEL" CDATA IMPLIED) ("REVISIONFLAG" (name-token-group ("CHANGED" "ADDED" "DELETED" "OFF")) IMPLIED) ("ARCH" CDATA IMPLIED) ("CONDITION" CDATA IMPLIED) ("CONFORMANCE" NMTOKENS IMPLIED) ("OS" CDATA IMPLIED) ("REVISION" CDATA IMPLIED) ("SECURITY" CDATA IMPLIED) ("USERLEVEL" CDATA IMPLIED) ("VENDOR" CDATA IMPLIED) ("ROLE" CDATA IMPLIED))) €smÑmmm(nil ("debconf" text "debconf" nil) ("gnome" text "GNOME" nil) ("progeny.inc" text "Progeny Linux Systems, Inc." nil) ("psgml" text "PSGML" nil) ("users.root" text "root" nil) ("lsb" text "LSB" nil) ("rpm" text "RPM" nil) ("gcc" text "gcc" nil) ("euro" SDATA "[euro ]" nil) ("cularr" SDATA "[cularr]" nil) ("curarr" SDATA "[curarr]" nil) ("dArr" SDATA "[dArr ]" nil) ("darr2" SDATA "[darr2 ]" nil) ("dharl" SDATA "[dharl ]" nil) ("dharr" SDATA "[dharr ]" nil) ("lAarr" SDATA "[lAarr ]" nil) ("Larr" SDATA "[Larr ]" nil) ("larr2" SDATA "[larr2 ]" nil) ("larrhk" SDATA "[larrhk]" nil) ("larrlp" SDATA "[larrlp]" nil) ("larrtl" SDATA "[larrtl]" nil) ("lhard" SDATA "[lhard ]" nil) ("lharu" SDATA "[lharu ]" nil) ("hArr" SDATA "[hArr ]" nil) ("harr" SDATA "[harr ]" nil) ("lrarr2" SDATA "[lrarr2]" nil) ("rlarr2" SDATA "[rlarr2]" nil) ("harrw" SDATA "[harrw ]" nil) ("rlhar2" SDATA "[rlhar2]" nil) ("lrhar2" SDATA "[lrhar2]" nil) ("lsh" SDATA "[lsh ]" nil) ("map" SDATA "[map ]" nil) ("mumap" SDATA "[mumap ]" nil) ("nearr" SDATA "[nearr ]" nil) ("nlArr" SDATA "[nlArr ]" nil) ("nlarr" SDATA "[nlarr ]" nil) ("nhArr" SDATA "[nhArr ]" nil) ("nharr" SDATA "[nharr ]" nil) ("nrarr" SDATA "[nrarr ]" nil) ("nrArr" SDATA "[nrArr ]" nil) ("nwarr" SDATA "[nwarr ]" nil) ("olarr" SDATA "[olarr ]" nil) ("orarr" SDATA "[orarr ]" nil) ("rAarr" SDATA "[rAarr ]" nil) ("Rarr" SDATA "[Rarr ]" nil) ("rarr2" SDATA "[rarr2 ]" nil) ("rarrhk" SDATA "[rarrhk]" nil) ("rarrlp" SDATA "[rarrlp]" nil) ("rarrtl" SDATA "[rarrtl]" nil) ("rarrw" SDATA "[rarrw ]" nil) ("rhard" SDATA "[rhard ]" nil) ("rharu" SDATA "[rharu ]" nil) ("rsh" SDATA "[rsh ]" nil) ("drarr" SDATA "[drarr ]" nil) ("dlarr" SDATA "[dlarr ]" nil) ("uArr" SDATA "[uArr ]" nil) ("uarr2" SDATA "[uarr2 ]" nil) ("vArr" SDATA "[vArr ]" nil) ("varr" SDATA "[varr ]" nil) ("uharl" SDATA "[uharl ]" nil) ("uharr" SDATA "[uharr ]" nil) ("xlArr" SDATA "[xlArr ]" nil) ("xhArr" SDATA "[xhArr ]" nil) ("xharr" SDATA "[xharr ]" nil) ("xrArr" SDATA "[xrArr ]" nil) ("amalg" SDATA "[amalg ]" nil) ("Barwed" SDATA "[Barwed]" nil) ("barwed" SDATA "[barwed]" nil) ("Cap" SDATA "[Cap ]" nil) ("Cup" SDATA "[Cup ]" nil) ("cuvee" SDATA "[cuvee ]" nil) ("cuwed" SDATA "[cuwed ]" nil) ("diam" SDATA "[diam ]" nil) ("divonx" SDATA "[divonx]" nil) ("intcal" SDATA "[intcal]" nil) ("lthree" SDATA "[lthree]" nil) ("ltimes" SDATA "[ltimes]" nil) ("minusb" SDATA "[minusb]" nil) ("oast" SDATA "[oast ]" nil) ("ocir" SDATA "[ocir ]" nil) ("odash" SDATA "[odash ]" nil) ("odot" SDATA "[odot ]" nil) ("ominus" SDATA "[ominus]" nil) ("oplus" SDATA "[oplus ]" nil) ("osol" SDATA "[osol ]" nil) ("otimes" SDATA "[otimes]" nil) ("plusb" SDATA "[plusb ]" nil) ("plusdo" SDATA "[plusdo]" nil) ("rthree" SDATA "[rthree]" nil) ("rtimes" SDATA "[rtimes]" nil) ("sdot" SDATA "[sdot ]" nil) ("sdotb" SDATA "[sdotb ]" nil) ("setmn" SDATA "[setmn ]" nil) ("sqcap" SDATA "[sqcap ]" nil) ("sqcup" SDATA "[sqcup ]" nil) ("ssetmn" SDATA "[ssetmn]" nil) ("sstarf" SDATA "[sstarf]" nil) ("timesb" SDATA "[timesb]" nil) ("top" SDATA "[top ]" nil) ("uplus" SDATA "[uplus ]" nil) ("wreath" SDATA "[wreath]" nil) ("xcirc" SDATA "[xcirc ]" nil) ("xdtri" SDATA "[xdtri ]" nil) ("xutri" SDATA "[xutri ]" nil) ("coprod" SDATA "[coprod]" nil) ("prod" SDATA "[prod ]" nil) ("sum" SDATA "[sum ]" nil) ("rceil" SDATA "[rceil ]" nil) ("rfloor" SDATA "[rfloor]" nil) ("rpargt" SDATA "[rpargt]" nil) ("urcorn" SDATA "[urcorn]" nil) ("drcorn" SDATA "[drcorn]" nil) ("lceil" SDATA "[lceil ]" nil) ("lfloor" SDATA "[lfloor]" nil) ("lpargt" SDATA "[lpargt]" nil) ("ulcorn" SDATA "[ulcorn]" nil) ("dlcorn" SDATA "[dlcorn]" nil) ("gnap" SDATA "[gnap ]" nil) ("gne" SDATA "[gne ]" nil) ("gnE" SDATA "[gnE ]" nil) ("gnsim" SDATA "[gnsim ]" nil) ("gvnE" SDATA "[gvnE ]" nil) ("lnap" SDATA "[lnap ]" nil) ("lnE" SDATA "[lnE ]" nil) ("lne" SDATA "[lne ]" nil) ("lnsim" SDATA "[lnsim ]" nil) ("lvnE" SDATA "[lvnE ]" nil) ("nap" SDATA "[nap ]" nil) ("ncong" SDATA "[ncong ]" nil) ("nequiv" SDATA "[nequiv]" nil) ("ngE" SDATA "[ngE ]" nil) ("nge" SDATA "[nge ]" nil) ("nges" SDATA "[nges ]" nil) ("ngt" SDATA "[ngt ]" nil) ("nle" SDATA "[nle ]" nil) ("nlE" SDATA "[nlE ]" nil) ("nles" SDATA "[nles ]" nil) ("nlt" SDATA "[nlt ]" nil) ("nltri" SDATA "[nltri ]" nil) ("nltrie" SDATA "[nltrie]" nil) ("nmid" SDATA "[nmid ]" nil) ("npar" SDATA "[npar ]" nil) ("npr" SDATA "[npr ]" nil) ("npre" SDATA "[npre ]" nil) ("nrtri" SDATA "[nrtri ]" nil) ("nrtrie" SDATA "[nrtrie]" nil) ("nsc" SDATA "[nsc ]" nil) ("nsce" SDATA "[nsce ]" nil) ("nsim" SDATA "[nsim ]" nil) ("nsime" SDATA "[nsime ]" nil) ("nsmid" SDATA "[nsmid ]" nil) ("nspar" SDATA "[nspar ]" nil) ("nsub" SDATA "[nsub ]" nil) ("nsube" SDATA "[nsube ]" nil) ("nsubE" SDATA "[nsubE ]" nil) ("nsup" SDATA "[nsup ]" nil) ("nsupE" SDATA "[nsupE ]" nil) ("nsupe" SDATA "[nsupe ]" nil) ("nvdash" SDATA "[nvdash]" nil) ("nvDash" SDATA "[nvDash]" nil) ("nVDash" SDATA "[nVDash]" nil) ("nVdash" SDATA "[nVdash]" nil) ("prnap" SDATA "[prnap ]" nil) ("prnE" SDATA "[prnE ]" nil) ("prnsim" SDATA "[prnsim]" nil) ("scnap" SDATA "[scnap ]" nil) ("scnE" SDATA "[scnE ]" nil) ("scnsim" SDATA "[scnsim]" nil) ("subne" SDATA "[subne ]" nil) ("subnE" SDATA "[subnE ]" nil) ("supne" SDATA "[supne ]" nil) ("supnE" SDATA "[supnE ]" nil) ("vsubnE" SDATA "[vsubnE]" nil) ("vsubne" SDATA "[vsubne]" nil) ("vsupne" SDATA "[vsupne]" nil) ("vsupnE" SDATA "[vsupnE]" nil) ("ang" SDATA "[ang ]" nil) ("angmsd" SDATA "[angmsd]" nil) ("beth" SDATA "[beth ]" nil) ("bprime" SDATA "[bprime]" nil) ("comp" SDATA "[comp ]" nil) ("daleth" SDATA "[daleth]" nil) ("ell" SDATA "[ell ]" nil) ("empty" SDATA "[empty ]" nil) ("gimel" SDATA "[gimel ]" nil) ("image" SDATA "[image ]" nil) ("inodot" SDATA "[inodot]" nil) ("jnodot" SDATA "[jnodot]" nil) ("nexist" SDATA "[nexist]" nil) ("oS" SDATA "[oS ]" nil) ("planck" SDATA "[planck]" nil) ("real" SDATA "[real ]" nil) ("sbsol" SDATA "[sbsol ]" nil) ("vprime" SDATA "[vprime]" nil) ("weierp" SDATA "[weierp]" nil) ("ape" SDATA "[ape ]" nil) ("asymp" SDATA "[asymp ]" nil) ("bcong" SDATA "[bcong ]" nil) ("bepsi" SDATA "[bepsi ]" nil) ("bowtie" SDATA "[bowtie]" nil) ("bsim" SDATA "[bsim ]" nil) ("bsime" SDATA "[bsime ]" nil) ("bump" SDATA "[bump ]" nil) ("bumpe" SDATA "[bumpe ]" nil) ("cire" SDATA "[cire ]" nil) ("colone" SDATA "[colone]" nil) ("cuepr" SDATA "[cuepr ]" nil) ("cuesc" SDATA "[cuesc ]" nil) ("cupre" SDATA "[cupre ]" nil) ("dashv" SDATA "[dashv ]" nil) ("ecir" SDATA "[ecir ]" nil) ("ecolon" SDATA "[ecolon]" nil) ("eDot" SDATA "[eDot ]" nil) ("esdot" SDATA "[esdot ]" nil) ("efDot" SDATA "[efDot ]" nil) ("egs" SDATA "[egs ]" nil) ("els" SDATA "[els ]" nil) ("erDot" SDATA "[erDot ]" nil) ("fork" SDATA "[fork ]" nil) ("frown" SDATA "[frown ]" nil) ("gap" SDATA "[gap ]" nil) ("gsdot" SDATA "[gsdot ]" nil) ("gE" SDATA "[gE ]" nil) ("gel" SDATA "[gel ]" nil) ("gEl" SDATA "[gEl ]" nil) ("ges" SDATA "[ges ]" nil) ("Gg" SDATA "[Gg ]" nil) ("gl" SDATA "[gl ]" nil) ("gsim" SDATA "[gsim ]" nil) ("Gt" SDATA "[Gt ]" nil) ("lap" SDATA "[lap ]" nil) ("ldot" SDATA "[ldot ]" nil) ("lE" SDATA "[lE ]" nil) ("lEg" SDATA "[lEg ]" nil) ("leg" SDATA "[leg ]" nil) ("les" SDATA "[les ]" nil) ("lg" SDATA "[lg ]" nil) ("Ll" SDATA "[Ll ]" nil) ("lsim" SDATA "[lsim ]" nil) ("Lt" SDATA "[Lt ]" nil) ("ltrie" SDATA "[ltrie ]" nil) ("mid" SDATA "[mid ]" nil) ("models" SDATA "[models]" nil) ("pr" SDATA "[pr ]" nil) ("prap" SDATA "[prap ]" nil) ("pre" SDATA "[pre ]" nil) ("prsim" SDATA "[prsim ]" nil) ("rtrie" SDATA "[rtrie ]" nil) ("samalg" SDATA "[samalg]" nil) ("sc" SDATA "[sc ]" nil) ("scap" SDATA "[scap ]" nil) ("sccue" SDATA "[sccue ]" nil) ("sce" SDATA "[sce ]" nil) ("scsim" SDATA "[scsim ]" nil) ("sfrown" SDATA "[sfrown]" nil) ("smid" SDATA "[smid ]" nil) ("smile" SDATA "[smile ]" nil) ("spar" SDATA "[spar ]" nil) ("sqsub" SDATA "[sqsub ]" nil) ("sqsube" SDATA "[sqsube]" nil) ("sqsup" SDATA "[sqsup ]" nil) ("sqsupe" SDATA "[sqsupe]" nil) ("ssmile" SDATA "[ssmile]" nil) ("Sub" SDATA "[Sub ]" nil) ("subE" SDATA "[subE ]" nil) ("Sup" SDATA "[Sup ]" nil) ("supE" SDATA "[supE ]" nil) ("thkap" SDATA "[thkap ]" nil) ("thksim" SDATA "[thksim]" nil) ("trie" SDATA "[trie ]" nil) ("twixt" SDATA "[twixt ]" nil) ("vdash" SDATA "[vdash ]" nil) ("Vdash" SDATA "[Vdash ]" nil) ("vDash" SDATA "[vDash ]" nil) ("veebar" SDATA "[veebar]" nil) ("vltri" SDATA "[vltri ]" nil) ("vprop" SDATA "[vprop ]" nil) ("vrtri" SDATA "[vrtri ]" nil) ("Vvdash" SDATA "[Vvdash]" nil) ("boxh" SDATA "[boxh ]" nil) ("boxv" SDATA "[boxv ]" nil) ("boxur" SDATA "[boxur ]" nil) ("boxul" SDATA "[boxul ]" nil) ("boxdl" SDATA "[boxdl ]" nil) ("boxdr" SDATA "[boxdr ]" nil) ("boxvr" SDATA "[boxvr ]" nil) ("boxhu" SDATA "[boxhu ]" nil) ("boxvl" SDATA "[boxvl ]" nil) ("boxhd" SDATA "[boxhd ]" nil) ("boxvh" SDATA "[boxvh ]" nil) ("boxvR" SDATA "[boxvR ]" nil) ("boxhU" SDATA "[boxhU ]" nil) ("boxvL" SDATA "[boxvL ]" nil) ("boxhD" SDATA "[boxhD ]" nil) ("boxvH" SDATA "[boxvH ]" nil) ("boxH" SDATA "[boxH ]" nil) ("boxV" SDATA "[boxV ]" nil) ("boxUR" SDATA "[boxUR ]" nil) ("boxUL" SDATA "[boxUL ]" nil) ("boxDL" SDATA "[boxDL ]" nil) ("boxDR" SDATA "[boxDR ]" nil) ("boxVR" SDATA "[boxVR ]" nil) ("boxHU" SDATA "[boxHU ]" nil) ("boxVL" SDATA "[boxVL ]" nil) ("boxHD" SDATA "[boxHD ]" nil) ("boxVH" SDATA "[boxVH ]" nil) ("boxVr" SDATA "[boxVr ]" nil) ("boxHu" SDATA "[boxHu ]" nil) ("boxVl" SDATA "[boxVl ]" nil) ("boxHd" SDATA "[boxHd ]" nil) ("boxVh" SDATA "[boxVh ]" nil) ("boxuR" SDATA "[boxuR ]" nil) ("boxUl" SDATA "[boxUl ]" nil) ("boxdL" SDATA "[boxdL ]" nil) ("boxDr" SDATA "[boxDr ]" nil) ("boxUr" SDATA "[boxUr ]" nil) ("boxuL" SDATA "[boxuL ]" nil) ("boxDl" SDATA "[boxDl ]" nil) ("boxdR" SDATA "[boxdR ]" nil) ("acy" SDATA "[acy ]" nil) ("Acy" SDATA "[Acy ]" nil) ("bcy" SDATA "[bcy ]" nil) ("Bcy" SDATA "[Bcy ]" nil) ("vcy" SDATA "[vcy ]" nil) ("Vcy" SDATA "[Vcy ]" nil) ("gcy" SDATA "[gcy ]" nil) ("Gcy" SDATA "[Gcy ]" nil) ("dcy" SDATA "[dcy ]" nil) ("Dcy" SDATA "[Dcy ]" nil) ("iecy" SDATA "[iecy ]" nil) ("IEcy" SDATA "[IEcy ]" nil) ("iocy" SDATA "[iocy ]" nil) ("IOcy" SDATA "[IOcy ]" nil) ("zhcy" SDATA "[zhcy ]" nil) ("ZHcy" SDATA "[ZHcy ]" nil) ("zcy" SDATA "[zcy ]" nil) ("Zcy" SDATA "[Zcy ]" nil) ("icy" SDATA "[icy ]" nil) ("Icy" SDATA "[Icy ]" nil) ("jcy" SDATA "[jcy ]" nil) ("Jcy" SDATA "[Jcy ]" nil) ("kcy" SDATA "[kcy ]" nil) ("Kcy" SDATA "[Kcy ]" nil) ("lcy" SDATA "[lcy ]" nil) ("Lcy" SDATA "[Lcy ]" nil) ("mcy" SDATA "[mcy ]" nil) ("Mcy" SDATA "[Mcy ]" nil) ("ncy" SDATA "[ncy ]" nil) ("Ncy" SDATA "[Ncy ]" nil) ("ocy" SDATA "[ocy ]" nil) ("Ocy" SDATA "[Ocy ]" nil) ("pcy" SDATA "[pcy ]" nil) ("Pcy" SDATA "[Pcy ]" nil) ("rcy" SDATA "[rcy ]" nil) ("Rcy" SDATA "[Rcy ]" nil) ("scy" SDATA "[scy ]" nil) ("Scy" SDATA "[Scy ]" nil) ("tcy" SDATA "[tcy ]" nil) ("Tcy" SDATA "[Tcy ]" nil) ("ucy" SDATA "[ucy ]" nil) ("Ucy" SDATA "[Ucy ]" nil) ("fcy" SDATA "[fcy ]" nil) ("Fcy" SDATA "[Fcy ]" nil) ("khcy" SDATA "[khcy ]" nil) ("KHcy" SDATA "[KHcy ]" nil) ("tscy" SDATA "[tscy ]" nil) ("TScy" SDATA "[TScy ]" nil) ("chcy" SDATA "[chcy ]" nil) ("CHcy" SDATA "[CHcy ]" nil) ("shcy" SDATA "[shcy ]" nil) ("SHcy" SDATA "[SHcy ]" nil) ("shchcy" SDATA "[shchcy]" nil) ("SHCHcy" SDATA "[SHCHcy]" nil) ("hardcy" SDATA "[hardcy]" nil) ("HARDcy" SDATA "[HARDcy]" nil) ("ycy" SDATA "[ycy ]" nil) ("Ycy" SDATA "[Ycy ]" nil) ("softcy" SDATA "[softcy]" nil) ("SOFTcy" SDATA "[SOFTcy]" nil) ("ecy" SDATA "[ecy ]" nil) ("Ecy" SDATA "[Ecy ]" nil) ("yucy" SDATA "[yucy ]" nil) ("YUcy" SDATA "[YUcy ]" nil) ("yacy" SDATA "[yacy ]" nil) ("YAcy" SDATA "[YAcy ]" nil) ("numero" SDATA "[numero]" nil) ("djcy" SDATA "[djcy ]" nil) ("DJcy" SDATA "[DJcy ]" nil) ("gjcy" SDATA "[gjcy ]" nil) ("GJcy" SDATA "[GJcy ]" nil) ("jukcy" SDATA "[jukcy ]" nil) ("Jukcy" SDATA "[Jukcy ]" nil) ("dscy" SDATA "[dscy ]" nil) ("DScy" SDATA "[DScy ]" nil) ("iukcy" SDATA "[iukcy ]" nil) ("Iukcy" SDATA "[Iukcy ]" nil) ("yicy" SDATA "[yicy ]" nil) ("YIcy" SDATA "[YIcy ]" nil) ("jsercy" SDATA "[jsercy]" nil) ("Jsercy" SDATA "[Jsercy]" nil) ("ljcy" SDATA "[ljcy ]" nil) ("LJcy" SDATA "[LJcy ]" nil) ("njcy" SDATA "[njcy ]" nil) ("NJcy" SDATA "[NJcy ]" nil) ("tshcy" SDATA "[tshcy ]" nil) ("TSHcy" SDATA "[TSHcy ]" nil) ("kjcy" SDATA "[kjcy ]" nil) ("KJcy" SDATA "[KJcy ]" nil) ("ubrcy" SDATA "[ubrcy ]" nil) ("Ubrcy" SDATA "[Ubrcy ]" nil) ("dzcy" SDATA "[dzcy ]" nil) ("DZcy" SDATA "[DZcy ]" nil) ("acute" SDATA "[acute ]" nil) ("breve" SDATA "[breve ]" nil) ("caron" SDATA "[caron ]" nil) ("cedil" SDATA "[cedil ]" nil) ("circ" SDATA "[circ ]" nil) ("dblac" SDATA "[dblac ]" nil) ("die" SDATA "[die ]" nil) ("dot" SDATA "[dot ]" nil) ("grave" SDATA "[grave ]" nil) ("macr" SDATA "[macr ]" nil) ("ogon" SDATA "[ogon ]" nil) ("ring" SDATA "[ring ]" nil) ("tilde" SDATA "[tilde ]" nil) ("uml" SDATA "[uml ]" nil) ("agr" SDATA "[agr ]" nil) ("Agr" SDATA "[Agr ]" nil) ("bgr" SDATA "[bgr ]" nil) ("Bgr" SDATA "[Bgr ]" nil) ("ggr" SDATA "[ggr ]" nil) ("Ggr" SDATA "[Ggr ]" nil) ("dgr" SDATA "[dgr ]" nil) ("Dgr" SDATA "[Dgr ]" nil) ("egr" SDATA "[egr ]" nil) ("Egr" SDATA "[Egr ]" nil) ("zgr" SDATA "[zgr ]" nil) ("Zgr" SDATA "[Zgr ]" nil) ("eegr" SDATA "[eegr ]" nil) ("EEgr" SDATA "[EEgr ]" nil) ("thgr" SDATA "[thgr ]" nil) ("THgr" SDATA "[THgr ]" nil) ("igr" SDATA "[igr ]" nil) ("Igr" SDATA "[Igr ]" nil) ("kgr" SDATA "[kgr ]" nil) ("Kgr" SDATA "[Kgr ]" nil) ("lgr" SDATA "[lgr ]" nil) ("Lgr" SDATA "[Lgr ]" nil) ("mgr" SDATA "[mgr ]" nil) ("Mgr" SDATA "[Mgr ]" nil) ("ngr" SDATA "[ngr ]" nil) ("Ngr" SDATA "[Ngr ]" nil) ("xgr" SDATA "[xgr ]" nil) ("Xgr" SDATA "[Xgr ]" nil) ("ogr" SDATA "[ogr ]" nil) ("Ogr" SDATA "[Ogr ]" nil) ("pgr" SDATA "[pgr ]" nil) ("Pgr" SDATA "[Pgr ]" nil) ("rgr" SDATA "[rgr ]" nil) ("Rgr" SDATA "[Rgr ]" nil) ("sgr" SDATA "[sgr ]" nil) ("Sgr" SDATA "[Sgr ]" nil) ("sfgr" SDATA "[sfgr ]" nil) ("tgr" SDATA "[tgr ]" nil) ("Tgr" SDATA "[Tgr ]" nil) ("ugr" SDATA "[ugr ]" nil) ("Ugr" SDATA "[Ugr ]" nil) ("phgr" SDATA "[phgr ]" nil) ("PHgr" SDATA "[PHgr ]" nil) ("khgr" SDATA "[khgr ]" nil) ("KHgr" SDATA "[KHgr ]" nil) ("psgr" SDATA "[psgr ]" nil) ("PSgr" SDATA "[PSgr ]" nil) ("ohgr" SDATA "[ohgr ]" nil) ("OHgr" SDATA "[OHgr ]" nil) ("aacgr" SDATA "[aacgr ]" nil) ("Aacgr" SDATA "[Aacgr ]" nil) ("eacgr" SDATA "[eacgr ]" nil) ("Eacgr" SDATA "[Eacgr ]" nil) ("eeacgr" SDATA "[eeacgr]" nil) ("EEacgr" SDATA "[EEacgr]" nil) ("idigr" SDATA "[idigr ]" nil) ("Idigr" SDATA "[Idigr ]" nil) ("iacgr" SDATA "[iacgr ]" nil) ("Iacgr" SDATA "[Iacgr ]" nil) ("idiagr" SDATA "[idiagr]" nil) ("oacgr" SDATA "[oacgr ]" nil) ("Oacgr" SDATA "[Oacgr ]" nil) ("udigr" SDATA "[udigr ]" nil) ("Udigr" SDATA "[Udigr ]" nil) ("uacgr" SDATA "[uacgr ]" nil) ("Uacgr" SDATA "[Uacgr ]" nil) ("udiagr" SDATA "[udiagr]" nil) ("ohacgr" SDATA "[ohacgr]" nil) ("OHacgr" SDATA "[OHacgr]" nil) ("b.alpha" SDATA "[b.alpha ]" nil) ("b.beta" SDATA "[b.beta ]" nil) ("b.gamma" SDATA "[b.gamma ]" nil) ("b.Gamma" SDATA "[b.Gamma ]" nil) ("b.gammad" SDATA "[b.gammad]" nil) ("b.delta" SDATA "[b.delta ]" nil) ("b.Delta" SDATA "[b.Delta ]" nil) ("b.epsi" SDATA "[b.epsi ]" nil) ("b.epsiv" SDATA "[b.epsiv ]" nil) ("b.epsis" SDATA "[b.epsis ]" nil) ("b.zeta" SDATA "[b.zeta ]" nil) ("b.eta" SDATA "[b.eta ]" nil) ("b.thetas" SDATA "[b.thetas]" nil) ("b.Theta" SDATA "[b.Theta ]" nil) ("b.thetav" SDATA "[b.thetav]" nil) ("b.iota" SDATA "[b.iota ]" nil) ("b.kappa" SDATA "[b.kappa ]" nil) ("b.kappav" SDATA "[b.kappav]" nil) ("b.lambda" SDATA "[b.lambda]" nil) ("b.Lambda" SDATA "[b.Lambda]" nil) ("b.mu" SDATA "[b.mu ]" nil) ("b.nu" SDATA "[b.nu ]" nil) ("b.xi" SDATA "[b.xi ]" nil) ("b.Xi" SDATA "[b.Xi ]" nil) ("b.pi" SDATA "[b.pi ]" nil) ("b.Pi" SDATA "[b.Pi ]" nil) ("b.piv" SDATA "[b.piv ]" nil) ("b.rho" SDATA "[b.rho ]" nil) ("b.rhov" SDATA "[b.rhov ]" nil) ("b.sigma" SDATA "[b.sigma ]" nil) ("b.Sigma" SDATA "[b.Sigma ]" nil) ("b.sigmav" SDATA "[b.sigmav]" nil) ("b.tau" SDATA "[b.tau ]" nil) ("b.upsi" SDATA "[b.upsi ]" nil) ("b.Upsi" SDATA "[b.Upsi ]" nil) ("b.phis" SDATA "[b.phis ]" nil) ("b.Phi" SDATA "[b.Phi ]" nil) ("b.phiv" SDATA "[b.phiv ]" nil) ("b.chi" SDATA "[b.chi ]" nil) ("b.psi" SDATA "[b.psi ]" nil) ("b.Psi" SDATA "[b.Psi ]" nil) ("b.omega" SDATA "[b.omega ]" nil) ("b.Omega" SDATA "[b.Omega ]" nil) ("nbsp" CDATA " " nil) ("iexcl" CDATA "¡" nil) ("cent" CDATA "¢" nil) ("pound" CDATA "£" nil) ("curren" CDATA "¤" nil) ("yen" CDATA "¥" nil) ("brvbar" CDATA "¦" nil) ("sect" CDATA "§" nil) ("copy" CDATA "©" nil) ("ordf" CDATA "ª" nil) ("laquo" CDATA "«" nil) ("not" CDATA "¬" nil) ("shy" CDATA "­" nil) ("reg" CDATA "®" nil) ("deg" CDATA "°" nil) ("plusmn" CDATA "±" nil) ("sup2" CDATA "²" nil) ("sup3" CDATA "³" nil) ("micro" CDATA "µ" nil) ("para" CDATA "¶" nil) ("middot" CDATA "·" nil) ("sup1" CDATA "¹" nil) ("ordm" CDATA "º" nil) ("raquo" CDATA "»" nil) ("frac14" CDATA "¼" nil) ("frac12" CDATA "½" nil) ("frac34" CDATA "¾" nil) ("iquest" CDATA "¿" nil) ("Agrave" CDATA "À" nil) ("Aacute" CDATA "Á" nil) ("Acirc" CDATA "Â" nil) ("Atilde" CDATA "Ã" nil) ("Auml" CDATA "Ä" nil) ("Aring" CDATA "Å" nil) ("AElig" CDATA "Æ" nil) ("Ccedil" CDATA "Ç" nil) ("Egrave" CDATA "È" nil) ("Eacute" CDATA "É" nil) ("Ecirc" CDATA "Ê" nil) ("Euml" CDATA "Ë" nil) ("Igrave" CDATA "Ì" nil) ("Iacute" CDATA "Í" nil) ("Icirc" CDATA "Î" nil) ("Iuml" CDATA "Ï" nil) ("ETH" CDATA "Ð" nil) ("Ntilde" CDATA "Ñ" nil) ("Ograve" CDATA "Ò" nil) ("Oacute" CDATA "Ó" nil) ("Ocirc" CDATA "Ô" nil) ("Otilde" CDATA "Õ" nil) ("Ouml" CDATA "Ö" nil) ("times" CDATA "×" nil) ("Oslash" CDATA "Ø" nil) ("Ugrave" CDATA "Ù" nil) ("Uacute" CDATA "Ú" nil) ("Ucirc" CDATA "Û" nil) ("Uuml" CDATA "Ü" nil) ("Yacute" CDATA "Ý" nil) ("THORN" CDATA "Þ" nil) ("szlig" CDATA "ß" nil) ("agrave" CDATA "à" nil) ("aacute" CDATA "á" nil) ("acirc" CDATA "â" nil) ("atilde" CDATA "ã" nil) ("auml" CDATA "ä" nil) ("aring" CDATA "å" nil) ("aelig" CDATA "æ" nil) ("ccedil" CDATA "ç" nil) ("egrave" CDATA "è" nil) ("eacute" CDATA "é" nil) ("ecirc" CDATA "ê" nil) ("euml" CDATA "ë" nil) ("igrave" CDATA "ì" nil) ("iacute" CDATA "í" nil) ("icirc" CDATA "î" nil) ("iuml" CDATA "ï" nil) ("eth" CDATA "ð" nil) ("ntilde" CDATA "ñ" nil) ("ograve" CDATA "ò" nil) ("oacute" CDATA "ó" nil) ("ocirc" CDATA "ô" nil) ("otilde" CDATA "õ" nil) ("ouml" CDATA "ö" nil) ("divide" CDATA "÷" nil) ("oslash" CDATA "ø" nil) ("ugrave" CDATA "ù" nil) ("uacute" CDATA "ú" nil) ("ucirc" CDATA "û" nil) ("uuml" CDATA "ü" nil) ("yacute" CDATA "ý" nil) ("thorn" CDATA "þ" nil) ("yuml" CDATA "ÿ" nil) ("abreve" SDATA "[abreve]" nil) ("Abreve" SDATA "[Abreve]" nil) ("amacr" SDATA "[amacr ]" nil) ("Amacr" SDATA "[Amacr ]" nil) ("aogon" SDATA "[aogon ]" nil) ("Aogon" SDATA "[Aogon ]" nil) ("cacute" SDATA "[cacute]" nil) ("Cacute" SDATA "[Cacute]" nil) ("ccaron" SDATA "[ccaron]" nil) ("Ccaron" SDATA "[Ccaron]" nil) ("ccirc" SDATA "[ccirc ]" nil) ("Ccirc" SDATA "[Ccirc ]" nil) ("cdot" SDATA "[cdot ]" nil) ("Cdot" SDATA "[Cdot ]" nil) ("dcaron" SDATA "[dcaron]" nil) ("Dcaron" SDATA "[Dcaron]" nil) ("dstrok" SDATA "[dstrok]" nil) ("Dstrok" SDATA "[Dstrok]" nil) ("ecaron" SDATA "[ecaron]" nil) ("Ecaron" SDATA "[Ecaron]" nil) ("edot" SDATA "[edot ]" nil) ("Edot" SDATA "[Edot ]" nil) ("emacr" SDATA "[emacr ]" nil) ("Emacr" SDATA "[Emacr ]" nil) ("eogon" SDATA "[eogon ]" nil) ("Eogon" SDATA "[Eogon ]" nil) ("gacute" SDATA "[gacute]" nil) ("gbreve" SDATA "[gbreve]" nil) ("Gbreve" SDATA "[Gbreve]" nil) ("Gcedil" SDATA "[Gcedil]" nil) ("gcirc" SDATA "[gcirc ]" nil) ("Gcirc" SDATA "[Gcirc ]" nil) ("gdot" SDATA "[gdot ]" nil) ("Gdot" SDATA "[Gdot ]" nil) ("hcirc" SDATA "[hcirc ]" nil) ("Hcirc" SDATA "[Hcirc ]" nil) ("hstrok" SDATA "[hstrok]" nil) ("Hstrok" SDATA "[Hstrok]" nil) ("Idot" SDATA "[Idot ]" nil) ("Imacr" SDATA "[Imacr ]" nil) ("imacr" SDATA "[imacr ]" nil) ("ijlig" SDATA "[ijlig ]" nil) ("IJlig" SDATA "[IJlig ]" nil) ("iogon" SDATA "[iogon ]" nil) ("Iogon" SDATA "[Iogon ]" nil) ("itilde" SDATA "[itilde]" nil) ("Itilde" SDATA "[Itilde]" nil) ("jcirc" SDATA "[jcirc ]" nil) ("Jcirc" SDATA "[Jcirc ]" nil) ("kcedil" SDATA "[kcedil]" nil) ("Kcedil" SDATA "[Kcedil]" nil) ("kgreen" SDATA "[kgreen]" nil) ("lacute" SDATA "[lacute]" nil) ("Lacute" SDATA "[Lacute]" nil) ("lcaron" SDATA "[lcaron]" nil) ("Lcaron" SDATA "[Lcaron]" nil) ("lcedil" SDATA "[lcedil]" nil) ("Lcedil" SDATA "[Lcedil]" nil) ("lmidot" SDATA "[lmidot]" nil) ("Lmidot" SDATA "[Lmidot]" nil) ("lstrok" SDATA "[lstrok]" nil) ("Lstrok" SDATA "[Lstrok]" nil) ("nacute" SDATA "[nacute]" nil) ("Nacute" SDATA "[Nacute]" nil) ("eng" SDATA "[eng ]" nil) ("ENG" SDATA "[ENG ]" nil) ("napos" SDATA "[napos ]" nil) ("ncaron" SDATA "[ncaron]" nil) ("Ncaron" SDATA "[Ncaron]" nil) ("ncedil" SDATA "[ncedil]" nil) ("Ncedil" SDATA "[Ncedil]" nil) ("odblac" SDATA "[odblac]" nil) ("Odblac" SDATA "[Odblac]" nil) ("Omacr" SDATA "[Omacr ]" nil) ("omacr" SDATA "[omacr ]" nil) ("oelig" SDATA "[oelig ]" nil) ("OElig" SDATA "[OElig ]" nil) ("racute" SDATA "[racute]" nil) ("Racute" SDATA "[Racute]" nil) ("rcaron" SDATA "[rcaron]" nil) ("Rcaron" SDATA "[Rcaron]" nil) ("rcedil" SDATA "[rcedil]" nil) ("Rcedil" SDATA "[Rcedil]" nil) ("sacute" SDATA "[sacute]" nil) ("Sacute" SDATA "[Sacute]" nil) ("scaron" SDATA "[scaron]" nil) ("Scaron" SDATA "[Scaron]" nil) ("scedil" SDATA "[scedil]" nil) ("Scedil" SDATA "[Scedil]" nil) ("scirc" SDATA "[scirc ]" nil) ("Scirc" SDATA "[Scirc ]" nil) ("tcaron" SDATA "[tcaron]" nil) ("Tcaron" SDATA "[Tcaron]" nil) ("tcedil" SDATA "[tcedil]" nil) ("Tcedil" SDATA "[Tcedil]" nil) ("tstrok" SDATA "[tstrok]" nil) ("Tstrok" SDATA "[Tstrok]" nil) ("ubreve" SDATA "[ubreve]" nil) ("Ubreve" SDATA "[Ubreve]" nil) ("udblac" SDATA "[udblac]" nil) ("Udblac" SDATA "[Udblac]" nil) ("umacr" SDATA "[umacr ]" nil) ("Umacr" SDATA "[Umacr ]" nil) ("uogon" SDATA "[uogon ]" nil) ("Uogon" SDATA "[Uogon ]" nil) ("uring" SDATA "[uring ]" nil) ("Uring" SDATA "[Uring ]" nil) ("utilde" SDATA "[utilde]" nil) ("Utilde" SDATA "[Utilde]" nil) ("wcirc" SDATA "[wcirc ]" nil) ("Wcirc" SDATA "[Wcirc ]" nil) ("ycirc" SDATA "[ycirc ]" nil) ("Ycirc" SDATA "[Ycirc ]" nil) ("Yuml" SDATA "[Yuml ]" nil) ("zacute" SDATA "[zacute]" nil) ("Zacute" SDATA "[Zacute]" nil) ("zcaron" SDATA "[zcaron]" nil) ("Zcaron" SDATA "[Zcaron]" nil) ("zdot" SDATA "[zdot ]" nil) ("Zdot" SDATA "[Zdot ]" nil) ("half" SDATA "[half ]" nil) ("frac18" SDATA "[frac18]" nil) ("frac38" SDATA "[frac38]" nil) ("frac58" SDATA "[frac58]" nil) ("frac78" SDATA "[frac78]" nil) ("plus" SDATA "[plus ]" nil) ("lt" SDATA "[lt ]" nil) ("equals" SDATA "[equals]" nil) ("gt" SDATA "[gt ]" nil) ("dollar" SDATA "[dollar]" nil) ("num" SDATA "[num ]" nil) ("percnt" SDATA "[percnt]" nil) ("amp" SDATA "[amp ]" nil) ("ast" SDATA "[ast ]" nil) ("commat" SDATA "[commat]" nil) ("lsqb" SDATA "[lsqb ]" nil) ("bsol" SDATA "[bsol ]" nil) ("rsqb" SDATA "[rsqb ]" nil) ("lcub" SDATA "[lcub ]" nil) ("horbar" SDATA "[horbar]" nil) ("verbar" SDATA "[verbar]" nil) ("rcub" SDATA "[rcub ]" nil) ("ohm" SDATA "[ohm ]" nil) ("larr" SDATA "[larr ]" nil) ("rarr" SDATA "[rarr ]" nil) ("uarr" SDATA "[uarr ]" nil) ("darr" SDATA "[darr ]" nil) ("trade" SDATA "[trade ]" nil) ("sung" SDATA "[sung ]" nil) ("excl" SDATA "[excl ]" nil) ("quot" SDATA "[quot ]" nil) ("apos" SDATA "[apos ]" nil) ("lpar" SDATA "[lpar ]" nil) ("rpar" SDATA "[rpar ]" nil) ("comma" SDATA "[comma ]" nil) ("lowbar" SDATA "[lowbar]" nil) ("hyphen" SDATA "[hyphen]" nil) ("period" SDATA "[period]" nil) ("sol" SDATA "[sol ]" nil) ("colon" SDATA "[colon ]" nil) ("semi" SDATA "[semi ]" nil) ("quest" SDATA "[quest ]" nil) ("lsquo" SDATA "[lsquo ]" nil) ("rsquo" SDATA "[rsquo ]" nil) ("ldquo" SDATA "[ldquo ]" nil) ("rdquo" SDATA "[rdquo ]" nil) ("emsp" SDATA "[emsp ]" nil) ("ensp" SDATA "[ensp ]" nil) ("emsp13" SDATA "[emsp3 ]" nil) ("emsp14" SDATA "[emsp4 ]" nil) ("numsp" SDATA "[numsp ]" nil) ("puncsp" SDATA "[puncsp]" nil) ("thinsp" SDATA "[thinsp]" nil) ("hairsp" SDATA "[hairsp]" nil) ("mdash" SDATA "[mdash ]" nil) ("ndash" SDATA "[ndash ]" nil) ("dash" SDATA "[dash ]" nil) ("blank" SDATA "[blank ]" nil) ("hellip" SDATA "[hellip]" nil) ("nldr" SDATA "[nldr ]" nil) ("frac13" SDATA "[frac13]" nil) ("frac23" SDATA "[frac23]" nil) ("frac15" SDATA "[frac15]" nil) ("frac25" SDATA "[frac25]" nil) ("frac35" SDATA "[frac35]" nil) ("frac45" SDATA "[frac45]" nil) ("frac16" SDATA "[frac16]" nil) ("frac56" SDATA "[frac56]" nil) ("incare" SDATA "[incare]" nil) ("block" SDATA "[block ]" nil) ("uhblk" SDATA "[uhblk ]" nil) ("lhblk" SDATA "[lhblk ]" nil) ("blk14" SDATA "[blk14 ]" nil) ("blk12" SDATA "[blk12 ]" nil) ("blk34" SDATA "[blk34 ]" nil) ("marker" SDATA "[marker]" nil) ("cir" SDATA "[cir ]" nil) ("squ" SDATA "[squ ]" nil) ("rect" SDATA "[rect ]" nil) ("utri" SDATA "[utri ]" nil) ("dtri" SDATA "[dtri ]" nil) ("star" SDATA "[star ]" nil) ("bull" SDATA "[bull ]" nil) ("squf" SDATA "[squf ]" nil) ("utrif" SDATA "[utrif ]" nil) ("dtrif" SDATA "[dtrif ]" nil) ("ltrif" SDATA "[ltrif ]" nil) ("rtrif" SDATA "[rtrif ]" nil) ("clubs" SDATA "[clubs ]" nil) ("diams" SDATA "[diams ]" nil) ("hearts" SDATA "[hearts]" nil) ("spades" SDATA "[spades]" nil) ("malt" SDATA "[malt ]" nil) ("dagger" SDATA "[dagger]" nil) ("Dagger" SDATA "[Dagger]" nil) ("check" SDATA "[check ]" nil) ("cross" SDATA "[ballot]" nil) ("sharp" SDATA "[sharp ]" nil) ("flat" SDATA "[flat ]" nil) ("male" SDATA "[male ]" nil) ("female" SDATA "[female]" nil) ("phone" SDATA "[phone ]" nil) ("telrec" SDATA "[telrec]" nil) ("copysr" SDATA "[copysr]" nil) ("caret" SDATA "[caret ]" nil) ("lsquor" SDATA "[lsquor]" nil) ("ldquor" SDATA "[ldquor]" nil) ("fflig" SDATA "[fflig ]" nil) ("filig" SDATA "[filig ]" nil) ("fjlig" SDATA "[fjlig ]" nil) ("ffilig" SDATA "[ffilig]" nil) ("ffllig" SDATA "[ffllig]" nil) ("fllig" SDATA "[fllig ]" nil) ("mldr" SDATA "[mldr ]" nil) ("rdquor" SDATA "[rdquor]" nil) ("rsquor" SDATA "[rsquor]" nil) ("vellip" SDATA "[vellip]" nil) ("hybull" SDATA "[hybull]" nil) ("loz" SDATA "[loz ]" nil) ("lozf" SDATA "[lozf ]" nil) ("ltri" SDATA "[ltri ]" nil) ("rtri" SDATA "[rtri ]" nil) ("starf" SDATA "[starf ]" nil) ("natur" SDATA "[natur ]" nil) ("rx" SDATA "[rx ]" nil) ("sext" SDATA "[sext ]" nil) ("target" SDATA "[target]" nil) ("dlcrop" SDATA "[dlcrop]" nil) ("drcrop" SDATA "[drcrop]" nil) ("ulcrop" SDATA "[ulcrop]" nil) ("urcrop" SDATA "[urcrop]" nil) ("aleph" SDATA "[aleph ]" nil) ("and" SDATA "[and ]" nil) ("ang90" SDATA "[ang90 ]" nil) ("angsph" SDATA "[angsph]" nil) ("ap" SDATA "[ap ]" nil) ("becaus" SDATA "[becaus]" nil) ("bottom" SDATA "[bottom]" nil) ("cap" SDATA "[cap ]" nil) ("cong" SDATA "[cong ]" nil) ("conint" SDATA "[conint]" nil) ("cup" SDATA "[cup ]" nil) ("equiv" SDATA "[equiv ]" nil) ("exist" SDATA "[exist ]" nil) ("forall" SDATA "[forall]" nil) ("fnof" SDATA "[fnof ]" nil) ("ge" SDATA "[ge ]" nil) ("iff" SDATA "[iff ]" nil) ("infin" SDATA "[infin ]" nil) ("int" SDATA "[int ]" nil) ("isin" SDATA "[isin ]" nil) ("lang" SDATA "[lang ]" nil) ("lArr" SDATA "[lArr ]" nil) ("le" SDATA "[le ]" nil) ("minus" SDATA "[minus ]" nil) ("mnplus" SDATA "[mnplus]" nil) ("nabla" SDATA "[nabla ]" nil) ("ne" SDATA "[ne ]" nil) ("ni" SDATA "[ni ]" nil) ("or" SDATA "[or ]" nil) ("par" SDATA "[par ]" nil) ("part" SDATA "[part ]" nil) ("permil" SDATA "[permil]" nil) ("perp" SDATA "[perp ]" nil) ("prime" SDATA "[prime ]" nil) ("Prime" SDATA "[Prime ]" nil) ("prop" SDATA "[prop ]" nil) ("radic" SDATA "[radic ]" nil) ("rang" SDATA "[rang ]" nil) ("rArr" SDATA "[rArr ]" nil) ("sim" SDATA "[sim ]" nil) ("sime" SDATA "[sime ]" nil) ("square" SDATA "[square]" nil) ("sub" SDATA "[sub ]" nil) ("sube" SDATA "[sube ]" nil) ("sup" SDATA "[sup ]" nil) ("supe" SDATA "[supe ]" nil) ("there4" SDATA "[there4]" nil) ("Verbar" SDATA "[Verbar]" nil) ("angst" SDATA "[angst ]" nil) ("bernou" SDATA "[bernou]" nil) ("compfn" SDATA "[compfn]" nil) ("Dot" SDATA "[Dot ]" nil) ("DotDot" SDATA "[DotDot]" nil) ("hamilt" SDATA "[hamilt]" nil) ("lagran" SDATA "[lagran]" nil) ("lowast" SDATA "[lowast]" nil) ("notin" SDATA "[notin ]" nil) ("order" SDATA "[order ]" nil) ("phmmat" SDATA "[phmmat]" nil) ("tdot" SDATA "[tdot ]" nil) ("tprime" SDATA "[tprime]" nil) ("wedgeq" SDATA "[wedgeq]" nil)) (nil) nil discover-2.1.2/doctools/README0000644002342100234210000000300010266266026014505 0ustar perepere$Progeny$ Debian Packages You Need to Use the Progeny Documentation Tools --------------------------------------------------------------- Debian's XML tools are under heavy development, so it's generally a good idea to be running Debian unstable on your workstation if you're going to be producing XML-based documentation for the company. $ apt-get install docbook-xml \ ldp-docbook-xsl \ docbook-to-man \ xsltproc \ jadetex \ jade \ passivetex \ docbook \ docbook-dsssl \ opensp \ links \ transfig \ psutils \ dvi2ps \ enscript If you're running Debian Sarge, you also need the following package: $ apt-get install libxml2-utils Files in the doctools Module ---------------------------- docbook.ced needs to be removed, but not until all documents have been changed to use one of docbook-{article,book}.ced. docbook.mk Include (GNU-style) this GNU makefile fragment in your GNUmakefile to build the documentation. If your project also has a portable Makefile, it's probably best to include that in your GNUmakefile. ldp.dsl progeny-fo.xsl progeny.dsl John, what are these? man-wrapper.sh Ignore this file; it is used by docbook.mk for generating man pages. progeny.ent This file contains common entities used in Progeny documents. vim:set ai et: discover-2.1.2/doctools/Makefile.in0000644002342100234210000000331110266266026015677 0ustar perepere# $Progeny$ .POSIX: VPATH= @srcdir@ builddir= @builddir@ abs_builddir= @abs_builddir@ top_builddir= @top_builddir@ abs_top_builddir= @abs_top_builddir@ srcdir= @srcdir@ abs_srcdir= @abs_srcdir@ top_srcdir= @top_srcdir@ abs_top_srcdir= @abs_top_srcdir@ all: config.ent config.ent: rm -f $@ for var in `sh ${top_builddir}/buildtools/config-script -l`; do \ val="`sh ${top_builddir}/buildtools/config-script --$${var}`"; \ printf '\n' $${var} "$${val}" >> $@; \ done ############################################################################### # Clean clean_FILES= config.ent distclean_FILES= Makefile clean: rm -f ${clean_FILES} distclean: rm -f ${clean_FILES} ${distclean_FILES} maintainer-clean: rm -f ${clean_FILES} ${distclean_FILES} ############################################################################### # Installation install: uninstall: ############################################################################### # Distribution PACKAGE_TARNAME= @PACKAGE_TARNAME@ PACKAGE_VERSION= @PACKAGE_VERSION@ distname= ${PACKAGE_TARNAME}-${PACKAGE_VERSION} distdir= ${top_builddir}/${distname} DISTFILES= Makefile.in \ README \ config.ent \ docbook-article.ced \ docbook-book.ced \ docbook-sgml.ced \ docbook.ced \ docbook.ced \ docbook.mk \ ldp.dsl \ man-wrapper.sh \ progeny.dsl \ progeny.ent xsldir=xsl DIST_xslfiles=${xsldir}/common.xsl \ ${xsldir}/fo.xsl \ ${xsldir}/html-common.xsl \ ${xsldir}/html-chunk.xsl \ ${xsldir}/html.xsl distdir: ${DISTFILES} ${top_srcdir}/buildtools/distdir ${distdir}/${_THISDIR_} ${DISTFILES} ${top_srcdir}/buildtools/distdir ${distdir}/${_THISDIR_}/${xsldir} \ ${DIST_xslfiles} discover-2.1.2/doctools/docbook.mk0000644002342100234210000001617110266266026015613 0ustar perepere# $Progeny$ ############################################################################### # Functions # Validate the XML file ${1} # This was the old, SGML-based way #validate= ${NSGMLS} ${NSGMLSVALIDATEARGS} ${1} # This is the new, XML-spiffy way validate= ${XMLLINT} ${XMLLINTVALIDATEARGS} ${1} # Validate SGML files (man pages) validate_sgml= ${NSGMLS} ${NSGMLSVALIDATESGML} ${1} # Validate ${1} discarding output and bomb if not valid validate_bomb= @sh -c '$(call validate,${1}) > /dev/null 2>&1 \ || (echo "${1} not valid," \ "make ${1}-validate for details"; exit 1)' # Validate an arbitrary file %-validate: % $(call validate,$<) # Generate multiple HTML files from ${1} chunk_html = $(call validate_bomb,${1}) \ && echo "${JADE} ${JADE2CHUNKHTMLARGS} ${JADEGENARGS} ${1}"; \ ${JADE} ${JADE2CHUNKHTMLARGS} ${JADEGENARGS} ${1} # Find the program ${1} in the PATH; $(call pathsearch,ls) returns # '/bin/ls' for example. pathsearch= $(firstword $(wildcard $(addsuffix /${1},$(subst :, , ${PATH})))) ############################################################################### # Variables # Do we want to use DSSSL or XSL technologies for online (web, text) # and print (pdf, ps) documentation formats? # When jade is known to work again, PRINT_TECH should be dsssl. # Eventually, both should be xsl, but the technologies are still immature, # and kaffe doesn't meet all of our needs yet. PRINT_TECH?= dsssl ONLINE_TECH?= xsl # Until recently, a good XSL stylesheet to create manpages was unknown. # Now one exists, and as we work on various projects, we should test the # associated manpages against it by setting MANPAGE_LANG = xml in the # project's doc/Makefile and leave it like that if it works. # # Once a majority of our pages have been checked, we can change it here # and move forward with XSL in place of docbook-to-man. MANPAGE_LANG?= sgml # Commands LN?= /bin/ln LN_S?= ${LN} -s DVIPS?= $(call pathsearch,dvips) DOCBOOKTOMAN?= $(call pathsearch,docbook-to-man) HTML2TEXT?= $(call pathsearch,html2text) LPR?= $(call pathsearch,lpr) LINKS?= $(call pathsearch,links) LYNX?= $(call pathsearch,lynx) PSNUP?= $(call pathsearch,psnup) PS2PDF?= $(call pathsearch,ps2pdf) PDF2PS?= $(call pathsearch,pdf2ps) JADE?= $(call pathsearch,jade) JADETEX?= $(call pathsearch,jadetex) JAVA?= $(call pathsearch,java) NSGMLS?= $(call pathsearch,onsgmls) FOP?= $(call pathsearch,fop) XSLTPROC?= $(call pathsearch,xsltproc) --xinclude XMLLINT?= $(call pathsearch,xmllint) --xinclude FIG2DEV?= $(call pathsearch,fig2dev) # XML files XMLDECL?= /usr/share/sgml/declaration/xml.dcl PRINT_SS_DSSSL?= ${doctools}/ldp.dsl HTML_SS_DSSSL?= ${PRINT_SS_DSSSL} MAN_SS_XSL?= /usr/share/sgml/docbook/stylesheet/xsl/nwalsh/manpages/db2man.xsl PRINT_SS_FO?= ${doctools}/xsl/fo.xsl # This doesn't actually seem to work properly, but might again someday PRINT_SS_FOP_FO?= /usr/share/sgml/docbook/stylesheet/xsl/nwalsh/fo/fo-patch-for-fop.xsl HTML_SS_XSL?= ${doctools}/xsl/html.xsl CHUNK_HTML_SS_XSL?= ${doctools}/xsl/html-chunk.xsl # XML command arguments SAXONCLASS?= com.icl.saxon.StyleSheet XALANCLASS?= org.apache.xalan.xslt.Process NSGMLSVALIDATEARGS?= -s -wxml ${XMLDECL} NSGMLSVALIDATESGML?= -s -wall XMLLINTVALIDATEARGS?= --noout --postvalid --noent JADENOCHUNKARGS?= -V nochunks JADE2TEXARGS?= -t tex -V tex-backend -iprint -d ${PRINT_SS_DSSSL}\#print JADE2HTMLARGS?= -t sgml -ihtml -d ${HTML_SS_DSSSL}\#html JADE2CHUNKHTMLARGS?= -t sgml -d ${PROGENY_SS_DSSSL} JADE2TXTARGS?= ${JADE2HTMLARGS} ${JADENOCHUNKARGS} JADEGENARGS?= ${XMLDECL} # Arguments to convert .fig files to other formats. HTML image map is an # interesting possibility that I have yet to really explore. # # Scaling is stored within the .fig file itself as part of the print or # export process. FIG2PNGARGS?= -L png -S 4 FIG2JPGARGS?= -L jpeg -S 4 FIG2EPSARGS?= -L eps -z Letter FIG2PSARGS?= -L ps -z Letter # HTML -> text translation HTMLTOTEXT= ${LINKS} -dump # The tex->dvi conversion apparently requires # this, courtesy of # http://people.debian.org/~bortz//SGML-HOWTO/potato/x165.html MAX_TEX_RECURSION=6 CLASSDIR?= /usr/share/java # Should be set dynamically, but isn't yet. # Note that I haven't found a Debian package with the proper batik.jar yet; # I took it from the upstream FOP distribution. CLASSPATH:= ${CLASSDIR}/saxon-6.4.4.jar:${CLASSDIR}/xalan.jar:${CLASSDIR}/bsf.jar:${CLASSDIR}/fop.jar:${CLASSDIR}/xerces.jar:${CLASSDIR}/batik.jar:${CLASSPATH} export CLASSPATH ############################################################################### # Rules # Man pages ifeq (${MANPAGE_LANG},sgml) %.man: %.refentry ${doctools}/man-wrapper.sh $< > $@ %.1: %.man ${DOCBOOKTOMAN} $< > $@ %.2: %.man ${DOCBOOKTOMAN} $< > $@ %.3: %.man ${DOCBOOKTOMAN} $< > $@ %.4: %.man ${DOCBOOKTOMAN} $< > $@ %.5: %.man ${DOCBOOKTOMAN} $< > $@ %.6: %.man ${DOCBOOKTOMAN} $< > $@ %.7: %.man ${DOCBOOKTOMAN} $< > $@ %.8: %.man ${DOCBOOKTOMAN} $< > $@ %.9: %.man ${DOCBOOKTOMAN} $< > $@ else %.man: %.refentry ${doctools}/man-wrapper.sh --xml $< > $@ %.1: %.man ${XSLTPROC} ${MAN_SS_XSL} $< > $@ %.2: %.man ${XSLTPROC} ${MAN_SS_XSL} $< > $@ %.3: %.man ${XSLTPROC} ${MAN_SS_XSL} $< > $@ %.4: %.man ${XSLTPROC} ${MAN_SS_XSL} $< > $@ %.5: %.man ${XSLTPROC} ${MAN_SS_XSL} $< > $@ %.6: %.man ${XSLTPROC} ${MAN_SS_XSL} $< > $@ %.7: %.man ${XSLTPROC} ${MAN_SS_XSL} $< > $@ %.8: %.man ${XSLTPROC} ${MAN_SS_XSL} $< > $@ %.9: %.man ${XSLTPROC} ${MAN_SS_XSL} $< > $@ endif # HTML and plain text files ifeq (${ONLINE_TECH},xsl) %.html: %.xml $(call validate_bomb,$<) ${XSLTPROC} -o $@ ${HTML_SS_XSL} $< else %.html: %.xml $(call validate_bomb,$<) ${JADE} ${JADENOCHUNKARGS} ${JADE2HTMLARGS} ${JADEGENARGS} $< > $@ endif # DSSSL/XSL doesn't matter here %.txt: %.html ${HTMLTOTEXT} $< > $@ # Printable documents # This doesn't need to be in the XSL section, because DSSSL doesn't mix # with FO. %.fo: %.xml ${XSLTPROC} ${PRINT_SS_FO} $< > $@ # The idea is to customize the FO output for FOP, but right now it # just results in a FO error. # cp $@ $@.intermediate # ${XSLTPROC} ${PRINT_SS_FOP_FO} $@.intermediate > $@ ifeq (${PRINT_TECH},xsl) # XSL/Java technologies for printed output %.pdf: %.fo ${FOP} -fo $< -pdf $@ %.ps: %.fo ${FOP} -fo $< -ps $@ else # DSSSL technologies for printed output %.tex: %.xml -${JADE} ${JADE2TEXARGS} ${JADEGENARGS} $< %.dvi: %.tex # Trick from Adam Di Carlo to recurse jadetex # "just enough". -cp -pf prior.aux pprior.aux -cp -pf $(shell basename $< .tex).aux prior.aux ${JADETEX} $< if ! cmp $(shell basename $< .tex).aux prior.aux && \ ! cmp $(shell basename $< .tex).aux pprior.aux && \ expr $(MAKELEVEL) '<' $(MAX_TEX_RECURSION); then \ rm -f $@ ;\ ${MAKE} $@ ;\ fi rm -f prior.aux pprior.aux %.ps: %.dvi ${DVIPS} -o $@ $< %.pdf: %.ps ${PS2PDF} $< $@ endif # .fig conversion %.eps: %.fig ${FIG2DEV} ${FIG2EPSARGS} $< > $@ %.png: %.fig ${FIG2DEV} ${FIG2PNGARGS} $< > $@ %.jpeg: %.fig ${FIG2DEV} ${FIG2JPGARGS} $< > $@ %.ps: %.fig ${FIG2DEV} ${FIG2PSARGS} $< > $@ discover-2.1.2/doctools/progeny.ent0000644002342100234210000001771210266266026016037 0ustar perepere debconf"> GNOME"> KDE"> PSGML"> root"> LSB"> gLSB"> ELF"> RPM"> gcc"> #"> $"> >"> DHCP"> DNS"> FTP"> HTTP"> IP"> NFS"> SNMP"> TCP"> TCP/IP"> UDP"> API"> DTD"> HTML"> URL"> XML"> Configlet"> Discover"> PGI"> LPM"> discover"> debootstrap"> Brian Arledge"> G. Branden Robinson"> Josh Bressers"> Darrin Thompson"> Douglas S. Porter"> Eric Gillespie"> Ian Murdock"> John R. Daily"> John H. Hartman"> Jeff Licquia"> Adam Lazur"> Robin Drake"> Michael C. Schultheiss"> Steve Hunger"> Steven M. Schafer"> Aaron T. Stenhoff"> Tim Ottinger"> &authorinfo.arledgeb;"> &authorinfo.branden;"> &authorinfo.bress;"> &authorinfo.darrint;"> &authorinfo.dsp;"> &authorinfo.epg;"> &authorinfo.imurdock;"> &authorinfo.jdaily;"> &authorinfo.jhh;"> &authorinfo.jlicquia;"> &authorinfo.laz;"> &authorinfo.rdrake;"> &authorinfo.schultmc;"> &authorinfo.shunger;"> &authorinfo.sschafer;"> &authorinfo.stenhoff;"> &authorinfo.tottinge;"> &authorinfo.rdrake;"> Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies. Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided also that the entire resulting derived work is distributed under the terms of a permission notice identical to this one. Permission is granted to copy and distribute translations of this manual into another language, under the above conditions for modified versions. "> 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 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 THE COPYRIGHT HOLDER(S) 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. "> discover-2.1.2/doctools/docbook-article.ced0000644002342100234210000135674210266266026017374 0ustar perepere;;; This file was created by psgml on Mon Jun 24 12:22:52 2002 (sgml-saved-dtd-version 7) ("/usr/share/sgml/docbook/dtd/xml/4.1/dbgenent.mod" "/usr/share/sgml/docbook/dtd/xml/4.1/dbhierx.mod" "/usr/share/sgml/docbook/dtd/xml/4.1/calstblx.dtd" "/usr/share/sgml/docbook/dtd/xml/4.1/dbpoolx.mod" "/usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOtech.ent" "/usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOpub.ent" "/usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOnum.ent" "/usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOlat2.ent" "/usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOlat1.ent" "/usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOgrk4.ent" "/usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOgrk3.ent" "/usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOgrk2.ent" "/usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOgrk1.ent" "/usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOdia.ent" "/usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOcyr2.ent" "/usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOcyr1.ent" "/usr/share/sgml/entities/xml-iso-entities-8879.1986/ISObox.ent" "/usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOamsr.ent" "/usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOamso.ent" "/usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOamsn.ent" "/usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOamsc.ent" "/usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOamsb.ent" "/usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOamsa.ent" "/usr/share/sgml/docbook/dtd/xml/4.1/dbcentx.mod" "/usr/share/sgml/docbook/dtd/xml/4.1/dbnotnx.mod" "/usr/share/sgml/docbook/dtd/xml/4.1.2/docbookx.dtd" "/scratch/epg/pgi/doctools/progeny.ent") (nil ("progeny-entity" text (nil "../doctools/progeny.ent" . "/scratch/epg/pgi/doc/") nil) ("dbnotn.module" text "INCLUDE" nil) ("dbnotn" text ("-//OASIS//ENTITIES DocBook XML Notations V4.1.2//EN" "dbnotnx.mod" . "/usr/share/sgml/docbook/dtd/xml/4.1.2/") nil) ("local.notation.class" text "" nil) ("notation.class" text "BMP| CGM-CHAR | CGM-BINARY | CGM-CLEAR | DITROFF | DVI | EPS | EQN | FAX | GIF | GIF87a | GIF89a | JPG | JPEG | IGES | PCX | PIC | PNG | PS | SGML | TBL | TEX | TIFF | WMF | WPG | linespecific " nil) ("dbcent.module" text "INCLUDE" nil) ("dbcent" text ("-//OASIS//ENTITIES DocBook XML Character Entities V4.1.2//EN" "dbcentx.mod" . "/usr/share/sgml/docbook/dtd/xml/4.1.2/") nil) ("ISOamsa.module" text "INCLUDE" nil) ("ISOamsa" text ("ISO 8879:1986//ENTITIES Added Math Symbols: Arrow Relations//EN//XML" "/usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOamsa.ent" . "/usr/share/sgml/docbook/dtd/xml/4.1/") nil) ("ISOamsb.module" text "INCLUDE" nil) ("ISOamsb" text ("ISO 8879:1986//ENTITIES Added Math Symbols: Binary Operators//EN//XML" "/usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOamsb.ent" . "/usr/share/sgml/docbook/dtd/xml/4.1/") nil) ("ISOamsc.module" text "INCLUDE" nil) ("ISOamsc" text ("ISO 8879:1986//ENTITIES Added Math Symbols: Delimiters//EN//XML" "/usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOamsc.ent" . "/usr/share/sgml/docbook/dtd/xml/4.1/") nil) ("ISOamsn.module" text "INCLUDE" nil) ("ISOamsn" text ("ISO 8879:1986//ENTITIES Added Math Symbols: Negated Relations//EN//XML" "/usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOamsn.ent" . "/usr/share/sgml/docbook/dtd/xml/4.1/") nil) ("ISOamso.module" text "INCLUDE" nil) ("ISOamso" text ("ISO 8879:1986//ENTITIES Added Math Symbols: Ordinary//EN//XML" "/usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOamso.ent" . "/usr/share/sgml/docbook/dtd/xml/4.1/") nil) ("ISOamsr.module" text "INCLUDE" nil) ("ISOamsr" text ("ISO 8879:1986//ENTITIES Added Math Symbols: Relations//EN//XML" "/usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOamsr.ent" . "/usr/share/sgml/docbook/dtd/xml/4.1/") nil) ("ISObox.module" text "INCLUDE" nil) ("ISObox" text ("ISO 8879:1986//ENTITIES Box and Line Drawing//EN//XML" "/usr/share/sgml/entities/xml-iso-entities-8879.1986/ISObox.ent" . "/usr/share/sgml/docbook/dtd/xml/4.1/") nil) ("ISOcyr1.module" text "INCLUDE" nil) ("ISOcyr1" text ("ISO 8879:1986//ENTITIES Russian Cyrillic//EN//XML" "/usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOcyr1.ent" . "/usr/share/sgml/docbook/dtd/xml/4.1/") nil) ("ISOcyr2.module" text "INCLUDE" nil) ("ISOcyr2" text ("ISO 8879:1986//ENTITIES Non-Russian Cyrillic//EN//XML" "/usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOcyr2.ent" . "/usr/share/sgml/docbook/dtd/xml/4.1/") nil) ("ISOdia.module" text "INCLUDE" nil) ("ISOdia" text ("ISO 8879:1986//ENTITIES Diacritical Marks//EN//XML" "/usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOdia.ent" . "/usr/share/sgml/docbook/dtd/xml/4.1/") nil) ("ISOgrk1.module" text "INCLUDE" nil) ("ISOgrk1" text ("ISO 8879:1986//ENTITIES Greek Letters//EN//XML" "/usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOgrk1.ent" . "/usr/share/sgml/docbook/dtd/xml/4.1/") nil) ("ISOgrk2.module" text "INCLUDE" nil) ("ISOgrk2" text ("ISO 8879:1986//ENTITIES Monotoniko Greek//EN//XML" "/usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOgrk2.ent" . "/usr/share/sgml/docbook/dtd/xml/4.1/") nil) ("ISOgrk3.module" text "INCLUDE" nil) ("ISOgrk3" text ("ISO 8879:1986//ENTITIES Greek Symbols//EN//XML" "/usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOgrk3.ent" . "/usr/share/sgml/docbook/dtd/xml/4.1/") nil) ("ISOgrk4.module" text "INCLUDE" nil) ("ISOgrk4" text ("ISO 8879:1986//ENTITIES Alternative Greek Symbols//EN//XML" "/usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOgrk4.ent" . "/usr/share/sgml/docbook/dtd/xml/4.1/") nil) ("ISOlat1.module" text "INCLUDE" nil) ("ISOlat1" text ("ISO 8879:1986//ENTITIES Added Latin 1//EN//XML" "/usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOlat1.ent" . "/usr/share/sgml/docbook/dtd/xml/4.1/") nil) ("ISOlat2.module" text "INCLUDE" nil) ("ISOlat2" text ("ISO 8879:1986//ENTITIES Added Latin 2//EN//XML" "/usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOlat2.ent" . "/usr/share/sgml/docbook/dtd/xml/4.1/") nil) ("ISOnum.module" text "INCLUDE" nil) ("ISOnum" text ("ISO 8879:1986//ENTITIES Numeric and Special Graphic//EN//XML" "/usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOnum.ent" . "/usr/share/sgml/docbook/dtd/xml/4.1/") nil) ("ISOpub.module" text "INCLUDE" nil) ("ISOpub" text ("ISO 8879:1986//ENTITIES Publishing//EN//XML" "/usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOpub.ent" . "/usr/share/sgml/docbook/dtd/xml/4.1/") nil) ("ISOtech.module" text "INCLUDE" nil) ("ISOtech" text ("ISO 8879:1986//ENTITIES General Technical//EN//XML" "/usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOtech.ent" . "/usr/share/sgml/docbook/dtd/xml/4.1/") nil) ("dbpool.module" text "INCLUDE" nil) ("dbpool" text ("-//OASIS//ELEMENTS DocBook XML Information Pool V4.1.2//EN" "dbpoolx.mod" . "/usr/share/sgml/docbook/dtd/xml/4.1.2/") nil) ("yesorno.attvals" text "CDATA" nil) ("dbpool.redecl.module" text "IGNORE" nil) ("local.ndxterm.class" text "" nil) ("ndxterm.class" text "indexterm " nil) ("local.list.class" text "" nil) ("list.class" text "calloutlist|glosslist|itemizedlist|orderedlist|segmentedlist |simplelist|variablelist " nil) ("local.admon.class" text "" nil) ("admon.class" text "caution|important|note|tip|warning " nil) ("local.linespecific.class" text "" nil) ("linespecific.class" text "literallayout|programlisting|programlistingco|screen |screenco|screenshot " nil) ("local.method.synop.class" text "" nil) ("method.synop.class" text "constructorsynopsis |destructorsynopsis |methodsynopsis " nil) ("local.synop.class" text "" nil) ("synop.class" text "synopsis|cmdsynopsis|funcsynopsis |classsynopsis|fieldsynopsis |constructorsynopsis |destructorsynopsis |methodsynopsis " nil) ("local.para.class" text "" nil) ("para.class" text "formalpara|para|simpara " nil) ("local.informal.class" text "" nil) ("informal.class" text "address|blockquote |graphic|graphicco|mediaobject|mediaobjectco |informalequation |informalexample |informalfigure |informaltable " nil) ("local.formal.class" text "" nil) ("formal.class" text "equation|example|figure|table " nil) ("ebnf.block.hook" text "" nil) ("local.compound.class" text "" nil) ("compound.class" text "msgset|procedure|sidebar|qandaset " nil) ("local.genobj.class" text "" nil) ("genobj.class" text "anchor|bridgehead|remark|highlights " nil) ("local.descobj.class" text "" nil) ("descobj.class" text "abstract|authorblurb|epigraph " nil) ("local.xref.char.class" text "" nil) ("xref.char.class" text "footnoteref|xref " nil) ("local.gen.char.class" text "" nil) ("gen.char.class" text "abbrev|acronym|citation|citerefentry|citetitle|emphasis |firstterm|foreignphrase|glossterm|footnote|phrase |quote|trademark|wordasword " nil) ("local.link.char.class" text "" nil) ("link.char.class" text "link|olink|ulink " nil) ("ebnf.inline.hook" text "" nil) ("local.tech.char.class" text "" nil) ("tech.char.class" text "action|application |classname|methodname|interfacename|exceptionname |ooclass|oointerface|ooexception |command|computeroutput |database|email|envar|errorcode|errorname|errortype|filename |function|guibutton|guiicon|guilabel|guimenu|guimenuitem |guisubmenu|hardware|interface|keycap |keycode|keycombo|keysym|literal|constant|markup|medialabel |menuchoice|mousebutton|option|optional|parameter |prompt|property|replaceable|returnvalue|sgmltag|structfield |structname|symbol|systemitem|token|type|userinput|varname " nil) ("local.base.char.class" text "" nil) ("base.char.class" text "anchor " nil) ("local.docinfo.char.class" text "" nil) ("docinfo.char.class" text "author|authorinitials|corpauthor|modespec|othercredit |productname|productnumber|revhistory " nil) ("local.other.char.class" text "" nil) ("other.char.class" text "remark|subscript|superscript " nil) ("local.inlineobj.char.class" text "" nil) ("inlineobj.char.class" text "inlinegraphic|inlinemediaobject|inlineequation " nil) ("local.component.mix" text "" nil) ("component.mix" text "calloutlist|glosslist|itemizedlist|orderedlist|segmentedlist |simplelist|variablelist |caution|important|note|tip|warning |literallayout|programlisting|programlistingco|screen |screenco|screenshot |synopsis|cmdsynopsis|funcsynopsis |classsynopsis|fieldsynopsis |constructorsynopsis |destructorsynopsis |methodsynopsis |formalpara|para|simpara |address|blockquote |graphic|graphicco|mediaobject|mediaobjectco |informalequation |informalexample |informalfigure |informaltable |equation|example|figure|table |msgset|procedure|sidebar|qandaset |anchor|bridgehead|remark|highlights |abstract|authorblurb|epigraph |indexterm |beginpage " nil) ("local.sidebar.mix" text "" nil) ("sidebar.mix" text "calloutlist|glosslist|itemizedlist|orderedlist|segmentedlist |simplelist|variablelist |caution|important|note|tip|warning |literallayout|programlisting|programlistingco|screen |screenco|screenshot |synopsis|cmdsynopsis|funcsynopsis |classsynopsis|fieldsynopsis |constructorsynopsis |destructorsynopsis |methodsynopsis |formalpara|para|simpara |address|blockquote |graphic|graphicco|mediaobject|mediaobjectco |informalequation |informalexample |informalfigure |informaltable |equation|example|figure|table |procedure |anchor|bridgehead|remark|highlights |indexterm |beginpage " nil) ("local.qandaset.mix" text "" nil) ("qandaset.mix" text "calloutlist|glosslist|itemizedlist|orderedlist|segmentedlist |simplelist|variablelist |caution|important|note|tip|warning |literallayout|programlisting|programlistingco|screen |screenco|screenshot |synopsis|cmdsynopsis|funcsynopsis |classsynopsis|fieldsynopsis |constructorsynopsis |destructorsynopsis |methodsynopsis |formalpara|para|simpara |address|blockquote |graphic|graphicco|mediaobject|mediaobjectco |informalequation |informalexample |informalfigure |informaltable |equation|example|figure|table |procedure |anchor|bridgehead|remark|highlights |indexterm " nil) ("local.revdescription.mix" text "" nil) ("revdescription.mix" text "calloutlist|glosslist|itemizedlist|orderedlist|segmentedlist |simplelist|variablelist |caution|important|note|tip|warning |literallayout|programlisting|programlistingco|screen |screenco|screenshot |synopsis|cmdsynopsis|funcsynopsis |classsynopsis|fieldsynopsis |constructorsynopsis |destructorsynopsis |methodsynopsis |formalpara|para|simpara |address|blockquote |graphic|graphicco|mediaobject|mediaobjectco |informalequation |informalexample |informalfigure |informaltable |equation|example|figure|table |procedure |anchor|bridgehead|remark|highlights |indexterm " nil) ("local.footnote.mix" text "" nil) ("footnote.mix" text "calloutlist|glosslist|itemizedlist|orderedlist|segmentedlist |simplelist|variablelist |literallayout|programlisting|programlistingco|screen |screenco|screenshot |synopsis|cmdsynopsis|funcsynopsis |classsynopsis|fieldsynopsis |constructorsynopsis |destructorsynopsis |methodsynopsis |formalpara|para|simpara |address|blockquote |graphic|graphicco|mediaobject|mediaobjectco |informalequation |informalexample |informalfigure |informaltable " nil) ("local.example.mix" text "" nil) ("example.mix" text "calloutlist|glosslist|itemizedlist|orderedlist|segmentedlist |simplelist|variablelist |literallayout|programlisting|programlistingco|screen |screenco|screenshot |synopsis|cmdsynopsis|funcsynopsis |classsynopsis|fieldsynopsis |constructorsynopsis |destructorsynopsis |methodsynopsis |formalpara|para|simpara |address|blockquote |graphic|graphicco|mediaobject|mediaobjectco |informalequation |informalexample |informalfigure |informaltable |indexterm |beginpage " nil) ("local.highlights.mix" text "" nil) ("highlights.mix" text "calloutlist|glosslist|itemizedlist|orderedlist|segmentedlist |simplelist|variablelist |caution|important|note|tip|warning |formalpara|para|simpara |indexterm " nil) ("local.para.mix" text "" nil) ("para.mix" text "calloutlist|glosslist|itemizedlist|orderedlist|segmentedlist |simplelist|variablelist |caution|important|note|tip|warning |literallayout|programlisting|programlistingco|screen |screenco|screenshot |address|blockquote |graphic|graphicco|mediaobject|mediaobjectco |informalequation |informalexample |informalfigure |informaltable |equation|example|figure|table " nil) ("local.admon.mix" text "" nil) ("admon.mix" text "calloutlist|glosslist|itemizedlist|orderedlist|segmentedlist |simplelist|variablelist |literallayout|programlisting|programlistingco|screen |screenco|screenshot |synopsis|cmdsynopsis|funcsynopsis |classsynopsis|fieldsynopsis |constructorsynopsis |destructorsynopsis |methodsynopsis |formalpara|para|simpara |address|blockquote |graphic|graphicco|mediaobject|mediaobjectco |informalequation |informalexample |informalfigure |informaltable |equation|example|figure|table |procedure|sidebar |anchor|bridgehead|remark |indexterm |beginpage " nil) ("local.figure.mix" text "" nil) ("figure.mix" text "literallayout|programlisting|programlistingco|screen |screenco|screenshot |synopsis|cmdsynopsis|funcsynopsis |classsynopsis|fieldsynopsis |constructorsynopsis |destructorsynopsis |methodsynopsis |address|blockquote |graphic|graphicco|mediaobject|mediaobjectco |informalequation |informalexample |informalfigure |informaltable |indexterm |beginpage " nil) ("local.tabentry.mix" text "" nil) ("tabentry.mix" text "calloutlist|glosslist|itemizedlist|orderedlist|segmentedlist |simplelist|variablelist |caution|important|note|tip|warning |literallayout|programlisting|programlistingco|screen |screenco|screenshot |formalpara|para|simpara |graphic|mediaobject " nil) ("local.glossdef.mix" text "" nil) ("glossdef.mix" text "calloutlist|glosslist|itemizedlist|orderedlist|segmentedlist |simplelist|variablelist |literallayout|programlisting|programlistingco|screen |screenco|screenshot |synopsis|cmdsynopsis|funcsynopsis |classsynopsis|fieldsynopsis |constructorsynopsis |destructorsynopsis |methodsynopsis |formalpara|para|simpara |address|blockquote |graphic|graphicco|mediaobject|mediaobjectco |informalequation |informalexample |informalfigure |informaltable |equation|example|figure|table |remark |indexterm |beginpage " nil) ("local.legalnotice.mix" text "" nil) ("legalnotice.mix" text "calloutlist|glosslist|itemizedlist|orderedlist|segmentedlist |simplelist|variablelist |caution|important|note|tip|warning |literallayout|programlisting|programlistingco|screen |screenco|screenshot |formalpara|para|simpara |blockquote |indexterm |beginpage " nil) ("local.textobject.mix" text "" nil) ("textobject.mix" text "calloutlist|glosslist|itemizedlist|orderedlist|segmentedlist |simplelist|variablelist |caution|important|note|tip|warning |literallayout|programlisting|programlistingco|screen |screenco|screenshot |formalpara|para|simpara |blockquote " nil) ("local.mediaobject.mix" text "" nil) ("mediaobject.mix" text "videoobject|audioobject|imageobject " nil) ("forminlines.hook" text "" nil) ("local.para.char.mix" text "" nil) ("para.char.mix" text "#PCDATA |footnoteref|xref |abbrev|acronym|citation|citerefentry|citetitle|emphasis |firstterm|foreignphrase|glossterm|footnote|phrase |quote|trademark|wordasword |link|olink|ulink |action|application |classname|methodname|interfacename|exceptionname |ooclass|oointerface|ooexception |command|computeroutput |database|email|envar|errorcode|errorname|errortype|filename |function|guibutton|guiicon|guilabel|guimenu|guimenuitem |guisubmenu|hardware|interface|keycap |keycode|keycombo|keysym|literal|constant|markup|medialabel |menuchoice|mousebutton|option|optional|parameter |prompt|property|replaceable|returnvalue|sgmltag|structfield |structname|symbol|systemitem|token|type|userinput|varname |anchor |author|authorinitials|corpauthor|modespec|othercredit |productname|productnumber|revhistory |remark|subscript|superscript |inlinegraphic|inlinemediaobject|inlineequation |synopsis|cmdsynopsis|funcsynopsis |classsynopsis|fieldsynopsis |constructorsynopsis |destructorsynopsis |methodsynopsis |indexterm |beginpage " nil) ("local.title.char.mix" text "" nil) ("title.char.mix" text "#PCDATA |footnoteref|xref |abbrev|acronym|citation|citerefentry|citetitle|emphasis |firstterm|foreignphrase|glossterm|footnote|phrase |quote|trademark|wordasword |link|olink|ulink |action|application |classname|methodname|interfacename|exceptionname |ooclass|oointerface|ooexception |command|computeroutput |database|email|envar|errorcode|errorname|errortype|filename |function|guibutton|guiicon|guilabel|guimenu|guimenuitem |guisubmenu|hardware|interface|keycap |keycode|keycombo|keysym|literal|constant|markup|medialabel |menuchoice|mousebutton|option|optional|parameter |prompt|property|replaceable|returnvalue|sgmltag|structfield |structname|symbol|systemitem|token|type|userinput|varname |anchor |author|authorinitials|corpauthor|modespec|othercredit |productname|productnumber|revhistory |remark|subscript|superscript |inlinegraphic|inlinemediaobject|inlineequation |indexterm " nil) ("local.ndxterm.char.mix" text "" nil) ("ndxterm.char.mix" text "#PCDATA |footnoteref|xref |abbrev|acronym|citation|citerefentry|citetitle|emphasis |firstterm|foreignphrase|glossterm|footnote|phrase |quote|trademark|wordasword |link|olink|ulink |action|application |classname|methodname|interfacename|exceptionname |ooclass|oointerface|ooexception |command|computeroutput |database|email|envar|errorcode|errorname|errortype|filename |function|guibutton|guiicon|guilabel|guimenu|guimenuitem |guisubmenu|hardware|interface|keycap |keycode|keycombo|keysym|literal|constant|markup|medialabel |menuchoice|mousebutton|option|optional|parameter |prompt|property|replaceable|returnvalue|sgmltag|structfield |structname|symbol|systemitem|token|type|userinput|varname |anchor |author|authorinitials|corpauthor|modespec|othercredit |productname|productnumber|revhistory |remark|subscript|superscript |inlinegraphic|inlinemediaobject " nil) ("local.cptr.char.mix" text "" nil) ("cptr.char.mix" text "#PCDATA |link|olink|ulink |action|application |classname|methodname|interfacename|exceptionname |ooclass|oointerface|ooexception |command|computeroutput |database|email|envar|errorcode|errorname|errortype|filename |function|guibutton|guiicon|guilabel|guimenu|guimenuitem |guisubmenu|hardware|interface|keycap |keycode|keycombo|keysym|literal|constant|markup|medialabel |menuchoice|mousebutton|option|optional|parameter |prompt|property|replaceable|returnvalue|sgmltag|structfield |structname|symbol|systemitem|token|type|userinput|varname |anchor |remark|subscript|superscript |inlinegraphic|inlinemediaobject |indexterm |beginpage " nil) ("local.smallcptr.char.mix" text "" nil) ("smallcptr.char.mix" text "#PCDATA |replaceable |inlinegraphic|inlinemediaobject |indexterm |beginpage " nil) ("local.word.char.mix" text "" nil) ("word.char.mix" text "#PCDATA |acronym|emphasis|trademark |link|olink|ulink |anchor |remark|subscript|superscript |inlinegraphic|inlinemediaobject |indexterm |beginpage " nil) ("local.docinfo.char.mix" text "" nil) ("docinfo.char.mix" text "#PCDATA |link|olink|ulink |emphasis|trademark |replaceable |remark|subscript|superscript |inlinegraphic|inlinemediaobject |indexterm " nil) ("formalobject.title.content" text "title, titleabbrev?" nil) ("arch.attrib" text "arch CDATA #IMPLIED" nil) ("condition.attrib" text "condition CDATA #IMPLIED" nil) ("conformance.attrib" text "conformance NMTOKENS #IMPLIED" nil) ("os.attrib" text "os CDATA #IMPLIED" nil) ("revision.attrib" text "revision CDATA #IMPLIED" nil) ("security.attrib" text "security CDATA #IMPLIED" nil) ("userlevel.attrib" text "userlevel CDATA #IMPLIED" nil) ("vendor.attrib" text "vendor CDATA #IMPLIED" nil) ("local.effectivity.attrib" text "" nil) ("effectivity.attrib" text "arch CDATA #IMPLIED condition CDATA #IMPLIED conformance NMTOKENS #IMPLIED os CDATA #IMPLIED revision CDATA #IMPLIED security CDATA #IMPLIED userlevel CDATA #IMPLIED vendor CDATA #IMPLIED " nil) ("id.attrib" text "id ID #IMPLIED" nil) ("idreq.attrib" text "id ID #REQUIRED" nil) ("lang.attrib" text "lang CDATA #IMPLIED" nil) ("remap.attrib" text "remap CDATA #IMPLIED" nil) ("role.attrib" text "role CDATA #IMPLIED" nil) ("xreflabel.attrib" text "xreflabel CDATA #IMPLIED" nil) ("revisionflag.attrib" text "revisionflag (changed |added |deleted |off) #IMPLIED" nil) ("local.common.attrib" text "" nil) ("common.attrib" text "id ID #IMPLIED lang CDATA #IMPLIED remap CDATA #IMPLIED xreflabel CDATA #IMPLIED revisionflag (changed |added |deleted |off) #IMPLIED arch CDATA #IMPLIED condition CDATA #IMPLIED conformance NMTOKENS #IMPLIED os CDATA #IMPLIED revision CDATA #IMPLIED security CDATA #IMPLIED userlevel CDATA #IMPLIED vendor CDATA #IMPLIED " nil) ("idreq.common.attrib" text "id ID #REQUIRED lang CDATA #IMPLIED remap CDATA #IMPLIED xreflabel CDATA #IMPLIED revisionflag (changed |added |deleted |off) #IMPLIED arch CDATA #IMPLIED condition CDATA #IMPLIED conformance NMTOKENS #IMPLIED os CDATA #IMPLIED revision CDATA #IMPLIED security CDATA #IMPLIED userlevel CDATA #IMPLIED vendor CDATA #IMPLIED " nil) ("local.graphics.attrib" text "" nil) ("graphics.attrib" text " entityref ENTITY #IMPLIED fileref CDATA #IMPLIED format (BMP| CGM-CHAR | CGM-BINARY | CGM-CLEAR | DITROFF | DVI | EPS | EQN | FAX | GIF | GIF87a | GIF89a | JPG | JPEG | IGES | PCX | PIC | PNG | PS | SGML | TBL | TEX | TIFF | WMF | WPG | linespecific ) #IMPLIED srccredit CDATA #IMPLIED width CDATA #IMPLIED depth CDATA #IMPLIED align (left |right |center) #IMPLIED scale CDATA #IMPLIED scalefit CDATA #IMPLIED " nil) ("local.keyaction.attrib" text "" nil) ("keyaction.attrib" text " action (click |double-click |press |seq |simul |other) #IMPLIED otheraction CDATA #IMPLIED " nil) ("label.attrib" text "label CDATA #IMPLIED" nil) ("linespecific.attrib" text "format NOTATION (linespecific) 'linespecific' linenumbering (numbered|unnumbered) #IMPLIED" nil) ("linkend.attrib" text "linkend IDREF #IMPLIED" nil) ("linkendreq.attrib" text "linkend IDREF #REQUIRED" nil) ("linkends.attrib" text "linkends IDREFS #IMPLIED" nil) ("local.mark.attrib" text "" nil) ("mark.attrib" text "mark CDATA #IMPLIED " nil) ("moreinfo.attrib" text "moreinfo (refentry|none) 'none'" nil) ("pagenum.attrib" text "pagenum CDATA #IMPLIED" nil) ("local.status.attrib" text "" nil) ("status.attrib" text "status CDATA #IMPLIED " nil) ("width.attrib" text "width CDATA #IMPLIED" nil) ("title.module" text "INCLUDE" nil) ("local.title.attrib" text "" nil) ("title.role.attrib" text "role CDATA #IMPLIED" nil) ("title.element" text "INCLUDE" nil) ("title.attlist" text "INCLUDE" nil) ("titleabbrev.module" text "INCLUDE" nil) ("local.titleabbrev.attrib" text "" nil) ("titleabbrev.role.attrib" text "role CDATA #IMPLIED" nil) ("titleabbrev.element" text "INCLUDE" nil) ("titleabbrev.attlist" text "INCLUDE" nil) ("subtitle.module" text "INCLUDE" nil) ("local.subtitle.attrib" text "" nil) ("subtitle.role.attrib" text "role CDATA #IMPLIED" nil) ("subtitle.element" text "INCLUDE" nil) ("subtitle.attlist" text "INCLUDE" nil) ("local.person.ident.mix" text "" nil) ("person.ident.mix" text "honorific|firstname|surname|lineage|othername|affiliation |authorblurb|contrib " nil) ("local.bibliocomponent.mix" text "" nil) ("bibliocomponent.mix" text "abbrev|abstract|address|artpagenums|author |authorgroup|authorinitials|bibliomisc|biblioset |collab|confgroup|contractnum|contractsponsor |copyright|corpauthor|corpname|date|edition |editor|invpartnumber|isbn|issn|issuenum|orgname |othercredit|pagenums|printhistory|productname |productnumber|pubdate|publisher|publishername |pubsnumber|releaseinfo|revhistory|seriesvolnums |subtitle|title|titleabbrev|volumenum|citetitle |honorific|firstname|surname|lineage|othername|affiliation |authorblurb|contrib |indexterm " nil) ("biblioentry.module" text "INCLUDE" nil) ("local.biblioentry.attrib" text "" nil) ("biblioentry.role.attrib" text "role CDATA #IMPLIED" nil) ("biblioentry.element" text "INCLUDE" nil) ("biblioentry.attlist" text "INCLUDE" nil) ("bibliomixed.module" text "INCLUDE" nil) ("local.bibliomixed.attrib" text "" nil) ("bibliomixed.role.attrib" text "role CDATA #IMPLIED" nil) ("bibliomixed.element" text "INCLUDE" nil) ("bibliomixed.attlist" text "INCLUDE" nil) ("articleinfo.module" text "INCLUDE" nil) ("local.articleinfo.attrib" text "" nil) ("articleinfo.role.attrib" text "role CDATA #IMPLIED" nil) ("articleinfo.element" text "INCLUDE" nil) ("articleinfo.attlist" text "INCLUDE" nil) ("biblioset.module" text "INCLUDE" nil) ("local.biblioset.attrib" text "" nil) ("biblioset.role.attrib" text "role CDATA #IMPLIED" nil) ("biblioset.element" text "INCLUDE" nil) ("biblioset.attlist" text "INCLUDE" nil) ("bibliomset.module" text "INCLUDE" nil) ("bibliomset.role.attrib" text "role CDATA #IMPLIED" nil) ("local.bibliomset.attrib" text "" nil) ("bibliomset.element" text "INCLUDE" nil) ("bibliomset.attlist" text "INCLUDE" nil) ("bibliomisc.module" text "INCLUDE" nil) ("local.bibliomisc.attrib" text "" nil) ("bibliomisc.role.attrib" text "role CDATA #IMPLIED" nil) ("bibliomisc.element" text "INCLUDE" nil) ("bibliomisc.attlist" text "INCLUDE" nil) ("subjectset.content.module" text "INCLUDE" nil) ("subjectset.module" text "INCLUDE" nil) ("local.subjectset.attrib" text "" nil) ("subjectset.role.attrib" text "role CDATA #IMPLIED" nil) ("subjectset.element" text "INCLUDE" nil) ("subjectset.attlist" text "INCLUDE" nil) ("subject.module" text "INCLUDE" nil) ("local.subject.attrib" text "" nil) ("subject.role.attrib" text "role CDATA #IMPLIED" nil) ("subject.element" text "INCLUDE" nil) ("subject.attlist" text "INCLUDE" nil) ("subjectterm.module" text "INCLUDE" nil) ("local.subjectterm.attrib" text "" nil) ("subjectterm.role.attrib" text "role CDATA #IMPLIED" nil) ("subjectterm.element" text "INCLUDE" nil) ("subjectterm.attlist" text "INCLUDE" nil) ("keywordset.content.module" text "INCLUDE" nil) ("keywordset.module" text "INCLUDE" nil) ("local.keywordset.attrib" text "" nil) ("keywordset.role.attrib" text "role CDATA #IMPLIED" nil) ("keywordset.element" text "INCLUDE" nil) ("keywordset.attlist" text "INCLUDE" nil) ("keyword.module" text "INCLUDE" nil) ("local.keyword.attrib" text "" nil) ("keyword.role.attrib" text "role CDATA #IMPLIED" nil) ("keyword.element" text "INCLUDE" nil) ("keyword.attlist" text "INCLUDE" nil) ("itermset.module" text "INCLUDE" nil) ("local.itermset.attrib" text "" nil) ("itermset.role.attrib" text "role CDATA #IMPLIED" nil) ("itermset.element" text "INCLUDE" nil) ("itermset.attlist" text "INCLUDE" nil) ("msgset.content.module" text "INCLUDE" nil) ("msgset.module" text "INCLUDE" nil) ("local.msgset.attrib" text "" nil) ("msgset.role.attrib" text "role CDATA #IMPLIED" nil) ("msgset.element" text "INCLUDE" nil) ("msgset.attlist" text "INCLUDE" nil) ("msgentry.module" text "INCLUDE" nil) ("local.msgentry.attrib" text "" nil) ("msgentry.role.attrib" text "role CDATA #IMPLIED" nil) ("msgentry.element" text "INCLUDE" nil) ("msgentry.attlist" text "INCLUDE" nil) ("simplemsgentry.module" text "INCLUDE" nil) ("local.simplemsgentry.attrib" text "" nil) ("simplemsgentry.role.attrib" text "role CDATA #IMPLIED" nil) ("simplemsgentry.element" text "INCLUDE" nil) ("simplemsgentry.attlist" text "INCLUDE" nil) ("msg.module" text "INCLUDE" nil) ("local.msg.attrib" text "" nil) ("msg.role.attrib" text "role CDATA #IMPLIED" nil) ("msg.element" text "INCLUDE" nil) ("msg.attlist" text "INCLUDE" nil) ("msgmain.module" text "INCLUDE" nil) ("local.msgmain.attrib" text "" nil) ("msgmain.role.attrib" text "role CDATA #IMPLIED" nil) ("msgmain.element" text "INCLUDE" nil) ("msgmain.attlist" text "INCLUDE" nil) ("msgsub.module" text "INCLUDE" nil) ("local.msgsub.attrib" text "" nil) ("msgsub.role.attrib" text "role CDATA #IMPLIED" nil) ("msgsub.element" text "INCLUDE" nil) ("msgsub.attlist" text "INCLUDE" nil) ("msgrel.module" text "INCLUDE" nil) ("local.msgrel.attrib" text "" nil) ("msgrel.role.attrib" text "role CDATA #IMPLIED" nil) ("msgrel.element" text "INCLUDE" nil) ("msgrel.attlist" text "INCLUDE" nil) ("msginfo.module" text "INCLUDE" nil) ("local.msginfo.attrib" text "" nil) ("msginfo.role.attrib" text "role CDATA #IMPLIED" nil) ("msginfo.element" text "INCLUDE" nil) ("msginfo.attlist" text "INCLUDE" nil) ("msglevel.module" text "INCLUDE" nil) ("local.msglevel.attrib" text "" nil) ("msglevel.role.attrib" text "role CDATA #IMPLIED" nil) ("msglevel.element" text "INCLUDE" nil) ("msglevel.attlist" text "INCLUDE" nil) ("msgorig.module" text "INCLUDE" nil) ("local.msgorig.attrib" text "" nil) ("msgorig.role.attrib" text "role CDATA #IMPLIED" nil) ("msgorig.element" text "INCLUDE" nil) ("msgorig.attlist" text "INCLUDE" nil) ("msgaud.module" text "INCLUDE" nil) ("local.msgaud.attrib" text "" nil) ("msgaud.role.attrib" text "role CDATA #IMPLIED" nil) ("msgaud.element" text "INCLUDE" nil) ("msgaud.attlist" text "INCLUDE" nil) ("msgexplan.module" text "INCLUDE" nil) ("local.msgexplan.attrib" text "" nil) ("msgexplan.role.attrib" text "role CDATA #IMPLIED" nil) ("msgexplan.element" text "INCLUDE" nil) ("msgexplan.attlist" text "INCLUDE" nil) ("qandset.content.module" text "INCLUDE" nil) ("qandset.module" text "INCLUDE" nil) ("local.qandset.attrib" text "" nil) ("qandset.role.attrib" text "role CDATA #IMPLIED" nil) ("qandset.element" text "INCLUDE" nil) ("qandset.attlist" text "INCLUDE" nil) ("qandadiv.module" text "INCLUDE" nil) ("local.qandadiv.attrib" text "" nil) ("qandadiv.role.attrib" text "role CDATA #IMPLIED" nil) ("qandadiv.element" text "INCLUDE" nil) ("qandadiv.attlist" text "INCLUDE" nil) ("qandaentry.module" text "INCLUDE" nil) ("local.qandaentry.attrib" text "" nil) ("qandaentry.role.attrib" text "role CDATA #IMPLIED" nil) ("qandaentry.element" text "INCLUDE" nil) ("qandaentry.attlist" text "INCLUDE" nil) ("question.module" text "INCLUDE" nil) ("local.question.attrib" text "" nil) ("question.role.attrib" text "role CDATA #IMPLIED" nil) ("question.element" text "INCLUDE" nil) ("question.attlist" text "INCLUDE" nil) ("answer.module" text "INCLUDE" nil) ("local.answer.attrib" text "" nil) ("answer.role.attrib" text "role CDATA #IMPLIED" nil) ("answer.element" text "INCLUDE" nil) ("answer.attlist" text "INCLUDE" nil) ("label.module" text "INCLUDE" nil) ("local.label.attrib" text "" nil) ("label.role.attrib" text "role CDATA #IMPLIED" nil) ("label.element" text "INCLUDE" nil) ("label.attlist" text "INCLUDE" nil) ("procedure.content.module" text "INCLUDE" nil) ("procedure.module" text "INCLUDE" nil) ("local.procedure.attrib" text "" nil) ("procedure.role.attrib" text "role CDATA #IMPLIED" nil) ("procedure.element" text "INCLUDE" nil) ("procedure.attlist" text "INCLUDE" nil) ("step.module" text "INCLUDE" nil) ("local.step.attrib" text "" nil) ("step.role.attrib" text "role CDATA #IMPLIED" nil) ("step.element" text "INCLUDE" nil) ("step.attlist" text "INCLUDE" nil) ("substeps.module" text "INCLUDE" nil) ("local.substeps.attrib" text "" nil) ("substeps.role.attrib" text "role CDATA #IMPLIED" nil) ("substeps.element" text "INCLUDE" nil) ("substeps.attlist" text "INCLUDE" nil) ("sidebar.content.model" text "INCLUDE" nil) ("sidebarinfo.module" text "INCLUDE" nil) ("local.sidebarinfo.attrib" text "" nil) ("sidebarinfo.role.attrib" text "role CDATA #IMPLIED" nil) ("sidebarinfo.element" text "INCLUDE" nil) ("sidebarinfo.attlist" text "INCLUDE" nil) ("sidebar.module" text "INCLUDE" nil) ("local.sidebar.attrib" text "" nil) ("sidebar.role.attrib" text "role CDATA #IMPLIED" nil) ("sidebar.element" text "INCLUDE" nil) ("sidebar.attlist" text "INCLUDE" nil) ("abstract.module" text "INCLUDE" nil) ("local.abstract.attrib" text "" nil) ("abstract.role.attrib" text "role CDATA #IMPLIED" nil) ("abstract.element" text "INCLUDE" nil) ("abstract.attlist" text "INCLUDE" nil) ("authorblurb.module" text "INCLUDE" nil) ("local.authorblurb.attrib" text "" nil) ("authorblurb.role.attrib" text "role CDATA #IMPLIED" nil) ("authorblurb.element" text "INCLUDE" nil) ("authorblurb.attlist" text "INCLUDE" nil) ("blockquote.module" text "INCLUDE" nil) ("local.blockquote.attrib" text "" nil) ("blockquote.role.attrib" text "role CDATA #IMPLIED" nil) ("blockquote.element" text "INCLUDE" nil) ("blockquote.attlist" text "INCLUDE" nil) ("attribution.module" text "INCLUDE" nil) ("local.attribution.attrib" text "" nil) ("attribution.role.attrib" text "role CDATA #IMPLIED" nil) ("attribution.element" text "INCLUDE" nil) ("attribution.attlist" text "INCLUDE" nil) ("bridgehead.module" text "INCLUDE" nil) ("local.bridgehead.attrib" text "" nil) ("bridgehead.role.attrib" text "role CDATA #IMPLIED" nil) ("bridgehead.element" text "INCLUDE" nil) ("bridgehead.attlist" text "INCLUDE" nil) ("remark.module" text "INCLUDE" nil) ("local.remark.attrib" text "" nil) ("remark.role.attrib" text "role CDATA #IMPLIED" nil) ("remark.element" text "INCLUDE" nil) ("remark.attlist" text "INCLUDE" nil) ("epigraph.module" text "INCLUDE" nil) ("local.epigraph.attrib" text "" nil) ("epigraph.role.attrib" text "role CDATA #IMPLIED" nil) ("epigraph.element" text "INCLUDE" nil) ("epigraph.attlist" text "INCLUDE" nil) ("footnote.module" text "INCLUDE" nil) ("local.footnote.attrib" text "" nil) ("footnote.role.attrib" text "role CDATA #IMPLIED" nil) ("footnote.element" text "INCLUDE" nil) ("footnote.attlist" text "INCLUDE" nil) ("highlights.module" text "INCLUDE" nil) ("local.highlights.attrib" text "" nil) ("highlights.role.attrib" text "role CDATA #IMPLIED" nil) ("highlights.element" text "INCLUDE" nil) ("highlights.attlist" text "INCLUDE" nil) ("formalpara.module" text "INCLUDE" nil) ("local.formalpara.attrib" text "" nil) ("formalpara.role.attrib" text "role CDATA #IMPLIED" nil) ("formalpara.element" text "INCLUDE" nil) ("formalpara.attlist" text "INCLUDE" nil) ("para.module" text "INCLUDE" nil) ("local.para.attrib" text "" nil) ("para.role.attrib" text "role CDATA #IMPLIED" nil) ("para.element" text "INCLUDE" nil) ("para.attlist" text "INCLUDE" nil) ("simpara.module" text "INCLUDE" nil) ("local.simpara.attrib" text "" nil) ("simpara.role.attrib" text "role CDATA #IMPLIED" nil) ("simpara.element" text "INCLUDE" nil) ("simpara.attlist" text "INCLUDE" nil) ("admon.module" text "INCLUDE" nil) ("local.admon.attrib" text "" nil) ("admon.role.attrib" text "role CDATA #IMPLIED" nil) ("caution.element" text "INCLUDE" nil) ("caution.attlist" text "INCLUDE" nil) ("important.element" text "INCLUDE" nil) ("important.attlist" text "INCLUDE" nil) ("note.element" text "INCLUDE" nil) ("note.attlist" text "INCLUDE" nil) ("tip.element" text "INCLUDE" nil) ("tip.attlist" text "INCLUDE" nil) ("warning.element" text "INCLUDE" nil) ("warning.attlist" text "INCLUDE" nil) ("glosslist.module" text "INCLUDE" nil) ("local.glosslist.attrib" text "" nil) ("glosslist.role.attrib" text "role CDATA #IMPLIED" nil) ("glosslist.element" text "INCLUDE" nil) ("glosslist.attlist" text "INCLUDE" nil) ("glossentry.content.module" text "INCLUDE" nil) ("glossentry.module" text "INCLUDE" nil) ("local.glossentry.attrib" text "" nil) ("glossentry.role.attrib" text "role CDATA #IMPLIED" nil) ("glossentry.element" text "INCLUDE" nil) ("glossentry.attlist" text "INCLUDE" nil) ("glossdef.module" text "INCLUDE" nil) ("local.glossdef.attrib" text "" nil) ("glossdef.role.attrib" text "role CDATA #IMPLIED" nil) ("glossdef.element" text "INCLUDE" nil) ("glossdef.attlist" text "INCLUDE" nil) ("glosssee.module" text "INCLUDE" nil) ("local.glosssee.attrib" text "" nil) ("glosssee.role.attrib" text "role CDATA #IMPLIED" nil) ("glosssee.element" text "INCLUDE" nil) ("glosssee.attlist" text "INCLUDE" nil) ("glossseealso.module" text "INCLUDE" nil) ("local.glossseealso.attrib" text "" nil) ("glossseealso.role.attrib" text "role CDATA #IMPLIED" nil) ("glossseealso.element" text "INCLUDE" nil) ("glossseealso.attlist" text "INCLUDE" nil) ("itemizedlist.module" text "INCLUDE" nil) ("local.itemizedlist.attrib" text "" nil) ("itemizedlist.role.attrib" text "role CDATA #IMPLIED" nil) ("itemizedlist.element" text "INCLUDE" nil) ("itemizedlist.attlist" text "INCLUDE" nil) ("orderedlist.module" text "INCLUDE" nil) ("local.orderedlist.attrib" text "" nil) ("orderedlist.role.attrib" text "role CDATA #IMPLIED" nil) ("orderedlist.element" text "INCLUDE" nil) ("orderedlist.attlist" text "INCLUDE" nil) ("listitem.module" text "INCLUDE" nil) ("local.listitem.attrib" text "" nil) ("listitem.role.attrib" text "role CDATA #IMPLIED" nil) ("listitem.element" text "INCLUDE" nil) ("listitem.attlist" text "INCLUDE" nil) ("segmentedlist.content.module" text "INCLUDE" nil) ("segmentedlist.module" text "INCLUDE" nil) ("local.segmentedlist.attrib" text "" nil) ("segmentedlist.role.attrib" text "role CDATA #IMPLIED" nil) ("segmentedlist.element" text "INCLUDE" nil) ("segmentedlist.attlist" text "INCLUDE" nil) ("segtitle.module" text "INCLUDE" nil) ("local.segtitle.attrib" text "" nil) ("segtitle.role.attrib" text "role CDATA #IMPLIED" nil) ("segtitle.element" text "INCLUDE" nil) ("segtitle.attlist" text "INCLUDE" nil) ("seglistitem.module" text "INCLUDE" nil) ("local.seglistitem.attrib" text "" nil) ("seglistitem.role.attrib" text "role CDATA #IMPLIED" nil) ("seglistitem.element" text "INCLUDE" nil) ("seglistitem.attlist" text "INCLUDE" nil) ("seg.module" text "INCLUDE" nil) ("local.seg.attrib" text "" nil) ("seg.role.attrib" text "role CDATA #IMPLIED" nil) ("seg.element" text "INCLUDE" nil) ("seg.attlist" text "INCLUDE" nil) ("simplelist.content.module" text "INCLUDE" nil) ("simplelist.module" text "INCLUDE" nil) ("local.simplelist.attrib" text "" nil) ("simplelist.role.attrib" text "role CDATA #IMPLIED" nil) ("simplelist.element" text "INCLUDE" nil) ("simplelist.attlist" text "INCLUDE" nil) ("member.module" text "INCLUDE" nil) ("local.member.attrib" text "" nil) ("member.role.attrib" text "role CDATA #IMPLIED" nil) ("member.element" text "INCLUDE" nil) ("member.attlist" text "INCLUDE" nil) ("variablelist.content.module" text "INCLUDE" nil) ("variablelist.module" text "INCLUDE" nil) ("local.variablelist.attrib" text "" nil) ("variablelist.role.attrib" text "role CDATA #IMPLIED" nil) ("variablelist.element" text "INCLUDE" nil) ("variablelist.attlist" text "INCLUDE" nil) ("varlistentry.module" text "INCLUDE" nil) ("local.varlistentry.attrib" text "" nil) ("varlistentry.role.attrib" text "role CDATA #IMPLIED" nil) ("varlistentry.element" text "INCLUDE" nil) ("varlistentry.attlist" text "INCLUDE" nil) ("term.module" text "INCLUDE" nil) ("local.term.attrib" text "" nil) ("term.role.attrib" text "role CDATA #IMPLIED" nil) ("term.element" text "INCLUDE" nil) ("term.attlist" text "INCLUDE" nil) ("calloutlist.content.module" text "INCLUDE" nil) ("calloutlist.module" text "INCLUDE" nil) ("local.calloutlist.attrib" text "" nil) ("calloutlist.role.attrib" text "role CDATA #IMPLIED" nil) ("calloutlist.element" text "INCLUDE" nil) ("calloutlist.attlist" text "INCLUDE" nil) ("callout.module" text "INCLUDE" nil) ("local.callout.attrib" text "" nil) ("callout.role.attrib" text "role CDATA #IMPLIED" nil) ("callout.element" text "INCLUDE" nil) ("callout.attlist" text "INCLUDE" nil) ("example.module" text "INCLUDE" nil) ("local.example.attrib" text "" nil) ("example.role.attrib" text "role CDATA #IMPLIED" nil) ("example.element" text "INCLUDE" nil) ("example.attlist" text "INCLUDE" nil) ("informalexample.module" text "INCLUDE" nil) ("local.informalexample.attrib" text "" nil) ("informalexample.role.attrib" text "role CDATA #IMPLIED" nil) ("informalexample.element" text "INCLUDE" nil) ("informalexample.attlist" text "INCLUDE" nil) ("programlistingco.module" text "INCLUDE" nil) ("local.programlistingco.attrib" text "" nil) ("programlistingco.role.attrib" text "role CDATA #IMPLIED" nil) ("programlistingco.element" text "INCLUDE" nil) ("programlistingco.attlist" text "INCLUDE" nil) ("areaspec.content.module" text "INCLUDE" nil) ("areaspec.module" text "INCLUDE" nil) ("local.areaspec.attrib" text "" nil) ("areaspec.role.attrib" text "role CDATA #IMPLIED" nil) ("areaspec.element" text "INCLUDE" nil) ("areaspec.attlist" text "INCLUDE" nil) ("area.module" text "INCLUDE" nil) ("local.area.attrib" text "" nil) ("area.role.attrib" text "role CDATA #IMPLIED" nil) ("area.element" text "INCLUDE" nil) ("area.attlist" text "INCLUDE" nil) ("areaset.module" text "INCLUDE" nil) ("local.areaset.attrib" text "" nil) ("areaset.role.attrib" text "role CDATA #IMPLIED" nil) ("areaset.element" text "INCLUDE" nil) ("areaset.attlist" text "INCLUDE" nil) ("programlisting.module" text "INCLUDE" nil) ("local.programlisting.attrib" text "" nil) ("programlisting.role.attrib" text "role CDATA #IMPLIED" nil) ("programlisting.element" text "INCLUDE" nil) ("programlisting.attlist" text "INCLUDE" nil) ("literallayout.module" text "INCLUDE" nil) ("local.literallayout.attrib" text "" nil) ("literallayout.role.attrib" text "role CDATA #IMPLIED" nil) ("literallayout.element" text "INCLUDE" nil) ("literallayout.attlist" text "INCLUDE" nil) ("screenco.module" text "INCLUDE" nil) ("local.screenco.attrib" text "" nil) ("screenco.role.attrib" text "role CDATA #IMPLIED" nil) ("screenco.element" text "INCLUDE" nil) ("screenco.attlist" text "INCLUDE" nil) ("screen.module" text "INCLUDE" nil) ("local.screen.attrib" text "" nil) ("screen.role.attrib" text "role CDATA #IMPLIED" nil) ("screen.element" text "INCLUDE" nil) ("screen.attlist" text "INCLUDE" nil) ("screenshot.content.module" text "INCLUDE" nil) ("screenshot.module" text "INCLUDE" nil) ("local.screenshot.attrib" text "" nil) ("screenshot.role.attrib" text "role CDATA #IMPLIED" nil) ("screenshot.element" text "INCLUDE" nil) ("screenshot.attlist" text "INCLUDE" nil) ("screeninfo.module" text "INCLUDE" nil) ("local.screeninfo.attrib" text "" nil) ("screeninfo.role.attrib" text "role CDATA #IMPLIED" nil) ("screeninfo.element" text "INCLUDE" nil) ("screeninfo.attlist" text "INCLUDE" nil) ("figure.module" text "INCLUDE" nil) ("local.figure.attrib" text "" nil) ("figure.role.attrib" text "role CDATA #IMPLIED" nil) ("figure.element" text "INCLUDE" nil) ("figure.attlist" text "INCLUDE" nil) ("informalfigure.module" text "INCLUDE" nil) ("local.informalfigure.attrib" text "" nil) ("informalfigure.role.attrib" text "role CDATA #IMPLIED" nil) ("informalfigure.element" text "INCLUDE" nil) ("informalfigure.attlist" text "INCLUDE" nil) ("graphicco.module" text "INCLUDE" nil) ("local.graphicco.attrib" text "" nil) ("graphicco.role.attrib" text "role CDATA #IMPLIED" nil) ("graphicco.element" text "INCLUDE" nil) ("graphicco.attlist" text "INCLUDE" nil) ("graphic.module" text "INCLUDE" nil) ("local.graphic.attrib" text "" nil) ("graphic.role.attrib" text "role CDATA #IMPLIED" nil) ("graphic.element" text "INCLUDE" nil) ("graphic.attlist" text "INCLUDE" nil) ("inlinegraphic.module" text "INCLUDE" nil) ("local.inlinegraphic.attrib" text "" nil) ("inlinegraphic.role.attrib" text "role CDATA #IMPLIED" nil) ("inlinegraphic.element" text "INCLUDE" nil) ("inlinegraphic.attlist" text "INCLUDE" nil) ("mediaobject.content.module" text "INCLUDE" nil) ("mediaobject.module" text "INCLUDE" nil) ("local.mediaobject.attrib" text "" nil) ("mediaobject.role.attrib" text "role CDATA #IMPLIED" nil) ("mediaobject.element" text "INCLUDE" nil) ("mediaobject.attlist" text "INCLUDE" nil) ("inlinemediaobject.module" text "INCLUDE" nil) ("local.inlinemediaobject.attrib" text "" nil) ("inlinemediaobject.role.attrib" text "role CDATA #IMPLIED" nil) ("inlinemediaobject.element" text "INCLUDE" nil) ("inlinemediaobject.attlist" text "INCLUDE" nil) ("videoobject.module" text "INCLUDE" nil) ("local.videoobject.attrib" text "" nil) ("videoobject.role.attrib" text "role CDATA #IMPLIED" nil) ("videoobject.element" text "INCLUDE" nil) ("videoobject.attlist" text "INCLUDE" nil) ("audioobject.module" text "INCLUDE" nil) ("local.audioobject.attrib" text "" nil) ("audioobject.role.attrib" text "role CDATA #IMPLIED" nil) ("audioobject.element" text "INCLUDE" nil) ("audioobject.attlist" text "INCLUDE" nil) ("imageobject.module" text "INCLUDE" nil) ("local.imageobject.attrib" text "" nil) ("imageobject.role.attrib" text "role CDATA #IMPLIED" nil) ("imageobject.element" text "INCLUDE" nil) ("imageobject.attlist" text "INCLUDE" nil) ("textobject.module" text "INCLUDE" nil) ("local.textobject.attrib" text "" nil) ("textobject.role.attrib" text "role CDATA #IMPLIED" nil) ("textobject.element" text "INCLUDE" nil) ("textobject.attlist" text "INCLUDE" nil) ("objectinfo.module" text "INCLUDE" nil) ("local.objectinfo.attrib" text "" nil) ("objectinfo.role.attrib" text "role CDATA #IMPLIED" nil) ("objectinfo.element" text "INCLUDE" nil) ("objectinfo.attlist" text "INCLUDE" nil) ("local.objectdata.attrib" text "" nil) ("objectdata.attrib" text " entityref ENTITY #IMPLIED fileref CDATA #IMPLIED format (BMP| CGM-CHAR | CGM-BINARY | CGM-CLEAR | DITROFF | DVI | EPS | EQN | FAX | GIF | GIF87a | GIF89a | JPG | JPEG | IGES | PCX | PIC | PNG | PS | SGML | TBL | TEX | TIFF | WMF | WPG | linespecific ) #IMPLIED srccredit CDATA #IMPLIED " nil) ("videodata.module" text "INCLUDE" nil) ("local.videodata.attrib" text "" nil) ("videodata.role.attrib" text "role CDATA #IMPLIED" nil) ("videodata.element" text "INCLUDE" nil) ("videodata.attlist" text "INCLUDE" nil) ("audiodata.module" text "INCLUDE" nil) ("local.audiodata.attrib" text "" nil) ("audiodata.role.attrib" text "role CDATA #IMPLIED" nil) ("audiodata.element" text "INCLUDE" nil) ("audiodata.attlist" text "INCLUDE" nil) ("imagedata.module" text "INCLUDE" nil) ("local.imagedata.attrib" text "" nil) ("imagedata.role.attrib" text "role CDATA #IMPLIED" nil) ("imagedata.element" text "INCLUDE" nil) ("imagedata.attlist" text "INCLUDE" nil) ("caption.module" text "INCLUDE" nil) ("local.caption.attrib" text "" nil) ("caption.role.attrib" text "role CDATA #IMPLIED" nil) ("caption.element" text "INCLUDE" nil) ("caption.attlist" text "INCLUDE" nil) ("mediaobjectco.module" text "INCLUDE" nil) ("local.mediaobjectco.attrib" text "" nil) ("mediaobjectco.role.attrib" text "role CDATA #IMPLIED" nil) ("mediaobjectco.element" text "INCLUDE" nil) ("mediaobjectco.attlist" text "INCLUDE" nil) ("imageobjectco.module" text "INCLUDE" nil) ("local.imageobjectco.attrib" text "" nil) ("imageobjectco.role.attrib" text "role CDATA #IMPLIED" nil) ("imageobjectco.element" text "INCLUDE" nil) ("imageobjectco.attlist" text "INCLUDE" nil) ("equation.content" text "(alt?, (graphic+|mediaobject+))" nil) ("inlineequation.content" text "(alt?, (graphic+|inlinemediaobject+))" nil) ("equation.module" text "INCLUDE" nil) ("local.equation.attrib" text "" nil) ("equation.role.attrib" text "role CDATA #IMPLIED" nil) ("equation.element" text "INCLUDE" nil) ("equation.attlist" text "INCLUDE" nil) ("informalequation.module" text "INCLUDE" nil) ("local.informalequation.attrib" text "" nil) ("informalequation.role.attrib" text "role CDATA #IMPLIED" nil) ("informalequation.element" text "INCLUDE" nil) ("informalequation.attlist" text "INCLUDE" nil) ("inlineequation.module" text "INCLUDE" nil) ("local.inlineequation.attrib" text "" nil) ("inlineequation.role.attrib" text "role CDATA #IMPLIED" nil) ("inlineequation.element" text "INCLUDE" nil) ("inlineequation.attlist" text "INCLUDE" nil) ("alt.module" text "INCLUDE" nil) ("local.alt.attrib" text "" nil) ("alt.role.attrib" text "role CDATA #IMPLIED" nil) ("alt.element" text "INCLUDE" nil) ("alt.attlist" text "INCLUDE" nil) ("table.module" text "INCLUDE" nil) ("cals.table.module" text "INCLUDE" nil) ("exchange.table.module" text "IGNORE" nil) ("tables.role.attrib" text "role CDATA #IMPLIED" nil) ("bodyatt" text "label CDATA #IMPLIED" nil) ("secur" text "id ID #IMPLIED lang CDATA #IMPLIED remap CDATA #IMPLIED xreflabel CDATA #IMPLIED revisionflag (changed |added |deleted |off) #IMPLIED arch CDATA #IMPLIED condition CDATA #IMPLIED conformance NMTOKENS #IMPLIED os CDATA #IMPLIED revision CDATA #IMPLIED security CDATA #IMPLIED userlevel CDATA #IMPLIED vendor CDATA #IMPLIED role CDATA #IMPLIED" nil) ("common.table.attribs" text "label CDATA #IMPLIED id ID #IMPLIED lang CDATA #IMPLIED remap CDATA #IMPLIED xreflabel CDATA #IMPLIED revisionflag (changed |added |deleted |off) #IMPLIED arch CDATA #IMPLIED condition CDATA #IMPLIED conformance NMTOKENS #IMPLIED os CDATA #IMPLIED revision CDATA #IMPLIED security CDATA #IMPLIED userlevel CDATA #IMPLIED vendor CDATA #IMPLIED role CDATA #IMPLIED" nil) ("tbl.table.mdl" text "((title, titleabbrev?), (indexterm )*, (graphic+|mediaobject+|tgroup+))" nil) ("tbl.entry.mdl" text "#PCDATA |footnoteref|xref |abbrev|acronym|citation|citerefentry|citetitle|emphasis |firstterm|foreignphrase|glossterm|footnote|phrase |quote|trademark|wordasword |link|olink|ulink |action|application |classname|methodname|interfacename|exceptionname |ooclass|oointerface|ooexception |command|computeroutput |database|email|envar|errorcode|errorname|errortype|filename |function|guibutton|guiicon|guilabel|guimenu|guimenuitem |guisubmenu|hardware|interface|keycap |keycode|keycombo|keysym|literal|constant|markup|medialabel |menuchoice|mousebutton|option|optional|parameter |prompt|property|replaceable|returnvalue|sgmltag|structfield |structname|symbol|systemitem|token|type|userinput|varname |anchor |author|authorinitials|corpauthor|modespec|othercredit |productname|productnumber|revhistory |remark|subscript|superscript |inlinegraphic|inlinemediaobject|inlineequation |synopsis|cmdsynopsis|funcsynopsis |classsynopsis|fieldsynopsis |constructorsynopsis |destructorsynopsis |methodsynopsis |indexterm |beginpage | calloutlist|glosslist|itemizedlist|orderedlist|segmentedlist |simplelist|variablelist |caution|important|note|tip|warning |literallayout|programlisting|programlistingco|screen |screenco|screenshot |formalpara|para|simpara |graphic|mediaobject " nil) ("tablemodel" text ("-//OASIS//DTD DocBook XML CALS Table Model V4.1.2//EN" "calstblx.dtd" . "/usr/share/sgml/docbook/dtd/xml/4.1/") nil) ("yesorno" text "CDATA" nil) ("titles" text "title?" nil) ("paracon" text "#PCDATA" nil) ("tbl.table.name" text "(table|chart)" nil) ("tbl.table-titles.mdl" text "title?," nil) ("tbl.table-main.mdl" text "(tgroup+|graphic+)" nil) ("tbl.table.att" text " tabstyle CDATA #IMPLIED tocentry CDATA #IMPLIED shortentry CDATA #IMPLIED orient (port|land) #IMPLIED pgwide CDATA #IMPLIED " nil) ("tbl.tgroup.mdl" text "colspec*,spanspec*,thead?,tfoot?,tbody" nil) ("tbl.tgroup.att" text " tgroupstyle CDATA #IMPLIED " nil) ("tbl.hdft.mdl" text "colspec*,row+" nil) ("tbl.row.mdl" text "(entry|entrytbl)+" nil) ("tbl.entrytbl.mdl" text "colspec*,spanspec*,thead?,tbody" nil) ("informaltable.module" text "INCLUDE" nil) ("local.informaltable.attrib" text "" nil) ("informaltable.element" text "INCLUDE" nil) ("informaltable.attlist" text "INCLUDE" nil) ("synopsis.module" text "INCLUDE" nil) ("local.synopsis.attrib" text "" nil) ("synopsis.role.attrib" text "role CDATA #IMPLIED" nil) ("synopsis.element" text "INCLUDE" nil) ("synopsis.attlist" text "INCLUDE" nil) ("cmdsynopsis.content.module" text "INCLUDE" nil) ("cmdsynopsis.module" text "INCLUDE" nil) ("local.cmdsynopsis.attrib" text "" nil) ("cmdsynopsis.role.attrib" text "role CDATA #IMPLIED" nil) ("cmdsynopsis.element" text "INCLUDE" nil) ("cmdsynopsis.attlist" text "INCLUDE" nil) ("arg.module" text "INCLUDE" nil) ("local.arg.attrib" text "" nil) ("arg.role.attrib" text "role CDATA #IMPLIED" nil) ("arg.element" text "INCLUDE" nil) ("arg.attlist" text "INCLUDE" nil) ("group.module" text "INCLUDE" nil) ("local.group.attrib" text "" nil) ("group.role.attrib" text "role CDATA #IMPLIED" nil) ("group.element" text "INCLUDE" nil) ("group.attlist" text "INCLUDE" nil) ("sbr.module" text "INCLUDE" nil) ("local.sbr.attrib" text "" nil) ("sbr.role.attrib" text "role CDATA #IMPLIED" nil) ("sbr.element" text "INCLUDE" nil) ("sbr.attlist" text "INCLUDE" nil) ("synopfragmentref.module" text "INCLUDE" nil) ("local.synopfragmentref.attrib" text "" nil) ("synopfragmentref.role.attrib" text "role CDATA #IMPLIED" nil) ("synopfragmentref.element" text "INCLUDE" nil) ("synopfragmentref.attlist" text "INCLUDE" nil) ("synopfragment.module" text "INCLUDE" nil) ("local.synopfragment.attrib" text "" nil) ("synopfragment.role.attrib" text "role CDATA #IMPLIED" nil) ("synopfragment.element" text "INCLUDE" nil) ("synopfragment.attlist" text "INCLUDE" nil) ("funcsynopsis.content.module" text "INCLUDE" nil) ("funcsynopsis.module" text "INCLUDE" nil) ("local.funcsynopsis.attrib" text "" nil) ("funcsynopsis.role.attrib" text "role CDATA #IMPLIED" nil) ("funcsynopsis.element" text "INCLUDE" nil) ("funcsynopsis.attlist" text "INCLUDE" nil) ("funcsynopsisinfo.module" text "INCLUDE" nil) ("local.funcsynopsisinfo.attrib" text "" nil) ("funcsynopsisinfo.role.attrib" text "role CDATA #IMPLIED" nil) ("funcsynopsisinfo.element" text "INCLUDE" nil) ("funcsynopsisinfo.attlist" text "INCLUDE" nil) ("funcprototype.module" text "INCLUDE" nil) ("local.funcprototype.attrib" text "" nil) ("funcprototype.role.attrib" text "role CDATA #IMPLIED" nil) ("funcprototype.element" text "INCLUDE" nil) ("funcprototype.attlist" text "INCLUDE" nil) ("funcdef.module" text "INCLUDE" nil) ("local.funcdef.attrib" text "" nil) ("funcdef.role.attrib" text "role CDATA #IMPLIED" nil) ("funcdef.element" text "INCLUDE" nil) ("funcdef.attlist" text "INCLUDE" nil) ("void.module" text "INCLUDE" nil) ("local.void.attrib" text "" nil) ("void.role.attrib" text "role CDATA #IMPLIED" nil) ("void.element" text "INCLUDE" nil) ("void.attlist" text "INCLUDE" nil) ("varargs.module" text "INCLUDE" nil) ("local.varargs.attrib" text "" nil) ("varargs.role.attrib" text "role CDATA #IMPLIED" nil) ("varargs.element" text "INCLUDE" nil) ("varargs.attlist" text "INCLUDE" nil) ("paramdef.module" text "INCLUDE" nil) ("local.paramdef.attrib" text "" nil) ("paramdef.role.attrib" text "role CDATA #IMPLIED" nil) ("paramdef.element" text "INCLUDE" nil) ("paramdef.attlist" text "INCLUDE" nil) ("funcparams.module" text "INCLUDE" nil) ("local.funcparams.attrib" text "" nil) ("funcparams.role.attrib" text "role CDATA #IMPLIED" nil) ("funcparams.element" text "INCLUDE" nil) ("funcparams.attlist" text "INCLUDE" nil) ("classsynopsis.content.module" text "INCLUDE" nil) ("classsynopsis.module" text "INCLUDE" nil) ("local.classsynopsis.attrib" text "" nil) ("classsynopsis.role.attrib" text "role CDATA #IMPLIED" nil) ("classsynopsis.element" text "INCLUDE" nil) ("classsynopsis.attlist" text "INCLUDE" nil) ("classsynopsisinfo.module" text "INCLUDE" nil) ("local.classsynopsisinfo.attrib" text "" nil) ("classsynopsisinfo.role.attrib" text "role CDATA #IMPLIED" nil) ("classsynopsisinfo.element" text "INCLUDE" nil) ("classsynopsisinfo.attlist" text "INCLUDE" nil) ("ooclass.module" text "INCLUDE" nil) ("local.ooclass.attrib" text "" nil) ("ooclass.role.attrib" text "role CDATA #IMPLIED" nil) ("ooclass.element" text "INCLUDE" nil) ("ooclass.attlist" text "INCLUDE" nil) ("oointerface.module" text "INCLUDE" nil) ("local.oointerface.attrib" text "" nil) ("oointerface.role.attrib" text "role CDATA #IMPLIED" nil) ("oointerface.element" text "INCLUDE" nil) ("oointerface.attlist" text "INCLUDE" nil) ("ooexception.module" text "INCLUDE" nil) ("local.ooexception.attrib" text "" nil) ("ooexception.role.attrib" text "role CDATA #IMPLIED" nil) ("ooexception.element" text "INCLUDE" nil) ("ooexception.attlist" text "INCLUDE" nil) ("modifier.module" text "INCLUDE" nil) ("local.modifier.attrib" text "" nil) ("modifier.role.attrib" text "role CDATA #IMPLIED" nil) ("modifier.element" text "INCLUDE" nil) ("modifier.attlist" text "INCLUDE" nil) ("interfacename.module" text "INCLUDE" nil) ("local.interfacename.attrib" text "" nil) ("interfacename.role.attrib" text "role CDATA #IMPLIED" nil) ("interfacename.element" text "INCLUDE" nil) ("interfacename.attlist" text "INCLUDE" nil) ("exceptionname.module" text "INCLUDE" nil) ("local.exceptionname.attrib" text "" nil) ("exceptionname.role.attrib" text "role CDATA #IMPLIED" nil) ("exceptionname.element" text "INCLUDE" nil) ("exceptionname.attlist" text "INCLUDE" nil) ("fieldsynopsis.module" text "INCLUDE" nil) ("local.fieldsynopsis.attrib" text "" nil) ("fieldsynopsis.role.attrib" text "role CDATA #IMPLIED" nil) ("fieldsynopsis.element" text "INCLUDE" nil) ("fieldsynopsis.attlist" text "INCLUDE" nil) ("initializer.module" text "INCLUDE" nil) ("local.initializer.attrib" text "" nil) ("initializer.role.attrib" text "role CDATA #IMPLIED" nil) ("initializer.element" text "INCLUDE" nil) ("initializer.attlist" text "INCLUDE" nil) ("constructorsynopsis.module" text "INCLUDE" nil) ("local.constructorsynopsis.attrib" text "" nil) ("constructorsynopsis.role.attrib" text "role CDATA #IMPLIED" nil) ("constructorsynopsis.element" text "INCLUDE" nil) ("constructorsynopsis.attlist" text "INCLUDE" nil) ("destructorsynopsis.module" text "INCLUDE" nil) ("local.destructorsynopsis.attrib" text "" nil) ("destructorsynopsis.role.attrib" text "role CDATA #IMPLIED" nil) ("destructorsynopsis.element" text "INCLUDE" nil) ("destructorsynopsis.attlist" text "INCLUDE" nil) ("methodsynopsis.module" text "INCLUDE" nil) ("local.methodsynopsis.attrib" text "" nil) ("methodsynopsis.role.attrib" text "role CDATA #IMPLIED" nil) ("methodsynopsis.element" text "INCLUDE" nil) ("methodsynopsis.attlist" text "INCLUDE" nil) ("methodname.module" text "INCLUDE" nil) ("local.methodname.attrib" text "" nil) ("methodname.role.attrib" text "role CDATA #IMPLIED" nil) ("methodname.element" text "INCLUDE" nil) ("methodname.attlist" text "INCLUDE" nil) ("methodparam.module" text "INCLUDE" nil) ("local.methodparam.attrib" text "" nil) ("methodparam.role.attrib" text "role CDATA #IMPLIED" nil) ("methodparam.element" text "INCLUDE" nil) ("methodparam.attlist" text "INCLUDE" nil) ("docinfo.content.module" text "INCLUDE" nil) ("ackno.module" text "INCLUDE" nil) ("local.ackno.attrib" text "" nil) ("ackno.role.attrib" text "role CDATA #IMPLIED" nil) ("ackno.element" text "INCLUDE" nil) ("ackno.attlist" text "INCLUDE" nil) ("address.content.module" text "INCLUDE" nil) ("address.module" text "INCLUDE" nil) ("local.address.attrib" text "" nil) ("address.role.attrib" text "role CDATA #IMPLIED" nil) ("address.element" text "INCLUDE" nil) ("address.attlist" text "INCLUDE" nil) ("street.module" text "INCLUDE" nil) ("local.street.attrib" text "" nil) ("street.role.attrib" text "role CDATA #IMPLIED" nil) ("street.element" text "INCLUDE" nil) ("street.attlist" text "INCLUDE" nil) ("pob.module" text "INCLUDE" nil) ("local.pob.attrib" text "" nil) ("pob.role.attrib" text "role CDATA #IMPLIED" nil) ("pob.element" text "INCLUDE" nil) ("pob.attlist" text "INCLUDE" nil) ("postcode.module" text "INCLUDE" nil) ("local.postcode.attrib" text "" nil) ("postcode.role.attrib" text "role CDATA #IMPLIED" nil) ("postcode.element" text "INCLUDE" nil) ("postcode.attlist" text "INCLUDE" nil) ("city.module" text "INCLUDE" nil) ("local.city.attrib" text "" nil) ("city.role.attrib" text "role CDATA #IMPLIED" nil) ("city.element" text "INCLUDE" nil) ("city.attlist" text "INCLUDE" nil) ("state.module" text "INCLUDE" nil) ("local.state.attrib" text "" nil) ("state.role.attrib" text "role CDATA #IMPLIED" nil) ("state.element" text "INCLUDE" nil) ("state.attlist" text "INCLUDE" nil) ("country.module" text "INCLUDE" nil) ("local.country.attrib" text "" nil) ("country.role.attrib" text "role CDATA #IMPLIED" nil) ("country.element" text "INCLUDE" nil) ("country.attlist" text "INCLUDE" nil) ("phone.module" text "INCLUDE" nil) ("local.phone.attrib" text "" nil) ("phone.role.attrib" text "role CDATA #IMPLIED" nil) ("phone.element" text "INCLUDE" nil) ("phone.attlist" text "INCLUDE" nil) ("fax.module" text "INCLUDE" nil) ("local.fax.attrib" text "" nil) ("fax.role.attrib" text "role CDATA #IMPLIED" nil) ("fax.element" text "INCLUDE" nil) ("fax.attlist" text "INCLUDE" nil) ("otheraddr.module" text "INCLUDE" nil) ("local.otheraddr.attrib" text "" nil) ("otheraddr.role.attrib" text "role CDATA #IMPLIED" nil) ("otheraddr.element" text "INCLUDE" nil) ("otheraddr.attlist" text "INCLUDE" nil) ("affiliation.content.module" text "INCLUDE" nil) ("affiliation.module" text "INCLUDE" nil) ("local.affiliation.attrib" text "" nil) ("affiliation.role.attrib" text "role CDATA #IMPLIED" nil) ("affiliation.element" text "INCLUDE" nil) ("affiliation.attlist" text "INCLUDE" nil) ("shortaffil.module" text "INCLUDE" nil) ("local.shortaffil.attrib" text "" nil) ("shortaffil.role.attrib" text "role CDATA #IMPLIED" nil) ("shortaffil.element" text "INCLUDE" nil) ("shortaffil.attlist" text "INCLUDE" nil) ("jobtitle.module" text "INCLUDE" nil) ("local.jobtitle.attrib" text "" nil) ("jobtitle.role.attrib" text "role CDATA #IMPLIED" nil) ("jobtitle.element" text "INCLUDE" nil) ("jobtitle.attlist" text "INCLUDE" nil) ("orgdiv.module" text "INCLUDE" nil) ("local.orgdiv.attrib" text "" nil) ("orgdiv.role.attrib" text "role CDATA #IMPLIED" nil) ("orgdiv.element" text "INCLUDE" nil) ("orgdiv.attlist" text "INCLUDE" nil) ("artpagenums.module" text "INCLUDE" nil) ("local.artpagenums.attrib" text "" nil) ("artpagenums.role.attrib" text "role CDATA #IMPLIED" nil) ("artpagenums.element" text "INCLUDE" nil) ("artpagenums.attlist" text "INCLUDE" nil) ("author.module" text "INCLUDE" nil) ("local.author.attrib" text "" nil) ("author.role.attrib" text "role CDATA #IMPLIED" nil) ("author.element" text "INCLUDE" nil) ("author.attlist" text "INCLUDE" nil) ("authorgroup.content.module" text "INCLUDE" nil) ("authorgroup.module" text "INCLUDE" nil) ("local.authorgroup.attrib" text "" nil) ("authorgroup.role.attrib" text "role CDATA #IMPLIED" nil) ("authorgroup.element" text "INCLUDE" nil) ("authorgroup.attlist" text "INCLUDE" nil) ("collab.content.module" text "INCLUDE" nil) ("collab.module" text "INCLUDE" nil) ("local.collab.attrib" text "" nil) ("collab.role.attrib" text "role CDATA #IMPLIED" nil) ("collab.element" text "INCLUDE" nil) ("collab.attlist" text "INCLUDE" nil) ("collabname.module" text "INCLUDE" nil) ("local.collabname.attrib" text "" nil) ("collabname.role.attrib" text "role CDATA #IMPLIED" nil) ("collabname.element" text "INCLUDE" nil) ("collabname.attlist" text "INCLUDE" nil) ("authorinitials.module" text "INCLUDE" nil) ("local.authorinitials.attrib" text "" nil) ("authorinitials.role.attrib" text "role CDATA #IMPLIED" nil) ("authorinitials.element" text "INCLUDE" nil) ("authorinitials.attlist" text "INCLUDE" nil) ("confgroup.content.module" text "INCLUDE" nil) ("confgroup.module" text "INCLUDE" nil) ("local.confgroup.attrib" text "" nil) ("confgroup.role.attrib" text "role CDATA #IMPLIED" nil) ("confgroup.element" text "INCLUDE" nil) ("confgroup.attlist" text "INCLUDE" nil) ("confdates.module" text "INCLUDE" nil) ("local.confdates.attrib" text "" nil) ("confdates.role.attrib" text "role CDATA #IMPLIED" nil) ("confdates.element" text "INCLUDE" nil) ("confdates.attlist" text "INCLUDE" nil) ("conftitle.module" text "INCLUDE" nil) ("local.conftitle.attrib" text "" nil) ("conftitle.role.attrib" text "role CDATA #IMPLIED" nil) ("conftitle.element" text "INCLUDE" nil) ("conftitle.attlist" text "INCLUDE" nil) ("confnum.module" text "INCLUDE" nil) ("local.confnum.attrib" text "" nil) ("confnum.role.attrib" text "role CDATA #IMPLIED" nil) ("confnum.element" text "INCLUDE" nil) ("confnum.attlist" text "INCLUDE" nil) ("confsponsor.module" text "INCLUDE" nil) ("local.confsponsor.attrib" text "" nil) ("confsponsor.role.attrib" text "role CDATA #IMPLIED" nil) ("confsponsor.element" text "INCLUDE" nil) ("confsponsor.attlist" text "INCLUDE" nil) ("contractnum.module" text "INCLUDE" nil) ("local.contractnum.attrib" text "" nil) ("contractnum.role.attrib" text "role CDATA #IMPLIED" nil) ("contractnum.element" text "INCLUDE" nil) ("contractnum.attlist" text "INCLUDE" nil) ("contractsponsor.module" text "INCLUDE" nil) ("local.contractsponsor.attrib" text "" nil) ("contractsponsor.role.attrib" text "role CDATA #IMPLIED" nil) ("contractsponsor.element" text "INCLUDE" nil) ("contractsponsor.attlist" text "INCLUDE" nil) ("copyright.content.module" text "INCLUDE" nil) ("copyright.module" text "INCLUDE" nil) ("local.copyright.attrib" text "" nil) ("copyright.role.attrib" text "role CDATA #IMPLIED" nil) ("copyright.element" text "INCLUDE" nil) ("copyright.attlist" text "INCLUDE" nil) ("year.module" text "INCLUDE" nil) ("local.year.attrib" text "" nil) ("year.role.attrib" text "role CDATA #IMPLIED" nil) ("year.element" text "INCLUDE" nil) ("year.attlist" text "INCLUDE" nil) ("holder.module" text "INCLUDE" nil) ("local.holder.attrib" text "" nil) ("holder.role.attrib" text "role CDATA #IMPLIED" nil) ("holder.element" text "INCLUDE" nil) ("holder.attlist" text "INCLUDE" nil) ("corpauthor.module" text "INCLUDE" nil) ("local.corpauthor.attrib" text "" nil) ("corpauthor.role.attrib" text "role CDATA #IMPLIED" nil) ("corpauthor.element" text "INCLUDE" nil) ("corpauthor.attlist" text "INCLUDE" nil) ("corpname.module" text "INCLUDE" nil) ("local.corpname.attrib" text "" nil) ("corpname.element" text "INCLUDE" nil) ("corpname.role.attrib" text "role CDATA #IMPLIED" nil) ("corpname.attlist" text "INCLUDE" nil) ("date.module" text "INCLUDE" nil) ("local.date.attrib" text "" nil) ("date.role.attrib" text "role CDATA #IMPLIED" nil) ("date.element" text "INCLUDE" nil) ("date.attlist" text "INCLUDE" nil) ("edition.module" text "INCLUDE" nil) ("local.edition.attrib" text "" nil) ("edition.role.attrib" text "role CDATA #IMPLIED" nil) ("edition.element" text "INCLUDE" nil) ("edition.attlist" text "INCLUDE" nil) ("editor.module" text "INCLUDE" nil) ("local.editor.attrib" text "" nil) ("editor.role.attrib" text "role CDATA #IMPLIED" nil) ("editor.element" text "INCLUDE" nil) ("editor.attlist" text "INCLUDE" nil) ("isbn.module" text "INCLUDE" nil) ("local.isbn.attrib" text "" nil) ("isbn.role.attrib" text "role CDATA #IMPLIED" nil) ("isbn.element" text "INCLUDE" nil) ("isbn.attlist" text "INCLUDE" nil) ("issn.module" text "INCLUDE" nil) ("local.issn.attrib" text "" nil) ("issn.role.attrib" text "role CDATA #IMPLIED" nil) ("issn.element" text "INCLUDE" nil) ("issn.attlist" text "INCLUDE" nil) ("invpartnumber.module" text "INCLUDE" nil) ("local.invpartnumber.attrib" text "" nil) ("invpartnumber.role.attrib" text "role CDATA #IMPLIED" nil) ("invpartnumber.element" text "INCLUDE" nil) ("invpartnumber.attlist" text "INCLUDE" nil) ("issuenum.module" text "INCLUDE" nil) ("local.issuenum.attrib" text "" nil) ("issuenum.role.attrib" text "role CDATA #IMPLIED" nil) ("issuenum.element" text "INCLUDE" nil) ("issuenum.attlist" text "INCLUDE" nil) ("legalnotice.module" text "INCLUDE" nil) ("local.legalnotice.attrib" text "" nil) ("legalnotice.role.attrib" text "role CDATA #IMPLIED" nil) ("legalnotice.element" text "INCLUDE" nil) ("legalnotice.attlist" text "INCLUDE" nil) ("modespec.module" text "INCLUDE" nil) ("local.modespec.attrib" text "" nil) ("modespec.role.attrib" text "role CDATA #IMPLIED" nil) ("modespec.element" text "INCLUDE" nil) ("modespec.attlist" text "INCLUDE" nil) ("orgname.module" text "INCLUDE" nil) ("local.orgname.attrib" text "" nil) ("orgname.role.attrib" text "role CDATA #IMPLIED" nil) ("orgname.element" text "INCLUDE" nil) ("orgname.attlist" text "INCLUDE" nil) ("othercredit.module" text "INCLUDE" nil) ("local.othercredit.attrib" text "" nil) ("othercredit.role.attrib" text "role CDATA #IMPLIED" nil) ("othercredit.element" text "INCLUDE" nil) ("othercredit.attlist" text "INCLUDE" nil) ("pagenums.module" text "INCLUDE" nil) ("local.pagenums.attrib" text "" nil) ("pagenums.role.attrib" text "role CDATA #IMPLIED" nil) ("pagenums.element" text "INCLUDE" nil) ("pagenums.attlist" text "INCLUDE" nil) ("person.ident.module" text "INCLUDE" nil) ("contrib.module" text "INCLUDE" nil) ("local.contrib.attrib" text "" nil) ("contrib.role.attrib" text "role CDATA #IMPLIED" nil) ("contrib.element" text "INCLUDE" nil) ("contrib.attlist" text "INCLUDE" nil) ("firstname.module" text "INCLUDE" nil) ("local.firstname.attrib" text "" nil) ("firstname.role.attrib" text "role CDATA #IMPLIED" nil) ("firstname.element" text "INCLUDE" nil) ("firstname.attlist" text "INCLUDE" nil) ("honorific.module" text "INCLUDE" nil) ("local.honorific.attrib" text "" nil) ("honorific.role.attrib" text "role CDATA #IMPLIED" nil) ("honorific.element" text "INCLUDE" nil) ("honorific.attlist" text "INCLUDE" nil) ("lineage.module" text "INCLUDE" nil) ("local.lineage.attrib" text "" nil) ("lineage.role.attrib" text "role CDATA #IMPLIED" nil) ("lineage.element" text "INCLUDE" nil) ("lineage.attlist" text "INCLUDE" nil) ("othername.module" text "INCLUDE" nil) ("local.othername.attrib" text "" nil) ("othername.role.attrib" text "role CDATA #IMPLIED" nil) ("othername.element" text "INCLUDE" nil) ("othername.attlist" text "INCLUDE" nil) ("surname.module" text "INCLUDE" nil) ("local.surname.attrib" text "" nil) ("surname.role.attrib" text "role CDATA #IMPLIED" nil) ("surname.element" text "INCLUDE" nil) ("surname.attlist" text "INCLUDE" nil) ("printhistory.module" text "INCLUDE" nil) ("local.printhistory.attrib" text "" nil) ("printhistory.role.attrib" text "role CDATA #IMPLIED" nil) ("printhistory.element" text "INCLUDE" nil) ("printhistory.attlist" text "INCLUDE" nil) ("productname.module" text "INCLUDE" nil) ("local.productname.attrib" text "" nil) ("productname.role.attrib" text "role CDATA #IMPLIED" nil) ("productname.element" text "INCLUDE" nil) ("productname.attlist" text "INCLUDE" nil) ("productnumber.module" text "INCLUDE" nil) ("local.productnumber.attrib" text "" nil) ("productnumber.role.attrib" text "role CDATA #IMPLIED" nil) ("productnumber.element" text "INCLUDE" nil) ("productnumber.attlist" text "INCLUDE" nil) ("pubdate.module" text "INCLUDE" nil) ("local.pubdate.attrib" text "" nil) ("pubdate.role.attrib" text "role CDATA #IMPLIED" nil) ("pubdate.element" text "INCLUDE" nil) ("pubdate.attlist" text "INCLUDE" nil) ("publisher.content.module" text "INCLUDE" nil) ("publisher.module" text "INCLUDE" nil) ("local.publisher.attrib" text "" nil) ("publisher.role.attrib" text "role CDATA #IMPLIED" nil) ("publisher.element" text "INCLUDE" nil) ("publisher.attlist" text "INCLUDE" nil) ("publishername.module" text "INCLUDE" nil) ("local.publishername.attrib" text "" nil) ("publishername.role.attrib" text "role CDATA #IMPLIED" nil) ("publishername.element" text "INCLUDE" nil) ("publishername.attlist" text "INCLUDE" nil) ("pubsnumber.module" text "INCLUDE" nil) ("local.pubsnumber.attrib" text "" nil) ("pubsnumber.role.attrib" text "role CDATA #IMPLIED" nil) ("pubsnumber.element" text "INCLUDE" nil) ("pubsnumber.attlist" text "INCLUDE" nil) ("releaseinfo.module" text "INCLUDE" nil) ("local.releaseinfo.attrib" text "" nil) ("releaseinfo.role.attrib" text "role CDATA #IMPLIED" nil) ("releaseinfo.element" text "INCLUDE" nil) ("releaseinfo.attlist" text "INCLUDE" nil) ("revhistory.content.module" text "INCLUDE" nil) ("revhistory.module" text "INCLUDE" nil) ("local.revhistory.attrib" text "" nil) ("revhistory.role.attrib" text "role CDATA #IMPLIED" nil) ("revhistory.element" text "INCLUDE" nil) ("revhistory.attlist" text "INCLUDE" nil) ("revision.module" text "INCLUDE" nil) ("local.revision.attrib" text "" nil) ("revision.role.attrib" text "role CDATA #IMPLIED" nil) ("revision.element" text "INCLUDE" nil) ("revision.attlist" text "INCLUDE" nil) ("revnumber.module" text "INCLUDE" nil) ("local.revnumber.attrib" text "" nil) ("revnumber.role.attrib" text "role CDATA #IMPLIED" nil) ("revnumber.element" text "INCLUDE" nil) ("revnumber.attlist" text "INCLUDE" nil) ("revremark.module" text "INCLUDE" nil) ("local.revremark.attrib" text "" nil) ("revremark.role.attrib" text "role CDATA #IMPLIED" nil) ("revremark.element" text "INCLUDE" nil) ("revremark.attlist" text "INCLUDE" nil) ("revdescription.module" text "INCLUDE" nil) ("local.revdescription.attrib" text "" nil) ("revdescription.role.attrib" text "role CDATA #IMPLIED" nil) ("revdescription.element" text "INCLUDE" nil) ("revdescription.attlist" text "INCLUDE" nil) ("seriesvolnums.module" text "INCLUDE" nil) ("local.seriesvolnums.attrib" text "" nil) ("seriesvolnums.role.attrib" text "role CDATA #IMPLIED" nil) ("seriesvolnums.element" text "INCLUDE" nil) ("seriesvolnums.attlist" text "INCLUDE" nil) ("volumenum.module" text "INCLUDE" nil) ("local.volumenum.attrib" text "" nil) ("volumenum.role.attrib" text "role CDATA #IMPLIED" nil) ("volumenum.element" text "INCLUDE" nil) ("volumenum.attlist" text "INCLUDE" nil) ("accel.module" text "INCLUDE" nil) ("local.accel.attrib" text "" nil) ("accel.role.attrib" text "role CDATA #IMPLIED" nil) ("accel.element" text "INCLUDE" nil) ("accel.attlist" text "INCLUDE" nil) ("action.module" text "INCLUDE" nil) ("local.action.attrib" text "" nil) ("action.role.attrib" text "role CDATA #IMPLIED" nil) ("action.element" text "INCLUDE" nil) ("action.attlist" text "INCLUDE" nil) ("application.module" text "INCLUDE" nil) ("local.application.attrib" text "" nil) ("application.role.attrib" text "role CDATA #IMPLIED" nil) ("application.element" text "INCLUDE" nil) ("application.attlist" text "INCLUDE" nil) ("classname.module" text "INCLUDE" nil) ("local.classname.attrib" text "" nil) ("classname.role.attrib" text "role CDATA #IMPLIED" nil) ("classname.element" text "INCLUDE" nil) ("classname.attlist" text "INCLUDE" nil) ("co.module" text "INCLUDE" nil) ("local.co.attrib" text "" nil) ("co.role.attrib" text "role CDATA #IMPLIED" nil) ("co.element" text "INCLUDE" nil) ("co.attlist" text "INCLUDE" nil) ("command.module" text "INCLUDE" nil) ("local.command.attrib" text "" nil) ("command.role.attrib" text "role CDATA #IMPLIED" nil) ("command.element" text "INCLUDE" nil) ("command.attlist" text "INCLUDE" nil) ("computeroutput.module" text "INCLUDE" nil) ("local.computeroutput.attrib" text "" nil) ("computeroutput.role.attrib" text "role CDATA #IMPLIED" nil) ("computeroutput.element" text "INCLUDE" nil) ("computeroutput.attlist" text "INCLUDE" nil) ("database.module" text "INCLUDE" nil) ("local.database.attrib" text "" nil) ("database.role.attrib" text "role CDATA #IMPLIED" nil) ("database.element" text "INCLUDE" nil) ("database.attlist" text "INCLUDE" nil) ("email.module" text "INCLUDE" nil) ("local.email.attrib" text "" nil) ("email.role.attrib" text "role CDATA #IMPLIED" nil) ("email.element" text "INCLUDE" nil) ("email.attlist" text "INCLUDE" nil) ("envar.module" text "INCLUDE" nil) ("local.envar.attrib" text "" nil) ("envar.role.attrib" text "role CDATA #IMPLIED" nil) ("envar.element" text "INCLUDE" nil) ("envar.attlist" text "INCLUDE" nil) ("errorcode.module" text "INCLUDE" nil) ("local.errorcode.attrib" text "" nil) ("errorcode.role.attrib" text "role CDATA #IMPLIED" nil) ("errorcode.element" text "INCLUDE" nil) ("errorcode.attlist" text "INCLUDE" nil) ("errorname.module" text "INCLUDE" nil) ("local.errorname.attrib" text "" nil) ("errorname.role.attrib" text "role CDATA #IMPLIED" nil) ("errorname.element" text "INCLUDE" nil) ("errorname.attlist" text "INCLUDE" nil) ("errortype.module" text "INCLUDE" nil) ("local.errortype.attrib" text "" nil) ("errortype.role.attrib" text "role CDATA #IMPLIED" nil) ("errortype.element" text "INCLUDE" nil) ("errortype.attlist" text "INCLUDE" nil) ("filename.module" text "INCLUDE" nil) ("local.filename.attrib" text "" nil) ("filename.role.attrib" text "role CDATA #IMPLIED" nil) ("filename.element" text "INCLUDE" nil) ("filename.attlist" text "INCLUDE" nil) ("function.module" text "INCLUDE" nil) ("local.function.attrib" text "" nil) ("function.role.attrib" text "role CDATA #IMPLIED" nil) ("function.element" text "INCLUDE" nil) ("function.attlist" text "INCLUDE" nil) ("guibutton.module" text "INCLUDE" nil) ("local.guibutton.attrib" text "" nil) ("guibutton.role.attrib" text "role CDATA #IMPLIED" nil) ("guibutton.element" text "INCLUDE" nil) ("guibutton.attlist" text "INCLUDE" nil) ("guiicon.module" text "INCLUDE" nil) ("local.guiicon.attrib" text "" nil) ("guiicon.role.attrib" text "role CDATA #IMPLIED" nil) ("guiicon.element" text "INCLUDE" nil) ("guiicon.attlist" text "INCLUDE" nil) ("guilabel.module" text "INCLUDE" nil) ("local.guilabel.attrib" text "" nil) ("guilabel.role.attrib" text "role CDATA #IMPLIED" nil) ("guilabel.element" text "INCLUDE" nil) ("guilabel.attlist" text "INCLUDE" nil) ("guimenu.module" text "INCLUDE" nil) ("local.guimenu.attrib" text "" nil) ("guimenu.role.attrib" text "role CDATA #IMPLIED" nil) ("guimenu.element" text "INCLUDE" nil) ("guimenu.attlist" text "INCLUDE" nil) ("guimenuitem.module" text "INCLUDE" nil) ("local.guimenuitem.attrib" text "" nil) ("guimenuitem.role.attrib" text "role CDATA #IMPLIED" nil) ("guimenuitem.element" text "INCLUDE" nil) ("guimenuitem.attlist" text "INCLUDE" nil) ("guisubmenu.module" text "INCLUDE" nil) ("local.guisubmenu.attrib" text "" nil) ("guisubmenu.role.attrib" text "role CDATA #IMPLIED" nil) ("guisubmenu.element" text "INCLUDE" nil) ("guisubmenu.attlist" text "INCLUDE" nil) ("hardware.module" text "INCLUDE" nil) ("local.hardware.attrib" text "" nil) ("hardware.role.attrib" text "role CDATA #IMPLIED" nil) ("hardware.element" text "INCLUDE" nil) ("hardware.attlist" text "INCLUDE" nil) ("interface.module" text "INCLUDE" nil) ("local.interface.attrib" text "" nil) ("interface.role.attrib" text "role CDATA #IMPLIED" nil) ("interface.element" text "INCLUDE" nil) ("interface.attlist" text "INCLUDE" nil) ("keycap.module" text "INCLUDE" nil) ("local.keycap.attrib" text "" nil) ("keycap.role.attrib" text "role CDATA #IMPLIED" nil) ("keycap.element" text "INCLUDE" nil) ("keycap.attlist" text "INCLUDE" nil) ("keycode.module" text "INCLUDE" nil) ("local.keycode.attrib" text "" nil) ("keycode.role.attrib" text "role CDATA #IMPLIED" nil) ("keycode.element" text "INCLUDE" nil) ("keycode.attlist" text "INCLUDE" nil) ("keycombo.module" text "INCLUDE" nil) ("local.keycombo.attrib" text "" nil) ("keycombo.role.attrib" text "role CDATA #IMPLIED" nil) ("keycombo.element" text "INCLUDE" nil) ("keycombo.attlist" text "INCLUDE" nil) ("keysym.module" text "INCLUDE" nil) ("local.keysym.attrib" text "" nil) ("keysysm.role.attrib" text "role CDATA #IMPLIED" nil) ("keysym.element" text "INCLUDE" nil) ("keysym.attlist" text "INCLUDE" nil) ("lineannotation.module" text "INCLUDE" nil) ("local.lineannotation.attrib" text "" nil) ("lineannotation.role.attrib" text "role CDATA #IMPLIED" nil) ("lineannotation.element" text "INCLUDE" nil) ("lineannotation.attlist" text "INCLUDE" nil) ("literal.module" text "INCLUDE" nil) ("local.literal.attrib" text "" nil) ("literal.role.attrib" text "role CDATA #IMPLIED" nil) ("literal.element" text "INCLUDE" nil) ("literal.attlist" text "INCLUDE" nil) ("constant.module" text "INCLUDE" nil) ("local.constant.attrib" text "" nil) ("constant.role.attrib" text "role CDATA #IMPLIED" nil) ("constant.element" text "INCLUDE" nil) ("constant.attlist" text "INCLUDE" nil) ("varname.module" text "INCLUDE" nil) ("local.varname.attrib" text "" nil) ("varname.role.attrib" text "role CDATA #IMPLIED" nil) ("varname.element" text "INCLUDE" nil) ("varname.attlist" text "INCLUDE" nil) ("markup.module" text "INCLUDE" nil) ("local.markup.attrib" text "" nil) ("markup.role.attrib" text "role CDATA #IMPLIED" nil) ("markup.element" text "INCLUDE" nil) ("markup.attlist" text "INCLUDE" nil) ("medialabel.module" text "INCLUDE" nil) ("local.medialabel.attrib" text "" nil) ("medialabel.role.attrib" text "role CDATA #IMPLIED" nil) ("medialabel.element" text "INCLUDE" nil) ("medialabel.attlist" text "INCLUDE" nil) ("menuchoice.content.module" text "INCLUDE" nil) ("menuchoice.module" text "INCLUDE" nil) ("local.menuchoice.attrib" text "" nil) ("menuchoice.role.attrib" text "role CDATA #IMPLIED" nil) ("menuchoice.element" text "INCLUDE" nil) ("menuchoice.attlist" text "INCLUDE" nil) ("shortcut.module" text "INCLUDE" nil) ("local.shortcut.attrib" text "" nil) ("shortcut.role.attrib" text "role CDATA #IMPLIED" nil) ("shortcut.element" text "INCLUDE" nil) ("shortcut.attlist" text "INCLUDE" nil) ("mousebutton.module" text "INCLUDE" nil) ("local.mousebutton.attrib" text "" nil) ("mousebutton.role.attrib" text "role CDATA #IMPLIED" nil) ("mousebutton.element" text "INCLUDE" nil) ("mousebutton.attlist" text "INCLUDE" nil) ("msgtext.module" text "INCLUDE" nil) ("local.msgtext.attrib" text "" nil) ("msgtext.role.attrib" text "role CDATA #IMPLIED" nil) ("msgtext.element" text "INCLUDE" nil) ("msgtext.attlist" text "INCLUDE" nil) ("option.module" text "INCLUDE" nil) ("local.option.attrib" text "" nil) ("option.role.attrib" text "role CDATA #IMPLIED" nil) ("option.element" text "INCLUDE" nil) ("option.attlist" text "INCLUDE" nil) ("optional.module" text "INCLUDE" nil) ("local.optional.attrib" text "" nil) ("optional.role.attrib" text "role CDATA #IMPLIED" nil) ("optional.element" text "INCLUDE" nil) ("optional.attlist" text "INCLUDE" nil) ("parameter.module" text "INCLUDE" nil) ("local.parameter.attrib" text "" nil) ("parameter.role.attrib" text "role CDATA #IMPLIED" nil) ("parameter.element" text "INCLUDE" nil) ("parameter.attlist" text "INCLUDE" nil) ("prompt.module" text "INCLUDE" nil) ("local.prompt.attrib" text "" nil) ("prompt.role.attrib" text "role CDATA #IMPLIED" nil) ("prompt.element" text "INCLUDE" nil) ("prompt.attlist" text "INCLUDE" nil) ("property.module" text "INCLUDE" nil) ("local.property.attrib" text "" nil) ("property.role.attrib" text "role CDATA #IMPLIED" nil) ("property.element" text "INCLUDE" nil) ("property.attlist" text "INCLUDE" nil) ("replaceable.module" text "INCLUDE" nil) ("local.replaceable.attrib" text "" nil) ("replaceable.role.attrib" text "role CDATA #IMPLIED" nil) ("replaceable.element" text "INCLUDE" nil) ("replaceable.attlist" text "INCLUDE" nil) ("returnvalue.module" text "INCLUDE" nil) ("local.returnvalue.attrib" text "" nil) ("returnvalue.role.attrib" text "role CDATA #IMPLIED" nil) ("returnvalue.element" text "INCLUDE" nil) ("returnvalue.attlist" text "INCLUDE" nil) ("sgmltag.module" text "INCLUDE" nil) ("local.sgmltag.attrib" text "" nil) ("sgmltag.role.attrib" text "role CDATA #IMPLIED" nil) ("sgmltag.element" text "INCLUDE" nil) ("sgmltag.attlist" text "INCLUDE" nil) ("structfield.module" text "INCLUDE" nil) ("local.structfield.attrib" text "" nil) ("structfield.role.attrib" text "role CDATA #IMPLIED" nil) ("structfield.element" text "INCLUDE" nil) ("structfield.attlist" text "INCLUDE" nil) ("structname.module" text "INCLUDE" nil) ("local.structname.attrib" text "" nil) ("structname.role.attrib" text "role CDATA #IMPLIED" nil) ("structname.element" text "INCLUDE" nil) ("structname.attlist" text "INCLUDE" nil) ("symbol.module" text "INCLUDE" nil) ("local.symbol.attrib" text "" nil) ("symbol.role.attrib" text "role CDATA #IMPLIED" nil) ("symbol.element" text "INCLUDE" nil) ("symbol.attlist" text "INCLUDE" nil) ("systemitem.module" text "INCLUDE" nil) ("local.systemitem.attrib" text "" nil) ("systemitem.role.attrib" text "role CDATA #IMPLIED" nil) ("systemitem.element" text "INCLUDE" nil) ("systemitem.attlist" text "INCLUDE" nil) ("token.module" text "INCLUDE" nil) ("local.token.attrib" text "" nil) ("token.role.attrib" text "role CDATA #IMPLIED" nil) ("token.element" text "INCLUDE" nil) ("token.attlist" text "INCLUDE" nil) ("type.module" text "INCLUDE" nil) ("local.type.attrib" text "" nil) ("type.role.attrib" text "role CDATA #IMPLIED" nil) ("type.element" text "INCLUDE" nil) ("type.attlist" text "INCLUDE" nil) ("userinput.module" text "INCLUDE" nil) ("local.userinput.attrib" text "" nil) ("userinput.role.attrib" text "role CDATA #IMPLIED" nil) ("userinput.element" text "INCLUDE" nil) ("userinput.attlist" text "INCLUDE" nil) ("abbrev.module" text "INCLUDE" nil) ("local.abbrev.attrib" text "" nil) ("abbrev.role.attrib" text "role CDATA #IMPLIED" nil) ("abbrev.element" text "INCLUDE" nil) ("abbrev.attlist" text "INCLUDE" nil) ("acronym.module" text "INCLUDE" nil) ("local.acronym.attrib" text "" nil) ("acronym.role.attrib" text "role CDATA #IMPLIED" nil) ("acronym.element" text "INCLUDE" nil) ("acronym.attlist" text "INCLUDE" nil) ("citation.module" text "INCLUDE" nil) ("local.citation.attrib" text "" nil) ("citation.role.attrib" text "role CDATA #IMPLIED" nil) ("citation.element" text "INCLUDE" nil) ("citation.attlist" text "INCLUDE" nil) ("citerefentry.module" text "INCLUDE" nil) ("local.citerefentry.attrib" text "" nil) ("citerefentry.role.attrib" text "role CDATA #IMPLIED" nil) ("citerefentry.element" text "INCLUDE" nil) ("citerefentry.attlist" text "INCLUDE" nil) ("refentrytitle.module" text "INCLUDE" nil) ("local.refentrytitle.attrib" text "" nil) ("refentrytitle.role.attrib" text "role CDATA #IMPLIED" nil) ("refentrytitle.element" text "INCLUDE" nil) ("refentrytitle.attlist" text "INCLUDE" nil) ("manvolnum.module" text "INCLUDE" nil) ("local.manvolnum.attrib" text "" nil) ("namvolnum.role.attrib" text "role CDATA #IMPLIED" nil) ("manvolnum.element" text "INCLUDE" nil) ("manvolnum.attlist" text "INCLUDE" nil) ("citetitle.module" text "INCLUDE" nil) ("local.citetitle.attrib" text "" nil) ("citetitle.role.attrib" text "role CDATA #IMPLIED" nil) ("citetitle.element" text "INCLUDE" nil) ("citetitle.attlist" text "INCLUDE" nil) ("emphasis.module" text "INCLUDE" nil) ("local.emphasis.attrib" text "" nil) ("emphasis.role.attrib" text "role CDATA #IMPLIED" nil) ("emphasis.element" text "INCLUDE" nil) ("emphasis.attlist" text "INCLUDE" nil) ("firstterm.module" text "INCLUDE" nil) ("local.firstterm.attrib" text "" nil) ("firstterm.role.attrib" text "role CDATA #IMPLIED" nil) ("firstterm.element" text "INCLUDE" nil) ("firstterm.attlist" text "INCLUDE" nil) ("foreignphrase.module" text "INCLUDE" nil) ("local.foreignphrase.attrib" text "" nil) ("foreignphrase.role.attrib" text "role CDATA #IMPLIED" nil) ("foreignphrase.element" text "INCLUDE" nil) ("foreignphrase.attlist" text "INCLUDE" nil) ("glossterm.module" text "INCLUDE" nil) ("local.glossterm.attrib" text "" nil) ("glossterm.role.attrib" text "role CDATA #IMPLIED" nil) ("glossterm.element" text "INCLUDE" nil) ("glossterm.attlist" text "INCLUDE" nil) ("phrase.module" text "INCLUDE" nil) ("local.phrase.attrib" text "" nil) ("phrase.role.attrib" text "role CDATA #IMPLIED" nil) ("phrase.element" text "INCLUDE" nil) ("phrase.attlist" text "INCLUDE" nil) ("quote.module" text "INCLUDE" nil) ("local.quote.attrib" text "" nil) ("quote.role.attrib" text "role CDATA #IMPLIED" nil) ("quote.element" text "INCLUDE" nil) ("quote.attlist" text "INCLUDE" nil) ("ssscript.module" text "INCLUDE" nil) ("local.ssscript.attrib" text "" nil) ("ssscript.role.attrib" text "role CDATA #IMPLIED" nil) ("subscript.element" text "INCLUDE" nil) ("subscript.attlist" text "INCLUDE" nil) ("superscript.element" text "INCLUDE" nil) ("superscript.attlist" text "INCLUDE" nil) ("trademark.module" text "INCLUDE" nil) ("local.trademark.attrib" text "" nil) ("trademark.role.attrib" text "role CDATA #IMPLIED" nil) ("trademark.element" text "INCLUDE" nil) ("trademark.attlist" text "INCLUDE" nil) ("wordasword.module" text "INCLUDE" nil) ("local.wordasword.attrib" text "" nil) ("wordasword.role.attrib" text "role CDATA #IMPLIED" nil) ("wordasword.element" text "INCLUDE" nil) ("wordasword.attlist" text "INCLUDE" nil) ("link.module" text "INCLUDE" nil) ("local.link.attrib" text "" nil) ("link.role.attrib" text "role CDATA #IMPLIED" nil) ("link.element" text "INCLUDE" nil) ("link.attlist" text "INCLUDE" nil) ("olink.module" text "INCLUDE" nil) ("local.olink.attrib" text "" nil) ("olink.role.attrib" text "role CDATA #IMPLIED" nil) ("olink.element" text "INCLUDE" nil) ("olink.attlist" text "INCLUDE" nil) ("ulink.module" text "INCLUDE" nil) ("local.ulink.attrib" text "" nil) ("ulink.role.attrib" text "role CDATA #IMPLIED" nil) ("ulink.element" text "INCLUDE" nil) ("ulink.attlist" text "INCLUDE" nil) ("footnoteref.module" text "INCLUDE" nil) ("local.footnoteref.attrib" text "" nil) ("footnoteref.role.attrib" text "role CDATA #IMPLIED" nil) ("footnoteref.element" text "INCLUDE" nil) ("footnoteref.attlist" text "INCLUDE" nil) ("xref.module" text "INCLUDE" nil) ("local.xref.attrib" text "" nil) ("xref.role.attrib" text "role CDATA #IMPLIED" nil) ("xref.element" text "INCLUDE" nil) ("xref.attlist" text "INCLUDE" nil) ("anchor.module" text "INCLUDE" nil) ("local.anchor.attrib" text "" nil) ("anchor.role.attrib" text "role CDATA #IMPLIED" nil) ("anchor.element" text "INCLUDE" nil) ("anchor.attlist" text "INCLUDE" nil) ("beginpage.module" text "INCLUDE" nil) ("local.beginpage.attrib" text "" nil) ("beginpage.role.attrib" text "role CDATA #IMPLIED" nil) ("beginpage.element" text "INCLUDE" nil) ("beginpage.attlist" text "INCLUDE" nil) ("indexterm.content.module" text "INCLUDE" nil) ("indexterm.module" text "INCLUDE" nil) ("local.indexterm.attrib" text "" nil) ("indexterm.role.attrib" text "role CDATA #IMPLIED" nil) ("indexterm.element" text "INCLUDE" nil) ("indexterm.attlist" text "INCLUDE" nil) ("primsecter.module" text "INCLUDE" nil) ("local.primsecter.attrib" text "" nil) ("primsecter.role.attrib" text "role CDATA #IMPLIED" nil) ("primary.element" text "INCLUDE" nil) ("primary.attlist" text "INCLUDE" nil) ("secondary.element" text "INCLUDE" nil) ("secondary.attlist" text "INCLUDE" nil) ("tertiary.element" text "INCLUDE" nil) ("tertiary.attlist" text "INCLUDE" nil) ("seeseealso.module" text "INCLUDE" nil) ("local.seeseealso.attrib" text "" nil) ("seeseealso.role.attrib" text "role CDATA #IMPLIED" nil) ("see.element" text "INCLUDE" nil) ("see.attlist" text "INCLUDE" nil) ("seealso.element" text "INCLUDE" nil) ("seealso.attlist" text "INCLUDE" nil) ("intermod.redecl.module" text "IGNORE" nil) ("dbhier.module" text "INCLUDE" nil) ("dbhier" text ("-//OASIS//ELEMENTS DocBook XML Document Hierarchy V4.1.2//EN" "dbhierx.mod" . "/usr/share/sgml/docbook/dtd/xml/4.1.2/") nil) ("dbhier.redecl.module" text "IGNORE" nil) ("dbhier.redecl2.module" text "IGNORE" nil) ("local.appendix.class" text "" nil) ("appendix.class" text "appendix " nil) ("local.article.class" text "" nil) ("article.class" text "article " nil) ("local.book.class" text "" nil) ("book.class" text "book " nil) ("local.chapter.class" text "" nil) ("chapter.class" text "chapter " nil) ("local.index.class" text "" nil) ("index.class" text "index|setindex " nil) ("local.refentry.class" text "" nil) ("refentry.class" text "refentry " nil) ("local.nav.class" text "" nil) ("nav.class" text "toc|lot|index|glossary|bibliography " nil) ("forms.hook" text "" nil) ("local.divcomponent.mix" text "" nil) ("divcomponent.mix" text "calloutlist|glosslist|itemizedlist|orderedlist|segmentedlist |simplelist|variablelist |caution|important|note|tip|warning |literallayout|programlisting|programlistingco|screen |screenco|screenshot |synopsis|cmdsynopsis|funcsynopsis |classsynopsis|fieldsynopsis |constructorsynopsis |destructorsynopsis |methodsynopsis |formalpara|para|simpara |address|blockquote |graphic|graphicco|mediaobject|mediaobjectco |informalequation |informalexample |informalfigure |informaltable |equation|example|figure|table |msgset|procedure|sidebar|qandaset |anchor|bridgehead|remark|highlights |abstract|authorblurb|epigraph |indexterm |beginpage " nil) ("local.refcomponent.mix" text "" nil) ("refcomponent.mix" text "calloutlist|glosslist|itemizedlist|orderedlist|segmentedlist |simplelist|variablelist |caution|important|note|tip|warning |literallayout|programlisting|programlistingco|screen |screenco|screenshot |synopsis|cmdsynopsis|funcsynopsis |classsynopsis|fieldsynopsis |constructorsynopsis |destructorsynopsis |methodsynopsis |formalpara|para|simpara |address|blockquote |graphic|graphicco|mediaobject|mediaobjectco |informalequation |informalexample |informalfigure |informaltable |equation|example|figure|table |msgset|procedure|sidebar|qandaset |anchor|bridgehead|remark|highlights |abstract|authorblurb|epigraph |indexterm |beginpage " nil) ("local.indexdivcomponent.mix" text "" nil) ("indexdivcomponent.mix" text "itemizedlist|orderedlist|variablelist|simplelist |literallayout|programlisting|programlistingco|screen |screenco|screenshot |synopsis|cmdsynopsis|funcsynopsis |classsynopsis|fieldsynopsis |constructorsynopsis |destructorsynopsis |methodsynopsis |formalpara|para|simpara |address|blockquote |graphic|graphicco|mediaobject|mediaobjectco |informalequation |informalexample |informalfigure |informaltable |anchor|remark |link|olink|ulink |beginpage " nil) ("local.refname.char.mix" text "" nil) ("refname.char.mix" text "#PCDATA |action|application |classname|methodname|interfacename|exceptionname |ooclass|oointerface|ooexception |command|computeroutput |database|email|envar|errorcode|errorname|errortype|filename |function|guibutton|guiicon|guilabel|guimenu|guimenuitem |guisubmenu|hardware|interface|keycap |keycode|keycombo|keysym|literal|constant|markup|medialabel |menuchoice|mousebutton|option|optional|parameter |prompt|property|replaceable|returnvalue|sgmltag|structfield |structname|symbol|systemitem|token|type|userinput|varname " nil) ("local.partcontent.mix" text "" nil) ("partcontent.mix" text "appendix |chapter |toc|lot|index|glossary|bibliography |article |preface|refentry |reference " nil) ("local.refinline.char.mix" text "" nil) ("refinline.char.mix" text "#PCDATA |footnoteref|xref |abbrev|acronym|citation|citerefentry|citetitle|emphasis |firstterm|foreignphrase|glossterm|footnote|phrase |quote|trademark|wordasword |link|olink|ulink |action|application |classname|methodname|interfacename|exceptionname |ooclass|oointerface|ooexception |command|computeroutput |database|email|envar|errorcode|errorname|errortype|filename |function|guibutton|guiicon|guilabel|guimenu|guimenuitem |guisubmenu|hardware|interface|keycap |keycode|keycombo|keysym|literal|constant|markup|medialabel |menuchoice|mousebutton|option|optional|parameter |prompt|property|replaceable|returnvalue|sgmltag|structfield |structname|symbol|systemitem|token|type|userinput|varname |anchor |author|authorinitials|corpauthor|modespec|othercredit |productname|productnumber|revhistory |remark|subscript|superscript |indexterm |beginpage " nil) ("local.refclass.char.mix" text "" nil) ("refclass.char.mix" text "#PCDATA |application " nil) ("div.title.content" text "title, subtitle?, titleabbrev?" nil) ("bookcomponent.title.content" text "title, subtitle?, titleabbrev?" nil) ("sect.title.content" text "title, subtitle?, titleabbrev?" nil) ("refsect.title.content" text "title, subtitle?, titleabbrev?" nil) ("bookcomponent.content" text "((calloutlist|glosslist|itemizedlist|orderedlist|segmentedlist |simplelist|variablelist |caution|important|note|tip|warning |literallayout|programlisting|programlistingco|screen |screenco|screenshot |synopsis|cmdsynopsis|funcsynopsis |classsynopsis|fieldsynopsis |constructorsynopsis |destructorsynopsis |methodsynopsis |formalpara|para|simpara |address|blockquote |graphic|graphicco|mediaobject|mediaobjectco |informalequation |informalexample |informalfigure |informaltable |equation|example|figure|table |msgset|procedure|sidebar|qandaset |anchor|bridgehead|remark|highlights |abstract|authorblurb|epigraph |indexterm |beginpage )+, (sect1*|(refentry )*|simplesect*|section*)) | (sect1+|(refentry )+|simplesect+|section+)" nil) ("set.content.module" text "INCLUDE" nil) ("set.module" text "INCLUDE" nil) ("local.set.attrib" text "" nil) ("set.role.attrib" text "role CDATA #IMPLIED" nil) ("set.element" text "INCLUDE" nil) ("set.attlist" text "INCLUDE" nil) ("setinfo.module" text "INCLUDE" nil) ("local.setinfo.attrib" text "" nil) ("setinfo.role.attrib" text "role CDATA #IMPLIED" nil) ("setinfo.element" text "INCLUDE" nil) ("setinfo.attlist" text "INCLUDE" nil) ("book.content.module" text "INCLUDE" nil) ("book.module" text "INCLUDE" nil) ("local.book.attrib" text "" nil) ("book.role.attrib" text "role CDATA #IMPLIED" nil) ("book.element" text "INCLUDE" nil) ("book.attlist" text "INCLUDE" nil) ("bookinfo.module" text "INCLUDE" nil) ("local.bookinfo.attrib" text "" nil) ("bookinfo.role.attrib" text "role CDATA #IMPLIED" nil) ("bookinfo.element" text "INCLUDE" nil) ("bookinfo.attlist" text "INCLUDE" nil) ("dedication.module" text "INCLUDE" nil) ("local.dedication.attrib" text "" nil) ("dedication.role.attrib" text "role CDATA #IMPLIED" nil) ("dedication.element" text "INCLUDE" nil) ("dedication.attlist" text "INCLUDE" nil) ("colophon.module" text "INCLUDE" nil) ("local.colophon.attrib" text "" nil) ("colophon.role.attrib" text "role CDATA #IMPLIED" nil) ("colophon.element" text "INCLUDE" nil) ("colophon.attlist" text "INCLUDE" nil) ("toc.content.module" text "INCLUDE" nil) ("toc.module" text "INCLUDE" nil) ("local.toc.attrib" text "" nil) ("toc.role.attrib" text "role CDATA #IMPLIED" nil) ("toc.element" text "INCLUDE" nil) ("toc.attlist" text "INCLUDE" nil) ("tocfront.module" text "INCLUDE" nil) ("local.tocfront.attrib" text "" nil) ("tocfront.role.attrib" text "role CDATA #IMPLIED" nil) ("tocfront.element" text "INCLUDE" nil) ("tocfront.attlist" text "INCLUDE" nil) ("tocentry.module" text "INCLUDE" nil) ("local.tocentry.attrib" text "" nil) ("tocentry.role.attrib" text "role CDATA #IMPLIED" nil) ("tocentry.element" text "INCLUDE" nil) ("tocentry.attlist" text "INCLUDE" nil) ("tocpart.module" text "INCLUDE" nil) ("local.tocpart.attrib" text "" nil) ("tocpart.role.attrib" text "role CDATA #IMPLIED" nil) ("tocpart.element" text "INCLUDE" nil) ("tocpart.attlist" text "INCLUDE" nil) ("tocchap.module" text "INCLUDE" nil) ("local.tocchap.attrib" text "" nil) ("tocchap.role.attrib" text "role CDATA #IMPLIED" nil) ("tocchap.element" text "INCLUDE" nil) ("tocchap.attlist" text "INCLUDE" nil) ("toclevel1.module" text "INCLUDE" nil) ("local.toclevel1.attrib" text "" nil) ("toclevel1.role.attrib" text "role CDATA #IMPLIED" nil) ("toclevel1.element" text "INCLUDE" nil) ("toclevel1.attlist" text "INCLUDE" nil) ("toclevel2.module" text "INCLUDE" nil) ("local.toclevel2.attrib" text "" nil) ("toclevel2.role.attrib" text "role CDATA #IMPLIED" nil) ("toclevel2.element" text "INCLUDE" nil) ("toclevel2.attlist" text "INCLUDE" nil) ("toclevel3.module" text "INCLUDE" nil) ("local.toclevel3.attrib" text "" nil) ("toclevel3.role.attrib" text "role CDATA #IMPLIED" nil) ("toclevel3.element" text "INCLUDE" nil) ("toclevel3.attlist" text "INCLUDE" nil) ("toclevel4.module" text "INCLUDE" nil) ("local.toclevel4.attrib" text "" nil) ("toclevel4.role.attrib" text "role CDATA #IMPLIED" nil) ("toclevel4.element" text "INCLUDE" nil) ("toclevel4.attlist" text "INCLUDE" nil) ("toclevel5.module" text "INCLUDE" nil) ("local.toclevel5.attrib" text "" nil) ("toclevel5.role.attrib" text "role CDATA #IMPLIED" nil) ("toclevel5.element" text "INCLUDE" nil) ("toclevel5.attlist" text "INCLUDE" nil) ("tocback.module" text "INCLUDE" nil) ("local.tocback.attrib" text "" nil) ("tocback.role.attrib" text "role CDATA #IMPLIED" nil) ("tocback.element" text "INCLUDE" nil) ("tocback.attlist" text "INCLUDE" nil) ("lot.content.module" text "INCLUDE" nil) ("lot.module" text "INCLUDE" nil) ("local.lot.attrib" text "" nil) ("lot.role.attrib" text "role CDATA #IMPLIED" nil) ("lot.element" text "INCLUDE" nil) ("lot.attlist" text "INCLUDE" nil) ("lotentry.module" text "INCLUDE" nil) ("local.lotentry.attrib" text "" nil) ("lotentry.role.attrib" text "role CDATA #IMPLIED" nil) ("lotentry.element" text "INCLUDE" nil) ("lotentry.attlist" text "INCLUDE" nil) ("appendix.module" text "INCLUDE" nil) ("local.appendix.attrib" text "" nil) ("appendix.role.attrib" text "role CDATA #IMPLIED" nil) ("appendix.element" text "INCLUDE" nil) ("appendix.attlist" text "INCLUDE" nil) ("chapter.module" text "INCLUDE" nil) ("local.chapter.attrib" text "" nil) ("chapter.role.attrib" text "role CDATA #IMPLIED" nil) ("chapter.element" text "INCLUDE" nil) ("chapter.attlist" text "INCLUDE" nil) ("part.module" text "INCLUDE" nil) ("local.part.attrib" text "" nil) ("part.role.attrib" text "role CDATA #IMPLIED" nil) ("part.element" text "INCLUDE" nil) ("part.attlist" text "INCLUDE" nil) ("preface.module" text "INCLUDE" nil) ("local.preface.attrib" text "" nil) ("preface.role.attrib" text "role CDATA #IMPLIED" nil) ("preface.element" text "INCLUDE" nil) ("preface.attlist" text "INCLUDE" nil) ("reference.module" text "INCLUDE" nil) ("local.reference.attrib" text "" nil) ("reference.role.attrib" text "role CDATA #IMPLIED" nil) ("reference.element" text "INCLUDE" nil) ("reference.attlist" text "INCLUDE" nil) ("partintro.module" text "INCLUDE" nil) ("local.partintro.attrib" text "" nil) ("partintro.role.attrib" text "role CDATA #IMPLIED" nil) ("partintro.element" text "INCLUDE" nil) ("partintro.attlist" text "INCLUDE" nil) ("appendixinfo.module" text "INCLUDE" nil) ("local.appendixinfo.attrib" text "" nil) ("appendixinfo.role.attrib" text "role CDATA #IMPLIED" nil) ("appendixinfo.element" text "INCLUDE" nil) ("appendixinfo.attlist" text "INCLUDE" nil) ("bibliographyinfo.module" text "INCLUDE" nil) ("local.bibliographyinfo.attrib" text "" nil) ("bibliographyinfo.role.attrib" text "role CDATA #IMPLIED" nil) ("bibliographyinfo.element" text "INCLUDE" nil) ("bibliographyinfo.attlist" text "INCLUDE" nil) ("chapterinfo.module" text "INCLUDE" nil) ("local.chapterinfo.attrib" text "" nil) ("chapterinfo.role.attrib" text "role CDATA #IMPLIED" nil) ("chapterinfo.element" text "INCLUDE" nil) ("chapterinfo.attlist" text "INCLUDE" nil) ("glossaryinfo.module" text "INCLUDE" nil) ("local.glossaryinfo.attrib" text "" nil) ("glossaryinfo.role.attrib" text "role CDATA #IMPLIED" nil) ("glossaryinfo.element" text "INCLUDE" nil) ("glossaryinfo.attlist" text "INCLUDE" nil) ("indexinfo.module" text "INCLUDE" nil) ("local.indexinfo.attrib" text "" nil) ("indexinfo.role.attrib" text "role CDATA #IMPLIED" nil) ("indexinfo.element" text "INCLUDE" nil) ("indexinfo.attlist" text "INCLUDE" nil) ("setindexinfo.module" text "INCLUDE" nil) ("local.setindexinfo.attrib" text "" nil) ("setindexinfo.role.attrib" text "role CDATA #IMPLIED" nil) ("setindexinfo.element" text "INCLUDE" nil) ("setindexinfo.attlist" text "INCLUDE" nil) ("partinfo.module" text "INCLUDE" nil) ("local.partinfo.attrib" text "" nil) ("partinfo.role.attrib" text "role CDATA #IMPLIED" nil) ("partinfo.element" text "INCLUDE" nil) ("partinfo.attlist" text "INCLUDE" nil) ("prefaceinfo.module" text "INCLUDE" nil) ("local.prefaceinfo.attrib" text "" nil) ("prefaceinfo.role.attrib" text "role CDATA #IMPLIED" nil) ("prefaceinfo.element" text "INCLUDE" nil) ("prefaceinfo.attlist" text "INCLUDE" nil) ("refentryinfo.module" text "INCLUDE" nil) ("local.refentryinfo.attrib" text "" nil) ("refentryinfo.role.attrib" text "role CDATA #IMPLIED" nil) ("refentryinfo.element" text "INCLUDE" nil) ("refentryinfo.attlist" text "INCLUDE" nil) ("refsect1info.module" text "INCLUDE" nil) ("local.refsect1info.attrib" text "" nil) ("refsect1info.role.attrib" text "role CDATA #IMPLIED" nil) ("refsect1info.element" text "INCLUDE" nil) ("refsect1info.attlist" text "INCLUDE" nil) ("refsect2info.module" text "INCLUDE" nil) ("local.refsect2info.attrib" text "" nil) ("refsect2info.role.attrib" text "role CDATA #IMPLIED" nil) ("refsect2info.element" text "INCLUDE" nil) ("refsect2info.attlist" text "INCLUDE" nil) ("refsect3info.module" text "INCLUDE" nil) ("local.refsect3info.attrib" text "" nil) ("refsect3info.role.attrib" text "role CDATA #IMPLIED" nil) ("refsect3info.element" text "INCLUDE" nil) ("refsect3info.attlist" text "INCLUDE" nil) ("refsynopsisdivinfo.module" text "INCLUDE" nil) ("local.refsynopsisdivinfo.attrib" text "" nil) ("refsynopsisdivinfo.role.attrib" text "role CDATA #IMPLIED" nil) ("refsynopsisdivinfo.element" text "INCLUDE" nil) ("refsynopsisdivinfo.attlist" text "INCLUDE" nil) ("referenceinfo.module" text "INCLUDE" nil) ("local.referenceinfo.attrib" text "" nil) ("referenceinfo.role.attrib" text "role CDATA #IMPLIED" nil) ("referenceinfo.element" text "INCLUDE" nil) ("referenceinfo.attlist" text "INCLUDE" nil) ("local.sect1info.attrib" text "" nil) ("sect1info.role.attrib" text "role CDATA #IMPLIED" nil) ("sect1info.element" text "INCLUDE" nil) ("sect1info.attlist" text "INCLUDE" nil) ("local.sect2info.attrib" text "" nil) ("sect2info.role.attrib" text "role CDATA #IMPLIED" nil) ("sect2info.element" text "INCLUDE" nil) ("sect2info.attlist" text "INCLUDE" nil) ("local.sect3info.attrib" text "" nil) ("sect3info.role.attrib" text "role CDATA #IMPLIED" nil) ("sect3info.element" text "INCLUDE" nil) ("sect3info.attlist" text "INCLUDE" nil) ("local.sect4info.attrib" text "" nil) ("sect4info.role.attrib" text "role CDATA #IMPLIED" nil) ("sect4info.element" text "INCLUDE" nil) ("sect4info.attlist" text "INCLUDE" nil) ("local.sect5info.attrib" text "" nil) ("sect5info.role.attrib" text "role CDATA #IMPLIED" nil) ("sect5info.element" text "INCLUDE" nil) ("sect5info.attlist" text "INCLUDE" nil) ("section.content.module" text "INCLUDE" nil) ("section.module" text "INCLUDE" nil) ("local.section.attrib" text "" nil) ("section.role.attrib" text "role CDATA #IMPLIED" nil) ("section.element" text "INCLUDE" nil) ("section.attlist" text "INCLUDE" nil) ("sectioninfo.module" text "INCLUDE" nil) ("sectioninfo.role.attrib" text "role CDATA #IMPLIED" nil) ("local.sectioninfo.attrib" text "" nil) ("sectioninfo.element" text "INCLUDE" nil) ("sectioninfo.attlist" text "INCLUDE" nil) ("sect1.module" text "INCLUDE" nil) ("local.sect1.attrib" text "" nil) ("sect1.role.attrib" text "role CDATA #IMPLIED" nil) ("sect1.element" text "INCLUDE" nil) ("sect1.attlist" text "INCLUDE" nil) ("sect2.module" text "INCLUDE" nil) ("local.sect2.attrib" text "" nil) ("sect2.role.attrib" text "role CDATA #IMPLIED" nil) ("sect2.element" text "INCLUDE" nil) ("sect2.attlist" text "INCLUDE" nil) ("sect3.module" text "INCLUDE" nil) ("local.sect3.attrib" text "" nil) ("sect3.role.attrib" text "role CDATA #IMPLIED" nil) ("sect3.element" text "INCLUDE" nil) ("sect3.attlist" text "INCLUDE" nil) ("sect4.module" text "INCLUDE" nil) ("local.sect4.attrib" text "" nil) ("sect4.role.attrib" text "role CDATA #IMPLIED" nil) ("sect4.element" text "INCLUDE" nil) ("sect4.attlist" text "INCLUDE" nil) ("sect5.module" text "INCLUDE" nil) ("local.sect5.attrib" text "" nil) ("sect5.role.attrib" text "role CDATA #IMPLIED" nil) ("sect5.element" text "INCLUDE" nil) ("sect5.attlist" text "INCLUDE" nil) ("simplesect.module" text "INCLUDE" nil) ("local.simplesect.attrib" text "" nil) ("simplesect.role.attrib" text "role CDATA #IMPLIED" nil) ("simplesect.element" text "INCLUDE" nil) ("simplesect.attlist" text "INCLUDE" nil) ("bibliography.content.module" text "INCLUDE" nil) ("bibliography.module" text "INCLUDE" nil) ("local.bibliography.attrib" text "" nil) ("bibliography.role.attrib" text "role CDATA #IMPLIED" nil) ("bibliography.element" text "INCLUDE" nil) ("bibliography.attlist" text "INCLUDE" nil) ("bibliodiv.module" text "INCLUDE" nil) ("local.bibliodiv.attrib" text "" nil) ("bibliodiv.role.attrib" text "role CDATA #IMPLIED" nil) ("bibliodiv.element" text "INCLUDE" nil) ("bibliodiv.attlist" text "INCLUDE" nil) ("glossary.content.module" text "INCLUDE" nil) ("glossary.module" text "INCLUDE" nil) ("local.glossary.attrib" text "" nil) ("glossary.role.attrib" text "role CDATA #IMPLIED" nil) ("glossary.element" text "INCLUDE" nil) ("glossary.attlist" text "INCLUDE" nil) ("glossdiv.module" text "INCLUDE" nil) ("local.glossdiv.attrib" text "" nil) ("glossdiv.role.attrib" text "role CDATA #IMPLIED" nil) ("glossdiv.element" text "INCLUDE" nil) ("glossdiv.attlist" text "INCLUDE" nil) ("index.content.module" text "INCLUDE" nil) ("indexes.module" text "INCLUDE" nil) ("local.indexes.attrib" text "" nil) ("indexes.role.attrib" text "role CDATA #IMPLIED" nil) ("index.element" text "INCLUDE" nil) ("index.attlist" text "INCLUDE" nil) ("setindex.element" text "INCLUDE" nil) ("setindex.attlist" text "INCLUDE" nil) ("indexdiv.module" text "INCLUDE" nil) ("local.indexdiv.attrib" text "" nil) ("indexdiv.role.attrib" text "role CDATA #IMPLIED" nil) ("indexdiv.element" text "INCLUDE" nil) ("indexdiv.attlist" text "INCLUDE" nil) ("indexentry.module" text "INCLUDE" nil) ("local.indexentry.attrib" text "" nil) ("indexentry.role.attrib" text "role CDATA #IMPLIED" nil) ("indexentry.element" text "INCLUDE" nil) ("indexentry.attlist" text "INCLUDE" nil) ("primsecterie.module" text "INCLUDE" nil) ("local.primsecterie.attrib" text "" nil) ("primsecterie.role.attrib" text "role CDATA #IMPLIED" nil) ("primaryie.element" text "INCLUDE" nil) ("primaryie.attlist" text "INCLUDE" nil) ("secondaryie.element" text "INCLUDE" nil) ("secondaryie.attlist" text "INCLUDE" nil) ("tertiaryie.element" text "INCLUDE" nil) ("tertiaryie.attlist" text "INCLUDE" nil) ("seeie.module" text "INCLUDE" nil) ("local.seeie.attrib" text "" nil) ("seeie.role.attrib" text "role CDATA #IMPLIED" nil) ("seeie.element" text "INCLUDE" nil) ("seeie.attlist" text "INCLUDE" nil) ("seealsoie.module" text "INCLUDE" nil) ("local.seealsoie.attrib" text "" nil) ("seealsoie.role.attrib" text "role CDATA #IMPLIED" nil) ("seealsoie.element" text "INCLUDE" nil) ("seealsoie.attlist" text "INCLUDE" nil) ("refentry.content.module" text "INCLUDE" nil) ("refentry.module" text "INCLUDE" nil) ("local.refentry.attrib" text "" nil) ("refentry.role.attrib" text "role CDATA #IMPLIED" nil) ("refentry.element" text "INCLUDE" nil) ("refentry.attlist" text "INCLUDE" nil) ("refmeta.module" text "INCLUDE" nil) ("local.refmeta.attrib" text "" nil) ("refmeta.role.attrib" text "role CDATA #IMPLIED" nil) ("refmeta.element" text "INCLUDE" nil) ("refmeta.attlist" text "INCLUDE" nil) ("refmiscinfo.module" text "INCLUDE" nil) ("local.refmiscinfo.attrib" text "" nil) ("refmiscinfo.role.attrib" text "role CDATA #IMPLIED" nil) ("refmiscinfo.element" text "INCLUDE" nil) ("refmiscinfo.attlist" text "INCLUDE" nil) ("refnamediv.module" text "INCLUDE" nil) ("local.refnamediv.attrib" text "" nil) ("refnamediv.role.attrib" text "role CDATA #IMPLIED" nil) ("refnamediv.element" text "INCLUDE" nil) ("refnamediv.attlist" text "INCLUDE" nil) ("refdescriptor.module" text "INCLUDE" nil) ("local.refdescriptor.attrib" text "" nil) ("refdescriptor.role.attrib" text "role CDATA #IMPLIED" nil) ("refdescriptor.element" text "INCLUDE" nil) ("refdescriptor.attlist" text "INCLUDE" nil) ("refname.module" text "INCLUDE" nil) ("local.refname.attrib" text "" nil) ("refname.role.attrib" text "role CDATA #IMPLIED" nil) ("refname.element" text "INCLUDE" nil) ("refname.attlist" text "INCLUDE" nil) ("refpurpose.module" text "INCLUDE" nil) ("local.refpurpose.attrib" text "" nil) ("refpurpose.role.attrib" text "role CDATA #IMPLIED" nil) ("refpurpose.element" text "INCLUDE" nil) ("refpurpose.attlist" text "INCLUDE" nil) ("refclass.module" text "INCLUDE" nil) ("local.refclass.attrib" text "" nil) ("refclass.role.attrib" text "role CDATA #IMPLIED" nil) ("refclass.element" text "INCLUDE" nil) ("refclass.attlist" text "INCLUDE" nil) ("refsynopsisdiv.module" text "INCLUDE" nil) ("local.refsynopsisdiv.attrib" text "" nil) ("refsynopsisdiv.role.attrib" text "role CDATA #IMPLIED" nil) ("refsynopsisdiv.element" text "INCLUDE" nil) ("refsynopsisdiv.attlist" text "INCLUDE" nil) ("refsect1.module" text "INCLUDE" nil) ("local.refsect1.attrib" text "" nil) ("refsect1.role.attrib" text "role CDATA #IMPLIED" nil) ("refsect1.element" text "INCLUDE" nil) ("refsect1.attlist" text "INCLUDE" nil) ("refsect2.module" text "INCLUDE" nil) ("local.refsect2.attrib" text "" nil) ("refsect2.role.attrib" text "role CDATA #IMPLIED" nil) ("refsect2.element" text "INCLUDE" nil) ("refsect2.attlist" text "INCLUDE" nil) ("refsect3.module" text "INCLUDE" nil) ("local.refsect3.attrib" text "" nil) ("refsect3.role.attrib" text "role CDATA #IMPLIED" nil) ("refsect3.element" text "INCLUDE" nil) ("refsect3.attlist" text "INCLUDE" nil) ("article.module" text "INCLUDE" nil) ("local.article.attrib" text "" nil) ("article.role.attrib" text "role CDATA #IMPLIED" nil) ("article.element" text "INCLUDE" nil) ("article.attlist" text "INCLUDE" nil) ("dbgenent.module" text "INCLUDE" nil) ("dbgenent" text ("-//OASIS//ENTITIES DocBook XML Additional General Entities V4.1.2//EN" "dbgenent.mod" . "/usr/share/sgml/docbook/dtd/xml/4.1.2/") nil)) "article" û}"qandaset" "caution" "refsynopsisdiv" "funcdef" "subjectterm" "surname" "bibliomisc" "parameter" "itemizedlist" "releaseinfo" "isbn" "date" "citerefentry" "bookinfo" "confsponsor" "arg" "ulink" "mediaobjectco" "msgtext" "issuenum" "refclass" "contractsponsor" "inlinemediaobject" "authorinitials" "markup" "refsect3info" "partinfo" "tocback" "tocchap" "otheraddr" "qandaentry" "option" "article" "callout" "orderedlist" "bibliomixed" "chapterinfo" "paramdef" "computeroutput" "tertiaryie" "prefaceinfo" "tocpart" "setinfo" "refsynopsisdivinfo" "simplesect" "year" "conftitle" "funcparams" "screeninfo" "para" "biblioset" "guiicon" "methodname" "sect5" "lineannotation" "programlistingco" "inlinegraphic" "ooclass" "refmeta" "seealsoie" "sect4" "appendix" "revnumber" "affiliation" "publisher" "issn" "sect3" "msgaud" "pubdate" "sect2" "refsect2info" "refentry" "tocfront" "modifier" "audiodata" "textobject" "figure" "informaltable" "firstname" "guimenuitem" "sect1" "seealso" "substeps" "highlights" "procedure" "screenshot" "subject" "type" "acronym" "thead" "constant" "abbrev" "primaryie" "section" "book" "varargs" "row" "tip" "keycode" "oointerface" "footnoteref" "secondaryie" "revdescription" "printhistory" "footnote" "partintro" "shortcut" "fax" "pob" "synopfragmentref" "label" "glosslist" "address" "refsect1info" "dedication" "synopfragment" "copyright" "corpauthor" "token" "colophon" "preface" "imageobject" "member" "mousebutton" "email" "indexinfo" "warning" "beginpage" "volumenum" "pagenums" "artpagenums" "guimenu" "guilabel" "trademark" "areaspec" "answer" "msginfo" "inlineequation" "productname" "othercredit" "prompt" "medialabel" "errortype" "refname" "glossseealso" "abstract" "foreignphrase" "sect5info" "audioobject" "areaset" "glosssee" "glossentry" "msgmain" "authorblurb" "revhistory" "structfield" "guisubmenu" "initializer" "group" "term" "listitem" "example" "msg" "wordasword" "bibliography" "sidebarinfo" "msgsub" "contrib" "lotentry" "varlistentry" "literallayout" "application" "sidebar" "keyword" "corpname" "tocentry" "glossary" "phone" "question" "msgexplan" "informalexample" "important" "remark" "ooexception" "link" "xref" "seeie" "sect4info" "classsynopsisinfo" "funcsynopsisinfo" "entry" "spanspec" "formalpara" "authorgroup" "sgmltag" "keycap" "refentryinfo" "chapter" "set" "simplemsgentry" "mediaobject" "varname" "refmiscinfo" "index" "alt" "glossdef" "modespec" "systemitem" "quote" "tertiary" "methodsynopsis" "keycombo" "function" "emphasis" "lot" "manvolnum" "ackno" "methodparam" "caption" "co" "msgorig" "bibliomset" "segtitle" "simpara" "confdates" "postcode" "entrytbl" "calloutlist" "productnumber" "glossaryinfo" "reference" "accel" "state" "cmdsynopsis" "superscript" "citetitle" "refnamediv" "sect3info" "videodata" "blockquote" "indexentry" "note" "constructorsynopsis" "synopsis" "legalnotice" "invpartnumber" "editor" "screen" "author" "anchor" "programlisting" "confnum" "step" "destructorsynopsis" "edition" "epigraph" "msgentry" "filename" "errorcode" "sectioninfo" "setindexinfo" "bibliographyinfo" "country" "street" "imageobjectco" "seg" "qandadiv" "confgroup" "interface" "referenceinfo" "biblioentry" "publishername" "contractnum" "envar" "olink" "sect2info" "see" "collabname" "honorific" "indexdiv" "void" "fieldsynopsis" "othername" "articleinfo" "subtitle" "tfoot" "table" "hardware" "refdescriptor" "city" "screenco" "subjectset" "appendixinfo" "toc" "tgroup" "seglistitem" "menuchoice" "revision" "equation" "graphicco" "seriesvolnums" "action" "refentrytitle" "jobtitle" "indexterm" "property" "itermset" "structname" "errorname" "interfacename" "phrase" "bibliodiv" "sect1info" "variablelist" "refpurpose" "setindex" "funcprototype" "colspec" "pubsnumber" "guibutton" "classname" "toclevel5" "videoobject" "bridgehead" "lineage" "title" "symbol" "literal" "glossdiv" "toclevel4" "primary" "holder" "sbr" "area" "exceptionname" "refsect3" "toclevel3" "part" "msglevel" "keysym" "refsect2" "toclevel2" "segmentedlist" "classsynopsis" "collab" "replaceable" "glossterm" "refsect1" "toclevel1" "attribution" "informalequation" "keywordset" "orgname" "returnvalue" "secondary" "informalfigure" "msgrel" "tbody" "msgset" "funcsynopsis" "database" "shortaffil" "imagedata" "objectinfo" "titleabbrev" "optional" "firstterm" "revremark" "subscript" "command" "orgdiv" "simplelist" "graphic" "userinput" "citation" û}(attlist (("defaultlabel" (name-token-group ("qanda" "number" "none")) IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €2äp #û]ûzû@¶òb«û8øû)Vôêûnû^û óûÓÁ2àqðû{û2ÉûeµûjNû1¢Mû%UúûJ·Tû7ûLû1û7T·ûJúUû%M¢û1NûjµûeÉû2û{ðqà2ÁÓûóû û^ûnêôVû)ø8û«bò¶û@ûzû]# päû2äp #û]ûzû@¶òb«û8øû)Vôêûnû^û óûÓÁ2àqðû{û2ÉûeµûjNû1¢Mû%UúûJ·Tû7ûsûû1äp #û]ûzû@¶òb«û8øû)Vôêûnû^û óûÓÁ2àqðû{û2ÉûeµûjNû1¢Mû%UúûJ·Tû7û(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ûL-äp #û]ûzû@«û8øû)Vôêûnû^û óûÓÁ2àqðû{û2ÉûeµûjNû1¢Mû%U­úûJ·û7€-€û7·ûJú­Uû%M¢û1NûjµûeÉû2û{ðqà2ÁÓûóû û^ûnêôVû)ø8û«û@ûzû]# pä-äp #û]ûzû@«û8øû)Vôêûnû^û óûÓÁ2àqðû{û2ÉûeµûjNû1¢Mû%U­úûJ·û7€(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ûL,9äp #û]ûzû@¶òb«û8øû)Vôêûnû^û óûÓÁ2àqðû{û2ÉûeµûjNû1¢Mû%ûmU­úûJ·T’šûû7€û[ûsû#9äp #û]ûzû@¶òb«û8øû)Vôêûnû^û óûÓÁ2àqðû{û2ÉûeµûjNû1¢Mû%ûmU­úûJ·T’šûû7€û[ûL9äp #û]ûzû@¶òb«û8øû)Vôêûnû^û óûÓÁ2àqðû{û2ÉûeµûjNû1¢Mû%ûmU­úûJ·T’šûû7€û[9û[äp #û]ûzû@¶òb«û8øû)Vôêûnû^û óûÓÁ2àqðû{û2ÉûeµûjNû1¢Mû%ûmU­úûJ·T’šûû7€û[9äp #û]ûzû@¶òb«û8øû)Vôêûnû^û óûÓÁ2àqðû{û2ÉûeµûjNû1¢Mû%ûmU­úûJ·T’šûû7€û[ûs9äp #û]ûzû@¶òb«û8øû)Vôêûnû^û óûÓÁ2àqðû{û2ÉûeµûjNû1¢Mû%ûmU­úûJ·T’šûû7€û[û[(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €Õû`(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) € û79ëûw·û`†Öû¹(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €b€û7Óûóû û^ûnêôŠ9ëûw·›å‹ŒÏvùúÊû|XwÐûMû:œÃûhû`û8ût |û/Ž[ûNûZÔcÄûû&P„…4ûFÕûû;û û}ûo'ûx¸d:ûUû<5ûG¬û4û¹¤†Ñû=iûa“ûuÖì û}Y\ºe(attlist (("class" (name-token-group ("command" "function" "option")) IMPLIED) ("moreinfo" (name-token-group ("refentry" "none")) (nil "none")) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €€û79û`(attlist (("spacing" (name-token-group ("normal" "compact")) IMPLIED) ("mark" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ûL¡ûs¡¡¡(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) € û79ëûw·û`†Öû¹(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) € û79ëûw·û`†Öû¹(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) € û79ëûw·û`†Öû¹(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €û5Ø(attlist (("contents" IDREFS IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €9û7¨š@û!ûKOûìûsûLû#û3› ûEûAEå‹h‚ŒûgB ö÷û ¯vuûûû_3Âùƒq’\û9ûfû*ÏõÉû{9û{ÉõÏû*ûfû9\’qƒùÂ3û_ûûuv¯ û÷ö BûgŒ‚h‹åEAûûE ›û3û#ûLûsìûOûKû!@š¨û7(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) € û79ëûw·û`†Öû¹(attlist (("choice" (name-token-group ("opt" "req" "plain")) (nil "opt")) ("rep" (name-token-group ("norepeat" "repeat")) (nil "norepeat")) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ûSû`n Ÿ(attlist (("url" CDATA REQUIRED) ("type" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €b€û7Óûóû û^ûnêôŠ9ëûw·›å‹ŒÏvùúÊû|XwÐûMû:œÃûhû`û8ût |û/Ž[ûNûZÔcÄûû&P„…4ûFÕûû;û û}ûo'ûx¸d:ûUû<5ûG¬û4û¹¤†Ñû=iûa“ûuÖì û}Y\ºe(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ûrûûûL(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €8€û7ûš’T·ûJú­Uûmû%M¢û1NûjµûeÉû2û{ðqà2ÁÓûóû û^ûnêôVû)ø8û«bò¶û@ûzû]# pä8äp #û]ûzû@¶òb«û8øû)Vôêûnû^û óûÓÁ2àqðû{û2ÉûeµûjNû1¢Mû%ûmU­úûJ·T’šûû7€(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) € û79ëûw·û`†Öû¹(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €¬(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) € û79ëûw·û`†Öû¹(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ûrûI•zz•ûIûI•zL(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) € û79ëûw·û`†Öû¹(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €€û79û`(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €9û7¨š@û!ûKOûìûsûLû#û3› ûEûAEå‹h‚ŒûgB ö÷û ¯vuûûû_3Âùƒq’\û9ûfû*ÏõÉû{9û{ÉõÏû*ûfû9\’qƒùÂ3û_ûûuv¯ û÷ö BûgŒ‚h‹åEAûûE ›û3û#ûLûsìûOûKû!@š¨û7(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €9û7¨š@û!ûKOûìûsûLû#û3› ûEûAEå‹h‚ŒûgB ö÷û ¯vuûûû_3Âùƒq’\û9ûfû*ÏõÉû{9û{ÉõÏû*ûfû9\’qƒùÂ3û_ûûuv¯ û÷ö BûgŒ‚h‹åEAûûE ›û3û#ûLûsìûOûKû!@š¨û7(attlist (("label" CDATA IMPLIED) ("linkend" IDREF IMPLIED) ("pagenum" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €b€û7Óûóû û^ûnêôŠ9ëûw·›å‹ŒÏvùúÊû|XwÐûMû:œÃûhû`û8ût |û/Ž[ûNûZÔcÄûû&P„…4ûFÕûû;û û}ûo'ûx¸d:ûUû<5ûG¬û4û¹¤†Ñû=iûa“ûuÖì û}Y\ºe(attlist (("label" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €°ûc°ûc(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) € û79ëûw·û`†Öû¹(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €›³³ˆ(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €€û79û`(attlist (("class" (name-token-group ("journalarticle" "productsheet" "whitepaper" "techreport" "specification" "faq")) IMPLIED) ("parentbook" IDREF IMPLIED) ("status" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €×û"ûL<äp #û]ûzû@¶òb«û8øû)Vôêûnû^û óûÓÁ2àqðû{û2ÉûeµûjNû1¢Mû%ûmU­úûJ·T’šûû7€^-HQ ×<äp #û]ûzû@¶òb«û8øû)Vôêûnû^û óûÓÁ2àqðû{û2ÉûeµûjNû1¢Mû%ûmU­úûJ·T’šûû7€^-HQ ×<äp #û]ûzû@¶òb«û8øû)Vôêûnû^û óûÓÁ2àqðû{û2ÉûeµûjNû1¢Mû%ûmU­úûJ·T’šûû7€^-HQ ×<äp #û]ûzû@¶òb«û8øû)Vôêûnû^û óûÓÁ2àqðû{û2ÉûeµûjNû1¢Mû%ûmU­úûJ·T’šûû7€^-HQ ×û"ûs û# <äp #û]ûzû@¶òb«û8øû)Vôêûnû^û óûÓÁ2àqðû{û2ÉûeµûjNû1¢Mû%ûmU­úûJ·T’šûû7€^-HQ Cû, × Ì ± ¥ > Ù Q H-^äp #û]ûzû@¶òb«û8øû)Vôêûnû^û óûÓÁ2àqðû{û2ÉûeµûjNû1¢Mû%ûmU­úûJ·T’šûû7€û, × Ì ± ¥ > Ù ^û, × Ì ± ¥ > Ù -û, × Ì ± ¥ > Ù Hû, × Ì ± ¥ > Ù Q ×û"<äp #û]ûzû@¶òb«û8øû)Vôêûnû^û óûÓÁ2àqðû{û2ÉûeµûjNû1¢Mû%ûmU­úûJ·T’šûû7€^-HQ ×û"ûs <äp #û]ûzû@¶òb«û8øû)Vôêûnû^û óûÓÁ2àqðû{û2ÉûeµûjNû1¢Mû%ûmU­úûJ·T’šûû7€^-HQ Ù > ¥ ± Ì × û, û, × Ì ± ¥ > Ù ^-HQ û, × Ì ± ¥ > Ù Hû, × Ì ± ¥ > Ù -û, × Ì ± ¥ > Ù ^(attlist (("arearefs" IDREFS REQUIRED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €8€û7ûš’T·ûJú­Uûmû%M¢û1NûjµûeÉû2û{ðqà2ÁÓûóû û^ûnêôVû)ø8û«bò¶û@ûzû]# pä8äp #û]ûzû@¶òb«û8øû)Vôêûnû^û óûÓÁ2àqðû{û2ÉûeµûjNû1¢Mû%ûmU­úûJ·T’šûû7€(attlist (("numeration" (name-token-group ("arabic" "upperalpha" "loweralpha" "upperroman" "lowerroman")) IMPLIED) ("inheritnum" (name-token-group ("inherit" "ignore")) (nil "ignore")) ("continuation" (name-token-group ("continues" "restarts")) (nil "restarts")) ("spacing" (name-token-group ("normal" "compact")) IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ûL¡ûs¡¡¡(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €4Þû7¨š@û!ûKOûìûsûLû#û3› ûEûAEå‹h‚ŒûgB ö÷û ¯vuûûû_3Âùƒq’\(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €9û7¨š@û!ûKOûìûsûLû#û3› ûEûAEå‹h‚ŒûgB ö÷û ¯vuûûû_3Âùƒq’\û9ûfû*ÏõÉû{9û{ÉõÏû*ûfû9\’qƒùÂ3û_ûûuv¯ û÷ö BûgŒ‚h‹åEAûûE ›û3û#ûLûsìûOûKû!@š¨û7(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €0û`(attlist (("moreinfo" (name-token-group ("refentry" "none")) (nil "none")) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €A€û79ëûw·úÊû|XwÐûMû:œÃûhû`û8ût |û/Ž[ûNûZÔcÄûû&P„…4ûFÕûû;û û}ûo'ûx¸d:ûUû<5ûG¬û4û¹(attlist (("linkends" IDREFS IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €W9ëûw·›å‹ŒÏvùúÊû|XwÐûMû:œÃûhû`û8ût |û/Ž[ûNûZÔcÄûû&P„…4ûFÕûû;û û}ûo'ûx¸d:ûUû<5ûG¬û4û¹¤†Ñû=iûa“ûuÖì û}Y\ºe(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €9û7¨š@û!ûKOûìûsûLû#û3› ûEûAEå‹h‚ŒûgB ö÷û ¯vuûûû_3Âùƒq’\û9ûfû*ÏõÉû{9û{ÉõÏû*ûfû9\’qƒùÂ3û_ûûuv¯ û÷ö BûgŒ‚h‹åEAûûE ›û3û#ûLûsìûOûKû!@š¨û7(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €°°(attlist (("contents" IDREFS IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €9û7¨š@û!ûKOûìûsûLû#û3› ûEûAEå‹h‚ŒûgB ö÷û ¯vuûûû_3Âùƒq’\û9ûfû*ÏõÉû{9û{ÉõÏû*ûfû9\’qƒùÂ3û_ûûuv¯ û÷ö BûgŒ‚h‹åEAûûE ›û3û#ûLûsìûOûKû!@š¨û7(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €9û7¨š@û!ûKOûìûsûLû#û3› ûEûAEå‹h‚ŒûgB ö÷û ¯vuûûû_3Âùƒq’\û9ûfû*ÏõÉû{9û{ÉõÏû*ûfû9\’qƒùÂ3û_ûûuv¯ û÷ö BûgŒ‚h‹åEAûûE ›û3û#ûLûsìûOûKû!@š¨û7(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ûLûsû#8äp #û]ûzû@¶òb«û8øû)Vôêûnû^û óûÓÁ2àqðû{û2ÉûeµûjNû1¢Mû%ûmU­úûJ·T’šûû7€8äp #û]ûzû@¶òb«û8øû)Vôêûnû^û óûÓÁ2àqðû{û2ÉûeµûjNû1¢Mû%ûmU­úûJ·T’šûû7€ûs8äp #û]ûzû@¶òb«û8øû)Vôêûnû^û óûÓÁ2àqðû{û2ÉûeµûjNû1¢Mû%ûmU­úûJ·T’šûû7€8äp #û]ûzû@¶òb«û8øû)Vôêûnû^û óûÓÁ2àqðû{û2ÉûeµûjNû1¢Mû%ûmU­úûJ·T’šûû7€(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) € û79ëûw·û`†Öû¹(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) € û79ëûw·û`†Öû¹(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €A€û79ëûw·úÊû|XwÐûMû:œÃûhû`û8ût |û/Ž[ûNûZÔcÄûû&P„…4ûFÕûû;û û}ûo'ûx¸d:ûUû<5ûG¬û4û¹(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €b€û7Óûóû û^ûnêôŠ9ëûw·›å‹ŒÏvùúÊû|XwÐûMû:œÃûhû`û8ût |û/Ž[ûNûZÔcÄûû&P„…4ûFÕûû;û û}ûo'ûx¸d:ûUû<5ûG¬û4û¹¤†Ñû=iûa“ûuÖì û}Y\ºe(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €‚û%M¢û1NûjµûeÉû2û{ðqVû)ø8û«bò¶û@ûzû]# pä€û7Óûóû û^ûnêôŠ9ëûw·›å‹ŒÏvùúÊû|XwÐûMû:œÃûhû`û8ût |û/Ž[ûNûZÔcÄûû&P„…4ûFÕûû;û û}ûo'ûx¸d:ûUû<5ûG¬û4û¹¤†Ñû=iûa“ûuÖì û}Y\ºe(attlist (("relation" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €2û7¨š@û!ûKOûìûsûLû#û3› ûEûAEå‹h‚ŒûgB ö÷û ¯vuûûû_3Âùƒq’\2\’qƒùÂ3û_ûûuv¯ û÷ö BûgŒ‚h‹åEAûûE ›û3û#ûLûsìûOûKû!@š¨û7(attlist (("moreinfo" (name-token-group ("refentry" "none")) (nil "none")) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €è€û79û`(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €€û79û`(attlist (("renderas" (name-token-group ("sect1" "sect2" "sect3" "sect4")) IMPLIED) ("label" CDATA IMPLIED) ("status" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) € ”ûLûLû,×̱¥ûsû#:äp #û]ûzû@¶òb«û8øû)Vôêûnû^û óûÓÁ2àqðû{û2ÉûeµûjNû1¢Mû%ûmU­úûJ·T’šûû7€H-¥±Ì×û,:äp #û]ûzû@¶òb«û8øû)Vôêûnû^û óûÓÁ2àqðû{û2ÉûeµûjNû1¢Mû%ûmU­úûJ·T’šûû7€H-û,×̱¥:äp #û]ûzû@¶òb«û8øû)Vôêûnû^û óûÓÁ2àqðû{û2ÉûeµûjNû1¢Mû%ûmU­úûJ·T’šûû7€H-û,×̱¥ûs:äp #û]ûzû@¶òb«û8øû)Vôêûnû^û óûÓÁ2àqðû{û2ÉûeµûjNû1¢Mû%ûmU­úûJ·T’šûû7€H-?û, × Ì ± ¥ H - äp #û]ûzû@¶òb«û8øû)Vôêûnû^û óûÓÁ2àqðû{û2ÉûeµûjNû1¢Mû%ûmU­úûJ·T’šûû7€û, × Ì ± ¥ Hû, × Ì ± ¥ -¥ ± Ì × û, û, × Ì ± ¥ - H û, × Ì ± ¥ - (attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €b€û7Óûóû û^ûnêôŠ9ëûw·›å‹ŒÏvùúÊû|XwÐûMû:œÃûhû`û8ût |û/Ž[ûNûZÔcÄûû&P„…4ûFÕûû;û û}ûo'ûx¸d:ûUû<5ûG¬û4û¹¤†Ñû=iûa“ûuÖì û}Y\ºe(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €‡ûä(attlist (("entityref" ENTITY IMPLIED) ("fileref" CDATA IMPLIED) ("format" (name-token-group ("BMP" "CGM-CHAR" "CGM-BINARY" "CGM-CLEAR" "DITROFF" "DVI" "EPS" "EQN" "FAX" "GIF" "GIF87a" "GIF89a" "JPG" "JPEG" "IGES" "PCX" "PIC" "PNG" "PS" "SGML" "TBL" "TEX" "TIFF" "WMF" "WPG" "linespecific")) IMPLIED) ("srccredit" CDATA IMPLIED) ("width" CDATA IMPLIED) ("depth" CDATA IMPLIED) ("align" (name-token-group ("left" "right" "center")) IMPLIED) ("scale" CDATA IMPLIED) ("scalefit" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) (attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €JûG(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €û7û5û7ËØû7û7Ëû7Ë(attlist (("linkends" IDREFS IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €W9ëûw·›å‹ŒÏvùúÊû|XwÐûMû:œÃûhû`û8ût |û/Ž[ûNûZÔcÄûû&P„…4ûFÕûû;û û}ûo'ûx¸d:ûUû<5ûG¬û4û¹¤†Ñû=iûa“ûuÖì û}Y\ºe(attlist (("renderas" (name-token-group ("sect1" "sect2" "sect3" "sect5")) IMPLIED) ("label" CDATA IMPLIED) ("status" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €¼ûLûLû,×̱¥ûsû#;äp #û]ûzû@¶òb«û8øû)Vôêûnû^û óûÓÁ2àqðû{û2ÉûeµûjNû1¢Mû%ûmU­úûJ·T’šûû7€H6- ¥±Ì×û,;äp #û]ûzû@¶òb«û8øû)Vôêûnû^û óûÓÁ2àqðû{û2ÉûeµûjNû1¢Mû%ûmU­úûJ·T’šûû7€H6- û,×̱¥;äp #û]ûzû@¶òb«û8øû)Vôêûnû^û óûÓÁ2àqðû{û2ÉûeµûjNû1¢Mû%ûmU­úûJ·T’šûû7€H6- û,×̱¥ûs;äp #û]ûzû@¶òb«û8øû)Vôêûnû^û óûÓÁ2àqðû{û2ÉûeµûjNû1¢Mû%ûmU­úûJ·T’šûû7€H6- @û, × Ì ± ¥ H 6 - äp #û]ûzû@¶òb«û8øû)Vôêûnû^û óûÓÁ2àqðû{û2ÉûeµûjNû1¢Mû%ûmU­úûJ·T’šûû7€û, × Ì ± ¥ Hû, × Ì ± ¥ 6û, × Ì ± ¥ - ¥ ± Ì × û, û, × Ì ± ¥ - 6 H û, × Ì ± ¥ 6 û, × Ì ± ¥ - (attlist (("label" CDATA IMPLIED) ("status" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €û+ûLûLû,×̱¥ûsû#<äp #û]ûzû@¶òb«û8øû)Vôêûnû^û óûÓÁ2àqðû{û2ÉûeµûjNû1¢Mû%ûmU­úûJ·T’šûû7€^- H Q <äp #û]ûzû@¶òb«û8øû)Vôêûnû^û óûÓÁ2àqðû{û2ÉûeµûjNû1¢Mû%ûmU­úûJ·T’šûû7€^- H Q ¥±Ì×û,<äp #û]ûzû@¶òb«û8øû)Vôêûnû^û óûÓÁ2àqðû{û2ÉûeµûjNû1¢Mû%ûmU­úûJ·T’šûû7€^- H Q û,×̱¥<äp #û]ûzû@¶òb«û8øû)Vôêûnû^û óûÓÁ2àqðû{û2ÉûeµûjNû1¢Mû%ûmU­úûJ·T’šûû7€^- H Q û,×̱¥ûs<äp #û]ûzû@¶òb«û8øû)Vôêûnû^û óûÓÁ2àqðû{û2ÉûeµûjNû1¢Mû%ûmU­úûJ·T’šûû7€^- H Q Aû, × Ì ± ¥ Q H-^äp #û]ûzû@¶òb«û8øû)Vôêûnû^û óûÓÁ2àqðû{û2ÉûeµûjNû1¢Mû%ûmU­úûJ·T’šûû7€û, × Ì ± ¥ ^û, × Ì ± ¥ - û, × Ì ± ¥ H û, × Ì ± ¥ Q ¥ ± Ì × û, û, × Ì ± ¥ ^-HQ û, × Ì ± ¥ Hû, × Ì ± ¥ -û, × Ì ± ¥ ^(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) € û79ëûw·û`†Öû¹(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €qûyûgû6ûpqqûyqûyqûyûgû6(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ûq(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) € û79ëûw·û`†Öû¹(attlist (("renderas" (name-token-group ("sect1" "sect2" "sect4" "sect5")) IMPLIED) ("label" CDATA IMPLIED) ("status" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €îûLûLû,×̱¥ûsû#;äp #û]ûzû@¶òb«û8øû)Vôêûnû^û óûÓÁ2àqðû{û2ÉûeµûjNû1¢Mû%ûmU­úûJ·T’šûû7€H=- ¥±Ì×û,;äp #û]ûzû@¶òb«û8øû)Vôêûnû^û óûÓÁ2àqðû{û2ÉûeµûjNû1¢Mû%ûmU­úûJ·T’šûû7€H=- û,×̱¥;äp #û]ûzû@¶òb«û8øû)Vôêûnû^û óûÓÁ2àqðû{û2ÉûeµûjNû1¢Mû%ûmU­úûJ·T’šûû7€H=- û,×̱¥ûs;äp #û]ûzû@¶òb«û8øû)Vôêûnû^û óûÓÁ2àqðû{û2ÉûeµûjNû1¢Mû%ûmU­úûJ·T’šûû7€H=- @û, × Ì ± ¥ H = - äp #û]ûzû@¶òb«û8øû)Vôêûnû^û óûÓÁ2àqðû{û2ÉûeµûjNû1¢Mû%ûmU­úûJ·T’šûû7€û, × Ì ± ¥ Hû, × Ì ± ¥ =û, × Ì ± ¥ - ¥ ± Ì × û, û, × Ì ± ¥ - = H û, × Ì ± ¥ = û, × Ì ± ¥ - (attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €b€û7Óûóû û^ûnêôŠ9ëûw·›å‹ŒÏvùúÊû|XwÐûMû:œÃûhû`û8ût |û/Ž[ûNûZÔcÄûû&P„…4ûFÕûû;û û}ûo'ûx¸d:ûUû<5ûG¬û4û¹¤†Ñû=iûa“ûuÖì û}Y\ºe(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) € û79ëûw·û`†Öû¹(attlist (("renderas" (name-token-group ("sect1" "sect3" "sect4" "sect5")) IMPLIED) ("label" CDATA IMPLIED) ("status" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ûûLûLû,×̱¥ûsû#;äp #û]ûzû@¶òb«û8øû)Vôêûnû^û óûÓÁ2àqðû{û2ÉûeµûjNû1¢Mû%ûmU­úûJ·T’šûû7€HC- ¥±Ì×û,;äp #û]ûzû@¶òb«û8øû)Vôêûnû^û óûÓÁ2àqðû{û2ÉûeµûjNû1¢Mû%ûmU­úûJ·T’šûû7€HC- û,×̱¥;äp #û]ûzû@¶òb«û8øû)Vôêûnû^û óûÓÁ2àqðû{û2ÉûeµûjNû1¢Mû%ûmU­úûJ·T’šûû7€HC- û,×̱¥ûs;äp #û]ûzû@¶òb«û8øû)Vôêûnû^û óûÓÁ2àqðû{û2ÉûeµûjNû1¢Mû%ûmU­úûJ·T’šûû7€HC- @û, × Ì ± ¥ H C - äp #û]ûzû@¶òb«û8øû)Vôêûnû^û óûÓÁ2àqðû{û2ÉûeµûjNû1¢Mû%ûmU­úûJ·T’šûû7€û, × Ì ± ¥ Hû, × Ì ± ¥ Cû, × Ì ± ¥ - ¥ ± Ì × û, û, × Ì ± ¥ - C H û, × Ì ± ¥ C û, × Ì ± ¥ - (attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €9û7¨š@û!ûKOûìûsûLû#û3› ûEûAEå‹h‚ŒûgB ö÷û ¯vuûûû_3Âùƒq’\û9ûfû*ÏõÉû{9û{ÉõÏû*ûfû9\’qƒùÂ3û_ûûuv¯ û÷ö BûgŒ‚h‹åEAûûE ›û3û#ûLûsìûOûKû!@š¨û7(attlist (("status" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €·¹û;Åû7íû¹·í·¹ûí·¹û;íûbûbûb(attlist (("label" CDATA IMPLIED) ("linkend" IDREF IMPLIED) ("pagenum" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €b€û7Óûóû û^ûnêôŠ9ëûw·›å‹ŒÏvùúÊû|XwÐûMû:œÃûhû`û8ût |û/Ž[ûNûZÔcÄûû&P„…4ûFÕûû;û û}ûo'ûx¸d:ûUû<5ûG¬û4û¹¤†Ñû=iûa“ûuÖì û}Y\ºe(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €€û79û`(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("entityref" ENTITY IMPLIED) ("fileref" CDATA IMPLIED) ("format" (name-token-group ("BMP" "CGM-CHAR" "CGM-BINARY" "CGM-CLEAR" "DITROFF" "DVI" "EPS" "EQN" "FAX" "GIF" "GIF87a" "GIF89a" "JPG" "JPEG" "IGES" "PCX" "PIC" "PNG" "PS" "SGML" "TBL" "TEX" "TIFF" "WMF" "WPG" "linespecific")) IMPLIED) ("srccredit" CDATA IMPLIED) ("role" CDATA IMPLIED))) (attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ûrû=ðà2ÁVû)ø8û«bò¶û@ûzû]# pääp #û]ûzû@¶òb«û8øû)VÁ2àðû=äp #û]ûzû@¶òb«û8øû)VÁ2àð(attlist (("float" CDATA (nil "0")) ("pgwide" CDATA IMPLIED) ("label" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ûLûs«û8øû)Vôêûnû^û óûÓqðû{û2ÉûeµûjNû7€¹û«û8øû)Vôêûnû^û óûÓqðû{û2ÉûeµûjNû7€¹û«û8øû)Vôêûnû^û óûÓqðû{û2ÉûeµûjNû7€¹û(attlist (("frame" (name-token-group ("top" "bottom" "topbot" "all" "sides" "none")) IMPLIED) ("colsep" CDATA IMPLIED) ("rowsep" CDATA IMPLIED) ("label" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED) ("tabstyle" CDATA IMPLIED) ("tocentry" CDATA IMPLIED) ("shortentry" CDATA IMPLIED) ("orient" (name-token-group ("port" "land")) IMPLIED) ("pgwide" CDATA IMPLIED))) €û-Éû{û-Éû{(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) € û79ëûw·û`†Öû¹(attlist (("moreinfo" (name-token-group ("refentry" "none")) (nil "none")) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €è€û79û`(attlist (("renderas" (name-token-group ("sect2" "sect3" "sect4" "sect5")) IMPLIED) ("label" CDATA IMPLIED) ("status" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €û?ûLûLû,×̱¥ûsû#;äp #û]ûzû@¶òb«û8øû)Vôêûnû^û óûÓÁ2àqðû{û2ÉûeµûjNû1¢Mû%ûmU­úûJ·T’šûû7€HF- ¥±Ì×û,;äp #û]ûzû@¶òb«û8øû)Vôêûnû^û óûÓÁ2àqðû{û2ÉûeµûjNû1¢Mû%ûmU­úûJ·T’šûû7€HF- û,×̱¥;äp #û]ûzû@¶òb«û8øû)Vôêûnû^û óûÓÁ2àqðû{û2ÉûeµûjNû1¢Mû%ûmU­úûJ·T’šûû7€HF- û,×̱¥ûs;äp #û]ûzû@¶òb«û8øû)Vôêûnû^û óûÓÁ2àqðû{û2ÉûeµûjNû1¢Mû%ûmU­úûJ·T’šûû7€HF- @û, × Ì ± ¥ H F - äp #û]ûzû@¶òb«û8øû)Vôêûnû^û óûÓÁ2àqðû{û2ÉûeµûjNû1¢Mû%ûmU­úûJ·T’šûû7€û, × Ì ± ¥ Hû, × Ì ± ¥ Fû, × Ì ± ¥ - ¥ ± Ì × û, û, × Ì ± ¥ - F H û, × Ì ± ¥ F û, × Ì ± ¥ - (attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €W9ëûw·›å‹ŒÏvùúÊû|XwÐûMû:œÃûhû`û8ût |û/Ž[ûNûZÔcÄûû&P„…4ûFÕûû;û û}ûo'ûx¸d:ûUû<5ûG¬û4û¹¤†Ñû=iûa“ûuÖì û}Y\ºe(attlist (("performance" (name-token-group ("optional" "required")) (nil "required")) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ûû(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €û7à2Ábò¶û@ûzû]# pääp #û]ûzû@¶òbÁ2àû7(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €9äp #û]ûzû@¶òb«û8øû)Vôêûnû^û óûÓÁ2àqðû{û2ÉûeµûjNû1¢Mû%ûmU­úûJ·T’šûû7€ûLû8€û7ûš’T·ûJú­Uûmû%M¢û1NûjµûeÉû2û{ðqà2ÁÓûóû û^ûnêôVû)ø8û«bò¶û@ûzû]# päû9äp #û]ûzû@¶òb«û8øû)Vôêûnû^û óûÓÁ2àqðû{û2ÉûeµûjNû1¢Mû%ûmU­úûJ·T’šûû7€ûsûû8äp #û]ûzû@¶òb«û8øû)Vôêûnû^û óûÓÁ2àqðû{û2ÉûeµûjNû1¢Mû%ûmU­úûJ·T’šûû7€û(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €1û{û2ÉÉû2û{(attlist (("weight" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €€û79û`(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €€û79ëûw·úû¹†ÖY(attlist (("valign" (name-token-group ("top" "middle" "bottom")) IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ûDaa(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED) ("class" (name-token-group ("limit")) IMPLIED))) €€û79û`(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €€û79ëûw·úû¹†ÖY(attlist (("linkends" IDREFS IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €W9ëûw·›å‹ŒÏvùúÊû|XwÐûMû:œÃûhû`û8ût |û/Ž[ûNûZÔcÄûû&P„…4ûFÕûû;û û}ûo'ûx¸d:ûUû<5ûG¬û4û¹¤†Ñû=iûa“ûuÖì û}Y\ºe(attlist (("label" CDATA IMPLIED) ("status" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) € û ûLûLû,×̱¥ûsû#:äp #û]ûzû@¶òb«û8øû)Vôêûnû^û óûÓÁ2àqðû{û2ÉûeµûjNû1¢Mû%ûmU­úûJ·T’šûû7€H^¥±Ì×û,:äp #û]ûzû@¶òb«û8øû)Vôêûnû^û óûÓÁ2àqðû{û2ÉûeµûjNû1¢Mû%ûmU­úûJ·T’šûû7€H^û,×̱¥:äp #û]ûzû@¶òb«û8øû)Vôêûnû^û óûÓÁ2àqðû{û2ÉûeµûjNû1¢Mû%ûmU­úûJ·T’šûû7€H^û,×̱¥ûs:äp #û]ûzû@¶òb«û8øû)Vôêûnû^û óûÓÁ2àqðû{û2ÉûeµûjNû1¢Mû%ûmU­úûJ·T’šûû7€H^?û, × Ì ± ¥ H ^ äp #û]ûzû@¶òb«û8øû)Vôêûnû^û óûÓÁ2àqðû{û2ÉûeµûjNû1¢Mû%ûmU­úûJ·T’šûû7€û, × Ì ± ¥ Hû, × Ì ± ¥ ^¥ ± Ì × û, û, × Ì ± ¥ ^ H û, × Ì ± ¥ ^ (attlist (("fpi" CDATA IMPLIED) ("label" CDATA IMPLIED) ("status" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €sû,×±¥yÆçûX!>ÌûBxûLxûBÌ>!ûXçÆy¥±×û,ssû,×±¥yÆçûX!>ÌûBxsû,×±¥yÆçûX!>ÌûBxûsû#sû,×±¥yÆçûX!>ÌûBxsû,×±¥yÆçûX!>ÌûBxûs(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) (attlist (("rowsep" CDATA IMPLIED) ("valign" (name-token-group ("top" "middle" "bottom")) IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ã¿¿ã(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ûL-äp #û]ûzû@«û8øû)Vôêûnû^û óûÓÁ2àqðû{û2ÉûeµûjNû1¢Mû%U­úûJ·û7€-€û7·ûJú­Uû%M¢û1NûjµûeÉû2û{ðqà2ÁÓûóû û^ûnêôVû)ø8û«û@ûzû]# pä-äp #û]ûzû@«û8øû)Vôêûnû^û óûÓÁ2àqðû{û2ÉûeµûjNû1¢Mû%U­úûJ·û7€(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €€û79û`(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €Jû<(attlist (("linkend" IDREF REQUIRED) ("label" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) (attlist (("linkends" IDREFS IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €W9ëûw·›å‹ŒÏvùúÊû|XwÐûMû:œÃûhû`û8ût |û/Ž[ûNûZÔcÄûû&P„…4ûFÕûû;û û}ûo'ûx¸d:ûUû<5ûG¬û4û¹¤†Ñû=iûa“ûuÖì û}Y\ºe(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €1û7T·ûJúUû%M¢û1NûjµûeÉû2û{ðqà2ÁÓûóû û^ûnêôVû)ø8û«bò¶û@ûzû]# pä1äp #û]ûzû@¶òb«û8øû)Vôêûnû^û óûÓÁ2àqðû{û2ÉûeµûjNû1¢Mû%UúûJ·Tû7(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €à2ÁÁ2à(attlist (("label" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €"NûjµûeÉû2û{ðqà2ÁÓûóû û^ûnêôVû)ø8û«û@ûzû]# pä"äp #û]ûzû@«û8øû)Vôêûnû^û óûÓÁ2àqðû{û2ÉûeµûjN(attlist (("label" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) € ûL<äp #û]ûzû@¶òb«û8øû)Vôêûnû^û óûÓÁ2àqðû{û2ÉûeµûjNû1¢Mû%ûmU­úûJ·T’šûû7€^-HQûsû#<äp #û]ûzû@¶òb«û8øû)Vôêûnû^û óûÓÁ2àqðû{û2ÉûeµûjNû1¢Mû%ûmU­úûJ·T’šûû7€^-HQ$û8€û7ûš’T·ûJú­Uûmû%M¢û1NûjµûeÉû2û{ðqà2ÁÓûóû û^ûnêôVû)ø8û«bò¶û@ûzû]# päû>$û:äp #û]ûzû@¶òb«û8øû)Vôêûnû^û óûÓÁ2àqðû{û2ÉûeµûjNû1¢Mû%ûmU­úûJ·T’šûû7€ûsû#û>$û9äp #û]ûzû@¶òb«û8øû)Vôêûnû^û óûÓÁ2àqðû{û2ÉûeµûjNû1¢Mû%ûmU­úûJ·T’šûû7€ûLû>$ûû>û$8äp #û]ûzû@¶òb«û8øû)Vôêûnû^û óûÓÁ2àqðû{û2ÉûeµûjNû1¢Mû%ûmU­úûJ·T’šûû7€û>$û9äp #û]ûzû@¶òb«û8øû)Vôêûnû^û óûÓÁ2àqðû{û2ÉûeµûjNû1¢Mû%ûmU­úûJ·T’šûû7€ûsû>$û(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €9û7¨š@û!ûKOûìûsûLû#û3› ûEûAEå‹h‚ŒûgB ö÷û ¯vuûûû_3Âùƒq’\û9ûfû*ÏõÉû{9û{ÉõÏû*ûfû9\’qƒùÂ3û_ûûuv¯ û÷ö BûgŒ‚h‹åEAûûE ›û3û#ûLûsìûOûKû!@š¨û7(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ûL(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) € û79ëûw·û`†Öû¹(attlist (("srccredit" CDATA IMPLIED) ("pagenum" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("linkend" IDREF IMPLIED) ("role" CDATA IMPLIED))) €b€û7Óûóû û^ûnêôŠ9ëûw·›å‹ŒÏvùúÊû|XwÐûMû:œÃûhû`û8ût |û/Ž[ûNûZÔcÄûû&P„…4ûFÕûû;û û}ûo'ûx¸d:ûUû<5ûG¬û4û¹¤†Ñû=iûa“ûuÖì û}Y\ºe(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €  ¡(attlist (("width" CDATA IMPLIED) ("format" (NOTATION ("linespecific")) (nil "linespecific")) ("linenumbering" (name-token-group ("numbered" "unnumbered")) IMPLIED) ("class" (name-token-group ("monospaced" "normal")) (nil "normal")) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €dÜ7€û7Óûóû û^ûnêôŠ9ëûw·›å‹ŒÏvùúÊû|XwÐûMû:œÃûhû`û8ût |û/Ž[ûNûZÔcÄûû&P„…4ûFÕûû;û û}ûo'ûx¸d:ûUû<5ûG¬û4û¹¤†Ñû=iûa“ûuÖì û}Y\ºe(attlist (("class" (name-token-group ("hardware" "software")) IMPLIED) ("moreinfo" (name-token-group ("refentry" "none")) (nil "none")) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €b€û7Óûóû û^ûnêôŠ9ëûw·›å‹ŒÏvùúÊû|XwÐûMû:œÃûhû`û8ût |û/Ž[ûNûZÔcÄûû&P„…4ûFÕûû;û û}ûo'ûx¸d:ûUû<5ûG¬û4û¹¤†Ñû=iûa“ûuÖì û}Y\ºe(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ûL¦2äp #û]ûzû@¶òb«û8øû)Vôêûnû^û óûÓÁ2àqðû{û2ÉûeµûjNû1¢Mû%UúûJ·Tû7€ûs2äp #û]ûzû@¶òb«û8øû)Vôêûnû^û óûÓÁ2àqðû{û2ÉûeµûjNû1¢Mû%UúûJ·Tû7€ûL2äp #û]ûzû@¶òb«û8øû)Vôêûnû^û óûÓÁ2àqðû{û2ÉûeµûjNû1¢Mû%UúûJ·Tû7€2äp #û]ûzû@¶òb«û8øû)Vôêûnû^û óûÓÁ2àqðû{û2ÉûeµûjNû1¢Mû%UúûJ·Tû7€2äp #û]ûzû@¶òb«û8øû)Vôêûnû^û óûÓÁ2àqðû{û2ÉûeµûjNû1¢Mû%UúûJ·Tû7€(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) € û79ëûw·û`†Öû¹(attlist (("linkend" IDREF IMPLIED) ("pagenum" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €b€û7Óûóû û^ûnêôŠ9ëûw·›å‹ŒÏvùúÊû|XwÐûMû:œÃûhû`û8ût |û/Ž[ûNûZÔcÄûû&P„…4ûFÕûû;û û}ûo'ûx¸d:ûUû<5ûG¬û4û¹¤†Ñû=iûa“ûuÖì û}Y\ºe(attlist (("status" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) € :äp #û]ûzû@¶òb«û8øû)Vôêûnû^û óûÓÁ2àqðû{û2ÉûeµûjNû1¢Mû%ûmU­úûJ·T’šûû7€ûLæûO˜8€û7ûš’T·ûJú­Uûmû%M¢û1NûjµûeÉû2û{ðqà2ÁÓûóû û^ûnêôVû)ø8û«bò¶û@ûzû]# päûO˜:äp #û]ûzû@¶òb«û8øû)Vôêûnû^û óûÓÁ2àqðû{û2ÉûeµûjNû1¢Mû%ûmU­úûJ·T’šûû7€ûsû#ûO˜9äp #û]ûzû@¶òb«û8øû)Vôêûnû^û óûÓÁ2àqðû{û2ÉûeµûjNû1¢Mû%ûmU­úûJ·T’šûû7€ûLûO˜¥ûO¥˜8äp #û]ûzû@¶òb«û8øû)Vôêûnû^û óûÓÁ2àqðû{û2ÉûeµûjNû1¢Mû%ûmU­úûJ·T’šûû7€ûO˜9äp #û]ûzû@¶òb«û8øû)Vôêûnû^û óûÓÁ2àqðû{û2ÉûeµûjNû1¢Mû%ûmU­úûJ·T’šûû7€ûsûO˜(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) € û79ëûw·û`†Öû¹(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €o1äp #û]ûzû@¶òb«û8øû)Vôêûnû^û óûÓÁ2àqðû{û2ÉûeµûjNû1¢Mû%UúûJ·Tû71û7T·ûJúUû%M¢û1NûjµûeÉû2û{ðqà2ÁÓûóû û^ûnêôVû)ø8û«bò¶û@ûzû]# pä1äp #û]ûzû@¶òb«û8øû)Vôêûnû^û óûÓÁ2àqðû{û2ÉûeµûjNû1¢Mû%UúûJ·Tû7(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ûL8äp #û]ûzû@¶òb«û8øû)Vôêûnû^û óûÓÁ2àqðû{û2ÉûeµûjNû1¢Mû%ûmU­úûJ·T’šûû7€8€û7ûš’T·ûJú­Uûmû%M¢û1NûjµûeÉû2û{ðqà2ÁÓûóû û^ûnêôVû)ø8û«bò¶û@ûzû]# pä8äp #û]ûzû@¶òb«û8øû)Vôêûnû^û óûÓÁ2àqðû{û2ÉûeµûjNû1¢Mû%ûmU­úûJ·T’šûû7€(attlist (("width" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €$€û7NûjµûeÉû2û{ðqà2ÁÓûóû û^ûnêôVû)ø8û«û@ûzû]# pä$äp #û]ûzû@«û8øû)Vôêûnû^û óûÓÁ2àqðû{û2ÉûeµûjNû7€(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ûL-äp #û]ûzû@«û8øû)Vôêûnû^û óûÓÁ2àqðû{û2ÉûeµûjNû1¢Mû%U­úûJ·û7€-€û7·ûJú­Uû%M¢û1NûjµûeÉû2û{ðqà2ÁÓûóû û^ûnêôVû)ø8û«û@ûzû]# pä-äp #û]ûzû@«û8øû)Vôêûnû^û óûÓÁ2àqðû{û2ÉûeµûjNû1¢Mû%U­úûJ·û7€(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €b€û7Óûóû û^ûnêôŠ9ëûw·›å‹ŒÏvùúÊû|XwÐûMû:œÃûhû`û8ût |û/Ž[ûNûZÔcÄûû&P„…4ûFÕûû;û û}ûo'ûx¸d:ûUû<5ûG¬û4û¹¤†Ñû=iûa“ûuÖì û}Y\ºe(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €JûU(attlist (("endterm" IDREF IMPLIED) ("linkend" IDREF REQUIRED) ("type" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €b€û7Óûóû û^ûnêôŠ9ëûw·›å‹ŒÏvùúÊû|XwÐûMû:œÃûhû`û8ût |û/Ž[ûNûZÔcÄûû&P„…4ûFÕûû;û û}ûo'ûx¸d:ûUû<5ûG¬û4û¹¤†Ñû=iûa“ûuÖì û}Y\ºe(attlist (("endterm" IDREF IMPLIED) ("linkend" IDREF REQUIRED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) (attlist (("linkend" IDREF IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €W9ëûw·›å‹ŒÏvùúÊû|XwÐûMû:œÃûhû`û8ût |û/Ž[ûNûZÔcÄûû&P„…4ûFÕûû;û û}ûo'ûx¸d:ûUû<5ûG¬û4û¹¤†Ñû=iûa“ûuÖì û}Y\ºe(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €9û7¨š@û!ûKOûìûsûLû#û3› ûEûAEå‹h‚ŒûgB ö÷û ¯vuûûû_3Âùƒq’\û9ûfû*ÏõÉû{9û{ÉõÏû*ûfû9\’qƒùÂ3û_ûûuv¯ û÷ö BûgŒ‚h‹åEAûûE ›û3û#ûLûsìûOûKû!@š¨û7(attlist (("format" (NOTATION ("linespecific")) (nil "linespecific")) ("linenumbering" (name-token-group ("numbered" "unnumbered")) IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €B7€û79ëûw·úÊû|XwÐûMû:œÃûhû`û8ût |û/Ž[ûNûZÔcÄûû&P„…4ûFÕûû;û û}ûo'ûx¸d:ûUû<5ûG¬û4û¹(attlist (("format" (NOTATION ("linespecific")) (nil "linespecific")) ("linenumbering" (name-token-group ("numbered" "unnumbered")) IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €B7€û79ëûw·úÊû|XwÐûMû:œÃûhû`û8ût |û/Ž[ûNûZÔcÄûû&P„…4ûFÕûû;û û}ûo'ûx¸d:ûUû<5ûG¬û4û¹(attlist (("colname" CDATA IMPLIED) ("namest" CDATA IMPLIED) ("nameend" CDATA IMPLIED) ("spanname" CDATA IMPLIED) ("morerows" CDATA IMPLIED) ("colsep" CDATA IMPLIED) ("rowsep" CDATA IMPLIED) ("align" (name-token-group ("left" "right" "center" "justify" "char")) IMPLIED) ("char" CDATA IMPLIED) ("charoff" CDATA IMPLIED) ("rotate" CDATA IMPLIED) ("valign" (name-token-group ("top" "middle" "bottom")) IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €yÉû{à2ÁVû)ø8û«bò¶û@ûzû]# pä€û7Óûóû û^ûnêôŠ9ëûw·›å‹ŒÏvùúÊû|XwÐûMû:œÃûhû`û8ût |û/Ž[ûNûZÔcÄûû&P„…4ûFÕûû;û û}ûo'ûx¸d:ûUû<5ûG¬û4û¹¤†Ñû=iûa“ûuÖì û}Y\ºe(attlist (("namest" CDATA REQUIRED) ("nameend" CDATA REQUIRED) ("spanname" CDATA REQUIRED) ("colsep" CDATA IMPLIED) ("rowsep" CDATA IMPLIED) ("align" (name-token-group ("left" "right" "center" "justify" "char")) IMPLIED) ("char" CDATA IMPLIED) ("charoff" CDATA IMPLIED))) (attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ûLû72(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €Œvû_÷ùù÷û_vŒ(attlist (("class" (name-token-group ("attribute" "attvalue" "element" "endtag" "emptytag" "genentity" "numcharref" "paramentity" "pi" "xmlpi" "starttag" "sgmlcomment")) IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €€û79û`(attlist (("moreinfo" (name-token-group ("refentry" "none")) (nil "none")) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €€û79û`(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €9û7¨š@û!ûKOûìûsûLû#û3› ûEûAEå‹h‚ŒûgB ö÷û ¯vuûûû_3Âùƒq’\û9ûfû*ÏõÉû{9û{ÉõÏû*ûfû9\’qƒùÂ3û_ûûuv¯ û÷ö BûgŒ‚h‹åEAûûE ›û3û#ûLûsìûOûKû!@š¨û7(attlist (("label" CDATA IMPLIED) ("status" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €%ûLûLû,×̱¥ûsû#<äp #û]ûzû@¶òb«û8øû)Vôêûnû^û óûÓÁ2àqðû{û2ÉûeµûjNû1¢Mû%ûmU­úûJ·T’šûû7€^- H Q <äp #û]ûzû@¶òb«û8øû)Vôêûnû^û óûÓÁ2àqðû{û2ÉûeµûjNû1¢Mû%ûmU­úûJ·T’šûû7€^- H Q ¥±Ì×û,<äp #û]ûzû@¶òb«û8øû)Vôêûnû^û óûÓÁ2àqðû{û2ÉûeµûjNû1¢Mû%ûmU­úûJ·T’šûû7€^- H Q û,×̱¥<äp #û]ûzû@¶òb«û8øû)Vôêûnû^û óûÓÁ2àqðû{û2ÉûeµûjNû1¢Mû%ûmU­úûJ·T’šûû7€^- H Q û,×̱¥ûs<äp #û]ûzû@¶òb«û8øû)Vôêûnû^û óûÓÁ2àqðû{û2ÉûeµûjNû1¢Mû%ûmU­úûJ·T’šûû7€^- H Q Aû, × Ì ± ¥ Q H-^äp #û]ûzû@¶òb«û8øû)Vôêûnû^û óûÓÁ2àqðû{û2ÉûeµûjNû1¢Mû%ûmU­úûJ·T’šûû7€û, × Ì ± ¥ ^û, × Ì ± ¥ - û, × Ì ± ¥ H û, × Ì ± ¥ Q ¥ ± Ì × û, û, × Ì ± ¥ ^-HQ û, × Ì ± ¥ Hû, × Ì ± ¥ -û, × Ì ± ¥ ^(attlist (("fpi" CDATA IMPLIED) ("status" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €û,+ûL__û,_û,+ûsû#_ûB_û,+_û,+ûs_(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED) ("audience" CDATA IMPLIED) ("level" CDATA IMPLIED) ("origin" CDATA IMPLIED))) €´(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ûrûI•zz•ûIÛûI•zL(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €€û79û`(attlist (("class" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) € û79ëûw·û`†Öû¹(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €<ûñäp #û]ûzû@¶òb«û8øû)Vôêûnû^û óûÓÁ2àqðû{û2ÉûeµûjNû1¢Mû%ûmU­úûJ·T’šûû7€ûL~ñûñ:ûñ€û7ûš’T·ûJú­Uûmû%M¢û1NûjµûeÉû2û{ðqà2ÁÓûóû û^ûnêôVû)ø8û«bò¶û@ûzû]# pä<ûñäp #û]ûzû@¶òb«û8øû)Vôêûnû^û óûÓÁ2àqðû{û2ÉûeµûjNû1¢Mû%ûmU­úûJ·T’šûû7€ûsû#;ûñäp #û]ûzû@¶òb«û8øû)Vôêûnû^û óûÓÁ2àqðû{û2ÉûeµûjNû1¢Mû%ûmU­úûJ·T’šûû7€ûL:ûñäp #û]ûzû@¶òb«û8øû)Vôêûnû^û óûÓÁ2àqðû{û2ÉûeµûjNû1¢Mû%ûmU­úûJ·T’šûû7€;ûñäp #û]ûzû@¶òb«û8øû)Vôêûnû^û óûÓÁ2àqðû{û2ÉûeµûjNû1¢Mû%ûmU­úûJ·T’šûû7€ûs(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €(attlist (("subject" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €)€û7·û%M¢û1NûjµûeÉû2û{ðqà2ÁÓûóû û^ûnêôVû)ø8û«û@ûzû]# pä*‘äp #û]ûzû@«û8øû)Vôêûnû^û óûÓÁ2àqðû{û2ÉûeµûjNû1¢Mû%·û7€‘(attlist (("application" (NOTATION ("BMP" "CGM-CHAR" "CGM-BINARY" "CGM-CLEAR" "DITROFF" "DVI" "EPS" "EQN" "FAX" "GIF" "GIF87a" "GIF89a" "JPG" "JPEG" "IGES" "PCX" "PIC" "PNG" "PS" "SGML" "TBL" "TEX" "TIFF" "WMF" "WPG" "linespecific")) IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) € û79ëûw·û`†Öû¹(attlist (("class" (name-token-group ("constant" "groupname" "library" "macro" "osname" "resource" "systemname" "username")) IMPLIED) ("moreinfo" (name-token-group ("refentry" "none")) (nil "none")) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €Y€û79û`(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €b€û7Óûóû û^ûnêôŠ9ëûw·›å‹ŒÏvùúÊû|XwÐûMû:œÃûhû`û8ût |û/Ž[ûNûZÔcÄûû&P„…4ûFÕûû;û û}ûo'ûx¸d:ûUû<5ûG¬û4û¹¤†Ñû=iûa“ûuÖì û}Y\ºe(attlist (("sortas" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €W9ëûw·›å‹ŒÏvùúÊû|XwÐûMû:œÃûhû`û8ût |û/Ž[ûNûZÔcÄûû&P„…4ûFÕûû;û û}ûo'ûx¸d:ûUû<5ûG¬û4û¹¤†Ñû=iûa“ûuÖì û}Y\ºe(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €XûJ55ÚûJûUÚJûUJJûU(attlist (("action" (name-token-group ("click" "double-click" "press" "seq" "simul" "other")) IMPLIED) ("otheraction" CDATA IMPLIED) ("moreinfo" (name-token-group ("refentry" "none")) (nil "none")) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €|ûZÔÄÄÔûZ|(attlist (("moreinfo" (name-token-group ("refentry" "none")) (nil "none")) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €A€û79ëûw·úÊû|XwÐûMû:œÃûhû`û8ût |û/Ž[ûNûZÔcÄûû&P„…4ûFÕûû;û û}ûo'ûx¸d:ûUû<5ûG¬û4û¹(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €b€û7Óûóû û^ûnêôŠ9ëûw·›å‹ŒÏvùúÊû|XwÐûMû:œÃûhû`û8ût |û/Ž[ûNûZÔcÄûû&P„…4ûFÕûû;û û}ûo'ûx¸d:ûUû<5ûG¬û4û¹¤†Ñû=iûa“ûuÖì û}Y\ºe(attlist (("label" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €©ûL©©ûsû#©©ûs(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €€û79ëûw·úû¹†ÖY(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) € û79ëûw·û`†Öû¹(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED) ("choice" (name-token-group ("opt" "req" "plain")) (nil "req")) ("rep" (name-token-group ("norepeat" "repeat")) (nil "norepeat")))) €XJ00JžJJJ(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ðà2ÁVû)ø8û«bò¶û@ûzû]# pä(attlist (("label" CDATA IMPLIED) ("linkends" IDREFS IMPLIED) ("id" ID REQUIRED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) (attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €€û79û`(attlist (("relation" CDATA IMPLIED) ("role" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED))) €4Þû7¨š@û!ûKOûìûsûLû#û3› ûEûAEå‹h‚ŒûgB ö÷û ¯vuûûû_3Âùƒq’\(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €Yû7Š9ëûw·›å‹ŒÏvùúÊû|XwÐûMû:œÃûhû`û8ût |û/Ž[ûNûZÔcÄûû&P„…4ûFÕûû;û û}ûo'ûx¸d:ûUû<5ûG¬û4û¹¤†Ñû=iûa“ûuÖì û}Y\ºe(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €b€û7Óûóû û^ûnêôŠ9ëûw·›å‹ŒÏvùúÊû|XwÐûMû:œÃûhû`û8ût |û/Ž[ûNûZÔcÄûû&P„…4ûFÕûû;û û}ûo'ûx¸d:ûUû<5ûG¬û4û¹¤†Ñû=iûa“ûuÖì û}Y\ºe(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) € û79ëûw·û`†Öû¹(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) € û79ëûw·û`†Öû¹(attlist (("cols" CDATA REQUIRED) ("tgroupstyle" CDATA IMPLIED) ("colname" CDATA IMPLIED) ("spanname" CDATA IMPLIED) ("namest" CDATA IMPLIED) ("nameend" CDATA IMPLIED) ("colsep" CDATA IMPLIED) ("rowsep" CDATA IMPLIED) ("align" (name-token-group ("left" "right" "center" "justify" "char")) IMPLIED) ("char" CDATA IMPLIED) ("charoff" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ZÀûDûlûlZÀûl(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ûL"ûs"""(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) € û79ëûw·û`†Öû¹(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €9û7¨š@û!ûKOûìûsûLû#û3› ûEûAEå‹h‚ŒûgB ö÷û ¯vuûûû_3Âùƒq’\û9ûfû*ÏõÉû{9û{ÉõÏû*ûfû9\’qƒùÂ3û_ûûuv¯ û÷ö BûgŒ‚h‹åEAûûE ›û3û#ûLûsìûOûKû!@š¨û7(attlist (("label" CDATA IMPLIED) ("status" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ûûLûLjûsû#HHjHjûsHH(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €€û79û`(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) € û79ëûw·û`†Öû¹(attlist (("label" CDATA IMPLIED) ("sepchar" CDATA (nil " ")) ("cmdlength" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ûSŸûxtûxŸûSt(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) € ëûw·ú9ûMû`Öû¹(attlist (("pubwork" (name-token-group ("article" "book" "chapter" "part" "refentry" "section" "journal" "series" "set" "manuscript")) IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €b€û7Óûóû û^ûnêôŠ9ëûw·›å‹ŒÏvùúÊû|XwÐûMû:œÃûhû`û8ût |û/Ž[ûNûZÔcÄûû&P„…4ûFÕûû;û û}ûo'ûx¸d:ûUû<5ûG¬û4û¹¤†Ñû=iûa“ûuÖì û}Y\ºe(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €û'ûA·¹ûû¹·(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €9û7¨š@û!ûKOûìûsûLû#û3› ûEûAEå‹h‚ŒûgB ö÷û ¯vuûûû_3Âùƒq’\û9ûfû*ÏõÉû{9û{ÉõÏû*ûfû9\’qƒùÂ3û_ûûuv¯ û÷ö BûgŒ‚h‹åEAûûE ›û3û#ûLûsìûOûKû!@š¨û7(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("entityref" ENTITY IMPLIED) ("fileref" CDATA IMPLIED) ("format" (name-token-group ("BMP" "CGM-CHAR" "CGM-BINARY" "CGM-CLEAR" "DITROFF" "DVI" "EPS" "EQN" "FAX" "GIF" "GIF87a" "GIF89a" "JPG" "JPEG" "IGES" "PCX" "PIC" "PNG" "PS" "SGML" "TBL" "TEX" "TIFF" "WMF" "WPG" "linespecific")) IMPLIED) ("srccredit" CDATA IMPLIED) ("width" CDATA IMPLIED) ("depth" CDATA IMPLIED) ("align" (name-token-group ("left" "right" "center")) IMPLIED) ("scale" CDATA IMPLIED) ("scalefit" CDATA IMPLIED) ("role" CDATA IMPLIED))) (attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ûdûL8äp #û]ûzû@¶òb«û8øû)Vôêûnû^û óûÓÁ2àqðû{û2ÉûeµûjNû1¢Mû%ûmU­úûJ·T’šûû7€8äp #û]ûzû@¶òb«û8øû)Vôêûnû^û óûÓÁ2àqðû{û2ÉûeµûjNû1¢Mû%ûmU­úûJ·T’šûû7€ûd8äp #û]ûzû@¶òb«û8øû)Vôêûnû^û óûÓÁ2àqðû{û2ÉûeµûjNû1¢Mû%ûmU­úûJ·T’šûû7€8äp #û]ûzû@¶òb«û8øû)Vôêûnû^û óûÓÁ2àqðû{û2ÉûeµûjNû1¢Mû%ûmU­úûJ·T’šûû7€(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €]f<»f(<»(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ûL-äp #û]ûzû@«û8øû)Vôêûnû^û óûÓÁ2àqðû{û2ÉûeµûjNû1¢Mû%U­úûJ·û7€-€û7·ûJú­Uû%M¢û1NûjµûeÉû2û{ðqà2ÁÓûóû û^ûnêôVû)ø8û«û@ûzû]# pä-äp #û]ûzû@«û8øû)Vôêûnû^û óûÓÁ2àqðû{û2ÉûeµûjNû1¢Mû%U­úûJ·û7€(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €5JÚûÚûûUÚûUûU(attlist (("label" CDATA IMPLIED) ("format" (NOTATION ("linespecific")) (nil "linespecific")) ("linenumbering" (name-token-group ("numbered" "unnumbered")) IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €fÜ7Éû{€û7Óûóû û^ûnêôŠ9ëûw·›å‹ŒÏvùúÊû|XwÐûMû:œÃûhû`û8ût |û/Ž[ûNûZÔcÄûû&P„…4ûFÕûû;û û}ûo'ûx¸d:ûUû<5ûG¬û4û¹¤†Ñû=iûa“ûuÖì û}Y\ºe(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ûLäp #û]ûzû@¶òb«û8øû)VÁ2àðû7€€û7ðà2ÁVû)ø8û«bò¶û@ûzû]# pääp #û]ûzû@¶òb«û8øû)VÁ2àðû7€(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) € û79ëûw·û`†Öû¹(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €¨š@û!ûKOûûOûKû!@š¨(attlist (("width" CDATA IMPLIED) ("format" (NOTATION ("linespecific")) (nil "linespecific")) ("linenumbering" (name-token-group ("numbered" "unnumbered")) IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €d7Ü€û7Óûóû û^ûnêôŠ9ëûw·›å‹ŒÏvùúÊû|XwÐûMû:œÃûhû`û8ût |û/Ž[ûNûZÔcÄûû&P„…4ûFÕûû;û û}ûo'ûx¸d:ûUû<5ûG¬û4û¹¤†Ñû=iûa“ûuÖì û}Y\ºe(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €¨š@û!ûKOûûOûKû!@š¨(attlist (("id" ID REQUIRED) ("pagenum" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) (attlist (("width" CDATA IMPLIED) ("format" (NOTATION ("linespecific")) (nil "linespecific")) ("linenumbering" (name-token-group ("numbered" "unnumbered")) IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €d7Ü€û7Óûóû û^ûnêôŠ9ëûw·›å‹ŒÏvùúÊû|XwÐûMû:œÃûhû`û8ût |û/Ž[ûNûZÔcÄûû&P„…4ûFÕûû;û û}ûo'ûx¸d:ûUû<5ûG¬û4û¹¤†Ñû=iûa“ûuÖì û}Y\ºe(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) € û79ëûw·û`†Öû¹(attlist (("performance" (name-token-group ("optional" "required")) (nil "required")) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ûL9äp #û]ûzû@¶òb«û8øû)Vôêûnû^û óûÓÁ2àqðû{û2ÉûeµûjNû1¢Mû%ûmU­úûJ·T’šûû7€S9S€û7ûš’T·ûJú­Uûmû%M¢û1NûjµûeÉû2û{ðqà2ÁÓûóû û^ûnêôVû)ø8û«bò¶û@ûzû]# pä9Säp #û]ûzû@¶òb«û8øû)Vôêûnû^û óûÓÁ2àqðû{û2ÉûeµûjNû1¢Mû%ûmU­úûJ·T’šûû7€8€û7ûš’T·ûJú­Uûmû%M¢û1NûjµûeÉû2û{ðqà2ÁÓûóû û^ûnêôVû)ø8û«bò¶û@ûzû]# pä8€û7ûš’T·ûJú­Uûmû%M¢û1NûjµûeÉû2û{ðqà2ÁÓûóû û^ûnêôVû)ø8û«bò¶û@ûzû]# pä(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €5JÚûÚûûUÚûUûU(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) € û79ëûw·û`†Öû¹(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ûdÁ2àà2ÁÁ2à(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €£´‰£´´(attlist (("class" (name-token-group ("headerfile" "devicefile" "libraryfile" "directory" "symlink")) IMPLIED) ("path" CDATA IMPLIED) ("moreinfo" (name-token-group ("refentry" "none")) (nil "none")) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €€û79û`(attlist (("moreinfo" (name-token-group ("refentry" "none")) (nil "none")) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €€û79û`(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €9û7¨š@û!ûKOûìûsûLû#û3› ûEûAEå‹h‚ŒûgB ö÷û ¯vuûûû_3Âùƒq’\û9ûfû*ÏõÉû{9û{ÉõÏû*ûfû9\’qƒùÂ3û_ûûuv¯ û÷ö BûgŒ‚h‹åEAûûE ›û3û#ûLûsìûOûKû!@š¨û7(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €9û7¨š@û!ûKOûìûsûLû#û3› ûEûAEå‹h‚ŒûgB ö÷û ¯vuûûû_3Âùƒq’\û9ûfû*ÏõÉû{9û{ÉõÏû*ûfû9\’qƒùÂ3û_ûûuv¯ û÷ö BûgŒ‚h‹åEAûûE ›û3û#ûLûsìûOûKû!@š¨û7(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €9û7¨š@û!ûKOûìûsûLû#û3› ûEûAEå‹h‚ŒûgB ö÷û ¯vuûûû_3Âùƒq’\û9ûfû*ÏõÉû{9û{ÉõÏû*ûfû9\’qƒùÂ3û_ûûuv¯ û÷ö BûgŒ‚h‹åEAûûE ›û3û#ûLûsìûOûKû!@š¨û7(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) € û79ëûw·û`†Öû¹(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) € û79ëûw·û`†Öû¹(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €‡zä(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €b€û7Óûóû û^ûnêôŠ9ëûw·›å‹ŒÏvùúÊû|XwÐûMû:œÃûhû`û8ût |û/Ž[ûNûZÔcÄûû&P„…4ûFÕûû;û û}ûo'ûx¸d:ûUû<5ûG¬û4û¹¤†Ñû=iûa“ûuÖì û}Y\ºe(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €2äp #û]ûzû@¶òb«û8øû)Vôêûnû^û óûÓÁ2àqðû{û2ÉûeµûjNû1¢Mû%UúûJ·Tû7ûLû1û7T·ûJúUû%M¢û1NûjµûeÉû2û{ðqà2ÁÓûóû û^ûnêôVû)ø8û«bò¶û@ûzû]# päû2äp #û]ûzû@¶òb«û8øû)Vôêûnû^û óûÓÁ2àqðû{û2ÉûeµûjNû1¢Mû%UúûJ·Tû7ûsûû1äp #û]ûzû@¶òb«û8øû)Vôêûnû^û óûÓÁ2àqðû{û2ÉûeµûjNû1¢Mû%UúûJ·Tû7û(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €qû/á(attlist (("moreinfo" (name-token-group ("refentry" "none")) (nil "none")) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €è€û79û`(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €9û7¨š@û!ûKOûìûsûLû#û3› ûEûAEå‹h‚ŒûgB ö÷û ¯vuûûû_3Âùƒq’\û9ûfû*ÏõÉû{9û{ÉõÏû*ûfû9\’qƒùÂ3û_ûûuv¯ û÷ö BûgŒ‚h‹åEAûûE ›û3û#ûLûsìûOûKû!@š¨û7(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €3\’qƒùÂ3û_ûûuv¯ û÷ö BûgŒ‚h‹åEAûûE ›û3û#ûLûsìûOûKû!@š¨û7û"3û"û7¨š@û!ûKOûìûsûLû#û3› ûEûAEå‹h‚ŒûgB ö÷û ¯vuûûû_3Âùƒq’\(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) € û79ëûw·û`†Öû¹(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) € û79ëûw·û`†Öû¹(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €€û79û`(attlist (("targetdocent" ENTITY IMPLIED) ("linkmode" IDREF IMPLIED) ("localinfo" CDATA IMPLIED) ("type" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €b€û7Óûóû û^ûnêôŠ9ëûw·›å‹ŒÏvùúÊû|XwÐûMû:œÃûhû`û8ût |û/Ž[ûNûZÔcÄûû&P„…4ûFÕûû;û û}ûo'ûx¸d:ûUû<5ûG¬û4û¹¤†Ñû=iûa“ûuÖì û}Y\ºe(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €9û7¨š@û!ûKOûìûsûLû#û3› ûEûAEå‹h‚ŒûgB ö÷û ¯vuûûû_3Âùƒq’\û9ûfû*ÏõÉû{9û{ÉõÏû*ûfû9\’qƒùÂ3û_ûûuv¯ û÷ö BûgŒ‚h‹åEAûûE ›û3û#ûLûsìûOûKû!@š¨û7(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €W9ëûw·›å‹ŒÏvùúÊû|XwÐûMû:œÃûhû`û8ût |û/Ž[ûNûZÔcÄûû&P„…4ûFÕûû;û û}ûo'ûx¸d:ûUû<5ûG¬û4û¹¤†Ñû=iûa“ûuÖì û}Y\ºe(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) € û79ëûw·û`†Öû¹(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) € û79ëûw·û`†Öû¹(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €& #û@ûz«û8øû)Vôêûnû^û óûÓÁ2àqðû{û2ÉûeµûjNú·¹û€ûLû]ñ%€û¹·úNûjµûeÉû2û{ðqà2ÁÓûóû û^ûnêôVû)ø8û«ûzû@# ñû]' #û@ûz«û8øû)Vôêûnû^û óûÓÁ2àqðû{û2ÉûeµûjNú·¹û€ûsû#û]ññ% #û@ûz«û8øû)Vôêûnû^û óûÓÁ2àqðû{û2ÉûeµûjNú·¹û€û]ñ& #û@ûz«û8øû)Vôêûnû^û óûÓÁ2àqðû{û2ÉûeµûjNú·¹û€ûsû]ñ(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) (attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €XJÊÊž(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) € û79ëûw·û`†Öû¹(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €9û7¨š@û!ûKOûìûsûLû#û3› ûEûAEå‹h‚ŒûgB ö÷û ¯vuûûû_3Âùƒq’\û9ûfû*ÏõÉû{9û{ÉõÏû*ûfû9\’qƒùÂ3û_ûûuv¯ û÷ö BûgŒ‚h‹åEAûûE ›û3û#ûLûsìûOûKû!@š¨û7(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €Yû7Š9ëûw·›å‹ŒÏvùúÊû|XwÐûMû:œÃûhû`û8ût |û/Ž[ûNûZÔcÄûû&P„…4ûFÕûû;û û}ûo'ûx¸d:ûUû<5ûG¬û4û¹¤†Ñû=iûa“ûuÖì û}Y\ºe(attlist (("valign" (name-token-group ("top" "middle" "bottom")) IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ûDaa(attlist (("frame" (name-token-group ("top" "bottom" "topbot" "all" "sides" "none")) IMPLIED) ("colsep" CDATA IMPLIED) ("rowsep" CDATA IMPLIED) ("tabstyle" CDATA IMPLIED) ("tocentry" CDATA IMPLIED) ("shortentry" CDATA IMPLIED) ("orient" (name-token-group ("port" "land")) IMPLIED) ("pgwide" CDATA IMPLIED) ("label" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ûLû7ûsû{Éû-û7û{Éû-û7û{Éû-û{Éû-(attlist (("moreinfo" (name-token-group ("refentry" "none")) (nil "none")) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €€û79û`(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €6Êû|XwÐûMû:œÃûhû`û8ût |û/Ž[ûNûZÔcÄûû&P„…4ûFÕûû;û û}ûo'ûx¸d:ûUû<5ûG¬û4(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) € û79ëûw·û`†Öû¹(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €‡øä(attlist (("scheme" NMTOKEN IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €WW(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €9û7¨š@û!ûKOûìûsûLû#û3› ûEûAEå‹h‚ŒûgB ö÷û ¯vuûûû_3Âùƒq’\û9ûfû*ÏõÉû{9û{ÉõÏû*ûfû9\’qƒùÂ3û_ûûuv¯ û÷ö BûgŒ‚h‹åEAûûE ›û3û#ûLûsìûOûKû!@š¨û7(attlist (("pagenum" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €*IûL**I*Iûsû#*I*Iûs(attlist (("cols" CDATA REQUIRED) ("tgroupstyle" CDATA IMPLIED) ("colsep" CDATA IMPLIED) ("rowsep" CDATA IMPLIED) ("align" (name-token-group ("left" "right" "center" "justify" "char")) IMPLIED) ("char" CDATA IMPLIED) ("charoff" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €û$ZÀûDûlûlû$ûlû$ZÀûl(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ûûû(attlist (("moreinfo" (name-token-group ("refentry" "none")) (nil "none")) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €kûF4…„PûûP„…4ûFûF4…„Pû(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €? ûvg(attlist (("label" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ÍûLûeû{ÉÉû{Íûsûeû{Éû{ÉÍûeû{É(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €‡û{ä(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) € û79ëûw·û`†Öû¹(attlist (("moreinfo" (name-token-group ("refentry" "none")) (nil "none")) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €€û79û`(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €b€û7Óûóû û^ûnêôŠ9ëûw·›å‹ŒÏvùúÊû|XwÐûMû:œÃûhû`û8ût |û/Ž[ûNûZÔcÄûû&P„…4ûFÕûû;û û}ûo'ûx¸d:ûUû<5ûG¬û4û¹¤†Ñû=iûa“ûuÖì û}Y\ºe(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) € û79ëûw·û`†Öû¹(attlist (("pagenum" CDATA IMPLIED) ("scope" (name-token-group ("all" "global" "local")) IMPLIED) ("significance" (name-token-group ("preferred" "normal")) (nil "normal")) ("class" (name-token-group ("singular" "startofrange" "endofrange")) IMPLIED) ("startref" IDREF IMPLIED) ("zone" IDREFS IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) € ûiûRûQRûÒRRûûiRRû R(attlist (("moreinfo" (name-token-group ("refentry" "none")) (nil "none")) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €€û79û`(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €û7û7(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €€û79û`(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €€û79û`(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €€û79û`(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €b€û7Óûóû û^ûnêôŠ9ëûw·›å‹ŒÏvùúÊû|XwÐûMû:œÃûhû`û8ût |û/Ž[ûNûZÔcÄûû&P„…4ûFÕûû;û û}ûo'ûx¸d:ûUû<5ûG¬û4û¹¤†Ñû=iûa“ûuÖì û}Y\ºe(attlist (("status" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €9äp #û]ûzû@¶òb«û8øû)Vôêûnû^û óûÓÁ2àqðû{û2ÉûeµûjNû1¢Mû%ûmU­úûJ·T’šûû7€ûLû$8€û7ûš’T·ûJú­Uûmû%M¢û1NûjµûeÉû2û{ðqà2ÁÓûóû û^ûnêôVû)ø8û«bò¶û@ûzû]# päû$:äp #û]ûzû@¶òb«û8øû)Vôêûnû^û óûÓÁ2àqðû{û2ÉûeµûjNû1¢Mû%ûmU­úûJ·T’šûû7€ûsû#û$û$8äp #û]ûzû@¶òb«û8øû)Vôêûnû^û óûÓÁ2àqðû{û2ÉûeµûjNû1¢Mû%ûmU­úûJ·T’šûû7€û$9äp #û]ûzû@¶òb«û8øû)Vôêûnû^û óûÓÁ2àqðû{û2ÉûeµûjNû1¢Mû%ûmU­úûJ·T’šûû7€ûsû$(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €9û7¨š@û!ûKOûìûsûLû#û3› ûEûAEå‹h‚ŒûgB ö÷û ¯vuûûû_3Âùƒq’\û9ûfû*ÏõÉû{9û{ÉõÏû*ûfû9\’qƒùÂ3û_ûûuv¯ û÷ö BûgŒ‚h‹åEAûûE ›û3û#ûLûsìûOûKû!@š¨û7(attlist (("termlength" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ûLªûsªªª(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €W€û7ëûw·›å‹ŒÏvùúÊû|XwÐûMû:œÃûhû`û8ût |û/Ž[ûNûZÔcÄûû&P„…4ûFÕûû;û û}ûo'ûx¸d:ûUû<5ûG¬û4û¹¤†Ñû=iûa“ûuÖì û}Y\ºe(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €<ûñäp #û]ûzû@¶òb«û8øû)Vôêûnû^û óûÓÁ2àqðû{û2ÉûeµûjNû1¢Mû%ûmU­úûJ·T’šûû7€ûLû ñûñ:ûñ€û7ûš’T·ûJú­Uûmû%M¢û1NûjµûeÉû2û{ðqà2ÁÓûóû û^ûnêôVû)ø8û«bò¶û@ûzû]# pä<ûñäp #û]ûzû@¶òb«û8øû)Vôêûnû^û óûÓÁ2àqðû{û2ÉûeµûjNû1¢Mû%ûmU­úûJ·T’šûû7€ûsû#;ûñäp #û]ûzû@¶òb«û8øû)Vôêûnû^û óûÓÁ2àqðû{û2ÉûeµûjNû1¢Mû%ûmU­úûJ·T’šûû7€ûL:ûñäp #û]ûzû@¶òb«û8øû)Vôêûnû^û óûÓÁ2àqðû{û2ÉûeµûjNû1¢Mû%ûmU­úûJ·T’šûû7€;ûñäp #û]ûzû@¶òb«û8øû)Vôêûnû^û óûÓÁ2àqðû{û2ÉûeµûjNû1¢Mû%ûmU­úûJ·T’šûû7€ûs(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €&`û&(attlist (("colnum" CDATA IMPLIED) ("colname" CDATA IMPLIED) ("colwidth" CDATA IMPLIED) ("colsep" CDATA IMPLIED) ("rowsep" CDATA IMPLIED) ("align" (name-token-group ("left" "right" "center" "justify" "char")) IMPLIED) ("char" CDATA IMPLIED) ("charoff" CDATA IMPLIED))) (attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) € û79ëûw·û`†Öû¹(attlist (("moreinfo" (name-token-group ("refentry" "none")) (nil "none")) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €è€û79û`(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €€û79û`(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €°°(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ûrïï(attlist (("renderas" (name-token-group ("other" "sect1" "sect2" "sect3" "sect4" "sect5")) IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €Yû7Š9ëûw·›å‹ŒÏvùúÊû|XwÐûMû:œÃûhû`û8ût |û/Ž[ûNûZÔcÄûû&P„…4ûFÕûû;û û}ûo'ûx¸d:ûUû<5ûG¬û4û¹¤†Ñû=iûa“ûuÖì û}Y\ºe(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) € û79ëûw·û`†Öû¹(attlist (("pagenum" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €Yû7Š9ëûw·›å‹ŒÏvùúÊû|XwÐûMû:œÃûhû`û8ût |û/Ž[ûNûZÔcÄûû&P„…4ûFÕûû;û û}ûo'ûx¸d:ûUû<5ûG¬û4û¹¤†Ñû=iûa“ûuÖì û}Y\ºe(attlist (("class" (name-token-group ("limit")) IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €€û79û`(attlist (("moreinfo" (name-token-group ("refentry" "none")) (nil "none")) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €A€û79ëûw·úÊû|XwÐûMû:œÃûhû`û8ût |û/Ž[ûNûZÔcÄûû&P„…4ûFÕûû;û û}ûo'ûx¸d:ûUû<5ûG¬û4û¹(attlist (("status" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ûL:äp #û]ûzû@¶òb«û8øû)Vôêûnû^û óûÓÁ2àqðû{û2ÉûeµûjNû1¢Mû%ûmU­úûJ·T’šûû7€ûsû#˜8€û7ûš’T·ûJú­Uûmû%M¢û1NûjµûeÉû2û{ðqà2ÁÓûóû û^ûnêôVû)ø8û«bò¶û@ûzû]# pä˜8äp #û]ûzû@¶òb«û8øû)Vôêûnû^û óûÓÁ2àqðû{û2ÉûeµûjNû1¢Mû%ûmU­úûJ·T’šûû7€˜9äp #û]ûzû@¶òb«û8øû)Vôêûnû^û óûÓÁ2àqðû{û2ÉûeµûjNû1¢Mû%ûmU­úûJ·T’šûû7€ûs˜˜(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €°ûH°ûH(attlist (("sortas" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €W9ëûw·›å‹ŒÏvùúÊû|XwÐûMû:œÃûhû`û8ût |û/Ž[ûNûZÔcÄûû&P„…4ûFÕûû;û û}ûo'ûx¸d:ûUû<5ûG¬û4û¹¤†Ñû=iûa“ûuÖì û}Y\ºe(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) € û79ëûw·û`†Öû¹(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) (attlist (("label" CDATA IMPLIED) ("linkends" IDREFS IMPLIED) ("units" (name-token-group ("calspair" "linecolumn" "linerange" "linecolumnpair" "other")) IMPLIED) ("otherunits" NMTOKEN IMPLIED) ("coords" CDATA REQUIRED) ("id" ID REQUIRED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) (attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €€û79û`(attlist (("status" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ûLûLûsû#8äp #û]ûzû@¶òb«û8øû)Vôêûnû^û óûÓÁ2àqðû{û2ÉûeµûjNû1¢Mû%ûmU­úûJ·T’šûû7€8äp #û]ûzû@¶òb«û8øû)Vôêûnû^û óûÓÁ2àqðû{û2ÉûeµûjNû1¢Mû%ûmU­úûJ·T’šûû7€ûs8äp #û]ûzû@¶òb«û8øû)Vôêûnû^û óûÓÁ2àqðû{û2ÉûeµûjNû1¢Mû%ûmU­úûJ·T’šûû7€8äp #û]ûzû@¶òb«û8øû)Vôêûnû^û óûÓÁ2àqðû{û2ÉûeµûjNû1¢Mû%ûmU­úûJ·T’šûû7€(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €°ûP°ûP(attlist (("label" CDATA IMPLIED) ("status" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ûLûLjûsû# >Æû,×̱¥!yHç >Æû,×̱¥!yHçj >Æû,×̱¥!yHçjûs >Æû,×̱¥!yHç >Æû,×̱¥!yHç(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €€û79û`(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €€û79û`(attlist (("status" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €GûLûLûsû#9äp #û]ûzû@¶òb«û8øû)Vôêûnû^û óûÓÁ2àqðû{û2ÉûeµûjNû1¢Mû%ûmU­úûJ·T’šûû7€ûV9äp #û]ûzû@¶òb«û8øû)Vôêûnû^û óûÓÁ2àqðû{û2ÉûeµûjNû1¢Mû%ûmU­úûJ·T’šûû7€ûVûs9äp #û]ûzû@¶òb«û8øû)Vôêûnû^û óûÓÁ2àqðû{û2ÉûeµûjNû1¢Mû%ûmU­úûJ·T’šûû7€ûV9ûVäp #û]ûzû@¶òb«û8øû)Vôêûnû^û óûÓÁ2àqðû{û2ÉûeµûjNû1¢Mû%ûmU­úûJ·T’šûû7€ûVûV(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €°ûW°ûW(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ûLßûsßßßßû.û.(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED) ("language" CDATA IMPLIED) ("class" (name-token-group ("class" "interface")) (nil "class")))) €¸d:½û óûÓ:d¸Óûóû ½(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €û@(attlist (("class" (name-token-group ("command" "function" "option" "parameter")) IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) € 9ëûw·úûtû¹(attlist (("linkend" IDREF IMPLIED) ("baseform" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €b€û7Óûóû û^ûnêôŠ9ëûw·›å‹ŒÏvùúÊû|XwÐûMû:œÃûhû`û8ût |û/Ž[ûNûZÔcÄûû&P„…4ûFÕûû;û û}ûo'ûx¸d:ûUû<5ûG¬û4û¹¤†Ñû=iûa“ûuÖì û}Y\ºe(attlist (("status" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €rûLûLûsû#9äp #û]ûzû@¶òb«û8øû)Vôêûnû^û óûÓÁ2àqðû{û2ÉûeµûjNû1¢Mû%ûmU­úûJ·T’šûû7€û[9äp #û]ûzû@¶òb«û8øû)Vôêûnû^û óûÓÁ2àqðû{û2ÉûeµûjNû1¢Mû%ûmU­úûJ·T’šûû7€û[ûs9äp #û]ûzû@¶òb«û8øû)Vôêûnû^û óûÓÁ2àqðû{û2ÉûeµûjNû1¢Mû%ûmU­úûJ·T’šûû7€û[9û[äp #û]ûzû@¶òb«û8øû)Vôêûnû^û óûÓÁ2àqðû{û2ÉûeµûjNû1¢Mû%ûmU­úûJ·T’šûû7€û[û[(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €°û\°û\(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €b€û7Óûóû û^ûnêôŠ9ëûw·›å‹ŒÏvùúÊû|XwÐûMû:œÃûhû`û8ût |û/Ž[ûNûZÔcÄûû&P„…4ûFÕûû;û û}ûo'ûx¸d:ûUû<5ûG¬û4û¹¤†Ñû=iûa“ûuÖì û}Y\ºe(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €Íû{ÉÉû{û{É(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €®®(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) € û79ëûw·û`†Öû¹(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €€û79û`(attlist (("sortas" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €W9ëûw·›å‹ŒÏvùúÊû|XwÐûMû:œÃûhû`û8ût |û/Ž[ûNûZÔcÄûû&P„…4ûFÕûû;û û}ûo'ûx¸d:ûUû<5ûG¬û4û¹¤†Ñû=iûa“ûuÖì û}Y\ºe(attlist (("float" CDATA (nil "0")) ("pgwide" CDATA IMPLIED) ("label" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €û¹€û7NûjµûeÉû2û{ðqÓûóû û^ûnêôVû)ø8û««û8øû)Vôêûnû^û óûÓqðû{û2ÉûeµûjNû7€¹û(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ûL(attlist (("valign" (name-token-group ("top" "middle" "bottom")) IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €aa(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ûLûÈûsûÈûÈûÈ(attlist (("label" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ûC¾¾ûC(attlist (("class" (name-token-group ("name" "table" "field" "key1" "key2" "record")) IMPLIED) ("moreinfo" (name-token-group ("refentry" "none")) (nil "none")) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €€û79û`(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) € û79ëûw·û`†Öû¹(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("entityref" ENTITY IMPLIED) ("fileref" CDATA IMPLIED) ("format" (name-token-group ("BMP" "CGM-CHAR" "CGM-BINARY" "CGM-CLEAR" "DITROFF" "DVI" "EPS" "EQN" "FAX" "GIF" "GIF87a" "GIF89a" "JPG" "JPEG" "IGES" "PCX" "PIC" "PNG" "PS" "SGML" "TBL" "TEX" "TIFF" "WMF" "WPG" "linespecific")) IMPLIED) ("srccredit" CDATA IMPLIED) ("width" CDATA IMPLIED) ("depth" CDATA IMPLIED) ("align" (name-token-group ("left" "right" "center")) IMPLIED) ("scale" CDATA IMPLIED) ("scalefit" CDATA IMPLIED) ("role" CDATA IMPLIED))) (attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €9û7¨š@û!ûKOûìûsûLû#û3› ûEûAEå‹h‚ŒûgB ö÷û ¯vuûûû_3Âùƒq’\û9ûfû*ÏõÉû{9û{ÉõÏû*ûfû9\’qƒùÂ3û_ûûuv¯ û÷ö BûgŒ‚h‹åEAûûE ›û3û#ûLûsìûOûKû!@š¨û7(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €Yû7Š9ëûw·›å‹ŒÏvùúÊû|XwÐûMû:œÃûhû`û8ût |û/Ž[ûNûZÔcÄûû&P„…4ûFÕûû;û û}ûo'ûx¸d:ûUû<5ûG¬û4û¹¤†Ñû=iûa“ûuÖì û}Y\ºe(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €A€û79ëûw·úÊû|XwÐûMû:œÃûhû`û8ût |û/Ž[ûNûZÔcÄûû&P„…4ûFÕûû;û û}ûo'ûx¸d:ûUû<5ûG¬û4û¹(attlist (("linkend" IDREF IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €€û79ëûw·úû¹†ÖY(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) € û79ëûw·û`†Öû¹(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) € ëûw·ú9ûMû`Öû¹(attlist (("moreinfo" (name-token-group ("refentry" "none")) (nil "none")) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €A€û79ëûw·úÊû|XwÐûMû:œÃûhû`û8ût |û/Ž[ûNûZÔcÄûû&P„…4ûFÕûû;û û}ûo'ûx¸d:ûUû<5ûG¬û4û¹(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) € û79ëûw·û`†Öû¹(attlist (("columns" CDATA IMPLIED) ("type" (name-token-group ("inline" "vert" "horiz")) (nil "vert")) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €{{(attlist (("entityref" ENTITY IMPLIED) ("fileref" CDATA IMPLIED) ("format" (name-token-group ("BMP" "CGM-CHAR" "CGM-BINARY" "CGM-CLEAR" "DITROFF" "DVI" "EPS" "EQN" "FAX" "GIF" "GIF87a" "GIF89a" "JPG" "JPEG" "IGES" "PCX" "PIC" "PNG" "PS" "SGML" "TBL" "TEX" "TIFF" "WMF" "WPG" "linespecific")) IMPLIED) ("srccredit" CDATA IMPLIED) ("width" CDATA IMPLIED) ("depth" CDATA IMPLIED) ("align" (name-token-group ("left" "right" "center")) IMPLIED) ("scale" CDATA IMPLIED) ("scalefit" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) (attlist (("moreinfo" (name-token-group ("refentry" "none")) (nil "none")) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €A€û79ëûw·úÊû|XwÐûMû:œÃûhû`û8ût |û/Ž[ûNûZÔcÄûû&P„…4ûFÕûû;û û}ûo'ûx¸d:ûUû<5ûG¬û4û¹(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €b€û7Óûóû û^ûnêôŠ9ëûw·›å‹ŒÏvùúÊû|XwÐûMû:œÃûhû`û8ût |û/Ž[ûNûZÔcÄûû&P„…4ûFÕûû;û û}ûo'ûx¸d:ûUû<5ûG¬û4û¹¤†Ñû=iûa“ûuÖì û}Y\ºe(nil ("debconf" text "debconf" nil) ("gnome" text "GNOME" nil) ("kde" text "KDE" nil) ("progeny.inc" text "Progeny Linux Systems, Inc." nil) ("psgml" text "PSGML" nil) ("users.root" text "root" nil) ("lsb" text "LSB" nil) ("glsb" text "gLSB" nil) ("elf" text "ELF" nil) ("rpm" text "RPM" nil) ("gcc" text "gcc" nil) ("prompt.root" text "#" nil) ("prompt.sh" text "$" nil) ("prompt.csh" text ">" nil) ("dhcp" text "DHCP" nil) ("dns" text "DNS" nil) ("ip" text "IP" nil) ("tcp" text "TCP" nil) ("udp" text "UDP" nil) ("tcpip" text "TCP/IP" nil) ("nfs" text "NFS" nil) ("http" text "HTTP" nil) ("ftp" text "FTP" nil) ("snmp" text "SNMP" nil) ("xml" text "XML" nil) ("configlet" text "Configlet" nil) ("discover" text "discover" nil) ("pgi" text "PGI" nil) ("discover-command" text "discover" nil) ("debootstrap" text "debootstrap" nil) ("authorinfo.jdaily" text " John R. Daily" nil) ("authorinfo.epg" text " Eric Gillespie" nil) ("authorinfo.schultmc" text " Michael C. Schultheiss" nil) ("authorinfo.jlicquia" text " Jeff Licquia" nil) ("authorinfo.branden" text " G. Branden Robinson" nil) ("authorinfo.sschafer" text " Steven M. Schafer" nil) ("authorinfo.shunger" text " Steve Hunger" nil) ("authorinfo.dsp" text " Douglas S. Porter" nil) ("authorinfo.imurdock" text " Ian Murdock" nil) ("authorinfo.stenhoff" text " Aaron T. Stenhoff" nil) ("author.sschafer" text "&authorinfo.sschafer;" nil) ("author.jdaily" text "&authorinfo.jdaily;" nil) ("author.branden" text "&authorinfo.branden;" nil) ("author.epg" text "&authorinfo.epg;" nil) ("author.jlicquia" text "&authorinfo.jlicquia;" nil) ("author.schultmc" text "&authorinfo.schultmc;" nil) ("author.shunger" text "&authorinfo.shunger;" nil) ("author.dsp" text "&authorinfo.dsp;" nil) ("author.imurdock" text "&authorinfo.imurdock;" nil) ("author.stenhoff" text "&authorinfo.stenhoff;" nil) ("license.gnu.traditional-doc" text " Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies. Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided also that the entire resulting derived work is distributed under the terms of a permission notice identical to this one. Permission is granted to copy and distribute translations of this manual into another language, under the above conditions for modified versions. " nil) ("logdir" text "/var/log" nil) ("pager" text "/usr/bin/less" nil) ("euro" text "€" nil) ("cularr" text "↶" nil) ("curarr" text "↷" nil) ("dArr" text "⇓" nil) ("darr2" text "⇊" nil) ("dharl" text "⇃" nil) ("dharr" text "⇂" nil) ("lAarr" text "⇚" nil) ("Larr" text "↞" nil) ("larr2" text "⇇" nil) ("larrhk" text "↩" nil) ("larrlp" text "↫" nil) ("larrtl" text "↢" nil) ("lhard" text "↽" nil) ("lharu" text "↼" nil) ("hArr" text "⇔" nil) ("harr" text "↔" nil) ("lrarr2" text "⇆" nil) ("rlarr2" text "⇄" nil) ("harrw" text "↭" nil) ("rlhar2" text "⇌" nil) ("lrhar2" text "⇋" nil) ("lsh" text "↰" nil) ("map" text "↦" nil) ("mumap" text "⊸" nil) ("nearr" text "↗" nil) ("nlArr" text "⇍" nil) ("nlarr" text "↚" nil) ("nhArr" text "⇎" nil) ("nharr" text "↮" nil) ("nrarr" text "↛" nil) ("nrArr" text "⇏" nil) ("nwarr" text "↖" nil) ("olarr" text "↺" nil) ("orarr" text "↻" nil) ("rAarr" text "⇛" nil) ("Rarr" text "↠" nil) ("rarr2" text "⇉" nil) ("rarrhk" text "↪" nil) ("rarrlp" text "↬" nil) ("rarrtl" text "↣" nil) ("rarrw" text "↝" nil) ("rhard" text "⇁" nil) ("rharu" text "⇀" nil) ("rsh" text "↱" nil) ("drarr" text "↘" nil) ("dlarr" text "↙" nil) ("uArr" text "⇑" nil) ("uarr2" text "⇈" nil) ("vArr" text "⇕" nil) ("varr" text "↕" nil) ("uharl" text "↿" nil) ("uharr" text "↾" nil) ("xlArr" text "" nil) ("xhArr" text "" nil) ("xharr" text "" nil) ("xrArr" text "" nil) ("amalg" text "" nil) ("Barwed" text "⌆" nil) ("barwed" text "⊼" nil) ("Cap" text "⋒" nil) ("Cup" text "⋓" nil) ("cuvee" text "⋎" nil) ("cuwed" text "⋏" nil) ("diam" text "⋄" nil) ("divonx" text "⋇" nil) ("intcal" text "⊺" nil) ("lthree" text "⋋" nil) ("ltimes" text "⋉" nil) ("minusb" text "⊟" nil) ("oast" text "⊛" nil) ("ocir" text "⊚" nil) ("odash" text "⊝" nil) ("odot" text "⊙" nil) ("ominus" text "⊖" nil) ("oplus" text "⊕" nil) ("osol" text "⊘" nil) ("otimes" text "⊗" nil) ("plusb" text "⊞" nil) ("plusdo" text "∔" nil) ("rthree" text "⋌" nil) ("rtimes" text "⋊" nil) ("sdot" text "⋅" nil) ("sdotb" text "⊡" nil) ("setmn" text "∖" nil) ("sqcap" text "⊓" nil) ("sqcup" text "⊔" nil) ("ssetmn" text "" nil) ("sstarf" text "⋆" nil) ("timesb" text "⊠" nil) ("top" text "⊤" nil) ("uplus" text "⊎" nil) ("wreath" text "≀" nil) ("xcirc" text "○" nil) ("xdtri" text "▽" nil) ("xutri" text "△" nil) ("coprod" text "∐" nil) ("prod" text "∏" nil) ("sum" text "∑" nil) ("rceil" text "⌉" nil) ("rfloor" text "⌋" nil) ("rpargt" text "" nil) ("urcorn" text "⌝" nil) ("drcorn" text "⌟" nil) ("lceil" text "⌈" nil) ("lfloor" text "⌊" nil) ("ulcorn" text "⌜" nil) ("dlcorn" text "⌞" nil) ("gnap" text "" nil) ("gne" text "≩" nil) ("gnE" text "≩" nil) ("gnsim" text "⋧" nil) ("gvnE" text "" nil) ("lnap" text "" nil) ("lnE" text "≨" nil) ("lne" text "≨" nil) ("lnsim" text "⋦" nil) ("lvnE" text "" nil) ("nap" text "≉" nil) ("ncong" text "≇" nil) ("nequiv" text "≢" nil) ("ngE" text "≱" nil) ("nge" text "" nil) ("nges" text "≱" nil) ("ngt" text "≯" nil) ("nle" text "" nil) ("nlE" text "≰" nil) ("nles" text "≰" nil) ("nlt" text "≮" nil) ("nltri" text "⋪" nil) ("nltrie" text "⋬" nil) ("nmid" text "∤" nil) ("npar" text "∦" nil) ("npr" text "⊀" nil) ("npre" text "" nil) ("nrtri" text "⋫" nil) ("nrtrie" text "⋭" nil) ("nsc" text "⊁" nil) ("nsce" text "" nil) ("nsim" text "≁" nil) ("nsime" text "≄" nil) ("nsmid" text "" nil) ("nspar" text "" nil) ("nsub" text "⊄" nil) ("nsube" text "⊈" nil) ("nsubE" text "⊈" nil) ("nsup" text "⊅" nil) ("nsupE" text "⊉" nil) ("nsupe" text "⊉" nil) ("nvdash" text "⊬" nil) ("nvDash" text "⊭" nil) ("nVDash" text "⊯" nil) ("nVdash" text "⊮" nil) ("prnap" text "⋨" nil) ("prnE" text "" nil) ("prnsim" text "⋨" nil) ("scnap" text "⋩" nil) ("scnE" text "" nil) ("scnsim" text "⋩" nil) ("subne" text "⊊" nil) ("subnE" text "⊊" nil) ("supne" text "⊋" nil) ("supnE" text "⊋" nil) ("vsubnE" text "" nil) ("vsubne" text "" nil) ("vsupne" text "" nil) ("vsupnE" text "" nil) ("ang" text "∠" nil) ("angmsd" text "∡" nil) ("beth" text "ℶ" nil) ("bprime" text "‵" nil) ("comp" text "∁" nil) ("daleth" text "ℸ" nil) ("ell" text "ℓ" nil) ("empty" text "" nil) ("gimel" text "ℷ" nil) ("image" text "ℑ" nil) ("inodot" text "ı" nil) ("nexist" text "∄" nil) ("oS" text "" nil) ("planck" text "ℏ" nil) ("real" text "ℜ" nil) ("sbsol" text "﹨" nil) ("weierp" text "℘" nil) ("ape" text "≊" nil) ("asymp" text "≍" nil) ("bcong" text "≌" nil) ("bepsi" text "" nil) ("bowtie" text "⋈" nil) ("bsim" text "∽" nil) ("bsime" text "⋍" nil) ("bump" text "≎" nil) ("bumpe" text "≏" nil) ("cire" text "≗" nil) ("colone" text "≔" nil) ("cuepr" text "⋞" nil) ("cuesc" text "⋟" nil) ("cupre" text "≼" nil) ("dashv" text "⊣" nil) ("ecir" text "≖" nil) ("ecolon" text "≕" nil) ("eDot" text "≑" nil) ("esdot" text "≐" nil) ("efDot" text "≒" nil) ("egs" text "⋝" nil) ("els" text "⋜" nil) ("erDot" text "≓" nil) ("fork" text "⋔" nil) ("frown" text "⌢" nil) ("gap" text "≳" nil) ("gsdot" text "⋗" nil) ("gE" text "≧" nil) ("gel" text "⋛" nil) ("gEl" text "⋛" nil) ("ges" text "" nil) ("Gg" text "⋙" nil) ("gl" text "≷" nil) ("gsim" text "≳" nil) ("Gt" text "≫" nil) ("lap" text "≲" nil) ("ldot" text "⋖" nil) ("lE" text "≦" nil) ("lEg" text "⋚" nil) ("leg" text "⋚" nil) ("les" text "" nil) ("lg" text "≶" nil) ("Ll" text "⋘" nil) ("lsim" text "≲" nil) ("Lt" text "≪" nil) ("ltrie" text "⊴" nil) ("mid" text "∣" nil) ("models" text "⊧" nil) ("pr" text "≺" nil) ("prap" text "≾" nil) ("pre" text "≼" nil) ("prsim" text "≾" nil) ("rtrie" text "⊵" nil) ("sc" text "≻" nil) ("scap" text "≿" nil) ("sccue" text "≽" nil) ("sce" text "≽" nil) ("scsim" text "≿" nil) ("sfrown" text "" nil) ("smid" text "" nil) ("smile" text "⌣" nil) ("spar" text "" nil) ("sqsub" text "⊏" nil) ("sqsube" text "⊑" nil) ("sqsup" text "⊐" nil) ("sqsupe" text "⊒" nil) ("ssmile" text "" nil) ("Sub" text "⋐" nil) ("subE" text "⊆" nil) ("Sup" text "⋑" nil) ("supE" text "⊇" nil) ("thkap" text "" nil) ("thksim" text "" nil) ("trie" text "≜" nil) ("twixt" text "≬" nil) ("vdash" text "⊢" nil) ("Vdash" text "⊩" nil) ("vDash" text "⊨" nil) ("veebar" text "⊻" nil) ("vltri" text "⊲" nil) ("vprop" text "∝" nil) ("vrtri" text "⊳" nil) ("Vvdash" text "⊪" nil) ("boxh" text "─" nil) ("boxv" text "│" nil) ("boxur" text "└" nil) ("boxul" text "┘" nil) ("boxdl" text "┐" nil) ("boxdr" text "┌" nil) ("boxvr" text "├" nil) ("boxhu" text "┴" nil) ("boxvl" text "┤" nil) ("boxhd" text "┬" nil) ("boxvh" text "┼" nil) ("boxvR" text "╞" nil) ("boxhU" text "╧" nil) ("boxvL" text "╡" nil) ("boxhD" text "╤" nil) ("boxvH" text "╪" nil) ("boxH" text "═" nil) ("boxV" text "║" nil) ("boxUR" text "╘" nil) ("boxUL" text "╛" nil) ("boxDL" text "╕" nil) ("boxDR" text "╒" nil) ("boxVR" text "╟" nil) ("boxHU" text "╨" nil) ("boxVL" text "╢" nil) ("boxHD" text "╥" nil) ("boxVH" text "╫" nil) ("boxVr" text "╠" nil) ("boxHu" text "╩" nil) ("boxVl" text "╣" nil) ("boxHd" text "╦" nil) ("boxVh" text "╬" nil) ("boxuR" text "╙" nil) ("boxUl" text "╜" nil) ("boxdL" text "╖" nil) ("boxDr" text "╓" nil) ("boxUr" text "╚" nil) ("boxuL" text "╝" nil) ("boxDl" text "╗" nil) ("boxdR" text "╔" nil) ("acy" text "а" nil) ("Acy" text "А" nil) ("bcy" text "б" nil) ("Bcy" text "Б" nil) ("vcy" text "в" nil) ("Vcy" text "В" nil) ("gcy" text "г" nil) ("Gcy" text "Г" nil) ("dcy" text "д" nil) ("Dcy" text "Д" nil) ("iecy" text "е" nil) ("IEcy" text "Е" nil) ("iocy" text "ё" nil) ("IOcy" text "Ё" nil) ("zhcy" text "ж" nil) ("ZHcy" text "Ж" nil) ("zcy" text "з" nil) ("Zcy" text "З" nil) ("icy" text "и" nil) ("Icy" text "И" nil) ("jcy" text "й" nil) ("Jcy" text "Й" nil) ("kcy" text "к" nil) ("Kcy" text "К" nil) ("lcy" text "л" nil) ("Lcy" text "Л" nil) ("mcy" text "м" nil) ("Mcy" text "М" nil) ("ncy" text "н" nil) ("Ncy" text "Н" nil) ("ocy" text "о" nil) ("Ocy" text "О" nil) ("pcy" text "п" nil) ("Pcy" text "П" nil) ("rcy" text "р" nil) ("Rcy" text "Р" nil) ("scy" text "с" nil) ("Scy" text "С" nil) ("tcy" text "т" nil) ("Tcy" text "Т" nil) ("ucy" text "у" nil) ("Ucy" text "У" nil) ("fcy" text "ф" nil) ("Fcy" text "Ф" nil) ("khcy" text "х" nil) ("KHcy" text "Х" nil) ("tscy" text "ц" nil) ("TScy" text "Ц" nil) ("chcy" text "ч" nil) ("CHcy" text "Ч" nil) ("shcy" text "ш" nil) ("SHcy" text "Ш" nil) ("shchcy" text "щ" nil) ("SHCHcy" text "Щ" nil) ("hardcy" text "ъ" nil) ("HARDcy" text "Ъ" nil) ("ycy" text "ы" nil) ("Ycy" text "Ы" nil) ("softcy" text "ь" nil) ("SOFTcy" text "Ь" nil) ("ecy" text "э" nil) ("Ecy" text "Э" nil) ("yucy" text "ю" nil) ("YUcy" text "Ю" nil) ("yacy" text "я" nil) ("YAcy" text "Я" nil) ("numero" text "№" nil) ("djcy" text "ђ" nil) ("DJcy" text "Ђ" nil) ("gjcy" text "ѓ" nil) ("GJcy" text "Ѓ" nil) ("jukcy" text "є" nil) ("Jukcy" text "Є" nil) ("dscy" text "ѕ" nil) ("DScy" text "Ѕ" nil) ("iukcy" text "і" nil) ("Iukcy" text "І" nil) ("yicy" text "ї" nil) ("YIcy" text "Ї" nil) ("jsercy" text "ј" nil) ("Jsercy" text "Ј" nil) ("ljcy" text "љ" nil) ("LJcy" text "Љ" nil) ("njcy" text "њ" nil) ("NJcy" text "Њ" nil) ("tshcy" text "ћ" nil) ("TSHcy" text "Ћ" nil) ("kjcy" text "ќ" nil) ("KJcy" text "Ќ" nil) ("ubrcy" text "ў" nil) ("Ubrcy" text "Ў" nil) ("dzcy" text "џ" nil) ("DZcy" text "Џ" nil) ("acute" text "´" nil) ("breve" text "˘" nil) ("caron" text "ˇ" nil) ("cedil" text "¸" nil) ("circ" text "∘" nil) ("dblac" text "˝" nil) ("die" text "¨" nil) ("dot" text "˙" nil) ("grave" text "`" nil) ("macr" text "¯" nil) ("ogon" text "˛" nil) ("ring" text "˚" nil) ("tilde" text "~" nil) ("uml" text "¨" nil) ("agr" text "α" nil) ("Agr" text "Α" nil) ("bgr" text "β" nil) ("Bgr" text "Β" nil) ("ggr" text "γ" nil) ("Ggr" text "Γ" nil) ("dgr" text "δ" nil) ("Dgr" text "Δ" nil) ("egr" text "ε" nil) ("Egr" text "Ε" nil) ("zgr" text "ζ" nil) ("Zgr" text "Ζ" nil) ("eegr" text "η" nil) ("EEgr" text "Η" nil) ("thgr" text "θ" nil) ("THgr" text "Θ" nil) ("igr" text "ι" nil) ("Igr" text "Ι" nil) ("kgr" text "κ" nil) ("Kgr" text "Κ" nil) ("lgr" text "λ" nil) ("Lgr" text "Λ" nil) ("mgr" text "μ" nil) ("Mgr" text "Μ" nil) ("ngr" text "ν" nil) ("Ngr" text "Ν" nil) ("xgr" text "ξ" nil) ("Xgr" text "Ξ" nil) ("ogr" text "ο" nil) ("Ogr" text "Ο" nil) ("pgr" text "π" nil) ("Pgr" text "Π" nil) ("rgr" text "ρ" nil) ("Rgr" text "Ρ" nil) ("sgr" text "σ" nil) ("Sgr" text "Σ" nil) ("sfgr" text "ς" nil) ("tgr" text "τ" nil) ("Tgr" text "Τ" nil) ("ugr" text "υ" nil) ("Ugr" text "Υ" nil) ("phgr" text "φ" nil) ("PHgr" text "Φ" nil) ("khgr" text "χ" nil) ("KHgr" text "Χ" nil) ("psgr" text "ψ" nil) ("PSgr" text "Ψ" nil) ("ohgr" text "ω" nil) ("OHgr" text "Ω" nil) ("aacgr" text "ά" nil) ("Aacgr" text "Ά" nil) ("eacgr" text "έ" nil) ("Eacgr" text "Έ" nil) ("eeacgr" text "ή" nil) ("EEacgr" text "Ή" nil) ("idigr" text "ϊ" nil) ("Idigr" text "Ϊ" nil) ("iacgr" text "ί" nil) ("Iacgr" text "Ί" nil) ("idiagr" text "ΐ" nil) ("oacgr" text "ό" nil) ("Oacgr" text "Ό" nil) ("udigr" text "ϋ" nil) ("Udigr" text "Ϋ" nil) ("uacgr" text "ύ" nil) ("Uacgr" text "Ύ" nil) ("udiagr" text "ΰ" nil) ("ohacgr" text "ώ" nil) ("OHacgr" text "Ώ" nil) ("alpha" text "α" nil) ("beta" text "β" nil) ("gamma" text "γ" nil) ("Gamma" text "Γ" nil) ("gammad" text "Ϝ" nil) ("delta" text "δ" nil) ("Delta" text "Δ" nil) ("epsi" text "∊" nil) ("epsiv" text "ε" nil) ("epsis" text "∊" nil) ("zeta" text "ζ" nil) ("eta" text "η" nil) ("thetas" text "θ" nil) ("Theta" text "Θ" nil) ("thetav" text "ϑ" nil) ("iota" text "ι" nil) ("kappa" text "κ" nil) ("kappav" text "ϰ" nil) ("lambda" text "λ" nil) ("Lambda" text "Λ" nil) ("mu" text "μ" nil) ("nu" text "ν" nil) ("xi" text "ξ" nil) ("Xi" text "Ξ" nil) ("pi" text "π" nil) ("piv" text "ϖ" nil) ("Pi" text "Π" nil) ("rho" text "ρ" nil) ("rhov" text "ϱ" nil) ("sigma" text "σ" nil) ("Sigma" text "Σ" nil) ("sigmav" text "ς" nil) ("tau" text "τ" nil) ("upsi" text "υ" nil) ("Upsi" text "ϒ" nil) ("phis" text "φ" nil) ("Phi" text "Φ" nil) ("phiv" text "ϕ" nil) ("chi" text "χ" nil) ("psi" text "ψ" nil) ("Psi" text "Ψ" nil) ("omega" text "ω" nil) ("Omega" text "Ω" nil) ("b.alpha" text "α" nil) ("b.beta" text "β" nil) ("b.gamma" text "γ" nil) ("b.Gamma" text "Γ" nil) ("b.gammad" text "Ϝ" nil) ("b.delta" text "δ" nil) ("b.Delta" text "Δ" nil) ("b.epsi" text "ε" nil) ("b.epsiv" text "ε" nil) ("b.epsis" text "ε" nil) ("b.zeta" text "ζ" nil) ("b.eta" text "η" nil) ("b.thetas" text "θ" nil) ("b.Theta" text "Θ" nil) ("b.thetav" text "ϑ" nil) ("b.iota" text "ι" nil) ("b.kappa" text "κ" nil) ("b.kappav" text "ϰ" nil) ("b.lambda" text "λ" nil) ("b.Lambda" text "Λ" nil) ("b.mu" text "μ" nil) ("b.nu" text "ν" nil) ("b.xi" text "ξ" nil) ("b.Xi" text "Ξ" nil) ("b.pi" text "π" nil) ("b.Pi" text "Π" nil) ("b.piv" text "ϖ" nil) ("b.rho" text "ρ" nil) ("b.rhov" text "ϱ" nil) ("b.sigma" text "σ" nil) ("b.Sigma" text "Σ" nil) ("b.sigmav" text "ς" nil) ("b.tau" text "τ" nil) ("b.upsi" text "υ" nil) ("b.Upsi" text "ϒ" nil) ("b.phis" text "φ" nil) ("b.Phi" text "Φ" nil) ("b.phiv" text "ϕ" nil) ("b.chi" text "χ" nil) ("b.psi" text "ψ" nil) ("b.Psi" text "Ψ" nil) ("b.omega" text "ω" nil) ("b.Omega" text "Ω" nil) ("aacute" text "á" nil) ("Aacute" text "Á" nil) ("acirc" text "â" nil) ("Acirc" text "Â" nil) ("agrave" text "à" nil) ("Agrave" text "À" nil) ("aring" text "å" nil) ("Aring" text "Å" nil) ("atilde" text "ã" nil) ("Atilde" text "Ã" nil) ("auml" text "ä" nil) ("Auml" text "Ä" nil) ("aelig" text "æ" nil) ("AElig" text "Æ" nil) ("ccedil" text "ç" nil) ("Ccedil" text "Ç" nil) ("eth" text "Ð" nil) ("ETH" text "ð" nil) ("eacute" text "é" nil) ("Eacute" text "É" nil) ("ecirc" text "ê" nil) ("Ecirc" text "Ê" nil) ("egrave" text "è" nil) ("Egrave" text "È" nil) ("euml" text "ë" nil) ("Euml" text "Ë" nil) ("iacute" text "í" nil) ("Iacute" text "Í" nil) ("icirc" text "î" nil) ("Icirc" text "Î" nil) ("igrave" text "ì" nil) ("Igrave" text "Ì" nil) ("iuml" text "ï" nil) ("Iuml" text "Ï" nil) ("ntilde" text "ñ" nil) ("Ntilde" text "Ñ" nil) ("oacute" text "ó" nil) ("Oacute" text "Ó" nil) ("ocirc" text "ô" nil) ("Ocirc" text "Ô" nil) ("ograve" text "ò" nil) ("Ograve" text "Ò" nil) ("oslash" text "⊘" nil) ("Oslash" text "Ø" nil) ("otilde" text "õ" nil) ("Otilde" text "Õ" nil) ("ouml" text "ö" nil) ("Ouml" text "Ö" nil) ("szlig" text "ß" nil) ("thorn" text "þ" nil) ("THORN" text "Þ" nil) ("uacute" text "ú" nil) ("Uacute" text "Ú" nil) ("ucirc" text "Û" nil) ("Ucirc" text "û" nil) ("ugrave" text "ù" nil) ("Ugrave" text "Ù" nil) ("uuml" text "ü" nil) ("Uuml" text "Ü" nil) ("yacute" text "ý" nil) ("Yacute" text "Ý" nil) ("yuml" text "ÿ" nil) ("abreve" text "ă" nil) ("Abreve" text "Ă" nil) ("amacr" text "ā" nil) ("Amacr" text "Ā" nil) ("aogon" text "ą" nil) ("Aogon" text "Ą" nil) ("cacute" text "ć" nil) ("Cacute" text "Ć" nil) ("ccaron" text "č" nil) ("Ccaron" text "Č" nil) ("ccirc" text "ĉ" nil) ("Ccirc" text "Ĉ" nil) ("cdot" text "⋅" nil) ("Cdot" text "Ċ" nil) ("dcaron" text "ď" nil) ("Dcaron" text "Ď" nil) ("dstrok" text "đ" nil) ("Dstrok" text "Đ" nil) ("ecaron" text "ě" nil) ("Ecaron" text "Ě" nil) ("edot" text "ė" nil) ("Edot" text "Ė" nil) ("emacr" text "ē" nil) ("Emacr" text "Ē" nil) ("eogon" text "ę" nil) ("Eogon" text "Ę" nil) ("gacute" text "ǵ" nil) ("gbreve" text "ğ" nil) ("Gbreve" text "Ğ" nil) ("Gcedil" text "Ģ" nil) ("gcirc" text "ĝ" nil) ("Gcirc" text "Ĝ" nil) ("gdot" text "ġ" nil) ("Gdot" text "Ġ" nil) ("hcirc" text "ĥ" nil) ("Hcirc" text "Ĥ" nil) ("hstrok" text "ħ" nil) ("Hstrok" text "Ħ" nil) ("Idot" text "İ" nil) ("Imacr" text "Ī" nil) ("imacr" text "ī" nil) ("ijlig" text "ij" nil) ("IJlig" text "IJ" nil) ("iogon" text "į" nil) ("Iogon" text "Į" nil) ("itilde" text "ĩ" nil) ("Itilde" text "Ĩ" nil) ("jcirc" text "ĵ" nil) ("Jcirc" text "Ĵ" nil) ("kcedil" text "ķ" nil) ("Kcedil" text "Ķ" nil) ("kgreen" text "ĸ" nil) ("lacute" text "ĺ" nil) ("Lacute" text "Ĺ" nil) ("lcaron" text "ľ" nil) ("Lcaron" text "Ľ" nil) ("lcedil" text "ļ" nil) ("Lcedil" text "Ļ" nil) ("lmidot" text "ŀ" nil) ("Lmidot" text "Ŀ" nil) ("lstrok" text "ł" nil) ("Lstrok" text "Ł" nil) ("nacute" text "ń" nil) ("Nacute" text "Ń" nil) ("eng" text "ŋ" nil) ("ENG" text "Ŋ" nil) ("napos" text "ʼn" nil) ("ncaron" text "ň" nil) ("Ncaron" text "Ň" nil) ("ncedil" text "ņ" nil) ("Ncedil" text "Ņ" nil) ("odblac" text "ő" nil) ("Odblac" text "Ő" nil) ("Omacr" text "Ō" nil) ("omacr" text "ō" nil) ("oelig" text "œ" nil) ("OElig" text "Œ" nil) ("racute" text "ŕ" nil) ("Racute" text "Ŕ" nil) ("rcaron" text "ř" nil) ("Rcaron" text "Ř" nil) ("rcedil" text "ŗ" nil) ("Rcedil" text "Ŗ" nil) ("sacute" text "ś" nil) ("Sacute" text "Ś" nil) ("scaron" text "š" nil) ("Scaron" text "Š" nil) ("scedil" text "ş" nil) ("Scedil" text "Ş" nil) ("scirc" text "ŝ" nil) ("Scirc" text "Ŝ" nil) ("tcaron" text "ť" nil) ("Tcaron" text "Ť" nil) ("tcedil" text "ţ" nil) ("Tcedil" text "Ţ" nil) ("tstrok" text "ŧ" nil) ("Tstrok" text "Ŧ" nil) ("ubreve" text "ŭ" nil) ("Ubreve" text "Ŭ" nil) ("udblac" text "ű" nil) ("Udblac" text "Ű" nil) ("umacr" text "ū" nil) ("Umacr" text "Ū" nil) ("uogon" text "ų" nil) ("Uogon" text "Ų" nil) ("uring" text "ů" nil) ("Uring" text "Ů" nil) ("utilde" text "ũ" nil) ("Utilde" text "Ũ" nil) ("wcirc" text "ŵ" nil) ("Wcirc" text "Ŵ" nil) ("ycirc" text "ŷ" nil) ("Ycirc" text "Ŷ" nil) ("Yuml" text "Ÿ" nil) ("zacute" text "ź" nil) ("Zacute" text "Ź" nil) ("zcaron" text "ž" nil) ("Zcaron" text "Ž" nil) ("zdot" text "ż" nil) ("Zdot" text "Ż" nil) ("half" text "½" nil) ("frac12" text "½" nil) ("frac14" text "¼" nil) ("frac34" text "¾" nil) ("frac18" text "⅛" nil) ("frac38" text "⅜" nil) ("frac58" text "⅝" nil) ("frac78" text "⅞" nil) ("sup1" text "¹" nil) ("sup2" text "²" nil) ("sup3" text "³" nil) ("plus" text "+" nil) ("plusmn" text "±" nil) ("equals" text "=" nil) ("gt" text ">" nil) ("divide" text "÷" nil) ("times" text "×" nil) ("curren" text "¤" nil) ("pound" text "£" nil) ("dollar" text "$" nil) ("cent" text "¢" nil) ("yen" text "¥" nil) ("num" text "#" nil) ("percnt" text "%" nil) ("ast" text "∗" nil) ("commat" text "@" nil) ("lsqb" text "[" nil) ("bsol" text "\" nil) ("rsqb" text "]" nil) ("lcub" text "{" nil) ("horbar" text "―" nil) ("verbar" text "|" nil) ("rcub" text "}" nil) ("micro" text "µ" nil) ("ohm" text "Ω" nil) ("deg" text "°" nil) ("ordm" text "º" nil) ("ordf" text "ª" nil) ("sect" text "§" nil) ("para" text "¶" nil) ("middot" text "·" nil) ("larr" text "←" nil) ("rarr" text "→" nil) ("uarr" text "↑" nil) ("darr" text "↓" nil) ("copy" text "©" nil) ("reg" text "¯" nil) ("trade" text "™" nil) ("brvbar" text "¦" nil) ("not" text "¬" nil) ("sung" text "♩" nil) ("excl" text "!" nil) ("iexcl" text "¡" nil) ("quot" text """ nil) ("apos" text "'" nil) ("lpar" text "(" nil) ("rpar" text ")" nil) ("comma" text "," nil) ("lowbar" text "_" nil) ("hyphen" text "" nil) ("period" text "." nil) ("sol" text "/" nil) ("colon" text ":" nil) ("semi" text ";" nil) ("quest" text "?" nil) ("iquest" text "¿" nil) ("laquo" text "«" nil) ("raquo" text "»" nil) ("lsquo" text "‘" nil) ("rsquo" text "’" nil) ("ldquo" text "“" nil) ("rdquo" text "”" nil) ("nbsp" text " " nil) ("shy" text "­" nil) ("emsp" text " " nil) ("ensp" text " " nil) ("emsp13" text " " nil) ("emsp14" text " " nil) ("numsp" text " " nil) ("puncsp" text " " nil) ("thinsp" text " " nil) ("hairsp" text " " nil) ("mdash" text "—" nil) ("ndash" text "–" nil) ("dash" text "‐" nil) ("blank" text "␣" nil) ("hellip" text "…" nil) ("nldr" text "‥" nil) ("frac13" text "⅓" nil) ("frac23" text "⅔" nil) ("frac15" text "⅕" nil) ("frac25" text "⅖" nil) ("frac35" text "⅗" nil) ("frac45" text "⅘" nil) ("frac16" text "⅙" nil) ("frac56" text "⅚" nil) ("incare" text "℅" nil) ("block" text "█" nil) ("uhblk" text "▀" nil) ("lhblk" text "▄" nil) ("blk14" text "░" nil) ("blk12" text "▒" nil) ("blk34" text "▓" nil) ("marker" text "▮" nil) ("cir" text "○" nil) ("squ" text "□" nil) ("rect" text "▭" nil) ("utri" text "▵" nil) ("dtri" text "▿" nil) ("star" text "⋆" nil) ("bull" text "•" nil) ("squf" text "▪" nil) ("utrif" text "▴" nil) ("dtrif" text "▾" nil) ("ltrif" text "◂" nil) ("rtrif" text "▸" nil) ("clubs" text "♣" nil) ("diams" text "♦" nil) ("hearts" text "♥" nil) ("spades" text "♠" nil) ("malt" text "✠" nil) ("dagger" text "†" nil) ("Dagger" text "‡" nil) ("check" text "✓" nil) ("cross" text "✗" nil) ("sharp" text "♯" nil) ("flat" text "♭" nil) ("male" text "♂" nil) ("female" text "♀" nil) ("phone" text "☎" nil) ("telrec" text "⌕" nil) ("copysr" text "℗" nil) ("caret" text "⁁" nil) ("lsquor" text "‚" nil) ("ldquor" text "„" nil) ("fflig" text "ff" nil) ("filig" text "fi" nil) ("ffilig" text "ffi" nil) ("ffllig" text "ffl" nil) ("fllig" text "fl" nil) ("mldr" text "…" nil) ("rdquor" text "“" nil) ("rsquor" text "‘" nil) ("vellip" text "⋮" nil) ("hybull" text "⁃" nil) ("loz" text "◊" nil) ("lozf" text "✦" nil) ("ltri" text "◃" nil) ("rtri" text "▹" nil) ("starf" text "★" nil) ("natur" text "♮" nil) ("rx" text "℞" nil) ("sext" text "✶" nil) ("target" text "⌖" nil) ("dlcrop" text "⌍" nil) ("drcrop" text "⌌" nil) ("ulcrop" text "⌏" nil) ("urcrop" text "⌎" nil) ("aleph" text "ℵ" nil) ("and" text "∧" nil) ("ang90" text "∟" nil) ("angsph" text "∢" nil) ("ap" text "≈" nil) ("becaus" text "∵" nil) ("bottom" text "⊥" nil) ("cap" text "∩" nil) ("cong" text "≅" nil) ("conint" text "∮" nil) ("cup" text "∪" nil) ("equiv" text "≡" nil) ("exist" text "∃" nil) ("forall" text "∀" nil) ("fnof" text "ƒ" nil) ("ge" text "≥" nil) ("iff" text "" nil) ("infin" text "∞" nil) ("int" text "∫" nil) ("isin" text "∊" nil) ("lang" text "〈" nil) ("lArr" text "⇐" nil) ("le" text "≤" nil) ("minus" text "−" nil) ("mnplus" text "∓" nil) ("nabla" text "∇" nil) ("ne" text "≠" nil) ("ni" text "∍" nil) ("or" text "∨" nil) ("par" text "∥" nil) ("part" text "∂" nil) ("permil" text "‰" nil) ("perp" text "⊥" nil) ("prime" text "′" nil) ("Prime" text "″" nil) ("prop" text "∝" nil) ("radic" text "√" nil) ("rang" text "〉" nil) ("rArr" text "⇒" nil) ("sim" text "∼" nil) ("sime" text "≃" nil) ("square" text "□" nil) ("sub" text "⊂" nil) ("sube" text "⊆" nil) ("sup" text "⊃" nil) ("supe" text "⊇" nil) ("there4" text "∴" nil) ("Verbar" text "‖" nil) ("angst" text "Å" nil) ("bernou" text "ℬ" nil) ("compfn" text "∘" nil) ("Dot" text "̈" nil) ("DotDot" text "⃜" nil) ("hamilt" text "ℋ" nil) ("lagran" text "ℒ" nil) ("lowast" text "∗" nil) ("notin" text "∉" nil) ("order" text "ℴ" nil) ("phmmat" text "ℳ" nil) ("tdot" text "⃛" nil) ("tprime" text "‴" nil) ("wedgeq" text "≙" nil)) (nil) nil discover-2.1.2/doctools/progeny.dsl0000644002342100234210000000217010266266026016023 0ustar perepere ]]> ]]> ]> (define %use-id-as-filename% #t) discover-2.1.2/doctools/docbook-book.ced0000644002342100234210000134531510266266026016675 0ustar perepere;;; This file was created by psgml on Tue Jan 8 16:32:29 2002 (sgml-saved-dtd-version 7) ("/usr/share/sgml/docbook/dtd/xml/4.1.2/dbgenent.mod" "/usr/share/sgml/docbook/dtd/xml/4.1.2/dbhierx.mod" "/usr/share/sgml/docbook/dtd/xml/4.1.2/calstblx.dtd" "/usr/share/sgml/docbook/dtd/xml/4.1.2/dbpoolx.mod" "/usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOtech.ent" "/usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOpub.ent" "/usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOnum.ent" "/usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOlat2.ent" "/usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOlat1.ent" "/usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOgrk4.ent" "/usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOgrk3.ent" "/usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOgrk2.ent" "/usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOgrk1.ent" "/usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOdia.ent" "/usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOcyr2.ent" "/usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOcyr1.ent" "/usr/share/sgml/entities/xml-iso-entities-8879.1986/ISObox.ent" "/usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOamsr.ent" "/usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOamso.ent" "/usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOamsn.ent" "/usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOamsc.ent" "/usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOamsb.ent" "/usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOamsa.ent" "/usr/share/sgml/docbook/dtd/xml/4.1.2/dbcentx.mod" "/usr/share/sgml/docbook/dtd/xml/4.1.2/dbnotnx.mod" "/usr/share/sgml/docbook/dtd/xml/4.1.2/docbookx.dtd" "/cvs/progeny/power-on/configlets/configlet/doctools/progeny.ent") (nil ("progeny-entity" text (nil "../../doctools/progeny.ent" . "/cvs/progeny/power-on/configlets/configlet/documentation/book/") nil) ("dbnotn.module" text "INCLUDE" nil) ("dbnotn" text ("-//OASIS//ENTITIES DocBook XML Notations V4.1.2//EN" "dbnotnx.mod" . "/usr/share/sgml/docbook/dtd/xml/4.1.2/") nil) ("local.notation.class" text "" nil) ("notation.class" text "BMP| CGM-CHAR | CGM-BINARY | CGM-CLEAR | DITROFF | DVI | EPS | EQN | FAX | GIF | GIF87a | GIF89a | JPG | JPEG | IGES | PCX | PIC | PNG | PS | SGML | TBL | TEX | TIFF | WMF | WPG | linespecific " nil) ("dbcent.module" text "INCLUDE" nil) ("dbcent" text ("-//OASIS//ENTITIES DocBook XML Character Entities V4.1.2//EN" "dbcentx.mod" . "/usr/share/sgml/docbook/dtd/xml/4.1.2/") nil) ("ISOamsa.module" text "INCLUDE" nil) ("ISOamsa" text ("ISO 8879:1986//ENTITIES Added Math Symbols: Arrow Relations//EN//XML" "/usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOamsa.ent" . "/usr/share/sgml/docbook/dtd/xml/4.1.2/") nil) ("ISOamsb.module" text "INCLUDE" nil) ("ISOamsb" text ("ISO 8879:1986//ENTITIES Added Math Symbols: Binary Operators//EN//XML" "/usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOamsb.ent" . "/usr/share/sgml/docbook/dtd/xml/4.1.2/") nil) ("ISOamsc.module" text "INCLUDE" nil) ("ISOamsc" text ("ISO 8879:1986//ENTITIES Added Math Symbols: Delimiters//EN//XML" "/usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOamsc.ent" . "/usr/share/sgml/docbook/dtd/xml/4.1.2/") nil) ("ISOamsn.module" text "INCLUDE" nil) ("ISOamsn" text ("ISO 8879:1986//ENTITIES Added Math Symbols: Negated Relations//EN//XML" "/usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOamsn.ent" . "/usr/share/sgml/docbook/dtd/xml/4.1.2/") nil) ("ISOamso.module" text "INCLUDE" nil) ("ISOamso" text ("ISO 8879:1986//ENTITIES Added Math Symbols: Ordinary//EN//XML" "/usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOamso.ent" . "/usr/share/sgml/docbook/dtd/xml/4.1.2/") nil) ("ISOamsr.module" text "INCLUDE" nil) ("ISOamsr" text ("ISO 8879:1986//ENTITIES Added Math Symbols: Relations//EN//XML" "/usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOamsr.ent" . "/usr/share/sgml/docbook/dtd/xml/4.1.2/") nil) ("ISObox.module" text "INCLUDE" nil) ("ISObox" text ("ISO 8879:1986//ENTITIES Box and Line Drawing//EN//XML" "/usr/share/sgml/entities/xml-iso-entities-8879.1986/ISObox.ent" . "/usr/share/sgml/docbook/dtd/xml/4.1.2/") nil) ("ISOcyr1.module" text "INCLUDE" nil) ("ISOcyr1" text ("ISO 8879:1986//ENTITIES Russian Cyrillic//EN//XML" "/usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOcyr1.ent" . "/usr/share/sgml/docbook/dtd/xml/4.1.2/") nil) ("ISOcyr2.module" text "INCLUDE" nil) ("ISOcyr2" text ("ISO 8879:1986//ENTITIES Non-Russian Cyrillic//EN//XML" "/usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOcyr2.ent" . "/usr/share/sgml/docbook/dtd/xml/4.1.2/") nil) ("ISOdia.module" text "INCLUDE" nil) ("ISOdia" text ("ISO 8879:1986//ENTITIES Diacritical Marks//EN//XML" "/usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOdia.ent" . "/usr/share/sgml/docbook/dtd/xml/4.1.2/") nil) ("ISOgrk1.module" text "INCLUDE" nil) ("ISOgrk1" text ("ISO 8879:1986//ENTITIES Greek Letters//EN//XML" "/usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOgrk1.ent" . "/usr/share/sgml/docbook/dtd/xml/4.1.2/") nil) ("ISOgrk2.module" text "INCLUDE" nil) ("ISOgrk2" text ("ISO 8879:1986//ENTITIES Monotoniko Greek//EN//XML" "/usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOgrk2.ent" . "/usr/share/sgml/docbook/dtd/xml/4.1.2/") nil) ("ISOgrk3.module" text "INCLUDE" nil) ("ISOgrk3" text ("ISO 8879:1986//ENTITIES Greek Symbols//EN//XML" "/usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOgrk3.ent" . "/usr/share/sgml/docbook/dtd/xml/4.1.2/") nil) ("ISOgrk4.module" text "INCLUDE" nil) ("ISOgrk4" text ("ISO 8879:1986//ENTITIES Alternative Greek Symbols//EN//XML" "/usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOgrk4.ent" . "/usr/share/sgml/docbook/dtd/xml/4.1.2/") nil) ("ISOlat1.module" text "INCLUDE" nil) ("ISOlat1" text ("ISO 8879:1986//ENTITIES Added Latin 1//EN//XML" "/usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOlat1.ent" . "/usr/share/sgml/docbook/dtd/xml/4.1.2/") nil) ("ISOlat2.module" text "INCLUDE" nil) ("ISOlat2" text ("ISO 8879:1986//ENTITIES Added Latin 2//EN//XML" "/usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOlat2.ent" . "/usr/share/sgml/docbook/dtd/xml/4.1.2/") nil) ("ISOnum.module" text "INCLUDE" nil) ("ISOnum" text ("ISO 8879:1986//ENTITIES Numeric and Special Graphic//EN//XML" "/usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOnum.ent" . "/usr/share/sgml/docbook/dtd/xml/4.1.2/") nil) ("ISOpub.module" text "INCLUDE" nil) ("ISOpub" text ("ISO 8879:1986//ENTITIES Publishing//EN//XML" "/usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOpub.ent" . "/usr/share/sgml/docbook/dtd/xml/4.1.2/") nil) ("ISOtech.module" text "INCLUDE" nil) ("ISOtech" text ("ISO 8879:1986//ENTITIES General Technical//EN//XML" "/usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOtech.ent" . "/usr/share/sgml/docbook/dtd/xml/4.1.2/") nil) ("dbpool.module" text "INCLUDE" nil) ("dbpool" text ("-//OASIS//ELEMENTS DocBook XML Information Pool V4.1.2//EN" "dbpoolx.mod" . "/usr/share/sgml/docbook/dtd/xml/4.1.2/") nil) ("yesorno.attvals" text "CDATA" nil) ("dbpool.redecl.module" text "IGNORE" nil) ("local.ndxterm.class" text "" nil) ("ndxterm.class" text "indexterm " nil) ("local.list.class" text "" nil) ("list.class" text "calloutlist|glosslist|itemizedlist|orderedlist|segmentedlist |simplelist|variablelist " nil) ("local.admon.class" text "" nil) ("admon.class" text "caution|important|note|tip|warning " nil) ("local.linespecific.class" text "" nil) ("linespecific.class" text "literallayout|programlisting|programlistingco|screen |screenco|screenshot " nil) ("local.method.synop.class" text "" nil) ("method.synop.class" text "constructorsynopsis |destructorsynopsis |methodsynopsis " nil) ("local.synop.class" text "" nil) ("synop.class" text "synopsis|cmdsynopsis|funcsynopsis |classsynopsis|fieldsynopsis |constructorsynopsis |destructorsynopsis |methodsynopsis " nil) ("local.para.class" text "" nil) ("para.class" text "formalpara|para|simpara " nil) ("local.informal.class" text "" nil) ("informal.class" text "address|blockquote |graphic|graphicco|mediaobject|mediaobjectco |informalequation |informalexample |informalfigure |informaltable " nil) ("local.formal.class" text "" nil) ("formal.class" text "equation|example|figure|table " nil) ("ebnf.block.hook" text "" nil) ("local.compound.class" text "" nil) ("compound.class" text "msgset|procedure|sidebar|qandaset " nil) ("local.genobj.class" text "" nil) ("genobj.class" text "anchor|bridgehead|remark|highlights " nil) ("local.descobj.class" text "" nil) ("descobj.class" text "abstract|authorblurb|epigraph " nil) ("local.xref.char.class" text "" nil) ("xref.char.class" text "footnoteref|xref " nil) ("local.gen.char.class" text "" nil) ("gen.char.class" text "abbrev|acronym|citation|citerefentry|citetitle|emphasis |firstterm|foreignphrase|glossterm|footnote|phrase |quote|trademark|wordasword " nil) ("local.link.char.class" text "" nil) ("link.char.class" text "link|olink|ulink " nil) ("ebnf.inline.hook" text "" nil) ("local.tech.char.class" text "" nil) ("tech.char.class" text "action|application |classname|methodname|interfacename|exceptionname |ooclass|oointerface|ooexception |command|computeroutput |database|email|envar|errorcode|errorname|errortype|filename |function|guibutton|guiicon|guilabel|guimenu|guimenuitem |guisubmenu|hardware|interface|keycap |keycode|keycombo|keysym|literal|constant|markup|medialabel |menuchoice|mousebutton|option|optional|parameter |prompt|property|replaceable|returnvalue|sgmltag|structfield |structname|symbol|systemitem|token|type|userinput|varname " nil) ("local.base.char.class" text "" nil) ("base.char.class" text "anchor " nil) ("local.docinfo.char.class" text "" nil) ("docinfo.char.class" text "author|authorinitials|corpauthor|modespec|othercredit |productname|productnumber|revhistory " nil) ("local.other.char.class" text "" nil) ("other.char.class" text "remark|subscript|superscript " nil) ("local.inlineobj.char.class" text "" nil) ("inlineobj.char.class" text "inlinegraphic|inlinemediaobject|inlineequation " nil) ("local.component.mix" text "" nil) ("component.mix" text "calloutlist|glosslist|itemizedlist|orderedlist|segmentedlist |simplelist|variablelist |caution|important|note|tip|warning |literallayout|programlisting|programlistingco|screen |screenco|screenshot |synopsis|cmdsynopsis|funcsynopsis |classsynopsis|fieldsynopsis |constructorsynopsis |destructorsynopsis |methodsynopsis |formalpara|para|simpara |address|blockquote |graphic|graphicco|mediaobject|mediaobjectco |informalequation |informalexample |informalfigure |informaltable |equation|example|figure|table |msgset|procedure|sidebar|qandaset |anchor|bridgehead|remark|highlights |abstract|authorblurb|epigraph |indexterm |beginpage " nil) ("local.sidebar.mix" text "" nil) ("sidebar.mix" text "calloutlist|glosslist|itemizedlist|orderedlist|segmentedlist |simplelist|variablelist |caution|important|note|tip|warning |literallayout|programlisting|programlistingco|screen |screenco|screenshot |synopsis|cmdsynopsis|funcsynopsis |classsynopsis|fieldsynopsis |constructorsynopsis |destructorsynopsis |methodsynopsis |formalpara|para|simpara |address|blockquote |graphic|graphicco|mediaobject|mediaobjectco |informalequation |informalexample |informalfigure |informaltable |equation|example|figure|table |procedure |anchor|bridgehead|remark|highlights |indexterm |beginpage " nil) ("local.qandaset.mix" text "" nil) ("qandaset.mix" text "calloutlist|glosslist|itemizedlist|orderedlist|segmentedlist |simplelist|variablelist |caution|important|note|tip|warning |literallayout|programlisting|programlistingco|screen |screenco|screenshot |synopsis|cmdsynopsis|funcsynopsis |classsynopsis|fieldsynopsis |constructorsynopsis |destructorsynopsis |methodsynopsis |formalpara|para|simpara |address|blockquote |graphic|graphicco|mediaobject|mediaobjectco |informalequation |informalexample |informalfigure |informaltable |equation|example|figure|table |procedure |anchor|bridgehead|remark|highlights |indexterm " nil) ("local.revdescription.mix" text "" nil) ("revdescription.mix" text "calloutlist|glosslist|itemizedlist|orderedlist|segmentedlist |simplelist|variablelist |caution|important|note|tip|warning |literallayout|programlisting|programlistingco|screen |screenco|screenshot |synopsis|cmdsynopsis|funcsynopsis |classsynopsis|fieldsynopsis |constructorsynopsis |destructorsynopsis |methodsynopsis |formalpara|para|simpara |address|blockquote |graphic|graphicco|mediaobject|mediaobjectco |informalequation |informalexample |informalfigure |informaltable |equation|example|figure|table |procedure |anchor|bridgehead|remark|highlights |indexterm " nil) ("local.footnote.mix" text "" nil) ("footnote.mix" text "calloutlist|glosslist|itemizedlist|orderedlist|segmentedlist |simplelist|variablelist |literallayout|programlisting|programlistingco|screen |screenco|screenshot |synopsis|cmdsynopsis|funcsynopsis |classsynopsis|fieldsynopsis |constructorsynopsis |destructorsynopsis |methodsynopsis |formalpara|para|simpara |address|blockquote |graphic|graphicco|mediaobject|mediaobjectco |informalequation |informalexample |informalfigure |informaltable " nil) ("local.example.mix" text "" nil) ("example.mix" text "calloutlist|glosslist|itemizedlist|orderedlist|segmentedlist |simplelist|variablelist |literallayout|programlisting|programlistingco|screen |screenco|screenshot |synopsis|cmdsynopsis|funcsynopsis |classsynopsis|fieldsynopsis |constructorsynopsis |destructorsynopsis |methodsynopsis |formalpara|para|simpara |address|blockquote |graphic|graphicco|mediaobject|mediaobjectco |informalequation |informalexample |informalfigure |informaltable |indexterm |beginpage " nil) ("local.highlights.mix" text "" nil) ("highlights.mix" text "calloutlist|glosslist|itemizedlist|orderedlist|segmentedlist |simplelist|variablelist |caution|important|note|tip|warning |formalpara|para|simpara |indexterm " nil) ("local.para.mix" text "" nil) ("para.mix" text "calloutlist|glosslist|itemizedlist|orderedlist|segmentedlist |simplelist|variablelist |caution|important|note|tip|warning |literallayout|programlisting|programlistingco|screen |screenco|screenshot |address|blockquote |graphic|graphicco|mediaobject|mediaobjectco |informalequation |informalexample |informalfigure |informaltable |equation|example|figure|table " nil) ("local.admon.mix" text "" nil) ("admon.mix" text "calloutlist|glosslist|itemizedlist|orderedlist|segmentedlist |simplelist|variablelist |literallayout|programlisting|programlistingco|screen |screenco|screenshot |synopsis|cmdsynopsis|funcsynopsis |classsynopsis|fieldsynopsis |constructorsynopsis |destructorsynopsis |methodsynopsis |formalpara|para|simpara |address|blockquote |graphic|graphicco|mediaobject|mediaobjectco |informalequation |informalexample |informalfigure |informaltable |equation|example|figure|table |procedure|sidebar |anchor|bridgehead|remark |indexterm |beginpage " nil) ("local.figure.mix" text "" nil) ("figure.mix" text "literallayout|programlisting|programlistingco|screen |screenco|screenshot |synopsis|cmdsynopsis|funcsynopsis |classsynopsis|fieldsynopsis |constructorsynopsis |destructorsynopsis |methodsynopsis |address|blockquote |graphic|graphicco|mediaobject|mediaobjectco |informalequation |informalexample |informalfigure |informaltable |indexterm |beginpage " nil) ("local.tabentry.mix" text "" nil) ("tabentry.mix" text "calloutlist|glosslist|itemizedlist|orderedlist|segmentedlist |simplelist|variablelist |caution|important|note|tip|warning |literallayout|programlisting|programlistingco|screen |screenco|screenshot |formalpara|para|simpara |graphic|mediaobject " nil) ("local.glossdef.mix" text "" nil) ("glossdef.mix" text "calloutlist|glosslist|itemizedlist|orderedlist|segmentedlist |simplelist|variablelist |literallayout|programlisting|programlistingco|screen |screenco|screenshot |synopsis|cmdsynopsis|funcsynopsis |classsynopsis|fieldsynopsis |constructorsynopsis |destructorsynopsis |methodsynopsis |formalpara|para|simpara |address|blockquote |graphic|graphicco|mediaobject|mediaobjectco |informalequation |informalexample |informalfigure |informaltable |equation|example|figure|table |remark |indexterm |beginpage " nil) ("local.legalnotice.mix" text "" nil) ("legalnotice.mix" text "calloutlist|glosslist|itemizedlist|orderedlist|segmentedlist |simplelist|variablelist |caution|important|note|tip|warning |literallayout|programlisting|programlistingco|screen |screenco|screenshot |formalpara|para|simpara |blockquote |indexterm |beginpage " nil) ("local.textobject.mix" text "" nil) ("textobject.mix" text "calloutlist|glosslist|itemizedlist|orderedlist|segmentedlist |simplelist|variablelist |caution|important|note|tip|warning |literallayout|programlisting|programlistingco|screen |screenco|screenshot |formalpara|para|simpara |blockquote " nil) ("local.mediaobject.mix" text "" nil) ("mediaobject.mix" text "videoobject|audioobject|imageobject " nil) ("forminlines.hook" text "" nil) ("local.para.char.mix" text "" nil) ("para.char.mix" text "#PCDATA |footnoteref|xref |abbrev|acronym|citation|citerefentry|citetitle|emphasis |firstterm|foreignphrase|glossterm|footnote|phrase |quote|trademark|wordasword |link|olink|ulink |action|application |classname|methodname|interfacename|exceptionname |ooclass|oointerface|ooexception |command|computeroutput |database|email|envar|errorcode|errorname|errortype|filename |function|guibutton|guiicon|guilabel|guimenu|guimenuitem |guisubmenu|hardware|interface|keycap |keycode|keycombo|keysym|literal|constant|markup|medialabel |menuchoice|mousebutton|option|optional|parameter |prompt|property|replaceable|returnvalue|sgmltag|structfield |structname|symbol|systemitem|token|type|userinput|varname |anchor |author|authorinitials|corpauthor|modespec|othercredit |productname|productnumber|revhistory |remark|subscript|superscript |inlinegraphic|inlinemediaobject|inlineequation |synopsis|cmdsynopsis|funcsynopsis |classsynopsis|fieldsynopsis |constructorsynopsis |destructorsynopsis |methodsynopsis |indexterm |beginpage " nil) ("local.title.char.mix" text "" nil) ("title.char.mix" text "#PCDATA |footnoteref|xref |abbrev|acronym|citation|citerefentry|citetitle|emphasis |firstterm|foreignphrase|glossterm|footnote|phrase |quote|trademark|wordasword |link|olink|ulink |action|application |classname|methodname|interfacename|exceptionname |ooclass|oointerface|ooexception |command|computeroutput |database|email|envar|errorcode|errorname|errortype|filename |function|guibutton|guiicon|guilabel|guimenu|guimenuitem |guisubmenu|hardware|interface|keycap |keycode|keycombo|keysym|literal|constant|markup|medialabel |menuchoice|mousebutton|option|optional|parameter |prompt|property|replaceable|returnvalue|sgmltag|structfield |structname|symbol|systemitem|token|type|userinput|varname |anchor |author|authorinitials|corpauthor|modespec|othercredit |productname|productnumber|revhistory |remark|subscript|superscript |inlinegraphic|inlinemediaobject|inlineequation |indexterm " nil) ("local.ndxterm.char.mix" text "" nil) ("ndxterm.char.mix" text "#PCDATA |footnoteref|xref |abbrev|acronym|citation|citerefentry|citetitle|emphasis |firstterm|foreignphrase|glossterm|footnote|phrase |quote|trademark|wordasword |link|olink|ulink |action|application |classname|methodname|interfacename|exceptionname |ooclass|oointerface|ooexception |command|computeroutput |database|email|envar|errorcode|errorname|errortype|filename |function|guibutton|guiicon|guilabel|guimenu|guimenuitem |guisubmenu|hardware|interface|keycap |keycode|keycombo|keysym|literal|constant|markup|medialabel |menuchoice|mousebutton|option|optional|parameter |prompt|property|replaceable|returnvalue|sgmltag|structfield |structname|symbol|systemitem|token|type|userinput|varname |anchor |author|authorinitials|corpauthor|modespec|othercredit |productname|productnumber|revhistory |remark|subscript|superscript |inlinegraphic|inlinemediaobject " nil) ("local.cptr.char.mix" text "" nil) ("cptr.char.mix" text "#PCDATA |link|olink|ulink |action|application |classname|methodname|interfacename|exceptionname |ooclass|oointerface|ooexception |command|computeroutput |database|email|envar|errorcode|errorname|errortype|filename |function|guibutton|guiicon|guilabel|guimenu|guimenuitem |guisubmenu|hardware|interface|keycap |keycode|keycombo|keysym|literal|constant|markup|medialabel |menuchoice|mousebutton|option|optional|parameter |prompt|property|replaceable|returnvalue|sgmltag|structfield |structname|symbol|systemitem|token|type|userinput|varname |anchor |remark|subscript|superscript |inlinegraphic|inlinemediaobject |indexterm |beginpage " nil) ("local.smallcptr.char.mix" text "" nil) ("smallcptr.char.mix" text "#PCDATA |replaceable |inlinegraphic|inlinemediaobject |indexterm |beginpage " nil) ("local.word.char.mix" text "" nil) ("word.char.mix" text "#PCDATA |acronym|emphasis|trademark |link|olink|ulink |anchor |remark|subscript|superscript |inlinegraphic|inlinemediaobject |indexterm |beginpage " nil) ("local.docinfo.char.mix" text "" nil) ("docinfo.char.mix" text "#PCDATA |link|olink|ulink |emphasis|trademark |replaceable |remark|subscript|superscript |inlinegraphic|inlinemediaobject |indexterm " nil) ("formalobject.title.content" text "title, titleabbrev?" nil) ("arch.attrib" text "arch CDATA #IMPLIED" nil) ("condition.attrib" text "condition CDATA #IMPLIED" nil) ("conformance.attrib" text "conformance NMTOKENS #IMPLIED" nil) ("os.attrib" text "os CDATA #IMPLIED" nil) ("revision.attrib" text "revision CDATA #IMPLIED" nil) ("security.attrib" text "security CDATA #IMPLIED" nil) ("userlevel.attrib" text "userlevel CDATA #IMPLIED" nil) ("vendor.attrib" text "vendor CDATA #IMPLIED" nil) ("local.effectivity.attrib" text "" nil) ("effectivity.attrib" text "arch CDATA #IMPLIED condition CDATA #IMPLIED conformance NMTOKENS #IMPLIED os CDATA #IMPLIED revision CDATA #IMPLIED security CDATA #IMPLIED userlevel CDATA #IMPLIED vendor CDATA #IMPLIED " nil) ("id.attrib" text "id ID #IMPLIED" nil) ("idreq.attrib" text "id ID #REQUIRED" nil) ("lang.attrib" text "lang CDATA #IMPLIED" nil) ("remap.attrib" text "remap CDATA #IMPLIED" nil) ("role.attrib" text "role CDATA #IMPLIED" nil) ("xreflabel.attrib" text "xreflabel CDATA #IMPLIED" nil) ("revisionflag.attrib" text "revisionflag (changed |added |deleted |off) #IMPLIED" nil) ("local.common.attrib" text "" nil) ("common.attrib" text "id ID #IMPLIED lang CDATA #IMPLIED remap CDATA #IMPLIED xreflabel CDATA #IMPLIED revisionflag (changed |added |deleted |off) #IMPLIED arch CDATA #IMPLIED condition CDATA #IMPLIED conformance NMTOKENS #IMPLIED os CDATA #IMPLIED revision CDATA #IMPLIED security CDATA #IMPLIED userlevel CDATA #IMPLIED vendor CDATA #IMPLIED " nil) ("idreq.common.attrib" text "id ID #REQUIRED lang CDATA #IMPLIED remap CDATA #IMPLIED xreflabel CDATA #IMPLIED revisionflag (changed |added |deleted |off) #IMPLIED arch CDATA #IMPLIED condition CDATA #IMPLIED conformance NMTOKENS #IMPLIED os CDATA #IMPLIED revision CDATA #IMPLIED security CDATA #IMPLIED userlevel CDATA #IMPLIED vendor CDATA #IMPLIED " nil) ("local.graphics.attrib" text "" nil) ("graphics.attrib" text " entityref ENTITY #IMPLIED fileref CDATA #IMPLIED format (BMP| CGM-CHAR | CGM-BINARY | CGM-CLEAR | DITROFF | DVI | EPS | EQN | FAX | GIF | GIF87a | GIF89a | JPG | JPEG | IGES | PCX | PIC | PNG | PS | SGML | TBL | TEX | TIFF | WMF | WPG | linespecific ) #IMPLIED srccredit CDATA #IMPLIED width CDATA #IMPLIED depth CDATA #IMPLIED align (left |right |center) #IMPLIED scale CDATA #IMPLIED scalefit CDATA #IMPLIED " nil) ("local.keyaction.attrib" text "" nil) ("keyaction.attrib" text " action (click |double-click |press |seq |simul |other) #IMPLIED otheraction CDATA #IMPLIED " nil) ("label.attrib" text "label CDATA #IMPLIED" nil) ("linespecific.attrib" text "format NOTATION (linespecific) 'linespecific' linenumbering (numbered|unnumbered) #IMPLIED" nil) ("linkend.attrib" text "linkend IDREF #IMPLIED" nil) ("linkendreq.attrib" text "linkend IDREF #REQUIRED" nil) ("linkends.attrib" text "linkends IDREFS #IMPLIED" nil) ("local.mark.attrib" text "" nil) ("mark.attrib" text "mark CDATA #IMPLIED " nil) ("moreinfo.attrib" text "moreinfo (refentry|none) 'none'" nil) ("pagenum.attrib" text "pagenum CDATA #IMPLIED" nil) ("local.status.attrib" text "" nil) ("status.attrib" text "status CDATA #IMPLIED " nil) ("width.attrib" text "width CDATA #IMPLIED" nil) ("title.module" text "INCLUDE" nil) ("local.title.attrib" text "" nil) ("title.role.attrib" text "role CDATA #IMPLIED" nil) ("title.element" text "INCLUDE" nil) ("title.attlist" text "INCLUDE" nil) ("titleabbrev.module" text "INCLUDE" nil) ("local.titleabbrev.attrib" text "" nil) ("titleabbrev.role.attrib" text "role CDATA #IMPLIED" nil) ("titleabbrev.element" text "INCLUDE" nil) ("titleabbrev.attlist" text "INCLUDE" nil) ("subtitle.module" text "INCLUDE" nil) ("local.subtitle.attrib" text "" nil) ("subtitle.role.attrib" text "role CDATA #IMPLIED" nil) ("subtitle.element" text "INCLUDE" nil) ("subtitle.attlist" text "INCLUDE" nil) ("local.person.ident.mix" text "" nil) ("person.ident.mix" text "honorific|firstname|surname|lineage|othername|affiliation |authorblurb|contrib " nil) ("local.bibliocomponent.mix" text "" nil) ("bibliocomponent.mix" text "abbrev|abstract|address|artpagenums|author |authorgroup|authorinitials|bibliomisc|biblioset |collab|confgroup|contractnum|contractsponsor |copyright|corpauthor|corpname|date|edition |editor|invpartnumber|isbn|issn|issuenum|orgname |othercredit|pagenums|printhistory|productname |productnumber|pubdate|publisher|publishername |pubsnumber|releaseinfo|revhistory|seriesvolnums |subtitle|title|titleabbrev|volumenum|citetitle |honorific|firstname|surname|lineage|othername|affiliation |authorblurb|contrib |indexterm " nil) ("biblioentry.module" text "INCLUDE" nil) ("local.biblioentry.attrib" text "" nil) ("biblioentry.role.attrib" text "role CDATA #IMPLIED" nil) ("biblioentry.element" text "INCLUDE" nil) ("biblioentry.attlist" text "INCLUDE" nil) ("bibliomixed.module" text "INCLUDE" nil) ("local.bibliomixed.attrib" text "" nil) ("bibliomixed.role.attrib" text "role CDATA #IMPLIED" nil) ("bibliomixed.element" text "INCLUDE" nil) ("bibliomixed.attlist" text "INCLUDE" nil) ("articleinfo.module" text "INCLUDE" nil) ("local.articleinfo.attrib" text "" nil) ("articleinfo.role.attrib" text "role CDATA #IMPLIED" nil) ("articleinfo.element" text "INCLUDE" nil) ("articleinfo.attlist" text "INCLUDE" nil) ("biblioset.module" text "INCLUDE" nil) ("local.biblioset.attrib" text "" nil) ("biblioset.role.attrib" text "role CDATA #IMPLIED" nil) ("biblioset.element" text "INCLUDE" nil) ("biblioset.attlist" text "INCLUDE" nil) ("bibliomset.module" text "INCLUDE" nil) ("bibliomset.role.attrib" text "role CDATA #IMPLIED" nil) ("local.bibliomset.attrib" text "" nil) ("bibliomset.element" text "INCLUDE" nil) ("bibliomset.attlist" text "INCLUDE" nil) ("bibliomisc.module" text "INCLUDE" nil) ("local.bibliomisc.attrib" text "" nil) ("bibliomisc.role.attrib" text "role CDATA #IMPLIED" nil) ("bibliomisc.element" text "INCLUDE" nil) ("bibliomisc.attlist" text "INCLUDE" nil) ("subjectset.content.module" text "INCLUDE" nil) ("subjectset.module" text "INCLUDE" nil) ("local.subjectset.attrib" text "" nil) ("subjectset.role.attrib" text "role CDATA #IMPLIED" nil) ("subjectset.element" text "INCLUDE" nil) ("subjectset.attlist" text "INCLUDE" nil) ("subject.module" text "INCLUDE" nil) ("local.subject.attrib" text "" nil) ("subject.role.attrib" text "role CDATA #IMPLIED" nil) ("subject.element" text "INCLUDE" nil) ("subject.attlist" text "INCLUDE" nil) ("subjectterm.module" text "INCLUDE" nil) ("local.subjectterm.attrib" text "" nil) ("subjectterm.role.attrib" text "role CDATA #IMPLIED" nil) ("subjectterm.element" text "INCLUDE" nil) ("subjectterm.attlist" text "INCLUDE" nil) ("keywordset.content.module" text "INCLUDE" nil) ("keywordset.module" text "INCLUDE" nil) ("local.keywordset.attrib" text "" nil) ("keywordset.role.attrib" text "role CDATA #IMPLIED" nil) ("keywordset.element" text "INCLUDE" nil) ("keywordset.attlist" text "INCLUDE" nil) ("keyword.module" text "INCLUDE" nil) ("local.keyword.attrib" text "" nil) ("keyword.role.attrib" text "role CDATA #IMPLIED" nil) ("keyword.element" text "INCLUDE" nil) ("keyword.attlist" text "INCLUDE" nil) ("itermset.module" text "INCLUDE" nil) ("local.itermset.attrib" text "" nil) ("itermset.role.attrib" text "role CDATA #IMPLIED" nil) ("itermset.element" text "INCLUDE" nil) ("itermset.attlist" text "INCLUDE" nil) ("msgset.content.module" text "INCLUDE" nil) ("msgset.module" text "INCLUDE" nil) ("local.msgset.attrib" text "" nil) ("msgset.role.attrib" text "role CDATA #IMPLIED" nil) ("msgset.element" text "INCLUDE" nil) ("msgset.attlist" text "INCLUDE" nil) ("msgentry.module" text "INCLUDE" nil) ("local.msgentry.attrib" text "" nil) ("msgentry.role.attrib" text "role CDATA #IMPLIED" nil) ("msgentry.element" text "INCLUDE" nil) ("msgentry.attlist" text "INCLUDE" nil) ("simplemsgentry.module" text "INCLUDE" nil) ("local.simplemsgentry.attrib" text "" nil) ("simplemsgentry.role.attrib" text "role CDATA #IMPLIED" nil) ("simplemsgentry.element" text "INCLUDE" nil) ("simplemsgentry.attlist" text "INCLUDE" nil) ("msg.module" text "INCLUDE" nil) ("local.msg.attrib" text "" nil) ("msg.role.attrib" text "role CDATA #IMPLIED" nil) ("msg.element" text "INCLUDE" nil) ("msg.attlist" text "INCLUDE" nil) ("msgmain.module" text "INCLUDE" nil) ("local.msgmain.attrib" text "" nil) ("msgmain.role.attrib" text "role CDATA #IMPLIED" nil) ("msgmain.element" text "INCLUDE" nil) ("msgmain.attlist" text "INCLUDE" nil) ("msgsub.module" text "INCLUDE" nil) ("local.msgsub.attrib" text "" nil) ("msgsub.role.attrib" text "role CDATA #IMPLIED" nil) ("msgsub.element" text "INCLUDE" nil) ("msgsub.attlist" text "INCLUDE" nil) ("msgrel.module" text "INCLUDE" nil) ("local.msgrel.attrib" text "" nil) ("msgrel.role.attrib" text "role CDATA #IMPLIED" nil) ("msgrel.element" text "INCLUDE" nil) ("msgrel.attlist" text "INCLUDE" nil) ("msginfo.module" text "INCLUDE" nil) ("local.msginfo.attrib" text "" nil) ("msginfo.role.attrib" text "role CDATA #IMPLIED" nil) ("msginfo.element" text "INCLUDE" nil) ("msginfo.attlist" text "INCLUDE" nil) ("msglevel.module" text "INCLUDE" nil) ("local.msglevel.attrib" text "" nil) ("msglevel.role.attrib" text "role CDATA #IMPLIED" nil) ("msglevel.element" text "INCLUDE" nil) ("msglevel.attlist" text "INCLUDE" nil) ("msgorig.module" text "INCLUDE" nil) ("local.msgorig.attrib" text "" nil) ("msgorig.role.attrib" text "role CDATA #IMPLIED" nil) ("msgorig.element" text "INCLUDE" nil) ("msgorig.attlist" text "INCLUDE" nil) ("msgaud.module" text "INCLUDE" nil) ("local.msgaud.attrib" text "" nil) ("msgaud.role.attrib" text "role CDATA #IMPLIED" nil) ("msgaud.element" text "INCLUDE" nil) ("msgaud.attlist" text "INCLUDE" nil) ("msgexplan.module" text "INCLUDE" nil) ("local.msgexplan.attrib" text "" nil) ("msgexplan.role.attrib" text "role CDATA #IMPLIED" nil) ("msgexplan.element" text "INCLUDE" nil) ("msgexplan.attlist" text "INCLUDE" nil) ("qandset.content.module" text "INCLUDE" nil) ("qandset.module" text "INCLUDE" nil) ("local.qandset.attrib" text "" nil) ("qandset.role.attrib" text "role CDATA #IMPLIED" nil) ("qandset.element" text "INCLUDE" nil) ("qandset.attlist" text "INCLUDE" nil) ("qandadiv.module" text "INCLUDE" nil) ("local.qandadiv.attrib" text "" nil) ("qandadiv.role.attrib" text "role CDATA #IMPLIED" nil) ("qandadiv.element" text "INCLUDE" nil) ("qandadiv.attlist" text "INCLUDE" nil) ("qandaentry.module" text "INCLUDE" nil) ("local.qandaentry.attrib" text "" nil) ("qandaentry.role.attrib" text "role CDATA #IMPLIED" nil) ("qandaentry.element" text "INCLUDE" nil) ("qandaentry.attlist" text "INCLUDE" nil) ("question.module" text "INCLUDE" nil) ("local.question.attrib" text "" nil) ("question.role.attrib" text "role CDATA #IMPLIED" nil) ("question.element" text "INCLUDE" nil) ("question.attlist" text "INCLUDE" nil) ("answer.module" text "INCLUDE" nil) ("local.answer.attrib" text "" nil) ("answer.role.attrib" text "role CDATA #IMPLIED" nil) ("answer.element" text "INCLUDE" nil) ("answer.attlist" text "INCLUDE" nil) ("label.module" text "INCLUDE" nil) ("local.label.attrib" text "" nil) ("label.role.attrib" text "role CDATA #IMPLIED" nil) ("label.element" text "INCLUDE" nil) ("label.attlist" text "INCLUDE" nil) ("procedure.content.module" text "INCLUDE" nil) ("procedure.module" text "INCLUDE" nil) ("local.procedure.attrib" text "" nil) ("procedure.role.attrib" text "role CDATA #IMPLIED" nil) ("procedure.element" text "INCLUDE" nil) ("procedure.attlist" text "INCLUDE" nil) ("step.module" text "INCLUDE" nil) ("local.step.attrib" text "" nil) ("step.role.attrib" text "role CDATA #IMPLIED" nil) ("step.element" text "INCLUDE" nil) ("step.attlist" text "INCLUDE" nil) ("substeps.module" text "INCLUDE" nil) ("local.substeps.attrib" text "" nil) ("substeps.role.attrib" text "role CDATA #IMPLIED" nil) ("substeps.element" text "INCLUDE" nil) ("substeps.attlist" text "INCLUDE" nil) ("sidebar.content.model" text "INCLUDE" nil) ("sidebarinfo.module" text "INCLUDE" nil) ("local.sidebarinfo.attrib" text "" nil) ("sidebarinfo.role.attrib" text "role CDATA #IMPLIED" nil) ("sidebarinfo.element" text "INCLUDE" nil) ("sidebarinfo.attlist" text "INCLUDE" nil) ("sidebar.module" text "INCLUDE" nil) ("local.sidebar.attrib" text "" nil) ("sidebar.role.attrib" text "role CDATA #IMPLIED" nil) ("sidebar.element" text "INCLUDE" nil) ("sidebar.attlist" text "INCLUDE" nil) ("abstract.module" text "INCLUDE" nil) ("local.abstract.attrib" text "" nil) ("abstract.role.attrib" text "role CDATA #IMPLIED" nil) ("abstract.element" text "INCLUDE" nil) ("abstract.attlist" text "INCLUDE" nil) ("authorblurb.module" text "INCLUDE" nil) ("local.authorblurb.attrib" text "" nil) ("authorblurb.role.attrib" text "role CDATA #IMPLIED" nil) ("authorblurb.element" text "INCLUDE" nil) ("authorblurb.attlist" text "INCLUDE" nil) ("blockquote.module" text "INCLUDE" nil) ("local.blockquote.attrib" text "" nil) ("blockquote.role.attrib" text "role CDATA #IMPLIED" nil) ("blockquote.element" text "INCLUDE" nil) ("blockquote.attlist" text "INCLUDE" nil) ("attribution.module" text "INCLUDE" nil) ("local.attribution.attrib" text "" nil) ("attribution.role.attrib" text "role CDATA #IMPLIED" nil) ("attribution.element" text "INCLUDE" nil) ("attribution.attlist" text "INCLUDE" nil) ("bridgehead.module" text "INCLUDE" nil) ("local.bridgehead.attrib" text "" nil) ("bridgehead.role.attrib" text "role CDATA #IMPLIED" nil) ("bridgehead.element" text "INCLUDE" nil) ("bridgehead.attlist" text "INCLUDE" nil) ("remark.module" text "INCLUDE" nil) ("local.remark.attrib" text "" nil) ("remark.role.attrib" text "role CDATA #IMPLIED" nil) ("remark.element" text "INCLUDE" nil) ("remark.attlist" text "INCLUDE" nil) ("epigraph.module" text "INCLUDE" nil) ("local.epigraph.attrib" text "" nil) ("epigraph.role.attrib" text "role CDATA #IMPLIED" nil) ("epigraph.element" text "INCLUDE" nil) ("epigraph.attlist" text "INCLUDE" nil) ("footnote.module" text "INCLUDE" nil) ("local.footnote.attrib" text "" nil) ("footnote.role.attrib" text "role CDATA #IMPLIED" nil) ("footnote.element" text "INCLUDE" nil) ("footnote.attlist" text "INCLUDE" nil) ("highlights.module" text "INCLUDE" nil) ("local.highlights.attrib" text "" nil) ("highlights.role.attrib" text "role CDATA #IMPLIED" nil) ("highlights.element" text "INCLUDE" nil) ("highlights.attlist" text "INCLUDE" nil) ("formalpara.module" text "INCLUDE" nil) ("local.formalpara.attrib" text "" nil) ("formalpara.role.attrib" text "role CDATA #IMPLIED" nil) ("formalpara.element" text "INCLUDE" nil) ("formalpara.attlist" text "INCLUDE" nil) ("para.module" text "INCLUDE" nil) ("local.para.attrib" text "" nil) ("para.role.attrib" text "role CDATA #IMPLIED" nil) ("para.element" text "INCLUDE" nil) ("para.attlist" text "INCLUDE" nil) ("simpara.module" text "INCLUDE" nil) ("local.simpara.attrib" text "" nil) ("simpara.role.attrib" text "role CDATA #IMPLIED" nil) ("simpara.element" text "INCLUDE" nil) ("simpara.attlist" text "INCLUDE" nil) ("admon.module" text "INCLUDE" nil) ("local.admon.attrib" text "" nil) ("admon.role.attrib" text "role CDATA #IMPLIED" nil) ("caution.element" text "INCLUDE" nil) ("caution.attlist" text "INCLUDE" nil) ("important.element" text "INCLUDE" nil) ("important.attlist" text "INCLUDE" nil) ("note.element" text "INCLUDE" nil) ("note.attlist" text "INCLUDE" nil) ("tip.element" text "INCLUDE" nil) ("tip.attlist" text "INCLUDE" nil) ("warning.element" text "INCLUDE" nil) ("warning.attlist" text "INCLUDE" nil) ("glosslist.module" text "INCLUDE" nil) ("local.glosslist.attrib" text "" nil) ("glosslist.role.attrib" text "role CDATA #IMPLIED" nil) ("glosslist.element" text "INCLUDE" nil) ("glosslist.attlist" text "INCLUDE" nil) ("glossentry.content.module" text "INCLUDE" nil) ("glossentry.module" text "INCLUDE" nil) ("local.glossentry.attrib" text "" nil) ("glossentry.role.attrib" text "role CDATA #IMPLIED" nil) ("glossentry.element" text "INCLUDE" nil) ("glossentry.attlist" text "INCLUDE" nil) ("glossdef.module" text "INCLUDE" nil) ("local.glossdef.attrib" text "" nil) ("glossdef.role.attrib" text "role CDATA #IMPLIED" nil) ("glossdef.element" text "INCLUDE" nil) ("glossdef.attlist" text "INCLUDE" nil) ("glosssee.module" text "INCLUDE" nil) ("local.glosssee.attrib" text "" nil) ("glosssee.role.attrib" text "role CDATA #IMPLIED" nil) ("glosssee.element" text "INCLUDE" nil) ("glosssee.attlist" text "INCLUDE" nil) ("glossseealso.module" text "INCLUDE" nil) ("local.glossseealso.attrib" text "" nil) ("glossseealso.role.attrib" text "role CDATA #IMPLIED" nil) ("glossseealso.element" text "INCLUDE" nil) ("glossseealso.attlist" text "INCLUDE" nil) ("itemizedlist.module" text "INCLUDE" nil) ("local.itemizedlist.attrib" text "" nil) ("itemizedlist.role.attrib" text "role CDATA #IMPLIED" nil) ("itemizedlist.element" text "INCLUDE" nil) ("itemizedlist.attlist" text "INCLUDE" nil) ("orderedlist.module" text "INCLUDE" nil) ("local.orderedlist.attrib" text "" nil) ("orderedlist.role.attrib" text "role CDATA #IMPLIED" nil) ("orderedlist.element" text "INCLUDE" nil) ("orderedlist.attlist" text "INCLUDE" nil) ("listitem.module" text "INCLUDE" nil) ("local.listitem.attrib" text "" nil) ("listitem.role.attrib" text "role CDATA #IMPLIED" nil) ("listitem.element" text "INCLUDE" nil) ("listitem.attlist" text "INCLUDE" nil) ("segmentedlist.content.module" text "INCLUDE" nil) ("segmentedlist.module" text "INCLUDE" nil) ("local.segmentedlist.attrib" text "" nil) ("segmentedlist.role.attrib" text "role CDATA #IMPLIED" nil) ("segmentedlist.element" text "INCLUDE" nil) ("segmentedlist.attlist" text "INCLUDE" nil) ("segtitle.module" text "INCLUDE" nil) ("local.segtitle.attrib" text "" nil) ("segtitle.role.attrib" text "role CDATA #IMPLIED" nil) ("segtitle.element" text "INCLUDE" nil) ("segtitle.attlist" text "INCLUDE" nil) ("seglistitem.module" text "INCLUDE" nil) ("local.seglistitem.attrib" text "" nil) ("seglistitem.role.attrib" text "role CDATA #IMPLIED" nil) ("seglistitem.element" text "INCLUDE" nil) ("seglistitem.attlist" text "INCLUDE" nil) ("seg.module" text "INCLUDE" nil) ("local.seg.attrib" text "" nil) ("seg.role.attrib" text "role CDATA #IMPLIED" nil) ("seg.element" text "INCLUDE" nil) ("seg.attlist" text "INCLUDE" nil) ("simplelist.content.module" text "INCLUDE" nil) ("simplelist.module" text "INCLUDE" nil) ("local.simplelist.attrib" text "" nil) ("simplelist.role.attrib" text "role CDATA #IMPLIED" nil) ("simplelist.element" text "INCLUDE" nil) ("simplelist.attlist" text "INCLUDE" nil) ("member.module" text "INCLUDE" nil) ("local.member.attrib" text "" nil) ("member.role.attrib" text "role CDATA #IMPLIED" nil) ("member.element" text "INCLUDE" nil) ("member.attlist" text "INCLUDE" nil) ("variablelist.content.module" text "INCLUDE" nil) ("variablelist.module" text "INCLUDE" nil) ("local.variablelist.attrib" text "" nil) ("variablelist.role.attrib" text "role CDATA #IMPLIED" nil) ("variablelist.element" text "INCLUDE" nil) ("variablelist.attlist" text "INCLUDE" nil) ("varlistentry.module" text "INCLUDE" nil) ("local.varlistentry.attrib" text "" nil) ("varlistentry.role.attrib" text "role CDATA #IMPLIED" nil) ("varlistentry.element" text "INCLUDE" nil) ("varlistentry.attlist" text "INCLUDE" nil) ("term.module" text "INCLUDE" nil) ("local.term.attrib" text "" nil) ("term.role.attrib" text "role CDATA #IMPLIED" nil) ("term.element" text "INCLUDE" nil) ("term.attlist" text "INCLUDE" nil) ("calloutlist.content.module" text "INCLUDE" nil) ("calloutlist.module" text "INCLUDE" nil) ("local.calloutlist.attrib" text "" nil) ("calloutlist.role.attrib" text "role CDATA #IMPLIED" nil) ("calloutlist.element" text "INCLUDE" nil) ("calloutlist.attlist" text "INCLUDE" nil) ("callout.module" text "INCLUDE" nil) ("local.callout.attrib" text "" nil) ("callout.role.attrib" text "role CDATA #IMPLIED" nil) ("callout.element" text "INCLUDE" nil) ("callout.attlist" text "INCLUDE" nil) ("example.module" text "INCLUDE" nil) ("local.example.attrib" text "" nil) ("example.role.attrib" text "role CDATA #IMPLIED" nil) ("example.element" text "INCLUDE" nil) ("example.attlist" text "INCLUDE" nil) ("informalexample.module" text "INCLUDE" nil) ("local.informalexample.attrib" text "" nil) ("informalexample.role.attrib" text "role CDATA #IMPLIED" nil) ("informalexample.element" text "INCLUDE" nil) ("informalexample.attlist" text "INCLUDE" nil) ("programlistingco.module" text "INCLUDE" nil) ("local.programlistingco.attrib" text "" nil) ("programlistingco.role.attrib" text "role CDATA #IMPLIED" nil) ("programlistingco.element" text "INCLUDE" nil) ("programlistingco.attlist" text "INCLUDE" nil) ("areaspec.content.module" text "INCLUDE" nil) ("areaspec.module" text "INCLUDE" nil) ("local.areaspec.attrib" text "" nil) ("areaspec.role.attrib" text "role CDATA #IMPLIED" nil) ("areaspec.element" text "INCLUDE" nil) ("areaspec.attlist" text "INCLUDE" nil) ("area.module" text "INCLUDE" nil) ("local.area.attrib" text "" nil) ("area.role.attrib" text "role CDATA #IMPLIED" nil) ("area.element" text "INCLUDE" nil) ("area.attlist" text "INCLUDE" nil) ("areaset.module" text "INCLUDE" nil) ("local.areaset.attrib" text "" nil) ("areaset.role.attrib" text "role CDATA #IMPLIED" nil) ("areaset.element" text "INCLUDE" nil) ("areaset.attlist" text "INCLUDE" nil) ("programlisting.module" text "INCLUDE" nil) ("local.programlisting.attrib" text "" nil) ("programlisting.role.attrib" text "role CDATA #IMPLIED" nil) ("programlisting.element" text "INCLUDE" nil) ("programlisting.attlist" text "INCLUDE" nil) ("literallayout.module" text "INCLUDE" nil) ("local.literallayout.attrib" text "" nil) ("literallayout.role.attrib" text "role CDATA #IMPLIED" nil) ("literallayout.element" text "INCLUDE" nil) ("literallayout.attlist" text "INCLUDE" nil) ("screenco.module" text "INCLUDE" nil) ("local.screenco.attrib" text "" nil) ("screenco.role.attrib" text "role CDATA #IMPLIED" nil) ("screenco.element" text "INCLUDE" nil) ("screenco.attlist" text "INCLUDE" nil) ("screen.module" text "INCLUDE" nil) ("local.screen.attrib" text "" nil) ("screen.role.attrib" text "role CDATA #IMPLIED" nil) ("screen.element" text "INCLUDE" nil) ("screen.attlist" text "INCLUDE" nil) ("screenshot.content.module" text "INCLUDE" nil) ("screenshot.module" text "INCLUDE" nil) ("local.screenshot.attrib" text "" nil) ("screenshot.role.attrib" text "role CDATA #IMPLIED" nil) ("screenshot.element" text "INCLUDE" nil) ("screenshot.attlist" text "INCLUDE" nil) ("screeninfo.module" text "INCLUDE" nil) ("local.screeninfo.attrib" text "" nil) ("screeninfo.role.attrib" text "role CDATA #IMPLIED" nil) ("screeninfo.element" text "INCLUDE" nil) ("screeninfo.attlist" text "INCLUDE" nil) ("figure.module" text "INCLUDE" nil) ("local.figure.attrib" text "" nil) ("figure.role.attrib" text "role CDATA #IMPLIED" nil) ("figure.element" text "INCLUDE" nil) ("figure.attlist" text "INCLUDE" nil) ("informalfigure.module" text "INCLUDE" nil) ("local.informalfigure.attrib" text "" nil) ("informalfigure.role.attrib" text "role CDATA #IMPLIED" nil) ("informalfigure.element" text "INCLUDE" nil) ("informalfigure.attlist" text "INCLUDE" nil) ("graphicco.module" text "INCLUDE" nil) ("local.graphicco.attrib" text "" nil) ("graphicco.role.attrib" text "role CDATA #IMPLIED" nil) ("graphicco.element" text "INCLUDE" nil) ("graphicco.attlist" text "INCLUDE" nil) ("graphic.module" text "INCLUDE" nil) ("local.graphic.attrib" text "" nil) ("graphic.role.attrib" text "role CDATA #IMPLIED" nil) ("graphic.element" text "INCLUDE" nil) ("graphic.attlist" text "INCLUDE" nil) ("inlinegraphic.module" text "INCLUDE" nil) ("local.inlinegraphic.attrib" text "" nil) ("inlinegraphic.role.attrib" text "role CDATA #IMPLIED" nil) ("inlinegraphic.element" text "INCLUDE" nil) ("inlinegraphic.attlist" text "INCLUDE" nil) ("mediaobject.content.module" text "INCLUDE" nil) ("mediaobject.module" text "INCLUDE" nil) ("local.mediaobject.attrib" text "" nil) ("mediaobject.role.attrib" text "role CDATA #IMPLIED" nil) ("mediaobject.element" text "INCLUDE" nil) ("mediaobject.attlist" text "INCLUDE" nil) ("inlinemediaobject.module" text "INCLUDE" nil) ("local.inlinemediaobject.attrib" text "" nil) ("inlinemediaobject.role.attrib" text "role CDATA #IMPLIED" nil) ("inlinemediaobject.element" text "INCLUDE" nil) ("inlinemediaobject.attlist" text "INCLUDE" nil) ("videoobject.module" text "INCLUDE" nil) ("local.videoobject.attrib" text "" nil) ("videoobject.role.attrib" text "role CDATA #IMPLIED" nil) ("videoobject.element" text "INCLUDE" nil) ("videoobject.attlist" text "INCLUDE" nil) ("audioobject.module" text "INCLUDE" nil) ("local.audioobject.attrib" text "" nil) ("audioobject.role.attrib" text "role CDATA #IMPLIED" nil) ("audioobject.element" text "INCLUDE" nil) ("audioobject.attlist" text "INCLUDE" nil) ("imageobject.module" text "INCLUDE" nil) ("local.imageobject.attrib" text "" nil) ("imageobject.role.attrib" text "role CDATA #IMPLIED" nil) ("imageobject.element" text "INCLUDE" nil) ("imageobject.attlist" text "INCLUDE" nil) ("textobject.module" text "INCLUDE" nil) ("local.textobject.attrib" text "" nil) ("textobject.role.attrib" text "role CDATA #IMPLIED" nil) ("textobject.element" text "INCLUDE" nil) ("textobject.attlist" text "INCLUDE" nil) ("objectinfo.module" text "INCLUDE" nil) ("local.objectinfo.attrib" text "" nil) ("objectinfo.role.attrib" text "role CDATA #IMPLIED" nil) ("objectinfo.element" text "INCLUDE" nil) ("objectinfo.attlist" text "INCLUDE" nil) ("local.objectdata.attrib" text "" nil) ("objectdata.attrib" text " entityref ENTITY #IMPLIED fileref CDATA #IMPLIED format (BMP| CGM-CHAR | CGM-BINARY | CGM-CLEAR | DITROFF | DVI | EPS | EQN | FAX | GIF | GIF87a | GIF89a | JPG | JPEG | IGES | PCX | PIC | PNG | PS | SGML | TBL | TEX | TIFF | WMF | WPG | linespecific ) #IMPLIED srccredit CDATA #IMPLIED " nil) ("videodata.module" text "INCLUDE" nil) ("local.videodata.attrib" text "" nil) ("videodata.role.attrib" text "role CDATA #IMPLIED" nil) ("videodata.element" text "INCLUDE" nil) ("videodata.attlist" text "INCLUDE" nil) ("audiodata.module" text "INCLUDE" nil) ("local.audiodata.attrib" text "" nil) ("audiodata.role.attrib" text "role CDATA #IMPLIED" nil) ("audiodata.element" text "INCLUDE" nil) ("audiodata.attlist" text "INCLUDE" nil) ("imagedata.module" text "INCLUDE" nil) ("local.imagedata.attrib" text "" nil) ("imagedata.role.attrib" text "role CDATA #IMPLIED" nil) ("imagedata.element" text "INCLUDE" nil) ("imagedata.attlist" text "INCLUDE" nil) ("caption.module" text "INCLUDE" nil) ("local.caption.attrib" text "" nil) ("caption.role.attrib" text "role CDATA #IMPLIED" nil) ("caption.element" text "INCLUDE" nil) ("caption.attlist" text "INCLUDE" nil) ("mediaobjectco.module" text "INCLUDE" nil) ("local.mediaobjectco.attrib" text "" nil) ("mediaobjectco.role.attrib" text "role CDATA #IMPLIED" nil) ("mediaobjectco.element" text "INCLUDE" nil) ("mediaobjectco.attlist" text "INCLUDE" nil) ("imageobjectco.module" text "INCLUDE" nil) ("local.imageobjectco.attrib" text "" nil) ("imageobjectco.role.attrib" text "role CDATA #IMPLIED" nil) ("imageobjectco.element" text "INCLUDE" nil) ("imageobjectco.attlist" text "INCLUDE" nil) ("equation.content" text "(alt?, (graphic+|mediaobject+))" nil) ("inlineequation.content" text "(alt?, (graphic+|inlinemediaobject+))" nil) ("equation.module" text "INCLUDE" nil) ("local.equation.attrib" text "" nil) ("equation.role.attrib" text "role CDATA #IMPLIED" nil) ("equation.element" text "INCLUDE" nil) ("equation.attlist" text "INCLUDE" nil) ("informalequation.module" text "INCLUDE" nil) ("local.informalequation.attrib" text "" nil) ("informalequation.role.attrib" text "role CDATA #IMPLIED" nil) ("informalequation.element" text "INCLUDE" nil) ("informalequation.attlist" text "INCLUDE" nil) ("inlineequation.module" text "INCLUDE" nil) ("local.inlineequation.attrib" text "" nil) ("inlineequation.role.attrib" text "role CDATA #IMPLIED" nil) ("inlineequation.element" text "INCLUDE" nil) ("inlineequation.attlist" text "INCLUDE" nil) ("alt.module" text "INCLUDE" nil) ("local.alt.attrib" text "" nil) ("alt.role.attrib" text "role CDATA #IMPLIED" nil) ("alt.element" text "INCLUDE" nil) ("alt.attlist" text "INCLUDE" nil) ("table.module" text "INCLUDE" nil) ("cals.table.module" text "INCLUDE" nil) ("exchange.table.module" text "IGNORE" nil) ("tables.role.attrib" text "role CDATA #IMPLIED" nil) ("bodyatt" text "label CDATA #IMPLIED" nil) ("secur" text "id ID #IMPLIED lang CDATA #IMPLIED remap CDATA #IMPLIED xreflabel CDATA #IMPLIED revisionflag (changed |added |deleted |off) #IMPLIED arch CDATA #IMPLIED condition CDATA #IMPLIED conformance NMTOKENS #IMPLIED os CDATA #IMPLIED revision CDATA #IMPLIED security CDATA #IMPLIED userlevel CDATA #IMPLIED vendor CDATA #IMPLIED role CDATA #IMPLIED" nil) ("common.table.attribs" text "label CDATA #IMPLIED id ID #IMPLIED lang CDATA #IMPLIED remap CDATA #IMPLIED xreflabel CDATA #IMPLIED revisionflag (changed |added |deleted |off) #IMPLIED arch CDATA #IMPLIED condition CDATA #IMPLIED conformance NMTOKENS #IMPLIED os CDATA #IMPLIED revision CDATA #IMPLIED security CDATA #IMPLIED userlevel CDATA #IMPLIED vendor CDATA #IMPLIED role CDATA #IMPLIED" nil) ("tbl.table.mdl" text "((title, titleabbrev?), (indexterm )*, (graphic+|mediaobject+|tgroup+))" nil) ("tbl.entry.mdl" text "#PCDATA |footnoteref|xref |abbrev|acronym|citation|citerefentry|citetitle|emphasis |firstterm|foreignphrase|glossterm|footnote|phrase |quote|trademark|wordasword |link|olink|ulink |action|application |classname|methodname|interfacename|exceptionname |ooclass|oointerface|ooexception |command|computeroutput |database|email|envar|errorcode|errorname|errortype|filename |function|guibutton|guiicon|guilabel|guimenu|guimenuitem |guisubmenu|hardware|interface|keycap |keycode|keycombo|keysym|literal|constant|markup|medialabel |menuchoice|mousebutton|option|optional|parameter |prompt|property|replaceable|returnvalue|sgmltag|structfield |structname|symbol|systemitem|token|type|userinput|varname |anchor |author|authorinitials|corpauthor|modespec|othercredit |productname|productnumber|revhistory |remark|subscript|superscript |inlinegraphic|inlinemediaobject|inlineequation |synopsis|cmdsynopsis|funcsynopsis |classsynopsis|fieldsynopsis |constructorsynopsis |destructorsynopsis |methodsynopsis |indexterm |beginpage | calloutlist|glosslist|itemizedlist|orderedlist|segmentedlist |simplelist|variablelist |caution|important|note|tip|warning |literallayout|programlisting|programlistingco|screen |screenco|screenshot |formalpara|para|simpara |graphic|mediaobject " nil) ("tablemodel" text ("-//OASIS//DTD DocBook XML CALS Table Model V4.1.2//EN" "calstblx.dtd" . "/usr/share/sgml/docbook/dtd/xml/4.1.2/") nil) ("yesorno" text "CDATA" nil) ("titles" text "title?" nil) ("paracon" text "#PCDATA" nil) ("tbl.table.name" text "(table|chart)" nil) ("tbl.table-titles.mdl" text "title?," nil) ("tbl.table-main.mdl" text "(tgroup+|graphic+)" nil) ("tbl.table.att" text " tabstyle CDATA #IMPLIED tocentry CDATA #IMPLIED shortentry CDATA #IMPLIED orient (port|land) #IMPLIED pgwide CDATA #IMPLIED " nil) ("tbl.tgroup.mdl" text "colspec*,spanspec*,thead?,tfoot?,tbody" nil) ("tbl.tgroup.att" text " tgroupstyle CDATA #IMPLIED " nil) ("tbl.hdft.mdl" text "colspec*,row+" nil) ("tbl.row.mdl" text "(entry|entrytbl)+" nil) ("tbl.entrytbl.mdl" text "colspec*,spanspec*,thead?,tbody" nil) ("informaltable.module" text "INCLUDE" nil) ("local.informaltable.attrib" text "" nil) ("informaltable.element" text "INCLUDE" nil) ("informaltable.attlist" text "INCLUDE" nil) ("synopsis.module" text "INCLUDE" nil) ("local.synopsis.attrib" text "" nil) ("synopsis.role.attrib" text "role CDATA #IMPLIED" nil) ("synopsis.element" text "INCLUDE" nil) ("synopsis.attlist" text "INCLUDE" nil) ("cmdsynopsis.content.module" text "INCLUDE" nil) ("cmdsynopsis.module" text "INCLUDE" nil) ("local.cmdsynopsis.attrib" text "" nil) ("cmdsynopsis.role.attrib" text "role CDATA #IMPLIED" nil) ("cmdsynopsis.element" text "INCLUDE" nil) ("cmdsynopsis.attlist" text "INCLUDE" nil) ("arg.module" text "INCLUDE" nil) ("local.arg.attrib" text "" nil) ("arg.role.attrib" text "role CDATA #IMPLIED" nil) ("arg.element" text "INCLUDE" nil) ("arg.attlist" text "INCLUDE" nil) ("group.module" text "INCLUDE" nil) ("local.group.attrib" text "" nil) ("group.role.attrib" text "role CDATA #IMPLIED" nil) ("group.element" text "INCLUDE" nil) ("group.attlist" text "INCLUDE" nil) ("sbr.module" text "INCLUDE" nil) ("local.sbr.attrib" text "" nil) ("sbr.role.attrib" text "role CDATA #IMPLIED" nil) ("sbr.element" text "INCLUDE" nil) ("sbr.attlist" text "INCLUDE" nil) ("synopfragmentref.module" text "INCLUDE" nil) ("local.synopfragmentref.attrib" text "" nil) ("synopfragmentref.role.attrib" text "role CDATA #IMPLIED" nil) ("synopfragmentref.element" text "INCLUDE" nil) ("synopfragmentref.attlist" text "INCLUDE" nil) ("synopfragment.module" text "INCLUDE" nil) ("local.synopfragment.attrib" text "" nil) ("synopfragment.role.attrib" text "role CDATA #IMPLIED" nil) ("synopfragment.element" text "INCLUDE" nil) ("synopfragment.attlist" text "INCLUDE" nil) ("funcsynopsis.content.module" text "INCLUDE" nil) ("funcsynopsis.module" text "INCLUDE" nil) ("local.funcsynopsis.attrib" text "" nil) ("funcsynopsis.role.attrib" text "role CDATA #IMPLIED" nil) ("funcsynopsis.element" text "INCLUDE" nil) ("funcsynopsis.attlist" text "INCLUDE" nil) ("funcsynopsisinfo.module" text "INCLUDE" nil) ("local.funcsynopsisinfo.attrib" text "" nil) ("funcsynopsisinfo.role.attrib" text "role CDATA #IMPLIED" nil) ("funcsynopsisinfo.element" text "INCLUDE" nil) ("funcsynopsisinfo.attlist" text "INCLUDE" nil) ("funcprototype.module" text "INCLUDE" nil) ("local.funcprototype.attrib" text "" nil) ("funcprototype.role.attrib" text "role CDATA #IMPLIED" nil) ("funcprototype.element" text "INCLUDE" nil) ("funcprototype.attlist" text "INCLUDE" nil) ("funcdef.module" text "INCLUDE" nil) ("local.funcdef.attrib" text "" nil) ("funcdef.role.attrib" text "role CDATA #IMPLIED" nil) ("funcdef.element" text "INCLUDE" nil) ("funcdef.attlist" text "INCLUDE" nil) ("void.module" text "INCLUDE" nil) ("local.void.attrib" text "" nil) ("void.role.attrib" text "role CDATA #IMPLIED" nil) ("void.element" text "INCLUDE" nil) ("void.attlist" text "INCLUDE" nil) ("varargs.module" text "INCLUDE" nil) ("local.varargs.attrib" text "" nil) ("varargs.role.attrib" text "role CDATA #IMPLIED" nil) ("varargs.element" text "INCLUDE" nil) ("varargs.attlist" text "INCLUDE" nil) ("paramdef.module" text "INCLUDE" nil) ("local.paramdef.attrib" text "" nil) ("paramdef.role.attrib" text "role CDATA #IMPLIED" nil) ("paramdef.element" text "INCLUDE" nil) ("paramdef.attlist" text "INCLUDE" nil) ("funcparams.module" text "INCLUDE" nil) ("local.funcparams.attrib" text "" nil) ("funcparams.role.attrib" text "role CDATA #IMPLIED" nil) ("funcparams.element" text "INCLUDE" nil) ("funcparams.attlist" text "INCLUDE" nil) ("classsynopsis.content.module" text "INCLUDE" nil) ("classsynopsis.module" text "INCLUDE" nil) ("local.classsynopsis.attrib" text "" nil) ("classsynopsis.role.attrib" text "role CDATA #IMPLIED" nil) ("classsynopsis.element" text "INCLUDE" nil) ("classsynopsis.attlist" text "INCLUDE" nil) ("classsynopsisinfo.module" text "INCLUDE" nil) ("local.classsynopsisinfo.attrib" text "" nil) ("classsynopsisinfo.role.attrib" text "role CDATA #IMPLIED" nil) ("classsynopsisinfo.element" text "INCLUDE" nil) ("classsynopsisinfo.attlist" text "INCLUDE" nil) ("ooclass.module" text "INCLUDE" nil) ("local.ooclass.attrib" text "" nil) ("ooclass.role.attrib" text "role CDATA #IMPLIED" nil) ("ooclass.element" text "INCLUDE" nil) ("ooclass.attlist" text "INCLUDE" nil) ("oointerface.module" text "INCLUDE" nil) ("local.oointerface.attrib" text "" nil) ("oointerface.role.attrib" text "role CDATA #IMPLIED" nil) ("oointerface.element" text "INCLUDE" nil) ("oointerface.attlist" text "INCLUDE" nil) ("ooexception.module" text "INCLUDE" nil) ("local.ooexception.attrib" text "" nil) ("ooexception.role.attrib" text "role CDATA #IMPLIED" nil) ("ooexception.element" text "INCLUDE" nil) ("ooexception.attlist" text "INCLUDE" nil) ("modifier.module" text "INCLUDE" nil) ("local.modifier.attrib" text "" nil) ("modifier.role.attrib" text "role CDATA #IMPLIED" nil) ("modifier.element" text "INCLUDE" nil) ("modifier.attlist" text "INCLUDE" nil) ("interfacename.module" text "INCLUDE" nil) ("local.interfacename.attrib" text "" nil) ("interfacename.role.attrib" text "role CDATA #IMPLIED" nil) ("interfacename.element" text "INCLUDE" nil) ("interfacename.attlist" text "INCLUDE" nil) ("exceptionname.module" text "INCLUDE" nil) ("local.exceptionname.attrib" text "" nil) ("exceptionname.role.attrib" text "role CDATA #IMPLIED" nil) ("exceptionname.element" text "INCLUDE" nil) ("exceptionname.attlist" text "INCLUDE" nil) ("fieldsynopsis.module" text "INCLUDE" nil) ("local.fieldsynopsis.attrib" text "" nil) ("fieldsynopsis.role.attrib" text "role CDATA #IMPLIED" nil) ("fieldsynopsis.element" text "INCLUDE" nil) ("fieldsynopsis.attlist" text "INCLUDE" nil) ("initializer.module" text "INCLUDE" nil) ("local.initializer.attrib" text "" nil) ("initializer.role.attrib" text "role CDATA #IMPLIED" nil) ("initializer.element" text "INCLUDE" nil) ("initializer.attlist" text "INCLUDE" nil) ("constructorsynopsis.module" text "INCLUDE" nil) ("local.constructorsynopsis.attrib" text "" nil) ("constructorsynopsis.role.attrib" text "role CDATA #IMPLIED" nil) ("constructorsynopsis.element" text "INCLUDE" nil) ("constructorsynopsis.attlist" text "INCLUDE" nil) ("destructorsynopsis.module" text "INCLUDE" nil) ("local.destructorsynopsis.attrib" text "" nil) ("destructorsynopsis.role.attrib" text "role CDATA #IMPLIED" nil) ("destructorsynopsis.element" text "INCLUDE" nil) ("destructorsynopsis.attlist" text "INCLUDE" nil) ("methodsynopsis.module" text "INCLUDE" nil) ("local.methodsynopsis.attrib" text "" nil) ("methodsynopsis.role.attrib" text "role CDATA #IMPLIED" nil) ("methodsynopsis.element" text "INCLUDE" nil) ("methodsynopsis.attlist" text "INCLUDE" nil) ("methodname.module" text "INCLUDE" nil) ("local.methodname.attrib" text "" nil) ("methodname.role.attrib" text "role CDATA #IMPLIED" nil) ("methodname.element" text "INCLUDE" nil) ("methodname.attlist" text "INCLUDE" nil) ("methodparam.module" text "INCLUDE" nil) ("local.methodparam.attrib" text "" nil) ("methodparam.role.attrib" text "role CDATA #IMPLIED" nil) ("methodparam.element" text "INCLUDE" nil) ("methodparam.attlist" text "INCLUDE" nil) ("docinfo.content.module" text "INCLUDE" nil) ("ackno.module" text "INCLUDE" nil) ("local.ackno.attrib" text "" nil) ("ackno.role.attrib" text "role CDATA #IMPLIED" nil) ("ackno.element" text "INCLUDE" nil) ("ackno.attlist" text "INCLUDE" nil) ("address.content.module" text "INCLUDE" nil) ("address.module" text "INCLUDE" nil) ("local.address.attrib" text "" nil) ("address.role.attrib" text "role CDATA #IMPLIED" nil) ("address.element" text "INCLUDE" nil) ("address.attlist" text "INCLUDE" nil) ("street.module" text "INCLUDE" nil) ("local.street.attrib" text "" nil) ("street.role.attrib" text "role CDATA #IMPLIED" nil) ("street.element" text "INCLUDE" nil) ("street.attlist" text "INCLUDE" nil) ("pob.module" text "INCLUDE" nil) ("local.pob.attrib" text "" nil) ("pob.role.attrib" text "role CDATA #IMPLIED" nil) ("pob.element" text "INCLUDE" nil) ("pob.attlist" text "INCLUDE" nil) ("postcode.module" text "INCLUDE" nil) ("local.postcode.attrib" text "" nil) ("postcode.role.attrib" text "role CDATA #IMPLIED" nil) ("postcode.element" text "INCLUDE" nil) ("postcode.attlist" text "INCLUDE" nil) ("city.module" text "INCLUDE" nil) ("local.city.attrib" text "" nil) ("city.role.attrib" text "role CDATA #IMPLIED" nil) ("city.element" text "INCLUDE" nil) ("city.attlist" text "INCLUDE" nil) ("state.module" text "INCLUDE" nil) ("local.state.attrib" text "" nil) ("state.role.attrib" text "role CDATA #IMPLIED" nil) ("state.element" text "INCLUDE" nil) ("state.attlist" text "INCLUDE" nil) ("country.module" text "INCLUDE" nil) ("local.country.attrib" text "" nil) ("country.role.attrib" text "role CDATA #IMPLIED" nil) ("country.element" text "INCLUDE" nil) ("country.attlist" text "INCLUDE" nil) ("phone.module" text "INCLUDE" nil) ("local.phone.attrib" text "" nil) ("phone.role.attrib" text "role CDATA #IMPLIED" nil) ("phone.element" text "INCLUDE" nil) ("phone.attlist" text "INCLUDE" nil) ("fax.module" text "INCLUDE" nil) ("local.fax.attrib" text "" nil) ("fax.role.attrib" text "role CDATA #IMPLIED" nil) ("fax.element" text "INCLUDE" nil) ("fax.attlist" text "INCLUDE" nil) ("otheraddr.module" text "INCLUDE" nil) ("local.otheraddr.attrib" text "" nil) ("otheraddr.role.attrib" text "role CDATA #IMPLIED" nil) ("otheraddr.element" text "INCLUDE" nil) ("otheraddr.attlist" text "INCLUDE" nil) ("affiliation.content.module" text "INCLUDE" nil) ("affiliation.module" text "INCLUDE" nil) ("local.affiliation.attrib" text "" nil) ("affiliation.role.attrib" text "role CDATA #IMPLIED" nil) ("affiliation.element" text "INCLUDE" nil) ("affiliation.attlist" text "INCLUDE" nil) ("shortaffil.module" text "INCLUDE" nil) ("local.shortaffil.attrib" text "" nil) ("shortaffil.role.attrib" text "role CDATA #IMPLIED" nil) ("shortaffil.element" text "INCLUDE" nil) ("shortaffil.attlist" text "INCLUDE" nil) ("jobtitle.module" text "INCLUDE" nil) ("local.jobtitle.attrib" text "" nil) ("jobtitle.role.attrib" text "role CDATA #IMPLIED" nil) ("jobtitle.element" text "INCLUDE" nil) ("jobtitle.attlist" text "INCLUDE" nil) ("orgdiv.module" text "INCLUDE" nil) ("local.orgdiv.attrib" text "" nil) ("orgdiv.role.attrib" text "role CDATA #IMPLIED" nil) ("orgdiv.element" text "INCLUDE" nil) ("orgdiv.attlist" text "INCLUDE" nil) ("artpagenums.module" text "INCLUDE" nil) ("local.artpagenums.attrib" text "" nil) ("artpagenums.role.attrib" text "role CDATA #IMPLIED" nil) ("artpagenums.element" text "INCLUDE" nil) ("artpagenums.attlist" text "INCLUDE" nil) ("author.module" text "INCLUDE" nil) ("local.author.attrib" text "" nil) ("author.role.attrib" text "role CDATA #IMPLIED" nil) ("author.element" text "INCLUDE" nil) ("author.attlist" text "INCLUDE" nil) ("authorgroup.content.module" text "INCLUDE" nil) ("authorgroup.module" text "INCLUDE" nil) ("local.authorgroup.attrib" text "" nil) ("authorgroup.role.attrib" text "role CDATA #IMPLIED" nil) ("authorgroup.element" text "INCLUDE" nil) ("authorgroup.attlist" text "INCLUDE" nil) ("collab.content.module" text "INCLUDE" nil) ("collab.module" text "INCLUDE" nil) ("local.collab.attrib" text "" nil) ("collab.role.attrib" text "role CDATA #IMPLIED" nil) ("collab.element" text "INCLUDE" nil) ("collab.attlist" text "INCLUDE" nil) ("collabname.module" text "INCLUDE" nil) ("local.collabname.attrib" text "" nil) ("collabname.role.attrib" text "role CDATA #IMPLIED" nil) ("collabname.element" text "INCLUDE" nil) ("collabname.attlist" text "INCLUDE" nil) ("authorinitials.module" text "INCLUDE" nil) ("local.authorinitials.attrib" text "" nil) ("authorinitials.role.attrib" text "role CDATA #IMPLIED" nil) ("authorinitials.element" text "INCLUDE" nil) ("authorinitials.attlist" text "INCLUDE" nil) ("confgroup.content.module" text "INCLUDE" nil) ("confgroup.module" text "INCLUDE" nil) ("local.confgroup.attrib" text "" nil) ("confgroup.role.attrib" text "role CDATA #IMPLIED" nil) ("confgroup.element" text "INCLUDE" nil) ("confgroup.attlist" text "INCLUDE" nil) ("confdates.module" text "INCLUDE" nil) ("local.confdates.attrib" text "" nil) ("confdates.role.attrib" text "role CDATA #IMPLIED" nil) ("confdates.element" text "INCLUDE" nil) ("confdates.attlist" text "INCLUDE" nil) ("conftitle.module" text "INCLUDE" nil) ("local.conftitle.attrib" text "" nil) ("conftitle.role.attrib" text "role CDATA #IMPLIED" nil) ("conftitle.element" text "INCLUDE" nil) ("conftitle.attlist" text "INCLUDE" nil) ("confnum.module" text "INCLUDE" nil) ("local.confnum.attrib" text "" nil) ("confnum.role.attrib" text "role CDATA #IMPLIED" nil) ("confnum.element" text "INCLUDE" nil) ("confnum.attlist" text "INCLUDE" nil) ("confsponsor.module" text "INCLUDE" nil) ("local.confsponsor.attrib" text "" nil) ("confsponsor.role.attrib" text "role CDATA #IMPLIED" nil) ("confsponsor.element" text "INCLUDE" nil) ("confsponsor.attlist" text "INCLUDE" nil) ("contractnum.module" text "INCLUDE" nil) ("local.contractnum.attrib" text "" nil) ("contractnum.role.attrib" text "role CDATA #IMPLIED" nil) ("contractnum.element" text "INCLUDE" nil) ("contractnum.attlist" text "INCLUDE" nil) ("contractsponsor.module" text "INCLUDE" nil) ("local.contractsponsor.attrib" text "" nil) ("contractsponsor.role.attrib" text "role CDATA #IMPLIED" nil) ("contractsponsor.element" text "INCLUDE" nil) ("contractsponsor.attlist" text "INCLUDE" nil) ("copyright.content.module" text "INCLUDE" nil) ("copyright.module" text "INCLUDE" nil) ("local.copyright.attrib" text "" nil) ("copyright.role.attrib" text "role CDATA #IMPLIED" nil) ("copyright.element" text "INCLUDE" nil) ("copyright.attlist" text "INCLUDE" nil) ("year.module" text "INCLUDE" nil) ("local.year.attrib" text "" nil) ("year.role.attrib" text "role CDATA #IMPLIED" nil) ("year.element" text "INCLUDE" nil) ("year.attlist" text "INCLUDE" nil) ("holder.module" text "INCLUDE" nil) ("local.holder.attrib" text "" nil) ("holder.role.attrib" text "role CDATA #IMPLIED" nil) ("holder.element" text "INCLUDE" nil) ("holder.attlist" text "INCLUDE" nil) ("corpauthor.module" text "INCLUDE" nil) ("local.corpauthor.attrib" text "" nil) ("corpauthor.role.attrib" text "role CDATA #IMPLIED" nil) ("corpauthor.element" text "INCLUDE" nil) ("corpauthor.attlist" text "INCLUDE" nil) ("corpname.module" text "INCLUDE" nil) ("local.corpname.attrib" text "" nil) ("corpname.element" text "INCLUDE" nil) ("corpname.role.attrib" text "role CDATA #IMPLIED" nil) ("corpname.attlist" text "INCLUDE" nil) ("date.module" text "INCLUDE" nil) ("local.date.attrib" text "" nil) ("date.role.attrib" text "role CDATA #IMPLIED" nil) ("date.element" text "INCLUDE" nil) ("date.attlist" text "INCLUDE" nil) ("edition.module" text "INCLUDE" nil) ("local.edition.attrib" text "" nil) ("edition.role.attrib" text "role CDATA #IMPLIED" nil) ("edition.element" text "INCLUDE" nil) ("edition.attlist" text "INCLUDE" nil) ("editor.module" text "INCLUDE" nil) ("local.editor.attrib" text "" nil) ("editor.role.attrib" text "role CDATA #IMPLIED" nil) ("editor.element" text "INCLUDE" nil) ("editor.attlist" text "INCLUDE" nil) ("isbn.module" text "INCLUDE" nil) ("local.isbn.attrib" text "" nil) ("isbn.role.attrib" text "role CDATA #IMPLIED" nil) ("isbn.element" text "INCLUDE" nil) ("isbn.attlist" text "INCLUDE" nil) ("issn.module" text "INCLUDE" nil) ("local.issn.attrib" text "" nil) ("issn.role.attrib" text "role CDATA #IMPLIED" nil) ("issn.element" text "INCLUDE" nil) ("issn.attlist" text "INCLUDE" nil) ("invpartnumber.module" text "INCLUDE" nil) ("local.invpartnumber.attrib" text "" nil) ("invpartnumber.role.attrib" text "role CDATA #IMPLIED" nil) ("invpartnumber.element" text "INCLUDE" nil) ("invpartnumber.attlist" text "INCLUDE" nil) ("issuenum.module" text "INCLUDE" nil) ("local.issuenum.attrib" text "" nil) ("issuenum.role.attrib" text "role CDATA #IMPLIED" nil) ("issuenum.element" text "INCLUDE" nil) ("issuenum.attlist" text "INCLUDE" nil) ("legalnotice.module" text "INCLUDE" nil) ("local.legalnotice.attrib" text "" nil) ("legalnotice.role.attrib" text "role CDATA #IMPLIED" nil) ("legalnotice.element" text "INCLUDE" nil) ("legalnotice.attlist" text "INCLUDE" nil) ("modespec.module" text "INCLUDE" nil) ("local.modespec.attrib" text "" nil) ("modespec.role.attrib" text "role CDATA #IMPLIED" nil) ("modespec.element" text "INCLUDE" nil) ("modespec.attlist" text "INCLUDE" nil) ("orgname.module" text "INCLUDE" nil) ("local.orgname.attrib" text "" nil) ("orgname.role.attrib" text "role CDATA #IMPLIED" nil) ("orgname.element" text "INCLUDE" nil) ("orgname.attlist" text "INCLUDE" nil) ("othercredit.module" text "INCLUDE" nil) ("local.othercredit.attrib" text "" nil) ("othercredit.role.attrib" text "role CDATA #IMPLIED" nil) ("othercredit.element" text "INCLUDE" nil) ("othercredit.attlist" text "INCLUDE" nil) ("pagenums.module" text "INCLUDE" nil) ("local.pagenums.attrib" text "" nil) ("pagenums.role.attrib" text "role CDATA #IMPLIED" nil) ("pagenums.element" text "INCLUDE" nil) ("pagenums.attlist" text "INCLUDE" nil) ("person.ident.module" text "INCLUDE" nil) ("contrib.module" text "INCLUDE" nil) ("local.contrib.attrib" text "" nil) ("contrib.role.attrib" text "role CDATA #IMPLIED" nil) ("contrib.element" text "INCLUDE" nil) ("contrib.attlist" text "INCLUDE" nil) ("firstname.module" text "INCLUDE" nil) ("local.firstname.attrib" text "" nil) ("firstname.role.attrib" text "role CDATA #IMPLIED" nil) ("firstname.element" text "INCLUDE" nil) ("firstname.attlist" text "INCLUDE" nil) ("honorific.module" text "INCLUDE" nil) ("local.honorific.attrib" text "" nil) ("honorific.role.attrib" text "role CDATA #IMPLIED" nil) ("honorific.element" text "INCLUDE" nil) ("honorific.attlist" text "INCLUDE" nil) ("lineage.module" text "INCLUDE" nil) ("local.lineage.attrib" text "" nil) ("lineage.role.attrib" text "role CDATA #IMPLIED" nil) ("lineage.element" text "INCLUDE" nil) ("lineage.attlist" text "INCLUDE" nil) ("othername.module" text "INCLUDE" nil) ("local.othername.attrib" text "" nil) ("othername.role.attrib" text "role CDATA #IMPLIED" nil) ("othername.element" text "INCLUDE" nil) ("othername.attlist" text "INCLUDE" nil) ("surname.module" text "INCLUDE" nil) ("local.surname.attrib" text "" nil) ("surname.role.attrib" text "role CDATA #IMPLIED" nil) ("surname.element" text "INCLUDE" nil) ("surname.attlist" text "INCLUDE" nil) ("printhistory.module" text "INCLUDE" nil) ("local.printhistory.attrib" text "" nil) ("printhistory.role.attrib" text "role CDATA #IMPLIED" nil) ("printhistory.element" text "INCLUDE" nil) ("printhistory.attlist" text "INCLUDE" nil) ("productname.module" text "INCLUDE" nil) ("local.productname.attrib" text "" nil) ("productname.role.attrib" text "role CDATA #IMPLIED" nil) ("productname.element" text "INCLUDE" nil) ("productname.attlist" text "INCLUDE" nil) ("productnumber.module" text "INCLUDE" nil) ("local.productnumber.attrib" text "" nil) ("productnumber.role.attrib" text "role CDATA #IMPLIED" nil) ("productnumber.element" text "INCLUDE" nil) ("productnumber.attlist" text "INCLUDE" nil) ("pubdate.module" text "INCLUDE" nil) ("local.pubdate.attrib" text "" nil) ("pubdate.role.attrib" text "role CDATA #IMPLIED" nil) ("pubdate.element" text "INCLUDE" nil) ("pubdate.attlist" text "INCLUDE" nil) ("publisher.content.module" text "INCLUDE" nil) ("publisher.module" text "INCLUDE" nil) ("local.publisher.attrib" text "" nil) ("publisher.role.attrib" text "role CDATA #IMPLIED" nil) ("publisher.element" text "INCLUDE" nil) ("publisher.attlist" text "INCLUDE" nil) ("publishername.module" text "INCLUDE" nil) ("local.publishername.attrib" text "" nil) ("publishername.role.attrib" text "role CDATA #IMPLIED" nil) ("publishername.element" text "INCLUDE" nil) ("publishername.attlist" text "INCLUDE" nil) ("pubsnumber.module" text "INCLUDE" nil) ("local.pubsnumber.attrib" text "" nil) ("pubsnumber.role.attrib" text "role CDATA #IMPLIED" nil) ("pubsnumber.element" text "INCLUDE" nil) ("pubsnumber.attlist" text "INCLUDE" nil) ("releaseinfo.module" text "INCLUDE" nil) ("local.releaseinfo.attrib" text "" nil) ("releaseinfo.role.attrib" text "role CDATA #IMPLIED" nil) ("releaseinfo.element" text "INCLUDE" nil) ("releaseinfo.attlist" text "INCLUDE" nil) ("revhistory.content.module" text "INCLUDE" nil) ("revhistory.module" text "INCLUDE" nil) ("local.revhistory.attrib" text "" nil) ("revhistory.role.attrib" text "role CDATA #IMPLIED" nil) ("revhistory.element" text "INCLUDE" nil) ("revhistory.attlist" text "INCLUDE" nil) ("revision.module" text "INCLUDE" nil) ("local.revision.attrib" text "" nil) ("revision.role.attrib" text "role CDATA #IMPLIED" nil) ("revision.element" text "INCLUDE" nil) ("revision.attlist" text "INCLUDE" nil) ("revnumber.module" text "INCLUDE" nil) ("local.revnumber.attrib" text "" nil) ("revnumber.role.attrib" text "role CDATA #IMPLIED" nil) ("revnumber.element" text "INCLUDE" nil) ("revnumber.attlist" text "INCLUDE" nil) ("revremark.module" text "INCLUDE" nil) ("local.revremark.attrib" text "" nil) ("revremark.role.attrib" text "role CDATA #IMPLIED" nil) ("revremark.element" text "INCLUDE" nil) ("revremark.attlist" text "INCLUDE" nil) ("revdescription.module" text "INCLUDE" nil) ("local.revdescription.attrib" text "" nil) ("revdescription.role.attrib" text "role CDATA #IMPLIED" nil) ("revdescription.element" text "INCLUDE" nil) ("revdescription.attlist" text "INCLUDE" nil) ("seriesvolnums.module" text "INCLUDE" nil) ("local.seriesvolnums.attrib" text "" nil) ("seriesvolnums.role.attrib" text "role CDATA #IMPLIED" nil) ("seriesvolnums.element" text "INCLUDE" nil) ("seriesvolnums.attlist" text "INCLUDE" nil) ("volumenum.module" text "INCLUDE" nil) ("local.volumenum.attrib" text "" nil) ("volumenum.role.attrib" text "role CDATA #IMPLIED" nil) ("volumenum.element" text "INCLUDE" nil) ("volumenum.attlist" text "INCLUDE" nil) ("accel.module" text "INCLUDE" nil) ("local.accel.attrib" text "" nil) ("accel.role.attrib" text "role CDATA #IMPLIED" nil) ("accel.element" text "INCLUDE" nil) ("accel.attlist" text "INCLUDE" nil) ("action.module" text "INCLUDE" nil) ("local.action.attrib" text "" nil) ("action.role.attrib" text "role CDATA #IMPLIED" nil) ("action.element" text "INCLUDE" nil) ("action.attlist" text "INCLUDE" nil) ("application.module" text "INCLUDE" nil) ("local.application.attrib" text "" nil) ("application.role.attrib" text "role CDATA #IMPLIED" nil) ("application.element" text "INCLUDE" nil) ("application.attlist" text "INCLUDE" nil) ("classname.module" text "INCLUDE" nil) ("local.classname.attrib" text "" nil) ("classname.role.attrib" text "role CDATA #IMPLIED" nil) ("classname.element" text "INCLUDE" nil) ("classname.attlist" text "INCLUDE" nil) ("co.module" text "INCLUDE" nil) ("local.co.attrib" text "" nil) ("co.role.attrib" text "role CDATA #IMPLIED" nil) ("co.element" text "INCLUDE" nil) ("co.attlist" text "INCLUDE" nil) ("command.module" text "INCLUDE" nil) ("local.command.attrib" text "" nil) ("command.role.attrib" text "role CDATA #IMPLIED" nil) ("command.element" text "INCLUDE" nil) ("command.attlist" text "INCLUDE" nil) ("computeroutput.module" text "INCLUDE" nil) ("local.computeroutput.attrib" text "" nil) ("computeroutput.role.attrib" text "role CDATA #IMPLIED" nil) ("computeroutput.element" text "INCLUDE" nil) ("computeroutput.attlist" text "INCLUDE" nil) ("database.module" text "INCLUDE" nil) ("local.database.attrib" text "" nil) ("database.role.attrib" text "role CDATA #IMPLIED" nil) ("database.element" text "INCLUDE" nil) ("database.attlist" text "INCLUDE" nil) ("email.module" text "INCLUDE" nil) ("local.email.attrib" text "" nil) ("email.role.attrib" text "role CDATA #IMPLIED" nil) ("email.element" text "INCLUDE" nil) ("email.attlist" text "INCLUDE" nil) ("envar.module" text "INCLUDE" nil) ("local.envar.attrib" text "" nil) ("envar.role.attrib" text "role CDATA #IMPLIED" nil) ("envar.element" text "INCLUDE" nil) ("envar.attlist" text "INCLUDE" nil) ("errorcode.module" text "INCLUDE" nil) ("local.errorcode.attrib" text "" nil) ("errorcode.role.attrib" text "role CDATA #IMPLIED" nil) ("errorcode.element" text "INCLUDE" nil) ("errorcode.attlist" text "INCLUDE" nil) ("errorname.module" text "INCLUDE" nil) ("local.errorname.attrib" text "" nil) ("errorname.role.attrib" text "role CDATA #IMPLIED" nil) ("errorname.element" text "INCLUDE" nil) ("errorname.attlist" text "INCLUDE" nil) ("errortype.module" text "INCLUDE" nil) ("local.errortype.attrib" text "" nil) ("errortype.role.attrib" text "role CDATA #IMPLIED" nil) ("errortype.element" text "INCLUDE" nil) ("errortype.attlist" text "INCLUDE" nil) ("filename.module" text "INCLUDE" nil) ("local.filename.attrib" text "" nil) ("filename.role.attrib" text "role CDATA #IMPLIED" nil) ("filename.element" text "INCLUDE" nil) ("filename.attlist" text "INCLUDE" nil) ("function.module" text "INCLUDE" nil) ("local.function.attrib" text "" nil) ("function.role.attrib" text "role CDATA #IMPLIED" nil) ("function.element" text "INCLUDE" nil) ("function.attlist" text "INCLUDE" nil) ("guibutton.module" text "INCLUDE" nil) ("local.guibutton.attrib" text "" nil) ("guibutton.role.attrib" text "role CDATA #IMPLIED" nil) ("guibutton.element" text "INCLUDE" nil) ("guibutton.attlist" text "INCLUDE" nil) ("guiicon.module" text "INCLUDE" nil) ("local.guiicon.attrib" text "" nil) ("guiicon.role.attrib" text "role CDATA #IMPLIED" nil) ("guiicon.element" text "INCLUDE" nil) ("guiicon.attlist" text "INCLUDE" nil) ("guilabel.module" text "INCLUDE" nil) ("local.guilabel.attrib" text "" nil) ("guilabel.role.attrib" text "role CDATA #IMPLIED" nil) ("guilabel.element" text "INCLUDE" nil) ("guilabel.attlist" text "INCLUDE" nil) ("guimenu.module" text "INCLUDE" nil) ("local.guimenu.attrib" text "" nil) ("guimenu.role.attrib" text "role CDATA #IMPLIED" nil) ("guimenu.element" text "INCLUDE" nil) ("guimenu.attlist" text "INCLUDE" nil) ("guimenuitem.module" text "INCLUDE" nil) ("local.guimenuitem.attrib" text "" nil) ("guimenuitem.role.attrib" text "role CDATA #IMPLIED" nil) ("guimenuitem.element" text "INCLUDE" nil) ("guimenuitem.attlist" text "INCLUDE" nil) ("guisubmenu.module" text "INCLUDE" nil) ("local.guisubmenu.attrib" text "" nil) ("guisubmenu.role.attrib" text "role CDATA #IMPLIED" nil) ("guisubmenu.element" text "INCLUDE" nil) ("guisubmenu.attlist" text "INCLUDE" nil) ("hardware.module" text "INCLUDE" nil) ("local.hardware.attrib" text "" nil) ("hardware.role.attrib" text "role CDATA #IMPLIED" nil) ("hardware.element" text "INCLUDE" nil) ("hardware.attlist" text "INCLUDE" nil) ("interface.module" text "INCLUDE" nil) ("local.interface.attrib" text "" nil) ("interface.role.attrib" text "role CDATA #IMPLIED" nil) ("interface.element" text "INCLUDE" nil) ("interface.attlist" text "INCLUDE" nil) ("keycap.module" text "INCLUDE" nil) ("local.keycap.attrib" text "" nil) ("keycap.role.attrib" text "role CDATA #IMPLIED" nil) ("keycap.element" text "INCLUDE" nil) ("keycap.attlist" text "INCLUDE" nil) ("keycode.module" text "INCLUDE" nil) ("local.keycode.attrib" text "" nil) ("keycode.role.attrib" text "role CDATA #IMPLIED" nil) ("keycode.element" text "INCLUDE" nil) ("keycode.attlist" text "INCLUDE" nil) ("keycombo.module" text "INCLUDE" nil) ("local.keycombo.attrib" text "" nil) ("keycombo.role.attrib" text "role CDATA #IMPLIED" nil) ("keycombo.element" text "INCLUDE" nil) ("keycombo.attlist" text "INCLUDE" nil) ("keysym.module" text "INCLUDE" nil) ("local.keysym.attrib" text "" nil) ("keysysm.role.attrib" text "role CDATA #IMPLIED" nil) ("keysym.element" text "INCLUDE" nil) ("keysym.attlist" text "INCLUDE" nil) ("lineannotation.module" text "INCLUDE" nil) ("local.lineannotation.attrib" text "" nil) ("lineannotation.role.attrib" text "role CDATA #IMPLIED" nil) ("lineannotation.element" text "INCLUDE" nil) ("lineannotation.attlist" text "INCLUDE" nil) ("literal.module" text "INCLUDE" nil) ("local.literal.attrib" text "" nil) ("literal.role.attrib" text "role CDATA #IMPLIED" nil) ("literal.element" text "INCLUDE" nil) ("literal.attlist" text "INCLUDE" nil) ("constant.module" text "INCLUDE" nil) ("local.constant.attrib" text "" nil) ("constant.role.attrib" text "role CDATA #IMPLIED" nil) ("constant.element" text "INCLUDE" nil) ("constant.attlist" text "INCLUDE" nil) ("varname.module" text "INCLUDE" nil) ("local.varname.attrib" text "" nil) ("varname.role.attrib" text "role CDATA #IMPLIED" nil) ("varname.element" text "INCLUDE" nil) ("varname.attlist" text "INCLUDE" nil) ("markup.module" text "INCLUDE" nil) ("local.markup.attrib" text "" nil) ("markup.role.attrib" text "role CDATA #IMPLIED" nil) ("markup.element" text "INCLUDE" nil) ("markup.attlist" text "INCLUDE" nil) ("medialabel.module" text "INCLUDE" nil) ("local.medialabel.attrib" text "" nil) ("medialabel.role.attrib" text "role CDATA #IMPLIED" nil) ("medialabel.element" text "INCLUDE" nil) ("medialabel.attlist" text "INCLUDE" nil) ("menuchoice.content.module" text "INCLUDE" nil) ("menuchoice.module" text "INCLUDE" nil) ("local.menuchoice.attrib" text "" nil) ("menuchoice.role.attrib" text "role CDATA #IMPLIED" nil) ("menuchoice.element" text "INCLUDE" nil) ("menuchoice.attlist" text "INCLUDE" nil) ("shortcut.module" text "INCLUDE" nil) ("local.shortcut.attrib" text "" nil) ("shortcut.role.attrib" text "role CDATA #IMPLIED" nil) ("shortcut.element" text "INCLUDE" nil) ("shortcut.attlist" text "INCLUDE" nil) ("mousebutton.module" text "INCLUDE" nil) ("local.mousebutton.attrib" text "" nil) ("mousebutton.role.attrib" text "role CDATA #IMPLIED" nil) ("mousebutton.element" text "INCLUDE" nil) ("mousebutton.attlist" text "INCLUDE" nil) ("msgtext.module" text "INCLUDE" nil) ("local.msgtext.attrib" text "" nil) ("msgtext.role.attrib" text "role CDATA #IMPLIED" nil) ("msgtext.element" text "INCLUDE" nil) ("msgtext.attlist" text "INCLUDE" nil) ("option.module" text "INCLUDE" nil) ("local.option.attrib" text "" nil) ("option.role.attrib" text "role CDATA #IMPLIED" nil) ("option.element" text "INCLUDE" nil) ("option.attlist" text "INCLUDE" nil) ("optional.module" text "INCLUDE" nil) ("local.optional.attrib" text "" nil) ("optional.role.attrib" text "role CDATA #IMPLIED" nil) ("optional.element" text "INCLUDE" nil) ("optional.attlist" text "INCLUDE" nil) ("parameter.module" text "INCLUDE" nil) ("local.parameter.attrib" text "" nil) ("parameter.role.attrib" text "role CDATA #IMPLIED" nil) ("parameter.element" text "INCLUDE" nil) ("parameter.attlist" text "INCLUDE" nil) ("prompt.module" text "INCLUDE" nil) ("local.prompt.attrib" text "" nil) ("prompt.role.attrib" text "role CDATA #IMPLIED" nil) ("prompt.element" text "INCLUDE" nil) ("prompt.attlist" text "INCLUDE" nil) ("property.module" text "INCLUDE" nil) ("local.property.attrib" text "" nil) ("property.role.attrib" text "role CDATA #IMPLIED" nil) ("property.element" text "INCLUDE" nil) ("property.attlist" text "INCLUDE" nil) ("replaceable.module" text "INCLUDE" nil) ("local.replaceable.attrib" text "" nil) ("replaceable.role.attrib" text "role CDATA #IMPLIED" nil) ("replaceable.element" text "INCLUDE" nil) ("replaceable.attlist" text "INCLUDE" nil) ("returnvalue.module" text "INCLUDE" nil) ("local.returnvalue.attrib" text "" nil) ("returnvalue.role.attrib" text "role CDATA #IMPLIED" nil) ("returnvalue.element" text "INCLUDE" nil) ("returnvalue.attlist" text "INCLUDE" nil) ("sgmltag.module" text "INCLUDE" nil) ("local.sgmltag.attrib" text "" nil) ("sgmltag.role.attrib" text "role CDATA #IMPLIED" nil) ("sgmltag.element" text "INCLUDE" nil) ("sgmltag.attlist" text "INCLUDE" nil) ("structfield.module" text "INCLUDE" nil) ("local.structfield.attrib" text "" nil) ("structfield.role.attrib" text "role CDATA #IMPLIED" nil) ("structfield.element" text "INCLUDE" nil) ("structfield.attlist" text "INCLUDE" nil) ("structname.module" text "INCLUDE" nil) ("local.structname.attrib" text "" nil) ("structname.role.attrib" text "role CDATA #IMPLIED" nil) ("structname.element" text "INCLUDE" nil) ("structname.attlist" text "INCLUDE" nil) ("symbol.module" text "INCLUDE" nil) ("local.symbol.attrib" text "" nil) ("symbol.role.attrib" text "role CDATA #IMPLIED" nil) ("symbol.element" text "INCLUDE" nil) ("symbol.attlist" text "INCLUDE" nil) ("systemitem.module" text "INCLUDE" nil) ("local.systemitem.attrib" text "" nil) ("systemitem.role.attrib" text "role CDATA #IMPLIED" nil) ("systemitem.element" text "INCLUDE" nil) ("systemitem.attlist" text "INCLUDE" nil) ("token.module" text "INCLUDE" nil) ("local.token.attrib" text "" nil) ("token.role.attrib" text "role CDATA #IMPLIED" nil) ("token.element" text "INCLUDE" nil) ("token.attlist" text "INCLUDE" nil) ("type.module" text "INCLUDE" nil) ("local.type.attrib" text "" nil) ("type.role.attrib" text "role CDATA #IMPLIED" nil) ("type.element" text "INCLUDE" nil) ("type.attlist" text "INCLUDE" nil) ("userinput.module" text "INCLUDE" nil) ("local.userinput.attrib" text "" nil) ("userinput.role.attrib" text "role CDATA #IMPLIED" nil) ("userinput.element" text "INCLUDE" nil) ("userinput.attlist" text "INCLUDE" nil) ("abbrev.module" text "INCLUDE" nil) ("local.abbrev.attrib" text "" nil) ("abbrev.role.attrib" text "role CDATA #IMPLIED" nil) ("abbrev.element" text "INCLUDE" nil) ("abbrev.attlist" text "INCLUDE" nil) ("acronym.module" text "INCLUDE" nil) ("local.acronym.attrib" text "" nil) ("acronym.role.attrib" text "role CDATA #IMPLIED" nil) ("acronym.element" text "INCLUDE" nil) ("acronym.attlist" text "INCLUDE" nil) ("citation.module" text "INCLUDE" nil) ("local.citation.attrib" text "" nil) ("citation.role.attrib" text "role CDATA #IMPLIED" nil) ("citation.element" text "INCLUDE" nil) ("citation.attlist" text "INCLUDE" nil) ("citerefentry.module" text "INCLUDE" nil) ("local.citerefentry.attrib" text "" nil) ("citerefentry.role.attrib" text "role CDATA #IMPLIED" nil) ("citerefentry.element" text "INCLUDE" nil) ("citerefentry.attlist" text "INCLUDE" nil) ("refentrytitle.module" text "INCLUDE" nil) ("local.refentrytitle.attrib" text "" nil) ("refentrytitle.role.attrib" text "role CDATA #IMPLIED" nil) ("refentrytitle.element" text "INCLUDE" nil) ("refentrytitle.attlist" text "INCLUDE" nil) ("manvolnum.module" text "INCLUDE" nil) ("local.manvolnum.attrib" text "" nil) ("namvolnum.role.attrib" text "role CDATA #IMPLIED" nil) ("manvolnum.element" text "INCLUDE" nil) ("manvolnum.attlist" text "INCLUDE" nil) ("citetitle.module" text "INCLUDE" nil) ("local.citetitle.attrib" text "" nil) ("citetitle.role.attrib" text "role CDATA #IMPLIED" nil) ("citetitle.element" text "INCLUDE" nil) ("citetitle.attlist" text "INCLUDE" nil) ("emphasis.module" text "INCLUDE" nil) ("local.emphasis.attrib" text "" nil) ("emphasis.role.attrib" text "role CDATA #IMPLIED" nil) ("emphasis.element" text "INCLUDE" nil) ("emphasis.attlist" text "INCLUDE" nil) ("firstterm.module" text "INCLUDE" nil) ("local.firstterm.attrib" text "" nil) ("firstterm.role.attrib" text "role CDATA #IMPLIED" nil) ("firstterm.element" text "INCLUDE" nil) ("firstterm.attlist" text "INCLUDE" nil) ("foreignphrase.module" text "INCLUDE" nil) ("local.foreignphrase.attrib" text "" nil) ("foreignphrase.role.attrib" text "role CDATA #IMPLIED" nil) ("foreignphrase.element" text "INCLUDE" nil) ("foreignphrase.attlist" text "INCLUDE" nil) ("glossterm.module" text "INCLUDE" nil) ("local.glossterm.attrib" text "" nil) ("glossterm.role.attrib" text "role CDATA #IMPLIED" nil) ("glossterm.element" text "INCLUDE" nil) ("glossterm.attlist" text "INCLUDE" nil) ("phrase.module" text "INCLUDE" nil) ("local.phrase.attrib" text "" nil) ("phrase.role.attrib" text "role CDATA #IMPLIED" nil) ("phrase.element" text "INCLUDE" nil) ("phrase.attlist" text "INCLUDE" nil) ("quote.module" text "INCLUDE" nil) ("local.quote.attrib" text "" nil) ("quote.role.attrib" text "role CDATA #IMPLIED" nil) ("quote.element" text "INCLUDE" nil) ("quote.attlist" text "INCLUDE" nil) ("ssscript.module" text "INCLUDE" nil) ("local.ssscript.attrib" text "" nil) ("ssscript.role.attrib" text "role CDATA #IMPLIED" nil) ("subscript.element" text "INCLUDE" nil) ("subscript.attlist" text "INCLUDE" nil) ("superscript.element" text "INCLUDE" nil) ("superscript.attlist" text "INCLUDE" nil) ("trademark.module" text "INCLUDE" nil) ("local.trademark.attrib" text "" nil) ("trademark.role.attrib" text "role CDATA #IMPLIED" nil) ("trademark.element" text "INCLUDE" nil) ("trademark.attlist" text "INCLUDE" nil) ("wordasword.module" text "INCLUDE" nil) ("local.wordasword.attrib" text "" nil) ("wordasword.role.attrib" text "role CDATA #IMPLIED" nil) ("wordasword.element" text "INCLUDE" nil) ("wordasword.attlist" text "INCLUDE" nil) ("link.module" text "INCLUDE" nil) ("local.link.attrib" text "" nil) ("link.role.attrib" text "role CDATA #IMPLIED" nil) ("link.element" text "INCLUDE" nil) ("link.attlist" text "INCLUDE" nil) ("olink.module" text "INCLUDE" nil) ("local.olink.attrib" text "" nil) ("olink.role.attrib" text "role CDATA #IMPLIED" nil) ("olink.element" text "INCLUDE" nil) ("olink.attlist" text "INCLUDE" nil) ("ulink.module" text "INCLUDE" nil) ("local.ulink.attrib" text "" nil) ("ulink.role.attrib" text "role CDATA #IMPLIED" nil) ("ulink.element" text "INCLUDE" nil) ("ulink.attlist" text "INCLUDE" nil) ("footnoteref.module" text "INCLUDE" nil) ("local.footnoteref.attrib" text "" nil) ("footnoteref.role.attrib" text "role CDATA #IMPLIED" nil) ("footnoteref.element" text "INCLUDE" nil) ("footnoteref.attlist" text "INCLUDE" nil) ("xref.module" text "INCLUDE" nil) ("local.xref.attrib" text "" nil) ("xref.role.attrib" text "role CDATA #IMPLIED" nil) ("xref.element" text "INCLUDE" nil) ("xref.attlist" text "INCLUDE" nil) ("anchor.module" text "INCLUDE" nil) ("local.anchor.attrib" text "" nil) ("anchor.role.attrib" text "role CDATA #IMPLIED" nil) ("anchor.element" text "INCLUDE" nil) ("anchor.attlist" text "INCLUDE" nil) ("beginpage.module" text "INCLUDE" nil) ("local.beginpage.attrib" text "" nil) ("beginpage.role.attrib" text "role CDATA #IMPLIED" nil) ("beginpage.element" text "INCLUDE" nil) ("beginpage.attlist" text "INCLUDE" nil) ("indexterm.content.module" text "INCLUDE" nil) ("indexterm.module" text "INCLUDE" nil) ("local.indexterm.attrib" text "" nil) ("indexterm.role.attrib" text "role CDATA #IMPLIED" nil) ("indexterm.element" text "INCLUDE" nil) ("indexterm.attlist" text "INCLUDE" nil) ("primsecter.module" text "INCLUDE" nil) ("local.primsecter.attrib" text "" nil) ("primsecter.role.attrib" text "role CDATA #IMPLIED" nil) ("primary.element" text "INCLUDE" nil) ("primary.attlist" text "INCLUDE" nil) ("secondary.element" text "INCLUDE" nil) ("secondary.attlist" text "INCLUDE" nil) ("tertiary.element" text "INCLUDE" nil) ("tertiary.attlist" text "INCLUDE" nil) ("seeseealso.module" text "INCLUDE" nil) ("local.seeseealso.attrib" text "" nil) ("seeseealso.role.attrib" text "role CDATA #IMPLIED" nil) ("see.element" text "INCLUDE" nil) ("see.attlist" text "INCLUDE" nil) ("seealso.element" text "INCLUDE" nil) ("seealso.attlist" text "INCLUDE" nil) ("intermod.redecl.module" text "IGNORE" nil) ("dbhier.module" text "INCLUDE" nil) ("dbhier" text ("-//OASIS//ELEMENTS DocBook XML Document Hierarchy V4.1.2//EN" "dbhierx.mod" . "/usr/share/sgml/docbook/dtd/xml/4.1.2/") nil) ("dbhier.redecl.module" text "IGNORE" nil) ("dbhier.redecl2.module" text "IGNORE" nil) ("local.appendix.class" text "" nil) ("appendix.class" text "appendix " nil) ("local.article.class" text "" nil) ("article.class" text "article " nil) ("local.book.class" text "" nil) ("book.class" text "book " nil) ("local.chapter.class" text "" nil) ("chapter.class" text "chapter " nil) ("local.index.class" text "" nil) ("index.class" text "index|setindex " nil) ("local.refentry.class" text "" nil) ("refentry.class" text "refentry " nil) ("local.nav.class" text "" nil) ("nav.class" text "toc|lot|index|glossary|bibliography " nil) ("forms.hook" text "" nil) ("local.divcomponent.mix" text "" nil) ("divcomponent.mix" text "calloutlist|glosslist|itemizedlist|orderedlist|segmentedlist |simplelist|variablelist |caution|important|note|tip|warning |literallayout|programlisting|programlistingco|screen |screenco|screenshot |synopsis|cmdsynopsis|funcsynopsis |classsynopsis|fieldsynopsis |constructorsynopsis |destructorsynopsis |methodsynopsis |formalpara|para|simpara |address|blockquote |graphic|graphicco|mediaobject|mediaobjectco |informalequation |informalexample |informalfigure |informaltable |equation|example|figure|table |msgset|procedure|sidebar|qandaset |anchor|bridgehead|remark|highlights |abstract|authorblurb|epigraph |indexterm |beginpage " nil) ("local.refcomponent.mix" text "" nil) ("refcomponent.mix" text "calloutlist|glosslist|itemizedlist|orderedlist|segmentedlist |simplelist|variablelist |caution|important|note|tip|warning |literallayout|programlisting|programlistingco|screen |screenco|screenshot |synopsis|cmdsynopsis|funcsynopsis |classsynopsis|fieldsynopsis |constructorsynopsis |destructorsynopsis |methodsynopsis |formalpara|para|simpara |address|blockquote |graphic|graphicco|mediaobject|mediaobjectco |informalequation |informalexample |informalfigure |informaltable |equation|example|figure|table |msgset|procedure|sidebar|qandaset |anchor|bridgehead|remark|highlights |abstract|authorblurb|epigraph |indexterm |beginpage " nil) ("local.indexdivcomponent.mix" text "" nil) ("indexdivcomponent.mix" text "itemizedlist|orderedlist|variablelist|simplelist |literallayout|programlisting|programlistingco|screen |screenco|screenshot |synopsis|cmdsynopsis|funcsynopsis |classsynopsis|fieldsynopsis |constructorsynopsis |destructorsynopsis |methodsynopsis |formalpara|para|simpara |address|blockquote |graphic|graphicco|mediaobject|mediaobjectco |informalequation |informalexample |informalfigure |informaltable |anchor|remark |link|olink|ulink |beginpage " nil) ("local.refname.char.mix" text "" nil) ("refname.char.mix" text "#PCDATA |action|application |classname|methodname|interfacename|exceptionname |ooclass|oointerface|ooexception |command|computeroutput |database|email|envar|errorcode|errorname|errortype|filename |function|guibutton|guiicon|guilabel|guimenu|guimenuitem |guisubmenu|hardware|interface|keycap |keycode|keycombo|keysym|literal|constant|markup|medialabel |menuchoice|mousebutton|option|optional|parameter |prompt|property|replaceable|returnvalue|sgmltag|structfield |structname|symbol|systemitem|token|type|userinput|varname " nil) ("local.partcontent.mix" text "" nil) ("partcontent.mix" text "appendix |chapter |toc|lot|index|glossary|bibliography |article |preface|refentry |reference " nil) ("local.refinline.char.mix" text "" nil) ("refinline.char.mix" text "#PCDATA |footnoteref|xref |abbrev|acronym|citation|citerefentry|citetitle|emphasis |firstterm|foreignphrase|glossterm|footnote|phrase |quote|trademark|wordasword |link|olink|ulink |action|application |classname|methodname|interfacename|exceptionname |ooclass|oointerface|ooexception |command|computeroutput |database|email|envar|errorcode|errorname|errortype|filename |function|guibutton|guiicon|guilabel|guimenu|guimenuitem |guisubmenu|hardware|interface|keycap |keycode|keycombo|keysym|literal|constant|markup|medialabel |menuchoice|mousebutton|option|optional|parameter |prompt|property|replaceable|returnvalue|sgmltag|structfield |structname|symbol|systemitem|token|type|userinput|varname |anchor |author|authorinitials|corpauthor|modespec|othercredit |productname|productnumber|revhistory |remark|subscript|superscript |indexterm |beginpage " nil) ("local.refclass.char.mix" text "" nil) ("refclass.char.mix" text "#PCDATA |application " nil) ("div.title.content" text "title, subtitle?, titleabbrev?" nil) ("bookcomponent.title.content" text "title, subtitle?, titleabbrev?" nil) ("sect.title.content" text "title, subtitle?, titleabbrev?" nil) ("refsect.title.content" text "title, subtitle?, titleabbrev?" nil) ("bookcomponent.content" text "((calloutlist|glosslist|itemizedlist|orderedlist|segmentedlist |simplelist|variablelist |caution|important|note|tip|warning |literallayout|programlisting|programlistingco|screen |screenco|screenshot |synopsis|cmdsynopsis|funcsynopsis |classsynopsis|fieldsynopsis |constructorsynopsis |destructorsynopsis |methodsynopsis |formalpara|para|simpara |address|blockquote |graphic|graphicco|mediaobject|mediaobjectco |informalequation |informalexample |informalfigure |informaltable |equation|example|figure|table |msgset|procedure|sidebar|qandaset |anchor|bridgehead|remark|highlights |abstract|authorblurb|epigraph |indexterm |beginpage )+, (sect1*|(refentry )*|simplesect*|section*)) | (sect1+|(refentry )+|simplesect+|section+)" nil) ("set.content.module" text "INCLUDE" nil) ("set.module" text "INCLUDE" nil) ("local.set.attrib" text "" nil) ("set.role.attrib" text "role CDATA #IMPLIED" nil) ("set.element" text "INCLUDE" nil) ("set.attlist" text "INCLUDE" nil) ("setinfo.module" text "INCLUDE" nil) ("local.setinfo.attrib" text "" nil) ("setinfo.role.attrib" text "role CDATA #IMPLIED" nil) ("setinfo.element" text "INCLUDE" nil) ("setinfo.attlist" text "INCLUDE" nil) ("book.content.module" text "INCLUDE" nil) ("book.module" text "INCLUDE" nil) ("local.book.attrib" text "" nil) ("book.role.attrib" text "role CDATA #IMPLIED" nil) ("book.element" text "INCLUDE" nil) ("book.attlist" text "INCLUDE" nil) ("bookinfo.module" text "INCLUDE" nil) ("local.bookinfo.attrib" text "" nil) ("bookinfo.role.attrib" text "role CDATA #IMPLIED" nil) ("bookinfo.element" text "INCLUDE" nil) ("bookinfo.attlist" text "INCLUDE" nil) ("dedication.module" text "INCLUDE" nil) ("local.dedication.attrib" text "" nil) ("dedication.role.attrib" text "role CDATA #IMPLIED" nil) ("dedication.element" text "INCLUDE" nil) ("dedication.attlist" text "INCLUDE" nil) ("colophon.module" text "INCLUDE" nil) ("local.colophon.attrib" text "" nil) ("colophon.role.attrib" text "role CDATA #IMPLIED" nil) ("colophon.element" text "INCLUDE" nil) ("colophon.attlist" text "INCLUDE" nil) ("toc.content.module" text "INCLUDE" nil) ("toc.module" text "INCLUDE" nil) ("local.toc.attrib" text "" nil) ("toc.role.attrib" text "role CDATA #IMPLIED" nil) ("toc.element" text "INCLUDE" nil) ("toc.attlist" text "INCLUDE" nil) ("tocfront.module" text "INCLUDE" nil) ("local.tocfront.attrib" text "" nil) ("tocfront.role.attrib" text "role CDATA #IMPLIED" nil) ("tocfront.element" text "INCLUDE" nil) ("tocfront.attlist" text "INCLUDE" nil) ("tocentry.module" text "INCLUDE" nil) ("local.tocentry.attrib" text "" nil) ("tocentry.role.attrib" text "role CDATA #IMPLIED" nil) ("tocentry.element" text "INCLUDE" nil) ("tocentry.attlist" text "INCLUDE" nil) ("tocpart.module" text "INCLUDE" nil) ("local.tocpart.attrib" text "" nil) ("tocpart.role.attrib" text "role CDATA #IMPLIED" nil) ("tocpart.element" text "INCLUDE" nil) ("tocpart.attlist" text "INCLUDE" nil) ("tocchap.module" text "INCLUDE" nil) ("local.tocchap.attrib" text "" nil) ("tocchap.role.attrib" text "role CDATA #IMPLIED" nil) ("tocchap.element" text "INCLUDE" nil) ("tocchap.attlist" text "INCLUDE" nil) ("toclevel1.module" text "INCLUDE" nil) ("local.toclevel1.attrib" text "" nil) ("toclevel1.role.attrib" text "role CDATA #IMPLIED" nil) ("toclevel1.element" text "INCLUDE" nil) ("toclevel1.attlist" text "INCLUDE" nil) ("toclevel2.module" text "INCLUDE" nil) ("local.toclevel2.attrib" text "" nil) ("toclevel2.role.attrib" text "role CDATA #IMPLIED" nil) ("toclevel2.element" text "INCLUDE" nil) ("toclevel2.attlist" text "INCLUDE" nil) ("toclevel3.module" text "INCLUDE" nil) ("local.toclevel3.attrib" text "" nil) ("toclevel3.role.attrib" text "role CDATA #IMPLIED" nil) ("toclevel3.element" text "INCLUDE" nil) ("toclevel3.attlist" text "INCLUDE" nil) ("toclevel4.module" text "INCLUDE" nil) ("local.toclevel4.attrib" text "" nil) ("toclevel4.role.attrib" text "role CDATA #IMPLIED" nil) ("toclevel4.element" text "INCLUDE" nil) ("toclevel4.attlist" text "INCLUDE" nil) ("toclevel5.module" text "INCLUDE" nil) ("local.toclevel5.attrib" text "" nil) ("toclevel5.role.attrib" text "role CDATA #IMPLIED" nil) ("toclevel5.element" text "INCLUDE" nil) ("toclevel5.attlist" text "INCLUDE" nil) ("tocback.module" text "INCLUDE" nil) ("local.tocback.attrib" text "" nil) ("tocback.role.attrib" text "role CDATA #IMPLIED" nil) ("tocback.element" text "INCLUDE" nil) ("tocback.attlist" text "INCLUDE" nil) ("lot.content.module" text "INCLUDE" nil) ("lot.module" text "INCLUDE" nil) ("local.lot.attrib" text "" nil) ("lot.role.attrib" text "role CDATA #IMPLIED" nil) ("lot.element" text "INCLUDE" nil) ("lot.attlist" text "INCLUDE" nil) ("lotentry.module" text "INCLUDE" nil) ("local.lotentry.attrib" text "" nil) ("lotentry.role.attrib" text "role CDATA #IMPLIED" nil) ("lotentry.element" text "INCLUDE" nil) ("lotentry.attlist" text "INCLUDE" nil) ("appendix.module" text "INCLUDE" nil) ("local.appendix.attrib" text "" nil) ("appendix.role.attrib" text "role CDATA #IMPLIED" nil) ("appendix.element" text "INCLUDE" nil) ("appendix.attlist" text "INCLUDE" nil) ("chapter.module" text "INCLUDE" nil) ("local.chapter.attrib" text "" nil) ("chapter.role.attrib" text "role CDATA #IMPLIED" nil) ("chapter.element" text "INCLUDE" nil) ("chapter.attlist" text "INCLUDE" nil) ("part.module" text "INCLUDE" nil) ("local.part.attrib" text "" nil) ("part.role.attrib" text "role CDATA #IMPLIED" nil) ("part.element" text "INCLUDE" nil) ("part.attlist" text "INCLUDE" nil) ("preface.module" text "INCLUDE" nil) ("local.preface.attrib" text "" nil) ("preface.role.attrib" text "role CDATA #IMPLIED" nil) ("preface.element" text "INCLUDE" nil) ("preface.attlist" text "INCLUDE" nil) ("reference.module" text "INCLUDE" nil) ("local.reference.attrib" text "" nil) ("reference.role.attrib" text "role CDATA #IMPLIED" nil) ("reference.element" text "INCLUDE" nil) ("reference.attlist" text "INCLUDE" nil) ("partintro.module" text "INCLUDE" nil) ("local.partintro.attrib" text "" nil) ("partintro.role.attrib" text "role CDATA #IMPLIED" nil) ("partintro.element" text "INCLUDE" nil) ("partintro.attlist" text "INCLUDE" nil) ("appendixinfo.module" text "INCLUDE" nil) ("local.appendixinfo.attrib" text "" nil) ("appendixinfo.role.attrib" text "role CDATA #IMPLIED" nil) ("appendixinfo.element" text "INCLUDE" nil) ("appendixinfo.attlist" text "INCLUDE" nil) ("bibliographyinfo.module" text "INCLUDE" nil) ("local.bibliographyinfo.attrib" text "" nil) ("bibliographyinfo.role.attrib" text "role CDATA #IMPLIED" nil) ("bibliographyinfo.element" text "INCLUDE" nil) ("bibliographyinfo.attlist" text "INCLUDE" nil) ("chapterinfo.module" text "INCLUDE" nil) ("local.chapterinfo.attrib" text "" nil) ("chapterinfo.role.attrib" text "role CDATA #IMPLIED" nil) ("chapterinfo.element" text "INCLUDE" nil) ("chapterinfo.attlist" text "INCLUDE" nil) ("glossaryinfo.module" text "INCLUDE" nil) ("local.glossaryinfo.attrib" text "" nil) ("glossaryinfo.role.attrib" text "role CDATA #IMPLIED" nil) ("glossaryinfo.element" text "INCLUDE" nil) ("glossaryinfo.attlist" text "INCLUDE" nil) ("indexinfo.module" text "INCLUDE" nil) ("local.indexinfo.attrib" text "" nil) ("indexinfo.role.attrib" text "role CDATA #IMPLIED" nil) ("indexinfo.element" text "INCLUDE" nil) ("indexinfo.attlist" text "INCLUDE" nil) ("setindexinfo.module" text "INCLUDE" nil) ("local.setindexinfo.attrib" text "" nil) ("setindexinfo.role.attrib" text "role CDATA #IMPLIED" nil) ("setindexinfo.element" text "INCLUDE" nil) ("setindexinfo.attlist" text "INCLUDE" nil) ("partinfo.module" text "INCLUDE" nil) ("local.partinfo.attrib" text "" nil) ("partinfo.role.attrib" text "role CDATA #IMPLIED" nil) ("partinfo.element" text "INCLUDE" nil) ("partinfo.attlist" text "INCLUDE" nil) ("prefaceinfo.module" text "INCLUDE" nil) ("local.prefaceinfo.attrib" text "" nil) ("prefaceinfo.role.attrib" text "role CDATA #IMPLIED" nil) ("prefaceinfo.element" text "INCLUDE" nil) ("prefaceinfo.attlist" text "INCLUDE" nil) ("refentryinfo.module" text "INCLUDE" nil) ("local.refentryinfo.attrib" text "" nil) ("refentryinfo.role.attrib" text "role CDATA #IMPLIED" nil) ("refentryinfo.element" text "INCLUDE" nil) ("refentryinfo.attlist" text "INCLUDE" nil) ("refsect1info.module" text "INCLUDE" nil) ("local.refsect1info.attrib" text "" nil) ("refsect1info.role.attrib" text "role CDATA #IMPLIED" nil) ("refsect1info.element" text "INCLUDE" nil) ("refsect1info.attlist" text "INCLUDE" nil) ("refsect2info.module" text "INCLUDE" nil) ("local.refsect2info.attrib" text "" nil) ("refsect2info.role.attrib" text "role CDATA #IMPLIED" nil) ("refsect2info.element" text "INCLUDE" nil) ("refsect2info.attlist" text "INCLUDE" nil) ("refsect3info.module" text "INCLUDE" nil) ("local.refsect3info.attrib" text "" nil) ("refsect3info.role.attrib" text "role CDATA #IMPLIED" nil) ("refsect3info.element" text "INCLUDE" nil) ("refsect3info.attlist" text "INCLUDE" nil) ("refsynopsisdivinfo.module" text "INCLUDE" nil) ("local.refsynopsisdivinfo.attrib" text "" nil) ("refsynopsisdivinfo.role.attrib" text "role CDATA #IMPLIED" nil) ("refsynopsisdivinfo.element" text "INCLUDE" nil) ("refsynopsisdivinfo.attlist" text "INCLUDE" nil) ("referenceinfo.module" text "INCLUDE" nil) ("local.referenceinfo.attrib" text "" nil) ("referenceinfo.role.attrib" text "role CDATA #IMPLIED" nil) ("referenceinfo.element" text "INCLUDE" nil) ("referenceinfo.attlist" text "INCLUDE" nil) ("local.sect1info.attrib" text "" nil) ("sect1info.role.attrib" text "role CDATA #IMPLIED" nil) ("sect1info.element" text "INCLUDE" nil) ("sect1info.attlist" text "INCLUDE" nil) ("local.sect2info.attrib" text "" nil) ("sect2info.role.attrib" text "role CDATA #IMPLIED" nil) ("sect2info.element" text "INCLUDE" nil) ("sect2info.attlist" text "INCLUDE" nil) ("local.sect3info.attrib" text "" nil) ("sect3info.role.attrib" text "role CDATA #IMPLIED" nil) ("sect3info.element" text "INCLUDE" nil) ("sect3info.attlist" text "INCLUDE" nil) ("local.sect4info.attrib" text "" nil) ("sect4info.role.attrib" text "role CDATA #IMPLIED" nil) ("sect4info.element" text "INCLUDE" nil) ("sect4info.attlist" text "INCLUDE" nil) ("local.sect5info.attrib" text "" nil) ("sect5info.role.attrib" text "role CDATA #IMPLIED" nil) ("sect5info.element" text "INCLUDE" nil) ("sect5info.attlist" text "INCLUDE" nil) ("section.content.module" text "INCLUDE" nil) ("section.module" text "INCLUDE" nil) ("local.section.attrib" text "" nil) ("section.role.attrib" text "role CDATA #IMPLIED" nil) ("section.element" text "INCLUDE" nil) ("section.attlist" text "INCLUDE" nil) ("sectioninfo.module" text "INCLUDE" nil) ("sectioninfo.role.attrib" text "role CDATA #IMPLIED" nil) ("local.sectioninfo.attrib" text "" nil) ("sectioninfo.element" text "INCLUDE" nil) ("sectioninfo.attlist" text "INCLUDE" nil) ("sect1.module" text "INCLUDE" nil) ("local.sect1.attrib" text "" nil) ("sect1.role.attrib" text "role CDATA #IMPLIED" nil) ("sect1.element" text "INCLUDE" nil) ("sect1.attlist" text "INCLUDE" nil) ("sect2.module" text "INCLUDE" nil) ("local.sect2.attrib" text "" nil) ("sect2.role.attrib" text "role CDATA #IMPLIED" nil) ("sect2.element" text "INCLUDE" nil) ("sect2.attlist" text "INCLUDE" nil) ("sect3.module" text "INCLUDE" nil) ("local.sect3.attrib" text "" nil) ("sect3.role.attrib" text "role CDATA #IMPLIED" nil) ("sect3.element" text "INCLUDE" nil) ("sect3.attlist" text "INCLUDE" nil) ("sect4.module" text "INCLUDE" nil) ("local.sect4.attrib" text "" nil) ("sect4.role.attrib" text "role CDATA #IMPLIED" nil) ("sect4.element" text "INCLUDE" nil) ("sect4.attlist" text "INCLUDE" nil) ("sect5.module" text "INCLUDE" nil) ("local.sect5.attrib" text "" nil) ("sect5.role.attrib" text "role CDATA #IMPLIED" nil) ("sect5.element" text "INCLUDE" nil) ("sect5.attlist" text "INCLUDE" nil) ("simplesect.module" text "INCLUDE" nil) ("local.simplesect.attrib" text "" nil) ("simplesect.role.attrib" text "role CDATA #IMPLIED" nil) ("simplesect.element" text "INCLUDE" nil) ("simplesect.attlist" text "INCLUDE" nil) ("bibliography.content.module" text "INCLUDE" nil) ("bibliography.module" text "INCLUDE" nil) ("local.bibliography.attrib" text "" nil) ("bibliography.role.attrib" text "role CDATA #IMPLIED" nil) ("bibliography.element" text "INCLUDE" nil) ("bibliography.attlist" text "INCLUDE" nil) ("bibliodiv.module" text "INCLUDE" nil) ("local.bibliodiv.attrib" text "" nil) ("bibliodiv.role.attrib" text "role CDATA #IMPLIED" nil) ("bibliodiv.element" text "INCLUDE" nil) ("bibliodiv.attlist" text "INCLUDE" nil) ("glossary.content.module" text "INCLUDE" nil) ("glossary.module" text "INCLUDE" nil) ("local.glossary.attrib" text "" nil) ("glossary.role.attrib" text "role CDATA #IMPLIED" nil) ("glossary.element" text "INCLUDE" nil) ("glossary.attlist" text "INCLUDE" nil) ("glossdiv.module" text "INCLUDE" nil) ("local.glossdiv.attrib" text "" nil) ("glossdiv.role.attrib" text "role CDATA #IMPLIED" nil) ("glossdiv.element" text "INCLUDE" nil) ("glossdiv.attlist" text "INCLUDE" nil) ("index.content.module" text "INCLUDE" nil) ("indexes.module" text "INCLUDE" nil) ("local.indexes.attrib" text "" nil) ("indexes.role.attrib" text "role CDATA #IMPLIED" nil) ("index.element" text "INCLUDE" nil) ("index.attlist" text "INCLUDE" nil) ("setindex.element" text "INCLUDE" nil) ("setindex.attlist" text "INCLUDE" nil) ("indexdiv.module" text "INCLUDE" nil) ("local.indexdiv.attrib" text "" nil) ("indexdiv.role.attrib" text "role CDATA #IMPLIED" nil) ("indexdiv.element" text "INCLUDE" nil) ("indexdiv.attlist" text "INCLUDE" nil) ("indexentry.module" text "INCLUDE" nil) ("local.indexentry.attrib" text "" nil) ("indexentry.role.attrib" text "role CDATA #IMPLIED" nil) ("indexentry.element" text "INCLUDE" nil) ("indexentry.attlist" text "INCLUDE" nil) ("primsecterie.module" text "INCLUDE" nil) ("local.primsecterie.attrib" text "" nil) ("primsecterie.role.attrib" text "role CDATA #IMPLIED" nil) ("primaryie.element" text "INCLUDE" nil) ("primaryie.attlist" text "INCLUDE" nil) ("secondaryie.element" text "INCLUDE" nil) ("secondaryie.attlist" text "INCLUDE" nil) ("tertiaryie.element" text "INCLUDE" nil) ("tertiaryie.attlist" text "INCLUDE" nil) ("seeie.module" text "INCLUDE" nil) ("local.seeie.attrib" text "" nil) ("seeie.role.attrib" text "role CDATA #IMPLIED" nil) ("seeie.element" text "INCLUDE" nil) ("seeie.attlist" text "INCLUDE" nil) ("seealsoie.module" text "INCLUDE" nil) ("local.seealsoie.attrib" text "" nil) ("seealsoie.role.attrib" text "role CDATA #IMPLIED" nil) ("seealsoie.element" text "INCLUDE" nil) ("seealsoie.attlist" text "INCLUDE" nil) ("refentry.content.module" text "INCLUDE" nil) ("refentry.module" text "INCLUDE" nil) ("local.refentry.attrib" text "" nil) ("refentry.role.attrib" text "role CDATA #IMPLIED" nil) ("refentry.element" text "INCLUDE" nil) ("refentry.attlist" text "INCLUDE" nil) ("refmeta.module" text "INCLUDE" nil) ("local.refmeta.attrib" text "" nil) ("refmeta.role.attrib" text "role CDATA #IMPLIED" nil) ("refmeta.element" text "INCLUDE" nil) ("refmeta.attlist" text "INCLUDE" nil) ("refmiscinfo.module" text "INCLUDE" nil) ("local.refmiscinfo.attrib" text "" nil) ("refmiscinfo.role.attrib" text "role CDATA #IMPLIED" nil) ("refmiscinfo.element" text "INCLUDE" nil) ("refmiscinfo.attlist" text "INCLUDE" nil) ("refnamediv.module" text "INCLUDE" nil) ("local.refnamediv.attrib" text "" nil) ("refnamediv.role.attrib" text "role CDATA #IMPLIED" nil) ("refnamediv.element" text "INCLUDE" nil) ("refnamediv.attlist" text "INCLUDE" nil) ("refdescriptor.module" text "INCLUDE" nil) ("local.refdescriptor.attrib" text "" nil) ("refdescriptor.role.attrib" text "role CDATA #IMPLIED" nil) ("refdescriptor.element" text "INCLUDE" nil) ("refdescriptor.attlist" text "INCLUDE" nil) ("refname.module" text "INCLUDE" nil) ("local.refname.attrib" text "" nil) ("refname.role.attrib" text "role CDATA #IMPLIED" nil) ("refname.element" text "INCLUDE" nil) ("refname.attlist" text "INCLUDE" nil) ("refpurpose.module" text "INCLUDE" nil) ("local.refpurpose.attrib" text "" nil) ("refpurpose.role.attrib" text "role CDATA #IMPLIED" nil) ("refpurpose.element" text "INCLUDE" nil) ("refpurpose.attlist" text "INCLUDE" nil) ("refclass.module" text "INCLUDE" nil) ("local.refclass.attrib" text "" nil) ("refclass.role.attrib" text "role CDATA #IMPLIED" nil) ("refclass.element" text "INCLUDE" nil) ("refclass.attlist" text "INCLUDE" nil) ("refsynopsisdiv.module" text "INCLUDE" nil) ("local.refsynopsisdiv.attrib" text "" nil) ("refsynopsisdiv.role.attrib" text "role CDATA #IMPLIED" nil) ("refsynopsisdiv.element" text "INCLUDE" nil) ("refsynopsisdiv.attlist" text "INCLUDE" nil) ("refsect1.module" text "INCLUDE" nil) ("local.refsect1.attrib" text "" nil) ("refsect1.role.attrib" text "role CDATA #IMPLIED" nil) ("refsect1.element" text "INCLUDE" nil) ("refsect1.attlist" text "INCLUDE" nil) ("refsect2.module" text "INCLUDE" nil) ("local.refsect2.attrib" text "" nil) ("refsect2.role.attrib" text "role CDATA #IMPLIED" nil) ("refsect2.element" text "INCLUDE" nil) ("refsect2.attlist" text "INCLUDE" nil) ("refsect3.module" text "INCLUDE" nil) ("local.refsect3.attrib" text "" nil) ("refsect3.role.attrib" text "role CDATA #IMPLIED" nil) ("refsect3.element" text "INCLUDE" nil) ("refsect3.attlist" text "INCLUDE" nil) ("article.module" text "INCLUDE" nil) ("local.article.attrib" text "" nil) ("article.role.attrib" text "role CDATA #IMPLIED" nil) ("article.element" text "INCLUDE" nil) ("article.attlist" text "INCLUDE" nil) ("dbgenent.module" text "INCLUDE" nil) ("dbgenent" text ("-//OASIS//ENTITIES DocBook XML Additional General Entities V4.1.2//EN" "dbgenent.mod" . "/usr/share/sgml/docbook/dtd/xml/4.1.2/") nil)) "book" û}"partintro" "glossentry" "procedure" "citerefentry" "videodata" "epigraph" "msgorig" "constructorsynopsis" "lineage" "inlineequation" "structfield" "guibutton" "year" "thead" "type" "keycap" "postcode" "honorific" "volumenum" "orgname" "article" "imagedata" "informalequation" "simpara" "bibliomixed" "envar" "action" "refpurpose" "shortaffil" "otheraddr" "entry" "graphicco" "legalnotice" "varname" "indexentry" "referenceinfo" "pob" "entrytbl" "articleinfo" "anchor" "holder" "refsect3" "refdescriptor" "primary" "msgtext" "subtitle" "refsect2" "firstname" "replaceable" "application" "refsect1" "secondaryie" "informaltable" "authorinitials" "guimenuitem" "methodname" "refnamediv" "dedication" "paramdef" "caption" "objectinfo" "label" "qandaset" "artpagenums" "msglevel" "edition" "biblioset" "sect5" "destructorsynopsis" "graphic" "corpname" "link" "sect4" "callout" "important" "itemizedlist" "biblioentry" "corpauthor" "citation" "sect3" "lotentry" "arg" "qandaentry" "authorblurb" "othercredit" "sect2" "shortcut" "contrib" "errorcode" "olink" "glossaryinfo" "sect1" "informalfigure" "keysym" "acronym" "indexinfo" "bibliographyinfo" "tertiary" "calloutlist" "tertiaryie" "funcsynopsis" "setinfo" "colspec" "inlinegraphic" "filename" "email" "part" "revremark" "varlistentry" "caution" "msgexplan" "authorgroup" "remark" "option" "glossterm" "tocchap" "city" "member" "orderedlist" "parameter" "keycode" "refsect1info" "preface" "ackno" "mediaobject" "function" "index" "answer" "userinput" "refsect2info" "term" "bibliography" "funcsynopsisinfo" "mediaobjectco" "address" "returnvalue" "guimenu" "refsect3info" "manvolnum" "fax" "highlights" "simplemsgentry" "revhistory" "hardware" "refname" "prefaceinfo" "setindex" "tbody" "issuenum" "guilabel" "ulink" "secondary" "group" "tfoot" "msginfo" "medialabel" "keycombo" "abbrev" "toc" "revision" "state" "co" "glosssee" "blockquote" "database" "screen" "productnumber" "seealso" "revdescription" "msgset" "modespec" "xref" "chapterinfo" "chapter" "void" "step" "keyword" "pagenums" "confgroup" "collab" "methodparam" "funcparams" "row" "informalexample" "markup" "releaseinfo" "emphasis" "lot" "accel" "table" "synopsis" "affiliation" "initializer" "methodsynopsis" "prompt" "command" "country" "classsynopsisinfo" "seglistitem" "listitem" "publishername" "token" "systemitem" "areaset" "note" "publisher" "trademark" "foreignphrase" "sectioninfo" "jobtitle" "areaspec" "para" "contractsponsor" "abstract" "superscript" "classname" "glossary" "synopfragmentref" "alt" "figure" "printhistory" "citetitle" "sect1info" "set" "revnumber" "textobject" "segmentedlist" "screeninfo" "substeps" "programlistingco" "indexterm" "sect2info" "setindexinfo" "refmiscinfo" "equation" "warning" "surname" "copyright" "sect3info" "audioobject" "subscript" "author" "errorname" "tocentry" "refentrytitle" "audiodata" "sidebarinfo" "othername" "issn" "editor" "inlinemediaobject" "constant" "firstterm" "sect4info" "reference" "sidebar" "screenco" "menuchoice" "interfacename" "confsponsor" "subjectterm" "sect5info" "programlisting" "literallayout" "spanspec" "lineannotation" "area" "msgrel" "simplesect" "book" "phone" "bibliomisc" "colophon" "modifier" "synopfragment" "imageobject" "screenshot" "msgentry" "keywordset" "sgmltag" "guiicon" "attribution" "seriesvolnums" "pubdate" "contractnum" "property" "section" "tocback" "seg" "title" "primaryie" "refsynopsisdivinfo" "refentryinfo" "segtitle" "tip" "classsynopsis" "subjectset" "pubsnumber" "symbol" "appendixinfo" "see" "bibliomset" "date" "ooexception" "wordasword" "appendix" "street" "imageobjectco" "variablelist" "msg" "fieldsynopsis" "footnote" "refsynopsisdiv" "conftitle" "msgaud" "mousebutton" "literal" "ooclass" "funcprototype" "optional" "toclevel5" "bookinfo" "orgdiv" "example" "itermset" "errortype" "phrase" "seeie" "partinfo" "toclevel4" "collabname" "glossdef" "structname" "exceptionname" "refclass" "toclevel3" "varargs" "funcdef" "glosslist" "isbn" "titleabbrev" "toclevel2" "tocfront" "sbr" "glossseealso" "qandadiv" "msgsub" "msgmain" "beginpage" "productname" "footnoteref" "refmeta" "seealsoie" "bibliodiv" "toclevel1" "question" "indexdiv" "tgroup" "formalpara" "computeroutput" "tocpart" "confdates" "bridgehead" "interface" "oointerface" "glossdiv" "simplelist" "cmdsynopsis" "invpartnumber" "refentry" "subject" "guisubmenu" "quote" "confnum" "videoobject" û}(attlist (("label" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) € û(sÐû»ÞO_ž¬ûe(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €4û4çXTÀø í0Þû[û(.û!ºû0ÉÎû"§ûdݲU•ùûZûwúBû5GNîÕû#³´Cû6pò@‡Öž(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ûcçûh1(attlist (("moreinfo" (name-token-group ("refentry" "none")) (nil "none")) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ûcçûh1(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €Wûcç×ñq§ûdU«N6ò("ÊËû1ûS ûˆ1û$ÃxûFrûBûœ¹ûûC^yûrûz7‰–û ~iûLóYj¥ûnÄû6ûsûDûTû 8Ø2—ZHû7Ïû{ûMû>sÐû»ÞO_ž¬ûe(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) € çûh×ñq1Ï»—ZH(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) € çûh×ñq1Ï»—ZH(attlist (("colname" CDATA IMPLIED) ("namest" CDATA IMPLIED) ("nameend" CDATA IMPLIED) ("spanname" CDATA IMPLIED) ("morerows" CDATA IMPLIED) ("colsep" CDATA IMPLIED) ("rowsep" CDATA IMPLIED) ("align" (name-token-group ("left" "right" "center" "justify" "char")) IMPLIED) ("char" CDATA IMPLIED) ("charoff" CDATA IMPLIED) ("rotate" CDATA IMPLIED) ("valign" (name-token-group ("top" "middle" "bottom")) IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €y}FÔûmûû¦æû ûìû-ÍKnû;ûuãwLûYcûcçÂEû=û.eûv¿ ûh×ñq§ûdU«N6ò("ÊËû1ûS ûˆ1û$ÃxûFrûBûœ¹ûûC^yûrûz7‰–û ~iûLóYj¥ûnÄû6ûsûDûTû 8Ø2—ZHû7Ïû{ûMû>sÐû»ÞO_ž¬ûe(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ÓFc(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €û(cûYLwãûuû;nKÍû-ìûû æ¦ûûûmÔ¤çûcûcç¤Ôûmûû¦æû ûìû-ÍKnû;ûuãwLûYccûYLwãûuû;nKÍû-ìûû æ¦ûûûmÔ¤çûc(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ûcçûh1(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €û)4ûgûN4dûgûN(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €9çXTÀø í0Þû[û(.û!ºû0ÉÎû"§ûdݲU•ùûZûwúBû5GNîÕû#³´Cû6pò@‡ÖžûKûû/«!}F9F}!«û/ûûKžÖ‡@òp6ûC´³û#ÕîNGû5BúûwûZù•U²Ýûd§û"ÎÉû0ºû!.û(û[Þ0í øÀTXç(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) € çûh×ñq1Ï»—ZH(attlist (("cols" CDATA REQUIRED) ("tgroupstyle" CDATA IMPLIED) ("colname" CDATA IMPLIED) ("spanname" CDATA IMPLIED) ("namest" CDATA IMPLIED) ("nameend" CDATA IMPLIED) ("colsep" CDATA IMPLIED) ("rowsep" CDATA IMPLIED) ("align" (name-token-group ("left" "right" "center" "justify" "char")) IMPLIED) ("char" CDATA IMPLIED) ("charoff" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ûg””û”(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €9çXTÀø í0Þû[û(.û!ºû0ÉÎû"§ûdݲU•ùûZûwúBû5GNîÕû#³´Cû6pò@‡ÖžûKûû/«!}F9F}!«û/ûûKžÖ‡@òp6ûC´³û#ÕîNGû5BúûwûZù•U²Ýûd§û"ÎÉû0ºû!.û(û[Þ0í øÀTXç(attlist (("id" ID REQUIRED) ("pagenum" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) (attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) € çûh×ñq1Ï»—ZH(attlist (("status" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €Šû(û(û[.8cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾªû?(ûqqÖTçûc8cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾªû?(ûqqÖTçûcû[8cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾªû?(ûqqÖTçûc8cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾªû?(ûqqÖTçûc(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €6"ÊËû1ûS ûˆ1û$ÃxûFrûBûœ¹ûûC^yûrûz7‰–û ~iûLóYj¥ûnÄû6ûsûDûTû 8Ø2(attlist (("sortas" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €Wûh×ñq§ûdU«N6ò("ÊËû1ûS ûˆ1û$ÃxûFrûBûœ¹ûûC^yûrûz7‰–û ~iûLóYj¥ûnÄû6ûsûDûTû 8Ø2—ZHû7Ïû{ûMû>sÐû»ÞO_ž¬ûe(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €8ûcçTÖqûq(?ûª¾ÜûJë5]¸†} F¤‡ÔûmÂEû=û.eûv¿ûû¦æû ûìû-ÍKnû;ûuãwLûYc8cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾªû?(ûqqÖTçûc(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €Yç ûh×ñq§ûdU«N6ò("ÊËû1ûS ûˆ1û$ÃxûFrûBûœ¹ûûC^yûrûz7‰–û ~iûLóYj¥ûnÄû6ûsûDûTû 8Ø2—ZHû7Ïû{ûMû>sÐû»ÞO_ž¬ûe(attlist (("status" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €‚û(û(û[.9cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾªû?(ûqqÖTçûc*9cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾªû?(ûqqÖTçûc*û[9cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾªû?(ûqqÖTçûc*9*cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾªû?(ûqqÖTçûc**(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) € çûh×ñq1Ï»—ZH(attlist (("class" (name-token-group ("command" "function" "option" "parameter")) IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) € ûh×ñq(ûF—ZH(attlist (("class" (name-token-group ("hardware" "software")) IMPLIED) ("moreinfo" (name-token-group ("refentry" "none")) (nil "none")) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €bûcçÂEû=û.eûv¿ ûh×ñq§ûdU«N6ò("ÊËû1ûS ûˆ1û$ÃxûFrûBûœ¹ûûC^yûrûz7‰–û ~iûLóYj¥ûnÄû6ûsûDûTû 8Ø2—ZHû7Ïû{ûMû>sÐû»ÞO_ž¬ûe(attlist (("status" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €zû(û(û[.9cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾªû?(ûqqÖTçûc/9cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾªû?(ûqqÖTçûc/û[9cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾªû?(ûqqÖTçûc/9/cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾªû?(ûqqÖTçûc//(attlist (("linkends" IDREFS IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €Wûh×ñq§ûdU«N6ò("ÊËû1ûS ûˆ1û$ÃxûFrûBûœ¹ûûC^yûrûz7‰–û ~iûLóYj¥ûnÄû6ûsûDûTû 8Ø2—ZHû7Ïû{ûMû>sÐû»ÞO_ž¬ûe(attlist (("frame" (name-token-group ("top" "bottom" "topbot" "all" "sides" "none")) IMPLIED) ("colsep" CDATA IMPLIED) ("rowsep" CDATA IMPLIED) ("label" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED) ("tabstyle" CDATA IMPLIED) ("tocentry" CDATA IMPLIED) ("shortentry" CDATA IMPLIED) ("orient" (name-token-group ("port" "land")) IMPLIED) ("pgwide" CDATA IMPLIED))) €ûl}Fûl}F(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) € çûh×ñq1Ï»—ZH(attlist (("moreinfo" (name-token-group ("refentry" "none")) (nil "none")) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €½ûcçûh1(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ûcçûh1(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €+‘‘‘qHZ—ûU—ZHq(attlist (("status" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €û(cûYLwãûuû;nKÍû-ìûû æ¦ûûûmÔ¤çûcû[.cûYLwãûuû;nKÍû-ìûû æ¦ûûûmÔ¤çûccûYLwãûuû;nKÍû-ìûû æ¦ûûûmÔ¤çûccûYLwãûuû;nKÍû-ìûû æ¦ûûûmÔ¤çûcû[cûYLwãûuû;nKÍû-ìûû æ¦ûûûmÔ¤çûc(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €¶x1(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €¤Ôûmûû¦æû ûìû-ÍKnû;ûuãwLûYc(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €9çXTÀø í0Þû[û(.û!ºû0ÉÎû"§ûdݲU•ùûZûwúBû5GNîÕû#³´Cû6pò@‡ÖžûKûû/«!}F9F}!«û/ûûKžÖ‡@òp6ûC´³û#ÕîNGû5BúûwûZù•U²Ýûd§û"ÎÉû0ºû!.û(û[Þ0í øÀTXç(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ûcçûh×ñq(—ZHÏ»_(attlist (("defaultlabel" (name-token-group ("qanda" "number" "none")) IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €2cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾ(ûqqçû(û`S1çqûq(¾ÜûJë5]¸†} F¤‡ÔûmÂEû=û.eûv¿ûû¦æû ûìû-ÍKnû;ûuãwLûYcû`S2cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾ(ûqqçû[û`Sû`S1cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾ(ûqqçû`S(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) € çûh×ñq1Ï»—ZH(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ûcçûh1(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) € çûh×ñq1Ï»—ZH(attlist (("relation" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €2çXTÀø í0Þû[û(.û!ºû0ÉÎû"§ûdݲU•ùûZûwúBû5GNîÕû#³´Cû6pò@‡Öž2žÖ‡@òp6ûC´³û#ÕîNGû5BúûwûZù•U²Ýûd§û"ÎÉû0ºû!.û(û[Þ0í øÀTXç(attlist (("renderas" (name-token-group ("sect1" "sect2" "sect3" "sect4")) IMPLIED) ("label" CDATA IMPLIED) ("status" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) € û û(û(Ÿ¼Ù„û[.:cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾªû?(ûqqÖTçûcûxû„Ù¼Ÿ:cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾªû?(ûqqÖTçûcûxûŸ¼Ù„:cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾªû?(ûqqÖTçûcûxûŸ¼Ù„û[:cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾªû?(ûqqÖTçûcûxû?Ÿ ¼  Ù „ ûx û cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾªû?(ûqqÖTçûcŸ ¼  Ù „ ûxŸ ¼  Ù „ û„ Ù  ¼ Ÿ Ÿ ¼  Ù „ û ûx Ÿ ¼  Ù „ û (attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €8ûµ¯µ¯ûTµûTûT(attlist (("entityref" ENTITY IMPLIED) ("fileref" CDATA IMPLIED) ("format" (name-token-group ("BMP" "CGM-CHAR" "CGM-BINARY" "CGM-CLEAR" "DITROFF" "DVI" "EPS" "EQN" "FAX" "GIF" "GIF87a" "GIF89a" "JPG" "JPEG" "IGES" "PCX" "PIC" "PNG" "PS" "SGML" "TBL" "TEX" "TIFF" "WMF" "WPG" "linespecific")) IMPLIED) ("srccredit" CDATA IMPLIED) ("width" CDATA IMPLIED) ("depth" CDATA IMPLIED) ("align" (name-token-group ("left" "right" "center")) IMPLIED) ("scale" CDATA IMPLIED) ("scalefit" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) (attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) € çûh×ñq1Ï»—ZH(attlist (("endterm" IDREF IMPLIED) ("linkend" IDREF REQUIRED) ("type" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €bûcçÂEû=û.eûv¿ ûh×ñq§ûdU«N6ò("ÊËû1ûS ûˆ1û$ÃxûFrûBûœ¹ûûC^yûrûz7‰–û ~iûLóYj¥ûnÄû6ûsûDûTû 8Ø2—ZHû7Ïû{ûMû>sÐû»ÞO_ž¬ûe(attlist (("renderas" (name-token-group ("sect1" "sect2" "sect3" "sect5")) IMPLIED) ("label" CDATA IMPLIED) ("status" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ûû(û(Ÿ¼Ù„û[.;cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾªû?(ûqqÖTçûcûxDû „Ù¼Ÿ;cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾªû?(ûqqÖTçûcûxDû Ÿ¼Ù„;cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾªû?(ûqqÖTçûcûxDû Ÿ¼Ù„û[;cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾªû?(ûqqÖTçûcûxDû @Ÿ ¼  Ù „ ûx D û cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾªû?(ûqqÖTçûcŸ ¼  Ù „ ûxŸ ¼  Ù „ DŸ ¼  Ù „ û „ Ù  ¼ Ÿ Ÿ ¼  Ù „ û D ûx Ÿ ¼  Ù „ D Ÿ ¼  Ù „ û (attlist (("arearefs" IDREFS REQUIRED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €8ûcçTÖqûq(?ûª¾ÜûJë5]¸†} F¤‡ÔûmÂEû=û.eûv¿ûû¦æû ûìû-ÍKnû;ûuãwLûYc8cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾªû?(ûqqÖTçûc(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €û(-cûYLwãûuû;ûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾû(ûqqçûc-ûcçqûq(û¾ÜûJë5]¸†} F¤‡ÔûmÂEû=û.eûv¿ûû¦æû ûû;ûuãwLûYc-cûYLwãûuû;ûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾû(ûqqçûc(attlist (("spacing" (name-token-group ("normal" "compact")) IMPLIED) ("mark" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €û(Èû[ÈÈÈ(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €3žÖ‡@òp6ûC´³û#ÕîNGû5BúûwûZù•U²Ýûd§û"ÎÉû0ºû!.û(û[Þ0í øÀTXç'3'çXTÀø í0Þû[û(.û!ºû0ÉÎû"§ûdݲU•ùûZûwúBû5GNîÕû#³´Cû6pò@‡Öž(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) € çûh×ñq1Ï»—ZH(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €bûcçÂEû=û.eûv¿ ûh×ñq§ûdU«N6ò("ÊËû1ûS ûˆ1û$ÃxûFrûBûœ¹ûûC^yûrûz7‰–û ~iûLóYj¥ûnÄû6ûsûDûTû 8Ø2—ZHû7Ïû{ûMû>sÐû»ÞO_ž¬ûe(attlist (("renderas" (name-token-group ("sect1" "sect2" "sect4" "sect5")) IMPLIED) ("label" CDATA IMPLIED) ("status" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ïû(û(Ÿ¼Ù„û[.;cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾªû?(ûqqÖTçûcûxIû „Ù¼Ÿ;cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾªû?(ûqqÖTçûcûxIû Ÿ¼Ù„;cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾªû?(ûqqÖTçûcûxIû Ÿ¼Ù„û[;cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾªû?(ûqqÖTçûcûxIû @Ÿ ¼  Ù „ ûx I û cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾªû?(ûqqÖTçûcŸ ¼  Ù „ ûxŸ ¼  Ù „ IŸ ¼  Ù „ û „ Ù  ¼ Ÿ Ÿ ¼  Ù „ û I ûx Ÿ ¼  Ù „ I Ÿ ¼  Ù „ û (attlist (("srccredit" CDATA IMPLIED) ("pagenum" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("linkend" IDREF IMPLIED) ("role" CDATA IMPLIED))) €bûcçÂEû=û.eûv¿ ûh×ñq§ûdU«N6ò("ÊËû1ûS ûˆ1û$ÃxûFrûBûœ¹ûûC^yûrûz7‰–û ~iûLóYj¥ûnÄû6ûsûDûTû 8Ø2—ZHû7Ïû{ûMû>sÐû»ÞO_ž¬ûe(attlist (("choice" (name-token-group ("opt" "req" "plain")) (nil "opt")) ("rep" (name-token-group ("norepeat" "repeat")) (nil "norepeat")) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €û^1Úr™R(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ûjûj€(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €û(ûmÔÔûmûmÔ(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €XTÀø í00í øÀTX(attlist (("renderas" (name-token-group ("sect1" "sect3" "sect4" "sect5")) IMPLIED) ("label" CDATA IMPLIED) ("status" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €èû(û(Ÿ¼Ù„û[.;cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾªû?(ûqqÖTçûcûxPû „Ù¼Ÿ;cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾªû?(ûqqÖTçûcûxPû Ÿ¼Ù„;cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾªû?(ûqqÖTçûcûxPû Ÿ¼Ù„û[;cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾªû?(ûqqÖTçûcûxPû @Ÿ ¼  Ù „ ûx P û cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾªû?(ûqqÖTçûcŸ ¼  Ù „ ûxŸ ¼  Ù „ PŸ ¼  Ù „ û „ Ù  ¼ Ÿ Ÿ ¼  Ù „ û P ûx Ÿ ¼  Ù „ P Ÿ ¼  Ù „ û (attlist (("action" (name-token-group ("click" "double-click" "press" "seq" "simul" "other")) IMPLIED) ("otheraction" CDATA IMPLIED) ("moreinfo" (name-token-group ("refentry" "none")) (nil "none")) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ûB^^ûB(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) € çûh×ñq1Ï»—ZH(attlist (("moreinfo" (name-token-group ("refentry" "none")) (nil "none")) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ûcçûh1(attlist (("targetdocent" ENTITY IMPLIED) ("linkmode" IDREF IMPLIED) ("localinfo" CDATA IMPLIED) ("type" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €bûcçÂEû=û.eûv¿ ûh×ñq§ûdU«N6ò("ÊËû1ûS ûˆ1û$ÃxûFrûBûœ¹ûûC^yûrûz7‰–û ~iûLóYj¥ûnÄû6ûsûDûTû 8Ø2—ZHû7Ïû{ûMû>sÐû»ÞO_ž¬ûe(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €9çXTÀø í0Þû[û(.û!ºû0ÉÎû"§ûdݲU•ùûZûwúBû5GNîÕû#³´Cû6pò@‡ÖžûKûû/«!}F9F}!«û/ûûKžÖ‡@òp6ûC´³û#ÕîNGû5BúûwûZù•U²Ýûd§û"ÎÉû0ºû!.û(û[Þ0í øÀTXç(attlist (("renderas" (name-token-group ("sect2" "sect3" "sect4" "sect5")) IMPLIED) ("label" CDATA IMPLIED) ("status" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ßû(û(Ÿ¼Ù„û[.;cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾªû?(ûqqÖTçûcûxVû „Ù¼Ÿ;cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾªû?(ûqqÖTçûcûxVû Ÿ¼Ù„;cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾªû?(ûqqÖTçûcûxVû Ÿ¼Ù„û[;cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾªû?(ûqqÖTçûcûxVû @Ÿ ¼  Ù „ ûx V û cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾªû?(ûqqÖTçûcŸ ¼  Ù „ ûxŸ ¼  Ù „ VŸ ¼  Ù „ û „ Ù  ¼ Ÿ Ÿ ¼  Ù „ û V ûx Ÿ ¼  Ù „ V Ÿ ¼  Ù „ û (attlist (("float" CDATA (nil "0")) ("pgwide" CDATA IMPLIED) ("label" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €—ZHûcç5]¸†} F¤‡ÂEû=û.eûv¿ûû¦æû ûûû æ¦ûû¿ûveû.û=E‡¤F }†¸]5çûcHZ—(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ûcçûh1(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ûcçûh×ñq(—ZHÏ»_(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €9çXTÀø í0Þû[û(.û!ºû0ÉÎû"§ûdݲU•ùûZûwúBû5GNîÕû#³´Cû6pò@‡ÖžûKûû/«!}F9F}!«û/ûûKžÖ‡@òp6ûC´³û#ÕîNGû5BúûwûZù•U²Ýûd§û"ÎÉû0ºû!.û(û[Þ0í øÀTXç(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €9çXTÀø í0Þû[û(.û!ºû0ÉÎû"§ûdݲU•ùûZûwúBû5GNîÕû#³´Cû6pò@‡ÖžûKûû/«!}F9F}!«û/ûûKžÖ‡@òp6ûC´³û#ÕîNGû5BúûwûZù•U²Ýûd§û"ÎÉû0ºû!.û(û[Þ0í øÀTXç(attlist (("sortas" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €Wûh×ñq§ûdU«N6ò("ÊËû1ûS ûˆ1û$ÃxûFrûBûœ¹ûûC^yûrûz7‰–û ~iûLóYj¥ûnÄû6ûsûDûTû 8Ø2—ZHû7Ïû{ûMû>sÐû»ÞO_ž¬ûe(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €û(Jû[JJJ(attlist (("linkends" IDREFS IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €Wûh×ñq§ûdU«N6ò("ÊËû1ûS ûˆ1û$ÃxûFrûBûœ¹ûûC^yûrûz7‰–û ~iûLóYj¥ûnÄû6ûsûDûTû 8Ø2—ZHû7Ïû{ûMû>sÐû»ÞO_ž¬ûe(attlist (("label" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ûE……ûE(attlist (("contents" IDREFS IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €9çXTÀø í0Þû[û(.û!ºû0ÉÎû"§ûdݲU•ùûZûwúBû5GNîÕû#³´Cû6pò@‡ÖžûKûû/«!}F9F}!«û/ûûKžÖ‡@òp6ûC´³û#ÕîNGû5BúûwûZù•U²Ýûd§û"ÎÉû0ºû!.û(û[Þ0í øÀTXç(attlist (("colnum" CDATA IMPLIED) ("colname" CDATA IMPLIED) ("colwidth" CDATA IMPLIED) ("colsep" CDATA IMPLIED) ("rowsep" CDATA IMPLIED) ("align" (name-token-group ("left" "right" "center" "justify" "char")) IMPLIED) ("char" CDATA IMPLIED) ("charoff" CDATA IMPLIED))) (attlist (("entityref" ENTITY IMPLIED) ("fileref" CDATA IMPLIED) ("format" (name-token-group ("BMP" "CGM-CHAR" "CGM-BINARY" "CGM-CLEAR" "DITROFF" "DVI" "EPS" "EQN" "FAX" "GIF" "GIF87a" "GIF89a" "JPG" "JPEG" "IGES" "PCX" "PIC" "PNG" "PS" "SGML" "TBL" "TEX" "TIFF" "WMF" "WPG" "linespecific")) IMPLIED) ("srccredit" CDATA IMPLIED) ("width" CDATA IMPLIED) ("depth" CDATA IMPLIED) ("align" (name-token-group ("left" "right" "center")) IMPLIED) ("scale" CDATA IMPLIED) ("scalefit" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) (attlist (("class" (name-token-group ("headerfile" "devicefile" "libraryfile" "directory" "symlink")) IMPLIED) ("path" CDATA IMPLIED) ("moreinfo" (name-token-group ("refentry" "none")) (nil "none")) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ûcçûh1(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) € çûh×ñq1Ï»—ZH(attlist (("label" CDATA IMPLIED) ("status" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ûOû(û(û[. û8®Ÿ¼Ù„{ûxû û8®Ÿ¼Ù„{ûxû û8®Ÿ¼Ù„{ûxûû[ û8®Ÿ¼Ù„{ûxû û8®Ÿ¼Ù„{ûxû(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) € çûh×ñq1Ï»—ZH(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ƒƒÈ(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €û(-cûYLwãûuû;ûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾû(ûqqçûc-ûcçqûq(û¾ÜûJë5]¸†} F¤‡ÔûmÂEû=û.eûv¿ûû¦æû ûû;ûuãwLûYc-cûYLwãûuû;ûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾû(ûqqçûc(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €û(8cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾªû?(ûqqÖTçûc8ûcçTÖqûq(?ûª¾ÜûJë5]¸†} F¤‡ÔûmÂEû=û.eûv¿ûû¦æû ûìû-ÍKnû;ûuãwLûYc8cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾªû?(ûqqÖTçûc(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €UN´úòòú´NU(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €bûcçÂEû=û.eûv¿ ûh×ñq§ûdU«N6ò("ÊËû1ûS ûˆ1û$ÃxûFrûBûœ¹ûûC^yûrûz7‰–û ~iûLóYj¥ûnÄû6ûsûDûTû 8Ø2—ZHû7Ïû{ûMû>sÐû»ÞO_ž¬ûe(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ûcçûh1(attlist (("linkend" IDREF IMPLIED) ("baseform" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €bûcçÂEû=û.eûv¿ ûh×ñq§ûdU«N6ò("ÊËû1ûS ûˆ1û$ÃxûFrûBûœ¹ûûC^yûrûz7‰–û ~iûLóYj¥ûnÄû6ûsûDûTû 8Ø2—ZHû7Ïû{ûMû>sÐû»ÞO_ž¬ûe(attlist (("label" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ôûiôûi(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) € çûh×ñq1Ï»—ZH(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €bûcçÂEû=û.eûv¿ ûh×ñq§ûdU«N6ò("ÊËû1ûS ûˆ1û$ÃxûFrûBûœ¹ûûC^yûrûz7‰–û ~iûLóYj¥ûnÄû6ûsûDûTû 8Ø2—ZHû7Ïû{ûMû>sÐû»ÞO_ž¬ûe(attlist (("numeration" (name-token-group ("arabic" "upperalpha" "loweralpha" "upperroman" "lowerroman")) IMPLIED) ("inheritnum" (name-token-group ("inherit" "ignore")) (nil "ignore")) ("continuation" (name-token-group ("continues" "restarts")) (nil "restarts")) ("spacing" (name-token-group ("normal" "compact")) IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €û(Èû[ÈÈÈ(attlist (("class" (name-token-group ("command" "function" "option")) IMPLIED) ("moreinfo" (name-token-group ("refentry" "none")) (nil "none")) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ûcçûh1(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ûcçûh1(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €9çXTÀø í0Þû[û(.û!ºû0ÉÎû"§ûdݲU•ùûZûwúBû5GNîÕû#³´Cû6pò@‡ÖžûKûû/«!}F9F}!«û/ûûKžÖ‡@òp6ûC´³û#ÕîNGû5BúûwûZù•U²Ýûd§û"ÎÉû0ºû!.û(û[Þ0í øÀTXç(attlist (("status" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €’û(û(tŸ¼Ù„û[.S2Sçqûq(¾ÜûJë5]¸†} F¤‡ÔûmÂEû=û.eûv¿ûû¦æû ûìû-ÍKnû;ûuãwLûYc(attlist (("moreinfo" (name-token-group ("refentry" "none")) (nil "none")) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €Aûcçûh×ñq("ÊËû1ûS ûˆ1û$ÃxûFrûBûœ¹ûûC^yûrûz7‰–û ~iûLóYj¥ûnÄû6ûsûDûTû 8Ø2—ZH(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €9çXTÀø í0Þû[û(.û!ºû0ÉÎû"§ûdݲU•ùûZûwúBû5GNîÕû#³´Cû6pò@‡ÖžûKûû/«!}F9F}!«û/ûûKžÖ‡@òp6ûC´³û#ÕîNGû5BúûwûZù•U²Ýûd§û"ÎÉû0ºû!.û(û[Þ0í øÀTXç(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €bûcçÂEû=û.eûv¿ ûh×ñq§ûdU«N6ò("ÊËû1ûS ûˆ1û$ÃxûFrûBûœ¹ûûC^yûrûz7‰–û ~iûLóYj¥ûnÄû6ûsûDûTû 8Ø2—ZHû7Ïû{ûMû>sÐû»ÞO_ž¬ûe(attlist (("status" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €:cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾªû?(ûqqÖTçûcû(aûhM8ûcçTÖqûq(?ûª¾ÜûJë5]¸†} F¤‡ÔûmÂEû=û.eûv¿ûû¦æû ûìû-ÍKnû;ûuãwLûYcûhM:cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾªû?(ûqqÖTçûcû[.ûhM9cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾªû?(ûqqÖTçûcû(ûhMûhM8cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾªû?(ûqqÖTçûcûhM9cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾªû?(ûqqÖTçûcû[ûhM(attlist (("format" (NOTATION ("linespecific")) (nil "linespecific")) ("linenumbering" (name-token-group ("numbered" "unnumbered")) IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €Bûûcçûh×ñq("ÊËû1ûS ûˆ1û$ÃxûFrûBûœ¹ûûC^yûrûz7‰–û ~iûLóYj¥ûnÄû6ûsûDûTû 8Ø2—ZH(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €=û:û:û:â(attlist (("format" (NOTATION ("linespecific")) (nil "linespecific")) ("linenumbering" (name-token-group ("numbered" "unnumbered")) IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €jŒûÅ¡u%û9XTÀø í0(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ûcçûh1(attlist (("moreinfo" (name-token-group ("refentry" "none")) (nil "none")) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €½ûcçûh1(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €9çXTÀø í0Þû[û(.û!ºû0ÉÎû"§ûdݲU•ùûZûwúBû5GNîÕû#³´Cû6pò@‡ÖžûKûû/«!}F9F}!«û/ûûKžÖ‡@òp6ûC´³û#ÕîNGû5BúûwûZù•U²Ýûd§û"ÎÉû0ºû!.û(û[Þ0í øÀTXç(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ûcçûh×ñq(—ZHÏ»_(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) € çûh×ñq1Ï»—ZH(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €çÔûmìû-ÍKnû;ûuãwLûYccûYLwãûuû;nKÍû-ìûmÔç(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED) ("audience" CDATA IMPLIED) ("level" CDATA IMPLIED) ("origin" CDATA IMPLIED))) €-o(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €  (attlist (("moreinfo" (name-token-group ("refentry" "none")) (nil "none")) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ûcçûh1(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €6"ÊËû1ûS ûˆ1û$ÃxûFrûBûœ¹ûûC^yûrûz7‰–û ~iûLóYj¥ûnÄû6ûsûDûTû 8Ø2(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €9çXTÀø í0Þû[û(.û!ºû0ÉÎû"§ûdݲU•ùûZûwúBû5GNîÕû#³´Cû6pò@‡ÖžûKûû/«!}F9F}!«û/ûûKžÖ‡@òp6ûC´³û#ÕîNGû5BúûwûZù•U²Ýûd§û"ÎÉû0ºû!.û(û[Þ0í øÀTXç(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €<ûk#cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾªû?(ûqqÖTçûcû(é#ûk#:ûk#ûcçTÖqûq(?ûª¾ÜûJë5]¸†} F¤‡ÔûmÂEû=û.eûv¿ûû¦æû ûìû-ÍKnû;ûuãwLûYc<ûk#cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾªû?(ûqqÖTçûcû[.;ûk#cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾªû?(ûqqÖTçûcû(:ûk#cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾªû?(ûqqÖTçûc;ûk#cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾªû?(ûqqÖTçûcû[(attlist (("valign" (name-token-group ("top" "middle" "bottom")) IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €··(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) € çûh×ñq1Ï»—ZH(attlist (("moreinfo" (name-token-group ("refentry" "none")) (nil "none")) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €½ûcçûh1(attlist (("url" CDATA REQUIRED) ("type" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €bûcçÂEû=û.eûv¿ ûh×ñq§ûdU«N6ò("ÊËû1ûS ûˆ1û$ÃxûFrûBûœ¹ûûC^yûrûz7‰–û ~iûLóYj¥ûnÄû6ûsûDûTû 8Ø2—ZHû7Ïû{ûMû>sÐû»ÞO_ž¬ûe(attlist (("sortas" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €Wûh×ñq§ûdU«N6ò("ÊËû1ûS ûˆ1û$ÃxûFrûBûœ¹ûûC^yûrûz7‰–û ~iûLóYj¥ûnÄû6ûsûDûTû 8Ø2—ZHû7Ïû{ûMû>sÐû»ÞO_ž¬ûe(attlist (("choice" (name-token-group ("opt" "req" "plain")) (nil "opt")) ("rep" (name-token-group ("norepeat" "repeat")) (nil "norepeat")) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €û^1Úr™RR™rÚ1û^(attlist (("valign" (name-token-group ("top" "middle" "bottom")) IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €g··(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ûAA(attlist (("class" (name-token-group ("cartridge" "cdrom" "disk" "tape")) IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ûcçûh1(attlist (("action" (name-token-group ("click" "double-click" "press" "seq" "simul" "other")) IMPLIED) ("otheraction" CDATA IMPLIED) ("moreinfo" (name-token-group ("refentry" "none")) (nil "none")) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ûB^^ûB(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ûcçûh×ñq(—ZHÏ»_(attlist (("pagenum" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €û&ûotû]û(û&û&tûoû&ûotû]û&ûotû]û[.û&ûotû]û&ûotû]û[(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €áû5l©6(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) € çûh×ñq1Ï»—ZH(attlist (("label" CDATA IMPLIED) ("linkends" IDREFS IMPLIED) ("id" ID REQUIRED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) (attlist (("otherterm" IDREF IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €bûcçÂEû=û.eûv¿ ûh×ñq§ûdU«N6ò("ÊËû1ûS ûˆ1û$ÃxûFrûBûœ¹ûûC^yûrûz7‰–û ~iûLóYj¥ûnÄû6ûsûDûTû 8Ø2—ZHû7Ïû{ûMû>sÐû»ÞO_ž¬ûe(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €û û(8cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾªû?(ûqqÖTçûc8cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾªû?(ûqqÖTçûcû 8cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾªû?(ûqqÖTçûc8cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾªû?(ûqqÖTçûc(attlist (("class" (name-token-group ("name" "table" "field" "key1" "key2" "record")) IMPLIED) ("moreinfo" (name-token-group ("refentry" "none")) (nil "none")) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ûcçûh1(attlist (("width" CDATA IMPLIED) ("format" (NOTATION ("linespecific")) (nil "linespecific")) ("linenumbering" (name-token-group ("numbered" "unnumbered")) IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €dû¢ûcçÂEû=û.eûv¿ ûh×ñq§ûdU«N6ò("ÊËû1ûS ûˆ1û$ÃxûFrûBûœ¹ûûC^yûrûz7‰–û ~iûLóYj¥ûnÄû6ûsûDûTû 8Ø2—ZHû7Ïû{ûMû>sÐû»ÞO_ž¬ûe(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) € çûh×ñq1Ï»—ZH(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €Wûh×ñq§ûdU«N6ò("ÊËû1ûS ûˆ1û$ÃxûFrûBûœ¹ûûC^yûrûz7‰–û ~iûLóYj¥ûnÄû6ûsûDûTû 8Ø2—ZHû7Ïû{ûMû>sÐû»ÞO_ž¬ûe(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €1çqûq(¾ÜûJë5]¸†} F¤‡ÔûmÂEû=û.eûv¿ûû¦æû ûìû-ÍKnû;ûuãwLûYc1cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾ(ûqqç(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €û(ûŽû[ûŽûŽûŽ(attlist (("application" (NOTATION ("BMP" "CGM-CHAR" "CGM-BINARY" "CGM-CLEAR" "DITROFF" "DVI" "EPS" "EQN" "FAX" "GIF" "GIF87a" "GIF89a" "JPG" "JPEG" "IGES" "PCX" "PIC" "PNG" "PS" "SGML" "TBL" "TEX" "TIFF" "WMF" "WPG" "linespecific")) IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) € çûh×ñq1Ï»—ZH(attlist (("endterm" IDREF IMPLIED) ("linkend" IDREF REQUIRED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) (attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €9çXTÀø í0Þû[û(.û!ºû0ÉÎû"§ûdݲU•ùûZûwúBû5GNîÕû#³´Cû6pò@‡ÖžûKûû/«!}F9F}!«û/ûûKžÖ‡@òp6ûC´³û#ÕîNGû5BúûwûZù•U²Ýûd§û"ÎÉû0ºû!.û(û[Þ0í øÀTXç(attlist (("label" CDATA IMPLIED) ("status" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €­û(û(tŸ¼Ù„û[.sÐû»ÞO_ž¬ûe(attlist (("label" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €Qû(QQû[.QQû[(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ûcçûh1(attlist (("frame" (name-token-group ("top" "bottom" "topbot" "all" "sides" "none")) IMPLIED) ("colsep" CDATA IMPLIED) ("rowsep" CDATA IMPLIED) ("tabstyle" CDATA IMPLIED) ("tocentry" CDATA IMPLIED) ("shortentry" CDATA IMPLIED) ("orient" (name-token-group ("port" "land")) IMPLIED) ("pgwide" CDATA IMPLIED) ("label" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €û(çû[F}ûlçF}ûlçF}ûlF}ûl(attlist (("label" CDATA IMPLIED) ("format" (NOTATION ("linespecific")) (nil "linespecific")) ("linenumbering" (name-token-group ("numbered" "unnumbered")) IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €f¢û}FûcçÂEû=û.eûv¿ ûh×ñq§ûdU«N6ò("ÊËû1ûS ûˆ1û$ÃxûFrûBûœ¹ûûC^yûrûz7‰–û ~iûLóYj¥ûnÄû6ûsûDûTû 8Ø2—ZHû7Ïû{ûMû>sÐû»ÞO_ž¬ûe(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €‡ûIÒ‡‡ûI‡ûI‡ûIÒ(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ûcçûh1(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €¯û88µ¯ûûTµûûTûûûT(attlist (("moreinfo" (name-token-group ("refentry" "none")) (nil "none")) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ûcçûh1(attlist (("moreinfo" (name-token-group ("refentry" "none")) (nil "none")) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €Aûcçûh×ñq("ÊËû1ûS ûˆ1û$ÃxûFrûBûœ¹ûûC^yûrûz7‰–û ~iûLóYj¥ûnÄû6ûsûDûTû 8Ø2—ZH(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) € çûh×ñq1Ï»—ZH(attlist (("format" (NOTATION ("linespecific")) (nil "linespecific")) ("linenumbering" (name-token-group ("numbered" "unnumbered")) IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €Bûûcçûh×ñq("ÊËû1ûS ûˆ1û$ÃxûFrûBûœ¹ûûC^yûrûz7‰–û ~iûLóYj¥ûnÄû6ûsûDûTû 8Ø2—ZH(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €û'û'û'(attlist (("override" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €8ûcçTÖqûq(?ûª¾ÜûJë5]¸†} F¤‡ÔûmÂEû=û.eûv¿ûû¦æû ûìû-ÍKnû;ûuãwLûYc8cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾªû?(ûqqÖTçûc(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) € çûh×ñq1Ï»—ZH(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ûcçûh1(attlist (("class" (name-token-group ("constant" "groupname" "library" "macro" "osname" "resource" "systemname" "username")) IMPLIED) ("moreinfo" (name-token-group ("refentry" "none")) (nil "none")) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €_ûcçûh1(attlist (("label" CDATA IMPLIED) ("units" (name-token-group ("calspair" "linecolumn" "linerange" "linecolumnpair" "other")) IMPLIED) ("otherunits" NMTOKEN IMPLIED) ("coords" CDATA REQUIRED) ("id" ID REQUIRED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ûû(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €û(-cûYLwãûuû;ûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾû(ûqqçûc-ûcçqûq(û¾ÜûJë5]¸†} F¤‡ÔûmÂEû=û.eûv¿ûû¦æû ûû;ûuãwLûYc-cûYLwãûuû;ûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾû(ûqqçûc(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €É‡(attlist (("class" (name-token-group ("service" "trade" "registered" "copyright")) (nil "trade")) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €@»ûh×ñq("ÊËû1ûS ûˆ1û$ÃxûFrûBûœ¹ûûC^yûrûz7‰–û ~iûLóYj¥ûnÄû6ûsûDûTû 8Ø2—ZH(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €bûcçÂEû=û.eûv¿ ûh×ñq§ûdU«N6ò("ÊËû1ûS ûˆ1û$ÃxûFrûBûœ¹ûûC^yûrûz7‰–û ~iûLóYj¥ûnÄû6ûsûDûTû 8Ø2—ZHû7Ïû{ûMû>sÐû»ÞO_ž¬ûe(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €9çXTÀø í0Þû[û(.û!ºû0ÉÎû"§ûdݲU•ùûZûwúBû5GNîÕû#³´Cû6pò@‡ÖžûKûû/«!}F9F}!«û/ûûKžÖ‡@òp6ûC´³û#ÕîNGû5BúûwûZù•U²Ýûd§û"ÎÉû0ºû!.û(û[Þ0í øÀTXç(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) € çûh×ñq1Ï»—ZH(attlist (("units" (name-token-group ("calspair" "linecolumn" "linerange" "linecolumnpair" "other")) IMPLIED) ("otherunits" NMTOKEN IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ÌûûÌ(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €‚¾ÜûJë5]¸†} F¤‡ûû¦æû ûìû-ÍKnû;ûuãwLûYcûcçÂEû=û.eûv¿ ûh×ñq§ûdU«N6ò("ÊËû1ûS ûˆ1û$ÃxûFrûBûœ¹ûûC^yûrûz7‰–û ~iûLóYj¥ûnÄû6ûsûDûTû 8Ø2—ZHû7Ïû{ûMû>sÐû»ÞO_ž¬ûe(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) € çûh×ñq1Ï»—ZH(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €û(ûmÔÔûmûmÔ(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) € ×ñq(ûhû11»—ZH(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ûcçûh1(attlist (("status" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) € :cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾªû?(ûqqÖTçûcû([ût8ûcçTÖqûq(?ûª¾ÜûJë5]¸†} F¤‡ÔûmÂEû=û.eûv¿ûû¦æû ûìû-ÍKnû;ûuãwLûYcût:cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾªû?(ûqqÖTçûcû[.ût9cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾªû?(ûqqÖTçûcû(ût„ût„8cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾªû?(ûqqÖTçûcût9cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾªû?(ûqqÖTçûcû[ût(attlist (("linkend" IDREF REQUIRED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €(attlist (("float" CDATA (nil "0")) ("pgwide" CDATA IMPLIED) ("label" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €û(û[ûû æ¦ûû¿ûveû.û=E‡¤F }†¸]5çûcHZ—ûû æ¦ûû¿ûveû.û=E‡¤F }†¸]5çûcHZ—ûû æ¦ûû¿ûveû.û=E‡¤F }†¸]5çûcHZ—(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ÔûmûmÔ(attlist (("pubwork" (name-token-group ("article" "book" "chapter" "part" "refentry" "section" "journal" "series" "set" "manuscript")) IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €bûcçÂEû=û.eûv¿ ûh×ñq§ûdU«N6ò("ÊËû1ûS ûˆ1û$ÃxûFrûBûœ¹ûûC^yûrûz7‰–û ~iûLóYj¥ûnÄû6ûsûDûTû 8Ø2—ZHû7Ïû{ûMû>sÐû»ÞO_ž¬ûe(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €9çXTÀø í0Þû[û(.û!ºû0ÉÎû"§ûdݲU•ùûZûwúBû5GNîÕû#³´Cû6pò@‡ÖžûKûû/«!}F9F}!«û/ûûKžÖ‡@òp6ûC´³û#ÕîNGû5BúûwûZù•U²Ýûd§û"ÎÉû0ºû!.û(û[Þ0í øÀTXç(attlist (("fpi" CDATA IMPLIED) ("status" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €Ÿfû(ûûŸûŸfû[.û“ûŸfûŸfû[û(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) € çûh×ñq1Ï»—ZH(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €=ûM¤Ôûmûû¦æû ûìû-ÍKnû;ûuãwLûYccûYLwãûuû;nKÍû-ìûû æ¦ûûûmÔ¤ûMcûYLwãûuû;nKÍû-ìûû æ¦ûûûmÔ¤(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €û(û,û[û,û,û,û,ÇÇ(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €bûcçÂEû=û.eûv¿ ûh×ñq§ûdU«N6ò("ÊËû1ûS ûˆ1û$ÃxûFrûBûœ¹ûûC^yûrûz7‰–û ~iûLóYj¥ûnÄû6ûsûDûTû 8Ø2—ZHû7Ïû{ûMû>sÐû»ÞO_ž¬ûe(attlist (("performance" (name-token-group ("optional" "required")) (nil "required")) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €°°(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €Óû c(attlist (("pagenum" CDATA IMPLIED) ("scope" (name-token-group ("all" "global" "local")) IMPLIED) ("significance" (name-token-group ("preferred" "normal")) (nil "normal")) ("class" (name-token-group ("singular" "startofrange" "endofrange")) IMPLIED) ("startref" IDREF IMPLIED) ("zone" IDREFS IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) € ˜û3¨,¨û3b¨¨û3˜¨¨û3 ¨(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €9çXTÀø í0Þû[û(.û!ºû0ÉÎû"§ûdݲU•ùûZûwúBû5GNîÕû#³´Cû6pò@‡ÖžûKûû/«!}F9F}!«û/ûûKžÖ‡@òp6ûC´³û#ÕîNGû5BúûwûZù•U²Ýûd§û"ÎÉû0ºû!.û(û[Þ0í øÀTXç(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €9çXTÀø í0Þû[û(.û!ºû0ÉÎû"§ûdݲU•ùûZûwúBû5GNîÕû#³´Cû6pò@‡ÖžûKûû/«!}F9F}!«û/ûûKžÖ‡@òp6ûC´³û#ÕîNGû5BúûwûZù•U²Ýûd§û"ÎÉû0ºû!.û(û[Þ0í øÀTXç(attlist (("class" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) € çûh×ñq1Ï»—ZH(attlist (("label" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €Ûû(F}}FÛû[F}F}ÛF}(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €û(-cûYLwãûuû;ûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾû(ûqqçûc-ûcçqûq(û¾ÜûJë5]¸†} F¤‡ÔûmÂEû=û.eûv¿ûû¦æû ûû;ûuãwLûYc-cûYLwãûuû;ûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾû(ûqqçûc(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) € çûh×ñq1Ï»—ZH(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) € ) )(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €9çXTÀø í0Þû[û(.û!ºû0ÉÎû"§ûdݲU•ùûZûwúBû5GNîÕû#³´Cû6pò@‡ÖžûKûû/«!}F9F}!«û/ûûKžÖ‡@òp6ûC´³û#ÕîNGû5BúûwûZù•U²Ýûd§û"ÎÉû0ºû!.û(û[Þ0í øÀTXç(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €=öö(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) € ×ñq(ûhû11»—ZH(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €XTÀø í00í øÀTX(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ûcçûh1(attlist (("linkend" IDREF IMPLIED) ("pagenum" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €bûcçÂEû=û.eûv¿ ûh×ñq§ûdU«N6ò("ÊËû1ûS ûˆ1û$ÃxûFrûBûœ¹ûûC^yûrûz7‰–û ~iûLóYj¥ûnÄû6ûsûDûTû 8Ø2—ZHû7Ïû{ûMû>sÐû»ÞO_ž¬ûe(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €bûcçÂEû=û.eûv¿ ûh×ñq§ûdU«N6ò("ÊËû1ûS ûˆ1û$ÃxûFrûBûœ¹ûûC^yûrûz7‰–û ~iûLóYj¥ûnÄû6ûsûDûTû 8Ø2—ZHû7Ïû{ûMû>sÐû»ÞO_ž¬ûe(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("entityref" ENTITY IMPLIED) ("fileref" CDATA IMPLIED) ("format" (name-token-group ("BMP" "CGM-CHAR" "CGM-BINARY" "CGM-CLEAR" "DITROFF" "DVI" "EPS" "EQN" "FAX" "GIF" "GIF87a" "GIF89a" "JPG" "JPEG" "IGES" "PCX" "PIC" "PNG" "PS" "SGML" "TBL" "TEX" "TIFF" "WMF" "WPG" "linespecific")) IMPLIED) ("srccredit" CDATA IMPLIED) ("role" CDATA IMPLIED))) (attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €9çXTÀø í0Þû[û(.û!ºû0ÉÎû"§ûdݲU•ùûZûwúBû5GNîÕû#³´Cû6pò@‡ÖžûKûû/«!}F9F}!«û/ûûKžÖ‡@òp6ûC´³û#ÕîNGû5BúûwûZù•U²Ýûd§û"ÎÉû0ºû!.û(û[Þ0í øÀTXç(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) € çûh×ñq1Ï»—ZH(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) € çûh×ñq1Ï»—ZH(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €XTÀø í00í øÀTX(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €=û}ðûûðû}û}ðûâ(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED) ("class" (name-token-group ("limit")) IMPLIED))) €ûcçûh1(attlist (("linkend" IDREF IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ûcçûh×ñq(—ZHÏ»_(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €9çXTÀø í0Þû[û(.û!ºû0ÉÎû"§ûdݲU•ùûZûwúBû5GNîÕû#³´Cû6pò@‡ÖžûKûû/«!}F9F}!«û/ûûKžÖ‡@òp6ûC´³û#ÕîNGû5BúûwûZù•U²Ýûd§û"ÎÉû0ºû!.û(û[Þ0í øÀTXç(attlist (("label" CDATA IMPLIED) ("status" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €$û(û(û[.ûxûxûxû[ûxûx(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €û(÷2cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾ(ûqqçûcû[2cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾ(ûqqçûcû(2cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾ(ûqqçûc2cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾ(ûqqçûc2cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾ(ûqqçûc(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €Ó¦c(attlist (("moreinfo" (name-token-group ("refentry" "none")) (nil "none")) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €W û–‰7ûzûrûrûz7‰–û  û–‰7ûzûr(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ûcçûh1(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) € çûh×ñq1Ï»—ZH(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €9çXTÀø í0Þû[û(.û!ºû0ÉÎû"§ûdݲU•ùûZûwúBû5GNîÕû#³´Cû6pò@‡ÖžûKûû/«!}F9F}!«û/ûûKžÖ‡@òp6ûC´³û#ÕîNGû5BúûwûZù•U²Ýûd§û"ÎÉû0ºû!.û(û[Þ0í øÀTXç(attlist (("width" CDATA IMPLIED) ("format" (NOTATION ("linespecific")) (nil "linespecific")) ("linenumbering" (name-token-group ("numbered" "unnumbered")) IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €dû¢ûcçÂEû=û.eûv¿ ûh×ñq§ûdU«N6ò("ÊËû1ûS ûˆ1û$ÃxûFrûBûœ¹ûûC^yûrûz7‰–û ~iûLóYj¥ûnÄû6ûsûDûTû 8Ø2—ZHû7Ïû{ûMû>sÐû»ÞO_ž¬ûe(attlist (("width" CDATA IMPLIED) ("format" (NOTATION ("linespecific")) (nil "linespecific")) ("linenumbering" (name-token-group ("numbered" "unnumbered")) IMPLIED) ("class" (name-token-group ("monospaced" "normal")) (nil "normal")) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €d¢ûûcçÂEû=û.eûv¿ ûh×ñq§ûdU«N6ò("ÊËû1ûS ûˆ1û$ÃxûFrûBûœ¹ûûC^yûrûz7‰–û ~iûLóYj¥ûnÄû6ûsûDûTû 8Ø2—ZHû7Ïû{ûMû>sÐû»ÞO_ž¬ûe(attlist (("namest" CDATA REQUIRED) ("nameend" CDATA REQUIRED) ("spanname" CDATA REQUIRED) ("colsep" CDATA IMPLIED) ("rowsep" CDATA IMPLIED) ("align" (name-token-group ("left" "right" "center" "justify" "char")) IMPLIED) ("char" CDATA IMPLIED) ("charoff" CDATA IMPLIED))) (attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €bûcçÂEû=û.eûv¿ ûh×ñq§ûdU«N6ò("ÊËû1ûS ûˆ1û$ÃxûFrûBûœ¹ûûC^yûrûz7‰–û ~iûLóYj¥ûnÄû6ûsûDûTû 8Ø2—ZHû7Ïû{ûMû>sÐû»ÞO_ž¬ûe(attlist (("label" CDATA IMPLIED) ("linkends" IDREFS IMPLIED) ("units" (name-token-group ("calspair" "linecolumn" "linerange" "linecolumnpair" "other")) IMPLIED) ("otherunits" NMTOKEN IMPLIED) ("coords" CDATA REQUIRED) ("id" ID REQUIRED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) (attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €û(--(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €û(û[.8cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾªû?(ûqqÖTçûc8cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾªû?(ûqqÖTçûcû[8cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾªû?(ûqqÖTçûc8cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾªû?(ûqqÖTçûc(attlist (("fpi" CDATA IMPLIED) ("label" CDATA IMPLIED) ("status" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €:Ÿ¼Ù„{®ûkû8“ûûHû(û“û8kû®{„Ù¼Ÿ::Ÿ¼Ù„{®ûkû8“û:Ÿ¼Ù„{®ûkû8“ûûHû[.:Ÿ¼Ù„{®ûkû8“ûûH:Ÿ¼Ù„{®ûkû8“ûûHû[(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) € çûh×ñq1Ï»—ZH(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €bûcçÂEû=û.eûv¿ ûh×ñq§ûdU«N6ò("ÊËû1ûS ûˆ1û$ÃxûFrûBûœ¹ûûC^yûrûz7‰–û ~iûLóYj¥ûnÄû6ûsûDûTû 8Ø2—ZHû7Ïû{ûMû>sÐû»ÞO_ž¬ûe(attlist (("status" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €û(cûYLwãûuû;nKÍû-ìûû æ¦ûûûmÔ¤û[.cûYLwãûuû;nKÍû-ìûû æ¦ûûûmÔ¤cûYLwãûuû;nKÍû-ìûû æ¦ûûûmÔ¤cûYLwãûuû;nKÍû-ìûû æ¦ûûûmÔ¤û[cûYLwãûuû;nKÍû-ìûû æ¦ûûûmÔ¤(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ûcçûh1(attlist (("id" ID REQUIRED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €™RR™(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €=(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €äF }††} F(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €û<o›û<oo(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €±±(attlist (("class" (name-token-group ("attribute" "attvalue" "element" "endtag" "emptytag" "genentity" "numcharref" "paramentity" "pi" "xmlpi" "starttag" "sgmlcomment")) IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ûcçûh1(attlist (("moreinfo" (name-token-group ("refentry" "none")) (nil "none")) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €½ûcçûh1(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €bûcçÂEû=û.eûv¿ ûh×ñq§ûdU«N6ò("ÊËû1ûS ûˆ1û$ÃxûFrûBûœ¹ûûC^yûrûz7‰–û ~iûLóYj¥ûnÄû6ûsûDûTû 8Ø2—ZHû7Ïû{ûMû>sÐû»ÞO_ž¬ûe(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) € çûh×ñq1Ï»—ZH(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) € çûh×ñq1Ï»—ZH(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) € çûh×ñq1Ï»—ZH(attlist (("moreinfo" (name-token-group ("refentry" "none")) (nil "none")) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ûcçûh1(attlist (("label" CDATA IMPLIED) ("status" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) € Ñû(û(Ÿ¼Ù„û[.:cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾªû?(ûqqÖTçûcûxû%„Ù¼Ÿ:cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾªû?(ûqqÖTçûcûxû%Ÿ¼Ù„:cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾªû?(ûqqÖTçûcûxû%Ÿ¼Ù„û[:cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾªû?(ûqqÖTçûcûxû%?Ÿ ¼  Ù „ ûx û% cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾªû?(ûqqÖTçûcŸ ¼  Ù „ ûxŸ ¼  Ù „ û%„ Ù  ¼ Ÿ Ÿ ¼  Ù „ û% ûx Ÿ ¼  Ù „ û% (attlist (("label" CDATA IMPLIED) ("linkend" IDREF IMPLIED) ("pagenum" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €bûcçÂEû=û.eûv¿ ûh×ñq§ûdU«N6ò("ÊËû1ûS ûˆ1û$ÃxûFrûBûœ¹ûûC^yûrûz7‰–û ~iûLóYj¥ûnÄû6ûsûDûTû 8Ø2—ZHû7Ïû{ûMû>sÐû»ÞO_ž¬ûe(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €bûcçÂEû=û.eûv¿ ûh×ñq§ûdU«N6ò("ÊËû1ûS ûˆ1û$ÃxûFrûBûœ¹ûûC^yûrûz7‰–û ~iûLóYj¥ûnÄû6ûsûDûTû 8Ø2—ZHû7Ïû{ûMû>sÐû»ÞO_ž¬ûe(attlist (("pagenum" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €Yç ûh×ñq§ûdU«N6ò("ÊËû1ûS ûˆ1û$ÃxûFrûBûœ¹ûûC^yûrûz7‰–û ~iûLóYj¥ûnÄû6ûsûDûTû 8Ø2—ZHû7Ïû{ûMû>sÐû»ÞO_ž¬ûe(attlist (("linkends" IDREFS IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €Wûh×ñq§ûdU«N6ò("ÊËû1ûS ûˆ1û$ÃxûFrûBûœ¹ûûC^yûrûz7‰–û ~iûLóYj¥ûnÄû6ûsûDûTû 8Ø2—ZHû7Ïû{ûMû>sÐû»ÞO_ž¬ûe(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €9çXTÀø í0Þû[û(.û!ºû0ÉÎû"§ûdݲU•ùûZûwúBû5GNîÕû#³´Cû6pò@‡ÖžûKûû/«!}F9F}!«û/ûûKžÖ‡@òp6ûC´³û#ÕîNGû5BúûwûZù•U²Ýûd§û"ÎÉû0ºû!.û(û[Þ0í øÀTXç(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €9çXTÀø í0Þû[û(.û!ºû0ÉÎû"§ûdݲU•ùûZûwúBû5GNîÕû#³´Cû6pò@‡ÖžûKûû/«!}F9F}!«û/ûûKžÖ‡@òp6ûC´³û#ÕîNGû5BúûwûZù•U²Ýûd§û"ÎÉû0ºû!.û(û[Þ0í øÀTXç(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €Yç ûh×ñq§ûdU«N6ò("ÊËû1ûS ûˆ1û$ÃxûFrûBûœ¹ûûC^yûrûz7‰–û ~iûLóYj¥ûnÄû6ûsûDûTû 8Ø2—ZHû7Ïû{ûMû>sÐû»ÞO_ž¬ûe(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €û(-cûYLwãûuû;ûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾû(ûqqçûc-ûcçqûq(û¾ÜûJë5]¸†} F¤‡ÔûmÂEû=û.eûv¿ûû¦æû ûû;ûuãwLûYc-cûYLwãûuû;ûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾû(ûqqçûc(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED) ("language" CDATA IMPLIED) ("class" (name-token-group ("class" "interface")) (nil "class")))) €û6ûsûDÆû=EÂûDûsû6ÂEû=Æ(attlist (("scheme" NMTOKEN IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ûyûy(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) € çûh×ñq1Ï»—ZH(attlist (("class" (name-token-group ("limit")) IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ûcçûh1(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €9çXTÀø í0Þû[û(.û!ºû0ÉÎû"§ûdݲU•ùûZûwúBû5GNîÕû#³´Cû6pò@‡ÖžûKûû/«!}F9F}!«û/ûûKžÖ‡@òp6ûC´³û#ÕîNGû5BúûwûZù•U²Ýûd§û"ÎÉû0ºû!.û(û[Þ0í øÀTXç(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €Wûh×ñq§ûdU«N6ò("ÊËû1ûS ûˆ1û$ÃxûFrûBûœ¹ûûC^yûrûz7‰–û ~iûLóYj¥ûnÄû6ûsûDûTû 8Ø2—ZHû7Ïû{ûMû>sÐû»ÞO_ž¬ûe(attlist (("relation" CDATA IMPLIED) ("role" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED))) €4û4çXTÀø í0Þû[û(.û!ºû0ÉÎû"§ûdݲU•ùûZûwúBû5GNîÕû#³´Cû6pò@‡Öž(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) € çûh×ñq1Ï»—ZH(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ûûT(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ûcçûh×ñq(—ZHÏ»_(attlist (("label" CDATA IMPLIED) ("status" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €û2û(û(tŸ¼Ù„û[.sÐû»ÞO_ž¬ûe(attlist (("moreinfo" (name-token-group ("refentry" "none")) (nil "none")) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ûcçûh1(attlist (("moreinfo" (name-token-group ("refentry" "none")) (nil "none")) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €Aûcçûh×ñq("ÊËû1ûS ûˆ1û$ÃxûFrûBûœ¹ûûC^yûrûz7‰–û ~iûLóYj¥ûnÄû6ûsûDûTû 8Ø2—ZH(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ûØ(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ûX;ûW¯;(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €Aûcçûh×ñq("ÊËû1ûS ûˆ1û$ÃxûFrûBûœ¹ûûC^yûrûz7‰–û ~iûLóYj¥ûnÄû6ûsûDûTû 8Ø2—ZH(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ôô(attlist (("contents" IDREFS IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €9çXTÀø í0Þû[û(.û!ºû0ÉÎû"§ûdݲU•ùûZûwúBû5GNîÕû#³´Cû6pò@‡ÖžûKûû/«!}F9F}!«û/ûûKžÖ‡@òp6ûC´³û#ÕîNGû5BúûwûZù•U²Ýûd§û"ÎÉû0ºû!.û(û[Þ0í øÀTXç(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) € çûh×ñq1Ï»—ZH(attlist (("label" CDATA IMPLIED) ("width" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €û(û[$cûYLwãûuû;ûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5çûc$cûYLwãûuû;ûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5çûc$cûYLwãûuû;ûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5çûc(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €çç(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ûcçûh1(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €bûcçÂEû=û.eûv¿ ûh×ñq§ûdU«N6ò("ÊËû1ûS ûˆ1û$ÃxûFrûBûœ¹ûûC^yûrûz7‰–û ~iûLóYj¥ûnÄû6ûsûDûTû 8Ø2—ZHû7Ïû{ûMû>sÐû»ÞO_ž¬ûe(attlist (("linkend" IDREF IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €Wûh×ñq§ûdU«N6ò("ÊËû1ûS ûˆ1û$ÃxûFrûBûœ¹ûûC^yûrûz7‰–û ~iûLóYj¥ûnÄû6ûsûDûTû 8Ø2—ZHû7Ïû{ûMû>sÐû»ÞO_ž¬ûe(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €9çXTÀø í0Þû[û(.û!ºû0ÉÎû"§ûdݲU•ùûZûwúBû5GNîÕû#³´Cû6pò@‡ÖžûKûû/«!}F9F}!«û/ûûKžÖ‡@òp6ûC´³û#ÕîNGû5BúûwûZù•U²Ýûd§û"ÎÉû0ºû!.û(û[Þ0í øÀTXç(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ôûGôûG(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) € çûh×ñq1Ï»—ZH(attlist (("subject" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €)ûcçq¾ÜûJë5]¸†} F¤‡ÔûmÂEû=û.eûv¿ûû¦æû ûû;ûuãwLûYc*û_cûYLwãûuû;ûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾqçûcû_(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ûcçûh1(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ûcçûh1(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €2(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ôûPôûP(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) (attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €~1(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) € çûh×ñq1Ï»—ZH(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €Yç ûh×ñq§ûdU«N6ò("ÊËû1ûS ûˆ1û$ÃxûFrûBûœ¹ûûC^yûrûz7‰–û ~iûLóYj¥ûnÄû6ûsûDûTû 8Ø2—ZHû7Ïû{ûMû>sÐû»ÞO_ž¬ûe(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ôûVôûV(attlist (("label" CDATA IMPLIED) ("linkend" IDREF IMPLIED) ("pagenum" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €bûcçÂEû=û.eûv¿ ûh×ñq§ûdU«N6ò("ÊËû1ûS ûˆ1û$ÃxûFrûBûœ¹ûûC^yûrûz7‰–û ~iûLóYj¥ûnÄû6ûsûDûTû 8Ø2—ZHû7Ïû{ûMû>sÐû»ÞO_ž¬ûe(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) (attlist (("otherterm" IDREF IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €bûcçÂEû=û.eûv¿ ûh×ñq§ûdU«N6ò("ÊËû1ûS ûˆ1û$ÃxûFrûBûœ¹ûûC^yûrûz7‰–û ~iûLóYj¥ûnÄû6ûsûDûTû 8Ø2—ZHû7Ïû{ûMû>sÐû»ÞO_ž¬ûe(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €2cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾ(ûqqçû(û`S1çqûq(¾ÜûJë5]¸†} F¤‡ÔûmÂEû=û.eûv¿ûû¦æû ûìû-ÍKnû;ûuãwLûYcû`S2cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾ(ûqqçû[û`Sû`S1cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾ(ûqqçû`S(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €û(--(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €û(--(attlist (("pagenum" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) (attlist (("class" (name-token-group ("service" "trade" "registered" "copyright")) (nil "trade")) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €bûcçÂEû=û.eûv¿ ûh×ñq§ûdU«N6ò("ÊËû1ûS ûˆ1û$ÃxûFrûBûœ¹ûûC^yûrûz7‰–û ~iûLóYj¥ûnÄû6ûsûDûTû 8Ø2—ZHû7Ïû{ûMû>sÐû»ÞO_ž¬ûe(attlist (("linkend" IDREF REQUIRED) ("label" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) (attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €çõçê‹ççêçê(attlist (("linkends" IDREFS IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €Wûh×ñq§ûdU«N6ò("ÊËû1ûS ûˆ1û$ÃxûFrûBûœ¹ûûC^yûrûz7‰–û ~iûLóYj¥ûnÄû6ûsûDûTû 8Ø2—ZHû7Ïû{ûMû>sÐû»ÞO_ž¬ûe(attlist (("status" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €9cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾªû?(ûqqÖTçûcû(M8ûcçTÖqûq(?ûª¾ÜûJë5]¸†} F¤‡ÔûmÂEû=û.eûv¿ûû¦æû ûìû-ÍKnû;ûuãwLûYcM:cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾªû?(ûqqÖTçûcû[.MM8cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾªû?(ûqqÖTçûcM9cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾªû?(ûqqÖTçûcû[M(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ôû\ôû\(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €>1cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾ(ûqqç1çqûq(¾ÜûJë5]¸†} F¤‡ÔûmÂEû=û.eûv¿ûû¦æû ûìû-ÍKnû;ûuãwLûYc1cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾ(ûqqç(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €&Lwû;ûuûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5(qHZ—ûcû(ã#%ûc—ZHq(5]¸†} F¤‡ÔûmÂEû=û.eûv¿ûû¦æû ûûuû;wL#ã'Lwû;ûuûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5(qHZ—ûcû[.ã##%Lwû;ûuûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5(qHZ—ûcã#&Lwû;ûuûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5(qHZ—ûcû[ã#(attlist (("cols" CDATA REQUIRED) ("tgroupstyle" CDATA IMPLIED) ("colsep" CDATA IMPLIED) ("rowsep" CDATA IMPLIED) ("align" (name-token-group ("left" "right" "center" "justify" "char")) IMPLIED) ("char" CDATA IMPLIED) ("charoff" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €šûg””š”šû”(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €û(çÔ(attlist (("moreinfo" (name-token-group ("refentry" "none")) (nil "none")) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €Aûcçûh×ñq("ÊËû1ûS ûˆ1û$ÃxûFrûBûœ¹ûûC^yûrûz7‰–û ~iûLóYj¥ûnÄû6ûsûDûTû 8Ø2—ZH(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ôtôt(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) € çûh×ñq1Ï»—ZH(attlist (("renderas" (name-token-group ("other" "sect1" "sect2" "sect3" "sect4" "sect5")) IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €Yç ûh×ñq§ûdU«N6ò("ÊËû1ûS ûˆ1û$ÃxûFrûBûœ¹ûûC^yûrûz7‰–û ~iûLóYj¥ûnÄû6ûsûDûTû 8Ø2—ZHû7Ïû{ûMû>sÐû»ÞO_ž¬ûe(attlist (("moreinfo" (name-token-group ("refentry" "none")) (nil "none")) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €½ûcçûh1(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ûû (attlist (("status" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €û(:cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾªû?(ûqqÖTçûcû[.8ûcçTÖqûq(?ûª¾ÜûJë5]¸†} F¤‡ÔûmÂEû=û.eûv¿ûû¦æû ûìû-ÍKnû;ûuãwLûYc8cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾªû?(ûqqÖTçûc9cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾªû?(ûqqÖTçûcû[(attlist (("columns" CDATA IMPLIED) ("type" (name-token-group ("inline" "vert" "horiz")) (nil "vert")) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €vv(attlist (("label" CDATA IMPLIED) ("sepchar" CDATA (nil " ")) ("cmdlength" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €û^™RÄûÄR™û^û(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) € çûh×ñq1Ï»—ZH(attlist (("status" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €qHZ—ûfû+ç9—ZHq9qHZ—9qHZ—ûf9û?333(attlist (("weight" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €û û (attlist (("moreinfo" (name-token-group ("refentry" "none")) (nil "none")) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €½ûcçûh1(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €bûcçÂEû=û.eûv¿ ûh×ñq§ûdU«N6ò("ÊËû1ûS ûˆ1û$ÃxûFrûBûœ¹ûûC^yûrûz7‰–û ~iûLóYj¥ûnÄû6ûsûDûTû 8Ø2—ZHû7Ïû{ûMû>sÐû»ÞO_ž¬ûe(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) € çûh×ñq1Ï»—ZH(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €=(nil ("debconf" text "debconf" nil) ("gnome" text "GNOME" nil) ("progeny.inc" text "Progeny Linux Systems, Inc." nil) ("psgml" text "PSGML" nil) ("introduction" text (nil "introduction.xml" . "/cvs/progeny/power-on/configlets/configlet/documentation/book/") nil) ("architecture" text (nil "architecture.xml" . "/cvs/progeny/power-on/configlets/configlet/documentation/book/") nil) ("configlet" text (nil "configlet.xml" . "/cvs/progeny/power-on/configlets/configlet/documentation/book/") nil) ("frontend" text (nil "frontend.xml" . "/cvs/progeny/power-on/configlets/configlet/documentation/book/") nil) ("euro" text "€" nil) ("cularr" text "↶" nil) ("curarr" text "↷" nil) ("dArr" text "⇓" nil) ("darr2" text "⇊" nil) ("dharl" text "⇃" nil) ("dharr" text "⇂" nil) ("lAarr" text "⇚" nil) ("Larr" text "↞" nil) ("larr2" text "⇇" nil) ("larrhk" text "↩" nil) ("larrlp" text "↫" nil) ("larrtl" text "↢" nil) ("lhard" text "↽" nil) ("lharu" text "↼" nil) ("hArr" text "⇔" nil) ("harr" text "↔" nil) ("lrarr2" text "⇆" nil) ("rlarr2" text "⇄" nil) ("harrw" text "↭" nil) ("rlhar2" text "⇌" nil) ("lrhar2" text "⇋" nil) ("lsh" text "↰" nil) ("map" text "↦" nil) ("mumap" text "⊸" nil) ("nearr" text "↗" nil) ("nlArr" text "⇍" nil) ("nlarr" text "↚" nil) ("nhArr" text "⇎" nil) ("nharr" text "↮" nil) ("nrarr" text "↛" nil) ("nrArr" text "⇏" nil) ("nwarr" text "↖" nil) ("olarr" text "↺" nil) ("orarr" text "↻" nil) ("rAarr" text "⇛" nil) ("Rarr" text "↠" nil) ("rarr2" text "⇉" nil) ("rarrhk" text "↪" nil) ("rarrlp" text "↬" nil) ("rarrtl" text "↣" nil) ("rarrw" text "↝" nil) ("rhard" text "⇁" nil) ("rharu" text "⇀" nil) ("rsh" text "↱" nil) ("drarr" text "↘" nil) ("dlarr" text "↙" nil) ("uArr" text "⇑" nil) ("uarr2" text "⇈" nil) ("vArr" text "⇕" nil) ("varr" text "↕" nil) ("uharl" text "↿" nil) ("uharr" text "↾" nil) ("xlArr" text "" nil) ("xhArr" text "" nil) ("xharr" text "" nil) ("xrArr" text "" nil) ("amalg" text "" nil) ("Barwed" text "⌆" nil) ("barwed" text "⊼" nil) ("Cap" text "⋒" nil) ("Cup" text "⋓" nil) ("cuvee" text "⋎" nil) ("cuwed" text "⋏" nil) ("diam" text "⋄" nil) ("divonx" text "⋇" nil) ("intcal" text "⊺" nil) ("lthree" text "⋋" nil) ("ltimes" text "⋉" nil) ("minusb" text "⊟" nil) ("oast" text "⊛" nil) ("ocir" text "⊚" nil) ("odash" text "⊝" nil) ("odot" text "⊙" nil) ("ominus" text "⊖" nil) ("oplus" text "⊕" nil) ("osol" text "⊘" nil) ("otimes" text "⊗" nil) ("plusb" text "⊞" nil) ("plusdo" text "∔" nil) ("rthree" text "⋌" nil) ("rtimes" text "⋊" nil) ("sdot" text "⋅" nil) ("sdotb" text "⊡" nil) ("setmn" text "∖" nil) ("sqcap" text "⊓" nil) ("sqcup" text "⊔" nil) ("ssetmn" text "" nil) ("sstarf" text "⋆" nil) ("timesb" text "⊠" nil) ("top" text "⊤" nil) ("uplus" text "⊎" nil) ("wreath" text "≀" nil) ("xcirc" text "○" nil) ("xdtri" text "▽" nil) ("xutri" text "△" nil) ("coprod" text "∐" nil) ("prod" text "∏" nil) ("sum" text "∑" nil) ("rceil" text "⌉" nil) ("rfloor" text "⌋" nil) ("rpargt" text "" nil) ("urcorn" text "⌝" nil) ("drcorn" text "⌟" nil) ("lceil" text "⌈" nil) ("lfloor" text "⌊" nil) ("ulcorn" text "⌜" nil) ("dlcorn" text "⌞" nil) ("gnap" text "" nil) ("gne" text "≩" nil) ("gnE" text "≩" nil) ("gnsim" text "⋧" nil) ("gvnE" text "" nil) ("lnap" text "" nil) ("lnE" text "≨" nil) ("lne" text "≨" nil) ("lnsim" text "⋦" nil) ("lvnE" text "" nil) ("nap" text "≉" nil) ("ncong" text "≇" nil) ("nequiv" text "≢" nil) ("ngE" text "≱" nil) ("nge" text "" nil) ("nges" text "≱" nil) ("ngt" text "≯" nil) ("nle" text "" nil) ("nlE" text "≰" nil) ("nles" text "≰" nil) ("nlt" text "≮" nil) ("nltri" text "⋪" nil) ("nltrie" text "⋬" nil) ("nmid" text "∤" nil) ("npar" text "∦" nil) ("npr" text "⊀" nil) ("npre" text "" nil) ("nrtri" text "⋫" nil) ("nrtrie" text "⋭" nil) ("nsc" text "⊁" nil) ("nsce" text "" nil) ("nsim" text "≁" nil) ("nsime" text "≄" nil) ("nsmid" text "" nil) ("nspar" text "" nil) ("nsub" text "⊄" nil) ("nsube" text "⊈" nil) ("nsubE" text "⊈" nil) ("nsup" text "⊅" nil) ("nsupE" text "⊉" nil) ("nsupe" text "⊉" nil) ("nvdash" text "⊬" nil) ("nvDash" text "⊭" nil) ("nVDash" text "⊯" nil) ("nVdash" text "⊮" nil) ("prnap" text "⋨" nil) ("prnE" text "" nil) ("prnsim" text "⋨" nil) ("scnap" text "⋩" nil) ("scnE" text "" nil) ("scnsim" text "⋩" nil) ("subne" text "⊊" nil) ("subnE" text "⊊" nil) ("supne" text "⊋" nil) ("supnE" text "⊋" nil) ("vsubnE" text "" nil) ("vsubne" text "" nil) ("vsupne" text "" nil) ("vsupnE" text "" nil) ("ang" text "∠" nil) ("angmsd" text "∡" nil) ("beth" text "ℶ" nil) ("bprime" text "‵" nil) ("comp" text "∁" nil) ("daleth" text "ℸ" nil) ("ell" text "ℓ" nil) ("empty" text "" nil) ("gimel" text "ℷ" nil) ("image" text "ℑ" nil) ("inodot" text "ı" nil) ("nexist" text "∄" nil) ("oS" text "" nil) ("planck" text "ℏ" nil) ("real" text "ℜ" nil) ("sbsol" text "﹨" nil) ("weierp" text "℘" nil) ("ape" text "≊" nil) ("asymp" text "≍" nil) ("bcong" text "≌" nil) ("bepsi" text "" nil) ("bowtie" text "⋈" nil) ("bsim" text "∽" nil) ("bsime" text "⋍" nil) ("bump" text "≎" nil) ("bumpe" text "≏" nil) ("cire" text "≗" nil) ("colone" text "≔" nil) ("cuepr" text "⋞" nil) ("cuesc" text "⋟" nil) ("cupre" text "≼" nil) ("dashv" text "⊣" nil) ("ecir" text "≖" nil) ("ecolon" text "≕" nil) ("eDot" text "≑" nil) ("esdot" text "≐" nil) ("efDot" text "≒" nil) ("egs" text "⋝" nil) ("els" text "⋜" nil) ("erDot" text "≓" nil) ("fork" text "⋔" nil) ("frown" text "⌢" nil) ("gap" text "≳" nil) ("gsdot" text "⋗" nil) ("gE" text "≧" nil) ("gel" text "⋛" nil) ("gEl" text "⋛" nil) ("ges" text "" nil) ("Gg" text "⋙" nil) ("gl" text "≷" nil) ("gsim" text "≳" nil) ("Gt" text "≫" nil) ("lap" text "≲" nil) ("ldot" text "⋖" nil) ("lE" text "≦" nil) ("lEg" text "⋚" nil) ("leg" text "⋚" nil) ("les" text "" nil) ("lg" text "≶" nil) ("Ll" text "⋘" nil) ("lsim" text "≲" nil) ("Lt" text "≪" nil) ("ltrie" text "⊴" nil) ("mid" text "∣" nil) ("models" text "⊧" nil) ("pr" text "≺" nil) ("prap" text "≾" nil) ("pre" text "≼" nil) ("prsim" text "≾" nil) ("rtrie" text "⊵" nil) ("sc" text "≻" nil) ("scap" text "≿" nil) ("sccue" text "≽" nil) ("sce" text "≽" nil) ("scsim" text "≿" nil) ("sfrown" text "" nil) ("smid" text "" nil) ("smile" text "⌣" nil) ("spar" text "" nil) ("sqsub" text "⊏" nil) ("sqsube" text "⊑" nil) ("sqsup" text "⊐" nil) ("sqsupe" text "⊒" nil) ("ssmile" text "" nil) ("Sub" text "⋐" nil) ("subE" text "⊆" nil) ("Sup" text "⋑" nil) ("supE" text "⊇" nil) ("thkap" text "" nil) ("thksim" text "" nil) ("trie" text "≜" nil) ("twixt" text "≬" nil) ("vdash" text "⊢" nil) ("Vdash" text "⊩" nil) ("vDash" text "⊨" nil) ("veebar" text "⊻" nil) ("vltri" text "⊲" nil) ("vprop" text "∝" nil) ("vrtri" text "⊳" nil) ("Vvdash" text "⊪" nil) ("boxh" text "─" nil) ("boxv" text "│" nil) ("boxur" text "└" nil) ("boxul" text "┘" nil) ("boxdl" text "┐" nil) ("boxdr" text "┌" nil) ("boxvr" text "├" nil) ("boxhu" text "┴" nil) ("boxvl" text "┤" nil) ("boxhd" text "┬" nil) ("boxvh" text "┼" nil) ("boxvR" text "╞" nil) ("boxhU" text "╧" nil) ("boxvL" text "╡" nil) ("boxhD" text "╤" nil) ("boxvH" text "╪" nil) ("boxH" text "═" nil) ("boxV" text "║" nil) ("boxUR" text "╘" nil) ("boxUL" text "╛" nil) ("boxDL" text "╕" nil) ("boxDR" text "╒" nil) ("boxVR" text "╟" nil) ("boxHU" text "╨" nil) ("boxVL" text "╢" nil) ("boxHD" text "╥" nil) ("boxVH" text "╫" nil) ("boxVr" text "╠" nil) ("boxHu" text "╩" nil) ("boxVl" text "╣" nil) ("boxHd" text "╦" nil) ("boxVh" text "╬" nil) ("boxuR" text "╙" nil) ("boxUl" text "╜" nil) ("boxdL" text "╖" nil) ("boxDr" text "╓" nil) ("boxUr" text "╚" nil) ("boxuL" text "╝" nil) ("boxDl" text "╗" nil) ("boxdR" text "╔" nil) ("acy" text "а" nil) ("Acy" text "А" nil) ("bcy" text "б" nil) ("Bcy" text "Б" nil) ("vcy" text "в" nil) ("Vcy" text "В" nil) ("gcy" text "г" nil) ("Gcy" text "Г" nil) ("dcy" text "д" nil) ("Dcy" text "Д" nil) ("iecy" text "е" nil) ("IEcy" text "Е" nil) ("iocy" text "ё" nil) ("IOcy" text "Ё" nil) ("zhcy" text "ж" nil) ("ZHcy" text "Ж" nil) ("zcy" text "з" nil) ("Zcy" text "З" nil) ("icy" text "и" nil) ("Icy" text "И" nil) ("jcy" text "й" nil) ("Jcy" text "Й" nil) ("kcy" text "к" nil) ("Kcy" text "К" nil) ("lcy" text "л" nil) ("Lcy" text "Л" nil) ("mcy" text "м" nil) ("Mcy" text "М" nil) ("ncy" text "н" nil) ("Ncy" text "Н" nil) ("ocy" text "о" nil) ("Ocy" text "О" nil) ("pcy" text "п" nil) ("Pcy" text "П" nil) ("rcy" text "р" nil) ("Rcy" text "Р" nil) ("scy" text "с" nil) ("Scy" text "С" nil) ("tcy" text "т" nil) ("Tcy" text "Т" nil) ("ucy" text "у" nil) ("Ucy" text "У" nil) ("fcy" text "ф" nil) ("Fcy" text "Ф" nil) ("khcy" text "х" nil) ("KHcy" text "Х" nil) ("tscy" text "ц" nil) ("TScy" text "Ц" nil) ("chcy" text "ч" nil) ("CHcy" text "Ч" nil) ("shcy" text "ш" nil) ("SHcy" text "Ш" nil) ("shchcy" text "щ" nil) ("SHCHcy" text "Щ" nil) ("hardcy" text "ъ" nil) ("HARDcy" text "Ъ" nil) ("ycy" text "ы" nil) ("Ycy" text "Ы" nil) ("softcy" text "ь" nil) ("SOFTcy" text "Ь" nil) ("ecy" text "э" nil) ("Ecy" text "Э" nil) ("yucy" text "ю" nil) ("YUcy" text "Ю" nil) ("yacy" text "я" nil) ("YAcy" text "Я" nil) ("numero" text "№" nil) ("djcy" text "ђ" nil) ("DJcy" text "Ђ" nil) ("gjcy" text "ѓ" nil) ("GJcy" text "Ѓ" nil) ("jukcy" text "є" nil) ("Jukcy" text "Є" nil) ("dscy" text "ѕ" nil) ("DScy" text "Ѕ" nil) ("iukcy" text "і" nil) ("Iukcy" text "І" nil) ("yicy" text "ї" nil) ("YIcy" text "Ї" nil) ("jsercy" text "ј" nil) ("Jsercy" text "Ј" nil) ("ljcy" text "љ" nil) ("LJcy" text "Љ" nil) ("njcy" text "њ" nil) ("NJcy" text "Њ" nil) ("tshcy" text "ћ" nil) ("TSHcy" text "Ћ" nil) ("kjcy" text "ќ" nil) ("KJcy" text "Ќ" nil) ("ubrcy" text "ў" nil) ("Ubrcy" text "Ў" nil) ("dzcy" text "џ" nil) ("DZcy" text "Џ" nil) ("acute" text "´" nil) ("breve" text "˘" nil) ("caron" text "ˇ" nil) ("cedil" text "¸" nil) ("circ" text "∘" nil) ("dblac" text "˝" nil) ("die" text "¨" nil) ("dot" text "˙" nil) ("grave" text "`" nil) ("macr" text "¯" nil) ("ogon" text "˛" nil) ("ring" text "˚" nil) ("tilde" text "~" nil) ("uml" text "¨" nil) ("agr" text "α" nil) ("Agr" text "Α" nil) ("bgr" text "β" nil) ("Bgr" text "Β" nil) ("ggr" text "γ" nil) ("Ggr" text "Γ" nil) ("dgr" text "δ" nil) ("Dgr" text "Δ" nil) ("egr" text "ε" nil) ("Egr" text "Ε" nil) ("zgr" text "ζ" nil) ("Zgr" text "Ζ" nil) ("eegr" text "η" nil) ("EEgr" text "Η" nil) ("thgr" text "θ" nil) ("THgr" text "Θ" nil) ("igr" text "ι" nil) ("Igr" text "Ι" nil) ("kgr" text "κ" nil) ("Kgr" text "Κ" nil) ("lgr" text "λ" nil) ("Lgr" text "Λ" nil) ("mgr" text "μ" nil) ("Mgr" text "Μ" nil) ("ngr" text "ν" nil) ("Ngr" text "Ν" nil) ("xgr" text "ξ" nil) ("Xgr" text "Ξ" nil) ("ogr" text "ο" nil) ("Ogr" text "Ο" nil) ("pgr" text "π" nil) ("Pgr" text "Π" nil) ("rgr" text "ρ" nil) ("Rgr" text "Ρ" nil) ("sgr" text "σ" nil) ("Sgr" text "Σ" nil) ("sfgr" text "ς" nil) ("tgr" text "τ" nil) ("Tgr" text "Τ" nil) ("ugr" text "υ" nil) ("Ugr" text "Υ" nil) ("phgr" text "φ" nil) ("PHgr" text "Φ" nil) ("khgr" text "χ" nil) ("KHgr" text "Χ" nil) ("psgr" text "ψ" nil) ("PSgr" text "Ψ" nil) ("ohgr" text "ω" nil) ("OHgr" text "Ω" nil) ("aacgr" text "ά" nil) ("Aacgr" text "Ά" nil) ("eacgr" text "έ" nil) ("Eacgr" text "Έ" nil) ("eeacgr" text "ή" nil) ("EEacgr" text "Ή" nil) ("idigr" text "ϊ" nil) ("Idigr" text "Ϊ" nil) ("iacgr" text "ί" nil) ("Iacgr" text "Ί" nil) ("idiagr" text "ΐ" nil) ("oacgr" text "ό" nil) ("Oacgr" text "Ό" nil) ("udigr" text "ϋ" nil) ("Udigr" text "Ϋ" nil) ("uacgr" text "ύ" nil) ("Uacgr" text "Ύ" nil) ("udiagr" text "ΰ" nil) ("ohacgr" text "ώ" nil) ("OHacgr" text "Ώ" nil) ("alpha" text "α" nil) ("beta" text "β" nil) ("gamma" text "γ" nil) ("Gamma" text "Γ" nil) ("gammad" text "Ϝ" nil) ("delta" text "δ" nil) ("Delta" text "Δ" nil) ("epsi" text "∊" nil) ("epsiv" text "ε" nil) ("epsis" text "∊" nil) ("zeta" text "ζ" nil) ("eta" text "η" nil) ("thetas" text "θ" nil) ("Theta" text "Θ" nil) ("thetav" text "ϑ" nil) ("iota" text "ι" nil) ("kappa" text "κ" nil) ("kappav" text "ϰ" nil) ("lambda" text "λ" nil) ("Lambda" text "Λ" nil) ("mu" text "μ" nil) ("nu" text "ν" nil) ("xi" text "ξ" nil) ("Xi" text "Ξ" nil) ("pi" text "π" nil) ("piv" text "ϖ" nil) ("Pi" text "Π" nil) ("rho" text "ρ" nil) ("rhov" text "ϱ" nil) ("sigma" text "σ" nil) ("Sigma" text "Σ" nil) ("sigmav" text "ς" nil) ("tau" text "τ" nil) ("upsi" text "υ" nil) ("Upsi" text "ϒ" nil) ("phis" text "φ" nil) ("Phi" text "Φ" nil) ("phiv" text "ϕ" nil) ("chi" text "χ" nil) ("psi" text "ψ" nil) ("Psi" text "Ψ" nil) ("omega" text "ω" nil) ("Omega" text "Ω" nil) ("b.alpha" text "α" nil) ("b.beta" text "β" nil) ("b.gamma" text "γ" nil) ("b.Gamma" text "Γ" nil) ("b.gammad" text "Ϝ" nil) ("b.delta" text "δ" nil) ("b.Delta" text "Δ" nil) ("b.epsi" text "ε" nil) ("b.epsiv" text "ε" nil) ("b.epsis" text "ε" nil) ("b.zeta" text "ζ" nil) ("b.eta" text "η" nil) ("b.thetas" text "θ" nil) ("b.Theta" text "Θ" nil) ("b.thetav" text "ϑ" nil) ("b.iota" text "ι" nil) ("b.kappa" text "κ" nil) ("b.kappav" text "ϰ" nil) ("b.lambda" text "λ" nil) ("b.Lambda" text "Λ" nil) ("b.mu" text "μ" nil) ("b.nu" text "ν" nil) ("b.xi" text "ξ" nil) ("b.Xi" text "Ξ" nil) ("b.pi" text "π" nil) ("b.Pi" text "Π" nil) ("b.piv" text "ϖ" nil) ("b.rho" text "ρ" nil) ("b.rhov" text "ϱ" nil) ("b.sigma" text "σ" nil) ("b.Sigma" text "Σ" nil) ("b.sigmav" text "ς" nil) ("b.tau" text "τ" nil) ("b.upsi" text "υ" nil) ("b.Upsi" text "ϒ" nil) ("b.phis" text "φ" nil) ("b.Phi" text "Φ" nil) ("b.phiv" text "ϕ" nil) ("b.chi" text "χ" nil) ("b.psi" text "ψ" nil) ("b.Psi" text "Ψ" nil) ("b.omega" text "ω" nil) ("b.Omega" text "Ω" nil) ("aacute" text "á" nil) ("Aacute" text "Á" nil) ("acirc" text "â" nil) ("Acirc" text "Â" nil) ("agrave" text "à" nil) ("Agrave" text "À" nil) ("aring" text "å" nil) ("Aring" text "Å" nil) ("atilde" text "ã" nil) ("Atilde" text "Ã" nil) ("auml" text "ä" nil) ("Auml" text "Ä" nil) ("aelig" text "æ" nil) ("AElig" text "Æ" nil) ("ccedil" text "ç" nil) ("Ccedil" text "Ç" nil) ("eth" text "Ð" nil) ("ETH" text "ð" nil) ("eacute" text "é" nil) ("Eacute" text "É" nil) ("ecirc" text "ê" nil) ("Ecirc" text "Ê" nil) ("egrave" text "è" nil) ("Egrave" text "È" nil) ("euml" text "ë" nil) ("Euml" text "Ë" nil) ("iacute" text "í" nil) ("Iacute" text "Í" nil) ("icirc" text "î" nil) ("Icirc" text "Î" nil) ("igrave" text "ì" nil) ("Igrave" text "Ì" nil) ("iuml" text "ï" nil) ("Iuml" text "Ï" nil) ("ntilde" text "ñ" nil) ("Ntilde" text "Ñ" nil) ("oacute" text "ó" nil) ("Oacute" text "Ó" nil) ("ocirc" text "ô" nil) ("Ocirc" text "Ô" nil) ("ograve" text "ò" nil) ("Ograve" text "Ò" nil) ("oslash" text "⊘" nil) ("Oslash" text "Ø" nil) ("otilde" text "õ" nil) ("Otilde" text "Õ" nil) ("ouml" text "ö" nil) ("Ouml" text "Ö" nil) ("szlig" text "ß" nil) ("thorn" text "þ" nil) ("THORN" text "Þ" nil) ("uacute" text "ú" nil) ("Uacute" text "Ú" nil) ("ucirc" text "Û" nil) ("Ucirc" text "û" nil) ("ugrave" text "ù" nil) ("Ugrave" text "Ù" nil) ("uuml" text "ü" nil) ("Uuml" text "Ü" nil) ("yacute" text "ý" nil) ("Yacute" text "Ý" nil) ("yuml" text "ÿ" nil) ("abreve" text "ă" nil) ("Abreve" text "Ă" nil) ("amacr" text "ā" nil) ("Amacr" text "Ā" nil) ("aogon" text "ą" nil) ("Aogon" text "Ą" nil) ("cacute" text "ć" nil) ("Cacute" text "Ć" nil) ("ccaron" text "č" nil) ("Ccaron" text "Č" nil) ("ccirc" text "ĉ" nil) ("Ccirc" text "Ĉ" nil) ("cdot" text "⋅" nil) ("Cdot" text "Ċ" nil) ("dcaron" text "ď" nil) ("Dcaron" text "Ď" nil) ("dstrok" text "đ" nil) ("Dstrok" text "Đ" nil) ("ecaron" text "ě" nil) ("Ecaron" text "Ě" nil) ("edot" text "ė" nil) ("Edot" text "Ė" nil) ("emacr" text "ē" nil) ("Emacr" text "Ē" nil) ("eogon" text "ę" nil) ("Eogon" text "Ę" nil) ("gacute" text "ǵ" nil) ("gbreve" text "ğ" nil) ("Gbreve" text "Ğ" nil) ("Gcedil" text "Ģ" nil) ("gcirc" text "ĝ" nil) ("Gcirc" text "Ĝ" nil) ("gdot" text "ġ" nil) ("Gdot" text "Ġ" nil) ("hcirc" text "ĥ" nil) ("Hcirc" text "Ĥ" nil) ("hstrok" text "ħ" nil) ("Hstrok" text "Ħ" nil) ("Idot" text "İ" nil) ("Imacr" text "Ī" nil) ("imacr" text "ī" nil) ("ijlig" text "ij" nil) ("IJlig" text "IJ" nil) ("iogon" text "į" nil) ("Iogon" text "Į" nil) ("itilde" text "ĩ" nil) ("Itilde" text "Ĩ" nil) ("jcirc" text "ĵ" nil) ("Jcirc" text "Ĵ" nil) ("kcedil" text "ķ" nil) ("Kcedil" text "Ķ" nil) ("kgreen" text "ĸ" nil) ("lacute" text "ĺ" nil) ("Lacute" text "Ĺ" nil) ("lcaron" text "ľ" nil) ("Lcaron" text "Ľ" nil) ("lcedil" text "ļ" nil) ("Lcedil" text "Ļ" nil) ("lmidot" text "ŀ" nil) ("Lmidot" text "Ŀ" nil) ("lstrok" text "ł" nil) ("Lstrok" text "Ł" nil) ("nacute" text "ń" nil) ("Nacute" text "Ń" nil) ("eng" text "ŋ" nil) ("ENG" text "Ŋ" nil) ("napos" text "ʼn" nil) ("ncaron" text "ň" nil) ("Ncaron" text "Ň" nil) ("ncedil" text "ņ" nil) ("Ncedil" text "Ņ" nil) ("odblac" text "ő" nil) ("Odblac" text "Ő" nil) ("Omacr" text "Ō" nil) ("omacr" text "ō" nil) ("oelig" text "œ" nil) ("OElig" text "Œ" nil) ("racute" text "ŕ" nil) ("Racute" text "Ŕ" nil) ("rcaron" text "ř" nil) ("Rcaron" text "Ř" nil) ("rcedil" text "ŗ" nil) ("Rcedil" text "Ŗ" nil) ("sacute" text "ś" nil) ("Sacute" text "Ś" nil) ("scaron" text "š" nil) ("Scaron" text "Š" nil) ("scedil" text "ş" nil) ("Scedil" text "Ş" nil) ("scirc" text "ŝ" nil) ("Scirc" text "Ŝ" nil) ("tcaron" text "ť" nil) ("Tcaron" text "Ť" nil) ("tcedil" text "ţ" nil) ("Tcedil" text "Ţ" nil) ("tstrok" text "ŧ" nil) ("Tstrok" text "Ŧ" nil) ("ubreve" text "ŭ" nil) ("Ubreve" text "Ŭ" nil) ("udblac" text "ű" nil) ("Udblac" text "Ű" nil) ("umacr" text "ū" nil) ("Umacr" text "Ū" nil) ("uogon" text "ų" nil) ("Uogon" text "Ų" nil) ("uring" text "ů" nil) ("Uring" text "Ů" nil) ("utilde" text "ũ" nil) ("Utilde" text "Ũ" nil) ("wcirc" text "ŵ" nil) ("Wcirc" text "Ŵ" nil) ("ycirc" text "ŷ" nil) ("Ycirc" text "Ŷ" nil) ("Yuml" text "Ÿ" nil) ("zacute" text "ź" nil) ("Zacute" text "Ź" nil) ("zcaron" text "ž" nil) ("Zcaron" text "Ž" nil) ("zdot" text "ż" nil) ("Zdot" text "Ż" nil) ("half" text "½" nil) ("frac12" text "½" nil) ("frac14" text "¼" nil) ("frac34" text "¾" nil) ("frac18" text "⅛" nil) ("frac38" text "⅜" nil) ("frac58" text "⅝" nil) ("frac78" text "⅞" nil) ("sup1" text "¹" nil) ("sup2" text "²" nil) ("sup3" text "³" nil) ("plus" text "+" nil) ("plusmn" text "±" nil) ("equals" text "=" nil) ("gt" text ">" nil) ("divide" text "÷" nil) ("times" text "×" nil) ("curren" text "¤" nil) ("pound" text "£" nil) ("dollar" text "$" nil) ("cent" text "¢" nil) ("yen" text "¥" nil) ("num" text "#" nil) ("percnt" text "%" nil) ("ast" text "∗" nil) ("commat" text "@" nil) ("lsqb" text "[" nil) ("bsol" text "\" nil) ("rsqb" text "]" nil) ("lcub" text "{" nil) ("horbar" text "―" nil) ("verbar" text "|" nil) ("rcub" text "}" nil) ("micro" text "µ" nil) ("ohm" text "Ω" nil) ("deg" text "°" nil) ("ordm" text "º" nil) ("ordf" text "ª" nil) ("sect" text "§" nil) ("para" text "¶" nil) ("middot" text "·" nil) ("larr" text "←" nil) ("rarr" text "→" nil) ("uarr" text "↑" nil) ("darr" text "↓" nil) ("copy" text "©" nil) ("reg" text "¯" nil) ("trade" text "™" nil) ("brvbar" text "¦" nil) ("not" text "¬" nil) ("sung" text "♩" nil) ("excl" text "!" nil) ("iexcl" text "¡" nil) ("quot" text """ nil) ("apos" text "'" nil) ("lpar" text "(" nil) ("rpar" text ")" nil) ("comma" text "," nil) ("lowbar" text "_" nil) ("hyphen" text "" nil) ("period" text "." nil) ("sol" text "/" nil) ("colon" text ":" nil) ("semi" text ";" nil) ("quest" text "?" nil) ("iquest" text "¿" nil) ("laquo" text "«" nil) ("raquo" text "»" nil) ("lsquo" text "‘" nil) ("rsquo" text "’" nil) ("ldquo" text "“" nil) ("rdquo" text "”" nil) ("nbsp" text " " nil) ("shy" text "­" nil) ("emsp" text " " nil) ("ensp" text " " nil) ("emsp13" text " " nil) ("emsp14" text " " nil) ("numsp" text " " nil) ("puncsp" text " " nil) ("thinsp" text " " nil) ("hairsp" text " " nil) ("mdash" text "—" nil) ("ndash" text "–" nil) ("dash" text "‐" nil) ("blank" text "␣" nil) ("hellip" text "…" nil) ("nldr" text "‥" nil) ("frac13" text "⅓" nil) ("frac23" text "⅔" nil) ("frac15" text "⅕" nil) ("frac25" text "⅖" nil) ("frac35" text "⅗" nil) ("frac45" text "⅘" nil) ("frac16" text "⅙" nil) ("frac56" text "⅚" nil) ("incare" text "℅" nil) ("block" text "█" nil) ("uhblk" text "▀" nil) ("lhblk" text "▄" nil) ("blk14" text "░" nil) ("blk12" text "▒" nil) ("blk34" text "▓" nil) ("marker" text "▮" nil) ("cir" text "○" nil) ("squ" text "□" nil) ("rect" text "▭" nil) ("utri" text "▵" nil) ("dtri" text "▿" nil) ("star" text "⋆" nil) ("bull" text "•" nil) ("squf" text "▪" nil) ("utrif" text "▴" nil) ("dtrif" text "▾" nil) ("ltrif" text "◂" nil) ("rtrif" text "▸" nil) ("clubs" text "♣" nil) ("diams" text "♦" nil) ("hearts" text "♥" nil) ("spades" text "♠" nil) ("malt" text "✠" nil) ("dagger" text "†" nil) ("Dagger" text "‡" nil) ("check" text "✓" nil) ("cross" text "✗" nil) ("sharp" text "♯" nil) ("flat" text "♭" nil) ("male" text "♂" nil) ("female" text "♀" nil) ("phone" text "☎" nil) ("telrec" text "⌕" nil) ("copysr" text "℗" nil) ("caret" text "⁁" nil) ("lsquor" text "‚" nil) ("ldquor" text "„" nil) ("fflig" text "ff" nil) ("filig" text "fi" nil) ("ffilig" text "ffi" nil) ("ffllig" text "ffl" nil) ("fllig" text "fl" nil) ("mldr" text "…" nil) ("rdquor" text "“" nil) ("rsquor" text "‘" nil) ("vellip" text "⋮" nil) ("hybull" text "⁃" nil) ("loz" text "◊" nil) ("lozf" text "✦" nil) ("ltri" text "◃" nil) ("rtri" text "▹" nil) ("starf" text "★" nil) ("natur" text "♮" nil) ("rx" text "℞" nil) ("sext" text "✶" nil) ("target" text "⌖" nil) ("dlcrop" text "⌍" nil) ("drcrop" text "⌌" nil) ("ulcrop" text "⌏" nil) ("urcrop" text "⌎" nil) ("aleph" text "ℵ" nil) ("and" text "∧" nil) ("ang90" text "∟" nil) ("angsph" text "∢" nil) ("ap" text "≈" nil) ("becaus" text "∵" nil) ("bottom" text "⊥" nil) ("cap" text "∩" nil) ("cong" text "≅" nil) ("conint" text "∮" nil) ("cup" text "∪" nil) ("equiv" text "≡" nil) ("exist" text "∃" nil) ("forall" text "∀" nil) ("fnof" text "ƒ" nil) ("ge" text "≥" nil) ("iff" text "" nil) ("infin" text "∞" nil) ("int" text "∫" nil) ("isin" text "∊" nil) ("lang" text "〈" nil) ("lArr" text "⇐" nil) ("le" text "≤" nil) ("minus" text "−" nil) ("mnplus" text "∓" nil) ("nabla" text "∇" nil) ("ne" text "≠" nil) ("ni" text "∍" nil) ("or" text "∨" nil) ("par" text "∥" nil) ("part" text "∂" nil) ("permil" text "‰" nil) ("perp" text "⊥" nil) ("prime" text "′" nil) ("Prime" text "″" nil) ("prop" text "∝" nil) ("radic" text "√" nil) ("rang" text "〉" nil) ("rArr" text "⇒" nil) ("sim" text "∼" nil) ("sime" text "≃" nil) ("square" text "□" nil) ("sub" text "⊂" nil) ("sube" text "⊆" nil) ("sup" text "⊃" nil) ("supe" text "⊇" nil) ("there4" text "∴" nil) ("Verbar" text "‖" nil) ("angst" text "Å" nil) ("bernou" text "ℬ" nil) ("compfn" text "∘" nil) ("Dot" text "̈" nil) ("DotDot" text "⃜" nil) ("hamilt" text "ℋ" nil) ("lagran" text "ℒ" nil) ("lowast" text "∗" nil) ("notin" text "∉" nil) ("order" text "ℴ" nil) ("phmmat" text "ℳ" nil) ("tdot" text "⃛" nil) ("tprime" text "‴" nil) ("wedgeq" text "≙" nil)) (nil) nil discover-2.1.2/doctools/docbook.ced0000644002342100234210000134531510266266026015745 0ustar perepere;;; This file was created by psgml on Tue Jan 8 16:32:29 2002 (sgml-saved-dtd-version 7) ("/usr/share/sgml/docbook/dtd/xml/4.1.2/dbgenent.mod" "/usr/share/sgml/docbook/dtd/xml/4.1.2/dbhierx.mod" "/usr/share/sgml/docbook/dtd/xml/4.1.2/calstblx.dtd" "/usr/share/sgml/docbook/dtd/xml/4.1.2/dbpoolx.mod" "/usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOtech.ent" "/usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOpub.ent" "/usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOnum.ent" "/usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOlat2.ent" "/usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOlat1.ent" "/usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOgrk4.ent" "/usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOgrk3.ent" "/usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOgrk2.ent" "/usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOgrk1.ent" "/usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOdia.ent" "/usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOcyr2.ent" "/usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOcyr1.ent" "/usr/share/sgml/entities/xml-iso-entities-8879.1986/ISObox.ent" "/usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOamsr.ent" "/usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOamso.ent" "/usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOamsn.ent" "/usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOamsc.ent" "/usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOamsb.ent" "/usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOamsa.ent" "/usr/share/sgml/docbook/dtd/xml/4.1.2/dbcentx.mod" "/usr/share/sgml/docbook/dtd/xml/4.1.2/dbnotnx.mod" "/usr/share/sgml/docbook/dtd/xml/4.1.2/docbookx.dtd" "/cvs/progeny/power-on/configlets/configlet/doctools/progeny.ent") (nil ("progeny-entity" text (nil "../../doctools/progeny.ent" . "/cvs/progeny/power-on/configlets/configlet/documentation/book/") nil) ("dbnotn.module" text "INCLUDE" nil) ("dbnotn" text ("-//OASIS//ENTITIES DocBook XML Notations V4.1.2//EN" "dbnotnx.mod" . "/usr/share/sgml/docbook/dtd/xml/4.1.2/") nil) ("local.notation.class" text "" nil) ("notation.class" text "BMP| CGM-CHAR | CGM-BINARY | CGM-CLEAR | DITROFF | DVI | EPS | EQN | FAX | GIF | GIF87a | GIF89a | JPG | JPEG | IGES | PCX | PIC | PNG | PS | SGML | TBL | TEX | TIFF | WMF | WPG | linespecific " nil) ("dbcent.module" text "INCLUDE" nil) ("dbcent" text ("-//OASIS//ENTITIES DocBook XML Character Entities V4.1.2//EN" "dbcentx.mod" . "/usr/share/sgml/docbook/dtd/xml/4.1.2/") nil) ("ISOamsa.module" text "INCLUDE" nil) ("ISOamsa" text ("ISO 8879:1986//ENTITIES Added Math Symbols: Arrow Relations//EN//XML" "/usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOamsa.ent" . "/usr/share/sgml/docbook/dtd/xml/4.1.2/") nil) ("ISOamsb.module" text "INCLUDE" nil) ("ISOamsb" text ("ISO 8879:1986//ENTITIES Added Math Symbols: Binary Operators//EN//XML" "/usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOamsb.ent" . "/usr/share/sgml/docbook/dtd/xml/4.1.2/") nil) ("ISOamsc.module" text "INCLUDE" nil) ("ISOamsc" text ("ISO 8879:1986//ENTITIES Added Math Symbols: Delimiters//EN//XML" "/usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOamsc.ent" . "/usr/share/sgml/docbook/dtd/xml/4.1.2/") nil) ("ISOamsn.module" text "INCLUDE" nil) ("ISOamsn" text ("ISO 8879:1986//ENTITIES Added Math Symbols: Negated Relations//EN//XML" "/usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOamsn.ent" . "/usr/share/sgml/docbook/dtd/xml/4.1.2/") nil) ("ISOamso.module" text "INCLUDE" nil) ("ISOamso" text ("ISO 8879:1986//ENTITIES Added Math Symbols: Ordinary//EN//XML" "/usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOamso.ent" . "/usr/share/sgml/docbook/dtd/xml/4.1.2/") nil) ("ISOamsr.module" text "INCLUDE" nil) ("ISOamsr" text ("ISO 8879:1986//ENTITIES Added Math Symbols: Relations//EN//XML" "/usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOamsr.ent" . "/usr/share/sgml/docbook/dtd/xml/4.1.2/") nil) ("ISObox.module" text "INCLUDE" nil) ("ISObox" text ("ISO 8879:1986//ENTITIES Box and Line Drawing//EN//XML" "/usr/share/sgml/entities/xml-iso-entities-8879.1986/ISObox.ent" . "/usr/share/sgml/docbook/dtd/xml/4.1.2/") nil) ("ISOcyr1.module" text "INCLUDE" nil) ("ISOcyr1" text ("ISO 8879:1986//ENTITIES Russian Cyrillic//EN//XML" "/usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOcyr1.ent" . "/usr/share/sgml/docbook/dtd/xml/4.1.2/") nil) ("ISOcyr2.module" text "INCLUDE" nil) ("ISOcyr2" text ("ISO 8879:1986//ENTITIES Non-Russian Cyrillic//EN//XML" "/usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOcyr2.ent" . "/usr/share/sgml/docbook/dtd/xml/4.1.2/") nil) ("ISOdia.module" text "INCLUDE" nil) ("ISOdia" text ("ISO 8879:1986//ENTITIES Diacritical Marks//EN//XML" "/usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOdia.ent" . "/usr/share/sgml/docbook/dtd/xml/4.1.2/") nil) ("ISOgrk1.module" text "INCLUDE" nil) ("ISOgrk1" text ("ISO 8879:1986//ENTITIES Greek Letters//EN//XML" "/usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOgrk1.ent" . "/usr/share/sgml/docbook/dtd/xml/4.1.2/") nil) ("ISOgrk2.module" text "INCLUDE" nil) ("ISOgrk2" text ("ISO 8879:1986//ENTITIES Monotoniko Greek//EN//XML" "/usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOgrk2.ent" . "/usr/share/sgml/docbook/dtd/xml/4.1.2/") nil) ("ISOgrk3.module" text "INCLUDE" nil) ("ISOgrk3" text ("ISO 8879:1986//ENTITIES Greek Symbols//EN//XML" "/usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOgrk3.ent" . "/usr/share/sgml/docbook/dtd/xml/4.1.2/") nil) ("ISOgrk4.module" text "INCLUDE" nil) ("ISOgrk4" text ("ISO 8879:1986//ENTITIES Alternative Greek Symbols//EN//XML" "/usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOgrk4.ent" . "/usr/share/sgml/docbook/dtd/xml/4.1.2/") nil) ("ISOlat1.module" text "INCLUDE" nil) ("ISOlat1" text ("ISO 8879:1986//ENTITIES Added Latin 1//EN//XML" "/usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOlat1.ent" . "/usr/share/sgml/docbook/dtd/xml/4.1.2/") nil) ("ISOlat2.module" text "INCLUDE" nil) ("ISOlat2" text ("ISO 8879:1986//ENTITIES Added Latin 2//EN//XML" "/usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOlat2.ent" . "/usr/share/sgml/docbook/dtd/xml/4.1.2/") nil) ("ISOnum.module" text "INCLUDE" nil) ("ISOnum" text ("ISO 8879:1986//ENTITIES Numeric and Special Graphic//EN//XML" "/usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOnum.ent" . "/usr/share/sgml/docbook/dtd/xml/4.1.2/") nil) ("ISOpub.module" text "INCLUDE" nil) ("ISOpub" text ("ISO 8879:1986//ENTITIES Publishing//EN//XML" "/usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOpub.ent" . "/usr/share/sgml/docbook/dtd/xml/4.1.2/") nil) ("ISOtech.module" text "INCLUDE" nil) ("ISOtech" text ("ISO 8879:1986//ENTITIES General Technical//EN//XML" "/usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOtech.ent" . "/usr/share/sgml/docbook/dtd/xml/4.1.2/") nil) ("dbpool.module" text "INCLUDE" nil) ("dbpool" text ("-//OASIS//ELEMENTS DocBook XML Information Pool V4.1.2//EN" "dbpoolx.mod" . "/usr/share/sgml/docbook/dtd/xml/4.1.2/") nil) ("yesorno.attvals" text "CDATA" nil) ("dbpool.redecl.module" text "IGNORE" nil) ("local.ndxterm.class" text "" nil) ("ndxterm.class" text "indexterm " nil) ("local.list.class" text "" nil) ("list.class" text "calloutlist|glosslist|itemizedlist|orderedlist|segmentedlist |simplelist|variablelist " nil) ("local.admon.class" text "" nil) ("admon.class" text "caution|important|note|tip|warning " nil) ("local.linespecific.class" text "" nil) ("linespecific.class" text "literallayout|programlisting|programlistingco|screen |screenco|screenshot " nil) ("local.method.synop.class" text "" nil) ("method.synop.class" text "constructorsynopsis |destructorsynopsis |methodsynopsis " nil) ("local.synop.class" text "" nil) ("synop.class" text "synopsis|cmdsynopsis|funcsynopsis |classsynopsis|fieldsynopsis |constructorsynopsis |destructorsynopsis |methodsynopsis " nil) ("local.para.class" text "" nil) ("para.class" text "formalpara|para|simpara " nil) ("local.informal.class" text "" nil) ("informal.class" text "address|blockquote |graphic|graphicco|mediaobject|mediaobjectco |informalequation |informalexample |informalfigure |informaltable " nil) ("local.formal.class" text "" nil) ("formal.class" text "equation|example|figure|table " nil) ("ebnf.block.hook" text "" nil) ("local.compound.class" text "" nil) ("compound.class" text "msgset|procedure|sidebar|qandaset " nil) ("local.genobj.class" text "" nil) ("genobj.class" text "anchor|bridgehead|remark|highlights " nil) ("local.descobj.class" text "" nil) ("descobj.class" text "abstract|authorblurb|epigraph " nil) ("local.xref.char.class" text "" nil) ("xref.char.class" text "footnoteref|xref " nil) ("local.gen.char.class" text "" nil) ("gen.char.class" text "abbrev|acronym|citation|citerefentry|citetitle|emphasis |firstterm|foreignphrase|glossterm|footnote|phrase |quote|trademark|wordasword " nil) ("local.link.char.class" text "" nil) ("link.char.class" text "link|olink|ulink " nil) ("ebnf.inline.hook" text "" nil) ("local.tech.char.class" text "" nil) ("tech.char.class" text "action|application |classname|methodname|interfacename|exceptionname |ooclass|oointerface|ooexception |command|computeroutput |database|email|envar|errorcode|errorname|errortype|filename |function|guibutton|guiicon|guilabel|guimenu|guimenuitem |guisubmenu|hardware|interface|keycap |keycode|keycombo|keysym|literal|constant|markup|medialabel |menuchoice|mousebutton|option|optional|parameter |prompt|property|replaceable|returnvalue|sgmltag|structfield |structname|symbol|systemitem|token|type|userinput|varname " nil) ("local.base.char.class" text "" nil) ("base.char.class" text "anchor " nil) ("local.docinfo.char.class" text "" nil) ("docinfo.char.class" text "author|authorinitials|corpauthor|modespec|othercredit |productname|productnumber|revhistory " nil) ("local.other.char.class" text "" nil) ("other.char.class" text "remark|subscript|superscript " nil) ("local.inlineobj.char.class" text "" nil) ("inlineobj.char.class" text "inlinegraphic|inlinemediaobject|inlineequation " nil) ("local.component.mix" text "" nil) ("component.mix" text "calloutlist|glosslist|itemizedlist|orderedlist|segmentedlist |simplelist|variablelist |caution|important|note|tip|warning |literallayout|programlisting|programlistingco|screen |screenco|screenshot |synopsis|cmdsynopsis|funcsynopsis |classsynopsis|fieldsynopsis |constructorsynopsis |destructorsynopsis |methodsynopsis |formalpara|para|simpara |address|blockquote |graphic|graphicco|mediaobject|mediaobjectco |informalequation |informalexample |informalfigure |informaltable |equation|example|figure|table |msgset|procedure|sidebar|qandaset |anchor|bridgehead|remark|highlights |abstract|authorblurb|epigraph |indexterm |beginpage " nil) ("local.sidebar.mix" text "" nil) ("sidebar.mix" text "calloutlist|glosslist|itemizedlist|orderedlist|segmentedlist |simplelist|variablelist |caution|important|note|tip|warning |literallayout|programlisting|programlistingco|screen |screenco|screenshot |synopsis|cmdsynopsis|funcsynopsis |classsynopsis|fieldsynopsis |constructorsynopsis |destructorsynopsis |methodsynopsis |formalpara|para|simpara |address|blockquote |graphic|graphicco|mediaobject|mediaobjectco |informalequation |informalexample |informalfigure |informaltable |equation|example|figure|table |procedure |anchor|bridgehead|remark|highlights |indexterm |beginpage " nil) ("local.qandaset.mix" text "" nil) ("qandaset.mix" text "calloutlist|glosslist|itemizedlist|orderedlist|segmentedlist |simplelist|variablelist |caution|important|note|tip|warning |literallayout|programlisting|programlistingco|screen |screenco|screenshot |synopsis|cmdsynopsis|funcsynopsis |classsynopsis|fieldsynopsis |constructorsynopsis |destructorsynopsis |methodsynopsis |formalpara|para|simpara |address|blockquote |graphic|graphicco|mediaobject|mediaobjectco |informalequation |informalexample |informalfigure |informaltable |equation|example|figure|table |procedure |anchor|bridgehead|remark|highlights |indexterm " nil) ("local.revdescription.mix" text "" nil) ("revdescription.mix" text "calloutlist|glosslist|itemizedlist|orderedlist|segmentedlist |simplelist|variablelist |caution|important|note|tip|warning |literallayout|programlisting|programlistingco|screen |screenco|screenshot |synopsis|cmdsynopsis|funcsynopsis |classsynopsis|fieldsynopsis |constructorsynopsis |destructorsynopsis |methodsynopsis |formalpara|para|simpara |address|blockquote |graphic|graphicco|mediaobject|mediaobjectco |informalequation |informalexample |informalfigure |informaltable |equation|example|figure|table |procedure |anchor|bridgehead|remark|highlights |indexterm " nil) ("local.footnote.mix" text "" nil) ("footnote.mix" text "calloutlist|glosslist|itemizedlist|orderedlist|segmentedlist |simplelist|variablelist |literallayout|programlisting|programlistingco|screen |screenco|screenshot |synopsis|cmdsynopsis|funcsynopsis |classsynopsis|fieldsynopsis |constructorsynopsis |destructorsynopsis |methodsynopsis |formalpara|para|simpara |address|blockquote |graphic|graphicco|mediaobject|mediaobjectco |informalequation |informalexample |informalfigure |informaltable " nil) ("local.example.mix" text "" nil) ("example.mix" text "calloutlist|glosslist|itemizedlist|orderedlist|segmentedlist |simplelist|variablelist |literallayout|programlisting|programlistingco|screen |screenco|screenshot |synopsis|cmdsynopsis|funcsynopsis |classsynopsis|fieldsynopsis |constructorsynopsis |destructorsynopsis |methodsynopsis |formalpara|para|simpara |address|blockquote |graphic|graphicco|mediaobject|mediaobjectco |informalequation |informalexample |informalfigure |informaltable |indexterm |beginpage " nil) ("local.highlights.mix" text "" nil) ("highlights.mix" text "calloutlist|glosslist|itemizedlist|orderedlist|segmentedlist |simplelist|variablelist |caution|important|note|tip|warning |formalpara|para|simpara |indexterm " nil) ("local.para.mix" text "" nil) ("para.mix" text "calloutlist|glosslist|itemizedlist|orderedlist|segmentedlist |simplelist|variablelist |caution|important|note|tip|warning |literallayout|programlisting|programlistingco|screen |screenco|screenshot |address|blockquote |graphic|graphicco|mediaobject|mediaobjectco |informalequation |informalexample |informalfigure |informaltable |equation|example|figure|table " nil) ("local.admon.mix" text "" nil) ("admon.mix" text "calloutlist|glosslist|itemizedlist|orderedlist|segmentedlist |simplelist|variablelist |literallayout|programlisting|programlistingco|screen |screenco|screenshot |synopsis|cmdsynopsis|funcsynopsis |classsynopsis|fieldsynopsis |constructorsynopsis |destructorsynopsis |methodsynopsis |formalpara|para|simpara |address|blockquote |graphic|graphicco|mediaobject|mediaobjectco |informalequation |informalexample |informalfigure |informaltable |equation|example|figure|table |procedure|sidebar |anchor|bridgehead|remark |indexterm |beginpage " nil) ("local.figure.mix" text "" nil) ("figure.mix" text "literallayout|programlisting|programlistingco|screen |screenco|screenshot |synopsis|cmdsynopsis|funcsynopsis |classsynopsis|fieldsynopsis |constructorsynopsis |destructorsynopsis |methodsynopsis |address|blockquote |graphic|graphicco|mediaobject|mediaobjectco |informalequation |informalexample |informalfigure |informaltable |indexterm |beginpage " nil) ("local.tabentry.mix" text "" nil) ("tabentry.mix" text "calloutlist|glosslist|itemizedlist|orderedlist|segmentedlist |simplelist|variablelist |caution|important|note|tip|warning |literallayout|programlisting|programlistingco|screen |screenco|screenshot |formalpara|para|simpara |graphic|mediaobject " nil) ("local.glossdef.mix" text "" nil) ("glossdef.mix" text "calloutlist|glosslist|itemizedlist|orderedlist|segmentedlist |simplelist|variablelist |literallayout|programlisting|programlistingco|screen |screenco|screenshot |synopsis|cmdsynopsis|funcsynopsis |classsynopsis|fieldsynopsis |constructorsynopsis |destructorsynopsis |methodsynopsis |formalpara|para|simpara |address|blockquote |graphic|graphicco|mediaobject|mediaobjectco |informalequation |informalexample |informalfigure |informaltable |equation|example|figure|table |remark |indexterm |beginpage " nil) ("local.legalnotice.mix" text "" nil) ("legalnotice.mix" text "calloutlist|glosslist|itemizedlist|orderedlist|segmentedlist |simplelist|variablelist |caution|important|note|tip|warning |literallayout|programlisting|programlistingco|screen |screenco|screenshot |formalpara|para|simpara |blockquote |indexterm |beginpage " nil) ("local.textobject.mix" text "" nil) ("textobject.mix" text "calloutlist|glosslist|itemizedlist|orderedlist|segmentedlist |simplelist|variablelist |caution|important|note|tip|warning |literallayout|programlisting|programlistingco|screen |screenco|screenshot |formalpara|para|simpara |blockquote " nil) ("local.mediaobject.mix" text "" nil) ("mediaobject.mix" text "videoobject|audioobject|imageobject " nil) ("forminlines.hook" text "" nil) ("local.para.char.mix" text "" nil) ("para.char.mix" text "#PCDATA |footnoteref|xref |abbrev|acronym|citation|citerefentry|citetitle|emphasis |firstterm|foreignphrase|glossterm|footnote|phrase |quote|trademark|wordasword |link|olink|ulink |action|application |classname|methodname|interfacename|exceptionname |ooclass|oointerface|ooexception |command|computeroutput |database|email|envar|errorcode|errorname|errortype|filename |function|guibutton|guiicon|guilabel|guimenu|guimenuitem |guisubmenu|hardware|interface|keycap |keycode|keycombo|keysym|literal|constant|markup|medialabel |menuchoice|mousebutton|option|optional|parameter |prompt|property|replaceable|returnvalue|sgmltag|structfield |structname|symbol|systemitem|token|type|userinput|varname |anchor |author|authorinitials|corpauthor|modespec|othercredit |productname|productnumber|revhistory |remark|subscript|superscript |inlinegraphic|inlinemediaobject|inlineequation |synopsis|cmdsynopsis|funcsynopsis |classsynopsis|fieldsynopsis |constructorsynopsis |destructorsynopsis |methodsynopsis |indexterm |beginpage " nil) ("local.title.char.mix" text "" nil) ("title.char.mix" text "#PCDATA |footnoteref|xref |abbrev|acronym|citation|citerefentry|citetitle|emphasis |firstterm|foreignphrase|glossterm|footnote|phrase |quote|trademark|wordasword |link|olink|ulink |action|application |classname|methodname|interfacename|exceptionname |ooclass|oointerface|ooexception |command|computeroutput |database|email|envar|errorcode|errorname|errortype|filename |function|guibutton|guiicon|guilabel|guimenu|guimenuitem |guisubmenu|hardware|interface|keycap |keycode|keycombo|keysym|literal|constant|markup|medialabel |menuchoice|mousebutton|option|optional|parameter |prompt|property|replaceable|returnvalue|sgmltag|structfield |structname|symbol|systemitem|token|type|userinput|varname |anchor |author|authorinitials|corpauthor|modespec|othercredit |productname|productnumber|revhistory |remark|subscript|superscript |inlinegraphic|inlinemediaobject|inlineequation |indexterm " nil) ("local.ndxterm.char.mix" text "" nil) ("ndxterm.char.mix" text "#PCDATA |footnoteref|xref |abbrev|acronym|citation|citerefentry|citetitle|emphasis |firstterm|foreignphrase|glossterm|footnote|phrase |quote|trademark|wordasword |link|olink|ulink |action|application |classname|methodname|interfacename|exceptionname |ooclass|oointerface|ooexception |command|computeroutput |database|email|envar|errorcode|errorname|errortype|filename |function|guibutton|guiicon|guilabel|guimenu|guimenuitem |guisubmenu|hardware|interface|keycap |keycode|keycombo|keysym|literal|constant|markup|medialabel |menuchoice|mousebutton|option|optional|parameter |prompt|property|replaceable|returnvalue|sgmltag|structfield |structname|symbol|systemitem|token|type|userinput|varname |anchor |author|authorinitials|corpauthor|modespec|othercredit |productname|productnumber|revhistory |remark|subscript|superscript |inlinegraphic|inlinemediaobject " nil) ("local.cptr.char.mix" text "" nil) ("cptr.char.mix" text "#PCDATA |link|olink|ulink |action|application |classname|methodname|interfacename|exceptionname |ooclass|oointerface|ooexception |command|computeroutput |database|email|envar|errorcode|errorname|errortype|filename |function|guibutton|guiicon|guilabel|guimenu|guimenuitem |guisubmenu|hardware|interface|keycap |keycode|keycombo|keysym|literal|constant|markup|medialabel |menuchoice|mousebutton|option|optional|parameter |prompt|property|replaceable|returnvalue|sgmltag|structfield |structname|symbol|systemitem|token|type|userinput|varname |anchor |remark|subscript|superscript |inlinegraphic|inlinemediaobject |indexterm |beginpage " nil) ("local.smallcptr.char.mix" text "" nil) ("smallcptr.char.mix" text "#PCDATA |replaceable |inlinegraphic|inlinemediaobject |indexterm |beginpage " nil) ("local.word.char.mix" text "" nil) ("word.char.mix" text "#PCDATA |acronym|emphasis|trademark |link|olink|ulink |anchor |remark|subscript|superscript |inlinegraphic|inlinemediaobject |indexterm |beginpage " nil) ("local.docinfo.char.mix" text "" nil) ("docinfo.char.mix" text "#PCDATA |link|olink|ulink |emphasis|trademark |replaceable |remark|subscript|superscript |inlinegraphic|inlinemediaobject |indexterm " nil) ("formalobject.title.content" text "title, titleabbrev?" nil) ("arch.attrib" text "arch CDATA #IMPLIED" nil) ("condition.attrib" text "condition CDATA #IMPLIED" nil) ("conformance.attrib" text "conformance NMTOKENS #IMPLIED" nil) ("os.attrib" text "os CDATA #IMPLIED" nil) ("revision.attrib" text "revision CDATA #IMPLIED" nil) ("security.attrib" text "security CDATA #IMPLIED" nil) ("userlevel.attrib" text "userlevel CDATA #IMPLIED" nil) ("vendor.attrib" text "vendor CDATA #IMPLIED" nil) ("local.effectivity.attrib" text "" nil) ("effectivity.attrib" text "arch CDATA #IMPLIED condition CDATA #IMPLIED conformance NMTOKENS #IMPLIED os CDATA #IMPLIED revision CDATA #IMPLIED security CDATA #IMPLIED userlevel CDATA #IMPLIED vendor CDATA #IMPLIED " nil) ("id.attrib" text "id ID #IMPLIED" nil) ("idreq.attrib" text "id ID #REQUIRED" nil) ("lang.attrib" text "lang CDATA #IMPLIED" nil) ("remap.attrib" text "remap CDATA #IMPLIED" nil) ("role.attrib" text "role CDATA #IMPLIED" nil) ("xreflabel.attrib" text "xreflabel CDATA #IMPLIED" nil) ("revisionflag.attrib" text "revisionflag (changed |added |deleted |off) #IMPLIED" nil) ("local.common.attrib" text "" nil) ("common.attrib" text "id ID #IMPLIED lang CDATA #IMPLIED remap CDATA #IMPLIED xreflabel CDATA #IMPLIED revisionflag (changed |added |deleted |off) #IMPLIED arch CDATA #IMPLIED condition CDATA #IMPLIED conformance NMTOKENS #IMPLIED os CDATA #IMPLIED revision CDATA #IMPLIED security CDATA #IMPLIED userlevel CDATA #IMPLIED vendor CDATA #IMPLIED " nil) ("idreq.common.attrib" text "id ID #REQUIRED lang CDATA #IMPLIED remap CDATA #IMPLIED xreflabel CDATA #IMPLIED revisionflag (changed |added |deleted |off) #IMPLIED arch CDATA #IMPLIED condition CDATA #IMPLIED conformance NMTOKENS #IMPLIED os CDATA #IMPLIED revision CDATA #IMPLIED security CDATA #IMPLIED userlevel CDATA #IMPLIED vendor CDATA #IMPLIED " nil) ("local.graphics.attrib" text "" nil) ("graphics.attrib" text " entityref ENTITY #IMPLIED fileref CDATA #IMPLIED format (BMP| CGM-CHAR | CGM-BINARY | CGM-CLEAR | DITROFF | DVI | EPS | EQN | FAX | GIF | GIF87a | GIF89a | JPG | JPEG | IGES | PCX | PIC | PNG | PS | SGML | TBL | TEX | TIFF | WMF | WPG | linespecific ) #IMPLIED srccredit CDATA #IMPLIED width CDATA #IMPLIED depth CDATA #IMPLIED align (left |right |center) #IMPLIED scale CDATA #IMPLIED scalefit CDATA #IMPLIED " nil) ("local.keyaction.attrib" text "" nil) ("keyaction.attrib" text " action (click |double-click |press |seq |simul |other) #IMPLIED otheraction CDATA #IMPLIED " nil) ("label.attrib" text "label CDATA #IMPLIED" nil) ("linespecific.attrib" text "format NOTATION (linespecific) 'linespecific' linenumbering (numbered|unnumbered) #IMPLIED" nil) ("linkend.attrib" text "linkend IDREF #IMPLIED" nil) ("linkendreq.attrib" text "linkend IDREF #REQUIRED" nil) ("linkends.attrib" text "linkends IDREFS #IMPLIED" nil) ("local.mark.attrib" text "" nil) ("mark.attrib" text "mark CDATA #IMPLIED " nil) ("moreinfo.attrib" text "moreinfo (refentry|none) 'none'" nil) ("pagenum.attrib" text "pagenum CDATA #IMPLIED" nil) ("local.status.attrib" text "" nil) ("status.attrib" text "status CDATA #IMPLIED " nil) ("width.attrib" text "width CDATA #IMPLIED" nil) ("title.module" text "INCLUDE" nil) ("local.title.attrib" text "" nil) ("title.role.attrib" text "role CDATA #IMPLIED" nil) ("title.element" text "INCLUDE" nil) ("title.attlist" text "INCLUDE" nil) ("titleabbrev.module" text "INCLUDE" nil) ("local.titleabbrev.attrib" text "" nil) ("titleabbrev.role.attrib" text "role CDATA #IMPLIED" nil) ("titleabbrev.element" text "INCLUDE" nil) ("titleabbrev.attlist" text "INCLUDE" nil) ("subtitle.module" text "INCLUDE" nil) ("local.subtitle.attrib" text "" nil) ("subtitle.role.attrib" text "role CDATA #IMPLIED" nil) ("subtitle.element" text "INCLUDE" nil) ("subtitle.attlist" text "INCLUDE" nil) ("local.person.ident.mix" text "" nil) ("person.ident.mix" text "honorific|firstname|surname|lineage|othername|affiliation |authorblurb|contrib " nil) ("local.bibliocomponent.mix" text "" nil) ("bibliocomponent.mix" text "abbrev|abstract|address|artpagenums|author |authorgroup|authorinitials|bibliomisc|biblioset |collab|confgroup|contractnum|contractsponsor |copyright|corpauthor|corpname|date|edition |editor|invpartnumber|isbn|issn|issuenum|orgname |othercredit|pagenums|printhistory|productname |productnumber|pubdate|publisher|publishername |pubsnumber|releaseinfo|revhistory|seriesvolnums |subtitle|title|titleabbrev|volumenum|citetitle |honorific|firstname|surname|lineage|othername|affiliation |authorblurb|contrib |indexterm " nil) ("biblioentry.module" text "INCLUDE" nil) ("local.biblioentry.attrib" text "" nil) ("biblioentry.role.attrib" text "role CDATA #IMPLIED" nil) ("biblioentry.element" text "INCLUDE" nil) ("biblioentry.attlist" text "INCLUDE" nil) ("bibliomixed.module" text "INCLUDE" nil) ("local.bibliomixed.attrib" text "" nil) ("bibliomixed.role.attrib" text "role CDATA #IMPLIED" nil) ("bibliomixed.element" text "INCLUDE" nil) ("bibliomixed.attlist" text "INCLUDE" nil) ("articleinfo.module" text "INCLUDE" nil) ("local.articleinfo.attrib" text "" nil) ("articleinfo.role.attrib" text "role CDATA #IMPLIED" nil) ("articleinfo.element" text "INCLUDE" nil) ("articleinfo.attlist" text "INCLUDE" nil) ("biblioset.module" text "INCLUDE" nil) ("local.biblioset.attrib" text "" nil) ("biblioset.role.attrib" text "role CDATA #IMPLIED" nil) ("biblioset.element" text "INCLUDE" nil) ("biblioset.attlist" text "INCLUDE" nil) ("bibliomset.module" text "INCLUDE" nil) ("bibliomset.role.attrib" text "role CDATA #IMPLIED" nil) ("local.bibliomset.attrib" text "" nil) ("bibliomset.element" text "INCLUDE" nil) ("bibliomset.attlist" text "INCLUDE" nil) ("bibliomisc.module" text "INCLUDE" nil) ("local.bibliomisc.attrib" text "" nil) ("bibliomisc.role.attrib" text "role CDATA #IMPLIED" nil) ("bibliomisc.element" text "INCLUDE" nil) ("bibliomisc.attlist" text "INCLUDE" nil) ("subjectset.content.module" text "INCLUDE" nil) ("subjectset.module" text "INCLUDE" nil) ("local.subjectset.attrib" text "" nil) ("subjectset.role.attrib" text "role CDATA #IMPLIED" nil) ("subjectset.element" text "INCLUDE" nil) ("subjectset.attlist" text "INCLUDE" nil) ("subject.module" text "INCLUDE" nil) ("local.subject.attrib" text "" nil) ("subject.role.attrib" text "role CDATA #IMPLIED" nil) ("subject.element" text "INCLUDE" nil) ("subject.attlist" text "INCLUDE" nil) ("subjectterm.module" text "INCLUDE" nil) ("local.subjectterm.attrib" text "" nil) ("subjectterm.role.attrib" text "role CDATA #IMPLIED" nil) ("subjectterm.element" text "INCLUDE" nil) ("subjectterm.attlist" text "INCLUDE" nil) ("keywordset.content.module" text "INCLUDE" nil) ("keywordset.module" text "INCLUDE" nil) ("local.keywordset.attrib" text "" nil) ("keywordset.role.attrib" text "role CDATA #IMPLIED" nil) ("keywordset.element" text "INCLUDE" nil) ("keywordset.attlist" text "INCLUDE" nil) ("keyword.module" text "INCLUDE" nil) ("local.keyword.attrib" text "" nil) ("keyword.role.attrib" text "role CDATA #IMPLIED" nil) ("keyword.element" text "INCLUDE" nil) ("keyword.attlist" text "INCLUDE" nil) ("itermset.module" text "INCLUDE" nil) ("local.itermset.attrib" text "" nil) ("itermset.role.attrib" text "role CDATA #IMPLIED" nil) ("itermset.element" text "INCLUDE" nil) ("itermset.attlist" text "INCLUDE" nil) ("msgset.content.module" text "INCLUDE" nil) ("msgset.module" text "INCLUDE" nil) ("local.msgset.attrib" text "" nil) ("msgset.role.attrib" text "role CDATA #IMPLIED" nil) ("msgset.element" text "INCLUDE" nil) ("msgset.attlist" text "INCLUDE" nil) ("msgentry.module" text "INCLUDE" nil) ("local.msgentry.attrib" text "" nil) ("msgentry.role.attrib" text "role CDATA #IMPLIED" nil) ("msgentry.element" text "INCLUDE" nil) ("msgentry.attlist" text "INCLUDE" nil) ("simplemsgentry.module" text "INCLUDE" nil) ("local.simplemsgentry.attrib" text "" nil) ("simplemsgentry.role.attrib" text "role CDATA #IMPLIED" nil) ("simplemsgentry.element" text "INCLUDE" nil) ("simplemsgentry.attlist" text "INCLUDE" nil) ("msg.module" text "INCLUDE" nil) ("local.msg.attrib" text "" nil) ("msg.role.attrib" text "role CDATA #IMPLIED" nil) ("msg.element" text "INCLUDE" nil) ("msg.attlist" text "INCLUDE" nil) ("msgmain.module" text "INCLUDE" nil) ("local.msgmain.attrib" text "" nil) ("msgmain.role.attrib" text "role CDATA #IMPLIED" nil) ("msgmain.element" text "INCLUDE" nil) ("msgmain.attlist" text "INCLUDE" nil) ("msgsub.module" text "INCLUDE" nil) ("local.msgsub.attrib" text "" nil) ("msgsub.role.attrib" text "role CDATA #IMPLIED" nil) ("msgsub.element" text "INCLUDE" nil) ("msgsub.attlist" text "INCLUDE" nil) ("msgrel.module" text "INCLUDE" nil) ("local.msgrel.attrib" text "" nil) ("msgrel.role.attrib" text "role CDATA #IMPLIED" nil) ("msgrel.element" text "INCLUDE" nil) ("msgrel.attlist" text "INCLUDE" nil) ("msginfo.module" text "INCLUDE" nil) ("local.msginfo.attrib" text "" nil) ("msginfo.role.attrib" text "role CDATA #IMPLIED" nil) ("msginfo.element" text "INCLUDE" nil) ("msginfo.attlist" text "INCLUDE" nil) ("msglevel.module" text "INCLUDE" nil) ("local.msglevel.attrib" text "" nil) ("msglevel.role.attrib" text "role CDATA #IMPLIED" nil) ("msglevel.element" text "INCLUDE" nil) ("msglevel.attlist" text "INCLUDE" nil) ("msgorig.module" text "INCLUDE" nil) ("local.msgorig.attrib" text "" nil) ("msgorig.role.attrib" text "role CDATA #IMPLIED" nil) ("msgorig.element" text "INCLUDE" nil) ("msgorig.attlist" text "INCLUDE" nil) ("msgaud.module" text "INCLUDE" nil) ("local.msgaud.attrib" text "" nil) ("msgaud.role.attrib" text "role CDATA #IMPLIED" nil) ("msgaud.element" text "INCLUDE" nil) ("msgaud.attlist" text "INCLUDE" nil) ("msgexplan.module" text "INCLUDE" nil) ("local.msgexplan.attrib" text "" nil) ("msgexplan.role.attrib" text "role CDATA #IMPLIED" nil) ("msgexplan.element" text "INCLUDE" nil) ("msgexplan.attlist" text "INCLUDE" nil) ("qandset.content.module" text "INCLUDE" nil) ("qandset.module" text "INCLUDE" nil) ("local.qandset.attrib" text "" nil) ("qandset.role.attrib" text "role CDATA #IMPLIED" nil) ("qandset.element" text "INCLUDE" nil) ("qandset.attlist" text "INCLUDE" nil) ("qandadiv.module" text "INCLUDE" nil) ("local.qandadiv.attrib" text "" nil) ("qandadiv.role.attrib" text "role CDATA #IMPLIED" nil) ("qandadiv.element" text "INCLUDE" nil) ("qandadiv.attlist" text "INCLUDE" nil) ("qandaentry.module" text "INCLUDE" nil) ("local.qandaentry.attrib" text "" nil) ("qandaentry.role.attrib" text "role CDATA #IMPLIED" nil) ("qandaentry.element" text "INCLUDE" nil) ("qandaentry.attlist" text "INCLUDE" nil) ("question.module" text "INCLUDE" nil) ("local.question.attrib" text "" nil) ("question.role.attrib" text "role CDATA #IMPLIED" nil) ("question.element" text "INCLUDE" nil) ("question.attlist" text "INCLUDE" nil) ("answer.module" text "INCLUDE" nil) ("local.answer.attrib" text "" nil) ("answer.role.attrib" text "role CDATA #IMPLIED" nil) ("answer.element" text "INCLUDE" nil) ("answer.attlist" text "INCLUDE" nil) ("label.module" text "INCLUDE" nil) ("local.label.attrib" text "" nil) ("label.role.attrib" text "role CDATA #IMPLIED" nil) ("label.element" text "INCLUDE" nil) ("label.attlist" text "INCLUDE" nil) ("procedure.content.module" text "INCLUDE" nil) ("procedure.module" text "INCLUDE" nil) ("local.procedure.attrib" text "" nil) ("procedure.role.attrib" text "role CDATA #IMPLIED" nil) ("procedure.element" text "INCLUDE" nil) ("procedure.attlist" text "INCLUDE" nil) ("step.module" text "INCLUDE" nil) ("local.step.attrib" text "" nil) ("step.role.attrib" text "role CDATA #IMPLIED" nil) ("step.element" text "INCLUDE" nil) ("step.attlist" text "INCLUDE" nil) ("substeps.module" text "INCLUDE" nil) ("local.substeps.attrib" text "" nil) ("substeps.role.attrib" text "role CDATA #IMPLIED" nil) ("substeps.element" text "INCLUDE" nil) ("substeps.attlist" text "INCLUDE" nil) ("sidebar.content.model" text "INCLUDE" nil) ("sidebarinfo.module" text "INCLUDE" nil) ("local.sidebarinfo.attrib" text "" nil) ("sidebarinfo.role.attrib" text "role CDATA #IMPLIED" nil) ("sidebarinfo.element" text "INCLUDE" nil) ("sidebarinfo.attlist" text "INCLUDE" nil) ("sidebar.module" text "INCLUDE" nil) ("local.sidebar.attrib" text "" nil) ("sidebar.role.attrib" text "role CDATA #IMPLIED" nil) ("sidebar.element" text "INCLUDE" nil) ("sidebar.attlist" text "INCLUDE" nil) ("abstract.module" text "INCLUDE" nil) ("local.abstract.attrib" text "" nil) ("abstract.role.attrib" text "role CDATA #IMPLIED" nil) ("abstract.element" text "INCLUDE" nil) ("abstract.attlist" text "INCLUDE" nil) ("authorblurb.module" text "INCLUDE" nil) ("local.authorblurb.attrib" text "" nil) ("authorblurb.role.attrib" text "role CDATA #IMPLIED" nil) ("authorblurb.element" text "INCLUDE" nil) ("authorblurb.attlist" text "INCLUDE" nil) ("blockquote.module" text "INCLUDE" nil) ("local.blockquote.attrib" text "" nil) ("blockquote.role.attrib" text "role CDATA #IMPLIED" nil) ("blockquote.element" text "INCLUDE" nil) ("blockquote.attlist" text "INCLUDE" nil) ("attribution.module" text "INCLUDE" nil) ("local.attribution.attrib" text "" nil) ("attribution.role.attrib" text "role CDATA #IMPLIED" nil) ("attribution.element" text "INCLUDE" nil) ("attribution.attlist" text "INCLUDE" nil) ("bridgehead.module" text "INCLUDE" nil) ("local.bridgehead.attrib" text "" nil) ("bridgehead.role.attrib" text "role CDATA #IMPLIED" nil) ("bridgehead.element" text "INCLUDE" nil) ("bridgehead.attlist" text "INCLUDE" nil) ("remark.module" text "INCLUDE" nil) ("local.remark.attrib" text "" nil) ("remark.role.attrib" text "role CDATA #IMPLIED" nil) ("remark.element" text "INCLUDE" nil) ("remark.attlist" text "INCLUDE" nil) ("epigraph.module" text "INCLUDE" nil) ("local.epigraph.attrib" text "" nil) ("epigraph.role.attrib" text "role CDATA #IMPLIED" nil) ("epigraph.element" text "INCLUDE" nil) ("epigraph.attlist" text "INCLUDE" nil) ("footnote.module" text "INCLUDE" nil) ("local.footnote.attrib" text "" nil) ("footnote.role.attrib" text "role CDATA #IMPLIED" nil) ("footnote.element" text "INCLUDE" nil) ("footnote.attlist" text "INCLUDE" nil) ("highlights.module" text "INCLUDE" nil) ("local.highlights.attrib" text "" nil) ("highlights.role.attrib" text "role CDATA #IMPLIED" nil) ("highlights.element" text "INCLUDE" nil) ("highlights.attlist" text "INCLUDE" nil) ("formalpara.module" text "INCLUDE" nil) ("local.formalpara.attrib" text "" nil) ("formalpara.role.attrib" text "role CDATA #IMPLIED" nil) ("formalpara.element" text "INCLUDE" nil) ("formalpara.attlist" text "INCLUDE" nil) ("para.module" text "INCLUDE" nil) ("local.para.attrib" text "" nil) ("para.role.attrib" text "role CDATA #IMPLIED" nil) ("para.element" text "INCLUDE" nil) ("para.attlist" text "INCLUDE" nil) ("simpara.module" text "INCLUDE" nil) ("local.simpara.attrib" text "" nil) ("simpara.role.attrib" text "role CDATA #IMPLIED" nil) ("simpara.element" text "INCLUDE" nil) ("simpara.attlist" text "INCLUDE" nil) ("admon.module" text "INCLUDE" nil) ("local.admon.attrib" text "" nil) ("admon.role.attrib" text "role CDATA #IMPLIED" nil) ("caution.element" text "INCLUDE" nil) ("caution.attlist" text "INCLUDE" nil) ("important.element" text "INCLUDE" nil) ("important.attlist" text "INCLUDE" nil) ("note.element" text "INCLUDE" nil) ("note.attlist" text "INCLUDE" nil) ("tip.element" text "INCLUDE" nil) ("tip.attlist" text "INCLUDE" nil) ("warning.element" text "INCLUDE" nil) ("warning.attlist" text "INCLUDE" nil) ("glosslist.module" text "INCLUDE" nil) ("local.glosslist.attrib" text "" nil) ("glosslist.role.attrib" text "role CDATA #IMPLIED" nil) ("glosslist.element" text "INCLUDE" nil) ("glosslist.attlist" text "INCLUDE" nil) ("glossentry.content.module" text "INCLUDE" nil) ("glossentry.module" text "INCLUDE" nil) ("local.glossentry.attrib" text "" nil) ("glossentry.role.attrib" text "role CDATA #IMPLIED" nil) ("glossentry.element" text "INCLUDE" nil) ("glossentry.attlist" text "INCLUDE" nil) ("glossdef.module" text "INCLUDE" nil) ("local.glossdef.attrib" text "" nil) ("glossdef.role.attrib" text "role CDATA #IMPLIED" nil) ("glossdef.element" text "INCLUDE" nil) ("glossdef.attlist" text "INCLUDE" nil) ("glosssee.module" text "INCLUDE" nil) ("local.glosssee.attrib" text "" nil) ("glosssee.role.attrib" text "role CDATA #IMPLIED" nil) ("glosssee.element" text "INCLUDE" nil) ("glosssee.attlist" text "INCLUDE" nil) ("glossseealso.module" text "INCLUDE" nil) ("local.glossseealso.attrib" text "" nil) ("glossseealso.role.attrib" text "role CDATA #IMPLIED" nil) ("glossseealso.element" text "INCLUDE" nil) ("glossseealso.attlist" text "INCLUDE" nil) ("itemizedlist.module" text "INCLUDE" nil) ("local.itemizedlist.attrib" text "" nil) ("itemizedlist.role.attrib" text "role CDATA #IMPLIED" nil) ("itemizedlist.element" text "INCLUDE" nil) ("itemizedlist.attlist" text "INCLUDE" nil) ("orderedlist.module" text "INCLUDE" nil) ("local.orderedlist.attrib" text "" nil) ("orderedlist.role.attrib" text "role CDATA #IMPLIED" nil) ("orderedlist.element" text "INCLUDE" nil) ("orderedlist.attlist" text "INCLUDE" nil) ("listitem.module" text "INCLUDE" nil) ("local.listitem.attrib" text "" nil) ("listitem.role.attrib" text "role CDATA #IMPLIED" nil) ("listitem.element" text "INCLUDE" nil) ("listitem.attlist" text "INCLUDE" nil) ("segmentedlist.content.module" text "INCLUDE" nil) ("segmentedlist.module" text "INCLUDE" nil) ("local.segmentedlist.attrib" text "" nil) ("segmentedlist.role.attrib" text "role CDATA #IMPLIED" nil) ("segmentedlist.element" text "INCLUDE" nil) ("segmentedlist.attlist" text "INCLUDE" nil) ("segtitle.module" text "INCLUDE" nil) ("local.segtitle.attrib" text "" nil) ("segtitle.role.attrib" text "role CDATA #IMPLIED" nil) ("segtitle.element" text "INCLUDE" nil) ("segtitle.attlist" text "INCLUDE" nil) ("seglistitem.module" text "INCLUDE" nil) ("local.seglistitem.attrib" text "" nil) ("seglistitem.role.attrib" text "role CDATA #IMPLIED" nil) ("seglistitem.element" text "INCLUDE" nil) ("seglistitem.attlist" text "INCLUDE" nil) ("seg.module" text "INCLUDE" nil) ("local.seg.attrib" text "" nil) ("seg.role.attrib" text "role CDATA #IMPLIED" nil) ("seg.element" text "INCLUDE" nil) ("seg.attlist" text "INCLUDE" nil) ("simplelist.content.module" text "INCLUDE" nil) ("simplelist.module" text "INCLUDE" nil) ("local.simplelist.attrib" text "" nil) ("simplelist.role.attrib" text "role CDATA #IMPLIED" nil) ("simplelist.element" text "INCLUDE" nil) ("simplelist.attlist" text "INCLUDE" nil) ("member.module" text "INCLUDE" nil) ("local.member.attrib" text "" nil) ("member.role.attrib" text "role CDATA #IMPLIED" nil) ("member.element" text "INCLUDE" nil) ("member.attlist" text "INCLUDE" nil) ("variablelist.content.module" text "INCLUDE" nil) ("variablelist.module" text "INCLUDE" nil) ("local.variablelist.attrib" text "" nil) ("variablelist.role.attrib" text "role CDATA #IMPLIED" nil) ("variablelist.element" text "INCLUDE" nil) ("variablelist.attlist" text "INCLUDE" nil) ("varlistentry.module" text "INCLUDE" nil) ("local.varlistentry.attrib" text "" nil) ("varlistentry.role.attrib" text "role CDATA #IMPLIED" nil) ("varlistentry.element" text "INCLUDE" nil) ("varlistentry.attlist" text "INCLUDE" nil) ("term.module" text "INCLUDE" nil) ("local.term.attrib" text "" nil) ("term.role.attrib" text "role CDATA #IMPLIED" nil) ("term.element" text "INCLUDE" nil) ("term.attlist" text "INCLUDE" nil) ("calloutlist.content.module" text "INCLUDE" nil) ("calloutlist.module" text "INCLUDE" nil) ("local.calloutlist.attrib" text "" nil) ("calloutlist.role.attrib" text "role CDATA #IMPLIED" nil) ("calloutlist.element" text "INCLUDE" nil) ("calloutlist.attlist" text "INCLUDE" nil) ("callout.module" text "INCLUDE" nil) ("local.callout.attrib" text "" nil) ("callout.role.attrib" text "role CDATA #IMPLIED" nil) ("callout.element" text "INCLUDE" nil) ("callout.attlist" text "INCLUDE" nil) ("example.module" text "INCLUDE" nil) ("local.example.attrib" text "" nil) ("example.role.attrib" text "role CDATA #IMPLIED" nil) ("example.element" text "INCLUDE" nil) ("example.attlist" text "INCLUDE" nil) ("informalexample.module" text "INCLUDE" nil) ("local.informalexample.attrib" text "" nil) ("informalexample.role.attrib" text "role CDATA #IMPLIED" nil) ("informalexample.element" text "INCLUDE" nil) ("informalexample.attlist" text "INCLUDE" nil) ("programlistingco.module" text "INCLUDE" nil) ("local.programlistingco.attrib" text "" nil) ("programlistingco.role.attrib" text "role CDATA #IMPLIED" nil) ("programlistingco.element" text "INCLUDE" nil) ("programlistingco.attlist" text "INCLUDE" nil) ("areaspec.content.module" text "INCLUDE" nil) ("areaspec.module" text "INCLUDE" nil) ("local.areaspec.attrib" text "" nil) ("areaspec.role.attrib" text "role CDATA #IMPLIED" nil) ("areaspec.element" text "INCLUDE" nil) ("areaspec.attlist" text "INCLUDE" nil) ("area.module" text "INCLUDE" nil) ("local.area.attrib" text "" nil) ("area.role.attrib" text "role CDATA #IMPLIED" nil) ("area.element" text "INCLUDE" nil) ("area.attlist" text "INCLUDE" nil) ("areaset.module" text "INCLUDE" nil) ("local.areaset.attrib" text "" nil) ("areaset.role.attrib" text "role CDATA #IMPLIED" nil) ("areaset.element" text "INCLUDE" nil) ("areaset.attlist" text "INCLUDE" nil) ("programlisting.module" text "INCLUDE" nil) ("local.programlisting.attrib" text "" nil) ("programlisting.role.attrib" text "role CDATA #IMPLIED" nil) ("programlisting.element" text "INCLUDE" nil) ("programlisting.attlist" text "INCLUDE" nil) ("literallayout.module" text "INCLUDE" nil) ("local.literallayout.attrib" text "" nil) ("literallayout.role.attrib" text "role CDATA #IMPLIED" nil) ("literallayout.element" text "INCLUDE" nil) ("literallayout.attlist" text "INCLUDE" nil) ("screenco.module" text "INCLUDE" nil) ("local.screenco.attrib" text "" nil) ("screenco.role.attrib" text "role CDATA #IMPLIED" nil) ("screenco.element" text "INCLUDE" nil) ("screenco.attlist" text "INCLUDE" nil) ("screen.module" text "INCLUDE" nil) ("local.screen.attrib" text "" nil) ("screen.role.attrib" text "role CDATA #IMPLIED" nil) ("screen.element" text "INCLUDE" nil) ("screen.attlist" text "INCLUDE" nil) ("screenshot.content.module" text "INCLUDE" nil) ("screenshot.module" text "INCLUDE" nil) ("local.screenshot.attrib" text "" nil) ("screenshot.role.attrib" text "role CDATA #IMPLIED" nil) ("screenshot.element" text "INCLUDE" nil) ("screenshot.attlist" text "INCLUDE" nil) ("screeninfo.module" text "INCLUDE" nil) ("local.screeninfo.attrib" text "" nil) ("screeninfo.role.attrib" text "role CDATA #IMPLIED" nil) ("screeninfo.element" text "INCLUDE" nil) ("screeninfo.attlist" text "INCLUDE" nil) ("figure.module" text "INCLUDE" nil) ("local.figure.attrib" text "" nil) ("figure.role.attrib" text "role CDATA #IMPLIED" nil) ("figure.element" text "INCLUDE" nil) ("figure.attlist" text "INCLUDE" nil) ("informalfigure.module" text "INCLUDE" nil) ("local.informalfigure.attrib" text "" nil) ("informalfigure.role.attrib" text "role CDATA #IMPLIED" nil) ("informalfigure.element" text "INCLUDE" nil) ("informalfigure.attlist" text "INCLUDE" nil) ("graphicco.module" text "INCLUDE" nil) ("local.graphicco.attrib" text "" nil) ("graphicco.role.attrib" text "role CDATA #IMPLIED" nil) ("graphicco.element" text "INCLUDE" nil) ("graphicco.attlist" text "INCLUDE" nil) ("graphic.module" text "INCLUDE" nil) ("local.graphic.attrib" text "" nil) ("graphic.role.attrib" text "role CDATA #IMPLIED" nil) ("graphic.element" text "INCLUDE" nil) ("graphic.attlist" text "INCLUDE" nil) ("inlinegraphic.module" text "INCLUDE" nil) ("local.inlinegraphic.attrib" text "" nil) ("inlinegraphic.role.attrib" text "role CDATA #IMPLIED" nil) ("inlinegraphic.element" text "INCLUDE" nil) ("inlinegraphic.attlist" text "INCLUDE" nil) ("mediaobject.content.module" text "INCLUDE" nil) ("mediaobject.module" text "INCLUDE" nil) ("local.mediaobject.attrib" text "" nil) ("mediaobject.role.attrib" text "role CDATA #IMPLIED" nil) ("mediaobject.element" text "INCLUDE" nil) ("mediaobject.attlist" text "INCLUDE" nil) ("inlinemediaobject.module" text "INCLUDE" nil) ("local.inlinemediaobject.attrib" text "" nil) ("inlinemediaobject.role.attrib" text "role CDATA #IMPLIED" nil) ("inlinemediaobject.element" text "INCLUDE" nil) ("inlinemediaobject.attlist" text "INCLUDE" nil) ("videoobject.module" text "INCLUDE" nil) ("local.videoobject.attrib" text "" nil) ("videoobject.role.attrib" text "role CDATA #IMPLIED" nil) ("videoobject.element" text "INCLUDE" nil) ("videoobject.attlist" text "INCLUDE" nil) ("audioobject.module" text "INCLUDE" nil) ("local.audioobject.attrib" text "" nil) ("audioobject.role.attrib" text "role CDATA #IMPLIED" nil) ("audioobject.element" text "INCLUDE" nil) ("audioobject.attlist" text "INCLUDE" nil) ("imageobject.module" text "INCLUDE" nil) ("local.imageobject.attrib" text "" nil) ("imageobject.role.attrib" text "role CDATA #IMPLIED" nil) ("imageobject.element" text "INCLUDE" nil) ("imageobject.attlist" text "INCLUDE" nil) ("textobject.module" text "INCLUDE" nil) ("local.textobject.attrib" text "" nil) ("textobject.role.attrib" text "role CDATA #IMPLIED" nil) ("textobject.element" text "INCLUDE" nil) ("textobject.attlist" text "INCLUDE" nil) ("objectinfo.module" text "INCLUDE" nil) ("local.objectinfo.attrib" text "" nil) ("objectinfo.role.attrib" text "role CDATA #IMPLIED" nil) ("objectinfo.element" text "INCLUDE" nil) ("objectinfo.attlist" text "INCLUDE" nil) ("local.objectdata.attrib" text "" nil) ("objectdata.attrib" text " entityref ENTITY #IMPLIED fileref CDATA #IMPLIED format (BMP| CGM-CHAR | CGM-BINARY | CGM-CLEAR | DITROFF | DVI | EPS | EQN | FAX | GIF | GIF87a | GIF89a | JPG | JPEG | IGES | PCX | PIC | PNG | PS | SGML | TBL | TEX | TIFF | WMF | WPG | linespecific ) #IMPLIED srccredit CDATA #IMPLIED " nil) ("videodata.module" text "INCLUDE" nil) ("local.videodata.attrib" text "" nil) ("videodata.role.attrib" text "role CDATA #IMPLIED" nil) ("videodata.element" text "INCLUDE" nil) ("videodata.attlist" text "INCLUDE" nil) ("audiodata.module" text "INCLUDE" nil) ("local.audiodata.attrib" text "" nil) ("audiodata.role.attrib" text "role CDATA #IMPLIED" nil) ("audiodata.element" text "INCLUDE" nil) ("audiodata.attlist" text "INCLUDE" nil) ("imagedata.module" text "INCLUDE" nil) ("local.imagedata.attrib" text "" nil) ("imagedata.role.attrib" text "role CDATA #IMPLIED" nil) ("imagedata.element" text "INCLUDE" nil) ("imagedata.attlist" text "INCLUDE" nil) ("caption.module" text "INCLUDE" nil) ("local.caption.attrib" text "" nil) ("caption.role.attrib" text "role CDATA #IMPLIED" nil) ("caption.element" text "INCLUDE" nil) ("caption.attlist" text "INCLUDE" nil) ("mediaobjectco.module" text "INCLUDE" nil) ("local.mediaobjectco.attrib" text "" nil) ("mediaobjectco.role.attrib" text "role CDATA #IMPLIED" nil) ("mediaobjectco.element" text "INCLUDE" nil) ("mediaobjectco.attlist" text "INCLUDE" nil) ("imageobjectco.module" text "INCLUDE" nil) ("local.imageobjectco.attrib" text "" nil) ("imageobjectco.role.attrib" text "role CDATA #IMPLIED" nil) ("imageobjectco.element" text "INCLUDE" nil) ("imageobjectco.attlist" text "INCLUDE" nil) ("equation.content" text "(alt?, (graphic+|mediaobject+))" nil) ("inlineequation.content" text "(alt?, (graphic+|inlinemediaobject+))" nil) ("equation.module" text "INCLUDE" nil) ("local.equation.attrib" text "" nil) ("equation.role.attrib" text "role CDATA #IMPLIED" nil) ("equation.element" text "INCLUDE" nil) ("equation.attlist" text "INCLUDE" nil) ("informalequation.module" text "INCLUDE" nil) ("local.informalequation.attrib" text "" nil) ("informalequation.role.attrib" text "role CDATA #IMPLIED" nil) ("informalequation.element" text "INCLUDE" nil) ("informalequation.attlist" text "INCLUDE" nil) ("inlineequation.module" text "INCLUDE" nil) ("local.inlineequation.attrib" text "" nil) ("inlineequation.role.attrib" text "role CDATA #IMPLIED" nil) ("inlineequation.element" text "INCLUDE" nil) ("inlineequation.attlist" text "INCLUDE" nil) ("alt.module" text "INCLUDE" nil) ("local.alt.attrib" text "" nil) ("alt.role.attrib" text "role CDATA #IMPLIED" nil) ("alt.element" text "INCLUDE" nil) ("alt.attlist" text "INCLUDE" nil) ("table.module" text "INCLUDE" nil) ("cals.table.module" text "INCLUDE" nil) ("exchange.table.module" text "IGNORE" nil) ("tables.role.attrib" text "role CDATA #IMPLIED" nil) ("bodyatt" text "label CDATA #IMPLIED" nil) ("secur" text "id ID #IMPLIED lang CDATA #IMPLIED remap CDATA #IMPLIED xreflabel CDATA #IMPLIED revisionflag (changed |added |deleted |off) #IMPLIED arch CDATA #IMPLIED condition CDATA #IMPLIED conformance NMTOKENS #IMPLIED os CDATA #IMPLIED revision CDATA #IMPLIED security CDATA #IMPLIED userlevel CDATA #IMPLIED vendor CDATA #IMPLIED role CDATA #IMPLIED" nil) ("common.table.attribs" text "label CDATA #IMPLIED id ID #IMPLIED lang CDATA #IMPLIED remap CDATA #IMPLIED xreflabel CDATA #IMPLIED revisionflag (changed |added |deleted |off) #IMPLIED arch CDATA #IMPLIED condition CDATA #IMPLIED conformance NMTOKENS #IMPLIED os CDATA #IMPLIED revision CDATA #IMPLIED security CDATA #IMPLIED userlevel CDATA #IMPLIED vendor CDATA #IMPLIED role CDATA #IMPLIED" nil) ("tbl.table.mdl" text "((title, titleabbrev?), (indexterm )*, (graphic+|mediaobject+|tgroup+))" nil) ("tbl.entry.mdl" text "#PCDATA |footnoteref|xref |abbrev|acronym|citation|citerefentry|citetitle|emphasis |firstterm|foreignphrase|glossterm|footnote|phrase |quote|trademark|wordasword |link|olink|ulink |action|application |classname|methodname|interfacename|exceptionname |ooclass|oointerface|ooexception |command|computeroutput |database|email|envar|errorcode|errorname|errortype|filename |function|guibutton|guiicon|guilabel|guimenu|guimenuitem |guisubmenu|hardware|interface|keycap |keycode|keycombo|keysym|literal|constant|markup|medialabel |menuchoice|mousebutton|option|optional|parameter |prompt|property|replaceable|returnvalue|sgmltag|structfield |structname|symbol|systemitem|token|type|userinput|varname |anchor |author|authorinitials|corpauthor|modespec|othercredit |productname|productnumber|revhistory |remark|subscript|superscript |inlinegraphic|inlinemediaobject|inlineequation |synopsis|cmdsynopsis|funcsynopsis |classsynopsis|fieldsynopsis |constructorsynopsis |destructorsynopsis |methodsynopsis |indexterm |beginpage | calloutlist|glosslist|itemizedlist|orderedlist|segmentedlist |simplelist|variablelist |caution|important|note|tip|warning |literallayout|programlisting|programlistingco|screen |screenco|screenshot |formalpara|para|simpara |graphic|mediaobject " nil) ("tablemodel" text ("-//OASIS//DTD DocBook XML CALS Table Model V4.1.2//EN" "calstblx.dtd" . "/usr/share/sgml/docbook/dtd/xml/4.1.2/") nil) ("yesorno" text "CDATA" nil) ("titles" text "title?" nil) ("paracon" text "#PCDATA" nil) ("tbl.table.name" text "(table|chart)" nil) ("tbl.table-titles.mdl" text "title?," nil) ("tbl.table-main.mdl" text "(tgroup+|graphic+)" nil) ("tbl.table.att" text " tabstyle CDATA #IMPLIED tocentry CDATA #IMPLIED shortentry CDATA #IMPLIED orient (port|land) #IMPLIED pgwide CDATA #IMPLIED " nil) ("tbl.tgroup.mdl" text "colspec*,spanspec*,thead?,tfoot?,tbody" nil) ("tbl.tgroup.att" text " tgroupstyle CDATA #IMPLIED " nil) ("tbl.hdft.mdl" text "colspec*,row+" nil) ("tbl.row.mdl" text "(entry|entrytbl)+" nil) ("tbl.entrytbl.mdl" text "colspec*,spanspec*,thead?,tbody" nil) ("informaltable.module" text "INCLUDE" nil) ("local.informaltable.attrib" text "" nil) ("informaltable.element" text "INCLUDE" nil) ("informaltable.attlist" text "INCLUDE" nil) ("synopsis.module" text "INCLUDE" nil) ("local.synopsis.attrib" text "" nil) ("synopsis.role.attrib" text "role CDATA #IMPLIED" nil) ("synopsis.element" text "INCLUDE" nil) ("synopsis.attlist" text "INCLUDE" nil) ("cmdsynopsis.content.module" text "INCLUDE" nil) ("cmdsynopsis.module" text "INCLUDE" nil) ("local.cmdsynopsis.attrib" text "" nil) ("cmdsynopsis.role.attrib" text "role CDATA #IMPLIED" nil) ("cmdsynopsis.element" text "INCLUDE" nil) ("cmdsynopsis.attlist" text "INCLUDE" nil) ("arg.module" text "INCLUDE" nil) ("local.arg.attrib" text "" nil) ("arg.role.attrib" text "role CDATA #IMPLIED" nil) ("arg.element" text "INCLUDE" nil) ("arg.attlist" text "INCLUDE" nil) ("group.module" text "INCLUDE" nil) ("local.group.attrib" text "" nil) ("group.role.attrib" text "role CDATA #IMPLIED" nil) ("group.element" text "INCLUDE" nil) ("group.attlist" text "INCLUDE" nil) ("sbr.module" text "INCLUDE" nil) ("local.sbr.attrib" text "" nil) ("sbr.role.attrib" text "role CDATA #IMPLIED" nil) ("sbr.element" text "INCLUDE" nil) ("sbr.attlist" text "INCLUDE" nil) ("synopfragmentref.module" text "INCLUDE" nil) ("local.synopfragmentref.attrib" text "" nil) ("synopfragmentref.role.attrib" text "role CDATA #IMPLIED" nil) ("synopfragmentref.element" text "INCLUDE" nil) ("synopfragmentref.attlist" text "INCLUDE" nil) ("synopfragment.module" text "INCLUDE" nil) ("local.synopfragment.attrib" text "" nil) ("synopfragment.role.attrib" text "role CDATA #IMPLIED" nil) ("synopfragment.element" text "INCLUDE" nil) ("synopfragment.attlist" text "INCLUDE" nil) ("funcsynopsis.content.module" text "INCLUDE" nil) ("funcsynopsis.module" text "INCLUDE" nil) ("local.funcsynopsis.attrib" text "" nil) ("funcsynopsis.role.attrib" text "role CDATA #IMPLIED" nil) ("funcsynopsis.element" text "INCLUDE" nil) ("funcsynopsis.attlist" text "INCLUDE" nil) ("funcsynopsisinfo.module" text "INCLUDE" nil) ("local.funcsynopsisinfo.attrib" text "" nil) ("funcsynopsisinfo.role.attrib" text "role CDATA #IMPLIED" nil) ("funcsynopsisinfo.element" text "INCLUDE" nil) ("funcsynopsisinfo.attlist" text "INCLUDE" nil) ("funcprototype.module" text "INCLUDE" nil) ("local.funcprototype.attrib" text "" nil) ("funcprototype.role.attrib" text "role CDATA #IMPLIED" nil) ("funcprototype.element" text "INCLUDE" nil) ("funcprototype.attlist" text "INCLUDE" nil) ("funcdef.module" text "INCLUDE" nil) ("local.funcdef.attrib" text "" nil) ("funcdef.role.attrib" text "role CDATA #IMPLIED" nil) ("funcdef.element" text "INCLUDE" nil) ("funcdef.attlist" text "INCLUDE" nil) ("void.module" text "INCLUDE" nil) ("local.void.attrib" text "" nil) ("void.role.attrib" text "role CDATA #IMPLIED" nil) ("void.element" text "INCLUDE" nil) ("void.attlist" text "INCLUDE" nil) ("varargs.module" text "INCLUDE" nil) ("local.varargs.attrib" text "" nil) ("varargs.role.attrib" text "role CDATA #IMPLIED" nil) ("varargs.element" text "INCLUDE" nil) ("varargs.attlist" text "INCLUDE" nil) ("paramdef.module" text "INCLUDE" nil) ("local.paramdef.attrib" text "" nil) ("paramdef.role.attrib" text "role CDATA #IMPLIED" nil) ("paramdef.element" text "INCLUDE" nil) ("paramdef.attlist" text "INCLUDE" nil) ("funcparams.module" text "INCLUDE" nil) ("local.funcparams.attrib" text "" nil) ("funcparams.role.attrib" text "role CDATA #IMPLIED" nil) ("funcparams.element" text "INCLUDE" nil) ("funcparams.attlist" text "INCLUDE" nil) ("classsynopsis.content.module" text "INCLUDE" nil) ("classsynopsis.module" text "INCLUDE" nil) ("local.classsynopsis.attrib" text "" nil) ("classsynopsis.role.attrib" text "role CDATA #IMPLIED" nil) ("classsynopsis.element" text "INCLUDE" nil) ("classsynopsis.attlist" text "INCLUDE" nil) ("classsynopsisinfo.module" text "INCLUDE" nil) ("local.classsynopsisinfo.attrib" text "" nil) ("classsynopsisinfo.role.attrib" text "role CDATA #IMPLIED" nil) ("classsynopsisinfo.element" text "INCLUDE" nil) ("classsynopsisinfo.attlist" text "INCLUDE" nil) ("ooclass.module" text "INCLUDE" nil) ("local.ooclass.attrib" text "" nil) ("ooclass.role.attrib" text "role CDATA #IMPLIED" nil) ("ooclass.element" text "INCLUDE" nil) ("ooclass.attlist" text "INCLUDE" nil) ("oointerface.module" text "INCLUDE" nil) ("local.oointerface.attrib" text "" nil) ("oointerface.role.attrib" text "role CDATA #IMPLIED" nil) ("oointerface.element" text "INCLUDE" nil) ("oointerface.attlist" text "INCLUDE" nil) ("ooexception.module" text "INCLUDE" nil) ("local.ooexception.attrib" text "" nil) ("ooexception.role.attrib" text "role CDATA #IMPLIED" nil) ("ooexception.element" text "INCLUDE" nil) ("ooexception.attlist" text "INCLUDE" nil) ("modifier.module" text "INCLUDE" nil) ("local.modifier.attrib" text "" nil) ("modifier.role.attrib" text "role CDATA #IMPLIED" nil) ("modifier.element" text "INCLUDE" nil) ("modifier.attlist" text "INCLUDE" nil) ("interfacename.module" text "INCLUDE" nil) ("local.interfacename.attrib" text "" nil) ("interfacename.role.attrib" text "role CDATA #IMPLIED" nil) ("interfacename.element" text "INCLUDE" nil) ("interfacename.attlist" text "INCLUDE" nil) ("exceptionname.module" text "INCLUDE" nil) ("local.exceptionname.attrib" text "" nil) ("exceptionname.role.attrib" text "role CDATA #IMPLIED" nil) ("exceptionname.element" text "INCLUDE" nil) ("exceptionname.attlist" text "INCLUDE" nil) ("fieldsynopsis.module" text "INCLUDE" nil) ("local.fieldsynopsis.attrib" text "" nil) ("fieldsynopsis.role.attrib" text "role CDATA #IMPLIED" nil) ("fieldsynopsis.element" text "INCLUDE" nil) ("fieldsynopsis.attlist" text "INCLUDE" nil) ("initializer.module" text "INCLUDE" nil) ("local.initializer.attrib" text "" nil) ("initializer.role.attrib" text "role CDATA #IMPLIED" nil) ("initializer.element" text "INCLUDE" nil) ("initializer.attlist" text "INCLUDE" nil) ("constructorsynopsis.module" text "INCLUDE" nil) ("local.constructorsynopsis.attrib" text "" nil) ("constructorsynopsis.role.attrib" text "role CDATA #IMPLIED" nil) ("constructorsynopsis.element" text "INCLUDE" nil) ("constructorsynopsis.attlist" text "INCLUDE" nil) ("destructorsynopsis.module" text "INCLUDE" nil) ("local.destructorsynopsis.attrib" text "" nil) ("destructorsynopsis.role.attrib" text "role CDATA #IMPLIED" nil) ("destructorsynopsis.element" text "INCLUDE" nil) ("destructorsynopsis.attlist" text "INCLUDE" nil) ("methodsynopsis.module" text "INCLUDE" nil) ("local.methodsynopsis.attrib" text "" nil) ("methodsynopsis.role.attrib" text "role CDATA #IMPLIED" nil) ("methodsynopsis.element" text "INCLUDE" nil) ("methodsynopsis.attlist" text "INCLUDE" nil) ("methodname.module" text "INCLUDE" nil) ("local.methodname.attrib" text "" nil) ("methodname.role.attrib" text "role CDATA #IMPLIED" nil) ("methodname.element" text "INCLUDE" nil) ("methodname.attlist" text "INCLUDE" nil) ("methodparam.module" text "INCLUDE" nil) ("local.methodparam.attrib" text "" nil) ("methodparam.role.attrib" text "role CDATA #IMPLIED" nil) ("methodparam.element" text "INCLUDE" nil) ("methodparam.attlist" text "INCLUDE" nil) ("docinfo.content.module" text "INCLUDE" nil) ("ackno.module" text "INCLUDE" nil) ("local.ackno.attrib" text "" nil) ("ackno.role.attrib" text "role CDATA #IMPLIED" nil) ("ackno.element" text "INCLUDE" nil) ("ackno.attlist" text "INCLUDE" nil) ("address.content.module" text "INCLUDE" nil) ("address.module" text "INCLUDE" nil) ("local.address.attrib" text "" nil) ("address.role.attrib" text "role CDATA #IMPLIED" nil) ("address.element" text "INCLUDE" nil) ("address.attlist" text "INCLUDE" nil) ("street.module" text "INCLUDE" nil) ("local.street.attrib" text "" nil) ("street.role.attrib" text "role CDATA #IMPLIED" nil) ("street.element" text "INCLUDE" nil) ("street.attlist" text "INCLUDE" nil) ("pob.module" text "INCLUDE" nil) ("local.pob.attrib" text "" nil) ("pob.role.attrib" text "role CDATA #IMPLIED" nil) ("pob.element" text "INCLUDE" nil) ("pob.attlist" text "INCLUDE" nil) ("postcode.module" text "INCLUDE" nil) ("local.postcode.attrib" text "" nil) ("postcode.role.attrib" text "role CDATA #IMPLIED" nil) ("postcode.element" text "INCLUDE" nil) ("postcode.attlist" text "INCLUDE" nil) ("city.module" text "INCLUDE" nil) ("local.city.attrib" text "" nil) ("city.role.attrib" text "role CDATA #IMPLIED" nil) ("city.element" text "INCLUDE" nil) ("city.attlist" text "INCLUDE" nil) ("state.module" text "INCLUDE" nil) ("local.state.attrib" text "" nil) ("state.role.attrib" text "role CDATA #IMPLIED" nil) ("state.element" text "INCLUDE" nil) ("state.attlist" text "INCLUDE" nil) ("country.module" text "INCLUDE" nil) ("local.country.attrib" text "" nil) ("country.role.attrib" text "role CDATA #IMPLIED" nil) ("country.element" text "INCLUDE" nil) ("country.attlist" text "INCLUDE" nil) ("phone.module" text "INCLUDE" nil) ("local.phone.attrib" text "" nil) ("phone.role.attrib" text "role CDATA #IMPLIED" nil) ("phone.element" text "INCLUDE" nil) ("phone.attlist" text "INCLUDE" nil) ("fax.module" text "INCLUDE" nil) ("local.fax.attrib" text "" nil) ("fax.role.attrib" text "role CDATA #IMPLIED" nil) ("fax.element" text "INCLUDE" nil) ("fax.attlist" text "INCLUDE" nil) ("otheraddr.module" text "INCLUDE" nil) ("local.otheraddr.attrib" text "" nil) ("otheraddr.role.attrib" text "role CDATA #IMPLIED" nil) ("otheraddr.element" text "INCLUDE" nil) ("otheraddr.attlist" text "INCLUDE" nil) ("affiliation.content.module" text "INCLUDE" nil) ("affiliation.module" text "INCLUDE" nil) ("local.affiliation.attrib" text "" nil) ("affiliation.role.attrib" text "role CDATA #IMPLIED" nil) ("affiliation.element" text "INCLUDE" nil) ("affiliation.attlist" text "INCLUDE" nil) ("shortaffil.module" text "INCLUDE" nil) ("local.shortaffil.attrib" text "" nil) ("shortaffil.role.attrib" text "role CDATA #IMPLIED" nil) ("shortaffil.element" text "INCLUDE" nil) ("shortaffil.attlist" text "INCLUDE" nil) ("jobtitle.module" text "INCLUDE" nil) ("local.jobtitle.attrib" text "" nil) ("jobtitle.role.attrib" text "role CDATA #IMPLIED" nil) ("jobtitle.element" text "INCLUDE" nil) ("jobtitle.attlist" text "INCLUDE" nil) ("orgdiv.module" text "INCLUDE" nil) ("local.orgdiv.attrib" text "" nil) ("orgdiv.role.attrib" text "role CDATA #IMPLIED" nil) ("orgdiv.element" text "INCLUDE" nil) ("orgdiv.attlist" text "INCLUDE" nil) ("artpagenums.module" text "INCLUDE" nil) ("local.artpagenums.attrib" text "" nil) ("artpagenums.role.attrib" text "role CDATA #IMPLIED" nil) ("artpagenums.element" text "INCLUDE" nil) ("artpagenums.attlist" text "INCLUDE" nil) ("author.module" text "INCLUDE" nil) ("local.author.attrib" text "" nil) ("author.role.attrib" text "role CDATA #IMPLIED" nil) ("author.element" text "INCLUDE" nil) ("author.attlist" text "INCLUDE" nil) ("authorgroup.content.module" text "INCLUDE" nil) ("authorgroup.module" text "INCLUDE" nil) ("local.authorgroup.attrib" text "" nil) ("authorgroup.role.attrib" text "role CDATA #IMPLIED" nil) ("authorgroup.element" text "INCLUDE" nil) ("authorgroup.attlist" text "INCLUDE" nil) ("collab.content.module" text "INCLUDE" nil) ("collab.module" text "INCLUDE" nil) ("local.collab.attrib" text "" nil) ("collab.role.attrib" text "role CDATA #IMPLIED" nil) ("collab.element" text "INCLUDE" nil) ("collab.attlist" text "INCLUDE" nil) ("collabname.module" text "INCLUDE" nil) ("local.collabname.attrib" text "" nil) ("collabname.role.attrib" text "role CDATA #IMPLIED" nil) ("collabname.element" text "INCLUDE" nil) ("collabname.attlist" text "INCLUDE" nil) ("authorinitials.module" text "INCLUDE" nil) ("local.authorinitials.attrib" text "" nil) ("authorinitials.role.attrib" text "role CDATA #IMPLIED" nil) ("authorinitials.element" text "INCLUDE" nil) ("authorinitials.attlist" text "INCLUDE" nil) ("confgroup.content.module" text "INCLUDE" nil) ("confgroup.module" text "INCLUDE" nil) ("local.confgroup.attrib" text "" nil) ("confgroup.role.attrib" text "role CDATA #IMPLIED" nil) ("confgroup.element" text "INCLUDE" nil) ("confgroup.attlist" text "INCLUDE" nil) ("confdates.module" text "INCLUDE" nil) ("local.confdates.attrib" text "" nil) ("confdates.role.attrib" text "role CDATA #IMPLIED" nil) ("confdates.element" text "INCLUDE" nil) ("confdates.attlist" text "INCLUDE" nil) ("conftitle.module" text "INCLUDE" nil) ("local.conftitle.attrib" text "" nil) ("conftitle.role.attrib" text "role CDATA #IMPLIED" nil) ("conftitle.element" text "INCLUDE" nil) ("conftitle.attlist" text "INCLUDE" nil) ("confnum.module" text "INCLUDE" nil) ("local.confnum.attrib" text "" nil) ("confnum.role.attrib" text "role CDATA #IMPLIED" nil) ("confnum.element" text "INCLUDE" nil) ("confnum.attlist" text "INCLUDE" nil) ("confsponsor.module" text "INCLUDE" nil) ("local.confsponsor.attrib" text "" nil) ("confsponsor.role.attrib" text "role CDATA #IMPLIED" nil) ("confsponsor.element" text "INCLUDE" nil) ("confsponsor.attlist" text "INCLUDE" nil) ("contractnum.module" text "INCLUDE" nil) ("local.contractnum.attrib" text "" nil) ("contractnum.role.attrib" text "role CDATA #IMPLIED" nil) ("contractnum.element" text "INCLUDE" nil) ("contractnum.attlist" text "INCLUDE" nil) ("contractsponsor.module" text "INCLUDE" nil) ("local.contractsponsor.attrib" text "" nil) ("contractsponsor.role.attrib" text "role CDATA #IMPLIED" nil) ("contractsponsor.element" text "INCLUDE" nil) ("contractsponsor.attlist" text "INCLUDE" nil) ("copyright.content.module" text "INCLUDE" nil) ("copyright.module" text "INCLUDE" nil) ("local.copyright.attrib" text "" nil) ("copyright.role.attrib" text "role CDATA #IMPLIED" nil) ("copyright.element" text "INCLUDE" nil) ("copyright.attlist" text "INCLUDE" nil) ("year.module" text "INCLUDE" nil) ("local.year.attrib" text "" nil) ("year.role.attrib" text "role CDATA #IMPLIED" nil) ("year.element" text "INCLUDE" nil) ("year.attlist" text "INCLUDE" nil) ("holder.module" text "INCLUDE" nil) ("local.holder.attrib" text "" nil) ("holder.role.attrib" text "role CDATA #IMPLIED" nil) ("holder.element" text "INCLUDE" nil) ("holder.attlist" text "INCLUDE" nil) ("corpauthor.module" text "INCLUDE" nil) ("local.corpauthor.attrib" text "" nil) ("corpauthor.role.attrib" text "role CDATA #IMPLIED" nil) ("corpauthor.element" text "INCLUDE" nil) ("corpauthor.attlist" text "INCLUDE" nil) ("corpname.module" text "INCLUDE" nil) ("local.corpname.attrib" text "" nil) ("corpname.element" text "INCLUDE" nil) ("corpname.role.attrib" text "role CDATA #IMPLIED" nil) ("corpname.attlist" text "INCLUDE" nil) ("date.module" text "INCLUDE" nil) ("local.date.attrib" text "" nil) ("date.role.attrib" text "role CDATA #IMPLIED" nil) ("date.element" text "INCLUDE" nil) ("date.attlist" text "INCLUDE" nil) ("edition.module" text "INCLUDE" nil) ("local.edition.attrib" text "" nil) ("edition.role.attrib" text "role CDATA #IMPLIED" nil) ("edition.element" text "INCLUDE" nil) ("edition.attlist" text "INCLUDE" nil) ("editor.module" text "INCLUDE" nil) ("local.editor.attrib" text "" nil) ("editor.role.attrib" text "role CDATA #IMPLIED" nil) ("editor.element" text "INCLUDE" nil) ("editor.attlist" text "INCLUDE" nil) ("isbn.module" text "INCLUDE" nil) ("local.isbn.attrib" text "" nil) ("isbn.role.attrib" text "role CDATA #IMPLIED" nil) ("isbn.element" text "INCLUDE" nil) ("isbn.attlist" text "INCLUDE" nil) ("issn.module" text "INCLUDE" nil) ("local.issn.attrib" text "" nil) ("issn.role.attrib" text "role CDATA #IMPLIED" nil) ("issn.element" text "INCLUDE" nil) ("issn.attlist" text "INCLUDE" nil) ("invpartnumber.module" text "INCLUDE" nil) ("local.invpartnumber.attrib" text "" nil) ("invpartnumber.role.attrib" text "role CDATA #IMPLIED" nil) ("invpartnumber.element" text "INCLUDE" nil) ("invpartnumber.attlist" text "INCLUDE" nil) ("issuenum.module" text "INCLUDE" nil) ("local.issuenum.attrib" text "" nil) ("issuenum.role.attrib" text "role CDATA #IMPLIED" nil) ("issuenum.element" text "INCLUDE" nil) ("issuenum.attlist" text "INCLUDE" nil) ("legalnotice.module" text "INCLUDE" nil) ("local.legalnotice.attrib" text "" nil) ("legalnotice.role.attrib" text "role CDATA #IMPLIED" nil) ("legalnotice.element" text "INCLUDE" nil) ("legalnotice.attlist" text "INCLUDE" nil) ("modespec.module" text "INCLUDE" nil) ("local.modespec.attrib" text "" nil) ("modespec.role.attrib" text "role CDATA #IMPLIED" nil) ("modespec.element" text "INCLUDE" nil) ("modespec.attlist" text "INCLUDE" nil) ("orgname.module" text "INCLUDE" nil) ("local.orgname.attrib" text "" nil) ("orgname.role.attrib" text "role CDATA #IMPLIED" nil) ("orgname.element" text "INCLUDE" nil) ("orgname.attlist" text "INCLUDE" nil) ("othercredit.module" text "INCLUDE" nil) ("local.othercredit.attrib" text "" nil) ("othercredit.role.attrib" text "role CDATA #IMPLIED" nil) ("othercredit.element" text "INCLUDE" nil) ("othercredit.attlist" text "INCLUDE" nil) ("pagenums.module" text "INCLUDE" nil) ("local.pagenums.attrib" text "" nil) ("pagenums.role.attrib" text "role CDATA #IMPLIED" nil) ("pagenums.element" text "INCLUDE" nil) ("pagenums.attlist" text "INCLUDE" nil) ("person.ident.module" text "INCLUDE" nil) ("contrib.module" text "INCLUDE" nil) ("local.contrib.attrib" text "" nil) ("contrib.role.attrib" text "role CDATA #IMPLIED" nil) ("contrib.element" text "INCLUDE" nil) ("contrib.attlist" text "INCLUDE" nil) ("firstname.module" text "INCLUDE" nil) ("local.firstname.attrib" text "" nil) ("firstname.role.attrib" text "role CDATA #IMPLIED" nil) ("firstname.element" text "INCLUDE" nil) ("firstname.attlist" text "INCLUDE" nil) ("honorific.module" text "INCLUDE" nil) ("local.honorific.attrib" text "" nil) ("honorific.role.attrib" text "role CDATA #IMPLIED" nil) ("honorific.element" text "INCLUDE" nil) ("honorific.attlist" text "INCLUDE" nil) ("lineage.module" text "INCLUDE" nil) ("local.lineage.attrib" text "" nil) ("lineage.role.attrib" text "role CDATA #IMPLIED" nil) ("lineage.element" text "INCLUDE" nil) ("lineage.attlist" text "INCLUDE" nil) ("othername.module" text "INCLUDE" nil) ("local.othername.attrib" text "" nil) ("othername.role.attrib" text "role CDATA #IMPLIED" nil) ("othername.element" text "INCLUDE" nil) ("othername.attlist" text "INCLUDE" nil) ("surname.module" text "INCLUDE" nil) ("local.surname.attrib" text "" nil) ("surname.role.attrib" text "role CDATA #IMPLIED" nil) ("surname.element" text "INCLUDE" nil) ("surname.attlist" text "INCLUDE" nil) ("printhistory.module" text "INCLUDE" nil) ("local.printhistory.attrib" text "" nil) ("printhistory.role.attrib" text "role CDATA #IMPLIED" nil) ("printhistory.element" text "INCLUDE" nil) ("printhistory.attlist" text "INCLUDE" nil) ("productname.module" text "INCLUDE" nil) ("local.productname.attrib" text "" nil) ("productname.role.attrib" text "role CDATA #IMPLIED" nil) ("productname.element" text "INCLUDE" nil) ("productname.attlist" text "INCLUDE" nil) ("productnumber.module" text "INCLUDE" nil) ("local.productnumber.attrib" text "" nil) ("productnumber.role.attrib" text "role CDATA #IMPLIED" nil) ("productnumber.element" text "INCLUDE" nil) ("productnumber.attlist" text "INCLUDE" nil) ("pubdate.module" text "INCLUDE" nil) ("local.pubdate.attrib" text "" nil) ("pubdate.role.attrib" text "role CDATA #IMPLIED" nil) ("pubdate.element" text "INCLUDE" nil) ("pubdate.attlist" text "INCLUDE" nil) ("publisher.content.module" text "INCLUDE" nil) ("publisher.module" text "INCLUDE" nil) ("local.publisher.attrib" text "" nil) ("publisher.role.attrib" text "role CDATA #IMPLIED" nil) ("publisher.element" text "INCLUDE" nil) ("publisher.attlist" text "INCLUDE" nil) ("publishername.module" text "INCLUDE" nil) ("local.publishername.attrib" text "" nil) ("publishername.role.attrib" text "role CDATA #IMPLIED" nil) ("publishername.element" text "INCLUDE" nil) ("publishername.attlist" text "INCLUDE" nil) ("pubsnumber.module" text "INCLUDE" nil) ("local.pubsnumber.attrib" text "" nil) ("pubsnumber.role.attrib" text "role CDATA #IMPLIED" nil) ("pubsnumber.element" text "INCLUDE" nil) ("pubsnumber.attlist" text "INCLUDE" nil) ("releaseinfo.module" text "INCLUDE" nil) ("local.releaseinfo.attrib" text "" nil) ("releaseinfo.role.attrib" text "role CDATA #IMPLIED" nil) ("releaseinfo.element" text "INCLUDE" nil) ("releaseinfo.attlist" text "INCLUDE" nil) ("revhistory.content.module" text "INCLUDE" nil) ("revhistory.module" text "INCLUDE" nil) ("local.revhistory.attrib" text "" nil) ("revhistory.role.attrib" text "role CDATA #IMPLIED" nil) ("revhistory.element" text "INCLUDE" nil) ("revhistory.attlist" text "INCLUDE" nil) ("revision.module" text "INCLUDE" nil) ("local.revision.attrib" text "" nil) ("revision.role.attrib" text "role CDATA #IMPLIED" nil) ("revision.element" text "INCLUDE" nil) ("revision.attlist" text "INCLUDE" nil) ("revnumber.module" text "INCLUDE" nil) ("local.revnumber.attrib" text "" nil) ("revnumber.role.attrib" text "role CDATA #IMPLIED" nil) ("revnumber.element" text "INCLUDE" nil) ("revnumber.attlist" text "INCLUDE" nil) ("revremark.module" text "INCLUDE" nil) ("local.revremark.attrib" text "" nil) ("revremark.role.attrib" text "role CDATA #IMPLIED" nil) ("revremark.element" text "INCLUDE" nil) ("revremark.attlist" text "INCLUDE" nil) ("revdescription.module" text "INCLUDE" nil) ("local.revdescription.attrib" text "" nil) ("revdescription.role.attrib" text "role CDATA #IMPLIED" nil) ("revdescription.element" text "INCLUDE" nil) ("revdescription.attlist" text "INCLUDE" nil) ("seriesvolnums.module" text "INCLUDE" nil) ("local.seriesvolnums.attrib" text "" nil) ("seriesvolnums.role.attrib" text "role CDATA #IMPLIED" nil) ("seriesvolnums.element" text "INCLUDE" nil) ("seriesvolnums.attlist" text "INCLUDE" nil) ("volumenum.module" text "INCLUDE" nil) ("local.volumenum.attrib" text "" nil) ("volumenum.role.attrib" text "role CDATA #IMPLIED" nil) ("volumenum.element" text "INCLUDE" nil) ("volumenum.attlist" text "INCLUDE" nil) ("accel.module" text "INCLUDE" nil) ("local.accel.attrib" text "" nil) ("accel.role.attrib" text "role CDATA #IMPLIED" nil) ("accel.element" text "INCLUDE" nil) ("accel.attlist" text "INCLUDE" nil) ("action.module" text "INCLUDE" nil) ("local.action.attrib" text "" nil) ("action.role.attrib" text "role CDATA #IMPLIED" nil) ("action.element" text "INCLUDE" nil) ("action.attlist" text "INCLUDE" nil) ("application.module" text "INCLUDE" nil) ("local.application.attrib" text "" nil) ("application.role.attrib" text "role CDATA #IMPLIED" nil) ("application.element" text "INCLUDE" nil) ("application.attlist" text "INCLUDE" nil) ("classname.module" text "INCLUDE" nil) ("local.classname.attrib" text "" nil) ("classname.role.attrib" text "role CDATA #IMPLIED" nil) ("classname.element" text "INCLUDE" nil) ("classname.attlist" text "INCLUDE" nil) ("co.module" text "INCLUDE" nil) ("local.co.attrib" text "" nil) ("co.role.attrib" text "role CDATA #IMPLIED" nil) ("co.element" text "INCLUDE" nil) ("co.attlist" text "INCLUDE" nil) ("command.module" text "INCLUDE" nil) ("local.command.attrib" text "" nil) ("command.role.attrib" text "role CDATA #IMPLIED" nil) ("command.element" text "INCLUDE" nil) ("command.attlist" text "INCLUDE" nil) ("computeroutput.module" text "INCLUDE" nil) ("local.computeroutput.attrib" text "" nil) ("computeroutput.role.attrib" text "role CDATA #IMPLIED" nil) ("computeroutput.element" text "INCLUDE" nil) ("computeroutput.attlist" text "INCLUDE" nil) ("database.module" text "INCLUDE" nil) ("local.database.attrib" text "" nil) ("database.role.attrib" text "role CDATA #IMPLIED" nil) ("database.element" text "INCLUDE" nil) ("database.attlist" text "INCLUDE" nil) ("email.module" text "INCLUDE" nil) ("local.email.attrib" text "" nil) ("email.role.attrib" text "role CDATA #IMPLIED" nil) ("email.element" text "INCLUDE" nil) ("email.attlist" text "INCLUDE" nil) ("envar.module" text "INCLUDE" nil) ("local.envar.attrib" text "" nil) ("envar.role.attrib" text "role CDATA #IMPLIED" nil) ("envar.element" text "INCLUDE" nil) ("envar.attlist" text "INCLUDE" nil) ("errorcode.module" text "INCLUDE" nil) ("local.errorcode.attrib" text "" nil) ("errorcode.role.attrib" text "role CDATA #IMPLIED" nil) ("errorcode.element" text "INCLUDE" nil) ("errorcode.attlist" text "INCLUDE" nil) ("errorname.module" text "INCLUDE" nil) ("local.errorname.attrib" text "" nil) ("errorname.role.attrib" text "role CDATA #IMPLIED" nil) ("errorname.element" text "INCLUDE" nil) ("errorname.attlist" text "INCLUDE" nil) ("errortype.module" text "INCLUDE" nil) ("local.errortype.attrib" text "" nil) ("errortype.role.attrib" text "role CDATA #IMPLIED" nil) ("errortype.element" text "INCLUDE" nil) ("errortype.attlist" text "INCLUDE" nil) ("filename.module" text "INCLUDE" nil) ("local.filename.attrib" text "" nil) ("filename.role.attrib" text "role CDATA #IMPLIED" nil) ("filename.element" text "INCLUDE" nil) ("filename.attlist" text "INCLUDE" nil) ("function.module" text "INCLUDE" nil) ("local.function.attrib" text "" nil) ("function.role.attrib" text "role CDATA #IMPLIED" nil) ("function.element" text "INCLUDE" nil) ("function.attlist" text "INCLUDE" nil) ("guibutton.module" text "INCLUDE" nil) ("local.guibutton.attrib" text "" nil) ("guibutton.role.attrib" text "role CDATA #IMPLIED" nil) ("guibutton.element" text "INCLUDE" nil) ("guibutton.attlist" text "INCLUDE" nil) ("guiicon.module" text "INCLUDE" nil) ("local.guiicon.attrib" text "" nil) ("guiicon.role.attrib" text "role CDATA #IMPLIED" nil) ("guiicon.element" text "INCLUDE" nil) ("guiicon.attlist" text "INCLUDE" nil) ("guilabel.module" text "INCLUDE" nil) ("local.guilabel.attrib" text "" nil) ("guilabel.role.attrib" text "role CDATA #IMPLIED" nil) ("guilabel.element" text "INCLUDE" nil) ("guilabel.attlist" text "INCLUDE" nil) ("guimenu.module" text "INCLUDE" nil) ("local.guimenu.attrib" text "" nil) ("guimenu.role.attrib" text "role CDATA #IMPLIED" nil) ("guimenu.element" text "INCLUDE" nil) ("guimenu.attlist" text "INCLUDE" nil) ("guimenuitem.module" text "INCLUDE" nil) ("local.guimenuitem.attrib" text "" nil) ("guimenuitem.role.attrib" text "role CDATA #IMPLIED" nil) ("guimenuitem.element" text "INCLUDE" nil) ("guimenuitem.attlist" text "INCLUDE" nil) ("guisubmenu.module" text "INCLUDE" nil) ("local.guisubmenu.attrib" text "" nil) ("guisubmenu.role.attrib" text "role CDATA #IMPLIED" nil) ("guisubmenu.element" text "INCLUDE" nil) ("guisubmenu.attlist" text "INCLUDE" nil) ("hardware.module" text "INCLUDE" nil) ("local.hardware.attrib" text "" nil) ("hardware.role.attrib" text "role CDATA #IMPLIED" nil) ("hardware.element" text "INCLUDE" nil) ("hardware.attlist" text "INCLUDE" nil) ("interface.module" text "INCLUDE" nil) ("local.interface.attrib" text "" nil) ("interface.role.attrib" text "role CDATA #IMPLIED" nil) ("interface.element" text "INCLUDE" nil) ("interface.attlist" text "INCLUDE" nil) ("keycap.module" text "INCLUDE" nil) ("local.keycap.attrib" text "" nil) ("keycap.role.attrib" text "role CDATA #IMPLIED" nil) ("keycap.element" text "INCLUDE" nil) ("keycap.attlist" text "INCLUDE" nil) ("keycode.module" text "INCLUDE" nil) ("local.keycode.attrib" text "" nil) ("keycode.role.attrib" text "role CDATA #IMPLIED" nil) ("keycode.element" text "INCLUDE" nil) ("keycode.attlist" text "INCLUDE" nil) ("keycombo.module" text "INCLUDE" nil) ("local.keycombo.attrib" text "" nil) ("keycombo.role.attrib" text "role CDATA #IMPLIED" nil) ("keycombo.element" text "INCLUDE" nil) ("keycombo.attlist" text "INCLUDE" nil) ("keysym.module" text "INCLUDE" nil) ("local.keysym.attrib" text "" nil) ("keysysm.role.attrib" text "role CDATA #IMPLIED" nil) ("keysym.element" text "INCLUDE" nil) ("keysym.attlist" text "INCLUDE" nil) ("lineannotation.module" text "INCLUDE" nil) ("local.lineannotation.attrib" text "" nil) ("lineannotation.role.attrib" text "role CDATA #IMPLIED" nil) ("lineannotation.element" text "INCLUDE" nil) ("lineannotation.attlist" text "INCLUDE" nil) ("literal.module" text "INCLUDE" nil) ("local.literal.attrib" text "" nil) ("literal.role.attrib" text "role CDATA #IMPLIED" nil) ("literal.element" text "INCLUDE" nil) ("literal.attlist" text "INCLUDE" nil) ("constant.module" text "INCLUDE" nil) ("local.constant.attrib" text "" nil) ("constant.role.attrib" text "role CDATA #IMPLIED" nil) ("constant.element" text "INCLUDE" nil) ("constant.attlist" text "INCLUDE" nil) ("varname.module" text "INCLUDE" nil) ("local.varname.attrib" text "" nil) ("varname.role.attrib" text "role CDATA #IMPLIED" nil) ("varname.element" text "INCLUDE" nil) ("varname.attlist" text "INCLUDE" nil) ("markup.module" text "INCLUDE" nil) ("local.markup.attrib" text "" nil) ("markup.role.attrib" text "role CDATA #IMPLIED" nil) ("markup.element" text "INCLUDE" nil) ("markup.attlist" text "INCLUDE" nil) ("medialabel.module" text "INCLUDE" nil) ("local.medialabel.attrib" text "" nil) ("medialabel.role.attrib" text "role CDATA #IMPLIED" nil) ("medialabel.element" text "INCLUDE" nil) ("medialabel.attlist" text "INCLUDE" nil) ("menuchoice.content.module" text "INCLUDE" nil) ("menuchoice.module" text "INCLUDE" nil) ("local.menuchoice.attrib" text "" nil) ("menuchoice.role.attrib" text "role CDATA #IMPLIED" nil) ("menuchoice.element" text "INCLUDE" nil) ("menuchoice.attlist" text "INCLUDE" nil) ("shortcut.module" text "INCLUDE" nil) ("local.shortcut.attrib" text "" nil) ("shortcut.role.attrib" text "role CDATA #IMPLIED" nil) ("shortcut.element" text "INCLUDE" nil) ("shortcut.attlist" text "INCLUDE" nil) ("mousebutton.module" text "INCLUDE" nil) ("local.mousebutton.attrib" text "" nil) ("mousebutton.role.attrib" text "role CDATA #IMPLIED" nil) ("mousebutton.element" text "INCLUDE" nil) ("mousebutton.attlist" text "INCLUDE" nil) ("msgtext.module" text "INCLUDE" nil) ("local.msgtext.attrib" text "" nil) ("msgtext.role.attrib" text "role CDATA #IMPLIED" nil) ("msgtext.element" text "INCLUDE" nil) ("msgtext.attlist" text "INCLUDE" nil) ("option.module" text "INCLUDE" nil) ("local.option.attrib" text "" nil) ("option.role.attrib" text "role CDATA #IMPLIED" nil) ("option.element" text "INCLUDE" nil) ("option.attlist" text "INCLUDE" nil) ("optional.module" text "INCLUDE" nil) ("local.optional.attrib" text "" nil) ("optional.role.attrib" text "role CDATA #IMPLIED" nil) ("optional.element" text "INCLUDE" nil) ("optional.attlist" text "INCLUDE" nil) ("parameter.module" text "INCLUDE" nil) ("local.parameter.attrib" text "" nil) ("parameter.role.attrib" text "role CDATA #IMPLIED" nil) ("parameter.element" text "INCLUDE" nil) ("parameter.attlist" text "INCLUDE" nil) ("prompt.module" text "INCLUDE" nil) ("local.prompt.attrib" text "" nil) ("prompt.role.attrib" text "role CDATA #IMPLIED" nil) ("prompt.element" text "INCLUDE" nil) ("prompt.attlist" text "INCLUDE" nil) ("property.module" text "INCLUDE" nil) ("local.property.attrib" text "" nil) ("property.role.attrib" text "role CDATA #IMPLIED" nil) ("property.element" text "INCLUDE" nil) ("property.attlist" text "INCLUDE" nil) ("replaceable.module" text "INCLUDE" nil) ("local.replaceable.attrib" text "" nil) ("replaceable.role.attrib" text "role CDATA #IMPLIED" nil) ("replaceable.element" text "INCLUDE" nil) ("replaceable.attlist" text "INCLUDE" nil) ("returnvalue.module" text "INCLUDE" nil) ("local.returnvalue.attrib" text "" nil) ("returnvalue.role.attrib" text "role CDATA #IMPLIED" nil) ("returnvalue.element" text "INCLUDE" nil) ("returnvalue.attlist" text "INCLUDE" nil) ("sgmltag.module" text "INCLUDE" nil) ("local.sgmltag.attrib" text "" nil) ("sgmltag.role.attrib" text "role CDATA #IMPLIED" nil) ("sgmltag.element" text "INCLUDE" nil) ("sgmltag.attlist" text "INCLUDE" nil) ("structfield.module" text "INCLUDE" nil) ("local.structfield.attrib" text "" nil) ("structfield.role.attrib" text "role CDATA #IMPLIED" nil) ("structfield.element" text "INCLUDE" nil) ("structfield.attlist" text "INCLUDE" nil) ("structname.module" text "INCLUDE" nil) ("local.structname.attrib" text "" nil) ("structname.role.attrib" text "role CDATA #IMPLIED" nil) ("structname.element" text "INCLUDE" nil) ("structname.attlist" text "INCLUDE" nil) ("symbol.module" text "INCLUDE" nil) ("local.symbol.attrib" text "" nil) ("symbol.role.attrib" text "role CDATA #IMPLIED" nil) ("symbol.element" text "INCLUDE" nil) ("symbol.attlist" text "INCLUDE" nil) ("systemitem.module" text "INCLUDE" nil) ("local.systemitem.attrib" text "" nil) ("systemitem.role.attrib" text "role CDATA #IMPLIED" nil) ("systemitem.element" text "INCLUDE" nil) ("systemitem.attlist" text "INCLUDE" nil) ("token.module" text "INCLUDE" nil) ("local.token.attrib" text "" nil) ("token.role.attrib" text "role CDATA #IMPLIED" nil) ("token.element" text "INCLUDE" nil) ("token.attlist" text "INCLUDE" nil) ("type.module" text "INCLUDE" nil) ("local.type.attrib" text "" nil) ("type.role.attrib" text "role CDATA #IMPLIED" nil) ("type.element" text "INCLUDE" nil) ("type.attlist" text "INCLUDE" nil) ("userinput.module" text "INCLUDE" nil) ("local.userinput.attrib" text "" nil) ("userinput.role.attrib" text "role CDATA #IMPLIED" nil) ("userinput.element" text "INCLUDE" nil) ("userinput.attlist" text "INCLUDE" nil) ("abbrev.module" text "INCLUDE" nil) ("local.abbrev.attrib" text "" nil) ("abbrev.role.attrib" text "role CDATA #IMPLIED" nil) ("abbrev.element" text "INCLUDE" nil) ("abbrev.attlist" text "INCLUDE" nil) ("acronym.module" text "INCLUDE" nil) ("local.acronym.attrib" text "" nil) ("acronym.role.attrib" text "role CDATA #IMPLIED" nil) ("acronym.element" text "INCLUDE" nil) ("acronym.attlist" text "INCLUDE" nil) ("citation.module" text "INCLUDE" nil) ("local.citation.attrib" text "" nil) ("citation.role.attrib" text "role CDATA #IMPLIED" nil) ("citation.element" text "INCLUDE" nil) ("citation.attlist" text "INCLUDE" nil) ("citerefentry.module" text "INCLUDE" nil) ("local.citerefentry.attrib" text "" nil) ("citerefentry.role.attrib" text "role CDATA #IMPLIED" nil) ("citerefentry.element" text "INCLUDE" nil) ("citerefentry.attlist" text "INCLUDE" nil) ("refentrytitle.module" text "INCLUDE" nil) ("local.refentrytitle.attrib" text "" nil) ("refentrytitle.role.attrib" text "role CDATA #IMPLIED" nil) ("refentrytitle.element" text "INCLUDE" nil) ("refentrytitle.attlist" text "INCLUDE" nil) ("manvolnum.module" text "INCLUDE" nil) ("local.manvolnum.attrib" text "" nil) ("namvolnum.role.attrib" text "role CDATA #IMPLIED" nil) ("manvolnum.element" text "INCLUDE" nil) ("manvolnum.attlist" text "INCLUDE" nil) ("citetitle.module" text "INCLUDE" nil) ("local.citetitle.attrib" text "" nil) ("citetitle.role.attrib" text "role CDATA #IMPLIED" nil) ("citetitle.element" text "INCLUDE" nil) ("citetitle.attlist" text "INCLUDE" nil) ("emphasis.module" text "INCLUDE" nil) ("local.emphasis.attrib" text "" nil) ("emphasis.role.attrib" text "role CDATA #IMPLIED" nil) ("emphasis.element" text "INCLUDE" nil) ("emphasis.attlist" text "INCLUDE" nil) ("firstterm.module" text "INCLUDE" nil) ("local.firstterm.attrib" text "" nil) ("firstterm.role.attrib" text "role CDATA #IMPLIED" nil) ("firstterm.element" text "INCLUDE" nil) ("firstterm.attlist" text "INCLUDE" nil) ("foreignphrase.module" text "INCLUDE" nil) ("local.foreignphrase.attrib" text "" nil) ("foreignphrase.role.attrib" text "role CDATA #IMPLIED" nil) ("foreignphrase.element" text "INCLUDE" nil) ("foreignphrase.attlist" text "INCLUDE" nil) ("glossterm.module" text "INCLUDE" nil) ("local.glossterm.attrib" text "" nil) ("glossterm.role.attrib" text "role CDATA #IMPLIED" nil) ("glossterm.element" text "INCLUDE" nil) ("glossterm.attlist" text "INCLUDE" nil) ("phrase.module" text "INCLUDE" nil) ("local.phrase.attrib" text "" nil) ("phrase.role.attrib" text "role CDATA #IMPLIED" nil) ("phrase.element" text "INCLUDE" nil) ("phrase.attlist" text "INCLUDE" nil) ("quote.module" text "INCLUDE" nil) ("local.quote.attrib" text "" nil) ("quote.role.attrib" text "role CDATA #IMPLIED" nil) ("quote.element" text "INCLUDE" nil) ("quote.attlist" text "INCLUDE" nil) ("ssscript.module" text "INCLUDE" nil) ("local.ssscript.attrib" text "" nil) ("ssscript.role.attrib" text "role CDATA #IMPLIED" nil) ("subscript.element" text "INCLUDE" nil) ("subscript.attlist" text "INCLUDE" nil) ("superscript.element" text "INCLUDE" nil) ("superscript.attlist" text "INCLUDE" nil) ("trademark.module" text "INCLUDE" nil) ("local.trademark.attrib" text "" nil) ("trademark.role.attrib" text "role CDATA #IMPLIED" nil) ("trademark.element" text "INCLUDE" nil) ("trademark.attlist" text "INCLUDE" nil) ("wordasword.module" text "INCLUDE" nil) ("local.wordasword.attrib" text "" nil) ("wordasword.role.attrib" text "role CDATA #IMPLIED" nil) ("wordasword.element" text "INCLUDE" nil) ("wordasword.attlist" text "INCLUDE" nil) ("link.module" text "INCLUDE" nil) ("local.link.attrib" text "" nil) ("link.role.attrib" text "role CDATA #IMPLIED" nil) ("link.element" text "INCLUDE" nil) ("link.attlist" text "INCLUDE" nil) ("olink.module" text "INCLUDE" nil) ("local.olink.attrib" text "" nil) ("olink.role.attrib" text "role CDATA #IMPLIED" nil) ("olink.element" text "INCLUDE" nil) ("olink.attlist" text "INCLUDE" nil) ("ulink.module" text "INCLUDE" nil) ("local.ulink.attrib" text "" nil) ("ulink.role.attrib" text "role CDATA #IMPLIED" nil) ("ulink.element" text "INCLUDE" nil) ("ulink.attlist" text "INCLUDE" nil) ("footnoteref.module" text "INCLUDE" nil) ("local.footnoteref.attrib" text "" nil) ("footnoteref.role.attrib" text "role CDATA #IMPLIED" nil) ("footnoteref.element" text "INCLUDE" nil) ("footnoteref.attlist" text "INCLUDE" nil) ("xref.module" text "INCLUDE" nil) ("local.xref.attrib" text "" nil) ("xref.role.attrib" text "role CDATA #IMPLIED" nil) ("xref.element" text "INCLUDE" nil) ("xref.attlist" text "INCLUDE" nil) ("anchor.module" text "INCLUDE" nil) ("local.anchor.attrib" text "" nil) ("anchor.role.attrib" text "role CDATA #IMPLIED" nil) ("anchor.element" text "INCLUDE" nil) ("anchor.attlist" text "INCLUDE" nil) ("beginpage.module" text "INCLUDE" nil) ("local.beginpage.attrib" text "" nil) ("beginpage.role.attrib" text "role CDATA #IMPLIED" nil) ("beginpage.element" text "INCLUDE" nil) ("beginpage.attlist" text "INCLUDE" nil) ("indexterm.content.module" text "INCLUDE" nil) ("indexterm.module" text "INCLUDE" nil) ("local.indexterm.attrib" text "" nil) ("indexterm.role.attrib" text "role CDATA #IMPLIED" nil) ("indexterm.element" text "INCLUDE" nil) ("indexterm.attlist" text "INCLUDE" nil) ("primsecter.module" text "INCLUDE" nil) ("local.primsecter.attrib" text "" nil) ("primsecter.role.attrib" text "role CDATA #IMPLIED" nil) ("primary.element" text "INCLUDE" nil) ("primary.attlist" text "INCLUDE" nil) ("secondary.element" text "INCLUDE" nil) ("secondary.attlist" text "INCLUDE" nil) ("tertiary.element" text "INCLUDE" nil) ("tertiary.attlist" text "INCLUDE" nil) ("seeseealso.module" text "INCLUDE" nil) ("local.seeseealso.attrib" text "" nil) ("seeseealso.role.attrib" text "role CDATA #IMPLIED" nil) ("see.element" text "INCLUDE" nil) ("see.attlist" text "INCLUDE" nil) ("seealso.element" text "INCLUDE" nil) ("seealso.attlist" text "INCLUDE" nil) ("intermod.redecl.module" text "IGNORE" nil) ("dbhier.module" text "INCLUDE" nil) ("dbhier" text ("-//OASIS//ELEMENTS DocBook XML Document Hierarchy V4.1.2//EN" "dbhierx.mod" . "/usr/share/sgml/docbook/dtd/xml/4.1.2/") nil) ("dbhier.redecl.module" text "IGNORE" nil) ("dbhier.redecl2.module" text "IGNORE" nil) ("local.appendix.class" text "" nil) ("appendix.class" text "appendix " nil) ("local.article.class" text "" nil) ("article.class" text "article " nil) ("local.book.class" text "" nil) ("book.class" text "book " nil) ("local.chapter.class" text "" nil) ("chapter.class" text "chapter " nil) ("local.index.class" text "" nil) ("index.class" text "index|setindex " nil) ("local.refentry.class" text "" nil) ("refentry.class" text "refentry " nil) ("local.nav.class" text "" nil) ("nav.class" text "toc|lot|index|glossary|bibliography " nil) ("forms.hook" text "" nil) ("local.divcomponent.mix" text "" nil) ("divcomponent.mix" text "calloutlist|glosslist|itemizedlist|orderedlist|segmentedlist |simplelist|variablelist |caution|important|note|tip|warning |literallayout|programlisting|programlistingco|screen |screenco|screenshot |synopsis|cmdsynopsis|funcsynopsis |classsynopsis|fieldsynopsis |constructorsynopsis |destructorsynopsis |methodsynopsis |formalpara|para|simpara |address|blockquote |graphic|graphicco|mediaobject|mediaobjectco |informalequation |informalexample |informalfigure |informaltable |equation|example|figure|table |msgset|procedure|sidebar|qandaset |anchor|bridgehead|remark|highlights |abstract|authorblurb|epigraph |indexterm |beginpage " nil) ("local.refcomponent.mix" text "" nil) ("refcomponent.mix" text "calloutlist|glosslist|itemizedlist|orderedlist|segmentedlist |simplelist|variablelist |caution|important|note|tip|warning |literallayout|programlisting|programlistingco|screen |screenco|screenshot |synopsis|cmdsynopsis|funcsynopsis |classsynopsis|fieldsynopsis |constructorsynopsis |destructorsynopsis |methodsynopsis |formalpara|para|simpara |address|blockquote |graphic|graphicco|mediaobject|mediaobjectco |informalequation |informalexample |informalfigure |informaltable |equation|example|figure|table |msgset|procedure|sidebar|qandaset |anchor|bridgehead|remark|highlights |abstract|authorblurb|epigraph |indexterm |beginpage " nil) ("local.indexdivcomponent.mix" text "" nil) ("indexdivcomponent.mix" text "itemizedlist|orderedlist|variablelist|simplelist |literallayout|programlisting|programlistingco|screen |screenco|screenshot |synopsis|cmdsynopsis|funcsynopsis |classsynopsis|fieldsynopsis |constructorsynopsis |destructorsynopsis |methodsynopsis |formalpara|para|simpara |address|blockquote |graphic|graphicco|mediaobject|mediaobjectco |informalequation |informalexample |informalfigure |informaltable |anchor|remark |link|olink|ulink |beginpage " nil) ("local.refname.char.mix" text "" nil) ("refname.char.mix" text "#PCDATA |action|application |classname|methodname|interfacename|exceptionname |ooclass|oointerface|ooexception |command|computeroutput |database|email|envar|errorcode|errorname|errortype|filename |function|guibutton|guiicon|guilabel|guimenu|guimenuitem |guisubmenu|hardware|interface|keycap |keycode|keycombo|keysym|literal|constant|markup|medialabel |menuchoice|mousebutton|option|optional|parameter |prompt|property|replaceable|returnvalue|sgmltag|structfield |structname|symbol|systemitem|token|type|userinput|varname " nil) ("local.partcontent.mix" text "" nil) ("partcontent.mix" text "appendix |chapter |toc|lot|index|glossary|bibliography |article |preface|refentry |reference " nil) ("local.refinline.char.mix" text "" nil) ("refinline.char.mix" text "#PCDATA |footnoteref|xref |abbrev|acronym|citation|citerefentry|citetitle|emphasis |firstterm|foreignphrase|glossterm|footnote|phrase |quote|trademark|wordasword |link|olink|ulink |action|application |classname|methodname|interfacename|exceptionname |ooclass|oointerface|ooexception |command|computeroutput |database|email|envar|errorcode|errorname|errortype|filename |function|guibutton|guiicon|guilabel|guimenu|guimenuitem |guisubmenu|hardware|interface|keycap |keycode|keycombo|keysym|literal|constant|markup|medialabel |menuchoice|mousebutton|option|optional|parameter |prompt|property|replaceable|returnvalue|sgmltag|structfield |structname|symbol|systemitem|token|type|userinput|varname |anchor |author|authorinitials|corpauthor|modespec|othercredit |productname|productnumber|revhistory |remark|subscript|superscript |indexterm |beginpage " nil) ("local.refclass.char.mix" text "" nil) ("refclass.char.mix" text "#PCDATA |application " nil) ("div.title.content" text "title, subtitle?, titleabbrev?" nil) ("bookcomponent.title.content" text "title, subtitle?, titleabbrev?" nil) ("sect.title.content" text "title, subtitle?, titleabbrev?" nil) ("refsect.title.content" text "title, subtitle?, titleabbrev?" nil) ("bookcomponent.content" text "((calloutlist|glosslist|itemizedlist|orderedlist|segmentedlist |simplelist|variablelist |caution|important|note|tip|warning |literallayout|programlisting|programlistingco|screen |screenco|screenshot |synopsis|cmdsynopsis|funcsynopsis |classsynopsis|fieldsynopsis |constructorsynopsis |destructorsynopsis |methodsynopsis |formalpara|para|simpara |address|blockquote |graphic|graphicco|mediaobject|mediaobjectco |informalequation |informalexample |informalfigure |informaltable |equation|example|figure|table |msgset|procedure|sidebar|qandaset |anchor|bridgehead|remark|highlights |abstract|authorblurb|epigraph |indexterm |beginpage )+, (sect1*|(refentry )*|simplesect*|section*)) | (sect1+|(refentry )+|simplesect+|section+)" nil) ("set.content.module" text "INCLUDE" nil) ("set.module" text "INCLUDE" nil) ("local.set.attrib" text "" nil) ("set.role.attrib" text "role CDATA #IMPLIED" nil) ("set.element" text "INCLUDE" nil) ("set.attlist" text "INCLUDE" nil) ("setinfo.module" text "INCLUDE" nil) ("local.setinfo.attrib" text "" nil) ("setinfo.role.attrib" text "role CDATA #IMPLIED" nil) ("setinfo.element" text "INCLUDE" nil) ("setinfo.attlist" text "INCLUDE" nil) ("book.content.module" text "INCLUDE" nil) ("book.module" text "INCLUDE" nil) ("local.book.attrib" text "" nil) ("book.role.attrib" text "role CDATA #IMPLIED" nil) ("book.element" text "INCLUDE" nil) ("book.attlist" text "INCLUDE" nil) ("bookinfo.module" text "INCLUDE" nil) ("local.bookinfo.attrib" text "" nil) ("bookinfo.role.attrib" text "role CDATA #IMPLIED" nil) ("bookinfo.element" text "INCLUDE" nil) ("bookinfo.attlist" text "INCLUDE" nil) ("dedication.module" text "INCLUDE" nil) ("local.dedication.attrib" text "" nil) ("dedication.role.attrib" text "role CDATA #IMPLIED" nil) ("dedication.element" text "INCLUDE" nil) ("dedication.attlist" text "INCLUDE" nil) ("colophon.module" text "INCLUDE" nil) ("local.colophon.attrib" text "" nil) ("colophon.role.attrib" text "role CDATA #IMPLIED" nil) ("colophon.element" text "INCLUDE" nil) ("colophon.attlist" text "INCLUDE" nil) ("toc.content.module" text "INCLUDE" nil) ("toc.module" text "INCLUDE" nil) ("local.toc.attrib" text "" nil) ("toc.role.attrib" text "role CDATA #IMPLIED" nil) ("toc.element" text "INCLUDE" nil) ("toc.attlist" text "INCLUDE" nil) ("tocfront.module" text "INCLUDE" nil) ("local.tocfront.attrib" text "" nil) ("tocfront.role.attrib" text "role CDATA #IMPLIED" nil) ("tocfront.element" text "INCLUDE" nil) ("tocfront.attlist" text "INCLUDE" nil) ("tocentry.module" text "INCLUDE" nil) ("local.tocentry.attrib" text "" nil) ("tocentry.role.attrib" text "role CDATA #IMPLIED" nil) ("tocentry.element" text "INCLUDE" nil) ("tocentry.attlist" text "INCLUDE" nil) ("tocpart.module" text "INCLUDE" nil) ("local.tocpart.attrib" text "" nil) ("tocpart.role.attrib" text "role CDATA #IMPLIED" nil) ("tocpart.element" text "INCLUDE" nil) ("tocpart.attlist" text "INCLUDE" nil) ("tocchap.module" text "INCLUDE" nil) ("local.tocchap.attrib" text "" nil) ("tocchap.role.attrib" text "role CDATA #IMPLIED" nil) ("tocchap.element" text "INCLUDE" nil) ("tocchap.attlist" text "INCLUDE" nil) ("toclevel1.module" text "INCLUDE" nil) ("local.toclevel1.attrib" text "" nil) ("toclevel1.role.attrib" text "role CDATA #IMPLIED" nil) ("toclevel1.element" text "INCLUDE" nil) ("toclevel1.attlist" text "INCLUDE" nil) ("toclevel2.module" text "INCLUDE" nil) ("local.toclevel2.attrib" text "" nil) ("toclevel2.role.attrib" text "role CDATA #IMPLIED" nil) ("toclevel2.element" text "INCLUDE" nil) ("toclevel2.attlist" text "INCLUDE" nil) ("toclevel3.module" text "INCLUDE" nil) ("local.toclevel3.attrib" text "" nil) ("toclevel3.role.attrib" text "role CDATA #IMPLIED" nil) ("toclevel3.element" text "INCLUDE" nil) ("toclevel3.attlist" text "INCLUDE" nil) ("toclevel4.module" text "INCLUDE" nil) ("local.toclevel4.attrib" text "" nil) ("toclevel4.role.attrib" text "role CDATA #IMPLIED" nil) ("toclevel4.element" text "INCLUDE" nil) ("toclevel4.attlist" text "INCLUDE" nil) ("toclevel5.module" text "INCLUDE" nil) ("local.toclevel5.attrib" text "" nil) ("toclevel5.role.attrib" text "role CDATA #IMPLIED" nil) ("toclevel5.element" text "INCLUDE" nil) ("toclevel5.attlist" text "INCLUDE" nil) ("tocback.module" text "INCLUDE" nil) ("local.tocback.attrib" text "" nil) ("tocback.role.attrib" text "role CDATA #IMPLIED" nil) ("tocback.element" text "INCLUDE" nil) ("tocback.attlist" text "INCLUDE" nil) ("lot.content.module" text "INCLUDE" nil) ("lot.module" text "INCLUDE" nil) ("local.lot.attrib" text "" nil) ("lot.role.attrib" text "role CDATA #IMPLIED" nil) ("lot.element" text "INCLUDE" nil) ("lot.attlist" text "INCLUDE" nil) ("lotentry.module" text "INCLUDE" nil) ("local.lotentry.attrib" text "" nil) ("lotentry.role.attrib" text "role CDATA #IMPLIED" nil) ("lotentry.element" text "INCLUDE" nil) ("lotentry.attlist" text "INCLUDE" nil) ("appendix.module" text "INCLUDE" nil) ("local.appendix.attrib" text "" nil) ("appendix.role.attrib" text "role CDATA #IMPLIED" nil) ("appendix.element" text "INCLUDE" nil) ("appendix.attlist" text "INCLUDE" nil) ("chapter.module" text "INCLUDE" nil) ("local.chapter.attrib" text "" nil) ("chapter.role.attrib" text "role CDATA #IMPLIED" nil) ("chapter.element" text "INCLUDE" nil) ("chapter.attlist" text "INCLUDE" nil) ("part.module" text "INCLUDE" nil) ("local.part.attrib" text "" nil) ("part.role.attrib" text "role CDATA #IMPLIED" nil) ("part.element" text "INCLUDE" nil) ("part.attlist" text "INCLUDE" nil) ("preface.module" text "INCLUDE" nil) ("local.preface.attrib" text "" nil) ("preface.role.attrib" text "role CDATA #IMPLIED" nil) ("preface.element" text "INCLUDE" nil) ("preface.attlist" text "INCLUDE" nil) ("reference.module" text "INCLUDE" nil) ("local.reference.attrib" text "" nil) ("reference.role.attrib" text "role CDATA #IMPLIED" nil) ("reference.element" text "INCLUDE" nil) ("reference.attlist" text "INCLUDE" nil) ("partintro.module" text "INCLUDE" nil) ("local.partintro.attrib" text "" nil) ("partintro.role.attrib" text "role CDATA #IMPLIED" nil) ("partintro.element" text "INCLUDE" nil) ("partintro.attlist" text "INCLUDE" nil) ("appendixinfo.module" text "INCLUDE" nil) ("local.appendixinfo.attrib" text "" nil) ("appendixinfo.role.attrib" text "role CDATA #IMPLIED" nil) ("appendixinfo.element" text "INCLUDE" nil) ("appendixinfo.attlist" text "INCLUDE" nil) ("bibliographyinfo.module" text "INCLUDE" nil) ("local.bibliographyinfo.attrib" text "" nil) ("bibliographyinfo.role.attrib" text "role CDATA #IMPLIED" nil) ("bibliographyinfo.element" text "INCLUDE" nil) ("bibliographyinfo.attlist" text "INCLUDE" nil) ("chapterinfo.module" text "INCLUDE" nil) ("local.chapterinfo.attrib" text "" nil) ("chapterinfo.role.attrib" text "role CDATA #IMPLIED" nil) ("chapterinfo.element" text "INCLUDE" nil) ("chapterinfo.attlist" text "INCLUDE" nil) ("glossaryinfo.module" text "INCLUDE" nil) ("local.glossaryinfo.attrib" text "" nil) ("glossaryinfo.role.attrib" text "role CDATA #IMPLIED" nil) ("glossaryinfo.element" text "INCLUDE" nil) ("glossaryinfo.attlist" text "INCLUDE" nil) ("indexinfo.module" text "INCLUDE" nil) ("local.indexinfo.attrib" text "" nil) ("indexinfo.role.attrib" text "role CDATA #IMPLIED" nil) ("indexinfo.element" text "INCLUDE" nil) ("indexinfo.attlist" text "INCLUDE" nil) ("setindexinfo.module" text "INCLUDE" nil) ("local.setindexinfo.attrib" text "" nil) ("setindexinfo.role.attrib" text "role CDATA #IMPLIED" nil) ("setindexinfo.element" text "INCLUDE" nil) ("setindexinfo.attlist" text "INCLUDE" nil) ("partinfo.module" text "INCLUDE" nil) ("local.partinfo.attrib" text "" nil) ("partinfo.role.attrib" text "role CDATA #IMPLIED" nil) ("partinfo.element" text "INCLUDE" nil) ("partinfo.attlist" text "INCLUDE" nil) ("prefaceinfo.module" text "INCLUDE" nil) ("local.prefaceinfo.attrib" text "" nil) ("prefaceinfo.role.attrib" text "role CDATA #IMPLIED" nil) ("prefaceinfo.element" text "INCLUDE" nil) ("prefaceinfo.attlist" text "INCLUDE" nil) ("refentryinfo.module" text "INCLUDE" nil) ("local.refentryinfo.attrib" text "" nil) ("refentryinfo.role.attrib" text "role CDATA #IMPLIED" nil) ("refentryinfo.element" text "INCLUDE" nil) ("refentryinfo.attlist" text "INCLUDE" nil) ("refsect1info.module" text "INCLUDE" nil) ("local.refsect1info.attrib" text "" nil) ("refsect1info.role.attrib" text "role CDATA #IMPLIED" nil) ("refsect1info.element" text "INCLUDE" nil) ("refsect1info.attlist" text "INCLUDE" nil) ("refsect2info.module" text "INCLUDE" nil) ("local.refsect2info.attrib" text "" nil) ("refsect2info.role.attrib" text "role CDATA #IMPLIED" nil) ("refsect2info.element" text "INCLUDE" nil) ("refsect2info.attlist" text "INCLUDE" nil) ("refsect3info.module" text "INCLUDE" nil) ("local.refsect3info.attrib" text "" nil) ("refsect3info.role.attrib" text "role CDATA #IMPLIED" nil) ("refsect3info.element" text "INCLUDE" nil) ("refsect3info.attlist" text "INCLUDE" nil) ("refsynopsisdivinfo.module" text "INCLUDE" nil) ("local.refsynopsisdivinfo.attrib" text "" nil) ("refsynopsisdivinfo.role.attrib" text "role CDATA #IMPLIED" nil) ("refsynopsisdivinfo.element" text "INCLUDE" nil) ("refsynopsisdivinfo.attlist" text "INCLUDE" nil) ("referenceinfo.module" text "INCLUDE" nil) ("local.referenceinfo.attrib" text "" nil) ("referenceinfo.role.attrib" text "role CDATA #IMPLIED" nil) ("referenceinfo.element" text "INCLUDE" nil) ("referenceinfo.attlist" text "INCLUDE" nil) ("local.sect1info.attrib" text "" nil) ("sect1info.role.attrib" text "role CDATA #IMPLIED" nil) ("sect1info.element" text "INCLUDE" nil) ("sect1info.attlist" text "INCLUDE" nil) ("local.sect2info.attrib" text "" nil) ("sect2info.role.attrib" text "role CDATA #IMPLIED" nil) ("sect2info.element" text "INCLUDE" nil) ("sect2info.attlist" text "INCLUDE" nil) ("local.sect3info.attrib" text "" nil) ("sect3info.role.attrib" text "role CDATA #IMPLIED" nil) ("sect3info.element" text "INCLUDE" nil) ("sect3info.attlist" text "INCLUDE" nil) ("local.sect4info.attrib" text "" nil) ("sect4info.role.attrib" text "role CDATA #IMPLIED" nil) ("sect4info.element" text "INCLUDE" nil) ("sect4info.attlist" text "INCLUDE" nil) ("local.sect5info.attrib" text "" nil) ("sect5info.role.attrib" text "role CDATA #IMPLIED" nil) ("sect5info.element" text "INCLUDE" nil) ("sect5info.attlist" text "INCLUDE" nil) ("section.content.module" text "INCLUDE" nil) ("section.module" text "INCLUDE" nil) ("local.section.attrib" text "" nil) ("section.role.attrib" text "role CDATA #IMPLIED" nil) ("section.element" text "INCLUDE" nil) ("section.attlist" text "INCLUDE" nil) ("sectioninfo.module" text "INCLUDE" nil) ("sectioninfo.role.attrib" text "role CDATA #IMPLIED" nil) ("local.sectioninfo.attrib" text "" nil) ("sectioninfo.element" text "INCLUDE" nil) ("sectioninfo.attlist" text "INCLUDE" nil) ("sect1.module" text "INCLUDE" nil) ("local.sect1.attrib" text "" nil) ("sect1.role.attrib" text "role CDATA #IMPLIED" nil) ("sect1.element" text "INCLUDE" nil) ("sect1.attlist" text "INCLUDE" nil) ("sect2.module" text "INCLUDE" nil) ("local.sect2.attrib" text "" nil) ("sect2.role.attrib" text "role CDATA #IMPLIED" nil) ("sect2.element" text "INCLUDE" nil) ("sect2.attlist" text "INCLUDE" nil) ("sect3.module" text "INCLUDE" nil) ("local.sect3.attrib" text "" nil) ("sect3.role.attrib" text "role CDATA #IMPLIED" nil) ("sect3.element" text "INCLUDE" nil) ("sect3.attlist" text "INCLUDE" nil) ("sect4.module" text "INCLUDE" nil) ("local.sect4.attrib" text "" nil) ("sect4.role.attrib" text "role CDATA #IMPLIED" nil) ("sect4.element" text "INCLUDE" nil) ("sect4.attlist" text "INCLUDE" nil) ("sect5.module" text "INCLUDE" nil) ("local.sect5.attrib" text "" nil) ("sect5.role.attrib" text "role CDATA #IMPLIED" nil) ("sect5.element" text "INCLUDE" nil) ("sect5.attlist" text "INCLUDE" nil) ("simplesect.module" text "INCLUDE" nil) ("local.simplesect.attrib" text "" nil) ("simplesect.role.attrib" text "role CDATA #IMPLIED" nil) ("simplesect.element" text "INCLUDE" nil) ("simplesect.attlist" text "INCLUDE" nil) ("bibliography.content.module" text "INCLUDE" nil) ("bibliography.module" text "INCLUDE" nil) ("local.bibliography.attrib" text "" nil) ("bibliography.role.attrib" text "role CDATA #IMPLIED" nil) ("bibliography.element" text "INCLUDE" nil) ("bibliography.attlist" text "INCLUDE" nil) ("bibliodiv.module" text "INCLUDE" nil) ("local.bibliodiv.attrib" text "" nil) ("bibliodiv.role.attrib" text "role CDATA #IMPLIED" nil) ("bibliodiv.element" text "INCLUDE" nil) ("bibliodiv.attlist" text "INCLUDE" nil) ("glossary.content.module" text "INCLUDE" nil) ("glossary.module" text "INCLUDE" nil) ("local.glossary.attrib" text "" nil) ("glossary.role.attrib" text "role CDATA #IMPLIED" nil) ("glossary.element" text "INCLUDE" nil) ("glossary.attlist" text "INCLUDE" nil) ("glossdiv.module" text "INCLUDE" nil) ("local.glossdiv.attrib" text "" nil) ("glossdiv.role.attrib" text "role CDATA #IMPLIED" nil) ("glossdiv.element" text "INCLUDE" nil) ("glossdiv.attlist" text "INCLUDE" nil) ("index.content.module" text "INCLUDE" nil) ("indexes.module" text "INCLUDE" nil) ("local.indexes.attrib" text "" nil) ("indexes.role.attrib" text "role CDATA #IMPLIED" nil) ("index.element" text "INCLUDE" nil) ("index.attlist" text "INCLUDE" nil) ("setindex.element" text "INCLUDE" nil) ("setindex.attlist" text "INCLUDE" nil) ("indexdiv.module" text "INCLUDE" nil) ("local.indexdiv.attrib" text "" nil) ("indexdiv.role.attrib" text "role CDATA #IMPLIED" nil) ("indexdiv.element" text "INCLUDE" nil) ("indexdiv.attlist" text "INCLUDE" nil) ("indexentry.module" text "INCLUDE" nil) ("local.indexentry.attrib" text "" nil) ("indexentry.role.attrib" text "role CDATA #IMPLIED" nil) ("indexentry.element" text "INCLUDE" nil) ("indexentry.attlist" text "INCLUDE" nil) ("primsecterie.module" text "INCLUDE" nil) ("local.primsecterie.attrib" text "" nil) ("primsecterie.role.attrib" text "role CDATA #IMPLIED" nil) ("primaryie.element" text "INCLUDE" nil) ("primaryie.attlist" text "INCLUDE" nil) ("secondaryie.element" text "INCLUDE" nil) ("secondaryie.attlist" text "INCLUDE" nil) ("tertiaryie.element" text "INCLUDE" nil) ("tertiaryie.attlist" text "INCLUDE" nil) ("seeie.module" text "INCLUDE" nil) ("local.seeie.attrib" text "" nil) ("seeie.role.attrib" text "role CDATA #IMPLIED" nil) ("seeie.element" text "INCLUDE" nil) ("seeie.attlist" text "INCLUDE" nil) ("seealsoie.module" text "INCLUDE" nil) ("local.seealsoie.attrib" text "" nil) ("seealsoie.role.attrib" text "role CDATA #IMPLIED" nil) ("seealsoie.element" text "INCLUDE" nil) ("seealsoie.attlist" text "INCLUDE" nil) ("refentry.content.module" text "INCLUDE" nil) ("refentry.module" text "INCLUDE" nil) ("local.refentry.attrib" text "" nil) ("refentry.role.attrib" text "role CDATA #IMPLIED" nil) ("refentry.element" text "INCLUDE" nil) ("refentry.attlist" text "INCLUDE" nil) ("refmeta.module" text "INCLUDE" nil) ("local.refmeta.attrib" text "" nil) ("refmeta.role.attrib" text "role CDATA #IMPLIED" nil) ("refmeta.element" text "INCLUDE" nil) ("refmeta.attlist" text "INCLUDE" nil) ("refmiscinfo.module" text "INCLUDE" nil) ("local.refmiscinfo.attrib" text "" nil) ("refmiscinfo.role.attrib" text "role CDATA #IMPLIED" nil) ("refmiscinfo.element" text "INCLUDE" nil) ("refmiscinfo.attlist" text "INCLUDE" nil) ("refnamediv.module" text "INCLUDE" nil) ("local.refnamediv.attrib" text "" nil) ("refnamediv.role.attrib" text "role CDATA #IMPLIED" nil) ("refnamediv.element" text "INCLUDE" nil) ("refnamediv.attlist" text "INCLUDE" nil) ("refdescriptor.module" text "INCLUDE" nil) ("local.refdescriptor.attrib" text "" nil) ("refdescriptor.role.attrib" text "role CDATA #IMPLIED" nil) ("refdescriptor.element" text "INCLUDE" nil) ("refdescriptor.attlist" text "INCLUDE" nil) ("refname.module" text "INCLUDE" nil) ("local.refname.attrib" text "" nil) ("refname.role.attrib" text "role CDATA #IMPLIED" nil) ("refname.element" text "INCLUDE" nil) ("refname.attlist" text "INCLUDE" nil) ("refpurpose.module" text "INCLUDE" nil) ("local.refpurpose.attrib" text "" nil) ("refpurpose.role.attrib" text "role CDATA #IMPLIED" nil) ("refpurpose.element" text "INCLUDE" nil) ("refpurpose.attlist" text "INCLUDE" nil) ("refclass.module" text "INCLUDE" nil) ("local.refclass.attrib" text "" nil) ("refclass.role.attrib" text "role CDATA #IMPLIED" nil) ("refclass.element" text "INCLUDE" nil) ("refclass.attlist" text "INCLUDE" nil) ("refsynopsisdiv.module" text "INCLUDE" nil) ("local.refsynopsisdiv.attrib" text "" nil) ("refsynopsisdiv.role.attrib" text "role CDATA #IMPLIED" nil) ("refsynopsisdiv.element" text "INCLUDE" nil) ("refsynopsisdiv.attlist" text "INCLUDE" nil) ("refsect1.module" text "INCLUDE" nil) ("local.refsect1.attrib" text "" nil) ("refsect1.role.attrib" text "role CDATA #IMPLIED" nil) ("refsect1.element" text "INCLUDE" nil) ("refsect1.attlist" text "INCLUDE" nil) ("refsect2.module" text "INCLUDE" nil) ("local.refsect2.attrib" text "" nil) ("refsect2.role.attrib" text "role CDATA #IMPLIED" nil) ("refsect2.element" text "INCLUDE" nil) ("refsect2.attlist" text "INCLUDE" nil) ("refsect3.module" text "INCLUDE" nil) ("local.refsect3.attrib" text "" nil) ("refsect3.role.attrib" text "role CDATA #IMPLIED" nil) ("refsect3.element" text "INCLUDE" nil) ("refsect3.attlist" text "INCLUDE" nil) ("article.module" text "INCLUDE" nil) ("local.article.attrib" text "" nil) ("article.role.attrib" text "role CDATA #IMPLIED" nil) ("article.element" text "INCLUDE" nil) ("article.attlist" text "INCLUDE" nil) ("dbgenent.module" text "INCLUDE" nil) ("dbgenent" text ("-//OASIS//ENTITIES DocBook XML Additional General Entities V4.1.2//EN" "dbgenent.mod" . "/usr/share/sgml/docbook/dtd/xml/4.1.2/") nil)) "book" û}"partintro" "glossentry" "procedure" "citerefentry" "videodata" "epigraph" "msgorig" "constructorsynopsis" "lineage" "inlineequation" "structfield" "guibutton" "year" "thead" "type" "keycap" "postcode" "honorific" "volumenum" "orgname" "article" "imagedata" "informalequation" "simpara" "bibliomixed" "envar" "action" "refpurpose" "shortaffil" "otheraddr" "entry" "graphicco" "legalnotice" "varname" "indexentry" "referenceinfo" "pob" "entrytbl" "articleinfo" "anchor" "holder" "refsect3" "refdescriptor" "primary" "msgtext" "subtitle" "refsect2" "firstname" "replaceable" "application" "refsect1" "secondaryie" "informaltable" "authorinitials" "guimenuitem" "methodname" "refnamediv" "dedication" "paramdef" "caption" "objectinfo" "label" "qandaset" "artpagenums" "msglevel" "edition" "biblioset" "sect5" "destructorsynopsis" "graphic" "corpname" "link" "sect4" "callout" "important" "itemizedlist" "biblioentry" "corpauthor" "citation" "sect3" "lotentry" "arg" "qandaentry" "authorblurb" "othercredit" "sect2" "shortcut" "contrib" "errorcode" "olink" "glossaryinfo" "sect1" "informalfigure" "keysym" "acronym" "indexinfo" "bibliographyinfo" "tertiary" "calloutlist" "tertiaryie" "funcsynopsis" "setinfo" "colspec" "inlinegraphic" "filename" "email" "part" "revremark" "varlistentry" "caution" "msgexplan" "authorgroup" "remark" "option" "glossterm" "tocchap" "city" "member" "orderedlist" "parameter" "keycode" "refsect1info" "preface" "ackno" "mediaobject" "function" "index" "answer" "userinput" "refsect2info" "term" "bibliography" "funcsynopsisinfo" "mediaobjectco" "address" "returnvalue" "guimenu" "refsect3info" "manvolnum" "fax" "highlights" "simplemsgentry" "revhistory" "hardware" "refname" "prefaceinfo" "setindex" "tbody" "issuenum" "guilabel" "ulink" "secondary" "group" "tfoot" "msginfo" "medialabel" "keycombo" "abbrev" "toc" "revision" "state" "co" "glosssee" "blockquote" "database" "screen" "productnumber" "seealso" "revdescription" "msgset" "modespec" "xref" "chapterinfo" "chapter" "void" "step" "keyword" "pagenums" "confgroup" "collab" "methodparam" "funcparams" "row" "informalexample" "markup" "releaseinfo" "emphasis" "lot" "accel" "table" "synopsis" "affiliation" "initializer" "methodsynopsis" "prompt" "command" "country" "classsynopsisinfo" "seglistitem" "listitem" "publishername" "token" "systemitem" "areaset" "note" "publisher" "trademark" "foreignphrase" "sectioninfo" "jobtitle" "areaspec" "para" "contractsponsor" "abstract" "superscript" "classname" "glossary" "synopfragmentref" "alt" "figure" "printhistory" "citetitle" "sect1info" "set" "revnumber" "textobject" "segmentedlist" "screeninfo" "substeps" "programlistingco" "indexterm" "sect2info" "setindexinfo" "refmiscinfo" "equation" "warning" "surname" "copyright" "sect3info" "audioobject" "subscript" "author" "errorname" "tocentry" "refentrytitle" "audiodata" "sidebarinfo" "othername" "issn" "editor" "inlinemediaobject" "constant" "firstterm" "sect4info" "reference" "sidebar" "screenco" "menuchoice" "interfacename" "confsponsor" "subjectterm" "sect5info" "programlisting" "literallayout" "spanspec" "lineannotation" "area" "msgrel" "simplesect" "book" "phone" "bibliomisc" "colophon" "modifier" "synopfragment" "imageobject" "screenshot" "msgentry" "keywordset" "sgmltag" "guiicon" "attribution" "seriesvolnums" "pubdate" "contractnum" "property" "section" "tocback" "seg" "title" "primaryie" "refsynopsisdivinfo" "refentryinfo" "segtitle" "tip" "classsynopsis" "subjectset" "pubsnumber" "symbol" "appendixinfo" "see" "bibliomset" "date" "ooexception" "wordasword" "appendix" "street" "imageobjectco" "variablelist" "msg" "fieldsynopsis" "footnote" "refsynopsisdiv" "conftitle" "msgaud" "mousebutton" "literal" "ooclass" "funcprototype" "optional" "toclevel5" "bookinfo" "orgdiv" "example" "itermset" "errortype" "phrase" "seeie" "partinfo" "toclevel4" "collabname" "glossdef" "structname" "exceptionname" "refclass" "toclevel3" "varargs" "funcdef" "glosslist" "isbn" "titleabbrev" "toclevel2" "tocfront" "sbr" "glossseealso" "qandadiv" "msgsub" "msgmain" "beginpage" "productname" "footnoteref" "refmeta" "seealsoie" "bibliodiv" "toclevel1" "question" "indexdiv" "tgroup" "formalpara" "computeroutput" "tocpart" "confdates" "bridgehead" "interface" "oointerface" "glossdiv" "simplelist" "cmdsynopsis" "invpartnumber" "refentry" "subject" "guisubmenu" "quote" "confnum" "videoobject" û}(attlist (("label" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) € û(sÐû»ÞO_ž¬ûe(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €4û4çXTÀø í0Þû[û(.û!ºû0ÉÎû"§ûdݲU•ùûZûwúBû5GNîÕû#³´Cû6pò@‡Öž(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ûcçûh1(attlist (("moreinfo" (name-token-group ("refentry" "none")) (nil "none")) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ûcçûh1(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €Wûcç×ñq§ûdU«N6ò("ÊËû1ûS ûˆ1û$ÃxûFrûBûœ¹ûûC^yûrûz7‰–û ~iûLóYj¥ûnÄû6ûsûDûTû 8Ø2—ZHû7Ïû{ûMû>sÐû»ÞO_ž¬ûe(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) € çûh×ñq1Ï»—ZH(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) € çûh×ñq1Ï»—ZH(attlist (("colname" CDATA IMPLIED) ("namest" CDATA IMPLIED) ("nameend" CDATA IMPLIED) ("spanname" CDATA IMPLIED) ("morerows" CDATA IMPLIED) ("colsep" CDATA IMPLIED) ("rowsep" CDATA IMPLIED) ("align" (name-token-group ("left" "right" "center" "justify" "char")) IMPLIED) ("char" CDATA IMPLIED) ("charoff" CDATA IMPLIED) ("rotate" CDATA IMPLIED) ("valign" (name-token-group ("top" "middle" "bottom")) IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €y}FÔûmûû¦æû ûìû-ÍKnû;ûuãwLûYcûcçÂEû=û.eûv¿ ûh×ñq§ûdU«N6ò("ÊËû1ûS ûˆ1û$ÃxûFrûBûœ¹ûûC^yûrûz7‰–û ~iûLóYj¥ûnÄû6ûsûDûTû 8Ø2—ZHû7Ïû{ûMû>sÐû»ÞO_ž¬ûe(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ÓFc(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €û(cûYLwãûuû;nKÍû-ìûû æ¦ûûûmÔ¤çûcûcç¤Ôûmûû¦æû ûìû-ÍKnû;ûuãwLûYccûYLwãûuû;nKÍû-ìûû æ¦ûûûmÔ¤çûc(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ûcçûh1(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €û)4ûgûN4dûgûN(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €9çXTÀø í0Þû[û(.û!ºû0ÉÎû"§ûdݲU•ùûZûwúBû5GNîÕû#³´Cû6pò@‡ÖžûKûû/«!}F9F}!«û/ûûKžÖ‡@òp6ûC´³û#ÕîNGû5BúûwûZù•U²Ýûd§û"ÎÉû0ºû!.û(û[Þ0í øÀTXç(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) € çûh×ñq1Ï»—ZH(attlist (("cols" CDATA REQUIRED) ("tgroupstyle" CDATA IMPLIED) ("colname" CDATA IMPLIED) ("spanname" CDATA IMPLIED) ("namest" CDATA IMPLIED) ("nameend" CDATA IMPLIED) ("colsep" CDATA IMPLIED) ("rowsep" CDATA IMPLIED) ("align" (name-token-group ("left" "right" "center" "justify" "char")) IMPLIED) ("char" CDATA IMPLIED) ("charoff" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ûg””û”(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €9çXTÀø í0Þû[û(.û!ºû0ÉÎû"§ûdݲU•ùûZûwúBû5GNîÕû#³´Cû6pò@‡ÖžûKûû/«!}F9F}!«û/ûûKžÖ‡@òp6ûC´³û#ÕîNGû5BúûwûZù•U²Ýûd§û"ÎÉû0ºû!.û(û[Þ0í øÀTXç(attlist (("id" ID REQUIRED) ("pagenum" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) (attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) € çûh×ñq1Ï»—ZH(attlist (("status" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €Šû(û(û[.8cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾªû?(ûqqÖTçûc8cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾªû?(ûqqÖTçûcû[8cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾªû?(ûqqÖTçûc8cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾªû?(ûqqÖTçûc(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €6"ÊËû1ûS ûˆ1û$ÃxûFrûBûœ¹ûûC^yûrûz7‰–û ~iûLóYj¥ûnÄû6ûsûDûTû 8Ø2(attlist (("sortas" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €Wûh×ñq§ûdU«N6ò("ÊËû1ûS ûˆ1û$ÃxûFrûBûœ¹ûûC^yûrûz7‰–û ~iûLóYj¥ûnÄû6ûsûDûTû 8Ø2—ZHû7Ïû{ûMû>sÐû»ÞO_ž¬ûe(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €8ûcçTÖqûq(?ûª¾ÜûJë5]¸†} F¤‡ÔûmÂEû=û.eûv¿ûû¦æû ûìû-ÍKnû;ûuãwLûYc8cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾªû?(ûqqÖTçûc(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €Yç ûh×ñq§ûdU«N6ò("ÊËû1ûS ûˆ1û$ÃxûFrûBûœ¹ûûC^yûrûz7‰–û ~iûLóYj¥ûnÄû6ûsûDûTû 8Ø2—ZHû7Ïû{ûMû>sÐû»ÞO_ž¬ûe(attlist (("status" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €‚û(û(û[.9cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾªû?(ûqqÖTçûc*9cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾªû?(ûqqÖTçûc*û[9cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾªû?(ûqqÖTçûc*9*cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾªû?(ûqqÖTçûc**(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) € çûh×ñq1Ï»—ZH(attlist (("class" (name-token-group ("command" "function" "option" "parameter")) IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) € ûh×ñq(ûF—ZH(attlist (("class" (name-token-group ("hardware" "software")) IMPLIED) ("moreinfo" (name-token-group ("refentry" "none")) (nil "none")) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €bûcçÂEû=û.eûv¿ ûh×ñq§ûdU«N6ò("ÊËû1ûS ûˆ1û$ÃxûFrûBûœ¹ûûC^yûrûz7‰–û ~iûLóYj¥ûnÄû6ûsûDûTû 8Ø2—ZHû7Ïû{ûMû>sÐû»ÞO_ž¬ûe(attlist (("status" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €zû(û(û[.9cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾªû?(ûqqÖTçûc/9cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾªû?(ûqqÖTçûc/û[9cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾªû?(ûqqÖTçûc/9/cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾªû?(ûqqÖTçûc//(attlist (("linkends" IDREFS IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €Wûh×ñq§ûdU«N6ò("ÊËû1ûS ûˆ1û$ÃxûFrûBûœ¹ûûC^yûrûz7‰–û ~iûLóYj¥ûnÄû6ûsûDûTû 8Ø2—ZHû7Ïû{ûMû>sÐû»ÞO_ž¬ûe(attlist (("frame" (name-token-group ("top" "bottom" "topbot" "all" "sides" "none")) IMPLIED) ("colsep" CDATA IMPLIED) ("rowsep" CDATA IMPLIED) ("label" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED) ("tabstyle" CDATA IMPLIED) ("tocentry" CDATA IMPLIED) ("shortentry" CDATA IMPLIED) ("orient" (name-token-group ("port" "land")) IMPLIED) ("pgwide" CDATA IMPLIED))) €ûl}Fûl}F(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) € çûh×ñq1Ï»—ZH(attlist (("moreinfo" (name-token-group ("refentry" "none")) (nil "none")) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €½ûcçûh1(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ûcçûh1(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €+‘‘‘qHZ—ûU—ZHq(attlist (("status" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €û(cûYLwãûuû;nKÍû-ìûû æ¦ûûûmÔ¤çûcû[.cûYLwãûuû;nKÍû-ìûû æ¦ûûûmÔ¤çûccûYLwãûuû;nKÍû-ìûû æ¦ûûûmÔ¤çûccûYLwãûuû;nKÍû-ìûû æ¦ûûûmÔ¤çûcû[cûYLwãûuû;nKÍû-ìûû æ¦ûûûmÔ¤çûc(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €¶x1(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €¤Ôûmûû¦æû ûìû-ÍKnû;ûuãwLûYc(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €9çXTÀø í0Þû[û(.û!ºû0ÉÎû"§ûdݲU•ùûZûwúBû5GNîÕû#³´Cû6pò@‡ÖžûKûû/«!}F9F}!«û/ûûKžÖ‡@òp6ûC´³û#ÕîNGû5BúûwûZù•U²Ýûd§û"ÎÉû0ºû!.û(û[Þ0í øÀTXç(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ûcçûh×ñq(—ZHÏ»_(attlist (("defaultlabel" (name-token-group ("qanda" "number" "none")) IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €2cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾ(ûqqçû(û`S1çqûq(¾ÜûJë5]¸†} F¤‡ÔûmÂEû=û.eûv¿ûû¦æû ûìû-ÍKnû;ûuãwLûYcû`S2cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾ(ûqqçû[û`Sû`S1cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾ(ûqqçû`S(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) € çûh×ñq1Ï»—ZH(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ûcçûh1(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) € çûh×ñq1Ï»—ZH(attlist (("relation" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €2çXTÀø í0Þû[û(.û!ºû0ÉÎû"§ûdݲU•ùûZûwúBû5GNîÕû#³´Cû6pò@‡Öž2žÖ‡@òp6ûC´³û#ÕîNGû5BúûwûZù•U²Ýûd§û"ÎÉû0ºû!.û(û[Þ0í øÀTXç(attlist (("renderas" (name-token-group ("sect1" "sect2" "sect3" "sect4")) IMPLIED) ("label" CDATA IMPLIED) ("status" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) € û û(û(Ÿ¼Ù„û[.:cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾªû?(ûqqÖTçûcûxû„Ù¼Ÿ:cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾªû?(ûqqÖTçûcûxûŸ¼Ù„:cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾªû?(ûqqÖTçûcûxûŸ¼Ù„û[:cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾªû?(ûqqÖTçûcûxû?Ÿ ¼  Ù „ ûx û cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾªû?(ûqqÖTçûcŸ ¼  Ù „ ûxŸ ¼  Ù „ û„ Ù  ¼ Ÿ Ÿ ¼  Ù „ û ûx Ÿ ¼  Ù „ û (attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €8ûµ¯µ¯ûTµûTûT(attlist (("entityref" ENTITY IMPLIED) ("fileref" CDATA IMPLIED) ("format" (name-token-group ("BMP" "CGM-CHAR" "CGM-BINARY" "CGM-CLEAR" "DITROFF" "DVI" "EPS" "EQN" "FAX" "GIF" "GIF87a" "GIF89a" "JPG" "JPEG" "IGES" "PCX" "PIC" "PNG" "PS" "SGML" "TBL" "TEX" "TIFF" "WMF" "WPG" "linespecific")) IMPLIED) ("srccredit" CDATA IMPLIED) ("width" CDATA IMPLIED) ("depth" CDATA IMPLIED) ("align" (name-token-group ("left" "right" "center")) IMPLIED) ("scale" CDATA IMPLIED) ("scalefit" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) (attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) € çûh×ñq1Ï»—ZH(attlist (("endterm" IDREF IMPLIED) ("linkend" IDREF REQUIRED) ("type" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €bûcçÂEû=û.eûv¿ ûh×ñq§ûdU«N6ò("ÊËû1ûS ûˆ1û$ÃxûFrûBûœ¹ûûC^yûrûz7‰–û ~iûLóYj¥ûnÄû6ûsûDûTû 8Ø2—ZHû7Ïû{ûMû>sÐû»ÞO_ž¬ûe(attlist (("renderas" (name-token-group ("sect1" "sect2" "sect3" "sect5")) IMPLIED) ("label" CDATA IMPLIED) ("status" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ûû(û(Ÿ¼Ù„û[.;cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾªû?(ûqqÖTçûcûxDû „Ù¼Ÿ;cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾªû?(ûqqÖTçûcûxDû Ÿ¼Ù„;cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾªû?(ûqqÖTçûcûxDû Ÿ¼Ù„û[;cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾªû?(ûqqÖTçûcûxDû @Ÿ ¼  Ù „ ûx D û cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾªû?(ûqqÖTçûcŸ ¼  Ù „ ûxŸ ¼  Ù „ DŸ ¼  Ù „ û „ Ù  ¼ Ÿ Ÿ ¼  Ù „ û D ûx Ÿ ¼  Ù „ D Ÿ ¼  Ù „ û (attlist (("arearefs" IDREFS REQUIRED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €8ûcçTÖqûq(?ûª¾ÜûJë5]¸†} F¤‡ÔûmÂEû=û.eûv¿ûû¦æû ûìû-ÍKnû;ûuãwLûYc8cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾªû?(ûqqÖTçûc(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €û(-cûYLwãûuû;ûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾû(ûqqçûc-ûcçqûq(û¾ÜûJë5]¸†} F¤‡ÔûmÂEû=û.eûv¿ûû¦æû ûû;ûuãwLûYc-cûYLwãûuû;ûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾû(ûqqçûc(attlist (("spacing" (name-token-group ("normal" "compact")) IMPLIED) ("mark" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €û(Èû[ÈÈÈ(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €3žÖ‡@òp6ûC´³û#ÕîNGû5BúûwûZù•U²Ýûd§û"ÎÉû0ºû!.û(û[Þ0í øÀTXç'3'çXTÀø í0Þû[û(.û!ºû0ÉÎû"§ûdݲU•ùûZûwúBû5GNîÕû#³´Cû6pò@‡Öž(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) € çûh×ñq1Ï»—ZH(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €bûcçÂEû=û.eûv¿ ûh×ñq§ûdU«N6ò("ÊËû1ûS ûˆ1û$ÃxûFrûBûœ¹ûûC^yûrûz7‰–û ~iûLóYj¥ûnÄû6ûsûDûTû 8Ø2—ZHû7Ïû{ûMû>sÐû»ÞO_ž¬ûe(attlist (("renderas" (name-token-group ("sect1" "sect2" "sect4" "sect5")) IMPLIED) ("label" CDATA IMPLIED) ("status" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ïû(û(Ÿ¼Ù„û[.;cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾªû?(ûqqÖTçûcûxIû „Ù¼Ÿ;cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾªû?(ûqqÖTçûcûxIû Ÿ¼Ù„;cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾªû?(ûqqÖTçûcûxIû Ÿ¼Ù„û[;cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾªû?(ûqqÖTçûcûxIû @Ÿ ¼  Ù „ ûx I û cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾªû?(ûqqÖTçûcŸ ¼  Ù „ ûxŸ ¼  Ù „ IŸ ¼  Ù „ û „ Ù  ¼ Ÿ Ÿ ¼  Ù „ û I ûx Ÿ ¼  Ù „ I Ÿ ¼  Ù „ û (attlist (("srccredit" CDATA IMPLIED) ("pagenum" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("linkend" IDREF IMPLIED) ("role" CDATA IMPLIED))) €bûcçÂEû=û.eûv¿ ûh×ñq§ûdU«N6ò("ÊËû1ûS ûˆ1û$ÃxûFrûBûœ¹ûûC^yûrûz7‰–û ~iûLóYj¥ûnÄû6ûsûDûTû 8Ø2—ZHû7Ïû{ûMû>sÐû»ÞO_ž¬ûe(attlist (("choice" (name-token-group ("opt" "req" "plain")) (nil "opt")) ("rep" (name-token-group ("norepeat" "repeat")) (nil "norepeat")) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €û^1Úr™R(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ûjûj€(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €û(ûmÔÔûmûmÔ(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €XTÀø í00í øÀTX(attlist (("renderas" (name-token-group ("sect1" "sect3" "sect4" "sect5")) IMPLIED) ("label" CDATA IMPLIED) ("status" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €èû(û(Ÿ¼Ù„û[.;cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾªû?(ûqqÖTçûcûxPû „Ù¼Ÿ;cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾªû?(ûqqÖTçûcûxPû Ÿ¼Ù„;cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾªû?(ûqqÖTçûcûxPû Ÿ¼Ù„û[;cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾªû?(ûqqÖTçûcûxPû @Ÿ ¼  Ù „ ûx P û cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾªû?(ûqqÖTçûcŸ ¼  Ù „ ûxŸ ¼  Ù „ PŸ ¼  Ù „ û „ Ù  ¼ Ÿ Ÿ ¼  Ù „ û P ûx Ÿ ¼  Ù „ P Ÿ ¼  Ù „ û (attlist (("action" (name-token-group ("click" "double-click" "press" "seq" "simul" "other")) IMPLIED) ("otheraction" CDATA IMPLIED) ("moreinfo" (name-token-group ("refentry" "none")) (nil "none")) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ûB^^ûB(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) € çûh×ñq1Ï»—ZH(attlist (("moreinfo" (name-token-group ("refentry" "none")) (nil "none")) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ûcçûh1(attlist (("targetdocent" ENTITY IMPLIED) ("linkmode" IDREF IMPLIED) ("localinfo" CDATA IMPLIED) ("type" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €bûcçÂEû=û.eûv¿ ûh×ñq§ûdU«N6ò("ÊËû1ûS ûˆ1û$ÃxûFrûBûœ¹ûûC^yûrûz7‰–û ~iûLóYj¥ûnÄû6ûsûDûTû 8Ø2—ZHû7Ïû{ûMû>sÐû»ÞO_ž¬ûe(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €9çXTÀø í0Þû[û(.û!ºû0ÉÎû"§ûdݲU•ùûZûwúBû5GNîÕû#³´Cû6pò@‡ÖžûKûû/«!}F9F}!«û/ûûKžÖ‡@òp6ûC´³û#ÕîNGû5BúûwûZù•U²Ýûd§û"ÎÉû0ºû!.û(û[Þ0í øÀTXç(attlist (("renderas" (name-token-group ("sect2" "sect3" "sect4" "sect5")) IMPLIED) ("label" CDATA IMPLIED) ("status" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ßû(û(Ÿ¼Ù„û[.;cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾªû?(ûqqÖTçûcûxVû „Ù¼Ÿ;cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾªû?(ûqqÖTçûcûxVû Ÿ¼Ù„;cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾªû?(ûqqÖTçûcûxVû Ÿ¼Ù„û[;cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾªû?(ûqqÖTçûcûxVû @Ÿ ¼  Ù „ ûx V û cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾªû?(ûqqÖTçûcŸ ¼  Ù „ ûxŸ ¼  Ù „ VŸ ¼  Ù „ û „ Ù  ¼ Ÿ Ÿ ¼  Ù „ û V ûx Ÿ ¼  Ù „ V Ÿ ¼  Ù „ û (attlist (("float" CDATA (nil "0")) ("pgwide" CDATA IMPLIED) ("label" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €—ZHûcç5]¸†} F¤‡ÂEû=û.eûv¿ûû¦æû ûûû æ¦ûû¿ûveû.û=E‡¤F }†¸]5çûcHZ—(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ûcçûh1(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ûcçûh×ñq(—ZHÏ»_(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €9çXTÀø í0Þû[û(.û!ºû0ÉÎû"§ûdݲU•ùûZûwúBû5GNîÕû#³´Cû6pò@‡ÖžûKûû/«!}F9F}!«û/ûûKžÖ‡@òp6ûC´³û#ÕîNGû5BúûwûZù•U²Ýûd§û"ÎÉû0ºû!.û(û[Þ0í øÀTXç(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €9çXTÀø í0Þû[û(.û!ºû0ÉÎû"§ûdݲU•ùûZûwúBû5GNîÕû#³´Cû6pò@‡ÖžûKûû/«!}F9F}!«û/ûûKžÖ‡@òp6ûC´³û#ÕîNGû5BúûwûZù•U²Ýûd§û"ÎÉû0ºû!.û(û[Þ0í øÀTXç(attlist (("sortas" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €Wûh×ñq§ûdU«N6ò("ÊËû1ûS ûˆ1û$ÃxûFrûBûœ¹ûûC^yûrûz7‰–û ~iûLóYj¥ûnÄû6ûsûDûTû 8Ø2—ZHû7Ïû{ûMû>sÐû»ÞO_ž¬ûe(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €û(Jû[JJJ(attlist (("linkends" IDREFS IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €Wûh×ñq§ûdU«N6ò("ÊËû1ûS ûˆ1û$ÃxûFrûBûœ¹ûûC^yûrûz7‰–û ~iûLóYj¥ûnÄû6ûsûDûTû 8Ø2—ZHû7Ïû{ûMû>sÐû»ÞO_ž¬ûe(attlist (("label" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ûE……ûE(attlist (("contents" IDREFS IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €9çXTÀø í0Þû[û(.û!ºû0ÉÎû"§ûdݲU•ùûZûwúBû5GNîÕû#³´Cû6pò@‡ÖžûKûû/«!}F9F}!«û/ûûKžÖ‡@òp6ûC´³û#ÕîNGû5BúûwûZù•U²Ýûd§û"ÎÉû0ºû!.û(û[Þ0í øÀTXç(attlist (("colnum" CDATA IMPLIED) ("colname" CDATA IMPLIED) ("colwidth" CDATA IMPLIED) ("colsep" CDATA IMPLIED) ("rowsep" CDATA IMPLIED) ("align" (name-token-group ("left" "right" "center" "justify" "char")) IMPLIED) ("char" CDATA IMPLIED) ("charoff" CDATA IMPLIED))) (attlist (("entityref" ENTITY IMPLIED) ("fileref" CDATA IMPLIED) ("format" (name-token-group ("BMP" "CGM-CHAR" "CGM-BINARY" "CGM-CLEAR" "DITROFF" "DVI" "EPS" "EQN" "FAX" "GIF" "GIF87a" "GIF89a" "JPG" "JPEG" "IGES" "PCX" "PIC" "PNG" "PS" "SGML" "TBL" "TEX" "TIFF" "WMF" "WPG" "linespecific")) IMPLIED) ("srccredit" CDATA IMPLIED) ("width" CDATA IMPLIED) ("depth" CDATA IMPLIED) ("align" (name-token-group ("left" "right" "center")) IMPLIED) ("scale" CDATA IMPLIED) ("scalefit" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) (attlist (("class" (name-token-group ("headerfile" "devicefile" "libraryfile" "directory" "symlink")) IMPLIED) ("path" CDATA IMPLIED) ("moreinfo" (name-token-group ("refentry" "none")) (nil "none")) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ûcçûh1(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) € çûh×ñq1Ï»—ZH(attlist (("label" CDATA IMPLIED) ("status" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ûOû(û(û[. û8®Ÿ¼Ù„{ûxû û8®Ÿ¼Ù„{ûxû û8®Ÿ¼Ù„{ûxûû[ û8®Ÿ¼Ù„{ûxû û8®Ÿ¼Ù„{ûxû(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) € çûh×ñq1Ï»—ZH(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ƒƒÈ(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €û(-cûYLwãûuû;ûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾû(ûqqçûc-ûcçqûq(û¾ÜûJë5]¸†} F¤‡ÔûmÂEû=û.eûv¿ûû¦æû ûû;ûuãwLûYc-cûYLwãûuû;ûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾû(ûqqçûc(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €û(8cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾªû?(ûqqÖTçûc8ûcçTÖqûq(?ûª¾ÜûJë5]¸†} F¤‡ÔûmÂEû=û.eûv¿ûû¦æû ûìû-ÍKnû;ûuãwLûYc8cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾªû?(ûqqÖTçûc(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €UN´úòòú´NU(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €bûcçÂEû=û.eûv¿ ûh×ñq§ûdU«N6ò("ÊËû1ûS ûˆ1û$ÃxûFrûBûœ¹ûûC^yûrûz7‰–û ~iûLóYj¥ûnÄû6ûsûDûTû 8Ø2—ZHû7Ïû{ûMû>sÐû»ÞO_ž¬ûe(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ûcçûh1(attlist (("linkend" IDREF IMPLIED) ("baseform" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €bûcçÂEû=û.eûv¿ ûh×ñq§ûdU«N6ò("ÊËû1ûS ûˆ1û$ÃxûFrûBûœ¹ûûC^yûrûz7‰–û ~iûLóYj¥ûnÄû6ûsûDûTû 8Ø2—ZHû7Ïû{ûMû>sÐû»ÞO_ž¬ûe(attlist (("label" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ôûiôûi(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) € çûh×ñq1Ï»—ZH(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €bûcçÂEû=û.eûv¿ ûh×ñq§ûdU«N6ò("ÊËû1ûS ûˆ1û$ÃxûFrûBûœ¹ûûC^yûrûz7‰–û ~iûLóYj¥ûnÄû6ûsûDûTû 8Ø2—ZHû7Ïû{ûMû>sÐû»ÞO_ž¬ûe(attlist (("numeration" (name-token-group ("arabic" "upperalpha" "loweralpha" "upperroman" "lowerroman")) IMPLIED) ("inheritnum" (name-token-group ("inherit" "ignore")) (nil "ignore")) ("continuation" (name-token-group ("continues" "restarts")) (nil "restarts")) ("spacing" (name-token-group ("normal" "compact")) IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €û(Èû[ÈÈÈ(attlist (("class" (name-token-group ("command" "function" "option")) IMPLIED) ("moreinfo" (name-token-group ("refentry" "none")) (nil "none")) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ûcçûh1(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ûcçûh1(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €9çXTÀø í0Þû[û(.û!ºû0ÉÎû"§ûdݲU•ùûZûwúBû5GNîÕû#³´Cû6pò@‡ÖžûKûû/«!}F9F}!«û/ûûKžÖ‡@òp6ûC´³û#ÕîNGû5BúûwûZù•U²Ýûd§û"ÎÉû0ºû!.û(û[Þ0í øÀTXç(attlist (("status" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €’û(û(tŸ¼Ù„û[.S2Sçqûq(¾ÜûJë5]¸†} F¤‡ÔûmÂEû=û.eûv¿ûû¦æû ûìû-ÍKnû;ûuãwLûYc(attlist (("moreinfo" (name-token-group ("refentry" "none")) (nil "none")) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €Aûcçûh×ñq("ÊËû1ûS ûˆ1û$ÃxûFrûBûœ¹ûûC^yûrûz7‰–û ~iûLóYj¥ûnÄû6ûsûDûTû 8Ø2—ZH(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €9çXTÀø í0Þû[û(.û!ºû0ÉÎû"§ûdݲU•ùûZûwúBû5GNîÕû#³´Cû6pò@‡ÖžûKûû/«!}F9F}!«û/ûûKžÖ‡@òp6ûC´³û#ÕîNGû5BúûwûZù•U²Ýûd§û"ÎÉû0ºû!.û(û[Þ0í øÀTXç(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €bûcçÂEû=û.eûv¿ ûh×ñq§ûdU«N6ò("ÊËû1ûS ûˆ1û$ÃxûFrûBûœ¹ûûC^yûrûz7‰–û ~iûLóYj¥ûnÄû6ûsûDûTû 8Ø2—ZHû7Ïû{ûMû>sÐû»ÞO_ž¬ûe(attlist (("status" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €:cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾªû?(ûqqÖTçûcû(aûhM8ûcçTÖqûq(?ûª¾ÜûJë5]¸†} F¤‡ÔûmÂEû=û.eûv¿ûû¦æû ûìû-ÍKnû;ûuãwLûYcûhM:cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾªû?(ûqqÖTçûcû[.ûhM9cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾªû?(ûqqÖTçûcû(ûhMûhM8cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾªû?(ûqqÖTçûcûhM9cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾªû?(ûqqÖTçûcû[ûhM(attlist (("format" (NOTATION ("linespecific")) (nil "linespecific")) ("linenumbering" (name-token-group ("numbered" "unnumbered")) IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €Bûûcçûh×ñq("ÊËû1ûS ûˆ1û$ÃxûFrûBûœ¹ûûC^yûrûz7‰–û ~iûLóYj¥ûnÄû6ûsûDûTû 8Ø2—ZH(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €=û:û:û:â(attlist (("format" (NOTATION ("linespecific")) (nil "linespecific")) ("linenumbering" (name-token-group ("numbered" "unnumbered")) IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €jŒûÅ¡u%û9XTÀø í0(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ûcçûh1(attlist (("moreinfo" (name-token-group ("refentry" "none")) (nil "none")) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €½ûcçûh1(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €9çXTÀø í0Þû[û(.û!ºû0ÉÎû"§ûdݲU•ùûZûwúBû5GNîÕû#³´Cû6pò@‡ÖžûKûû/«!}F9F}!«û/ûûKžÖ‡@òp6ûC´³û#ÕîNGû5BúûwûZù•U²Ýûd§û"ÎÉû0ºû!.û(û[Þ0í øÀTXç(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ûcçûh×ñq(—ZHÏ»_(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) € çûh×ñq1Ï»—ZH(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €çÔûmìû-ÍKnû;ûuãwLûYccûYLwãûuû;nKÍû-ìûmÔç(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED) ("audience" CDATA IMPLIED) ("level" CDATA IMPLIED) ("origin" CDATA IMPLIED))) €-o(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €  (attlist (("moreinfo" (name-token-group ("refentry" "none")) (nil "none")) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ûcçûh1(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €6"ÊËû1ûS ûˆ1û$ÃxûFrûBûœ¹ûûC^yûrûz7‰–û ~iûLóYj¥ûnÄû6ûsûDûTû 8Ø2(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €9çXTÀø í0Þû[û(.û!ºû0ÉÎû"§ûdݲU•ùûZûwúBû5GNîÕû#³´Cû6pò@‡ÖžûKûû/«!}F9F}!«û/ûûKžÖ‡@òp6ûC´³û#ÕîNGû5BúûwûZù•U²Ýûd§û"ÎÉû0ºû!.û(û[Þ0í øÀTXç(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €<ûk#cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾªû?(ûqqÖTçûcû(é#ûk#:ûk#ûcçTÖqûq(?ûª¾ÜûJë5]¸†} F¤‡ÔûmÂEû=û.eûv¿ûû¦æû ûìû-ÍKnû;ûuãwLûYc<ûk#cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾªû?(ûqqÖTçûcû[.;ûk#cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾªû?(ûqqÖTçûcû(:ûk#cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾªû?(ûqqÖTçûc;ûk#cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾªû?(ûqqÖTçûcû[(attlist (("valign" (name-token-group ("top" "middle" "bottom")) IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €··(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) € çûh×ñq1Ï»—ZH(attlist (("moreinfo" (name-token-group ("refentry" "none")) (nil "none")) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €½ûcçûh1(attlist (("url" CDATA REQUIRED) ("type" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €bûcçÂEû=û.eûv¿ ûh×ñq§ûdU«N6ò("ÊËû1ûS ûˆ1û$ÃxûFrûBûœ¹ûûC^yûrûz7‰–û ~iûLóYj¥ûnÄû6ûsûDûTû 8Ø2—ZHû7Ïû{ûMû>sÐû»ÞO_ž¬ûe(attlist (("sortas" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €Wûh×ñq§ûdU«N6ò("ÊËû1ûS ûˆ1û$ÃxûFrûBûœ¹ûûC^yûrûz7‰–û ~iûLóYj¥ûnÄû6ûsûDûTû 8Ø2—ZHû7Ïû{ûMû>sÐû»ÞO_ž¬ûe(attlist (("choice" (name-token-group ("opt" "req" "plain")) (nil "opt")) ("rep" (name-token-group ("norepeat" "repeat")) (nil "norepeat")) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €û^1Úr™RR™rÚ1û^(attlist (("valign" (name-token-group ("top" "middle" "bottom")) IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €g··(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ûAA(attlist (("class" (name-token-group ("cartridge" "cdrom" "disk" "tape")) IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ûcçûh1(attlist (("action" (name-token-group ("click" "double-click" "press" "seq" "simul" "other")) IMPLIED) ("otheraction" CDATA IMPLIED) ("moreinfo" (name-token-group ("refentry" "none")) (nil "none")) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ûB^^ûB(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ûcçûh×ñq(—ZHÏ»_(attlist (("pagenum" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €û&ûotû]û(û&û&tûoû&ûotû]û&ûotû]û[.û&ûotû]û&ûotû]û[(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €áû5l©6(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) € çûh×ñq1Ï»—ZH(attlist (("label" CDATA IMPLIED) ("linkends" IDREFS IMPLIED) ("id" ID REQUIRED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) (attlist (("otherterm" IDREF IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €bûcçÂEû=û.eûv¿ ûh×ñq§ûdU«N6ò("ÊËû1ûS ûˆ1û$ÃxûFrûBûœ¹ûûC^yûrûz7‰–û ~iûLóYj¥ûnÄû6ûsûDûTû 8Ø2—ZHû7Ïû{ûMû>sÐû»ÞO_ž¬ûe(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €û û(8cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾªû?(ûqqÖTçûc8cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾªû?(ûqqÖTçûcû 8cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾªû?(ûqqÖTçûc8cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾªû?(ûqqÖTçûc(attlist (("class" (name-token-group ("name" "table" "field" "key1" "key2" "record")) IMPLIED) ("moreinfo" (name-token-group ("refentry" "none")) (nil "none")) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ûcçûh1(attlist (("width" CDATA IMPLIED) ("format" (NOTATION ("linespecific")) (nil "linespecific")) ("linenumbering" (name-token-group ("numbered" "unnumbered")) IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €dû¢ûcçÂEû=û.eûv¿ ûh×ñq§ûdU«N6ò("ÊËû1ûS ûˆ1û$ÃxûFrûBûœ¹ûûC^yûrûz7‰–û ~iûLóYj¥ûnÄû6ûsûDûTû 8Ø2—ZHû7Ïû{ûMû>sÐû»ÞO_ž¬ûe(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) € çûh×ñq1Ï»—ZH(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €Wûh×ñq§ûdU«N6ò("ÊËû1ûS ûˆ1û$ÃxûFrûBûœ¹ûûC^yûrûz7‰–û ~iûLóYj¥ûnÄû6ûsûDûTû 8Ø2—ZHû7Ïû{ûMû>sÐû»ÞO_ž¬ûe(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €1çqûq(¾ÜûJë5]¸†} F¤‡ÔûmÂEû=û.eûv¿ûû¦æû ûìû-ÍKnû;ûuãwLûYc1cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾ(ûqqç(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €û(ûŽû[ûŽûŽûŽ(attlist (("application" (NOTATION ("BMP" "CGM-CHAR" "CGM-BINARY" "CGM-CLEAR" "DITROFF" "DVI" "EPS" "EQN" "FAX" "GIF" "GIF87a" "GIF89a" "JPG" "JPEG" "IGES" "PCX" "PIC" "PNG" "PS" "SGML" "TBL" "TEX" "TIFF" "WMF" "WPG" "linespecific")) IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) € çûh×ñq1Ï»—ZH(attlist (("endterm" IDREF IMPLIED) ("linkend" IDREF REQUIRED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) (attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €9çXTÀø í0Þû[û(.û!ºû0ÉÎû"§ûdݲU•ùûZûwúBû5GNîÕû#³´Cû6pò@‡ÖžûKûû/«!}F9F}!«û/ûûKžÖ‡@òp6ûC´³û#ÕîNGû5BúûwûZù•U²Ýûd§û"ÎÉû0ºû!.û(û[Þ0í øÀTXç(attlist (("label" CDATA IMPLIED) ("status" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €­û(û(tŸ¼Ù„û[.sÐû»ÞO_ž¬ûe(attlist (("label" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €Qû(QQû[.QQû[(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ûcçûh1(attlist (("frame" (name-token-group ("top" "bottom" "topbot" "all" "sides" "none")) IMPLIED) ("colsep" CDATA IMPLIED) ("rowsep" CDATA IMPLIED) ("tabstyle" CDATA IMPLIED) ("tocentry" CDATA IMPLIED) ("shortentry" CDATA IMPLIED) ("orient" (name-token-group ("port" "land")) IMPLIED) ("pgwide" CDATA IMPLIED) ("label" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €û(çû[F}ûlçF}ûlçF}ûlF}ûl(attlist (("label" CDATA IMPLIED) ("format" (NOTATION ("linespecific")) (nil "linespecific")) ("linenumbering" (name-token-group ("numbered" "unnumbered")) IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €f¢û}FûcçÂEû=û.eûv¿ ûh×ñq§ûdU«N6ò("ÊËû1ûS ûˆ1û$ÃxûFrûBûœ¹ûûC^yûrûz7‰–û ~iûLóYj¥ûnÄû6ûsûDûTû 8Ø2—ZHû7Ïû{ûMû>sÐû»ÞO_ž¬ûe(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €‡ûIÒ‡‡ûI‡ûI‡ûIÒ(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ûcçûh1(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €¯û88µ¯ûûTµûûTûûûT(attlist (("moreinfo" (name-token-group ("refentry" "none")) (nil "none")) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ûcçûh1(attlist (("moreinfo" (name-token-group ("refentry" "none")) (nil "none")) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €Aûcçûh×ñq("ÊËû1ûS ûˆ1û$ÃxûFrûBûœ¹ûûC^yûrûz7‰–û ~iûLóYj¥ûnÄû6ûsûDûTû 8Ø2—ZH(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) € çûh×ñq1Ï»—ZH(attlist (("format" (NOTATION ("linespecific")) (nil "linespecific")) ("linenumbering" (name-token-group ("numbered" "unnumbered")) IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €Bûûcçûh×ñq("ÊËû1ûS ûˆ1û$ÃxûFrûBûœ¹ûûC^yûrûz7‰–û ~iûLóYj¥ûnÄû6ûsûDûTû 8Ø2—ZH(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €û'û'û'(attlist (("override" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €8ûcçTÖqûq(?ûª¾ÜûJë5]¸†} F¤‡ÔûmÂEû=û.eûv¿ûû¦æû ûìû-ÍKnû;ûuãwLûYc8cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾªû?(ûqqÖTçûc(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) € çûh×ñq1Ï»—ZH(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ûcçûh1(attlist (("class" (name-token-group ("constant" "groupname" "library" "macro" "osname" "resource" "systemname" "username")) IMPLIED) ("moreinfo" (name-token-group ("refentry" "none")) (nil "none")) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €_ûcçûh1(attlist (("label" CDATA IMPLIED) ("units" (name-token-group ("calspair" "linecolumn" "linerange" "linecolumnpair" "other")) IMPLIED) ("otherunits" NMTOKEN IMPLIED) ("coords" CDATA REQUIRED) ("id" ID REQUIRED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ûû(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €û(-cûYLwãûuû;ûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾû(ûqqçûc-ûcçqûq(û¾ÜûJë5]¸†} F¤‡ÔûmÂEû=û.eûv¿ûû¦æû ûû;ûuãwLûYc-cûYLwãûuû;ûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾû(ûqqçûc(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €É‡(attlist (("class" (name-token-group ("service" "trade" "registered" "copyright")) (nil "trade")) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €@»ûh×ñq("ÊËû1ûS ûˆ1û$ÃxûFrûBûœ¹ûûC^yûrûz7‰–û ~iûLóYj¥ûnÄû6ûsûDûTû 8Ø2—ZH(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €bûcçÂEû=û.eûv¿ ûh×ñq§ûdU«N6ò("ÊËû1ûS ûˆ1û$ÃxûFrûBûœ¹ûûC^yûrûz7‰–û ~iûLóYj¥ûnÄû6ûsûDûTû 8Ø2—ZHû7Ïû{ûMû>sÐû»ÞO_ž¬ûe(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €9çXTÀø í0Þû[û(.û!ºû0ÉÎû"§ûdݲU•ùûZûwúBû5GNîÕû#³´Cû6pò@‡ÖžûKûû/«!}F9F}!«û/ûûKžÖ‡@òp6ûC´³û#ÕîNGû5BúûwûZù•U²Ýûd§û"ÎÉû0ºû!.û(û[Þ0í øÀTXç(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) € çûh×ñq1Ï»—ZH(attlist (("units" (name-token-group ("calspair" "linecolumn" "linerange" "linecolumnpair" "other")) IMPLIED) ("otherunits" NMTOKEN IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ÌûûÌ(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €‚¾ÜûJë5]¸†} F¤‡ûû¦æû ûìû-ÍKnû;ûuãwLûYcûcçÂEû=û.eûv¿ ûh×ñq§ûdU«N6ò("ÊËû1ûS ûˆ1û$ÃxûFrûBûœ¹ûûC^yûrûz7‰–û ~iûLóYj¥ûnÄû6ûsûDûTû 8Ø2—ZHû7Ïû{ûMû>sÐû»ÞO_ž¬ûe(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) € çûh×ñq1Ï»—ZH(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €û(ûmÔÔûmûmÔ(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) € ×ñq(ûhû11»—ZH(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ûcçûh1(attlist (("status" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) € :cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾªû?(ûqqÖTçûcû([ût8ûcçTÖqûq(?ûª¾ÜûJë5]¸†} F¤‡ÔûmÂEû=û.eûv¿ûû¦æû ûìû-ÍKnû;ûuãwLûYcût:cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾªû?(ûqqÖTçûcû[.ût9cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾªû?(ûqqÖTçûcû(ût„ût„8cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾªû?(ûqqÖTçûcût9cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾªû?(ûqqÖTçûcû[ût(attlist (("linkend" IDREF REQUIRED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €(attlist (("float" CDATA (nil "0")) ("pgwide" CDATA IMPLIED) ("label" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €û(û[ûû æ¦ûû¿ûveû.û=E‡¤F }†¸]5çûcHZ—ûû æ¦ûû¿ûveû.û=E‡¤F }†¸]5çûcHZ—ûû æ¦ûû¿ûveû.û=E‡¤F }†¸]5çûcHZ—(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ÔûmûmÔ(attlist (("pubwork" (name-token-group ("article" "book" "chapter" "part" "refentry" "section" "journal" "series" "set" "manuscript")) IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €bûcçÂEû=û.eûv¿ ûh×ñq§ûdU«N6ò("ÊËû1ûS ûˆ1û$ÃxûFrûBûœ¹ûûC^yûrûz7‰–û ~iûLóYj¥ûnÄû6ûsûDûTû 8Ø2—ZHû7Ïû{ûMû>sÐû»ÞO_ž¬ûe(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €9çXTÀø í0Þû[û(.û!ºû0ÉÎû"§ûdݲU•ùûZûwúBû5GNîÕû#³´Cû6pò@‡ÖžûKûû/«!}F9F}!«û/ûûKžÖ‡@òp6ûC´³û#ÕîNGû5BúûwûZù•U²Ýûd§û"ÎÉû0ºû!.û(û[Þ0í øÀTXç(attlist (("fpi" CDATA IMPLIED) ("status" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €Ÿfû(ûûŸûŸfû[.û“ûŸfûŸfû[û(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) € çûh×ñq1Ï»—ZH(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €=ûM¤Ôûmûû¦æû ûìû-ÍKnû;ûuãwLûYccûYLwãûuû;nKÍû-ìûû æ¦ûûûmÔ¤ûMcûYLwãûuû;nKÍû-ìûû æ¦ûûûmÔ¤(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €û(û,û[û,û,û,û,ÇÇ(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €bûcçÂEû=û.eûv¿ ûh×ñq§ûdU«N6ò("ÊËû1ûS ûˆ1û$ÃxûFrûBûœ¹ûûC^yûrûz7‰–û ~iûLóYj¥ûnÄû6ûsûDûTû 8Ø2—ZHû7Ïû{ûMû>sÐû»ÞO_ž¬ûe(attlist (("performance" (name-token-group ("optional" "required")) (nil "required")) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €°°(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €Óû c(attlist (("pagenum" CDATA IMPLIED) ("scope" (name-token-group ("all" "global" "local")) IMPLIED) ("significance" (name-token-group ("preferred" "normal")) (nil "normal")) ("class" (name-token-group ("singular" "startofrange" "endofrange")) IMPLIED) ("startref" IDREF IMPLIED) ("zone" IDREFS IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) € ˜û3¨,¨û3b¨¨û3˜¨¨û3 ¨(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €9çXTÀø í0Þû[û(.û!ºû0ÉÎû"§ûdݲU•ùûZûwúBû5GNîÕû#³´Cû6pò@‡ÖžûKûû/«!}F9F}!«û/ûûKžÖ‡@òp6ûC´³û#ÕîNGû5BúûwûZù•U²Ýûd§û"ÎÉû0ºû!.û(û[Þ0í øÀTXç(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €9çXTÀø í0Þû[û(.û!ºû0ÉÎû"§ûdݲU•ùûZûwúBû5GNîÕû#³´Cû6pò@‡ÖžûKûû/«!}F9F}!«û/ûûKžÖ‡@òp6ûC´³û#ÕîNGû5BúûwûZù•U²Ýûd§û"ÎÉû0ºû!.û(û[Þ0í øÀTXç(attlist (("class" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) € çûh×ñq1Ï»—ZH(attlist (("label" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €Ûû(F}}FÛû[F}F}ÛF}(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €û(-cûYLwãûuû;ûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾû(ûqqçûc-ûcçqûq(û¾ÜûJë5]¸†} F¤‡ÔûmÂEû=û.eûv¿ûû¦æû ûû;ûuãwLûYc-cûYLwãûuû;ûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾû(ûqqçûc(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) € çûh×ñq1Ï»—ZH(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) € ) )(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €9çXTÀø í0Þû[û(.û!ºû0ÉÎû"§ûdݲU•ùûZûwúBû5GNîÕû#³´Cû6pò@‡ÖžûKûû/«!}F9F}!«û/ûûKžÖ‡@òp6ûC´³û#ÕîNGû5BúûwûZù•U²Ýûd§û"ÎÉû0ºû!.û(û[Þ0í øÀTXç(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €=öö(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) € ×ñq(ûhû11»—ZH(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €XTÀø í00í øÀTX(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ûcçûh1(attlist (("linkend" IDREF IMPLIED) ("pagenum" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €bûcçÂEû=û.eûv¿ ûh×ñq§ûdU«N6ò("ÊËû1ûS ûˆ1û$ÃxûFrûBûœ¹ûûC^yûrûz7‰–û ~iûLóYj¥ûnÄû6ûsûDûTû 8Ø2—ZHû7Ïû{ûMû>sÐû»ÞO_ž¬ûe(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €bûcçÂEû=û.eûv¿ ûh×ñq§ûdU«N6ò("ÊËû1ûS ûˆ1û$ÃxûFrûBûœ¹ûûC^yûrûz7‰–û ~iûLóYj¥ûnÄû6ûsûDûTû 8Ø2—ZHû7Ïû{ûMû>sÐû»ÞO_ž¬ûe(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("entityref" ENTITY IMPLIED) ("fileref" CDATA IMPLIED) ("format" (name-token-group ("BMP" "CGM-CHAR" "CGM-BINARY" "CGM-CLEAR" "DITROFF" "DVI" "EPS" "EQN" "FAX" "GIF" "GIF87a" "GIF89a" "JPG" "JPEG" "IGES" "PCX" "PIC" "PNG" "PS" "SGML" "TBL" "TEX" "TIFF" "WMF" "WPG" "linespecific")) IMPLIED) ("srccredit" CDATA IMPLIED) ("role" CDATA IMPLIED))) (attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €9çXTÀø í0Þû[û(.û!ºû0ÉÎû"§ûdݲU•ùûZûwúBû5GNîÕû#³´Cû6pò@‡ÖžûKûû/«!}F9F}!«û/ûûKžÖ‡@òp6ûC´³û#ÕîNGû5BúûwûZù•U²Ýûd§û"ÎÉû0ºû!.û(û[Þ0í øÀTXç(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) € çûh×ñq1Ï»—ZH(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) € çûh×ñq1Ï»—ZH(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €XTÀø í00í øÀTX(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €=û}ðûûðû}û}ðûâ(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED) ("class" (name-token-group ("limit")) IMPLIED))) €ûcçûh1(attlist (("linkend" IDREF IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ûcçûh×ñq(—ZHÏ»_(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €9çXTÀø í0Þû[û(.û!ºû0ÉÎû"§ûdݲU•ùûZûwúBû5GNîÕû#³´Cû6pò@‡ÖžûKûû/«!}F9F}!«û/ûûKžÖ‡@òp6ûC´³û#ÕîNGû5BúûwûZù•U²Ýûd§û"ÎÉû0ºû!.û(û[Þ0í øÀTXç(attlist (("label" CDATA IMPLIED) ("status" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €$û(û(û[.ûxûxûxû[ûxûx(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €û(÷2cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾ(ûqqçûcû[2cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾ(ûqqçûcû(2cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾ(ûqqçûc2cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾ(ûqqçûc2cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾ(ûqqçûc(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €Ó¦c(attlist (("moreinfo" (name-token-group ("refentry" "none")) (nil "none")) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €W û–‰7ûzûrûrûz7‰–û  û–‰7ûzûr(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ûcçûh1(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) € çûh×ñq1Ï»—ZH(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €9çXTÀø í0Þû[û(.û!ºû0ÉÎû"§ûdݲU•ùûZûwúBû5GNîÕû#³´Cû6pò@‡ÖžûKûû/«!}F9F}!«û/ûûKžÖ‡@òp6ûC´³û#ÕîNGû5BúûwûZù•U²Ýûd§û"ÎÉû0ºû!.û(û[Þ0í øÀTXç(attlist (("width" CDATA IMPLIED) ("format" (NOTATION ("linespecific")) (nil "linespecific")) ("linenumbering" (name-token-group ("numbered" "unnumbered")) IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €dû¢ûcçÂEû=û.eûv¿ ûh×ñq§ûdU«N6ò("ÊËû1ûS ûˆ1û$ÃxûFrûBûœ¹ûûC^yûrûz7‰–û ~iûLóYj¥ûnÄû6ûsûDûTû 8Ø2—ZHû7Ïû{ûMû>sÐû»ÞO_ž¬ûe(attlist (("width" CDATA IMPLIED) ("format" (NOTATION ("linespecific")) (nil "linespecific")) ("linenumbering" (name-token-group ("numbered" "unnumbered")) IMPLIED) ("class" (name-token-group ("monospaced" "normal")) (nil "normal")) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €d¢ûûcçÂEû=û.eûv¿ ûh×ñq§ûdU«N6ò("ÊËû1ûS ûˆ1û$ÃxûFrûBûœ¹ûûC^yûrûz7‰–û ~iûLóYj¥ûnÄû6ûsûDûTû 8Ø2—ZHû7Ïû{ûMû>sÐû»ÞO_ž¬ûe(attlist (("namest" CDATA REQUIRED) ("nameend" CDATA REQUIRED) ("spanname" CDATA REQUIRED) ("colsep" CDATA IMPLIED) ("rowsep" CDATA IMPLIED) ("align" (name-token-group ("left" "right" "center" "justify" "char")) IMPLIED) ("char" CDATA IMPLIED) ("charoff" CDATA IMPLIED))) (attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €bûcçÂEû=û.eûv¿ ûh×ñq§ûdU«N6ò("ÊËû1ûS ûˆ1û$ÃxûFrûBûœ¹ûûC^yûrûz7‰–û ~iûLóYj¥ûnÄû6ûsûDûTû 8Ø2—ZHû7Ïû{ûMû>sÐû»ÞO_ž¬ûe(attlist (("label" CDATA IMPLIED) ("linkends" IDREFS IMPLIED) ("units" (name-token-group ("calspair" "linecolumn" "linerange" "linecolumnpair" "other")) IMPLIED) ("otherunits" NMTOKEN IMPLIED) ("coords" CDATA REQUIRED) ("id" ID REQUIRED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) (attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €û(--(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €û(û[.8cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾªû?(ûqqÖTçûc8cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾªû?(ûqqÖTçûcû[8cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾªû?(ûqqÖTçûc8cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾªû?(ûqqÖTçûc(attlist (("fpi" CDATA IMPLIED) ("label" CDATA IMPLIED) ("status" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €:Ÿ¼Ù„{®ûkû8“ûûHû(û“û8kû®{„Ù¼Ÿ::Ÿ¼Ù„{®ûkû8“û:Ÿ¼Ù„{®ûkû8“ûûHû[.:Ÿ¼Ù„{®ûkû8“ûûH:Ÿ¼Ù„{®ûkû8“ûûHû[(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) € çûh×ñq1Ï»—ZH(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €bûcçÂEû=û.eûv¿ ûh×ñq§ûdU«N6ò("ÊËû1ûS ûˆ1û$ÃxûFrûBûœ¹ûûC^yûrûz7‰–û ~iûLóYj¥ûnÄû6ûsûDûTû 8Ø2—ZHû7Ïû{ûMû>sÐû»ÞO_ž¬ûe(attlist (("status" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €û(cûYLwãûuû;nKÍû-ìûû æ¦ûûûmÔ¤û[.cûYLwãûuû;nKÍû-ìûû æ¦ûûûmÔ¤cûYLwãûuû;nKÍû-ìûû æ¦ûûûmÔ¤cûYLwãûuû;nKÍû-ìûû æ¦ûûûmÔ¤û[cûYLwãûuû;nKÍû-ìûû æ¦ûûûmÔ¤(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ûcçûh1(attlist (("id" ID REQUIRED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €™RR™(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €=(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €äF }††} F(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €û<o›û<oo(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €±±(attlist (("class" (name-token-group ("attribute" "attvalue" "element" "endtag" "emptytag" "genentity" "numcharref" "paramentity" "pi" "xmlpi" "starttag" "sgmlcomment")) IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ûcçûh1(attlist (("moreinfo" (name-token-group ("refentry" "none")) (nil "none")) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €½ûcçûh1(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €bûcçÂEû=û.eûv¿ ûh×ñq§ûdU«N6ò("ÊËû1ûS ûˆ1û$ÃxûFrûBûœ¹ûûC^yûrûz7‰–û ~iûLóYj¥ûnÄû6ûsûDûTû 8Ø2—ZHû7Ïû{ûMû>sÐû»ÞO_ž¬ûe(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) € çûh×ñq1Ï»—ZH(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) € çûh×ñq1Ï»—ZH(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) € çûh×ñq1Ï»—ZH(attlist (("moreinfo" (name-token-group ("refentry" "none")) (nil "none")) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ûcçûh1(attlist (("label" CDATA IMPLIED) ("status" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) € Ñû(û(Ÿ¼Ù„û[.:cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾªû?(ûqqÖTçûcûxû%„Ù¼Ÿ:cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾªû?(ûqqÖTçûcûxû%Ÿ¼Ù„:cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾªû?(ûqqÖTçûcûxû%Ÿ¼Ù„û[:cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾªû?(ûqqÖTçûcûxû%?Ÿ ¼  Ù „ ûx û% cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾªû?(ûqqÖTçûcŸ ¼  Ù „ ûxŸ ¼  Ù „ û%„ Ù  ¼ Ÿ Ÿ ¼  Ù „ û% ûx Ÿ ¼  Ù „ û% (attlist (("label" CDATA IMPLIED) ("linkend" IDREF IMPLIED) ("pagenum" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €bûcçÂEû=û.eûv¿ ûh×ñq§ûdU«N6ò("ÊËû1ûS ûˆ1û$ÃxûFrûBûœ¹ûûC^yûrûz7‰–û ~iûLóYj¥ûnÄû6ûsûDûTû 8Ø2—ZHû7Ïû{ûMû>sÐû»ÞO_ž¬ûe(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €bûcçÂEû=û.eûv¿ ûh×ñq§ûdU«N6ò("ÊËû1ûS ûˆ1û$ÃxûFrûBûœ¹ûûC^yûrûz7‰–û ~iûLóYj¥ûnÄû6ûsûDûTû 8Ø2—ZHû7Ïû{ûMû>sÐû»ÞO_ž¬ûe(attlist (("pagenum" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €Yç ûh×ñq§ûdU«N6ò("ÊËû1ûS ûˆ1û$ÃxûFrûBûœ¹ûûC^yûrûz7‰–û ~iûLóYj¥ûnÄû6ûsûDûTû 8Ø2—ZHû7Ïû{ûMû>sÐû»ÞO_ž¬ûe(attlist (("linkends" IDREFS IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €Wûh×ñq§ûdU«N6ò("ÊËû1ûS ûˆ1û$ÃxûFrûBûœ¹ûûC^yûrûz7‰–û ~iûLóYj¥ûnÄû6ûsûDûTû 8Ø2—ZHû7Ïû{ûMû>sÐû»ÞO_ž¬ûe(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €9çXTÀø í0Þû[û(.û!ºû0ÉÎû"§ûdݲU•ùûZûwúBû5GNîÕû#³´Cû6pò@‡ÖžûKûû/«!}F9F}!«û/ûûKžÖ‡@òp6ûC´³û#ÕîNGû5BúûwûZù•U²Ýûd§û"ÎÉû0ºû!.û(û[Þ0í øÀTXç(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €9çXTÀø í0Þû[û(.û!ºû0ÉÎû"§ûdݲU•ùûZûwúBû5GNîÕû#³´Cû6pò@‡ÖžûKûû/«!}F9F}!«û/ûûKžÖ‡@òp6ûC´³û#ÕîNGû5BúûwûZù•U²Ýûd§û"ÎÉû0ºû!.û(û[Þ0í øÀTXç(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €Yç ûh×ñq§ûdU«N6ò("ÊËû1ûS ûˆ1û$ÃxûFrûBûœ¹ûûC^yûrûz7‰–û ~iûLóYj¥ûnÄû6ûsûDûTû 8Ø2—ZHû7Ïû{ûMû>sÐû»ÞO_ž¬ûe(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €û(-cûYLwãûuû;ûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾû(ûqqçûc-ûcçqûq(û¾ÜûJë5]¸†} F¤‡ÔûmÂEû=û.eûv¿ûû¦æû ûû;ûuãwLûYc-cûYLwãûuû;ûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾû(ûqqçûc(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED) ("language" CDATA IMPLIED) ("class" (name-token-group ("class" "interface")) (nil "class")))) €û6ûsûDÆû=EÂûDûsû6ÂEû=Æ(attlist (("scheme" NMTOKEN IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ûyûy(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) € çûh×ñq1Ï»—ZH(attlist (("class" (name-token-group ("limit")) IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ûcçûh1(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €9çXTÀø í0Þû[û(.û!ºû0ÉÎû"§ûdݲU•ùûZûwúBû5GNîÕû#³´Cû6pò@‡ÖžûKûû/«!}F9F}!«û/ûûKžÖ‡@òp6ûC´³û#ÕîNGû5BúûwûZù•U²Ýûd§û"ÎÉû0ºû!.û(û[Þ0í øÀTXç(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €Wûh×ñq§ûdU«N6ò("ÊËû1ûS ûˆ1û$ÃxûFrûBûœ¹ûûC^yûrûz7‰–û ~iûLóYj¥ûnÄû6ûsûDûTû 8Ø2—ZHû7Ïû{ûMû>sÐû»ÞO_ž¬ûe(attlist (("relation" CDATA IMPLIED) ("role" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED))) €4û4çXTÀø í0Þû[û(.û!ºû0ÉÎû"§ûdݲU•ùûZûwúBû5GNîÕû#³´Cû6pò@‡Öž(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) € çûh×ñq1Ï»—ZH(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ûûT(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ûcçûh×ñq(—ZHÏ»_(attlist (("label" CDATA IMPLIED) ("status" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €û2û(û(tŸ¼Ù„û[.sÐû»ÞO_ž¬ûe(attlist (("moreinfo" (name-token-group ("refentry" "none")) (nil "none")) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ûcçûh1(attlist (("moreinfo" (name-token-group ("refentry" "none")) (nil "none")) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €Aûcçûh×ñq("ÊËû1ûS ûˆ1û$ÃxûFrûBûœ¹ûûC^yûrûz7‰–û ~iûLóYj¥ûnÄû6ûsûDûTû 8Ø2—ZH(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ûØ(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ûX;ûW¯;(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €Aûcçûh×ñq("ÊËû1ûS ûˆ1û$ÃxûFrûBûœ¹ûûC^yûrûz7‰–û ~iûLóYj¥ûnÄû6ûsûDûTû 8Ø2—ZH(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ôô(attlist (("contents" IDREFS IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €9çXTÀø í0Þû[û(.û!ºû0ÉÎû"§ûdݲU•ùûZûwúBû5GNîÕû#³´Cû6pò@‡ÖžûKûû/«!}F9F}!«û/ûûKžÖ‡@òp6ûC´³û#ÕîNGû5BúûwûZù•U²Ýûd§û"ÎÉû0ºû!.û(û[Þ0í øÀTXç(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) € çûh×ñq1Ï»—ZH(attlist (("label" CDATA IMPLIED) ("width" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €û(û[$cûYLwãûuû;ûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5çûc$cûYLwãûuû;ûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5çûc$cûYLwãûuû;ûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5çûc(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €çç(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ûcçûh1(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €bûcçÂEû=û.eûv¿ ûh×ñq§ûdU«N6ò("ÊËû1ûS ûˆ1û$ÃxûFrûBûœ¹ûûC^yûrûz7‰–û ~iûLóYj¥ûnÄû6ûsûDûTû 8Ø2—ZHû7Ïû{ûMû>sÐû»ÞO_ž¬ûe(attlist (("linkend" IDREF IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €Wûh×ñq§ûdU«N6ò("ÊËû1ûS ûˆ1û$ÃxûFrûBûœ¹ûûC^yûrûz7‰–û ~iûLóYj¥ûnÄû6ûsûDûTû 8Ø2—ZHû7Ïû{ûMû>sÐû»ÞO_ž¬ûe(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €9çXTÀø í0Þû[û(.û!ºû0ÉÎû"§ûdݲU•ùûZûwúBû5GNîÕû#³´Cû6pò@‡ÖžûKûû/«!}F9F}!«û/ûûKžÖ‡@òp6ûC´³û#ÕîNGû5BúûwûZù•U²Ýûd§û"ÎÉû0ºû!.û(û[Þ0í øÀTXç(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ôûGôûG(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) € çûh×ñq1Ï»—ZH(attlist (("subject" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €)ûcçq¾ÜûJë5]¸†} F¤‡ÔûmÂEû=û.eûv¿ûû¦æû ûû;ûuãwLûYc*û_cûYLwãûuû;ûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾqçûcû_(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ûcçûh1(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ûcçûh1(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €2(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ôûPôûP(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) (attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €~1(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) € çûh×ñq1Ï»—ZH(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €Yç ûh×ñq§ûdU«N6ò("ÊËû1ûS ûˆ1û$ÃxûFrûBûœ¹ûûC^yûrûz7‰–û ~iûLóYj¥ûnÄû6ûsûDûTû 8Ø2—ZHû7Ïû{ûMû>sÐû»ÞO_ž¬ûe(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ôûVôûV(attlist (("label" CDATA IMPLIED) ("linkend" IDREF IMPLIED) ("pagenum" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €bûcçÂEû=û.eûv¿ ûh×ñq§ûdU«N6ò("ÊËû1ûS ûˆ1û$ÃxûFrûBûœ¹ûûC^yûrûz7‰–û ~iûLóYj¥ûnÄû6ûsûDûTû 8Ø2—ZHû7Ïû{ûMû>sÐû»ÞO_ž¬ûe(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) (attlist (("otherterm" IDREF IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €bûcçÂEû=û.eûv¿ ûh×ñq§ûdU«N6ò("ÊËû1ûS ûˆ1û$ÃxûFrûBûœ¹ûûC^yûrûz7‰–û ~iûLóYj¥ûnÄû6ûsûDûTû 8Ø2—ZHû7Ïû{ûMû>sÐû»ÞO_ž¬ûe(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €2cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾ(ûqqçû(û`S1çqûq(¾ÜûJë5]¸†} F¤‡ÔûmÂEû=û.eûv¿ûû¦æû ûìû-ÍKnû;ûuãwLûYcû`S2cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾ(ûqqçû[û`Sû`S1cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾ(ûqqçû`S(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €û(--(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €û(--(attlist (("pagenum" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) (attlist (("class" (name-token-group ("service" "trade" "registered" "copyright")) (nil "trade")) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €bûcçÂEû=û.eûv¿ ûh×ñq§ûdU«N6ò("ÊËû1ûS ûˆ1û$ÃxûFrûBûœ¹ûûC^yûrûz7‰–û ~iûLóYj¥ûnÄû6ûsûDûTû 8Ø2—ZHû7Ïû{ûMû>sÐû»ÞO_ž¬ûe(attlist (("linkend" IDREF REQUIRED) ("label" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) (attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €çõçê‹ççêçê(attlist (("linkends" IDREFS IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €Wûh×ñq§ûdU«N6ò("ÊËû1ûS ûˆ1û$ÃxûFrûBûœ¹ûûC^yûrûz7‰–û ~iûLóYj¥ûnÄû6ûsûDûTû 8Ø2—ZHû7Ïû{ûMû>sÐû»ÞO_ž¬ûe(attlist (("status" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €9cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾªû?(ûqqÖTçûcû(M8ûcçTÖqûq(?ûª¾ÜûJë5]¸†} F¤‡ÔûmÂEû=û.eûv¿ûû¦æû ûìû-ÍKnû;ûuãwLûYcM:cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾªû?(ûqqÖTçûcû[.MM8cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾªû?(ûqqÖTçûcM9cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾªû?(ûqqÖTçûcû[M(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ôû\ôû\(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €>1cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾ(ûqqç1çqûq(¾ÜûJë5]¸†} F¤‡ÔûmÂEû=û.eûv¿ûû¦æû ûìû-ÍKnû;ûuãwLûYc1cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾ(ûqqç(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €&Lwû;ûuûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5(qHZ—ûcû(ã#%ûc—ZHq(5]¸†} F¤‡ÔûmÂEû=û.eûv¿ûû¦æû ûûuû;wL#ã'Lwû;ûuûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5(qHZ—ûcû[.ã##%Lwû;ûuûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5(qHZ—ûcã#&Lwû;ûuûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5(qHZ—ûcû[ã#(attlist (("cols" CDATA REQUIRED) ("tgroupstyle" CDATA IMPLIED) ("colsep" CDATA IMPLIED) ("rowsep" CDATA IMPLIED) ("align" (name-token-group ("left" "right" "center" "justify" "char")) IMPLIED) ("char" CDATA IMPLIED) ("charoff" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €šûg””š”šû”(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €û(çÔ(attlist (("moreinfo" (name-token-group ("refentry" "none")) (nil "none")) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €Aûcçûh×ñq("ÊËû1ûS ûˆ1û$ÃxûFrûBûœ¹ûûC^yûrûz7‰–û ~iûLóYj¥ûnÄû6ûsûDûTû 8Ø2—ZH(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ôtôt(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) € çûh×ñq1Ï»—ZH(attlist (("renderas" (name-token-group ("other" "sect1" "sect2" "sect3" "sect4" "sect5")) IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €Yç ûh×ñq§ûdU«N6ò("ÊËû1ûS ûˆ1û$ÃxûFrûBûœ¹ûûC^yûrûz7‰–û ~iûLóYj¥ûnÄû6ûsûDûTû 8Ø2—ZHû7Ïû{ûMû>sÐû»ÞO_ž¬ûe(attlist (("moreinfo" (name-token-group ("refentry" "none")) (nil "none")) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €½ûcçûh1(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €ûû (attlist (("status" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €û(:cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾªû?(ûqqÖTçûcû[.8ûcçTÖqûq(?ûª¾ÜûJë5]¸†} F¤‡ÔûmÂEû=û.eûv¿ûû¦æû ûìû-ÍKnû;ûuãwLûYc8cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾªû?(ûqqÖTçûc9cûYLwãûuû;nKÍû-ìûû æ¦ûû¿ûveû.û=EÂûmÔ‡¤F }†¸]5ëûJܾªû?(ûqqÖTçûcû[(attlist (("columns" CDATA IMPLIED) ("type" (name-token-group ("inline" "vert" "horiz")) (nil "vert")) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €vv(attlist (("label" CDATA IMPLIED) ("sepchar" CDATA (nil " ")) ("cmdlength" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €û^™RÄûÄR™û^û(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) € çûh×ñq1Ï»—ZH(attlist (("status" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €qHZ—ûfû+ç9—ZHq9qHZ—9qHZ—ûf9û?333(attlist (("weight" CDATA IMPLIED) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €û û (attlist (("moreinfo" (name-token-group ("refentry" "none")) (nil "none")) ("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €½ûcçûh1(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €bûcçÂEû=û.eûv¿ ûh×ñq§ûdU«N6ò("ÊËû1ûS ûˆ1û$ÃxûFrûBûœ¹ûûC^yûrûz7‰–û ~iûLóYj¥ûnÄû6ûsûDûTû 8Ø2—ZHû7Ïû{ûMû>sÐû»ÞO_ž¬ûe(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) € çûh×ñq1Ï»—ZH(attlist (("id" ID IMPLIED) ("lang" CDATA IMPLIED) ("remap" CDATA IMPLIED) ("xreflabel" CDATA IMPLIED) ("revisionflag" (name-token-group ("changed" "added" "deleted" "off")) IMPLIED) ("arch" CDATA IMPLIED) ("condition" CDATA IMPLIED) ("conformance" NMTOKENS IMPLIED) ("os" CDATA IMPLIED) ("revision" CDATA IMPLIED) ("security" CDATA IMPLIED) ("userlevel" CDATA IMPLIED) ("vendor" CDATA IMPLIED) ("role" CDATA IMPLIED))) €=(nil ("debconf" text "debconf" nil) ("gnome" text "GNOME" nil) ("progeny.inc" text "Progeny Linux Systems, Inc." nil) ("psgml" text "PSGML" nil) ("introduction" text (nil "introduction.xml" . "/cvs/progeny/power-on/configlets/configlet/documentation/book/") nil) ("architecture" text (nil "architecture.xml" . "/cvs/progeny/power-on/configlets/configlet/documentation/book/") nil) ("configlet" text (nil "configlet.xml" . "/cvs/progeny/power-on/configlets/configlet/documentation/book/") nil) ("frontend" text (nil "frontend.xml" . "/cvs/progeny/power-on/configlets/configlet/documentation/book/") nil) ("euro" text "€" nil) ("cularr" text "↶" nil) ("curarr" text "↷" nil) ("dArr" text "⇓" nil) ("darr2" text "⇊" nil) ("dharl" text "⇃" nil) ("dharr" text "⇂" nil) ("lAarr" text "⇚" nil) ("Larr" text "↞" nil) ("larr2" text "⇇" nil) ("larrhk" text "↩" nil) ("larrlp" text "↫" nil) ("larrtl" text "↢" nil) ("lhard" text "↽" nil) ("lharu" text "↼" nil) ("hArr" text "⇔" nil) ("harr" text "↔" nil) ("lrarr2" text "⇆" nil) ("rlarr2" text "⇄" nil) ("harrw" text "↭" nil) ("rlhar2" text "⇌" nil) ("lrhar2" text "⇋" nil) ("lsh" text "↰" nil) ("map" text "↦" nil) ("mumap" text "⊸" nil) ("nearr" text "↗" nil) ("nlArr" text "⇍" nil) ("nlarr" text "↚" nil) ("nhArr" text "⇎" nil) ("nharr" text "↮" nil) ("nrarr" text "↛" nil) ("nrArr" text "⇏" nil) ("nwarr" text "↖" nil) ("olarr" text "↺" nil) ("orarr" text "↻" nil) ("rAarr" text "⇛" nil) ("Rarr" text "↠" nil) ("rarr2" text "⇉" nil) ("rarrhk" text "↪" nil) ("rarrlp" text "↬" nil) ("rarrtl" text "↣" nil) ("rarrw" text "↝" nil) ("rhard" text "⇁" nil) ("rharu" text "⇀" nil) ("rsh" text "↱" nil) ("drarr" text "↘" nil) ("dlarr" text "↙" nil) ("uArr" text "⇑" nil) ("uarr2" text "⇈" nil) ("vArr" text "⇕" nil) ("varr" text "↕" nil) ("uharl" text "↿" nil) ("uharr" text "↾" nil) ("xlArr" text "" nil) ("xhArr" text "" nil) ("xharr" text "" nil) ("xrArr" text "" nil) ("amalg" text "" nil) ("Barwed" text "⌆" nil) ("barwed" text "⊼" nil) ("Cap" text "⋒" nil) ("Cup" text "⋓" nil) ("cuvee" text "⋎" nil) ("cuwed" text "⋏" nil) ("diam" text "⋄" nil) ("divonx" text "⋇" nil) ("intcal" text "⊺" nil) ("lthree" text "⋋" nil) ("ltimes" text "⋉" nil) ("minusb" text "⊟" nil) ("oast" text "⊛" nil) ("ocir" text "⊚" nil) ("odash" text "⊝" nil) ("odot" text "⊙" nil) ("ominus" text "⊖" nil) ("oplus" text "⊕" nil) ("osol" text "⊘" nil) ("otimes" text "⊗" nil) ("plusb" text "⊞" nil) ("plusdo" text "∔" nil) ("rthree" text "⋌" nil) ("rtimes" text "⋊" nil) ("sdot" text "⋅" nil) ("sdotb" text "⊡" nil) ("setmn" text "∖" nil) ("sqcap" text "⊓" nil) ("sqcup" text "⊔" nil) ("ssetmn" text "" nil) ("sstarf" text "⋆" nil) ("timesb" text "⊠" nil) ("top" text "⊤" nil) ("uplus" text "⊎" nil) ("wreath" text "≀" nil) ("xcirc" text "○" nil) ("xdtri" text "▽" nil) ("xutri" text "△" nil) ("coprod" text "∐" nil) ("prod" text "∏" nil) ("sum" text "∑" nil) ("rceil" text "⌉" nil) ("rfloor" text "⌋" nil) ("rpargt" text "" nil) ("urcorn" text "⌝" nil) ("drcorn" text "⌟" nil) ("lceil" text "⌈" nil) ("lfloor" text "⌊" nil) ("ulcorn" text "⌜" nil) ("dlcorn" text "⌞" nil) ("gnap" text "" nil) ("gne" text "≩" nil) ("gnE" text "≩" nil) ("gnsim" text "⋧" nil) ("gvnE" text "" nil) ("lnap" text "" nil) ("lnE" text "≨" nil) ("lne" text "≨" nil) ("lnsim" text "⋦" nil) ("lvnE" text "" nil) ("nap" text "≉" nil) ("ncong" text "≇" nil) ("nequiv" text "≢" nil) ("ngE" text "≱" nil) ("nge" text "" nil) ("nges" text "≱" nil) ("ngt" text "≯" nil) ("nle" text "" nil) ("nlE" text "≰" nil) ("nles" text "≰" nil) ("nlt" text "≮" nil) ("nltri" text "⋪" nil) ("nltrie" text "⋬" nil) ("nmid" text "∤" nil) ("npar" text "∦" nil) ("npr" text "⊀" nil) ("npre" text "" nil) ("nrtri" text "⋫" nil) ("nrtrie" text "⋭" nil) ("nsc" text "⊁" nil) ("nsce" text "" nil) ("nsim" text "≁" nil) ("nsime" text "≄" nil) ("nsmid" text "" nil) ("nspar" text "" nil) ("nsub" text "⊄" nil) ("nsube" text "⊈" nil) ("nsubE" text "⊈" nil) ("nsup" text "⊅" nil) ("nsupE" text "⊉" nil) ("nsupe" text "⊉" nil) ("nvdash" text "⊬" nil) ("nvDash" text "⊭" nil) ("nVDash" text "⊯" nil) ("nVdash" text "⊮" nil) ("prnap" text "⋨" nil) ("prnE" text "" nil) ("prnsim" text "⋨" nil) ("scnap" text "⋩" nil) ("scnE" text "" nil) ("scnsim" text "⋩" nil) ("subne" text "⊊" nil) ("subnE" text "⊊" nil) ("supne" text "⊋" nil) ("supnE" text "⊋" nil) ("vsubnE" text "" nil) ("vsubne" text "" nil) ("vsupne" text "" nil) ("vsupnE" text "" nil) ("ang" text "∠" nil) ("angmsd" text "∡" nil) ("beth" text "ℶ" nil) ("bprime" text "‵" nil) ("comp" text "∁" nil) ("daleth" text "ℸ" nil) ("ell" text "ℓ" nil) ("empty" text "" nil) ("gimel" text "ℷ" nil) ("image" text "ℑ" nil) ("inodot" text "ı" nil) ("nexist" text "∄" nil) ("oS" text "" nil) ("planck" text "ℏ" nil) ("real" text "ℜ" nil) ("sbsol" text "﹨" nil) ("weierp" text "℘" nil) ("ape" text "≊" nil) ("asymp" text "≍" nil) ("bcong" text "≌" nil) ("bepsi" text "" nil) ("bowtie" text "⋈" nil) ("bsim" text "∽" nil) ("bsime" text "⋍" nil) ("bump" text "≎" nil) ("bumpe" text "≏" nil) ("cire" text "≗" nil) ("colone" text "≔" nil) ("cuepr" text "⋞" nil) ("cuesc" text "⋟" nil) ("cupre" text "≼" nil) ("dashv" text "⊣" nil) ("ecir" text "≖" nil) ("ecolon" text "≕" nil) ("eDot" text "≑" nil) ("esdot" text "≐" nil) ("efDot" text "≒" nil) ("egs" text "⋝" nil) ("els" text "⋜" nil) ("erDot" text "≓" nil) ("fork" text "⋔" nil) ("frown" text "⌢" nil) ("gap" text "≳" nil) ("gsdot" text "⋗" nil) ("gE" text "≧" nil) ("gel" text "⋛" nil) ("gEl" text "⋛" nil) ("ges" text "" nil) ("Gg" text "⋙" nil) ("gl" text "≷" nil) ("gsim" text "≳" nil) ("Gt" text "≫" nil) ("lap" text "≲" nil) ("ldot" text "⋖" nil) ("lE" text "≦" nil) ("lEg" text "⋚" nil) ("leg" text "⋚" nil) ("les" text "" nil) ("lg" text "≶" nil) ("Ll" text "⋘" nil) ("lsim" text "≲" nil) ("Lt" text "≪" nil) ("ltrie" text "⊴" nil) ("mid" text "∣" nil) ("models" text "⊧" nil) ("pr" text "≺" nil) ("prap" text "≾" nil) ("pre" text "≼" nil) ("prsim" text "≾" nil) ("rtrie" text "⊵" nil) ("sc" text "≻" nil) ("scap" text "≿" nil) ("sccue" text "≽" nil) ("sce" text "≽" nil) ("scsim" text "≿" nil) ("sfrown" text "" nil) ("smid" text "" nil) ("smile" text "⌣" nil) ("spar" text "" nil) ("sqsub" text "⊏" nil) ("sqsube" text "⊑" nil) ("sqsup" text "⊐" nil) ("sqsupe" text "⊒" nil) ("ssmile" text "" nil) ("Sub" text "⋐" nil) ("subE" text "⊆" nil) ("Sup" text "⋑" nil) ("supE" text "⊇" nil) ("thkap" text "" nil) ("thksim" text "" nil) ("trie" text "≜" nil) ("twixt" text "≬" nil) ("vdash" text "⊢" nil) ("Vdash" text "⊩" nil) ("vDash" text "⊨" nil) ("veebar" text "⊻" nil) ("vltri" text "⊲" nil) ("vprop" text "∝" nil) ("vrtri" text "⊳" nil) ("Vvdash" text "⊪" nil) ("boxh" text "─" nil) ("boxv" text "│" nil) ("boxur" text "└" nil) ("boxul" text "┘" nil) ("boxdl" text "┐" nil) ("boxdr" text "┌" nil) ("boxvr" text "├" nil) ("boxhu" text "┴" nil) ("boxvl" text "┤" nil) ("boxhd" text "┬" nil) ("boxvh" text "┼" nil) ("boxvR" text "╞" nil) ("boxhU" text "╧" nil) ("boxvL" text "╡" nil) ("boxhD" text "╤" nil) ("boxvH" text "╪" nil) ("boxH" text "═" nil) ("boxV" text "║" nil) ("boxUR" text "╘" nil) ("boxUL" text "╛" nil) ("boxDL" text "╕" nil) ("boxDR" text "╒" nil) ("boxVR" text "╟" nil) ("boxHU" text "╨" nil) ("boxVL" text "╢" nil) ("boxHD" text "╥" nil) ("boxVH" text "╫" nil) ("boxVr" text "╠" nil) ("boxHu" text "╩" nil) ("boxVl" text "╣" nil) ("boxHd" text "╦" nil) ("boxVh" text "╬" nil) ("boxuR" text "╙" nil) ("boxUl" text "╜" nil) ("boxdL" text "╖" nil) ("boxDr" text "╓" nil) ("boxUr" text "╚" nil) ("boxuL" text "╝" nil) ("boxDl" text "╗" nil) ("boxdR" text "╔" nil) ("acy" text "а" nil) ("Acy" text "А" nil) ("bcy" text "б" nil) ("Bcy" text "Б" nil) ("vcy" text "в" nil) ("Vcy" text "В" nil) ("gcy" text "г" nil) ("Gcy" text "Г" nil) ("dcy" text "д" nil) ("Dcy" text "Д" nil) ("iecy" text "е" nil) ("IEcy" text "Е" nil) ("iocy" text "ё" nil) ("IOcy" text "Ё" nil) ("zhcy" text "ж" nil) ("ZHcy" text "Ж" nil) ("zcy" text "з" nil) ("Zcy" text "З" nil) ("icy" text "и" nil) ("Icy" text "И" nil) ("jcy" text "й" nil) ("Jcy" text "Й" nil) ("kcy" text "к" nil) ("Kcy" text "К" nil) ("lcy" text "л" nil) ("Lcy" text "Л" nil) ("mcy" text "м" nil) ("Mcy" text "М" nil) ("ncy" text "н" nil) ("Ncy" text "Н" nil) ("ocy" text "о" nil) ("Ocy" text "О" nil) ("pcy" text "п" nil) ("Pcy" text "П" nil) ("rcy" text "р" nil) ("Rcy" text "Р" nil) ("scy" text "с" nil) ("Scy" text "С" nil) ("tcy" text "т" nil) ("Tcy" text "Т" nil) ("ucy" text "у" nil) ("Ucy" text "У" nil) ("fcy" text "ф" nil) ("Fcy" text "Ф" nil) ("khcy" text "х" nil) ("KHcy" text "Х" nil) ("tscy" text "ц" nil) ("TScy" text "Ц" nil) ("chcy" text "ч" nil) ("CHcy" text "Ч" nil) ("shcy" text "ш" nil) ("SHcy" text "Ш" nil) ("shchcy" text "щ" nil) ("SHCHcy" text "Щ" nil) ("hardcy" text "ъ" nil) ("HARDcy" text "Ъ" nil) ("ycy" text "ы" nil) ("Ycy" text "Ы" nil) ("softcy" text "ь" nil) ("SOFTcy" text "Ь" nil) ("ecy" text "э" nil) ("Ecy" text "Э" nil) ("yucy" text "ю" nil) ("YUcy" text "Ю" nil) ("yacy" text "я" nil) ("YAcy" text "Я" nil) ("numero" text "№" nil) ("djcy" text "ђ" nil) ("DJcy" text "Ђ" nil) ("gjcy" text "ѓ" nil) ("GJcy" text "Ѓ" nil) ("jukcy" text "є" nil) ("Jukcy" text "Є" nil) ("dscy" text "ѕ" nil) ("DScy" text "Ѕ" nil) ("iukcy" text "і" nil) ("Iukcy" text "І" nil) ("yicy" text "ї" nil) ("YIcy" text "Ї" nil) ("jsercy" text "ј" nil) ("Jsercy" text "Ј" nil) ("ljcy" text "љ" nil) ("LJcy" text "Љ" nil) ("njcy" text "њ" nil) ("NJcy" text "Њ" nil) ("tshcy" text "ћ" nil) ("TSHcy" text "Ћ" nil) ("kjcy" text "ќ" nil) ("KJcy" text "Ќ" nil) ("ubrcy" text "ў" nil) ("Ubrcy" text "Ў" nil) ("dzcy" text "џ" nil) ("DZcy" text "Џ" nil) ("acute" text "´" nil) ("breve" text "˘" nil) ("caron" text "ˇ" nil) ("cedil" text "¸" nil) ("circ" text "∘" nil) ("dblac" text "˝" nil) ("die" text "¨" nil) ("dot" text "˙" nil) ("grave" text "`" nil) ("macr" text "¯" nil) ("ogon" text "˛" nil) ("ring" text "˚" nil) ("tilde" text "~" nil) ("uml" text "¨" nil) ("agr" text "α" nil) ("Agr" text "Α" nil) ("bgr" text "β" nil) ("Bgr" text "Β" nil) ("ggr" text "γ" nil) ("Ggr" text "Γ" nil) ("dgr" text "δ" nil) ("Dgr" text "Δ" nil) ("egr" text "ε" nil) ("Egr" text "Ε" nil) ("zgr" text "ζ" nil) ("Zgr" text "Ζ" nil) ("eegr" text "η" nil) ("EEgr" text "Η" nil) ("thgr" text "θ" nil) ("THgr" text "Θ" nil) ("igr" text "ι" nil) ("Igr" text "Ι" nil) ("kgr" text "κ" nil) ("Kgr" text "Κ" nil) ("lgr" text "λ" nil) ("Lgr" text "Λ" nil) ("mgr" text "μ" nil) ("Mgr" text "Μ" nil) ("ngr" text "ν" nil) ("Ngr" text "Ν" nil) ("xgr" text "ξ" nil) ("Xgr" text "Ξ" nil) ("ogr" text "ο" nil) ("Ogr" text "Ο" nil) ("pgr" text "π" nil) ("Pgr" text "Π" nil) ("rgr" text "ρ" nil) ("Rgr" text "Ρ" nil) ("sgr" text "σ" nil) ("Sgr" text "Σ" nil) ("sfgr" text "ς" nil) ("tgr" text "τ" nil) ("Tgr" text "Τ" nil) ("ugr" text "υ" nil) ("Ugr" text "Υ" nil) ("phgr" text "φ" nil) ("PHgr" text "Φ" nil) ("khgr" text "χ" nil) ("KHgr" text "Χ" nil) ("psgr" text "ψ" nil) ("PSgr" text "Ψ" nil) ("ohgr" text "ω" nil) ("OHgr" text "Ω" nil) ("aacgr" text "ά" nil) ("Aacgr" text "Ά" nil) ("eacgr" text "έ" nil) ("Eacgr" text "Έ" nil) ("eeacgr" text "ή" nil) ("EEacgr" text "Ή" nil) ("idigr" text "ϊ" nil) ("Idigr" text "Ϊ" nil) ("iacgr" text "ί" nil) ("Iacgr" text "Ί" nil) ("idiagr" text "ΐ" nil) ("oacgr" text "ό" nil) ("Oacgr" text "Ό" nil) ("udigr" text "ϋ" nil) ("Udigr" text "Ϋ" nil) ("uacgr" text "ύ" nil) ("Uacgr" text "Ύ" nil) ("udiagr" text "ΰ" nil) ("ohacgr" text "ώ" nil) ("OHacgr" text "Ώ" nil) ("alpha" text "α" nil) ("beta" text "β" nil) ("gamma" text "γ" nil) ("Gamma" text "Γ" nil) ("gammad" text "Ϝ" nil) ("delta" text "δ" nil) ("Delta" text "Δ" nil) ("epsi" text "∊" nil) ("epsiv" text "ε" nil) ("epsis" text "∊" nil) ("zeta" text "ζ" nil) ("eta" text "η" nil) ("thetas" text "θ" nil) ("Theta" text "Θ" nil) ("thetav" text "ϑ" nil) ("iota" text "ι" nil) ("kappa" text "κ" nil) ("kappav" text "ϰ" nil) ("lambda" text "λ" nil) ("Lambda" text "Λ" nil) ("mu" text "μ" nil) ("nu" text "ν" nil) ("xi" text "ξ" nil) ("Xi" text "Ξ" nil) ("pi" text "π" nil) ("piv" text "ϖ" nil) ("Pi" text "Π" nil) ("rho" text "ρ" nil) ("rhov" text "ϱ" nil) ("sigma" text "σ" nil) ("Sigma" text "Σ" nil) ("sigmav" text "ς" nil) ("tau" text "τ" nil) ("upsi" text "υ" nil) ("Upsi" text "ϒ" nil) ("phis" text "φ" nil) ("Phi" text "Φ" nil) ("phiv" text "ϕ" nil) ("chi" text "χ" nil) ("psi" text "ψ" nil) ("Psi" text "Ψ" nil) ("omega" text "ω" nil) ("Omega" text "Ω" nil) ("b.alpha" text "α" nil) ("b.beta" text "β" nil) ("b.gamma" text "γ" nil) ("b.Gamma" text "Γ" nil) ("b.gammad" text "Ϝ" nil) ("b.delta" text "δ" nil) ("b.Delta" text "Δ" nil) ("b.epsi" text "ε" nil) ("b.epsiv" text "ε" nil) ("b.epsis" text "ε" nil) ("b.zeta" text "ζ" nil) ("b.eta" text "η" nil) ("b.thetas" text "θ" nil) ("b.Theta" text "Θ" nil) ("b.thetav" text "ϑ" nil) ("b.iota" text "ι" nil) ("b.kappa" text "κ" nil) ("b.kappav" text "ϰ" nil) ("b.lambda" text "λ" nil) ("b.Lambda" text "Λ" nil) ("b.mu" text "μ" nil) ("b.nu" text "ν" nil) ("b.xi" text "ξ" nil) ("b.Xi" text "Ξ" nil) ("b.pi" text "π" nil) ("b.Pi" text "Π" nil) ("b.piv" text "ϖ" nil) ("b.rho" text "ρ" nil) ("b.rhov" text "ϱ" nil) ("b.sigma" text "σ" nil) ("b.Sigma" text "Σ" nil) ("b.sigmav" text "ς" nil) ("b.tau" text "τ" nil) ("b.upsi" text "υ" nil) ("b.Upsi" text "ϒ" nil) ("b.phis" text "φ" nil) ("b.Phi" text "Φ" nil) ("b.phiv" text "ϕ" nil) ("b.chi" text "χ" nil) ("b.psi" text "ψ" nil) ("b.Psi" text "Ψ" nil) ("b.omega" text "ω" nil) ("b.Omega" text "Ω" nil) ("aacute" text "á" nil) ("Aacute" text "Á" nil) ("acirc" text "â" nil) ("Acirc" text "Â" nil) ("agrave" text "à" nil) ("Agrave" text "À" nil) ("aring" text "å" nil) ("Aring" text "Å" nil) ("atilde" text "ã" nil) ("Atilde" text "Ã" nil) ("auml" text "ä" nil) ("Auml" text "Ä" nil) ("aelig" text "æ" nil) ("AElig" text "Æ" nil) ("ccedil" text "ç" nil) ("Ccedil" text "Ç" nil) ("eth" text "Ð" nil) ("ETH" text "ð" nil) ("eacute" text "é" nil) ("Eacute" text "É" nil) ("ecirc" text "ê" nil) ("Ecirc" text "Ê" nil) ("egrave" text "è" nil) ("Egrave" text "È" nil) ("euml" text "ë" nil) ("Euml" text "Ë" nil) ("iacute" text "í" nil) ("Iacute" text "Í" nil) ("icirc" text "î" nil) ("Icirc" text "Î" nil) ("igrave" text "ì" nil) ("Igrave" text "Ì" nil) ("iuml" text "ï" nil) ("Iuml" text "Ï" nil) ("ntilde" text "ñ" nil) ("Ntilde" text "Ñ" nil) ("oacute" text "ó" nil) ("Oacute" text "Ó" nil) ("ocirc" text "ô" nil) ("Ocirc" text "Ô" nil) ("ograve" text "ò" nil) ("Ograve" text "Ò" nil) ("oslash" text "⊘" nil) ("Oslash" text "Ø" nil) ("otilde" text "õ" nil) ("Otilde" text "Õ" nil) ("ouml" text "ö" nil) ("Ouml" text "Ö" nil) ("szlig" text "ß" nil) ("thorn" text "þ" nil) ("THORN" text "Þ" nil) ("uacute" text "ú" nil) ("Uacute" text "Ú" nil) ("ucirc" text "Û" nil) ("Ucirc" text "û" nil) ("ugrave" text "ù" nil) ("Ugrave" text "Ù" nil) ("uuml" text "ü" nil) ("Uuml" text "Ü" nil) ("yacute" text "ý" nil) ("Yacute" text "Ý" nil) ("yuml" text "ÿ" nil) ("abreve" text "ă" nil) ("Abreve" text "Ă" nil) ("amacr" text "ā" nil) ("Amacr" text "Ā" nil) ("aogon" text "ą" nil) ("Aogon" text "Ą" nil) ("cacute" text "ć" nil) ("Cacute" text "Ć" nil) ("ccaron" text "č" nil) ("Ccaron" text "Č" nil) ("ccirc" text "ĉ" nil) ("Ccirc" text "Ĉ" nil) ("cdot" text "⋅" nil) ("Cdot" text "Ċ" nil) ("dcaron" text "ď" nil) ("Dcaron" text "Ď" nil) ("dstrok" text "đ" nil) ("Dstrok" text "Đ" nil) ("ecaron" text "ě" nil) ("Ecaron" text "Ě" nil) ("edot" text "ė" nil) ("Edot" text "Ė" nil) ("emacr" text "ē" nil) ("Emacr" text "Ē" nil) ("eogon" text "ę" nil) ("Eogon" text "Ę" nil) ("gacute" text "ǵ" nil) ("gbreve" text "ğ" nil) ("Gbreve" text "Ğ" nil) ("Gcedil" text "Ģ" nil) ("gcirc" text "ĝ" nil) ("Gcirc" text "Ĝ" nil) ("gdot" text "ġ" nil) ("Gdot" text "Ġ" nil) ("hcirc" text "ĥ" nil) ("Hcirc" text "Ĥ" nil) ("hstrok" text "ħ" nil) ("Hstrok" text "Ħ" nil) ("Idot" text "İ" nil) ("Imacr" text "Ī" nil) ("imacr" text "ī" nil) ("ijlig" text "ij" nil) ("IJlig" text "IJ" nil) ("iogon" text "į" nil) ("Iogon" text "Į" nil) ("itilde" text "ĩ" nil) ("Itilde" text "Ĩ" nil) ("jcirc" text "ĵ" nil) ("Jcirc" text "Ĵ" nil) ("kcedil" text "ķ" nil) ("Kcedil" text "Ķ" nil) ("kgreen" text "ĸ" nil) ("lacute" text "ĺ" nil) ("Lacute" text "Ĺ" nil) ("lcaron" text "ľ" nil) ("Lcaron" text "Ľ" nil) ("lcedil" text "ļ" nil) ("Lcedil" text "Ļ" nil) ("lmidot" text "ŀ" nil) ("Lmidot" text "Ŀ" nil) ("lstrok" text "ł" nil) ("Lstrok" text "Ł" nil) ("nacute" text "ń" nil) ("Nacute" text "Ń" nil) ("eng" text "ŋ" nil) ("ENG" text "Ŋ" nil) ("napos" text "ʼn" nil) ("ncaron" text "ň" nil) ("Ncaron" text "Ň" nil) ("ncedil" text "ņ" nil) ("Ncedil" text "Ņ" nil) ("odblac" text "ő" nil) ("Odblac" text "Ő" nil) ("Omacr" text "Ō" nil) ("omacr" text "ō" nil) ("oelig" text "œ" nil) ("OElig" text "Œ" nil) ("racute" text "ŕ" nil) ("Racute" text "Ŕ" nil) ("rcaron" text "ř" nil) ("Rcaron" text "Ř" nil) ("rcedil" text "ŗ" nil) ("Rcedil" text "Ŗ" nil) ("sacute" text "ś" nil) ("Sacute" text "Ś" nil) ("scaron" text "š" nil) ("Scaron" text "Š" nil) ("scedil" text "ş" nil) ("Scedil" text "Ş" nil) ("scirc" text "ŝ" nil) ("Scirc" text "Ŝ" nil) ("tcaron" text "ť" nil) ("Tcaron" text "Ť" nil) ("tcedil" text "ţ" nil) ("Tcedil" text "Ţ" nil) ("tstrok" text "ŧ" nil) ("Tstrok" text "Ŧ" nil) ("ubreve" text "ŭ" nil) ("Ubreve" text "Ŭ" nil) ("udblac" text "ű" nil) ("Udblac" text "Ű" nil) ("umacr" text "ū" nil) ("Umacr" text "Ū" nil) ("uogon" text "ų" nil) ("Uogon" text "Ų" nil) ("uring" text "ů" nil) ("Uring" text "Ů" nil) ("utilde" text "ũ" nil) ("Utilde" text "Ũ" nil) ("wcirc" text "ŵ" nil) ("Wcirc" text "Ŵ" nil) ("ycirc" text "ŷ" nil) ("Ycirc" text "Ŷ" nil) ("Yuml" text "Ÿ" nil) ("zacute" text "ź" nil) ("Zacute" text "Ź" nil) ("zcaron" text "ž" nil) ("Zcaron" text "Ž" nil) ("zdot" text "ż" nil) ("Zdot" text "Ż" nil) ("half" text "½" nil) ("frac12" text "½" nil) ("frac14" text "¼" nil) ("frac34" text "¾" nil) ("frac18" text "⅛" nil) ("frac38" text "⅜" nil) ("frac58" text "⅝" nil) ("frac78" text "⅞" nil) ("sup1" text "¹" nil) ("sup2" text "²" nil) ("sup3" text "³" nil) ("plus" text "+" nil) ("plusmn" text "±" nil) ("equals" text "=" nil) ("gt" text ">" nil) ("divide" text "÷" nil) ("times" text "×" nil) ("curren" text "¤" nil) ("pound" text "£" nil) ("dollar" text "$" nil) ("cent" text "¢" nil) ("yen" text "¥" nil) ("num" text "#" nil) ("percnt" text "%" nil) ("ast" text "∗" nil) ("commat" text "@" nil) ("lsqb" text "[" nil) ("bsol" text "\" nil) ("rsqb" text "]" nil) ("lcub" text "{" nil) ("horbar" text "―" nil) ("verbar" text "|" nil) ("rcub" text "}" nil) ("micro" text "µ" nil) ("ohm" text "Ω" nil) ("deg" text "°" nil) ("ordm" text "º" nil) ("ordf" text "ª" nil) ("sect" text "§" nil) ("para" text "¶" nil) ("middot" text "·" nil) ("larr" text "←" nil) ("rarr" text "→" nil) ("uarr" text "↑" nil) ("darr" text "↓" nil) ("copy" text "©" nil) ("reg" text "¯" nil) ("trade" text "™" nil) ("brvbar" text "¦" nil) ("not" text "¬" nil) ("sung" text "♩" nil) ("excl" text "!" nil) ("iexcl" text "¡" nil) ("quot" text """ nil) ("apos" text "'" nil) ("lpar" text "(" nil) ("rpar" text ")" nil) ("comma" text "," nil) ("lowbar" text "_" nil) ("hyphen" text "" nil) ("period" text "." nil) ("sol" text "/" nil) ("colon" text ":" nil) ("semi" text ";" nil) ("quest" text "?" nil) ("iquest" text "¿" nil) ("laquo" text "«" nil) ("raquo" text "»" nil) ("lsquo" text "‘" nil) ("rsquo" text "’" nil) ("ldquo" text "“" nil) ("rdquo" text "”" nil) ("nbsp" text " " nil) ("shy" text "­" nil) ("emsp" text " " nil) ("ensp" text " " nil) ("emsp13" text " " nil) ("emsp14" text " " nil) ("numsp" text " " nil) ("puncsp" text " " nil) ("thinsp" text " " nil) ("hairsp" text " " nil) ("mdash" text "—" nil) ("ndash" text "–" nil) ("dash" text "‐" nil) ("blank" text "␣" nil) ("hellip" text "…" nil) ("nldr" text "‥" nil) ("frac13" text "⅓" nil) ("frac23" text "⅔" nil) ("frac15" text "⅕" nil) ("frac25" text "⅖" nil) ("frac35" text "⅗" nil) ("frac45" text "⅘" nil) ("frac16" text "⅙" nil) ("frac56" text "⅚" nil) ("incare" text "℅" nil) ("block" text "█" nil) ("uhblk" text "▀" nil) ("lhblk" text "▄" nil) ("blk14" text "░" nil) ("blk12" text "▒" nil) ("blk34" text "▓" nil) ("marker" text "▮" nil) ("cir" text "○" nil) ("squ" text "□" nil) ("rect" text "▭" nil) ("utri" text "▵" nil) ("dtri" text "▿" nil) ("star" text "⋆" nil) ("bull" text "•" nil) ("squf" text "▪" nil) ("utrif" text "▴" nil) ("dtrif" text "▾" nil) ("ltrif" text "◂" nil) ("rtrif" text "▸" nil) ("clubs" text "♣" nil) ("diams" text "♦" nil) ("hearts" text "♥" nil) ("spades" text "♠" nil) ("malt" text "✠" nil) ("dagger" text "†" nil) ("Dagger" text "‡" nil) ("check" text "✓" nil) ("cross" text "✗" nil) ("sharp" text "♯" nil) ("flat" text "♭" nil) ("male" text "♂" nil) ("female" text "♀" nil) ("phone" text "☎" nil) ("telrec" text "⌕" nil) ("copysr" text "℗" nil) ("caret" text "⁁" nil) ("lsquor" text "‚" nil) ("ldquor" text "„" nil) ("fflig" text "ff" nil) ("filig" text "fi" nil) ("ffilig" text "ffi" nil) ("ffllig" text "ffl" nil) ("fllig" text "fl" nil) ("mldr" text "…" nil) ("rdquor" text "“" nil) ("rsquor" text "‘" nil) ("vellip" text "⋮" nil) ("hybull" text "⁃" nil) ("loz" text "◊" nil) ("lozf" text "✦" nil) ("ltri" text "◃" nil) ("rtri" text "▹" nil) ("starf" text "★" nil) ("natur" text "♮" nil) ("rx" text "℞" nil) ("sext" text "✶" nil) ("target" text "⌖" nil) ("dlcrop" text "⌍" nil) ("drcrop" text "⌌" nil) ("ulcrop" text "⌏" nil) ("urcrop" text "⌎" nil) ("aleph" text "ℵ" nil) ("and" text "∧" nil) ("ang90" text "∟" nil) ("angsph" text "∢" nil) ("ap" text "≈" nil) ("becaus" text "∵" nil) ("bottom" text "⊥" nil) ("cap" text "∩" nil) ("cong" text "≅" nil) ("conint" text "∮" nil) ("cup" text "∪" nil) ("equiv" text "≡" nil) ("exist" text "∃" nil) ("forall" text "∀" nil) ("fnof" text "ƒ" nil) ("ge" text "≥" nil) ("iff" text "" nil) ("infin" text "∞" nil) ("int" text "∫" nil) ("isin" text "∊" nil) ("lang" text "〈" nil) ("lArr" text "⇐" nil) ("le" text "≤" nil) ("minus" text "−" nil) ("mnplus" text "∓" nil) ("nabla" text "∇" nil) ("ne" text "≠" nil) ("ni" text "∍" nil) ("or" text "∨" nil) ("par" text "∥" nil) ("part" text "∂" nil) ("permil" text "‰" nil) ("perp" text "⊥" nil) ("prime" text "′" nil) ("Prime" text "″" nil) ("prop" text "∝" nil) ("radic" text "√" nil) ("rang" text "〉" nil) ("rArr" text "⇒" nil) ("sim" text "∼" nil) ("sime" text "≃" nil) ("square" text "□" nil) ("sub" text "⊂" nil) ("sube" text "⊆" nil) ("sup" text "⊃" nil) ("supe" text "⊇" nil) ("there4" text "∴" nil) ("Verbar" text "‖" nil) ("angst" text "Å" nil) ("bernou" text "ℬ" nil) ("compfn" text "∘" nil) ("Dot" text "̈" nil) ("DotDot" text "⃜" nil) ("hamilt" text "ℋ" nil) ("lagran" text "ℒ" nil) ("lowast" text "∗" nil) ("notin" text "∉" nil) ("order" text "ℴ" nil) ("phmmat" text "ℳ" nil) ("tdot" text "⃛" nil) ("tprime" text "‴" nil) ("wedgeq" text "≙" nil)) (nil) nil discover-2.1.2/doctools/ldp.dsl0000644002342100234210000006165110266266026015130 0ustar perepere ]]> ]]> ]> ;; ============================== ;; customize the print stylesheet ;; ============================== (declare-characteristic preserve-sdata? ;; this is necessary because right now jadetex does not understand ;; symbolic entities, whereas things work well with numeric entities. "UNREGISTERED::James Clark//Characteristic::preserve-sdata?" #f) (define %generate-article-toc% ;; Should a Table of Contents be produced for Articles? #t) (define (toc-depth nd) 2) (define %generate-article-titlepage-on-separate-page% ;; Should the article title page be on a separate page? #t) (define %section-autolabel% ;; Are sections enumerated? #t) (define %footnote-ulinks% ;; Generate footnotes for ULinks? #f) (define %bop-footnotes% ;; Make "bottom-of-page" footnotes? #f) (define %body-start-indent% ;; Default indent of body text 0pi) (define %para-indent-firstpara% ;; First line start-indent for the first paragraph 0pt) (define %para-indent% ;; First line start-indent for paragraphs (other than the first) 0pt) (define %block-start-indent% ;; Extra start-indent for block-elements 0pt) ;; For now, turning this on is bad, because long tables float right ;; off the end of the page. It looks like one could customize which ;; types of objects float. (define formal-object-float ;; Do formal objects float? #f) (define %hyphenation% ;; Allow automatic hyphenation? #t) (define %admon-graphics% ;; Use graphics in admonitions? #f) (define (article-titlepage-recto-elements) ;; elements on an article's titlepage ;; note: added othercredit to the default list (list (normalize "title") (normalize "subtitle") (normalize "authorgroup") (normalize "author") (normalize "othercredit") (normalize "copyright") (normalize "legalnotice") (normalize "pubdate") (normalize "revhistory") (normalize "releaseinfo") (normalize "abstract"))) ;; System names, usernames, etc should be courier-like to distinguish ;; them from other text. (element systemitem ($mono-seq$)) ;; This next block should go away entirely when the upstream DocBook ;; maintainers accept my patch, and when Debian imports it. ;; ;; Until that point in time, adding the copyright to an article's ;; title page is pretty ugly in printed output; the copyright is much ;; too close to the list of authors. (mode article-titlepage-recto-mode (element abbrev (make paragraph use: article-titlepage-recto-style quadding: %article-title-quadding% (process-children))) (element abstract (make display-group use: article-titlepage-verso-style ;; EVEN THOUGH IT'S RECTO! quadding: 'start start-indent: (+ (inherited-start-indent) (/ %body-width% 24)) end-indent: (+ (inherited-end-indent) (/ %body-width% 24)) ($semiformal-object$))) (element (abstract title) (empty-sosofo)) (element address (make display-group use: article-titlepage-recto-style quadding: %article-title-quadding% (with-mode titlepage-address-mode ($linespecific-display$ %indent-address-lines% %number-address-lines%)))) (element affiliation (make display-group use: article-titlepage-recto-style (process-children))) (element artpagenums (make paragraph use: article-titlepage-recto-style quadding: %article-title-quadding% (process-children))) (element author (let ((author-name (author-string)) (author-affil (select-elements (children (current-node)) (normalize "affiliation")))) (make sequence (make paragraph use: article-titlepage-recto-style font-size: (HSIZE 3) line-spacing: (* (HSIZE 3) %line-spacing-factor%) space-before: (* (HSIZE 2) %head-before-factor%) quadding: %article-title-quadding% keep-with-next?: #t (literal author-name)) (process-node-list author-affil)))) (element authorblurb (make display-group use: article-titlepage-recto-style quadding: 'start (process-children))) (element (authorblurb para) (make paragraph use: article-titlepage-recto-style quadding: 'start (process-children))) (element authorgroup (make display-group (process-children))) (element authorinitials (make paragraph use: article-titlepage-recto-style quadding: %article-title-quadding% (process-children))) (element bibliomisc (process-children)) (element bibliomset (process-children)) (element collab (make paragraph use: article-titlepage-recto-style quadding: %article-title-quadding% (process-children))) (element confgroup (make paragraph use: article-titlepage-recto-style quadding: %article-title-quadding% (process-children))) (element contractnum (make paragraph use: article-titlepage-recto-style quadding: %article-title-quadding% (process-children))) (element contractsponsor (make paragraph use: article-titlepage-recto-style quadding: %article-title-quadding% (process-children))) (element contrib (make paragraph use: article-titlepage-recto-style quadding: %article-title-quadding% (process-children))) (element copyright (make paragraph use: article-titlepage-recto-style quadding: %article-title-quadding% space-before: (* (HSIZE 2) %head-before-factor%) ;; XXX: OUR HACK (literal (gentext-element-name (current-node))) (literal "\no-break-space;") (literal (dingbat "copyright")) (literal "\no-break-space;") (process-children))) (element (copyright year) (make sequence (process-children) (if (not (last-sibling? (current-node))) (literal ", ") (literal (string-append " " (gentext-by) " "))))) (element (copyright holder) ($charseq$)) (element corpauthor (make sequence (make paragraph use: article-titlepage-recto-style font-size: (HSIZE 3) line-spacing: (* (HSIZE 3) %line-spacing-factor%) space-before: (* (HSIZE 2) %head-before-factor%) quadding: %article-title-quadding% keep-with-next?: #t (process-children)) ;; This paragraph is a hack to get the spacing right. ;; Authors always have an affiliation paragraph below them, even if ;; it's empty, so corpauthors need one too. (make paragraph use: article-titlepage-recto-style font-size: (HSIZE 1) line-spacing: (* (HSIZE 1) %line-spacing-factor%) space-after: (* (HSIZE 2) %head-after-factor% 4) quadding: %article-title-quadding% keep-with-next?: #t (literal "\no-break-space;")))) (element corpname (make paragraph use: article-titlepage-recto-style quadding: %article-title-quadding% (process-children))) (element date (make paragraph use: article-titlepage-recto-style quadding: %article-title-quadding% (process-children))) (element edition (make paragraph use: article-titlepage-recto-style quadding: %article-title-quadding% (process-children) (literal "\no-break-space;") (literal (gentext-element-name-space (gi (current-node)))))) (element editor (let ((editor-name (author-string))) (make sequence (if (first-sibling?) (make paragraph use: article-titlepage-recto-style font-size: (HSIZE 1) line-spacing: (* (HSIZE 1) %line-spacing-factor%) space-before: (* (HSIZE 2) %head-before-factor% 6) quadding: %article-title-quadding% keep-with-next?: #t (literal (gentext-edited-by))) (empty-sosofo)) (make paragraph use: article-titlepage-recto-style font-size: (HSIZE 3) line-spacing: (* (HSIZE 3) %line-spacing-factor%) space-after: (* (HSIZE 2) %head-after-factor% 4) quadding: %article-title-quadding% keep-with-next?: #t (literal editor-name))))) (element firstname (make paragraph use: article-titlepage-recto-style quadding: %article-title-quadding% (process-children))) (element graphic (let* ((nd (current-node)) (fileref (attribute-string "fileref" nd)) (entityref (attribute-string "entityref" nd)) (format (attribute-string "format" nd)) (align (attribute-string "align" nd))) (if (or fileref entityref) (make external-graphic notation-system-id: (if format format "") entity-system-id: (if fileref (graphic-file fileref) (if entityref (entity-generated-system-id entityref) "")) display?: #t display-alignment: 'center) (empty-sosofo)))) (element honorific (make paragraph use: article-titlepage-recto-style quadding: %article-title-quadding% (process-children))) (element isbn (make paragraph use: article-titlepage-recto-style quadding: %article-title-quadding% (process-children))) (element issn (make paragraph use: article-titlepage-recto-style quadding: %article-title-quadding% (process-children))) (element itermset (empty-sosofo)) (element invpartnumber (make paragraph use: article-titlepage-recto-style quadding: %article-title-quadding% (process-children))) (element issuenum (make paragraph use: article-titlepage-recto-style quadding: %article-title-quadding% (process-children))) (element jobtitle (make paragraph use: article-titlepage-recto-style quadding: %article-title-quadding% (process-children))) (element keywordset (make paragraph quadding: 'start (make sequence font-weight: 'bold (literal "Keywords: ")) (process-children))) (element keyword (make sequence (process-children) (if (not (last-sibling?)) (literal ", ") (literal "")))) (element legalnotice (make display-group use: article-titlepage-recto-style ($semiformal-object$))) (element (legalnotice title) (empty-sosofo)) (element (legalnotice para) (make paragraph use: article-titlepage-recto-style quadding: 'start line-spacing: (* 0.8 (inherited-line-spacing)) font-size: (* 0.8 (inherited-font-size)) (process-children))) (element lineage (make paragraph use: article-titlepage-recto-style quadding: %article-title-quadding% (process-children))) (element modespec (empty-sosofo)) (element orgdiv (make paragraph use: article-titlepage-recto-style quadding: %article-title-quadding% (process-children))) (element orgname (make paragraph use: article-titlepage-recto-style quadding: %article-title-quadding% (process-children))) (element othercredit (make paragraph use: article-titlepage-recto-style quadding: %article-title-quadding% (process-children))) (element othername (make paragraph use: article-titlepage-recto-style quadding: %article-title-quadding% (process-children))) (element pagenums (make paragraph use: article-titlepage-recto-style quadding: %article-title-quadding% (process-children))) (element printhistory (make paragraph use: article-titlepage-recto-style quadding: %article-title-quadding% (process-children))) (element productname (make paragraph use: article-titlepage-recto-style quadding: %article-title-quadding% (process-children))) (element productnumber (make paragraph use: article-titlepage-recto-style quadding: %article-title-quadding% (process-children))) (element pubdate (make paragraph use: article-titlepage-recto-style quadding: %article-title-quadding% (process-children))) (element publisher (make display-group use: article-titlepage-recto-style quadding: %article-title-quadding% (process-children))) (element publishername (make paragraph use: article-titlepage-recto-style quadding: %article-title-quadding% (process-children))) (element pubsnumber (make paragraph use: article-titlepage-recto-style quadding: %article-title-quadding% (process-children))) (element releaseinfo (make paragraph space-before: (* (HSIZE 2) %head-before-factor%) ;; XXX: OUR HACK use: article-titlepage-recto-style quadding: %article-title-quadding% (process-children))) (element revhistory (make sequence (make paragraph use: article-titlepage-recto-style space-before: (* (HSIZE 3) %head-before-factor%) space-after: (/ (* (HSIZE 1) %head-before-factor%) 2) (literal (gentext-element-name (current-node)))) (make table before-row-border: #f (process-children)))) (element (revhistory revision) (let ((revnumber (select-elements (descendants (current-node)) (normalize "revnumber"))) (revdate (select-elements (descendants (current-node)) (normalize "date"))) (revauthor (select-elements (descendants (current-node)) (normalize "authorinitials"))) (revremark (select-elements (descendants (current-node)) (normalize "revremark")))) (make sequence (make table-row (make table-cell column-number: 1 n-columns-spanned: 1 n-rows-spanned: 1 start-indent: 0pt (if (not (node-list-empty? revnumber)) (make paragraph use: article-titlepage-recto-style font-size: %bf-size% font-weight: 'medium (literal (gentext-element-name-space (current-node))) (process-node-list revnumber)) (empty-sosofo))) (make table-cell column-number: 2 n-columns-spanned: 1 n-rows-spanned: 1 start-indent: 0pt cell-before-column-margin: (if (equal? (print-backend) 'tex) 6pt 0pt) (if (not (node-list-empty? revdate)) (make paragraph use: article-titlepage-recto-style font-size: %bf-size% font-weight: 'medium (process-node-list revdate)) (empty-sosofo))) (make table-cell column-number: 3 n-columns-spanned: 1 n-rows-spanned: 1 start-indent: 0pt cell-before-column-margin: (if (equal? (print-backend) 'tex) 6pt 0pt) (if (not (node-list-empty? revauthor)) (make paragraph use: article-titlepage-recto-style font-size: %bf-size% font-weight: 'medium (literal (gentext-revised-by)) (process-node-list revauthor)) (empty-sosofo)))) (make table-row cell-after-row-border: #f (make table-cell column-number: 1 n-columns-spanned: 3 n-rows-spanned: 1 start-indent: 0pt (if (not (node-list-empty? revremark)) (make paragraph use: article-titlepage-recto-style font-size: %bf-size% font-weight: 'medium space-after: (if (last-sibling?) 0pt (/ %block-sep% 2)) (process-node-list revremark)) (empty-sosofo))))))) (element (revision revnumber) (process-children-trim)) (element (revision date) (process-children-trim)) (element (revision authorinitials) (process-children-trim)) (element (revision revremark) (process-children-trim)) (element seriesvolnums (make paragraph use: article-titlepage-recto-style quadding: %article-title-quadding% (process-children))) (element shortaffil (make paragraph use: article-titlepage-recto-style quadding: %article-title-quadding% (process-children))) (element subjectset (empty-sosofo)) (element subtitle (make paragraph use: article-titlepage-recto-style font-size: (HSIZE 4) line-spacing: (* (HSIZE 4) %line-spacing-factor%) space-before: (* (HSIZE 4) %head-before-factor%) quadding: %article-subtitle-quadding% keep-with-next?: #t (process-children-trim))) (element surname (make paragraph use: article-titlepage-recto-style quadding: %article-title-quadding% (process-children))) (element title (make paragraph use: article-titlepage-recto-style font-size: (HSIZE 5) line-spacing: (* (HSIZE 5) %line-spacing-factor%) space-before: (* (HSIZE 5) %head-before-factor%) quadding: %article-title-quadding% keep-with-next?: #t (with-mode title-mode (process-children-trim)))) (element titleabbrev (empty-sosofo)) (element volumenum (make paragraph use: article-titlepage-recto-style quadding: %article-title-quadding% (process-children))) ) (declare-characteristic preserve-sdata? ;; this is necessary because right now jadetex does not understand ;; symbolic entities, whereas things work well with numeric entities. "UNREGISTERED::James Clark//Characteristic::preserve-sdata?" #f) (define %generate-legalnotice-link% ;; put the legal notice in a separate file #t) (define %admon-graphics-path% ;; use graphics in admonitions, set their "http://www.progeny.com/images/utility/") (define %admon-graphics% #t) (define ($admon-graphic$ #!optional (nd (current-node))) ;; REFENTRY admon-graphic ;; PURP Admonition graphic file ;; DESC ;; Given an admonition node, returns the name of the graphic that should ;; be used for that admonition. ;; /DESC ;; AUTHOR N/A ;; /REFENTRY (cond ((equal? (gi nd) (normalize "tip")) (string-append %admon-graphics-path% "tip.png")) ((equal? (gi nd) (normalize "note")) (string-append %admon-graphics-path% "note.png")) ((equal? (gi nd) (normalize "important")) (string-append %admon-graphics-path% "important.png")) ((equal? (gi nd) (normalize "caution")) (string-append %admon-graphics-path% "caution.png")) ((equal? (gi nd) (normalize "warning")) (string-append %admon-graphics-path% "warning.png")) (else (error (string-append (gi nd) " is not an admonition."))))) (define %callout-graphics-extension% ;; REFENTRY callout-graphics-extension ;; PURP Extension for callout graphics ;; DESC ;; Sets the extension to use on callout graphics. ;; /DESC ;; AUTHOR N/A ;; /REFENTRY ".png") (define %callout-graphics-path% ;; REFENTRY callout-graphics-path ;; PURP Path to callout graphics ;; DESC ;; Sets the path, probably relative to the directory where the HTML ;; files are created, to the callout graphics. ;; /DESC ;; AUTHOR N/A ;; /REFENTRY "http://www.progeny.com/images/utility/callouts/") (define %funcsynopsis-decoration% ;; make funcsynopsis look pretty #t) (define %html-ext% ;; when producing HTML files, use this extension ".html") (define %generate-book-toc% ;; Should a Table of Contents be produced for books? #t) (define %generate-article-toc% ;; Should a Table of Contents be produced for articles? #t) (define %generate-part-toc% ;; Should a Table of Contents be produced for parts? #t) (define %generate-book-titlepage% ;; produce a title page for books #t) (define %generate-article-titlepage% ;; produce a title page for articles #t) (define (chunk-skip-first-element-list) ;; forces the Table of Contents on separate page '()) (define (list-element-list) ;; fixes bug in Table of Contents generation '()) (define %root-filename% ;; The filename of the root HTML document (e.g, "index"). "index") (define %shade-verbatim% ;; verbatim sections will be shaded if t(rue) #t) (define %use-id-as-filename% ;; Use ID attributes as name for component HTML files? #t) (define %graphic-extensions% ;; graphic extensions allowed '("gif" "png" "jpg" "jpeg" "tif" "tiff" "eps" "epsf" )) (define %graphic-default-extension% "gif") (define %section-autolabel% ;; For enumerated sections (1.1, 1.1.1, 1.2, etc.) #t) (define (toc-depth nd) ;; more depth (2 levels) to toc; instead of flat hierarchy ;; 2) 4) ;; System names, usernames, etc should be courier-like to distinguish ;; them from other text. (element systemitem ($mono-seq$)) (element emphasis ;; make role=strong equate to bold for emphasis tag (if (equal? (attribute-string "role") "strong") (make element gi: "STRONG" (process-children)) (make element gi: "EM" (process-children)))) (define (book-titlepage-recto-elements) ;; elements on a book's titlepage ;; note: added revhistory to the default list (list (normalize "title") (normalize "subtitle") (normalize "graphic") (normalize "mediaobject") (normalize "corpauthor") (normalize "authorgroup") (normalize "author") (normalize "editor") (normalize "othercredit") (normalize "copyright") (normalize "legalnotice") (normalize "revhistory") (normalize "releaseinfo") (normalize "abstract"))) (define (article-titlepage-recto-elements) ;; elements on an article's titlepage ;; note: added othercredit to the default list (list (normalize "title") (normalize "subtitle") (normalize "authorgroup") (normalize "author") (normalize "othercredit") (normalize "copyright") (normalize "legalnotice") (normalize "pubdate") (normalize "revhistory") (normalize "releaseinfo") (normalize "abstract"))) (mode article-titlepage-recto-mode (element contrib ;; print out with othercredit information; for translators, etc. (make sequence (make element gi: "SPAN" attributes: (list (list "CLASS" (gi))) (process-children)))) (element othercredit ;; print out othercredit information; for translators, etc. (let ((author-name (author-string)) (author-contrib (select-elements (children (current-node)) (normalize "contrib")))) (make element gi: "P" attributes: (list (list "CLASS" (gi))) (make element gi: "B" (literal author-name) (literal " - ")) (process-node-list author-contrib)))) ) (define (article-title nd) (let* ((artchild (children nd)) (artheader (select-elements artchild (normalize "artheader"))) (artinfo (select-elements artchild (normalize "articleinfo"))) (ahdr (if (node-list-empty? artheader) artinfo artheader)) (ahtitles (select-elements (children ahdr) (normalize "title"))) (artitles (select-elements artchild (normalize "title"))) (titles (if (node-list-empty? artitles) ahtitles artitles))) (if (node-list-empty? titles) "" (node-list-first titles)))) ;; Redefinition of $verbatim-display$ ;; Origin: dbverb.dsl ;; Different foreground and background colors for verbatim elements ;; Author: Philippe Martin (feloy@free.fr) 2001-04-07 (define ($verbatim-display$ indent line-numbers?) (let ((verbatim-element (gi)) (content (make element gi: "PRE" attributes: (list (list "CLASS" (gi))) (if (or indent line-numbers?) ($verbatim-line-by-line$ indent line-numbers?) (process-children))))) (if %shade-verbatim% (make element gi: "TABLE" attributes: (shade-verbatim-attr-element verbatim-element) (make element gi: "TR" (make element gi: "TD" (make element gi: "FONT" attributes: (list (list "COLOR" (car (shade-verbatim-element-colors verbatim-element)))) content)))) content))) ;; ;; Customize this function ;; to change the foreground and background colors ;; of the different verbatim elements ;; Return (list "foreground color" "background color") ;; (define (shade-verbatim-element-colors element) (case element (("SYNOPSIS") (list "#000000" "#6495ED")) ;; ... ;; Add your verbatim elements here ;; ... (else (list "#000000" "#E0E0E0")))) (define (shade-verbatim-attr-element element) (list (list "BORDER" (cond ((equal? element (normalize "SCREEN")) "1") (else "0"))) (list "BGCOLOR" (car (cdr (shade-verbatim-element-colors element)))) (list "WIDTH" ($table-width$)))) ;; End of $verbatim-display$ redefinition discover-2.1.2/doctools/man-wrapper.sh0000755002342100234210000000372110266266026016427 0ustar perepere#! /bin/sh # $Progeny$ set -e progname=man-wrapper.sh doctools=$(dirname $0) basedir=${doctools}/.. # default output mode is SGML mode=sgml # display a usage message usage () { cat << EOF Usage: $progname [OPTION ...] document generates wrapper for SGML- or XML-formatted manual page document Options: -h --help display this usage message and exit -s --sgml generate SGML wrapper -x --xml generate XML wrapper EOF :; } # parse command line args=$(getopt --options +hsx \ --long help,sgml,xml \ --name "$progname" -- "$@") eval set -- "$args" while :; do case "$1" in -h|--help) showhelp=1 ;; -s|--sgml) mode=sgml ;; -x|--xml) mode=xml ;; --) shift; break ;; *) echo "$progname: error while parsing option \"$1\"" >&2; USAGE=$(usage); echo "$USAGE" >&2; exit 1 ;; esac shift done if [ "$showhelp" ]; then usage exit 0 fi refentry=$1 if [ "$mode" = "sgml" ]; then doctype_line=' &2 fi cat << EOF $doctype_line [ EOF # XXX: the next three if blocks scream for a stupid eval trick if [ -f ${doctools}/progeny.ent ]; then cat << EOF %progeny-entity; EOF fi if [ -f ${doctools}/config.ent ]; then cat << EOF %config-entity; EOF fi if [ -f ${basedir}/package.ent ]; then cat << EOF %package-entity; EOF fi cat << EOF ]> EOF cat << EOF &myrefentry; EOF # vim:set ai et sts=4 sw=4 tw=0: discover-2.1.2/doctools/config.ent0000664002342100234210000000206310655642004015610 0ustar perepere discover-2.1.2/doctools/xsl/0002755002342100234210000000000010655642004014440 5ustar pereperediscover-2.1.2/doctools/xsl/fo.xsl0000644002342100234210000000513510266266026015602 0ustar perepere ansi 1 1 all discover-2.1.2/doctools/xsl/html-common.xsl0000644002342100234210000000034110266266026017422 0ustar perepere discover-2.1.2/doctools/xsl/html-chunk.xsl0000644002342100234210000000060010266266026017240 0ustar perepere discover-2.1.2/doctools/xsl/common.xsl0000644002342100234210000000047710266266026016472 0ustar perepere discover-2.1.2/doctools/xsl/html.xsl0000644002342100234210000000060110266266026016133 0ustar perepere discover-2.1.2/LICENSE0000644002342100234210000000225510266266027013020 0ustar perepereExcept where otherwise noted, the following copyright notice and license terms apply to Discover: Copyright 2002 Progeny Linux Systems, Inc. Copyright 2002 Hewlett-Packard Company 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 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 THE COPYRIGHT HOLDER(S) 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. discover-2.1.2/configure0000775002342100234210000123013010655641064013720 0ustar perepere#! /bin/sh # From configure.ac Progeny. # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.61 for discover 2.1.2. # # Report bugs to . # # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, # 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. # # Copyright 2002 Progeny Linux Systems, Inc. ## --------------------- ## ## M4sh Initialization. ## ## --------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in *posix*) set -o posix ;; esac fi # PATH needs CR # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then echo "#! /bin/sh" >conf$$.sh echo "exit 0" >>conf$$.sh chmod +x conf$$.sh if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then PATH_SEPARATOR=';' else PATH_SEPARATOR=: fi rm -f conf$$.sh fi # Support unset when possible. if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then as_unset=unset else as_unset=false fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) as_nl=' ' IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. case $0 in *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 { (exit 1); exit 1; } fi # Work around bugs in pre-3.0 UWIN ksh. for as_var in ENV MAIL MAILPATH do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. for as_var in \ LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ LC_TELEPHONE LC_TIME do if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then eval $as_var=C; export $as_var else ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var fi done # Required to use basename. if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi # Name of the executable. as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # CDPATH. $as_unset CDPATH if test "x$CONFIG_SHELL" = x; then if (eval ":") 2>/dev/null; then as_have_required=yes else as_have_required=no fi if test $as_have_required = yes && (eval ": (as_func_return () { (exit \$1) } as_func_success () { as_func_return 0 } as_func_failure () { as_func_return 1 } as_func_ret_success () { return 0 } as_func_ret_failure () { return 1 } exitcode=0 if as_func_success; then : else exitcode=1 echo as_func_success failed. fi if as_func_failure; then exitcode=1 echo as_func_failure succeeded. fi if as_func_ret_success; then : else exitcode=1 echo as_func_ret_success failed. fi if as_func_ret_failure; then exitcode=1 echo as_func_ret_failure succeeded. fi if ( set x; as_func_ret_success y && test x = \"\$1\" ); then : else exitcode=1 echo positional parameters were not saved. fi test \$exitcode = 0) || { (exit 1); exit 1; } ( as_lineno_1=\$LINENO as_lineno_2=\$LINENO test \"x\$as_lineno_1\" != \"x\$as_lineno_2\" && test \"x\`expr \$as_lineno_1 + 1\`\" = \"x\$as_lineno_2\") || { (exit 1); exit 1; } ") 2> /dev/null; then : else as_candidate_shells= as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. case $as_dir in /*) for as_base in sh bash ksh sh5; do as_candidate_shells="$as_candidate_shells $as_dir/$as_base" done;; esac done IFS=$as_save_IFS for as_shell in $as_candidate_shells $SHELL; do # Try only shells that exist, to save several forks. if { test -f "$as_shell" || test -f "$as_shell.exe"; } && { ("$as_shell") 2> /dev/null <<\_ASEOF if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in *posix*) set -o posix ;; esac fi : _ASEOF }; then CONFIG_SHELL=$as_shell as_have_required=yes if { "$as_shell" 2> /dev/null <<\_ASEOF if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in *posix*) set -o posix ;; esac fi : (as_func_return () { (exit $1) } as_func_success () { as_func_return 0 } as_func_failure () { as_func_return 1 } as_func_ret_success () { return 0 } as_func_ret_failure () { return 1 } exitcode=0 if as_func_success; then : else exitcode=1 echo as_func_success failed. fi if as_func_failure; then exitcode=1 echo as_func_failure succeeded. fi if as_func_ret_success; then : else exitcode=1 echo as_func_ret_success failed. fi if as_func_ret_failure; then exitcode=1 echo as_func_ret_failure succeeded. fi if ( set x; as_func_ret_success y && test x = "$1" ); then : else exitcode=1 echo positional parameters were not saved. fi test $exitcode = 0) || { (exit 1); exit 1; } ( as_lineno_1=$LINENO as_lineno_2=$LINENO test "x$as_lineno_1" != "x$as_lineno_2" && test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2") || { (exit 1); exit 1; } _ASEOF }; then break fi fi done if test "x$CONFIG_SHELL" != x; then for as_var in BASH_ENV ENV do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var done export CONFIG_SHELL exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"} fi if test $as_have_required = no; then echo This script requires a shell more modern than all the echo shells that I found on your system. Please install a echo modern shell, or manually run the script under such a echo shell if you do have one. { (exit 1); exit 1; } fi fi fi (eval "as_func_return () { (exit \$1) } as_func_success () { as_func_return 0 } as_func_failure () { as_func_return 1 } as_func_ret_success () { return 0 } as_func_ret_failure () { return 1 } exitcode=0 if as_func_success; then : else exitcode=1 echo as_func_success failed. fi if as_func_failure; then exitcode=1 echo as_func_failure succeeded. fi if as_func_ret_success; then : else exitcode=1 echo as_func_ret_success failed. fi if as_func_ret_failure; then exitcode=1 echo as_func_ret_failure succeeded. fi if ( set x; as_func_ret_success y && test x = \"\$1\" ); then : else exitcode=1 echo positional parameters were not saved. fi test \$exitcode = 0") || { echo No shell found that supports shell functions. echo Please tell autoconf@gnu.org about your system, echo including any error possibly output before this echo message } as_lineno_1=$LINENO as_lineno_2=$LINENO test "x$as_lineno_1" != "x$as_lineno_2" && test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || { # Create $as_me.lineno as a copy of $as_myself, but with $LINENO # uniformly replaced by the line number. The first 'sed' inserts a # line-number line after each line using $LINENO; the second 'sed' # does the real work. The second script uses 'N' to pair each # line-number line with the line containing $LINENO, and appends # trailing '-' during substitution so that $LINENO is not a special # case at line end. # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the # scripts with optimization help from Paolo Bonzini. Blame Lee # E. McMahon (1931-1989) for sed's syntax. :-) sed -n ' p /[$]LINENO/= ' <$as_myself | sed ' s/[$]LINENO.*/&-/ t lineno b :lineno N :loop s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ t loop s/-\n.*// ' >$as_me.lineno && chmod +x "$as_me.lineno" || { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 { (exit 1); exit 1; }; } # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensitive to this). . "./$as_me.lineno" # Exit status is that of the last command. exit } if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in -n*) case `echo 'x\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. *) ECHO_C='\c';; esac;; *) ECHO_N='-n';; esac if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir fi echo >conf$$.file if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -p'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -p' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -p' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null if mkdir -p . 2>/dev/null; then as_mkdir_p=: else test -d ./-p && rmdir ./-p as_mkdir_p=false fi if test -x / >/dev/null 2>&1; then as_test_x='test -x' else if ls -dL / >/dev/null 2>&1; then as_ls_L_option=L else as_ls_L_option= fi as_test_x=' eval sh -c '\'' if test -d "$1"; then test -d "$1/."; else case $1 in -*)set "./$1";; esac; case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in ???[sx]*):;;*)false;;esac;fi '\'' sh ' fi as_executable_p=$as_test_x # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" # Find the correct PATH separator. Usually this is `:', but # DJGPP uses `;' like DOS. if test "X${PATH_SEPARATOR+set}" != Xset; then UNAME=${UNAME-`uname 2>/dev/null`} case X$UNAME in *-DOS) lt_cv_sys_path_separator=';' ;; *) lt_cv_sys_path_separator=':' ;; esac PATH_SEPARATOR=$lt_cv_sys_path_separator fi # Check that we are running under the correct shell. SHELL=${CONFIG_SHELL-/bin/sh} case X$ECHO in X*--fallback-echo) # Remove one level of quotation (which was required for Make). ECHO=`echo "$ECHO" | sed 's,\\\\\$\\$0,'$0','` ;; esac echo=${ECHO-echo} if test "X$1" = X--no-reexec; then # Discard the --no-reexec flag, and continue. shift elif test "X$1" = X--fallback-echo; then # Avoid inline document here, it may be left over : elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then # Yippee, $echo works! : else # Restart under the correct shell. exec $SHELL "$0" --no-reexec ${1+"$@"} fi if test "X$1" = X--fallback-echo; then # used as fallback echo shift cat </dev/null && echo_test_string="`eval $cmd`" && (test "X$echo_test_string" = "X$echo_test_string") 2>/dev/null then break fi done fi if test "X`($echo '\t') 2>/dev/null`" = 'X\t' && echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then : else # The Solaris, AIX, and Digital Unix default echo programs unquote # backslashes. This makes it impossible to quote backslashes using # echo "$something" | sed 's/\\/\\\\/g' # # So, first we look for a working echo in the user's PATH. IFS="${IFS= }"; save_ifs="$IFS"; IFS=$PATH_SEPARATOR for dir in $PATH /usr/ucb; do if (test -f $dir/echo || test -f $dir/echo$ac_exeext) && test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' && echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then echo="$dir/echo" break fi done IFS="$save_ifs" if test "X$echo" = Xecho; then # We didn't find a better echo, so look for alternatives. if test "X`(print -r '\t') 2>/dev/null`" = 'X\t' && echo_testing_string=`(print -r "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then # This shell has a builtin print -r that does the trick. echo='print -r' elif (test -f /bin/ksh || test -f /bin/ksh$ac_exeext) && test "X$CONFIG_SHELL" != X/bin/ksh; then # If we have ksh, try running configure again with it. ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh} export ORIGINAL_CONFIG_SHELL CONFIG_SHELL=/bin/ksh export CONFIG_SHELL exec $CONFIG_SHELL "$0" --no-reexec ${1+"$@"} else # Try using printf. echo='printf %s\n' if test "X`($echo '\t') 2>/dev/null`" = 'X\t' && echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then # Cool, printf works : elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` && test "X$echo_testing_string" = 'X\t' && echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL export CONFIG_SHELL SHELL="$CONFIG_SHELL" export SHELL echo="$CONFIG_SHELL $0 --fallback-echo" elif echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` && test "X$echo_testing_string" = 'X\t' && echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then echo="$CONFIG_SHELL $0 --fallback-echo" else # maybe with a smaller string... prev=: for cmd in 'echo test' 'sed 2q "$0"' 'sed 10q "$0"' 'sed 20q "$0"' 'sed 50q "$0"'; do if (test "X$echo_test_string" = "X`eval $cmd`") 2>/dev/null then break fi prev="$cmd" done if test "$prev" != 'sed 50q "$0"'; then echo_test_string=`eval $prev` export echo_test_string exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "$0" ${1+"$@"} else # Oops. We lost completely, so just stick with echo. echo=echo fi fi fi fi fi fi # Copy echo and quote the copy suitably for passing to libtool from # the Makefile, instead of quoting the original, which is used later. ECHO=$echo if test "X$ECHO" = "X$CONFIG_SHELL $0 --fallback-echo"; then ECHO="$CONFIG_SHELL \\\$\$0 --fallback-echo" fi exec 7<&0 &1 # Name of the host. # hostname on some systems (SVR3.2, Linux) returns a bogus exit status, # so uname gets run too. ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` # # Initializations. # ac_default_prefix=/usr/local ac_clean_files= ac_config_libobj_dir=. LIBOBJS= cross_compiling=no subdirs= MFLAGS= MAKEFLAGS= SHELL=${CONFIG_SHELL-/bin/sh} # Identity of this package. PACKAGE_NAME='discover' PACKAGE_TARNAME='discover' PACKAGE_VERSION='2.1.2' PACKAGE_STRING='discover 2.1.2' PACKAGE_BUGREPORT='debian-boot@lists.debian.org' ac_unique_file="config.h.in" # Factoring default headers for most tests. ac_includes_default="\ #include #ifdef HAVE_SYS_TYPES_H # include #endif #ifdef HAVE_SYS_STAT_H # include #endif #ifdef STDC_HEADERS # include # include #else # ifdef HAVE_STDLIB_H # include # endif #endif #ifdef HAVE_STRING_H # if !defined STDC_HEADERS && defined HAVE_MEMORY_H # include # endif # include #endif #ifdef HAVE_STRINGS_H # include #endif #ifdef HAVE_INTTYPES_H # include #endif #ifdef HAVE_STDINT_H # include #endif #ifdef HAVE_UNISTD_H # include #endif" ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datarootdir datadir sysconfdir sharedstatedir localstatedir includedir oldincludedir docdir infodir htmldir dvidir pdfdir psdir libdir localedir mandir DEFS ECHO_C ECHO_N ECHO_T LIBS build_alias host_alias target_alias build build_cpu build_vendor build_os host host_cpu host_vendor host_os target target_cpu target_vendor target_os CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CPP INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA LN_S ECHO RANLIB STRIP GREP EGREP LIBTOOL DOXYGEN CURL_CONFIG LIBOBJS libportability CHECK_CFLAGS CHECK_LIBS PACKAGE_MAJOR PACKAGE_MINOR PACKAGE_MICRO LT_CURRENT LT_REVISION LT_AGE INSTALL_DIR LTLIBOBJS SYSDEPS LINUXSYSDEP STUBSYSDEP export_CPPFLAGS export_LDFLAGS export_LIBS DISCOVER_DEFAULT_URL PROGENY_CONFIG_SCRIPT_NAME PROGENY_CONFIG_SCRIPT_SET PROGENY_CONFIG_SCRIPT_VARS PROGENY_SHOW_CONFIG_SET PROGENY_SHOW_CONFIG_VARS' ac_subst_files='' ac_precious_vars='build_alias host_alias target_alias CC CFLAGS LDFLAGS LIBS CPPFLAGS CPP' # Initialize some variables set by options. ac_init_help= ac_init_version=false # The variables have the same names as the options, with # dashes changed to underlines. cache_file=/dev/null exec_prefix=NONE no_create= no_recursion= prefix=NONE program_prefix=NONE program_suffix=NONE program_transform_name=s,x,x, silent= site= srcdir= verbose= x_includes=NONE x_libraries=NONE # Installation directory options. # These are left unexpanded so users can "make install exec_prefix=/foo" # and all the variables that are supposed to be based on exec_prefix # by default will actually change. # Use braces instead of parens because sh, perl, etc. also accept them. # (The list follows the same order as the GNU Coding Standards.) bindir='${exec_prefix}/bin' sbindir='${exec_prefix}/sbin' libexecdir='${exec_prefix}/libexec' datarootdir='${prefix}/share' datadir='${datarootdir}' sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' includedir='${prefix}/include' oldincludedir='/usr/include' docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' infodir='${datarootdir}/info' htmldir='${docdir}' dvidir='${docdir}' pdfdir='${docdir}' psdir='${docdir}' libdir='${exec_prefix}/lib' localedir='${datarootdir}/locale' mandir='${datarootdir}/man' ac_prev= ac_dashdash= for ac_option do # If the previous option needs an argument, assign it. if test -n "$ac_prev"; then eval $ac_prev=\$ac_option ac_prev= continue fi case $ac_option in *=*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; *) ac_optarg=yes ;; esac # Accept the important Cygnus configure options, so we can diagnose typos. case $ac_dashdash$ac_option in --) ac_dashdash=yes ;; -bindir | --bindir | --bindi | --bind | --bin | --bi) ac_prev=bindir ;; -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) bindir=$ac_optarg ;; -build | --build | --buil | --bui | --bu) ac_prev=build_alias ;; -build=* | --build=* | --buil=* | --bui=* | --bu=*) build_alias=$ac_optarg ;; -cache-file | --cache-file | --cache-fil | --cache-fi \ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) ac_prev=cache_file ;; -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) cache_file=$ac_optarg ;; --config-cache | -C) cache_file=config.cache ;; -datadir | --datadir | --datadi | --datad) ac_prev=datadir ;; -datadir=* | --datadir=* | --datadi=* | --datad=*) datadir=$ac_optarg ;; -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ | --dataroo | --dataro | --datar) ac_prev=datarootdir ;; -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) datarootdir=$ac_optarg ;; -disable-* | --disable-*) ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_feature" : ".*[^-._$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid feature name: $ac_feature" >&2 { (exit 1); exit 1; }; } ac_feature=`echo $ac_feature | sed 's/[-.]/_/g'` eval enable_$ac_feature=no ;; -docdir | --docdir | --docdi | --doc | --do) ac_prev=docdir ;; -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) docdir=$ac_optarg ;; -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) ac_prev=dvidir ;; -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) dvidir=$ac_optarg ;; -enable-* | --enable-*) ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_feature" : ".*[^-._$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid feature name: $ac_feature" >&2 { (exit 1); exit 1; }; } ac_feature=`echo $ac_feature | sed 's/[-.]/_/g'` eval enable_$ac_feature=\$ac_optarg ;; -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ | --exec | --exe | --ex) ac_prev=exec_prefix ;; -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ | --exec=* | --exe=* | --ex=*) exec_prefix=$ac_optarg ;; -gas | --gas | --ga | --g) # Obsolete; use --with-gas. with_gas=yes ;; -help | --help | --hel | --he | -h) ac_init_help=long ;; -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) ac_init_help=recursive ;; -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) ac_init_help=short ;; -host | --host | --hos | --ho) ac_prev=host_alias ;; -host=* | --host=* | --hos=* | --ho=*) host_alias=$ac_optarg ;; -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) ac_prev=htmldir ;; -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ | --ht=*) htmldir=$ac_optarg ;; -includedir | --includedir | --includedi | --included | --include \ | --includ | --inclu | --incl | --inc) ac_prev=includedir ;; -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ | --includ=* | --inclu=* | --incl=* | --inc=*) includedir=$ac_optarg ;; -infodir | --infodir | --infodi | --infod | --info | --inf) ac_prev=infodir ;; -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) infodir=$ac_optarg ;; -libdir | --libdir | --libdi | --libd) ac_prev=libdir ;; -libdir=* | --libdir=* | --libdi=* | --libd=*) libdir=$ac_optarg ;; -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ | --libexe | --libex | --libe) ac_prev=libexecdir ;; -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ | --libexe=* | --libex=* | --libe=*) libexecdir=$ac_optarg ;; -localedir | --localedir | --localedi | --localed | --locale) ac_prev=localedir ;; -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) localedir=$ac_optarg ;; -localstatedir | --localstatedir | --localstatedi | --localstated \ | --localstate | --localstat | --localsta | --localst | --locals) ac_prev=localstatedir ;; -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) localstatedir=$ac_optarg ;; -mandir | --mandir | --mandi | --mand | --man | --ma | --m) ac_prev=mandir ;; -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) mandir=$ac_optarg ;; -nfp | --nfp | --nf) # Obsolete; use --without-fp. with_fp=no ;; -no-create | --no-create | --no-creat | --no-crea | --no-cre \ | --no-cr | --no-c | -n) no_create=yes ;; -no-recursion | --no-recursion | --no-recursio | --no-recursi \ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) no_recursion=yes ;; -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ | --oldin | --oldi | --old | --ol | --o) ac_prev=oldincludedir ;; -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) oldincludedir=$ac_optarg ;; -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) ac_prev=prefix ;; -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) prefix=$ac_optarg ;; -program-prefix | --program-prefix | --program-prefi | --program-pref \ | --program-pre | --program-pr | --program-p) ac_prev=program_prefix ;; -program-prefix=* | --program-prefix=* | --program-prefi=* \ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) program_prefix=$ac_optarg ;; -program-suffix | --program-suffix | --program-suffi | --program-suff \ | --program-suf | --program-su | --program-s) ac_prev=program_suffix ;; -program-suffix=* | --program-suffix=* | --program-suffi=* \ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) program_suffix=$ac_optarg ;; -program-transform-name | --program-transform-name \ | --program-transform-nam | --program-transform-na \ | --program-transform-n | --program-transform- \ | --program-transform | --program-transfor \ | --program-transfo | --program-transf \ | --program-trans | --program-tran \ | --progr-tra | --program-tr | --program-t) ac_prev=program_transform_name ;; -program-transform-name=* | --program-transform-name=* \ | --program-transform-nam=* | --program-transform-na=* \ | --program-transform-n=* | --program-transform-=* \ | --program-transform=* | --program-transfor=* \ | --program-transfo=* | --program-transf=* \ | --program-trans=* | --program-tran=* \ | --progr-tra=* | --program-tr=* | --program-t=*) program_transform_name=$ac_optarg ;; -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) ac_prev=pdfdir ;; -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) pdfdir=$ac_optarg ;; -psdir | --psdir | --psdi | --psd | --ps) ac_prev=psdir ;; -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) psdir=$ac_optarg ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) silent=yes ;; -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) ac_prev=sbindir ;; -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ | --sbi=* | --sb=*) sbindir=$ac_optarg ;; -sharedstatedir | --sharedstatedir | --sharedstatedi \ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ | --sharedst | --shareds | --shared | --share | --shar \ | --sha | --sh) ac_prev=sharedstatedir ;; -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ | --sha=* | --sh=*) sharedstatedir=$ac_optarg ;; -site | --site | --sit) ac_prev=site ;; -site=* | --site=* | --sit=*) site=$ac_optarg ;; -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) ac_prev=srcdir ;; -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) srcdir=$ac_optarg ;; -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ | --syscon | --sysco | --sysc | --sys | --sy) ac_prev=sysconfdir ;; -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) sysconfdir=$ac_optarg ;; -target | --target | --targe | --targ | --tar | --ta | --t) ac_prev=target_alias ;; -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) target_alias=$ac_optarg ;; -v | -verbose | --verbose | --verbos | --verbo | --verb) verbose=yes ;; -version | --version | --versio | --versi | --vers | -V) ac_init_version=: ;; -with-* | --with-*) ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_package" : ".*[^-._$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid package name: $ac_package" >&2 { (exit 1); exit 1; }; } ac_package=`echo $ac_package | sed 's/[-.]/_/g'` eval with_$ac_package=\$ac_optarg ;; -without-* | --without-*) ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_package" : ".*[^-._$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid package name: $ac_package" >&2 { (exit 1); exit 1; }; } ac_package=`echo $ac_package | sed 's/[-.]/_/g'` eval with_$ac_package=no ;; --x) # Obsolete; use --with-x. with_x=yes ;; -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ | --x-incl | --x-inc | --x-in | --x-i) ac_prev=x_includes ;; -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) x_includes=$ac_optarg ;; -x-libraries | --x-libraries | --x-librarie | --x-librari \ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) ac_prev=x_libraries ;; -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) x_libraries=$ac_optarg ;; -*) { echo "$as_me: error: unrecognized option: $ac_option Try \`$0 --help' for more information." >&2 { (exit 1); exit 1; }; } ;; *=*) ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` # Reject names that are not valid shell variable names. expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid variable name: $ac_envvar" >&2 { (exit 1); exit 1; }; } eval $ac_envvar=\$ac_optarg export $ac_envvar ;; *) # FIXME: should be removed in autoconf 3.0. echo "$as_me: WARNING: you should use --build, --host, --target" >&2 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && echo "$as_me: WARNING: invalid host type: $ac_option" >&2 : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option} ;; esac done if test -n "$ac_prev"; then ac_option=--`echo $ac_prev | sed 's/_/-/g'` { echo "$as_me: error: missing argument to $ac_option" >&2 { (exit 1); exit 1; }; } fi # Be sure to have absolute directory names. for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ datadir sysconfdir sharedstatedir localstatedir includedir \ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ libdir localedir mandir do eval ac_val=\$$ac_var case $ac_val in [\\/$]* | ?:[\\/]* ) continue;; NONE | '' ) case $ac_var in *prefix ) continue;; esac;; esac { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 { (exit 1); exit 1; }; } done # There might be people who depend on the old broken behavior: `$host' # used to hold the argument of --host etc. # FIXME: To remove some day. build=$build_alias host=$host_alias target=$target_alias # FIXME: To remove some day. if test "x$host_alias" != x; then if test "x$build_alias" = x; then cross_compiling=maybe echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host. If a cross compiler is detected then cross compile mode will be used." >&2 elif test "x$build_alias" != "x$host_alias"; then cross_compiling=yes fi fi ac_tool_prefix= test -n "$host_alias" && ac_tool_prefix=$host_alias- test "$silent" = yes && exec 6>/dev/null ac_pwd=`pwd` && test -n "$ac_pwd" && ac_ls_di=`ls -di .` && ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || { echo "$as_me: error: Working directory cannot be determined" >&2 { (exit 1); exit 1; }; } test "X$ac_ls_di" = "X$ac_pwd_ls_di" || { echo "$as_me: error: pwd does not report name of working directory" >&2 { (exit 1); exit 1; }; } # Find the source files, if location was not specified. if test -z "$srcdir"; then ac_srcdir_defaulted=yes # Try the directory containing this script, then the parent directory. ac_confdir=`$as_dirname -- "$0" || $as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$0" : 'X\(//\)[^/]' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || echo X"$0" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` srcdir=$ac_confdir if test ! -r "$srcdir/$ac_unique_file"; then srcdir=.. fi else ac_srcdir_defaulted=no fi if test ! -r "$srcdir/$ac_unique_file"; then test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2 { (exit 1); exit 1; }; } fi ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" ac_abs_confdir=`( cd "$srcdir" && test -r "./$ac_unique_file" || { echo "$as_me: error: $ac_msg" >&2 { (exit 1); exit 1; }; } pwd)` # When building in place, set srcdir=. if test "$ac_abs_confdir" = "$ac_pwd"; then srcdir=. fi # Remove unnecessary trailing slashes from srcdir. # Double slashes in file names in object file debugging info # mess up M-x gdb in Emacs. case $srcdir in */) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; esac for ac_var in $ac_precious_vars; do eval ac_env_${ac_var}_set=\${${ac_var}+set} eval ac_env_${ac_var}_value=\$${ac_var} eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} eval ac_cv_env_${ac_var}_value=\$${ac_var} done # # Report the --help message. # if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF \`configure' configures discover 2.1.2 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... To assign environment variables (e.g., CC, CFLAGS...), specify them as VAR=VALUE. See below for descriptions of some of the useful variables. Defaults for the options are specified in brackets. Configuration: -h, --help display this help and exit --help=short display options specific to this package --help=recursive display the short help of all the included packages -V, --version display version information and exit -q, --quiet, --silent do not print \`checking...' messages --cache-file=FILE cache test results in FILE [disabled] -C, --config-cache alias for \`--cache-file=config.cache' -n, --no-create do not create output files --srcdir=DIR find the sources in DIR [configure dir or \`..'] Installation directories: --prefix=PREFIX install architecture-independent files in PREFIX [$ac_default_prefix] --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX [PREFIX] By default, \`make install' will install all the files in \`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify an installation prefix other than \`$ac_default_prefix' using \`--prefix', for instance \`--prefix=\$HOME'. For better control, use the options below. Fine tuning of the installation directories: --bindir=DIR user executables [EPREFIX/bin] --sbindir=DIR system admin executables [EPREFIX/sbin] --libexecdir=DIR program executables [EPREFIX/libexec] --sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --localstatedir=DIR modifiable single-machine data [PREFIX/var] --libdir=DIR object code libraries [EPREFIX/lib] --includedir=DIR C header files [PREFIX/include] --oldincludedir=DIR C header files for non-gcc [/usr/include] --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] --datadir=DIR read-only architecture-independent data [DATAROOTDIR] --infodir=DIR info documentation [DATAROOTDIR/info] --localedir=DIR locale-dependent data [DATAROOTDIR/locale] --mandir=DIR man documentation [DATAROOTDIR/man] --docdir=DIR documentation root [DATAROOTDIR/doc/discover] --htmldir=DIR html documentation [DOCDIR] --dvidir=DIR dvi documentation [DOCDIR] --pdfdir=DIR pdf documentation [DOCDIR] --psdir=DIR ps documentation [DOCDIR] _ACEOF cat <<\_ACEOF System types: --build=BUILD configure for building on BUILD [guessed] --host=HOST cross-compile to build programs to run on HOST [BUILD] --target=TARGET configure for building compilers for TARGET [HOST] _ACEOF fi if test -n "$ac_init_help"; then case $ac_init_help in short | recursive ) echo "Configuration of discover 2.1.2:";; esac cat <<\_ACEOF Optional Features: --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) --enable-FEATURE[=ARG] include FEATURE [ARG=yes] --enable-curl Use curl to read configuration and hardware data. --enable-shared=PKGS build shared libraries default=yes --enable-static=PKGS build static libraries default=yes --enable-fast-install=PKGS optimize for fast installation default=yes --disable-libtool-lock avoid locking (might break parallel builds) Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) --with-default-url=FOO Use FOO for the default data source URL. --with-pcmcia-headers=DIR Directory containing PCMCIA headers like --with-sysdeps=FOO Use the code in the directory FOO for system-dependent interfaces. --with-gnu-ld assume the C compiler uses GNU ld default=no --with-pic try to use only PIC/non-PIC objects default=use both --with-check=PATH Prefix where check is installed default=auto Some influential environment variables: CC C compiler command CFLAGS C compiler flags LDFLAGS linker flags, e.g. -L if you have libraries in a nonstandard directory LIBS libraries to pass to the linker, e.g. -l CPPFLAGS C/C++/Objective C preprocessor flags, e.g. -I if you have headers in a nonstandard directory CPP C preprocessor Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. Report bugs to . _ACEOF ac_status=$? fi if test "$ac_init_help" = "recursive"; then # If there are subdirs, report their specific --help. for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue test -d "$ac_dir" || continue ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,/..,g;s,/,,'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix cd "$ac_dir" || { ac_status=$?; continue; } # Check for guested configure. if test -f "$ac_srcdir/configure.gnu"; then echo && $SHELL "$ac_srcdir/configure.gnu" --help=recursive elif test -f "$ac_srcdir/configure"; then echo && $SHELL "$ac_srcdir/configure" --help=recursive else echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 fi || ac_status=$? cd "$ac_pwd" || { ac_status=$?; break; } done fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF discover configure 2.1.2 generated by GNU Autoconf 2.61 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. Copyright 2002 Progeny Linux Systems, Inc. _ACEOF exit fi cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. It was created by discover $as_me 2.1.2, which was generated by GNU Autoconf 2.61. Invocation command line was $ $0 $@ _ACEOF exec 5>>config.log { cat <<_ASUNAME ## --------- ## ## Platform. ## ## --------- ## hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` /bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` /bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` /usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` /bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` /bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` _ASUNAME as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. echo "PATH: $as_dir" done IFS=$as_save_IFS } >&5 cat >&5 <<_ACEOF ## ----------- ## ## Core tests. ## ## ----------- ## _ACEOF # Keep a trace of the command line. # Strip out --no-create and --no-recursion so they do not pile up. # Strip out --silent because we don't want to record it for future runs. # Also quote any args containing shell meta-characters. # Make two passes to allow for proper duplicate-argument suppression. ac_configure_args= ac_configure_args0= ac_configure_args1= ac_must_keep_next=false for ac_pass in 1 2 do for ac_arg do case $ac_arg in -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) continue ;; *\'*) ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac case $ac_pass in 1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;; 2) ac_configure_args1="$ac_configure_args1 '$ac_arg'" if test $ac_must_keep_next = true; then ac_must_keep_next=false # Got value, back to normal. else case $ac_arg in *=* | --config-cache | -C | -disable-* | --disable-* \ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ | -with-* | --with-* | -without-* | --without-* | --x) case "$ac_configure_args0 " in "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; esac ;; -* ) ac_must_keep_next=true ;; esac fi ac_configure_args="$ac_configure_args '$ac_arg'" ;; esac done done $as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; } $as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export ac_configure_args1; } # When interrupted or exit'd, cleanup temporary files, and complete # config.log. We remove comments because anyway the quotes in there # would cause problems or look ugly. # WARNING: Use '\'' to represent an apostrophe within the trap. # WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. trap 'exit_status=$? # Save into config.log some information that might help in debugging. { echo cat <<\_ASBOX ## ---------------- ## ## Cache variables. ## ## ---------------- ## _ASBOX echo # The following way of writing the cache mishandles newlines in values, ( for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { echo "$as_me:$LINENO: WARNING: Cache variable $ac_var contains a newline." >&5 echo "$as_me: WARNING: Cache variable $ac_var contains a newline." >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( *) $as_unset $ac_var ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( *${as_nl}ac_space=\ *) sed -n \ "s/'\''/'\''\\\\'\'''\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" ;; #( *) sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) echo cat <<\_ASBOX ## ----------------- ## ## Output variables. ## ## ----------------- ## _ASBOX echo for ac_var in $ac_subst_vars do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac echo "$ac_var='\''$ac_val'\''" done | sort echo if test -n "$ac_subst_files"; then cat <<\_ASBOX ## ------------------- ## ## File substitutions. ## ## ------------------- ## _ASBOX echo for ac_var in $ac_subst_files do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac echo "$ac_var='\''$ac_val'\''" done | sort echo fi if test -s confdefs.h; then cat <<\_ASBOX ## ----------- ## ## confdefs.h. ## ## ----------- ## _ASBOX echo cat confdefs.h echo fi test "$ac_signal" != 0 && echo "$as_me: caught signal $ac_signal" echo "$as_me: exit $exit_status" } >&5 rm -f core *.core core.conftest.* && rm -f -r conftest* confdefs* conf$$* $ac_clean_files && exit $exit_status ' 0 for ac_signal in 1 2 13 15; do trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal done ac_signal=0 # confdefs.h avoids OS command line length limits that DEFS can exceed. rm -f -r conftest* confdefs.h # Predefined preprocessor variables. cat >>confdefs.h <<_ACEOF #define PACKAGE_NAME "$PACKAGE_NAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_TARNAME "$PACKAGE_TARNAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_VERSION "$PACKAGE_VERSION" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_STRING "$PACKAGE_STRING" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" _ACEOF # Let the site file select an alternate cache file if it wants to. # Prefer explicitly selected file to automatically selected ones. if test -n "$CONFIG_SITE"; then set x "$CONFIG_SITE" elif test "x$prefix" != xNONE; then set x "$prefix/share/config.site" "$prefix/etc/config.site" else set x "$ac_default_prefix/share/config.site" \ "$ac_default_prefix/etc/config.site" fi shift for ac_site_file do if test -r "$ac_site_file"; then { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5 echo "$as_me: loading site script $ac_site_file" >&6;} sed 's/^/| /' "$ac_site_file" >&5 . "$ac_site_file" fi done if test -r "$cache_file"; then # Some versions of bash will fail to source /dev/null (special # files actually), so we avoid doing that. if test -f "$cache_file"; then { echo "$as_me:$LINENO: loading cache $cache_file" >&5 echo "$as_me: loading cache $cache_file" >&6;} case $cache_file in [\\/]* | ?:[\\/]* ) . "$cache_file";; *) . "./$cache_file";; esac fi else { echo "$as_me:$LINENO: creating cache $cache_file" >&5 echo "$as_me: creating cache $cache_file" >&6;} >$cache_file fi # Check that the precious variables saved in the cache have kept the same # value. ac_cache_corrupted=false for ac_var in $ac_precious_vars; do eval ac_old_set=\$ac_cv_env_${ac_var}_set eval ac_new_set=\$ac_env_${ac_var}_set eval ac_old_val=\$ac_cv_env_${ac_var}_value eval ac_new_val=\$ac_env_${ac_var}_value case $ac_old_set,$ac_new_set in set,) { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} ac_cache_corrupted=: ;; ,set) { echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5 echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} ac_cache_corrupted=: ;; ,);; *) if test "x$ac_old_val" != "x$ac_new_val"; then { echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5 echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} { echo "$as_me:$LINENO: former value: $ac_old_val" >&5 echo "$as_me: former value: $ac_old_val" >&2;} { echo "$as_me:$LINENO: current value: $ac_new_val" >&5 echo "$as_me: current value: $ac_new_val" >&2;} ac_cache_corrupted=: fi;; esac # Pass precious variables to config.status. if test "$ac_new_set" = set; then case $ac_new_val in *\'*) ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; *) ac_arg=$ac_var=$ac_new_val ;; esac case " $ac_configure_args " in *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. *) ac_configure_args="$ac_configure_args '$ac_arg'" ;; esac fi done if $ac_cache_corrupted; then { echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5 echo "$as_me: error: changes in the environment can compromise the build" >&2;} { { echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5 echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;} { (exit 1); exit 1; }; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu # There's a bug in autoconf 2.53 when creating # abs_top_builddir from top_builddir. We have autoconf in our CVS # repository, where this bug has been fixed. GNU cvs has a similar fix, # but lots of other changes. ac_aux_dir= for ac_dir in buildtools "$srcdir"/buildtools; do if test -f "$ac_dir/install-sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install-sh -c" break elif test -f "$ac_dir/install.sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install.sh -c" break elif test -f "$ac_dir/shtool"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/shtool install -c" break fi done if test -z "$ac_aux_dir"; then { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in buildtools \"$srcdir\"/buildtools" >&5 echo "$as_me: error: cannot find install-sh or install.sh in buildtools \"$srcdir\"/buildtools" >&2;} { (exit 1); exit 1; }; } fi # These three variables are undocumented and unsupported, # and are intended to be withdrawn in a future Autoconf release. # They can cause serious problems if a builder's source tree is in a directory # whose full name contains unusual characters. ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. ac_config_headers="$ac_config_headers config.h" # Set variables for canonical build, host, and target system type. # Make sure we can run config.sub. $SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || { { echo "$as_me:$LINENO: error: cannot run $SHELL $ac_aux_dir/config.sub" >&5 echo "$as_me: error: cannot run $SHELL $ac_aux_dir/config.sub" >&2;} { (exit 1); exit 1; }; } { echo "$as_me:$LINENO: checking build system type" >&5 echo $ECHO_N "checking build system type... $ECHO_C" >&6; } if test "${ac_cv_build+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_build_alias=$build_alias test "x$ac_build_alias" = x && ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` test "x$ac_build_alias" = x && { { echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5 echo "$as_me: error: cannot guess build type; you must specify one" >&2;} { (exit 1); exit 1; }; } ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || { { echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&5 echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&2;} { (exit 1); exit 1; }; } fi { echo "$as_me:$LINENO: result: $ac_cv_build" >&5 echo "${ECHO_T}$ac_cv_build" >&6; } case $ac_cv_build in *-*-*) ;; *) { { echo "$as_me:$LINENO: error: invalid value of canonical build" >&5 echo "$as_me: error: invalid value of canonical build" >&2;} { (exit 1); exit 1; }; };; esac build=$ac_cv_build ac_save_IFS=$IFS; IFS='-' set x $ac_cv_build shift build_cpu=$1 build_vendor=$2 shift; shift # Remember, the first character of IFS is used to create $*, # except with old shells: build_os=$* IFS=$ac_save_IFS case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac { echo "$as_me:$LINENO: checking host system type" >&5 echo $ECHO_N "checking host system type... $ECHO_C" >&6; } if test "${ac_cv_host+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test "x$host_alias" = x; then ac_cv_host=$ac_cv_build else ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || { { echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&5 echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&2;} { (exit 1); exit 1; }; } fi fi { echo "$as_me:$LINENO: result: $ac_cv_host" >&5 echo "${ECHO_T}$ac_cv_host" >&6; } case $ac_cv_host in *-*-*) ;; *) { { echo "$as_me:$LINENO: error: invalid value of canonical host" >&5 echo "$as_me: error: invalid value of canonical host" >&2;} { (exit 1); exit 1; }; };; esac host=$ac_cv_host ac_save_IFS=$IFS; IFS='-' set x $ac_cv_host shift host_cpu=$1 host_vendor=$2 shift; shift # Remember, the first character of IFS is used to create $*, # except with old shells: host_os=$* IFS=$ac_save_IFS case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac { echo "$as_me:$LINENO: checking target system type" >&5 echo $ECHO_N "checking target system type... $ECHO_C" >&6; } if test "${ac_cv_target+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test "x$target_alias" = x; then ac_cv_target=$ac_cv_host else ac_cv_target=`$SHELL "$ac_aux_dir/config.sub" $target_alias` || { { echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $target_alias failed" >&5 echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $target_alias failed" >&2;} { (exit 1); exit 1; }; } fi fi { echo "$as_me:$LINENO: result: $ac_cv_target" >&5 echo "${ECHO_T}$ac_cv_target" >&6; } case $ac_cv_target in *-*-*) ;; *) { { echo "$as_me:$LINENO: error: invalid value of canonical target" >&5 echo "$as_me: error: invalid value of canonical target" >&2;} { (exit 1); exit 1; }; };; esac target=$ac_cv_target ac_save_IFS=$IFS; IFS='-' set x $ac_cv_target shift target_cpu=$1 target_vendor=$2 shift; shift # Remember, the first character of IFS is used to create $*, # except with old shells: target_os=$* IFS=$ac_save_IFS case $target_os in *\ *) target_os=`echo "$target_os" | sed 's/ /-/g'`;; esac # The aliases save the names the user supplied, while $host etc. # will get canonicalized. test -n "$target_alias" && test "$program_prefix$program_suffix$program_transform_name" = \ NONENONEs,x,x, && program_prefix=${target_alias}- ############################################################################### # Versioning # LT_CURRENT is the major version number of the library (SONAME). It # must be incremented every time an incompatible change is made. When # LT_CURRENT is incremented, PACKAGE_MAJOR must also be incremented # (and PACKAGE_{MINOR,MICRO} reset to 0). LT_CURRENT and # PACKAGE_MAJOR must always be equal. # LT_{REVISION,AGE} are not related to PACKAGE_{MINOR,MICRO}. The # former are managed according to libtool's versioning spec and the # latter according to Progeny release policy. # Package version PACKAGE_MAJOR=2 PACKAGE_MINOR=1 PACKAGE_MICRO=0 # Library version LT_CURRENT=2 LT_REVISION=1 LT_AGE=0 ############################################################################### # Arguments # Check whether --with-default-url was given. if test "${with_default_url+set}" = set; then withval=$with_default_url; DISCOVER_DEFAULT_URL=${withval} fi # Check whether --with-pcmcia-headers was given. if test "${with_pcmcia_headers+set}" = set; then withval=$with_pcmcia_headers; if test x$withval = xyes; then { { echo "$as_me:$LINENO: error: --with-pcmcia-headers must be given a pathname." >&5 echo "$as_me: error: --with-pcmcia-headers must be given a pathname." >&2;} { (exit 1); exit 1; }; } else pcmcia_headers=${withval} fi fi # Check whether --with-sysdeps was given. if test "${with_sysdeps+set}" = set; then withval=$with_sysdeps; SYSDEPS=sysdeps/${withval} if test $withval = linux; then LINUXSYSDEP=libsysdeps.la else STUBSYSDEP=libsysdeps.la fi fi # Check whether --enable-curl was given. if test "${enable_curl+set}" = set; then enableval=$enable_curl; ENABLE_CURL=$enableval else ENABLE_CURL=probe fi ############################################################################### # Checks for programs ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. set dummy ${ac_tool_prefix}gcc; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="${ac_tool_prefix}gcc" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { echo "$as_me:$LINENO: result: $CC" >&5 echo "${ECHO_T}$CC" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi fi if test -z "$ac_cv_prog_CC"; then ac_ct_CC=$CC # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_ac_ct_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CC="gcc" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 echo "${ECHO_T}$ac_ct_CC" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&5 echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi else CC="$ac_cv_prog_CC" fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. set dummy ${ac_tool_prefix}cc; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="${ac_tool_prefix}cc" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { echo "$as_me:$LINENO: result: $CC" >&5 echo "${ECHO_T}$CC" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi fi fi if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else ac_prog_rejected=no as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue fi ac_cv_prog_CC="cc" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS if test $ac_prog_rejected = yes; then # We found a bogon in the path, so make sure we never use it. set dummy $ac_cv_prog_CC shift if test $# != 0; then # We chose a different compiler from the bogus one. # However, it has the same basename, so the bogon will be chosen # first if we set CC to just the basename; use the full file name. shift ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" fi fi fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { echo "$as_me:$LINENO: result: $CC" >&5 echo "${ECHO_T}$CC" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then for ac_prog in cl.exe do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { echo "$as_me:$LINENO: result: $CC" >&5 echo "${ECHO_T}$CC" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi test -n "$CC" && break done fi if test -z "$CC"; then ac_ct_CC=$CC for ac_prog in cl.exe do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_ac_ct_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CC="$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 echo "${ECHO_T}$ac_ct_CC" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi test -n "$ac_ct_CC" && break done if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&5 echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi fi fi test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH See \`config.log' for more details." >&5 echo "$as_me: error: no acceptable C compiler found in \$PATH See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } # Provide some information about the compiler. echo "$as_me:$LINENO: checking for C compiler version" >&5 ac_compiler=`set X $ac_compile; echo $2` { (ac_try="$ac_compiler --version >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compiler --version >&5") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (ac_try="$ac_compiler -v >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compiler -v >&5") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (ac_try="$ac_compiler -V >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compiler -V >&5") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files a.out a.exe b.out" # Try to create an executable without -o first, disregard a.out. # It will help us diagnose broken compilers, and finding out an intuition # of exeext. { echo "$as_me:$LINENO: checking for C compiler default output file name" >&5 echo $ECHO_N "checking for C compiler default output file name... $ECHO_C" >&6; } ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` # # List of possible output files, starting from the most likely. # The algorithm is not robust to junk in `.', hence go to wildcards (a.*) # only as a last resort. b.out is created by i960 compilers. ac_files='a_out.exe a.exe conftest.exe a.out conftest a.* conftest.* b.out' # # The IRIX 6 linker writes into existing files which may not be # executable, retaining their permissions. Remove them first so a # subsequent execution test works. ac_rmfiles= for ac_file in $ac_files do case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj ) ;; * ) ac_rmfiles="$ac_rmfiles $ac_file";; esac done rm -f $ac_rmfiles if { (ac_try="$ac_link_default" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link_default") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. # So ignore a value of `no', otherwise this would lead to `EXEEXT = no' # in a Makefile. We should not override ac_cv_exeext if it was cached, # so that the user can short-circuit this test for compilers unknown to # Autoconf. for ac_file in $ac_files '' do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj ) ;; [ab].out ) # We found the default executable, but exeext='' is most # certainly right. break;; *.* ) if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; then :; else ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` fi # We set ac_cv_exeext here because the later test for it is not # safe: cross compilers may not add the suffix if given an `-o' # argument, so we may need to know it at that point already. # Even if this section looks crufty: it has the advantage of # actually working. break;; * ) break;; esac done test "$ac_cv_exeext" = no && ac_cv_exeext= else ac_file='' fi { echo "$as_me:$LINENO: result: $ac_file" >&5 echo "${ECHO_T}$ac_file" >&6; } if test -z "$ac_file"; then echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { echo "$as_me:$LINENO: error: C compiler cannot create executables See \`config.log' for more details." >&5 echo "$as_me: error: C compiler cannot create executables See \`config.log' for more details." >&2;} { (exit 77); exit 77; }; } fi ac_exeext=$ac_cv_exeext # Check that the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. { echo "$as_me:$LINENO: checking whether the C compiler works" >&5 echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6; } # FIXME: These cross compiler hacks should be removed for Autoconf 3.0 # If not cross compiling, check that we can run a simple program. if test "$cross_compiling" != yes; then if { ac_try='./$ac_file' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cross_compiling=no else if test "$cross_compiling" = maybe; then cross_compiling=yes else { { echo "$as_me:$LINENO: error: cannot run C compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details." >&5 echo "$as_me: error: cannot run C compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi fi fi { echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6; } rm -f a.out a.exe conftest$ac_cv_exeext b.out ac_clean_files=$ac_clean_files_save # Check that the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. { echo "$as_me:$LINENO: checking whether we are cross compiling" >&5 echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6; } { echo "$as_me:$LINENO: result: $cross_compiling" >&5 echo "${ECHO_T}$cross_compiling" >&6; } { echo "$as_me:$LINENO: checking for suffix of executables" >&5 echo $ECHO_N "checking for suffix of executables... $ECHO_C" >&6; } if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then # If both `conftest.exe' and `conftest' are `present' (well, observable) # catch `conftest.exe'. For instance with Cygwin, `ls conftest' will # work properly (i.e., refer to `conftest.exe'), while it won't with # `rm'. for ac_file in conftest.exe conftest conftest.*; do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj ) ;; *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` break;; * ) break;; esac done else { { echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link See \`config.log' for more details." >&5 echo "$as_me: error: cannot compute suffix of executables: cannot compile and link See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi rm -f conftest$ac_cv_exeext { echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5 echo "${ECHO_T}$ac_cv_exeext" >&6; } rm -f conftest.$ac_ext EXEEXT=$ac_cv_exeext ac_exeext=$EXEEXT { echo "$as_me:$LINENO: checking for suffix of object files" >&5 echo $ECHO_N "checking for suffix of object files... $ECHO_C" >&6; } if test "${ac_cv_objext+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.o conftest.obj if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then for ac_file in conftest.o conftest.obj conftest.*; do test -f "$ac_file" || continue; case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf ) ;; *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` break;; esac done else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile See \`config.log' for more details." >&5 echo "$as_me: error: cannot compute suffix of object files: cannot compile See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi rm -f conftest.$ac_cv_objext conftest.$ac_ext fi { echo "$as_me:$LINENO: result: $ac_cv_objext" >&5 echo "${ECHO_T}$ac_cv_objext" >&6; } OBJEXT=$ac_cv_objext ac_objext=$OBJEXT { echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5 echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6; } if test "${ac_cv_c_compiler_gnu+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_compiler_gnu=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu fi { echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5 echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6; } GCC=`test $ac_compiler_gnu = yes && echo yes` ac_test_CFLAGS=${CFLAGS+set} ac_save_CFLAGS=$CFLAGS { echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5 echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6; } if test "${ac_cv_prog_cc_g+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_save_c_werror_flag=$ac_c_werror_flag ac_c_werror_flag=yes ac_cv_prog_cc_g=no CFLAGS="-g" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_prog_cc_g=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 CFLAGS="" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_c_werror_flag=$ac_save_c_werror_flag CFLAGS="-g" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_prog_cc_g=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_c_werror_flag=$ac_save_c_werror_flag fi { echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5 echo "${ECHO_T}$ac_cv_prog_cc_g" >&6; } if test "$ac_test_CFLAGS" = set; then CFLAGS=$ac_save_CFLAGS elif test $ac_cv_prog_cc_g = yes; then if test "$GCC" = yes; then CFLAGS="-g -O2" else CFLAGS="-g" fi else if test "$GCC" = yes; then CFLAGS="-O2" else CFLAGS= fi fi { echo "$as_me:$LINENO: checking for $CC option to accept ISO C89" >&5 echo $ECHO_N "checking for $CC option to accept ISO C89... $ECHO_C" >&6; } if test "${ac_cv_prog_cc_c89+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_cv_prog_cc_c89=no ac_save_CC=$CC cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include #include #include /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ struct buf { int x; }; FILE * (*rcsopen) (struct buf *, struct stat *, int); static char *e (p, i) char **p; int i; { return p[i]; } static char *f (char * (*g) (char **, int), char **p, ...) { char *s; va_list v; va_start (v,p); s = g (p, va_arg (v,int)); va_end (v); return s; } /* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has function prototypes and stuff, but not '\xHH' hex character constants. These don't provoke an error unfortunately, instead are silently treated as 'x'. The following induces an error, until -std is added to get proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an array size at least. It's necessary to write '\x00'==0 to get something that's true only with -std. */ int osf4_cc_array ['\x00' == 0 ? 1 : -1]; /* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters inside strings and character constants. */ #define FOO(x) 'x' int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; int test (int i, double x); struct s1 {int (*f) (int a);}; struct s2 {int (*f) (double a);}; int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); int argc; char **argv; int main () { return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; ; return 0; } _ACEOF for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" do CC="$ac_save_CC $ac_arg" rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_prog_cc_c89=$ac_arg else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext test "x$ac_cv_prog_cc_c89" != "xno" && break done rm -f conftest.$ac_ext CC=$ac_save_CC fi # AC_CACHE_VAL case "x$ac_cv_prog_cc_c89" in x) { echo "$as_me:$LINENO: result: none needed" >&5 echo "${ECHO_T}none needed" >&6; } ;; xno) { echo "$as_me:$LINENO: result: unsupported" >&5 echo "${ECHO_T}unsupported" >&6; } ;; *) CC="$CC $ac_cv_prog_cc_c89" { echo "$as_me:$LINENO: result: $ac_cv_prog_cc_c89" >&5 echo "${ECHO_T}$ac_cv_prog_cc_c89" >&6; } ;; esac ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu case $ac_cv_prog_cc_stdc in no) ac_cv_prog_cc_c99=no; ac_cv_prog_cc_c89=no ;; *) { echo "$as_me:$LINENO: checking for $CC option to accept ISO C99" >&5 echo $ECHO_N "checking for $CC option to accept ISO C99... $ECHO_C" >&6; } if test "${ac_cv_prog_cc_c99+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_cv_prog_cc_c99=no ac_save_CC=$CC cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include #include #include #include // Check varargs macros. These examples are taken from C99 6.10.3.5. #define debug(...) fprintf (stderr, __VA_ARGS__) #define showlist(...) puts (#__VA_ARGS__) #define report(test,...) ((test) ? puts (#test) : printf (__VA_ARGS__)) static void test_varargs_macros (void) { int x = 1234; int y = 5678; debug ("Flag"); debug ("X = %d\n", x); showlist (The first, second, and third items.); report (x>y, "x is %d but y is %d", x, y); } // Check long long types. #define BIG64 18446744073709551615ull #define BIG32 4294967295ul #define BIG_OK (BIG64 / BIG32 == 4294967297ull && BIG64 % BIG32 == 0) #if !BIG_OK your preprocessor is broken; #endif #if BIG_OK #else your preprocessor is broken; #endif static long long int bignum = -9223372036854775807LL; static unsigned long long int ubignum = BIG64; struct incomplete_array { int datasize; double data[]; }; struct named_init { int number; const wchar_t *name; double average; }; typedef const char *ccp; static inline int test_restrict (ccp restrict text) { // See if C++-style comments work. // Iterate through items via the restricted pointer. // Also check for declarations in for loops. for (unsigned int i = 0; *(text+i) != '\0'; ++i) continue; return 0; } // Check varargs and va_copy. static void test_varargs (const char *format, ...) { va_list args; va_start (args, format); va_list args_copy; va_copy (args_copy, args); const char *str; int number; float fnumber; while (*format) { switch (*format++) { case 's': // string str = va_arg (args_copy, const char *); break; case 'd': // int number = va_arg (args_copy, int); break; case 'f': // float fnumber = va_arg (args_copy, double); break; default: break; } } va_end (args_copy); va_end (args); } int main () { // Check bool. _Bool success = false; // Check restrict. if (test_restrict ("String literal") == 0) success = true; char *restrict newvar = "Another string"; // Check varargs. test_varargs ("s, d' f .", "string", 65, 34.234); test_varargs_macros (); // Check flexible array members. struct incomplete_array *ia = malloc (sizeof (struct incomplete_array) + (sizeof (double) * 10)); ia->datasize = 10; for (int i = 0; i < ia->datasize; ++i) ia->data[i] = i * 1.234; // Check named initializers. struct named_init ni = { .number = 34, .name = L"Test wide string", .average = 543.34343, }; ni.number = 58; int dynamic_array[ni.number]; dynamic_array[ni.number - 1] = 543; // work around unused variable warnings return (!success || bignum == 0LL || ubignum == 0uLL || newvar[0] == 'x' || dynamic_array[ni.number - 1] != 543); ; return 0; } _ACEOF for ac_arg in '' -std=gnu99 -c99 -qlanglvl=extc99 do CC="$ac_save_CC $ac_arg" rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_prog_cc_c99=$ac_arg else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext test "x$ac_cv_prog_cc_c99" != "xno" && break done rm -f conftest.$ac_ext CC=$ac_save_CC fi # AC_CACHE_VAL case "x$ac_cv_prog_cc_c99" in x) { echo "$as_me:$LINENO: result: none needed" >&5 echo "${ECHO_T}none needed" >&6; } ;; xno) { echo "$as_me:$LINENO: result: unsupported" >&5 echo "${ECHO_T}unsupported" >&6; } ;; *) CC="$CC $ac_cv_prog_cc_c99" { echo "$as_me:$LINENO: result: $ac_cv_prog_cc_c99" >&5 echo "${ECHO_T}$ac_cv_prog_cc_c99" >&6; } ;; esac if test "x$ac_cv_prog_cc_c99" != xno; then ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c99 else { echo "$as_me:$LINENO: checking for $CC option to accept ISO C89" >&5 echo $ECHO_N "checking for $CC option to accept ISO C89... $ECHO_C" >&6; } if test "${ac_cv_prog_cc_c89+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_cv_prog_cc_c89=no ac_save_CC=$CC cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include #include #include /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ struct buf { int x; }; FILE * (*rcsopen) (struct buf *, struct stat *, int); static char *e (p, i) char **p; int i; { return p[i]; } static char *f (char * (*g) (char **, int), char **p, ...) { char *s; va_list v; va_start (v,p); s = g (p, va_arg (v,int)); va_end (v); return s; } /* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has function prototypes and stuff, but not '\xHH' hex character constants. These don't provoke an error unfortunately, instead are silently treated as 'x'. The following induces an error, until -std is added to get proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an array size at least. It's necessary to write '\x00'==0 to get something that's true only with -std. */ int osf4_cc_array ['\x00' == 0 ? 1 : -1]; /* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters inside strings and character constants. */ #define FOO(x) 'x' int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; int test (int i, double x); struct s1 {int (*f) (int a);}; struct s2 {int (*f) (double a);}; int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); int argc; char **argv; int main () { return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; ; return 0; } _ACEOF for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" do CC="$ac_save_CC $ac_arg" rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_prog_cc_c89=$ac_arg else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext test "x$ac_cv_prog_cc_c89" != "xno" && break done rm -f conftest.$ac_ext CC=$ac_save_CC fi # AC_CACHE_VAL case "x$ac_cv_prog_cc_c89" in x) { echo "$as_me:$LINENO: result: none needed" >&5 echo "${ECHO_T}none needed" >&6; } ;; xno) { echo "$as_me:$LINENO: result: unsupported" >&5 echo "${ECHO_T}unsupported" >&6; } ;; *) CC="$CC $ac_cv_prog_cc_c89" { echo "$as_me:$LINENO: result: $ac_cv_prog_cc_c89" >&5 echo "${ECHO_T}$ac_cv_prog_cc_c89" >&6; } ;; esac if test "x$ac_cv_prog_cc_c89" != xno; then ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c89 else ac_cv_prog_cc_stdc=no fi fi ;; esac { echo "$as_me:$LINENO: checking for $CC option to accept ISO Standard C" >&5 echo $ECHO_N "checking for $CC option to accept ISO Standard C... $ECHO_C" >&6; } if test "${ac_cv_prog_cc_stdc+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 fi case $ac_cv_prog_cc_stdc in no) { echo "$as_me:$LINENO: result: unsupported" >&5 echo "${ECHO_T}unsupported" >&6; } ;; '') { echo "$as_me:$LINENO: result: none needed" >&5 echo "${ECHO_T}none needed" >&6; } ;; *) { echo "$as_me:$LINENO: result: $ac_cv_prog_cc_stdc" >&5 echo "${ECHO_T}$ac_cv_prog_cc_stdc" >&6; } ;; esac ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5 echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6; } # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= fi if test -z "$CPP"; then if test "${ac_cv_prog_CPP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else # Double quotes because CPP needs to be expanded for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" do ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Broken: fails on valid input. continue fi rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then # Broken: success on invalid input. continue else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.err conftest.$ac_ext if $ac_preproc_ok; then break fi done ac_cv_prog_CPP=$CPP fi CPP=$ac_cv_prog_CPP else ac_cv_prog_CPP=$CPP fi { echo "$as_me:$LINENO: result: $CPP" >&5 echo "${ECHO_T}$CPP" >&6; } ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Broken: fails on valid input. continue fi rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then # Broken: success on invalid input. continue else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.err conftest.$ac_ext if $ac_preproc_ok; then : else { { echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details." >&5 echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu # Find a good install program. We prefer a C program (faster), # so one script is as good as another. But avoid the broken or # incompatible versions: # SysV /etc/install, /usr/sbin/install # SunOS /usr/etc/install # IRIX /sbin/install # AIX /bin/install # AmigaOS /C/install, which installs bootblocks on floppy discs # AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag # AFS /usr/afsws/bin/install, which mishandles nonexistent args # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # OS/2's system install, which has a completely different semantic # ./install, which can be erroneously created by make from ./install.sh. { echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5 echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6; } if test -z "$INSTALL"; then if test "${ac_cv_path_install+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. # Account for people who put trailing slashes in PATH elements. case $as_dir/ in ./ | .// | /cC/* | \ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \ /usr/ucb/* ) ;; *) # OSF1 and SCO ODT 3.0 have their own names for install. # Don't use installbsd from OSF since it installs stuff as root # by default. for ac_prog in ginstall scoinst install; do for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then if test $ac_prog = install && grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # AIX install. It has an incompatible calling convention. : elif test $ac_prog = install && grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # program-specific install script used by HP pwplus--don't use. : else ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" break 3 fi fi done done ;; esac done IFS=$as_save_IFS fi if test "${ac_cv_path_install+set}" = set; then INSTALL=$ac_cv_path_install else # As a last resort, use the slow shell script. Don't cache a # value for INSTALL within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. INSTALL=$ac_install_sh fi fi { echo "$as_me:$LINENO: result: $INSTALL" >&5 echo "${ECHO_T}$INSTALL" >&6; } # Use test -z because SunOS4 sh mishandles braces in ${var-val}. # It thinks the first close brace ends the variable substitution. test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' if test "${INSTALL_DIR}" = ""; then INSTALL_DIR="${INSTALL} -m 755 -d" fi # Check whether --enable-shared was given. if test "${enable_shared+set}" = set; then enableval=$enable_shared; p=${PACKAGE-default} case $enableval in yes) enable_shared=yes ;; no) enable_shared=no ;; *) enable_shared=no # Look at the argument we got. We use all the common list separators. IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:," for pkg in $enableval; do if test "X$pkg" = "X$p"; then enable_shared=yes fi done IFS="$ac_save_ifs" ;; esac else enable_shared=yes fi # Check whether --enable-static was given. if test "${enable_static+set}" = set; then enableval=$enable_static; p=${PACKAGE-default} case $enableval in yes) enable_static=yes ;; no) enable_static=no ;; *) enable_static=no # Look at the argument we got. We use all the common list separators. IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:," for pkg in $enableval; do if test "X$pkg" = "X$p"; then enable_static=yes fi done IFS="$ac_save_ifs" ;; esac else enable_static=yes fi # Check whether --enable-fast-install was given. if test "${enable_fast_install+set}" = set; then enableval=$enable_fast_install; p=${PACKAGE-default} case $enableval in yes) enable_fast_install=yes ;; no) enable_fast_install=no ;; *) enable_fast_install=no # Look at the argument we got. We use all the common list separators. IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:," for pkg in $enableval; do if test "X$pkg" = "X$p"; then enable_fast_install=yes fi done IFS="$ac_save_ifs" ;; esac else enable_fast_install=yes fi # Find the correct PATH separator. Usually this is `:', but # DJGPP uses `;' like DOS. if test "X${PATH_SEPARATOR+set}" != Xset; then UNAME=${UNAME-`uname 2>/dev/null`} case X$UNAME in *-DOS) lt_cv_sys_path_separator=';' ;; *) lt_cv_sys_path_separator=':' ;; esac PATH_SEPARATOR=$lt_cv_sys_path_separator fi # Check whether --with-gnu-ld was given. if test "${with_gnu_ld+set}" = set; then withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes else with_gnu_ld=no fi ac_prog=ld if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. { echo "$as_me:$LINENO: checking for ld used by GCC" >&5 echo $ECHO_N "checking for ld used by GCC... $ECHO_C" >&6; } case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; *) ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; esac case $ac_prog in # Accept absolute paths. [\\/]* | [A-Za-z]:[\\/]*) re_direlt='/[^/][^/]*/\.\./' # Canonicalize the path of ld ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'` while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"` done test -z "$LD" && LD="$ac_prog" ;; "") # If it fails, then pretend we aren't using GCC. ac_prog=ld ;; *) # If it is relative, then search for the first ld in PATH. with_gnu_ld=unknown ;; esac elif test "$with_gnu_ld" = yes; then { echo "$as_me:$LINENO: checking for GNU ld" >&5 echo $ECHO_N "checking for GNU ld... $ECHO_C" >&6; } else { echo "$as_me:$LINENO: checking for non-GNU ld" >&5 echo $ECHO_N "checking for non-GNU ld... $ECHO_C" >&6; } fi if test "${lt_cv_path_LD+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -z "$LD"; then IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then lt_cv_path_LD="$ac_dir/$ac_prog" # Check to see if the program is GNU ld. I'd rather use --version, # but apparently some GNU ld's only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. if "$lt_cv_path_LD" -v 2>&1 < /dev/null | egrep '(GNU|with BFD)' > /dev/null; then test "$with_gnu_ld" != no && break else test "$with_gnu_ld" != yes && break fi fi done IFS="$ac_save_ifs" else lt_cv_path_LD="$LD" # Let the user override the test with a path. fi fi LD="$lt_cv_path_LD" if test -n "$LD"; then { echo "$as_me:$LINENO: result: $LD" >&5 echo "${ECHO_T}$LD" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi test -z "$LD" && { { echo "$as_me:$LINENO: error: no acceptable ld found in \$PATH" >&5 echo "$as_me: error: no acceptable ld found in \$PATH" >&2;} { (exit 1); exit 1; }; } { echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5 echo $ECHO_N "checking if the linker ($LD) is GNU ld... $ECHO_C" >&6; } if test "${lt_cv_prog_gnu_ld+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else # I'd rather use --version here, but apparently some GNU ld's only accept -v. if $LD -v 2>&1 &5; then lt_cv_prog_gnu_ld=yes else lt_cv_prog_gnu_ld=no fi fi { echo "$as_me:$LINENO: result: $lt_cv_prog_gnu_ld" >&5 echo "${ECHO_T}$lt_cv_prog_gnu_ld" >&6; } with_gnu_ld=$lt_cv_prog_gnu_ld { echo "$as_me:$LINENO: checking for $LD option to reload object files" >&5 echo $ECHO_N "checking for $LD option to reload object files... $ECHO_C" >&6; } if test "${lt_cv_ld_reload_flag+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_cv_ld_reload_flag='-r' fi { echo "$as_me:$LINENO: result: $lt_cv_ld_reload_flag" >&5 echo "${ECHO_T}$lt_cv_ld_reload_flag" >&6; } reload_flag=$lt_cv_ld_reload_flag test -n "$reload_flag" && reload_flag=" $reload_flag" { echo "$as_me:$LINENO: checking for BSD-compatible nm" >&5 echo $ECHO_N "checking for BSD-compatible nm... $ECHO_C" >&6; } if test "${lt_cv_path_NM+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$NM"; then # Let the user override the test. lt_cv_path_NM="$NM" else IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH /usr/ccs/bin /usr/ucb /bin; do test -z "$ac_dir" && ac_dir=. tmp_nm=$ac_dir/${ac_tool_prefix}nm if test -f $tmp_nm || test -f $tmp_nm$ac_exeext ; then # Check to see if the nm accepts a BSD-compat flag. # Adding the `sed 1q' prevents false positives on HP-UX, which says: # nm: unknown option "B" ignored # Tru64's nm complains that /dev/null is an invalid object file if ($tmp_nm -B /dev/null 2>&1 | sed '1q'; exit 0) | egrep '(/dev/null|Invalid file or object type)' >/dev/null; then lt_cv_path_NM="$tmp_nm -B" break elif ($tmp_nm -p /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then lt_cv_path_NM="$tmp_nm -p" break else lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but continue # so that we can try to find one that supports BSD flags fi fi done IFS="$ac_save_ifs" test -z "$lt_cv_path_NM" && lt_cv_path_NM=nm fi fi NM="$lt_cv_path_NM" { echo "$as_me:$LINENO: result: $NM" >&5 echo "${ECHO_T}$NM" >&6; } { echo "$as_me:$LINENO: checking for a sed that does not truncate output" >&5 echo $ECHO_N "checking for a sed that does not truncate output... $ECHO_C" >&6; } if test "${lt_cv_path_SED+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else # Loop through the user's path and test for sed and gsed. # Then use that list of sed's as ones to test for truncation. as_executable_p="test -f" as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in sed gsed; do for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then _sed_list="$_sed_list $as_dir/$ac_prog$ac_exec_ext" fi done done done # Create a temporary directory, and hook for its removal unless debugging. $debug || { trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0 trap '{ (exit 1); exit 1; }' 1 2 13 15 } # Create a (secure) tmp directory for tmp files. : ${TMPDIR=/tmp} { tmp=`(umask 077 && mktemp -d -q "$TMPDIR/sedXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" } || { tmp=$TMPDIR/sed$$-$RANDOM (umask 077 && mkdir $tmp) } || { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 { (exit 1); exit 1; } } _max=0 _count=0 # Add /usr/xpg4/bin/sed as it is typically found on Solaris # along with /bin/sed that truncates output. for _sed in $_sed_list /usr/xpg4/bin/sed; do test ! -f ${_sed} && break cat /dev/null > "$tmp/sed.in" _count=0 echo ${ECHO_N-$ac_n} "0123456789${ECHO_C-$ac_c}" >"$tmp/sed.in" # Check for GNU sed and select it if it is found. if "${_sed}" --version 2>&1 < /dev/null | egrep '(GNU)' > /dev/null; then lt_cv_path_SED=${_sed} break fi while true; do cat "$tmp/sed.in" "$tmp/sed.in" >"$tmp/sed.tmp" mv "$tmp/sed.tmp" "$tmp/sed.in" cp "$tmp/sed.in" "$tmp/sed.nl" echo >>"$tmp/sed.nl" ${_sed} -e 's/a$//' < "$tmp/sed.nl" >"$tmp/sed.out" || break cmp -s "$tmp/sed.out" "$tmp/sed.nl" || break # 40000 chars as input seems more than enough test $_count -gt 10 && break _count=`expr $_count + 1` if test $_count -gt $_max; then _max=$_count lt_cv_path_SED=$_sed fi done done rm -rf "$tmp" fi if test "X$SED" != "X"; then lt_cv_path_SED=$SED else SED=$lt_cv_path_SED fi { echo "$as_me:$LINENO: result: $SED" >&5 echo "${ECHO_T}$SED" >&6; } { echo "$as_me:$LINENO: checking whether ln -s works" >&5 echo $ECHO_N "checking whether ln -s works... $ECHO_C" >&6; } LN_S=$as_ln_s if test "$LN_S" = "ln -s"; then { echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6; } else { echo "$as_me:$LINENO: result: no, using $LN_S" >&5 echo "${ECHO_T}no, using $LN_S" >&6; } fi { echo "$as_me:$LINENO: checking how to recognise dependent libraries" >&5 echo $ECHO_N "checking how to recognise dependent libraries... $ECHO_C" >&6; } if test "${lt_cv_deplibs_check_method+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_cv_file_magic_cmd='$MAGIC_CMD' lt_cv_file_magic_test_file= lt_cv_deplibs_check_method='unknown' # Need to set the preceding variable on all platforms that support # interlibrary dependencies. # 'none' -- dependencies not supported. # `unknown' -- same as none, but documents that we really don't know. # 'pass_all' -- all dependencies passed with no checks. # 'test_compile' -- check by making test program. # 'file_magic [[regex]]' -- check by looking for files in library path # which responds to the $file_magic_cmd with a given egrep regex. # If you have `file' or equivalent on your system and you're not sure # whether `pass_all' will *always* work, you probably want this one. case $host_os in aix4* | aix5*) lt_cv_deplibs_check_method=pass_all ;; beos*) lt_cv_deplibs_check_method=pass_all ;; bsdi4*) lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)' lt_cv_file_magic_cmd='/usr/bin/file -L' lt_cv_file_magic_test_file=/shlib/libc.so ;; cygwin* | mingw* | pw32*) lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' lt_cv_file_magic_cmd='$OBJDUMP -f' ;; darwin* | rhapsody*) lt_cv_deplibs_check_method='file_magic Mach-O dynamically linked shared library' lt_cv_file_magic_cmd='/usr/bin/file -L' case "$host_os" in rhapsody* | darwin1.[012]) lt_cv_file_magic_test_file=`echo /System/Library/Frameworks/System.framework/Versions/*/System | head -1` ;; *) # Darwin 1.3 on lt_cv_file_magic_test_file='/usr/lib/libSystem.dylib' ;; esac ;; freebsd*) if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then case $host_cpu in i*86 ) # Not sure whether the presence of OpenBSD here was a mistake. # Let's accept both of them until this is cleared up. lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD)/i[3-9]86 (compact )?demand paged shared library' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` ;; esac else lt_cv_deplibs_check_method=pass_all fi ;; gnu*) lt_cv_deplibs_check_method=pass_all ;; hpux10.20*|hpux11*) lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9].[0-9]) shared library' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=/usr/lib/libc.sl ;; irix5* | irix6* | nonstopux*) case $LD in *-32|*"-32 ") libmagic=32-bit;; *-n32|*"-n32 ") libmagic=N32;; *-64|*"-64 ") libmagic=64-bit;; *) libmagic=never-match;; esac lt_cv_deplibs_check_method=pass_all ;; # This must be Linux ELF. linux-gnu*) lt_cv_deplibs_check_method=pass_all ;; netbsd*) if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$' else lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so$' fi ;; newos6*) lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=/usr/lib/libnls.so ;; openbsd*) lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB shared object' else lt_cv_deplibs_check_method='file_magic OpenBSD.* shared library' fi ;; osf3* | osf4* | osf5*) lt_cv_deplibs_check_method=pass_all ;; sco3.2v5*) lt_cv_deplibs_check_method=pass_all ;; solaris*) lt_cv_deplibs_check_method=pass_all ;; sysv5uw[78]* | sysv4*uw2*) lt_cv_deplibs_check_method=pass_all ;; sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) case $host_vendor in motorola) lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]' lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` ;; ncr) lt_cv_deplibs_check_method=pass_all ;; sequent) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' ;; sni) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib" lt_cv_file_magic_test_file=/lib/libc.so ;; siemens) lt_cv_deplibs_check_method=pass_all ;; esac ;; esac fi { echo "$as_me:$LINENO: result: $lt_cv_deplibs_check_method" >&5 echo "${ECHO_T}$lt_cv_deplibs_check_method" >&6; } file_magic_cmd=$lt_cv_file_magic_cmd deplibs_check_method=$lt_cv_deplibs_check_method # Check for command to grab the raw symbol name followed by C symbol from nm. { echo "$as_me:$LINENO: checking command to parse $NM output" >&5 echo $ECHO_N "checking command to parse $NM output... $ECHO_C" >&6; } if test "${lt_cv_sys_global_symbol_pipe+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else # These are sane defaults that work on at least a few old systems. # [They come from Ultrix. What could be older than Ultrix?!! ;)] # Character class describing NM global symbol codes. symcode='[BCDEGRST]' # Regexp to match symbols that can be accessed directly from C. sympat='\([_A-Za-z][_A-Za-z0-9]*\)' # Transform the above into a raw symbol and a C symbol. symxfrm='\1 \2\3 \3' # Transform an extracted symbol line into a proper C declaration lt_cv_global_symbol_to_cdecl="sed -n -e 's/^. .* \(.*\)$/extern char \1;/p'" # Transform an extracted symbol line into symbol name and symbol address lt_cv_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode \([^ ]*\) \([^ ]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" # Define system-specific variables. case $host_os in aix*) symcode='[BCDT]' ;; cygwin* | mingw* | pw32*) symcode='[ABCDGISTW]' ;; hpux*) # Its linker distinguishes data from code symbols lt_cv_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern char \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" lt_cv_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" ;; irix* | nonstopux*) symcode='[BCDEGRST]' ;; osf*) symcode='[BCDEGQRST]' ;; solaris* | sysv5*) symcode='[BDT]' ;; sysv4) symcode='[DFNSTU]' ;; esac # Handle CRLF in mingw tool chain opt_cr= case $host_os in mingw*) opt_cr=`echo 'x\{0,1\}' | tr x '\015'` # option cr in regexp ;; esac # If we're using GNU nm, then use its standard symbol codes. if $NM -V 2>&1 | egrep '(GNU|with BFD)' > /dev/null; then symcode='[ABCDGISTW]' fi # Try without a prefix undercore, then with it. for ac_symprfx in "" "_"; do # Write the raw and C identifiers. lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*\($ac_symprfx\)$sympat$opt_cr$/$symxfrm/p'" # Check to see that the pipe works correctly. pipe_works=no rm -f conftest* cat > conftest.$ac_ext <&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then # Now try to grab the symbols. nlist=conftest.nm if { (eval echo "$as_me:$LINENO: \"$NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist\"") >&5 (eval $NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && test -s "$nlist"; then # Try sorting and uniquifying the output. if sort "$nlist" | uniq > "$nlist"T; then mv -f "$nlist"T "$nlist" else rm -f "$nlist"T fi # Make sure that we snagged all the symbols we need. if egrep ' nm_test_var$' "$nlist" >/dev/null; then if egrep ' nm_test_func$' "$nlist" >/dev/null; then cat < conftest.$ac_ext #ifdef __cplusplus extern "C" { #endif EOF # Now generate the symbol file. eval "$lt_cv_global_symbol_to_cdecl"' < "$nlist" >> conftest.$ac_ext' cat <> conftest.$ac_ext #if defined (__STDC__) && __STDC__ # define lt_ptr void * #else # define lt_ptr char * # define const #endif /* The mapping between symbol names and symbols. */ const struct { const char *name; lt_ptr address; } lt_preloaded_symbols[] = { EOF sed "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (lt_ptr) \&\2},/" < "$nlist" >> conftest.$ac_ext cat <<\EOF >> conftest.$ac_ext {0, (lt_ptr) 0} }; #ifdef __cplusplus } #endif EOF # Now try linking the two files. mv conftest.$ac_objext conftstm.$ac_objext save_LIBS="$LIBS" save_CFLAGS="$CFLAGS" LIBS="conftstm.$ac_objext" CFLAGS="$CFLAGS$no_builtin_flag" if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && test -s conftest$ac_exeext; then pipe_works=yes fi LIBS="$save_LIBS" CFLAGS="$save_CFLAGS" else echo "cannot find nm_test_func in $nlist" >&5 fi else echo "cannot find nm_test_var in $nlist" >&5 fi else echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5 fi else echo "$progname: failed program was:" >&5 cat conftest.$ac_ext >&5 fi rm -f conftest* conftst* # Do not use the global_symbol_pipe unless it works. if test "$pipe_works" = yes; then break else lt_cv_sys_global_symbol_pipe= fi done fi global_symbol_pipe="$lt_cv_sys_global_symbol_pipe" if test -z "$lt_cv_sys_global_symbol_pipe"; then global_symbol_to_cdecl= global_symbol_to_c_name_address= else global_symbol_to_cdecl="$lt_cv_global_symbol_to_cdecl" global_symbol_to_c_name_address="$lt_cv_global_symbol_to_c_name_address" fi if test -z "$global_symbol_pipe$global_symbol_to_cdec$global_symbol_to_c_name_address"; then { echo "$as_me:$LINENO: result: failed" >&5 echo "${ECHO_T}failed" >&6; } else { echo "$as_me:$LINENO: result: ok" >&5 echo "${ECHO_T}ok" >&6; } fi { echo "$as_me:$LINENO: checking for grep that handles long lines and -e" >&5 echo $ECHO_N "checking for grep that handles long lines and -e... $ECHO_C" >&6; } if test "${ac_cv_path_GREP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else # Extract the first word of "grep ggrep" to use in msg output if test -z "$GREP"; then set dummy grep ggrep; ac_prog_name=$2 if test "${ac_cv_path_GREP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_path_GREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in grep ggrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue # Check for GNU ac_path_GREP and select it if it is found. # Check for GNU $ac_path_GREP case `"$ac_path_GREP" --version 2>&1` in *GNU*) ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; *) ac_count=0 echo $ECHO_N "0123456789$ECHO_C" >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" echo 'GREP' >> "conftest.nl" "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break ac_count=`expr $ac_count + 1` if test $ac_count -gt ${ac_path_GREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_GREP_found && break 3 done done done IFS=$as_save_IFS fi GREP="$ac_cv_path_GREP" if test -z "$GREP"; then { { echo "$as_me:$LINENO: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5 echo "$as_me: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;} { (exit 1); exit 1; }; } fi else ac_cv_path_GREP=$GREP fi fi { echo "$as_me:$LINENO: result: $ac_cv_path_GREP" >&5 echo "${ECHO_T}$ac_cv_path_GREP" >&6; } GREP="$ac_cv_path_GREP" { echo "$as_me:$LINENO: checking for egrep" >&5 echo $ECHO_N "checking for egrep... $ECHO_C" >&6; } if test "${ac_cv_path_EGREP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 then ac_cv_path_EGREP="$GREP -E" else # Extract the first word of "egrep" to use in msg output if test -z "$EGREP"; then set dummy egrep; ac_prog_name=$2 if test "${ac_cv_path_EGREP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_path_EGREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in egrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue # Check for GNU ac_path_EGREP and select it if it is found. # Check for GNU $ac_path_EGREP case `"$ac_path_EGREP" --version 2>&1` in *GNU*) ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; *) ac_count=0 echo $ECHO_N "0123456789$ECHO_C" >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" echo 'EGREP' >> "conftest.nl" "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break ac_count=`expr $ac_count + 1` if test $ac_count -gt ${ac_path_EGREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_EGREP_found && break 3 done done done IFS=$as_save_IFS fi EGREP="$ac_cv_path_EGREP" if test -z "$EGREP"; then { { echo "$as_me:$LINENO: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5 echo "$as_me: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;} { (exit 1); exit 1; }; } fi else ac_cv_path_EGREP=$EGREP fi fi fi { echo "$as_me:$LINENO: result: $ac_cv_path_EGREP" >&5 echo "${ECHO_T}$ac_cv_path_EGREP" >&6; } EGREP="$ac_cv_path_EGREP" { echo "$as_me:$LINENO: checking for ANSI C header files" >&5 echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6; } if test "${ac_cv_header_stdc+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include #include #include int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_header_stdc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_header_stdc=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "memchr" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "free" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. if test "$cross_compiling" = yes; then : else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include #if ((' ' & 0x0FF) == 0x020) # define ISLOWER(c) ('a' <= (c) && (c) <= 'z') # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) #else # define ISLOWER(c) \ (('a' <= (c) && (c) <= 'i') \ || ('j' <= (c) && (c) <= 'r') \ || ('s' <= (c) && (c) <= 'z')) # define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) #endif #define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) int main () { int i; for (i = 0; i < 256; i++) if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) return 2; return 0; } _ACEOF rm -f conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else echo "$as_me: program exited with status $ac_status" >&5 echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) ac_cv_header_stdc=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi fi { echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5 echo "${ECHO_T}$ac_cv_header_stdc" >&6; } if test $ac_cv_header_stdc = yes; then cat >>confdefs.h <<\_ACEOF #define STDC_HEADERS 1 _ACEOF fi # On IRIX 5.3, sys/types and inttypes.h are conflicting. for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ inttypes.h stdint.h unistd.h do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` { echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then eval "$as_ac_Header=yes" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_Header=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi ac_res=`eval echo '${'$as_ac_Header'}'` { echo "$as_me:$LINENO: result: $ac_res" >&5 echo "${ECHO_T}$ac_res" >&6; } if test `eval echo '${'$as_ac_Header'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done for ac_header in dlfcn.h do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then { echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 fi ac_res=`eval echo '${'$as_ac_Header'}'` { echo "$as_me:$LINENO: result: $ac_res" >&5 echo "${ECHO_T}$ac_res" >&6; } else # Is the header compilable? { echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6; } # Is the header present? { echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <$ac_header> _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext { echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ( cat <<\_ASBOX ## ------------------------------------------- ## ## Report this to debian-boot@lists.debian.org ## ## ------------------------------------------- ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac { echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi ac_res=`eval echo '${'$as_ac_Header'}'` { echo "$as_me:$LINENO: result: $ac_res" >&5 echo "${ECHO_T}$ac_res" >&6; } fi if test `eval echo '${'$as_ac_Header'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done # Only perform the check for file, if the check method requires it case $deplibs_check_method in file_magic*) if test "$file_magic_cmd" = '$MAGIC_CMD'; then { echo "$as_me:$LINENO: checking for ${ac_tool_prefix}file" >&5 echo $ECHO_N "checking for ${ac_tool_prefix}file... $ECHO_C" >&6; } if test "${lt_cv_path_MAGIC_CMD+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else case $MAGIC_CMD in /*) lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. ;; ?:/*) lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a dos path. ;; *) ac_save_MAGIC_CMD="$MAGIC_CMD" IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" ac_dummy="/usr/bin:$PATH" for ac_dir in $ac_dummy; do test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/${ac_tool_prefix}file; then lt_cv_path_MAGIC_CMD="$ac_dir/${ac_tool_prefix}file" if test -n "$file_magic_test_file"; then case $deplibs_check_method in "file_magic "*) file_magic_regex="`expr \"$deplibs_check_method\" : \"file_magic \(.*\)\"`" MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | egrep "$file_magic_regex" > /dev/null; then : else cat <&2 *** Warning: the command libtool uses to detect shared libraries, *** $file_magic_cmd, produces output that libtool cannot recognize. *** The result is that libtool may fail to recognize shared libraries *** as such. This will affect the creation of libtool libraries that *** depend on shared libraries, but programs linked with such libtool *** libraries will work regardless of this problem. Nevertheless, you *** may want to report the problem to your system manager and/or to *** bug-libtool@gnu.org EOF fi ;; esac fi break fi done IFS="$ac_save_ifs" MAGIC_CMD="$ac_save_MAGIC_CMD" ;; esac fi MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if test -n "$MAGIC_CMD"; then { echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5 echo "${ECHO_T}$MAGIC_CMD" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi if test -z "$lt_cv_path_MAGIC_CMD"; then if test -n "$ac_tool_prefix"; then { echo "$as_me:$LINENO: checking for file" >&5 echo $ECHO_N "checking for file... $ECHO_C" >&6; } if test "${lt_cv_path_MAGIC_CMD+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else case $MAGIC_CMD in /*) lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. ;; ?:/*) lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a dos path. ;; *) ac_save_MAGIC_CMD="$MAGIC_CMD" IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" ac_dummy="/usr/bin:$PATH" for ac_dir in $ac_dummy; do test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/file; then lt_cv_path_MAGIC_CMD="$ac_dir/file" if test -n "$file_magic_test_file"; then case $deplibs_check_method in "file_magic "*) file_magic_regex="`expr \"$deplibs_check_method\" : \"file_magic \(.*\)\"`" MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | egrep "$file_magic_regex" > /dev/null; then : else cat <&2 *** Warning: the command libtool uses to detect shared libraries, *** $file_magic_cmd, produces output that libtool cannot recognize. *** The result is that libtool may fail to recognize shared libraries *** as such. This will affect the creation of libtool libraries that *** depend on shared libraries, but programs linked with such libtool *** libraries will work regardless of this problem. Nevertheless, you *** may want to report the problem to your system manager and/or to *** bug-libtool@gnu.org EOF fi ;; esac fi break fi done IFS="$ac_save_ifs" MAGIC_CMD="$ac_save_MAGIC_CMD" ;; esac fi MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if test -n "$MAGIC_CMD"; then { echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5 echo "${ECHO_T}$MAGIC_CMD" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi else MAGIC_CMD=: fi fi fi ;; esac if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. set dummy ${ac_tool_prefix}ranlib; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_RANLIB+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$RANLIB"; then ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi RANLIB=$ac_cv_prog_RANLIB if test -n "$RANLIB"; then { echo "$as_me:$LINENO: result: $RANLIB" >&5 echo "${ECHO_T}$RANLIB" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi fi if test -z "$ac_cv_prog_RANLIB"; then ac_ct_RANLIB=$RANLIB # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_RANLIB"; then ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_RANLIB="ranlib" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB if test -n "$ac_ct_RANLIB"; then { echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5 echo "${ECHO_T}$ac_ct_RANLIB" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi if test "x$ac_ct_RANLIB" = x; then RANLIB=":" else case $cross_compiling:$ac_tool_warned in yes:) { echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&5 echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&2;} ac_tool_warned=yes ;; esac RANLIB=$ac_ct_RANLIB fi else RANLIB="$ac_cv_prog_RANLIB" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. set dummy ${ac_tool_prefix}strip; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_STRIP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$STRIP"; then ac_cv_prog_STRIP="$STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi STRIP=$ac_cv_prog_STRIP if test -n "$STRIP"; then { echo "$as_me:$LINENO: result: $STRIP" >&5 echo "${ECHO_T}$STRIP" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi fi if test -z "$ac_cv_prog_STRIP"; then ac_ct_STRIP=$STRIP # Extract the first word of "strip", so it can be a program name with args. set dummy strip; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_STRIP"; then ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_STRIP="strip" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP if test -n "$ac_ct_STRIP"; then { echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5 echo "${ECHO_T}$ac_ct_STRIP" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi if test "x$ac_ct_STRIP" = x; then STRIP=":" else case $cross_compiling:$ac_tool_warned in yes:) { echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&5 echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&2;} ac_tool_warned=yes ;; esac STRIP=$ac_ct_STRIP fi else STRIP="$ac_cv_prog_STRIP" fi enable_dlopen=no enable_win32_dll=no # Check whether --enable-libtool-lock was given. if test "${enable_libtool_lock+set}" = set; then enableval=$enable_libtool_lock; fi test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes # Some flags need to be propagated to the compiler or linker for good # libtool support. case $host in *-*-irix6*) # Find out which ABI we are using. echo '#line 5338 "configure"' > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -32" ;; *N32*) LD="${LD-ld} -n32" ;; *64-bit*) LD="${LD-ld} -64" ;; esac fi rm -rf conftest* ;; *-*-sco3.2v5*) # On SCO OpenServer 5, we need -belf to get full-featured binaries. SAVE_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -belf" { echo "$as_me:$LINENO: checking whether the C compiler needs -belf" >&5 echo $ECHO_N "checking whether the C compiler needs -belf... $ECHO_C" >&6; } if test "${lt_cv_cc_needs_belf+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then lt_cv_cc_needs_belf=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 lt_cv_cc_needs_belf=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu fi { echo "$as_me:$LINENO: result: $lt_cv_cc_needs_belf" >&5 echo "${ECHO_T}$lt_cv_cc_needs_belf" >&6; } if test x"$lt_cv_cc_needs_belf" != x"yes"; then # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf CFLAGS="$SAVE_CFLAGS" fi ;; esac # Sed substitution that helps us do robust quoting. It backslashifies # metacharacters that are still active within double-quoted strings. Xsed='sed -e s/^X//' sed_quote_subst='s/\([\\"\\`$\\\\]\)/\\\1/g' # Same as above, but do not quote variable references. double_quote_subst='s/\([\\"\\`\\\\]\)/\\\1/g' # Sed substitution to delay expansion of an escaped shell variable in a # double_quote_subst'ed string. delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' # Constants: rm="rm -f" # Global variables: default_ofile=libtool can_build_shared=yes # All known linkers require a `.a' archive for static linking (except M$VC, # which needs '.lib'). libext=a ltmain="$ac_aux_dir/ltmain.sh" ofile="$default_ofile" with_gnu_ld="$lt_cv_prog_gnu_ld" need_locks="$enable_libtool_lock" old_CC="$CC" old_CFLAGS="$CFLAGS" # Set sane defaults for various variables test -z "$AR" && AR=ar test -z "$AR_FLAGS" && AR_FLAGS=cru test -z "$AS" && AS=as test -z "$CC" && CC=cc test -z "$DLLTOOL" && DLLTOOL=dlltool test -z "$LD" && LD=ld test -z "$LN_S" && LN_S="ln -s" test -z "$MAGIC_CMD" && MAGIC_CMD=file test -z "$NM" && NM=nm test -z "$OBJDUMP" && OBJDUMP=objdump test -z "$RANLIB" && RANLIB=: test -z "$STRIP" && STRIP=: test -z "$ac_objext" && ac_objext=o if test x"$host" != x"$build"; then ac_tool_prefix=${host_alias}- else ac_tool_prefix= fi # Transform linux* to *-*-linux-gnu*, to support old configure scripts. case $host_os in linux-gnu*) ;; linux*) host=`echo $host | sed 's/^\(.*-.*-linux\)\(.*\)$/\1-gnu\2/'` esac case $host_os in aix3*) # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test "X${COLLECT_NAMES+set}" != Xset; then COLLECT_NAMES= export COLLECT_NAMES fi ;; esac # Determine commands to create old-style static archives. old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs' old_postinstall_cmds='chmod 644 $oldlib' old_postuninstall_cmds= if test -n "$RANLIB"; then case $host_os in openbsd*) old_postinstall_cmds="\$RANLIB -t \$oldlib~$old_postinstall_cmds" ;; *) old_postinstall_cmds="\$RANLIB \$oldlib~$old_postinstall_cmds" ;; esac old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" fi # Allow CC to be a program name with arguments. set dummy $CC compiler="$2" ## FIXME: this should be a separate macro ## { echo "$as_me:$LINENO: checking for objdir" >&5 echo $ECHO_N "checking for objdir... $ECHO_C" >&6; } rm -f .libs 2>/dev/null mkdir .libs 2>/dev/null if test -d .libs; then objdir=.libs else # MS-DOS does not allow filenames that begin with a dot. objdir=_libs fi rmdir .libs 2>/dev/null { echo "$as_me:$LINENO: result: $objdir" >&5 echo "${ECHO_T}$objdir" >&6; } ## ## END FIXME ## FIXME: this should be a separate macro ## # Check whether --with-pic was given. if test "${with_pic+set}" = set; then withval=$with_pic; pic_mode="$withval" else pic_mode=default fi test -z "$pic_mode" && pic_mode=default # We assume here that the value for lt_cv_prog_cc_pic will not be cached # in isolation, and that seeing it set (from the cache) indicates that # the associated values are set (in the cache) correctly too. { echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5 echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6; } if test "${lt_cv_prog_cc_pic+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_cv_prog_cc_pic= lt_cv_prog_cc_shlib= lt_cv_prog_cc_wl= lt_cv_prog_cc_static= lt_cv_prog_cc_no_builtin= lt_cv_prog_cc_can_build_shared=$can_build_shared if test "$GCC" = yes; then lt_cv_prog_cc_wl='-Wl,' lt_cv_prog_cc_static='-static' case $host_os in aix*) # Below there is a dirty hack to force normal static linking with -ldl # The problem is because libdl dynamically linked with both libc and # libC (AIX C++ library), which obviously doesn't included in libraries # list by gcc. This cause undefined symbols with -static flags. # This hack allows C programs to be linked with "-static -ldl", but # not sure about C++ programs. lt_cv_prog_cc_static="$lt_cv_prog_cc_static ${lt_cv_prog_cc_wl}-lC" ;; amigaos*) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. lt_cv_prog_cc_pic='-m68020 -resident32 -malways-restore-a4' ;; beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files lt_cv_prog_cc_pic='-fno-common' ;; cygwin* | mingw* | pw32* | os2*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). lt_cv_prog_cc_pic='-DDLL_EXPORT' ;; sysv4*MP*) if test -d /usr/nec; then lt_cv_prog_cc_pic=-Kconform_pic fi ;; *) lt_cv_prog_cc_pic='-fPIC' ;; esac else # PORTME Check for PIC flags for the system compiler. case $host_os in aix3* | aix4* | aix5*) lt_cv_prog_cc_wl='-Wl,' # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_cv_prog_cc_static='-Bstatic' else lt_cv_prog_cc_static='-bnso -bI:/lib/syscalls.exp' fi ;; hpux9* | hpux10* | hpux11*) # Is there a better lt_cv_prog_cc_static that works with the bundled CC? lt_cv_prog_cc_wl='-Wl,' lt_cv_prog_cc_static="${lt_cv_prog_cc_wl}-a ${lt_cv_prog_cc_wl}archive" lt_cv_prog_cc_pic='+Z' ;; irix5* | irix6* | nonstopux*) lt_cv_prog_cc_wl='-Wl,' lt_cv_prog_cc_static='-non_shared' # PIC (with -KPIC) is the default. ;; cygwin* | mingw* | pw32* | os2*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). lt_cv_prog_cc_pic='-DDLL_EXPORT' ;; newsos6) lt_cv_prog_cc_pic='-KPIC' lt_cv_prog_cc_static='-Bstatic' ;; osf3* | osf4* | osf5*) # All OSF/1 code is PIC. lt_cv_prog_cc_wl='-Wl,' lt_cv_prog_cc_static='-non_shared' ;; sco3.2v5*) lt_cv_prog_cc_pic='-Kpic' lt_cv_prog_cc_static='-dn' lt_cv_prog_cc_shlib='-belf' ;; solaris*) lt_cv_prog_cc_pic='-KPIC' lt_cv_prog_cc_static='-Bstatic' lt_cv_prog_cc_wl='-Wl,' ;; sunos4*) lt_cv_prog_cc_pic='-PIC' lt_cv_prog_cc_static='-Bstatic' lt_cv_prog_cc_wl='-Qoption ld ' ;; sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) lt_cv_prog_cc_pic='-KPIC' lt_cv_prog_cc_static='-Bstatic' lt_cv_prog_cc_wl='-Wl,' ;; uts4*) lt_cv_prog_cc_pic='-pic' lt_cv_prog_cc_static='-Bstatic' ;; sysv4*MP*) if test -d /usr/nec ;then lt_cv_prog_cc_pic='-Kconform_pic' lt_cv_prog_cc_static='-Bstatic' fi ;; *) lt_cv_prog_cc_can_build_shared=no ;; esac fi fi if test -z "$lt_cv_prog_cc_pic"; then { echo "$as_me:$LINENO: result: none" >&5 echo "${ECHO_T}none" >&6; } else { echo "$as_me:$LINENO: result: $lt_cv_prog_cc_pic" >&5 echo "${ECHO_T}$lt_cv_prog_cc_pic" >&6; } # Check to make sure the pic_flag actually works. { echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_cv_prog_cc_pic works" >&5 echo $ECHO_N "checking if $compiler PIC flag $lt_cv_prog_cc_pic works... $ECHO_C" >&6; } if test "${lt_cv_prog_cc_pic_works+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else save_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS $lt_cv_prog_cc_pic -DPIC" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then case $host_os in hpux9* | hpux10* | hpux11*) # On HP-UX, both CC and GCC only warn that PIC is supported... then # they create non-PIC objects. So, if there were any warnings, we # assume that PIC is not supported. if test -s conftest.err; then lt_cv_prog_cc_pic_works=no else lt_cv_prog_cc_pic_works=yes fi ;; *) lt_cv_prog_cc_pic_works=yes ;; esac else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 lt_cv_prog_cc_pic_works=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext CFLAGS="$save_CFLAGS" fi if test "X$lt_cv_prog_cc_pic_works" = Xno; then lt_cv_prog_cc_pic= lt_cv_prog_cc_can_build_shared=no else lt_cv_prog_cc_pic=" $lt_cv_prog_cc_pic" fi { echo "$as_me:$LINENO: result: $lt_cv_prog_cc_pic_works" >&5 echo "${ECHO_T}$lt_cv_prog_cc_pic_works" >&6; } fi ## ## END FIXME # Check for any special shared library compilation flags. if test -n "$lt_cv_prog_cc_shlib"; then { echo "$as_me:$LINENO: WARNING: \`$CC' requires \`$lt_cv_prog_cc_shlib' to build shared libraries" >&5 echo "$as_me: WARNING: \`$CC' requires \`$lt_cv_prog_cc_shlib' to build shared libraries" >&2;} if echo "$old_CC $old_CFLAGS " | egrep -e "[ ]$lt_cv_prog_cc_shlib[ ]" >/dev/null; then : else { echo "$as_me:$LINENO: WARNING: add \`$lt_cv_prog_cc_shlib' to the CC or CFLAGS env variable and reconfigure" >&5 echo "$as_me: WARNING: add \`$lt_cv_prog_cc_shlib' to the CC or CFLAGS env variable and reconfigure" >&2;} lt_cv_prog_cc_can_build_shared=no fi fi ## FIXME: this should be a separate macro ## { echo "$as_me:$LINENO: checking if $compiler static flag $lt_cv_prog_cc_static works" >&5 echo $ECHO_N "checking if $compiler static flag $lt_cv_prog_cc_static works... $ECHO_C" >&6; } if test "${lt_cv_prog_cc_static_works+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_cv_prog_cc_static_works=no save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS $lt_cv_prog_cc_static" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then lt_cv_prog_cc_static_works=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LDFLAGS="$save_LDFLAGS" fi # Belt *and* braces to stop my trousers falling down: test "X$lt_cv_prog_cc_static_works" = Xno && lt_cv_prog_cc_static= { echo "$as_me:$LINENO: result: $lt_cv_prog_cc_static_works" >&5 echo "${ECHO_T}$lt_cv_prog_cc_static_works" >&6; } pic_flag="$lt_cv_prog_cc_pic" special_shlib_compile_flags="$lt_cv_prog_cc_shlib" wl="$lt_cv_prog_cc_wl" link_static_flag="$lt_cv_prog_cc_static" no_builtin_flag="$lt_cv_prog_cc_no_builtin" can_build_shared="$lt_cv_prog_cc_can_build_shared" ## ## END FIXME ## FIXME: this should be a separate macro ## # Check to see if options -o and -c are simultaneously supported by compiler { echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5 echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6; } if test "${lt_cv_compiler_c_o+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else $rm -r conftest 2>/dev/null mkdir conftest cd conftest echo "int some_variable = 0;" > conftest.$ac_ext mkdir out # According to Tom Tromey, Ian Lance Taylor reported there are C compilers # that will create temporary files in the current directory regardless of # the output directory. Thus, making CWD read-only will cause this test # to fail, enabling locking or at least warning the user not to do parallel # builds. chmod -w . save_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -o out/conftest2.$ac_objext" compiler_c_o=no if { (eval echo configure:5900: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>out/conftest.err; } && test -s out/conftest2.$ac_objext; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings if test -s out/conftest.err; then lt_cv_compiler_c_o=no else lt_cv_compiler_c_o=yes fi else # Append any errors to the config.log. cat out/conftest.err 1>&5 lt_cv_compiler_c_o=no fi CFLAGS="$save_CFLAGS" chmod u+w . $rm conftest* out/* rmdir out cd .. rmdir conftest $rm -r conftest 2>/dev/null fi compiler_c_o=$lt_cv_compiler_c_o { echo "$as_me:$LINENO: result: $compiler_c_o" >&5 echo "${ECHO_T}$compiler_c_o" >&6; } if test x"$compiler_c_o" = x"yes"; then # Check to see if we can write to a .lo { echo "$as_me:$LINENO: checking if $compiler supports -c -o file.lo" >&5 echo $ECHO_N "checking if $compiler supports -c -o file.lo... $ECHO_C" >&6; } if test "${lt_cv_compiler_o_lo+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_cv_compiler_o_lo=no save_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -c -o conftest.lo" save_objext="$ac_objext" ac_objext=lo cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { int some_variable = 0; ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then lt_cv_compiler_o_lo=no else lt_cv_compiler_o_lo=yes fi else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_objext="$save_objext" CFLAGS="$save_CFLAGS" fi compiler_o_lo=$lt_cv_compiler_o_lo { echo "$as_me:$LINENO: result: $compiler_o_lo" >&5 echo "${ECHO_T}$compiler_o_lo" >&6; } else compiler_o_lo=no fi ## ## END FIXME ## FIXME: this should be a separate macro ## # Check to see if we can do hard links to lock some files if needed hard_links="nottested" if test "$compiler_c_o" = no && test "$need_locks" != no; then # do not overwrite the value of need_locks provided by the user { echo "$as_me:$LINENO: checking if we can lock with hard links" >&5 echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6; } hard_links=yes $rm conftest* ln conftest.a conftest.b 2>/dev/null && hard_links=no touch conftest.a ln conftest.a conftest.b 2>&5 || hard_links=no ln conftest.a conftest.b 2>/dev/null && hard_links=no { echo "$as_me:$LINENO: result: $hard_links" >&5 echo "${ECHO_T}$hard_links" >&6; } if test "$hard_links" = no; then { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} need_locks=warn fi else need_locks=no fi ## ## END FIXME ## FIXME: this should be a separate macro ## if test "$GCC" = yes; then # Check to see if options -fno-rtti -fno-exceptions are supported by compiler { echo "$as_me:$LINENO: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 echo $ECHO_N "checking if $compiler supports -fno-rtti -fno-exceptions... $ECHO_C" >&6; } echo "int some_variable = 0;" > conftest.$ac_ext save_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -fno-rtti -fno-exceptions -c conftest.$ac_ext" compiler_rtti_exceptions=no cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { int some_variable = 0; ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then compiler_rtti_exceptions=no else compiler_rtti_exceptions=yes fi else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext CFLAGS="$save_CFLAGS" { echo "$as_me:$LINENO: result: $compiler_rtti_exceptions" >&5 echo "${ECHO_T}$compiler_rtti_exceptions" >&6; } if test "$compiler_rtti_exceptions" = "yes"; then no_builtin_flag=' -fno-builtin -fno-rtti -fno-exceptions' else no_builtin_flag=' -fno-builtin' fi fi ## ## END FIXME ## FIXME: this should be a separate macro ## # See if the linker supports building shared libraries. { echo "$as_me:$LINENO: checking whether the linker ($LD) supports shared libraries" >&5 echo $ECHO_N "checking whether the linker ($LD) supports shared libraries... $ECHO_C" >&6; } allow_undefined_flag= no_undefined_flag= need_lib_prefix=unknown need_version=unknown # when you set need_version to no, make sure it does not cause -set_version # flags to be left without arguments archive_cmds= archive_expsym_cmds= old_archive_from_new_cmds= old_archive_from_expsyms_cmds= export_dynamic_flag_spec= whole_archive_flag_spec= thread_safe_flag_spec= hardcode_into_libs=no hardcode_libdir_flag_spec= hardcode_libdir_separator= hardcode_direct=no hardcode_minus_L=no hardcode_shlibpath_var=unsupported runpath_var= link_all_deplibs=unknown always_export_symbols=no export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | sed '\''s/.* //'\'' | sort | uniq > $export_symbols' # include_expsyms should be a list of space-separated symbols to be *always* # included in the symbol list include_expsyms= # exclude_expsyms can be an egrep regular expression of symbols to exclude # it will be wrapped by ` (' and `)$', so one must not match beginning or # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', # as well as any symbol that contains `d'. exclude_expsyms="_GLOBAL_OFFSET_TABLE_" # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out # platforms (ab)use it in PIC code, but their linkers get confused if # the symbol is explicitly referenced. Since portable code cannot # rely on this symbol name, it's probably fine to never include it in # preloaded symbol tables. extract_expsyms_cmds= case $host_os in cygwin* | mingw* | pw32*) # FIXME: the MSVC++ port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++. if test "$GCC" != yes; then with_gnu_ld=no fi ;; openbsd*) with_gnu_ld=no ;; esac ld_shlibs=yes if test "$with_gnu_ld" = yes; then # If archive_cmds runs LD, not CC, wlarc should be empty wlarc='${wl}' # See if GNU ld supports shared libraries. case $host_os in aix3* | aix4* | aix5*) # On AIX, the GNU linker is very broken # Note:Check GNU linker on AIX 5-IA64 when/if it becomes available. ld_shlibs=no cat <&2 *** Warning: the GNU linker, at least up to release 2.9.1, is reported *** to be unable to reliably create shared libraries on AIX. *** Therefore, libtool is disabling shared libraries support. If you *** really care for shared libraries, you may want to modify your PATH *** so that a non-GNU linker is found, and then restart. EOF ;; amigaos*) archive_cmds='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes # Samuel A. Falvo II reports # that the semantics of dynamic libraries on AmigaOS, at least up # to version 4, is to share data among multiple programs linked # with the same dynamic library. Since this doesn't match the # behavior of shared libraries on other platforms, we can use # them. ld_shlibs=no ;; beos*) if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then allow_undefined_flag=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else ld_shlibs=no fi ;; cygwin* | mingw* | pw32*) # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. hardcode_libdir_flag_spec='-L$libdir' allow_undefined_flag=unsupported always_export_symbols=yes extract_expsyms_cmds='test -f $output_objdir/impgen.c || \ sed -e "/^# \/\* impgen\.c starts here \*\//,/^# \/\* impgen.c ends here \*\// { s/^# //;s/^# *$//; p; }" -e d < $''0 > $output_objdir/impgen.c~ test -f $output_objdir/impgen.exe || (cd $output_objdir && \ if test "x$HOST_CC" != "x" ; then $HOST_CC -o impgen impgen.c ; \ else $CC -o impgen impgen.c ; fi)~ $output_objdir/impgen $dir/$soroot > $output_objdir/$soname-def' old_archive_from_expsyms_cmds='$DLLTOOL --as=$AS --dllname $soname --def $output_objdir/$soname-def --output-lib $output_objdir/$newlib' # cygwin and mingw dlls have different entry points and sets of symbols # to exclude. # FIXME: what about values for MSVC? dll_entry=__cygwin_dll_entry@12 dll_exclude_symbols=DllMain@12,_cygwin_dll_entry@12,_cygwin_noncygwin_dll_entry@12~ case $host_os in mingw*) # mingw values dll_entry=_DllMainCRTStartup@12 dll_exclude_symbols=DllMain@12,DllMainCRTStartup@12,DllEntryPoint@12~ ;; esac # mingw and cygwin differ, and it's simplest to just exclude the union # of the two symbol sets. dll_exclude_symbols=DllMain@12,_cygwin_dll_entry@12,_cygwin_noncygwin_dll_entry@12,DllMainCRTStartup@12,DllEntryPoint@12 # recent cygwin and mingw systems supply a stub DllMain which the user # can override, but on older systems we have to supply one (in ltdll.c) if test "x$lt_cv_need_dllmain" = "xyes"; then ltdll_obj='$output_objdir/$soname-ltdll.'"$ac_objext " ltdll_cmds='test -f $output_objdir/$soname-ltdll.c || sed -e "/^# \/\* ltdll\.c starts here \*\//,/^# \/\* ltdll.c ends here \*\// { s/^# //; p; }" -e d < $''0 > $output_objdir/$soname-ltdll.c~ test -f $output_objdir/$soname-ltdll.$ac_objext || (cd $output_objdir && $CC -c $soname-ltdll.c)~' else ltdll_obj= ltdll_cmds= fi # Extract the symbol export list from an `--export-all' def file, # then regenerate the def file from the symbol export list, so that # the compiled dll only exports the symbol export list. # Be careful not to strip the DATA tag left be newer dlltools. export_symbols_cmds="$ltdll_cmds"' $DLLTOOL --export-all --exclude-symbols '$dll_exclude_symbols' --output-def $output_objdir/$soname-def '$ltdll_obj'$libobjs $convenience~ sed -e "1,/EXPORTS/d" -e "s/ @ [0-9]*//" -e "s/ *;.*$//" < $output_objdir/$soname-def > $export_symbols' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is. # If DATA tags from a recent dlltool are present, honour them! archive_expsym_cmds='if test "x`sed 1q $export_symbols`" = xEXPORTS; then cp $export_symbols $output_objdir/$soname-def; else echo EXPORTS > $output_objdir/$soname-def; _lt_hint=1; cat $export_symbols | while read symbol; do set dummy \$symbol; case \$# in 2) echo " \$2 @ \$_lt_hint ; " >> $output_objdir/$soname-def;; 4) echo " \$2 \$3 \$4 ; " >> $output_objdir/$soname-def; _lt_hint=`expr \$_lt_hint - 1`;; *) echo " \$2 @ \$_lt_hint \$3 ; " >> $output_objdir/$soname-def;; esac; _lt_hint=`expr 1 + \$_lt_hint`; done; fi~ '"$ltdll_cmds"' $CC -Wl,--base-file,$output_objdir/$soname-base '$lt_cv_cc_dll_switch' -Wl,-e,'$dll_entry' -o $output_objdir/$soname '$ltdll_obj'$libobjs $deplibs $compiler_flags~ $DLLTOOL --as=$AS --dllname $soname --exclude-symbols '$dll_exclude_symbols' --def $output_objdir/$soname-def --base-file $output_objdir/$soname-base --output-exp $output_objdir/$soname-exp~ $CC -Wl,--base-file,$output_objdir/$soname-base $output_objdir/$soname-exp '$lt_cv_cc_dll_switch' -Wl,-e,'$dll_entry' -o $output_objdir/$soname '$ltdll_obj'$libobjs $deplibs $compiler_flags~ $DLLTOOL --as=$AS --dllname $soname --exclude-symbols '$dll_exclude_symbols' --def $output_objdir/$soname-def --base-file $output_objdir/$soname-base --output-exp $output_objdir/$soname-exp --output-lib $output_objdir/$libname.dll.a~ $CC $output_objdir/$soname-exp '$lt_cv_cc_dll_switch' -Wl,-e,'$dll_entry' -o $output_objdir/$soname '$ltdll_obj'$libobjs $deplibs $compiler_flags' ;; netbsd*) if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= else archive_cmds='$CC -shared -nodefaultlibs $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared -nodefaultlibs $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' fi ;; solaris* | sysv5*) if $LD -v 2>&1 | egrep 'BFD 2\.8' > /dev/null; then ld_shlibs=no cat <&2 *** Warning: The releases 2.8.* of the GNU linker cannot reliably *** create shared libraries on Solaris systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.9.1 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. EOF elif $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs=no fi ;; sunos4*) archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' wlarc= hardcode_direct=yes hardcode_shlibpath_var=no ;; *) if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs=no fi ;; esac if test "$ld_shlibs" = yes; then runpath_var=LD_RUN_PATH hardcode_libdir_flag_spec='${wl}--rpath ${wl}$libdir' export_dynamic_flag_spec='${wl}--export-dynamic' case $host_os in cygwin* | mingw* | pw32*) # dlltool doesn't understand --whole-archive et. al. whole_archive_flag_spec= ;; *) # ancient GNU ld didn't support --whole-archive et. al. if $LD --help 2>&1 | egrep 'no-whole-archive' > /dev/null; then whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else whole_archive_flag_spec= fi ;; esac fi else # PORTME fill in a description of your system's linker (not GNU ld) case $host_os in aix3*) allow_undefined_flag=unsupported always_export_symbols=yes archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' # Note: this linker hardcodes the directories in LIBPATH if there # are no directories specified by -L. hardcode_minus_L=yes if test "$GCC" = yes && test -z "$link_static_flag"; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. hardcode_direct=unsupported fi ;; aix4* | aix5*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag="" else aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[23]|aix4.[23].*|aix5*) for ld_flag in $LDFLAGS; do case $ld_flag in *-brtl*) aix_use_runtimelinking=yes break ;; esac done esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. hardcode_direct=yes archive_cmds='' hardcode_libdir_separator=':' if test "$GCC" = yes; then case $host_os in aix4.[012]|aix4.[012].*) collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && \ strings "$collect2name" | grep resolve_lib_name >/dev/null then # We have reworked collect2 hardcode_direct=yes else # We have old collect2 hardcode_direct=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking hardcode_minus_L=yes hardcode_libdir_flag_spec='-L$libdir' hardcode_libdir_separator= fi esac shared_flag='-shared' else # not using gcc if test "$host_cpu" = ia64; then shared_flag='${wl}-G' else if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi # It seems that -bexpall can do strange things, so it is better to # generate a list of symbols to export. always_export_symbols=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. allow_undefined_flag='-berok' hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:/usr/lib:/lib' archive_expsym_cmds="\$CC"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib' allow_undefined_flag="-z nodefs" archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname ${wl}-h$soname $libobjs $deplibs $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols" else hardcode_libdir_flag_spec='${wl}-bnolibpath ${wl}-blibpath:$libdir:/usr/lib:/lib' # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. allow_undefined_flag='${wl}-berok' # This is a bit strange, but is similar to how AIX traditionally builds # it's shared libraries. archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols"' ~$AR -crlo $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; amigaos*) archive_cmds='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes # see comment about different semantics on the GNU ld section ld_shlibs=no ;; cygwin* | mingw* | pw32*) # When not using gcc, we currently assume that we are using # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. hardcode_libdir_flag_spec=' ' allow_undefined_flag=unsupported # Tell ltmain to make .lib files, not .a files. libext=lib # FIXME: Setting linknames here is a bad hack. archive_cmds='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | sed -e '\''s/ -lc$//'\''` -link -dll~linknames=' # The linker will automatically build a .lib file if we build a DLL. old_archive_from_new_cmds='true' # FIXME: Should let the user specify the lib program. old_archive_cmds='lib /OUT:$oldlib$oldobjs$old_deplibs' fix_srcfile_path='`cygpath -w "$srcfile"`' ;; darwin* | rhapsody*) case "$host_os" in rhapsody* | darwin1.[012]) allow_undefined_flag='-undefined suppress' ;; *) # Darwin 1.3 on allow_undefined_flag='-flat_namespace -undefined suppress' ;; esac # FIXME: Relying on posixy $() will cause problems for # cross-compilation, but unfortunately the echo tests do not # yet detect zsh echo's removal of \ escapes. Also zsh mangles # `"' quotes if we put them in here... so don't! archive_cmds='$CC -r -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs && $CC $(test .$module = .yes && echo -bundle || echo -dynamiclib) $allow_undefined_flag -o $lib ${lib}-master.o $deplibs$linker_flags $(test .$module != .yes && echo -install_name $rpath/$soname $verstring)' # We need to add '_' to the symbols in $export_symbols first #archive_expsym_cmds="$archive_cmds"' && strip -s $export_symbols' hardcode_direct=yes hardcode_shlibpath_var=no whole_archive_flag_spec='-all_load $convenience' ;; freebsd1*) ld_shlibs=no ;; # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor # support. Future versions do this automatically, but an explicit c++rt0.o # does not break anything, and helps significantly (at the cost of a little # extra space). freebsd2.2*) archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; # Unfortunately, older versions of FreeBSD 2 do not have this feature. freebsd2*) archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes hardcode_minus_L=yes hardcode_shlibpath_var=no ;; # FreeBSD 3 and greater uses gcc -shared to do shared libraries. freebsd*) archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; hpux9* | hpux10* | hpux11*) case $host_os in hpux9*) archive_cmds='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' ;; *) archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' ;; esac hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: hardcode_direct=yes hardcode_minus_L=yes # Not in the search PATH, but as the default # location of the library. export_dynamic_flag_spec='${wl}-E' ;; irix5* | irix6* | nonstopux*) if test "$GCC" = yes; then archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' else archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec='-rpath $libdir' fi hardcode_libdir_separator=: link_all_deplibs=yes ;; netbsd*) if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out else archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF fi hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; newsos6) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: hardcode_shlibpath_var=no ;; openbsd*) hardcode_direct=yes hardcode_shlibpath_var=no if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec='${wl}-rpath,$libdir' export_dynamic_flag_spec='${wl}-E' else case "$host_os" in openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec='-R$libdir' ;; *) archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec='${wl}-rpath,$libdir' ;; esac fi ;; os2*) hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes allow_undefined_flag=unsupported archive_cmds='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' old_archive_from_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' ;; osf3*) if test "$GCC" = yes; then allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else allow_undefined_flag=' -expect_unresolved \*' archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' fi hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: ;; osf4* | osf5*) # as osf3* with the addition of -msym flag if test "$GCC" = yes; then allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' else allow_undefined_flag=' -expect_unresolved \*' archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' archive_expsym_cmds='for i in `cat $export_symbols`; do printf "-exported_symbol " >> $lib.exp; echo "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~ $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib~$rm $lib.exp' #Both c and cxx compiler support -rpath directly hardcode_libdir_flag_spec='-rpath $libdir' fi hardcode_libdir_separator=: ;; sco3.2v5*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var=no runpath_var=LD_RUN_PATH hardcode_runpath_var=yes export_dynamic_flag_spec='${wl}-Bexport' ;; solaris*) # gcc --version < 3.0 without binutils cannot create self contained # shared libraries reliably, requiring libgcc.a to resolve some of # the object symbols generated in some cases. Libraries that use # assert need libgcc.a to resolve __eprintf, for example. Linking # a copy of libgcc.a into every shared library to guarantee resolving # such symbols causes other problems: According to Tim Van Holder # , C++ libraries end up with a separate # (to the application) exception stack for one thing. no_undefined_flag=' -z defs' if test "$GCC" = yes; then case `$CC --version 2>/dev/null` in [12].*) cat <&2 *** Warning: Releases of GCC earlier than version 3.0 cannot reliably *** create self contained shared libraries on Solaris systems, without *** introducing a dependency on libgcc.a. Therefore, libtool is disabling *** -no-undefined support, which will at least allow you to build shared *** libraries. However, you may find that when you link such libraries *** into an application without using GCC, you have to manually add *** \`gcc --print-libgcc-file-name\` to the link command. We urge you to *** upgrade to a newer version of GCC. Another option is to rebuild your *** current GCC to use the GNU linker from GNU binutils 2.9.1 or newer. EOF no_undefined_flag= ;; esac fi # $CC -shared without GNU ld will not create a library from C++ # object files and a static libstdc++, better avoid it by now archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp' hardcode_libdir_flag_spec='-R$libdir' hardcode_shlibpath_var=no case $host_os in solaris2.[0-5] | solaris2.[0-5].*) ;; *) # Supported since Solaris 2.6 (maybe 2.5.1?) whole_archive_flag_spec='-z allextract$convenience -z defaultextract' ;; esac link_all_deplibs=yes ;; sunos4*) if test "x$host_vendor" = xsequent; then # Use $CC to link under sequent, because it throws in some extra .o # files that make .init and .fini sections work. archive_cmds='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' fi hardcode_libdir_flag_spec='-L$libdir' hardcode_direct=yes hardcode_minus_L=yes hardcode_shlibpath_var=no ;; sysv4) case $host_vendor in sni) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes # is this really true??? ;; siemens) ## LD is ld it makes a PLAMLIB ## CC just makes a GrossModule. archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags' reload_cmds='$CC -r -o $output$reload_objs' hardcode_direct=no ;; motorola) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=no #Motorola manual says yes, but my tests say they lie ;; esac runpath_var='LD_RUN_PATH' hardcode_shlibpath_var=no ;; sysv4.3*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var=no export_dynamic_flag_spec='-Bexport' ;; sysv5*) no_undefined_flag=' -z text' # $CC -shared without GNU ld will not create a library from C++ # object files and a static libstdc++, better avoid it by now archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp' hardcode_libdir_flag_spec= hardcode_shlibpath_var=no runpath_var='LD_RUN_PATH' ;; uts4*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec='-L$libdir' hardcode_shlibpath_var=no ;; dgux*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec='-L$libdir' hardcode_shlibpath_var=no ;; sysv4*MP*) if test -d /usr/nec; then archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var=no runpath_var=LD_RUN_PATH hardcode_runpath_var=yes ld_shlibs=yes fi ;; sysv4.2uw2*) archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes hardcode_minus_L=no hardcode_shlibpath_var=no hardcode_runpath_var=yes runpath_var=LD_RUN_PATH ;; sysv5uw7* | unixware7*) no_undefined_flag='${wl}-z ${wl}text' if test "$GCC" = yes; then archive_cmds='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$CC -G ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' fi runpath_var='LD_RUN_PATH' hardcode_shlibpath_var=no ;; *) ld_shlibs=no ;; esac fi { echo "$as_me:$LINENO: result: $ld_shlibs" >&5 echo "${ECHO_T}$ld_shlibs" >&6; } test "$ld_shlibs" = no && can_build_shared=no ## ## END FIXME ## FIXME: this should be a separate macro ## # Check hardcoding attributes. { echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5 echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6; } hardcode_action= if test -n "$hardcode_libdir_flag_spec" || \ test -n "$runpath_var"; then # We can hardcode non-existant directories. if test "$hardcode_direct" != no && # If the only mechanism to avoid hardcoding is shlibpath_var, we # have to relink, otherwise we might link with an installed library # when we should be linking with a yet-to-be-installed one ## test "$hardcode_shlibpath_var" != no && test "$hardcode_minus_L" != no; then # Linking always hardcodes the temporary library directory. hardcode_action=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. hardcode_action=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. hardcode_action=unsupported fi { echo "$as_me:$LINENO: result: $hardcode_action" >&5 echo "${ECHO_T}$hardcode_action" >&6; } ## ## END FIXME ## FIXME: this should be a separate macro ## striplib= old_striplib= { echo "$as_me:$LINENO: checking whether stripping libraries is possible" >&5 echo $ECHO_N "checking whether stripping libraries is possible... $ECHO_C" >&6; } if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; then test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" test -z "$striplib" && striplib="$STRIP --strip-unneeded" { echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi ## ## END FIXME reload_cmds='$LD$reload_flag -o $output$reload_objs' test -z "$deplibs_check_method" && deplibs_check_method=unknown ## FIXME: this should be a separate macro ## # PORTME Fill in your ld.so characteristics { echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5 echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6; } library_names_spec= libname_spec='lib$name' soname_spec= postinstall_cmds= postuninstall_cmds= finish_cmds= finish_eval= shlibpath_var= shlibpath_overrides_runpath=unknown version_type=none dynamic_linker="$host_os ld.so" sys_lib_dlsearch_path_spec="/lib /usr/lib" sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" case $host_os in aix3*) version_type=linux library_names_spec='${libname}${release}.so$versuffix $libname.a' shlibpath_var=LIBPATH # AIX has no versioning support, so we append a major version to the name. soname_spec='${libname}${release}.so$major' ;; aix4* | aix5*) version_type=linux need_lib_prefix=no need_version=no hardcode_into_libs=yes if test "$host_cpu" = ia64; then # AIX 5 supports IA64 library_names_spec='${libname}${release}.so$major ${libname}${release}.so$versuffix $libname.so' shlibpath_var=LD_LIBRARY_PATH else # With GCC up to 2.95.x, collect2 would create an import file # for dependence libraries. The import file would start with # the line `#! .'. This would cause the generated library to # depend on `.', always an invalid library. This was fixed in # development snapshots of GCC prior to 3.0. case $host_os in aix4 | aix4.[01] | aix4.[01].*) if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' echo ' yes ' echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then : else can_build_shared=no fi ;; esac # AIX (on Power*) has no versioning support, so currently we can # not hardcode correct soname into executable. Probably we can # add versioning support to collect2, so additional links can # be useful in future. if test "$aix_use_runtimelinking" = yes; then # If using run time linking (on AIX 4.2 or later) use lib.so # instead of lib.a to let people know that these are not # typical AIX shared libraries. library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' else # We preserve .a as extension for shared libraries through AIX4.2 # and later when we are not doing run time linking. library_names_spec='${libname}${release}.a $libname.a' soname_spec='${libname}${release}.so$major' fi shlibpath_var=LIBPATH fi hardcode_into_libs=yes ;; amigaos*) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "(cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a)"; (cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a) || exit 1; done' ;; beos*) library_names_spec='${libname}.so' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi4*) version_type=linux need_version=no library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' soname_spec='${libname}${release}.so$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" export_dynamic_flag_spec=-rdynamic # the default ld.so.conf also contains /usr/contrib/lib and # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow # libtool to hard-code these into programs ;; cygwin* | mingw* | pw32*) version_type=windows need_version=no need_lib_prefix=no case $GCC,$host_os in yes,cygwin*) library_names_spec='$libname.dll.a' soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | sed -e 's/[.]/-/g'`${versuffix}.dll' postinstall_cmds='dlpath=`bash 2>&1 -c '\''. $dir/${file}i;echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog .libs/$dlname \$dldir/$dlname' postuninstall_cmds='dldll=`bash 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $rm \$dlpath' ;; yes,mingw*) library_names_spec='${libname}`echo ${release} | sed -e 's/[.]/-/g'`${versuffix}.dll' sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | sed -e "s/^libraries://" -e "s/;/ /g" -e "s,=/,/,g"` ;; yes,pw32*) library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | sed -e 's/./-/g'`${versuffix}.dll' ;; *) library_names_spec='${libname}`echo ${release} | sed -e 's/[.]/-/g'`${versuffix}.dll $libname.lib' ;; esac dynamic_linker='Win32 ld.exe' # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; darwin* | rhapsody*) dynamic_linker="$host_os dyld" version_type=darwin need_lib_prefix=no need_version=no # FIXME: Relying on posixy $() will cause problems for # cross-compilation, but unfortunately the echo tests do not # yet detect zsh echo's removal of \ escapes. library_names_spec='${libname}${release}${versuffix}.$(test .$module = .yes && echo so || echo dylib) ${libname}${release}${major}.$(test .$module = .yes && echo so || echo dylib) ${libname}.$(test .$module = .yes && echo so || echo dylib)' soname_spec='${libname}${release}${major}.$(test .$module = .yes && echo so || echo dylib)' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH ;; freebsd1*) dynamic_linker=no ;; kfreebsd*-gnu*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' soname_spec='${libname}${release}.so$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='GNU/FreeBSD ld.so' ;; freebsd*) objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout` version_type=freebsd-$objformat case $version_type in freebsd-elf*) library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so $libname.so' need_version=no need_lib_prefix=no ;; freebsd-*) library_names_spec='${libname}${release}.so$versuffix $libname.so$versuffix' need_version=yes ;; esac shlibpath_var=LD_LIBRARY_PATH case $host_os in freebsd2*) shlibpath_overrides_runpath=yes ;; *) shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; esac ;; gnu*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so${major} ${libname}.so' soname_spec='${libname}${release}.so$major' shlibpath_var=LD_LIBRARY_PATH hardcode_into_libs=yes ;; hpux9* | hpux10* | hpux11*) # Give a soname corresponding to the major version so that dld.sl refuses to # link against other versions. dynamic_linker="$host_os dld.sl" version_type=sunos need_lib_prefix=no need_version=no shlibpath_var=SHLIB_PATH shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH library_names_spec='${libname}${release}.sl$versuffix ${libname}${release}.sl$major $libname.sl' soname_spec='${libname}${release}.sl$major' # HP-UX runs *really* slowly unless shared libraries are mode 555. postinstall_cmds='chmod 555 $lib' ;; irix5* | irix6* | nonstopux*) case $host_os in nonstopux*) version_type=nonstopux ;; *) version_type=irix ;; esac need_lib_prefix=no need_version=no soname_spec='${libname}${release}.so$major' library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major ${libname}${release}.so $libname.so' case $host_os in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in # libtool.m4 will add one of these switches to LD *-32|*"-32 ") libsuff= shlibsuff= libmagic=32-bit;; *-n32|*"-n32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; *-64|*"-64 ") libsuff=64 shlibsuff=64 libmagic=64-bit;; *) libsuff= shlibsuff= libmagic=never-match;; esac ;; esac shlibpath_var=LD_LIBRARY${shlibsuff}_PATH shlibpath_overrides_runpath=no sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" ;; # No shared lib support for Linux oldld, aout, or coff. linux-gnuoldld* | linux-gnuaout* | linux-gnucoff*) dynamic_linker=no ;; # This must be Linux ELF. linux-gnu*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' soname_spec='${libname}${release}.so$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install # before this can be enabled. hardcode_into_libs=yes # We used to test for /lib/ld.so.1 and disable shared libraries on # powerpc, because MkLinux only supported shared libraries with the # GNU dynamic linker. Since this was broken with cross compilers, # most powerpc-linux boxes support dynamic linking these days and # people can always --disable-shared, the test was removed, and we # assume the GNU/Linux dynamic linker is in use. dynamic_linker='GNU/Linux ld.so' ;; netbsd*) version_type=sunos need_lib_prefix=no need_version=no if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then library_names_spec='${libname}${release}.so$versuffix ${libname}.so$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' dynamic_linker='NetBSD (a.out) ld.so' else library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major ${libname}${release}.so ${libname}.so' soname_spec='${libname}${release}.so$major' dynamic_linker='NetBSD ld.elf_so' fi shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; newsos6) version_type=linux library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; openbsd*) version_type=sunos need_lib_prefix=no need_version=no if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then case "$host_os" in openbsd2.[89] | openbsd2.[89].*) shlibpath_overrides_runpath=no ;; *) shlibpath_overrides_runpath=yes ;; esac else shlibpath_overrides_runpath=yes fi library_names_spec='${libname}${release}.so$versuffix ${libname}.so$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' shlibpath_var=LD_LIBRARY_PATH ;; os2*) libname_spec='$name' need_lib_prefix=no library_names_spec='$libname.dll $libname.a' dynamic_linker='OS/2 ld.exe' shlibpath_var=LIBPATH ;; osf3* | osf4* | osf5*) version_type=osf need_version=no need_lib_prefix=no soname_spec='${libname}${release}.so$major' library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" hardcode_into_libs=yes ;; sco3.2v5*) version_type=osf soname_spec='${libname}${release}.so$major' library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' shlibpath_var=LD_LIBRARY_PATH ;; solaris*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' soname_spec='${libname}${release}.so$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes # ldd complains unless libraries are executable postinstall_cmds='chmod +x $lib' ;; sunos4*) version_type=sunos library_names_spec='${libname}${release}.so$versuffix ${libname}.so$versuffix' finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes if test "$with_gnu_ld" = yes; then need_lib_prefix=no fi need_version=yes ;; sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) version_type=linux library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' soname_spec='${libname}${release}.so$major' shlibpath_var=LD_LIBRARY_PATH case $host_vendor in sni) shlibpath_overrides_runpath=no need_lib_prefix=no export_dynamic_flag_spec='${wl}-Blargedynsym' runpath_var=LD_RUN_PATH ;; siemens) need_lib_prefix=no ;; motorola) need_lib_prefix=no need_version=no shlibpath_overrides_runpath=no sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ;; esac ;; uts4*) version_type=linux library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' soname_spec='${libname}${release}.so$major' shlibpath_var=LD_LIBRARY_PATH ;; dgux*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' soname_spec='${libname}${release}.so$major' shlibpath_var=LD_LIBRARY_PATH ;; sysv4*MP*) if test -d /usr/nec ;then version_type=linux library_names_spec='$libname.so.$versuffix $libname.so.$major $libname.so' soname_spec='$libname.so.$major' shlibpath_var=LD_LIBRARY_PATH fi ;; *) dynamic_linker=no ;; esac { echo "$as_me:$LINENO: result: $dynamic_linker" >&5 echo "${ECHO_T}$dynamic_linker" >&6; } test "$dynamic_linker" = no && can_build_shared=no ## ## END FIXME ## FIXME: this should be a separate macro ## # Report the final consequences. { echo "$as_me:$LINENO: checking if libtool supports shared libraries" >&5 echo $ECHO_N "checking if libtool supports shared libraries... $ECHO_C" >&6; } { echo "$as_me:$LINENO: result: $can_build_shared" >&5 echo "${ECHO_T}$can_build_shared" >&6; } ## ## END FIXME ## FIXME: this should be a separate macro ## { echo "$as_me:$LINENO: checking whether to build shared libraries" >&5 echo $ECHO_N "checking whether to build shared libraries... $ECHO_C" >&6; } test "$can_build_shared" = "no" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case "$host_os" in aix3*) test "$enable_shared" = yes && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix4*) if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then test "$enable_shared" = yes && enable_static=no fi ;; esac { echo "$as_me:$LINENO: result: $enable_shared" >&5 echo "${ECHO_T}$enable_shared" >&6; } ## ## END FIXME ## FIXME: this should be a separate macro ## { echo "$as_me:$LINENO: checking whether to build static libraries" >&5 echo $ECHO_N "checking whether to build static libraries... $ECHO_C" >&6; } # Make sure either enable_shared or enable_static is yes. test "$enable_shared" = yes || enable_static=yes { echo "$as_me:$LINENO: result: $enable_static" >&5 echo "${ECHO_T}$enable_static" >&6; } ## ## END FIXME if test "$hardcode_action" = relink; then # Fast installation is not supported enable_fast_install=no elif test "$shlibpath_overrides_runpath" = yes || test "$enable_shared" = no; then # Fast installation is not necessary enable_fast_install=needless fi variables_saved_for_relink="PATH $shlibpath_var $runpath_var" if test "$GCC" = yes; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi if test "x$enable_dlopen" != xyes; then enable_dlopen=unknown enable_dlopen_self=unknown enable_dlopen_self_static=unknown else lt_cv_dlopen=no lt_cv_dlopen_libs= case $host_os in beos*) lt_cv_dlopen="load_add_on" lt_cv_dlopen_libs= lt_cv_dlopen_self=yes ;; cygwin* | mingw* | pw32*) lt_cv_dlopen="LoadLibrary" lt_cv_dlopen_libs= ;; *) { echo "$as_me:$LINENO: checking for shl_load" >&5 echo $ECHO_N "checking for shl_load... $ECHO_C" >&6; } if test "${ac_cv_func_shl_load+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Define shl_load to an innocuous variant, in case declares shl_load. For example, HP-UX 11i declares gettimeofday. */ #define shl_load innocuous_shl_load /* System header to define __stub macros and hopefully few prototypes, which can conflict with char shl_load (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef shl_load /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char shl_load (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined __stub_shl_load || defined __stub___shl_load choke me #endif int main () { return shl_load (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_func_shl_load=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_func_shl_load=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi { echo "$as_me:$LINENO: result: $ac_cv_func_shl_load" >&5 echo "${ECHO_T}$ac_cv_func_shl_load" >&6; } if test $ac_cv_func_shl_load = yes; then lt_cv_dlopen="shl_load" else { echo "$as_me:$LINENO: checking for shl_load in -ldld" >&5 echo $ECHO_N "checking for shl_load in -ldld... $ECHO_C" >&6; } if test "${ac_cv_lib_dld_shl_load+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldld $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char shl_load (); int main () { return shl_load (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_lib_dld_shl_load=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_dld_shl_load=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { echo "$as_me:$LINENO: result: $ac_cv_lib_dld_shl_load" >&5 echo "${ECHO_T}$ac_cv_lib_dld_shl_load" >&6; } if test $ac_cv_lib_dld_shl_load = yes; then lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-dld" else { echo "$as_me:$LINENO: checking for dlopen" >&5 echo $ECHO_N "checking for dlopen... $ECHO_C" >&6; } if test "${ac_cv_func_dlopen+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Define dlopen to an innocuous variant, in case declares dlopen. For example, HP-UX 11i declares gettimeofday. */ #define dlopen innocuous_dlopen /* System header to define __stub macros and hopefully few prototypes, which can conflict with char dlopen (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef dlopen /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dlopen (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined __stub_dlopen || defined __stub___dlopen choke me #endif int main () { return dlopen (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_func_dlopen=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_func_dlopen=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi { echo "$as_me:$LINENO: result: $ac_cv_func_dlopen" >&5 echo "${ECHO_T}$ac_cv_func_dlopen" >&6; } if test $ac_cv_func_dlopen = yes; then lt_cv_dlopen="dlopen" else { echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5 echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6; } if test "${ac_cv_lib_dl_dlopen+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldl $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dlopen (); int main () { return dlopen (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_lib_dl_dlopen=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_dl_dlopen=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5 echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6; } if test $ac_cv_lib_dl_dlopen = yes; then lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" else { echo "$as_me:$LINENO: checking for dlopen in -lsvld" >&5 echo $ECHO_N "checking for dlopen in -lsvld... $ECHO_C" >&6; } if test "${ac_cv_lib_svld_dlopen+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lsvld $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dlopen (); int main () { return dlopen (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_lib_svld_dlopen=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_svld_dlopen=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { echo "$as_me:$LINENO: result: $ac_cv_lib_svld_dlopen" >&5 echo "${ECHO_T}$ac_cv_lib_svld_dlopen" >&6; } if test $ac_cv_lib_svld_dlopen = yes; then lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld" else { echo "$as_me:$LINENO: checking for dld_link in -ldld" >&5 echo $ECHO_N "checking for dld_link in -ldld... $ECHO_C" >&6; } if test "${ac_cv_lib_dld_dld_link+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldld $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dld_link (); int main () { return dld_link (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_lib_dld_dld_link=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_dld_dld_link=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { echo "$as_me:$LINENO: result: $ac_cv_lib_dld_dld_link" >&5 echo "${ECHO_T}$ac_cv_lib_dld_dld_link" >&6; } if test $ac_cv_lib_dld_dld_link = yes; then lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-dld" fi fi fi fi fi fi ;; esac if test "x$lt_cv_dlopen" != xno; then enable_dlopen=yes else enable_dlopen=no fi case $lt_cv_dlopen in dlopen) save_CPPFLAGS="$CPPFLAGS" test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" save_LDFLAGS="$LDFLAGS" eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" save_LIBS="$LIBS" LIBS="$lt_cv_dlopen_libs $LIBS" { echo "$as_me:$LINENO: checking whether a program can dlopen itself" >&5 echo $ECHO_N "checking whether a program can dlopen itself... $ECHO_C" >&6; } if test "${lt_cv_dlopen_self+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test "$cross_compiling" = yes; then : lt_cv_dlopen_self=cross else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext < #endif #include #ifdef RTLD_GLOBAL # define LT_DLGLOBAL RTLD_GLOBAL #else # ifdef DL_GLOBAL # define LT_DLGLOBAL DL_GLOBAL # else # define LT_DLGLOBAL 0 # endif #endif /* We may have to define LT_DLLAZY_OR_NOW in the command line if we find out it does not work in some platform. */ #ifndef LT_DLLAZY_OR_NOW # ifdef RTLD_LAZY # define LT_DLLAZY_OR_NOW RTLD_LAZY # else # ifdef DL_LAZY # define LT_DLLAZY_OR_NOW DL_LAZY # else # ifdef RTLD_NOW # define LT_DLLAZY_OR_NOW RTLD_NOW # else # ifdef DL_NOW # define LT_DLLAZY_OR_NOW DL_NOW # else # define LT_DLLAZY_OR_NOW 0 # endif # endif # endif # endif #endif #ifdef __cplusplus extern "C" void exit (int); #endif void fnord() { int i=42;} int main () { void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); int status = $lt_dlunknown; if (self) { if (dlsym (self,"fnord")) status = $lt_dlno_uscore; else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; /* dlclose (self); */ } exit (status); } EOF if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then (./conftest; exit; ) 2>/dev/null lt_status=$? case x$lt_status in x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;; x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;; x$lt_unknown|x*) lt_cv_dlopen_self=no ;; esac else : # compilation failed lt_cv_dlopen_self=no fi fi rm -fr conftest* fi { echo "$as_me:$LINENO: result: $lt_cv_dlopen_self" >&5 echo "${ECHO_T}$lt_cv_dlopen_self" >&6; } if test "x$lt_cv_dlopen_self" = xyes; then LDFLAGS="$LDFLAGS $link_static_flag" { echo "$as_me:$LINENO: checking whether a statically linked program can dlopen itself" >&5 echo $ECHO_N "checking whether a statically linked program can dlopen itself... $ECHO_C" >&6; } if test "${lt_cv_dlopen_self_static+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test "$cross_compiling" = yes; then : lt_cv_dlopen_self_static=cross else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext < #endif #include #ifdef RTLD_GLOBAL # define LT_DLGLOBAL RTLD_GLOBAL #else # ifdef DL_GLOBAL # define LT_DLGLOBAL DL_GLOBAL # else # define LT_DLGLOBAL 0 # endif #endif /* We may have to define LT_DLLAZY_OR_NOW in the command line if we find out it does not work in some platform. */ #ifndef LT_DLLAZY_OR_NOW # ifdef RTLD_LAZY # define LT_DLLAZY_OR_NOW RTLD_LAZY # else # ifdef DL_LAZY # define LT_DLLAZY_OR_NOW DL_LAZY # else # ifdef RTLD_NOW # define LT_DLLAZY_OR_NOW RTLD_NOW # else # ifdef DL_NOW # define LT_DLLAZY_OR_NOW DL_NOW # else # define LT_DLLAZY_OR_NOW 0 # endif # endif # endif # endif #endif #ifdef __cplusplus extern "C" void exit (int); #endif void fnord() { int i=42;} int main () { void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); int status = $lt_dlunknown; if (self) { if (dlsym (self,"fnord")) status = $lt_dlno_uscore; else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; /* dlclose (self); */ } exit (status); } EOF if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then (./conftest; exit; ) 2>/dev/null lt_status=$? case x$lt_status in x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;; x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;; x$lt_unknown|x*) lt_cv_dlopen_self_static=no ;; esac else : # compilation failed lt_cv_dlopen_self_static=no fi fi rm -fr conftest* fi { echo "$as_me:$LINENO: result: $lt_cv_dlopen_self_static" >&5 echo "${ECHO_T}$lt_cv_dlopen_self_static" >&6; } fi CPPFLAGS="$save_CPPFLAGS" LDFLAGS="$save_LDFLAGS" LIBS="$save_LIBS" ;; esac case $lt_cv_dlopen_self in yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; *) enable_dlopen_self=unknown ;; esac case $lt_cv_dlopen_self_static in yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; *) enable_dlopen_self_static=unknown ;; esac fi ## FIXME: this should be a separate macro ## if test "$enable_shared" = yes && test "$GCC" = yes; then case $archive_cmds in *'~'*) # FIXME: we may have to deal with multi-command sequences. ;; '$CC '*) # Test whether the compiler implicitly links with -lc since on some # systems, -lgcc has to come before -lc. If gcc already passes -lc # to ld, don't add -lc before -lgcc. { echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5 echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6; } if test "${lt_cv_archive_cmds_need_lc+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else $rm conftest* echo 'static int dummy;' > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then soname=conftest lib=conftest libobjs=conftest.$ac_objext deplibs= wl=$lt_cv_prog_cc_wl compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest save_allow_undefined_flag=$allow_undefined_flag allow_undefined_flag= if { (eval echo "$as_me:$LINENO: \"$archive_cmds 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5 (eval $archive_cmds 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } then lt_cv_archive_cmds_need_lc=no else lt_cv_archive_cmds_need_lc=yes fi allow_undefined_flag=$save_allow_undefined_flag else cat conftest.err 1>&5 fi fi { echo "$as_me:$LINENO: result: $lt_cv_archive_cmds_need_lc" >&5 echo "${ECHO_T}$lt_cv_archive_cmds_need_lc" >&6; } ;; esac fi need_lc=${lt_cv_archive_cmds_need_lc-yes} ## ## END FIXME ## FIXME: this should be a separate macro ## # The second clause should only fire when bootstrapping the # libtool distribution, otherwise you forgot to ship ltmain.sh # with your package, and you will get complaints that there are # no rules to generate ltmain.sh. if test -f "$ltmain"; then : else # If there is no Makefile yet, we rely on a make rule to execute # `config.status --recheck' to rerun these tests and create the # libtool script then. ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` if test -f "$ltmain_in"; then test -f Makefile && make "$ltmain" fi fi if test -f "$ltmain"; then trap "$rm \"${ofile}T\"; exit 1" 1 2 15 $rm -f "${ofile}T" echo creating $ofile # Now quote all the things that may contain metacharacters while being # careful not to overquote the AC_SUBSTed values. We take copies of the # variables and quote the copies for generation of the libtool script. for var in echo old_CC old_CFLAGS SED \ AR AR_FLAGS CC LD LN_S NM SHELL STRIP \ reload_flag reload_cmds wl \ pic_flag link_static_flag no_builtin_flag export_dynamic_flag_spec \ thread_safe_flag_spec whole_archive_flag_spec libname_spec \ library_names_spec soname_spec \ RANLIB old_archive_cmds old_archive_from_new_cmds old_postinstall_cmds \ old_postuninstall_cmds archive_cmds archive_expsym_cmds postinstall_cmds \ postuninstall_cmds extract_expsyms_cmds old_archive_from_expsyms_cmds \ old_striplib striplib file_magic_cmd export_symbols_cmds \ deplibs_check_method allow_undefined_flag no_undefined_flag \ finish_cmds finish_eval global_symbol_pipe global_symbol_to_cdecl \ global_symbol_to_c_name_address \ hardcode_libdir_flag_spec hardcode_libdir_separator \ sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ compiler_c_o compiler_o_lo need_locks exclude_expsyms include_expsyms; do case $var in reload_cmds | old_archive_cmds | old_archive_from_new_cmds | \ old_postinstall_cmds | old_postuninstall_cmds | \ export_symbols_cmds | archive_cmds | archive_expsym_cmds | \ extract_expsyms_cmds | old_archive_from_expsyms_cmds | \ postinstall_cmds | postuninstall_cmds | \ finish_cmds | sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) # Double-quote double-evaled strings. eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" ;; *) eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" ;; esac done cat <<__EOF__ > "${ofile}T" #! $SHELL # `$echo "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services. # Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP) # NOTE: Changes made to this file will be lost: look at ltmain.sh. # # Copyright (C) 1996-2000 Free Software Foundation, Inc. # Originally by Gordon Matzigkeit , 1996 # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # A sed that does not truncate output. SED=$lt_SED # Sed that helps us avoid accidentally triggering echo(1) options like -n. Xsed="${SED} -e s/^X//" # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. if test "X\${CDPATH+set}" = Xset; then CDPATH=:; export CDPATH; fi # ### BEGIN LIBTOOL CONFIG # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # Shell to use when invoking shell scripts. SHELL=$lt_SHELL # Whether or not to build shared libraries. build_libtool_libs=$enable_shared # Whether or not to build static libraries. build_old_libs=$enable_static # Whether or not to add -lc for building shared libraries. build_libtool_need_lc=$need_lc # Whether or not to optimize for fast installation. fast_install=$enable_fast_install # The host system. host_alias=$host_alias host=$host # An echo program that does not interpret backslashes. echo=$lt_echo # The archiver. AR=$lt_AR AR_FLAGS=$lt_AR_FLAGS # The default C compiler. CC=$lt_CC # Is the compiler the GNU C compiler? with_gcc=$GCC # The linker used to build libraries. LD=$lt_LD # Whether we need hard or soft links. LN_S=$lt_LN_S # A BSD-compatible nm program. NM=$lt_NM # A symbol stripping program STRIP=$lt_STRIP # Used to examine libraries when file_magic_cmd begins "file" MAGIC_CMD=$MAGIC_CMD # Used on cygwin: DLL creation program. DLLTOOL="$DLLTOOL" # Used on cygwin: object dumper. OBJDUMP="$OBJDUMP" # Used on cygwin: assembler. AS="$AS" # The name of the directory that contains temporary libtool files. objdir=$objdir # How to create reloadable object files. reload_flag=$lt_reload_flag reload_cmds=$lt_reload_cmds # How to pass a linker flag through the compiler. wl=$lt_wl # Object file suffix (normally "o"). objext="$ac_objext" # Old archive suffix (normally "a"). libext="$libext" # Executable file suffix (normally ""). exeext="$exeext" # Additional compiler flags for building library objects. pic_flag=$lt_pic_flag pic_mode=$pic_mode # Does compiler simultaneously support -c and -o options? compiler_c_o=$lt_compiler_c_o # Can we write directly to a .lo ? compiler_o_lo=$lt_compiler_o_lo # Must we lock files when doing compilation ? need_locks=$lt_need_locks # Do we need the lib prefix for modules? need_lib_prefix=$need_lib_prefix # Do we need a version for libraries? need_version=$need_version # Whether dlopen is supported. dlopen_support=$enable_dlopen # Whether dlopen of programs is supported. dlopen_self=$enable_dlopen_self # Whether dlopen of statically linked programs is supported. dlopen_self_static=$enable_dlopen_self_static # Compiler flag to prevent dynamic linking. link_static_flag=$lt_link_static_flag # Compiler flag to turn off builtin functions. no_builtin_flag=$lt_no_builtin_flag # Compiler flag to allow reflexive dlopens. export_dynamic_flag_spec=$lt_export_dynamic_flag_spec # Compiler flag to generate shared objects directly from archives. whole_archive_flag_spec=$lt_whole_archive_flag_spec # Compiler flag to generate thread-safe objects. thread_safe_flag_spec=$lt_thread_safe_flag_spec # Library versioning type. version_type=$version_type # Format of library name prefix. libname_spec=$lt_libname_spec # List of archive names. First name is the real one, the rest are links. # The last name is the one that the linker finds with -lNAME. library_names_spec=$lt_library_names_spec # The coded name of the library, if different from the real name. soname_spec=$lt_soname_spec # Commands used to build and install an old-style archive. RANLIB=$lt_RANLIB old_archive_cmds=$lt_old_archive_cmds old_postinstall_cmds=$lt_old_postinstall_cmds old_postuninstall_cmds=$lt_old_postuninstall_cmds # Create an old-style archive from a shared archive. old_archive_from_new_cmds=$lt_old_archive_from_new_cmds # Create a temporary old-style archive to link instead of a shared archive. old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds # Commands used to build and install a shared archive. archive_cmds=$lt_archive_cmds archive_expsym_cmds=$lt_archive_expsym_cmds postinstall_cmds=$lt_postinstall_cmds postuninstall_cmds=$lt_postuninstall_cmds # Commands to strip libraries. old_striplib=$lt_old_striplib striplib=$lt_striplib # Method to check whether dependent libraries are shared objects. deplibs_check_method=$lt_deplibs_check_method # Command to use when deplibs_check_method == file_magic. file_magic_cmd=$lt_file_magic_cmd # Flag that allows shared libraries with undefined symbols to be built. allow_undefined_flag=$lt_allow_undefined_flag # Flag that forces no undefined symbols. no_undefined_flag=$lt_no_undefined_flag # Commands used to finish a libtool library installation in a directory. finish_cmds=$lt_finish_cmds # Same as above, but a single script fragment to be evaled but not shown. finish_eval=$lt_finish_eval # Take the output of nm and produce a listing of raw symbols and C names. global_symbol_pipe=$lt_global_symbol_pipe # Transform the output of nm in a proper C declaration global_symbol_to_cdecl=$lt_global_symbol_to_cdecl # Transform the output of nm in a C name address pair global_symbol_to_c_name_address=$lt_global_symbol_to_c_name_address # This is the shared library runtime path variable. runpath_var=$runpath_var # This is the shared library path variable. shlibpath_var=$shlibpath_var # Is shlibpath searched before the hard-coded library search path? shlibpath_overrides_runpath=$shlibpath_overrides_runpath # How to hardcode a shared library path into an executable. hardcode_action=$hardcode_action # Whether we should hardcode library paths into libraries. hardcode_into_libs=$hardcode_into_libs # Flag to hardcode \$libdir into a binary during linking. # This must work even if \$libdir does not exist. hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec # Whether we need a single -rpath flag with a separated argument. hardcode_libdir_separator=$lt_hardcode_libdir_separator # Set to yes if using DIR/libNAME.so during linking hardcodes DIR into the # resulting binary. hardcode_direct=$hardcode_direct # Set to yes if using the -LDIR flag during linking hardcodes DIR into the # resulting binary. hardcode_minus_L=$hardcode_minus_L # Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into # the resulting binary. hardcode_shlibpath_var=$hardcode_shlibpath_var # Variables whose values should be saved in libtool wrapper scripts and # restored at relink time. variables_saved_for_relink="$variables_saved_for_relink" # Whether libtool must link a program against all its dependency libraries. link_all_deplibs=$link_all_deplibs # Compile-time system search path for libraries sys_lib_search_path_spec=$lt_sys_lib_search_path_spec # Run-time system search path for libraries sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec # Fix the shell variable \$srcfile for the compiler. fix_srcfile_path="$fix_srcfile_path" # Set to yes if exported symbols are required. always_export_symbols=$always_export_symbols # The commands to list exported symbols. export_symbols_cmds=$lt_export_symbols_cmds # The commands to extract the exported symbol list from a shared archive. extract_expsyms_cmds=$lt_extract_expsyms_cmds # Symbols that should not be listed in the preloaded symbols. exclude_expsyms=$lt_exclude_expsyms # Symbols that must always be exported. include_expsyms=$lt_include_expsyms # ### END LIBTOOL CONFIG __EOF__ case $host_os in aix3*) cat <<\EOF >> "${ofile}T" # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test "X${COLLECT_NAMES+set}" != Xset; then COLLECT_NAMES= export COLLECT_NAMES fi EOF ;; esac case $host_os in cygwin* | mingw* | pw32* | os2*) cat <<'EOF' >> "${ofile}T" # This is a source program that is used to create dlls on Windows # Don't remove nor modify the starting and closing comments # /* ltdll.c starts here */ # #define WIN32_LEAN_AND_MEAN # #include # #undef WIN32_LEAN_AND_MEAN # #include # # #ifndef __CYGWIN__ # # ifdef __CYGWIN32__ # # define __CYGWIN__ __CYGWIN32__ # # endif # #endif # # #ifdef __cplusplus # extern "C" { # #endif # BOOL APIENTRY DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved); # #ifdef __cplusplus # } # #endif # # #ifdef __CYGWIN__ # #include # DECLARE_CYGWIN_DLL( DllMain ); # #endif # HINSTANCE __hDllInstance_base; # # BOOL APIENTRY # DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved) # { # __hDllInstance_base = hInst; # return TRUE; # } # /* ltdll.c ends here */ # This is a source program that is used to create import libraries # on Windows for dlls which lack them. Don't remove nor modify the # starting and closing comments # /* impgen.c starts here */ # /* Copyright (C) 1999-2000 Free Software Foundation, Inc. # # This file is part of GNU libtool. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # */ # # #include /* for printf() */ # #include /* for open(), lseek(), read() */ # #include /* for O_RDONLY, O_BINARY */ # #include /* for strdup() */ # # /* O_BINARY isn't required (or even defined sometimes) under Unix */ # #ifndef O_BINARY # #define O_BINARY 0 # #endif # # static unsigned int # pe_get16 (fd, offset) # int fd; # int offset; # { # unsigned char b[2]; # lseek (fd, offset, SEEK_SET); # read (fd, b, 2); # return b[0] + (b[1]<<8); # } # # static unsigned int # pe_get32 (fd, offset) # int fd; # int offset; # { # unsigned char b[4]; # lseek (fd, offset, SEEK_SET); # read (fd, b, 4); # return b[0] + (b[1]<<8) + (b[2]<<16) + (b[3]<<24); # } # # static unsigned int # pe_as32 (ptr) # void *ptr; # { # unsigned char *b = ptr; # return b[0] + (b[1]<<8) + (b[2]<<16) + (b[3]<<24); # } # # int # main (argc, argv) # int argc; # char *argv[]; # { # int dll; # unsigned long pe_header_offset, opthdr_ofs, num_entries, i; # unsigned long export_rva, export_size, nsections, secptr, expptr; # unsigned long name_rvas, nexp; # unsigned char *expdata, *erva; # char *filename, *dll_name; # # filename = argv[1]; # # dll = open(filename, O_RDONLY|O_BINARY); # if (dll < 1) # return 1; # # dll_name = filename; # # for (i=0; filename[i]; i++) # if (filename[i] == '/' || filename[i] == '\\' || filename[i] == ':') # dll_name = filename + i +1; # # pe_header_offset = pe_get32 (dll, 0x3c); # opthdr_ofs = pe_header_offset + 4 + 20; # num_entries = pe_get32 (dll, opthdr_ofs + 92); # # if (num_entries < 1) /* no exports */ # return 1; # # export_rva = pe_get32 (dll, opthdr_ofs + 96); # export_size = pe_get32 (dll, opthdr_ofs + 100); # nsections = pe_get16 (dll, pe_header_offset + 4 +2); # secptr = (pe_header_offset + 4 + 20 + # pe_get16 (dll, pe_header_offset + 4 + 16)); # # expptr = 0; # for (i = 0; i < nsections; i++) # { # char sname[8]; # unsigned long secptr1 = secptr + 40 * i; # unsigned long vaddr = pe_get32 (dll, secptr1 + 12); # unsigned long vsize = pe_get32 (dll, secptr1 + 16); # unsigned long fptr = pe_get32 (dll, secptr1 + 20); # lseek(dll, secptr1, SEEK_SET); # read(dll, sname, 8); # if (vaddr <= export_rva && vaddr+vsize > export_rva) # { # expptr = fptr + (export_rva - vaddr); # if (export_rva + export_size > vaddr + vsize) # export_size = vsize - (export_rva - vaddr); # break; # } # } # # expdata = (unsigned char*)malloc(export_size); # lseek (dll, expptr, SEEK_SET); # read (dll, expdata, export_size); # erva = expdata - export_rva; # # nexp = pe_as32 (expdata+24); # name_rvas = pe_as32 (expdata+32); # # printf ("EXPORTS\n"); # for (i = 0; i> "${ofile}T" || (rm -f "${ofile}T"; exit 1) mv -f "${ofile}T" "$ofile" || \ (rm -f "$ofile" && cp "${ofile}T" "$ofile" && rm -f "${ofile}T") chmod +x "$ofile" fi ## ## END FIXME # This can be used to rebuild libtool when needed LIBTOOL_DEPS="$ac_aux_dir/ltmain.sh" # Always use our own libtool. LIBTOOL='$(SHELL) $(top_builddir)/libtool' # Prevent multiple expansion if test "${DOXYGEN}" = ''; then # Extract the first word of "doxygen", so it can be a program name with args. set dummy doxygen; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_path_DOXYGEN+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else case $DOXYGEN in [\\/]* | ?:[\\/]*) ac_cv_path_DOXYGEN="$DOXYGEN" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_DOXYGEN="$as_dir/$ac_word$ac_exec_ext" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_path_DOXYGEN" && ac_cv_path_DOXYGEN="false" ;; esac fi DOXYGEN=$ac_cv_path_DOXYGEN if test -n "$DOXYGEN"; then { echo "$as_me:$LINENO: result: $DOXYGEN" >&5 echo "${ECHO_T}$DOXYGEN" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi fi if test "${CURL_CONFIG}" = ''; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}curl-config", so it can be a program name with args. set dummy ${ac_tool_prefix}curl-config; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_path_CURL_CONFIG+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else case $CURL_CONFIG in [\\/]* | ?:[\\/]*) ac_cv_path_CURL_CONFIG="$CURL_CONFIG" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_CURL_CONFIG="$as_dir/$ac_word$ac_exec_ext" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi CURL_CONFIG=$ac_cv_path_CURL_CONFIG if test -n "$CURL_CONFIG"; then { echo "$as_me:$LINENO: result: $CURL_CONFIG" >&5 echo "${ECHO_T}$CURL_CONFIG" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi fi if test -z "$ac_cv_path_CURL_CONFIG"; then ac_pt_CURL_CONFIG=$CURL_CONFIG # Extract the first word of "curl-config", so it can be a program name with args. set dummy curl-config; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_path_ac_pt_CURL_CONFIG+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else case $ac_pt_CURL_CONFIG in [\\/]* | ?:[\\/]*) ac_cv_path_ac_pt_CURL_CONFIG="$ac_pt_CURL_CONFIG" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_ac_pt_CURL_CONFIG="$as_dir/$ac_word$ac_exec_ext" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi ac_pt_CURL_CONFIG=$ac_cv_path_ac_pt_CURL_CONFIG if test -n "$ac_pt_CURL_CONFIG"; then { echo "$as_me:$LINENO: result: $ac_pt_CURL_CONFIG" >&5 echo "${ECHO_T}$ac_pt_CURL_CONFIG" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi if test "x$ac_pt_CURL_CONFIG" = x; then CURL_CONFIG="false" else case $cross_compiling:$ac_tool_warned in yes:) { echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&5 echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&2;} ac_tool_warned=yes ;; esac CURL_CONFIG=$ac_pt_CURL_CONFIG fi else CURL_CONFIG="$ac_cv_path_CURL_CONFIG" fi fi ############################################################################### # Checks for libraries and functions for ac_func in alloca mkdtemp mkstemp strsep do as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` { echo "$as_me:$LINENO: checking for $ac_func" >&5 echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; } if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Define $ac_func to an innocuous variant, in case declares $ac_func. For example, HP-UX 11i declares gettimeofday. */ #define $ac_func innocuous_$ac_func /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef $ac_func /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char $ac_func (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined __stub_$ac_func || defined __stub___$ac_func choke me #endif int main () { return $ac_func (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then eval "$as_ac_var=yes" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_var=no" fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi ac_res=`eval echo '${'$as_ac_var'}'` { echo "$as_me:$LINENO: result: $ac_res" >&5 echo "${ECHO_T}$ac_res" >&6; } if test `eval echo '${'$as_ac_var'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF else case " $LIBOBJS " in *" $ac_func.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS $ac_func.$ac_objext" ;; esac fi done CPPFLAGS="${CPPFLAGS} -I\${top_srcdir}/portability" libportability="\${top_builddir}/portability/libportability.la" ac_header_dirent=no for ac_hdr in dirent.h sys/ndir.h sys/dir.h ndir.h; do as_ac_Header=`echo "ac_cv_header_dirent_$ac_hdr" | $as_tr_sh` { echo "$as_me:$LINENO: checking for $ac_hdr that defines DIR" >&5 echo $ECHO_N "checking for $ac_hdr that defines DIR... $ECHO_C" >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include <$ac_hdr> int main () { if ((DIR *) 0) return 0; ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then eval "$as_ac_Header=yes" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_Header=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi ac_res=`eval echo '${'$as_ac_Header'}'` { echo "$as_me:$LINENO: result: $ac_res" >&5 echo "${ECHO_T}$ac_res" >&6; } if test `eval echo '${'$as_ac_Header'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_hdr" | $as_tr_cpp` 1 _ACEOF ac_header_dirent=$ac_hdr; break fi done # Two versions of opendir et al. are in -ldir and -lx on SCO Xenix. if test $ac_header_dirent = dirent.h; then { echo "$as_me:$LINENO: checking for library containing opendir" >&5 echo $ECHO_N "checking for library containing opendir... $ECHO_C" >&6; } if test "${ac_cv_search_opendir+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_func_search_save_LIBS=$LIBS cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char opendir (); int main () { return opendir (); ; return 0; } _ACEOF for ac_lib in '' dir; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_search_opendir=$ac_res else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext if test "${ac_cv_search_opendir+set}" = set; then break fi done if test "${ac_cv_search_opendir+set}" = set; then : else ac_cv_search_opendir=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi { echo "$as_me:$LINENO: result: $ac_cv_search_opendir" >&5 echo "${ECHO_T}$ac_cv_search_opendir" >&6; } ac_res=$ac_cv_search_opendir if test "$ac_res" != no; then test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" fi else { echo "$as_me:$LINENO: checking for library containing opendir" >&5 echo $ECHO_N "checking for library containing opendir... $ECHO_C" >&6; } if test "${ac_cv_search_opendir+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_func_search_save_LIBS=$LIBS cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char opendir (); int main () { return opendir (); ; return 0; } _ACEOF for ac_lib in '' x; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_search_opendir=$ac_res else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext if test "${ac_cv_search_opendir+set}" = set; then break fi done if test "${ac_cv_search_opendir+set}" = set; then : else ac_cv_search_opendir=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi { echo "$as_me:$LINENO: result: $ac_cv_search_opendir" >&5 echo "${ECHO_T}$ac_cv_search_opendir" >&6; } ac_res=$ac_cv_search_opendir if test "$ac_res" != no; then test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" fi fi if test "${ac_cv_header_expat_h+set}" = set; then { echo "$as_me:$LINENO: checking for expat.h" >&5 echo $ECHO_N "checking for expat.h... $ECHO_C" >&6; } if test "${ac_cv_header_expat_h+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 fi { echo "$as_me:$LINENO: result: $ac_cv_header_expat_h" >&5 echo "${ECHO_T}$ac_cv_header_expat_h" >&6; } else # Is the header compilable? { echo "$as_me:$LINENO: checking expat.h usability" >&5 echo $ECHO_N "checking expat.h usability... $ECHO_C" >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6; } # Is the header present? { echo "$as_me:$LINENO: checking expat.h presence" >&5 echo $ECHO_N "checking expat.h presence... $ECHO_C" >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext { echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) { echo "$as_me:$LINENO: WARNING: expat.h: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: expat.h: accepted by the compiler, rejected by the preprocessor!" >&2;} { echo "$as_me:$LINENO: WARNING: expat.h: proceeding with the compiler's result" >&5 echo "$as_me: WARNING: expat.h: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { echo "$as_me:$LINENO: WARNING: expat.h: present but cannot be compiled" >&5 echo "$as_me: WARNING: expat.h: present but cannot be compiled" >&2;} { echo "$as_me:$LINENO: WARNING: expat.h: check for missing prerequisite headers?" >&5 echo "$as_me: WARNING: expat.h: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: expat.h: see the Autoconf documentation" >&5 echo "$as_me: WARNING: expat.h: see the Autoconf documentation" >&2;} { echo "$as_me:$LINENO: WARNING: expat.h: section \"Present But Cannot Be Compiled\"" >&5 echo "$as_me: WARNING: expat.h: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: expat.h: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: expat.h: proceeding with the preprocessor's result" >&2;} { echo "$as_me:$LINENO: WARNING: expat.h: in the future, the compiler will take precedence" >&5 echo "$as_me: WARNING: expat.h: in the future, the compiler will take precedence" >&2;} ( cat <<\_ASBOX ## ------------------------------------------- ## ## Report this to debian-boot@lists.debian.org ## ## ------------------------------------------- ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac { echo "$as_me:$LINENO: checking for expat.h" >&5 echo $ECHO_N "checking for expat.h... $ECHO_C" >&6; } if test "${ac_cv_header_expat_h+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_cv_header_expat_h=$ac_header_preproc fi { echo "$as_me:$LINENO: result: $ac_cv_header_expat_h" >&5 echo "${ECHO_T}$ac_cv_header_expat_h" >&6; } fi if test $ac_cv_header_expat_h = yes; then : else { { echo "$as_me:$LINENO: error: Can't find expat.h." >&5 echo "$as_me: error: Can't find expat.h." >&2;} { (exit 1); exit 1; }; } fi { echo "$as_me:$LINENO: checking for XML_ParserCreate in -lexpat" >&5 echo $ECHO_N "checking for XML_ParserCreate in -lexpat... $ECHO_C" >&6; } if test "${ac_cv_lib_expat_XML_ParserCreate+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lexpat $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char XML_ParserCreate (); int main () { return XML_ParserCreate (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_lib_expat_XML_ParserCreate=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_expat_XML_ParserCreate=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { echo "$as_me:$LINENO: result: $ac_cv_lib_expat_XML_ParserCreate" >&5 echo "${ECHO_T}$ac_cv_lib_expat_XML_ParserCreate" >&6; } if test $ac_cv_lib_expat_XML_ParserCreate = yes; then cat >>confdefs.h <<_ACEOF #define HAVE_LIBEXPAT 1 _ACEOF LIBS="-lexpat $LIBS" else { { echo "$as_me:$LINENO: error: Can't find expat library." >&5 echo "$as_me: error: Can't find expat library." >&2;} { (exit 1); exit 1; }; } fi # curl if test "${ENABLE_CURL}" '!=' "no"; then cat >>confdefs.h <<\_ACEOF #define HAVE_LIBCURL 1 _ACEOF # Unfortunately, curl-config --libs returns both LDFLAGS and LIBS # and it would be difficult to separate them. Just dump it all into # LIBS. { echo "$as_me:$LINENO: checking for curl libs" >&5 echo $ECHO_N "checking for curl libs... $ECHO_C" >&6; } curl_libs=`${CURL_CONFIG} --libs` if test $? -ne 0; then { { echo "$as_me:$LINENO: error: curl-config --libs failed." >&5 echo "$as_me: error: curl-config --libs failed." >&2;} { (exit 1); exit 1; }; } fi # More curl workarounds. Adding the system include path with -I and/or # system library path with -L causes problems on some systems. curl_libs=`echo ${curl_libs} | sed -e 's|-L/usr/lib||g'` { echo "$as_me:$LINENO: result: ${curl_libs}" >&5 echo "${ECHO_T}${curl_libs}" >&6; } # Yet more curl madness. curl-config --cflags returns CPPFLAGS only, so # let's put it into CPPFLAGS where it belongs. { echo "$as_me:$LINENO: checking for curl cflags" >&5 echo $ECHO_N "checking for curl cflags... $ECHO_C" >&6; } curl_cflags=`${CURL_CONFIG} --cflags` if test $? -ne 0; then { { echo "$as_me:$LINENO: error: curl-config --cflags failed." >&5 echo "$as_me: error: curl-config --cflags failed." >&2;} { (exit 1); exit 1; }; } fi curl_cflags=`echo ${curl_cflags} | sed -e 's|-I/usr/include||g'` { echo "$as_me:$LINENO: result: ${curl_cflags}" >&5 echo "${ECHO_T}${curl_cflags}" >&6; } LIBS="${LIBS} ${curl_libs}" CPPFLAGS="${CPPFLAGS} ${curl_cflags}" fi # check # Check whether --with-check was given. if test "${with_check+set}" = set; then withval=$with_check; fi if test "x$with_check" != x; then CHECK_CFLAGS="-I$with_check/include" CHECK_LIBS="-L$with_check/lib -lcheck" else CHECK_CFLAGS="" CHECK_LIBS="-lcheck" fi min_check_version=0.8.2 { echo "$as_me:$LINENO: checking for check - version >= $min_check_version" >&5 echo $ECHO_N "checking for check - version >= $min_check_version... $ECHO_C" >&6; } ac_save_CFLAGS="$CFLAGS" ac_save_LIBS="$LIBS" CFLAGS="$CFLAGS $CHECK_CFLAGS" LIBS="$CHECK_LIBS $LIBS" rm -f conf.check-test if test "$cross_compiling" = yes; then echo $ac_n "Cross compiling; assumed OK... $ac_c" else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include #include int main () { int major, minor, micro; char *tmp_version; system ("touch conf.check-test"); /* HP/UX 9 (%@#!) writes to sscanf strings */ tmp_version = strdup("$min_check_version"); if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, µ) != 3) { printf("%s, bad version string\n", "$min_check_version"); return 1; } if ((CHECK_MAJOR_VERSION != check_major_version) || (CHECK_MINOR_VERSION != check_minor_version) || (CHECK_MICRO_VERSION != check_micro_version)) { printf("\n*** The check header file (version %d.%d.%d) does not match\n", CHECK_MAJOR_VERSION, CHECK_MINOR_VERSION, CHECK_MICRO_VERSION); printf("*** the check library (version %d.%d.%d).\n", check_major_version, check_minor_version, check_micro_version); return 1; } if ((check_major_version > major) || ((check_major_version == major) && (check_minor_version > minor)) || ((check_major_version == major) && (check_minor_version == minor) && (check_micro_version >= micro))) { return 0; } else { printf("\n*** An old version of check (%d.%d.%d) was found.\n", check_major_version, check_minor_version, check_micro_version); printf("*** You need a version of check that is at least %d.%d.%d.\n", major, minor, micro); printf("***\n"); printf("*** If you have already installed a sufficiently new version, this error\n"); printf("*** probably means that the wrong copy of the check library and header\n"); printf("*** file is being found. Rerun configure with the --with-check=PATH option\n"); printf("*** to specify the prefix where the correct version was installed.\n"); } return 1; } _ACEOF rm -f conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else echo "$as_me: program exited with status $ac_status" >&5 echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) no_check=yes fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi CFLAGS="$ac_save_CFLAGS" LIBS="$ac_save_LIBS" if test "x$no_check" = x ; then { echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6; } : else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } if test -f conf.check-test ; then : else echo "*** Could not run check test program, checking why..." CFLAGS="$CFLAGS $CHECK_CFLAGS" LIBS="$CHECK_LIBS $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include #include int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then echo "*** The test program compiled, but did not run. This usually means" echo "*** that the run-time linker is not finding check. You'll need to set your" echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point" echo "*** to the installed location. Also, make sure you have run ldconfig if that" echo "*** is required on your system." echo "***" echo "*** If you have an old version installed, it is best to remove it, although" echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 echo "*** The test program failed to compile or link. See the file config.log for" echo "*** the exact error that occurred." fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext CFLAGS="$ac_save_CFLAGS" LIBS="$ac_save_LIBS" fi CHECK_CFLAGS="" CHECK_LIBS="" rm -f conf.check-test true fi rm -f conf.check-test if test "x${CHECK_LIBS}" = "x"; then # Try to reassure the user after check's stupid error message. echo "You will not be able to run the test suite, no worries." fi ############################################################################### # Miscellaneous { echo "$as_me:$LINENO: checking whether byte ordering is bigendian" >&5 echo $ECHO_N "checking whether byte ordering is bigendian... $ECHO_C" >&6; } if test "${ac_cv_c_bigendian+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else # See if sys/param.h defines the BYTE_ORDER macro. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include int main () { #if ! (defined BYTE_ORDER && defined BIG_ENDIAN && defined LITTLE_ENDIAN \ && BYTE_ORDER && BIG_ENDIAN && LITTLE_ENDIAN) bogus endian macros #endif ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then # It does; now see whether it defined to BIG_ENDIAN or not. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include int main () { #if BYTE_ORDER != BIG_ENDIAN not big endian #endif ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_c_bigendian=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_c_bigendian=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # It does not; compile a test program. if test "$cross_compiling" = yes; then # try to guess the endianness by grepping values into an object file ac_cv_c_bigendian=unknown cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ short int ascii_mm[] = { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 }; short int ascii_ii[] = { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 }; void _ascii () { char *s = (char *) ascii_mm; s = (char *) ascii_ii; } short int ebcdic_ii[] = { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 }; short int ebcdic_mm[] = { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 }; void _ebcdic () { char *s = (char *) ebcdic_mm; s = (char *) ebcdic_ii; } int main () { _ascii (); _ebcdic (); ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then if grep BIGenDianSyS conftest.$ac_objext >/dev/null ; then ac_cv_c_bigendian=yes fi if grep LiTTleEnDian conftest.$ac_objext >/dev/null ; then if test "$ac_cv_c_bigendian" = unknown; then ac_cv_c_bigendian=no else # finding both strings is unlikely to happen, but who knows? ac_cv_c_bigendian=unknown fi fi else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default int main () { /* Are we little or big endian? From Harbison&Steele. */ union { long int l; char c[sizeof (long int)]; } u; u.l = 1; return u.c[sizeof (long int) - 1] == 1; ; return 0; } _ACEOF rm -f conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_c_bigendian=no else echo "$as_me: program exited with status $ac_status" >&5 echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) ac_cv_c_bigendian=yes fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { echo "$as_me:$LINENO: result: $ac_cv_c_bigendian" >&5 echo "${ECHO_T}$ac_cv_c_bigendian" >&6; } case $ac_cv_c_bigendian in yes) cat >>confdefs.h <<\_ACEOF #define WORDS_BIGENDIAN 1 _ACEOF ;; no) ;; *) { { echo "$as_me:$LINENO: error: unknown endianness presetting ac_cv_c_bigendian=no (or yes) will help" >&5 echo "$as_me: error: unknown endianness presetting ac_cv_c_bigendian=no (or yes) will help" >&2;} { (exit 1); exit 1; }; } ;; esac if test ${datadir} = '${prefix}/share'; then if test "${prefix}" = "NONE"; then DATADIR="${ac_default_prefix}/share" else DATADIR="${prefix}/share" fi else DATADIR="${datadir}" fi if test ${sysconfdir} = '${prefix}/etc'; then if test "${prefix}" = "NONE"; then SYSCONFDIR="${ac_default_prefix}/etc" else SYSCONFDIR="${prefix}/etc" fi else SYSCONFDIR="${sysconfdir}" fi if test "x${DISCOVER_DEFAULT_URL}" = "x"; then DISCOVER_DEFAULT_URL=file://${DATADIR}/${PACKAGE_NAME}/list.xml fi case ${target_os} in linux*) if test "x${SYSDEPS}" = "x"; then SYSDEPS=sysdeps/linux LINUXSYSDEP=libsysdeps.la fi if test "${SYSDEPS}" = "sysdeps/linux"; then cat >>confdefs.h <<\_ACEOF #define _GNU_SOURCE 1 _ACEOF PATH_PROC_IDE="/proc/ide" PATH_PROC_PCI="/proc/bus/pci/devices" PATH_PROC_PCI_DIR=`dirname $PATH_PROC_PCI` PATH_SYS_PCI="/sys/bus/pci/devices" PATH_PROC_SCSI="/proc/scsi/scsi" PATH_PROC_USB="/proc/bus/usb/devices" cat >>confdefs.h <<_ACEOF #define PATH_PROC_IDE "$PATH_PROC_IDE" _ACEOF cat >>confdefs.h <<_ACEOF #define PATH_PROC_PCI "$PATH_PROC_PCI" _ACEOF cat >>confdefs.h <<_ACEOF #define PATH_PROC_PCI_DIR "$PATH_PROC_PCI_DIR" _ACEOF cat >>confdefs.h <<_ACEOF #define PATH_SYS_PCI "$PATH_SYS_PCI" _ACEOF cat >>confdefs.h <<_ACEOF #define PATH_PROC_SCSI "$PATH_PROC_SCSI" _ACEOF cat >>confdefs.h <<_ACEOF #define PATH_PROC_USB "$PATH_PROC_USB" _ACEOF if test "x${pcmcia_headers}" = "x"; then # found=no # for pcmcia_headers in "/lib/modules/`uname -r`/build/include" \ # "/usr/src/kernel-headers-`uname -r`/include" \ # /usr/src/linux*/include \ # /usr/local/src/linux*/include # do # AC_MSG_CHECKING([for PCMCIA headers in ${pcmcia_headers}]) # if test -f "${pcmcia_headers}/pcmcia/version.h"; then # found=yes # AC_MSG_RESULT([yes]) # break # else # AC_MSG_RESULT([no]) # fi # done # if test ${found} = no; then # AC_MSG_ERROR([Could not find PCMCIA headers.]) # fi pcmcia_headers="`cd ${srcdir} && pwd`/${SYSDEPS}" else { echo "$as_me:$LINENO: checking for PCMCIA headers in ${pcmcia_headers}" >&5 echo $ECHO_N "checking for PCMCIA headers in ${pcmcia_headers}... $ECHO_C" >&6; } if ! test -f "${pcmcia_headers}/pcmcia/version.h"; then { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } { { echo "$as_me:$LINENO: error: No PCMCIA headers in ${pcmcia_headers} ." >&5 echo "$as_me: error: No PCMCIA headers in ${pcmcia_headers} ." >&2;} { (exit 1); exit 1; }; } else { echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6; } fi fi CPPFLAGS="${CPPFLAGS} -I${pcmcia_headers}" fi ;; *) if test "x${SYSDEPS}" = "x"; then SYSDEPS=sysdeps/stub STUBSYSDEP=libsysdeps.la fi ;; esac { echo "$as_me:$LINENO: checking for sysdeps in ${SYSDEPS}" >&5 echo $ECHO_N "checking for sysdeps in ${SYSDEPS}... $ECHO_C" >&6; } if test -f ${srcdir}/${SYSDEPS}/Makefile.in; then { echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6; } else { { echo "$as_me:$LINENO: error: Could not find ${SYSDEPS}." >&5 echo "$as_me: error: Could not find ${SYSDEPS}." >&2;} { (exit 1); exit 1; }; } fi # For discover-config(1). export_LIBS="-ldiscover ${LIBS}" case ${prefix} in NONE) export_CPPFLAGS="-I${ac_default_prefix}/include" export_LDFLAGS="-L${ac_default_prefix}/lib -Wl,-R${ac_default_prefix}/lib" ;; /usr) export_CPPFLAGS="" export_LDFLAGS="" ;; *) export_CPPFLAGS="-I${prefix}/include" export_LDFLAGS="-L${prefix}/lib -Wl,-R${prefix}/lib" esac ############################################################################### # Output CPPFLAGS="${CPPFLAGS} -I\${top_srcdir} -I\${top_builddir}" CPPFLAGS="${CPPFLAGS} -I\${top_srcdir}/include" LTLIBOBJS=`echo "$LIBOBJS" | sed 's,\.[^.]* ,.lo ,g;s,\.[^.]*$,.lo,'` cat >>confdefs.h <<_ACEOF #define DISCOVER_DEFAULT_URL "${DISCOVER_DEFAULT_URL}" _ACEOF # 'TARGET' sounds like a potential namespace collision, so prefix it. cat >>confdefs.h <<_ACEOF #define DISCOVER_TARGET "${target}" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_MAJOR ${PACKAGE_MAJOR} _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_MINOR ${PACKAGE_MINOR} _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_MICRO ${PACKAGE_MICRO} _ACEOF cat >>confdefs.h <<_ACEOF #define SYSCONFDIR "${SYSCONFDIR}" _ACEOF PROGENY_CONFIG_SCRIPT_NAME="discover-config" PROGENY_CONFIG_SCRIPT_VARS=":" PROGENY_CONFIG_SCRIPT_SET=":" PROGENY_CONFIG_SCRIPT_VARS="${PROGENY_CONFIG_SCRIPT_VARS}; VARS=\"\${VARS} major_version\"" PROGENY_CONFIG_SCRIPT_SET="${PROGENY_CONFIG_SCRIPT_SET}; major_version=\"${PACKAGE_MAJOR}\"" PROGENY_CONFIG_SCRIPT_DOC="${PROGENY_CONFIG_SCRIPT_DOC} major_version " PROGENY_CONFIG_SCRIPT_VARS="${PROGENY_CONFIG_SCRIPT_VARS}; VARS=\"\${VARS} minor_version\"" PROGENY_CONFIG_SCRIPT_SET="${PROGENY_CONFIG_SCRIPT_SET}; minor_version=\"${PACKAGE_MINOR}\"" PROGENY_CONFIG_SCRIPT_DOC="${PROGENY_CONFIG_SCRIPT_DOC} minor_version " PROGENY_CONFIG_SCRIPT_VARS="${PROGENY_CONFIG_SCRIPT_VARS}; VARS=\"\${VARS} micro_version\"" PROGENY_CONFIG_SCRIPT_SET="${PROGENY_CONFIG_SCRIPT_SET}; micro_version=\"${PACKAGE_MICRO}\"" PROGENY_CONFIG_SCRIPT_DOC="${PROGENY_CONFIG_SCRIPT_DOC} micro_version " PROGENY_CONFIG_SCRIPT_VARS="${PROGENY_CONFIG_SCRIPT_VARS}; VARS=\"\${VARS} version\"" PROGENY_CONFIG_SCRIPT_SET="${PROGENY_CONFIG_SCRIPT_SET}; version=\"\${major_version}.\${minor_version}.\${micro_version}\"" PROGENY_CONFIG_SCRIPT_DOC="${PROGENY_CONFIG_SCRIPT_DOC} version " PROGENY_CONFIG_SCRIPT_VARS="${PROGENY_CONFIG_SCRIPT_VARS}; VARS=\"\${VARS} cppflags\"" PROGENY_CONFIG_SCRIPT_SET="${PROGENY_CONFIG_SCRIPT_SET}; cppflags=\"${export_CPPFLAGS}\"" PROGENY_CONFIG_SCRIPT_DOC="${PROGENY_CONFIG_SCRIPT_DOC} cppflags " PROGENY_CONFIG_SCRIPT_VARS="${PROGENY_CONFIG_SCRIPT_VARS}; VARS=\"\${VARS} ldflags\"" PROGENY_CONFIG_SCRIPT_SET="${PROGENY_CONFIG_SCRIPT_SET}; ldflags=\"${export_LDFLAGS}\"" PROGENY_CONFIG_SCRIPT_DOC="${PROGENY_CONFIG_SCRIPT_DOC} ldflags " PROGENY_CONFIG_SCRIPT_VARS="${PROGENY_CONFIG_SCRIPT_VARS}; VARS=\"\${VARS} libs\"" PROGENY_CONFIG_SCRIPT_SET="${PROGENY_CONFIG_SCRIPT_SET}; libs=\"${export_LIBS}\"" PROGENY_CONFIG_SCRIPT_DOC="${PROGENY_CONFIG_SCRIPT_DOC} libs " for var in prefix \ exec_prefix; do eval val="\$${var}" if test "${val}" = "NONE"; then val=${ac_default_prefix} fi PROGENY_CONFIG_SCRIPT_VARS="${PROGENY_CONFIG_SCRIPT_VARS}; VARS=\"\${VARS} ${var}\"" PROGENY_CONFIG_SCRIPT_SET="${PROGENY_CONFIG_SCRIPT_SET}; ${var}=\"${val}\"" PROGENY_CONFIG_SCRIPT_DOC="${PROGENY_CONFIG_SCRIPT_DOC} ${var} " done for var in bindir \ sbindir \ libexecdir \ datadir \ sysconfdir \ sharedstatedir \ localstatedir \ libdir \ includedir \ oldincludedir \ infodir \ mandir \ build \ build_cpu \ build_vendor \ build_os \ host \ host_cpu \ host_vendor \ host_os \ target \ target_cpu \ target_vendor \ target_os; do eval val="\$${var}" PROGENY_CONFIG_SCRIPT_VARS="${PROGENY_CONFIG_SCRIPT_VARS}; VARS=\"\${VARS} ${var}\"" PROGENY_CONFIG_SCRIPT_SET="${PROGENY_CONFIG_SCRIPT_SET}; ${var}=\"${val}\"" PROGENY_CONFIG_SCRIPT_DOC="${PROGENY_CONFIG_SCRIPT_DOC} ${var} " done ac_config_files="$ac_config_files buildtools/config-script" ac_config_commands="$ac_config_commands config-script-doc" PROGENY_CONFIG_SCRIPT_VARS="${PROGENY_CONFIG_SCRIPT_VARS}; VARS=\"\${VARS} lt_current\"" PROGENY_CONFIG_SCRIPT_SET="${PROGENY_CONFIG_SCRIPT_SET}; lt_current=\"${LT_CURRENT}\"" PROGENY_CONFIG_SCRIPT_DOC="${PROGENY_CONFIG_SCRIPT_DOC} lt_current " PROGENY_CONFIG_SCRIPT_VARS="${PROGENY_CONFIG_SCRIPT_VARS}; VARS=\"\${VARS} lt_revision\"" PROGENY_CONFIG_SCRIPT_SET="${PROGENY_CONFIG_SCRIPT_SET}; lt_revision=\"${LT_REVISION}\"" PROGENY_CONFIG_SCRIPT_DOC="${PROGENY_CONFIG_SCRIPT_DOC} lt_revision " PROGENY_CONFIG_SCRIPT_VARS="${PROGENY_CONFIG_SCRIPT_VARS}; VARS=\"\${VARS} lt_age\"" PROGENY_CONFIG_SCRIPT_SET="${PROGENY_CONFIG_SCRIPT_SET}; lt_age=\"${LT_AGE}\"" PROGENY_CONFIG_SCRIPT_DOC="${PROGENY_CONFIG_SCRIPT_DOC} lt_age " # standard parameters PROGENY_SHOW_CONFIG_VARS=":" PROGENY_SHOW_CONFIG_SET=":" ac_config_files="$ac_config_files buildtools/show-config" ac_config_commands="$ac_config_commands show-config" PROGENY_SHOW_CONFIG_VARS="${PROGENY_SHOW_CONFIG_VARS}; VARS=\"\${VARS} CFLAGS\"" PROGENY_SHOW_CONFIG_SET="${PROGENY_SHOW_CONFIG_SET}; CFLAGS=\"${CFLAGS}\"" PROGENY_SHOW_CONFIG_VARS="${PROGENY_SHOW_CONFIG_VARS}; VARS=\"\${VARS} CPPFLAGS\"" PROGENY_SHOW_CONFIG_SET="${PROGENY_SHOW_CONFIG_SET}; CPPFLAGS=\"${CPPFLAGS}\"" PROGENY_SHOW_CONFIG_VARS="${PROGENY_SHOW_CONFIG_VARS}; VARS=\"\${VARS} LDFLAGS\"" PROGENY_SHOW_CONFIG_SET="${PROGENY_SHOW_CONFIG_SET}; LDFLAGS=\"${LDFLAGS}\"" PROGENY_SHOW_CONFIG_VARS="${PROGENY_SHOW_CONFIG_VARS}; VARS=\"\${VARS} LIBS\"" PROGENY_SHOW_CONFIG_SET="${PROGENY_SHOW_CONFIG_SET}; LIBS=\"${LIBS}\"" PROGENY_SHOW_CONFIG_VARS="${PROGENY_SHOW_CONFIG_VARS}; VARS=\"\${VARS} LTLIBOBJS\"" PROGENY_SHOW_CONFIG_SET="${PROGENY_SHOW_CONFIG_SET}; LTLIBOBJS=\"${LTLIBOBJS}\"" PROGENY_SHOW_CONFIG_VARS="${PROGENY_SHOW_CONFIG_VARS}; VARS=\"\${VARS} DISCOVER_DEFAULT_URL\"" PROGENY_SHOW_CONFIG_SET="${PROGENY_SHOW_CONFIG_SET}; DISCOVER_DEFAULT_URL=\"${DISCOVER_DEFAULT_URL}\"" PROGENY_SHOW_CONFIG_VARS="${PROGENY_SHOW_CONFIG_VARS}; VARS=\"\${VARS} SYSDEPS\"" PROGENY_SHOW_CONFIG_SET="${PROGENY_SHOW_CONFIG_SET}; SYSDEPS=\"${SYSDEPS}\"" # OS-specific parameters case ${target_os} in linux*) if test "${SYSDEPS}" = "sysdeps/linux"; then PROGENY_SHOW_CONFIG_VARS="${PROGENY_SHOW_CONFIG_VARS}; VARS=\"\${VARS} pcmcia_headers\"" PROGENY_SHOW_CONFIG_SET="${PROGENY_SHOW_CONFIG_SET}; pcmcia_headers=\"${pcmcia_headers}\"" fi ;; esac ac_config_files="$ac_config_files Makefile:buildtools/recur.mk:buildtools/build.mk:Makefile.in buildtools/Makefile discover/Makefile:buildtools/build.mk:discover/Makefile.in discover-xml/Makefile:buildtools/build.mk:discover-xml/Makefile.in doc/Makefile:buildtools/build.mk:doc/Makefile.in doctools/Makefile etc/Makefile:buildtools/build.mk:etc/Makefile.in portability/Makefile include/Makefile:buildtools/recur.mk:buildtools/build.mk:include/Makefile.in include/discover/Makefile:buildtools/build.mk:include/discover/Makefile.in lib/Makefile:buildtools/build.mk:lib/Makefile.in scripts/Makefile:buildtools/build.mk:scripts/Makefile.in sysdeps/Makefile:buildtools/build.mk:sysdeps/Makefile.in:buildtools/recur.mk sysdeps/linux/Makefile:buildtools/recur.mk:buildtools/build.mk:sysdeps/linux/Makefile.in sysdeps/linux/pcmcia/Makefile:buildtools/build.mk:sysdeps/linux/pcmcia/Makefile.in sysdeps/stub/Makefile:buildtools/build.mk:sysdeps/stub/Makefile.in tests/Makefile:buildtools/build.mk:tests/Makefile.in" cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure # tests run on this system so they can be shared between configure # scripts and configure runs, see configure's option --config-cache. # It is not useful on other systems. If it contains results you don't # want to keep, you may remove or edit it. # # config.status only pays attention to the cache file if you give it # the --recheck option to rerun configure. # # `ac_cv_env_foo' variables (set or unset) will be overridden when # loading this file, other *unset* `ac_cv_foo' will be assigned the # following values. _ACEOF # The following way of writing the cache mishandles newlines in values, # but we know of no workaround that is simple, portable, and efficient. # So, we kill variables containing newlines. # Ultrix sh set writes to stderr and can't be redirected directly, # and sets the high bit in the cache file unless we assign to the vars. ( for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { echo "$as_me:$LINENO: WARNING: Cache variable $ac_var contains a newline." >&5 echo "$as_me: WARNING: Cache variable $ac_var contains a newline." >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( *) $as_unset $ac_var ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space=' '; set) 2>&1` in #( *${as_nl}ac_space=\ *) # `set' does not quote correctly, so add quotes (double-quote # substitution turns \\\\ into \\, and sed turns \\ into \). sed -n \ "s/'/'\\\\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" ;; #( *) # `set' quotes correctly as required by POSIX, so do not add quotes. sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) | sed ' /^ac_cv_env_/b end t clear :clear s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ t end s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ :end' >>confcache if diff "$cache_file" confcache >/dev/null 2>&1; then :; else if test -w "$cache_file"; then test "x$cache_file" != "x/dev/null" && { echo "$as_me:$LINENO: updating cache $cache_file" >&5 echo "$as_me: updating cache $cache_file" >&6;} cat confcache >$cache_file else { echo "$as_me:$LINENO: not updating unwritable cache $cache_file" >&5 echo "$as_me: not updating unwritable cache $cache_file" >&6;} fi fi rm -f confcache test "x$prefix" = xNONE && prefix=$ac_default_prefix # Let make expand exec_prefix. test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' DEFS=-DHAVE_CONFIG_H ac_libobjs= ac_ltlibobjs= for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue # 1. Remove the extension, and $U if already installed. ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' ac_i=`echo "$ac_i" | sed "$ac_script"` # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR # will be set to the directory where LIBOBJS objects are built. ac_libobjs="$ac_libobjs \${LIBOBJDIR}$ac_i\$U.$ac_objext" ac_ltlibobjs="$ac_ltlibobjs \${LIBOBJDIR}$ac_i"'$U.lo' done LIBOBJS=$ac_libobjs LTLIBOBJS=$ac_ltlibobjs : ${CONFIG_STATUS=./config.status} ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" { echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5 echo "$as_me: creating $CONFIG_STATUS" >&6;} cat >$CONFIG_STATUS <<_ACEOF #! $SHELL # Generated by $as_me. # Run this file to recreate the current configuration. # Compiler output produced by configure, useful for debugging # configure, is in config.log if it exists. debug=false ac_cs_recheck=false ac_cs_silent=false SHELL=\${CONFIG_SHELL-$SHELL} _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF ## --------------------- ## ## M4sh Initialization. ## ## --------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in *posix*) set -o posix ;; esac fi # PATH needs CR # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then echo "#! /bin/sh" >conf$$.sh echo "exit 0" >>conf$$.sh chmod +x conf$$.sh if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then PATH_SEPARATOR=';' else PATH_SEPARATOR=: fi rm -f conf$$.sh fi # Support unset when possible. if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then as_unset=unset else as_unset=false fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) as_nl=' ' IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. case $0 in *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 { (exit 1); exit 1; } fi # Work around bugs in pre-3.0 UWIN ksh. for as_var in ENV MAIL MAILPATH do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. for as_var in \ LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ LC_TELEPHONE LC_TIME do if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then eval $as_var=C; export $as_var else ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var fi done # Required to use basename. if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi # Name of the executable. as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # CDPATH. $as_unset CDPATH as_lineno_1=$LINENO as_lineno_2=$LINENO test "x$as_lineno_1" != "x$as_lineno_2" && test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || { # Create $as_me.lineno as a copy of $as_myself, but with $LINENO # uniformly replaced by the line number. The first 'sed' inserts a # line-number line after each line using $LINENO; the second 'sed' # does the real work. The second script uses 'N' to pair each # line-number line with the line containing $LINENO, and appends # trailing '-' during substitution so that $LINENO is not a special # case at line end. # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the # scripts with optimization help from Paolo Bonzini. Blame Lee # E. McMahon (1931-1989) for sed's syntax. :-) sed -n ' p /[$]LINENO/= ' <$as_myself | sed ' s/[$]LINENO.*/&-/ t lineno b :lineno N :loop s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ t loop s/-\n.*// ' >$as_me.lineno && chmod +x "$as_me.lineno" || { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 { (exit 1); exit 1; }; } # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensitive to this). . "./$as_me.lineno" # Exit status is that of the last command. exit } if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in -n*) case `echo 'x\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. *) ECHO_C='\c';; esac;; *) ECHO_N='-n';; esac if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir fi echo >conf$$.file if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -p'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -p' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -p' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null if mkdir -p . 2>/dev/null; then as_mkdir_p=: else test -d ./-p && rmdir ./-p as_mkdir_p=false fi if test -x / >/dev/null 2>&1; then as_test_x='test -x' else if ls -dL / >/dev/null 2>&1; then as_ls_L_option=L else as_ls_L_option= fi as_test_x=' eval sh -c '\'' if test -d "$1"; then test -d "$1/."; else case $1 in -*)set "./$1";; esac; case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in ???[sx]*):;;*)false;;esac;fi '\'' sh ' fi as_executable_p=$as_test_x # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" exec 6>&1 # Save the log message, to keep $[0] and so on meaningful, and to # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" This file was extended by discover $as_me 2.1.2, which was generated by GNU Autoconf 2.61. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS CONFIG_LINKS = $CONFIG_LINKS CONFIG_COMMANDS = $CONFIG_COMMANDS $ $0 $@ on `(hostname || uname -n) 2>/dev/null | sed 1q` " _ACEOF cat >>$CONFIG_STATUS <<_ACEOF # Files that config.status was made for. config_files="$ac_config_files" config_headers="$ac_config_headers" config_commands="$ac_config_commands" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF ac_cs_usage="\ \`$as_me' instantiates files from templates according to the current configuration. Usage: $0 [OPTIONS] [FILE]... -h, --help print this help, then exit -V, --version print version number and configuration settings, then exit -q, --quiet do not print progress messages -d, --debug don't remove temporary files --recheck update $as_me by reconfiguring in the same conditions --file=FILE[:TEMPLATE] instantiate the configuration file FILE --header=FILE[:TEMPLATE] instantiate the configuration header FILE Configuration files: $config_files Configuration headers: $config_headers Configuration commands: $config_commands Report bugs to ." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF ac_cs_version="\\ discover config.status 2.1.2 configured by $0, generated by GNU Autoconf 2.61, with options \\"`echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\" Copyright (C) 2006 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." ac_pwd='$ac_pwd' srcdir='$srcdir' INSTALL='$INSTALL' _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF # If no file are specified by the user, then we need to provide default # value. By we need to know if files were specified by the user. ac_need_defaults=: while test $# != 0 do case $1 in --*=*) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` ac_shift=: ;; *) ac_option=$1 ac_optarg=$2 ac_shift=shift ;; esac case $ac_option in # Handling of the options. -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) ac_cs_recheck=: ;; --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) echo "$ac_cs_version"; exit ;; --debug | --debu | --deb | --de | --d | -d ) debug=: ;; --file | --fil | --fi | --f ) $ac_shift CONFIG_FILES="$CONFIG_FILES $ac_optarg" ac_need_defaults=false;; --header | --heade | --head | --hea ) $ac_shift CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg" ac_need_defaults=false;; --he | --h) # Conflict between --help and --header { echo "$as_me: error: ambiguous option: $1 Try \`$0 --help' for more information." >&2 { (exit 1); exit 1; }; };; --help | --hel | -h ) echo "$ac_cs_usage"; exit ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil | --si | --s) ac_cs_silent=: ;; # This is an error. -*) { echo "$as_me: error: unrecognized option: $1 Try \`$0 --help' for more information." >&2 { (exit 1); exit 1; }; } ;; *) ac_config_targets="$ac_config_targets $1" ac_need_defaults=false ;; esac shift done ac_configure_extra_args= if $ac_cs_silent; then exec 6>/dev/null ac_configure_extra_args="$ac_configure_extra_args --silent" fi _ACEOF cat >>$CONFIG_STATUS <<_ACEOF if \$ac_cs_recheck; then echo "running CONFIG_SHELL=$SHELL $SHELL $0 "$ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6 CONFIG_SHELL=$SHELL export CONFIG_SHELL exec $SHELL "$0"$ac_configure_args \$ac_configure_extra_args --no-create --no-recursion fi _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF exec 5>>config.log { echo sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX ## Running $as_me. ## _ASBOX echo "$ac_log" } >&5 _ACEOF cat >>$CONFIG_STATUS <<_ACEOF # # INIT-COMMANDS # doctext="${PROGENY_CONFIG_SCRIPT_DOC}"; mkdoc='buildtools/config-script-mkdoc'; refentry='buildtools/config-script.refentry'; docname="${PROGENY_CONFIG_SCRIPT_NAME}" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF # Handling of arguments. for ac_config_target in $ac_config_targets do case $ac_config_target in "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; "buildtools/config-script") CONFIG_FILES="$CONFIG_FILES buildtools/config-script" ;; "config-script-doc") CONFIG_COMMANDS="$CONFIG_COMMANDS config-script-doc" ;; "buildtools/show-config") CONFIG_FILES="$CONFIG_FILES buildtools/show-config" ;; "show-config") CONFIG_COMMANDS="$CONFIG_COMMANDS show-config" ;; "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile:buildtools/recur.mk:buildtools/build.mk:Makefile.in" ;; "buildtools/Makefile") CONFIG_FILES="$CONFIG_FILES buildtools/Makefile" ;; "discover/Makefile") CONFIG_FILES="$CONFIG_FILES discover/Makefile:buildtools/build.mk:discover/Makefile.in" ;; "discover-xml/Makefile") CONFIG_FILES="$CONFIG_FILES discover-xml/Makefile:buildtools/build.mk:discover-xml/Makefile.in" ;; "doc/Makefile") CONFIG_FILES="$CONFIG_FILES doc/Makefile:buildtools/build.mk:doc/Makefile.in" ;; "doctools/Makefile") CONFIG_FILES="$CONFIG_FILES doctools/Makefile" ;; "etc/Makefile") CONFIG_FILES="$CONFIG_FILES etc/Makefile:buildtools/build.mk:etc/Makefile.in" ;; "portability/Makefile") CONFIG_FILES="$CONFIG_FILES portability/Makefile" ;; "include/Makefile") CONFIG_FILES="$CONFIG_FILES include/Makefile:buildtools/recur.mk:buildtools/build.mk:include/Makefile.in" ;; "include/discover/Makefile") CONFIG_FILES="$CONFIG_FILES include/discover/Makefile:buildtools/build.mk:include/discover/Makefile.in" ;; "lib/Makefile") CONFIG_FILES="$CONFIG_FILES lib/Makefile:buildtools/build.mk:lib/Makefile.in" ;; "scripts/Makefile") CONFIG_FILES="$CONFIG_FILES scripts/Makefile:buildtools/build.mk:scripts/Makefile.in" ;; "sysdeps/Makefile") CONFIG_FILES="$CONFIG_FILES sysdeps/Makefile:buildtools/build.mk:sysdeps/Makefile.in:buildtools/recur.mk" ;; "sysdeps/linux/Makefile") CONFIG_FILES="$CONFIG_FILES sysdeps/linux/Makefile:buildtools/recur.mk:buildtools/build.mk:sysdeps/linux/Makefile.in" ;; "sysdeps/linux/pcmcia/Makefile") CONFIG_FILES="$CONFIG_FILES sysdeps/linux/pcmcia/Makefile:buildtools/build.mk:sysdeps/linux/pcmcia/Makefile.in" ;; "sysdeps/stub/Makefile") CONFIG_FILES="$CONFIG_FILES sysdeps/stub/Makefile:buildtools/build.mk:sysdeps/stub/Makefile.in" ;; "tests/Makefile") CONFIG_FILES="$CONFIG_FILES tests/Makefile:buildtools/build.mk:tests/Makefile.in" ;; *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5 echo "$as_me: error: invalid argument: $ac_config_target" >&2;} { (exit 1); exit 1; }; };; esac done # If the user did not use the arguments to specify the items to instantiate, # then the envvar interface is used. Set only those that are not. # We use the long form for the default assignment because of an extremely # bizarre bug on SunOS 4.1.3. if $ac_need_defaults; then test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands fi # Have a temporary directory for convenience. Make it in the build tree # simply because there is no reason against having it here, and in addition, # creating and moving files from /tmp can sometimes cause problems. # Hook for its removal unless debugging. # Note that there is a small window in which the directory will not be cleaned: # after its creation but before its name has been assigned to `$tmp'. $debug || { tmp= trap 'exit_status=$? { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status ' 0 trap '{ (exit 1); exit 1; }' 1 2 13 15 } # Create a (secure) tmp directory for tmp files. { tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" } || { tmp=./conf$$-$RANDOM (umask 077 && mkdir "$tmp") } || { echo "$me: cannot create a temporary directory in ." >&2 { (exit 1); exit 1; } } # # Set up the sed scripts for CONFIG_FILES section. # # No need to generate the scripts if there are no CONFIG_FILES. # This happens for instance when ./config.status config.h if test -n "$CONFIG_FILES"; then _ACEOF ac_delim='%!_!# ' for ac_last_try in false false false false false :; do cat >conf$$subs.sed <<_ACEOF SHELL!$SHELL$ac_delim PATH_SEPARATOR!$PATH_SEPARATOR$ac_delim PACKAGE_NAME!$PACKAGE_NAME$ac_delim PACKAGE_TARNAME!$PACKAGE_TARNAME$ac_delim PACKAGE_VERSION!$PACKAGE_VERSION$ac_delim PACKAGE_STRING!$PACKAGE_STRING$ac_delim PACKAGE_BUGREPORT!$PACKAGE_BUGREPORT$ac_delim exec_prefix!$exec_prefix$ac_delim prefix!$prefix$ac_delim program_transform_name!$program_transform_name$ac_delim bindir!$bindir$ac_delim sbindir!$sbindir$ac_delim libexecdir!$libexecdir$ac_delim datarootdir!$datarootdir$ac_delim datadir!$datadir$ac_delim sysconfdir!$sysconfdir$ac_delim sharedstatedir!$sharedstatedir$ac_delim localstatedir!$localstatedir$ac_delim includedir!$includedir$ac_delim oldincludedir!$oldincludedir$ac_delim docdir!$docdir$ac_delim infodir!$infodir$ac_delim htmldir!$htmldir$ac_delim dvidir!$dvidir$ac_delim pdfdir!$pdfdir$ac_delim psdir!$psdir$ac_delim libdir!$libdir$ac_delim localedir!$localedir$ac_delim mandir!$mandir$ac_delim DEFS!$DEFS$ac_delim ECHO_C!$ECHO_C$ac_delim ECHO_N!$ECHO_N$ac_delim ECHO_T!$ECHO_T$ac_delim LIBS!$LIBS$ac_delim build_alias!$build_alias$ac_delim host_alias!$host_alias$ac_delim target_alias!$target_alias$ac_delim build!$build$ac_delim build_cpu!$build_cpu$ac_delim build_vendor!$build_vendor$ac_delim build_os!$build_os$ac_delim host!$host$ac_delim host_cpu!$host_cpu$ac_delim host_vendor!$host_vendor$ac_delim host_os!$host_os$ac_delim target!$target$ac_delim target_cpu!$target_cpu$ac_delim target_vendor!$target_vendor$ac_delim target_os!$target_os$ac_delim CC!$CC$ac_delim CFLAGS!$CFLAGS$ac_delim LDFLAGS!$LDFLAGS$ac_delim CPPFLAGS!$CPPFLAGS$ac_delim ac_ct_CC!$ac_ct_CC$ac_delim EXEEXT!$EXEEXT$ac_delim OBJEXT!$OBJEXT$ac_delim CPP!$CPP$ac_delim INSTALL_PROGRAM!$INSTALL_PROGRAM$ac_delim INSTALL_SCRIPT!$INSTALL_SCRIPT$ac_delim INSTALL_DATA!$INSTALL_DATA$ac_delim LN_S!$LN_S$ac_delim ECHO!$ECHO$ac_delim RANLIB!$RANLIB$ac_delim STRIP!$STRIP$ac_delim GREP!$GREP$ac_delim EGREP!$EGREP$ac_delim LIBTOOL!$LIBTOOL$ac_delim DOXYGEN!$DOXYGEN$ac_delim CURL_CONFIG!$CURL_CONFIG$ac_delim LIBOBJS!$LIBOBJS$ac_delim libportability!$libportability$ac_delim CHECK_CFLAGS!$CHECK_CFLAGS$ac_delim CHECK_LIBS!$CHECK_LIBS$ac_delim PACKAGE_MAJOR!$PACKAGE_MAJOR$ac_delim PACKAGE_MINOR!$PACKAGE_MINOR$ac_delim PACKAGE_MICRO!$PACKAGE_MICRO$ac_delim LT_CURRENT!$LT_CURRENT$ac_delim LT_REVISION!$LT_REVISION$ac_delim LT_AGE!$LT_AGE$ac_delim INSTALL_DIR!$INSTALL_DIR$ac_delim LTLIBOBJS!$LTLIBOBJS$ac_delim SYSDEPS!$SYSDEPS$ac_delim LINUXSYSDEP!$LINUXSYSDEP$ac_delim STUBSYSDEP!$STUBSYSDEP$ac_delim export_CPPFLAGS!$export_CPPFLAGS$ac_delim export_LDFLAGS!$export_LDFLAGS$ac_delim export_LIBS!$export_LIBS$ac_delim DISCOVER_DEFAULT_URL!$DISCOVER_DEFAULT_URL$ac_delim PROGENY_CONFIG_SCRIPT_NAME!$PROGENY_CONFIG_SCRIPT_NAME$ac_delim PROGENY_CONFIG_SCRIPT_SET!$PROGENY_CONFIG_SCRIPT_SET$ac_delim PROGENY_CONFIG_SCRIPT_VARS!$PROGENY_CONFIG_SCRIPT_VARS$ac_delim PROGENY_SHOW_CONFIG_SET!$PROGENY_SHOW_CONFIG_SET$ac_delim PROGENY_SHOW_CONFIG_VARS!$PROGENY_SHOW_CONFIG_VARS$ac_delim _ACEOF if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 93; then break elif $ac_last_try; then { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 echo "$as_me: error: could not make $CONFIG_STATUS" >&2;} { (exit 1); exit 1; }; } else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done ac_eof=`sed -n '/^CEOF[0-9]*$/s/CEOF/0/p' conf$$subs.sed` if test -n "$ac_eof"; then ac_eof=`echo "$ac_eof" | sort -nru | sed 1q` ac_eof=`expr $ac_eof + 1` fi cat >>$CONFIG_STATUS <<_ACEOF cat >"\$tmp/subs-1.sed" <<\CEOF$ac_eof /@[a-zA-Z_][a-zA-Z_0-9]*@/!b end _ACEOF sed ' s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g s/^/s,@/; s/!/@,|#_!!_#|/ :n t n s/'"$ac_delim"'$/,g/; t s/$/\\/; p N; s/^.*\n//; s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g; b n ' >>$CONFIG_STATUS >$CONFIG_STATUS <<_ACEOF :end s/|#_!!_#|//g CEOF$ac_eof _ACEOF # VPATH may cause trouble with some makes, so we remove $(srcdir), # ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and # trailing colons and then remove the whole line if VPATH becomes empty # (actually we leave an empty line to preserve line numbers). if test "x$srcdir" = x.; then ac_vpsub='/^[ ]*VPATH[ ]*=/{ s/:*\$(srcdir):*/:/ s/:*\${srcdir}:*/:/ s/:*@srcdir@:*/:/ s/^\([^=]*=[ ]*\):*/\1/ s/:*$// s/^[^=]*=[ ]*$// }' fi cat >>$CONFIG_STATUS <<\_ACEOF fi # test -n "$CONFIG_FILES" for ac_tag in :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS do case $ac_tag in :[FHLC]) ac_mode=$ac_tag; continue;; esac case $ac_mode$ac_tag in :[FHL]*:*);; :L* | :C*:*) { { echo "$as_me:$LINENO: error: Invalid tag $ac_tag." >&5 echo "$as_me: error: Invalid tag $ac_tag." >&2;} { (exit 1); exit 1; }; };; :[FH]-) ac_tag=-:-;; :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; esac ac_save_IFS=$IFS IFS=: set x $ac_tag IFS=$ac_save_IFS shift ac_file=$1 shift case $ac_mode in :L) ac_source=$1;; :[FH]) ac_file_inputs= for ac_f do case $ac_f in -) ac_f="$tmp/stdin";; *) # Look for the file first in the build tree, then in the source tree # (if the path is not absolute). The absolute path cannot be DOS-style, # because $ac_f cannot contain `:'. test -f "$ac_f" || case $ac_f in [\\/$]*) false;; *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; esac || { { echo "$as_me:$LINENO: error: cannot find input file: $ac_f" >&5 echo "$as_me: error: cannot find input file: $ac_f" >&2;} { (exit 1); exit 1; }; };; esac ac_file_inputs="$ac_file_inputs $ac_f" done # Let's still pretend it is `configure' which instantiates (i.e., don't # use $as_me), people would be surprised to read: # /* config.h. Generated by config.status. */ configure_input="Generated from "`IFS=: echo $* | sed 's|^[^:]*/||;s|:[^:]*/|, |g'`" by configure." if test x"$ac_file" != x-; then configure_input="$ac_file. $configure_input" { echo "$as_me:$LINENO: creating $ac_file" >&5 echo "$as_me: creating $ac_file" >&6;} fi case $ac_tag in *:-:* | *:-) cat >"$tmp/stdin";; esac ;; esac ac_dir=`$as_dirname -- "$ac_file" || $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_file" : 'X\(//\)[^/]' \| \ X"$ac_file" : 'X\(//\)$' \| \ X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || echo X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` { as_dir="$ac_dir" case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || { { echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5 echo "$as_me: error: cannot create directory $as_dir" >&2;} { (exit 1); exit 1; }; }; } ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,/..,g;s,/,,'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix case $ac_mode in :F) # # CONFIG_FILE # case $INSTALL in [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; esac _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF # If the template does not know about datarootdir, expand it. # FIXME: This hack should be removed a few years after 2.60. ac_datarootdir_hack=; ac_datarootdir_seen= case `sed -n '/datarootdir/ { p q } /@datadir@/p /@docdir@/p /@infodir@/p /@localedir@/p /@mandir@/p ' $ac_file_inputs` in *datarootdir*) ac_datarootdir_seen=yes;; *@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) { echo "$as_me:$LINENO: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} _ACEOF cat >>$CONFIG_STATUS <<_ACEOF ac_datarootdir_hack=' s&@datadir@&$datadir&g s&@docdir@&$docdir&g s&@infodir@&$infodir&g s&@localedir@&$localedir&g s&@mandir@&$mandir&g s&\\\${datarootdir}&$datarootdir&g' ;; esac _ACEOF # Neutralize VPATH when `$srcdir' = `.'. # Shell code in configure.ac might set extrasub. # FIXME: do we really want to maintain this feature? cat >>$CONFIG_STATUS <<_ACEOF sed "$ac_vpsub $extrasub _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF :t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b s&@configure_input@&$configure_input&;t t s&@top_builddir@&$ac_top_builddir_sub&;t t s&@srcdir@&$ac_srcdir&;t t s&@abs_srcdir@&$ac_abs_srcdir&;t t s&@top_srcdir@&$ac_top_srcdir&;t t s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t s&@builddir@&$ac_builddir&;t t s&@abs_builddir@&$ac_abs_builddir&;t t s&@abs_top_builddir@&$ac_abs_top_builddir&;t t s&@INSTALL@&$ac_INSTALL&;t t $ac_datarootdir_hack " $ac_file_inputs | sed -f "$tmp/subs-1.sed" >$tmp/out test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } && { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } && { echo "$as_me:$LINENO: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined." >&5 echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined." >&2;} rm -f "$tmp/stdin" case $ac_file in -) cat "$tmp/out"; rm -f "$tmp/out";; *) rm -f "$ac_file"; mv "$tmp/out" $ac_file;; esac ;; :H) # # CONFIG_HEADER # _ACEOF # Transform confdefs.h into a sed script `conftest.defines', that # substitutes the proper values into config.h.in to produce config.h. rm -f conftest.defines conftest.tail # First, append a space to every undef/define line, to ease matching. echo 's/$/ /' >conftest.defines # Then, protect against being on the right side of a sed subst, or in # an unquoted here document, in config.status. If some macros were # called several times there might be several #defines for the same # symbol, which is useless. But do not sort them, since the last # AC_DEFINE must be honored. ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]* # These sed commands are passed to sed as "A NAME B PARAMS C VALUE D", where # NAME is the cpp macro being defined, VALUE is the value it is being given. # PARAMS is the parameter list in the macro definition--in most cases, it's # just an empty string. ac_dA='s,^\\([ #]*\\)[^ ]*\\([ ]*' ac_dB='\\)[ (].*,\\1define\\2' ac_dC=' ' ac_dD=' ,' uniq confdefs.h | sed -n ' t rset :rset s/^[ ]*#[ ]*define[ ][ ]*// t ok d :ok s/[\\&,]/\\&/g s/^\('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/ '"$ac_dA"'\1'"$ac_dB"'\2'"${ac_dC}"'\3'"$ac_dD"'/p s/^\('"$ac_word_re"'\)[ ]*\(.*\)/'"$ac_dA"'\1'"$ac_dB$ac_dC"'\2'"$ac_dD"'/p ' >>conftest.defines # Remove the space that was appended to ease matching. # Then replace #undef with comments. This is necessary, for # example, in the case of _POSIX_SOURCE, which is predefined and required # on some systems where configure will not decide to define it. # (The regexp can be short, since the line contains either #define or #undef.) echo 's/ $// s,^[ #]*u.*,/* & */,' >>conftest.defines # Break up conftest.defines: ac_max_sed_lines=50 # First sed command is: sed -f defines.sed $ac_file_inputs >"$tmp/out1" # Second one is: sed -f defines.sed "$tmp/out1" >"$tmp/out2" # Third one will be: sed -f defines.sed "$tmp/out2" >"$tmp/out1" # et cetera. ac_in='$ac_file_inputs' ac_out='"$tmp/out1"' ac_nxt='"$tmp/out2"' while : do # Write a here document: cat >>$CONFIG_STATUS <<_ACEOF # First, check the format of the line: cat >"\$tmp/defines.sed" <<\\CEOF /^[ ]*#[ ]*undef[ ][ ]*$ac_word_re[ ]*\$/b def /^[ ]*#[ ]*define[ ][ ]*$ac_word_re[( ]/b def b :def _ACEOF sed ${ac_max_sed_lines}q conftest.defines >>$CONFIG_STATUS echo 'CEOF sed -f "$tmp/defines.sed"' "$ac_in >$ac_out" >>$CONFIG_STATUS ac_in=$ac_out; ac_out=$ac_nxt; ac_nxt=$ac_in sed 1,${ac_max_sed_lines}d conftest.defines >conftest.tail grep . conftest.tail >/dev/null || break rm -f conftest.defines mv conftest.tail conftest.defines done rm -f conftest.defines conftest.tail echo "ac_result=$ac_in" >>$CONFIG_STATUS cat >>$CONFIG_STATUS <<\_ACEOF if test x"$ac_file" != x-; then echo "/* $configure_input */" >"$tmp/config.h" cat "$ac_result" >>"$tmp/config.h" if diff $ac_file "$tmp/config.h" >/dev/null 2>&1; then { echo "$as_me:$LINENO: $ac_file is unchanged" >&5 echo "$as_me: $ac_file is unchanged" >&6;} else rm -f $ac_file mv "$tmp/config.h" $ac_file fi else echo "/* $configure_input */" cat "$ac_result" fi rm -f "$tmp/out12" ;; :C) { echo "$as_me:$LINENO: executing $ac_file commands" >&5 echo "$as_me: executing $ac_file commands" >&6;} ;; esac case $ac_file$ac_mode in "config-script-doc":C) echo "${doctext}" \ | ${ac_top_srcdir}/${mkdoc} \ ${refentry} \ ${docname} ;; "buildtools/show-config":F) chmod 555 buildtools/show-config ;; "show-config":C) ./buildtools/show-config ;; esac done # for ac_tag { (exit 0); exit 0; } _ACEOF chmod +x $CONFIG_STATUS ac_clean_files=$ac_clean_files_save # configure is writing to config.log, and then calls config.status. # config.status does its own redirection, appending to config.log. # Unfortunately, on DOS this fails, as config.log is still kept open # by configure, so config.status won't be able to write to it; its # output is simply discarded. So we exec the FD to /dev/null, # effectively closing config.log, so it can be properly (re)opened and # appended to by config.status. When coming back to configure, we # need to make the FD available again. if test "$no_create" != yes; then ac_cs_success=: ac_config_status_args= test "$silent" = yes && ac_config_status_args="$ac_config_status_args --quiet" exec 5>/dev/null $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false exec 5>>config.log # Use ||, not &&, to avoid exiting from the if with $? = 1, which # would make configure fail if this is the last instruction. $ac_cs_success || { (exit 1); exit 1; } fi discover-2.1.2/discover-xml/0002755002342100234210000000000010655642005014421 5ustar pereperediscover-2.1.2/discover-xml/Makefile.in0000644002342100234210000000240410266266027016470 0ustar perepere# $Progeny$ all: discover-xml ############################################################################### # Build discover_xml_SOURCES= discover-xml.c discover_xml_OBJS= discover-xml.lo discover_xml_LIBS= ${libportability} ${LIBS} discover-xml: ${discover_xml_OBJS} ${top_builddir}/lib/libdiscover.la \ ${libportability} ${LTLINK} -o $@ ${discover_xml_OBJS} ${discover_xml_LIBS} \ ${top_builddir}/lib/libdiscover.la ${libportability} ############################################################################### # Clean clean_FILES= discover-xml ${discover_xml_OBJS} distclean_FILES= Makefile clean: ${LTCLEAN} ${clean_FILES} distclean: ${LTCLEAN} ${clean_FILES} ${distclean_FILES} maintainer-clean: ${LTCLEAN} ${clean_FILES} ${distclean_FILES} ############################################################################### # Installation install: discover-xml ${INSTALL_DIR} ${DESTDIR}${bindir} ${INSTALL_PROGRAM} discover-xml ${DESTDIR}${bindir}/discover-xml uninstall: rm -f ${DESTDIR}${bindir}/discover-xml ############################################################################### # Distribution DISTFILES= Makefile.in ${discover_xml_SOURCES} distdir: ${DISTFILES} ${top_srcdir}/buildtools/distdir ${distdir}/${_THISDIR_} ${DISTFILES} discover-2.1.2/discover-xml/discover-xml.c0000644002342100234210000002123710266266027017210 0ustar perepere/* $Progeny$ */ /* discover-xml.c -- Hardware-querying utility. * * AUTHOR: Josh Bressers * * Copyright 2002 Progeny Linux Systems, Inc. * * 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 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 * THE COPYRIGHT HOLDER(S) 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. */ #include "config.h" #include #include #include #include #include #include #include #include #include #include #include enum action { BUS_SUMMARY, TYPE_SUMMARY }; static char shortopts[] = "d:e:tvVh"; static int verbose = 0; static int do_model = 1; static int do_vendor = 1; static int do_model_id = 0; static int do_vendor_id = 0; static struct option longopts[] = { /*options */ { "disable-bus", required_argument, NULL, 'd' }, { "enable-bus", required_argument, NULL, 'e' }, { "type-summary", no_argument, NULL, 't' }, { "verbose", no_argument, NULL, 'v' }, { "help", no_argument, NULL, 'h' }, { "version", no_argument, NULL, 'V' }, { 0, 0, 0, 0 } }; static void print_or_unknown(char *s) { if (s) { printf("%s ", s); } else { fputs("unknown ", stdout); } } static void print_usage() { puts("\n\ usage: discover-xml [OPTIONS]\n\ discover-xml --type-summary [OPTIONS]\n\ discover-xml --version\n\ discover-xml --help"); } static void print_help() { print_usage(); puts("\n\ -t, --type-summary Summarize by device type.\n\ \n\ OPTIONS\n\ -d, --disable-bus BUS Disable the bus BUS.\n\ -e, --enable-bus BUS Enable the bus BUS.\n\ -v, --verbose Print verbose output.\n\ "); printf("Report bugs to <%s>.\n", PACKAGE_BUGREPORT); } static void print_version() { puts(PACKAGE_STRING); } static void print_device_list(discover_device_t *device) { for (; device; device = discover_device_get_next(device)) { fputs("--", stdout); if (do_vendor_id) { print_or_unknown(discover_device_get_vendor_id(device)); } if (do_model_id) { print_or_unknown(discover_device_get_model_id(device)); } if (do_vendor) { print_or_unknown(discover_device_get_vendor_name(device)); } if (do_model) { print_or_unknown(discover_device_get_model_name(device)); } putchar('\n'); } } static void check_status(discover_error_t *status) { if (status != 0) { if (status->code == DISCOVER_ESYS) { err(EX_OSERR, discover_strerror(status)); } else { errx(status->code, discover_strerror(status)); } } } discover_device_t * type_summary(char *type, discover_bus_map_t *busmap) { discover_device_t *result, *device, *last, *new_device; discover_xml_busclass_t *busclasses; discover_error_t *status; int i; assert(type); result = last = NULL; busmap = discover_conf_get_full_bus_map(status); if (status->code != 0) { return NULL; } for (i = 0; busmap[i].name; i++) { if (!busmap[i].scan_default) { continue; } busclasses = discover_xml_get_busclasses(i, status); if (status->code != 0) { return result; } for (device = discover_xml_get_devices(i, status); device; device = discover_device_get_next(device)) { if (!device->busclass) { /* This is a device about which we know nothing. */ continue; } if (discover_xml_busclass_cmp(device->busclass, type, busclasses) == 0) { new_device = discover_device_new(); discover_device_copy(device, new_device); new_device->next = NULL; if (last) { last->next = new_device; last = new_device; } else { result = last = new_device; } } } if (status->code != 0) { return result; } } if (result) { status->code = DISCOVER_SUCCESS; } else { status->code = DISCOVER_EDEVICENOTFOUND; } return result; } int main(int argc, char *argv[]) { discover_error_t *status; discover_bus_map_t *busmap; discover_device_t *device; enum action action; int ch, optindex, i; action = BUS_SUMMARY; status = discover_error_new(); while ((ch = getopt_long(argc, argv, shortopts, longopts, &optindex)) != -1) { switch (ch) { case 'd': if (strcmp(optarg, "all") == 0) { busmap = discover_conf_get_full_bus_map(status); check_status(status); for (i = 0; busmap[i].name; i++) { busmap[i].scan_default = 0; if (verbose) { fprintf(stderr, "Disabled %s\n", busmap[i].name); } } } else { busmap = discover_conf_get_bus_map_by_name(optarg, status); check_status(status); busmap->scan_default = 0; if (verbose) { fprintf(stderr, "Disabled %s\n", optarg); } } break; case 'e': if (strcmp(optarg, "all") == 0) { busmap = discover_conf_get_full_bus_map(status); check_status(status); for (i = 0; busmap[i].name; i++) { busmap[i].scan_default = 1; if (verbose) { fprintf(stderr, "Enabled %s\n", optarg); } } } else { busmap = discover_conf_get_bus_map_by_name(optarg, status); check_status(status); busmap->scan_default = 1; if (verbose) { fprintf(stderr, "Enabled %s\n", optarg); } } break; case 't': action = TYPE_SUMMARY; break; case 'h': print_help(); exit(0); break; case 'V': print_version(); exit(0); break; case 'v': verbose = 1; break; case 0: /* Handled by getopt_long itself (according to the * structure we pass). */ break; case 1: break; default: print_usage(); exit(EX_USAGE); break; } } argc -= optind; argv += optind; busmap = discover_conf_get_full_bus_map(status); assert(status->code == 0); switch(action) { case BUS_SUMMARY: for (i = 0; busmap[i].name; i++) { if (busmap[i].scan_default) { printf("%s\n", busmap[i].name); device = discover_xml_get_devices(i, status); print_device_list(device); } } break; case TYPE_SUMMARY: if (argc == 0) { } else { for (i = 0; i < argc; i++) { print_device_list(type_summary(argv[i], busmap)); } } break; default: fprintf(stderr, "Internal error: impossible action %d\n", action); exit(EX_SOFTWARE); break; } discover_error_free(status); return 0; } /* * Local variables: * c-file-style: "progeny" * indent-tabs-mode: nil * End: */ /* vim: set cin fo=tcroq sw=4 et sts=4 tw=75: */ discover-2.1.2/config.h.in0000644002342100234210000000620010655641246014032 0ustar perepere/* config.h.in. Generated from configure.ac by autoheader. */ /* Define URL for default list of data files. */ #undef DISCOVER_DEFAULT_URL /* Target CPU, vendor, and OS */ #undef DISCOVER_TARGET /* Define to 1 if you have the `alloca' function. */ #undef HAVE_ALLOCA /* Define to 1 if you have the header file, and it defines `DIR'. */ #undef HAVE_DIRENT_H /* Define to 1 if you have the header file. */ #undef HAVE_DLFCN_H /* Define to 1 if you have the header file. */ #undef HAVE_INTTYPES_H /* Define to 1 if you have the `curl' library (-lcurl). */ #undef HAVE_LIBCURL /* Define to 1 if you have the `expat' library (-lexpat). */ #undef HAVE_LIBEXPAT /* Define to 1 if you have the header file. */ #undef HAVE_MEMORY_H /* Define to 1 if you have the `mkdtemp' function. */ #undef HAVE_MKDTEMP /* Define to 1 if you have the `mkstemp' function. */ #undef HAVE_MKSTEMP /* Define to 1 if you have the header file, and it defines `DIR'. */ #undef HAVE_NDIR_H /* Define to 1 if you have the header file. */ #undef HAVE_STDINT_H /* Define to 1 if you have the header file. */ #undef HAVE_STDLIB_H /* Define to 1 if you have the header file. */ #undef HAVE_STRINGS_H /* Define to 1 if you have the header file. */ #undef HAVE_STRING_H /* Define to 1 if you have the `strsep' function. */ #undef HAVE_STRSEP /* Define to 1 if you have the header file, and it defines `DIR'. */ #undef HAVE_SYS_DIR_H /* Define to 1 if you have the header file, and it defines `DIR'. */ #undef HAVE_SYS_NDIR_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_STAT_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_TYPES_H /* Define to 1 if you have the header file. */ #undef HAVE_UNISTD_H /* Define to the address where bug reports for this package should be sent. */ #undef PACKAGE_BUGREPORT /* Discover major version number */ #undef PACKAGE_MAJOR /* Discover micro version number */ #undef PACKAGE_MICRO /* Discover minor version number */ #undef PACKAGE_MINOR /* Define to the full name of this package. */ #undef PACKAGE_NAME /* Define to the full name and version of this package. */ #undef PACKAGE_STRING /* Define to the one symbol short name of this package. */ #undef PACKAGE_TARNAME /* Define to the version of this package. */ #undef PACKAGE_VERSION /* Define path to /proc/ide. */ #undef PATH_PROC_IDE /* Define path to /proc/bus/pci/devices. */ #undef PATH_PROC_PCI /* Define path to /proc/bus/pci. */ #undef PATH_PROC_PCI_DIR /* Define path to /proc/scsi/scsi. */ #undef PATH_PROC_SCSI /* Define path to /proc/bus/usb/devices. */ #undef PATH_PROC_USB /* Define path to /sys/bus/pci/devices. */ #undef PATH_SYS_PCI /* Define to 1 if you have the ANSI C header files. */ #undef STDC_HEADERS /* Path to system configuration directory */ #undef SYSCONFDIR /* Define to 1 if your processor stores words with the most significant byte first (like Motorola and SPARC, unlike Intel and VAX). */ #undef WORDS_BIGENDIAN /* Enable all GNU extensions. */ #undef _GNU_SOURCE discover-2.1.2/buildtools/0002755002342100234210000000000010655642004014164 5ustar pereperediscover-2.1.2/buildtools/recur.mk0000644002342100234210000000035710266266026015644 0ustar perepere# $Progeny$ __recur: @for dir in ${SUBDIR}; do \ echo "${TARGET} ===> ${_THISDIR_}$${dir}"; \ cd "$${dir}" && \ ${MAKE} "_THISDIR_=${_THISDIR_}$${dir}/" ${TARGET} \ || exit $$?; \ cd ${abs_builddir}; \ done discover-2.1.2/buildtools/README0000644002342100234210000000463710266266026015060 0ustar perepere$Progeny$ This directory holds the standard set of tools Progeny uses for all its software packages. The best way to learn to use this stuff is to study its usage in the demo CVS module. Run ./buildtools/setup to setup the build environment. GNU autoconf (http://www.gnu.org/software/autoconf/) is the only real requirement, but you probably also want check (http://check.sourceforge.net/) so you can run the test suite. Note that there is a bug in autoconf 2.53, so you have to use autoconf 2.54 or greater. If you received a tarball you do not have to worry about this. IMPORTANT: Files that are generated by the dist command *must* be built within the source directory. That is, the build directory must be the same as the source directory. Contents ******** build.mk This Makefile fragment provides variables and rules for building libraries and programs. config-script-mkdoc config-script.in config-script.m4 Generic gtk-config style script and autoconf macro for setting it up. The mkdoc script generates a DocBook refentry fragment. dist distcheck distdir Tools for assembling a distribution directory, checking it, and packing it up into a distribution tar file (in that order). recur.mk This Makefile fragment provides a __recur rule for running make in subdirectories. setup Run this program to setup the build environment. show-config.in show-config.m4 Script and autoconf macro for showing the package configuration. This script also runs at the end of the configure process. The following programs were not written at Progeny. check.m4 0.8.2 From . Used to find the check library for running the test suite. config.guess 2002-03-20 config.sub From . Used by the configure script to find the canonical host, build, and target platforms. config.rpath 0.11.2 gettext.h gettext.m4 From GNU gettext (http://archive.progeny.com/gnu/gettext/). Due to problems with gettext, we do not currently use these. install-sh From the GNU autoconf CVS repository: libtool.m4 1.4.2, patched for Darwin/Mac OS X ltmain.sh From GNU libtool (http://www.gnu.org/software/libtool/). vim:set ai et: discover-2.1.2/buildtools/Makefile.in0000644002342100234210000000466410266266026016245 0ustar perepere# $Progeny$ .POSIX: VPATH= @srcdir@ builddir= @builddir@ abs_builddir= @abs_builddir@ top_builddir= @top_builddir@ abs_top_builddir= @abs_top_builddir@ srcdir= @srcdir@ abs_srcdir= @abs_srcdir@ top_srcdir= @top_srcdir@ abs_top_srcdir= @abs_top_srcdir@ prefix= @prefix@ exec_prefix= @exec_prefix@ bindir= @bindir@ INSTALL= @INSTALL@ INSTALL_DIR= @INSTALL_DIR@ INSTALL_SCRIPT= ${INSTALL} -m 555 CONFIG_SCRIPT= @PROGENY_CONFIG_SCRIPT_NAME@ UNINSTALL_FILE= @UNINSTALL_FILE@ UNINSTALL_DIR= @UNINSTALL_DIR@ all: ${CONFIG_SCRIPT} ############################################################################### # Build all: ${CONFIG_SCRIPT} ${CONFIG_SCRIPT}: config-script config-script.refentry ${INSTALL} config-script $@ config-script.refentry: ${top_srcdir}/configure.ac config-script.m4 cp config-script.refentry.gen $@ ############################################################################### # Clean ifdef CONFIG_SCRIPT clean_FILES= ${CONFIG_SCRIPT} distclean_FILES= Makefile config-script config-script.refentry \ show-config config-script.refentry.gen else clean_FILES= distclean_FILES= Makefile endif clean: rm -f ${clean_FILES} distclean: rm -rf ${clean_FILES} ${distclean_FILES} maintainer-clean: rm -rf ${clean_FILES} ${distclean_FILES} ############################################################################### # Installation install: ${CONFIG_SCRIPT} ${INSTALL_DIR} ${DESTDIR}${bindir} ifdef CONFIG_SCRIPT ${INSTALL_SCRIPT} ${CONFIG_SCRIPT} ${DESTDIR}${bindir}/${CONFIG_SCRIPT} endif uninstall: ifdef CONFIG_SCRIPT ${UNINSTALL_FILE} ${DESTDIR}${bindir}/${CONFIG_SCRIPT} endif if /usr/bin/test -d ${DESTDIR}${bindir}; then \ ${UNINSTALL_DIR} ${DESTDIR}${bindir}; \ fi ############################################################################### # Distribution PACKAGE_TARNAME= @PACKAGE_TARNAME@ PACKAGE_VERSION= @PACKAGE_VERSION@ distname= ${PACKAGE_TARNAME}-${PACKAGE_VERSION} distdir= ${top_builddir}/${distname} DISTFILES= Makefile.in \ README \ check.m4 \ config-script-mkdoc \ config-script.in \ config-script.m4 \ config-script.refentry \ config.guess \ config.sub \ config.rpath \ dist \ distcheck \ distdir \ gettext.h \ gettext.m4 \ install-sh \ libtool.m4 \ ltmain.sh \ setup \ show-config.in \ show-config.m4 \ build.mk \ recur.mk distdir: ${DISTFILES} ${top_srcdir}/buildtools/distdir ${distdir}/${_THISDIR_} ${DISTFILES} discover-2.1.2/buildtools/setup0000755002342100234210000000474410266266026015265 0ustar perepere#! /bin/sh # Run this program to setup the build environment. # $Progeny$ # This program is in the public domain. # Too bad we don't have something like sysexits.h for POSIX sh... EX_USAGE=64 usage () { cat < aclocal.m4" cat "$@" > aclocal.m4 return $? } do_autoheader () { echo "autoheader && touch config.h.in" autoheader && touch config.h.in return $? } do_autoconf () { echo "autoconf" autoconf return $? } ############################################################################### buildtools=buildtools aclibs="${buildtools}/check.m4" aclibs="${aclibs} ${buildtools}/config-script.m4" aclibs="${aclibs} ${buildtools}/libtool.m4" aclibs="${aclibs} ${buildtools}/show-config.m4" aclibs="${aclibs} ${buildtools}/java/ac_check_class.m4" aclibs="${aclibs} ${buildtools}/java/ac_check_classpath.m4" aclibs="${aclibs} ${buildtools}/java/ac_check_junit.m4" aclibs="${aclibs} ${buildtools}/java/ac_check_rqrd_class.m4" aclibs="${aclibs} ${buildtools}/java/ac_java_options.m4" aclibs="${aclibs} ${buildtools}/java/ac_prog_jar.m4" aclibs="${aclibs} ${buildtools}/java/ac_prog_java.m4" aclibs="${aclibs} ${buildtools}/java/ac_prog_java_cc.m4" aclibs="${aclibs} ${buildtools}/java/ac_prog_java_works.m4" aclibs="${aclibs} ${buildtools}/java/ac_prog_javac.m4" aclibs="${aclibs} ${buildtools}/java/ac_prog_javac_works.m4" aclibs="${aclibs} ${buildtools}/java/ac_prog_javadoc.m4" aclibs="${aclibs} ${buildtools}/java/ac_prog_javah.m4" aclibs="${aclibs} ${buildtools}/java/ac_try_compile_java.m4" aclibs="${aclibs} ${buildtools}/java/ac_try_run_javac.m4" aclibs="${aclibs} ${buildtools}/python/ac_py_check_lib.m4" aclibs="${aclibs} ${buildtools}/python/ac_prog_python.m4" aclibs="${aclibs} ${buildtools}/python/ac_prog_python_works.m4" aclibs="${aclibs} ${buildtools}/python/ac_py_lib_path.m4" if [ -f aclibs ]; then aclibs=$(sed -e 's/#.*//' aclibs) fi if [ $# -eq 0 ]; then set aclocal autoheader autoconf fi while [ $# -gt 0 ]; do case $1 in aclocal) do_aclocal ${aclibs} ;; autoheader) do_autoheader ;; autoconf) do_autoconf ;; *) usage exit ${EX_USAGE} ;; esac result=$? if [ ${result} -ne 0 ]; then echo "$0: $1 failed." exit ${result} fi shift done exit 0 discover-2.1.2/buildtools/show-config.m40000644002342100234210000000126310266266026016655 0ustar perepere# $Progeny$ AC_DEFUN(PROGENY_SHOW_CONFIG_VAR, [ PROGENY_SHOW_CONFIG_VARS="${PROGENY_SHOW_CONFIG_VARS}; VARS=\"\${VARS} $1\"" PROGENY_SHOW_CONFIG_SET="${PROGENY_SHOW_CONFIG_SET}; $1=\"$2\"" ]) AC_DEFUN(PROGENY_SHOW_CONFIG, [ dnl Initialize these so they don't start with a semicolon, since some dnl shells react badly to a leading semicolon. PROGENY_SHOW_CONFIG_VARS=":" PROGENY_SHOW_CONFIG_SET=":" AC_SUBST(build) AC_SUBST(host) AC_SUBST(target) AC_SUBST(PROGENY_SHOW_CONFIG_SET) AC_SUBST(PROGENY_SHOW_CONFIG_VARS) AC_CONFIG_FILES(buildtools/show-config, chmod 555 buildtools/show-config) AC_CONFIG_COMMANDS(show-config, ./buildtools/show-config) ]) discover-2.1.2/buildtools/config-script.in0000644002342100234210000000222610266266026017267 0ustar perepere#! /bin/sh # $Progeny$$ # This program is in the public domain. # Too bad we don't have something like sysexits.h for POSIX sh... EX_USAGE=64 @PROGENY_CONFIG_SCRIPT_VARS@ @PROGENY_CONFIG_SCRIPT_SET@ usage () { cat < ${distfile} exit 0 discover-2.1.2/buildtools/build.mk0000644002342100234210000000372310266266026015623 0ustar perepere# $Progeny$ .POSIX: # Build paths VPATH= @srcdir@ builddir= @builddir@ abs_builddir= @abs_builddir@ top_builddir= @top_builddir@ abs_top_builddir= @abs_top_builddir@ srcdir= @srcdir@ abs_srcdir= @abs_srcdir@ top_srcdir= @top_srcdir@ abs_top_srcdir= @abs_top_srcdir@ # Install paths prefix= @prefix@ exec_prefix= @exec_prefix@ bindir= @bindir@ sbindir= @sbindir@ libexecdir= @libexecdir@ datadir= @datadir@ sysconfdir= @sysconfdir@ sharedstatedir= @sharedstatedir@ localstatedir= @localstatedir@ libdir= @libdir@ includedir= @includedir@ infodir= @infodir@ mandir= @mandir@ # Distribution PACKAGE_TARNAME= @PACKAGE_TARNAME@ PACKAGE_VERSION= @PACKAGE_VERSION@ distname= ${PACKAGE_TARNAME}-${PACKAGE_VERSION} distdir= ${top_builddir}/${distname} # Program flags CFLAGS= @CFLAGS@ CPPFLAGS= @DEFS@ @CPPFLAGS@ LDFLAGS= @LDFLAGS@ LIBS= @LIBS@ # Programs CC= @CC@ CPP= @CPP@ INSTALL= @INSTALL@ INSTALL_DIR= @INSTALL_DIR@ PYTHON= @PYTHON@ UNINSTALL_FILE= @UNINSTALL_FILE@ UNINSTALL_DIR= @UNINSTALL_DIR@ # Libtool programs LIBTOOL= sh ${top_builddir}/libtool LTCLEAN= ${LIBTOOL} --mode=clean rm -rf LTCOMPILE= ${LIBTOOL} --mode=compile ${CC} -c ${CPPFLAGS} ${CFLAGS} LTLINK= ${LIBTOOL} --mode=link ${CC} ${LDFLAGS} INSTALL_PROGRAM= ${LIBTOOL} --mode=install ${INSTALL} -m 555 INSTALL_LIB= ${LIBTOOL} --mode=install ${INSTALL} -m 555 UNINSTALL_LIB= ${LIBTOOL} --mode=uninstall rm -f # install(1) programs INSTALL_DATA= ${INSTALL} -m 444 INSTALL_SCRIPT= ${INSTALL} -m 555 ############################################################################### # Extra libraries # Path to the portability library libportability= @libportability@ # Check CHECK_CFLAGS= @CHECK_CFLAGS@ CHECK_LIBS= @CHECK_LIBS@ ############################################################################### # Rules .SUFFIXES: .c .lo .c.lo: ${LTCOMPILE} -c $< && touch $@ .SUFFIXES: .py .pyc .py.pyc: ${PYTHON} -c "import py_compile; py_compile.compile('$<')" && touch $@ discover-2.1.2/buildtools/install-sh0000755002342100234210000001270110266266026016173 0ustar perepere#!/bin/sh # # install - install a program, script, or datafile # This comes from X11R5 (mit/util/scripts/install.sh). # # Copyright 1991 by the Massachusetts Institute of Technology # # Permission to use, copy, modify, distribute, and sell this software and its # documentation for any purpose is hereby granted without fee, provided that # the above copyright notice appear in all copies and that both that # copyright notice and this permission notice appear in supporting # documentation, and that the name of M.I.T. not be used in advertising or # publicity pertaining to distribution of the software without specific, # written prior permission. M.I.T. makes no representations about the # suitability of this software for any purpose. It is provided "as is" # without express or implied warranty. # # Calling this script install-sh is preferred over install.sh, to prevent # `make' implicit rules from creating a file called install from it # when there is no Makefile. # # This script is compatible with the BSD install script, but was written # from scratch. It can only install one file at a time, a restriction # shared with many OS's install programs. # set DOITPROG to echo to test this script # Don't use :- since 4.3BSD and earlier shells don't like it. doit="${DOITPROG-}" # put in absolute paths if you don't have them in your path; or use env. vars. mvprog="${MVPROG-mv}" cpprog="${CPPROG-cp}" chmodprog="${CHMODPROG-chmod}" chownprog="${CHOWNPROG-chown}" chgrpprog="${CHGRPPROG-chgrp}" stripprog="${STRIPPROG-strip}" rmprog="${RMPROG-rm}" mkdirprog="${MKDIRPROG-mkdir}" transformbasename="" transform_arg="" instcmd="$mvprog" chmodcmd="$chmodprog 0755" chowncmd="" chgrpcmd="" stripcmd="" rmcmd="$rmprog -f" mvcmd="$mvprog" src="" dst="" dir_arg="" while [ x"$1" != x ]; do case $1 in -c) instcmd="$cpprog" shift continue;; -d) dir_arg=true shift continue;; -m) chmodcmd="$chmodprog $2" shift shift continue;; -o) chowncmd="$chownprog $2" shift shift continue;; -g) chgrpcmd="$chgrpprog $2" shift shift continue;; -s) stripcmd="$stripprog" shift continue;; -t=*) transformarg=`echo $1 | sed 's/-t=//'` shift continue;; -b=*) transformbasename=`echo $1 | sed 's/-b=//'` shift continue;; *) if [ x"$src" = x ] then src=$1 else # this colon is to work around a 386BSD /bin/sh bug : dst=$1 fi shift continue;; esac done if [ x"$src" = x ] then echo "install: no input file specified" exit 1 else : fi if [ x"$dir_arg" != x ]; then dst=$src src="" if [ -d $dst ]; then instcmd=: chmodcmd="" else instcmd=$mkdirprog fi else # Waiting for this to be detected by the "$instcmd $src $dsttmp" command # might cause directories to be created, which would be especially bad # if $src (and thus $dsttmp) contains '*'. if [ -f "$src" ] || [ -d "$src" ] then : else echo "install: $src does not exist" exit 1 fi if [ x"$dst" = x ] then echo "install: no destination specified" exit 1 else : fi # If destination is a directory, append the input filename; if your system # does not like double slashes in filenames, you may need to add some logic if [ -d $dst ] then dst="$dst"/`basename $src` else : fi fi ## this sed command emulates the dirname command dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'` # Make sure that the destination directory exists. # this part is taken from Noah Friedman's mkinstalldirs script # Skip lots of stat calls in the usual case. if [ ! -d "$dstdir" ]; then defaultIFS=' ' IFS="${IFS-${defaultIFS}}" oIFS="${IFS}" # Some sh's can't handle IFS=/ for some reason. IFS='%' set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'` IFS="${oIFS}" pathcomp='' while [ $# -ne 0 ] ; do pathcomp="${pathcomp}${1}" shift if [ ! -d "${pathcomp}" ] ; then $mkdirprog "${pathcomp}" else : fi pathcomp="${pathcomp}/" done fi if [ x"$dir_arg" != x ] then $doit $instcmd $dst && if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else : ; fi && if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else : ; fi && if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else : ; fi && if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else : ; fi else # If we're going to rename the final executable, determine the name now. if [ x"$transformarg" = x ] then dstfile=`basename $dst` else dstfile=`basename $dst $transformbasename | sed $transformarg`$transformbasename fi # don't allow the sed command to completely eliminate the filename if [ x"$dstfile" = x ] then dstfile=`basename $dst` else : fi # Make a temp file name in the proper directory. dsttmp=$dstdir/#inst.$$# # Move or copy the file name to the temp name $doit $instcmd $src $dsttmp && trap "rm -f ${dsttmp}" 0 && # and set any options; do chmod last to preserve setuid bits # If any of these fail, we abort the whole thing. If we want to # ignore errors from any of these, just make sure not to ignore # errors from the above "$doit $instcmd $src $dsttmp" command. if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else :;fi && if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else :;fi && if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else :;fi && if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else :;fi && # Now rename the file to the real destination. $doit $rmcmd -f $dstdir/$dstfile && $doit $mvcmd $dsttmp $dstdir/$dstfile fi && exit 0 discover-2.1.2/buildtools/ltmain.sh0000644002342100234210000043172710266266026016024 0ustar perepere# ltmain.sh - Provide generalized library-building support services. # NOTE: Changing this file will not affect anything until you rerun configure. # # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001 # Free Software Foundation, Inc. # Originally by Gordon Matzigkeit , 1996 # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Check that we have a working $echo. if test "X$1" = X--no-reexec; then # Discard the --no-reexec flag, and continue. shift elif test "X$1" = X--fallback-echo; then # Avoid inline document here, it may be left over : elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then # Yippee, $echo works! : else # Restart under the correct shell, and then maybe $echo will work. exec $SHELL "$0" --no-reexec ${1+"$@"} fi if test "X$1" = X--fallback-echo; then # used as fallback echo shift cat <&2 echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 exit 1 fi # Global variables. mode=$default_mode nonopt= prev= prevopt= run= show="$echo" show_help= execute_dlfiles= lo2o="s/\\.lo\$/.${objext}/" o2lo="s/\\.${objext}\$/.lo/" # Parse our command line options once, thoroughly. while test $# -gt 0 do arg="$1" shift case $arg in -*=*) optarg=`$echo "X$arg" | $Xsed -e 's/[-_a-zA-Z0-9]*=//'` ;; *) optarg= ;; esac # If the previous option needs an argument, assign it. if test -n "$prev"; then case $prev in execute_dlfiles) execute_dlfiles="$execute_dlfiles $arg" ;; *) eval "$prev=\$arg" ;; esac prev= prevopt= continue fi # Have we seen a non-optional argument yet? case $arg in --help) show_help=yes ;; --version) echo "$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP" exit 0 ;; --config) ${SED} -e '1,/^# ### BEGIN LIBTOOL CONFIG/d' -e '/^# ### END LIBTOOL CONFIG/,$d' $0 exit 0 ;; --debug) echo "$progname: enabling shell trace mode" set -x ;; --dry-run | -n) run=: ;; --features) echo "host: $host" if test "$build_libtool_libs" = yes; then echo "enable shared libraries" else echo "disable shared libraries" fi if test "$build_old_libs" = yes; then echo "enable static libraries" else echo "disable static libraries" fi exit 0 ;; --finish) mode="finish" ;; --mode) prevopt="--mode" prev=mode ;; --mode=*) mode="$optarg" ;; --preserve-dup-deps) duplicate_deps="yes" ;; --quiet | --silent) show=: ;; -dlopen) prevopt="-dlopen" prev=execute_dlfiles ;; -*) $echo "$modename: unrecognized option \`$arg'" 1>&2 $echo "$help" 1>&2 exit 1 ;; *) nonopt="$arg" break ;; esac done if test -n "$prevopt"; then $echo "$modename: option \`$prevopt' requires an argument" 1>&2 $echo "$help" 1>&2 exit 1 fi # If this variable is set in any of the actions, the command in it # will be execed at the end. This prevents here-documents from being # left over by shells. exec_cmd= if test -z "$show_help"; then # Infer the operation mode. if test -z "$mode"; then case $nonopt in *cc | *++ | gcc* | *-gcc* | g++* | xlc*) mode=link for arg do case $arg in -c) mode=compile break ;; esac done ;; *db | *dbx | *strace | *truss) mode=execute ;; *install*|cp|mv) mode=install ;; *rm) mode=uninstall ;; *) # If we have no mode, but dlfiles were specified, then do execute mode. test -n "$execute_dlfiles" && mode=execute # Just use the default operation mode. if test -z "$mode"; then if test -n "$nonopt"; then $echo "$modename: warning: cannot infer operation mode from \`$nonopt'" 1>&2 else $echo "$modename: warning: cannot infer operation mode without MODE-ARGS" 1>&2 fi fi ;; esac fi # Only execute mode is allowed to have -dlopen flags. if test -n "$execute_dlfiles" && test "$mode" != execute; then $echo "$modename: unrecognized option \`-dlopen'" 1>&2 $echo "$help" 1>&2 exit 1 fi # Change the help message to a mode-specific one. generic_help="$help" help="Try \`$modename --help --mode=$mode' for more information." # These modes are in order of execution frequency so that they run quickly. case $mode in # libtool compile mode compile) modename="$modename: compile" # Get the compilation command and the source file. base_compile= prev= lastarg= srcfile="$nonopt" suppress_output= user_target=no for arg do case $prev in "") ;; xcompiler) # Aesthetically quote the previous argument. prev= lastarg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` case $arg in # Double-quote args containing other shell metacharacters. # Many Bourne shells cannot handle close brackets correctly # in scan sets, so we specify it separately. *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac # Add the previous argument to base_compile. if test -z "$base_compile"; then base_compile="$lastarg" else base_compile="$base_compile $lastarg" fi continue ;; esac # Accept any command-line options. case $arg in -o) if test "$user_target" != "no"; then $echo "$modename: you cannot specify \`-o' more than once" 1>&2 exit 1 fi user_target=next ;; -static) build_old_libs=yes continue ;; -prefer-pic) pic_mode=yes continue ;; -prefer-non-pic) pic_mode=no continue ;; -Xcompiler) prev=xcompiler continue ;; -Wc,*) args=`$echo "X$arg" | $Xsed -e "s/^-Wc,//"` lastarg= save_ifs="$IFS"; IFS=',' for arg in $args; do IFS="$save_ifs" # Double-quote args containing other shell metacharacters. # Many Bourne shells cannot handle close brackets correctly # in scan sets, so we specify it separately. case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac lastarg="$lastarg $arg" done IFS="$save_ifs" lastarg=`$echo "X$lastarg" | $Xsed -e "s/^ //"` # Add the arguments to base_compile. if test -z "$base_compile"; then base_compile="$lastarg" else base_compile="$base_compile $lastarg" fi continue ;; esac case $user_target in next) # The next one is the -o target name user_target=yes continue ;; yes) # We got the output file user_target=set libobj="$arg" continue ;; esac # Accept the current argument as the source file. lastarg="$srcfile" srcfile="$arg" # Aesthetically quote the previous argument. # Backslashify any backslashes, double quotes, and dollar signs. # These are the only characters that are still specially # interpreted inside of double-quoted scrings. lastarg=`$echo "X$lastarg" | $Xsed -e "$sed_quote_subst"` # Double-quote args containing other shell metacharacters. # Many Bourne shells cannot handle close brackets correctly # in scan sets, so we specify it separately. case $lastarg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") lastarg="\"$lastarg\"" ;; esac # Add the previous argument to base_compile. if test -z "$base_compile"; then base_compile="$lastarg" else base_compile="$base_compile $lastarg" fi done case $user_target in set) ;; no) # Get the name of the library object. libobj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'` ;; *) $echo "$modename: you must specify a target with \`-o'" 1>&2 exit 1 ;; esac # Recognize several different file suffixes. # If the user specifies -o file.o, it is replaced with file.lo xform='[cCFSfmso]' case $libobj in *.ada) xform=ada ;; *.adb) xform=adb ;; *.ads) xform=ads ;; *.asm) xform=asm ;; *.c++) xform=c++ ;; *.cc) xform=cc ;; *.cpp) xform=cpp ;; *.cxx) xform=cxx ;; *.f90) xform=f90 ;; *.for) xform=for ;; esac libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"` case $libobj in *.lo) obj=`$echo "X$libobj" | $Xsed -e "$lo2o"` ;; *) $echo "$modename: cannot determine name of library object from \`$libobj'" 1>&2 exit 1 ;; esac if test -z "$base_compile"; then $echo "$modename: you must specify a compilation command" 1>&2 $echo "$help" 1>&2 exit 1 fi # Delete any leftover library objects. if test "$build_old_libs" = yes; then removelist="$obj $libobj" else removelist="$libobj" fi $run $rm $removelist trap "$run $rm $removelist; exit 1" 1 2 15 # On Cygwin there's no "real" PIC flag so we must build both object types case $host_os in cygwin* | mingw* | pw32* | os2*) pic_mode=default ;; esac if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then # non-PIC code in shared libraries is not supported pic_mode=default fi # Calculate the filename of the output object if compiler does # not support -o with -c if test "$compiler_c_o" = no; then output_obj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext} lockfile="$output_obj.lock" removelist="$removelist $output_obj $lockfile" trap "$run $rm $removelist; exit 1" 1 2 15 else need_locks=no lockfile= fi # Lock this critical section if it is needed # We use this script file to make the link, it avoids creating a new file if test "$need_locks" = yes; then until $run ln "$0" "$lockfile" 2>/dev/null; do $show "Waiting for $lockfile to be removed" sleep 2 done elif test "$need_locks" = warn; then if test -f "$lockfile"; then echo "\ *** ERROR, $lockfile exists and contains: `cat $lockfile 2>/dev/null` This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support \`-c' and \`-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $run $rm $removelist exit 1 fi echo $srcfile > "$lockfile" fi if test -n "$fix_srcfile_path"; then eval srcfile=\"$fix_srcfile_path\" fi # Only build a PIC object if we are building libtool libraries. if test "$build_libtool_libs" = yes; then # Without this assignment, base_compile gets emptied. fbsd_hideous_sh_bug=$base_compile if test "$pic_mode" != no; then # All platforms use -DPIC, to notify preprocessed assembler code. command="$base_compile $srcfile $pic_flag -DPIC" else # Don't build PIC code command="$base_compile $srcfile" fi if test "$build_old_libs" = yes; then lo_libobj="$libobj" dir=`$echo "X$libobj" | $Xsed -e 's%/[^/]*$%%'` if test "X$dir" = "X$libobj"; then dir="$objdir" else dir="$dir/$objdir" fi libobj="$dir/"`$echo "X$libobj" | $Xsed -e 's%^.*/%%'` if test -d "$dir"; then $show "$rm $libobj" $run $rm $libobj else $show "$mkdir $dir" $run $mkdir $dir status=$? if test $status -ne 0 && test ! -d $dir; then exit $status fi fi fi if test "$compiler_o_lo" = yes; then output_obj="$libobj" command="$command -o $output_obj" elif test "$compiler_c_o" = yes; then output_obj="$obj" command="$command -o $output_obj" fi $run $rm "$output_obj" $show "$command" if $run eval "$command"; then : else test -n "$output_obj" && $run $rm $removelist exit 1 fi if test "$need_locks" = warn && test x"`cat $lockfile 2>/dev/null`" != x"$srcfile"; then echo "\ *** ERROR, $lockfile contains: `cat $lockfile 2>/dev/null` but it should contain: $srcfile This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support \`-c' and \`-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $run $rm $removelist exit 1 fi # Just move the object if needed, then go on to compile the next one if test x"$output_obj" != x"$libobj"; then $show "$mv $output_obj $libobj" if $run $mv $output_obj $libobj; then : else error=$? $run $rm $removelist exit $error fi fi # If we have no pic_flag, then copy the object into place and finish. if (test -z "$pic_flag" || test "$pic_mode" != default) && test "$build_old_libs" = yes; then # Rename the .lo from within objdir to obj if test -f $obj; then $show $rm $obj $run $rm $obj fi $show "$mv $libobj $obj" if $run $mv $libobj $obj; then : else error=$? $run $rm $removelist exit $error fi xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'` if test "X$xdir" = "X$obj"; then xdir="." else xdir="$xdir" fi baseobj=`$echo "X$obj" | $Xsed -e "s%.*/%%"` libobj=`$echo "X$baseobj" | $Xsed -e "$o2lo"` # Now arrange that obj and lo_libobj become the same file $show "(cd $xdir && $LN_S $baseobj $libobj)" if $run eval '(cd $xdir && $LN_S $baseobj $libobj)'; then # Unlock the critical section if it was locked if test "$need_locks" != no; then $run $rm "$lockfile" fi exit 0 else error=$? $run $rm $removelist exit $error fi fi # Allow error messages only from the first compilation. suppress_output=' >/dev/null 2>&1' fi # Only build a position-dependent object if we build old libraries. if test "$build_old_libs" = yes; then if test "$pic_mode" != yes; then # Don't build PIC code command="$base_compile $srcfile" else # All platforms use -DPIC, to notify preprocessed assembler code. command="$base_compile $srcfile $pic_flag -DPIC" fi if test "$compiler_c_o" = yes; then command="$command -o $obj" output_obj="$obj" fi # Suppress compiler output if we already did a PIC compilation. command="$command$suppress_output" $run $rm "$output_obj" $show "$command" if $run eval "$command"; then : else $run $rm $removelist exit 1 fi if test "$need_locks" = warn && test x"`cat $lockfile 2>/dev/null`" != x"$srcfile"; then echo "\ *** ERROR, $lockfile contains: `cat $lockfile 2>/dev/null` but it should contain: $srcfile This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support \`-c' and \`-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $run $rm $removelist exit 1 fi # Just move the object if needed if test x"$output_obj" != x"$obj"; then $show "$mv $output_obj $obj" if $run $mv $output_obj $obj; then : else error=$? $run $rm $removelist exit $error fi fi # Create an invalid libtool object if no PIC, so that we do not # accidentally link it into a program. if test "$build_libtool_libs" != yes; then $show "echo timestamp > $libobj" $run eval "echo timestamp > \$libobj" || exit $? else # Move the .lo from within objdir $show "$mv $libobj $lo_libobj" if $run $mv $libobj $lo_libobj; then : else error=$? $run $rm $removelist exit $error fi fi fi # Unlock the critical section if it was locked if test "$need_locks" != no; then $run $rm "$lockfile" fi exit 0 ;; # libtool link mode link | relink) modename="$modename: link" case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) # It is impossible to link a dll without this setting, and # we shouldn't force the makefile maintainer to figure out # which system we are compiling for in order to pass an extra # flag for every libtool invokation. # allow_undefined=no # FIXME: Unfortunately, there are problems with the above when trying # to make a dll which has undefined symbols, in which case not # even a static library is built. For now, we need to specify # -no-undefined on the libtool link line when we can be certain # that all symbols are satisfied, otherwise we get a static library. allow_undefined=yes ;; *) allow_undefined=yes ;; esac libtool_args="$nonopt" compile_command="$nonopt" finalize_command="$nonopt" compile_rpath= finalize_rpath= compile_shlibpath= finalize_shlibpath= convenience= old_convenience= deplibs= old_deplibs= compiler_flags= linker_flags= dllsearchpath= lib_search_path=`pwd` inst_prefix_dir= avoid_version=no dlfiles= dlprefiles= dlself=no export_dynamic=no export_symbols= export_symbols_regex= generated= libobjs= ltlibs= module=no no_install=no objs= prefer_static_libs=no preload=no prev= prevarg= release= rpath= xrpath= perm_rpath= temp_rpath= thread_safe=no vinfo= # We need to know -static, to get the right output filenames. for arg do case $arg in -all-static | -static) if test "X$arg" = "X-all-static"; then if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then $echo "$modename: warning: complete static linking is impossible in this configuration" 1>&2 fi if test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi else if test -z "$pic_flag" && test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi fi build_libtool_libs=no build_old_libs=yes prefer_static_libs=yes break ;; esac done # See if our shared archives depend on static archives. test -n "$old_archive_from_new_cmds" && build_old_libs=yes # Go through the arguments, transforming them on the way. while test $# -gt 0; do arg="$1" shift case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") qarg=\"`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`\" ### testsuite: skip nested quoting test ;; *) qarg=$arg ;; esac libtool_args="$libtool_args $qarg" # If the previous option needs an argument, assign it. if test -n "$prev"; then case $prev in output) compile_command="$compile_command @OUTPUT@" finalize_command="$finalize_command @OUTPUT@" ;; esac case $prev in dlfiles|dlprefiles) if test "$preload" = no; then # Add the symbol object into the linking commands. compile_command="$compile_command @SYMFILE@" finalize_command="$finalize_command @SYMFILE@" preload=yes fi case $arg in *.la | *.lo) ;; # We handle these cases below. force) if test "$dlself" = no; then dlself=needless export_dynamic=yes fi prev= continue ;; self) if test "$prev" = dlprefiles; then dlself=yes elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then dlself=yes else dlself=needless export_dynamic=yes fi prev= continue ;; *) if test "$prev" = dlfiles; then dlfiles="$dlfiles $arg" else dlprefiles="$dlprefiles $arg" fi prev= continue ;; esac ;; expsyms) export_symbols="$arg" if test ! -f "$arg"; then $echo "$modename: symbol file \`$arg' does not exist" exit 1 fi prev= continue ;; expsyms_regex) export_symbols_regex="$arg" prev= continue ;; inst_prefix) inst_prefix_dir="$arg" prev= continue ;; release) release="-$arg" prev= continue ;; rpath | xrpath) # We need an absolute path. case $arg in [\\/]* | [A-Za-z]:[\\/]*) ;; *) $echo "$modename: only absolute run-paths are allowed" 1>&2 exit 1 ;; esac if test "$prev" = rpath; then case "$rpath " in *" $arg "*) ;; *) rpath="$rpath $arg" ;; esac else case "$xrpath " in *" $arg "*) ;; *) xrpath="$xrpath $arg" ;; esac fi prev= continue ;; xcompiler) compiler_flags="$compiler_flags $qarg" prev= compile_command="$compile_command $qarg" finalize_command="$finalize_command $qarg" continue ;; xlinker) linker_flags="$linker_flags $qarg" compiler_flags="$compiler_flags $wl$qarg" prev= compile_command="$compile_command $wl$qarg" finalize_command="$finalize_command $wl$qarg" continue ;; *) eval "$prev=\"\$arg\"" prev= continue ;; esac fi # test -n $prev prevarg="$arg" case $arg in -all-static) if test -n "$link_static_flag"; then compile_command="$compile_command $link_static_flag" finalize_command="$finalize_command $link_static_flag" fi continue ;; -allow-undefined) # FIXME: remove this flag sometime in the future. $echo "$modename: \`-allow-undefined' is deprecated because it is the default" 1>&2 continue ;; -avoid-version) avoid_version=yes continue ;; -dlopen) prev=dlfiles continue ;; -dlpreopen) prev=dlprefiles continue ;; -export-dynamic) export_dynamic=yes continue ;; -export-symbols | -export-symbols-regex) if test -n "$export_symbols" || test -n "$export_symbols_regex"; then $echo "$modename: more than one -exported-symbols argument is not allowed" exit 1 fi if test "X$arg" = "X-export-symbols"; then prev=expsyms else prev=expsyms_regex fi continue ;; -inst-prefix-dir) prev=inst_prefix continue ;; # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:* # so, if we see these flags be careful not to treat them like -L -L[A-Z][A-Z]*:*) if test -z "$with_gcc"; then case $host in *-*-irix* | *-*-nonstopux*) compile_command="$compile_command $arg" finalize_command="$finalize_command $arg" ;; esac fi continue ;; -L*) dir=`$echo "X$arg" | $Xsed -e 's/^-L//'` # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) absdir=`cd "$dir" && pwd` if test -z "$absdir"; then $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2 exit 1 fi dir="$absdir" ;; esac case "$deplibs " in *" -L$dir "*) ;; *) deplibs="$deplibs -L$dir" lib_search_path="$lib_search_path $dir" ;; esac case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) case :$dllsearchpath: in *":$dir:"*) ;; *) dllsearchpath="$dllsearchpath:$dir";; esac ;; esac continue ;; -l*) if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then case $host in *-*-cygwin* | *-*-pw32* | *-*-beos*) # These systems don't actually have a C or math library (as such) continue ;; *-*-mingw* | *-*-os2*) # These systems don't actually have a C library (as such) test "X$arg" = "X-lc" && continue ;; *-*-openbsd* | *-*-freebsd*) # Do not include libc due to us having libc/libc_r. test "X$arg" = "X-lc" && continue ;; esac elif test "X$arg" = "X-lc_r"; then case $host in *-*-openbsd* | *-*-freebsd*) # Do not include libc_r directly, use -pthread flag. continue ;; esac fi deplibs="$deplibs $arg" continue ;; -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads) deplibs="$deplibs $arg" continue ;; -module) module=yes continue ;; -no-fast-install) fast_install=no continue ;; -no-install) case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) # The PATH hackery in wrapper scripts is required on Windows # in order for the loader to find any dlls it needs. $echo "$modename: warning: \`-no-install' is ignored for $host" 1>&2 $echo "$modename: warning: assuming \`-no-fast-install' instead" 1>&2 fast_install=no ;; *) no_install=yes ;; esac continue ;; -no-undefined) allow_undefined=no continue ;; -o) prev=output ;; -release) prev=release continue ;; -rpath) prev=rpath continue ;; -R) prev=xrpath continue ;; -R*) dir=`$echo "X$arg" | $Xsed -e 's/^-R//'` # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) $echo "$modename: only absolute run-paths are allowed" 1>&2 exit 1 ;; esac case "$xrpath " in *" $dir "*) ;; *) xrpath="$xrpath $dir" ;; esac continue ;; -static) # The effects of -static are defined in a previous loop. # We used to do the same as -all-static on platforms that # didn't have a PIC flag, but the assumption that the effects # would be equivalent was wrong. It would break on at least # Digital Unix and AIX. continue ;; -thread-safe) thread_safe=yes continue ;; -version-info) prev=vinfo continue ;; -Wc,*) args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wc,//'` arg= save_ifs="$IFS"; IFS=',' for flag in $args; do IFS="$save_ifs" case $flag in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") flag="\"$flag\"" ;; esac arg="$arg $wl$flag" compiler_flags="$compiler_flags $flag" done IFS="$save_ifs" arg=`$echo "X$arg" | $Xsed -e "s/^ //"` ;; -Wl,*) args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wl,//'` arg= save_ifs="$IFS"; IFS=',' for flag in $args; do IFS="$save_ifs" case $flag in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") flag="\"$flag\"" ;; esac arg="$arg $wl$flag" compiler_flags="$compiler_flags $wl$flag" linker_flags="$linker_flags $flag" done IFS="$save_ifs" arg=`$echo "X$arg" | $Xsed -e "s/^ //"` ;; -Xcompiler) prev=xcompiler continue ;; -Xlinker) prev=xlinker continue ;; # Some other compiler flag. -* | +*) # Unknown arguments in both finalize_command and compile_command need # to be aesthetically quoted because they are evaled later. arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac ;; *.lo | *.$objext) # A library or standard object. if test "$prev" = dlfiles; then # This file was specified with -dlopen. if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then dlfiles="$dlfiles $arg" prev= continue else # If libtool objects are unsupported, then we need to preload. prev=dlprefiles fi fi if test "$prev" = dlprefiles; then # Preload the old-style object. dlprefiles="$dlprefiles "`$echo "X$arg" | $Xsed -e "$lo2o"` prev= else case $arg in *.lo) libobjs="$libobjs $arg" ;; *) objs="$objs $arg" ;; esac fi ;; *.$libext) # An archive. deplibs="$deplibs $arg" old_deplibs="$old_deplibs $arg" continue ;; *.la) # A libtool-controlled library. if test "$prev" = dlfiles; then # This library was specified with -dlopen. dlfiles="$dlfiles $arg" prev= elif test "$prev" = dlprefiles; then # The library was specified with -dlpreopen. dlprefiles="$dlprefiles $arg" prev= else deplibs="$deplibs $arg" fi continue ;; # Some other compiler argument. *) # Unknown arguments in both finalize_command and compile_command need # to be aesthetically quoted because they are evaled later. arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac ;; esac # arg # Now actually substitute the argument into the commands. if test -n "$arg"; then compile_command="$compile_command $arg" finalize_command="$finalize_command $arg" fi done # argument parsing loop if test -n "$prev"; then $echo "$modename: the \`$prevarg' option requires an argument" 1>&2 $echo "$help" 1>&2 exit 1 fi if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then eval arg=\"$export_dynamic_flag_spec\" compile_command="$compile_command $arg" finalize_command="$finalize_command $arg" fi # calculate the name of the file, without its directory outputname=`$echo "X$output" | $Xsed -e 's%^.*/%%'` libobjs_save="$libobjs" if test -n "$shlibpath_var"; then # get the directories listed in $shlibpath_var eval shlib_search_path=\`\$echo \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\` else shlib_search_path= fi eval sys_lib_search_path=\"$sys_lib_search_path_spec\" eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\" output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'` if test "X$output_objdir" = "X$output"; then output_objdir="$objdir" else output_objdir="$output_objdir/$objdir" fi # Create the object directory. if test ! -d $output_objdir; then $show "$mkdir $output_objdir" $run $mkdir $output_objdir status=$? if test $status -ne 0 && test ! -d $output_objdir; then exit $status fi fi # Determine the type of output case $output in "") $echo "$modename: you must specify an output file" 1>&2 $echo "$help" 1>&2 exit 1 ;; *.$libext) linkmode=oldlib ;; *.lo | *.$objext) linkmode=obj ;; *.la) linkmode=lib ;; *) linkmode=prog ;; # Anything else should be a program. esac specialdeplibs= libs= # Find all interdependent deplibs by searching for libraries # that are linked more than once (e.g. -la -lb -la) for deplib in $deplibs; do if test "X$duplicate_deps" = "Xyes" ; then case "$libs " in *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; esac fi libs="$libs $deplib" done deplibs= newdependency_libs= newlib_search_path= need_relink=no # whether we're linking any uninstalled libtool libraries notinst_deplibs= # not-installed libtool libraries notinst_path= # paths that contain not-installed libtool libraries case $linkmode in lib) passes="conv link" for file in $dlfiles $dlprefiles; do case $file in *.la) ;; *) $echo "$modename: libraries can \`-dlopen' only libtool libraries: $file" 1>&2 exit 1 ;; esac done ;; prog) compile_deplibs= finalize_deplibs= alldeplibs=no newdlfiles= newdlprefiles= passes="conv scan dlopen dlpreopen link" ;; *) passes="conv" ;; esac for pass in $passes; do if test $linkmode = prog; then # Determine which files to process case $pass in dlopen) libs="$dlfiles" save_deplibs="$deplibs" # Collect dlpreopened libraries deplibs= ;; dlpreopen) libs="$dlprefiles" ;; link) libs="$deplibs %DEPLIBS% $dependency_libs" ;; esac fi for deplib in $libs; do lib= found=no case $deplib in -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads) if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" fi continue ;; -l*) if test $linkmode = oldlib && test $linkmode = obj; then $echo "$modename: warning: \`-l' is ignored for archives/objects: $deplib" 1>&2 continue fi if test $pass = conv; then deplibs="$deplib $deplibs" continue fi name=`$echo "X$deplib" | $Xsed -e 's/^-l//'` for searchdir in $newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path; do # Search the libtool library lib="$searchdir/lib${name}.la" if test -f "$lib"; then found=yes break fi done if test "$found" != yes; then # deplib doesn't seem to be a libtool library if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" test $linkmode = lib && newdependency_libs="$deplib $newdependency_libs" fi continue fi ;; # -l -L*) case $linkmode in lib) deplibs="$deplib $deplibs" test $pass = conv && continue newdependency_libs="$deplib $newdependency_libs" newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'` ;; prog) if test $pass = conv; then deplibs="$deplib $deplibs" continue fi if test $pass = scan; then deplibs="$deplib $deplibs" newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'` else compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" fi ;; *) $echo "$modename: warning: \`-L' is ignored for archives/objects: $deplib" 1>&2 ;; esac # linkmode continue ;; # -L -R*) if test $pass = link; then dir=`$echo "X$deplib" | $Xsed -e 's/^-R//'` # Make sure the xrpath contains only unique directories. case "$xrpath " in *" $dir "*) ;; *) xrpath="$xrpath $dir" ;; esac fi deplibs="$deplib $deplibs" continue ;; *.la) lib="$deplib" ;; *.$libext) if test $pass = conv; then deplibs="$deplib $deplibs" continue fi case $linkmode in lib) if test "$deplibs_check_method" != pass_all; then echo echo "*** Warning: Trying to link with static lib archive $deplib." echo "*** I have the capability to make that library automatically link in when" echo "*** you link to this library. But I can only do this if you have a" echo "*** shared version of the library, which you do not appear to have" echo "*** because the file extensions .$libext of this argument makes me believe" echo "*** that it is just a static archive that I should not used here." else echo echo "*** Warning: Linking the shared library $output against the" echo "*** static library $deplib is not portable!" deplibs="$deplib $deplibs" fi continue ;; prog) if test $pass != link; then deplibs="$deplib $deplibs" else compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" fi continue ;; esac # linkmode ;; # *.$libext *.lo | *.$objext) if test $pass = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then # If there is no dlopen support or we're linking statically, # we need to preload. newdlprefiles="$newdlprefiles $deplib" compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else newdlfiles="$newdlfiles $deplib" fi continue ;; %DEPLIBS%) alldeplibs=yes continue ;; esac # case $deplib if test $found = yes || test -f "$lib"; then : else $echo "$modename: cannot find the library \`$lib'" 1>&2 exit 1 fi # Check to see that this really is a libtool archive. if (${SED} -e '2q' $lib | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : else $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 exit 1 fi ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'` test "X$ladir" = "X$lib" && ladir="." dlname= dlopen= dlpreopen= libdir= library_names= old_library= # If the library was installed with an old release of libtool, # it will not redefine variable installed. installed=yes # Read the .la file case $lib in */* | *\\*) . $lib ;; *) . ./$lib ;; esac if test "$linkmode,$pass" = "lib,link" || test "$linkmode,$pass" = "prog,scan" || { test $linkmode = oldlib && test $linkmode = obj; }; then # Add dl[pre]opened files of deplib test -n "$dlopen" && dlfiles="$dlfiles $dlopen" test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen" fi if test $pass = conv; then # Only check for convenience libraries deplibs="$lib $deplibs" if test -z "$libdir"; then if test -z "$old_library"; then $echo "$modename: cannot find name of link library for \`$lib'" 1>&2 exit 1 fi # It is a libtool convenience library, so add in its objects. convenience="$convenience $ladir/$objdir/$old_library" old_convenience="$old_convenience $ladir/$objdir/$old_library" tmp_libs= for deplib in $dependency_libs; do deplibs="$deplib $deplibs" if test "X$duplicate_deps" = "Xyes" ; then case "$tmp_libs " in *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; esac fi tmp_libs="$tmp_libs $deplib" done elif test $linkmode != prog && test $linkmode != lib; then $echo "$modename: \`$lib' is not a convenience library" 1>&2 exit 1 fi continue fi # $pass = conv # Get the name of the library we link against. linklib= for l in $old_library $library_names; do linklib="$l" done if test -z "$linklib"; then $echo "$modename: cannot find name of link library for \`$lib'" 1>&2 exit 1 fi # This library was specified with -dlopen. if test $pass = dlopen; then if test -z "$libdir"; then $echo "$modename: cannot -dlopen a convenience library: \`$lib'" 1>&2 exit 1 fi if test -z "$dlname" || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then # If there is no dlname, no dlopen support or we're linking # statically, we need to preload. dlprefiles="$dlprefiles $lib" else newdlfiles="$newdlfiles $lib" fi continue fi # $pass = dlopen # We need an absolute path. case $ladir in [\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;; *) abs_ladir=`cd "$ladir" && pwd` if test -z "$abs_ladir"; then $echo "$modename: warning: cannot determine absolute directory name of \`$ladir'" 1>&2 $echo "$modename: passing it literally to the linker, although it might fail" 1>&2 abs_ladir="$ladir" fi ;; esac laname=`$echo "X$lib" | $Xsed -e 's%^.*/%%'` # Find the relevant object directory and library name. if test "X$installed" = Xyes; then if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then $echo "$modename: warning: library \`$lib' was moved." 1>&2 dir="$ladir" absdir="$abs_ladir" libdir="$abs_ladir" else dir="$libdir" absdir="$libdir" fi else dir="$ladir/$objdir" absdir="$abs_ladir/$objdir" # Remove this search path later notinst_path="$notinst_path $abs_ladir" fi # $installed = yes name=`$echo "X$laname" | $Xsed -e 's/\.la$//' -e 's/^lib//'` # This library was specified with -dlpreopen. if test $pass = dlpreopen; then if test -z "$libdir"; then $echo "$modename: cannot -dlpreopen a convenience library: \`$lib'" 1>&2 exit 1 fi # Prefer using a static library (so that no silly _DYNAMIC symbols # are required to link). if test -n "$old_library"; then newdlprefiles="$newdlprefiles $dir/$old_library" # Otherwise, use the dlname, so that lt_dlopen finds it. elif test -n "$dlname"; then newdlprefiles="$newdlprefiles $dir/$dlname" else newdlprefiles="$newdlprefiles $dir/$linklib" fi fi # $pass = dlpreopen if test -z "$libdir"; then # Link the convenience library if test $linkmode = lib; then deplibs="$dir/$old_library $deplibs" elif test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$dir/$old_library $compile_deplibs" finalize_deplibs="$dir/$old_library $finalize_deplibs" else deplibs="$lib $deplibs" fi continue fi if test $linkmode = prog && test $pass != link; then newlib_search_path="$newlib_search_path $ladir" deplibs="$lib $deplibs" linkalldeplibs=no if test "$link_all_deplibs" != no || test -z "$library_names" || test "$build_libtool_libs" = no; then linkalldeplibs=yes fi tmp_libs= for deplib in $dependency_libs; do case $deplib in -L*) newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`;; ### testsuite: skip nested quoting test esac # Need to link against all dependency_libs? if test $linkalldeplibs = yes; then deplibs="$deplib $deplibs" else # Need to hardcode shared library paths # or/and link against static libraries newdependency_libs="$deplib $newdependency_libs" fi if test "X$duplicate_deps" = "Xyes" ; then case "$tmp_libs " in *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; esac fi tmp_libs="$tmp_libs $deplib" done # for deplib continue fi # $linkmode = prog... link_static=no # Whether the deplib will be linked statically if test -n "$library_names" && { test "$prefer_static_libs" = no || test -z "$old_library"; }; then # Link against this shared library if test "$linkmode,$pass" = "prog,link" || { test $linkmode = lib && test $hardcode_into_libs = yes; }; then # Hardcode the library path. # Skip directories that are in the system default run-time # search path. case " $sys_lib_dlsearch_path " in *" $absdir "*) ;; *) case "$compile_rpath " in *" $absdir "*) ;; *) compile_rpath="$compile_rpath $absdir" esac ;; esac case " $sys_lib_dlsearch_path " in *" $libdir "*) ;; *) case "$finalize_rpath " in *" $libdir "*) ;; *) finalize_rpath="$finalize_rpath $libdir" esac ;; esac if test $linkmode = prog; then # We need to hardcode the library path if test -n "$shlibpath_var"; then # Make sure the rpath contains only unique directories. case "$temp_rpath " in *" $dir "*) ;; *" $absdir "*) ;; *) temp_rpath="$temp_rpath $dir" ;; esac fi fi fi # $linkmode,$pass = prog,link... if test "$alldeplibs" = yes && { test "$deplibs_check_method" = pass_all || { test "$build_libtool_libs" = yes && test -n "$library_names"; }; }; then # We only need to search for static libraries continue fi if test "$installed" = no; then notinst_deplibs="$notinst_deplibs $lib" need_relink=yes fi if test -n "$old_archive_from_expsyms_cmds"; then # figure out the soname set dummy $library_names realname="$2" shift; shift libname=`eval \\$echo \"$libname_spec\"` # use dlname if we got it. it's perfectly good, no? if test -n "$dlname"; then soname="$dlname" elif test -n "$soname_spec"; then # bleh windows case $host in *cygwin*) major=`expr $current - $age` versuffix="-$major" ;; esac eval soname=\"$soname_spec\" else soname="$realname" fi # Make a new name for the extract_expsyms_cmds to use soroot="$soname" soname=`echo $soroot | ${SED} -e 's/^.*\///'` newlib="libimp-`echo $soname | ${SED} 's/^lib//;s/\.dll$//'`.a" # If the library has no export list, then create one now if test -f "$output_objdir/$soname-def"; then : else $show "extracting exported symbol list from \`$soname'" save_ifs="$IFS"; IFS='~' eval cmds=\"$extract_expsyms_cmds\" for cmd in $cmds; do IFS="$save_ifs" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" fi # Create $newlib if test -f "$output_objdir/$newlib"; then :; else $show "generating import library for \`$soname'" save_ifs="$IFS"; IFS='~' eval cmds=\"$old_archive_from_expsyms_cmds\" for cmd in $cmds; do IFS="$save_ifs" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" fi # make sure the library variables are pointing to the new library dir=$output_objdir linklib=$newlib fi # test -n $old_archive_from_expsyms_cmds if test $linkmode = prog || test "$mode" != relink; then add_shlibpath= add_dir= add= lib_linked=yes case $hardcode_action in immediate | unsupported) if test "$hardcode_direct" = no; then add="$dir/$linklib" elif test "$hardcode_minus_L" = no; then case $host in *-*-sunos*) add_shlibpath="$dir" ;; esac add_dir="-L$dir" add="-l$name" elif test "$hardcode_shlibpath_var" = no; then add_shlibpath="$dir" add="-l$name" else lib_linked=no fi ;; relink) if test "$hardcode_direct" = yes; then add="$dir/$linklib" elif test "$hardcode_minus_L" = yes; then add_dir="-L$dir" # Try looking first in the location we're being installed to. if test -n "$inst_prefix_dir"; then case "$libdir" in [\/]*) add_dir="$add_dir -L$inst_prefix_dir$libdir" ;; esac fi add="-l$name" elif test "$hardcode_shlibpath_var" = yes; then add_shlibpath="$dir" add="-l$name" else lib_linked=no fi ;; *) lib_linked=no ;; esac if test "$lib_linked" != yes; then $echo "$modename: configuration error: unsupported hardcode properties" exit 1 fi if test -n "$add_shlibpath"; then case :$compile_shlibpath: in *":$add_shlibpath:"*) ;; *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;; esac fi if test $linkmode = prog; then test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs" test -n "$add" && compile_deplibs="$add $compile_deplibs" else test -n "$add_dir" && deplibs="$add_dir $deplibs" test -n "$add" && deplibs="$add $deplibs" if test "$hardcode_direct" != yes && \ test "$hardcode_minus_L" != yes && \ test "$hardcode_shlibpath_var" = yes; then case :$finalize_shlibpath: in *":$libdir:"*) ;; *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; esac fi fi fi if test $linkmode = prog || test "$mode" = relink; then add_shlibpath= add_dir= add= # Finalize command for both is simple: just hardcode it. if test "$hardcode_direct" = yes; then add="$libdir/$linklib" elif test "$hardcode_minus_L" = yes; then add_dir="-L$libdir" add="-l$name" elif test "$hardcode_shlibpath_var" = yes; then case :$finalize_shlibpath: in *":$libdir:"*) ;; *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; esac add="-l$name" else # We cannot seem to hardcode it, guess we'll fake it. add_dir="-L$libdir" # Try looking first in the location we're being installed to. if test -n "$inst_prefix_dir"; then case "$libdir" in [\/]*) add_dir="$add_dir -L$inst_prefix_dir$libdir" ;; esac fi add="-l$name" fi if test $linkmode = prog; then test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs" test -n "$add" && finalize_deplibs="$add $finalize_deplibs" else test -n "$add_dir" && deplibs="$add_dir $deplibs" test -n "$add" && deplibs="$add $deplibs" fi fi elif test $linkmode = prog; then if test "$alldeplibs" = yes && { test "$deplibs_check_method" = pass_all || { test "$build_libtool_libs" = yes && test -n "$library_names"; }; }; then # We only need to search for static libraries continue fi # Try to link the static library # Here we assume that one of hardcode_direct or hardcode_minus_L # is not unsupported. This is valid on all known static and # shared platforms. if test "$hardcode_direct" != unsupported; then test -n "$old_library" && linklib="$old_library" compile_deplibs="$dir/$linklib $compile_deplibs" finalize_deplibs="$dir/$linklib $finalize_deplibs" else compile_deplibs="-l$name -L$dir $compile_deplibs" finalize_deplibs="-l$name -L$dir $finalize_deplibs" fi elif test "$build_libtool_libs" = yes; then # Not a shared library if test "$deplibs_check_method" != pass_all; then # We're trying link a shared library against a static one # but the system doesn't support it. # Just print a warning and add the library to dependency_libs so # that the program can be linked against the static library. echo echo "*** Warning: This system can not link to static lib archive $lib." echo "*** I have the capability to make that library automatically link in when" echo "*** you link to this library. But I can only do this if you have a" echo "*** shared version of the library, which you do not appear to have." if test "$module" = yes; then echo "*** But as you try to build a module library, libtool will still create " echo "*** a static module, that should work as long as the dlopening application" echo "*** is linked with the -dlopen flag to resolve symbols at runtime." if test -z "$global_symbol_pipe"; then echo echo "*** However, this would only work if libtool was able to extract symbol" echo "*** lists from a program, using \`nm' or equivalent, but libtool could" echo "*** not find such a program. So, this module is probably useless." echo "*** \`nm' from GNU binutils and a full rebuild may help." fi if test "$build_old_libs" = no; then build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi fi else convenience="$convenience $dir/$old_library" old_convenience="$old_convenience $dir/$old_library" deplibs="$dir/$old_library $deplibs" link_static=yes fi fi # link shared/static library? if test $linkmode = lib; then if test -n "$dependency_libs" && { test $hardcode_into_libs != yes || test $build_old_libs = yes || test $link_static = yes; }; then # Extract -R from dependency_libs temp_deplibs= for libdir in $dependency_libs; do case $libdir in -R*) temp_xrpath=`$echo "X$libdir" | $Xsed -e 's/^-R//'` case " $xrpath " in *" $temp_xrpath "*) ;; *) xrpath="$xrpath $temp_xrpath";; esac;; *) temp_deplibs="$temp_deplibs $libdir";; esac done dependency_libs="$temp_deplibs" fi newlib_search_path="$newlib_search_path $absdir" # Link against this library test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs" # ... and its dependency_libs tmp_libs= for deplib in $dependency_libs; do newdependency_libs="$deplib $newdependency_libs" if test "X$duplicate_deps" = "Xyes" ; then case "$tmp_libs " in *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; esac fi tmp_libs="$tmp_libs $deplib" done if test $link_all_deplibs != no; then # Add the search paths of all dependency libraries for deplib in $dependency_libs; do case $deplib in -L*) path="$deplib" ;; *.la) dir=`$echo "X$deplib" | $Xsed -e 's%/[^/]*$%%'` test "X$dir" = "X$deplib" && dir="." # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;; *) absdir=`cd "$dir" && pwd` if test -z "$absdir"; then $echo "$modename: warning: cannot determine absolute directory name of \`$dir'" 1>&2 absdir="$dir" fi ;; esac if grep "^installed=no" $deplib > /dev/null; then path="-L$absdir/$objdir" else eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` if test -z "$libdir"; then $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2 exit 1 fi if test "$absdir" != "$libdir"; then $echo "$modename: warning: \`$deplib' seems to be moved" 1>&2 fi path="-L$absdir" fi ;; *) continue ;; esac case " $deplibs " in *" $path "*) ;; *) deplibs="$deplibs $path" ;; esac done fi # link_all_deplibs != no fi # linkmode = lib done # for deplib in $libs if test $pass = dlpreopen; then # Link the dlpreopened libraries before other libraries for deplib in $save_deplibs; do deplibs="$deplib $deplibs" done fi if test $pass != dlopen; then test $pass != scan && dependency_libs="$newdependency_libs" if test $pass != conv; then # Make sure lib_search_path contains only unique directories. lib_search_path= for dir in $newlib_search_path; do case "$lib_search_path " in *" $dir "*) ;; *) lib_search_path="$lib_search_path $dir" ;; esac done newlib_search_path= fi if test "$linkmode,$pass" != "prog,link"; then vars="deplibs" else vars="compile_deplibs finalize_deplibs" fi for var in $vars dependency_libs; do # Add libraries to $var in reverse order eval tmp_libs=\"\$$var\" new_libs= for deplib in $tmp_libs; do case $deplib in -L*) new_libs="$deplib $new_libs" ;; *) case " $specialdeplibs " in *" $deplib "*) new_libs="$deplib $new_libs" ;; *) case " $new_libs " in *" $deplib "*) ;; *) new_libs="$deplib $new_libs" ;; esac ;; esac ;; esac done tmp_libs= for deplib in $new_libs; do case $deplib in -L*) case " $tmp_libs " in *" $deplib "*) ;; *) tmp_libs="$tmp_libs $deplib" ;; esac ;; *) tmp_libs="$tmp_libs $deplib" ;; esac done eval $var=\"$tmp_libs\" done # for var fi if test "$pass" = "conv" && { test "$linkmode" = "lib" || test "$linkmode" = "prog"; }; then libs="$deplibs" # reset libs deplibs= fi done # for pass if test $linkmode = prog; then dlfiles="$newdlfiles" dlprefiles="$newdlprefiles" fi case $linkmode in oldlib) if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then $echo "$modename: warning: \`-dlopen' is ignored for archives" 1>&2 fi if test -n "$rpath"; then $echo "$modename: warning: \`-rpath' is ignored for archives" 1>&2 fi if test -n "$xrpath"; then $echo "$modename: warning: \`-R' is ignored for archives" 1>&2 fi if test -n "$vinfo"; then $echo "$modename: warning: \`-version-info' is ignored for archives" 1>&2 fi if test -n "$release"; then $echo "$modename: warning: \`-release' is ignored for archives" 1>&2 fi if test -n "$export_symbols" || test -n "$export_symbols_regex"; then $echo "$modename: warning: \`-export-symbols' is ignored for archives" 1>&2 fi # Now set the variables for building old libraries. build_libtool_libs=no oldlibs="$output" objs="$objs$old_deplibs" ;; lib) # Make sure we only generate libraries of the form `libNAME.la'. case $outputname in lib*) name=`$echo "X$outputname" | $Xsed -e 's/\.la$//' -e 's/^lib//'` eval libname=\"$libname_spec\" ;; *) if test "$module" = no; then $echo "$modename: libtool library \`$output' must begin with \`lib'" 1>&2 $echo "$help" 1>&2 exit 1 fi if test "$need_lib_prefix" != no; then # Add the "lib" prefix for modules if required name=`$echo "X$outputname" | $Xsed -e 's/\.la$//'` eval libname=\"$libname_spec\" else libname=`$echo "X$outputname" | $Xsed -e 's/\.la$//'` fi ;; esac if test -n "$objs"; then if test "$deplibs_check_method" != pass_all; then $echo "$modename: cannot build libtool library \`$output' from non-libtool objects on this host:$objs" 2>&1 exit 1 else echo echo "*** Warning: Linking the shared library $output against the non-libtool" echo "*** objects $objs is not portable!" libobjs="$libobjs $objs" fi fi if test "$dlself" != no; then $echo "$modename: warning: \`-dlopen self' is ignored for libtool libraries" 1>&2 fi set dummy $rpath if test $# -gt 2; then $echo "$modename: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2 fi install_libdir="$2" oldlibs= if test -z "$rpath"; then if test "$build_libtool_libs" = yes; then # Building a libtool convenience library. libext=al oldlibs="$output_objdir/$libname.$libext $oldlibs" build_libtool_libs=convenience build_old_libs=yes fi if test -n "$vinfo"; then $echo "$modename: warning: \`-version-info' is ignored for convenience libraries" 1>&2 fi if test -n "$release"; then $echo "$modename: warning: \`-release' is ignored for convenience libraries" 1>&2 fi else # Parse the version information argument. save_ifs="$IFS"; IFS=':' set dummy $vinfo 0 0 0 IFS="$save_ifs" if test -n "$8"; then $echo "$modename: too many parameters to \`-version-info'" 1>&2 $echo "$help" 1>&2 exit 1 fi current="$2" revision="$3" age="$4" # Check that each of the things are valid numbers. case $current in 0 | [1-9] | [1-9][0-9] | [1-9][0-9][0-9]) ;; *) $echo "$modename: CURRENT \`$current' is not a nonnegative integer" 1>&2 $echo "$modename: \`$vinfo' is not valid version information" 1>&2 exit 1 ;; esac case $revision in 0 | [1-9] | [1-9][0-9] | [1-9][0-9][0-9]) ;; *) $echo "$modename: REVISION \`$revision' is not a nonnegative integer" 1>&2 $echo "$modename: \`$vinfo' is not valid version information" 1>&2 exit 1 ;; esac case $age in 0 | [1-9] | [1-9][0-9] | [1-9][0-9][0-9]) ;; *) $echo "$modename: AGE \`$age' is not a nonnegative integer" 1>&2 $echo "$modename: \`$vinfo' is not valid version information" 1>&2 exit 1 ;; esac if test $age -gt $current; then $echo "$modename: AGE \`$age' is greater than the current interface number \`$current'" 1>&2 $echo "$modename: \`$vinfo' is not valid version information" 1>&2 exit 1 fi # Calculate the version variables. major= versuffix= verstring= case $version_type in none) ;; darwin) # Like Linux, but with the current version available in # verstring for coding it into the library header major=.`expr $current - $age` versuffix="$major.$age.$revision" # Darwin ld doesn't like 0 for these options... minor_current=`expr $current + 1` verstring="-compatibility_version $minor_current -current_version $minor_current.$revision" ;; freebsd-aout) major=".$current" versuffix=".$current.$revision"; ;; freebsd-elf) major=".$current" versuffix=".$current"; ;; irix | nonstopux) major=`expr $current - $age + 1` case $version_type in nonstopux) verstring_prefix=nonstopux ;; *) verstring_prefix=sgi ;; esac verstring="$verstring_prefix$major.$revision" # Add in all the interfaces that we are compatible with. loop=$revision while test $loop != 0; do iface=`expr $revision - $loop` loop=`expr $loop - 1` verstring="$verstring_prefix$major.$iface:$verstring" done # Before this point, $major must not contain `.'. major=.$major versuffix="$major.$revision" ;; linux) major=.`expr $current - $age` versuffix="$major.$age.$revision" ;; osf) major=.`expr $current - $age` versuffix=".$current.$age.$revision" verstring="$current.$age.$revision" # Add in all the interfaces that we are compatible with. loop=$age while test $loop != 0; do iface=`expr $current - $loop` loop=`expr $loop - 1` verstring="$verstring:${iface}.0" done # Make executables depend on our current version. verstring="$verstring:${current}.0" ;; sunos) major=".$current" versuffix=".$current.$revision" ;; windows) # Use '-' rather than '.', since we only want one # extension on DOS 8.3 filesystems. major=`expr $current - $age` versuffix="-$major" ;; *) $echo "$modename: unknown library version type \`$version_type'" 1>&2 echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 exit 1 ;; esac # Clear the version info if we defaulted, and they specified a release. if test -z "$vinfo" && test -n "$release"; then major= verstring="0.0" case $version_type in darwin) # we can't check for "0.0" in archive_cmds due to quoting # problems, so we reset it completely verstring="" ;; *) verstring="0.0" ;; esac if test "$need_version" = no; then versuffix= else versuffix=".0.0" fi fi # Remove version info from name if versioning should be avoided if test "$avoid_version" = yes && test "$need_version" = no; then major= versuffix= verstring="" fi # Check to see if the archive will have undefined symbols. if test "$allow_undefined" = yes; then if test "$allow_undefined_flag" = unsupported; then $echo "$modename: warning: undefined symbols not allowed in $host shared libraries" 1>&2 build_libtool_libs=no build_old_libs=yes fi else # Don't allow undefined symbols. allow_undefined_flag="$no_undefined_flag" fi fi if test "$mode" != relink; then # Remove our outputs. $show "${rm}r $output_objdir/$outputname $output_objdir/$libname.* $output_objdir/${libname}${release}.*" $run ${rm}r $output_objdir/$outputname $output_objdir/$libname.* $output_objdir/${libname}${release}.* fi # Now set the variables for building old libraries. if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then oldlibs="$oldlibs $output_objdir/$libname.$libext" # Transform .lo files to .o files. oldobjs="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP` fi # Eliminate all temporary directories. for path in $notinst_path; do lib_search_path=`echo "$lib_search_path " | ${SED} -e 's% $path % %g'` deplibs=`echo "$deplibs " | ${SED} -e 's% -L$path % %g'` dependency_libs=`echo "$dependency_libs " | ${SED} -e 's% -L$path % %g'` done if test -n "$xrpath"; then # If the user specified any rpath flags, then add them. temp_xrpath= for libdir in $xrpath; do temp_xrpath="$temp_xrpath -R$libdir" case "$finalize_rpath " in *" $libdir "*) ;; *) finalize_rpath="$finalize_rpath $libdir" ;; esac done if test $hardcode_into_libs != yes || test $build_old_libs = yes; then dependency_libs="$temp_xrpath $dependency_libs" fi fi # Make sure dlfiles contains only unique files that won't be dlpreopened old_dlfiles="$dlfiles" dlfiles= for lib in $old_dlfiles; do case " $dlprefiles $dlfiles " in *" $lib "*) ;; *) dlfiles="$dlfiles $lib" ;; esac done # Make sure dlprefiles contains only unique files old_dlprefiles="$dlprefiles" dlprefiles= for lib in $old_dlprefiles; do case "$dlprefiles " in *" $lib "*) ;; *) dlprefiles="$dlprefiles $lib" ;; esac done if test "$build_libtool_libs" = yes; then if test -n "$rpath"; then case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos*) # these systems don't actually have a c library (as such)! ;; *-*-rhapsody* | *-*-darwin1.[012]) # Rhapsody C library is in the System framework deplibs="$deplibs -framework System" ;; *-*-netbsd*) # Don't link with libc until the a.out ld.so is fixed. ;; *-*-openbsd* | *-*-freebsd*) # Do not include libc due to us having libc/libc_r. ;; *) # Add libc to deplibs on all other systems if necessary. if test $build_libtool_need_lc = "yes"; then deplibs="$deplibs -lc" fi ;; esac fi # Transform deplibs into only deplibs that can be linked in shared. name_save=$name libname_save=$libname release_save=$release versuffix_save=$versuffix major_save=$major # I'm not sure if I'm treating the release correctly. I think # release should show up in the -l (ie -lgmp5) so we don't want to # add it in twice. Is that correct? release="" versuffix="" major="" newdeplibs= droppeddeps=no case $deplibs_check_method in pass_all) # Don't check for shared/static. Everything works. # This might be a little naive. We might want to check # whether the library exists or not. But this is on # osf3 & osf4 and I'm not really sure... Just # implementing what was already the behaviour. newdeplibs=$deplibs ;; test_compile) # This code stresses the "libraries are programs" paradigm to its # limits. Maybe even breaks it. We compile a program, linking it # against the deplibs as a proxy for the library. Then we can check # whether they linked in statically or dynamically with ldd. $rm conftest.c cat > conftest.c </dev/null` for potent_lib in $potential_libs; do # Follow soft links. if ls -lLd "$potent_lib" 2>/dev/null \ | grep " -> " >/dev/null; then continue fi # The statement above tries to avoid entering an # endless loop below, in case of cyclic links. # We might still enter an endless loop, since a link # loop can be closed while we follow links, # but so what? potlib="$potent_lib" while test -h "$potlib" 2>/dev/null; do potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'` case $potliblink in [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";; *) potlib=`$echo "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";; esac done if eval $file_magic_cmd \"\$potlib\" 2>/dev/null \ | ${SED} 10q \ | egrep "$file_magic_regex" > /dev/null; then newdeplibs="$newdeplibs $a_deplib" a_deplib="" break 2 fi done done if test -n "$a_deplib" ; then droppeddeps=yes echo echo "*** Warning: linker path does not have real file for library $a_deplib." echo "*** I have the capability to make that library automatically link in when" echo "*** you link to this library. But I can only do this if you have a" echo "*** shared version of the library, which you do not appear to have" echo "*** because I did check the linker path looking for a file starting" if test -z "$potlib" ; then echo "*** with $libname but no candidates were found. (...for file magic test)" else echo "*** with $libname and none of the candidates passed a file format test" echo "*** using a file magic. Last file checked: $potlib" fi fi else # Add a -L argument. newdeplibs="$newdeplibs $a_deplib" fi done # Gone through all deplibs. ;; match_pattern*) set dummy $deplibs_check_method match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"` for a_deplib in $deplibs; do name="`expr $a_deplib : '-l\(.*\)'`" # If $name is empty we are operating on a -L argument. if test -n "$name" && test "$name" != "0"; then libname=`eval \\$echo \"$libname_spec\"` for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do potential_libs=`ls $i/$libname[.-]* 2>/dev/null` for potent_lib in $potential_libs; do potlib="$potent_lib" # see symlink-check below in file_magic test if eval echo \"$potent_lib\" 2>/dev/null \ | ${SED} 10q \ | egrep "$match_pattern_regex" > /dev/null; then newdeplibs="$newdeplibs $a_deplib" a_deplib="" break 2 fi done done if test -n "$a_deplib" ; then droppeddeps=yes echo echo "*** Warning: linker path does not have real file for library $a_deplib." echo "*** I have the capability to make that library automatically link in when" echo "*** you link to this library. But I can only do this if you have a" echo "*** shared version of the library, which you do not appear to have" echo "*** because I did check the linker path looking for a file starting" if test -z "$potlib" ; then echo "*** with $libname but no candidates were found. (...for regex pattern test)" else echo "*** with $libname and none of the candidates passed a file format test" echo "*** using a regex pattern. Last file checked: $potlib" fi fi else # Add a -L argument. newdeplibs="$newdeplibs $a_deplib" fi done # Gone through all deplibs. ;; none | unknown | *) newdeplibs="" if $echo "X $deplibs" | $Xsed -e 's/ -lc$//' \ -e 's/ -[LR][^ ]*//g' -e 's/[ ]//g' | grep . >/dev/null; then echo if test "X$deplibs_check_method" = "Xnone"; then echo "*** Warning: inter-library dependencies are not supported in this platform." else echo "*** Warning: inter-library dependencies are not known to be supported." fi echo "*** All declared inter-library dependencies are being dropped." droppeddeps=yes fi ;; esac versuffix=$versuffix_save major=$major_save release=$release_save libname=$libname_save name=$name_save case $host in *-*-rhapsody* | *-*-darwin1.[012]) # On Rhapsody replace the C library is the System framework newdeplibs=`$echo "X $newdeplibs" | $Xsed -e 's/ -lc / -framework System /'` ;; esac if test "$droppeddeps" = yes; then if test "$module" = yes; then echo echo "*** Warning: libtool could not satisfy all declared inter-library" echo "*** dependencies of module $libname. Therefore, libtool will create" echo "*** a static module, that should work as long as the dlopening" echo "*** application is linked with the -dlopen flag." if test -z "$global_symbol_pipe"; then echo echo "*** However, this would only work if libtool was able to extract symbol" echo "*** lists from a program, using \`nm' or equivalent, but libtool could" echo "*** not find such a program. So, this module is probably useless." echo "*** \`nm' from GNU binutils and a full rebuild may help." fi if test "$build_old_libs" = no; then oldlibs="$output_objdir/$libname.$libext" build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi else echo "*** The inter-library dependencies that have been dropped here will be" echo "*** automatically added whenever a program is linked with this library" echo "*** or is declared to -dlopen it." if test $allow_undefined = no; then echo echo "*** Since this library must not contain undefined symbols," echo "*** because either the platform does not support them or" echo "*** it was explicitly requested with -no-undefined," echo "*** libtool will only create a static version of it." if test "$build_old_libs" = no; then oldlibs="$output_objdir/$libname.$libext" build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi fi fi fi # Done checking deplibs! deplibs=$newdeplibs fi # All the library-specific variables (install_libdir is set above). library_names= old_library= dlname= # Test again, we may have decided not to build it any more if test "$build_libtool_libs" = yes; then if test $hardcode_into_libs = yes; then # Hardcode the library paths hardcode_libdirs= dep_rpath= rpath="$finalize_rpath" test "$mode" != relink && rpath="$compile_rpath$rpath" for libdir in $rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then hardcode_libdirs="$libdir" else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" dep_rpath="$dep_rpath $flag" fi elif test -n "$runpath_var"; then case "$perm_rpath " in *" $libdir "*) ;; *) perm_rpath="$perm_rpath $libdir" ;; esac fi done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" eval dep_rpath=\"$hardcode_libdir_flag_spec\" fi if test -n "$runpath_var" && test -n "$perm_rpath"; then # We should set the runpath_var. rpath= for dir in $perm_rpath; do rpath="$rpath$dir:" done eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var" fi test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs" fi shlibpath="$finalize_shlibpath" test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath" if test -n "$shlibpath"; then eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var" fi # Get the real and link names of the library. eval library_names=\"$library_names_spec\" set dummy $library_names realname="$2" shift; shift if test -n "$soname_spec"; then eval soname=\"$soname_spec\" else soname="$realname" fi test -z "$dlname" && dlname=$soname lib="$output_objdir/$realname" for link do linknames="$linknames $link" done # Ensure that we have .o objects for linkers which dislike .lo # (e.g. aix) in case we are running --disable-static for obj in $libobjs; do xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'` if test "X$xdir" = "X$obj"; then xdir="." else xdir="$xdir" fi baseobj=`$echo "X$obj" | $Xsed -e 's%^.*/%%'` oldobj=`$echo "X$baseobj" | $Xsed -e "$lo2o"` if test ! -f $xdir/$oldobj; then $show "(cd $xdir && ${LN_S} $baseobj $oldobj)" $run eval '(cd $xdir && ${LN_S} $baseobj $oldobj)' || exit $? fi done # Use standard objects if they are pic test -z "$pic_flag" && libobjs=`$echo "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` # Prepare the list of exported symbols if test -z "$export_symbols"; then if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then $show "generating symbol list for \`$libname.la'" export_symbols="$output_objdir/$libname.exp" $run $rm $export_symbols eval cmds=\"$export_symbols_cmds\" save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" if test -n "$export_symbols_regex"; then $show "egrep -e \"$export_symbols_regex\" \"$export_symbols\" > \"${export_symbols}T\"" $run eval 'egrep -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' $show "$mv \"${export_symbols}T\" \"$export_symbols\"" $run eval '$mv "${export_symbols}T" "$export_symbols"' fi fi fi if test -n "$export_symbols" && test -n "$include_expsyms"; then $run eval '$echo "X$include_expsyms" | $SP2NL >> "$export_symbols"' fi if test -n "$convenience"; then if test -n "$whole_archive_flag_spec"; then eval libobjs=\"\$libobjs $whole_archive_flag_spec\" else gentop="$output_objdir/${outputname}x" $show "${rm}r $gentop" $run ${rm}r "$gentop" $show "mkdir $gentop" $run mkdir "$gentop" status=$? if test $status -ne 0 && test ! -d "$gentop"; then exit $status fi generated="$generated $gentop" for xlib in $convenience; do # Extract the objects. case $xlib in [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;; *) xabs=`pwd`"/$xlib" ;; esac xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'` xdir="$gentop/$xlib" $show "${rm}r $xdir" $run ${rm}r "$xdir" $show "mkdir $xdir" $run mkdir "$xdir" status=$? if test $status -ne 0 && test ! -d "$xdir"; then exit $status fi $show "(cd $xdir && $AR x $xabs)" $run eval "(cd \$xdir && $AR x \$xabs)" || exit $? libobjs="$libobjs "`find $xdir -name \*.o -print -o -name \*.lo -print | $NL2SP` done fi fi if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then eval flag=\"$thread_safe_flag_spec\" linker_flags="$linker_flags $flag" fi # Make a backup of the uninstalled library when relinking if test "$mode" = relink; then $run eval '(cd $output_objdir && $rm ${realname}U && $mv $realname ${realname}U)' || exit $? fi # Do each of the archive commands. if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then eval cmds=\"$archive_expsym_cmds\" else save_deplibs="$deplibs" for conv in $convenience; do tmp_deplibs= for test_deplib in $deplibs; do if test "$test_deplib" != "$conv"; then tmp_deplibs="$tmp_deplibs $test_deplib" fi done deplibs="$tmp_deplibs" done eval cmds=\"$archive_cmds\" deplibs="$save_deplibs" fi save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" # Restore the uninstalled library and exit if test "$mode" = relink; then $run eval '(cd $output_objdir && $rm ${realname}T && $mv $realname ${realname}T && $mv "$realname"U $realname)' || exit $? exit 0 fi # Create links to the real library. for linkname in $linknames; do if test "$realname" != "$linkname"; then $show "(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)" $run eval '(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)' || exit $? fi done # If -module or -export-dynamic was specified, set the dlname. if test "$module" = yes || test "$export_dynamic" = yes; then # On all known operating systems, these are identical. dlname="$soname" fi fi ;; obj) if test -n "$deplibs"; then $echo "$modename: warning: \`-l' and \`-L' are ignored for objects" 1>&2 fi if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then $echo "$modename: warning: \`-dlopen' is ignored for objects" 1>&2 fi if test -n "$rpath"; then $echo "$modename: warning: \`-rpath' is ignored for objects" 1>&2 fi if test -n "$xrpath"; then $echo "$modename: warning: \`-R' is ignored for objects" 1>&2 fi if test -n "$vinfo"; then $echo "$modename: warning: \`-version-info' is ignored for objects" 1>&2 fi if test -n "$release"; then $echo "$modename: warning: \`-release' is ignored for objects" 1>&2 fi case $output in *.lo) if test -n "$objs$old_deplibs"; then $echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2 exit 1 fi libobj="$output" obj=`$echo "X$output" | $Xsed -e "$lo2o"` ;; *) libobj= obj="$output" ;; esac # Delete the old objects. $run $rm $obj $libobj # Objects from convenience libraries. This assumes # single-version convenience libraries. Whenever we create # different ones for PIC/non-PIC, this we'll have to duplicate # the extraction. reload_conv_objs= gentop= # reload_cmds runs $LD directly, so let us get rid of # -Wl from whole_archive_flag_spec wl= if test -n "$convenience"; then if test -n "$whole_archive_flag_spec"; then eval reload_conv_objs=\"\$reload_objs $whole_archive_flag_spec\" else gentop="$output_objdir/${obj}x" $show "${rm}r $gentop" $run ${rm}r "$gentop" $show "mkdir $gentop" $run mkdir "$gentop" status=$? if test $status -ne 0 && test ! -d "$gentop"; then exit $status fi generated="$generated $gentop" for xlib in $convenience; do # Extract the objects. case $xlib in [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;; *) xabs=`pwd`"/$xlib" ;; esac xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'` xdir="$gentop/$xlib" $show "${rm}r $xdir" $run ${rm}r "$xdir" $show "mkdir $xdir" $run mkdir "$xdir" status=$? if test $status -ne 0 && test ! -d "$xdir"; then exit $status fi $show "(cd $xdir && $AR x $xabs)" $run eval "(cd \$xdir && $AR x \$xabs)" || exit $? reload_conv_objs="$reload_objs "`find $xdir -name \*.o -print -o -name \*.lo -print | $NL2SP` done fi fi # Create the old-style object. reload_objs="$objs$old_deplibs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test output="$obj" eval cmds=\"$reload_cmds\" save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" # Exit if we aren't doing a library object file. if test -z "$libobj"; then if test -n "$gentop"; then $show "${rm}r $gentop" $run ${rm}r $gentop fi exit 0 fi if test "$build_libtool_libs" != yes; then if test -n "$gentop"; then $show "${rm}r $gentop" $run ${rm}r $gentop fi # Create an invalid libtool object if no PIC, so that we don't # accidentally link it into a program. $show "echo timestamp > $libobj" $run eval "echo timestamp > $libobj" || exit $? exit 0 fi if test -n "$pic_flag" || test "$pic_mode" != default; then # Only do commands if we really have different PIC objects. reload_objs="$libobjs $reload_conv_objs" output="$libobj" eval cmds=\"$reload_cmds\" save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" else # Just create a symlink. $show $rm $libobj $run $rm $libobj xdir=`$echo "X$libobj" | $Xsed -e 's%/[^/]*$%%'` if test "X$xdir" = "X$libobj"; then xdir="." else xdir="$xdir" fi baseobj=`$echo "X$libobj" | $Xsed -e 's%^.*/%%'` oldobj=`$echo "X$baseobj" | $Xsed -e "$lo2o"` $show "(cd $xdir && $LN_S $oldobj $baseobj)" $run eval '(cd $xdir && $LN_S $oldobj $baseobj)' || exit $? fi if test -n "$gentop"; then $show "${rm}r $gentop" $run ${rm}r $gentop fi exit 0 ;; prog) case $host in *cygwin*) output=`echo $output | ${SED} -e 's,.exe$,,;s,$,.exe,'` ;; esac if test -n "$vinfo"; then $echo "$modename: warning: \`-version-info' is ignored for programs" 1>&2 fi if test -n "$release"; then $echo "$modename: warning: \`-release' is ignored for programs" 1>&2 fi if test "$preload" = yes; then if test "$dlopen_support" = unknown && test "$dlopen_self" = unknown && test "$dlopen_self_static" = unknown; then $echo "$modename: warning: \`AC_LIBTOOL_DLOPEN' not used. Assuming no dlopen support." fi fi case $host in *-*-rhapsody* | *-*-darwin1.[012]) # On Rhapsody replace the C library is the System framework compile_deplibs=`$echo "X $compile_deplibs" | $Xsed -e 's/ -lc / -framework System /'` finalize_deplibs=`$echo "X $finalize_deplibs" | $Xsed -e 's/ -lc / -framework System /'` case $host in *darwin*) # Don't allow lazy linking, it breaks C++ global constructors compile_command="$compile_command ${wl}-bind_at_load" finalize_command="$finalize_command ${wl}-bind_at_load" ;; esac ;; esac compile_command="$compile_command $compile_deplibs" finalize_command="$finalize_command $finalize_deplibs" if test -n "$rpath$xrpath"; then # If the user specified any rpath flags, then add them. for libdir in $rpath $xrpath; do # This is the magic to use -rpath. case "$finalize_rpath " in *" $libdir "*) ;; *) finalize_rpath="$finalize_rpath $libdir" ;; esac done fi # Now hardcode the library paths rpath= hardcode_libdirs= for libdir in $compile_rpath $finalize_rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then hardcode_libdirs="$libdir" else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" rpath="$rpath $flag" fi elif test -n "$runpath_var"; then case "$perm_rpath " in *" $libdir "*) ;; *) perm_rpath="$perm_rpath $libdir" ;; esac fi case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) case :$dllsearchpath: in *":$libdir:"*) ;; *) dllsearchpath="$dllsearchpath:$libdir";; esac ;; esac done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" eval rpath=\" $hardcode_libdir_flag_spec\" fi compile_rpath="$rpath" rpath= hardcode_libdirs= for libdir in $finalize_rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then hardcode_libdirs="$libdir" else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" rpath="$rpath $flag" fi elif test -n "$runpath_var"; then case "$finalize_perm_rpath " in *" $libdir "*) ;; *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;; esac fi done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" eval rpath=\" $hardcode_libdir_flag_spec\" fi finalize_rpath="$rpath" if test -n "$libobjs" && test "$build_old_libs" = yes; then # Transform all the library objects into standard objects. compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` fi dlsyms= if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then if test -n "$NM" && test -n "$global_symbol_pipe"; then dlsyms="${outputname}S.c" else $echo "$modename: not configured to extract global symbols from dlpreopened files" 1>&2 fi fi if test -n "$dlsyms"; then case $dlsyms in "") ;; *.c) # Discover the nlist of each of the dlfiles. nlist="$output_objdir/${outputname}.nm" $show "$rm $nlist ${nlist}S ${nlist}T" $run $rm "$nlist" "${nlist}S" "${nlist}T" # Parse the name list into a source file. $show "creating $output_objdir/$dlsyms" test -z "$run" && $echo > "$output_objdir/$dlsyms" "\ /* $dlsyms - symbol resolution table for \`$outputname' dlsym emulation. */ /* Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP */ #ifdef __cplusplus extern \"C\" { #endif /* Prevent the only kind of declaration conflicts we can make. */ #define lt_preloaded_symbols some_other_symbol /* External symbol declarations for the compiler. */\ " if test "$dlself" = yes; then $show "generating symbol list for \`$output'" test -z "$run" && $echo ': @PROGRAM@ ' > "$nlist" # Add our own program objects to the symbol list. progfiles=`$echo "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` for arg in $progfiles; do $show "extracting global C symbols from \`$arg'" $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'" done if test -n "$exclude_expsyms"; then $run eval 'egrep -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T' $run eval '$mv "$nlist"T "$nlist"' fi if test -n "$export_symbols_regex"; then $run eval 'egrep -e "$export_symbols_regex" "$nlist" > "$nlist"T' $run eval '$mv "$nlist"T "$nlist"' fi # Prepare the list of exported symbols if test -z "$export_symbols"; then export_symbols="$output_objdir/$output.exp" $run $rm $export_symbols $run eval "${SED} -n -e '/^: @PROGRAM@$/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' else $run eval "${SED} -e 's/\([][.*^$]\)/\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$output.exp"' $run eval 'grep -f "$output_objdir/$output.exp" < "$nlist" > "$nlist"T' $run eval 'mv "$nlist"T "$nlist"' fi fi for arg in $dlprefiles; do $show "extracting global C symbols from \`$arg'" name=`echo "$arg" | ${SED} -e 's%^.*/%%'` $run eval 'echo ": $name " >> "$nlist"' $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'" done if test -z "$run"; then # Make sure we have at least an empty file. test -f "$nlist" || : > "$nlist" if test -n "$exclude_expsyms"; then egrep -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T $mv "$nlist"T "$nlist" fi # Try sorting and uniquifying the output. if grep -v "^: " < "$nlist" | if sort -k 3 /dev/null 2>&1; then sort -k 3 else sort +2 fi | uniq > "$nlist"S; then : else grep -v "^: " < "$nlist" > "$nlist"S fi if test -f "$nlist"S; then eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$dlsyms"' else echo '/* NONE */' >> "$output_objdir/$dlsyms" fi $echo >> "$output_objdir/$dlsyms" "\ #undef lt_preloaded_symbols #if defined (__STDC__) && __STDC__ # define lt_ptr void * #else # define lt_ptr char * # define const #endif /* The mapping between symbol names and symbols. */ const struct { const char *name; lt_ptr address; } lt_preloaded_symbols[] = {\ " eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$dlsyms" $echo >> "$output_objdir/$dlsyms" "\ {0, (lt_ptr) 0} }; /* This works around a problem in FreeBSD linker */ #ifdef FREEBSD_WORKAROUND static const void *lt_preloaded_setup() { return lt_preloaded_symbols; } #endif #ifdef __cplusplus } #endif\ " fi pic_flag_for_symtable= case $host in # compiling the symbol table file with pic_flag works around # a FreeBSD bug that causes programs to crash when -lm is # linked before any other PIC object. But we must not use # pic_flag when linking with -static. The problem exists in # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1. *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*) case "$compile_command " in *" -static "*) ;; *) pic_flag_for_symtable=" $pic_flag -DPIC -DFREEBSD_WORKAROUND";; esac;; *-*-hpux*) case "$compile_command " in *" -static "*) ;; *) pic_flag_for_symtable=" $pic_flag -DPIC";; esac esac # Now compile the dynamic symbol file. $show "(cd $output_objdir && $CC -c$no_builtin_flag$pic_flag_for_symtable \"$dlsyms\")" $run eval '(cd $output_objdir && $CC -c$no_builtin_flag$pic_flag_for_symtable "$dlsyms")' || exit $? # Clean up the generated files. $show "$rm $output_objdir/$dlsyms $nlist ${nlist}S ${nlist}T" $run $rm "$output_objdir/$dlsyms" "$nlist" "${nlist}S" "${nlist}T" # Transform the symbol file into the correct name. compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"` finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"` ;; *) $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2 exit 1 ;; esac else # We keep going just in case the user didn't refer to # lt_preloaded_symbols. The linker will fail if global_symbol_pipe # really was required. # Nullify the symbol file. compile_command=`$echo "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"` finalize_command=`$echo "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"` fi if test $need_relink = no || test "$build_libtool_libs" != yes; then # Replace the output file specification. compile_command=`$echo "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` link_command="$compile_command$compile_rpath" # We have no uninstalled library dependencies, so finalize right now. $show "$link_command" $run eval "$link_command" status=$? # Delete the generated files. if test -n "$dlsyms"; then $show "$rm $output_objdir/${outputname}S.${objext}" $run $rm "$output_objdir/${outputname}S.${objext}" fi exit $status fi if test -n "$shlibpath_var"; then # We should set the shlibpath_var rpath= for dir in $temp_rpath; do case $dir in [\\/]* | [A-Za-z]:[\\/]*) # Absolute path. rpath="$rpath$dir:" ;; *) # Relative path: add a thisdir entry. rpath="$rpath\$thisdir/$dir:" ;; esac done temp_rpath="$rpath" fi if test -n "$compile_shlibpath$finalize_shlibpath"; then compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command" fi if test -n "$finalize_shlibpath"; then finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command" fi compile_var= finalize_var= if test -n "$runpath_var"; then if test -n "$perm_rpath"; then # We should set the runpath_var. rpath= for dir in $perm_rpath; do rpath="$rpath$dir:" done compile_var="$runpath_var=\"$rpath\$$runpath_var\" " fi if test -n "$finalize_perm_rpath"; then # We should set the runpath_var. rpath= for dir in $finalize_perm_rpath; do rpath="$rpath$dir:" done finalize_var="$runpath_var=\"$rpath\$$runpath_var\" " fi fi if test "$no_install" = yes; then # We don't need to create a wrapper script. link_command="$compile_var$compile_command$compile_rpath" # Replace the output file specification. link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` # Delete the old output file. $run $rm $output # Link the executable and exit $show "$link_command" $run eval "$link_command" || exit $? exit 0 fi if test "$hardcode_action" = relink; then # Fast installation is not supported link_command="$compile_var$compile_command$compile_rpath" relink_command="$finalize_var$finalize_command$finalize_rpath" $echo "$modename: warning: this platform does not like uninstalled shared libraries" 1>&2 $echo "$modename: \`$output' will be relinked during installation" 1>&2 else if test "$fast_install" != no; then link_command="$finalize_var$compile_command$finalize_rpath" if test "$fast_install" = yes; then relink_command=`$echo "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'` else # fast_install is set to needless relink_command= fi else link_command="$compile_var$compile_command$compile_rpath" relink_command="$finalize_var$finalize_command$finalize_rpath" fi fi # Replace the output file specification. link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` # Delete the old output files. $run $rm $output $output_objdir/$outputname $output_objdir/lt-$outputname $show "$link_command" $run eval "$link_command" || exit $? # Now create the wrapper script. $show "creating $output" # Quote the relink command for shipping. if test -n "$relink_command"; then # Preserve any variables that may affect compiler behavior for var in $variables_saved_for_relink; do if eval test -z \"\${$var+set}\"; then relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command" elif eval var_value=\$$var; test -z "$var_value"; then relink_command="$var=; export $var; $relink_command" else var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"` relink_command="$var=\"$var_value\"; export $var; $relink_command" fi done relink_command="(cd `pwd`; $relink_command)" relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"` fi # Quote $echo for shipping. if test "X$echo" = "X$SHELL $0 --fallback-echo"; then case $0 in [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $0 --fallback-echo";; *) qecho="$SHELL `pwd`/$0 --fallback-echo";; esac qecho=`$echo "X$qecho" | $Xsed -e "$sed_quote_subst"` else qecho=`$echo "X$echo" | $Xsed -e "$sed_quote_subst"` fi # Only actually do things if our run command is non-null. if test -z "$run"; then # win32 will think the script is a binary if it has # a .exe suffix, so we strip it off here. case $output in *.exe) output=`echo $output|${SED} 's,.exe$,,'` ;; esac # test for cygwin because mv fails w/o .exe extensions case $host in *cygwin*) exeext=.exe ;; *) exeext= ;; esac $rm $output trap "$rm $output; exit 1" 1 2 15 $echo > $output "\ #! $SHELL # $output - temporary wrapper script for $objdir/$outputname # Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP # # The $output program cannot be directly executed until all the libtool # libraries that it depends on are installed. # # This wrapper script should never be moved out of the build directory. # If it is, it will not operate correctly. # Sed substitution that helps us do robust quoting. It backslashifies # metacharacters that are still active within double-quoted strings. Xsed="${SED}"' -e 1s/^X//' sed_quote_subst='$sed_quote_subst' # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. if test \"\${CDPATH+set}\" = set; then CDPATH=:; export CDPATH; fi relink_command=\"$relink_command\" # This environment variable determines our operation mode. if test \"\$libtool_install_magic\" = \"$magic\"; then # install mode needs the following variable: notinst_deplibs='$notinst_deplibs' else # When we are sourced in execute mode, \$file and \$echo are already set. if test \"\$libtool_execute_magic\" != \"$magic\"; then echo=\"$qecho\" file=\"\$0\" # Make sure echo works. if test \"X\$1\" = X--no-reexec; then # Discard the --no-reexec flag, and continue. shift elif test \"X\`(\$echo '\t') 2>/dev/null\`\" = 'X\t'; then # Yippee, \$echo works! : else # Restart under the correct shell, and then maybe \$echo will work. exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"} fi fi\ " $echo >> $output "\ # Find the directory that this script lives in. thisdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\` test \"x\$thisdir\" = \"x\$file\" && thisdir=. # Follow symbolic links until we get to the real thisdir. file=\`ls -ld \"\$file\" | ${SED} -n 's/.*-> //p'\` while test -n \"\$file\"; do destdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\` # If there was a directory component, then change thisdir. if test \"x\$destdir\" != \"x\$file\"; then case \"\$destdir\" in [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;; *) thisdir=\"\$thisdir/\$destdir\" ;; esac fi file=\`\$echo \"X\$file\" | \$Xsed -e 's%^.*/%%'\` file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\` done # Try to get the absolute directory name. absdir=\`cd \"\$thisdir\" && pwd\` test -n \"\$absdir\" && thisdir=\"\$absdir\" " if test "$fast_install" = yes; then echo >> $output "\ program=lt-'$outputname'$exeext progdir=\"\$thisdir/$objdir\" if test ! -f \"\$progdir/\$program\" || \\ { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\ test \"X\$file\" != \"X\$progdir/\$program\"; }; then file=\"\$\$-\$program\" if test ! -d \"\$progdir\"; then $mkdir \"\$progdir\" else $rm \"\$progdir/\$file\" fi" echo >> $output "\ # relink executable if necessary if test -n \"\$relink_command\"; then if relink_command_output=\`eval \$relink_command 2>&1\`; then : else $echo \"\$relink_command_output\" >&2 $rm \"\$progdir/\$file\" exit 1 fi fi $mv \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null || { $rm \"\$progdir/\$program\"; $mv \"\$progdir/\$file\" \"\$progdir/\$program\"; } $rm \"\$progdir/\$file\" fi" else echo >> $output "\ program='$outputname' progdir=\"\$thisdir/$objdir\" " fi echo >> $output "\ if test -f \"\$progdir/\$program\"; then" # Export our shlibpath_var if we have one. if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then $echo >> $output "\ # Add our own library path to $shlibpath_var $shlibpath_var=\"$temp_rpath\$$shlibpath_var\" # Some systems cannot cope with colon-terminated $shlibpath_var # The second colon is a workaround for a bug in BeOS R4 ${SED} $shlibpath_var=\`\$echo \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\` export $shlibpath_var " fi # fixup the dll searchpath if we need to. if test -n "$dllsearchpath"; then $echo >> $output "\ # Add the dll search path components to the executable PATH PATH=$dllsearchpath:\$PATH " fi $echo >> $output "\ if test \"\$libtool_execute_magic\" != \"$magic\"; then # Run the actual program with our arguments. " case $host in # win32 systems need to use the prog path for dll # lookup to work *-*-cygwin* | *-*-pw32*) $echo >> $output "\ exec \$progdir/\$program \${1+\"\$@\"} " ;; # Backslashes separate directories on plain windows *-*-mingw | *-*-os2*) $echo >> $output "\ exec \$progdir\\\\\$program \${1+\"\$@\"} " ;; *) $echo >> $output "\ # Export the path to the program. PATH=\"\$progdir:\$PATH\" export PATH exec \$program \${1+\"\$@\"} " ;; esac $echo >> $output "\ \$echo \"\$0: cannot exec \$program \${1+\"\$@\"}\" exit 1 fi else # The program doesn't exist. \$echo \"\$0: error: \$progdir/\$program does not exist\" 1>&2 \$echo \"This script is just a wrapper for \$program.\" 1>&2 echo \"See the $PACKAGE documentation for more information.\" 1>&2 exit 1 fi fi\ " chmod +x $output fi exit 0 ;; esac # See if we need to build an old-fashioned archive. for oldlib in $oldlibs; do if test "$build_libtool_libs" = convenience; then oldobjs="$libobjs_save" addlibs="$convenience" build_libtool_libs=no else if test "$build_libtool_libs" = module; then oldobjs="$libobjs_save" build_libtool_libs=no else oldobjs="$objs$old_deplibs "`$echo "X$libobjs_save" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP` fi addlibs="$old_convenience" fi if test -n "$addlibs"; then gentop="$output_objdir/${outputname}x" $show "${rm}r $gentop" $run ${rm}r "$gentop" $show "mkdir $gentop" $run mkdir "$gentop" status=$? if test $status -ne 0 && test ! -d "$gentop"; then exit $status fi generated="$generated $gentop" # Add in members from convenience archives. for xlib in $addlibs; do # Extract the objects. case $xlib in [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;; *) xabs=`pwd`"/$xlib" ;; esac xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'` xdir="$gentop/$xlib" $show "${rm}r $xdir" $run ${rm}r "$xdir" $show "mkdir $xdir" $run mkdir "$xdir" status=$? if test $status -ne 0 && test ! -d "$xdir"; then exit $status fi $show "(cd $xdir && $AR x $xabs)" $run eval "(cd \$xdir && $AR x \$xabs)" || exit $? oldobjs="$oldobjs "`find $xdir -name \*.${objext} -print -o -name \*.lo -print | $NL2SP` done fi # Do each command in the archive commands. if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then eval cmds=\"$old_archive_from_new_cmds\" else # Ensure that we have .o objects in place in case we decided # not to build a shared library, and have fallen back to building # static libs even though --disable-static was passed! for oldobj in $oldobjs; do if test ! -f $oldobj; then xdir=`$echo "X$oldobj" | $Xsed -e 's%/[^/]*$%%'` if test "X$xdir" = "X$oldobj"; then xdir="." else xdir="$xdir" fi baseobj=`$echo "X$oldobj" | $Xsed -e 's%^.*/%%'` obj=`$echo "X$baseobj" | $Xsed -e "$o2lo"` $show "(cd $xdir && ${LN_S} $obj $baseobj)" $run eval '(cd $xdir && ${LN_S} $obj $baseobj)' || exit $? fi done eval cmds=\"$old_archive_cmds\" fi save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" done if test -n "$generated"; then $show "${rm}r$generated" $run ${rm}r$generated fi # Now create the libtool archive. case $output in *.la) old_library= test "$build_old_libs" = yes && old_library="$libname.$libext" $show "creating $output" # Preserve any variables that may affect compiler behavior for var in $variables_saved_for_relink; do if eval test -z \"\${$var+set}\"; then relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command" elif eval var_value=\$$var; test -z "$var_value"; then relink_command="$var=; export $var; $relink_command" else var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"` relink_command="$var=\"$var_value\"; export $var; $relink_command" fi done # Quote the link command for shipping. relink_command="(cd `pwd`; $SHELL $0 --mode=relink $libtool_args @inst_prefix_dir@)" relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"` # Only create the output if not a dry run. if test -z "$run"; then for installed in no yes; do if test "$installed" = yes; then if test -z "$install_libdir"; then break fi output="$output_objdir/$outputname"i # Replace all uninstalled libtool libraries with the installed ones newdependency_libs= for deplib in $dependency_libs; do case $deplib in *.la) name=`$echo "X$deplib" | $Xsed -e 's%^.*/%%'` eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` if test -z "$libdir"; then $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2 exit 1 fi newdependency_libs="$newdependency_libs $libdir/$name" ;; *) newdependency_libs="$newdependency_libs $deplib" ;; esac done dependency_libs="$newdependency_libs" newdlfiles= for lib in $dlfiles; do name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'` eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` if test -z "$libdir"; then $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 exit 1 fi newdlfiles="$newdlfiles $libdir/$name" done dlfiles="$newdlfiles" newdlprefiles= for lib in $dlprefiles; do name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'` eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` if test -z "$libdir"; then $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 exit 1 fi newdlprefiles="$newdlprefiles $libdir/$name" done dlprefiles="$newdlprefiles" fi $rm $output # place dlname in correct position for cygwin tdlname=$dlname case $host,$output,$installed,$module,$dlname in *cygwin*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;; esac $echo > $output "\ # $outputname - a libtool library file # Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP # # Please DO NOT delete this file! # It is necessary for linking the library. # The name that we can dlopen(3). dlname='$tdlname' # Names of this library. library_names='$library_names' # The name of the static archive. old_library='$old_library' # Libraries that this one depends upon. dependency_libs='$dependency_libs' # Version information for $libname. current=$current age=$age revision=$revision # Is this an already installed library? installed=$installed # Files to dlopen/dlpreopen dlopen='$dlfiles' dlpreopen='$dlprefiles' # Directory that this library needs to be installed in: libdir='$install_libdir'" if test "$installed" = no && test $need_relink = yes; then $echo >> $output "\ relink_command=\"$relink_command\"" fi done fi # Do a symbolic link so that the libtool archive can be found in # LD_LIBRARY_PATH before the program is installed. $show "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)" $run eval '(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)' || exit $? ;; esac exit 0 ;; # libtool install mode install) modename="$modename: install" # There may be an optional sh(1) argument at the beginning of # install_prog (especially on Windows NT). if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh || # Allow the use of GNU shtool's install command. $echo "X$nonopt" | $Xsed | grep shtool > /dev/null; then # Aesthetically quote it. arg=`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"` case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*) arg="\"$arg\"" ;; esac install_prog="$arg " arg="$1" shift else install_prog= arg="$nonopt" fi # The real first argument should be the name of the installation program. # Aesthetically quote it. arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*) arg="\"$arg\"" ;; esac install_prog="$install_prog$arg" # We need to accept at least all the BSD install flags. dest= files= opts= prev= install_type= isdir=no stripme= for arg do if test -n "$dest"; then files="$files $dest" dest="$arg" continue fi case $arg in -d) isdir=yes ;; -f) prev="-f" ;; -g) prev="-g" ;; -m) prev="-m" ;; -o) prev="-o" ;; -s) stripme=" -s" continue ;; -*) ;; *) # If the previous option needed an argument, then skip it. if test -n "$prev"; then prev= else dest="$arg" continue fi ;; esac # Aesthetically quote the argument. arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*) arg="\"$arg\"" ;; esac install_prog="$install_prog $arg" done if test -z "$install_prog"; then $echo "$modename: you must specify an install program" 1>&2 $echo "$help" 1>&2 exit 1 fi if test -n "$prev"; then $echo "$modename: the \`$prev' option requires an argument" 1>&2 $echo "$help" 1>&2 exit 1 fi if test -z "$files"; then if test -z "$dest"; then $echo "$modename: no file or destination specified" 1>&2 else $echo "$modename: you must specify a destination" 1>&2 fi $echo "$help" 1>&2 exit 1 fi # Strip any trailing slash from the destination. dest=`$echo "X$dest" | $Xsed -e 's%/$%%'` # Check to see that the destination is a directory. test -d "$dest" && isdir=yes if test "$isdir" = yes; then destdir="$dest" destname= else destdir=`$echo "X$dest" | $Xsed -e 's%/[^/]*$%%'` test "X$destdir" = "X$dest" && destdir=. destname=`$echo "X$dest" | $Xsed -e 's%^.*/%%'` # Not a directory, so check to see that there is only one file specified. set dummy $files if test $# -gt 2; then $echo "$modename: \`$dest' is not a directory" 1>&2 $echo "$help" 1>&2 exit 1 fi fi case $destdir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) for file in $files; do case $file in *.lo) ;; *) $echo "$modename: \`$destdir' must be an absolute directory name" 1>&2 $echo "$help" 1>&2 exit 1 ;; esac done ;; esac # This variable tells wrapper scripts just to set variables rather # than running their programs. libtool_install_magic="$magic" staticlibs= future_libdirs= current_libdirs= for file in $files; do # Do each installation. case $file in *.$libext) # Do the static libraries later. staticlibs="$staticlibs $file" ;; *.la) # Check to see that this really is a libtool archive. if (${SED} -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : else $echo "$modename: \`$file' is not a valid libtool archive" 1>&2 $echo "$help" 1>&2 exit 1 fi library_names= old_library= relink_command= # If there is no directory component, then add one. case $file in */* | *\\*) . $file ;; *) . ./$file ;; esac # Add the libdir to current_libdirs if it is the destination. if test "X$destdir" = "X$libdir"; then case "$current_libdirs " in *" $libdir "*) ;; *) current_libdirs="$current_libdirs $libdir" ;; esac else # Note the libdir as a future libdir. case "$future_libdirs " in *" $libdir "*) ;; *) future_libdirs="$future_libdirs $libdir" ;; esac fi dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`/ test "X$dir" = "X$file/" && dir= dir="$dir$objdir" if test -n "$relink_command"; then # Determine the prefix the user has applied to our future dir. inst_prefix_dir=`$echo "$destdir" | sed "s%$libdir\$%%"` # Don't allow the user to place us outside of our expected # location b/c this prevents finding dependent libraries that # are installed to the same prefix. if test "$inst_prefix_dir" = "$destdir"; then $echo "$modename: error: cannot install \`$file' to a directory not ending in $libdir" 1>&2 exit 1 fi if test -n "$inst_prefix_dir"; then # Stick the inst_prefix_dir data into the link command. relink_command=`$echo "$relink_command" | sed "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"` else relink_command=`$echo "$relink_command" | sed "s%@inst_prefix_dir@%%"` fi $echo "$modename: warning: relinking \`$file'" 1>&2 $show "$relink_command" if $run eval "$relink_command"; then : else $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2 exit 1 fi fi # See the names of the shared library. set dummy $library_names if test -n "$2"; then realname="$2" shift shift srcname="$realname" test -n "$relink_command" && srcname="$realname"T # Install the shared library and build the symlinks. $show "$install_prog $dir/$srcname $destdir/$realname" $run eval "$install_prog $dir/$srcname $destdir/$realname" || exit $? if test -n "$stripme" && test -n "$striplib"; then $show "$striplib $destdir/$realname" $run eval "$striplib $destdir/$realname" || exit $? fi if test $# -gt 0; then # Delete the old symlinks, and create new ones. for linkname do if test "$linkname" != "$realname"; then $show "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)" $run eval "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)" fi done fi # Do each command in the postinstall commands. lib="$destdir/$realname" eval cmds=\"$postinstall_cmds\" save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" fi # Install the pseudo-library for information purposes. name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` instname="$dir/$name"i $show "$install_prog $instname $destdir/$name" $run eval "$install_prog $instname $destdir/$name" || exit $? # Maybe install the static library, too. test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library" ;; *.lo) # Install (i.e. copy) a libtool object. # Figure out destination file name, if it wasn't already specified. if test -n "$destname"; then destfile="$destdir/$destname" else destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'` destfile="$destdir/$destfile" fi # Deduce the name of the destination old-style object file. case $destfile in *.lo) staticdest=`$echo "X$destfile" | $Xsed -e "$lo2o"` ;; *.$objext) staticdest="$destfile" destfile= ;; *) $echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2 $echo "$help" 1>&2 exit 1 ;; esac # Install the libtool object if requested. if test -n "$destfile"; then $show "$install_prog $file $destfile" $run eval "$install_prog $file $destfile" || exit $? fi # Install the old object if enabled. if test "$build_old_libs" = yes; then # Deduce the name of the old-style object file. staticobj=`$echo "X$file" | $Xsed -e "$lo2o"` $show "$install_prog $staticobj $staticdest" $run eval "$install_prog \$staticobj \$staticdest" || exit $? fi exit 0 ;; *) # Figure out destination file name, if it wasn't already specified. if test -n "$destname"; then destfile="$destdir/$destname" else destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'` destfile="$destdir/$destfile" fi # Do a test to see if this is really a libtool program. case $host in *cygwin*|*mingw*) wrapper=`echo $file | ${SED} -e 's,.exe$,,'` ;; *) wrapper=$file ;; esac if (${SED} -e '4q' $wrapper | egrep "^# Generated by .*$PACKAGE")>/dev/null 2>&1; then notinst_deplibs= relink_command= # If there is no directory component, then add one. case $file in */* | *\\*) . $wrapper ;; *) . ./$wrapper ;; esac # Check the variables that should have been set. if test -z "$notinst_deplibs"; then $echo "$modename: invalid libtool wrapper script \`$wrapper'" 1>&2 exit 1 fi finalize=yes for lib in $notinst_deplibs; do # Check to see that each library is installed. libdir= if test -f "$lib"; then # If there is no directory component, then add one. case $lib in */* | *\\*) . $lib ;; *) . ./$lib ;; esac fi libfile="$libdir/"`$echo "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test if test -n "$libdir" && test ! -f "$libfile"; then $echo "$modename: warning: \`$lib' has not been installed in \`$libdir'" 1>&2 finalize=no fi done relink_command= # If there is no directory component, then add one. case $file in */* | *\\*) . $wrapper ;; *) . ./$wrapper ;; esac outputname= if test "$fast_install" = no && test -n "$relink_command"; then if test "$finalize" = yes && test -z "$run"; then tmpdir="/tmp" test -n "$TMPDIR" && tmpdir="$TMPDIR" tmpdir="$tmpdir/libtool-$$" if $mkdir -p "$tmpdir" && chmod 700 "$tmpdir"; then : else $echo "$modename: error: cannot create temporary directory \`$tmpdir'" 1>&2 continue fi file=`$echo "X$file" | $Xsed -e 's%^.*/%%'` outputname="$tmpdir/$file" # Replace the output file specification. relink_command=`$echo "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'` $show "$relink_command" if $run eval "$relink_command"; then : else $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2 ${rm}r "$tmpdir" continue fi file="$outputname" else $echo "$modename: warning: cannot relink \`$file'" 1>&2 fi else # Install the binary that we compiled earlier. file=`$echo "X$file" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"` fi fi # remove .exe since cygwin /usr/bin/install will append another # one anyways case $install_prog,$host in /usr/bin/install*,*cygwin*) case $file:$destfile in *.exe:*.exe) # this is ok ;; *.exe:*) destfile=$destfile.exe ;; *:*.exe) destfile=`echo $destfile | ${SED} -e 's,.exe$,,'` ;; esac ;; esac $show "$install_prog$stripme $file $destfile" $run eval "$install_prog\$stripme \$file \$destfile" || exit $? test -n "$outputname" && ${rm}r "$tmpdir" ;; esac done for file in $staticlibs; do name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` # Set up the ranlib parameters. oldlib="$destdir/$name" $show "$install_prog $file $oldlib" $run eval "$install_prog \$file \$oldlib" || exit $? if test -n "$stripme" && test -n "$striplib"; then $show "$old_striplib $oldlib" $run eval "$old_striplib $oldlib" || exit $? fi # Do each command in the postinstall commands. eval cmds=\"$old_postinstall_cmds\" save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" done if test -n "$future_libdirs"; then $echo "$modename: warning: remember to run \`$progname --finish$future_libdirs'" 1>&2 fi if test -n "$current_libdirs"; then # Maybe just do a dry run. test -n "$run" && current_libdirs=" -n$current_libdirs" exec_cmd='$SHELL $0 --finish$current_libdirs' else exit 0 fi ;; # libtool finish mode finish) modename="$modename: finish" libdirs="$nonopt" admincmds= if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then for dir do libdirs="$libdirs $dir" done for libdir in $libdirs; do if test -n "$finish_cmds"; then # Do each command in the finish commands. eval cmds=\"$finish_cmds\" save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" $show "$cmd" $run eval "$cmd" || admincmds="$admincmds $cmd" done IFS="$save_ifs" fi if test -n "$finish_eval"; then # Do the single finish_eval. eval cmds=\"$finish_eval\" $run eval "$cmds" || admincmds="$admincmds $cmds" fi done fi # Exit here if they wanted silent mode. test "$show" = ":" && exit 0 echo "----------------------------------------------------------------------" echo "Libraries have been installed in:" for libdir in $libdirs; do echo " $libdir" done echo echo "If you ever happen to want to link against installed libraries" echo "in a given directory, LIBDIR, you must either use libtool, and" echo "specify the full pathname of the library, or use the \`-LLIBDIR'" echo "flag during linking and do at least one of the following:" if test -n "$shlibpath_var"; then echo " - add LIBDIR to the \`$shlibpath_var' environment variable" echo " during execution" fi if test -n "$runpath_var"; then echo " - add LIBDIR to the \`$runpath_var' environment variable" echo " during linking" fi if test -n "$hardcode_libdir_flag_spec"; then libdir=LIBDIR eval flag=\"$hardcode_libdir_flag_spec\" echo " - use the \`$flag' linker flag" fi if test -n "$admincmds"; then echo " - have your system administrator run these commands:$admincmds" fi if test -f /etc/ld.so.conf; then echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'" fi echo echo "See any operating system documentation about shared libraries for" echo "more information, such as the ld(1) and ld.so(8) manual pages." echo "----------------------------------------------------------------------" exit 0 ;; # libtool execute mode execute) modename="$modename: execute" # The first argument is the command name. cmd="$nonopt" if test -z "$cmd"; then $echo "$modename: you must specify a COMMAND" 1>&2 $echo "$help" exit 1 fi # Handle -dlopen flags immediately. for file in $execute_dlfiles; do if test ! -f "$file"; then $echo "$modename: \`$file' is not a file" 1>&2 $echo "$help" 1>&2 exit 1 fi dir= case $file in *.la) # Check to see that this really is a libtool archive. if (${SED} -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : else $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 $echo "$help" 1>&2 exit 1 fi # Read the libtool library. dlname= library_names= # If there is no directory component, then add one. case $file in */* | *\\*) . $file ;; *) . ./$file ;; esac # Skip this library if it cannot be dlopened. if test -z "$dlname"; then # Warn if it was a shared library. test -n "$library_names" && $echo "$modename: warning: \`$file' was not linked with \`-export-dynamic'" continue fi dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` test "X$dir" = "X$file" && dir=. if test -f "$dir/$objdir/$dlname"; then dir="$dir/$objdir" else $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2 exit 1 fi ;; *.lo) # Just add the directory containing the .lo file. dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` test "X$dir" = "X$file" && dir=. ;; *) $echo "$modename: warning \`-dlopen' is ignored for non-libtool libraries and objects" 1>&2 continue ;; esac # Get the absolute pathname. absdir=`cd "$dir" && pwd` test -n "$absdir" && dir="$absdir" # Now add the directory to shlibpath_var. if eval "test -z \"\$$shlibpath_var\""; then eval "$shlibpath_var=\"\$dir\"" else eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\"" fi done # This variable tells wrapper scripts just to set shlibpath_var # rather than running their programs. libtool_execute_magic="$magic" # Check if any of the arguments is a wrapper script. args= for file do case $file in -*) ;; *) # Do a test to see if this is really a libtool program. if (${SED} -e '4q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then # If there is no directory component, then add one. case $file in */* | *\\*) . $file ;; *) . ./$file ;; esac # Transform arg to wrapped name. file="$progdir/$program" fi ;; esac # Quote arguments (to preserve shell metacharacters). file=`$echo "X$file" | $Xsed -e "$sed_quote_subst"` args="$args \"$file\"" done if test -z "$run"; then if test -n "$shlibpath_var"; then # Export the shlibpath_var. eval "export $shlibpath_var" fi # Restore saved enviroment variables if test "${save_LC_ALL+set}" = set; then LC_ALL="$save_LC_ALL"; export LC_ALL fi if test "${save_LANG+set}" = set; then LANG="$save_LANG"; export LANG fi # Now prepare to actually exec the command. exec_cmd="\$cmd$args" else # Display what would be done. if test -n "$shlibpath_var"; then eval "\$echo \"\$shlibpath_var=\$$shlibpath_var\"" $echo "export $shlibpath_var" fi $echo "$cmd$args" exit 0 fi ;; # libtool clean and uninstall mode clean | uninstall) modename="$modename: $mode" rm="$nonopt" files= rmforce= exit_status=0 # This variable tells wrapper scripts just to set variables rather # than running their programs. libtool_install_magic="$magic" for arg do case $arg in -f) rm="$rm $arg"; rmforce=yes ;; -*) rm="$rm $arg" ;; *) files="$files $arg" ;; esac done if test -z "$rm"; then $echo "$modename: you must specify an RM program" 1>&2 $echo "$help" 1>&2 exit 1 fi rmdirs= for file in $files; do dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` if test "X$dir" = "X$file"; then dir=. objdir="$objdir" else objdir="$dir/$objdir" fi name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` test $mode = uninstall && objdir="$dir" # Remember objdir for removal later, being careful to avoid duplicates if test $mode = clean; then case " $rmdirs " in *" $objdir "*) ;; *) rmdirs="$rmdirs $objdir" ;; esac fi # Don't error if the file doesn't exist and rm -f was used. if (test -L "$file") >/dev/null 2>&1 \ || (test -h "$file") >/dev/null 2>&1 \ || test -f "$file"; then : elif test -d "$file"; then exit_status=1 continue elif test "$rmforce" = yes; then continue fi rmfiles="$file" case $name in *.la) # Possibly a libtool archive, so verify it. if (${SED} -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then . $dir/$name # Delete the libtool libraries and symlinks. for n in $library_names; do rmfiles="$rmfiles $objdir/$n" done test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library" test $mode = clean && rmfiles="$rmfiles $objdir/$name $objdir/${name}i" if test $mode = uninstall; then if test -n "$library_names"; then # Do each command in the postuninstall commands. eval cmds=\"$postuninstall_cmds\" save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" $show "$cmd" $run eval "$cmd" if test $? != 0 && test "$rmforce" != yes; then exit_status=1 fi done IFS="$save_ifs" fi if test -n "$old_library"; then # Do each command in the old_postuninstall commands. eval cmds=\"$old_postuninstall_cmds\" save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" $show "$cmd" $run eval "$cmd" if test $? != 0 && test "$rmforce" != yes; then exit_status=1 fi done IFS="$save_ifs" fi # FIXME: should reinstall the best remaining shared library. fi fi ;; *.lo) if test "$build_old_libs" = yes; then oldobj=`$echo "X$name" | $Xsed -e "$lo2o"` rmfiles="$rmfiles $dir/$oldobj" fi ;; *) # Do a test to see if this is a libtool program. if test $mode = clean && (${SED} -e '4q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then relink_command= . $file rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}" if test "$fast_install" = yes && test -n "$relink_command"; then rmfiles="$rmfiles $objdir/lt-$name" fi fi ;; esac $show "$rm $rmfiles" $run $rm $rmfiles || exit_status=1 done # Try to remove the ${objdir}s in the directories where we deleted files for dir in $rmdirs; do if test -d "$dir"; then $show "rmdir $dir" $run rmdir $dir >/dev/null 2>&1 fi done exit $exit_status ;; "") $echo "$modename: you must specify a MODE" 1>&2 $echo "$generic_help" 1>&2 exit 1 ;; esac if test -z "$exec_cmd"; then $echo "$modename: invalid operation mode \`$mode'" 1>&2 $echo "$generic_help" 1>&2 exit 1 fi fi # test -z "$show_help" if test -n "$exec_cmd"; then eval exec $exec_cmd exit 1 fi # We need to display help for each of the modes. case $mode in "") $echo \ "Usage: $modename [OPTION]... [MODE-ARG]... Provide generalized library-building support services. --config show all configuration variables --debug enable verbose shell tracing -n, --dry-run display commands without modifying any files --features display basic configuration information and exit --finish same as \`--mode=finish' --help display this help message and exit --mode=MODE use operation mode MODE [default=inferred from MODE-ARGS] --quiet same as \`--silent' --silent don't print informational messages --version print version information MODE must be one of the following: clean remove files from the build directory compile compile a source file into a libtool object execute automatically set library path, then run a program finish complete the installation of libtool libraries install install libraries or executables link create a library or an executable uninstall remove libraries from an installed directory MODE-ARGS vary depending on the MODE. Try \`$modename --help --mode=MODE' for a more detailed description of MODE." exit 0 ;; clean) $echo \ "Usage: $modename [OPTION]... --mode=clean RM [RM-OPTION]... FILE... Remove files from the build directory. RM is the name of the program to use to delete files associated with each FILE (typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed to RM. If FILE is a libtool library, object or program, all the files associated with it are deleted. Otherwise, only FILE itself is deleted using RM." ;; compile) $echo \ "Usage: $modename [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE Compile a source file into a libtool library object. This mode accepts the following additional options: -o OUTPUT-FILE set the output file name to OUTPUT-FILE -prefer-pic try to building PIC objects only -prefer-non-pic try to building non-PIC objects only -static always build a \`.o' file suitable for static linking COMPILE-COMMAND is a command to be used in creating a \`standard' object file from the given SOURCEFILE. The output file name is determined by removing the directory component from SOURCEFILE, then substituting the C source code suffix \`.c' with the library object suffix, \`.lo'." ;; execute) $echo \ "Usage: $modename [OPTION]... --mode=execute COMMAND [ARGS]... Automatically set library path, then run a program. This mode accepts the following additional options: -dlopen FILE add the directory containing FILE to the library path This mode sets the library path environment variable according to \`-dlopen' flags. If any of the ARGS are libtool executable wrappers, then they are translated into their corresponding uninstalled binary, and any of their required library directories are added to the library path. Then, COMMAND is executed, with ARGS as arguments." ;; finish) $echo \ "Usage: $modename [OPTION]... --mode=finish [LIBDIR]... Complete the installation of libtool libraries. Each LIBDIR is a directory that contains libtool libraries. The commands that this mode executes may require superuser privileges. Use the \`--dry-run' option if you just want to see what would be executed." ;; install) $echo \ "Usage: $modename [OPTION]... --mode=install INSTALL-COMMAND... Install executables or libraries. INSTALL-COMMAND is the installation command. The first component should be either the \`install' or \`cp' program. The rest of the components are interpreted as arguments to that command (only BSD-compatible install options are recognized)." ;; link) $echo \ "Usage: $modename [OPTION]... --mode=link LINK-COMMAND... Link object files or libraries together to form another library, or to create an executable program. LINK-COMMAND is a command using the C compiler that you would use to create a program from several object files. The following components of LINK-COMMAND are treated specially: -all-static do not do any dynamic linking at all -avoid-version do not add a version suffix if possible -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3) -export-symbols SYMFILE try to export only the symbols listed in SYMFILE -export-symbols-regex REGEX try to export only the symbols matching REGEX -LLIBDIR search LIBDIR for required installed libraries -lNAME OUTPUT-FILE requires the installed library libNAME -module build a library that can dlopened -no-fast-install disable the fast-install mode -no-install link a not-installable executable -no-undefined declare that a library does not refer to external symbols -o OUTPUT-FILE create OUTPUT-FILE from the specified objects -release RELEASE specify package release information -rpath LIBDIR the created library will eventually be installed in LIBDIR -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries -static do not do any dynamic linking of libtool libraries -version-info CURRENT[:REVISION[:AGE]] specify library version info [each variable defaults to 0] All other options (arguments beginning with \`-') are ignored. Every other argument is treated as a filename. Files ending in \`.la' are treated as uninstalled libtool libraries, other files are standard or library object files. If the OUTPUT-FILE ends in \`.la', then a libtool library is created, only library objects (\`.lo' files) may be specified, and \`-rpath' is required, except when creating a convenience library. If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created using \`ar' and \`ranlib', or on Windows using \`lib'. If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file is created, otherwise an executable program is created." ;; uninstall) $echo \ "Usage: $modename [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE... Remove libraries from an installation directory. RM is the name of the program to use to delete files associated with each FILE (typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed to RM. If FILE is a libtool library, all the files associated with it are deleted. Otherwise, only FILE itself is deleted using RM." ;; *) $echo "$modename: invalid operation mode \`$mode'" 1>&2 $echo "$help" 1>&2 exit 1 ;; esac echo $echo "Try \`$modename --help' for more information about other modes." exit 0 # Local Variables: # mode:shell-script # sh-indentation:2 # End: discover-2.1.2/buildtools/config.sub0000755002342100234210000007431510266266026016163 0ustar perepere#! /bin/sh # Configuration validation subroutine script. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # 2000, 2001, 2002, 2003 Free Software Foundation, Inc. timestamp='2004-01-05' # This file is (in principle) common to ALL GNU software. # The presence of a machine in this file suggests that SOME GNU software # can handle that machine. It does not imply ALL GNU software can. # # This file is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, # Boston, MA 02111-1307, USA. # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Please send patches to . Submit a context # diff and a properly formatted ChangeLog entry. # # Configuration subroutine to validate and canonicalize a configuration type. # Supply the specified configuration type as an argument. # If it is invalid, we print an error message on stderr and exit with code 1. # Otherwise, we print the canonical config type on stdout and succeed. # This file is supposed to be the same for all GNU packages # and recognize all the CPU types, system types and aliases # that are meaningful with *any* GNU software. # Each package is responsible for reporting which valid configurations # it does not support. The user should be able to distinguish # a failure to support a valid configuration from a meaningless # configuration. # The goal of this file is to map all the various variations of a given # machine specification into a single specification in the form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM # or in some cases, the newer four-part form: # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM # It is wrong to echo any other type of specification. me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] CPU-MFR-OPSYS $0 [OPTION] ALIAS Canonicalize a configuration name. Operation modes: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.sub ($timestamp) Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit 0 ;; --version | -v ) echo "$version" ; exit 0 ;; --help | --h* | -h ) echo "$usage"; exit 0 ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" exit 1 ;; *local*) # First pass through any local machine types. echo $1 exit 0;; * ) break ;; esac done case $# in 0) echo "$me: missing argument$help" >&2 exit 1;; 1) ;; *) echo "$me: too many arguments$help" >&2 exit 1;; esac # Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). # Here we must recognize all the valid KERNEL-OS combinations. maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` case $maybe_os in nto-qnx* | linux-gnu* | linux-dietlibc | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | \ kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | storm-chaos* | os2-emx* | rtmk-nova*) os=-$maybe_os basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` ;; *) basic_machine=`echo $1 | sed 's/-[^-]*$//'` if [ $basic_machine != $1 ] then os=`echo $1 | sed 's/.*-/-/'` else os=; fi ;; esac ### Let's recognize common machines as not being operating systems so ### that things like config.sub decstation-3100 work. We also ### recognize some manufacturers as not being operating systems, so we ### can provide default operating systems below. case $os in -sun*os*) # Prevent following clause from handling this invalid input. ;; -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ -apple | -axis) os= basic_machine=$1 ;; -sim | -cisco | -oki | -wec | -winbond) os= basic_machine=$1 ;; -scout) ;; -wrs) os=-vxworks basic_machine=$1 ;; -chorusos*) os=-chorusos basic_machine=$1 ;; -chorusrdb) os=-chorusrdb basic_machine=$1 ;; -hiux*) os=-hiuxwe2 ;; -sco5) os=-sco3.2v5 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco4) os=-sco3.2v4 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco3.2.[4-9]*) os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco3.2v[4-9]*) # Don't forget version if it is 3.2v4 or newer. basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco*) os=-sco3.2v2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -udk*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -isc) os=-isc2.2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -clix*) basic_machine=clipper-intergraph ;; -isc*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -lynx*) os=-lynxos ;; -ptx*) basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` ;; -windowsnt*) os=`echo $os | sed -e 's/windowsnt/winnt/'` ;; -psos*) os=-psos ;; -mint | -mint[0-9]*) basic_machine=m68k-atari os=-mint ;; esac # Decode aliases for certain CPU-COMPANY combinations. case $basic_machine in # Recognize the basic CPU types without company name. # Some are omitted here because they have special meanings below. 1750a | 580 \ | a29k \ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ | am33_2.0 \ | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr \ | c4x | clipper \ | d10v | d30v | dlx | dsp16xx \ | fr30 | frv \ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ | i370 | i860 | i960 | ia64 \ | ip2k | iq2000 \ | m32r | m68000 | m68k | m88k | mcore \ | mips | mipsbe | mipseb | mipsel | mipsle \ | mips16 \ | mips64 | mips64el \ | mips64vr | mips64vrel \ | mips64orion | mips64orionel \ | mips64vr4100 | mips64vr4100el \ | mips64vr4300 | mips64vr4300el \ | mips64vr5000 | mips64vr5000el \ | mipsisa32 | mipsisa32el \ | mipsisa32r2 | mipsisa32r2el \ | mipsisa64 | mipsisa64el \ | mipsisa64r2 | mipsisa64r2el \ | mipsisa64sb1 | mipsisa64sb1el \ | mipsisa64sr71k | mipsisa64sr71kel \ | mipstx39 | mipstx39el \ | mn10200 | mn10300 \ | msp430 \ | ns16k | ns32k \ | openrisc | or32 \ | pdp10 | pdp11 | pj | pjl \ | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ | pyramid \ | sh | sh[1234] | sh[23]e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \ | sh64 | sh64le \ | sparc | sparc64 | sparc86x | sparclet | sparclite | sparcv9 | sparcv9b \ | strongarm \ | tahoe | thumb | tic4x | tic80 | tron \ | v850 | v850e \ | we32k \ | x86 | xscale | xstormy16 | xtensa \ | z8k) basic_machine=$basic_machine-unknown ;; m6811 | m68hc11 | m6812 | m68hc12) # Motorola 68HC11/12. basic_machine=$basic_machine-unknown os=-none ;; m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) ;; # We use `pc' rather than `unknown' # because (1) that's what they normally are, and # (2) the word "unknown" tends to confuse beginning users. i*86 | x86_64) basic_machine=$basic_machine-pc ;; # Object if more than one company name word. *-*-*) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 ;; # Recognize the basic CPU types with company name. 580-* \ | a29k-* \ | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ | avr-* \ | bs2000-* \ | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ | clipper-* | cydra-* \ | d10v-* | d30v-* | dlx-* \ | elxsi-* \ | f30[01]-* | f700-* | fr30-* | frv-* | fx80-* \ | h8300-* | h8500-* \ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ | i*86-* | i860-* | i960-* | ia64-* \ | ip2k-* | iq2000-* \ | m32r-* \ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ | m88110-* | m88k-* | mcore-* \ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ | mips16-* \ | mips64-* | mips64el-* \ | mips64vr-* | mips64vrel-* \ | mips64orion-* | mips64orionel-* \ | mips64vr4100-* | mips64vr4100el-* \ | mips64vr4300-* | mips64vr4300el-* \ | mips64vr5000-* | mips64vr5000el-* \ | mipsisa32-* | mipsisa32el-* \ | mipsisa32r2-* | mipsisa32r2el-* \ | mipsisa64-* | mipsisa64el-* \ | mipsisa64r2-* | mipsisa64r2el-* \ | mipsisa64sb1-* | mipsisa64sb1el-* \ | mipsisa64sr71k-* | mipsisa64sr71kel-* \ | mipstx39-* | mipstx39el-* \ | msp430-* \ | none-* | np1-* | nv1-* | ns16k-* | ns32k-* \ | orion-* \ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ | pyramid-* \ | romp-* | rs6000-* \ | sh-* | sh[1234]-* | sh[23]e-* | sh[34]eb-* | shbe-* \ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ | sparc-* | sparc64-* | sparc86x-* | sparclet-* | sparclite-* \ | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \ | tahoe-* | thumb-* \ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ | tron-* \ | v850-* | v850e-* | vax-* \ | we32k-* \ | x86-* | x86_64-* | xps100-* | xscale-* | xstormy16-* \ | xtensa-* \ | ymp-* \ | z8k-*) ;; # Recognize the various machine names and aliases which stand # for a CPU type and a company and sometimes even an OS. 386bsd) basic_machine=i386-unknown os=-bsd ;; 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) basic_machine=m68000-att ;; 3b*) basic_machine=we32k-att ;; a29khif) basic_machine=a29k-amd os=-udi ;; adobe68k) basic_machine=m68010-adobe os=-scout ;; alliant | fx80) basic_machine=fx80-alliant ;; altos | altos3068) basic_machine=m68k-altos ;; am29k) basic_machine=a29k-none os=-bsd ;; amd64) basic_machine=x86_64-pc ;; amd64-*) basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; amdahl) basic_machine=580-amdahl os=-sysv ;; amiga | amiga-*) basic_machine=m68k-unknown ;; amigaos | amigados) basic_machine=m68k-unknown os=-amigaos ;; amigaunix | amix) basic_machine=m68k-unknown os=-sysv4 ;; apollo68) basic_machine=m68k-apollo os=-sysv ;; apollo68bsd) basic_machine=m68k-apollo os=-bsd ;; aux) basic_machine=m68k-apple os=-aux ;; balance) basic_machine=ns32k-sequent os=-dynix ;; c90) basic_machine=c90-cray os=-unicos ;; convex-c1) basic_machine=c1-convex os=-bsd ;; convex-c2) basic_machine=c2-convex os=-bsd ;; convex-c32) basic_machine=c32-convex os=-bsd ;; convex-c34) basic_machine=c34-convex os=-bsd ;; convex-c38) basic_machine=c38-convex os=-bsd ;; cray | j90) basic_machine=j90-cray os=-unicos ;; crds | unos) basic_machine=m68k-crds ;; cris | cris-* | etrax*) basic_machine=cris-axis ;; da30 | da30-*) basic_machine=m68k-da30 ;; decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) basic_machine=mips-dec ;; decsystem10* | dec10*) basic_machine=pdp10-dec os=-tops10 ;; decsystem20* | dec20*) basic_machine=pdp10-dec os=-tops20 ;; delta | 3300 | motorola-3300 | motorola-delta \ | 3300-motorola | delta-motorola) basic_machine=m68k-motorola ;; delta88) basic_machine=m88k-motorola os=-sysv3 ;; dpx20 | dpx20-*) basic_machine=rs6000-bull os=-bosx ;; dpx2* | dpx2*-bull) basic_machine=m68k-bull os=-sysv3 ;; ebmon29k) basic_machine=a29k-amd os=-ebmon ;; elxsi) basic_machine=elxsi-elxsi os=-bsd ;; encore | umax | mmax) basic_machine=ns32k-encore ;; es1800 | OSE68k | ose68k | ose | OSE) basic_machine=m68k-ericsson os=-ose ;; fx2800) basic_machine=i860-alliant ;; genix) basic_machine=ns32k-ns ;; gmicro) basic_machine=tron-gmicro os=-sysv ;; go32) basic_machine=i386-pc os=-go32 ;; h3050r* | hiux*) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; h8300hms) basic_machine=h8300-hitachi os=-hms ;; h8300xray) basic_machine=h8300-hitachi os=-xray ;; h8500hms) basic_machine=h8500-hitachi os=-hms ;; harris) basic_machine=m88k-harris os=-sysv3 ;; hp300-*) basic_machine=m68k-hp ;; hp300bsd) basic_machine=m68k-hp os=-bsd ;; hp300hpux) basic_machine=m68k-hp os=-hpux ;; hp3k9[0-9][0-9] | hp9[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k2[0-9][0-9] | hp9k31[0-9]) basic_machine=m68000-hp ;; hp9k3[2-9][0-9]) basic_machine=m68k-hp ;; hp9k6[0-9][0-9] | hp6[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k7[0-79][0-9] | hp7[0-79][0-9]) basic_machine=hppa1.1-hp ;; hp9k78[0-9] | hp78[0-9]) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[0-9][13679] | hp8[0-9][13679]) basic_machine=hppa1.1-hp ;; hp9k8[0-9][0-9] | hp8[0-9][0-9]) basic_machine=hppa1.0-hp ;; hppa-next) os=-nextstep3 ;; hppaosf) basic_machine=hppa1.1-hp os=-osf ;; hppro) basic_machine=hppa1.1-hp os=-proelf ;; i370-ibm* | ibm*) basic_machine=i370-ibm ;; # I'm not sure what "Sysv32" means. Should this be sysv3.2? i*86v32) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv32 ;; i*86v4*) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv4 ;; i*86v) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv ;; i*86sol2) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-solaris2 ;; i386mach) basic_machine=i386-mach os=-mach ;; i386-vsta | vsta) basic_machine=i386-unknown os=-vsta ;; iris | iris4d) basic_machine=mips-sgi case $os in -irix*) ;; *) os=-irix4 ;; esac ;; isi68 | isi) basic_machine=m68k-isi os=-sysv ;; m88k-omron*) basic_machine=m88k-omron ;; magnum | m3230) basic_machine=mips-mips os=-sysv ;; merlin) basic_machine=ns32k-utek os=-sysv ;; mingw32) basic_machine=i386-pc os=-mingw32 ;; miniframe) basic_machine=m68000-convergent ;; *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) basic_machine=m68k-atari os=-mint ;; mips3*-*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` ;; mips3*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown ;; mmix*) basic_machine=mmix-knuth os=-mmixware ;; monitor) basic_machine=m68k-rom68k os=-coff ;; morphos) basic_machine=powerpc-unknown os=-morphos ;; msdos) basic_machine=i386-pc os=-msdos ;; mvs) basic_machine=i370-ibm os=-mvs ;; ncr3000) basic_machine=i486-ncr os=-sysv4 ;; netbsd386) basic_machine=i386-unknown os=-netbsd ;; netwinder) basic_machine=armv4l-rebel os=-linux ;; news | news700 | news800 | news900) basic_machine=m68k-sony os=-newsos ;; news1000) basic_machine=m68030-sony os=-newsos ;; news-3600 | risc-news) basic_machine=mips-sony os=-newsos ;; necv70) basic_machine=v70-nec os=-sysv ;; next | m*-next ) basic_machine=m68k-next case $os in -nextstep* ) ;; -ns2*) os=-nextstep2 ;; *) os=-nextstep3 ;; esac ;; nh3000) basic_machine=m68k-harris os=-cxux ;; nh[45]000) basic_machine=m88k-harris os=-cxux ;; nindy960) basic_machine=i960-intel os=-nindy ;; mon960) basic_machine=i960-intel os=-mon960 ;; nonstopux) basic_machine=mips-compaq os=-nonstopux ;; np1) basic_machine=np1-gould ;; nv1) basic_machine=nv1-cray os=-unicosmp ;; nsr-tandem) basic_machine=nsr-tandem ;; op50n-* | op60c-*) basic_machine=hppa1.1-oki os=-proelf ;; or32 | or32-*) basic_machine=or32-unknown os=-coff ;; os400) basic_machine=powerpc-ibm os=-os400 ;; OSE68000 | ose68000) basic_machine=m68000-ericsson os=-ose ;; os68k) basic_machine=m68k-none os=-os68k ;; pa-hitachi) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; paragon) basic_machine=i860-intel os=-osf ;; pbd) basic_machine=sparc-tti ;; pbb) basic_machine=m68k-tti ;; pc532 | pc532-*) basic_machine=ns32k-pc532 ;; pentium | p5 | k5 | k6 | nexgen | viac3) basic_machine=i586-pc ;; pentiumpro | p6 | 6x86 | athlon | athlon_*) basic_machine=i686-pc ;; pentiumii | pentium2 | pentiumiii | pentium3) basic_machine=i686-pc ;; pentium4) basic_machine=i786-pc ;; pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumpro-* | p6-* | 6x86-* | athlon-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentium4-*) basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pn) basic_machine=pn-gould ;; power) basic_machine=power-ibm ;; ppc) basic_machine=powerpc-unknown ;; ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppcle | powerpclittle | ppc-le | powerpc-little) basic_machine=powerpcle-unknown ;; ppcle-* | powerpclittle-*) basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64) basic_machine=powerpc64-unknown ;; ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64le | powerpc64little | ppc64-le | powerpc64-little) basic_machine=powerpc64le-unknown ;; ppc64le-* | powerpc64little-*) basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ps2) basic_machine=i386-ibm ;; pw32) basic_machine=i586-unknown os=-pw32 ;; rom68k) basic_machine=m68k-rom68k os=-coff ;; rm[46]00) basic_machine=mips-siemens ;; rtpc | rtpc-*) basic_machine=romp-ibm ;; s390 | s390-*) basic_machine=s390-ibm ;; s390x | s390x-*) basic_machine=s390x-ibm ;; sa29200) basic_machine=a29k-amd os=-udi ;; sb1) basic_machine=mipsisa64sb1-unknown ;; sb1el) basic_machine=mipsisa64sb1el-unknown ;; sei) basic_machine=mips-sei os=-seiux ;; sequent) basic_machine=i386-sequent ;; sh) basic_machine=sh-hitachi os=-hms ;; sh64) basic_machine=sh64-unknown ;; sparclite-wrs | simso-wrs) basic_machine=sparclite-wrs os=-vxworks ;; sps7) basic_machine=m68k-bull os=-sysv2 ;; spur) basic_machine=spur-unknown ;; st2000) basic_machine=m68k-tandem ;; stratus) basic_machine=i860-stratus os=-sysv4 ;; sun2) basic_machine=m68000-sun ;; sun2os3) basic_machine=m68000-sun os=-sunos3 ;; sun2os4) basic_machine=m68000-sun os=-sunos4 ;; sun3os3) basic_machine=m68k-sun os=-sunos3 ;; sun3os4) basic_machine=m68k-sun os=-sunos4 ;; sun4os3) basic_machine=sparc-sun os=-sunos3 ;; sun4os4) basic_machine=sparc-sun os=-sunos4 ;; sun4sol2) basic_machine=sparc-sun os=-solaris2 ;; sun3 | sun3-*) basic_machine=m68k-sun ;; sun4) basic_machine=sparc-sun ;; sun386 | sun386i | roadrunner) basic_machine=i386-sun ;; sv1) basic_machine=sv1-cray os=-unicos ;; symmetry) basic_machine=i386-sequent os=-dynix ;; t3e) basic_machine=alphaev5-cray os=-unicos ;; t90) basic_machine=t90-cray os=-unicos ;; tic54x | c54x*) basic_machine=tic54x-unknown os=-coff ;; tic55x | c55x*) basic_machine=tic55x-unknown os=-coff ;; tic6x | c6x*) basic_machine=tic6x-unknown os=-coff ;; tx39) basic_machine=mipstx39-unknown ;; tx39el) basic_machine=mipstx39el-unknown ;; toad1) basic_machine=pdp10-xkl os=-tops20 ;; tower | tower-32) basic_machine=m68k-ncr ;; tpf) basic_machine=s390x-ibm os=-tpf ;; udi29k) basic_machine=a29k-amd os=-udi ;; ultra3) basic_machine=a29k-nyu os=-sym1 ;; v810 | necv810) basic_machine=v810-nec os=-none ;; vaxv) basic_machine=vax-dec os=-sysv ;; vms) basic_machine=vax-dec os=-vms ;; vpp*|vx|vx-*) basic_machine=f301-fujitsu ;; vxworks960) basic_machine=i960-wrs os=-vxworks ;; vxworks68) basic_machine=m68k-wrs os=-vxworks ;; vxworks29k) basic_machine=a29k-wrs os=-vxworks ;; w65*) basic_machine=w65-wdc os=-none ;; w89k-*) basic_machine=hppa1.1-winbond os=-proelf ;; xps | xps100) basic_machine=xps100-honeywell ;; ymp) basic_machine=ymp-cray os=-unicos ;; z8k-*-coff) basic_machine=z8k-unknown os=-sim ;; none) basic_machine=none-none os=-none ;; # Here we handle the default manufacturer of certain CPU types. It is in # some cases the only manufacturer, in others, it is the most popular. w89k) basic_machine=hppa1.1-winbond ;; op50n) basic_machine=hppa1.1-oki ;; op60c) basic_machine=hppa1.1-oki ;; romp) basic_machine=romp-ibm ;; rs6000) basic_machine=rs6000-ibm ;; vax) basic_machine=vax-dec ;; pdp10) # there are many clones, so DEC is not a safe bet basic_machine=pdp10-unknown ;; pdp11) basic_machine=pdp11-dec ;; we32k) basic_machine=we32k-att ;; sh3 | sh4 | sh[34]eb | sh[1234]le | sh[23]ele) basic_machine=sh-unknown ;; sh64) basic_machine=sh64-unknown ;; sparc | sparcv9 | sparcv9b) basic_machine=sparc-sun ;; cydra) basic_machine=cydra-cydrome ;; orion) basic_machine=orion-highlevel ;; orion105) basic_machine=clipper-highlevel ;; mac | mpw | mac-mpw) basic_machine=m68k-apple ;; pmac | pmac-mpw) basic_machine=powerpc-apple ;; *-unknown) # Make sure to match an already-canonicalized machine name. ;; *) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 ;; esac # Here we canonicalize certain aliases for manufacturers. case $basic_machine in *-digital*) basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` ;; *-commodore*) basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` ;; *) ;; esac # Decode manufacturer-specific aliases for certain operating systems. if [ x"$os" != x"" ] then case $os in # First match some system type aliases # that might get confused with valid system types. # -solaris* is a basic system type, with this one exception. -solaris1 | -solaris1.*) os=`echo $os | sed -e 's|solaris1|sunos4|'` ;; -solaris) os=-solaris2 ;; -svr4*) os=-sysv4 ;; -unixware*) os=-sysv4.2uw ;; -gnu/linux*) os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` ;; # First accept the basic system types. # The portable systems comes first. # Each alternative MUST END IN A *, to match a version number. # -sysv* is not here because it comes later, after sysvr4. -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ | -aos* \ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ | -hiux* | -386bsd* | -knetbsd* | -netbsd* | -openbsd* | -kfreebsd* | -freebsd* | -riscix* \ | -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ | -chorusos* | -chorusrdb* \ | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ | -mingw32* | -linux-gnu* | -linux-uclibc* | -uxpv* | -beos* | -mpeix* | -udk* \ | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly*) # Remember, each alternative MUST END IN *, to match a version number. ;; -qnx*) case $basic_machine in x86-* | i*86-*) ;; *) os=-nto$os ;; esac ;; -nto-qnx*) ;; -nto*) os=`echo $os | sed -e 's|nto|nto-qnx|'` ;; -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ | -windows* | -osx | -abug | -netware* | -os9* | -beos* \ | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) ;; -mac*) os=`echo $os | sed -e 's|mac|macos|'` ;; -linux-dietlibc) os=-linux-dietlibc ;; -linux*) os=`echo $os | sed -e 's|linux|linux-gnu|'` ;; -sunos5*) os=`echo $os | sed -e 's|sunos5|solaris2|'` ;; -sunos6*) os=`echo $os | sed -e 's|sunos6|solaris3|'` ;; -opened*) os=-openedition ;; -os400*) os=-os400 ;; -wince*) os=-wince ;; -osfrose*) os=-osfrose ;; -osf*) os=-osf ;; -utek*) os=-bsd ;; -dynix*) os=-bsd ;; -acis*) os=-aos ;; -atheos*) os=-atheos ;; -syllable*) os=-syllable ;; -386bsd) os=-bsd ;; -ctix* | -uts*) os=-sysv ;; -nova*) os=-rtmk-nova ;; -ns2 ) os=-nextstep2 ;; -nsk*) os=-nsk ;; # Preserve the version number of sinix5. -sinix5.*) os=`echo $os | sed -e 's|sinix|sysv|'` ;; -sinix*) os=-sysv4 ;; -tpf*) os=-tpf ;; -triton*) os=-sysv3 ;; -oss*) os=-sysv3 ;; -svr4) os=-sysv4 ;; -svr3) os=-sysv3 ;; -sysvr4) os=-sysv4 ;; # This must come after -sysvr4. -sysv*) ;; -ose*) os=-ose ;; -es1800*) os=-ose ;; -xenix) os=-xenix ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) os=-mint ;; -aros*) os=-aros ;; -kaos*) os=-kaos ;; -none) ;; *) # Get rid of the `-' at the beginning of $os. os=`echo $os | sed 's/[^-]*-//'` echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 exit 1 ;; esac else # Here we handle the default operating systems that come with various machines. # The value should be what the vendor currently ships out the door with their # machine or put another way, the most popular os provided with the machine. # Note that if you're going to try to match "-MANUFACTURER" here (say, # "-sun"), then you have to tell the case statement up towards the top # that MANUFACTURER isn't an operating system. Otherwise, code above # will signal an error saying that MANUFACTURER isn't an operating # system, and we'll never get to this point. case $basic_machine in *-acorn) os=-riscix1.2 ;; arm*-rebel) os=-linux ;; arm*-semi) os=-aout ;; c4x-* | tic4x-*) os=-coff ;; # This must come before the *-dec entry. pdp10-*) os=-tops20 ;; pdp11-*) os=-none ;; *-dec | vax-*) os=-ultrix4.2 ;; m68*-apollo) os=-domain ;; i386-sun) os=-sunos4.0.2 ;; m68000-sun) os=-sunos3 # This also exists in the configure program, but was not the # default. # os=-sunos4 ;; m68*-cisco) os=-aout ;; mips*-cisco) os=-elf ;; mips*-*) os=-elf ;; or32-*) os=-coff ;; *-tti) # must be before sparc entry or we get the wrong os. os=-sysv3 ;; sparc-* | *-sun) os=-sunos4.1.1 ;; *-be) os=-beos ;; *-ibm) os=-aix ;; *-wec) os=-proelf ;; *-winbond) os=-proelf ;; *-oki) os=-proelf ;; *-hp) os=-hpux ;; *-hitachi) os=-hiux ;; i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) os=-sysv ;; *-cbm) os=-amigaos ;; *-dg) os=-dgux ;; *-dolphin) os=-sysv3 ;; m68k-ccur) os=-rtu ;; m88k-omron*) os=-luna ;; *-next ) os=-nextstep ;; *-sequent) os=-ptx ;; *-crds) os=-unos ;; *-ns) os=-genix ;; i370-*) os=-mvs ;; *-next) os=-nextstep3 ;; *-gould) os=-sysv ;; *-highlevel) os=-bsd ;; *-encore) os=-bsd ;; *-sgi) os=-irix ;; *-siemens) os=-sysv4 ;; *-masscomp) os=-rtu ;; f30[01]-fujitsu | f700-fujitsu) os=-uxpv ;; *-rom68k) os=-coff ;; *-*bug) os=-coff ;; *-apple) os=-macos ;; *-atari*) os=-mint ;; *) os=-none ;; esac fi # Here we handle the case where we know the os, and the CPU type, but not the # manufacturer. We pick the logical manufacturer. vendor=unknown case $basic_machine in *-unknown) case $os in -riscix*) vendor=acorn ;; -sunos*) vendor=sun ;; -aix*) vendor=ibm ;; -beos*) vendor=be ;; -hpux*) vendor=hp ;; -mpeix*) vendor=hp ;; -hiux*) vendor=hitachi ;; -unos*) vendor=crds ;; -dgux*) vendor=dg ;; -luna*) vendor=omron ;; -genix*) vendor=ns ;; -mvs* | -opened*) vendor=ibm ;; -os400*) vendor=ibm ;; -ptx*) vendor=sequent ;; -tpf*) vendor=ibm ;; -vxsim* | -vxworks* | -windiss*) vendor=wrs ;; -aux*) vendor=apple ;; -hms*) vendor=hitachi ;; -mpw* | -macos*) vendor=apple ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) vendor=atari ;; -vos*) vendor=stratus ;; esac basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` ;; esac echo $basic_machine$os exit 0 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: discover-2.1.2/buildtools/gettext.h0000644002342100234210000000507410266266026016031 0ustar perepere/* Convenience header for conditional use of GNU . Copyright (C) 1995-1998, 2000-2002 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifndef _LIBGETTEXT_H #define _LIBGETTEXT_H 1 /* NLS can be disabled through the configure --disable-nls option. */ #if ENABLE_NLS /* Get declarations of GNU message catalog functions. */ # include #else /* Disabled NLS. The casts to 'const char *' serve the purpose of producing warnings for invalid uses of the value returned from these functions. On pre-ANSI systems without 'const', the config.h file is supposed to contain "#define const". */ # define gettext(Msgid) ((const char *) (Msgid)) # define dgettext(Domainname, Msgid) ((const char *) (Msgid)) # define dcgettext(Domainname, Msgid, Category) ((const char *) (Msgid)) # define ngettext(Msgid1, Msgid2, N) \ ((N) == 1 ? (const char *) (Msgid1) : (const char *) (Msgid2)) # define dngettext(Domainname, Msgid1, Msgid2, N) \ ((N) == 1 ? (const char *) (Msgid1) : (const char *) (Msgid2)) # define dcngettext(Domainname, Msgid1, Msgid2, N, Category) \ ((N) == 1 ? (const char *) (Msgid1) : (const char *) (Msgid2)) # define textdomain(Domainname) ((const char *) (Domainname)) # define bindtextdomain(Domainname, Dirname) ((const char *) (Dirname)) # define bind_textdomain_codeset(Domainname, Codeset) ((const char *) (Codeset)) #endif /* A pseudo function call that serves as a marker for the automated extraction of messages, but does not call gettext(). The run-time translation is done at a different place in the code. The argument, String, should be a literal string. Concatenated strings and other string expressions won't work. The macro's expansion is not parenthesized, so that it is suitable as initializer for static 'char[]' or 'const char[]' variables. */ #define gettext_noop(String) String #endif /* _LIBGETTEXT_H */ discover-2.1.2/buildtools/check.m40000644002342100234210000000767610266266026015525 0ustar pereperednl AM_PATH_CHECK([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]]) dnl Test for check, and define CHECK_CFLAGS and CHECK_LIBS dnl AC_DEFUN(AM_PATH_CHECK, [ AC_ARG_WITH(check, [ --with-check=PATH Prefix where check is installed [default=auto]]) if test "x$with_check" != x; then CHECK_CFLAGS="-I$with_check/include" CHECK_LIBS="-L$with_check/lib -lcheck" else CHECK_CFLAGS="" CHECK_LIBS="-lcheck" fi min_check_version=ifelse([$1], ,0.8.2,$1) AC_MSG_CHECKING(for check - version >= $min_check_version) ac_save_CFLAGS="$CFLAGS" ac_save_LIBS="$LIBS" CFLAGS="$CFLAGS $CHECK_CFLAGS" LIBS="$CHECK_LIBS $LIBS" rm -f conf.check-test AC_TRY_RUN([ #include #include #include int main () { int major, minor, micro; char *tmp_version; system ("touch conf.check-test"); /* HP/UX 9 (%@#!) writes to sscanf strings */ tmp_version = strdup("$min_check_version"); if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, µ) != 3) { printf("%s, bad version string\n", "$min_check_version"); return 1; } if ((CHECK_MAJOR_VERSION != check_major_version) || (CHECK_MINOR_VERSION != check_minor_version) || (CHECK_MICRO_VERSION != check_micro_version)) { printf("\n*** The check header file (version %d.%d.%d) does not match\n", CHECK_MAJOR_VERSION, CHECK_MINOR_VERSION, CHECK_MICRO_VERSION); printf("*** the check library (version %d.%d.%d).\n", check_major_version, check_minor_version, check_micro_version); return 1; } if ((check_major_version > major) || ((check_major_version == major) && (check_minor_version > minor)) || ((check_major_version == major) && (check_minor_version == minor) && (check_micro_version >= micro))) { return 0; } else { printf("\n*** An old version of check (%d.%d.%d) was found.\n", check_major_version, check_minor_version, check_micro_version); printf("*** You need a version of check that is at least %d.%d.%d.\n", major, minor, micro); printf("***\n"); printf("*** If you have already installed a sufficiently new version, this error\n"); printf("*** probably means that the wrong copy of the check library and header\n"); printf("*** file is being found. Rerun configure with the --with-check=PATH option\n"); printf("*** to specify the prefix where the correct version was installed.\n"); } return 1; } ],, no_check=yes, [echo $ac_n "Cross compiling; assumed OK... $ac_c"]) CFLAGS="$ac_save_CFLAGS" LIBS="$ac_save_LIBS" if test "x$no_check" = x ; then AC_MSG_RESULT(yes) ifelse([$2], , :, [$2]) else AC_MSG_RESULT(no) if test -f conf.check-test ; then : else echo "*** Could not run check test program, checking why..." CFLAGS="$CFLAGS $CHECK_CFLAGS" LIBS="$CHECK_LIBS $LIBS" AC_TRY_LINK([ #include #include #include ], , [ echo "*** The test program compiled, but did not run. This usually means" echo "*** that the run-time linker is not finding check. You'll need to set your" echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point" echo "*** to the installed location. Also, make sure you have run ldconfig if that" echo "*** is required on your system." echo "***" echo "*** If you have an old version installed, it is best to remove it, although" echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH"], [ echo "*** The test program failed to compile or link. See the file config.log for" echo "*** the exact error that occurred." ]) CFLAGS="$ac_save_CFLAGS" LIBS="$ac_save_LIBS" fi CHECK_CFLAGS="" CHECK_LIBS="" rm -f conf.check-test ifelse([$3], , AC_MSG_ERROR([check not found]), [$3]) fi AC_SUBST(CHECK_CFLAGS) AC_SUBST(CHECK_LIBS) rm -f conf.check-test ]) discover-2.1.2/buildtools/show-config.in0000644002342100234210000000365110266266026016746 0ustar perepere#! /bin/sh # Run this program to show the build configuration. The configure # script will run this program at the end. # $Progeny$ # This program is in the public domain. indent=25 build=@build@ host=@host@ target=@target@ # Build paths builddir=@builddir@ abs_builddir=@abs_builddir@ top_builddir=@top_builddir@ abs_top_builddir=@abs_top_builddir@ srcdir=@srcdir@ abs_srcdir=@abs_srcdir@ top_srcdir=@top_srcdir@ abs_top_srcdir=@abs_top_srcdir@ # Install paths prefix=@prefix@ exec_prefix=@exec_prefix@ bindir=@bindir@ sbindir=@sbindir@ libexecdir=@libexecdir@ datadir=@datadir@ sysconfdir=@sysconfdir@ sharedstatedir=@sharedstatedir@ localstatedir=@localstatedir@ libdir=@libdir@ includedir=@includedir@ infodir=@infodir@ mandir=@mandir@ default_exec_prefix=${prefix} default_bindir=${exec_prefix}/bin default_sbindir=${exec_prefix}/sbin default_libexecdir=${exec_prefix}/libexec default_datadir=${prefix}/share default_sysconfdir=${prefix}/etc default_sharedstatedir=${prefix}/com default_localstatedir=${prefix}/var default_libdir=${exec_prefix}/lib default_includedir=${prefix}/include default_infodir=${prefix}/info default_mandir=${prefix}/man @PROGENY_SHOW_CONFIG_VARS@ @PROGENY_SHOW_CONFIG_SET@ PACKAGE_STRING='@PACKAGE_STRING@' echo ${PACKAGE_STRING} configuration for var in build host target; do eval val=\$${var} printf "%${indent}s %s\n" ${var} ${val} done printf "%${indent}s %s\n" 'prefix' ${prefix} for var in exec_prefix bindir \ sbindir \ libexecdir \ datadir \ sysconfdir \ sharedstatedir \ localstatedir \ libdir \ includedir \ infodir \ mandir; do eval val=\$${var} eval default_val=\$default_${var} if [ ${default_val} != ${val} ]; then printf "%${indent}s %s\n" ${var} ${val} fi done for var in ${VARS}; do eval val="\$${var}" printf "%${indent}s %s\n" ${var} "${val}" done exit 0 discover-2.1.2/buildtools/config.rpath0000755002342100234210000003343410266266026016505 0ustar perepere#! /bin/sh # Output a system dependent set of variables, describing how to set the # run time search path of shared libraries in an executable. # # Copyright 1996-2002 Free Software Foundation, Inc. # Taken from GNU libtool, 2001 # Originally by Gordon Matzigkeit , 1996 # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # # The first argument passed to this file is the canonical host specification, # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM # or # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM # The environment variables CC, GCC, LDFLAGS, LD, with_gnu_ld # should be set by the caller. # # The set of defined variables is at the end of this script. # All known linkers require a `.a' archive for static linking (except M$VC, # which needs '.lib'). libext=a shlibext= host="$1" host_cpu=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` host_vendor=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` host_os=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` wl= if test "$GCC" = yes; then wl='-Wl,' else case "$host_os" in aix3* | aix4* | aix5*) wl='-Wl,' ;; hpux9* | hpux10* | hpux11*) wl='-Wl,' ;; irix5* | irix6*) wl='-Wl,' ;; linux*) echo '__INTEL_COMPILER' > conftest.$ac_ext if $CC -E conftest.$ac_ext >/dev/null | grep __INTEL_COMPILER >/dev/null then : else # Intel icc wl='-Qoption,ld,' fi ;; osf3* | osf4* | osf5*) wl='-Wl,' ;; solaris*) wl='-Wl,' ;; sunos4*) wl='-Qoption ld ' ;; sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) if test "x$host_vendor" = xsni; then wl='-LD' else wl='-Wl,' fi ;; esac fi hardcode_libdir_flag_spec= hardcode_libdir_separator= hardcode_direct=no hardcode_minus_L=no case "$host_os" in cygwin* | mingw* | pw32*) # FIXME: the MSVC++ port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++. if test "$GCC" != yes; then with_gnu_ld=no fi ;; openbsd*) with_gnu_ld=no ;; esac ld_shlibs=yes if test "$with_gnu_ld" = yes; then case "$host_os" in aix3* | aix4* | aix5*) # On AIX, the GNU linker is very broken ld_shlibs=no ;; amigaos*) hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes # Samuel A. Falvo II reports # that the semantics of dynamic libraries on AmigaOS, at least up # to version 4, is to share data among multiple programs linked # with the same dynamic library. Since this doesn't match the # behavior of shared libraries on other platforms, we can use # them. ld_shlibs=no ;; beos*) if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then : else ld_shlibs=no fi ;; cygwin* | mingw* | pw32*) # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. hardcode_libdir_flag_spec='-L$libdir' ;; solaris* | sysv5*) if $LD -v 2>&1 | egrep 'BFD 2\.8' > /dev/null; then ld_shlibs=no elif $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then : else ld_shlibs=no fi ;; sunos4*) hardcode_direct=yes ;; *) if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then : else ld_shlibs=no fi ;; esac if test "$ld_shlibs" = yes; then hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' fi else case "$host_os" in aix3*) # Note: this linker hardcodes the directories in LIBPATH if there # are no directories specified by -L. hardcode_minus_L=yes if test "$GCC" = yes; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. hardcode_direct=unsupported fi ;; aix4* | aix5*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no else aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[23]|aix4.[23].*|aix5*) for ld_flag in $LDFLAGS; do if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then aix_use_runtimelinking=yes break fi done esac fi hardcode_direct=yes hardcode_libdir_separator=':' if test "$GCC" = yes; then case $host_os in aix4.[012]|aix4.[012].*) collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && \ strings "$collect2name" | grep resolve_lib_name >/dev/null then # We have reworked collect2 hardcode_direct=yes else # We have old collect2 hardcode_direct=unsupported hardcode_minus_L=yes hardcode_libdir_flag_spec='-L$libdir' hardcode_libdir_separator= fi esac fi if test "$aix_use_runtimelinking" = yes; then hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:/usr/lib:/lib' else if test "$host_cpu" = ia64; then hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib' else hardcode_libdir_flag_spec='${wl}-bnolibpath ${wl}-blibpath:$libdir:/usr/lib:/lib' fi fi ;; amigaos*) hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes # see comment about different semantics on the GNU ld section ld_shlibs=no ;; cygwin* | mingw* | pw32*) # When not using gcc, we currently assume that we are using # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. hardcode_libdir_flag_spec=' ' libext=lib ;; darwin* | rhapsody*) hardcode_direct=yes ;; freebsd1*) ld_shlibs=no ;; freebsd2.2*) hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes ;; freebsd2*) hardcode_direct=yes hardcode_minus_L=yes ;; freebsd*) hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes ;; hpux9* | hpux10* | hpux11*) hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: hardcode_direct=yes hardcode_minus_L=yes # Not in the search PATH, but as the default # location of the library. ;; irix5* | irix6*) hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: ;; netbsd*) hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes ;; newsos6) hardcode_direct=yes hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: ;; openbsd*) hardcode_direct=yes if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then hardcode_libdir_flag_spec='${wl}-rpath,$libdir' else case "$host_os" in openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) hardcode_libdir_flag_spec='-R$libdir' ;; *) hardcode_libdir_flag_spec='${wl}-rpath,$libdir' ;; esac fi ;; os2*) hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes ;; osf3*) hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: ;; osf4* | osf5*) if test "$GCC" = yes; then hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' else # Both cc and cxx compiler support -rpath directly hardcode_libdir_flag_spec='-rpath $libdir' fi hardcode_libdir_separator=: ;; sco3.2v5*) ;; solaris*) hardcode_libdir_flag_spec='-R$libdir' ;; sunos4*) hardcode_libdir_flag_spec='-L$libdir' hardcode_direct=yes hardcode_minus_L=yes ;; sysv4) if test "x$host_vendor" = xsno; then hardcode_direct=yes # is this really true??? else hardcode_direct=no # Motorola manual says yes, but my tests say they lie fi ;; sysv4.3*) ;; sysv5*) hardcode_libdir_flag_spec= ;; uts4*) hardcode_libdir_flag_spec='-L$libdir' ;; dgux*) hardcode_libdir_flag_spec='-L$libdir' ;; sysv4*MP*) if test -d /usr/nec; then ld_shlibs=yes fi ;; sysv4.2uw2*) hardcode_direct=yes hardcode_minus_L=no ;; sysv5uw7* | unixware7*) ;; *) ld_shlibs=no ;; esac fi # Check dynamic linker characteristics libname_spec='lib$name' sys_lib_dlsearch_path_spec="/lib /usr/lib" sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" case "$host_os" in aix3*) shlibext=so ;; aix4* | aix5*) shlibext=so ;; amigaos*) shlibext=ixlibrary ;; beos*) shlibext=so ;; bsdi4*) shlibext=so sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" ;; cygwin* | mingw* | pw32*) case $GCC,$host_os in yes,cygwin*) shlibext=dll.a ;; yes,mingw*) shlibext=dll sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | sed -e "s/^libraries://" -e "s/;/ /g"` ;; yes,pw32*) shlibext=dll ;; *) shlibext=dll ;; esac ;; darwin* | rhapsody*) shlibext=dylib ;; freebsd1*) ;; freebsd*) shlibext=so ;; gnu*) shlibext=so ;; hpux9* | hpux10* | hpux11*) shlibext=sl ;; irix5* | irix6*) shlibext=so case "$host_os" in irix5*) libsuff= shlibsuff= ;; *) case $LD in *-32|*"-32 ") libsuff= shlibsuff= ;; *-n32|*"-n32 ") libsuff=32 shlibsuff=N32 ;; *-64|*"-64 ") libsuff=64 shlibsuff=64 ;; *) libsuff= shlibsuff= ;; esac ;; esac sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" ;; linux-gnuoldld* | linux-gnuaout* | linux-gnucoff*) ;; linux-gnu*) shlibext=so ;; netbsd*) shlibext=so ;; newsos6) shlibext=so ;; openbsd*) shlibext=so ;; os2*) libname_spec='$name' shlibext=dll ;; osf3* | osf4* | osf5*) shlibext=so sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" ;; sco3.2v5*) shlibext=so ;; solaris*) shlibext=so ;; sunos4*) shlibext=so ;; sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) shlibext=so case "$host_vendor" in motorola) sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ;; esac ;; uts4*) shlibext=so ;; dgux*) shlibext=so ;; sysv4*MP*) if test -d /usr/nec; then shlibext=so fi ;; esac sed_quote_subst='s/\(["`$\\]\)/\\\1/g' escaped_wl=`echo "X$wl" | sed -e 's/^X//' -e "$sed_quote_subst"` escaped_hardcode_libdir_flag_spec=`echo "X$hardcode_libdir_flag_spec" | sed -e 's/^X//' -e "$sed_quote_subst"` escaped_sys_lib_search_path_spec=`echo "X$sys_lib_search_path_spec" | sed -e 's/^X//' -e "$sed_quote_subst"` escaped_sys_lib_dlsearch_path_spec=`echo "X$sys_lib_dlsearch_path_spec" | sed -e 's/^X//' -e "$sed_quote_subst"` sed -e 's/^\([a-zA-Z0-9_]*\)=/acl_cv_\1=/' <, 1996 ## ## This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## ## This program is distributed in the hope that it will be useful, but ## WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ## General Public License for more details. ## ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. ## ## As a special exception to the GNU General Public License, if you ## distribute this file as part of a program that contains a ## configuration script generated by Autoconf, you may include it under ## the same distribution terms that you use for the rest of that program. # serial 46 AC_PROG_LIBTOOL # Debian $Rev: 102 $ AC_DEFUN([AC_PROG_LIBTOOL], [AC_REQUIRE([AC_LIBTOOL_SETUP])dnl # This can be used to rebuild libtool when needed LIBTOOL_DEPS="$ac_aux_dir/ltmain.sh" # Always use our own libtool. LIBTOOL='$(SHELL) $(top_builddir)/libtool' AC_SUBST(LIBTOOL)dnl # Prevent multiple expansion define([AC_PROG_LIBTOOL], []) ]) AC_DEFUN([AC_LIBTOOL_SETUP], [AC_PREREQ(2.13)dnl AC_REQUIRE([AC_ENABLE_SHARED])dnl AC_REQUIRE([AC_ENABLE_STATIC])dnl AC_REQUIRE([AC_ENABLE_FAST_INSTALL])dnl AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_CANONICAL_BUILD])dnl AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([AC_PROG_LD])dnl AC_REQUIRE([AC_PROG_LD_RELOAD_FLAG])dnl AC_REQUIRE([AC_PROG_NM])dnl AC_REQUIRE([LT_AC_PROG_SED])dnl AC_REQUIRE([AC_PROG_LN_S])dnl AC_REQUIRE([AC_DEPLIBS_CHECK_METHOD])dnl AC_REQUIRE([AC_OBJEXT])dnl AC_REQUIRE([AC_EXEEXT])dnl dnl _LT_AC_PROG_ECHO_BACKSLASH # Only perform the check for file, if the check method requires it case $deplibs_check_method in file_magic*) if test "$file_magic_cmd" = '$MAGIC_CMD'; then AC_PATH_MAGIC fi ;; esac AC_CHECK_TOOL(RANLIB, ranlib, :) AC_CHECK_TOOL(STRIP, strip, :) ifdef([AC_PROVIDE_AC_LIBTOOL_DLOPEN], enable_dlopen=yes, enable_dlopen=no) ifdef([AC_PROVIDE_AC_LIBTOOL_WIN32_DLL], enable_win32_dll=yes, enable_win32_dll=no) AC_ARG_ENABLE(libtool-lock, [ --disable-libtool-lock avoid locking (might break parallel builds)]) test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes # Some flags need to be propagated to the compiler or linker for good # libtool support. case $host in *-*-irix6*) # Find out which ABI we are using. echo '[#]line __oline__ "configure"' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -32" ;; *N32*) LD="${LD-ld} -n32" ;; *64-bit*) LD="${LD-ld} -64" ;; esac fi rm -rf conftest* ;; *-*-sco3.2v5*) # On SCO OpenServer 5, we need -belf to get full-featured binaries. SAVE_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -belf" AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf, [AC_LANG_SAVE AC_LANG_C AC_TRY_LINK([],[],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no]) AC_LANG_RESTORE]) if test x"$lt_cv_cc_needs_belf" != x"yes"; then # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf CFLAGS="$SAVE_CFLAGS" fi ;; ifdef([AC_PROVIDE_AC_LIBTOOL_WIN32_DLL], [*-*-cygwin* | *-*-mingw* | *-*-pw32*) AC_CHECK_TOOL(DLLTOOL, dlltool, false) AC_CHECK_TOOL(AS, as, false) AC_CHECK_TOOL(OBJDUMP, objdump, false) # recent cygwin and mingw systems supply a stub DllMain which the user # can override, but on older systems we have to supply one AC_CACHE_CHECK([if libtool should supply DllMain function], lt_cv_need_dllmain, [AC_TRY_LINK([], [extern int __attribute__((__stdcall__)) DllMain(void*, int, void*); DllMain (0, 0, 0);], [lt_cv_need_dllmain=no],[lt_cv_need_dllmain=yes])]) case $host/$CC in *-*-cygwin*/gcc*-mno-cygwin*|*-*-mingw*) # old mingw systems require "-dll" to link a DLL, while more recent ones # require "-mdll" SAVE_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -mdll" AC_CACHE_CHECK([how to link DLLs], lt_cv_cc_dll_switch, [AC_TRY_LINK([], [], [lt_cv_cc_dll_switch=-mdll],[lt_cv_cc_dll_switch=-dll])]) CFLAGS="$SAVE_CFLAGS" ;; *-*-cygwin* | *-*-pw32*) # cygwin systems need to pass --dll to the linker, and not link # crt.o which will require a WinMain@16 definition. lt_cv_cc_dll_switch="-Wl,--dll -nostartfiles" ;; esac ;; ]) esac _LT_AC_LTCONFIG_HACK ]) # AC_LIBTOOL_HEADER_ASSERT # ------------------------ AC_DEFUN([AC_LIBTOOL_HEADER_ASSERT], [AC_CACHE_CHECK([whether $CC supports assert without backlinking], [lt_cv_func_assert_works], [case $host in *-*-solaris*) if test "$GCC" = yes && test "$with_gnu_ld" != yes; then case `$CC --version 2>/dev/null` in [[12]].*) lt_cv_func_assert_works=no ;; *) lt_cv_func_assert_works=yes ;; esac fi ;; esac]) if test "x$lt_cv_func_assert_works" = xyes; then AC_CHECK_HEADERS(assert.h) fi ])# AC_LIBTOOL_HEADER_ASSERT # _LT_AC_CHECK_DLFCN # -------------------- AC_DEFUN([_LT_AC_CHECK_DLFCN], [AC_CHECK_HEADERS(dlfcn.h) ])# _LT_AC_CHECK_DLFCN # AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE # --------------------------------- AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE], [AC_REQUIRE([AC_CANONICAL_HOST]) AC_REQUIRE([AC_PROG_NM]) AC_REQUIRE([AC_OBJEXT]) # Check for command to grab the raw symbol name followed by C symbol from nm. AC_MSG_CHECKING([command to parse $NM output]) AC_CACHE_VAL([lt_cv_sys_global_symbol_pipe], [dnl # These are sane defaults that work on at least a few old systems. # [They come from Ultrix. What could be older than Ultrix?!! ;)] # Character class describing NM global symbol codes. symcode='[[BCDEGRST]]' # Regexp to match symbols that can be accessed directly from C. sympat='\([[_A-Za-z]][[_A-Za-z0-9]]*\)' # Transform the above into a raw symbol and a C symbol. symxfrm='\1 \2\3 \3' # Transform an extracted symbol line into a proper C declaration lt_cv_global_symbol_to_cdecl="sed -n -e 's/^. .* \(.*\)$/extern char \1;/p'" # Transform an extracted symbol line into symbol name and symbol address lt_cv_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" # Define system-specific variables. case $host_os in aix*) symcode='[[BCDT]]' ;; cygwin* | mingw* | pw32*) symcode='[[ABCDGISTW]]' ;; hpux*) # Its linker distinguishes data from code symbols lt_cv_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern char \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" lt_cv_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" ;; irix* | nonstopux*) symcode='[[BCDEGRST]]' ;; osf*) symcode='[[BCDEGQRST]]' ;; solaris* | sysv5*) symcode='[[BDT]]' ;; sysv4) symcode='[[DFNSTU]]' ;; esac # Handle CRLF in mingw tool chain opt_cr= case $host_os in mingw*) opt_cr=`echo 'x\{0,1\}' | tr x '\015'` # option cr in regexp ;; esac # If we're using GNU nm, then use its standard symbol codes. if $NM -V 2>&1 | egrep '(GNU|with BFD)' > /dev/null; then symcode='[[ABCDGISTW]]' fi # Try without a prefix undercore, then with it. for ac_symprfx in "" "_"; do # Write the raw and C identifiers. lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*\($ac_symprfx\)$sympat$opt_cr$/$symxfrm/p'" # Check to see that the pipe works correctly. pipe_works=no rm -f conftest* cat > conftest.$ac_ext < $nlist) && test -s "$nlist"; then # Try sorting and uniquifying the output. if sort "$nlist" | uniq > "$nlist"T; then mv -f "$nlist"T "$nlist" else rm -f "$nlist"T fi # Make sure that we snagged all the symbols we need. if egrep ' nm_test_var$' "$nlist" >/dev/null; then if egrep ' nm_test_func$' "$nlist" >/dev/null; then cat < conftest.$ac_ext #ifdef __cplusplus extern "C" { #endif EOF # Now generate the symbol file. eval "$lt_cv_global_symbol_to_cdecl"' < "$nlist" >> conftest.$ac_ext' cat <> conftest.$ac_ext #if defined (__STDC__) && __STDC__ # define lt_ptr void * #else # define lt_ptr char * # define const #endif /* The mapping between symbol names and symbols. */ const struct { const char *name; lt_ptr address; } lt_preloaded_symbols[[]] = { EOF sed "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (lt_ptr) \&\2},/" < "$nlist" >> conftest.$ac_ext cat <<\EOF >> conftest.$ac_ext {0, (lt_ptr) 0} }; #ifdef __cplusplus } #endif EOF # Now try linking the two files. mv conftest.$ac_objext conftstm.$ac_objext save_LIBS="$LIBS" save_CFLAGS="$CFLAGS" LIBS="conftstm.$ac_objext" CFLAGS="$CFLAGS$no_builtin_flag" if AC_TRY_EVAL(ac_link) && test -s conftest$ac_exeext; then pipe_works=yes fi LIBS="$save_LIBS" CFLAGS="$save_CFLAGS" else echo "cannot find nm_test_func in $nlist" >&AC_FD_CC fi else echo "cannot find nm_test_var in $nlist" >&AC_FD_CC fi else echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AC_FD_CC fi else echo "$progname: failed program was:" >&AC_FD_CC cat conftest.$ac_ext >&5 fi rm -f conftest* conftst* # Do not use the global_symbol_pipe unless it works. if test "$pipe_works" = yes; then break else lt_cv_sys_global_symbol_pipe= fi done ]) global_symbol_pipe="$lt_cv_sys_global_symbol_pipe" if test -z "$lt_cv_sys_global_symbol_pipe"; then global_symbol_to_cdecl= global_symbol_to_c_name_address= else global_symbol_to_cdecl="$lt_cv_global_symbol_to_cdecl" global_symbol_to_c_name_address="$lt_cv_global_symbol_to_c_name_address" fi if test -z "$global_symbol_pipe$global_symbol_to_cdec$global_symbol_to_c_name_address"; then AC_MSG_RESULT(failed) else AC_MSG_RESULT(ok) fi ]) # AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE # _LT_AC_LIBTOOL_SYS_PATH_SEPARATOR # --------------------------------- AC_DEFUN([_LT_AC_LIBTOOL_SYS_PATH_SEPARATOR], [# Find the correct PATH separator. Usually this is `:', but # DJGPP uses `;' like DOS. if test "X${PATH_SEPARATOR+set}" != Xset; then UNAME=${UNAME-`uname 2>/dev/null`} case X$UNAME in *-DOS) lt_cv_sys_path_separator=';' ;; *) lt_cv_sys_path_separator=':' ;; esac PATH_SEPARATOR=$lt_cv_sys_path_separator fi ])# _LT_AC_LIBTOOL_SYS_PATH_SEPARATOR # _LT_AC_PROG_ECHO_BACKSLASH # -------------------------- # Add some code to the start of the generated configure script which # will find an echo command which doesn't interpret backslashes. AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH], [ifdef([AC_DIVERSION_NOTICE], [AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)], [AC_DIVERT_PUSH(NOTICE)]) _LT_AC_LIBTOOL_SYS_PATH_SEPARATOR # Check that we are running under the correct shell. SHELL=${CONFIG_SHELL-/bin/sh} case X$ECHO in X*--fallback-echo) # Remove one level of quotation (which was required for Make). ECHO=`echo "$ECHO" | sed 's,\\\\\[$]\\[$]0,'[$]0','` ;; esac echo=${ECHO-echo} if test "X[$]1" = X--no-reexec; then # Discard the --no-reexec flag, and continue. shift elif test "X[$]1" = X--fallback-echo; then # Avoid inline document here, it may be left over : elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then # Yippee, $echo works! : else # Restart under the correct shell. exec $SHELL "[$]0" --no-reexec ${1+"[$]@"} fi if test "X[$]1" = X--fallback-echo; then # used as fallback echo shift cat </dev/null && echo_test_string="`eval $cmd`" && (test "X$echo_test_string" = "X$echo_test_string") 2>/dev/null then break fi done fi if test "X`($echo '\t') 2>/dev/null`" = 'X\t' && echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then : else # The Solaris, AIX, and Digital Unix default echo programs unquote # backslashes. This makes it impossible to quote backslashes using # echo "$something" | sed 's/\\/\\\\/g' # # So, first we look for a working echo in the user's PATH. IFS="${IFS= }"; save_ifs="$IFS"; IFS=$PATH_SEPARATOR for dir in $PATH /usr/ucb; do if (test -f $dir/echo || test -f $dir/echo$ac_exeext) && test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' && echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then echo="$dir/echo" break fi done IFS="$save_ifs" if test "X$echo" = Xecho; then # We didn't find a better echo, so look for alternatives. if test "X`(print -r '\t') 2>/dev/null`" = 'X\t' && echo_testing_string=`(print -r "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then # This shell has a builtin print -r that does the trick. echo='print -r' elif (test -f /bin/ksh || test -f /bin/ksh$ac_exeext) && test "X$CONFIG_SHELL" != X/bin/ksh; then # If we have ksh, try running configure again with it. ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh} export ORIGINAL_CONFIG_SHELL CONFIG_SHELL=/bin/ksh export CONFIG_SHELL exec $CONFIG_SHELL "[$]0" --no-reexec ${1+"[$]@"} else # Try using printf. echo='printf %s\n' if test "X`($echo '\t') 2>/dev/null`" = 'X\t' && echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then # Cool, printf works : elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` && test "X$echo_testing_string" = 'X\t' && echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL export CONFIG_SHELL SHELL="$CONFIG_SHELL" export SHELL echo="$CONFIG_SHELL [$]0 --fallback-echo" elif echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` && test "X$echo_testing_string" = 'X\t' && echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then echo="$CONFIG_SHELL [$]0 --fallback-echo" else # maybe with a smaller string... prev=: for cmd in 'echo test' 'sed 2q "[$]0"' 'sed 10q "[$]0"' 'sed 20q "[$]0"' 'sed 50q "[$]0"'; do if (test "X$echo_test_string" = "X`eval $cmd`") 2>/dev/null then break fi prev="$cmd" done if test "$prev" != 'sed 50q "[$]0"'; then echo_test_string=`eval $prev` export echo_test_string exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "[$]0" ${1+"[$]@"} else # Oops. We lost completely, so just stick with echo. echo=echo fi fi fi fi fi fi # Copy echo and quote the copy suitably for passing to libtool from # the Makefile, instead of quoting the original, which is used later. ECHO=$echo if test "X$ECHO" = "X$CONFIG_SHELL [$]0 --fallback-echo"; then ECHO="$CONFIG_SHELL \\\$\[$]0 --fallback-echo" fi AC_SUBST(ECHO) AC_DIVERT_POP ])# _LT_AC_PROG_ECHO_BACKSLASH # _LT_AC_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE, # ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING) # ------------------------------------------------------------------ AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF], [if test "$cross_compiling" = yes; then : [$4] else AC_REQUIRE([_LT_AC_CHECK_DLFCN])dnl lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext < #endif #include #ifdef RTLD_GLOBAL # define LT_DLGLOBAL RTLD_GLOBAL #else # ifdef DL_GLOBAL # define LT_DLGLOBAL DL_GLOBAL # else # define LT_DLGLOBAL 0 # endif #endif /* We may have to define LT_DLLAZY_OR_NOW in the command line if we find out it does not work in some platform. */ #ifndef LT_DLLAZY_OR_NOW # ifdef RTLD_LAZY # define LT_DLLAZY_OR_NOW RTLD_LAZY # else # ifdef DL_LAZY # define LT_DLLAZY_OR_NOW DL_LAZY # else # ifdef RTLD_NOW # define LT_DLLAZY_OR_NOW RTLD_NOW # else # ifdef DL_NOW # define LT_DLLAZY_OR_NOW DL_NOW # else # define LT_DLLAZY_OR_NOW 0 # endif # endif # endif # endif #endif #ifdef __cplusplus extern "C" void exit (int); #endif void fnord() { int i=42;} int main () { void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); int status = $lt_dlunknown; if (self) { if (dlsym (self,"fnord")) status = $lt_dlno_uscore; else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; /* dlclose (self); */ } exit (status); }] EOF if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} 2>/dev/null; then (./conftest; exit; ) 2>/dev/null lt_status=$? case x$lt_status in x$lt_dlno_uscore) $1 ;; x$lt_dlneed_uscore) $2 ;; x$lt_unknown|x*) $3 ;; esac else : # compilation failed $3 fi fi rm -fr conftest* ])# _LT_AC_TRY_DLOPEN_SELF # AC_LIBTOOL_DLOPEN_SELF # ------------------- AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF], [if test "x$enable_dlopen" != xyes; then enable_dlopen=unknown enable_dlopen_self=unknown enable_dlopen_self_static=unknown else lt_cv_dlopen=no lt_cv_dlopen_libs= case $host_os in beos*) lt_cv_dlopen="load_add_on" lt_cv_dlopen_libs= lt_cv_dlopen_self=yes ;; cygwin* | mingw* | pw32*) lt_cv_dlopen="LoadLibrary" lt_cv_dlopen_libs= ;; *) AC_CHECK_FUNC([shl_load], [lt_cv_dlopen="shl_load"], [AC_CHECK_LIB([dld], [shl_load], [lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-dld"], [AC_CHECK_FUNC([dlopen], [lt_cv_dlopen="dlopen"], [AC_CHECK_LIB([dl], [dlopen], [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"], [AC_CHECK_LIB([svld], [dlopen], [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"], [AC_CHECK_LIB([dld], [dld_link], [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-dld"]) ]) ]) ]) ]) ]) ;; esac if test "x$lt_cv_dlopen" != xno; then enable_dlopen=yes else enable_dlopen=no fi case $lt_cv_dlopen in dlopen) save_CPPFLAGS="$CPPFLAGS" AC_REQUIRE([_LT_AC_CHECK_DLFCN])dnl test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" save_LDFLAGS="$LDFLAGS" eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" save_LIBS="$LIBS" LIBS="$lt_cv_dlopen_libs $LIBS" AC_CACHE_CHECK([whether a program can dlopen itself], lt_cv_dlopen_self, [dnl _LT_AC_TRY_DLOPEN_SELF( lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes, lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross) ]) if test "x$lt_cv_dlopen_self" = xyes; then LDFLAGS="$LDFLAGS $link_static_flag" AC_CACHE_CHECK([whether a statically linked program can dlopen itself], lt_cv_dlopen_self_static, [dnl _LT_AC_TRY_DLOPEN_SELF( lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=no, lt_cv_dlopen_self_static=cross) ]) fi CPPFLAGS="$save_CPPFLAGS" LDFLAGS="$save_LDFLAGS" LIBS="$save_LIBS" ;; esac case $lt_cv_dlopen_self in yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; *) enable_dlopen_self=unknown ;; esac case $lt_cv_dlopen_self_static in yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; *) enable_dlopen_self_static=unknown ;; esac fi ])# AC_LIBTOOL_DLOPEN_SELF AC_DEFUN([_LT_AC_LTCONFIG_HACK], [AC_REQUIRE([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE])dnl # Sed substitution that helps us do robust quoting. It backslashifies # metacharacters that are still active within double-quoted strings. Xsed='sed -e s/^X//' sed_quote_subst='s/\([[\\"\\`$\\\\]]\)/\\\1/g' # Same as above, but do not quote variable references. double_quote_subst='s/\([[\\"\\`\\\\]]\)/\\\1/g' # Sed substitution to delay expansion of an escaped shell variable in a # double_quote_subst'ed string. delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' # Constants: rm="rm -f" # Global variables: default_ofile=libtool can_build_shared=yes # All known linkers require a `.a' archive for static linking (except M$VC, # which needs '.lib'). libext=a ltmain="$ac_aux_dir/ltmain.sh" ofile="$default_ofile" with_gnu_ld="$lt_cv_prog_gnu_ld" need_locks="$enable_libtool_lock" old_CC="$CC" old_CFLAGS="$CFLAGS" # Set sane defaults for various variables test -z "$AR" && AR=ar test -z "$AR_FLAGS" && AR_FLAGS=cru test -z "$AS" && AS=as test -z "$CC" && CC=cc test -z "$DLLTOOL" && DLLTOOL=dlltool test -z "$LD" && LD=ld test -z "$LN_S" && LN_S="ln -s" test -z "$MAGIC_CMD" && MAGIC_CMD=file test -z "$NM" && NM=nm test -z "$OBJDUMP" && OBJDUMP=objdump test -z "$RANLIB" && RANLIB=: test -z "$STRIP" && STRIP=: test -z "$ac_objext" && ac_objext=o if test x"$host" != x"$build"; then ac_tool_prefix=${host_alias}- else ac_tool_prefix= fi # Transform linux* to *-*-linux-gnu*, to support old configure scripts. case $host_os in linux-gnu*) ;; linux*) host=`echo $host | sed 's/^\(.*-.*-linux\)\(.*\)$/\1-gnu\2/'` esac case $host_os in aix3*) # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test "X${COLLECT_NAMES+set}" != Xset; then COLLECT_NAMES= export COLLECT_NAMES fi ;; esac # Determine commands to create old-style static archives. old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs' old_postinstall_cmds='chmod 644 $oldlib' old_postuninstall_cmds= if test -n "$RANLIB"; then case $host_os in openbsd*) old_postinstall_cmds="\$RANLIB -t \$oldlib~$old_postinstall_cmds" ;; *) old_postinstall_cmds="\$RANLIB \$oldlib~$old_postinstall_cmds" ;; esac old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" fi # Allow CC to be a program name with arguments. set dummy $CC compiler="[$]2" ## FIXME: this should be a separate macro ## AC_MSG_CHECKING([for objdir]) rm -f .libs 2>/dev/null mkdir .libs 2>/dev/null if test -d .libs; then objdir=.libs else # MS-DOS does not allow filenames that begin with a dot. objdir=_libs fi rmdir .libs 2>/dev/null AC_MSG_RESULT($objdir) ## ## END FIXME ## FIXME: this should be a separate macro ## AC_ARG_WITH(pic, [ --with-pic try to use only PIC/non-PIC objects [default=use both]], pic_mode="$withval", pic_mode=default) test -z "$pic_mode" && pic_mode=default # We assume here that the value for lt_cv_prog_cc_pic will not be cached # in isolation, and that seeing it set (from the cache) indicates that # the associated values are set (in the cache) correctly too. AC_MSG_CHECKING([for $compiler option to produce PIC]) AC_CACHE_VAL(lt_cv_prog_cc_pic, [ lt_cv_prog_cc_pic= lt_cv_prog_cc_shlib= lt_cv_prog_cc_wl= lt_cv_prog_cc_static= lt_cv_prog_cc_no_builtin= lt_cv_prog_cc_can_build_shared=$can_build_shared if test "$GCC" = yes; then lt_cv_prog_cc_wl='-Wl,' lt_cv_prog_cc_static='-static' case $host_os in aix*) # Below there is a dirty hack to force normal static linking with -ldl # The problem is because libdl dynamically linked with both libc and # libC (AIX C++ library), which obviously doesn't included in libraries # list by gcc. This cause undefined symbols with -static flags. # This hack allows C programs to be linked with "-static -ldl", but # not sure about C++ programs. lt_cv_prog_cc_static="$lt_cv_prog_cc_static ${lt_cv_prog_cc_wl}-lC" ;; amigaos*) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. lt_cv_prog_cc_pic='-m68020 -resident32 -malways-restore-a4' ;; beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files lt_cv_prog_cc_pic='-fno-common' ;; cygwin* | mingw* | pw32* | os2*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). lt_cv_prog_cc_pic='-DDLL_EXPORT' ;; sysv4*MP*) if test -d /usr/nec; then lt_cv_prog_cc_pic=-Kconform_pic fi ;; *) lt_cv_prog_cc_pic='-fPIC' ;; esac else # PORTME Check for PIC flags for the system compiler. case $host_os in aix3* | aix4* | aix5*) lt_cv_prog_cc_wl='-Wl,' # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_cv_prog_cc_static='-Bstatic' else lt_cv_prog_cc_static='-bnso -bI:/lib/syscalls.exp' fi ;; hpux9* | hpux10* | hpux11*) # Is there a better lt_cv_prog_cc_static that works with the bundled CC? lt_cv_prog_cc_wl='-Wl,' lt_cv_prog_cc_static="${lt_cv_prog_cc_wl}-a ${lt_cv_prog_cc_wl}archive" lt_cv_prog_cc_pic='+Z' ;; irix5* | irix6* | nonstopux*) lt_cv_prog_cc_wl='-Wl,' lt_cv_prog_cc_static='-non_shared' # PIC (with -KPIC) is the default. ;; cygwin* | mingw* | pw32* | os2*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). lt_cv_prog_cc_pic='-DDLL_EXPORT' ;; newsos6) lt_cv_prog_cc_pic='-KPIC' lt_cv_prog_cc_static='-Bstatic' ;; osf3* | osf4* | osf5*) # All OSF/1 code is PIC. lt_cv_prog_cc_wl='-Wl,' lt_cv_prog_cc_static='-non_shared' ;; sco3.2v5*) lt_cv_prog_cc_pic='-Kpic' lt_cv_prog_cc_static='-dn' lt_cv_prog_cc_shlib='-belf' ;; solaris*) lt_cv_prog_cc_pic='-KPIC' lt_cv_prog_cc_static='-Bstatic' lt_cv_prog_cc_wl='-Wl,' ;; sunos4*) lt_cv_prog_cc_pic='-PIC' lt_cv_prog_cc_static='-Bstatic' lt_cv_prog_cc_wl='-Qoption ld ' ;; sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) lt_cv_prog_cc_pic='-KPIC' lt_cv_prog_cc_static='-Bstatic' lt_cv_prog_cc_wl='-Wl,' ;; uts4*) lt_cv_prog_cc_pic='-pic' lt_cv_prog_cc_static='-Bstatic' ;; sysv4*MP*) if test -d /usr/nec ;then lt_cv_prog_cc_pic='-Kconform_pic' lt_cv_prog_cc_static='-Bstatic' fi ;; *) lt_cv_prog_cc_can_build_shared=no ;; esac fi ]) if test -z "$lt_cv_prog_cc_pic"; then AC_MSG_RESULT([none]) else AC_MSG_RESULT([$lt_cv_prog_cc_pic]) # Check to make sure the pic_flag actually works. AC_MSG_CHECKING([if $compiler PIC flag $lt_cv_prog_cc_pic works]) AC_CACHE_VAL(lt_cv_prog_cc_pic_works, [dnl save_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS $lt_cv_prog_cc_pic -DPIC" AC_TRY_COMPILE([], [], [dnl case $host_os in hpux9* | hpux10* | hpux11*) # On HP-UX, both CC and GCC only warn that PIC is supported... then # they create non-PIC objects. So, if there were any warnings, we # assume that PIC is not supported. if test -s conftest.err; then lt_cv_prog_cc_pic_works=no else lt_cv_prog_cc_pic_works=yes fi ;; *) lt_cv_prog_cc_pic_works=yes ;; esac ], [dnl lt_cv_prog_cc_pic_works=no ]) CFLAGS="$save_CFLAGS" ]) if test "X$lt_cv_prog_cc_pic_works" = Xno; then lt_cv_prog_cc_pic= lt_cv_prog_cc_can_build_shared=no else lt_cv_prog_cc_pic=" $lt_cv_prog_cc_pic" fi AC_MSG_RESULT([$lt_cv_prog_cc_pic_works]) fi ## ## END FIXME # Check for any special shared library compilation flags. if test -n "$lt_cv_prog_cc_shlib"; then AC_MSG_WARN([\`$CC' requires \`$lt_cv_prog_cc_shlib' to build shared libraries]) if echo "$old_CC $old_CFLAGS " | egrep -e "[[ ]]$lt_cv_prog_cc_shlib[[ ]]" >/dev/null; then : else AC_MSG_WARN([add \`$lt_cv_prog_cc_shlib' to the CC or CFLAGS env variable and reconfigure]) lt_cv_prog_cc_can_build_shared=no fi fi ## FIXME: this should be a separate macro ## AC_MSG_CHECKING([if $compiler static flag $lt_cv_prog_cc_static works]) AC_CACHE_VAL([lt_cv_prog_cc_static_works], [dnl lt_cv_prog_cc_static_works=no save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS $lt_cv_prog_cc_static" AC_TRY_LINK([], [], [lt_cv_prog_cc_static_works=yes]) LDFLAGS="$save_LDFLAGS" ]) # Belt *and* braces to stop my trousers falling down: test "X$lt_cv_prog_cc_static_works" = Xno && lt_cv_prog_cc_static= AC_MSG_RESULT([$lt_cv_prog_cc_static_works]) pic_flag="$lt_cv_prog_cc_pic" special_shlib_compile_flags="$lt_cv_prog_cc_shlib" wl="$lt_cv_prog_cc_wl" link_static_flag="$lt_cv_prog_cc_static" no_builtin_flag="$lt_cv_prog_cc_no_builtin" can_build_shared="$lt_cv_prog_cc_can_build_shared" ## ## END FIXME ## FIXME: this should be a separate macro ## # Check to see if options -o and -c are simultaneously supported by compiler AC_MSG_CHECKING([if $compiler supports -c -o file.$ac_objext]) AC_CACHE_VAL([lt_cv_compiler_c_o], [ $rm -r conftest 2>/dev/null mkdir conftest cd conftest echo "int some_variable = 0;" > conftest.$ac_ext mkdir out # According to Tom Tromey, Ian Lance Taylor reported there are C compilers # that will create temporary files in the current directory regardless of # the output directory. Thus, making CWD read-only will cause this test # to fail, enabling locking or at least warning the user not to do parallel # builds. chmod -w . save_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -o out/conftest2.$ac_objext" compiler_c_o=no if { (eval echo configure:__oline__: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>out/conftest.err; } && test -s out/conftest2.$ac_objext; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings if test -s out/conftest.err; then lt_cv_compiler_c_o=no else lt_cv_compiler_c_o=yes fi else # Append any errors to the config.log. cat out/conftest.err 1>&AC_FD_CC lt_cv_compiler_c_o=no fi CFLAGS="$save_CFLAGS" chmod u+w . $rm conftest* out/* rmdir out cd .. rmdir conftest $rm -r conftest 2>/dev/null ]) compiler_c_o=$lt_cv_compiler_c_o AC_MSG_RESULT([$compiler_c_o]) if test x"$compiler_c_o" = x"yes"; then # Check to see if we can write to a .lo AC_MSG_CHECKING([if $compiler supports -c -o file.lo]) AC_CACHE_VAL([lt_cv_compiler_o_lo], [ lt_cv_compiler_o_lo=no save_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -c -o conftest.lo" save_objext="$ac_objext" ac_objext=lo AC_TRY_COMPILE([], [int some_variable = 0;], [dnl # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then lt_cv_compiler_o_lo=no else lt_cv_compiler_o_lo=yes fi ]) ac_objext="$save_objext" CFLAGS="$save_CFLAGS" ]) compiler_o_lo=$lt_cv_compiler_o_lo AC_MSG_RESULT([$compiler_o_lo]) else compiler_o_lo=no fi ## ## END FIXME ## FIXME: this should be a separate macro ## # Check to see if we can do hard links to lock some files if needed hard_links="nottested" if test "$compiler_c_o" = no && test "$need_locks" != no; then # do not overwrite the value of need_locks provided by the user AC_MSG_CHECKING([if we can lock with hard links]) hard_links=yes $rm conftest* ln conftest.a conftest.b 2>/dev/null && hard_links=no touch conftest.a ln conftest.a conftest.b 2>&5 || hard_links=no ln conftest.a conftest.b 2>/dev/null && hard_links=no AC_MSG_RESULT([$hard_links]) if test "$hard_links" = no; then AC_MSG_WARN([\`$CC' does not support \`-c -o', so \`make -j' may be unsafe]) need_locks=warn fi else need_locks=no fi ## ## END FIXME ## FIXME: this should be a separate macro ## if test "$GCC" = yes; then # Check to see if options -fno-rtti -fno-exceptions are supported by compiler AC_MSG_CHECKING([if $compiler supports -fno-rtti -fno-exceptions]) echo "int some_variable = 0;" > conftest.$ac_ext save_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -fno-rtti -fno-exceptions -c conftest.$ac_ext" compiler_rtti_exceptions=no AC_TRY_COMPILE([], [int some_variable = 0;], [dnl # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then compiler_rtti_exceptions=no else compiler_rtti_exceptions=yes fi ]) CFLAGS="$save_CFLAGS" AC_MSG_RESULT([$compiler_rtti_exceptions]) if test "$compiler_rtti_exceptions" = "yes"; then no_builtin_flag=' -fno-builtin -fno-rtti -fno-exceptions' else no_builtin_flag=' -fno-builtin' fi fi ## ## END FIXME ## FIXME: this should be a separate macro ## # See if the linker supports building shared libraries. AC_MSG_CHECKING([whether the linker ($LD) supports shared libraries]) allow_undefined_flag= no_undefined_flag= need_lib_prefix=unknown need_version=unknown # when you set need_version to no, make sure it does not cause -set_version # flags to be left without arguments archive_cmds= archive_expsym_cmds= old_archive_from_new_cmds= old_archive_from_expsyms_cmds= export_dynamic_flag_spec= whole_archive_flag_spec= thread_safe_flag_spec= hardcode_into_libs=no hardcode_libdir_flag_spec= hardcode_libdir_separator= hardcode_direct=no hardcode_minus_L=no hardcode_shlibpath_var=unsupported runpath_var= link_all_deplibs=unknown always_export_symbols=no export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | sed '\''s/.* //'\'' | sort | uniq > $export_symbols' # include_expsyms should be a list of space-separated symbols to be *always* # included in the symbol list include_expsyms= # exclude_expsyms can be an egrep regular expression of symbols to exclude # it will be wrapped by ` (' and `)$', so one must not match beginning or # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', # as well as any symbol that contains `d'. exclude_expsyms="_GLOBAL_OFFSET_TABLE_" # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out # platforms (ab)use it in PIC code, but their linkers get confused if # the symbol is explicitly referenced. Since portable code cannot # rely on this symbol name, it's probably fine to never include it in # preloaded symbol tables. extract_expsyms_cmds= case $host_os in cygwin* | mingw* | pw32*) # FIXME: the MSVC++ port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++. if test "$GCC" != yes; then with_gnu_ld=no fi ;; openbsd*) with_gnu_ld=no ;; esac ld_shlibs=yes if test "$with_gnu_ld" = yes; then # If archive_cmds runs LD, not CC, wlarc should be empty wlarc='${wl}' # See if GNU ld supports shared libraries. case $host_os in aix3* | aix4* | aix5*) # On AIX, the GNU linker is very broken # Note:Check GNU linker on AIX 5-IA64 when/if it becomes available. ld_shlibs=no cat <&2 *** Warning: the GNU linker, at least up to release 2.9.1, is reported *** to be unable to reliably create shared libraries on AIX. *** Therefore, libtool is disabling shared libraries support. If you *** really care for shared libraries, you may want to modify your PATH *** so that a non-GNU linker is found, and then restart. EOF ;; amigaos*) archive_cmds='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes # Samuel A. Falvo II reports # that the semantics of dynamic libraries on AmigaOS, at least up # to version 4, is to share data among multiple programs linked # with the same dynamic library. Since this doesn't match the # behavior of shared libraries on other platforms, we can use # them. ld_shlibs=no ;; beos*) if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then allow_undefined_flag=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else ld_shlibs=no fi ;; cygwin* | mingw* | pw32*) # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. hardcode_libdir_flag_spec='-L$libdir' allow_undefined_flag=unsupported always_export_symbols=yes extract_expsyms_cmds='test -f $output_objdir/impgen.c || \ sed -e "/^# \/\* impgen\.c starts here \*\//,/^# \/\* impgen.c ends here \*\// { s/^# //;s/^# *$//; p; }" -e d < $''0 > $output_objdir/impgen.c~ test -f $output_objdir/impgen.exe || (cd $output_objdir && \ if test "x$HOST_CC" != "x" ; then $HOST_CC -o impgen impgen.c ; \ else $CC -o impgen impgen.c ; fi)~ $output_objdir/impgen $dir/$soroot > $output_objdir/$soname-def' old_archive_from_expsyms_cmds='$DLLTOOL --as=$AS --dllname $soname --def $output_objdir/$soname-def --output-lib $output_objdir/$newlib' # cygwin and mingw dlls have different entry points and sets of symbols # to exclude. # FIXME: what about values for MSVC? dll_entry=__cygwin_dll_entry@12 dll_exclude_symbols=DllMain@12,_cygwin_dll_entry@12,_cygwin_noncygwin_dll_entry@12~ case $host_os in mingw*) # mingw values dll_entry=_DllMainCRTStartup@12 dll_exclude_symbols=DllMain@12,DllMainCRTStartup@12,DllEntryPoint@12~ ;; esac # mingw and cygwin differ, and it's simplest to just exclude the union # of the two symbol sets. dll_exclude_symbols=DllMain@12,_cygwin_dll_entry@12,_cygwin_noncygwin_dll_entry@12,DllMainCRTStartup@12,DllEntryPoint@12 # recent cygwin and mingw systems supply a stub DllMain which the user # can override, but on older systems we have to supply one (in ltdll.c) if test "x$lt_cv_need_dllmain" = "xyes"; then ltdll_obj='$output_objdir/$soname-ltdll.'"$ac_objext " ltdll_cmds='test -f $output_objdir/$soname-ltdll.c || sed -e "/^# \/\* ltdll\.c starts here \*\//,/^# \/\* ltdll.c ends here \*\// { s/^# //; p; }" -e d < $''0 > $output_objdir/$soname-ltdll.c~ test -f $output_objdir/$soname-ltdll.$ac_objext || (cd $output_objdir && $CC -c $soname-ltdll.c)~' else ltdll_obj= ltdll_cmds= fi # Extract the symbol export list from an `--export-all' def file, # then regenerate the def file from the symbol export list, so that # the compiled dll only exports the symbol export list. # Be careful not to strip the DATA tag left be newer dlltools. export_symbols_cmds="$ltdll_cmds"' $DLLTOOL --export-all --exclude-symbols '$dll_exclude_symbols' --output-def $output_objdir/$soname-def '$ltdll_obj'$libobjs $convenience~ sed -e "1,/EXPORTS/d" -e "s/ @ [[0-9]]*//" -e "s/ *;.*$//" < $output_objdir/$soname-def > $export_symbols' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is. # If DATA tags from a recent dlltool are present, honour them! archive_expsym_cmds='if test "x`sed 1q $export_symbols`" = xEXPORTS; then cp $export_symbols $output_objdir/$soname-def; else echo EXPORTS > $output_objdir/$soname-def; _lt_hint=1; cat $export_symbols | while read symbol; do set dummy \$symbol; case \[$]# in 2) echo " \[$]2 @ \$_lt_hint ; " >> $output_objdir/$soname-def;; 4) echo " \[$]2 \[$]3 \[$]4 ; " >> $output_objdir/$soname-def; _lt_hint=`expr \$_lt_hint - 1`;; *) echo " \[$]2 @ \$_lt_hint \[$]3 ; " >> $output_objdir/$soname-def;; esac; _lt_hint=`expr 1 + \$_lt_hint`; done; fi~ '"$ltdll_cmds"' $CC -Wl,--base-file,$output_objdir/$soname-base '$lt_cv_cc_dll_switch' -Wl,-e,'$dll_entry' -o $output_objdir/$soname '$ltdll_obj'$libobjs $deplibs $compiler_flags~ $DLLTOOL --as=$AS --dllname $soname --exclude-symbols '$dll_exclude_symbols' --def $output_objdir/$soname-def --base-file $output_objdir/$soname-base --output-exp $output_objdir/$soname-exp~ $CC -Wl,--base-file,$output_objdir/$soname-base $output_objdir/$soname-exp '$lt_cv_cc_dll_switch' -Wl,-e,'$dll_entry' -o $output_objdir/$soname '$ltdll_obj'$libobjs $deplibs $compiler_flags~ $DLLTOOL --as=$AS --dllname $soname --exclude-symbols '$dll_exclude_symbols' --def $output_objdir/$soname-def --base-file $output_objdir/$soname-base --output-exp $output_objdir/$soname-exp --output-lib $output_objdir/$libname.dll.a~ $CC $output_objdir/$soname-exp '$lt_cv_cc_dll_switch' -Wl,-e,'$dll_entry' -o $output_objdir/$soname '$ltdll_obj'$libobjs $deplibs $compiler_flags' ;; netbsd*) if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= else archive_cmds='$CC -shared -nodefaultlibs $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared -nodefaultlibs $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' fi ;; solaris* | sysv5*) if $LD -v 2>&1 | egrep 'BFD 2\.8' > /dev/null; then ld_shlibs=no cat <&2 *** Warning: The releases 2.8.* of the GNU linker cannot reliably *** create shared libraries on Solaris systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.9.1 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. EOF elif $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs=no fi ;; sunos4*) archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' wlarc= hardcode_direct=yes hardcode_shlibpath_var=no ;; *) if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs=no fi ;; esac if test "$ld_shlibs" = yes; then runpath_var=LD_RUN_PATH hardcode_libdir_flag_spec='${wl}--rpath ${wl}$libdir' export_dynamic_flag_spec='${wl}--export-dynamic' case $host_os in cygwin* | mingw* | pw32*) # dlltool doesn't understand --whole-archive et. al. whole_archive_flag_spec= ;; *) # ancient GNU ld didn't support --whole-archive et. al. if $LD --help 2>&1 | egrep 'no-whole-archive' > /dev/null; then whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else whole_archive_flag_spec= fi ;; esac fi else # PORTME fill in a description of your system's linker (not GNU ld) case $host_os in aix3*) allow_undefined_flag=unsupported always_export_symbols=yes archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' # Note: this linker hardcodes the directories in LIBPATH if there # are no directories specified by -L. hardcode_minus_L=yes if test "$GCC" = yes && test -z "$link_static_flag"; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. hardcode_direct=unsupported fi ;; aix4* | aix5*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag="" else aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[[23]]|aix4.[[23]].*|aix5*) for ld_flag in $LDFLAGS; do case $ld_flag in *-brtl*) aix_use_runtimelinking=yes break ;; esac done esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. hardcode_direct=yes archive_cmds='' hardcode_libdir_separator=':' if test "$GCC" = yes; then case $host_os in aix4.[[012]]|aix4.[[012]].*) collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && \ strings "$collect2name" | grep resolve_lib_name >/dev/null then # We have reworked collect2 hardcode_direct=yes else # We have old collect2 hardcode_direct=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking hardcode_minus_L=yes hardcode_libdir_flag_spec='-L$libdir' hardcode_libdir_separator= fi esac shared_flag='-shared' else # not using gcc if test "$host_cpu" = ia64; then shared_flag='${wl}-G' else if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi # It seems that -bexpall can do strange things, so it is better to # generate a list of symbols to export. always_export_symbols=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. allow_undefined_flag='-berok' hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:/usr/lib:/lib' archive_expsym_cmds="\$CC"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib' allow_undefined_flag="-z nodefs" archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname ${wl}-h$soname $libobjs $deplibs $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols" else hardcode_libdir_flag_spec='${wl}-bnolibpath ${wl}-blibpath:$libdir:/usr/lib:/lib' # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. allow_undefined_flag='${wl}-berok' # This is a bit strange, but is similar to how AIX traditionally builds # it's shared libraries. archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols"' ~$AR -crlo $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; amigaos*) archive_cmds='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes # see comment about different semantics on the GNU ld section ld_shlibs=no ;; cygwin* | mingw* | pw32*) # When not using gcc, we currently assume that we are using # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. hardcode_libdir_flag_spec=' ' allow_undefined_flag=unsupported # Tell ltmain to make .lib files, not .a files. libext=lib # FIXME: Setting linknames here is a bad hack. archive_cmds='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | sed -e '\''s/ -lc$//'\''` -link -dll~linknames=' # The linker will automatically build a .lib file if we build a DLL. old_archive_from_new_cmds='true' # FIXME: Should let the user specify the lib program. old_archive_cmds='lib /OUT:$oldlib$oldobjs$old_deplibs' fix_srcfile_path='`cygpath -w "$srcfile"`' ;; darwin* | rhapsody*) case "$host_os" in rhapsody* | darwin1.[[012]]) allow_undefined_flag='-undefined suppress' ;; *) # Darwin 1.3 on allow_undefined_flag='-flat_namespace -undefined suppress' ;; esac # FIXME: Relying on posixy $() will cause problems for # cross-compilation, but unfortunately the echo tests do not # yet detect zsh echo's removal of \ escapes. Also zsh mangles # `"' quotes if we put them in here... so don't! archive_cmds='$CC -r -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs && $CC $(test .$module = .yes && echo -bundle || echo -dynamiclib) $allow_undefined_flag -o $lib ${lib}-master.o $deplibs$linker_flags $(test .$module != .yes && echo -install_name $rpath/$soname $verstring)' # We need to add '_' to the symbols in $export_symbols first #archive_expsym_cmds="$archive_cmds"' && strip -s $export_symbols' hardcode_direct=yes hardcode_shlibpath_var=no whole_archive_flag_spec='-all_load $convenience' ;; freebsd1*) ld_shlibs=no ;; # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor # support. Future versions do this automatically, but an explicit c++rt0.o # does not break anything, and helps significantly (at the cost of a little # extra space). freebsd2.2*) archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; # Unfortunately, older versions of FreeBSD 2 do not have this feature. freebsd2*) archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes hardcode_minus_L=yes hardcode_shlibpath_var=no ;; # FreeBSD 3 and greater uses gcc -shared to do shared libraries. freebsd*) archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; hpux9* | hpux10* | hpux11*) case $host_os in hpux9*) archive_cmds='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' ;; *) archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' ;; esac hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: hardcode_direct=yes hardcode_minus_L=yes # Not in the search PATH, but as the default # location of the library. export_dynamic_flag_spec='${wl}-E' ;; irix5* | irix6* | nonstopux*) if test "$GCC" = yes; then archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' else archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec='-rpath $libdir' fi hardcode_libdir_separator=: link_all_deplibs=yes ;; netbsd*) if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out else archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF fi hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; newsos6) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: hardcode_shlibpath_var=no ;; openbsd*) hardcode_direct=yes hardcode_shlibpath_var=no if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec='${wl}-rpath,$libdir' export_dynamic_flag_spec='${wl}-E' else case "$host_os" in openbsd[[01]].* | openbsd2.[[0-7]] | openbsd2.[[0-7]].*) archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec='-R$libdir' ;; *) archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec='${wl}-rpath,$libdir' ;; esac fi ;; os2*) hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes allow_undefined_flag=unsupported archive_cmds='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' old_archive_from_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' ;; osf3*) if test "$GCC" = yes; then allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else allow_undefined_flag=' -expect_unresolved \*' archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' fi hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: ;; osf4* | osf5*) # as osf3* with the addition of -msym flag if test "$GCC" = yes; then allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' else allow_undefined_flag=' -expect_unresolved \*' archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' archive_expsym_cmds='for i in `cat $export_symbols`; do printf "-exported_symbol " >> $lib.exp; echo "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~ $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib~$rm $lib.exp' #Both c and cxx compiler support -rpath directly hardcode_libdir_flag_spec='-rpath $libdir' fi hardcode_libdir_separator=: ;; sco3.2v5*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var=no runpath_var=LD_RUN_PATH hardcode_runpath_var=yes export_dynamic_flag_spec='${wl}-Bexport' ;; solaris*) # gcc --version < 3.0 without binutils cannot create self contained # shared libraries reliably, requiring libgcc.a to resolve some of # the object symbols generated in some cases. Libraries that use # assert need libgcc.a to resolve __eprintf, for example. Linking # a copy of libgcc.a into every shared library to guarantee resolving # such symbols causes other problems: According to Tim Van Holder # , C++ libraries end up with a separate # (to the application) exception stack for one thing. no_undefined_flag=' -z defs' if test "$GCC" = yes; then case `$CC --version 2>/dev/null` in [[12]].*) cat <&2 *** Warning: Releases of GCC earlier than version 3.0 cannot reliably *** create self contained shared libraries on Solaris systems, without *** introducing a dependency on libgcc.a. Therefore, libtool is disabling *** -no-undefined support, which will at least allow you to build shared *** libraries. However, you may find that when you link such libraries *** into an application without using GCC, you have to manually add *** \`gcc --print-libgcc-file-name\` to the link command. We urge you to *** upgrade to a newer version of GCC. Another option is to rebuild your *** current GCC to use the GNU linker from GNU binutils 2.9.1 or newer. EOF no_undefined_flag= ;; esac fi # $CC -shared without GNU ld will not create a library from C++ # object files and a static libstdc++, better avoid it by now archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp' hardcode_libdir_flag_spec='-R$libdir' hardcode_shlibpath_var=no case $host_os in solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; *) # Supported since Solaris 2.6 (maybe 2.5.1?) whole_archive_flag_spec='-z allextract$convenience -z defaultextract' ;; esac link_all_deplibs=yes ;; sunos4*) if test "x$host_vendor" = xsequent; then # Use $CC to link under sequent, because it throws in some extra .o # files that make .init and .fini sections work. archive_cmds='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' fi hardcode_libdir_flag_spec='-L$libdir' hardcode_direct=yes hardcode_minus_L=yes hardcode_shlibpath_var=no ;; sysv4) case $host_vendor in sni) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes # is this really true??? ;; siemens) ## LD is ld it makes a PLAMLIB ## CC just makes a GrossModule. archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags' reload_cmds='$CC -r -o $output$reload_objs' hardcode_direct=no ;; motorola) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=no #Motorola manual says yes, but my tests say they lie ;; esac runpath_var='LD_RUN_PATH' hardcode_shlibpath_var=no ;; sysv4.3*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var=no export_dynamic_flag_spec='-Bexport' ;; sysv5*) no_undefined_flag=' -z text' # $CC -shared without GNU ld will not create a library from C++ # object files and a static libstdc++, better avoid it by now archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp' hardcode_libdir_flag_spec= hardcode_shlibpath_var=no runpath_var='LD_RUN_PATH' ;; uts4*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec='-L$libdir' hardcode_shlibpath_var=no ;; dgux*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec='-L$libdir' hardcode_shlibpath_var=no ;; sysv4*MP*) if test -d /usr/nec; then archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var=no runpath_var=LD_RUN_PATH hardcode_runpath_var=yes ld_shlibs=yes fi ;; sysv4.2uw2*) archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes hardcode_minus_L=no hardcode_shlibpath_var=no hardcode_runpath_var=yes runpath_var=LD_RUN_PATH ;; sysv5uw7* | unixware7*) no_undefined_flag='${wl}-z ${wl}text' if test "$GCC" = yes; then archive_cmds='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$CC -G ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' fi runpath_var='LD_RUN_PATH' hardcode_shlibpath_var=no ;; *) ld_shlibs=no ;; esac fi AC_MSG_RESULT([$ld_shlibs]) test "$ld_shlibs" = no && can_build_shared=no ## ## END FIXME ## FIXME: this should be a separate macro ## # Check hardcoding attributes. AC_MSG_CHECKING([how to hardcode library paths into programs]) hardcode_action= if test -n "$hardcode_libdir_flag_spec" || \ test -n "$runpath_var"; then # We can hardcode non-existant directories. if test "$hardcode_direct" != no && # If the only mechanism to avoid hardcoding is shlibpath_var, we # have to relink, otherwise we might link with an installed library # when we should be linking with a yet-to-be-installed one ## test "$hardcode_shlibpath_var" != no && test "$hardcode_minus_L" != no; then # Linking always hardcodes the temporary library directory. hardcode_action=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. hardcode_action=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. hardcode_action=unsupported fi AC_MSG_RESULT([$hardcode_action]) ## ## END FIXME ## FIXME: this should be a separate macro ## striplib= old_striplib= AC_MSG_CHECKING([whether stripping libraries is possible]) if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; then test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" test -z "$striplib" && striplib="$STRIP --strip-unneeded" AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) fi ## ## END FIXME reload_cmds='$LD$reload_flag -o $output$reload_objs' test -z "$deplibs_check_method" && deplibs_check_method=unknown ## FIXME: this should be a separate macro ## # PORTME Fill in your ld.so characteristics AC_MSG_CHECKING([dynamic linker characteristics]) library_names_spec= libname_spec='lib$name' soname_spec= postinstall_cmds= postuninstall_cmds= finish_cmds= finish_eval= shlibpath_var= shlibpath_overrides_runpath=unknown version_type=none dynamic_linker="$host_os ld.so" sys_lib_dlsearch_path_spec="/lib /usr/lib" sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" case $host_os in aix3*) version_type=linux library_names_spec='${libname}${release}.so$versuffix $libname.a' shlibpath_var=LIBPATH # AIX has no versioning support, so we append a major version to the name. soname_spec='${libname}${release}.so$major' ;; aix4* | aix5*) version_type=linux need_lib_prefix=no need_version=no hardcode_into_libs=yes if test "$host_cpu" = ia64; then # AIX 5 supports IA64 library_names_spec='${libname}${release}.so$major ${libname}${release}.so$versuffix $libname.so' shlibpath_var=LD_LIBRARY_PATH else # With GCC up to 2.95.x, collect2 would create an import file # for dependence libraries. The import file would start with # the line `#! .'. This would cause the generated library to # depend on `.', always an invalid library. This was fixed in # development snapshots of GCC prior to 3.0. case $host_os in aix4 | aix4.[[01]] | aix4.[[01]].*) if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' echo ' yes ' echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then : else can_build_shared=no fi ;; esac # AIX (on Power*) has no versioning support, so currently we can # not hardcode correct soname into executable. Probably we can # add versioning support to collect2, so additional links can # be useful in future. if test "$aix_use_runtimelinking" = yes; then # If using run time linking (on AIX 4.2 or later) use lib.so # instead of lib.a to let people know that these are not # typical AIX shared libraries. library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' else # We preserve .a as extension for shared libraries through AIX4.2 # and later when we are not doing run time linking. library_names_spec='${libname}${release}.a $libname.a' soname_spec='${libname}${release}.so$major' fi shlibpath_var=LIBPATH fi hardcode_into_libs=yes ;; amigaos*) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "(cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a)"; (cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a) || exit 1; done' ;; beos*) library_names_spec='${libname}.so' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi4*) version_type=linux need_version=no library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' soname_spec='${libname}${release}.so$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" export_dynamic_flag_spec=-rdynamic # the default ld.so.conf also contains /usr/contrib/lib and # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow # libtool to hard-code these into programs ;; cygwin* | mingw* | pw32*) version_type=windows need_version=no need_lib_prefix=no case $GCC,$host_os in yes,cygwin*) library_names_spec='$libname.dll.a' soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | sed -e 's/[[.]]/-/g'`${versuffix}.dll' postinstall_cmds='dlpath=`bash 2>&1 -c '\''. $dir/${file}i;echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog .libs/$dlname \$dldir/$dlname' postuninstall_cmds='dldll=`bash 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $rm \$dlpath' ;; yes,mingw*) library_names_spec='${libname}`echo ${release} | sed -e 's/[[.]]/-/g'`${versuffix}.dll' sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | sed -e "s/^libraries://" -e "s/;/ /g" -e "s,=/,/,g"` ;; yes,pw32*) library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | sed -e 's/[.]/-/g'`${versuffix}.dll' ;; *) library_names_spec='${libname}`echo ${release} | sed -e 's/[[.]]/-/g'`${versuffix}.dll $libname.lib' ;; esac dynamic_linker='Win32 ld.exe' # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; darwin* | rhapsody*) dynamic_linker="$host_os dyld" version_type=darwin need_lib_prefix=no need_version=no # FIXME: Relying on posixy $() will cause problems for # cross-compilation, but unfortunately the echo tests do not # yet detect zsh echo's removal of \ escapes. library_names_spec='${libname}${release}${versuffix}.$(test .$module = .yes && echo so || echo dylib) ${libname}${release}${major}.$(test .$module = .yes && echo so || echo dylib) ${libname}.$(test .$module = .yes && echo so || echo dylib)' soname_spec='${libname}${release}${major}.$(test .$module = .yes && echo so || echo dylib)' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH ;; freebsd1*) dynamic_linker=no ;; kfreebsd*-gnu*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' soname_spec='${libname}${release}.so$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='GNU/FreeBSD ld.so' ;; freebsd*) objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout` version_type=freebsd-$objformat case $version_type in freebsd-elf*) library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so $libname.so' need_version=no need_lib_prefix=no ;; freebsd-*) library_names_spec='${libname}${release}.so$versuffix $libname.so$versuffix' need_version=yes ;; esac shlibpath_var=LD_LIBRARY_PATH case $host_os in freebsd2*) shlibpath_overrides_runpath=yes ;; *) shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; esac ;; gnu*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so${major} ${libname}.so' soname_spec='${libname}${release}.so$major' shlibpath_var=LD_LIBRARY_PATH hardcode_into_libs=yes ;; hpux9* | hpux10* | hpux11*) # Give a soname corresponding to the major version so that dld.sl refuses to # link against other versions. dynamic_linker="$host_os dld.sl" version_type=sunos need_lib_prefix=no need_version=no shlibpath_var=SHLIB_PATH shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH library_names_spec='${libname}${release}.sl$versuffix ${libname}${release}.sl$major $libname.sl' soname_spec='${libname}${release}.sl$major' # HP-UX runs *really* slowly unless shared libraries are mode 555. postinstall_cmds='chmod 555 $lib' ;; irix5* | irix6* | nonstopux*) case $host_os in nonstopux*) version_type=nonstopux ;; *) version_type=irix ;; esac need_lib_prefix=no need_version=no soname_spec='${libname}${release}.so$major' library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major ${libname}${release}.so $libname.so' case $host_os in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in # libtool.m4 will add one of these switches to LD *-32|*"-32 ") libsuff= shlibsuff= libmagic=32-bit;; *-n32|*"-n32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; *-64|*"-64 ") libsuff=64 shlibsuff=64 libmagic=64-bit;; *) libsuff= shlibsuff= libmagic=never-match;; esac ;; esac shlibpath_var=LD_LIBRARY${shlibsuff}_PATH shlibpath_overrides_runpath=no sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" ;; # No shared lib support for Linux oldld, aout, or coff. linux-gnuoldld* | linux-gnuaout* | linux-gnucoff*) dynamic_linker=no ;; # This must be Linux ELF. linux-gnu*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' soname_spec='${libname}${release}.so$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install # before this can be enabled. hardcode_into_libs=yes # We used to test for /lib/ld.so.1 and disable shared libraries on # powerpc, because MkLinux only supported shared libraries with the # GNU dynamic linker. Since this was broken with cross compilers, # most powerpc-linux boxes support dynamic linking these days and # people can always --disable-shared, the test was removed, and we # assume the GNU/Linux dynamic linker is in use. dynamic_linker='GNU/Linux ld.so' ;; netbsd*) version_type=sunos need_lib_prefix=no need_version=no if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then library_names_spec='${libname}${release}.so$versuffix ${libname}.so$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' dynamic_linker='NetBSD (a.out) ld.so' else library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major ${libname}${release}.so ${libname}.so' soname_spec='${libname}${release}.so$major' dynamic_linker='NetBSD ld.elf_so' fi shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; newsos6) version_type=linux library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; openbsd*) version_type=sunos need_lib_prefix=no need_version=no if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then case "$host_os" in openbsd2.[[89]] | openbsd2.[[89]].*) shlibpath_overrides_runpath=no ;; *) shlibpath_overrides_runpath=yes ;; esac else shlibpath_overrides_runpath=yes fi library_names_spec='${libname}${release}.so$versuffix ${libname}.so$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' shlibpath_var=LD_LIBRARY_PATH ;; os2*) libname_spec='$name' need_lib_prefix=no library_names_spec='$libname.dll $libname.a' dynamic_linker='OS/2 ld.exe' shlibpath_var=LIBPATH ;; osf3* | osf4* | osf5*) version_type=osf need_version=no need_lib_prefix=no soname_spec='${libname}${release}.so$major' library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" hardcode_into_libs=yes ;; sco3.2v5*) version_type=osf soname_spec='${libname}${release}.so$major' library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' shlibpath_var=LD_LIBRARY_PATH ;; solaris*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' soname_spec='${libname}${release}.so$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes # ldd complains unless libraries are executable postinstall_cmds='chmod +x $lib' ;; sunos4*) version_type=sunos library_names_spec='${libname}${release}.so$versuffix ${libname}.so$versuffix' finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes if test "$with_gnu_ld" = yes; then need_lib_prefix=no fi need_version=yes ;; sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) version_type=linux library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' soname_spec='${libname}${release}.so$major' shlibpath_var=LD_LIBRARY_PATH case $host_vendor in sni) shlibpath_overrides_runpath=no need_lib_prefix=no export_dynamic_flag_spec='${wl}-Blargedynsym' runpath_var=LD_RUN_PATH ;; siemens) need_lib_prefix=no ;; motorola) need_lib_prefix=no need_version=no shlibpath_overrides_runpath=no sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ;; esac ;; uts4*) version_type=linux library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' soname_spec='${libname}${release}.so$major' shlibpath_var=LD_LIBRARY_PATH ;; dgux*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' soname_spec='${libname}${release}.so$major' shlibpath_var=LD_LIBRARY_PATH ;; sysv4*MP*) if test -d /usr/nec ;then version_type=linux library_names_spec='$libname.so.$versuffix $libname.so.$major $libname.so' soname_spec='$libname.so.$major' shlibpath_var=LD_LIBRARY_PATH fi ;; *) dynamic_linker=no ;; esac AC_MSG_RESULT([$dynamic_linker]) test "$dynamic_linker" = no && can_build_shared=no ## ## END FIXME ## FIXME: this should be a separate macro ## # Report the final consequences. AC_MSG_CHECKING([if libtool supports shared libraries]) AC_MSG_RESULT([$can_build_shared]) ## ## END FIXME ## FIXME: this should be a separate macro ## AC_MSG_CHECKING([whether to build shared libraries]) test "$can_build_shared" = "no" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case "$host_os" in aix3*) test "$enable_shared" = yes && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix4*) if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then test "$enable_shared" = yes && enable_static=no fi ;; esac AC_MSG_RESULT([$enable_shared]) ## ## END FIXME ## FIXME: this should be a separate macro ## AC_MSG_CHECKING([whether to build static libraries]) # Make sure either enable_shared or enable_static is yes. test "$enable_shared" = yes || enable_static=yes AC_MSG_RESULT([$enable_static]) ## ## END FIXME if test "$hardcode_action" = relink; then # Fast installation is not supported enable_fast_install=no elif test "$shlibpath_overrides_runpath" = yes || test "$enable_shared" = no; then # Fast installation is not necessary enable_fast_install=needless fi variables_saved_for_relink="PATH $shlibpath_var $runpath_var" if test "$GCC" = yes; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi AC_LIBTOOL_DLOPEN_SELF ## FIXME: this should be a separate macro ## if test "$enable_shared" = yes && test "$GCC" = yes; then case $archive_cmds in *'~'*) # FIXME: we may have to deal with multi-command sequences. ;; '$CC '*) # Test whether the compiler implicitly links with -lc since on some # systems, -lgcc has to come before -lc. If gcc already passes -lc # to ld, don't add -lc before -lgcc. AC_MSG_CHECKING([whether -lc should be explicitly linked in]) AC_CACHE_VAL([lt_cv_archive_cmds_need_lc], [$rm conftest* echo 'static int dummy;' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then soname=conftest lib=conftest libobjs=conftest.$ac_objext deplibs= wl=$lt_cv_prog_cc_wl compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest save_allow_undefined_flag=$allow_undefined_flag allow_undefined_flag= if AC_TRY_EVAL(archive_cmds 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) then lt_cv_archive_cmds_need_lc=no else lt_cv_archive_cmds_need_lc=yes fi allow_undefined_flag=$save_allow_undefined_flag else cat conftest.err 1>&5 fi]) AC_MSG_RESULT([$lt_cv_archive_cmds_need_lc]) ;; esac fi need_lc=${lt_cv_archive_cmds_need_lc-yes} ## ## END FIXME ## FIXME: this should be a separate macro ## # The second clause should only fire when bootstrapping the # libtool distribution, otherwise you forgot to ship ltmain.sh # with your package, and you will get complaints that there are # no rules to generate ltmain.sh. if test -f "$ltmain"; then : else # If there is no Makefile yet, we rely on a make rule to execute # `config.status --recheck' to rerun these tests and create the # libtool script then. ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` if test -f "$ltmain_in"; then test -f Makefile && make "$ltmain" fi fi if test -f "$ltmain"; then trap "$rm \"${ofile}T\"; exit 1" 1 2 15 $rm -f "${ofile}T" echo creating $ofile # Now quote all the things that may contain metacharacters while being # careful not to overquote the AC_SUBSTed values. We take copies of the # variables and quote the copies for generation of the libtool script. for var in echo old_CC old_CFLAGS SED \ AR AR_FLAGS CC LD LN_S NM SHELL STRIP \ reload_flag reload_cmds wl \ pic_flag link_static_flag no_builtin_flag export_dynamic_flag_spec \ thread_safe_flag_spec whole_archive_flag_spec libname_spec \ library_names_spec soname_spec \ RANLIB old_archive_cmds old_archive_from_new_cmds old_postinstall_cmds \ old_postuninstall_cmds archive_cmds archive_expsym_cmds postinstall_cmds \ postuninstall_cmds extract_expsyms_cmds old_archive_from_expsyms_cmds \ old_striplib striplib file_magic_cmd export_symbols_cmds \ deplibs_check_method allow_undefined_flag no_undefined_flag \ finish_cmds finish_eval global_symbol_pipe global_symbol_to_cdecl \ global_symbol_to_c_name_address \ hardcode_libdir_flag_spec hardcode_libdir_separator \ sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ compiler_c_o compiler_o_lo need_locks exclude_expsyms include_expsyms; do case $var in reload_cmds | old_archive_cmds | old_archive_from_new_cmds | \ old_postinstall_cmds | old_postuninstall_cmds | \ export_symbols_cmds | archive_cmds | archive_expsym_cmds | \ extract_expsyms_cmds | old_archive_from_expsyms_cmds | \ postinstall_cmds | postuninstall_cmds | \ finish_cmds | sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) # Double-quote double-evaled strings. eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" ;; *) eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" ;; esac done cat <<__EOF__ > "${ofile}T" #! $SHELL # `$echo "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services. # Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP) # NOTE: Changes made to this file will be lost: look at ltmain.sh. # # Copyright (C) 1996-2000 Free Software Foundation, Inc. # Originally by Gordon Matzigkeit , 1996 # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # A sed that does not truncate output. SED=$lt_SED # Sed that helps us avoid accidentally triggering echo(1) options like -n. Xsed="${SED} -e s/^X//" # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. if test "X\${CDPATH+set}" = Xset; then CDPATH=:; export CDPATH; fi # ### BEGIN LIBTOOL CONFIG # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # Shell to use when invoking shell scripts. SHELL=$lt_SHELL # Whether or not to build shared libraries. build_libtool_libs=$enable_shared # Whether or not to build static libraries. build_old_libs=$enable_static # Whether or not to add -lc for building shared libraries. build_libtool_need_lc=$need_lc # Whether or not to optimize for fast installation. fast_install=$enable_fast_install # The host system. host_alias=$host_alias host=$host # An echo program that does not interpret backslashes. echo=$lt_echo # The archiver. AR=$lt_AR AR_FLAGS=$lt_AR_FLAGS # The default C compiler. CC=$lt_CC # Is the compiler the GNU C compiler? with_gcc=$GCC # The linker used to build libraries. LD=$lt_LD # Whether we need hard or soft links. LN_S=$lt_LN_S # A BSD-compatible nm program. NM=$lt_NM # A symbol stripping program STRIP=$lt_STRIP # Used to examine libraries when file_magic_cmd begins "file" MAGIC_CMD=$MAGIC_CMD # Used on cygwin: DLL creation program. DLLTOOL="$DLLTOOL" # Used on cygwin: object dumper. OBJDUMP="$OBJDUMP" # Used on cygwin: assembler. AS="$AS" # The name of the directory that contains temporary libtool files. objdir=$objdir # How to create reloadable object files. reload_flag=$lt_reload_flag reload_cmds=$lt_reload_cmds # How to pass a linker flag through the compiler. wl=$lt_wl # Object file suffix (normally "o"). objext="$ac_objext" # Old archive suffix (normally "a"). libext="$libext" # Executable file suffix (normally ""). exeext="$exeext" # Additional compiler flags for building library objects. pic_flag=$lt_pic_flag pic_mode=$pic_mode # Does compiler simultaneously support -c and -o options? compiler_c_o=$lt_compiler_c_o # Can we write directly to a .lo ? compiler_o_lo=$lt_compiler_o_lo # Must we lock files when doing compilation ? need_locks=$lt_need_locks # Do we need the lib prefix for modules? need_lib_prefix=$need_lib_prefix # Do we need a version for libraries? need_version=$need_version # Whether dlopen is supported. dlopen_support=$enable_dlopen # Whether dlopen of programs is supported. dlopen_self=$enable_dlopen_self # Whether dlopen of statically linked programs is supported. dlopen_self_static=$enable_dlopen_self_static # Compiler flag to prevent dynamic linking. link_static_flag=$lt_link_static_flag # Compiler flag to turn off builtin functions. no_builtin_flag=$lt_no_builtin_flag # Compiler flag to allow reflexive dlopens. export_dynamic_flag_spec=$lt_export_dynamic_flag_spec # Compiler flag to generate shared objects directly from archives. whole_archive_flag_spec=$lt_whole_archive_flag_spec # Compiler flag to generate thread-safe objects. thread_safe_flag_spec=$lt_thread_safe_flag_spec # Library versioning type. version_type=$version_type # Format of library name prefix. libname_spec=$lt_libname_spec # List of archive names. First name is the real one, the rest are links. # The last name is the one that the linker finds with -lNAME. library_names_spec=$lt_library_names_spec # The coded name of the library, if different from the real name. soname_spec=$lt_soname_spec # Commands used to build and install an old-style archive. RANLIB=$lt_RANLIB old_archive_cmds=$lt_old_archive_cmds old_postinstall_cmds=$lt_old_postinstall_cmds old_postuninstall_cmds=$lt_old_postuninstall_cmds # Create an old-style archive from a shared archive. old_archive_from_new_cmds=$lt_old_archive_from_new_cmds # Create a temporary old-style archive to link instead of a shared archive. old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds # Commands used to build and install a shared archive. archive_cmds=$lt_archive_cmds archive_expsym_cmds=$lt_archive_expsym_cmds postinstall_cmds=$lt_postinstall_cmds postuninstall_cmds=$lt_postuninstall_cmds # Commands to strip libraries. old_striplib=$lt_old_striplib striplib=$lt_striplib # Method to check whether dependent libraries are shared objects. deplibs_check_method=$lt_deplibs_check_method # Command to use when deplibs_check_method == file_magic. file_magic_cmd=$lt_file_magic_cmd # Flag that allows shared libraries with undefined symbols to be built. allow_undefined_flag=$lt_allow_undefined_flag # Flag that forces no undefined symbols. no_undefined_flag=$lt_no_undefined_flag # Commands used to finish a libtool library installation in a directory. finish_cmds=$lt_finish_cmds # Same as above, but a single script fragment to be evaled but not shown. finish_eval=$lt_finish_eval # Take the output of nm and produce a listing of raw symbols and C names. global_symbol_pipe=$lt_global_symbol_pipe # Transform the output of nm in a proper C declaration global_symbol_to_cdecl=$lt_global_symbol_to_cdecl # Transform the output of nm in a C name address pair global_symbol_to_c_name_address=$lt_global_symbol_to_c_name_address # This is the shared library runtime path variable. runpath_var=$runpath_var # This is the shared library path variable. shlibpath_var=$shlibpath_var # Is shlibpath searched before the hard-coded library search path? shlibpath_overrides_runpath=$shlibpath_overrides_runpath # How to hardcode a shared library path into an executable. hardcode_action=$hardcode_action # Whether we should hardcode library paths into libraries. hardcode_into_libs=$hardcode_into_libs # Flag to hardcode \$libdir into a binary during linking. # This must work even if \$libdir does not exist. hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec # Whether we need a single -rpath flag with a separated argument. hardcode_libdir_separator=$lt_hardcode_libdir_separator # Set to yes if using DIR/libNAME.so during linking hardcodes DIR into the # resulting binary. hardcode_direct=$hardcode_direct # Set to yes if using the -LDIR flag during linking hardcodes DIR into the # resulting binary. hardcode_minus_L=$hardcode_minus_L # Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into # the resulting binary. hardcode_shlibpath_var=$hardcode_shlibpath_var # Variables whose values should be saved in libtool wrapper scripts and # restored at relink time. variables_saved_for_relink="$variables_saved_for_relink" # Whether libtool must link a program against all its dependency libraries. link_all_deplibs=$link_all_deplibs # Compile-time system search path for libraries sys_lib_search_path_spec=$lt_sys_lib_search_path_spec # Run-time system search path for libraries sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec # Fix the shell variable \$srcfile for the compiler. fix_srcfile_path="$fix_srcfile_path" # Set to yes if exported symbols are required. always_export_symbols=$always_export_symbols # The commands to list exported symbols. export_symbols_cmds=$lt_export_symbols_cmds # The commands to extract the exported symbol list from a shared archive. extract_expsyms_cmds=$lt_extract_expsyms_cmds # Symbols that should not be listed in the preloaded symbols. exclude_expsyms=$lt_exclude_expsyms # Symbols that must always be exported. include_expsyms=$lt_include_expsyms # ### END LIBTOOL CONFIG __EOF__ case $host_os in aix3*) cat <<\EOF >> "${ofile}T" # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test "X${COLLECT_NAMES+set}" != Xset; then COLLECT_NAMES= export COLLECT_NAMES fi EOF ;; esac case $host_os in cygwin* | mingw* | pw32* | os2*) cat <<'EOF' >> "${ofile}T" # This is a source program that is used to create dlls on Windows # Don't remove nor modify the starting and closing comments # /* ltdll.c starts here */ # #define WIN32_LEAN_AND_MEAN # #include # #undef WIN32_LEAN_AND_MEAN # #include # # #ifndef __CYGWIN__ # # ifdef __CYGWIN32__ # # define __CYGWIN__ __CYGWIN32__ # # endif # #endif # # #ifdef __cplusplus # extern "C" { # #endif # BOOL APIENTRY DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved); # #ifdef __cplusplus # } # #endif # # #ifdef __CYGWIN__ # #include # DECLARE_CYGWIN_DLL( DllMain ); # #endif # HINSTANCE __hDllInstance_base; # # BOOL APIENTRY # DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved) # { # __hDllInstance_base = hInst; # return TRUE; # } # /* ltdll.c ends here */ # This is a source program that is used to create import libraries # on Windows for dlls which lack them. Don't remove nor modify the # starting and closing comments # /* impgen.c starts here */ # /* Copyright (C) 1999-2000 Free Software Foundation, Inc. # # This file is part of GNU libtool. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # */ # # #include /* for printf() */ # #include /* for open(), lseek(), read() */ # #include /* for O_RDONLY, O_BINARY */ # #include /* for strdup() */ # # /* O_BINARY isn't required (or even defined sometimes) under Unix */ # #ifndef O_BINARY # #define O_BINARY 0 # #endif # # static unsigned int # pe_get16 (fd, offset) # int fd; # int offset; # { # unsigned char b[2]; # lseek (fd, offset, SEEK_SET); # read (fd, b, 2); # return b[0] + (b[1]<<8); # } # # static unsigned int # pe_get32 (fd, offset) # int fd; # int offset; # { # unsigned char b[4]; # lseek (fd, offset, SEEK_SET); # read (fd, b, 4); # return b[0] + (b[1]<<8) + (b[2]<<16) + (b[3]<<24); # } # # static unsigned int # pe_as32 (ptr) # void *ptr; # { # unsigned char *b = ptr; # return b[0] + (b[1]<<8) + (b[2]<<16) + (b[3]<<24); # } # # int # main (argc, argv) # int argc; # char *argv[]; # { # int dll; # unsigned long pe_header_offset, opthdr_ofs, num_entries, i; # unsigned long export_rva, export_size, nsections, secptr, expptr; # unsigned long name_rvas, nexp; # unsigned char *expdata, *erva; # char *filename, *dll_name; # # filename = argv[1]; # # dll = open(filename, O_RDONLY|O_BINARY); # if (dll < 1) # return 1; # # dll_name = filename; # # for (i=0; filename[i]; i++) # if (filename[i] == '/' || filename[i] == '\\' || filename[i] == ':') # dll_name = filename + i +1; # # pe_header_offset = pe_get32 (dll, 0x3c); # opthdr_ofs = pe_header_offset + 4 + 20; # num_entries = pe_get32 (dll, opthdr_ofs + 92); # # if (num_entries < 1) /* no exports */ # return 1; # # export_rva = pe_get32 (dll, opthdr_ofs + 96); # export_size = pe_get32 (dll, opthdr_ofs + 100); # nsections = pe_get16 (dll, pe_header_offset + 4 +2); # secptr = (pe_header_offset + 4 + 20 + # pe_get16 (dll, pe_header_offset + 4 + 16)); # # expptr = 0; # for (i = 0; i < nsections; i++) # { # char sname[8]; # unsigned long secptr1 = secptr + 40 * i; # unsigned long vaddr = pe_get32 (dll, secptr1 + 12); # unsigned long vsize = pe_get32 (dll, secptr1 + 16); # unsigned long fptr = pe_get32 (dll, secptr1 + 20); # lseek(dll, secptr1, SEEK_SET); # read(dll, sname, 8); # if (vaddr <= export_rva && vaddr+vsize > export_rva) # { # expptr = fptr + (export_rva - vaddr); # if (export_rva + export_size > vaddr + vsize) # export_size = vsize - (export_rva - vaddr); # break; # } # } # # expdata = (unsigned char*)malloc(export_size); # lseek (dll, expptr, SEEK_SET); # read (dll, expdata, export_size); # erva = expdata - export_rva; # # nexp = pe_as32 (expdata+24); # name_rvas = pe_as32 (expdata+32); # # printf ("EXPORTS\n"); # for (i = 0; i> "${ofile}T" || (rm -f "${ofile}T"; exit 1) mv -f "${ofile}T" "$ofile" || \ (rm -f "$ofile" && cp "${ofile}T" "$ofile" && rm -f "${ofile}T") chmod +x "$ofile" fi ## ## END FIXME ])# _LT_AC_LTCONFIG_HACK # AC_LIBTOOL_DLOPEN - enable checks for dlopen support AC_DEFUN([AC_LIBTOOL_DLOPEN], [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])]) # AC_LIBTOOL_WIN32_DLL - declare package support for building win32 dll's AC_DEFUN([AC_LIBTOOL_WIN32_DLL], [AC_BEFORE([$0], [AC_LIBTOOL_SETUP])]) # AC_ENABLE_SHARED - implement the --enable-shared flag # Usage: AC_ENABLE_SHARED[(DEFAULT)] # Where DEFAULT is either `yes' or `no'. If omitted, it defaults to # `yes'. AC_DEFUN([AC_ENABLE_SHARED], [define([AC_ENABLE_SHARED_DEFAULT], ifelse($1, no, no, yes))dnl AC_ARG_ENABLE(shared, changequote(<<, >>)dnl << --enable-shared[=PKGS] build shared libraries [default=>>AC_ENABLE_SHARED_DEFAULT], changequote([, ])dnl [p=${PACKAGE-default} case $enableval in yes) enable_shared=yes ;; no) enable_shared=no ;; *) enable_shared=no # Look at the argument we got. We use all the common list separators. IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:," for pkg in $enableval; do if test "X$pkg" = "X$p"; then enable_shared=yes fi done IFS="$ac_save_ifs" ;; esac], enable_shared=AC_ENABLE_SHARED_DEFAULT)dnl ]) # AC_DISABLE_SHARED - set the default shared flag to --disable-shared AC_DEFUN([AC_DISABLE_SHARED], [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl AC_ENABLE_SHARED(no)]) # AC_ENABLE_STATIC - implement the --enable-static flag # Usage: AC_ENABLE_STATIC[(DEFAULT)] # Where DEFAULT is either `yes' or `no'. If omitted, it defaults to # `yes'. AC_DEFUN([AC_ENABLE_STATIC], [define([AC_ENABLE_STATIC_DEFAULT], ifelse($1, no, no, yes))dnl AC_ARG_ENABLE(static, changequote(<<, >>)dnl << --enable-static[=PKGS] build static libraries [default=>>AC_ENABLE_STATIC_DEFAULT], changequote([, ])dnl [p=${PACKAGE-default} case $enableval in yes) enable_static=yes ;; no) enable_static=no ;; *) enable_static=no # Look at the argument we got. We use all the common list separators. IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:," for pkg in $enableval; do if test "X$pkg" = "X$p"; then enable_static=yes fi done IFS="$ac_save_ifs" ;; esac], enable_static=AC_ENABLE_STATIC_DEFAULT)dnl ]) # AC_DISABLE_STATIC - set the default static flag to --disable-static AC_DEFUN([AC_DISABLE_STATIC], [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl AC_ENABLE_STATIC(no)]) # AC_ENABLE_FAST_INSTALL - implement the --enable-fast-install flag # Usage: AC_ENABLE_FAST_INSTALL[(DEFAULT)] # Where DEFAULT is either `yes' or `no'. If omitted, it defaults to # `yes'. AC_DEFUN([AC_ENABLE_FAST_INSTALL], [define([AC_ENABLE_FAST_INSTALL_DEFAULT], ifelse($1, no, no, yes))dnl AC_ARG_ENABLE(fast-install, changequote(<<, >>)dnl << --enable-fast-install[=PKGS] optimize for fast installation [default=>>AC_ENABLE_FAST_INSTALL_DEFAULT], changequote([, ])dnl [p=${PACKAGE-default} case $enableval in yes) enable_fast_install=yes ;; no) enable_fast_install=no ;; *) enable_fast_install=no # Look at the argument we got. We use all the common list separators. IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:," for pkg in $enableval; do if test "X$pkg" = "X$p"; then enable_fast_install=yes fi done IFS="$ac_save_ifs" ;; esac], enable_fast_install=AC_ENABLE_FAST_INSTALL_DEFAULT)dnl ]) # AC_DISABLE_FAST_INSTALL - set the default to --disable-fast-install AC_DEFUN([AC_DISABLE_FAST_INSTALL], [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl AC_ENABLE_FAST_INSTALL(no)]) # AC_LIBTOOL_PICMODE - implement the --with-pic flag # Usage: AC_LIBTOOL_PICMODE[(MODE)] # Where MODE is either `yes' or `no'. If omitted, it defaults to # `both'. AC_DEFUN([AC_LIBTOOL_PICMODE], [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl pic_mode=ifelse($#,1,$1,default)]) # AC_PATH_TOOL_PREFIX - find a file program which can recognise shared library AC_DEFUN([AC_PATH_TOOL_PREFIX], [AC_MSG_CHECKING([for $1]) AC_CACHE_VAL(lt_cv_path_MAGIC_CMD, [case $MAGIC_CMD in /*) lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. ;; ?:/*) lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a dos path. ;; *) ac_save_MAGIC_CMD="$MAGIC_CMD" IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" dnl $ac_dummy forces splitting on constant user-supplied paths. dnl POSIX.2 word splitting is done only on the output of word expansions, dnl not every word. This closes a longstanding sh security hole. ac_dummy="ifelse([$2], , $PATH, [$2])" for ac_dir in $ac_dummy; do test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/$1; then lt_cv_path_MAGIC_CMD="$ac_dir/$1" if test -n "$file_magic_test_file"; then case $deplibs_check_method in "file_magic "*) file_magic_regex="`expr \"$deplibs_check_method\" : \"file_magic \(.*\)\"`" MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | egrep "$file_magic_regex" > /dev/null; then : else cat <&2 *** Warning: the command libtool uses to detect shared libraries, *** $file_magic_cmd, produces output that libtool cannot recognize. *** The result is that libtool may fail to recognize shared libraries *** as such. This will affect the creation of libtool libraries that *** depend on shared libraries, but programs linked with such libtool *** libraries will work regardless of this problem. Nevertheless, you *** may want to report the problem to your system manager and/or to *** bug-libtool@gnu.org EOF fi ;; esac fi break fi done IFS="$ac_save_ifs" MAGIC_CMD="$ac_save_MAGIC_CMD" ;; esac]) MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if test -n "$MAGIC_CMD"; then AC_MSG_RESULT($MAGIC_CMD) else AC_MSG_RESULT(no) fi ]) # AC_PATH_MAGIC - find a file program which can recognise a shared library AC_DEFUN([AC_PATH_MAGIC], [AC_REQUIRE([AC_CHECK_TOOL_PREFIX])dnl AC_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin:$PATH) if test -z "$lt_cv_path_MAGIC_CMD"; then if test -n "$ac_tool_prefix"; then AC_PATH_TOOL_PREFIX(file, /usr/bin:$PATH) else MAGIC_CMD=: fi fi ]) # AC_PROG_LD - find the path to the GNU or non-GNU linker AC_DEFUN([AC_PROG_LD], [AC_ARG_WITH(gnu-ld, [ --with-gnu-ld assume the C compiler uses GNU ld [default=no]], test "$withval" = no || with_gnu_ld=yes, with_gnu_ld=no) AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_CANONICAL_BUILD])dnl AC_REQUIRE([_LT_AC_LIBTOOL_SYS_PATH_SEPARATOR])dnl ac_prog=ld if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. AC_MSG_CHECKING([for ld used by GCC]) case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; *) ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; esac case $ac_prog in # Accept absolute paths. [[\\/]]* | [[A-Za-z]]:[[\\/]]*) re_direlt='/[[^/]][[^/]]*/\.\./' # Canonicalize the path of ld ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'` while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"` done test -z "$LD" && LD="$ac_prog" ;; "") # If it fails, then pretend we aren't using GCC. ac_prog=ld ;; *) # If it is relative, then search for the first ld in PATH. with_gnu_ld=unknown ;; esac elif test "$with_gnu_ld" = yes; then AC_MSG_CHECKING([for GNU ld]) else AC_MSG_CHECKING([for non-GNU ld]) fi AC_CACHE_VAL(lt_cv_path_LD, [if test -z "$LD"; then IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then lt_cv_path_LD="$ac_dir/$ac_prog" # Check to see if the program is GNU ld. I'd rather use --version, # but apparently some GNU ld's only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. if "$lt_cv_path_LD" -v 2>&1 < /dev/null | egrep '(GNU|with BFD)' > /dev/null; then test "$with_gnu_ld" != no && break else test "$with_gnu_ld" != yes && break fi fi done IFS="$ac_save_ifs" else lt_cv_path_LD="$LD" # Let the user override the test with a path. fi]) LD="$lt_cv_path_LD" if test -n "$LD"; then AC_MSG_RESULT($LD) else AC_MSG_RESULT(no) fi test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH]) AC_PROG_LD_GNU ]) # AC_PROG_LD_GNU - AC_DEFUN([AC_PROG_LD_GNU], [AC_CACHE_CHECK([if the linker ($LD) is GNU ld], lt_cv_prog_gnu_ld, [# I'd rather use --version here, but apparently some GNU ld's only accept -v. if $LD -v 2>&1 &5; then lt_cv_prog_gnu_ld=yes else lt_cv_prog_gnu_ld=no fi]) with_gnu_ld=$lt_cv_prog_gnu_ld ]) # AC_PROG_LD_RELOAD_FLAG - find reload flag for linker # -- PORTME Some linkers may need a different reload flag. AC_DEFUN([AC_PROG_LD_RELOAD_FLAG], [AC_CACHE_CHECK([for $LD option to reload object files], lt_cv_ld_reload_flag, [lt_cv_ld_reload_flag='-r']) reload_flag=$lt_cv_ld_reload_flag test -n "$reload_flag" && reload_flag=" $reload_flag" ]) # AC_DEPLIBS_CHECK_METHOD - how to check for library dependencies # -- PORTME fill in with the dynamic library characteristics AC_DEFUN([AC_DEPLIBS_CHECK_METHOD], [AC_CACHE_CHECK([how to recognise dependent libraries], lt_cv_deplibs_check_method, [lt_cv_file_magic_cmd='$MAGIC_CMD' lt_cv_file_magic_test_file= lt_cv_deplibs_check_method='unknown' # Need to set the preceding variable on all platforms that support # interlibrary dependencies. # 'none' -- dependencies not supported. # `unknown' -- same as none, but documents that we really don't know. # 'pass_all' -- all dependencies passed with no checks. # 'test_compile' -- check by making test program. # 'file_magic [[regex]]' -- check by looking for files in library path # which responds to the $file_magic_cmd with a given egrep regex. # If you have `file' or equivalent on your system and you're not sure # whether `pass_all' will *always* work, you probably want this one. case $host_os in aix4* | aix5*) lt_cv_deplibs_check_method=pass_all ;; beos*) lt_cv_deplibs_check_method=pass_all ;; bsdi4*) lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib)' lt_cv_file_magic_cmd='/usr/bin/file -L' lt_cv_file_magic_test_file=/shlib/libc.so ;; cygwin* | mingw* | pw32*) lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' lt_cv_file_magic_cmd='$OBJDUMP -f' ;; darwin* | rhapsody*) lt_cv_deplibs_check_method='file_magic Mach-O dynamically linked shared library' lt_cv_file_magic_cmd='/usr/bin/file -L' case "$host_os" in rhapsody* | darwin1.[[012]]) lt_cv_file_magic_test_file=`echo /System/Library/Frameworks/System.framework/Versions/*/System | head -1` ;; *) # Darwin 1.3 on lt_cv_file_magic_test_file='/usr/lib/libSystem.dylib' ;; esac ;; freebsd*) if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then case $host_cpu in i*86 ) # Not sure whether the presence of OpenBSD here was a mistake. # Let's accept both of them until this is cleared up. lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD)/i[[3-9]]86 (compact )?demand paged shared library' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` ;; esac else lt_cv_deplibs_check_method=pass_all fi ;; gnu*) lt_cv_deplibs_check_method=pass_all ;; hpux10.20*|hpux11*) lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]].[[0-9]]) shared library' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=/usr/lib/libc.sl ;; irix5* | irix6* | nonstopux*) case $LD in *-32|*"-32 ") libmagic=32-bit;; *-n32|*"-n32 ") libmagic=N32;; *-64|*"-64 ") libmagic=64-bit;; *) libmagic=never-match;; esac lt_cv_deplibs_check_method=pass_all ;; # This must be Linux ELF. linux-gnu*) lt_cv_deplibs_check_method=pass_all ;; netbsd*) if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then lt_cv_deplibs_check_method='match_pattern /lib[[^/\.]]+\.so\.[[0-9]]+\.[[0-9]]+$' else lt_cv_deplibs_check_method='match_pattern /lib[[^/\.]]+\.so$' fi ;; newos6*) lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=/usr/lib/libnls.so ;; openbsd*) lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB shared object' else lt_cv_deplibs_check_method='file_magic OpenBSD.* shared library' fi ;; osf3* | osf4* | osf5*) lt_cv_deplibs_check_method=pass_all ;; sco3.2v5*) lt_cv_deplibs_check_method=pass_all ;; solaris*) lt_cv_deplibs_check_method=pass_all ;; sysv5uw[[78]]* | sysv4*uw2*) lt_cv_deplibs_check_method=pass_all ;; sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) case $host_vendor in motorola) lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib) M[[0-9]][[0-9]]* Version [[0-9]]' lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` ;; ncr) lt_cv_deplibs_check_method=pass_all ;; sequent) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )' ;; sni) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method="file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB dynamic lib" lt_cv_file_magic_test_file=/lib/libc.so ;; siemens) lt_cv_deplibs_check_method=pass_all ;; esac ;; esac ]) file_magic_cmd=$lt_cv_file_magic_cmd deplibs_check_method=$lt_cv_deplibs_check_method ]) # AC_PROG_NM - find the path to a BSD-compatible name lister AC_DEFUN([AC_PROG_NM], [AC_REQUIRE([_LT_AC_LIBTOOL_SYS_PATH_SEPARATOR])dnl AC_MSG_CHECKING([for BSD-compatible nm]) AC_CACHE_VAL(lt_cv_path_NM, [if test -n "$NM"; then # Let the user override the test. lt_cv_path_NM="$NM" else IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH /usr/ccs/bin /usr/ucb /bin; do test -z "$ac_dir" && ac_dir=. tmp_nm=$ac_dir/${ac_tool_prefix}nm if test -f $tmp_nm || test -f $tmp_nm$ac_exeext ; then # Check to see if the nm accepts a BSD-compat flag. # Adding the `sed 1q' prevents false positives on HP-UX, which says: # nm: unknown option "B" ignored # Tru64's nm complains that /dev/null is an invalid object file if ($tmp_nm -B /dev/null 2>&1 | sed '1q'; exit 0) | egrep '(/dev/null|Invalid file or object type)' >/dev/null; then lt_cv_path_NM="$tmp_nm -B" break elif ($tmp_nm -p /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then lt_cv_path_NM="$tmp_nm -p" break else lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but continue # so that we can try to find one that supports BSD flags fi fi done IFS="$ac_save_ifs" test -z "$lt_cv_path_NM" && lt_cv_path_NM=nm fi]) NM="$lt_cv_path_NM" AC_MSG_RESULT([$NM]) ]) # AC_CHECK_LIBM - check for math library AC_DEFUN([AC_CHECK_LIBM], [AC_REQUIRE([AC_CANONICAL_HOST])dnl LIBM= case $host in *-*-beos* | *-*-cygwin* | *-*-pw32*) # These system don't have libm ;; *-ncr-sysv4.3*) AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw") AC_CHECK_LIB(m, main, LIBM="$LIBM -lm") ;; *) AC_CHECK_LIB(m, main, LIBM="-lm") ;; esac ]) # AC_LIBLTDL_CONVENIENCE[(dir)] - sets LIBLTDL to the link flags for # the libltdl convenience library and LTDLINCL to the include flags for # the libltdl header and adds --enable-ltdl-convenience to the # configure arguments. Note that LIBLTDL and LTDLINCL are not # AC_SUBSTed, nor is AC_CONFIG_SUBDIRS called. If DIR is not # provided, it is assumed to be `libltdl'. LIBLTDL will be prefixed # with '${top_builddir}/' and LTDLINCL will be prefixed with # '${top_srcdir}/' (note the single quotes!). If your package is not # flat and you're not using automake, define top_builddir and # top_srcdir appropriately in the Makefiles. AC_DEFUN([AC_LIBLTDL_CONVENIENCE], [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl case $enable_ltdl_convenience in no) AC_MSG_ERROR([this package needs a convenience libltdl]) ;; "") enable_ltdl_convenience=yes ac_configure_args="$ac_configure_args --enable-ltdl-convenience" ;; esac LIBLTDL='${top_builddir}/'ifelse($#,1,[$1],['libltdl'])/libltdlc.la LTDLINCL='-I${top_srcdir}/'ifelse($#,1,[$1],['libltdl']) # For backwards non-gettext consistent compatibility... INCLTDL="$LTDLINCL" ]) # AC_LIBLTDL_INSTALLABLE[(dir)] - sets LIBLTDL to the link flags for # the libltdl installable library and LTDLINCL to the include flags for # the libltdl header and adds --enable-ltdl-install to the configure # arguments. Note that LIBLTDL and LTDLINCL are not AC_SUBSTed, nor is # AC_CONFIG_SUBDIRS called. If DIR is not provided and an installed # libltdl is not found, it is assumed to be `libltdl'. LIBLTDL will # be prefixed with '${top_builddir}/' and LTDLINCL will be prefixed # with '${top_srcdir}/' (note the single quotes!). If your package is # not flat and you're not using automake, define top_builddir and # top_srcdir appropriately in the Makefiles. # In the future, this macro may have to be called after AC_PROG_LIBTOOL. AC_DEFUN([AC_LIBLTDL_INSTALLABLE], [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl AC_CHECK_LIB(ltdl, main, [test x"$enable_ltdl_install" != xyes && enable_ltdl_install=no], [if test x"$enable_ltdl_install" = xno; then AC_MSG_WARN([libltdl not installed, but installation disabled]) else enable_ltdl_install=yes fi ]) if test x"$enable_ltdl_install" = x"yes"; then ac_configure_args="$ac_configure_args --enable-ltdl-install" LIBLTDL='${top_builddir}/'ifelse($#,1,[$1],['libltdl'])/libltdl.la LTDLINCL='-I${top_srcdir}/'ifelse($#,1,[$1],['libltdl']) else ac_configure_args="$ac_configure_args --enable-ltdl-install=no" LIBLTDL="-lltdl" LTDLINCL= fi # For backwards non-gettext consistent compatibility... INCLTDL="$LTDLINCL" ]) # old names AC_DEFUN([AM_PROG_LIBTOOL], [AC_PROG_LIBTOOL]) AC_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)]) AC_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)]) AC_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)]) AC_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)]) AC_DEFUN([AM_PROG_LD], [AC_PROG_LD]) AC_DEFUN([AM_PROG_NM], [AC_PROG_NM]) # This is just to silence aclocal about the macro not being used ifelse([AC_DISABLE_FAST_INSTALL]) ############################################################ # NOTE: This macro has been submitted for inclusion into # # GNU Autoconf as AC_PROG_SED. When it is available in # # a released version of Autoconf we should remove this # # macro and use it instead. # ############################################################ # LT_AC_PROG_SED # -------------- # Check for a fully-functional sed program, that truncates # as few characters as possible. Prefer GNU sed if found. AC_DEFUN([LT_AC_PROG_SED], [AC_MSG_CHECKING([for a sed that does not truncate output]) AC_CACHE_VAL(lt_cv_path_SED, [# Loop through the user's path and test for sed and gsed. # Then use that list of sed's as ones to test for truncation. as_executable_p="test -f" as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in sed gsed; do for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then _sed_list="$_sed_list $as_dir/$ac_prog$ac_exec_ext" fi done done done # Create a temporary directory, and hook for its removal unless debugging. $debug || { trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0 trap '{ (exit 1); exit 1; }' 1 2 13 15 } # Create a (secure) tmp directory for tmp files. : ${TMPDIR=/tmp} { tmp=`(umask 077 && mktemp -d -q "$TMPDIR/sedXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" } || { tmp=$TMPDIR/sed$$-$RANDOM (umask 077 && mkdir $tmp) } || { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 { (exit 1); exit 1; } } _max=0 _count=0 # Add /usr/xpg4/bin/sed as it is typically found on Solaris # along with /bin/sed that truncates output. for _sed in $_sed_list /usr/xpg4/bin/sed; do test ! -f ${_sed} && break cat /dev/null > "$tmp/sed.in" _count=0 echo ${ECHO_N-$ac_n} "0123456789${ECHO_C-$ac_c}" >"$tmp/sed.in" # Check for GNU sed and select it if it is found. if "${_sed}" --version 2>&1 < /dev/null | egrep '(GNU)' > /dev/null; then lt_cv_path_SED=${_sed} break fi while true; do cat "$tmp/sed.in" "$tmp/sed.in" >"$tmp/sed.tmp" mv "$tmp/sed.tmp" "$tmp/sed.in" cp "$tmp/sed.in" "$tmp/sed.nl" echo >>"$tmp/sed.nl" ${_sed} -e 's/a$//' < "$tmp/sed.nl" >"$tmp/sed.out" || break cmp -s "$tmp/sed.out" "$tmp/sed.nl" || break # 40000 chars as input seems more than enough test $_count -gt 10 && break _count=`expr $_count + 1` if test $_count -gt $_max; then _max=$_count lt_cv_path_SED=$_sed fi done done rm -rf "$tmp" ]) if test "X$SED" != "X"; then lt_cv_path_SED=$SED else SED=$lt_cv_path_SED fi AC_MSG_RESULT([$SED]) ]) discover-2.1.2/buildtools/distcheck0000755002342100234210000000120410266266026016052 0ustar perepere#! /bin/sh # $Progeny$ # This program is in the public domain. # Too bad we don't have something like sysexits.h for POSIX sh... EX_USAGE=64 usage () { cat <], [char* cs = nl_langinfo(CODESET);], am_cv_langinfo_codeset=yes, am_cv_langinfo_codeset=no) ]) if test $am_cv_langinfo_codeset = yes; then AC_DEFINE(HAVE_LANGINFO_CODESET, 1, [Define if you have and nl_langinfo(CODESET).]) fi ]) # gettext.m4 serial 14 (gettext-0.11.2) dnl Copyright (C) 1995-2002 Free Software Foundation, Inc. dnl This file is free software, distributed under the terms of the GNU dnl General Public License. As a special exception to the GNU General dnl Public License, this file may be distributed as part of a program dnl that contains a configuration script generated by Autoconf, under dnl the same distribution terms as the rest of that program. dnl dnl This file can can be used in projects which are not available under dnl the GNU General Public License or the GNU Library General Public dnl License but which still want to provide support for the GNU gettext dnl functionality. dnl Please note that the actual code of the GNU gettext library is covered dnl by the GNU Library General Public License, and the rest of the GNU dnl gettext package package is covered by the GNU General Public License. dnl They are *not* in the public domain. dnl Authors: dnl Ulrich Drepper , 1995-2000. dnl Bruno Haible , 2000-2002. dnl Macro to add for using GNU gettext. dnl Usage: AM_GNU_GETTEXT([INTLSYMBOL], [NEEDSYMBOL], [INTLDIR]). dnl INTLSYMBOL can be one of 'external', 'no-libtool', 'use-libtool'. The dnl default (if it is not specified or empty) is 'no-libtool'. dnl INTLSYMBOL should be 'external' for packages with no intl directory, dnl and 'no-libtool' or 'use-libtool' for packages with an intl directory. dnl If INTLSYMBOL is 'use-libtool', then a libtool library dnl $(top_builddir)/intl/libintl.la will be created (shared and/or static, dnl depending on --{enable,disable}-{shared,static} and on the presence of dnl AM-DISABLE-SHARED). If INTLSYMBOL is 'no-libtool', a static library dnl $(top_builddir)/intl/libintl.a will be created. dnl If NEEDSYMBOL is specified and is 'need-ngettext', then GNU gettext dnl implementations (in libc or libintl) without the ngettext() function dnl will be ignored. dnl INTLDIR is used to find the intl libraries. If empty, dnl the value `$(top_builddir)/intl/' is used. dnl dnl The result of the configuration is one of three cases: dnl 1) GNU gettext, as included in the intl subdirectory, will be compiled dnl and used. dnl Catalog format: GNU --> install in $(datadir) dnl Catalog extension: .mo after installation, .gmo in source tree dnl 2) GNU gettext has been found in the system's C library. dnl Catalog format: GNU --> install in $(datadir) dnl Catalog extension: .mo after installation, .gmo in source tree dnl 3) No internationalization, always use English msgid. dnl Catalog format: none dnl Catalog extension: none dnl If INTLSYMBOL is 'external', only cases 2 and 3 can occur. dnl The use of .gmo is historical (it was needed to avoid overwriting the dnl GNU format catalogs when building on a platform with an X/Open gettext), dnl but we keep it in order not to force irrelevant filename changes on the dnl maintainers. dnl AC_DEFUN([AM_GNU_GETTEXT], [ dnl Argument checking. ifelse([$1], [], , [ifelse([$1], [external], , [ifelse([$1], [no-libtool], , [ifelse([$1], [use-libtool], , [errprint([ERROR: invalid first argument to AM_GNU_GETTEXT ])])])])]) ifelse([$2], [], , [ifelse([$2], [need-ngettext], , [errprint([ERROR: invalid second argument to AM_GNU_GETTEXT ])])]) define(gt_included_intl, ifelse([$1], [external], [no], [yes])) define(gt_libtool_suffix_prefix, ifelse([$1], [use-libtool], [l], [])) AC_REQUIRE([AM_PO_SUBDIRS])dnl ifelse(gt_included_intl, yes, [ AC_REQUIRE([AM_INTL_SUBDIR])dnl ]) dnl Prerequisites of AC_LIB_LINKFLAGS_BODY. AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) AC_REQUIRE([AC_LIB_RPATH]) AC_MSG_CHECKING([whether NLS is requested]) dnl Default is enabled NLS AC_ARG_ENABLE(nls, [ --disable-nls do not use Native Language Support], USE_NLS=$enableval, USE_NLS=yes) AC_MSG_RESULT($USE_NLS) AC_SUBST(USE_NLS) ifelse(gt_included_intl, yes, [ BUILD_INCLUDED_LIBINTL=no USE_INCLUDED_LIBINTL=no ]) LIBINTL= LTLIBINTL= POSUB= dnl If we use NLS figure out what method if test "$USE_NLS" = "yes"; then gt_use_preinstalled_gnugettext=no ifelse(gt_included_intl, yes, [ AC_MSG_CHECKING([whether included gettext is requested]) AC_ARG_WITH(included-gettext, [ --with-included-gettext use the GNU gettext library included here], nls_cv_force_use_gnu_gettext=$withval, nls_cv_force_use_gnu_gettext=no) AC_MSG_RESULT($nls_cv_force_use_gnu_gettext) nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext" if test "$nls_cv_force_use_gnu_gettext" != "yes"; then ]) dnl User does not insist on using GNU NLS library. Figure out what dnl to use. If GNU gettext is available we use this. Else we have dnl to fall back to GNU NLS library. dnl Add a version number to the cache macros. define([gt_api_version], ifelse([$2], [need-ngettext], 2, 1)) define([gt_cv_func_gnugettext_libc], [gt_cv_func_gnugettext]gt_api_version[_libc]) define([gt_cv_func_gnugettext_libintl], [gt_cv_func_gnugettext]gt_api_version[_libintl]) AC_CACHE_CHECK([for GNU gettext in libc], gt_cv_func_gnugettext_libc, [AC_TRY_LINK([#include extern int _nl_msg_cat_cntr; extern int *_nl_domain_bindings;], [bindtextdomain ("", ""); return (int) gettext ("")]ifelse([$2], [need-ngettext], [ + (int) ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr + *_nl_domain_bindings], gt_cv_func_gnugettext_libc=yes, gt_cv_func_gnugettext_libc=no)]) if test "$gt_cv_func_gnugettext_libc" != "yes"; then dnl Sometimes libintl requires libiconv, so first search for libiconv. ifelse(gt_included_intl, yes, , [ AM_ICONV_LINK ]) dnl Search for libintl and define LIBINTL, LTLIBINTL and INCINTL dnl accordingly. Don't use AC_LIB_LINKFLAGS_BODY([intl],[iconv]) dnl because that would add "-liconv" to LIBINTL and LTLIBINTL dnl even if libiconv doesn't exist. AC_LIB_LINKFLAGS_BODY([intl]) AC_CACHE_CHECK([for GNU gettext in libintl], gt_cv_func_gnugettext_libintl, [gt_save_CPPFLAGS="$CPPFLAGS" CPPFLAGS="$CPPFLAGS $INCINTL" gt_save_LIBS="$LIBS" LIBS="$LIBS $LIBINTL" dnl Now see whether libintl exists and does not depend on libiconv. AC_TRY_LINK([#include extern int _nl_msg_cat_cntr; extern #ifdef __cplusplus "C" #endif const char *_nl_expand_alias ();], [bindtextdomain ("", ""); return (int) gettext ("")]ifelse([$2], [need-ngettext], [ + (int) ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr + *_nl_expand_alias (0)], gt_cv_func_gnugettext_libintl=yes, gt_cv_func_gnugettext_libintl=no) dnl Now see whether libintl exists and depends on libiconv. if test "$gt_cv_func_gnugettext_libintl" != yes && test -n "$LIBICONV"; then LIBS="$LIBS $LIBICONV" AC_TRY_LINK([#include extern int _nl_msg_cat_cntr; extern #ifdef __cplusplus "C" #endif const char *_nl_expand_alias ();], [bindtextdomain ("", ""); return (int) gettext ("")]ifelse([$2], [need-ngettext], [ + (int) ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr + *_nl_expand_alias (0)], [LIBINTL="$LIBINTL $LIBICONV" LTLIBINTL="$LTLIBINTL $LTLIBICONV" gt_cv_func_gnugettext_libintl=yes ]) fi CPPFLAGS="$gt_save_CPPFLAGS" LIBS="$gt_save_LIBS"]) fi dnl If an already present or preinstalled GNU gettext() is found, dnl use it. But if this macro is used in GNU gettext, and GNU dnl gettext is already preinstalled in libintl, we update this dnl libintl. (Cf. the install rule in intl/Makefile.in.) if test "$gt_cv_func_gnugettext_libc" = "yes" \ || { test "$gt_cv_func_gnugettext_libintl" = "yes" \ && test "$PACKAGE" != gettext; }; then gt_use_preinstalled_gnugettext=yes else dnl Reset the values set by searching for libintl. LIBINTL= LTLIBINTL= INCINTL= fi ifelse(gt_included_intl, yes, [ if test "$gt_use_preinstalled_gnugettext" != "yes"; then dnl GNU gettext is not found in the C library. dnl Fall back on included GNU gettext library. nls_cv_use_gnu_gettext=yes fi fi if test "$nls_cv_use_gnu_gettext" = "yes"; then dnl Mark actions used to generate GNU NLS library. INTLOBJS="\$(GETTOBJS)" BUILD_INCLUDED_LIBINTL=yes USE_INCLUDED_LIBINTL=yes LIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LIBICONV" LTLIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LTLIBICONV" LIBS=`echo " $LIBS " | sed -e 's/ -lintl / /' -e 's/^ //' -e 's/ $//'` fi if test "$gt_use_preinstalled_gnugettext" = "yes" \ || test "$nls_cv_use_gnu_gettext" = "yes"; then dnl Mark actions to use GNU gettext tools. CATOBJEXT=.gmo fi ]) if test "$gt_use_preinstalled_gnugettext" = "yes" \ || test "$nls_cv_use_gnu_gettext" = "yes"; then AC_DEFINE(ENABLE_NLS, 1, [Define to 1 if translation of program messages to the user's native language is requested.]) else USE_NLS=no fi fi if test "$USE_NLS" = "yes"; then if test "$gt_use_preinstalled_gnugettext" = "yes"; then if test "$gt_cv_func_gnugettext_libintl" = "yes"; then AC_MSG_CHECKING([how to link with libintl]) AC_MSG_RESULT([$LIBINTL]) AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCINTL]) fi dnl For backward compatibility. Some packages may be using this. AC_DEFINE(HAVE_GETTEXT, 1, [Define if the GNU gettext() function is already present or preinstalled.]) AC_DEFINE(HAVE_DCGETTEXT, 1, [Define if the GNU dcgettext() function is already present or preinstalled.]) fi dnl We need to process the po/ directory. POSUB=po fi ifelse(gt_included_intl, yes, [ dnl If this is used in GNU gettext we have to set BUILD_INCLUDED_LIBINTL dnl to 'yes' because some of the testsuite requires it. if test "$PACKAGE" = gettext; then BUILD_INCLUDED_LIBINTL=yes fi dnl Make all variables we use known to autoconf. AC_SUBST(BUILD_INCLUDED_LIBINTL) AC_SUBST(USE_INCLUDED_LIBINTL) AC_SUBST(CATOBJEXT) AC_SUBST(INTLOBJS) dnl For backward compatibility. Some configure.ins may be using this. nls_cv_header_intl= nls_cv_header_libgt= dnl For backward compatibility. Some Makefiles may be using this. DATADIRNAME=share AC_SUBST(DATADIRNAME) dnl For backward compatibility. Some Makefiles may be using this. INSTOBJEXT=.mo AC_SUBST(INSTOBJEXT) dnl For backward compatibility. Some Makefiles may be using this. GENCAT=gencat AC_SUBST(GENCAT) dnl Enable libtool support if the surrounding package wishes it. INTL_LIBTOOL_SUFFIX_PREFIX=gt_libtool_suffix_prefix AC_SUBST(INTL_LIBTOOL_SUFFIX_PREFIX) ]) dnl For backward compatibility. Some Makefiles may be using this. INTLLIBS="$LIBINTL" AC_SUBST(INTLLIBS) dnl Make all documented variables known to autoconf. AC_SUBST(LIBINTL) AC_SUBST(LTLIBINTL) AC_SUBST(POSUB) ]) dnl Checks for all prerequisites of the po subdirectory, dnl except for USE_NLS. AC_DEFUN([AM_PO_SUBDIRS], [ AC_REQUIRE([AC_PROG_MAKE_SET])dnl AC_REQUIRE([AC_PROG_INSTALL])dnl AC_REQUIRE([AM_MKINSTALLDIRS])dnl dnl Perform the following tests also if --disable-nls has been given, dnl because they are needed for "make dist" to work. dnl Search for GNU msgfmt in the PATH. dnl The first test excludes Solaris msgfmt and early GNU msgfmt versions. dnl The second test excludes FreeBSD msgfmt. AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt, [$ac_dir/$ac_word --statistics /dev/null >/dev/null 2>&1 && (if $ac_dir/$ac_word --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)], :) AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT) dnl Search for GNU xgettext 0.11 or newer in the PATH. dnl The first test excludes Solaris xgettext and early GNU xgettext versions. dnl The second test excludes FreeBSD xgettext. AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext, [$ac_dir/$ac_word --omit-header --copyright-holder= /dev/null >/dev/null 2>&1 && (if $ac_dir/$ac_word --omit-header --copyright-holder= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)], :) dnl Remove leftover from FreeBSD xgettext call. rm -f messages.po dnl Search for GNU msgmerge 0.11 or newer in the PATH. AM_PATH_PROG_WITH_TEST(MSGMERGE, msgmerge, [$ac_dir/$ac_word --update -q /dev/null /dev/null >/dev/null 2>&1], :) dnl This could go away some day; the PATH_PROG_WITH_TEST already does it. dnl Test whether we really found GNU msgfmt. if test "$GMSGFMT" != ":"; then dnl If it is no GNU msgfmt we define it as : so that the dnl Makefiles still can work. if $GMSGFMT --statistics /dev/null >/dev/null 2>&1 && (if $GMSGFMT --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then : ; else GMSGFMT=`echo "$GMSGFMT" | sed -e 's,^.*/,,'` AC_MSG_RESULT( [found $GMSGFMT program is not GNU msgfmt; ignore it]) GMSGFMT=":" fi fi dnl This could go away some day; the PATH_PROG_WITH_TEST already does it. dnl Test whether we really found GNU xgettext. if test "$XGETTEXT" != ":"; then dnl If it is no GNU xgettext we define it as : so that the dnl Makefiles still can work. if $XGETTEXT --omit-header --copyright-holder= /dev/null >/dev/null 2>&1 && (if $XGETTEXT --omit-header --copyright-holder= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then : ; else AC_MSG_RESULT( [found xgettext program is not GNU xgettext; ignore it]) XGETTEXT=":" fi dnl Remove leftover from FreeBSD xgettext call. rm -f messages.po fi AC_OUTPUT_COMMANDS([ for ac_file in $CONFIG_FILES; do # Support "outfile[:infile[:infile...]]" case "$ac_file" in *:*) ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; esac # PO directories have a Makefile.in generated from Makefile.in.in. case "$ac_file" in */Makefile.in) # Adjust a relative srcdir. ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'` ac_dir_suffix="/`echo "$ac_dir"|sed 's%^\./%%'`" ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'` # In autoconf-2.13 it is called $ac_given_srcdir. # In autoconf-2.50 it is called $srcdir. test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir" case "$ac_given_srcdir" in .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;; /*) top_srcdir="$ac_given_srcdir" ;; *) top_srcdir="$ac_dots$ac_given_srcdir" ;; esac if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then rm -f "$ac_dir/POTFILES" test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || echo "creating $ac_dir/POTFILES" cat "$ac_given_srcdir/$ac_dir/POTFILES.in" | sed -e "/^#/d" -e "/^[ ]*\$/d" -e "s,.*, $top_srcdir/& \\\\," | sed -e "\$s/\(.*\) \\\\/\1/" > "$ac_dir/POTFILES" # ALL_LINGUAS, POFILES, GMOFILES, UPDATEPOFILES, DUMMYPOFILES depend # on $ac_dir but don't depend on user-specified configuration # parameters. if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then # The LINGUAS file contains the set of available languages. if test -n "$ALL_LINGUAS"; then test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.in is obsolete" || echo "setting ALL_LINGUAS in configure.in is obsolete" fi ALL_LINGUAS_=`sed -e "/^#/d" "$ac_given_srcdir/$ac_dir/LINGUAS"` # Hide the ALL_LINGUAS assigment from automake. eval 'ALL_LINGUAS''=$ALL_LINGUAS_' fi case "$ac_given_srcdir" in .) srcdirpre= ;; *) srcdirpre='$(srcdir)/' ;; esac POFILES= GMOFILES= UPDATEPOFILES= DUMMYPOFILES= for lang in $ALL_LINGUAS; do POFILES="$POFILES $srcdirpre$lang.po" GMOFILES="$GMOFILES $srcdirpre$lang.gmo" UPDATEPOFILES="$UPDATEPOFILES $lang.po-update" DUMMYPOFILES="$DUMMYPOFILES $lang.nop" done # CATALOGS depends on both $ac_dir and the user's LINGUAS # environment variable. INST_LINGUAS= if test -n "$ALL_LINGUAS"; then for presentlang in $ALL_LINGUAS; do useit=no if test "%UNSET%" != "$LINGUAS"; then desiredlanguages="$LINGUAS" else desiredlanguages="$ALL_LINGUAS" fi for desiredlang in $desiredlanguages; do # Use the presentlang catalog if desiredlang is # a. equal to presentlang, or # b. a variant of presentlang (because in this case, # presentlang can be used as a fallback for messages # which are not translated in the desiredlang catalog). case "$desiredlang" in "$presentlang"*) useit=yes;; esac done if test $useit = yes; then INST_LINGUAS="$INST_LINGUAS $presentlang" fi done fi CATALOGS= if test -n "$INST_LINGUAS"; then for lang in $INST_LINGUAS; do CATALOGS="$CATALOGS $lang.gmo" done fi test -n "$as_me" && echo "$as_me: creating $ac_dir/Makefile" || echo "creating $ac_dir/Makefile" sed -e "/^POTFILES =/r $ac_dir/POTFILES" -e "/^# Makevars/r $ac_given_srcdir/$ac_dir/Makevars" -e "s|@POFILES@|$POFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" "$ac_dir/Makefile.in" > "$ac_dir/Makefile" for f in "$ac_given_srcdir/$ac_dir"/Rules-*; do if test -f "$f"; then case "$f" in *.orig | *.bak | *~) ;; *) cat "$f" >> "$ac_dir/Makefile" ;; esac fi done fi ;; esac done], [# Capture the value of obsolete $ALL_LINGUAS because we need it to compute # POFILES, GMOFILES, UPDATEPOFILES, DUMMYPOFILES, CATALOGS. But hide it # from automake. eval 'ALL_LINGUAS''="$ALL_LINGUAS"' # Capture the value of LINGUAS because we need it to compute CATALOGS. LINGUAS="${LINGUAS-%UNSET%}" ]) ]) dnl Checks for all prerequisites of the intl subdirectory, dnl except for INTL_LIBTOOL_SUFFIX_PREFIX (and possibly LIBTOOL), INTLOBJS, dnl USE_INCLUDED_LIBINTL, BUILD_INCLUDED_LIBINTL. AC_DEFUN([AM_INTL_SUBDIR], [ AC_REQUIRE([AC_PROG_INSTALL])dnl AC_REQUIRE([AM_MKINSTALLDIRS])dnl AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_PROG_RANLIB])dnl AC_REQUIRE([AC_ISC_POSIX])dnl AC_REQUIRE([AC_HEADER_STDC])dnl AC_REQUIRE([AC_C_CONST])dnl AC_REQUIRE([AC_C_INLINE])dnl AC_REQUIRE([AC_TYPE_OFF_T])dnl AC_REQUIRE([AC_TYPE_SIZE_T])dnl AC_REQUIRE([AC_FUNC_ALLOCA])dnl AC_REQUIRE([AC_FUNC_MMAP])dnl AC_REQUIRE([jm_GLIBC21])dnl AC_CHECK_HEADERS([argz.h limits.h locale.h nl_types.h malloc.h stddef.h \ stdlib.h string.h unistd.h sys/param.h]) AC_CHECK_FUNCS([feof_unlocked fgets_unlocked getc_unlocked getcwd getegid \ geteuid getgid getuid mempcpy munmap putenv setenv setlocale stpcpy \ strcasecmp strdup strtoul tsearch __argz_count __argz_stringify __argz_next]) AM_ICONV AM_LANGINFO_CODESET AM_LC_MESSAGES dnl intl/plural.c is generated from intl/plural.y. It requires bison, dnl because plural.y uses bison specific features. It requires at least dnl bison-1.26 because earlier versions generate a plural.c that doesn't dnl compile. dnl bison is only needed for the maintainer (who touches plural.y). But in dnl order to avoid separate Makefiles or --enable-maintainer-mode, we put dnl the rule in general Makefile. Now, some people carelessly touch the dnl files or have a broken "make" program, hence the plural.c rule will dnl sometimes fire. To avoid an error, defines BISON to ":" if it is not dnl present or too old. AC_CHECK_PROGS([INTLBISON], [bison]) if test -z "$INTLBISON"; then ac_verc_fail=yes else dnl Found it, now check the version. AC_MSG_CHECKING([version of bison]) changequote(<<,>>)dnl ac_prog_version=`$INTLBISON --version 2>&1 | sed -n 's/^.*GNU Bison.* \([0-9]*\.[0-9.]*\).*$/\1/p'` case $ac_prog_version in '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;; 1.2[6-9]* | 1.[3-9][0-9]* | [2-9].*) changequote([,])dnl ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;; *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;; esac AC_MSG_RESULT([$ac_prog_version]) fi if test $ac_verc_fail = yes; then INTLBISON=: fi ]) AC_DEFUN([AM_MKINSTALLDIRS], [ dnl If the AC_CONFIG_AUX_DIR macro for autoconf is used we possibly dnl find the mkinstalldirs script in another subdir but $(top_srcdir). dnl Try to locate is. MKINSTALLDIRS= if test -n "$ac_aux_dir"; then MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs" fi if test -z "$MKINSTALLDIRS"; then MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs" fi AC_SUBST(MKINSTALLDIRS) ]) # glibc21.m4 serial 2 (fileutils-4.1.3, gettext-0.10.40) dnl Copyright (C) 2000-2002 Free Software Foundation, Inc. dnl This file is free software, distributed under the terms of the GNU dnl General Public License. As a special exception to the GNU General dnl Public License, this file may be distributed as part of a program dnl that contains a configuration script generated by Autoconf, under dnl the same distribution terms as the rest of that program. # Test for the GNU C Library, version 2.1 or newer. # From Bruno Haible. AC_DEFUN([jm_GLIBC21], [ AC_CACHE_CHECK(whether we are using the GNU C Library 2.1 or newer, ac_cv_gnu_library_2_1, [AC_EGREP_CPP([Lucky GNU user], [ #include #ifdef __GNU_LIBRARY__ #if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1) || (__GLIBC__ > 2) Lucky GNU user #endif #endif ], ac_cv_gnu_library_2_1=yes, ac_cv_gnu_library_2_1=no) ] ) AC_SUBST(GLIBC21) GLIBC21="$ac_cv_gnu_library_2_1" ] ) # iconv.m4 serial AM3 (gettext-0.11) dnl Copyright (C) 2000-2002 Free Software Foundation, Inc. dnl This file is free software, distributed under the terms of the GNU dnl General Public License. As a special exception to the GNU General dnl Public License, this file may be distributed as part of a program dnl that contains a configuration script generated by Autoconf, under dnl the same distribution terms as the rest of that program. dnl From Bruno Haible. AC_DEFUN([AM_ICONV_LINK], [ dnl Some systems have iconv in libc, some have it in libiconv (OSF/1 and dnl those with the standalone portable GNU libiconv installed). dnl Prerequisites of AC_LIB_LINKFLAGS_BODY. AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) AC_REQUIRE([AC_LIB_RPATH]) dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV dnl accordingly. AC_LIB_LINKFLAGS_BODY([iconv]) dnl Add $INCICONV to CPPFLAGS before performing the following checks, dnl because if the user has installed libiconv and not disabled its use dnl via --without-libiconv-prefix, he wants to use it. The first dnl AC_TRY_LINK will then fail, the second AC_TRY_LINK will succeed. am_save_CPPFLAGS="$CPPFLAGS" AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCICONV]) AC_CACHE_CHECK(for iconv, am_cv_func_iconv, [ am_cv_func_iconv="no, consider installing GNU libiconv" am_cv_lib_iconv=no AC_TRY_LINK([#include #include ], [iconv_t cd = iconv_open("",""); iconv(cd,NULL,NULL,NULL,NULL); iconv_close(cd);], am_cv_func_iconv=yes) if test "$am_cv_func_iconv" != yes; then am_save_LIBS="$LIBS" LIBS="$LIBS $LIBICONV" AC_TRY_LINK([#include #include ], [iconv_t cd = iconv_open("",""); iconv(cd,NULL,NULL,NULL,NULL); iconv_close(cd);], am_cv_lib_iconv=yes am_cv_func_iconv=yes) LIBS="$am_save_LIBS" fi ]) if test "$am_cv_func_iconv" = yes; then AC_DEFINE(HAVE_ICONV, 1, [Define if you have the iconv() function.]) fi if test "$am_cv_lib_iconv" = yes; then AC_MSG_CHECKING([how to link with libiconv]) AC_MSG_RESULT([$LIBICONV]) else dnl If $LIBICONV didn't lead to a usable library, we don't need $INCICONV dnl either. CPPFLAGS="$am_save_CPPFLAGS" LIBICONV= LTLIBICONV= fi AC_SUBST(LIBICONV) AC_SUBST(LTLIBICONV) ]) AC_DEFUN([AM_ICONV], [ AC_REQUIRE([AM_ICONV_LINK]) if test "$am_cv_func_iconv" = yes; then AC_MSG_CHECKING([for iconv declaration]) AC_CACHE_VAL(am_cv_proto_iconv, [ AC_TRY_COMPILE([ #include #include extern #ifdef __cplusplus "C" #endif #if defined(__STDC__) || defined(__cplusplus) size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft); #else size_t iconv(); #endif ], [], am_cv_proto_iconv_arg1="", am_cv_proto_iconv_arg1="const") am_cv_proto_iconv="extern size_t iconv (iconv_t cd, $am_cv_proto_iconv_arg1 char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);"]) am_cv_proto_iconv=`echo "[$]am_cv_proto_iconv" | tr -s ' ' | sed -e 's/( /(/'` AC_MSG_RESULT([$]{ac_t:- }[$]am_cv_proto_iconv) AC_DEFINE_UNQUOTED(ICONV_CONST, $am_cv_proto_iconv_arg1, [Define as const if the declaration of iconv() needs const.]) fi ]) # isc-posix.m4 serial 2 (gettext-0.11.2) dnl Copyright (C) 1995-2002 Free Software Foundation, Inc. dnl This file is free software, distributed under the terms of the GNU dnl General Public License. As a special exception to the GNU General dnl Public License, this file may be distributed as part of a program dnl that contains a configuration script generated by Autoconf, under dnl the same distribution terms as the rest of that program. # This file is not needed with autoconf-2.53 and newer. Remove it in 2005. # This test replaces the one in autoconf. # Currently this macro should have the same name as the autoconf macro # because gettext's gettext.m4 (distributed in the automake package) # still uses it. Otherwise, the use in gettext.m4 makes autoheader # give these diagnostics: # configure.in:556: AC_TRY_COMPILE was called before AC_ISC_POSIX # configure.in:556: AC_TRY_RUN was called before AC_ISC_POSIX undefine([AC_ISC_POSIX]) AC_DEFUN([AC_ISC_POSIX], [ dnl This test replaces the obsolescent AC_ISC_POSIX kludge. AC_CHECK_LIB(cposix, strerror, [LIBS="$LIBS -lcposix"]) ] ) # lcmessage.m4 serial 2 (gettext-0.10.40) dnl Copyright (C) 1995-2002 Free Software Foundation, Inc. dnl This file is free software, distributed under the terms of the GNU dnl General Public License. As a special exception to the GNU General dnl Public License, this file may be distributed as part of a program dnl that contains a configuration script generated by Autoconf, under dnl the same distribution terms as the rest of that program. dnl dnl This file can can be used in projects which are not available under dnl the GNU General Public License or the GNU Library General Public dnl License but which still want to provide support for the GNU gettext dnl functionality. dnl Please note that the actual code of the GNU gettext library is covered dnl by the GNU Library General Public License, and the rest of the GNU dnl gettext package package is covered by the GNU General Public License. dnl They are *not* in the public domain. dnl Authors: dnl Ulrich Drepper , 1995. # Check whether LC_MESSAGES is available in . AC_DEFUN([AM_LC_MESSAGES], [if test $ac_cv_header_locale_h = yes; then AC_CACHE_CHECK([for LC_MESSAGES], am_cv_val_LC_MESSAGES, [AC_TRY_LINK([#include ], [return LC_MESSAGES], am_cv_val_LC_MESSAGES=yes, am_cv_val_LC_MESSAGES=no)]) if test $am_cv_val_LC_MESSAGES = yes; then AC_DEFINE(HAVE_LC_MESSAGES, 1, [Define if your file defines LC_MESSAGES.]) fi fi]) # lib-ld.m4 serial 1 (gettext-0.11) dnl Copyright (C) 1996-2002 Free Software Foundation, Inc. dnl This file is free software, distributed under the terms of the GNU dnl General Public License. As a special exception to the GNU General dnl Public License, this file may be distributed as part of a program dnl that contains a configuration script generated by Autoconf, under dnl the same distribution terms as the rest of that program. dnl Subroutines of libtool.m4, dnl with replacements s/AC_/AC_LIB/ and s/lt_cv/acl_cv/ to avoid collision dnl with libtool.m4. dnl From libtool-1.4. Sets the variable with_gnu_ld to yes or no. AC_DEFUN([AC_LIB_PROG_LD_GNU], [AC_CACHE_CHECK([if the linker ($LD) is GNU ld], acl_cv_prog_gnu_ld, [# I'd rather use --version here, but apparently some GNU ld's only accept -v. if $LD -v 2>&1 &5; then acl_cv_prog_gnu_ld=yes else acl_cv_prog_gnu_ld=no fi]) with_gnu_ld=$acl_cv_prog_gnu_ld ]) dnl From libtool-1.4. Sets the variable LD. AC_DEFUN([AC_LIB_PROG_LD], [AC_ARG_WITH(gnu-ld, [ --with-gnu-ld assume the C compiler uses GNU ld [default=no]], test "$withval" = no || with_gnu_ld=yes, with_gnu_ld=no) AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([AC_CANONICAL_HOST])dnl ac_prog=ld if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. AC_MSG_CHECKING([for ld used by GCC]) case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; *) ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; esac case $ac_prog in # Accept absolute paths. [[\\/]* | [A-Za-z]:[\\/]*)] [re_direlt='/[^/][^/]*/\.\./'] # Canonicalize the path of ld ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'` while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"` done test -z "$LD" && LD="$ac_prog" ;; "") # If it fails, then pretend we aren't using GCC. ac_prog=ld ;; *) # If it is relative, then search for the first ld in PATH. with_gnu_ld=unknown ;; esac elif test "$with_gnu_ld" = yes; then AC_MSG_CHECKING([for GNU ld]) else AC_MSG_CHECKING([for non-GNU ld]) fi AC_CACHE_VAL(acl_cv_path_LD, [if test -z "$LD"; then IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}" for ac_dir in $PATH; do test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then acl_cv_path_LD="$ac_dir/$ac_prog" # Check to see if the program is GNU ld. I'd rather use --version, # but apparently some GNU ld's only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. if "$acl_cv_path_LD" -v 2>&1 < /dev/null | egrep '(GNU|with BFD)' > /dev/null; then test "$with_gnu_ld" != no && break else test "$with_gnu_ld" != yes && break fi fi done IFS="$ac_save_ifs" else acl_cv_path_LD="$LD" # Let the user override the test with a path. fi]) LD="$acl_cv_path_LD" if test -n "$LD"; then AC_MSG_RESULT($LD) else AC_MSG_RESULT(no) fi test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH]) AC_LIB_PROG_LD_GNU ]) # lib-link.m4 serial 2 (gettext-0.11.2) dnl Copyright (C) 2001-2002 Free Software Foundation, Inc. dnl This file is free software, distributed under the terms of the GNU dnl General Public License. As a special exception to the GNU General dnl Public License, this file may be distributed as part of a program dnl that contains a configuration script generated by Autoconf, under dnl the same distribution terms as the rest of that program. dnl From Bruno Haible. dnl AC_LIB_LINKFLAGS(name [, dependencies]) searches for libname and dnl the libraries corresponding to explicit and implicit dependencies. dnl Sets and AC_SUBSTs the LIB${NAME} and LTLIB${NAME} variables and dnl augments the CPPFLAGS variable. AC_DEFUN([AC_LIB_LINKFLAGS], [ AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) AC_REQUIRE([AC_LIB_RPATH]) define([Name],[translit([$1],[./-], [___])]) define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-], [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])]) AC_CACHE_CHECK([how to link with lib[]$1], [ac_cv_lib[]Name[]_libs], [ AC_LIB_LINKFLAGS_BODY([$1], [$2]) ac_cv_lib[]Name[]_libs="$LIB[]NAME" ac_cv_lib[]Name[]_ltlibs="$LTLIB[]NAME" ac_cv_lib[]Name[]_cppflags="$INC[]NAME" ]) LIB[]NAME="$ac_cv_lib[]Name[]_libs" LTLIB[]NAME="$ac_cv_lib[]Name[]_ltlibs" INC[]NAME="$ac_cv_lib[]Name[]_cppflags" AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME) AC_SUBST([LIB]NAME) AC_SUBST([LTLIB]NAME) dnl Also set HAVE_LIB[]NAME so that AC_LIB_HAVE_LINKFLAGS can reuse the dnl results of this search when this library appears as a dependency. HAVE_LIB[]NAME=yes undefine([Name]) undefine([NAME]) ]) dnl AC_LIB_HAVE_LINKFLAGS(name, dependencies, includes, testcode) dnl searches for libname and the libraries corresponding to explicit and dnl implicit dependencies, together with the specified include files and dnl the ability to compile and link the specified testcode. If found, it dnl sets and AC_SUBSTs HAVE_LIB${NAME}=yes and the LIB${NAME} and dnl LTLIB${NAME} variables and augments the CPPFLAGS variable, and dnl #defines HAVE_LIB${NAME} to 1. Otherwise, it sets and AC_SUBSTs dnl HAVE_LIB${NAME}=no and LIB${NAME} and LTLIB${NAME} to empty. AC_DEFUN([AC_LIB_HAVE_LINKFLAGS], [ AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) AC_REQUIRE([AC_LIB_RPATH]) define([Name],[translit([$1],[./-], [___])]) define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-], [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])]) dnl Search for lib[]Name and define LIB[]NAME, LTLIB[]NAME and INC[]NAME dnl accordingly. AC_LIB_LINKFLAGS_BODY([$1], [$2]) dnl Add $INC[]NAME to CPPFLAGS before performing the following checks, dnl because if the user has installed lib[]Name and not disabled its use dnl via --without-lib[]Name-prefix, he wants to use it. ac_save_CPPFLAGS="$CPPFLAGS" AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME) AC_CACHE_CHECK([for lib[]$1], [ac_cv_lib[]Name], [ ac_save_LIBS="$LIBS" LIBS="$LIBS $LIB[]NAME" AC_TRY_LINK([$3], [$4], [ac_cv_lib[]Name=yes], [ac_cv_lib[]Name=no]) LIBS="$ac_save_LIBS" ]) if test "$ac_cv_lib[]Name" = yes; then HAVE_LIB[]NAME=yes AC_DEFINE([HAVE_LIB]NAME, 1, [Define if you have the $1 library.]) AC_MSG_CHECKING([how to link with lib[]$1]) AC_MSG_RESULT([$LIB[]NAME]) else HAVE_LIB[]NAME=no dnl If $LIB[]NAME didn't lead to a usable library, we don't need dnl $INC[]NAME either. CPPFLAGS="$ac_save_CPPFLAGS" LIB[]NAME= LTLIB[]NAME= fi AC_SUBST([HAVE_LIB]NAME) AC_SUBST([LIB]NAME) AC_SUBST([LTLIB]NAME) undefine([Name]) undefine([NAME]) ]) dnl Determine the platform dependent parameters needed to use rpath: dnl libext, shlibext, hardcode_libdir_flag_spec, hardcode_libdir_separator, dnl hardcode_direct, hardcode_minus_L, dnl sys_lib_search_path_spec, sys_lib_dlsearch_path_spec. AC_DEFUN([AC_LIB_RPATH], [ AC_REQUIRE([AC_PROG_CC]) dnl we use $CC, $GCC, $LDFLAGS AC_REQUIRE([AC_LIB_PROG_LD]) dnl we use $LD, $with_gnu_ld AC_REQUIRE([AC_CANONICAL_HOST]) dnl we use $host AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT]) dnl we use $ac_aux_dir AC_CACHE_CHECK([for shared library run path origin], acl_cv_rpath, [ CC="$CC" GCC="$GCC" LDFLAGS="$LDFLAGS" LD="$LD" with_gnu_ld="$with_gnu_ld" \ ${CONFIG_SHELL-/bin/sh} "$ac_aux_dir/config.rpath" "$host" > conftest.sh . ./conftest.sh rm -f ./conftest.sh acl_cv_rpath=done ]) wl="$acl_cv_wl" libext="$acl_cv_libext" shlibext="$acl_cv_shlibext" hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec" hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator" hardcode_direct="$acl_cv_hardcode_direct" hardcode_minus_L="$acl_cv_hardcode_minus_L" sys_lib_search_path_spec="$acl_cv_sys_lib_search_path_spec" sys_lib_dlsearch_path_spec="$acl_cv_sys_lib_dlsearch_path_spec" ]) dnl AC_LIB_LINKFLAGS_BODY(name [, dependencies]) searches for libname and dnl the libraries corresponding to explicit and implicit dependencies. dnl Sets the LIB${NAME}, LTLIB${NAME} and INC${NAME} variables. AC_DEFUN([AC_LIB_LINKFLAGS_BODY], [ define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-], [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])]) dnl By default, look in $includedir and $libdir. use_additional=yes AC_LIB_WITH_FINAL_PREFIX([ eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" ]) AC_ARG_WITH([lib$1-prefix], [ --with-lib$1-prefix[=DIR] search for lib$1 in DIR/include and DIR/lib --without-lib$1-prefix don't search for lib$1 in includedir and libdir], [ if test "X$withval" = "Xno"; then use_additional=no else if test "X$withval" = "X"; then AC_LIB_WITH_FINAL_PREFIX([ eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" ]) else additional_includedir="$withval/include" additional_libdir="$withval/lib" fi fi ]) dnl Search the library and its dependencies in $additional_libdir and dnl $LDFLAGS. Using breadth-first-seach. LIB[]NAME= LTLIB[]NAME= INC[]NAME= rpathdirs= ltrpathdirs= names_already_handled= names_next_round='$1 $2' while test -n "$names_next_round"; do names_this_round="$names_next_round" names_next_round= for name in $names_this_round; do already_handled= for n in $names_already_handled; do if test "$n" = "$name"; then already_handled=yes break fi done if test -z "$already_handled"; then names_already_handled="$names_already_handled $name" dnl See if it was already located by an earlier AC_LIB_LINKFLAGS dnl or AC_LIB_HAVE_LINKFLAGS call. uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./-|ABCDEFGHIJKLMNOPQRSTUVWXYZ___|'` eval value=\"\$HAVE_LIB$uppername\" if test -n "$value"; then if test "$value" = yes; then eval value=\"\$LIB$uppername\" test -z "$value" || LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$value" eval value=\"\$LTLIB$uppername\" test -z "$value" || LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$value" else dnl An earlier call to AC_LIB_HAVE_LINKFLAGS has determined dnl that this library doesn't exist. So just drop it. : fi else dnl Search the library lib$name in $additional_libdir and $LDFLAGS dnl and the already constructed $LIBNAME/$LTLIBNAME. found_dir= found_la= found_so= found_a= if test $use_additional = yes; then if test -n "$shlibext" && test -f "$additional_libdir/lib$name.$shlibext"; then found_dir="$additional_libdir" found_so="$additional_libdir/lib$name.$shlibext" if test -f "$additional_libdir/lib$name.la"; then found_la="$additional_libdir/lib$name.la" fi else if test -f "$additional_libdir/lib$name.$libext"; then found_dir="$additional_libdir" found_a="$additional_libdir/lib$name.$libext" if test -f "$additional_libdir/lib$name.la"; then found_la="$additional_libdir/lib$name.la" fi fi fi fi if test "X$found_dir" = "X"; then for x in $LDFLAGS $LTLIB[]NAME; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) case "$x" in -L*) dir=`echo "X$x" | sed -e 's/^X-L//'` if test -n "$shlibext" && test -f "$dir/lib$name.$shlibext"; then found_dir="$dir" found_so="$dir/lib$name.$shlibext" if test -f "$dir/lib$name.la"; then found_la="$dir/lib$name.la" fi else if test -f "$dir/lib$name.$libext"; then found_dir="$dir" found_a="$dir/lib$name.$libext" if test -f "$dir/lib$name.la"; then found_la="$dir/lib$name.la" fi fi fi ;; esac if test "X$found_dir" != "X"; then break fi done fi if test "X$found_dir" != "X"; then dnl Found the library. LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$found_dir -l$name" if test "X$found_so" != "X"; then dnl Linking with a shared library. We attempt to hardcode its dnl directory into the executable's runpath, unless it's the dnl standard /usr/lib. if test "X$found_dir" = "X/usr/lib"; then dnl No hardcoding is needed. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" else dnl Use an explicit option to hardcode DIR into the resulting dnl binary. dnl Potentially add DIR to ltrpathdirs. dnl The ltrpathdirs will be appended to $LTLIBNAME at the end. haveit= for x in $ltrpathdirs; do if test "X$x" = "X$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then ltrpathdirs="$ltrpathdirs $found_dir" fi dnl The hardcoding into $LIBNAME is system dependent. if test "$hardcode_direct" = yes; then dnl Using DIR/libNAME.so during linking hardcodes DIR into the dnl resulting binary. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" else if test -n "$hardcode_libdir_flag_spec" && test "$hardcode_minus_L" = no; then dnl Use an explicit option to hardcode DIR into the resulting dnl binary. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" dnl Potentially add DIR to rpathdirs. dnl The rpathdirs will be appended to $LIBNAME at the end. haveit= for x in $rpathdirs; do if test "X$x" = "X$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then rpathdirs="$rpathdirs $found_dir" fi else dnl Rely on "-L$found_dir". dnl But don't add it if it's already contained in the LDFLAGS dnl or the already constructed $LIBNAME haveit= for x in $LDFLAGS $LIB[]NAME; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) if test "X$x" = "X-L$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir" fi if test "$hardcode_minus_L" != no; then dnl FIXME: Not sure whether we should use dnl "-L$found_dir -l$name" or "-L$found_dir $found_so" dnl here. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" else dnl We cannot use $hardcode_runpath_var and LD_RUN_PATH dnl here, because this doesn't fit in flags passed to the dnl compiler. So give up. No hardcoding. This affects only dnl very old systems. dnl FIXME: Not sure whether we should use dnl "-L$found_dir -l$name" or "-L$found_dir $found_so" dnl here. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name" fi fi fi fi else if test "X$found_a" != "X"; then dnl Linking with a static library. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_a" else dnl We shouldn't come here, but anyway it's good to have a dnl fallback. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir -l$name" fi fi dnl Assume the include files are nearby. additional_includedir= case "$found_dir" in */lib | */lib/) basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e 's,/lib/*$,,'` additional_includedir="$basedir/include" ;; esac if test "X$additional_includedir" != "X"; then dnl Potentially add $additional_includedir to $INCNAME. dnl But don't add it dnl 1. if it's the standard /usr/include, dnl 2. if it's /usr/local/include and we are using GCC on Linux, dnl 3. if it's already present in $CPPFLAGS or the already dnl constructed $INCNAME, dnl 4. if it doesn't exist as a directory. if test "X$additional_includedir" != "X/usr/include"; then haveit= if test "X$additional_includedir" = "X/usr/local/include"; then if test -n "$GCC"; then case $host_os in linux*) haveit=yes;; esac fi fi if test -z "$haveit"; then for x in $CPPFLAGS $INC[]NAME; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) if test "X$x" = "X-I$additional_includedir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$additional_includedir"; then dnl Really add $additional_includedir to $INCNAME. INC[]NAME="${INC[]NAME}${INC[]NAME:+ }-I$additional_includedir" fi fi fi fi fi dnl Look for dependencies. if test -n "$found_la"; then dnl Read the .la file. It defines the variables dnl dlname, library_names, old_library, dependency_libs, current, dnl age, revision, installed, dlopen, dlpreopen, libdir. save_libdir="$libdir" case "$found_la" in */* | *\\*) . "$found_la" ;; *) . "./$found_la" ;; esac libdir="$save_libdir" dnl We use only dependency_libs. for dep in $dependency_libs; do case "$dep" in -L*) additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'` dnl Potentially add $additional_libdir to $LIBNAME and $LTLIBNAME. dnl But don't add it dnl 1. if it's the standard /usr/lib, dnl 2. if it's /usr/local/lib and we are using GCC on Linux, dnl 3. if it's already present in $LDFLAGS or the already dnl constructed $LIBNAME, dnl 4. if it doesn't exist as a directory. if test "X$additional_libdir" != "X/usr/lib"; then haveit= if test "X$additional_libdir" = "X/usr/local/lib"; then if test -n "$GCC"; then case $host_os in linux*) haveit=yes;; esac fi fi if test -z "$haveit"; then haveit= for x in $LDFLAGS $LIB[]NAME; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) if test "X$x" = "X-L$additional_libdir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$additional_libdir"; then dnl Really add $additional_libdir to $LIBNAME. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$additional_libdir" fi fi haveit= for x in $LDFLAGS $LTLIB[]NAME; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) if test "X$x" = "X-L$additional_libdir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$additional_libdir"; then dnl Really add $additional_libdir to $LTLIBNAME. LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$additional_libdir" fi fi fi fi ;; -R*) dir=`echo "X$dep" | sed -e 's/^X-R//'` dnl Potentially add DIR to rpathdirs. dnl The rpathdirs will be appended to $LIBNAME at the end. haveit= for x in $rpathdirs; do if test "X$x" = "X$dir"; then haveit=yes break fi done if test -z "$haveit"; then rpathdirs="$rpathdirs $dir" fi dnl Potentially add DIR to ltrpathdirs. dnl The ltrpathdirs will be appended to $LTLIBNAME at the end. haveit= for x in $ltrpathdirs; do if test "X$x" = "X$dir"; then haveit=yes break fi done if test -z "$haveit"; then ltrpathdirs="$ltrpathdirs $dir" fi ;; -l*) dnl Handle this in the next round. names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'` ;; *.la) dnl Handle this in the next round. Throw away the .la's dnl directory; it is already contained in a preceding -L dnl option. names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'` ;; *) dnl Most likely an immediate library name. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$dep" LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$dep" ;; esac done fi else dnl Didn't find the library; assume it is in the system directories dnl known to the linker and runtime loader. (All the system dnl directories known to the linker should also be known to the dnl runtime loader, otherwise the system is severely misconfigured.) LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name" LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-l$name" fi fi fi done done if test "X$rpathdirs" != "X"; then if test -n "$hardcode_libdir_separator"; then dnl Weird platform: only the last -rpath option counts, the user must dnl pass all path elements in one option. We can arrange that for a dnl single library, but not when more than one $LIBNAMEs are used. alldirs= for found_dir in $rpathdirs; do alldirs="${alldirs}${alldirs:+$hardcode_libdir_separator}$found_dir" done dnl Note: hardcode_libdir_flag_spec uses $libdir and $wl. acl_save_libdir="$libdir" libdir="$alldirs" eval flag=\"$hardcode_libdir_flag_spec\" libdir="$acl_save_libdir" LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag" else dnl The -rpath options are cumulative. for found_dir in $rpathdirs; do acl_save_libdir="$libdir" libdir="$found_dir" eval flag=\"$hardcode_libdir_flag_spec\" libdir="$acl_save_libdir" LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag" done fi fi if test "X$ltrpathdirs" != "X"; then dnl When using libtool, the option that works for both libraries and dnl executables is -R. The -R options are cumulative. for found_dir in $ltrpathdirs; do LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-R$found_dir" done fi ]) dnl AC_LIB_APPENDTOVAR(VAR, CONTENTS) appends the elements of CONTENTS to VAR, dnl unless already present in VAR. dnl Works only for CPPFLAGS, not for LIB* variables because that sometimes dnl contains two or three consecutive elements that belong together. AC_DEFUN([AC_LIB_APPENDTOVAR], [ for element in [$2]; do haveit= for x in $[$1]; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) if test "X$x" = "X$element"; then haveit=yes break fi done if test -z "$haveit"; then [$1]="${[$1]}${[$1]:+ }$element" fi done ]) # lib-prefix.m4 serial 1 (gettext-0.11) dnl Copyright (C) 2001-2002 Free Software Foundation, Inc. dnl This file is free software, distributed under the terms of the GNU dnl General Public License. As a special exception to the GNU General dnl Public License, this file may be distributed as part of a program dnl that contains a configuration script generated by Autoconf, under dnl the same distribution terms as the rest of that program. dnl From Bruno Haible. dnl AC_LIB_PREFIX adds to the CPPFLAGS and LDFLAGS the flags that are needed dnl to access previously installed libraries. The basic assumption is that dnl a user will want packages to use other packages he previously installed dnl with the same --prefix option. dnl This macro is not needed if only AC_LIB_LINKFLAGS is used to locate dnl libraries, but is otherwise very convenient. AC_DEFUN([AC_LIB_PREFIX], [ AC_BEFORE([$0], [AC_LIB_LINKFLAGS]) AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([AC_CANONICAL_HOST]) AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) dnl By default, look in $includedir and $libdir. use_additional=yes AC_LIB_WITH_FINAL_PREFIX([ eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" ]) AC_ARG_WITH([lib-prefix], [ --with-lib-prefix[=DIR] search for libraries in DIR/include and DIR/lib --without-lib-prefix don't search for libraries in includedir and libdir], [ if test "X$withval" = "Xno"; then use_additional=no else if test "X$withval" = "X"; then AC_LIB_WITH_FINAL_PREFIX([ eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" ]) else additional_includedir="$withval/include" additional_libdir="$withval/lib" fi fi ]) if test $use_additional = yes; then dnl Potentially add $additional_includedir to $CPPFLAGS. dnl But don't add it dnl 1. if it's the standard /usr/include, dnl 2. if it's already present in $CPPFLAGS, dnl 3. if it's /usr/local/include and we are using GCC on Linux, dnl 4. if it doesn't exist as a directory. if test "X$additional_includedir" != "X/usr/include"; then haveit= for x in $CPPFLAGS; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) if test "X$x" = "X-I$additional_includedir"; then haveit=yes break fi done if test -z "$haveit"; then if test "X$additional_includedir" = "X/usr/local/include"; then if test -n "$GCC"; then case $host_os in linux*) haveit=yes;; esac fi fi if test -z "$haveit"; then if test -d "$additional_includedir"; then dnl Really add $additional_includedir to $CPPFLAGS. CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }-I$additional_includedir" fi fi fi fi dnl Potentially add $additional_libdir to $LDFLAGS. dnl But don't add it dnl 1. if it's the standard /usr/lib, dnl 2. if it's already present in $LDFLAGS, dnl 3. if it's /usr/local/lib and we are using GCC on Linux, dnl 4. if it doesn't exist as a directory. if test "X$additional_libdir" != "X/usr/lib"; then haveit= for x in $LDFLAGS; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) if test "X$x" = "X-L$additional_libdir"; then haveit=yes break fi done if test -z "$haveit"; then if test "X$additional_libdir" = "X/usr/local/lib"; then if test -n "$GCC"; then case $host_os in linux*) haveit=yes;; esac fi fi if test -z "$haveit"; then if test -d "$additional_libdir"; then dnl Really add $additional_libdir to $LDFLAGS. LDFLAGS="${LDFLAGS}${LDFLAGS:+ }-L$additional_libdir" fi fi fi fi fi ]) dnl AC_LIB_PREPARE_PREFIX creates variables acl_final_prefix, dnl acl_final_exec_prefix, containing the values to which $prefix and dnl $exec_prefix will expand at the end of the configure script. AC_DEFUN([AC_LIB_PREPARE_PREFIX], [ dnl Unfortunately, prefix and exec_prefix get only finally determined dnl at the end of configure. if test "X$prefix" = "XNONE"; then acl_final_prefix="$ac_default_prefix" else acl_final_prefix="$prefix" fi if test "X$exec_prefix" = "XNONE"; then acl_final_exec_prefix='${prefix}' else acl_final_exec_prefix="$exec_prefix" fi acl_save_prefix="$prefix" prefix="$acl_final_prefix" eval acl_final_exec_prefix=\"$acl_final_exec_prefix\" prefix="$acl_save_prefix" ]) dnl AC_LIB_WITH_FINAL_PREFIX([statement]) evaluates statement, with the dnl variables prefix and exec_prefix bound to the values they will have dnl at the end of the configure script. AC_DEFUN([AC_LIB_WITH_FINAL_PREFIX], [ acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" $1 exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" ]) # progtest.m4 serial 2 (gettext-0.10.40) dnl Copyright (C) 1996-2002 Free Software Foundation, Inc. dnl This file is free software, distributed under the terms of the GNU dnl General Public License. As a special exception to the GNU General dnl Public License, this file may be distributed as part of a program dnl that contains a configuration script generated by Autoconf, under dnl the same distribution terms as the rest of that program. dnl dnl This file can can be used in projects which are not available under dnl the GNU General Public License or the GNU Library General Public dnl License but which still want to provide support for the GNU gettext dnl functionality. dnl Please note that the actual code of the GNU gettext library is covered dnl by the GNU Library General Public License, and the rest of the GNU dnl gettext package package is covered by the GNU General Public License. dnl They are *not* in the public domain. dnl Authors: dnl Ulrich Drepper , 1996. # Search path for a program which passes the given test. dnl AM_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR, dnl TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]]) AC_DEFUN([AM_PATH_PROG_WITH_TEST], [# Extract the first word of "$2", so it can be a program name with args. set dummy $2; ac_word=[$]2 AC_MSG_CHECKING([for $ac_word]) AC_CACHE_VAL(ac_cv_path_$1, [case "[$]$1" in /*) ac_cv_path_$1="[$]$1" # Let the user override the test with a path. ;; *) IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" for ac_dir in ifelse([$5], , $PATH, [$5]); do test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/$ac_word; then if [$3]; then ac_cv_path_$1="$ac_dir/$ac_word" break fi fi done IFS="$ac_save_ifs" dnl If no 4th arg is given, leave the cache variable unset, dnl so AC_PATH_PROGS will keep looking. ifelse([$4], , , [ test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4" ])dnl ;; esac])dnl $1="$ac_cv_path_$1" if test ifelse([$4], , [-n "[$]$1"], ["[$]$1" != "$4"]); then AC_MSG_RESULT([$]$1) else AC_MSG_RESULT(no) fi AC_SUBST($1)dnl ]) discover-2.1.2/buildtools/config-script.m40000644002342100234210000000507210266266026017203 0ustar perepere# $Progeny$ AC_DEFUN(PROGENY_CONFIG_SCRIPT_VAR, [ PROGENY_CONFIG_SCRIPT_VARS="${PROGENY_CONFIG_SCRIPT_VARS}; VARS=\"\${VARS} $1\"" PROGENY_CONFIG_SCRIPT_SET="${PROGENY_CONFIG_SCRIPT_SET}; $1=\"$2\"" PROGENY_CONFIG_SCRIPT_DOC="${PROGENY_CONFIG_SCRIPT_DOC} $1 " ]) AC_DEFUN(PROGENY_CONFIG_SCRIPT, [ ifelse($1, [], PROGENY_CONFIG_SCRIPT_NAME=${PACKAGE_TARNAME}-config , PROGENY_CONFIG_SCRIPT_NAME="$1" ) dnl Initialize these so they don't start with a semicolon, since some dnl shells react badly to a leading semicolon. PROGENY_CONFIG_SCRIPT_VARS=":" PROGENY_CONFIG_SCRIPT_SET=":" PROGENY_CONFIG_SCRIPT_VAR(major_version, ${PACKAGE_MAJOR}) PROGENY_CONFIG_SCRIPT_VAR(minor_version, ${PACKAGE_MINOR}) PROGENY_CONFIG_SCRIPT_VAR(micro_version, ${PACKAGE_MICRO}) PROGENY_CONFIG_SCRIPT_VAR(version, \${major_version}.\${minor_version}.\${micro_version}) PROGENY_CONFIG_SCRIPT_VAR(cppflags, ${export_CPPFLAGS}) PROGENY_CONFIG_SCRIPT_VAR(ldflags, ${export_LDFLAGS}) PROGENY_CONFIG_SCRIPT_VAR(libs, ${export_LIBS}) for var in prefix \ exec_prefix; do eval val="\$${var}" if test "${val}" = "NONE"; then val=${ac_default_prefix} fi PROGENY_CONFIG_SCRIPT_VAR(${var}, ${val}) done for var in bindir \ sbindir \ libexecdir \ datadir \ sysconfdir \ sharedstatedir \ localstatedir \ libdir \ includedir \ oldincludedir \ infodir \ mandir \ build \ build_cpu \ build_vendor \ build_os \ host \ host_cpu \ host_vendor \ host_os \ target \ target_cpu \ target_vendor \ target_os; do eval val="\$${var}" PROGENY_CONFIG_SCRIPT_VAR(${var}, ${val}) done AC_SUBST(PROGENY_CONFIG_SCRIPT_NAME) AC_SUBST(PROGENY_CONFIG_SCRIPT_SET) AC_SUBST(PROGENY_CONFIG_SCRIPT_VARS) AC_CONFIG_FILES(buildtools/config-script) AC_CONFIG_COMMANDS(config-script-doc, echo "${doctext}" \ | ${ac_top_srcdir}/${mkdoc} \ ${refentry} \ ${docname} , doctext="${PROGENY_CONFIG_SCRIPT_DOC}"; mkdoc='buildtools/config-script-mkdoc'; refentry='buildtools/config-script.refentry'; docname="${PROGENY_CONFIG_SCRIPT_NAME}") ]) discover-2.1.2/buildtools/config.guess0000755002342100234210000012364610266266026016522 0ustar perepere#! /bin/sh # Attempt to guess a canonical system name. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # 2000, 2001, 2002, 2003 Free Software Foundation, Inc. timestamp='2004-01-05' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Originally written by Per Bothner . # Please send patches to . Submit a context # diff and a properly formatted ChangeLog entry. # # This script attempts to guess a canonical system name similar to # config.sub. If it succeeds, it prints the system name on stdout, and # exits with 0. Otherwise, it exits with 1. # # The plan is that this can be called by configure scripts if you # don't specify an explicit build system type. me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] Output the configuration name of the system \`$me' is run on. Operation modes: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.guess ($timestamp) Originally written by Per Bothner. Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit 0 ;; --version | -v ) echo "$version" ; exit 0 ;; --help | --h* | -h ) echo "$usage"; exit 0 ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" >&2 exit 1 ;; * ) break ;; esac done if test $# != 0; then echo "$me: too many arguments$help" >&2 exit 1 fi trap 'exit 1' 1 2 15 # CC_FOR_BUILD -- compiler used by this script. Note that the use of a # compiler to aid in system detection is discouraged as it requires # temporary files to be created and, as you can see below, it is a # headache to deal with in a portable fashion. # Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still # use `HOST_CC' if defined, but it is deprecated. # Portable tmp directory creation inspired by the Autoconf team. set_cc_for_build=' trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; : ${TMPDIR=/tmp} ; { tmp=`(umask 077 && mktemp -d -q "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; dummy=$tmp/dummy ; tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; case $CC_FOR_BUILD,$HOST_CC,$CC in ,,) echo "int x;" > $dummy.c ; for c in cc gcc c89 c99 ; do if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then CC_FOR_BUILD="$c"; break ; fi ; done ; if test x"$CC_FOR_BUILD" = x ; then CC_FOR_BUILD=no_compiler_found ; fi ;; ,,*) CC_FOR_BUILD=$CC ;; ,*,*) CC_FOR_BUILD=$HOST_CC ;; esac ;' # This is needed to find uname on a Pyramid OSx when run in the BSD universe. # (ghazi@noc.rutgers.edu 1994-08-24) if (test -f /.attbin/uname) >/dev/null 2>&1 ; then PATH=$PATH:/.attbin ; export PATH fi UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown # Note: order is significant - the case branches are not exclusive. case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in *:NetBSD:*:*) # NetBSD (nbsd) targets should (where applicable) match one or # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*, # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently # switched to ELF, *-*-netbsd* would select the old # object file format. This provides both forward # compatibility and a consistent mechanism for selecting the # object file format. # # Note: NetBSD doesn't particularly care about the vendor # portion of the name. We always set it to "unknown". sysctl="sysctl -n hw.machine_arch" UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ /usr/sbin/$sysctl 2>/dev/null || echo unknown)` case "${UNAME_MACHINE_ARCH}" in armeb) machine=armeb-unknown ;; arm*) machine=arm-unknown ;; sh3el) machine=shl-unknown ;; sh3eb) machine=sh-unknown ;; *) machine=${UNAME_MACHINE_ARCH}-unknown ;; esac # The Operating System including object format, if it has switched # to ELF recently, or will in the future. case "${UNAME_MACHINE_ARCH}" in arm*|i386|m68k|ns32k|sh3*|sparc|vax) eval $set_cc_for_build if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep __ELF__ >/dev/null then # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). # Return netbsd for either. FIX? os=netbsd else os=netbsdelf fi ;; *) os=netbsd ;; esac # The OS release # Debian GNU/NetBSD machines have a different userland, and # thus, need a distinct triplet. However, they do not need # kernel version information, so it can be replaced with a # suitable tag, in the style of linux-gnu. case "${UNAME_VERSION}" in Debian*) release='-gnu' ;; *) release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` ;; esac # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: # contains redundant information, the shorter form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. echo "${machine}-${os}${release}" exit 0 ;; amiga:OpenBSD:*:*) echo m68k-unknown-openbsd${UNAME_RELEASE} exit 0 ;; arc:OpenBSD:*:*) echo mipsel-unknown-openbsd${UNAME_RELEASE} exit 0 ;; hp300:OpenBSD:*:*) echo m68k-unknown-openbsd${UNAME_RELEASE} exit 0 ;; mac68k:OpenBSD:*:*) echo m68k-unknown-openbsd${UNAME_RELEASE} exit 0 ;; macppc:OpenBSD:*:*) echo powerpc-unknown-openbsd${UNAME_RELEASE} exit 0 ;; mvme68k:OpenBSD:*:*) echo m68k-unknown-openbsd${UNAME_RELEASE} exit 0 ;; mvme88k:OpenBSD:*:*) echo m88k-unknown-openbsd${UNAME_RELEASE} exit 0 ;; mvmeppc:OpenBSD:*:*) echo powerpc-unknown-openbsd${UNAME_RELEASE} exit 0 ;; pegasos:OpenBSD:*:*) echo powerpc-unknown-openbsd${UNAME_RELEASE} exit 0 ;; pmax:OpenBSD:*:*) echo mipsel-unknown-openbsd${UNAME_RELEASE} exit 0 ;; sgi:OpenBSD:*:*) echo mipseb-unknown-openbsd${UNAME_RELEASE} exit 0 ;; sun3:OpenBSD:*:*) echo m68k-unknown-openbsd${UNAME_RELEASE} exit 0 ;; wgrisc:OpenBSD:*:*) echo mipsel-unknown-openbsd${UNAME_RELEASE} exit 0 ;; *:OpenBSD:*:*) echo ${UNAME_MACHINE}-unknown-openbsd${UNAME_RELEASE} exit 0 ;; alpha:OSF1:*:*) if test $UNAME_RELEASE = "V4.0"; then UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` fi # According to Compaq, /usr/sbin/psrinfo has been available on # OSF/1 and Tru64 systems produced since 1995. I hope that # covers most systems running today. This code pipes the CPU # types through head -n 1, so we only detect the type of CPU 0. ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` case "$ALPHA_CPU_TYPE" in "EV4 (21064)") UNAME_MACHINE="alpha" ;; "EV4.5 (21064)") UNAME_MACHINE="alpha" ;; "LCA4 (21066/21068)") UNAME_MACHINE="alpha" ;; "EV5 (21164)") UNAME_MACHINE="alphaev5" ;; "EV5.6 (21164A)") UNAME_MACHINE="alphaev56" ;; "EV5.6 (21164PC)") UNAME_MACHINE="alphapca56" ;; "EV5.7 (21164PC)") UNAME_MACHINE="alphapca57" ;; "EV6 (21264)") UNAME_MACHINE="alphaev6" ;; "EV6.7 (21264A)") UNAME_MACHINE="alphaev67" ;; "EV6.8CB (21264C)") UNAME_MACHINE="alphaev68" ;; "EV6.8AL (21264B)") UNAME_MACHINE="alphaev68" ;; "EV6.8CX (21264D)") UNAME_MACHINE="alphaev68" ;; "EV6.9A (21264/EV69A)") UNAME_MACHINE="alphaev69" ;; "EV7 (21364)") UNAME_MACHINE="alphaev7" ;; "EV7.9 (21364A)") UNAME_MACHINE="alphaev79" ;; esac # A Vn.n version is a released version. # A Tn.n version is a released field test version. # A Xn.n version is an unreleased experimental baselevel. # 1.2 uses "1.2" for uname -r. echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` exit 0 ;; Alpha*:OpenVMS:*:*) echo alpha-hp-vms exit 0 ;; Alpha\ *:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # Should we change UNAME_MACHINE based on the output of uname instead # of the specific Alpha model? echo alpha-pc-interix exit 0 ;; 21064:Windows_NT:50:3) echo alpha-dec-winnt3.5 exit 0 ;; Amiga*:UNIX_System_V:4.0:*) echo m68k-unknown-sysv4 exit 0;; *:[Aa]miga[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-amigaos exit 0 ;; *:[Mm]orph[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-morphos exit 0 ;; *:OS/390:*:*) echo i370-ibm-openedition exit 0 ;; *:OS400:*:*) echo powerpc-ibm-os400 exit 0 ;; arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) echo arm-acorn-riscix${UNAME_RELEASE} exit 0;; SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) echo hppa1.1-hitachi-hiuxmpp exit 0;; Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. if test "`(/bin/universe) 2>/dev/null`" = att ; then echo pyramid-pyramid-sysv3 else echo pyramid-pyramid-bsd fi exit 0 ;; NILE*:*:*:dcosx) echo pyramid-pyramid-svr4 exit 0 ;; DRS?6000:unix:4.0:6*) echo sparc-icl-nx6 exit 0 ;; DRS?6000:UNIX_SV:4.2*:7*) case `/usr/bin/uname -p` in sparc) echo sparc-icl-nx7 && exit 0 ;; esac ;; sun4H:SunOS:5.*:*) echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit 0 ;; sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit 0 ;; i86pc:SunOS:5.*:*) echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit 0 ;; sun4*:SunOS:6*:*) # According to config.sub, this is the proper way to canonicalize # SunOS6. Hard to guess exactly what SunOS6 will be like, but # it's likely to be more like Solaris than SunOS4. echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit 0 ;; sun4*:SunOS:*:*) case "`/usr/bin/arch -k`" in Series*|S4*) UNAME_RELEASE=`uname -v` ;; esac # Japanese Language versions have a version number like `4.1.3-JL'. echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` exit 0 ;; sun3*:SunOS:*:*) echo m68k-sun-sunos${UNAME_RELEASE} exit 0 ;; sun*:*:4.2BSD:*) UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 case "`/bin/arch`" in sun3) echo m68k-sun-sunos${UNAME_RELEASE} ;; sun4) echo sparc-sun-sunos${UNAME_RELEASE} ;; esac exit 0 ;; aushp:SunOS:*:*) echo sparc-auspex-sunos${UNAME_RELEASE} exit 0 ;; # The situation for MiNT is a little confusing. The machine name # can be virtually everything (everything which is not # "atarist" or "atariste" at least should have a processor # > m68000). The system name ranges from "MiNT" over "FreeMiNT" # to the lowercase version "mint" (or "freemint"). Finally # the system name "TOS" denotes a system which is actually not # MiNT. But MiNT is downward compatible to TOS, so this should # be no problem. atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit 0 ;; atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit 0 ;; *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit 0 ;; milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) echo m68k-milan-mint${UNAME_RELEASE} exit 0 ;; hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) echo m68k-hades-mint${UNAME_RELEASE} exit 0 ;; *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) echo m68k-unknown-mint${UNAME_RELEASE} exit 0 ;; powerpc:machten:*:*) echo powerpc-apple-machten${UNAME_RELEASE} exit 0 ;; RISC*:Mach:*:*) echo mips-dec-mach_bsd4.3 exit 0 ;; RISC*:ULTRIX:*:*) echo mips-dec-ultrix${UNAME_RELEASE} exit 0 ;; VAX*:ULTRIX*:*:*) echo vax-dec-ultrix${UNAME_RELEASE} exit 0 ;; 2020:CLIX:*:* | 2430:CLIX:*:*) echo clipper-intergraph-clix${UNAME_RELEASE} exit 0 ;; mips:*:*:UMIPS | mips:*:*:RISCos) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #ifdef __cplusplus #include /* for printf() prototype */ int main (int argc, char *argv[]) { #else int main (argc, argv) int argc; char *argv[]; { #endif #if defined (host_mips) && defined (MIPSEB) #if defined (SYSTYPE_SYSV) printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_SVR4) printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); #endif #endif exit (-1); } EOF $CC_FOR_BUILD -o $dummy $dummy.c \ && $dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \ && exit 0 echo mips-mips-riscos${UNAME_RELEASE} exit 0 ;; Motorola:PowerMAX_OS:*:*) echo powerpc-motorola-powermax exit 0 ;; Motorola:*:4.3:PL8-*) echo powerpc-harris-powermax exit 0 ;; Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) echo powerpc-harris-powermax exit 0 ;; Night_Hawk:Power_UNIX:*:*) echo powerpc-harris-powerunix exit 0 ;; m88k:CX/UX:7*:*) echo m88k-harris-cxux7 exit 0 ;; m88k:*:4*:R4*) echo m88k-motorola-sysv4 exit 0 ;; m88k:*:3*:R3*) echo m88k-motorola-sysv3 exit 0 ;; AViiON:dgux:*:*) # DG/UX returns AViiON for all architectures UNAME_PROCESSOR=`/usr/bin/uname -p` if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] then if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ [ ${TARGET_BINARY_INTERFACE}x = x ] then echo m88k-dg-dgux${UNAME_RELEASE} else echo m88k-dg-dguxbcs${UNAME_RELEASE} fi else echo i586-dg-dgux${UNAME_RELEASE} fi exit 0 ;; M88*:DolphinOS:*:*) # DolphinOS (SVR3) echo m88k-dolphin-sysv3 exit 0 ;; M88*:*:R3*:*) # Delta 88k system running SVR3 echo m88k-motorola-sysv3 exit 0 ;; XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) echo m88k-tektronix-sysv3 exit 0 ;; Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) echo m68k-tektronix-bsd exit 0 ;; *:IRIX*:*:*) echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` exit 0 ;; ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id exit 0 ;; # Note that: echo "'`uname -s`'" gives 'AIX ' i*86:AIX:*:*) echo i386-ibm-aix exit 0 ;; ia64:AIX:*:*) if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} exit 0 ;; *:AIX:2:3) if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include main() { if (!__power_pc()) exit(1); puts("powerpc-ibm-aix3.2.5"); exit(0); } EOF $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0 echo rs6000-ibm-aix3.2.5 elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then echo rs6000-ibm-aix3.2.4 else echo rs6000-ibm-aix3.2 fi exit 0 ;; *:AIX:*:[45]) IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then IBM_ARCH=rs6000 else IBM_ARCH=powerpc fi if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${IBM_ARCH}-ibm-aix${IBM_REV} exit 0 ;; *:AIX:*:*) echo rs6000-ibm-aix exit 0 ;; ibmrt:4.4BSD:*|romp-ibm:BSD:*) echo romp-ibm-bsd4.4 exit 0 ;; ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to exit 0 ;; # report: romp-ibm BSD 4.3 *:BOSX:*:*) echo rs6000-bull-bosx exit 0 ;; DPX/2?00:B.O.S.:*:*) echo m68k-bull-sysv3 exit 0 ;; 9000/[34]??:4.3bsd:1.*:*) echo m68k-hp-bsd exit 0 ;; hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) echo m68k-hp-bsd4.4 exit 0 ;; 9000/[34678]??:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` case "${UNAME_MACHINE}" in 9000/31? ) HP_ARCH=m68000 ;; 9000/[34]?? ) HP_ARCH=m68k ;; 9000/[678][0-9][0-9]) if [ -x /usr/bin/getconf ]; then sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` case "${sc_cpu_version}" in 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 532) # CPU_PA_RISC2_0 case "${sc_kernel_bits}" in 32) HP_ARCH="hppa2.0n" ;; 64) HP_ARCH="hppa2.0w" ;; '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 esac ;; esac fi if [ "${HP_ARCH}" = "" ]; then eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #define _HPUX_SOURCE #include #include int main () { #if defined(_SC_KERNEL_BITS) long bits = sysconf(_SC_KERNEL_BITS); #endif long cpu = sysconf (_SC_CPU_VERSION); switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0"); break; case CPU_PA_RISC1_1: puts ("hppa1.1"); break; case CPU_PA_RISC2_0: #if defined(_SC_KERNEL_BITS) switch (bits) { case 64: puts ("hppa2.0w"); break; case 32: puts ("hppa2.0n"); break; default: puts ("hppa2.0"); break; } break; #else /* !defined(_SC_KERNEL_BITS) */ puts ("hppa2.0"); break; #endif default: puts ("hppa1.0"); break; } exit (0); } EOF (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` test -z "$HP_ARCH" && HP_ARCH=hppa fi ;; esac if [ ${HP_ARCH} = "hppa2.0w" ] then # avoid double evaluation of $set_cc_for_build test -n "$CC_FOR_BUILD" || eval $set_cc_for_build if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E -) | grep __LP64__ >/dev/null then HP_ARCH="hppa2.0w" else HP_ARCH="hppa64" fi fi echo ${HP_ARCH}-hp-hpux${HPUX_REV} exit 0 ;; ia64:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` echo ia64-hp-hpux${HPUX_REV} exit 0 ;; 3050*:HI-UX:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include int main () { long cpu = sysconf (_SC_CPU_VERSION); /* The order matters, because CPU_IS_HP_MC68K erroneously returns true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct results, however. */ if (CPU_IS_PA_RISC (cpu)) { switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; default: puts ("hppa-hitachi-hiuxwe2"); break; } } else if (CPU_IS_HP_MC68K (cpu)) puts ("m68k-hitachi-hiuxwe2"); else puts ("unknown-hitachi-hiuxwe2"); exit (0); } EOF $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0 echo unknown-hitachi-hiuxwe2 exit 0 ;; 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) echo hppa1.1-hp-bsd exit 0 ;; 9000/8??:4.3bsd:*:*) echo hppa1.0-hp-bsd exit 0 ;; *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) echo hppa1.0-hp-mpeix exit 0 ;; hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) echo hppa1.1-hp-osf exit 0 ;; hp8??:OSF1:*:*) echo hppa1.0-hp-osf exit 0 ;; i*86:OSF1:*:*) if [ -x /usr/sbin/sysversion ] ; then echo ${UNAME_MACHINE}-unknown-osf1mk else echo ${UNAME_MACHINE}-unknown-osf1 fi exit 0 ;; parisc*:Lites*:*:*) echo hppa1.1-hp-lites exit 0 ;; C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) echo c1-convex-bsd exit 0 ;; C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit 0 ;; C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) echo c34-convex-bsd exit 0 ;; C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) echo c38-convex-bsd exit 0 ;; C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) echo c4-convex-bsd exit 0 ;; CRAY*Y-MP:*:*:*) echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit 0 ;; CRAY*[A-Z]90:*:*:*) echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ -e 's/\.[^.]*$/.X/' exit 0 ;; CRAY*TS:*:*:*) echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit 0 ;; CRAY*T3E:*:*:*) echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit 0 ;; CRAY*SV1:*:*:*) echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit 0 ;; *:UNICOS/mp:*:*) echo nv1-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit 0 ;; F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit 0 ;; 5000:UNIX_System_V:4.*:*) FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit 0 ;; i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} exit 0 ;; sparc*:BSD/OS:*:*) echo sparc-unknown-bsdi${UNAME_RELEASE} exit 0 ;; *:BSD/OS:*:*) echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} exit 0 ;; *:FreeBSD:*:*) # Determine whether the default compiler uses glibc. eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include #if __GLIBC__ >= 2 LIBC=gnu #else LIBC= #endif EOF eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=` # GNU/KFreeBSD systems have a "k" prefix to indicate we are using # FreeBSD's kernel, but not the complete OS. case ${LIBC} in gnu) kernel_only='k' ;; esac echo ${UNAME_MACHINE}-unknown-${kernel_only}freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`${LIBC:+-$LIBC} exit 0 ;; i*:CYGWIN*:*) echo ${UNAME_MACHINE}-pc-cygwin exit 0 ;; i*:MINGW*:*) echo ${UNAME_MACHINE}-pc-mingw32 exit 0 ;; i*:PW*:*) echo ${UNAME_MACHINE}-pc-pw32 exit 0 ;; x86:Interix*:[34]*) echo i586-pc-interix${UNAME_RELEASE}|sed -e 's/\..*//' exit 0 ;; [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) echo i${UNAME_MACHINE}-pc-mks exit 0 ;; i*:Windows_NT*:* | Pentium*:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we # UNAME_MACHINE based on the output of uname instead of i386? echo i586-pc-interix exit 0 ;; i*:UWIN*:*) echo ${UNAME_MACHINE}-pc-uwin exit 0 ;; p*:CYGWIN*:*) echo powerpcle-unknown-cygwin exit 0 ;; prep*:SunOS:5.*:*) echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit 0 ;; *:GNU:*:*) # the GNU system echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` exit 0 ;; *:GNU/*:*:*) # other systems with GNU libc and userland echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu exit 0 ;; i*86:Minix:*:*) echo ${UNAME_MACHINE}-pc-minix exit 0 ;; arm*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit 0 ;; cris:Linux:*:*) echo cris-axis-linux-gnu exit 0 ;; ia64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit 0 ;; m68*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit 0 ;; mips:Linux:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #undef CPU #undef mips #undef mipsel #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) CPU=mipsel #else #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) CPU=mips #else CPU= #endif #endif EOF eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=` test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0 ;; mips64:Linux:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #undef CPU #undef mips64 #undef mips64el #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) CPU=mips64el #else #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) CPU=mips64 #else CPU= #endif #endif EOF eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=` test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0 ;; ppc:Linux:*:*) echo powerpc-unknown-linux-gnu exit 0 ;; ppc64:Linux:*:*) echo powerpc64-unknown-linux-gnu exit 0 ;; alpha:Linux:*:*) case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in EV5) UNAME_MACHINE=alphaev5 ;; EV56) UNAME_MACHINE=alphaev56 ;; PCA56) UNAME_MACHINE=alphapca56 ;; PCA57) UNAME_MACHINE=alphapca56 ;; EV6) UNAME_MACHINE=alphaev6 ;; EV67) UNAME_MACHINE=alphaev67 ;; EV68*) UNAME_MACHINE=alphaev68 ;; esac objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} exit 0 ;; parisc:Linux:*:* | hppa:Linux:*:*) # Look for CPU level case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in PA7*) echo hppa1.1-unknown-linux-gnu ;; PA8*) echo hppa2.0-unknown-linux-gnu ;; *) echo hppa-unknown-linux-gnu ;; esac exit 0 ;; parisc64:Linux:*:* | hppa64:Linux:*:*) echo hppa64-unknown-linux-gnu exit 0 ;; s390:Linux:*:* | s390x:Linux:*:*) echo ${UNAME_MACHINE}-ibm-linux exit 0 ;; sh64*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit 0 ;; sh*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit 0 ;; sparc:Linux:*:* | sparc64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit 0 ;; x86_64:Linux:*:*) echo x86_64-unknown-linux-gnu exit 0 ;; i*86:Linux:*:*) # The BFD linker knows what the default object file format is, so # first see if it will tell us. cd to the root directory to prevent # problems with other programs or directories called `ld' in the path. # Set LC_ALL=C to ensure ld outputs messages in English. ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \ | sed -ne '/supported targets:/!d s/[ ][ ]*/ /g s/.*supported targets: *// s/ .*// p'` case "$ld_supported_targets" in elf32-i386) TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu" ;; a.out-i386-linux) echo "${UNAME_MACHINE}-pc-linux-gnuaout" exit 0 ;; coff-i386) echo "${UNAME_MACHINE}-pc-linux-gnucoff" exit 0 ;; "") # Either a pre-BFD a.out linker (linux-gnuoldld) or # one that does not give us useful --help. echo "${UNAME_MACHINE}-pc-linux-gnuoldld" exit 0 ;; esac # Determine whether the default compiler is a.out or elf eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include #ifdef __ELF__ # ifdef __GLIBC__ # if __GLIBC__ >= 2 LIBC=gnu # else LIBC=gnulibc1 # endif # else LIBC=gnulibc1 # endif #else #ifdef __INTEL_COMPILER LIBC=gnu #else LIBC=gnuaout #endif #endif #ifdef __dietlibc__ LIBC=dietlibc #endif EOF eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=` test x"${LIBC}" != x && echo "${UNAME_MACHINE}-pc-linux-${LIBC}" && exit 0 test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0 ;; i*86:DYNIX/ptx:4*:*) # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. # earlier versions are messed up and put the nodename in both # sysname and nodename. echo i386-sequent-sysv4 exit 0 ;; i*86:UNIX_SV:4.2MP:2.*) # Unixware is an offshoot of SVR4, but it has its own version # number series starting with 2... # I am not positive that other SVR4 systems won't match this, # I just have to hope. -- rms. # Use sysv4.2uw... so that sysv4* matches it. echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} exit 0 ;; i*86:OS/2:*:*) # If we were able to find `uname', then EMX Unix compatibility # is probably installed. echo ${UNAME_MACHINE}-pc-os2-emx exit 0 ;; i*86:XTS-300:*:STOP) echo ${UNAME_MACHINE}-unknown-stop exit 0 ;; i*86:atheos:*:*) echo ${UNAME_MACHINE}-unknown-atheos exit 0 ;; i*86:syllable:*:*) echo ${UNAME_MACHINE}-pc-syllable exit 0 ;; i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*) echo i386-unknown-lynxos${UNAME_RELEASE} exit 0 ;; i*86:*DOS:*:*) echo ${UNAME_MACHINE}-pc-msdosdjgpp exit 0 ;; i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} else echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} fi exit 0 ;; i*86:*:5:[78]*) case `/bin/uname -X | grep "^Machine"` in *486*) UNAME_MACHINE=i486 ;; *Pentium) UNAME_MACHINE=i586 ;; *Pent*|*Celeron) UNAME_MACHINE=i686 ;; esac echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} exit 0 ;; i*86:*:3.2:*) if test -f /usr/options/cb.name; then UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ && UNAME_MACHINE=i586 (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ && UNAME_MACHINE=i686 (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ && UNAME_MACHINE=i686 echo ${UNAME_MACHINE}-pc-sco$UNAME_REL else echo ${UNAME_MACHINE}-pc-sysv32 fi exit 0 ;; pc:*:*:*) # Left here for compatibility: # uname -m prints for DJGPP always 'pc', but it prints nothing about # the processor, so we play safe by assuming i386. echo i386-pc-msdosdjgpp exit 0 ;; Intel:Mach:3*:*) echo i386-pc-mach3 exit 0 ;; paragon:*:*:*) echo i860-intel-osf1 exit 0 ;; i860:*:4.*:*) # i860-SVR4 if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 else # Add other i860-SVR4 vendors below as they are discovered. echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 fi exit 0 ;; mini*:CTIX:SYS*5:*) # "miniframe" echo m68010-convergent-sysv exit 0 ;; mc68k:UNIX:SYSTEM5:3.51m) echo m68k-convergent-sysv exit 0 ;; M680?0:D-NIX:5.3:*) echo m68k-diab-dnix exit 0 ;; M68*:*:R3V[567]*:*) test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;; 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0) OS_REL='' test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && echo i486-ncr-sysv4.3${OS_REL} && exit 0 /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ && echo i586-ncr-sysv4.3${OS_REL} && exit 0 ;; 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && echo i486-ncr-sysv4 && exit 0 ;; m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) echo m68k-unknown-lynxos${UNAME_RELEASE} exit 0 ;; mc68030:UNIX_System_V:4.*:*) echo m68k-atari-sysv4 exit 0 ;; TSUNAMI:LynxOS:2.*:*) echo sparc-unknown-lynxos${UNAME_RELEASE} exit 0 ;; rs6000:LynxOS:2.*:*) echo rs6000-unknown-lynxos${UNAME_RELEASE} exit 0 ;; PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*) echo powerpc-unknown-lynxos${UNAME_RELEASE} exit 0 ;; SM[BE]S:UNIX_SV:*:*) echo mips-dde-sysv${UNAME_RELEASE} exit 0 ;; RM*:ReliantUNIX-*:*:*) echo mips-sni-sysv4 exit 0 ;; RM*:SINIX-*:*:*) echo mips-sni-sysv4 exit 0 ;; *:SINIX-*:*:*) if uname -p 2>/dev/null >/dev/null ; then UNAME_MACHINE=`(uname -p) 2>/dev/null` echo ${UNAME_MACHINE}-sni-sysv4 else echo ns32k-sni-sysv fi exit 0 ;; PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort # says echo i586-unisys-sysv4 exit 0 ;; *:UNIX_System_V:4*:FTX*) # From Gerald Hewes . # How about differentiating between stratus architectures? -djm echo hppa1.1-stratus-sysv4 exit 0 ;; *:*:*:FTX*) # From seanf@swdc.stratus.com. echo i860-stratus-sysv4 exit 0 ;; *:VOS:*:*) # From Paul.Green@stratus.com. echo hppa1.1-stratus-vos exit 0 ;; mc68*:A/UX:*:*) echo m68k-apple-aux${UNAME_RELEASE} exit 0 ;; news*:NEWS-OS:6*:*) echo mips-sony-newsos6 exit 0 ;; R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) if [ -d /usr/nec ]; then echo mips-nec-sysv${UNAME_RELEASE} else echo mips-unknown-sysv${UNAME_RELEASE} fi exit 0 ;; BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. echo powerpc-be-beos exit 0 ;; BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. echo powerpc-apple-beos exit 0 ;; BePC:BeOS:*:*) # BeOS running on Intel PC compatible. echo i586-pc-beos exit 0 ;; SX-4:SUPER-UX:*:*) echo sx4-nec-superux${UNAME_RELEASE} exit 0 ;; SX-5:SUPER-UX:*:*) echo sx5-nec-superux${UNAME_RELEASE} exit 0 ;; SX-6:SUPER-UX:*:*) echo sx6-nec-superux${UNAME_RELEASE} exit 0 ;; Power*:Rhapsody:*:*) echo powerpc-apple-rhapsody${UNAME_RELEASE} exit 0 ;; *:Rhapsody:*:*) echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} exit 0 ;; *:Darwin:*:*) case `uname -p` in *86) UNAME_PROCESSOR=i686 ;; powerpc) UNAME_PROCESSOR=powerpc ;; esac echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} exit 0 ;; *:procnto*:*:* | *:QNX:[0123456789]*:*) UNAME_PROCESSOR=`uname -p` if test "$UNAME_PROCESSOR" = "x86"; then UNAME_PROCESSOR=i386 UNAME_MACHINE=pc fi echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} exit 0 ;; *:QNX:*:4*) echo i386-pc-qnx exit 0 ;; NSR-?:NONSTOP_KERNEL:*:*) echo nsr-tandem-nsk${UNAME_RELEASE} exit 0 ;; *:NonStop-UX:*:*) echo mips-compaq-nonstopux exit 0 ;; BS2000:POSIX*:*:*) echo bs2000-siemens-sysv exit 0 ;; DS/*:UNIX_System_V:*:*) echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} exit 0 ;; *:Plan9:*:*) # "uname -m" is not consistent, so use $cputype instead. 386 # is converted to i386 for consistency with other x86 # operating systems. if test "$cputype" = "386"; then UNAME_MACHINE=i386 else UNAME_MACHINE="$cputype" fi echo ${UNAME_MACHINE}-unknown-plan9 exit 0 ;; *:TOPS-10:*:*) echo pdp10-unknown-tops10 exit 0 ;; *:TENEX:*:*) echo pdp10-unknown-tenex exit 0 ;; KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) echo pdp10-dec-tops20 exit 0 ;; XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) echo pdp10-xkl-tops20 exit 0 ;; *:TOPS-20:*:*) echo pdp10-unknown-tops20 exit 0 ;; *:ITS:*:*) echo pdp10-unknown-its exit 0 ;; SEI:*:*:SEIUX) echo mips-sei-seiux${UNAME_RELEASE} exit 0 ;; *:DRAGONFLY:*:*) echo ${UNAME_MACHINE}-unknown-dragonfly${UNAME_RELEASE} exit 0 ;; esac #echo '(No uname command or uname output not recognized.)' 1>&2 #echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 eval $set_cc_for_build cat >$dummy.c < # include #endif main () { #if defined (sony) #if defined (MIPSEB) /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, I don't know.... */ printf ("mips-sony-bsd\n"); exit (0); #else #include printf ("m68k-sony-newsos%s\n", #ifdef NEWSOS4 "4" #else "" #endif ); exit (0); #endif #endif #if defined (__arm) && defined (__acorn) && defined (__unix) printf ("arm-acorn-riscix"); exit (0); #endif #if defined (hp300) && !defined (hpux) printf ("m68k-hp-bsd\n"); exit (0); #endif #if defined (NeXT) #if !defined (__ARCHITECTURE__) #define __ARCHITECTURE__ "m68k" #endif int version; version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; if (version < 4) printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); else printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); exit (0); #endif #if defined (MULTIMAX) || defined (n16) #if defined (UMAXV) printf ("ns32k-encore-sysv\n"); exit (0); #else #if defined (CMU) printf ("ns32k-encore-mach\n"); exit (0); #else printf ("ns32k-encore-bsd\n"); exit (0); #endif #endif #endif #if defined (__386BSD__) printf ("i386-pc-bsd\n"); exit (0); #endif #if defined (sequent) #if defined (i386) printf ("i386-sequent-dynix\n"); exit (0); #endif #if defined (ns32000) printf ("ns32k-sequent-dynix\n"); exit (0); #endif #endif #if defined (_SEQUENT_) struct utsname un; uname(&un); if (strncmp(un.version, "V2", 2) == 0) { printf ("i386-sequent-ptx2\n"); exit (0); } if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ printf ("i386-sequent-ptx1\n"); exit (0); } printf ("i386-sequent-ptx\n"); exit (0); #endif #if defined (vax) # if !defined (ultrix) # include # if defined (BSD) # if BSD == 43 printf ("vax-dec-bsd4.3\n"); exit (0); # else # if BSD == 199006 printf ("vax-dec-bsd4.3reno\n"); exit (0); # else printf ("vax-dec-bsd\n"); exit (0); # endif # endif # else printf ("vax-dec-bsd\n"); exit (0); # endif # else printf ("vax-dec-ultrix\n"); exit (0); # endif #endif #if defined (alliant) && defined (i860) printf ("i860-alliant-bsd\n"); exit (0); #endif exit (1); } EOF $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && $dummy && exit 0 # Apollos put the system type in the environment. test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; } # Convex versions that predate uname can use getsysinfo(1) if [ -x /usr/convex/getsysinfo ] then case `getsysinfo -f cpu_type` in c1*) echo c1-convex-bsd exit 0 ;; c2*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit 0 ;; c34*) echo c34-convex-bsd exit 0 ;; c38*) echo c38-convex-bsd exit 0 ;; c4*) echo c4-convex-bsd exit 0 ;; esac fi cat >&2 < in order to provide the needed information to handle your system. config.guess timestamp = $timestamp uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` /bin/uname -X = `(/bin/uname -X) 2>/dev/null` hostinfo = `(hostinfo) 2>/dev/null` /bin/universe = `(/bin/universe) 2>/dev/null` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` /bin/arch = `(/bin/arch) 2>/dev/null` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` UNAME_MACHINE = ${UNAME_MACHINE} UNAME_RELEASE = ${UNAME_RELEASE} UNAME_SYSTEM = ${UNAME_SYSTEM} UNAME_VERSION = ${UNAME_VERSION} EOF exit 1 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: discover-2.1.2/buildtools/config-script-mkdoc0000755002342100234210000000270210266266026017757 0ustar perepere#! /bin/sh # $Progeny$ # This program is in the public domain. # Too bad we don't have something like sysexits.h for POSIX sh... EX_USAGE=64 if [ $# -ne 2 ]; then exit ${EX_USAGE} fi refentry=$1.gen name=$2 set -e cat < ${refentry} ${name} 1 ${name} config script ${name} options Description ${name} reports stuff about the package's configuration. Options Print the value of the variable VAR followed by a newline. See below for a list of available variables. List the available variables. Variables EOF cat >> ${refentry} cat <> ${refentry} EOF exit 0 discover-2.1.2/buildtools/distdir0000755002342100234210000000057110266266026015561 0ustar perepere#! /bin/sh # $Progeny$ # This program is in the public domain. # Too bad we don't have something like sysexits.h for POSIX sh... EX_USAGE=64 usage () { cat < discover-config 1 discover-config config script discover-config options Description discover-config reports stuff about the package's configuration. Options Print the value of the variable VAR followed by a newline. See below for a list of available variables. List the available variables. Variables major_version minor_version micro_version version cppflags ldflags libs prefix exec_prefix bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build build_cpu build_vendor build_os host host_cpu host_vendor host_os target target_cpu target_vendor target_os lt_current lt_revision lt_age discover-2.1.2/package.ent0000644002342100234210000000076410266266027014121 0ustar perepere AGP"> ATA"> IDE"> PCI"> PCMCIA"> SCSI"> USB"> VGA"> discover-2.1.2/include/0002755002342100234210000000000010655642004013427 5ustar pereperediscover-2.1.2/include/Makefile.in0000644002342100234210000000154110470336314015472 0ustar perepere# $Progeny: Makefile.in 3839 2003-11-17 04:25:01Z dsp $ SUBDIR= discover all: @${MAKE} __recur TARGET=$@ check test: all @cd tests && ${MAKE} check ############################################################################### # Clean distclean_FILES= Makefile clean: @${MAKE} __recur TARGET=$@ distclean: @${MAKE} __recur TARGET=$@ rm -rf ${distclean_FILES} maintainer-clean: @${MAKE} __recur TARGET=$@ rm -rf ${distclean_FILES} ############################################################################### # Installation install: @${MAKE} __recur TARGET=$@ uninstall: @${MAKE} __recur TARGET=$@ ############################################################################### # Distribution DISTFILES= Makefile.in distdir: ${DISTFILES} ${top_srcdir}/buildtools/distdir ${distdir}/${_THISDIR_} ${DISTFILES} @${MAKE} __recur TARGET=$@ discover-2.1.2/include/discover/0002755002342100234210000000000010655642004015245 5ustar pereperediscover-2.1.2/include/discover/discover-conf.h0000644002342100234210000000460710266266026020170 0ustar perepere/** * @file discover-conf.h * @brief Public interface for reading Discover configuration data * * These routines are the public interface used to read the * configuration data from the desired source. These interfaces are also * used to alter the URLs searched for configuration data. */ /* $Progeny$ * * Copyright 2002 Hewlett-Packard Company * * 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 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 * THE COPYRIGHT HOLDER(S) 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. */ #ifndef DISCOVER_CONF_H #define DISCOVER_CONF_H #include #ifdef __cplusplus extern "C" { #endif void discover_conf_load(discover_error_t *status); discover_bus_map_t *discover_conf_get_full_bus_map(discover_error_t *status); discover_bus_map_t *discover_conf_get_bus_map(discover_bus_t bus, discover_error_t *status); discover_bus_map_t *discover_conf_get_bus_map_by_name(char *name, discover_error_t *status); void discover_conf_insert_url(char *url, discover_error_t *status); void discover_conf_append_url(char *url, discover_error_t *status); discover_xml_url_t *discover_conf_get_urls(discover_error_t *status); void discover_conf_free(void); char *discover_conf_get_bus_name(discover_bus_t bus); char *discover_conf_get_filetype_name(discover_filetype_t filetype); int discover_conf_name_to_bus(char *name, discover_error_t *status); #ifdef __cplusplus } #endif #endif discover-2.1.2/include/discover/Makefile.in0000644002342100234210000000217110470336314017310 0ustar perepere# $Progeny: Makefile.in 4087 2004-02-13 01:36:47Z imurdock $ all: ############################################################################### # Build libdiscover_HEADERS= \ ${srcdir}/discover.h \ ${srcdir}/discover-conf.h \ ${srcdir}/discover-xml.h \ ${srcdir}/curl.h \ ${srcdir}/load-url.h \ ${srcdir}/device.h \ ${srcdir}/url-xml.h \ ${srcdir}/utils.h \ ${srcdir}/stack.h \ ${srcdir}/sysdep.h ############################################################################### # Clean distclean_FILES= Makefile clean: distclean: ${LTCLEAN} ${distclean_FILES} maintainer-clean: ${LTCLEAN} ${distclean_FILES} ############################################################################### # Installation install: ${INSTALL_DIR} ${DESTDIR}${includedir}/discover ${INSTALL_DATA} ${libdiscover_HEADERS} ${DESTDIR}${includedir}/discover ############################################################################### # Distribution DISTFILES= Makefile.in ${libdiscover_HEADERS} distdir: ${DISTFILES} ${top_srcdir}/buildtools/distdir ${distdir}/${_THISDIR_} ${DISTFILES} discover-2.1.2/include/discover/device.h0000644002342100234210000000445510266266026016667 0ustar perepere/** * @file device.h * @brief Private interface for device.c */ /* $Progeny$ * * Copyright 2002 Hewlett-Packard Company * Copyright 2001, 2002 Progeny Linux Systems, Inc. * * 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 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 * THE COPYRIGHT HOLDER(S) 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. */ #ifndef DEVICE_H #define DEVICE_H #include #include #ifdef __cplusplus extern "C" { #endif struct discover_data { char *discover_class; char *version; char *text; discover_data_t *parent; discover_data_t *child; discover_data_t *next; discover_data_t *prev; }; /* If you add or delete members from this structure, be sure to update * discover_device_copy in device.c and the detect functions in * $BUS.c. */ struct discover_device { char *busclass; char *model_id; char *model_name; char *vendor_id; char *vendor_name; discover_xml_busclass_t *busclasses; discover_xml_vendor_t *vendors; discover_data_t *data; discover_device_t *next; /* Next device that is different */ discover_device_t *extra; /* Next device that has more info on the same * piece of hardware. */ }; #ifdef __cplusplus } #endif #endif /* * Local variables: * c-file-style: "progeny" * indent-tabs-mode: nil * End: */ /* vim: set cin fo=tcroq sw=4 et sts=4 tw=75: */ discover-2.1.2/include/discover/sysdep.h0000644002342100234210000000606210513646220016724 0ustar perepere/** * @file sysdep.h * @brief Private interface for system dependencies */ /* $Progeny$ * * AUTHOR: John R. Daily * * Copyright 2002 Progeny Linux Systems, Inc. * * 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 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 * THE COPYRIGHT HOLDER(S) 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. */ #ifndef SYSDEP_H #define SYSDEP_H #ifdef __cplusplus extern "C" { #endif /** * Linked list node, used to return data specific to the * sysdep/device in question, to be passed to the user * under the "device" data path. */ typedef struct discover_sysdep_device_data { /** String giving the path for the data (not including "device" */ char *path; /** String with the data's value */ char *value; /** Pointer to the next data node */ struct discover_sysdep_device_data *next; } discover_sysdep_device_data_t; /** * Linked list node, used to return hardware-identification * information discovered by the system-dependent interface */ typedef struct discover_sysdep_data { /** String describing the general device class */ char *busclass; /** String describing the manufacturer or distributor */ char *vendor; /** String identifying the model */ char *model; /** Pointer to any sysdep/device specific data to be returned */ discover_sysdep_device_data_t *data; /** Pointer to the next hardware device discovered */ struct discover_sysdep_data *next; } discover_sysdep_data_t; discover_sysdep_data_t *_discover_sysdep_data_new(void); discover_sysdep_device_data_t *_discover_sysdep_device_data_new(void); void _discover_free_sysdep_data(discover_sysdep_data_t *); void _discover_free_sysdep_device_data(discover_sysdep_device_data_t *); discover_sysdep_data_t *_discover_get_ata_raw(void); discover_sysdep_data_t *_discover_get_pci_raw(void); discover_sysdep_data_t *_discover_get_usb_raw(void); discover_sysdep_data_t *_discover_get_pcmcia_raw(void); discover_sysdep_data_t *_discover_get_scsi_raw(void); #ifdef __cplusplus } #endif #endif /* * Local variables: * c-file-style: "progeny" * indent-tabs-mode: nil * End: */ /* vim: set cin fo=tcroq sw=4 et sts=4 tw=75: */ discover-2.1.2/include/discover/stack.h0000644002342100234210000000414010266266026016524 0ustar perepere/* $Progeny$ */ /** * @file stack.h * @brief Stack routines for Discover */ /* * AUTHOR: Josh Bressers * * Copyright 2002 Progeny Linux Systems, Inc. * * 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 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 * THE COPYRIGHT HOLDER(S) 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. */ #ifndef STACK_H #define STACK_H #include #ifdef __cplusplus extern "C" { #endif /* Yes, it's not a stack, go away. */ enum action {PUSH, POP, CREATE}; enum status {NOTHING, NEW, CHILD, CLOSE}; typedef struct xml_stack discover_xml_stack; struct xml_stack { discover_xml_stack *prev; void *data; int depth; } ; discover_xml_stack * discover_xml_stack_new(); void discover_xml_stack_destroy(discover_xml_stack *stack); void discover_xml_stack_push(discover_xml_stack **stack, void *data); void * discover_xml_stack_pop(discover_xml_stack **stack); void * discover_xml_stack_get(discover_xml_stack *stack); void * discover_xml_stack_getbynum(discover_xml_stack *stack, int i); #ifdef __cplusplus } #endif #endif /* * Local variables: * c-file-style: "progeny" * indent-tabs-mode: nil * End: */ /* vim: set cin fo=tcroq sw=4 et sts=4 tw=75: */ discover-2.1.2/include/discover/url-xml.h0000644002342100234210000000270610266266026017025 0ustar perepere/** * @file url-xml.h * @brief XML URL handling */ /* $Progeny$ * * Copyright 2002 Hewlett-Packard Company * * 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 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 * THE COPYRIGHT HOLDER(S) 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. */ #ifndef DISCOVER_URL_XML_H #define DISCOVER_URL_XML_H #ifdef __cplusplus extern "C" { #endif struct discover_xml_url { char *url; char *bus; char *type; char *label; discover_xml_url_t *next; discover_xml_url_t *last; }; #ifdef __cplusplus } #endif #endif discover-2.1.2/include/discover/curl.h0000644002342100234210000000270310266266026016367 0ustar perepere/** * @file curl.h * @brief Private interface to curl */ /* $Progeny$ * * Copyright 2002 Hewlett-Packard Company * * 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 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 * THE COPYRIGHT HOLDER(S) 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. */ #ifndef DISCOVER_CURL_H #define DISCOVER_CURL_H #include #ifdef __cplusplus extern "C" { #endif size_t _discover_curl_xmlparse_callback(void *ptr, size_t size, size_t nmemb, void *stream); #ifdef __cplusplus } #endif #endif discover-2.1.2/include/discover/discover-xml.h0000644002342100234210000001324210266266026020036 0ustar perepere/** * @file discover-xml.h * @brief Public interface to Discover's XML handling * * Public interface that exposes Discover's XML routines. * These functions are used to read the XML data * loaded from the specified configuration file(s). */ /* $Progeny$ * * AUTHOR: John R. Daily * * Copyright 2002 Hewlett-Packard Company * Copyright 2002 Progeny Linux Systems, Inc. * * 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 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 * THE COPYRIGHT HOLDER(S) 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. */ #ifndef DISCOVER_XML_H #define DISCOVER_XML_H #include #ifdef __cplusplus extern "C" { #endif discover_device_t * discover_xml_find_device(discover_device_t *xml_devices, char *target_vendor, char *target_model, discover_error_t *status); discover_device_t * discover_xml_find_next_device(discover_device_t *xml_devices, char *target_vendor, char *target_model, discover_error_t *status); discover_device_t * discover_xml_get_matching_devices(discover_device_t *xml_devices, char *target_vendor, char *target_model, discover_error_t *status); int discover_xml_version_cmp(char *range, char *version, discover_error_t *status); /****************************************************************************** * url */ discover_xml_url_t *discover_xml_url_new(void); void discover_xml_url_copy(discover_xml_url_t *src, discover_xml_url_t *dst); void discover_xml_url_free(discover_xml_url_t *urls); char * discover_xml_url_get_url(discover_xml_url_t *url); char * discover_xml_url_get_bus(discover_xml_url_t *url); char * discover_xml_url_get_type(discover_xml_url_t *url); discover_xml_url_t * discover_xml_url_get_next(discover_xml_url_t *url); discover_xml_url_t * discover_xml_url_get_last(discover_xml_url_t *url); char * discover_xml_url_get_label(discover_xml_url_t *url); discover_xml_url_t *discover_xml_get_urls(discover_error_t *status); void discover_xml_free_urls(void); discover_xml_url_t *discover_xml_get_data_urls(discover_bus_t bus, discover_filetype_t filetype, discover_error_t *status); void discover_xml_free_data_urls(void); /****************************************************************************** * busclass */ discover_xml_busclass_t *discover_xml_busclass_new(void); discover_xml_busclass_t *discover_xml_get_busclasses(discover_bus_t bus, discover_error_t *status); void discover_xml_free_busclasses(void); void discover_xml_merge_busclass_url(discover_xml_busclass_t **blist, char *filename, discover_error_t *status); char *discover_xml_busclass_to_class(char *busclass, discover_xml_busclass_t *busclasses); int discover_xml_busclass_cmp(char *busclass, char *discover_class, discover_xml_busclass_t *busclasses); char *discover_xml_busclass_get_id(discover_xml_busclass_t *busclass); char *discover_xml_busclass_get_name(discover_xml_busclass_t *busclass); discover_xml_busclass_t * discover_xml_busclass_get_next(discover_xml_busclass_t *busclass); void discover_xml_busclass_free(discover_xml_busclass_t *busclasses); /****************************************************************************** * device */ discover_device_t * discover_xml_get_devices(discover_bus_t bus, discover_error_t *status); void discover_xml_free_devices(void); void discover_xml_merge_device_url(discover_device_t **dlist, char *url, discover_xml_busclass_t *busclasses, discover_xml_vendor_t *vendors, discover_error_t *status); /****************************************************************************** * vendor */ discover_xml_vendor_t *discover_xml_vendor_new(void); void discover_xml_merge_vendor_url(discover_xml_vendor_t **vlist, char *filename, discover_error_t *status); discover_xml_vendor_t *discover_xml_get_vendors(discover_bus_t bus, discover_error_t *status); void discover_xml_free_vendors(void); char *discover_xml_vendor_id2name(discover_xml_vendor_t *vendors, char *id); char *discover_xml_vendor_get_id(discover_xml_vendor_t *vendor); char *discover_xml_vendor_get_name(discover_xml_vendor_t *vendor); discover_xml_vendor_t * discover_xml_vendor_get_next(discover_xml_vendor_t *vendor); void discover_xml_vendor_free(discover_xml_vendor_t *vendors); #ifdef __cplusplus } #endif #endif discover-2.1.2/include/discover/load-url.h0000644002342100234210000000260510266266026017142 0ustar perepere/** * @file load-url.h * @brief URL loading interface */ /* $Progeny$ * * Copyright 2003 Hewlett-Packard Company * * 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 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 * THE COPYRIGHT HOLDER(S) 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. */ #ifndef DISCOVER_LOAD_URL_H #define DISCOVER_LOAD_URL_H #include #ifdef __cplusplus extern "C" { #endif int _discover_load_url(const char *url, XML_Parser parser); #ifdef __cplusplus } #endif #endif discover-2.1.2/include/discover/discover.h0000644002342100234210000002114310513646220017230 0ustar perepere/** * @file discover.h * @brief Public interface for Discover library */ /* $Progeny$ * * Copyright 2001, 2002 Progeny Linux Systems, Inc. * Copyright 2002 Hewlett-Packard Company * * 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 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 * THE COPYRIGHT HOLDER(S) 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. */ #ifndef DISCOVER_H #define DISCOVER_H #include #ifdef __cplusplus extern "C" { #endif /** * @mainpage Discover API Reference * * This is the Discover application programming interface (API) reference. * If you have not already read The Discover * Hardware Detection System, you should do so now. The following list * describes the contents of the links at the top of the page: * * - Main page -- This page * * - Modules -- List of top-level modules; you probably want to * start here, where navigation is fastest * * - Data Structures -- List of data structures used by Discover * * - File List -- List of files comprising Discover's external * interface, with links to documentation and source code * * - Data Fields -- List of fields used in Discover's structs and * unions * * - Globals -- List of global symbols, with links to file summaries * * The Discover library was written by Eric Gillespie, John R. Daily, and * Josh Bressers, with design input from Branden Robinson. * */ /** * @defgroup types Types * @{ */ typedef enum { /** Success */ DISCOVER_SUCCESS, /** Input/output error */ DISCOVER_EIO, /** XML parse error */ DISCOVER_EXML, /** System error */ DISCOVER_ESYS, /** Disabled bus */ DISCOVER_EBUSDISABLED, /** Bus not found */ DISCOVER_EBUSNOTFOUND, /** Data source not found */ DISCOVER_EDATANOTFOUND, /** Device not found */ DISCOVER_EDEVICENOTFOUND, /** Invalid version range */ DISCOVER_EBADVERSION, /** Action not implemented for this platform */ DISCOVER_ENOIMPL } discover_error_code_t; struct discover_error; /** Signature of functions that assist with creating message strings */ typedef void *(discover_create_message_t)(struct discover_error **, char *); /** * All functions that perform some action (as opposed to returning a * member of a structure, for example) take an argument of this type. * It is used to report that the action succeeded, or why it failed. */ typedef struct discover_error { /** Return the error code value that is checked */ discover_error_code_t code; /** String containing the message from the last error */ char *message; /** Function pointer into a routine to create a message for us */ discover_create_message_t *create_message; } discover_error_t; /** Mapping of bus names to functions */ typedef struct discover_bus_map discover_bus_map_t; /** Structure describing a device */ typedef struct discover_device discover_device_t; /** Data element from the device XML files */ typedef struct discover_data discover_data_t; /** Structure for mapping Discover device types to bus-specific classes */ typedef struct discover_xml_busclass discover_xml_busclass_t; /** Structure for mapping vendor names to bus-specific IDs */ typedef struct discover_xml_vendor discover_xml_vendor_t; /** Structure describing a URL where XML data can be found */ typedef struct discover_xml_url discover_xml_url_t; /** Signature of functions returning discover_device_t structures */ typedef discover_device_t *(discover_device_func_t)(discover_error_t *); /** Signature of functions returning discover_xml_busclass_t structures */ typedef discover_xml_busclass_t *(discover_xml_busclass_func_t)(discover_error_t *); /** Signature of functions returning discover_xml_vendor_t structures */ typedef discover_xml_vendor_t *(discover_xml_vendor_func_t)(discover_error_t *); /** Signature of functions returning discover_xml_url_t structures */ typedef discover_xml_url_t *(discover_xml_url_func_t)(discover_error_t *); /** Signature of functions that free internal lists */ typedef void (discover_free_func_t)(void); #include /** Signature of functions that return sysdep_data_t lists */ typedef discover_sysdep_data_t *(discover_sysdep_raw_func_t)(void); /** * Enumerate the buses. * */ typedef enum { ATA, PCI, PCMCIA, SCSI, USB } discover_bus_t; /** * Number of buses we support * */ #define BUS_COUNT 5 /** * Enumerate the types of data files: vendor, busclass, and device. * */ typedef enum { VENDOR_TYPE, BUSCLASS_TYPE, DEVICE_TYPE } discover_filetype_t; /** * Bus scanning information is loaded from the config file. The * scan_default member may be set to 0 to avoid scanning a specified * bus. If the scan_never flag is set, the bus will never be scanned; this * behavior is controlled from the config file. * * The function pointer exists to allow client code to override the * sysdeps; it is used by the unit tests provided with Discover. * */ struct discover_bus_map { /** Human-readable name */ char *name; /** Boolean (sort of) defining the bus's default behavior */ int scan_default; /** Never scan this bus if true */ int scan_never; /** Function pointer that will acquire data */ discover_sysdep_raw_func_t *get_raw; }; /** @} */ /** Function responsible for returning a devicelist of current devices */ discover_device_t *discover_get_devices(discover_bus_t bus, discover_error_t *status); /** Free the currently allocated memory holding the device information. */ void discover_free_devices(void); discover_error_t *discover_error_new(void); void discover_error_free(discover_error_t *status); char *discover_strerror(discover_error_t *err); int discover_major_version(void); int discover_minor_version(void); int discover_micro_version(void); /****************************************************************************** * discover_device */ discover_device_t *discover_device_new(void); /* Class is "video", "sound", etc. */ discover_device_t *discover_device_find(char *discover_class, discover_error_t *status); char *discover_device_get_data(discover_device_t *device, char *path, char *version, discover_error_t *status); void discover_device_copy(discover_device_t *src, discover_device_t *dst); char *discover_device_get_busclass(discover_device_t *device); char *discover_device_get_model_id(discover_device_t *device); char *discover_device_get_model_name(discover_device_t *device); char *discover_device_get_vendor_id(discover_device_t *device); char *discover_device_get_vendor_name(discover_device_t *device); discover_data_t * discover_device_get_data_struct(discover_device_t *device); discover_device_t * discover_device_get_next(discover_device_t *device); void discover_device_free(discover_device_t *devices, int free_data); /****************************************************************************** * discover_data */ discover_data_t *discover_data_new(void); char *discover_data_get_class(discover_data_t *data); char *discover_data_get_text(discover_data_t *data); discover_data_t *discover_data_get_parent(discover_data_t *data); discover_data_t *discover_data_get_child(discover_data_t *data); discover_data_t *discover_data_get_next(discover_data_t *data); discover_data_t *discover_data_get_prev(discover_data_t *prev); discover_data_t *discover_data_get_first(discover_data_t *data); void discover_data_free(discover_data_t *data_tree); #ifdef __cplusplus } #endif #endif /* * Local variables: * c-file-style: "progeny" * indent-tabs-mode: nil * End: */ /* vim: set cin fo=tcroq sw=4 et sts=4 tw=75: */ discover-2.1.2/include/discover/utils.h0000644002342100234210000000461110266266026016562 0ustar perepere/** * @file utils.c * @brief Helper utilities */ /* $Progeny$ * * Copyright 2002 Hewlett-Packard Company * Copyright 2002 Progeny Linux Systems, Inc. * * 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 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 * THE COPYRIGHT HOLDER(S) 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. */ #ifndef DISCOVER_UTILS_H #define DISCOVER_UTILS_H #define _GNU_SOURCE 1 #define __USE_GNU 1 #include #include #include #include #include #include #include #include "config.h" /*gettext stuff*/ #ifdef ENABLE_NLS # include # include # define _(String) dgettext (PACKAGE, String) # ifdef gettext_noop # define N_(String) gettext_noop (String) # else # define N_(String) (String) # endif #else /* Stubs that do something close enough */ # define textdomain(String) (String) # define gettext(String) (String) # define dgettext(Domain,Message) (Message) # define dcgettext(Domain,Message,Type) (Message) # define bindtextdomain(Domain,Directory) (Domain) # define _(String) (String) # define N_(String) (String) #endif #ifdef __cplusplus extern "C" { #endif void * _discover_xmalloc(size_t size); void * _discover_xrealloc(void *ptr, size_t size); char * _discover_xstrdup(const char *s); #include void * _discover_create_message(discover_error_t **status, char *message); #ifdef __cplusplus } #endif #endif /* vim: set cin fo=tcroq sw=4 et sts=4 tw=75: */ discover-2.1.2/tests/0002755002342100234210000000000010655642005013147 5ustar pereperediscover-2.1.2/tests/xml.c0000644002342100234210000001614010266266026014116 0ustar perepere/* $Progeny$ */ /* * Copyright 2002 Progeny Linux Systems, Inc. * Copyright 2002 Hewlett-Packard Company * * 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 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 * THE COPYRIGHT HOLDER(S) 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. */ #include #include #include #include #include static char *vendor = "102b"; static char *model = "0010"; static char *version_number_high = "2.0"; static char *version_number_low = "1.0"; static char *version_number_text = "2.4.18.ac4-686"; static char *version_range_exc_exc = "(1.0, 2.0)"; static char *version_range_inc_inc = "[1.0, 2.0]"; static char *version_range_exc_inc = "(1.0, 2.0]"; static char *version_range_inc_exc = "[1.0, 2.0)"; static char *version_range_text_inf = "(2.4, inf)"; static char *version_range_text_lim = "(2.4, 2.4.18]"; static int cmp; static discover_device_t *device, *xml_devices; static discover_error_t *status; START_TEST(xml_find_device) { xml_devices = discover_xml_get_devices(PCI, status); fail_unless(status->code == 0, status->message); device = discover_xml_find_device(xml_devices, vendor, model, status); fail_unless(device != NULL, NULL); } END_TEST START_TEST(xml_find_device_vendor_only) { xml_devices = discover_xml_get_devices(PCI, status); fail_unless(status->code == 0, status->message); device = discover_xml_find_device(xml_devices, vendor, NULL, status); fail_unless(device != NULL, NULL); } END_TEST START_TEST(xml_find_device_model_only) { xml_devices = discover_xml_get_devices(PCI, status); fail_unless(status->code == 0, status->message); device = discover_xml_find_device(xml_devices, NULL, model, status); fail_unless(device != NULL, NULL); } END_TEST START_TEST(xml_version_cmp_exc_exc_high) { xml_devices = discover_xml_get_devices(PCI, status); fail_unless(status->code == 0, status->message); discover_xml_version_cmp(version_range_exc_exc, version_number_high, status); fail_unless(status->code == 0, status->message); fail_unless(!cmp, NULL); } END_TEST START_TEST(xml_version_cmp_exc_exc_low) { xml_devices = discover_xml_get_devices(PCI, status); fail_unless(status->code == 0, status->message); cmp = discover_xml_version_cmp(version_range_exc_exc, version_number_low, status); fail_unless(status->code == 0, status->message); fail_unless(!cmp, NULL); } END_TEST START_TEST(xml_version_cmp_inc_inc_high) { xml_devices = discover_xml_get_devices(PCI, status); fail_unless(status->code == 0, status->message); cmp = discover_xml_version_cmp(version_range_inc_inc, version_number_high, status); fail_unless(status->code == 0, status->message); fail_unless(cmp, NULL); } END_TEST START_TEST(xml_version_cmp_inc_inc_low) { xml_devices = discover_xml_get_devices(PCI, status); fail_unless(status->code == 0, status->message); cmp = discover_xml_version_cmp(version_range_inc_inc, version_number_low, status); fail_unless(status->code == 0, status->message); fail_unless(cmp, NULL); } END_TEST START_TEST(xml_version_cmp_exc_inc_high) { xml_devices = discover_xml_get_devices(PCI, status); fail_unless(status->code == 0, status->message); cmp = discover_xml_version_cmp(version_range_exc_inc, version_number_high, status); fail_unless(status->code == 0, status->message); fail_unless(cmp, NULL); } END_TEST START_TEST(xml_version_cmp_exc_inc_low) { xml_devices = discover_xml_get_devices(PCI, status); fail_unless(status->code == 0, status->message); cmp = discover_xml_version_cmp(version_range_exc_inc, version_number_low, status); fail_unless(!cmp, NULL); } END_TEST START_TEST(xml_version_cmp_inc_exc_high) { xml_devices = discover_xml_get_devices(PCI, status); fail_unless(status->code == 0, status->message); cmp = discover_xml_version_cmp(version_range_inc_exc, version_number_high, status); fail_unless(!cmp, NULL); } END_TEST START_TEST(xml_version_cmp_inc_exc_low) { xml_devices = discover_xml_get_devices(PCI, status); fail_unless(status->code == 0, status->message); cmp = discover_xml_version_cmp(version_range_inc_exc, version_number_low, status); fail_unless(status->code == 0, status->message); fail_unless(cmp, NULL); } END_TEST START_TEST(xml_version_cmp_text_inf) { xml_devices = discover_xml_get_devices(PCI, status); fail_unless(status->code == 0, status->message); cmp = discover_xml_version_cmp(version_range_text_inf, version_number_text, status); fail_unless(status->code == 0, status->message); fail_unless(cmp, NULL); } END_TEST START_TEST(xml_version_cmp_text_lim) { xml_devices = discover_xml_get_devices(PCI, status); fail_unless(status->code == 0, status->message); cmp = discover_xml_version_cmp(version_range_text_lim, version_number_text, status); fail_unless(status->code == 0, status->message); fail_unless(!cmp, NULL); } END_TEST Suite * make_xml_suite(void) { Suite *s; TCase *tc_core; status = discover_error_new(); tc_core = tcase_create("core"); tcase_add_test(tc_core, xml_find_device); tcase_add_test(tc_core, xml_find_device_vendor_only); tcase_add_test(tc_core, xml_find_device_model_only); tcase_add_test(tc_core, xml_version_cmp_exc_exc_high); tcase_add_test(tc_core, xml_version_cmp_exc_exc_low); tcase_add_test(tc_core, xml_version_cmp_inc_inc_high); tcase_add_test(tc_core, xml_version_cmp_inc_inc_low); tcase_add_test(tc_core, xml_version_cmp_exc_inc_high); tcase_add_test(tc_core, xml_version_cmp_exc_inc_low); tcase_add_test(tc_core, xml_version_cmp_inc_exc_high); tcase_add_test(tc_core, xml_version_cmp_inc_exc_low); tcase_add_test(tc_core, xml_version_cmp_text_inf); tcase_add_test(tc_core, xml_version_cmp_text_lim); s = suite_create("xml"); suite_add_tcase(s, tc_core); return s; } discover-2.1.2/tests/Makefile.in0000644002342100234210000000237510655640742015227 0ustar perepere# $Progeny$ # Override default CFLAGS from build.mk. CFLAGS= @CFLAGS@ @CHECK_CFLAGS@ all: check: test @cd ${srcdir}/data && ${abs_builddir}/test ############################################################################### # Build test_SOURCES= device.c main.c xml.c test_OBJS= device.lo main.lo xml.lo test_LIBS= ${top_builddir}/lib/libdiscover.la ${LIBS} ${CHECK_LIBS} test: ${test_OBJS} ${top_builddir}/lib/libdiscover.la ${libportability} ${LTLINK} -o $@ ${test_OBJS} ${test_LIBS} ############################################################################### # Clean clean_FILES= test ${test_OBJS} distclean_FILES= Makefile clean: ${LTCLEAN} ${clean_FILES} distclean: ${LTCLEAN} ${clean_FILES} ${distclean_FILES} maintainer-clean: ${LTCLEAN} ${clean_FILES} ${distclean_FILES} ############################################################################### # Installation install: uninstall: ############################################################################### # Distribution DISTFILES= Makefile.in data ${test_SOURCES} test.h distdir: ${DISTFILES} ${top_srcdir}/buildtools/distdir ${distdir}/${_THISDIR_} ${DISTFILES} # Avoid subversion directories in the tarball. find ${distdir}/${_THISDIR_} -type d -name .svn |xargs rm -rf discover-2.1.2/tests/data/0002775002342100234210000000000010655642005014062 5ustar pereperediscover-2.1.2/tests/data/scsi-device.xml0000664002342100234210000000113010655640674017005 0ustar perepere sd_mod cdrom st discover-2.1.2/tests/data/pci-busclass.xml0000664002342100234210000000115110655640674017202 0ustar perepere This tests the unknown tag handling. discover-2.1.2/tests/data/usb-busclass.xml0000664002342100234210000000065710655640674017232 0ustar perepere discover-2.1.2/tests/data/usb-device.xml0000664002342100234210000000317310655640674016646 0ustar perepere unknown unknown unknown ignore unknown unknown unknown unknown unknown discover-2.1.2/tests/data/list.xml0000664002342100234210000000053110655640674015566 0ustar perepere This tests the unknown tag handling. discover-2.1.2/tests/data/ata-vendor.xml0000664002342100234210000000017210655640674016654 0ustar perepere discover-2.1.2/tests/data/pci-vendor.xml0000664002342100234210000000030710655640674016662 0ustar perepere This tests the unknown tag handling. discover-2.1.2/tests/data/usb-vendor.xml0000664002342100234210000000072010655640674016677 0ustar perepere discover-2.1.2/tests/data/pci-device.xml0000664002342100234210000000563610655640674016636 0ustar perepere XFree86 mgaII mga XFree86 mga mill1-2 mill2-24 mill24-inf mill24-bad Extra data discover-2.1.2/tests/data/scsi-busclass.xml0000664002342100234210000000103110655640674017365 0ustar perepere discover-2.1.2/tests/data/ata-busclass.xml0000664002342100234210000000035410655640674017200 0ustar perepere discover-2.1.2/tests/data/ata-device.xml0000664002342100234210000000137010655640674016617 0ustar perepere ide-disk ide-cd ide-floppy ide-tape discover-2.1.2/tests/data/scsi-vendor.xml0000664002342100234210000000017310655640674017051 0ustar perepere discover-2.1.2/tests/device.c0000644002342100234210000001736610266266026014570 0ustar perepere/* $Progeny$ */ /* * Copyright 2002 Progeny Linux Systems, Inc. * Copyright 2002 Hewlett-Packard Company * * 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 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 * THE COPYRIGHT HOLDER(S) 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. */ #include #include #include #include #include struct test_data_structure { char *device_class; char *vendor_id; char *model_id; char *model_name; char *vendor_name; char *data_class; char *data_version; char *data_text; }; struct test_data_structure test_data = { "display", "102b", "0010", "Millennium 4MB MGA-I [Impression?]", "Matrox Graphics, Inc.", "xfree86/server/device/driver", "4.1.1", "mga" }; struct test_data_structure test_data2 = { "display", "102b", "1010", "Faux Millennium 8MB MGA-II", "Matrox Graphics, Inc.", "xfree86/server/device/driver", NULL, "mga" }; struct test_data_structure test_data3 = { "display", "102b", "2020", "Faux^2 Millennium 8MB MGA-II", "Matrox Graphics, Inc.", "linux/module/name", "0.1", "Extra data", }; struct test_data_structure test_data4 = { "display", "102b", "3030", "Faux Millennium^3", "Matrox Graphics, Inc.", NULL, NULL, NULL, }; static discover_device_t *device; static discover_error_t *status; static bool device_matches(discover_device_t *found, struct test_data_structure *target) { return (strcmp(discover_device_get_vendor_id(found), target->vendor_id) == 0 && strcmp(discover_device_get_model_id(found), target->model_id) == 0); } START_TEST(device_find) { device = discover_device_find(test_data.device_class, status); fail_unless(status->code == 0, status->message); } END_TEST START_TEST(device_get_vendor_id) { device = discover_device_find(test_data.device_class, status); fail_unless(status->code == 0, status->message); fail_unless(strcmp(discover_device_get_vendor_id(device), test_data.vendor_id) == 0, NULL); } END_TEST START_TEST(device_get_model_id) { device = discover_device_find(test_data.device_class, status); fail_unless(status->code == 0, status->message); fail_unless(strcmp(discover_device_get_model_id(device), test_data.model_id) == 0, NULL); } END_TEST START_TEST(device_get_vendor_name) { device = discover_device_find(test_data.device_class, status); fail_unless(status->code == 0, status->message); fail_unless(strcmp(discover_device_get_vendor_name(device), test_data.vendor_name) == 0, NULL); } END_TEST START_TEST(device_get_model_name) { device = discover_device_find(test_data.device_class, status); fail_unless(status->code == 0, status->message); fail_unless(strcmp(discover_device_get_model_name(device), test_data.model_name) == 0, NULL); } END_TEST START_TEST(device_get_data) { char *data_string; device = discover_device_find(test_data.device_class, status); fail_unless(status->code == 0, status->message); while (device && !device_matches(device, &test_data)) { device = discover_device_get_next(device); } fail_unless(device != NULL, NULL); data_string = discover_device_get_data(device, test_data.data_class, test_data.data_version, status); fail_unless(status->code == 0, status->message); fail_unless(data_string != NULL, NULL); fail_unless(strcmp(data_string, test_data.data_text) == 0, NULL); } END_TEST START_TEST(device_get_data_unknown_tag) { char *data_string; device = discover_device_find(test_data2.device_class, status); fail_unless(status->code == 0, status->message); while (device && !device_matches(device, &test_data2)) { device = discover_device_get_next(device); } fail_unless(device != NULL, NULL); data_string = discover_device_get_data(device, test_data2.data_class, test_data2.data_version, status); fail_unless(status->code == 0, status->message); /* This time we want data_string to be NULL, because the data is * hidden in an unknown tag. */ fail_unless(data_string == NULL, data_string); } END_TEST START_TEST(device_test_version) { char *data_string; device = discover_device_find(test_data3.device_class, status); fail_unless(status->code == 0, status->message); while (device && !device_matches(device, &test_data3)) { device = discover_device_get_next(device); } fail_unless(device != NULL, NULL); /* * We should have extra information, specifically an extra device * structure. */ fail_unless(device->extra != NULL, NULL); data_string = discover_device_get_data(device, test_data3.data_class, test_data3.data_version, status); fail_unless(status->code == 0, status->message); fail_unless(data_string != NULL, NULL); fail_unless(strcmp(data_string, test_data3.data_text) == 0, NULL); } END_TEST static void recurse_node(discover_data_t *node, char **buffer) { if (node) { **buffer = node->discover_class[0]; (*buffer)++; recurse_node(node->child, buffer); recurse_node(node->next, buffer); } } START_TEST(device_test_internals) { char *buffer = calloc(500, 1); char *bufptr = buffer; device = discover_device_find(test_data4.device_class, status); fail_unless(status->code == 0, status->message); while (device && !device_matches(device, &test_data4)) { device = discover_device_get_next(device); } fail_unless(device != NULL, NULL); recurse_node(device->data, &buffer); fail_unless(strcmp(bufptr, "This is a depth-first traversal") == 0, bufptr); } END_TEST Suite * make_device_suite(void) { Suite *s; TCase *tc_core; status = discover_error_new(); tc_core = tcase_create("core"); tcase_add_test(tc_core, device_find); tcase_add_test(tc_core, device_get_vendor_id); tcase_add_test(tc_core, device_get_model_id); tcase_add_test(tc_core, device_get_vendor_name); tcase_add_test(tc_core, device_get_model_id); tcase_add_test(tc_core, device_get_model_name); tcase_add_test(tc_core, device_get_data); tcase_add_test(tc_core, device_get_data_unknown_tag); tcase_add_test(tc_core, device_test_version); tcase_add_test(tc_core, device_test_internals); s = suite_create("device"); suite_add_tcase(s, tc_core); return s; } discover-2.1.2/tests/main.c0000644002342100234210000000567610266266026014256 0ustar perepere/* $Progeny$ */ /* * Copyright 2002 Hewlett-Packard Company * * 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 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 * THE COPYRIGHT HOLDER(S) 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. */ #include #include #include #include #include #include #include #include #include "discover/device.h" #include "test.h" static discover_device_t *pci_devices; unsigned long int ids[] = { 0x102b0010, 0x102b1010, 0x102b2020, 0x102b3030, 0 }; static void _sysdep_data_init(discover_sysdep_data_t *node) { node->vendor = malloc(5); node->model = malloc(5); } static discover_sysdep_data_t * get_pci_devices(void) { discover_sysdep_data_t *head = NULL, *node, *last = NULL; int i; for (i = 0; ids[i]; i++) { node = _discover_sysdep_data_new(); _sysdep_data_init(node); sprintf(node->vendor, "%04x", ids[i] >> 16); sprintf(node->model, "%04x", ids[i] & 0xffff); if (head == NULL) { head = node; last = head; } else { last->next = node; last = node; } } return head; } int main(void) { discover_error_t *status; discover_bus_map_t *busmap; SRunner *sr; int i; pci_devices = NULL; status = discover_error_new(); busmap = discover_conf_get_full_bus_map(status); assert(status->code == 0); for (i = 0; busmap[i].name; i++) { if (strcmp(busmap[i].name, "pci") == 0) { busmap[i].scan_default = 1; busmap[i].get_raw = get_pci_devices; } else { busmap[i].scan_default = 0; } } discover_conf_insert_url("file://list.xml", status); assert(status->code == 0); sr = srunner_create(make_device_suite()); srunner_add_suite(sr, make_xml_suite()); srunner_run_all(sr, CK_NORMAL); if (srunner_ntests_failed(sr) != 0) { exit(EX_SOFTWARE); } return 0; } discover-2.1.2/tests/test.h0000644002342100234210000000012010266266026014271 0ustar perepere/* $Progeny$ */ Suite * make_device_suite(void); Suite * make_xml_suite(void); discover-2.1.2/discover/0002755002342100234210000000000010655642004013622 5ustar pereperediscover-2.1.2/discover/Makefile.in0000664002342100234210000000303010655641520015665 0ustar perepere# $Progeny$ all: discover discover-static ############################################################################### # Build discover_SOURCES= discover.c discover_OBJS= discover.lo discover_LIBS= ${libportability} ${LIBS} discover: ${discover_OBJS} ${top_builddir}/lib/libdiscover.la ${libportability} ${LTLINK} -o $@ ${discover_OBJS} ${discover_LIBS} \ ${top_builddir}/lib/libdiscover.la ${libportability} discover-static: ${discover_OBJS} ${top_builddir}/lib/libdiscover.la ${libportability} ${LTLINK} -o $@ -all-static ${discover_OBJS} ${discover_LIBS} \ ${top_builddir}/lib/libdiscover.la ${libportability} ############################################################################### # Clean clean_FILES= discover discover-static ${discover_OBJS} distclean_FILES= Makefile clean: ${LTCLEAN} ${clean_FILES} distclean: ${LTCLEAN} ${clean_FILES} ${distclean_FILES} maintainer-clean: ${LTCLEAN} ${clean_FILES} ${distclean_FILES} ############################################################################### # Installation install: discover ${INSTALL_DIR} ${DESTDIR}${bindir} ${INSTALL_PROGRAM} discover ${DESTDIR}${bindir}/discover ${INSTALL_PROGRAM} discover-static ${DESTDIR}${bindir}/discover-static uninstall: rm -f ${DESTDIR}${bindir}/discover ${DESTDIR}${bindir}/discover-static ############################################################################### # Distribution DISTFILES= Makefile.in ${discover_SOURCES} distdir: ${DISTFILES} ${top_srcdir}/buildtools/distdir ${distdir}/${_THISDIR_} ${DISTFILES} discover-2.1.2/discover/discover.c0000644002342100234210000006034310272036044015604 0ustar perepere/* discover.c -- Hardware-querying utility * * $Progeny$ * * Copyright 2000, 2001, 2002 Progeny Linux Systems, Inc. * Copyright 2002 Hewlett-Packard Company * * 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 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 * THE COPYRIGHT HOLDER(S) 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. */ #include "config.h" #include #include #include #include #include #include #include #include #include #include #include #include enum action { BUS_SUMMARY, QUERY_DATA, TYPE_SUMMARY }; #define FORMAT_LENGTH 20 typedef struct format_details { int error_char; /* -1 means no error */ int plain_output; /* -1 means no substitution, use format string */ char format_substring[FORMAT_LENGTH+1]; } format_details_t; typedef struct linked_list_node { char *buffer; struct linked_list_node *next; } linked_list_node_t; typedef struct linked_list { linked_list_node_t *head; linked_list_node_t *cur; } linked_list_t; static int do_model = 1; static int do_vendor = 1; static int do_model_id = 0; static int do_vendor_id = 0; static int verbose = 0; static int normalize_data = 0; static char *format_string = NULL; static char shortopts[] = "bd:e:htVv"; static linked_list_t *path_list; static linked_list_t *data_list; /* I use 1 in the fourth field for all long options which have no * equivalent short options, then (in the while loop) choose how to * react based on the first field. I hate getopt_long. */ static struct option longopts[] = { /* actions */ { "bus-summary", no_argument, NULL, 'b' }, /* Default */ { "data-path", required_argument, NULL, 1 }, { "help", no_argument, NULL, 'h' }, { "type-summary", no_argument, NULL, 't' }, { "version", no_argument, NULL, 'V' }, /* options */ { "disable-bus", required_argument, NULL, 'd' }, { "enable-bus", required_argument, NULL, 'e' }, { "data-version", required_argument, NULL, 1 }, { "insert-url", required_argument, NULL, 1 }, { "append-url", required_argument, NULL, 1 }, { "format", required_argument, NULL, 1 }, { "normalize-whitespace", no_argument, NULL, 1 }, { "model", no_argument, &do_model, 1 }, /* Default */ { "model-id", no_argument, &do_model_id, 1 }, { "no-model", no_argument, &do_model, 0 }, { "no-model-id", no_argument, &do_model_id, 0 }, /* Default */ { "no-vendor", no_argument, &do_vendor, 0 }, { "no-vendor-id", no_argument, &do_vendor_id, 0 }, /* Default */ { "vendor", no_argument, &do_vendor, 1 }, /* Default */ { "vendor-id", no_argument, &do_vendor_id, 1 }, { "verbose", no_argument, NULL, 'v' }, { 0, 0, 0, 0 } }; /****************************************************************************** * Ye Olde Debugging Hacks */ #ifdef MEMORY_DEBUG static void memdebug_free(discover_bus_map_t *busmap) { busmap->free_devices(); busmap->xml_free_busclasses(); busmap->xml_free_devices(); busmap->xml_free_vendors(); busmap->xml_free_busclass_urls(); busmap->xml_free_device_urls(); busmap->xml_free_vendor_urls(); discover_xml_free_urls(); discover_conf_free(); } #else #define memdebug_free(busmap) #endif /****************************************************************************** * Helpers */ static char * ll_next(linked_list_t *list) { linked_list_node_t *cur_node; assert(list != NULL); if (!list->cur) { return NULL; } cur_node = list->cur; list->cur = list->cur->next; return cur_node->buffer; } static void ll_add(linked_list_t *list, char *text) { linked_list_node_t *new_node, *cur_node; assert(list != NULL); new_node = calloc(1, sizeof(linked_list_node_t)); new_node->buffer = strdup(text); if (!list->head) { list->head = new_node; list->cur = list->head; } else { cur_node = list->head; while(cur_node->next) { cur_node = cur_node->next; } cur_node->next = new_node; } } static char * ll_last(linked_list_t *list) { linked_list_node_t *cur_node; assert(list != NULL); if (!list->head) { return NULL; } cur_node = list->head; while(cur_node->next) { cur_node = cur_node->next; } return cur_node->buffer; } static linked_list_t * ll_new(void) { return calloc(1, sizeof(linked_list_t)); } static void ll_node_free(linked_list_node_t *node) { if (node != NULL) { assert(node->buffer != NULL); ll_node_free(node->next); free(node->buffer); free(node); } } static void ll_free(linked_list_t *list) { assert(list != NULL); if (list->head) { ll_node_free(list->head); } free(list); } static void ll_rewind(linked_list_t *list) { assert(list != NULL); if (list->head) { list->cur = list->head; } } static void print_version(void) { puts(PACKAGE_STRING); } static void print_usage(void) { puts("\ usage: discover [--bus-summary] [OPTIONS] [BUS [...]]\n\ discover --type-summary [OPTIONS] [TYPE [...]]\n\ discover --data-path=PATH [--data-version=VERSION] [TYPE | ID] [...]\n\ discover --version\n\ discover --help"); } static void print_help(void) { print_usage(); puts("\ -b, --bus-summary Summarize by bus.\n\ -t, --type-summary Summarize by device type.\n\ --data-path PATH Print the data matching PATH.\n\ \n\ OPTIONS\n\ -d, --disable-bus BUS Disable the bus BUS.\n\ -e, --enable-bus BUS Enable the bus BUS.\n\ --data-version VERSION Print only data matching VERSION.\n\ --insert-url URL Insert URL in front of the list of data sources.\n\ --append-url URL Append URL at the end of the list of data sources.\n\ --[no-]vendor Do [not] print the vendor name.\n\ --[no-]vendor-id Do [not] print the bus-specific vendor ID.\n\ --[no-]model Do [not] print the model name.\n\ --[no-]model-id Do [not] print the bus-specific model ID.\n\ --normalize-whitespace Condense all whitespace into individual spaces\n\ and eliminate leading and trailing whitespace.\n\ --format TEMPLATE Format the query data output.\n\ -v, --verbose Print verbose output.\n\ "); printf("Report bugs to <%s>.\n", PACKAGE_BUGREPORT); } static void print_or_unknown(char *s) { if (s) { printf("%s ", s); } else { fputs("unknown ", stdout); } } static void print_device_list(discover_device_t *device) { int i = 0; for (i = 0; device; device = discover_device_get_next(device), i++) { if (strcmp(discover_device_get_model_id(device), "default") == 0) { if (discover_device_get_next(device) || i != 0) { continue; } } if (do_vendor_id) { print_or_unknown(discover_device_get_vendor_id(device)); } if (do_model_id) { print_or_unknown(discover_device_get_model_id(device)); } if (do_vendor) { print_or_unknown(discover_device_get_vendor_name(device)); } if (do_model) { print_or_unknown(discover_device_get_model_name(device)); } putchar('\n'); } } static void check_status(discover_error_t *status) { if (verbose) { if (status->message) { fprintf(stderr, "Status message: %s\n", status->message); } } if (status->code != 0) { switch(status->code) { case DISCOVER_EIO: break; case DISCOVER_EDEVICENOTFOUND: /* This can happen and will on a new install * Don't do anything yet, but someday perhaps */ break; default: if (status->code == DISCOVER_ESYS) { err(EX_OSERR, discover_strerror(status)); } else { errx(status->code, discover_strerror(status)); } } } } static char * normalize_text(char *text) { char *end = &(text[strlen(text)-1]); char *buffer = (char *)calloc(strlen(text)+1, 1); char *bufptr = buffer; int last_was_space = 0; while (text <= end) { if (!isspace(*text)) { if (last_was_space) { *bufptr = ' '; bufptr++; last_was_space = 0; } *bufptr = *text; bufptr++; } else { last_was_space = 1; } text++; } /* Not needed (we call calloc), but I'm paranoid... */ *(bufptr+1) = '\0'; return buffer; } void format_handler(char **format_fullstring, format_details_t *details) { int state = 0; char next_input = 0; char *next_output = details->format_substring; details->format_substring[0] = '\0'; details->plain_output = -1; details->error_char = -1; next_input = **format_fullstring; (*format_fullstring)++; if (next_input != '%') { goto substitute_char; } *next_output = next_input; next_output++; next_input = **format_fullstring; (*format_fullstring)++; while(1) { if (next_output - details->format_substring >= FORMAT_LENGTH) { fprintf(stderr, "Too many characters between %% and s\n"); exit(EX_USAGE); } switch(next_input) { case '%': if (state != 0) { goto illegal_char; } goto substitute_char; case 's': *next_output = next_input; *(next_output + 1) = '\0'; return; case '\0': goto illegal_char; default: state++; if (isspace(next_input)) { goto illegal_char; } *next_output = next_input; next_output++; break; } next_input = **format_fullstring; (*format_fullstring)++; } illegal_char: details->error_char = next_input; return; substitute_char: details->plain_output = next_input; return; } static void ll_print(FILE *stream, char *format, linked_list_t *list) { format_details_t *details = calloc(1, sizeof(format_details_t)); char *next = format; char *list_text = NULL; ll_rewind(list); while(*next != '\0') { format_handler(&next, details); if (details->error_char == -1) { if (details->plain_output > -1) { fputc(details->plain_output, stream); } else { list_text = ll_next(list); if (list_text != NULL) { fprintf(stream, details->format_substring, list_text); } } } } fputc('\n', stream); free(details); } /****************************************************************************** * Actions */ static void bus_summary(char *busname) { discover_bus_t bus; discover_bus_map_t *busmap; discover_error_t *status; discover_device_t *devices; int i; status = discover_error_new(); if (busname) { bus = discover_conf_name_to_bus(busname, status); check_status(status); devices = discover_get_devices(bus, status); check_status(status); print_device_list(devices); } else { busmap = discover_conf_get_full_bus_map(status); check_status(status); for (i = 0; busmap[i].name; i++) { if (busmap[i].scan_default) { devices = discover_get_devices(i, status); check_status(status); print_device_list(devices); memdebug_free(busmap[i]); } } } discover_error_free(status); } static void type_summary(char *type) { discover_device_t *devices; discover_error_t *status; assert(type != NULL); status = discover_error_new(); devices = discover_device_find(type, status); check_status(status); print_device_list(devices); discover_device_free(devices, 0); discover_error_free(status); } static void process_data_query(discover_device_t *devices, char *version, discover_error_t *status) { discover_device_t *device; char *data; char *path; for (device = devices; device; device = discover_device_get_next(device)) { data_list = ll_new(); ll_rewind(path_list); while((path = ll_next(path_list))) { if (format_string == NULL) { /* * We'll only test the last path provided on the * command line if no format string was given. */ path = ll_last(path_list); } data = discover_device_get_data(device, path, version, status); check_status(status); if (data) { if (normalize_data) { data = normalize_text(data); ll_add(data_list, data); free(data); } else { ll_add(data_list, data); } } else { ll_add(data_list, ""); } if (format_string == NULL) { break; } } if (format_string == NULL) { ll_print(stdout, "%s", data_list); } else { ll_print(stdout, format_string, data_list); } ll_free(data_list); } } static discover_device_t * find_device_by_id(char *id, discover_error_t *status) { discover_bus_map_t *busmap; discover_device_t *devices, *device; discover_device_t *result; int i; /* XXX this is a really inefficient way to do this, but i want to avoid an api change for now */ busmap = discover_conf_get_full_bus_map(status); check_status(status); result = NULL; for (i = 0; busmap[i].name; i++) { if (busmap[i].scan_default) { devices = discover_get_devices(i, status); check_status(status); for (device = devices; device; device = discover_device_get_next(device)) { char buf[11]; /* vendorid + modelid */ sprintf(buf, "0x%4.4s%4.4s", discover_device_get_vendor_id(device), discover_device_get_model_id(device)); if (strcmp(buf, id) == 0) { result = discover_device_new(); discover_device_copy(device, result); result->next = NULL; break; } } discover_device_free(devices, 0); memdebug_free(busmap[i]); } } return result; } static void query_data(char *version, int argc, char **argv) { discover_bus_map_t *busmap; discover_device_t *devices, *device; discover_error_t *status; int i, j; assert(argv != NULL); status = discover_error_new(); if (argc == 0) { /* print information for all busses */ busmap = discover_conf_get_full_bus_map(status); check_status(status); for (i = 0; busmap[i].name; i++) { if (busmap[i].scan_default) { devices = discover_get_devices(i, status); check_status(status); process_data_query(devices, version, status); check_status(status); discover_device_free(devices, 0); memdebug_free(busmap[i]); } } } for(i = 0; i < argc; i++) { /* if ARGV[I] starts with "0x", it's a device id */ if (strncmp(argv[i], "0x", 2) == 0) { devices = find_device_by_id(argv[i], status); } else { devices = discover_device_find(argv[i], status); } check_status(status); process_data_query(devices, version, status); check_status(status); discover_device_free(devices, 0); } discover_error_free(status); } int main(int argc, char *argv[]) { discover_bus_map_t *busmap; discover_error_t *status; enum action action; bool element_found; char *version; int ch, optindex; int i, j; action = BUS_SUMMARY; version = NULL; path_list = ll_new(); status = discover_error_new(); while ((ch = getopt_long(argc, argv, shortopts, longopts, &optindex)) != -1) { switch (ch) { case 'b': action = BUS_SUMMARY; break; case 'd': if (strcmp(optarg, "all") == 0) { busmap = discover_conf_get_full_bus_map(status); check_status(status); for (i = 0; busmap[i].name; i++) { busmap[i].scan_default = 0; if (verbose) { fprintf(stderr, "Disabled %s\n", busmap[i].name); } } } else { busmap = discover_conf_get_bus_map_by_name(optarg, status); check_status(status); busmap->scan_default = 0; if (verbose) { fprintf(stderr, "Disabled %s\n", optarg); } } break; case 'e': if (strcmp(optarg, "all") == 0) { busmap = discover_conf_get_full_bus_map(status); check_status(status); for (i = 0; busmap[i].name; i++) { busmap[i].scan_default = 1; if (verbose) { fprintf(stderr, "Enabled %s\n", busmap[i].name); } } } else { busmap = discover_conf_get_bus_map_by_name(optarg, status); check_status(status); busmap->scan_default = 1; if (verbose) { fprintf(stderr, "Enabled %s\n", optarg); } } break; case 'h': print_help(); exit(0); break; case 't': action = TYPE_SUMMARY; break; case 'V': print_version(); exit(0); break; case 'v': verbose = 1; break; case 0: /* Handled by getopt_long itself (according to the * structure we pass it. */ break; case 1: if (strcmp(longopts[optindex].name, "data-path") == 0) { action = QUERY_DATA; ll_add(path_list, optarg); } else if (strcmp(longopts[optindex].name, "data-version") == 0) { version = optarg; } else if (strcmp(longopts[optindex].name, "insert-url") == 0) { if (verbose) { fprintf(stderr, "Inserting URL %s ... ", optarg); } discover_conf_insert_url(optarg, status); check_status(status); if (verbose) { fputs("Done\n", stderr); } } else if (strcmp(longopts[optindex].name, "append-url") == 0) { if (verbose) { fprintf(stderr, "Appending URL %s ... ", optarg); } discover_conf_append_url(optarg, status); check_status(status); if (verbose) { fputs("Done\n", stderr); } } else if (strcmp(longopts[optindex].name, "normalize-whitespace") == 0) { if (verbose) { fputs("Will normalize query data\n", stderr); } normalize_data = 1; } else if (strcmp(longopts[optindex].name, "format") == 0) { format_string = optarg; } else { print_usage(); exit(EX_USAGE); } break; default: print_usage(); exit(EX_USAGE); break; } } argc -= optind; argv += optind; if (version && action != QUERY_DATA) { fputs("--data-version has no meaning without --data-path.\n\n", stderr); print_usage(); exit(EX_USAGE); } /* If the user wants verbose output, explicitly load this stuff * now so we can report status rather than having it loaded lazily * behind the scenes later. */ if (verbose) { element_found = false; busmap = discover_conf_get_full_bus_map(status); check_status(status); fputs("Loading XML data... ", stderr); for (i = 0; busmap[i].name; i++) { for (j = 0; j < argc; j++) { if (!strncmp(argv[j], busmap[i].name, strlen(argv[j]))) { busmap[i].scan_default = true; } } if (busmap[i].scan_default) { element_found = true; fprintf(stderr, "%s ", busmap[i].name); discover_xml_get_devices(i, status); check_status(status); } } if(element_found) { fputs("Done\n", stderr); } else { fputs("No busmaps loaded\n", stderr); element_found = false; } } switch (action) { case BUS_SUMMARY: element_found = false; if (verbose) { fputs("Scanning buses... ", stderr); for (i = 0; busmap[i].name; i++) { for (j = 0; j < argc; j++) { if (!strncmp(argv[j], busmap[i].name, strlen(argv[j]))) { busmap[i].scan_default = true; } } if (busmap[i].scan_default) { element_found = true; fprintf(stderr, "%s ", busmap[i].name); discover_get_devices(i, status); check_status(status); } } if (element_found) { fputs("Done\n", stderr); } else { fputs("No buses scanned\n", stderr); } } if (argc == 0) { bus_summary(NULL); } else { for (i = 0; i < argc; i++) { bus_summary(argv[i]); } } break; case QUERY_DATA: query_data(version, argc, argv); break; case TYPE_SUMMARY: if (argc == 0) { /* Without arguments we summarize all devices on the * system; bus_summary already does that so let it do the * work. */ bus_summary(NULL); } else { for (i = 0; i < argc; i++) { type_summary(argv[i]); } } break; default: fprintf(stderr, "Internal error: impossible action %d\n", action); exit(EX_SOFTWARE); break; } ll_free(path_list); discover_error_free(status); return 0; } /* * Local variables: * c-file-style: "progeny" * indent-tabs-mode: nil * End: */ /* vim: set cin fo=tcroq sw=4 et sts=4 tw=75: */