diff -Nru intel-vaapi-driver-1.7.1/aclocal.m4 intel-vaapi-driver-1.7.0/aclocal.m4 --- intel-vaapi-driver-1.7.1/aclocal.m4 2016-06-21 02:07:53.000000000 +0000 +++ intel-vaapi-driver-1.7.0/aclocal.m4 2016-03-15 06:42:14.000000000 +0000 @@ -20,7320 +20,6981 @@ If you have problems, you may need to regenerate the build system entirely. To do so, use the procedure documented by the package, typically 'autoreconf'.])]) -# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*- +# Copyright (C) 2002-2013 Free Software Foundation, Inc. # -# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, -# 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. -# Written by Gordon Matzigkeit, 1996 +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_AUTOMAKE_VERSION(VERSION) +# ---------------------------- +# Automake X.Y traces this macro to ensure aclocal.m4 has been +# generated from the m4 files accompanying Automake X.Y. +# (This private macro should not be called outside this file.) +AC_DEFUN([AM_AUTOMAKE_VERSION], +[am__api_version='1.14' +dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to +dnl require some minimum version. Point them to the right macro. +m4_if([$1], [1.14.1], [], + [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl +]) + +# _AM_AUTOCONF_VERSION(VERSION) +# ----------------------------- +# aclocal traces this macro to find the Autoconf version. +# This is a private macro too. Using m4_define simplifies +# the logic in aclocal, which can simply ignore this definition. +m4_define([_AM_AUTOCONF_VERSION], []) + +# AM_SET_CURRENT_AUTOMAKE_VERSION +# ------------------------------- +# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. +# This function is AC_REQUIREd by AM_INIT_AUTOMAKE. +AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], +[AM_AUTOMAKE_VERSION([1.14.1])dnl +m4_ifndef([AC_AUTOCONF_VERSION], + [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl +_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) + +# AM_AUX_DIR_EXPAND -*- Autoconf -*- + +# Copyright (C) 2001-2013 Free Software Foundation, Inc. # -# This file is free software; the Free Software Foundation gives -# unlimited permission to copy and/or distribute it, with or without -# modifications, as long as this notice is preserved. +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. -m4_define([_LT_COPYING], [dnl -# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, -# 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. -# Written by Gordon Matzigkeit, 1996 +# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets +# $ac_aux_dir to '$srcdir/foo'. In other projects, it is set to +# '$srcdir', '$srcdir/..', or '$srcdir/../..'. # -# This file is part of GNU Libtool. +# Of course, Automake must honor this variable whenever it calls a +# tool from the auxiliary directory. The problem is that $srcdir (and +# therefore $ac_aux_dir as well) can be either absolute or relative, +# depending on how configure is run. This is pretty annoying, since +# it makes $ac_aux_dir quite unusable in subdirectories: in the top +# source directory, any form will work fine, but in subdirectories a +# relative path needs to be adjusted first. # -# GNU Libtool 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. +# $ac_aux_dir/missing +# fails when called from a subdirectory if $ac_aux_dir is relative +# $top_srcdir/$ac_aux_dir/missing +# fails if $ac_aux_dir is absolute, +# fails when called from a subdirectory in a VPATH build with +# a relative $ac_aux_dir # -# As a special exception to the GNU General Public License, -# if you distribute this file as part of a program or library that -# is built using GNU Libtool, you may include this file under the -# same distribution terms that you use for the rest of that program. +# The reason of the latter failure is that $top_srcdir and $ac_aux_dir +# are both prefixed by $srcdir. In an in-source build this is usually +# harmless because $srcdir is '.', but things will broke when you +# start a VPATH build or use an absolute $srcdir. # -# GNU Libtool 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. +# So we could use something similar to $top_srcdir/$ac_aux_dir/missing, +# iff we strip the leading $srcdir from $ac_aux_dir. That would be: +# am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"` +# and then we would define $MISSING as +# MISSING="\${SHELL} $am_aux_dir/missing" +# This will work as long as MISSING is not called from configure, because +# unfortunately $(top_srcdir) has no meaning in configure. +# However there are other variables, like CC, which are often used in +# configure, and could therefore not use this "fixed" $ac_aux_dir. # -# You should have received a copy of the GNU General Public License -# along with GNU Libtool; see the file COPYING. If not, a copy -# can be downloaded from http://www.gnu.org/licenses/gpl.html, or -# obtained by writing to the Free Software Foundation, Inc., -# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -]) - -# serial 57 LT_INIT - - -# LT_PREREQ(VERSION) -# ------------------ -# Complain and exit if this libtool version is less that VERSION. -m4_defun([LT_PREREQ], -[m4_if(m4_version_compare(m4_defn([LT_PACKAGE_VERSION]), [$1]), -1, - [m4_default([$3], - [m4_fatal([Libtool version $1 or higher is required], - 63)])], - [$2])]) - +# Another solution, used here, is to always expand $ac_aux_dir to an +# absolute PATH. The drawback is that using absolute paths prevent a +# configured tree to be moved without reconfiguration. -# _LT_CHECK_BUILDDIR -# ------------------ -# Complain if the absolute build directory name contains unusual characters -m4_defun([_LT_CHECK_BUILDDIR], -[case `pwd` in - *\ * | *\ *) - AC_MSG_WARN([Libtool does not cope well with whitespace in `pwd`]) ;; -esac +AC_DEFUN([AM_AUX_DIR_EXPAND], +[dnl Rely on autoconf to set up CDPATH properly. +AC_PREREQ([2.50])dnl +# expand $ac_aux_dir to an absolute path +am_aux_dir=`cd $ac_aux_dir && pwd` ]) +# AM_CONDITIONAL -*- Autoconf -*- -# LT_INIT([OPTIONS]) -# ------------------ -AC_DEFUN([LT_INIT], -[AC_PREREQ([2.58])dnl We use AC_INCLUDES_DEFAULT -AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl -AC_BEFORE([$0], [LT_LANG])dnl -AC_BEFORE([$0], [LT_OUTPUT])dnl -AC_BEFORE([$0], [LTDL_INIT])dnl -m4_require([_LT_CHECK_BUILDDIR])dnl - -dnl Autoconf doesn't catch unexpanded LT_ macros by default: -m4_pattern_forbid([^_?LT_[A-Z_]+$])dnl -m4_pattern_allow([^(_LT_EOF|LT_DLGLOBAL|LT_DLLAZY_OR_NOW|LT_MULTI_MODULE)$])dnl -dnl aclocal doesn't pull ltoptions.m4, ltsugar.m4, or ltversion.m4 -dnl unless we require an AC_DEFUNed macro: -AC_REQUIRE([LTOPTIONS_VERSION])dnl -AC_REQUIRE([LTSUGAR_VERSION])dnl -AC_REQUIRE([LTVERSION_VERSION])dnl -AC_REQUIRE([LTOBSOLETE_VERSION])dnl -m4_require([_LT_PROG_LTMAIN])dnl +# Copyright (C) 1997-2013 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. -_LT_SHELL_INIT([SHELL=${CONFIG_SHELL-/bin/sh}]) +# AM_CONDITIONAL(NAME, SHELL-CONDITION) +# ------------------------------------- +# Define a conditional. +AC_DEFUN([AM_CONDITIONAL], +[AC_PREREQ([2.52])dnl + m4_if([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], + [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl +AC_SUBST([$1_TRUE])dnl +AC_SUBST([$1_FALSE])dnl +_AM_SUBST_NOTMAKE([$1_TRUE])dnl +_AM_SUBST_NOTMAKE([$1_FALSE])dnl +m4_define([_AM_COND_VALUE_$1], [$2])dnl +if $2; then + $1_TRUE= + $1_FALSE='#' +else + $1_TRUE='#' + $1_FALSE= +fi +AC_CONFIG_COMMANDS_PRE( +[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then + AC_MSG_ERROR([[conditional "$1" was never defined. +Usually this means the macro was only invoked conditionally.]]) +fi])]) -dnl Parse OPTIONS -_LT_SET_OPTIONS([$0], [$1]) +# Copyright (C) 1999-2013 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. -# This can be used to rebuild libtool when needed -LIBTOOL_DEPS="$ltmain" -# Always use our own libtool. -LIBTOOL='$(SHELL) $(top_builddir)/libtool' -AC_SUBST(LIBTOOL)dnl +# There are a few dirty hacks below to avoid letting 'AC_PROG_CC' be +# written in clear, in which case automake, when reading aclocal.m4, +# will think it sees a *use*, and therefore will trigger all it's +# C support machinery. Also note that it means that autoscan, seeing +# CC etc. in the Makefile, will ask for an AC_PROG_CC use... -_LT_SETUP -# Only expand once: -m4_define([LT_INIT]) -])# LT_INIT +# _AM_DEPENDENCIES(NAME) +# ---------------------- +# See how the compiler implements dependency checking. +# NAME is "CC", "CXX", "OBJC", "OBJCXX", "UPC", or "GJC". +# We try a few techniques and use that to set a single cache variable. +# +# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was +# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular +# dependency, and given that the user is not expected to run this macro, +# just rely on AC_PROG_CC. +AC_DEFUN([_AM_DEPENDENCIES], +[AC_REQUIRE([AM_SET_DEPDIR])dnl +AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl +AC_REQUIRE([AM_MAKE_INCLUDE])dnl +AC_REQUIRE([AM_DEP_TRACK])dnl -# Old names: -AU_ALIAS([AC_PROG_LIBTOOL], [LT_INIT]) -AU_ALIAS([AM_PROG_LIBTOOL], [LT_INIT]) -dnl aclocal-1.4 backwards compatibility: -dnl AC_DEFUN([AC_PROG_LIBTOOL], []) -dnl AC_DEFUN([AM_PROG_LIBTOOL], []) +m4_if([$1], [CC], [depcc="$CC" am_compiler_list=], + [$1], [CXX], [depcc="$CXX" am_compiler_list=], + [$1], [OBJC], [depcc="$OBJC" am_compiler_list='gcc3 gcc'], + [$1], [OBJCXX], [depcc="$OBJCXX" am_compiler_list='gcc3 gcc'], + [$1], [UPC], [depcc="$UPC" am_compiler_list=], + [$1], [GCJ], [depcc="$GCJ" am_compiler_list='gcc3 gcc'], + [depcc="$$1" am_compiler_list=]) +AC_CACHE_CHECK([dependency style of $depcc], + [am_cv_$1_dependencies_compiler_type], +[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then + # We make a subdir and do the tests there. Otherwise we can end up + # making bogus files that we don't know about and never remove. For + # instance it was reported that on HP-UX the gcc test will end up + # making a dummy file named 'D' -- because '-MD' means "put the output + # in D". + rm -rf conftest.dir + mkdir conftest.dir + # Copy depcomp to subdir because otherwise we won't find it if we're + # using a relative directory. + cp "$am_depcomp" conftest.dir + cd conftest.dir + # We will build objects and dependencies in a subdirectory because + # it helps to detect inapplicable dependency modes. For instance + # both Tru64's cc and ICC support -MD to output dependencies as a + # side effect of compilation, but ICC will put the dependencies in + # the current directory while Tru64 will put them in the object + # directory. + mkdir sub -# _LT_CC_BASENAME(CC) -# ------------------- -# Calculate cc_basename. Skip known compiler wrappers and cross-prefix. -m4_defun([_LT_CC_BASENAME], -[for cc_temp in $1""; do - case $cc_temp in - compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;; - distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;; - \-*) ;; - *) break;; - esac -done -cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` -]) - - -# _LT_FILEUTILS_DEFAULTS -# ---------------------- -# It is okay to use these file commands and assume they have been set -# sensibly after `m4_require([_LT_FILEUTILS_DEFAULTS])'. -m4_defun([_LT_FILEUTILS_DEFAULTS], -[: ${CP="cp -f"} -: ${MV="mv -f"} -: ${RM="rm -f"} -])# _LT_FILEUTILS_DEFAULTS - + am_cv_$1_dependencies_compiler_type=none + if test "$am_compiler_list" = ""; then + am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp` + fi + am__universal=false + m4_case([$1], [CC], + [case " $depcc " in #( + *\ -arch\ *\ -arch\ *) am__universal=true ;; + esac], + [CXX], + [case " $depcc " in #( + *\ -arch\ *\ -arch\ *) am__universal=true ;; + esac]) -# _LT_SETUP -# --------- -m4_defun([_LT_SETUP], -[AC_REQUIRE([AC_CANONICAL_HOST])dnl -AC_REQUIRE([AC_CANONICAL_BUILD])dnl -AC_REQUIRE([_LT_PREPARE_SED_QUOTE_VARS])dnl -AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])dnl + for depmode in $am_compiler_list; do + # Setup a source with many dependencies, because some compilers + # like to wrap large dependency lists on column 80 (with \), and + # we should not choose a depcomp mode which is confused by this. + # + # We need to recreate these files for each test, as the compiler may + # overwrite some of them when testing with obscure command lines. + # This happens at least with the AIX C compiler. + : > sub/conftest.c + for i in 1 2 3 4 5 6; do + echo '#include "conftst'$i'.h"' >> sub/conftest.c + # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with + # Solaris 10 /bin/sh. + echo '/* dummy */' > sub/conftst$i.h + done + echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf -_LT_DECL([], [PATH_SEPARATOR], [1], [The PATH separator for the build system])dnl -dnl -_LT_DECL([], [host_alias], [0], [The host system])dnl -_LT_DECL([], [host], [0])dnl -_LT_DECL([], [host_os], [0])dnl -dnl -_LT_DECL([], [build_alias], [0], [The build system])dnl -_LT_DECL([], [build], [0])dnl -_LT_DECL([], [build_os], [0])dnl -dnl -AC_REQUIRE([AC_PROG_CC])dnl -AC_REQUIRE([LT_PATH_LD])dnl -AC_REQUIRE([LT_PATH_NM])dnl -dnl -AC_REQUIRE([AC_PROG_LN_S])dnl -test -z "$LN_S" && LN_S="ln -s" -_LT_DECL([], [LN_S], [1], [Whether we need soft or hard links])dnl -dnl -AC_REQUIRE([LT_CMD_MAX_LEN])dnl -_LT_DECL([objext], [ac_objext], [0], [Object file suffix (normally "o")])dnl -_LT_DECL([], [exeext], [0], [Executable file suffix (normally "")])dnl -dnl -m4_require([_LT_FILEUTILS_DEFAULTS])dnl -m4_require([_LT_CHECK_SHELL_FEATURES])dnl -m4_require([_LT_PATH_CONVERSION_FUNCTIONS])dnl -m4_require([_LT_CMD_RELOAD])dnl -m4_require([_LT_CHECK_MAGIC_METHOD])dnl -m4_require([_LT_CHECK_SHAREDLIB_FROM_LINKLIB])dnl -m4_require([_LT_CMD_OLD_ARCHIVE])dnl -m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl -m4_require([_LT_WITH_SYSROOT])dnl + # We check with '-c' and '-o' for the sake of the "dashmstdout" + # mode. It turns out that the SunPro C++ compiler does not properly + # handle '-M -o', and we need to detect this. Also, some Intel + # versions had trouble with output in subdirs. + am__obj=sub/conftest.${OBJEXT-o} + am__minus_obj="-o $am__obj" + case $depmode in + gcc) + # This depmode causes a compiler race in universal mode. + test "$am__universal" = false || continue + ;; + nosideeffect) + # After this tag, mechanisms are not by side-effect, so they'll + # only be used when explicitly requested. + if test "x$enable_dependency_tracking" = xyes; then + continue + else + break + fi + ;; + msvc7 | msvc7msys | msvisualcpp | msvcmsys) + # This compiler won't grok '-c -o', but also, the minuso test has + # not run yet. These depmodes are late enough in the game, and + # so weak that their functioning should not be impacted. + am__obj=conftest.${OBJEXT-o} + am__minus_obj= + ;; + none) break ;; + esac + if depmode=$depmode \ + source=sub/conftest.c object=$am__obj \ + depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ + $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ + >/dev/null 2>conftest.err && + grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && + grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && + grep $am__obj sub/conftest.Po > /dev/null 2>&1 && + ${MAKE-make} -s -f confmf > /dev/null 2>&1; then + # icc doesn't choke on unknown options, it will just issue warnings + # or remarks (even with -Werror). So we grep stderr for any message + # that says an option was ignored or not supported. + # When given -MP, icc 7.0 and 7.1 complain thusly: + # icc: Command line warning: ignoring option '-M'; no argument required + # The diagnosis changed in icc 8.0: + # icc: Command line remark: option '-MP' not supported + if (grep 'ignoring option' conftest.err || + grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else + am_cv_$1_dependencies_compiler_type=$depmode + break + fi + fi + done -_LT_CONFIG_LIBTOOL_INIT([ -# See if we are running on zsh, and set the options which allow our -# commands through without removal of \ escapes INIT. -if test -n "\${ZSH_VERSION+set}" ; then - setopt NO_GLOB_SUBST + cd .. + rm -rf conftest.dir +else + am_cv_$1_dependencies_compiler_type=none fi ]) -if test -n "${ZSH_VERSION+set}" ; then - setopt NO_GLOB_SUBST -fi - -_LT_CHECK_OBJDIR - -m4_require([_LT_TAG_COMPILER])dnl - -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 - -# Global variables: -ofile=libtool -can_build_shared=yes - -# All known linkers require a `.a' archive for static linking (except MSVC, -# which needs '.lib'). -libext=a - -with_gnu_ld="$lt_cv_prog_gnu_ld" - -old_CC="$CC" -old_CFLAGS="$CFLAGS" +AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type]) +AM_CONDITIONAL([am__fastdep$1], [ + test "x$enable_dependency_tracking" != xno \ + && test "$am_cv_$1_dependencies_compiler_type" = gcc3]) +]) -# Set sane defaults for various variables -test -z "$CC" && CC=cc -test -z "$LTCC" && LTCC=$CC -test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS -test -z "$LD" && LD=ld -test -z "$ac_objext" && ac_objext=o -_LT_CC_BASENAME([$compiler]) +# AM_SET_DEPDIR +# ------------- +# Choose a directory name for dependency files. +# This macro is AC_REQUIREd in _AM_DEPENDENCIES. +AC_DEFUN([AM_SET_DEPDIR], +[AC_REQUIRE([AM_SET_LEADING_DOT])dnl +AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl +]) -# Only perform the check for file, if the check method requires it -test -z "$MAGIC_CMD" && MAGIC_CMD=file -case $deplibs_check_method in -file_magic*) - if test "$file_magic_cmd" = '$MAGIC_CMD'; then - _LT_PATH_MAGIC - fi - ;; -esac -# Use C for the default configuration in the libtool script -LT_SUPPORTED_TAG([CC]) -_LT_LANG_C_CONFIG -_LT_LANG_DEFAULT_CONFIG -_LT_CONFIG_COMMANDS -])# _LT_SETUP +# AM_DEP_TRACK +# ------------ +AC_DEFUN([AM_DEP_TRACK], +[AC_ARG_ENABLE([dependency-tracking], [dnl +AS_HELP_STRING( + [--enable-dependency-tracking], + [do not reject slow dependency extractors]) +AS_HELP_STRING( + [--disable-dependency-tracking], + [speeds up one-time build])]) +if test "x$enable_dependency_tracking" != xno; then + am_depcomp="$ac_aux_dir/depcomp" + AMDEPBACKSLASH='\' + am__nodep='_no' +fi +AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) +AC_SUBST([AMDEPBACKSLASH])dnl +_AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl +AC_SUBST([am__nodep])dnl +_AM_SUBST_NOTMAKE([am__nodep])dnl +]) +# Generate code to set up dependency tracking. -*- Autoconf -*- -# _LT_PREPARE_SED_QUOTE_VARS -# -------------------------- -# Define a few sed substitution that help us do robust quoting. -m4_defun([_LT_PREPARE_SED_QUOTE_VARS], -[# Backslashify metacharacters that are still active within -# double-quoted strings. -sed_quote_subst='s/\([["`$\\]]\)/\\\1/g' +# Copyright (C) 1999-2013 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. -# 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' +# _AM_OUTPUT_DEPENDENCY_COMMANDS +# ------------------------------ +AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], +[{ + # Older Autoconf quotes --file arguments for eval, but not when files + # are listed without --file. Let's play safe and only enable the eval + # if we detect the quoting. + case $CONFIG_FILES in + *\'*) eval set x "$CONFIG_FILES" ;; + *) set x $CONFIG_FILES ;; + esac + shift + for mf + do + # Strip MF so we end up with the name of the file. + mf=`echo "$mf" | sed -e 's/:.*$//'` + # Check whether this is an Automake generated Makefile or not. + # We used to match only the files named 'Makefile.in', but + # some people rename them; so instead we look at the file content. + # Grep'ing the first line is not enough: some people post-process + # each Makefile.in and add a new line on top of each file to say so. + # Grep'ing the whole file is not good either: AIX grep has a line + # limit of 2048, but all sed's we know have understand at least 4000. + if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then + dirpart=`AS_DIRNAME("$mf")` + else + continue + fi + # Extract the definition of DEPDIR, am__include, and am__quote + # from the Makefile without running 'make'. + DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` + test -z "$DEPDIR" && continue + am__include=`sed -n 's/^am__include = //p' < "$mf"` + test -z "$am__include" && continue + am__quote=`sed -n 's/^am__quote = //p' < "$mf"` + # Find all dependency output files, they are included files with + # $(DEPDIR) in their names. We invoke sed twice because it is the + # simplest approach to changing $(DEPDIR) to its actual value in the + # expansion. + for file in `sed -n " + s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ + sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do + # Make sure the directory exists. + test -f "$dirpart/$file" && continue + fdir=`AS_DIRNAME(["$file"])` + AS_MKDIR_P([$dirpart/$fdir]) + # echo "creating $dirpart/$file" + echo '# dummy' > "$dirpart/$file" + done + done +} +])# _AM_OUTPUT_DEPENDENCY_COMMANDS -# Sed substitution to delay expansion of an escaped single quote. -delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' -# Sed substitution to avoid accidental globbing in evaled expressions -no_glob_subst='s/\*/\\\*/g' +# AM_OUTPUT_DEPENDENCY_COMMANDS +# ----------------------------- +# This macro should only be invoked once -- use via AC_REQUIRE. +# +# This code is only required when automatic dependency tracking +# is enabled. FIXME. This creates each '.P' file that we will +# need in order to bootstrap the dependency handling code. +AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], +[AC_CONFIG_COMMANDS([depfiles], + [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS], + [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"]) ]) -# _LT_PROG_LTMAIN -# --------------- -# Note that this code is called both from `configure', and `config.status' -# now that we use AC_CONFIG_COMMANDS to generate libtool. Notably, -# `config.status' has no value for ac_aux_dir unless we are using Automake, -# so we pass a copy along to make sure it has a sensible value anyway. -m4_defun([_LT_PROG_LTMAIN], -[m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([ltmain.sh])])dnl -_LT_CONFIG_LIBTOOL_INIT([ac_aux_dir='$ac_aux_dir']) -ltmain="$ac_aux_dir/ltmain.sh" -])# _LT_PROG_LTMAIN - - - -# So that we can recreate a full libtool script including additional -# tags, we accumulate the chunks of code to send to AC_CONFIG_COMMANDS -# in macros and then make a single call at the end using the `libtool' -# label. +# Do all the work for Automake. -*- Autoconf -*- +# Copyright (C) 1996-2013 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. -# _LT_CONFIG_LIBTOOL_INIT([INIT-COMMANDS]) -# ---------------------------------------- -# Register INIT-COMMANDS to be passed to AC_CONFIG_COMMANDS later. -m4_define([_LT_CONFIG_LIBTOOL_INIT], -[m4_ifval([$1], - [m4_append([_LT_OUTPUT_LIBTOOL_INIT], - [$1 -])])]) +# This macro actually does too much. Some checks are only needed if +# your package does certain things. But this isn't really a big deal. -# Initialize. -m4_define([_LT_OUTPUT_LIBTOOL_INIT]) +dnl Redefine AC_PROG_CC to automatically invoke _AM_PROG_CC_C_O. +m4_define([AC_PROG_CC], +m4_defn([AC_PROG_CC]) +[_AM_PROG_CC_C_O +]) +# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE]) +# AM_INIT_AUTOMAKE([OPTIONS]) +# ----------------------------------------------- +# The call with PACKAGE and VERSION arguments is the old style +# call (pre autoconf-2.50), which is being phased out. PACKAGE +# and VERSION should now be passed to AC_INIT and removed from +# the call to AM_INIT_AUTOMAKE. +# We support both call styles for the transition. After +# the next Automake release, Autoconf can make the AC_INIT +# arguments mandatory, and then we can depend on a new Autoconf +# release and drop the old call support. +AC_DEFUN([AM_INIT_AUTOMAKE], +[AC_PREREQ([2.65])dnl +dnl Autoconf wants to disallow AM_ names. We explicitly allow +dnl the ones we care about. +m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl +AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl +AC_REQUIRE([AC_PROG_INSTALL])dnl +if test "`cd $srcdir && pwd`" != "`pwd`"; then + # Use -I$(srcdir) only when $(srcdir) != ., so that make's output + # is not polluted with repeated "-I." + AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl + # test to see if srcdir already configured + if test -f $srcdir/config.status; then + AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) + fi +fi -# _LT_CONFIG_LIBTOOL([COMMANDS]) -# ------------------------------ -# Register COMMANDS to be passed to AC_CONFIG_COMMANDS later. -m4_define([_LT_CONFIG_LIBTOOL], -[m4_ifval([$1], - [m4_append([_LT_OUTPUT_LIBTOOL_COMMANDS], - [$1 -])])]) +# test whether we have cygpath +if test -z "$CYGPATH_W"; then + if (cygpath --version) >/dev/null 2>/dev/null; then + CYGPATH_W='cygpath -w' + else + CYGPATH_W=echo + fi +fi +AC_SUBST([CYGPATH_W]) -# Initialize. -m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS]) +# Define the identity of the package. +dnl Distinguish between old-style and new-style calls. +m4_ifval([$2], +[AC_DIAGNOSE([obsolete], + [$0: two- and three-arguments forms are deprecated.]) +m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl + AC_SUBST([PACKAGE], [$1])dnl + AC_SUBST([VERSION], [$2])], +[_AM_SET_OPTIONS([$1])dnl +dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT. +m4_if( + m4_ifdef([AC_PACKAGE_NAME], [ok]):m4_ifdef([AC_PACKAGE_VERSION], [ok]), + [ok:ok],, + [m4_fatal([AC_INIT should be called with package and version arguments])])dnl + AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl + AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl +_AM_IF_OPTION([no-define],, +[AC_DEFINE_UNQUOTED([PACKAGE], ["$PACKAGE"], [Name of package]) + AC_DEFINE_UNQUOTED([VERSION], ["$VERSION"], [Version number of package])])dnl -# _LT_CONFIG_SAVE_COMMANDS([COMMANDS], [INIT_COMMANDS]) -# ----------------------------------------------------- -m4_defun([_LT_CONFIG_SAVE_COMMANDS], -[_LT_CONFIG_LIBTOOL([$1]) -_LT_CONFIG_LIBTOOL_INIT([$2]) +# Some tools Automake needs. +AC_REQUIRE([AM_SANITY_CHECK])dnl +AC_REQUIRE([AC_ARG_PROGRAM])dnl +AM_MISSING_PROG([ACLOCAL], [aclocal-${am__api_version}]) +AM_MISSING_PROG([AUTOCONF], [autoconf]) +AM_MISSING_PROG([AUTOMAKE], [automake-${am__api_version}]) +AM_MISSING_PROG([AUTOHEADER], [autoheader]) +AM_MISSING_PROG([MAKEINFO], [makeinfo]) +AC_REQUIRE([AM_PROG_INSTALL_SH])dnl +AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl +AC_REQUIRE([AC_PROG_MKDIR_P])dnl +# For better backward compatibility. To be removed once Automake 1.9.x +# dies out for good. For more background, see: +# +# +AC_SUBST([mkdir_p], ['$(MKDIR_P)']) +# We need awk for the "check" target. The system "awk" is bad on +# some platforms. +AC_REQUIRE([AC_PROG_AWK])dnl +AC_REQUIRE([AC_PROG_MAKE_SET])dnl +AC_REQUIRE([AM_SET_LEADING_DOT])dnl +_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], + [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], + [_AM_PROG_TAR([v7])])]) +_AM_IF_OPTION([no-dependencies],, +[AC_PROVIDE_IFELSE([AC_PROG_CC], + [_AM_DEPENDENCIES([CC])], + [m4_define([AC_PROG_CC], + m4_defn([AC_PROG_CC])[_AM_DEPENDENCIES([CC])])])dnl +AC_PROVIDE_IFELSE([AC_PROG_CXX], + [_AM_DEPENDENCIES([CXX])], + [m4_define([AC_PROG_CXX], + m4_defn([AC_PROG_CXX])[_AM_DEPENDENCIES([CXX])])])dnl +AC_PROVIDE_IFELSE([AC_PROG_OBJC], + [_AM_DEPENDENCIES([OBJC])], + [m4_define([AC_PROG_OBJC], + m4_defn([AC_PROG_OBJC])[_AM_DEPENDENCIES([OBJC])])])dnl +AC_PROVIDE_IFELSE([AC_PROG_OBJCXX], + [_AM_DEPENDENCIES([OBJCXX])], + [m4_define([AC_PROG_OBJCXX], + m4_defn([AC_PROG_OBJCXX])[_AM_DEPENDENCIES([OBJCXX])])])dnl ]) +AC_REQUIRE([AM_SILENT_RULES])dnl +dnl The testsuite driver may need to know about EXEEXT, so add the +dnl 'am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This +dnl macro is hooked onto _AC_COMPILER_EXEEXT early, see below. +AC_CONFIG_COMMANDS_PRE(dnl +[m4_provide_if([_AM_COMPILER_EXEEXT], + [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl +# POSIX will say in a future version that running "rm -f" with no argument +# is OK; and we want to be able to make that assumption in our Makefile +# recipes. So use an aggressive probe to check that the usage we want is +# actually supported "in the wild" to an acceptable degree. +# See automake bug#10828. +# To make any issue more visible, cause the running configure to be aborted +# by default if the 'rm' program in use doesn't match our expectations; the +# user can still override this though. +if rm -f && rm -fr && rm -rf; then : OK; else + cat >&2 <<'END' +Oops! -# _LT_FORMAT_COMMENT([COMMENT]) -# ----------------------------- -# Add leading comment marks to the start of each line, and a trailing -# full-stop to the whole comment if one is not present already. -m4_define([_LT_FORMAT_COMMENT], -[m4_ifval([$1], [ -m4_bpatsubst([m4_bpatsubst([$1], [^ *], [# ])], - [['`$\]], [\\\&])]m4_bmatch([$1], [[!?.]$], [], [.]) -)]) - - +Your 'rm' program seems unable to run without file operands specified +on the command line, even when the '-f' option is present. This is contrary +to the behaviour of most rm programs out there, and not conforming with +the upcoming POSIX standard: +Please tell bug-automake@gnu.org about your system, including the value +of your $PATH and any error possibly output before this message. This +can help us improve future automake versions. +END + if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then + echo 'Configuration will proceed anyway, since you have set the' >&2 + echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2 + echo >&2 + else + cat >&2 <<'END' +Aborting the configuration process, to ensure you take notice of the issue. -# _LT_DECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION], [IS-TAGGED?]) -# ------------------------------------------------------------------- -# CONFIGNAME is the name given to the value in the libtool script. -# VARNAME is the (base) name used in the configure script. -# VALUE may be 0, 1 or 2 for a computed quote escaped value based on -# VARNAME. Any other value will be used directly. -m4_define([_LT_DECL], -[lt_if_append_uniq([lt_decl_varnames], [$2], [, ], - [lt_dict_add_subkey([lt_decl_dict], [$2], [libtool_name], - [m4_ifval([$1], [$1], [$2])]) - lt_dict_add_subkey([lt_decl_dict], [$2], [value], [$3]) - m4_ifval([$4], - [lt_dict_add_subkey([lt_decl_dict], [$2], [description], [$4])]) - lt_dict_add_subkey([lt_decl_dict], [$2], - [tagged?], [m4_ifval([$5], [yes], [no])])]) -]) - - -# _LT_TAGDECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION]) -# -------------------------------------------------------- -m4_define([_LT_TAGDECL], [_LT_DECL([$1], [$2], [$3], [$4], [yes])]) +You can download and install GNU coreutils to get an 'rm' implementation +that behaves properly: . +If you want to complete the configuration process using your problematic +'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM +to "yes", and re-run configure. -# lt_decl_tag_varnames([SEPARATOR], [VARNAME1...]) -# ------------------------------------------------ -m4_define([lt_decl_tag_varnames], -[_lt_decl_filter([tagged?], [yes], $@)]) +END + AC_MSG_ERROR([Your 'rm' program is bad, sorry.]) + fi +fi]) +dnl Hook into '_AC_COMPILER_EXEEXT' early to learn its expansion. Do not +dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further +dnl mangled by Autoconf and run in a shell conditional statement. +m4_define([_AC_COMPILER_EXEEXT], +m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])]) -# _lt_decl_filter(SUBKEY, VALUE, [SEPARATOR], [VARNAME1..]) -# --------------------------------------------------------- -m4_define([_lt_decl_filter], -[m4_case([$#], - [0], [m4_fatal([$0: too few arguments: $#])], - [1], [m4_fatal([$0: too few arguments: $#: $1])], - [2], [lt_dict_filter([lt_decl_dict], [$1], [$2], [], lt_decl_varnames)], - [3], [lt_dict_filter([lt_decl_dict], [$1], [$2], [$3], lt_decl_varnames)], - [lt_dict_filter([lt_decl_dict], $@)])[]dnl -]) +# When config.status generates a header, we must update the stamp-h file. +# This file resides in the same directory as the config header +# that is generated. The stamp files are numbered to have different names. +# Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the +# loop where config.status creates the headers, so we can generate +# our stamp files there. +AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK], +[# Compute $1's index in $config_headers. +_am_arg=$1 +_am_stamp_count=1 +for _am_header in $config_headers :; do + case $_am_header in + $_am_arg | $_am_arg:* ) + break ;; + * ) + _am_stamp_count=`expr $_am_stamp_count + 1` ;; + esac +done +echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) -# lt_decl_quote_varnames([SEPARATOR], [VARNAME1...]) -# -------------------------------------------------- -m4_define([lt_decl_quote_varnames], -[_lt_decl_filter([value], [1], $@)]) +# Copyright (C) 2001-2013 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. +# AM_PROG_INSTALL_SH +# ------------------ +# Define $install_sh. +AC_DEFUN([AM_PROG_INSTALL_SH], +[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl +if test x"${install_sh}" != xset; then + case $am_aux_dir in + *\ * | *\ *) + install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; + *) + install_sh="\${SHELL} $am_aux_dir/install-sh" + esac +fi +AC_SUBST([install_sh])]) -# lt_decl_dquote_varnames([SEPARATOR], [VARNAME1...]) -# --------------------------------------------------- -m4_define([lt_decl_dquote_varnames], -[_lt_decl_filter([value], [2], $@)]) +# Copyright (C) 2003-2013 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. +# Check whether the underlying file-system supports filenames +# with a leading dot. For instance MS-DOS doesn't. +AC_DEFUN([AM_SET_LEADING_DOT], +[rm -rf .tst 2>/dev/null +mkdir .tst 2>/dev/null +if test -d .tst; then + am__leading_dot=. +else + am__leading_dot=_ +fi +rmdir .tst 2>/dev/null +AC_SUBST([am__leading_dot])]) -# lt_decl_varnames_tagged([SEPARATOR], [VARNAME1...]) -# --------------------------------------------------- -m4_define([lt_decl_varnames_tagged], -[m4_assert([$# <= 2])dnl -_$0(m4_quote(m4_default([$1], [[, ]])), - m4_ifval([$2], [[$2]], [m4_dquote(lt_decl_tag_varnames)]), - m4_split(m4_normalize(m4_quote(_LT_TAGS)), [ ]))]) -m4_define([_lt_decl_varnames_tagged], -[m4_ifval([$3], [lt_combine([$1], [$2], [_], $3)])]) +# Check to see how 'make' treats includes. -*- Autoconf -*- +# Copyright (C) 2001-2013 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. -# lt_decl_all_varnames([SEPARATOR], [VARNAME1...]) -# ------------------------------------------------ -m4_define([lt_decl_all_varnames], -[_$0(m4_quote(m4_default([$1], [[, ]])), - m4_if([$2], [], - m4_quote(lt_decl_varnames), - m4_quote(m4_shift($@))))[]dnl -]) -m4_define([_lt_decl_all_varnames], -[lt_join($@, lt_decl_varnames_tagged([$1], - lt_decl_tag_varnames([[, ]], m4_shift($@))))dnl +# AM_MAKE_INCLUDE() +# ----------------- +# Check to see how make treats includes. +AC_DEFUN([AM_MAKE_INCLUDE], +[am_make=${MAKE-make} +cat > confinc << 'END' +am__doit: + @echo this is the am__doit target +.PHONY: am__doit +END +# If we don't find an include directive, just comment out the code. +AC_MSG_CHECKING([for style of include used by $am_make]) +am__include="#" +am__quote= +_am_result=none +# First try GNU make style include. +echo "include confinc" > confmf +# Ignore all kinds of additional output from 'make'. +case `$am_make -s -f confmf 2> /dev/null` in #( +*the\ am__doit\ target*) + am__include=include + am__quote= + _am_result=GNU + ;; +esac +# Now try BSD make style include. +if test "$am__include" = "#"; then + echo '.include "confinc"' > confmf + case `$am_make -s -f confmf 2> /dev/null` in #( + *the\ am__doit\ target*) + am__include=.include + am__quote="\"" + _am_result=BSD + ;; + esac +fi +AC_SUBST([am__include]) +AC_SUBST([am__quote]) +AC_MSG_RESULT([$_am_result]) +rm -f confinc confmf ]) +# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- -# _LT_CONFIG_STATUS_DECLARE([VARNAME]) -# ------------------------------------ -# Quote a variable value, and forward it to `config.status' so that its -# declaration there will have the same value as in `configure'. VARNAME -# must have a single quote delimited value for this to work. -m4_define([_LT_CONFIG_STATUS_DECLARE], -[$1='`$ECHO "$][$1" | $SED "$delay_single_quote_subst"`']) - - -# _LT_CONFIG_STATUS_DECLARATIONS -# ------------------------------ -# We delimit libtool config variables with single quotes, so when -# we write them to config.status, we have to be sure to quote all -# embedded single quotes properly. In configure, this macro expands -# each variable declared with _LT_DECL (and _LT_TAGDECL) into: +# Copyright (C) 1997-2013 Free Software Foundation, Inc. # -# ='`$ECHO "$" | $SED "$delay_single_quote_subst"`' -m4_defun([_LT_CONFIG_STATUS_DECLARATIONS], -[m4_foreach([_lt_var], m4_quote(lt_decl_all_varnames), - [m4_n([_LT_CONFIG_STATUS_DECLARE(_lt_var)])])]) +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. +# AM_MISSING_PROG(NAME, PROGRAM) +# ------------------------------ +AC_DEFUN([AM_MISSING_PROG], +[AC_REQUIRE([AM_MISSING_HAS_RUN]) +$1=${$1-"${am_missing_run}$2"} +AC_SUBST($1)]) -# _LT_LIBTOOL_TAGS -# ---------------- -# Output comment and list of tags supported by the script -m4_defun([_LT_LIBTOOL_TAGS], -[_LT_FORMAT_COMMENT([The names of the tagged configurations supported by this script])dnl -available_tags="_LT_TAGS"dnl +# AM_MISSING_HAS_RUN +# ------------------ +# Define MISSING if not defined so far and test if it is modern enough. +# If it is, set am_missing_run to use it, otherwise, to nothing. +AC_DEFUN([AM_MISSING_HAS_RUN], +[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl +AC_REQUIRE_AUX_FILE([missing])dnl +if test x"${MISSING+set}" != xset; then + case $am_aux_dir in + *\ * | *\ *) + MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; + *) + MISSING="\${SHELL} $am_aux_dir/missing" ;; + esac +fi +# Use eval to expand $SHELL +if eval "$MISSING --is-lightweight"; then + am_missing_run="$MISSING " +else + am_missing_run= + AC_MSG_WARN(['missing' script is too old or missing]) +fi ]) +# Helper functions for option handling. -*- Autoconf -*- -# _LT_LIBTOOL_DECLARE(VARNAME, [TAG]) -# ----------------------------------- -# Extract the dictionary values for VARNAME (optionally with TAG) and -# expand to a commented shell variable setting: +# Copyright (C) 2001-2013 Free Software Foundation, Inc. # -# # Some comment about what VAR is for. -# visible_name=$lt_internal_name -m4_define([_LT_LIBTOOL_DECLARE], -[_LT_FORMAT_COMMENT(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], - [description])))[]dnl -m4_pushdef([_libtool_name], - m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [libtool_name])))[]dnl -m4_case(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [value])), - [0], [_libtool_name=[$]$1], - [1], [_libtool_name=$lt_[]$1], - [2], [_libtool_name=$lt_[]$1], - [_libtool_name=lt_dict_fetch([lt_decl_dict], [$1], [value])])[]dnl -m4_ifval([$2], [_$2])[]m4_popdef([_libtool_name])[]dnl -]) - +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. -# _LT_LIBTOOL_CONFIG_VARS +# _AM_MANGLE_OPTION(NAME) # ----------------------- -# Produce commented declarations of non-tagged libtool config variables -# suitable for insertion in the LIBTOOL CONFIG section of the `libtool' -# script. Tagged libtool config variables (even for the LIBTOOL CONFIG -# section) are produced by _LT_LIBTOOL_TAG_VARS. -m4_defun([_LT_LIBTOOL_CONFIG_VARS], -[m4_foreach([_lt_var], - m4_quote(_lt_decl_filter([tagged?], [no], [], lt_decl_varnames)), - [m4_n([_LT_LIBTOOL_DECLARE(_lt_var)])])]) - +AC_DEFUN([_AM_MANGLE_OPTION], +[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])]) -# _LT_LIBTOOL_TAG_VARS(TAG) -# ------------------------- -m4_define([_LT_LIBTOOL_TAG_VARS], -[m4_foreach([_lt_var], m4_quote(lt_decl_tag_varnames), - [m4_n([_LT_LIBTOOL_DECLARE(_lt_var, [$1])])])]) +# _AM_SET_OPTION(NAME) +# -------------------- +# Set option NAME. Presently that only means defining a flag for this option. +AC_DEFUN([_AM_SET_OPTION], +[m4_define(_AM_MANGLE_OPTION([$1]), [1])]) +# _AM_SET_OPTIONS(OPTIONS) +# ------------------------ +# OPTIONS is a space-separated list of Automake options. +AC_DEFUN([_AM_SET_OPTIONS], +[m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) -# _LT_TAGVAR(VARNAME, [TAGNAME]) -# ------------------------------ -m4_define([_LT_TAGVAR], [m4_ifval([$2], [$1_$2], [$1])]) +# _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET]) +# ------------------------------------------- +# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. +AC_DEFUN([_AM_IF_OPTION], +[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) +# Copyright (C) 1999-2013 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. -# _LT_CONFIG_COMMANDS -# ------------------- -# Send accumulated output to $CONFIG_STATUS. Thanks to the lists of -# variables for single and double quote escaping we saved from calls -# to _LT_DECL, we can put quote escaped variables declarations -# into `config.status', and then the shell code to quote escape them in -# for loops in `config.status'. Finally, any additional code accumulated -# from calls to _LT_CONFIG_LIBTOOL_INIT is expanded. -m4_defun([_LT_CONFIG_COMMANDS], -[AC_PROVIDE_IFELSE([LT_OUTPUT], - dnl If the libtool generation code has been placed in $CONFIG_LT, - dnl instead of duplicating it all over again into config.status, - dnl then we will have config.status run $CONFIG_LT later, so it - dnl needs to know what name is stored there: - [AC_CONFIG_COMMANDS([libtool], - [$SHELL $CONFIG_LT || AS_EXIT(1)], [CONFIG_LT='$CONFIG_LT'])], - dnl If the libtool generation code is destined for config.status, - dnl expand the accumulated commands and init code now: - [AC_CONFIG_COMMANDS([libtool], - [_LT_OUTPUT_LIBTOOL_COMMANDS], [_LT_OUTPUT_LIBTOOL_COMMANDS_INIT])]) -])#_LT_CONFIG_COMMANDS +# _AM_PROG_CC_C_O +# --------------- +# Like AC_PROG_CC_C_O, but changed for automake. We rewrite AC_PROG_CC +# to automatically call this. +AC_DEFUN([_AM_PROG_CC_C_O], +[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl +AC_REQUIRE_AUX_FILE([compile])dnl +AC_LANG_PUSH([C])dnl +AC_CACHE_CHECK( + [whether $CC understands -c and -o together], + [am_cv_prog_cc_c_o], + [AC_LANG_CONFTEST([AC_LANG_PROGRAM([])]) + # Make sure it works both with $CC and with simple cc. + # Following AC_PROG_CC_C_O, we do the test twice because some + # compilers refuse to overwrite an existing .o file with -o, + # though they will create one. + am_cv_prog_cc_c_o=yes + for am_i in 1 2; do + if AM_RUN_LOG([$CC -c conftest.$ac_ext -o conftest2.$ac_objext]) \ + && test -f conftest2.$ac_objext; then + : OK + else + am_cv_prog_cc_c_o=no + break + fi + done + rm -f core conftest* + unset am_i]) +if test "$am_cv_prog_cc_c_o" != yes; then + # Losing compiler, so override with the script. + # FIXME: It is wrong to rewrite CC. + # But if we don't then we get into trouble of one sort or another. + # A longer-term fix would be to have automake use am__CC in this case, + # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" + CC="$am_aux_dir/compile $CC" +fi +AC_LANG_POP([C])]) +# For backward compatibility. +AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])]) -# Initialize. -m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS_INIT], -[ +# Copyright (C) 2001-2013 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. -# The HP-UX ksh and POSIX shell print the target directory to stdout -# if CDPATH is set. -(unset CDPATH) >/dev/null 2>&1 && unset CDPATH +# AM_RUN_LOG(COMMAND) +# ------------------- +# Run COMMAND, save the exit status in ac_status, and log it. +# (This has been adapted from Autoconf's _AC_RUN_LOG macro.) +AC_DEFUN([AM_RUN_LOG], +[{ echo "$as_me:$LINENO: $1" >&AS_MESSAGE_LOG_FD + ($1) >&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD + (exit $ac_status); }]) -sed_quote_subst='$sed_quote_subst' -double_quote_subst='$double_quote_subst' -delay_variable_subst='$delay_variable_subst' -_LT_CONFIG_STATUS_DECLARATIONS -LTCC='$LTCC' -LTCFLAGS='$LTCFLAGS' -compiler='$compiler_DEFAULT' +# Check to make sure that the build environment is sane. -*- Autoconf -*- -# A function that is used when there is no print builtin or printf. -func_fallback_echo () -{ - eval 'cat <<_LTECHO_EOF -\$[]1 -_LTECHO_EOF' -} +# Copyright (C) 1996-2013 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. -# Quote evaled strings. -for var in lt_decl_all_varnames([[ \ -]], lt_decl_quote_varnames); do - case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in - *[[\\\\\\\`\\"\\\$]]*) - eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" - ;; - *) - eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" - ;; - esac -done +# AM_SANITY_CHECK +# --------------- +AC_DEFUN([AM_SANITY_CHECK], +[AC_MSG_CHECKING([whether build environment is sane]) +# Reject unsafe characters in $srcdir or the absolute working directory +# name. Accept space and tab only in the latter. +am_lf=' +' +case `pwd` in + *[[\\\"\#\$\&\'\`$am_lf]]*) + AC_MSG_ERROR([unsafe absolute working directory name]);; +esac +case $srcdir in + *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*) + AC_MSG_ERROR([unsafe srcdir value: '$srcdir']);; +esac -# Double-quote double-evaled strings. -for var in lt_decl_all_varnames([[ \ -]], lt_decl_dquote_varnames); do - case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in - *[[\\\\\\\`\\"\\\$]]*) - eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" - ;; - *) - eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" - ;; - esac -done +# Do 'set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + am_has_slept=no + for am_try in 1 2; do + echo "timestamp, slept: $am_has_slept" > conftest.file + set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` + if test "$[*]" = "X"; then + # -L didn't work. + set X `ls -t "$srcdir/configure" conftest.file` + fi + if test "$[*]" != "X $srcdir/configure conftest.file" \ + && test "$[*]" != "X conftest.file $srcdir/configure"; then -_LT_OUTPUT_LIBTOOL_INIT + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken + alias in your environment]) + fi + if test "$[2]" = conftest.file || test $am_try -eq 2; then + break + fi + # Just in case. + sleep 1 + am_has_slept=yes + done + test "$[2]" = conftest.file + ) +then + # Ok. + : +else + AC_MSG_ERROR([newly created file is older than distributed files! +Check your system clock]) +fi +AC_MSG_RESULT([yes]) +# If we didn't sleep, we still need to ensure time stamps of config.status and +# generated files are strictly newer. +am_sleep_pid= +if grep 'slept: no' conftest.file >/dev/null 2>&1; then + ( sleep 1 ) & + am_sleep_pid=$! +fi +AC_CONFIG_COMMANDS_PRE( + [AC_MSG_CHECKING([that generated files are newer than configure]) + if test -n "$am_sleep_pid"; then + # Hide warnings about reused PIDs. + wait $am_sleep_pid 2>/dev/null + fi + AC_MSG_RESULT([done])]) +rm -f conftest.file ]) -# _LT_GENERATED_FILE_INIT(FILE, [COMMENT]) -# ------------------------------------ -# Generate a child script FILE with all initialization necessary to -# reuse the environment learned by the parent script, and make the -# file executable. If COMMENT is supplied, it is inserted after the -# `#!' sequence but before initialization text begins. After this -# macro, additional text can be appended to FILE to form the body of -# the child script. The macro ends with non-zero status if the -# file could not be fully written (such as if the disk is full). -m4_ifdef([AS_INIT_GENERATED], -[m4_defun([_LT_GENERATED_FILE_INIT],[AS_INIT_GENERATED($@)])], -[m4_defun([_LT_GENERATED_FILE_INIT], -[m4_require([AS_PREPARE])]dnl -[m4_pushdef([AS_MESSAGE_LOG_FD])]dnl -[lt_write_fail=0 -cat >$1 <<_ASEOF || lt_write_fail=1 -#! $SHELL -# Generated by $as_me. -$2 -SHELL=\${CONFIG_SHELL-$SHELL} -export SHELL -_ASEOF -cat >>$1 <<\_ASEOF || lt_write_fail=1 -AS_SHELL_SANITIZE -_AS_PREPARE -exec AS_MESSAGE_FD>&1 -_ASEOF -test $lt_write_fail = 0 && chmod +x $1[]dnl -m4_popdef([AS_MESSAGE_LOG_FD])])])# _LT_GENERATED_FILE_INIT +# Copyright (C) 2009-2013 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. -# LT_OUTPUT -# --------- -# This macro allows early generation of the libtool script (before -# AC_OUTPUT is called), incase it is used in configure for compilation -# tests. -AC_DEFUN([LT_OUTPUT], -[: ${CONFIG_LT=./config.lt} -AC_MSG_NOTICE([creating $CONFIG_LT]) -_LT_GENERATED_FILE_INIT(["$CONFIG_LT"], -[# Run this file to recreate a libtool stub with the current configuration.]) +# AM_SILENT_RULES([DEFAULT]) +# -------------------------- +# Enable less verbose build rules; with the default set to DEFAULT +# ("yes" being less verbose, "no" or empty being verbose). +AC_DEFUN([AM_SILENT_RULES], +[AC_ARG_ENABLE([silent-rules], [dnl +AS_HELP_STRING( + [--enable-silent-rules], + [less verbose build output (undo: "make V=1")]) +AS_HELP_STRING( + [--disable-silent-rules], + [verbose build output (undo: "make V=0")])dnl +]) +case $enable_silent_rules in @%:@ ((( + yes) AM_DEFAULT_VERBOSITY=0;; + no) AM_DEFAULT_VERBOSITY=1;; + *) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);; +esac +dnl +dnl A few 'make' implementations (e.g., NonStop OS and NextStep) +dnl do not support nested variable expansions. +dnl See automake bug#9928 and bug#10237. +am_make=${MAKE-make} +AC_CACHE_CHECK([whether $am_make supports nested variables], + [am_cv_make_support_nested_variables], + [if AS_ECHO([['TRUE=$(BAR$(V)) +BAR0=false +BAR1=true +V=1 +am__doit: + @$(TRUE) +.PHONY: am__doit']]) | $am_make -f - >/dev/null 2>&1; then + am_cv_make_support_nested_variables=yes +else + am_cv_make_support_nested_variables=no +fi]) +if test $am_cv_make_support_nested_variables = yes; then + dnl Using '$V' instead of '$(V)' breaks IRIX make. + AM_V='$(V)' + AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' +else + AM_V=$AM_DEFAULT_VERBOSITY + AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY +fi +AC_SUBST([AM_V])dnl +AM_SUBST_NOTMAKE([AM_V])dnl +AC_SUBST([AM_DEFAULT_V])dnl +AM_SUBST_NOTMAKE([AM_DEFAULT_V])dnl +AC_SUBST([AM_DEFAULT_VERBOSITY])dnl +AM_BACKSLASH='\' +AC_SUBST([AM_BACKSLASH])dnl +_AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl +]) -cat >>"$CONFIG_LT" <<\_LTEOF -lt_cl_silent=false -exec AS_MESSAGE_LOG_FD>>config.log -{ - echo - AS_BOX([Running $as_me.]) -} >&AS_MESSAGE_LOG_FD +# Copyright (C) 2001-2013 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. -lt_cl_help="\ -\`$as_me' creates a local libtool stub from the current configuration, -for use in further configure time tests before the real libtool is -generated. +# AM_PROG_INSTALL_STRIP +# --------------------- +# One issue with vendor 'install' (even GNU) is that you can't +# specify the program used to strip binaries. This is especially +# annoying in cross-compiling environments, where the build's strip +# is unlikely to handle the host's binaries. +# Fortunately install-sh will honor a STRIPPROG variable, so we +# always use install-sh in "make install-strip", and initialize +# STRIPPROG with the value of the STRIP variable (set by the user). +AC_DEFUN([AM_PROG_INSTALL_STRIP], +[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl +# Installed binaries are usually stripped using 'strip' when the user +# run "make install-strip". However 'strip' might not be the right +# tool to use in cross-compilation environments, therefore Automake +# will honor the 'STRIP' environment variable to overrule this program. +dnl Don't test for $cross_compiling = yes, because it might be 'maybe'. +if test "$cross_compiling" != no; then + AC_CHECK_TOOL([STRIP], [strip], :) +fi +INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" +AC_SUBST([INSTALL_STRIP_PROGRAM])]) -Usage: $[0] [[OPTIONS]] +# Copyright (C) 2006-2013 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. - -h, --help print this help, then exit - -V, --version print version number, then exit - -q, --quiet do not print progress messages - -d, --debug don't remove temporary files +# _AM_SUBST_NOTMAKE(VARIABLE) +# --------------------------- +# Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in. +# This macro is traced by Automake. +AC_DEFUN([_AM_SUBST_NOTMAKE]) -Report bugs to ." +# AM_SUBST_NOTMAKE(VARIABLE) +# -------------------------- +# Public sister of _AM_SUBST_NOTMAKE. +AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)]) -lt_cl_version="\ -m4_ifset([AC_PACKAGE_NAME], [AC_PACKAGE_NAME ])config.lt[]dnl -m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION]) -configured by $[0], generated by m4_PACKAGE_STRING. +# Check how to create a tarball. -*- Autoconf -*- -Copyright (C) 2011 Free Software Foundation, Inc. -This config.lt script is free software; the Free Software Foundation -gives unlimited permision to copy, distribute and modify it." +# Copyright (C) 2004-2013 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. -while test $[#] != 0 -do - case $[1] in - --version | --v* | -V ) - echo "$lt_cl_version"; exit 0 ;; - --help | --h* | -h ) - echo "$lt_cl_help"; exit 0 ;; - --debug | --d* | -d ) - debug=: ;; - --quiet | --q* | --silent | --s* | -q ) - lt_cl_silent=: ;; +# _AM_PROG_TAR(FORMAT) +# -------------------- +# Check how to create a tarball in format FORMAT. +# FORMAT should be one of 'v7', 'ustar', or 'pax'. +# +# Substitute a variable $(am__tar) that is a command +# writing to stdout a FORMAT-tarball containing the directory +# $tardir. +# tardir=directory && $(am__tar) > result.tar +# +# Substitute a variable $(am__untar) that extract such +# a tarball read from stdin. +# $(am__untar) < result.tar +# +AC_DEFUN([_AM_PROG_TAR], +[# Always define AMTAR for backward compatibility. Yes, it's still used +# in the wild :-( We should find a proper way to deprecate it ... +AC_SUBST([AMTAR], ['$${TAR-tar}']) - -*) AC_MSG_ERROR([unrecognized option: $[1] -Try \`$[0] --help' for more information.]) ;; +# We'll loop over all known methods to create a tar archive until one works. +_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' - *) AC_MSG_ERROR([unrecognized argument: $[1] -Try \`$[0] --help' for more information.]) ;; - esac - shift -done +m4_if([$1], [v7], + [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'], -if $lt_cl_silent; then - exec AS_MESSAGE_FD>/dev/null -fi -_LTEOF + [m4_case([$1], + [ustar], + [# The POSIX 1988 'ustar' format is defined with fixed-size fields. + # There is notably a 21 bits limit for the UID and the GID. In fact, + # the 'pax' utility can hang on bigger UID/GID (see automake bug#8343 + # and bug#13588). + am_max_uid=2097151 # 2^21 - 1 + am_max_gid=$am_max_uid + # The $UID and $GID variables are not portable, so we need to resort + # to the POSIX-mandated id(1) utility. Errors in the 'id' calls + # below are definitely unexpected, so allow the users to see them + # (that is, avoid stderr redirection). + am_uid=`id -u || echo unknown` + am_gid=`id -g || echo unknown` + AC_MSG_CHECKING([whether UID '$am_uid' is supported by ustar format]) + if test $am_uid -le $am_max_uid; then + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + _am_tools=none + fi + AC_MSG_CHECKING([whether GID '$am_gid' is supported by ustar format]) + if test $am_gid -le $am_max_gid; then + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + _am_tools=none + fi], -cat >>"$CONFIG_LT" <<_LTEOF -_LT_OUTPUT_LIBTOOL_COMMANDS_INIT -_LTEOF + [pax], + [], -cat >>"$CONFIG_LT" <<\_LTEOF -AC_MSG_NOTICE([creating $ofile]) -_LT_OUTPUT_LIBTOOL_COMMANDS -AS_EXIT(0) -_LTEOF -chmod +x "$CONFIG_LT" + [m4_fatal([Unknown tar format])]) -# configure is writing to config.log, but config.lt does its own redirection, -# appending to config.log, which fails on DOS, as config.log is still kept -# open by configure. Here we exec the FD to /dev/null, effectively closing -# config.log, so it can be properly (re)opened and appended to by config.lt. -lt_cl_success=: -test "$silent" = yes && - lt_config_lt_args="$lt_config_lt_args --quiet" -exec AS_MESSAGE_LOG_FD>/dev/null -$SHELL "$CONFIG_LT" $lt_config_lt_args || lt_cl_success=false -exec AS_MESSAGE_LOG_FD>>config.log -$lt_cl_success || AS_EXIT(1) -])# LT_OUTPUT + AC_MSG_CHECKING([how to create a $1 tar archive]) + # Go ahead even if we have the value already cached. We do so because we + # need to set the values for the 'am__tar' and 'am__untar' variables. + _am_tools=${am_cv_prog_tar_$1-$_am_tools} -# _LT_CONFIG(TAG) -# --------------- -# If TAG is the built-in tag, create an initial libtool script with a -# default configuration from the untagged config vars. Otherwise add code -# to config.status for appending the configuration named by TAG from the -# matching tagged config vars. -m4_defun([_LT_CONFIG], -[m4_require([_LT_FILEUTILS_DEFAULTS])dnl -_LT_CONFIG_SAVE_COMMANDS([ - m4_define([_LT_TAG], m4_if([$1], [], [C], [$1]))dnl - m4_if(_LT_TAG, [C], [ - # See if we are running on zsh, and set the options which allow our - # commands through without removal of \ escapes. - if test -n "${ZSH_VERSION+set}" ; then - setopt NO_GLOB_SUBST + for _am_tool in $_am_tools; do + case $_am_tool in + gnutar) + for _am_tar in tar gnutar gtar; do + AM_RUN_LOG([$_am_tar --version]) && break + done + am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"' + am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"' + am__untar="$_am_tar -xf -" + ;; + plaintar) + # Must skip GNU tar: if it does not support --format= it doesn't create + # ustar tarball either. + (tar --version) >/dev/null 2>&1 && continue + am__tar='tar chf - "$$tardir"' + am__tar_='tar chf - "$tardir"' + am__untar='tar xf -' + ;; + pax) + am__tar='pax -L -x $1 -w "$$tardir"' + am__tar_='pax -L -x $1 -w "$tardir"' + am__untar='pax -r' + ;; + cpio) + am__tar='find "$$tardir" -print | cpio -o -H $1 -L' + am__tar_='find "$tardir" -print | cpio -o -H $1 -L' + am__untar='cpio -i -H $1 -d' + ;; + none) + am__tar=false + am__tar_=false + am__untar=false + ;; + esac + + # If the value was cached, stop now. We just wanted to have am__tar + # and am__untar set. + test -n "${am_cv_prog_tar_$1}" && break + + # tar/untar a dummy directory, and stop if the command works. + rm -rf conftest.dir + mkdir conftest.dir + echo GrepMe > conftest.dir/file + AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar]) + rm -rf conftest.dir + if test -s conftest.tar; then + AM_RUN_LOG([$am__untar /dev/null 2>&1 && break fi + done + rm -rf conftest.dir - cfgfile="${ofile}T" - trap "$RM \"$cfgfile\"; exit 1" 1 2 15 - $RM "$cfgfile" + AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool]) + AC_MSG_RESULT([$am_cv_prog_tar_$1])]) - cat <<_LT_EOF >> "$cfgfile" -#! $SHELL +AC_SUBST([am__tar]) +AC_SUBST([am__untar]) +]) # _AM_PROG_TAR -# `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services. -# Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION -# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: -# NOTE: Changes made to this file will be lost: look at ltmain.sh. +# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*- # -_LT_COPYING -_LT_LIBTOOL_TAGS +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, +# 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. +# Written by Gordon Matzigkeit, 1996 +# +# This file is free software; the Free Software Foundation gives +# unlimited permission to copy and/or distribute it, with or without +# modifications, as long as this notice is preserved. -# ### BEGIN LIBTOOL CONFIG -_LT_LIBTOOL_CONFIG_VARS -_LT_LIBTOOL_TAG_VARS -# ### END LIBTOOL CONFIG +m4_define([_LT_COPYING], [dnl +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, +# 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. +# Written by Gordon Matzigkeit, 1996 +# +# This file is part of GNU Libtool. +# +# GNU Libtool 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. +# +# As a special exception to the GNU General Public License, +# if you distribute this file as part of a program or library that +# is built using GNU Libtool, you may include this file under the +# same distribution terms that you use for the rest of that program. +# +# GNU Libtool 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 GNU Libtool; see the file COPYING. If not, a copy +# can be downloaded from http://www.gnu.org/licenses/gpl.html, or +# obtained by writing to the Free Software Foundation, Inc., +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +]) -_LT_EOF +# serial 57 LT_INIT - case $host_os in - aix3*) - cat <<\_LT_EOF >> "$cfgfile" -# 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 -_LT_EOF - ;; - esac - _LT_PROG_LTMAIN +# LT_PREREQ(VERSION) +# ------------------ +# Complain and exit if this libtool version is less that VERSION. +m4_defun([LT_PREREQ], +[m4_if(m4_version_compare(m4_defn([LT_PACKAGE_VERSION]), [$1]), -1, + [m4_default([$3], + [m4_fatal([Libtool version $1 or higher is required], + 63)])], + [$2])]) - # We use sed instead of cat because bash on DJGPP gets confused if - # if finds mixed CR/LF and LF-only lines. Since sed operates in - # text mode, it properly converts lines to CR/LF. This bash problem - # is reportedly fixed, but why not run on old versions too? - sed '$q' "$ltmain" >> "$cfgfile" \ - || (rm -f "$cfgfile"; exit 1) - _LT_PROG_REPLACE_SHELLFNS +# _LT_CHECK_BUILDDIR +# ------------------ +# Complain if the absolute build directory name contains unusual characters +m4_defun([_LT_CHECK_BUILDDIR], +[case `pwd` in + *\ * | *\ *) + AC_MSG_WARN([Libtool does not cope well with whitespace in `pwd`]) ;; +esac +]) - mv -f "$cfgfile" "$ofile" || - (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") - chmod +x "$ofile" -], -[cat <<_LT_EOF >> "$ofile" -dnl Unfortunately we have to use $1 here, since _LT_TAG is not expanded -dnl in a comment (ie after a #). -# ### BEGIN LIBTOOL TAG CONFIG: $1 -_LT_LIBTOOL_TAG_VARS(_LT_TAG) -# ### END LIBTOOL TAG CONFIG: $1 -_LT_EOF -])dnl /m4_if -], -[m4_if([$1], [], [ - PACKAGE='$PACKAGE' - VERSION='$VERSION' - TIMESTAMP='$TIMESTAMP' - RM='$RM' - ofile='$ofile'], []) -])dnl /_LT_CONFIG_SAVE_COMMANDS -])# _LT_CONFIG +# LT_INIT([OPTIONS]) +# ------------------ +AC_DEFUN([LT_INIT], +[AC_PREREQ([2.58])dnl We use AC_INCLUDES_DEFAULT +AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl +AC_BEFORE([$0], [LT_LANG])dnl +AC_BEFORE([$0], [LT_OUTPUT])dnl +AC_BEFORE([$0], [LTDL_INIT])dnl +m4_require([_LT_CHECK_BUILDDIR])dnl +dnl Autoconf doesn't catch unexpanded LT_ macros by default: +m4_pattern_forbid([^_?LT_[A-Z_]+$])dnl +m4_pattern_allow([^(_LT_EOF|LT_DLGLOBAL|LT_DLLAZY_OR_NOW|LT_MULTI_MODULE)$])dnl +dnl aclocal doesn't pull ltoptions.m4, ltsugar.m4, or ltversion.m4 +dnl unless we require an AC_DEFUNed macro: +AC_REQUIRE([LTOPTIONS_VERSION])dnl +AC_REQUIRE([LTSUGAR_VERSION])dnl +AC_REQUIRE([LTVERSION_VERSION])dnl +AC_REQUIRE([LTOBSOLETE_VERSION])dnl +m4_require([_LT_PROG_LTMAIN])dnl -# LT_SUPPORTED_TAG(TAG) -# --------------------- -# Trace this macro to discover what tags are supported by the libtool -# --tag option, using: -# autoconf --trace 'LT_SUPPORTED_TAG:$1' -AC_DEFUN([LT_SUPPORTED_TAG], []) +_LT_SHELL_INIT([SHELL=${CONFIG_SHELL-/bin/sh}]) +dnl Parse OPTIONS +_LT_SET_OPTIONS([$0], [$1]) -# C support is built-in for now -m4_define([_LT_LANG_C_enabled], []) -m4_define([_LT_TAGS], []) +# This can be used to rebuild libtool when needed +LIBTOOL_DEPS="$ltmain" +# Always use our own libtool. +LIBTOOL='$(SHELL) $(top_builddir)/libtool' +AC_SUBST(LIBTOOL)dnl -# LT_LANG(LANG) -# ------------- -# Enable libtool support for the given language if not already enabled. -AC_DEFUN([LT_LANG], -[AC_BEFORE([$0], [LT_OUTPUT])dnl -m4_case([$1], - [C], [_LT_LANG(C)], - [C++], [_LT_LANG(CXX)], - [Go], [_LT_LANG(GO)], - [Java], [_LT_LANG(GCJ)], - [Fortran 77], [_LT_LANG(F77)], - [Fortran], [_LT_LANG(FC)], - [Windows Resource], [_LT_LANG(RC)], - [m4_ifdef([_LT_LANG_]$1[_CONFIG], - [_LT_LANG($1)], - [m4_fatal([$0: unsupported language: "$1"])])])dnl -])# LT_LANG +_LT_SETUP +# Only expand once: +m4_define([LT_INIT]) +])# LT_INIT -# _LT_LANG(LANGNAME) -# ------------------ -m4_defun([_LT_LANG], -[m4_ifdef([_LT_LANG_]$1[_enabled], [], - [LT_SUPPORTED_TAG([$1])dnl - m4_append([_LT_TAGS], [$1 ])dnl - m4_define([_LT_LANG_]$1[_enabled], [])dnl - _LT_LANG_$1_CONFIG($1)])dnl -])# _LT_LANG +# Old names: +AU_ALIAS([AC_PROG_LIBTOOL], [LT_INIT]) +AU_ALIAS([AM_PROG_LIBTOOL], [LT_INIT]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_PROG_LIBTOOL], []) +dnl AC_DEFUN([AM_PROG_LIBTOOL], []) -m4_ifndef([AC_PROG_GO], [ -# NOTE: This macro has been submitted for inclusion into # -# GNU Autoconf as AC_PROG_GO. When it is available in # -# a released version of Autoconf we should remove this # -# macro and use it instead. # -m4_defun([AC_PROG_GO], -[AC_LANG_PUSH(Go)dnl -AC_ARG_VAR([GOC], [Go compiler command])dnl -AC_ARG_VAR([GOFLAGS], [Go compiler flags])dnl -_AC_ARG_VAR_LDFLAGS()dnl -AC_CHECK_TOOL(GOC, gccgo) -if test -z "$GOC"; then - if test -n "$ac_tool_prefix"; then - AC_CHECK_PROG(GOC, [${ac_tool_prefix}gccgo], [${ac_tool_prefix}gccgo]) - fi -fi -if test -z "$GOC"; then - AC_CHECK_PROG(GOC, gccgo, gccgo, false) -fi -])#m4_defun -])#m4_ifndef +# _LT_CC_BASENAME(CC) +# ------------------- +# Calculate cc_basename. Skip known compiler wrappers and cross-prefix. +m4_defun([_LT_CC_BASENAME], +[for cc_temp in $1""; do + case $cc_temp in + compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;; + distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;; + \-*) ;; + *) break;; + esac +done +cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` +]) -# _LT_LANG_DEFAULT_CONFIG -# ----------------------- -m4_defun([_LT_LANG_DEFAULT_CONFIG], -[AC_PROVIDE_IFELSE([AC_PROG_CXX], - [LT_LANG(CXX)], - [m4_define([AC_PROG_CXX], defn([AC_PROG_CXX])[LT_LANG(CXX)])]) +# _LT_FILEUTILS_DEFAULTS +# ---------------------- +# It is okay to use these file commands and assume they have been set +# sensibly after `m4_require([_LT_FILEUTILS_DEFAULTS])'. +m4_defun([_LT_FILEUTILS_DEFAULTS], +[: ${CP="cp -f"} +: ${MV="mv -f"} +: ${RM="rm -f"} +])# _LT_FILEUTILS_DEFAULTS -AC_PROVIDE_IFELSE([AC_PROG_F77], - [LT_LANG(F77)], - [m4_define([AC_PROG_F77], defn([AC_PROG_F77])[LT_LANG(F77)])]) -AC_PROVIDE_IFELSE([AC_PROG_FC], - [LT_LANG(FC)], - [m4_define([AC_PROG_FC], defn([AC_PROG_FC])[LT_LANG(FC)])]) +# _LT_SETUP +# --------- +m4_defun([_LT_SETUP], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +AC_REQUIRE([AC_CANONICAL_BUILD])dnl +AC_REQUIRE([_LT_PREPARE_SED_QUOTE_VARS])dnl +AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])dnl -dnl The call to [A][M_PROG_GCJ] is quoted like that to stop aclocal -dnl pulling things in needlessly. -AC_PROVIDE_IFELSE([AC_PROG_GCJ], - [LT_LANG(GCJ)], - [AC_PROVIDE_IFELSE([A][M_PROG_GCJ], - [LT_LANG(GCJ)], - [AC_PROVIDE_IFELSE([LT_PROG_GCJ], - [LT_LANG(GCJ)], - [m4_ifdef([AC_PROG_GCJ], - [m4_define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[LT_LANG(GCJ)])]) - m4_ifdef([A][M_PROG_GCJ], - [m4_define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[LT_LANG(GCJ)])]) - m4_ifdef([LT_PROG_GCJ], - [m4_define([LT_PROG_GCJ], defn([LT_PROG_GCJ])[LT_LANG(GCJ)])])])])]) +_LT_DECL([], [PATH_SEPARATOR], [1], [The PATH separator for the build system])dnl +dnl +_LT_DECL([], [host_alias], [0], [The host system])dnl +_LT_DECL([], [host], [0])dnl +_LT_DECL([], [host_os], [0])dnl +dnl +_LT_DECL([], [build_alias], [0], [The build system])dnl +_LT_DECL([], [build], [0])dnl +_LT_DECL([], [build_os], [0])dnl +dnl +AC_REQUIRE([AC_PROG_CC])dnl +AC_REQUIRE([LT_PATH_LD])dnl +AC_REQUIRE([LT_PATH_NM])dnl +dnl +AC_REQUIRE([AC_PROG_LN_S])dnl +test -z "$LN_S" && LN_S="ln -s" +_LT_DECL([], [LN_S], [1], [Whether we need soft or hard links])dnl +dnl +AC_REQUIRE([LT_CMD_MAX_LEN])dnl +_LT_DECL([objext], [ac_objext], [0], [Object file suffix (normally "o")])dnl +_LT_DECL([], [exeext], [0], [Executable file suffix (normally "")])dnl +dnl +m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_CHECK_SHELL_FEATURES])dnl +m4_require([_LT_PATH_CONVERSION_FUNCTIONS])dnl +m4_require([_LT_CMD_RELOAD])dnl +m4_require([_LT_CHECK_MAGIC_METHOD])dnl +m4_require([_LT_CHECK_SHAREDLIB_FROM_LINKLIB])dnl +m4_require([_LT_CMD_OLD_ARCHIVE])dnl +m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl +m4_require([_LT_WITH_SYSROOT])dnl -AC_PROVIDE_IFELSE([AC_PROG_GO], - [LT_LANG(GO)], - [m4_define([AC_PROG_GO], defn([AC_PROG_GO])[LT_LANG(GO)])]) +_LT_CONFIG_LIBTOOL_INIT([ +# See if we are running on zsh, and set the options which allow our +# commands through without removal of \ escapes INIT. +if test -n "\${ZSH_VERSION+set}" ; then + setopt NO_GLOB_SUBST +fi +]) +if test -n "${ZSH_VERSION+set}" ; then + setopt NO_GLOB_SUBST +fi -AC_PROVIDE_IFELSE([LT_PROG_RC], - [LT_LANG(RC)], - [m4_define([LT_PROG_RC], defn([LT_PROG_RC])[LT_LANG(RC)])]) -])# _LT_LANG_DEFAULT_CONFIG +_LT_CHECK_OBJDIR -# Obsolete macros: -AU_DEFUN([AC_LIBTOOL_CXX], [LT_LANG(C++)]) -AU_DEFUN([AC_LIBTOOL_F77], [LT_LANG(Fortran 77)]) -AU_DEFUN([AC_LIBTOOL_FC], [LT_LANG(Fortran)]) -AU_DEFUN([AC_LIBTOOL_GCJ], [LT_LANG(Java)]) -AU_DEFUN([AC_LIBTOOL_RC], [LT_LANG(Windows Resource)]) -dnl aclocal-1.4 backwards compatibility: -dnl AC_DEFUN([AC_LIBTOOL_CXX], []) -dnl AC_DEFUN([AC_LIBTOOL_F77], []) -dnl AC_DEFUN([AC_LIBTOOL_FC], []) -dnl AC_DEFUN([AC_LIBTOOL_GCJ], []) -dnl AC_DEFUN([AC_LIBTOOL_RC], []) +m4_require([_LT_TAG_COMPILER])dnl +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 -# _LT_TAG_COMPILER -# ---------------- -m4_defun([_LT_TAG_COMPILER], -[AC_REQUIRE([AC_PROG_CC])dnl +# Global variables: +ofile=libtool +can_build_shared=yes -_LT_DECL([LTCC], [CC], [1], [A C compiler])dnl -_LT_DECL([LTCFLAGS], [CFLAGS], [1], [LTCC compiler flags])dnl -_LT_TAGDECL([CC], [compiler], [1], [A language specific compiler])dnl -_LT_TAGDECL([with_gcc], [GCC], [0], [Is the compiler the GNU compiler?])dnl +# All known linkers require a `.a' archive for static linking (except MSVC, +# which needs '.lib'). +libext=a -# If no C compiler was specified, use CC. -LTCC=${LTCC-"$CC"} +with_gnu_ld="$lt_cv_prog_gnu_ld" -# If no C compiler flags were specified, use CFLAGS. -LTCFLAGS=${LTCFLAGS-"$CFLAGS"} +old_CC="$CC" +old_CFLAGS="$CFLAGS" -# Allow CC to be a program name with arguments. -compiler=$CC -])# _LT_TAG_COMPILER +# Set sane defaults for various variables +test -z "$CC" && CC=cc +test -z "$LTCC" && LTCC=$CC +test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS +test -z "$LD" && LD=ld +test -z "$ac_objext" && ac_objext=o +_LT_CC_BASENAME([$compiler]) -# _LT_COMPILER_BOILERPLATE -# ------------------------ -# Check for compiler boilerplate output or warnings with -# the simple compiler test code. -m4_defun([_LT_COMPILER_BOILERPLATE], -[m4_require([_LT_DECL_SED])dnl -ac_outfile=conftest.$ac_objext -echo "$lt_simple_compile_test_code" >conftest.$ac_ext -eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err -_lt_compiler_boilerplate=`cat conftest.err` -$RM conftest* -])# _LT_COMPILER_BOILERPLATE +# Only perform the check for file, if the check method requires it +test -z "$MAGIC_CMD" && MAGIC_CMD=file +case $deplibs_check_method in +file_magic*) + if test "$file_magic_cmd" = '$MAGIC_CMD'; then + _LT_PATH_MAGIC + fi + ;; +esac +# Use C for the default configuration in the libtool script +LT_SUPPORTED_TAG([CC]) +_LT_LANG_C_CONFIG +_LT_LANG_DEFAULT_CONFIG +_LT_CONFIG_COMMANDS +])# _LT_SETUP -# _LT_LINKER_BOILERPLATE -# ---------------------- -# Check for linker boilerplate output or warnings with -# the simple link test code. -m4_defun([_LT_LINKER_BOILERPLATE], -[m4_require([_LT_DECL_SED])dnl -ac_outfile=conftest.$ac_objext -echo "$lt_simple_link_test_code" >conftest.$ac_ext -eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err -_lt_linker_boilerplate=`cat conftest.err` -$RM -r conftest* -])# _LT_LINKER_BOILERPLATE -# _LT_REQUIRED_DARWIN_CHECKS -# ------------------------- -m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[ - case $host_os in - rhapsody* | darwin*) - AC_CHECK_TOOL([DSYMUTIL], [dsymutil], [:]) - AC_CHECK_TOOL([NMEDIT], [nmedit], [:]) - AC_CHECK_TOOL([LIPO], [lipo], [:]) - AC_CHECK_TOOL([OTOOL], [otool], [:]) - AC_CHECK_TOOL([OTOOL64], [otool64], [:]) - _LT_DECL([], [DSYMUTIL], [1], - [Tool to manipulate archived DWARF debug symbol files on Mac OS X]) - _LT_DECL([], [NMEDIT], [1], - [Tool to change global to local symbols on Mac OS X]) - _LT_DECL([], [LIPO], [1], - [Tool to manipulate fat objects and archives on Mac OS X]) - _LT_DECL([], [OTOOL], [1], - [ldd/readelf like tool for Mach-O binaries on Mac OS X]) - _LT_DECL([], [OTOOL64], [1], - [ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4]) +# _LT_PREPARE_SED_QUOTE_VARS +# -------------------------- +# Define a few sed substitution that help us do robust quoting. +m4_defun([_LT_PREPARE_SED_QUOTE_VARS], +[# Backslashify metacharacters that are still active within +# double-quoted strings. +sed_quote_subst='s/\([["`$\\]]\)/\\\1/g' - AC_CACHE_CHECK([for -single_module linker flag],[lt_cv_apple_cc_single_mod], - [lt_cv_apple_cc_single_mod=no - if test -z "${LT_MULTI_MODULE}"; then - # By default we will add the -single_module flag. You can override - # by either setting the environment variable LT_MULTI_MODULE - # non-empty at configure time, or by adding -multi_module to the - # link flags. - rm -rf libconftest.dylib* - echo "int foo(void){return 1;}" > conftest.c - echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ --dynamiclib -Wl,-single_module conftest.c" >&AS_MESSAGE_LOG_FD - $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ - -dynamiclib -Wl,-single_module conftest.c 2>conftest.err - _lt_result=$? - # If there is a non-empty error log, and "single_module" - # appears in it, assume the flag caused a linker warning - if test -s conftest.err && $GREP single_module conftest.err; then - cat conftest.err >&AS_MESSAGE_LOG_FD - # Otherwise, if the output was created with a 0 exit code from - # the compiler, it worked. - elif test -f libconftest.dylib && test $_lt_result -eq 0; then - lt_cv_apple_cc_single_mod=yes - else - cat conftest.err >&AS_MESSAGE_LOG_FD - fi - rm -rf libconftest.dylib* - rm -f conftest.* - fi]) +# Same as above, but do not quote variable references. +double_quote_subst='s/\([["`\\]]\)/\\\1/g' - AC_CACHE_CHECK([for -exported_symbols_list linker flag], - [lt_cv_ld_exported_symbols_list], - [lt_cv_ld_exported_symbols_list=no - save_LDFLAGS=$LDFLAGS - echo "_main" > conftest.sym - LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" - AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], - [lt_cv_ld_exported_symbols_list=yes], - [lt_cv_ld_exported_symbols_list=no]) - LDFLAGS="$save_LDFLAGS" - ]) +# Sed substitution to delay expansion of an escaped shell variable in a +# double_quote_subst'ed string. +delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' - AC_CACHE_CHECK([for -force_load linker flag],[lt_cv_ld_force_load], - [lt_cv_ld_force_load=no - cat > conftest.c << _LT_EOF -int forced_loaded() { return 2;} -_LT_EOF - echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&AS_MESSAGE_LOG_FD - $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&AS_MESSAGE_LOG_FD - echo "$AR cru libconftest.a conftest.o" >&AS_MESSAGE_LOG_FD - $AR cru libconftest.a conftest.o 2>&AS_MESSAGE_LOG_FD - echo "$RANLIB libconftest.a" >&AS_MESSAGE_LOG_FD - $RANLIB libconftest.a 2>&AS_MESSAGE_LOG_FD - cat > conftest.c << _LT_EOF -int main() { return 0;} -_LT_EOF - echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&AS_MESSAGE_LOG_FD - $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err - _lt_result=$? - if test -s conftest.err && $GREP force_load conftest.err; then - cat conftest.err >&AS_MESSAGE_LOG_FD - elif test -f conftest && test $_lt_result -eq 0 && $GREP forced_load conftest >/dev/null 2>&1 ; then - lt_cv_ld_force_load=yes - else - cat conftest.err >&AS_MESSAGE_LOG_FD - fi - rm -f conftest.err libconftest.a conftest conftest.c - rm -rf conftest.dSYM - ]) - case $host_os in - rhapsody* | darwin1.[[012]]) - _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;; - darwin1.*) - _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; - darwin*) # darwin 5.x on - # if running on 10.5 or later, the deployment target defaults - # to the OS version, if on x86, and 10.4, the deployment - # target defaults to 10.4. Don't you love it? - case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in - 10.0,*86*-darwin8*|10.0,*-darwin[[91]]*) - _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; - 10.[[012]]*) - _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; - 10.*) - _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; - esac - ;; - esac - if test "$lt_cv_apple_cc_single_mod" = "yes"; then - _lt_dar_single_mod='$single_module' - fi - if test "$lt_cv_ld_exported_symbols_list" = "yes"; then - _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym' - else - _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}' - fi - if test "$DSYMUTIL" != ":" && test "$lt_cv_ld_force_load" = "no"; then - _lt_dsymutil='~$DSYMUTIL $lib || :' - else - _lt_dsymutil= - fi - ;; - esac +# Sed substitution to delay expansion of an escaped single quote. +delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' + +# Sed substitution to avoid accidental globbing in evaled expressions +no_glob_subst='s/\*/\\\*/g' ]) +# _LT_PROG_LTMAIN +# --------------- +# Note that this code is called both from `configure', and `config.status' +# now that we use AC_CONFIG_COMMANDS to generate libtool. Notably, +# `config.status' has no value for ac_aux_dir unless we are using Automake, +# so we pass a copy along to make sure it has a sensible value anyway. +m4_defun([_LT_PROG_LTMAIN], +[m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([ltmain.sh])])dnl +_LT_CONFIG_LIBTOOL_INIT([ac_aux_dir='$ac_aux_dir']) +ltmain="$ac_aux_dir/ltmain.sh" +])# _LT_PROG_LTMAIN -# _LT_DARWIN_LINKER_FEATURES([TAG]) -# --------------------------------- -# Checks for linker and compiler features on darwin -m4_defun([_LT_DARWIN_LINKER_FEATURES], -[ - m4_require([_LT_REQUIRED_DARWIN_CHECKS]) - _LT_TAGVAR(archive_cmds_need_lc, $1)=no - _LT_TAGVAR(hardcode_direct, $1)=no - _LT_TAGVAR(hardcode_automatic, $1)=yes - _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported - if test "$lt_cv_ld_force_load" = "yes"; then - _LT_TAGVAR(whole_archive_flag_spec, $1)='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' - m4_case([$1], [F77], [_LT_TAGVAR(compiler_needs_object, $1)=yes], - [FC], [_LT_TAGVAR(compiler_needs_object, $1)=yes]) - else - _LT_TAGVAR(whole_archive_flag_spec, $1)='' - fi - _LT_TAGVAR(link_all_deplibs, $1)=yes - _LT_TAGVAR(allow_undefined_flag, $1)="$_lt_dar_allow_undefined" - case $cc_basename in - ifort*) _lt_dar_can_shared=yes ;; - *) _lt_dar_can_shared=$GCC ;; - esac - if test "$_lt_dar_can_shared" = "yes"; then - output_verbose_link_cmd=func_echo_all - _LT_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" - _LT_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" - _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" - _LT_TAGVAR(module_expsym_cmds, $1)="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}" - m4_if([$1], [CXX], -[ if test "$lt_cv_apple_cc_single_mod" != "yes"; then - _LT_TAGVAR(archive_cmds, $1)="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dsymutil}" - _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dar_export_syms}${_lt_dsymutil}" - fi -],[]) - else - _LT_TAGVAR(ld_shlibs, $1)=no - fi -]) -# _LT_SYS_MODULE_PATH_AIX([TAGNAME]) -# ---------------------------------- -# Links a minimal program and checks the executable -# for the system default hardcoded library path. In most cases, -# this is /usr/lib:/lib, but when the MPI compilers are used -# the location of the communication and MPI libs are included too. -# If we don't find anything, use the default library path according -# to the aix ld manual. -# Store the results from the different compilers for each TAGNAME. -# Allow to override them for all tags through lt_cv_aix_libpath. -m4_defun([_LT_SYS_MODULE_PATH_AIX], -[m4_require([_LT_DECL_SED])dnl -if test "${lt_cv_aix_libpath+set}" = set; then - aix_libpath=$lt_cv_aix_libpath -else - AC_CACHE_VAL([_LT_TAGVAR([lt_cv_aix_libpath_], [$1])], - [AC_LINK_IFELSE([AC_LANG_PROGRAM],[ - lt_aix_libpath_sed='[ - /Import File Strings/,/^$/ { - /^0/ { - s/^0 *\([^ ]*\) *$/\1/ - p - } - }]' - _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` - # Check for a 64-bit object if we didn't find anything. - if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then - _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` - fi],[]) - if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then - _LT_TAGVAR([lt_cv_aix_libpath_], [$1])="/usr/lib:/lib" - fi - ]) - aix_libpath=$_LT_TAGVAR([lt_cv_aix_libpath_], [$1]) -fi -])# _LT_SYS_MODULE_PATH_AIX +# So that we can recreate a full libtool script including additional +# tags, we accumulate the chunks of code to send to AC_CONFIG_COMMANDS +# in macros and then make a single call at the end using the `libtool' +# label. -# _LT_SHELL_INIT(ARG) -# ------------------- -m4_define([_LT_SHELL_INIT], -[m4_divert_text([M4SH-INIT], [$1 -])])# _LT_SHELL_INIT +# _LT_CONFIG_LIBTOOL_INIT([INIT-COMMANDS]) +# ---------------------------------------- +# Register INIT-COMMANDS to be passed to AC_CONFIG_COMMANDS later. +m4_define([_LT_CONFIG_LIBTOOL_INIT], +[m4_ifval([$1], + [m4_append([_LT_OUTPUT_LIBTOOL_INIT], + [$1 +])])]) +# Initialize. +m4_define([_LT_OUTPUT_LIBTOOL_INIT]) -# _LT_PROG_ECHO_BACKSLASH -# ----------------------- -# Find how we can fake an echo command that does not interpret backslash. -# In particular, with Autoconf 2.60 or later we add some code to the start -# of the generated configure script which will find a shell with a builtin -# printf (which we can use as an echo command). -m4_defun([_LT_PROG_ECHO_BACKSLASH], -[ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' -ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO -ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO -AC_MSG_CHECKING([how to print strings]) -# Test print first, because it will be a builtin if present. -if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \ - test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then - ECHO='print -r --' -elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then - ECHO='printf %s\n' -else - # Use this function as a fallback that always works. - func_fallback_echo () - { - eval 'cat <<_LTECHO_EOF -$[]1 -_LTECHO_EOF' - } - ECHO='func_fallback_echo' -fi +# _LT_CONFIG_LIBTOOL([COMMANDS]) +# ------------------------------ +# Register COMMANDS to be passed to AC_CONFIG_COMMANDS later. +m4_define([_LT_CONFIG_LIBTOOL], +[m4_ifval([$1], + [m4_append([_LT_OUTPUT_LIBTOOL_COMMANDS], + [$1 +])])]) -# func_echo_all arg... -# Invoke $ECHO with all args, space-separated. -func_echo_all () -{ - $ECHO "$*" -} +# Initialize. +m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS]) -case "$ECHO" in - printf*) AC_MSG_RESULT([printf]) ;; - print*) AC_MSG_RESULT([print -r]) ;; - *) AC_MSG_RESULT([cat]) ;; -esac -m4_ifdef([_AS_DETECT_SUGGESTED], -[_AS_DETECT_SUGGESTED([ - test -n "${ZSH_VERSION+set}${BASH_VERSION+set}" || ( - ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' - ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO - ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO - PATH=/empty FPATH=/empty; export PATH FPATH - test "X`printf %s $ECHO`" = "X$ECHO" \ - || test "X`print -r -- $ECHO`" = "X$ECHO" )])]) +# _LT_CONFIG_SAVE_COMMANDS([COMMANDS], [INIT_COMMANDS]) +# ----------------------------------------------------- +m4_defun([_LT_CONFIG_SAVE_COMMANDS], +[_LT_CONFIG_LIBTOOL([$1]) +_LT_CONFIG_LIBTOOL_INIT([$2]) +]) -_LT_DECL([], [SHELL], [1], [Shell to use when invoking shell scripts]) -_LT_DECL([], [ECHO], [1], [An echo program that protects backslashes]) -])# _LT_PROG_ECHO_BACKSLASH +# _LT_FORMAT_COMMENT([COMMENT]) +# ----------------------------- +# Add leading comment marks to the start of each line, and a trailing +# full-stop to the whole comment if one is not present already. +m4_define([_LT_FORMAT_COMMENT], +[m4_ifval([$1], [ +m4_bpatsubst([m4_bpatsubst([$1], [^ *], [# ])], + [['`$\]], [\\\&])]m4_bmatch([$1], [[!?.]$], [], [.]) +)]) -# _LT_WITH_SYSROOT -# ---------------- -AC_DEFUN([_LT_WITH_SYSROOT], -[AC_MSG_CHECKING([for sysroot]) -AC_ARG_WITH([sysroot], -[ --with-sysroot[=DIR] Search for dependent libraries within DIR - (or the compiler's sysroot if not specified).], -[], [with_sysroot=no]) -dnl lt_sysroot will always be passed unquoted. We quote it here -dnl in case the user passed a directory name. -lt_sysroot= -case ${with_sysroot} in #( - yes) - if test "$GCC" = yes; then - lt_sysroot=`$CC --print-sysroot 2>/dev/null` - fi - ;; #( - /*) - lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"` - ;; #( - no|'') - ;; #( - *) - AC_MSG_RESULT([${with_sysroot}]) - AC_MSG_ERROR([The sysroot must be an absolute path.]) - ;; -esac - AC_MSG_RESULT([${lt_sysroot:-no}]) -_LT_DECL([], [lt_sysroot], [0], [The root where to search for ]dnl -[dependent libraries, and in which our libraries should be installed.])]) -# _LT_ENABLE_LOCK -# --------------- -m4_defun([_LT_ENABLE_LOCK], -[AC_ARG_ENABLE([libtool-lock], - [AS_HELP_STRING([--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 -ia64-*-hpux*) - # Find out which ABI we are using. - echo 'int i;' > conftest.$ac_ext - if AC_TRY_EVAL(ac_compile); then - case `/usr/bin/file conftest.$ac_objext` in - *ELF-32*) - HPUX_IA64_MODE="32" - ;; - *ELF-64*) - HPUX_IA64_MODE="64" - ;; - esac - fi - rm -rf conftest* - ;; -*-*-irix6*) - # Find out which ABI we are using. - echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext - if AC_TRY_EVAL(ac_compile); then - if test "$lt_cv_prog_gnu_ld" = yes; then - case `/usr/bin/file conftest.$ac_objext` in - *32-bit*) - LD="${LD-ld} -melf32bsmip" - ;; - *N32*) - LD="${LD-ld} -melf32bmipn32" - ;; - *64-bit*) - LD="${LD-ld} -melf64bmip" - ;; - esac - else - 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 - fi - rm -rf conftest* - ;; +# _LT_DECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION], [IS-TAGGED?]) +# ------------------------------------------------------------------- +# CONFIGNAME is the name given to the value in the libtool script. +# VARNAME is the (base) name used in the configure script. +# VALUE may be 0, 1 or 2 for a computed quote escaped value based on +# VARNAME. Any other value will be used directly. +m4_define([_LT_DECL], +[lt_if_append_uniq([lt_decl_varnames], [$2], [, ], + [lt_dict_add_subkey([lt_decl_dict], [$2], [libtool_name], + [m4_ifval([$1], [$1], [$2])]) + lt_dict_add_subkey([lt_decl_dict], [$2], [value], [$3]) + m4_ifval([$4], + [lt_dict_add_subkey([lt_decl_dict], [$2], [description], [$4])]) + lt_dict_add_subkey([lt_decl_dict], [$2], + [tagged?], [m4_ifval([$5], [yes], [no])])]) +]) -x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \ -s390*-*linux*|s390*-*tpf*|sparc*-*linux*) - # Find out which ABI we are using. - echo 'int i;' > conftest.$ac_ext - if AC_TRY_EVAL(ac_compile); then - case `/usr/bin/file conftest.o` in - *32-bit*) - case $host in - x86_64-*kfreebsd*-gnu) - LD="${LD-ld} -m elf_i386_fbsd" - ;; - x86_64-*linux*) - case `/usr/bin/file conftest.o` in - *x86-64*) - LD="${LD-ld} -m elf32_x86_64" - ;; - *) - LD="${LD-ld} -m elf_i386" - ;; - esac - ;; - powerpc64le-*) - LD="${LD-ld} -m elf32lppclinux" - ;; - powerpc64-*) - LD="${LD-ld} -m elf32ppclinux" - ;; - s390x-*linux*) - LD="${LD-ld} -m elf_s390" - ;; - sparc64-*linux*) - LD="${LD-ld} -m elf32_sparc" - ;; - esac - ;; - *64-bit*) - case $host in - x86_64-*kfreebsd*-gnu) - LD="${LD-ld} -m elf_x86_64_fbsd" - ;; - x86_64-*linux*) - LD="${LD-ld} -m elf_x86_64" - ;; - powerpcle-*) - LD="${LD-ld} -m elf64lppc" - ;; - powerpc-*) - LD="${LD-ld} -m elf64ppc" - ;; - s390*-*linux*|s390*-*tpf*) - LD="${LD-ld} -m elf64_s390" - ;; - sparc*-*linux*) - LD="${LD-ld} -m elf64_sparc" - ;; - esac - ;; - 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_PUSH(C) - AC_LINK_IFELSE([AC_LANG_PROGRAM([[]],[[]])],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no]) - AC_LANG_POP]) - 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 - ;; -*-*solaris*) - # Find out which ABI we are using. - echo 'int i;' > conftest.$ac_ext - if AC_TRY_EVAL(ac_compile); then - case `/usr/bin/file conftest.o` in - *64-bit*) - case $lt_cv_prog_gnu_ld in - yes*) - case $host in - i?86-*-solaris*) - LD="${LD-ld} -m elf_x86_64" - ;; - sparc*-*-solaris*) - LD="${LD-ld} -m elf64_sparc" - ;; - esac - # GNU ld 2.21 introduced _sol2 emulations. Use them if available. - if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then - LD="${LD-ld}_sol2" - fi - ;; - *) - if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then - LD="${LD-ld} -64" - fi - ;; - esac - ;; - esac - fi - rm -rf conftest* - ;; -esac +# _LT_TAGDECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION]) +# -------------------------------------------------------- +m4_define([_LT_TAGDECL], [_LT_DECL([$1], [$2], [$3], [$4], [yes])]) -need_locks="$enable_libtool_lock" -])# _LT_ENABLE_LOCK +# lt_decl_tag_varnames([SEPARATOR], [VARNAME1...]) +# ------------------------------------------------ +m4_define([lt_decl_tag_varnames], +[_lt_decl_filter([tagged?], [yes], $@)]) -# _LT_PROG_AR -# ----------- -m4_defun([_LT_PROG_AR], -[AC_CHECK_TOOLS(AR, [ar], false) -: ${AR=ar} -: ${AR_FLAGS=cru} -_LT_DECL([], [AR], [1], [The archiver]) -_LT_DECL([], [AR_FLAGS], [1], [Flags to create an archive]) -AC_CACHE_CHECK([for archiver @FILE support], [lt_cv_ar_at_file], - [lt_cv_ar_at_file=no - AC_COMPILE_IFELSE([AC_LANG_PROGRAM], - [echo conftest.$ac_objext > conftest.lst - lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&AS_MESSAGE_LOG_FD' - AC_TRY_EVAL([lt_ar_try]) - if test "$ac_status" -eq 0; then - # Ensure the archiver fails upon bogus file names. - rm -f conftest.$ac_objext libconftest.a - AC_TRY_EVAL([lt_ar_try]) - if test "$ac_status" -ne 0; then - lt_cv_ar_at_file=@ - fi - fi - rm -f conftest.* libconftest.a - ]) - ]) +# _lt_decl_filter(SUBKEY, VALUE, [SEPARATOR], [VARNAME1..]) +# --------------------------------------------------------- +m4_define([_lt_decl_filter], +[m4_case([$#], + [0], [m4_fatal([$0: too few arguments: $#])], + [1], [m4_fatal([$0: too few arguments: $#: $1])], + [2], [lt_dict_filter([lt_decl_dict], [$1], [$2], [], lt_decl_varnames)], + [3], [lt_dict_filter([lt_decl_dict], [$1], [$2], [$3], lt_decl_varnames)], + [lt_dict_filter([lt_decl_dict], $@)])[]dnl +]) -if test "x$lt_cv_ar_at_file" = xno; then - archiver_list_spec= -else - archiver_list_spec=$lt_cv_ar_at_file -fi -_LT_DECL([], [archiver_list_spec], [1], - [How to feed a file listing to the archiver]) -])# _LT_PROG_AR +# lt_decl_quote_varnames([SEPARATOR], [VARNAME1...]) +# -------------------------------------------------- +m4_define([lt_decl_quote_varnames], +[_lt_decl_filter([value], [1], $@)]) -# _LT_CMD_OLD_ARCHIVE -# ------------------- -m4_defun([_LT_CMD_OLD_ARCHIVE], -[_LT_PROG_AR -AC_CHECK_TOOL(STRIP, strip, :) -test -z "$STRIP" && STRIP=: -_LT_DECL([], [STRIP], [1], [A symbol stripping program]) +# lt_decl_dquote_varnames([SEPARATOR], [VARNAME1...]) +# --------------------------------------------------- +m4_define([lt_decl_dquote_varnames], +[_lt_decl_filter([value], [2], $@)]) -AC_CHECK_TOOL(RANLIB, ranlib, :) -test -z "$RANLIB" && RANLIB=: -_LT_DECL([], [RANLIB], [1], - [Commands used to install an old-style archive]) -# Determine commands to create old-style static archives. -old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' -old_postinstall_cmds='chmod 644 $oldlib' -old_postuninstall_cmds= +# lt_decl_varnames_tagged([SEPARATOR], [VARNAME1...]) +# --------------------------------------------------- +m4_define([lt_decl_varnames_tagged], +[m4_assert([$# <= 2])dnl +_$0(m4_quote(m4_default([$1], [[, ]])), + m4_ifval([$2], [[$2]], [m4_dquote(lt_decl_tag_varnames)]), + m4_split(m4_normalize(m4_quote(_LT_TAGS)), [ ]))]) +m4_define([_lt_decl_varnames_tagged], +[m4_ifval([$3], [lt_combine([$1], [$2], [_], $3)])]) -if test -n "$RANLIB"; then - case $host_os in - openbsd*) - old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib" - ;; - *) - old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib" - ;; - esac - old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib" -fi -case $host_os in - darwin*) - lock_old_archive_extraction=yes ;; - *) - lock_old_archive_extraction=no ;; -esac -_LT_DECL([], [old_postinstall_cmds], [2]) -_LT_DECL([], [old_postuninstall_cmds], [2]) -_LT_TAGDECL([], [old_archive_cmds], [2], - [Commands used to build an old-style archive]) -_LT_DECL([], [lock_old_archive_extraction], [0], - [Whether to use a lock for old archive extraction]) -])# _LT_CMD_OLD_ARCHIVE +# lt_decl_all_varnames([SEPARATOR], [VARNAME1...]) +# ------------------------------------------------ +m4_define([lt_decl_all_varnames], +[_$0(m4_quote(m4_default([$1], [[, ]])), + m4_if([$2], [], + m4_quote(lt_decl_varnames), + m4_quote(m4_shift($@))))[]dnl +]) +m4_define([_lt_decl_all_varnames], +[lt_join($@, lt_decl_varnames_tagged([$1], + lt_decl_tag_varnames([[, ]], m4_shift($@))))dnl +]) -# _LT_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, -# [OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE]) -# ---------------------------------------------------------------- -# Check whether the given compiler option works -AC_DEFUN([_LT_COMPILER_OPTION], -[m4_require([_LT_FILEUTILS_DEFAULTS])dnl -m4_require([_LT_DECL_SED])dnl -AC_CACHE_CHECK([$1], [$2], - [$2=no - m4_if([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4]) - echo "$lt_simple_compile_test_code" > conftest.$ac_ext - lt_compiler_flag="$3" - # Insert the option either (1) after the last *FLAGS variable, or - # (2) before a word containing "conftest.", or (3) at the end. - # Note that $ac_compile itself does not contain backslashes and begins - # with a dollar sign (not a hyphen), so the echo should work correctly. - # The option is referenced via a variable to avoid confusing sed. - lt_compile=`echo "$ac_compile" | $SED \ - -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ - -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ - -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD) - (eval "$lt_compile" 2>conftest.err) - ac_status=$? - cat conftest.err >&AS_MESSAGE_LOG_FD - echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD - if (exit $ac_status) && test -s "$ac_outfile"; then - # The compiler can only warn and ignore the option if not recognized - # So say no if there are warnings other than the usual output. - $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp - $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 - if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then - $2=yes - fi - fi - $RM conftest* -]) +# _LT_CONFIG_STATUS_DECLARE([VARNAME]) +# ------------------------------------ +# Quote a variable value, and forward it to `config.status' so that its +# declaration there will have the same value as in `configure'. VARNAME +# must have a single quote delimited value for this to work. +m4_define([_LT_CONFIG_STATUS_DECLARE], +[$1='`$ECHO "$][$1" | $SED "$delay_single_quote_subst"`']) -if test x"[$]$2" = xyes; then - m4_if([$5], , :, [$5]) -else - m4_if([$6], , :, [$6]) -fi -])# _LT_COMPILER_OPTION -# Old name: -AU_ALIAS([AC_LIBTOOL_COMPILER_OPTION], [_LT_COMPILER_OPTION]) -dnl aclocal-1.4 backwards compatibility: -dnl AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION], []) +# _LT_CONFIG_STATUS_DECLARATIONS +# ------------------------------ +# We delimit libtool config variables with single quotes, so when +# we write them to config.status, we have to be sure to quote all +# embedded single quotes properly. In configure, this macro expands +# each variable declared with _LT_DECL (and _LT_TAGDECL) into: +# +# ='`$ECHO "$" | $SED "$delay_single_quote_subst"`' +m4_defun([_LT_CONFIG_STATUS_DECLARATIONS], +[m4_foreach([_lt_var], m4_quote(lt_decl_all_varnames), + [m4_n([_LT_CONFIG_STATUS_DECLARE(_lt_var)])])]) -# _LT_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, -# [ACTION-SUCCESS], [ACTION-FAILURE]) -# ---------------------------------------------------- -# Check whether the given linker option works -AC_DEFUN([_LT_LINKER_OPTION], -[m4_require([_LT_FILEUTILS_DEFAULTS])dnl -m4_require([_LT_DECL_SED])dnl -AC_CACHE_CHECK([$1], [$2], - [$2=no - save_LDFLAGS="$LDFLAGS" - LDFLAGS="$LDFLAGS $3" - echo "$lt_simple_link_test_code" > conftest.$ac_ext - if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then - # The linker can only warn and ignore the option if not recognized - # So say no if there are warnings - if test -s conftest.err; then - # Append any errors to the config.log. - cat conftest.err 1>&AS_MESSAGE_LOG_FD - $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp - $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 - if diff conftest.exp conftest.er2 >/dev/null; then - $2=yes - fi - else - $2=yes - fi - fi - $RM -r conftest* - LDFLAGS="$save_LDFLAGS" +# _LT_LIBTOOL_TAGS +# ---------------- +# Output comment and list of tags supported by the script +m4_defun([_LT_LIBTOOL_TAGS], +[_LT_FORMAT_COMMENT([The names of the tagged configurations supported by this script])dnl +available_tags="_LT_TAGS"dnl ]) -if test x"[$]$2" = xyes; then - m4_if([$4], , :, [$4]) -else - m4_if([$5], , :, [$5]) -fi -])# _LT_LINKER_OPTION -# Old name: -AU_ALIAS([AC_LIBTOOL_LINKER_OPTION], [_LT_LINKER_OPTION]) -dnl aclocal-1.4 backwards compatibility: -dnl AC_DEFUN([AC_LIBTOOL_LINKER_OPTION], []) +# _LT_LIBTOOL_DECLARE(VARNAME, [TAG]) +# ----------------------------------- +# Extract the dictionary values for VARNAME (optionally with TAG) and +# expand to a commented shell variable setting: +# +# # Some comment about what VAR is for. +# visible_name=$lt_internal_name +m4_define([_LT_LIBTOOL_DECLARE], +[_LT_FORMAT_COMMENT(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], + [description])))[]dnl +m4_pushdef([_libtool_name], + m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [libtool_name])))[]dnl +m4_case(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [value])), + [0], [_libtool_name=[$]$1], + [1], [_libtool_name=$lt_[]$1], + [2], [_libtool_name=$lt_[]$1], + [_libtool_name=lt_dict_fetch([lt_decl_dict], [$1], [value])])[]dnl +m4_ifval([$2], [_$2])[]m4_popdef([_libtool_name])[]dnl +]) -# LT_CMD_MAX_LEN -#--------------- -AC_DEFUN([LT_CMD_MAX_LEN], -[AC_REQUIRE([AC_CANONICAL_HOST])dnl -# find the maximum length of command line arguments -AC_MSG_CHECKING([the maximum length of command line arguments]) -AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl - i=0 - teststring="ABCD" +# _LT_LIBTOOL_CONFIG_VARS +# ----------------------- +# Produce commented declarations of non-tagged libtool config variables +# suitable for insertion in the LIBTOOL CONFIG section of the `libtool' +# script. Tagged libtool config variables (even for the LIBTOOL CONFIG +# section) are produced by _LT_LIBTOOL_TAG_VARS. +m4_defun([_LT_LIBTOOL_CONFIG_VARS], +[m4_foreach([_lt_var], + m4_quote(_lt_decl_filter([tagged?], [no], [], lt_decl_varnames)), + [m4_n([_LT_LIBTOOL_DECLARE(_lt_var)])])]) - case $build_os in - msdosdjgpp*) - # On DJGPP, this test can blow up pretty badly due to problems in libc - # (any single argument exceeding 2000 bytes causes a buffer overrun - # during glob expansion). Even if it were fixed, the result of this - # check would be larger than it should be. - lt_cv_sys_max_cmd_len=12288; # 12K is about right - ;; - - gnu*) - # Under GNU Hurd, this test is not required because there is - # no limit to the length of command line arguments. - # Libtool will interpret -1 as no limit whatsoever - lt_cv_sys_max_cmd_len=-1; - ;; - cygwin* | mingw* | cegcc*) - # On Win9x/ME, this test blows up -- it succeeds, but takes - # about 5 minutes as the teststring grows exponentially. - # Worse, since 9x/ME are not pre-emptively multitasking, - # you end up with a "frozen" computer, even though with patience - # the test eventually succeeds (with a max line length of 256k). - # Instead, let's just punt: use the minimum linelength reported by - # all of the supported platforms: 8192 (on NT/2K/XP). - lt_cv_sys_max_cmd_len=8192; - ;; +# _LT_LIBTOOL_TAG_VARS(TAG) +# ------------------------- +m4_define([_LT_LIBTOOL_TAG_VARS], +[m4_foreach([_lt_var], m4_quote(lt_decl_tag_varnames), + [m4_n([_LT_LIBTOOL_DECLARE(_lt_var, [$1])])])]) - mint*) - # On MiNT this can take a long time and run out of memory. - lt_cv_sys_max_cmd_len=8192; - ;; - amigaos*) - # On AmigaOS with pdksh, this test takes hours, literally. - # So we just punt and use a minimum line length of 8192. - lt_cv_sys_max_cmd_len=8192; - ;; +# _LT_TAGVAR(VARNAME, [TAGNAME]) +# ------------------------------ +m4_define([_LT_TAGVAR], [m4_ifval([$2], [$1_$2], [$1])]) - netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) - # This has been around since 386BSD, at least. Likely further. - if test -x /sbin/sysctl; then - lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` - elif test -x /usr/sbin/sysctl; then - lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` - else - lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs - fi - # And add a safety zone - lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` - lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` - ;; - interix*) - # We know the value 262144 and hardcode it with a safety zone (like BSD) - lt_cv_sys_max_cmd_len=196608 - ;; +# _LT_CONFIG_COMMANDS +# ------------------- +# Send accumulated output to $CONFIG_STATUS. Thanks to the lists of +# variables for single and double quote escaping we saved from calls +# to _LT_DECL, we can put quote escaped variables declarations +# into `config.status', and then the shell code to quote escape them in +# for loops in `config.status'. Finally, any additional code accumulated +# from calls to _LT_CONFIG_LIBTOOL_INIT is expanded. +m4_defun([_LT_CONFIG_COMMANDS], +[AC_PROVIDE_IFELSE([LT_OUTPUT], + dnl If the libtool generation code has been placed in $CONFIG_LT, + dnl instead of duplicating it all over again into config.status, + dnl then we will have config.status run $CONFIG_LT later, so it + dnl needs to know what name is stored there: + [AC_CONFIG_COMMANDS([libtool], + [$SHELL $CONFIG_LT || AS_EXIT(1)], [CONFIG_LT='$CONFIG_LT'])], + dnl If the libtool generation code is destined for config.status, + dnl expand the accumulated commands and init code now: + [AC_CONFIG_COMMANDS([libtool], + [_LT_OUTPUT_LIBTOOL_COMMANDS], [_LT_OUTPUT_LIBTOOL_COMMANDS_INIT])]) +])#_LT_CONFIG_COMMANDS - os2*) - # The test takes a long time on OS/2. - lt_cv_sys_max_cmd_len=8192 - ;; - osf*) - # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure - # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not - # nice to cause kernel panics so lets avoid the loop below. - # First set a reasonable default. - lt_cv_sys_max_cmd_len=16384 - # - if test -x /sbin/sysconfig; then - case `/sbin/sysconfig -q proc exec_disable_arg_limit` in - *1*) lt_cv_sys_max_cmd_len=-1 ;; - esac - fi - ;; - sco3.2v5*) - lt_cv_sys_max_cmd_len=102400 - ;; - sysv5* | sco5v6* | sysv4.2uw2*) - kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` - if test -n "$kargmax"; then - lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[[ ]]//'` - else - lt_cv_sys_max_cmd_len=32768 - fi - ;; - *) - lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` - if test -n "$lt_cv_sys_max_cmd_len" && \ - test undefined != "$lt_cv_sys_max_cmd_len"; then - lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` - lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` - else - # Make teststring a little bigger before we do anything with it. - # a 1K string should be a reasonable start. - for i in 1 2 3 4 5 6 7 8 ; do - teststring=$teststring$teststring - done - SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} - # If test is not a shell built-in, we'll probably end up computing a - # maximum length that is only half of the actual maximum length, but - # we can't tell. - while { test "X"`env echo "$teststring$teststring" 2>/dev/null` \ - = "X$teststring$teststring"; } >/dev/null 2>&1 && - test $i != 17 # 1/2 MB should be enough - do - i=`expr $i + 1` - teststring=$teststring$teststring - done - # Only check the string length outside the loop. - lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` - teststring= - # Add a significant safety factor because C++ compilers can tack on - # massive amounts of additional arguments before passing them to the - # linker. It appears as though 1/2 is a usable value. - lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` - fi - ;; - esac -]) -if test -n $lt_cv_sys_max_cmd_len ; then - AC_MSG_RESULT($lt_cv_sys_max_cmd_len) -else - AC_MSG_RESULT(none) -fi -max_cmd_len=$lt_cv_sys_max_cmd_len -_LT_DECL([], [max_cmd_len], [0], - [What is the maximum length of a command?]) -])# LT_CMD_MAX_LEN +# Initialize. +m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS_INIT], +[ -# Old name: -AU_ALIAS([AC_LIBTOOL_SYS_MAX_CMD_LEN], [LT_CMD_MAX_LEN]) -dnl aclocal-1.4 backwards compatibility: -dnl AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], []) +# The HP-UX ksh and POSIX shell print the target directory to stdout +# if CDPATH is set. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH +sed_quote_subst='$sed_quote_subst' +double_quote_subst='$double_quote_subst' +delay_variable_subst='$delay_variable_subst' +_LT_CONFIG_STATUS_DECLARATIONS +LTCC='$LTCC' +LTCFLAGS='$LTCFLAGS' +compiler='$compiler_DEFAULT' -# _LT_HEADER_DLFCN -# ---------------- -m4_defun([_LT_HEADER_DLFCN], -[AC_CHECK_HEADERS([dlfcn.h], [], [], [AC_INCLUDES_DEFAULT])dnl -])# _LT_HEADER_DLFCN +# A function that is used when there is no print builtin or printf. +func_fallback_echo () +{ + eval 'cat <<_LTECHO_EOF +\$[]1 +_LTECHO_EOF' +} +# Quote evaled strings. +for var in lt_decl_all_varnames([[ \ +]], lt_decl_quote_varnames); do + case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in + *[[\\\\\\\`\\"\\\$]]*) + eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" + ;; + *) + eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" + ;; + esac +done -# _LT_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE, -# ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING) -# ---------------------------------------------------------------- -m4_defun([_LT_TRY_DLOPEN_SELF], -[m4_require([_LT_HEADER_DLFCN])dnl -if test "$cross_compiling" = yes; then : - [$4] -else - lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 - lt_status=$lt_dlunknown - cat > conftest.$ac_ext <<_LT_EOF -[#line $LINENO "configure" -#include "confdefs.h" +# Double-quote double-evaled strings. +for var in lt_decl_all_varnames([[ \ +]], lt_decl_dquote_varnames); do + case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in + *[[\\\\\\\`\\"\\\$]]*) + eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" + ;; + *) + eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" + ;; + esac +done -#if HAVE_DLFCN_H -#include -#endif +_LT_OUTPUT_LIBTOOL_INIT +]) -#include +# _LT_GENERATED_FILE_INIT(FILE, [COMMENT]) +# ------------------------------------ +# Generate a child script FILE with all initialization necessary to +# reuse the environment learned by the parent script, and make the +# file executable. If COMMENT is supplied, it is inserted after the +# `#!' sequence but before initialization text begins. After this +# macro, additional text can be appended to FILE to form the body of +# the child script. The macro ends with non-zero status if the +# file could not be fully written (such as if the disk is full). +m4_ifdef([AS_INIT_GENERATED], +[m4_defun([_LT_GENERATED_FILE_INIT],[AS_INIT_GENERATED($@)])], +[m4_defun([_LT_GENERATED_FILE_INIT], +[m4_require([AS_PREPARE])]dnl +[m4_pushdef([AS_MESSAGE_LOG_FD])]dnl +[lt_write_fail=0 +cat >$1 <<_ASEOF || lt_write_fail=1 +#! $SHELL +# Generated by $as_me. +$2 +SHELL=\${CONFIG_SHELL-$SHELL} +export SHELL +_ASEOF +cat >>$1 <<\_ASEOF || lt_write_fail=1 +AS_SHELL_SANITIZE +_AS_PREPARE +exec AS_MESSAGE_FD>&1 +_ASEOF +test $lt_write_fail = 0 && chmod +x $1[]dnl +m4_popdef([AS_MESSAGE_LOG_FD])])])# _LT_GENERATED_FILE_INIT -#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 - -/* When -fvisbility=hidden is used, assume the code has been annotated - correspondingly for the symbols needed. */ -#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) -int fnord () __attribute__((visibility("default"))); -#endif +# LT_OUTPUT +# --------- +# This macro allows early generation of the libtool script (before +# AC_OUTPUT is called), incase it is used in configure for compilation +# tests. +AC_DEFUN([LT_OUTPUT], +[: ${CONFIG_LT=./config.lt} +AC_MSG_NOTICE([creating $CONFIG_LT]) +_LT_GENERATED_FILE_INIT(["$CONFIG_LT"], +[# Run this file to recreate a libtool stub with the current configuration.]) -int fnord () { return 42; } -int main () +cat >>"$CONFIG_LT" <<\_LTEOF +lt_cl_silent=false +exec AS_MESSAGE_LOG_FD>>config.log { - void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); - int status = $lt_dlunknown; + echo + AS_BOX([Running $as_me.]) +} >&AS_MESSAGE_LOG_FD - if (self) - { - if (dlsym (self,"fnord")) status = $lt_dlno_uscore; - else - { - if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; - else puts (dlerror ()); - } - /* dlclose (self); */ - } - else - puts (dlerror ()); +lt_cl_help="\ +\`$as_me' creates a local libtool stub from the current configuration, +for use in further configure time tests before the real libtool is +generated. - return status; -}] -_LT_EOF - if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} 2>/dev/null; then - (./conftest; exit; ) >&AS_MESSAGE_LOG_FD 2>/dev/null - lt_status=$? - case x$lt_status in - x$lt_dlno_uscore) $1 ;; - x$lt_dlneed_uscore) $2 ;; - x$lt_dlunknown|x*) $3 ;; - esac - else : - # compilation failed - $3 - fi -fi -rm -fr conftest* -])# _LT_TRY_DLOPEN_SELF +Usage: $[0] [[OPTIONS]] + -h, --help print this help, then exit + -V, --version print version number, then exit + -q, --quiet do not print progress messages + -d, --debug don't remove temporary files -# LT_SYS_DLOPEN_SELF -# ------------------ -AC_DEFUN([LT_SYS_DLOPEN_SELF], -[m4_require([_LT_HEADER_DLFCN])dnl -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= +Report bugs to ." - case $host_os in - beos*) - lt_cv_dlopen="load_add_on" - lt_cv_dlopen_libs= - lt_cv_dlopen_self=yes - ;; +lt_cl_version="\ +m4_ifset([AC_PACKAGE_NAME], [AC_PACKAGE_NAME ])config.lt[]dnl +m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION]) +configured by $[0], generated by m4_PACKAGE_STRING. - mingw* | pw32* | cegcc*) - lt_cv_dlopen="LoadLibrary" - lt_cv_dlopen_libs= - ;; +Copyright (C) 2011 Free Software Foundation, Inc. +This config.lt script is free software; the Free Software Foundation +gives unlimited permision to copy, distribute and modify it." - cygwin*) - lt_cv_dlopen="dlopen" - lt_cv_dlopen_libs= - ;; +while test $[#] != 0 +do + case $[1] in + --version | --v* | -V ) + echo "$lt_cl_version"; exit 0 ;; + --help | --h* | -h ) + echo "$lt_cl_help"; exit 0 ;; + --debug | --d* | -d ) + debug=: ;; + --quiet | --q* | --silent | --s* | -q ) + lt_cl_silent=: ;; - darwin*) - # if libdl is installed we need to link against it - AC_CHECK_LIB([dl], [dlopen], - [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],[ - lt_cv_dlopen="dyld" - lt_cv_dlopen_libs= - lt_cv_dlopen_self=yes - ]) - ;; + -*) AC_MSG_ERROR([unrecognized option: $[1] +Try \`$[0] --help' for more information.]) ;; - *) - 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="-ldld"], - [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="-ldld"]) - ]) - ]) - ]) - ]) - ]) - ;; + *) AC_MSG_ERROR([unrecognized argument: $[1] +Try \`$[0] --help' for more information.]) ;; esac + shift +done - if test "x$lt_cv_dlopen" != xno; then - enable_dlopen=yes - else - enable_dlopen=no - fi +if $lt_cl_silent; then + exec AS_MESSAGE_FD>/dev/null +fi +_LTEOF - case $lt_cv_dlopen in - dlopen) - save_CPPFLAGS="$CPPFLAGS" - test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" +cat >>"$CONFIG_LT" <<_LTEOF +_LT_OUTPUT_LIBTOOL_COMMANDS_INIT +_LTEOF - save_LDFLAGS="$LDFLAGS" - wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" +cat >>"$CONFIG_LT" <<\_LTEOF +AC_MSG_NOTICE([creating $ofile]) +_LT_OUTPUT_LIBTOOL_COMMANDS +AS_EXIT(0) +_LTEOF +chmod +x "$CONFIG_LT" - save_LIBS="$LIBS" - LIBS="$lt_cv_dlopen_libs $LIBS" +# configure is writing to config.log, but config.lt does its own redirection, +# appending to config.log, which fails on DOS, as config.log is still kept +# open by configure. Here we exec the FD to /dev/null, effectively closing +# config.log, so it can be properly (re)opened and appended to by config.lt. +lt_cl_success=: +test "$silent" = yes && + lt_config_lt_args="$lt_config_lt_args --quiet" +exec AS_MESSAGE_LOG_FD>/dev/null +$SHELL "$CONFIG_LT" $lt_config_lt_args || lt_cl_success=false +exec AS_MESSAGE_LOG_FD>>config.log +$lt_cl_success || AS_EXIT(1) +])# LT_OUTPUT - AC_CACHE_CHECK([whether a program can dlopen itself], - lt_cv_dlopen_self, [dnl - _LT_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 - wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" - AC_CACHE_CHECK([whether a statically linked program can dlopen itself], - lt_cv_dlopen_self_static, [dnl - _LT_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) - ]) +# _LT_CONFIG(TAG) +# --------------- +# If TAG is the built-in tag, create an initial libtool script with a +# default configuration from the untagged config vars. Otherwise add code +# to config.status for appending the configuration named by TAG from the +# matching tagged config vars. +m4_defun([_LT_CONFIG], +[m4_require([_LT_FILEUTILS_DEFAULTS])dnl +_LT_CONFIG_SAVE_COMMANDS([ + m4_define([_LT_TAG], m4_if([$1], [], [C], [$1]))dnl + m4_if(_LT_TAG, [C], [ + # See if we are running on zsh, and set the options which allow our + # commands through without removal of \ escapes. + if test -n "${ZSH_VERSION+set}" ; then + setopt NO_GLOB_SUBST fi - CPPFLAGS="$save_CPPFLAGS" - LDFLAGS="$save_LDFLAGS" - LIBS="$save_LIBS" - ;; - esac + cfgfile="${ofile}T" + trap "$RM \"$cfgfile\"; exit 1" 1 2 15 + $RM "$cfgfile" - case $lt_cv_dlopen_self in - yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; - *) enable_dlopen_self=unknown ;; - esac + cat <<_LT_EOF >> "$cfgfile" +#! $SHELL - 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 -_LT_DECL([dlopen_support], [enable_dlopen], [0], - [Whether dlopen is supported]) -_LT_DECL([dlopen_self], [enable_dlopen_self], [0], - [Whether dlopen of programs is supported]) -_LT_DECL([dlopen_self_static], [enable_dlopen_self_static], [0], - [Whether dlopen of statically linked programs is supported]) -])# LT_SYS_DLOPEN_SELF +# `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services. +# Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION +# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: +# NOTE: Changes made to this file will be lost: look at ltmain.sh. +# +_LT_COPYING +_LT_LIBTOOL_TAGS -# Old name: -AU_ALIAS([AC_LIBTOOL_DLOPEN_SELF], [LT_SYS_DLOPEN_SELF]) -dnl aclocal-1.4 backwards compatibility: -dnl AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF], []) +# ### BEGIN LIBTOOL CONFIG +_LT_LIBTOOL_CONFIG_VARS +_LT_LIBTOOL_TAG_VARS +# ### END LIBTOOL CONFIG +_LT_EOF -# _LT_COMPILER_C_O([TAGNAME]) -# --------------------------- -# Check to see if options -c and -o are simultaneously supported by compiler. -# This macro does not hard code the compiler like AC_PROG_CC_C_O. -m4_defun([_LT_COMPILER_C_O], -[m4_require([_LT_DECL_SED])dnl -m4_require([_LT_FILEUTILS_DEFAULTS])dnl -m4_require([_LT_TAG_COMPILER])dnl -AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext], - [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)], - [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=no - $RM -r conftest 2>/dev/null - mkdir conftest - cd conftest - mkdir out - echo "$lt_simple_compile_test_code" > conftest.$ac_ext + case $host_os in + aix3*) + cat <<\_LT_EOF >> "$cfgfile" +# 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 +_LT_EOF + ;; + esac - lt_compiler_flag="-o out/conftest2.$ac_objext" - # Insert the option either (1) after the last *FLAGS variable, or - # (2) before a word containing "conftest.", or (3) at the end. - # Note that $ac_compile itself does not contain backslashes and begins - # with a dollar sign (not a hyphen), so the echo should work correctly. - lt_compile=`echo "$ac_compile" | $SED \ - -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ - -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ - -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD) - (eval "$lt_compile" 2>out/conftest.err) - ac_status=$? - cat out/conftest.err >&AS_MESSAGE_LOG_FD - echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD - if (exit $ac_status) && 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 - $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp - $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 - if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then - _LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes - fi - fi - chmod u+w . 2>&AS_MESSAGE_LOG_FD - $RM conftest* - # SGI C++ compiler will create directory out/ii_files/ for - # template instantiation - test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files - $RM out/* && rmdir out - cd .. - $RM -r conftest - $RM conftest* -]) -_LT_TAGDECL([compiler_c_o], [lt_cv_prog_compiler_c_o], [1], - [Does compiler simultaneously support -c and -o options?]) -])# _LT_COMPILER_C_O + _LT_PROG_LTMAIN + # We use sed instead of cat because bash on DJGPP gets confused if + # if finds mixed CR/LF and LF-only lines. Since sed operates in + # text mode, it properly converts lines to CR/LF. This bash problem + # is reportedly fixed, but why not run on old versions too? + sed '$q' "$ltmain" >> "$cfgfile" \ + || (rm -f "$cfgfile"; exit 1) -# _LT_COMPILER_FILE_LOCKS([TAGNAME]) -# ---------------------------------- -# Check to see if we can do hard links to lock some files if needed -m4_defun([_LT_COMPILER_FILE_LOCKS], -[m4_require([_LT_ENABLE_LOCK])dnl -m4_require([_LT_FILEUTILS_DEFAULTS])dnl -_LT_COMPILER_C_O([$1]) + _LT_PROG_REPLACE_SHELLFNS -hard_links="nottested" -if test "$_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)" = 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 -_LT_DECL([], [need_locks], [1], [Must we lock files when doing compilation?]) -])# _LT_COMPILER_FILE_LOCKS + mv -f "$cfgfile" "$ofile" || + (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") + chmod +x "$ofile" +], +[cat <<_LT_EOF >> "$ofile" +dnl Unfortunately we have to use $1 here, since _LT_TAG is not expanded +dnl in a comment (ie after a #). +# ### BEGIN LIBTOOL TAG CONFIG: $1 +_LT_LIBTOOL_TAG_VARS(_LT_TAG) +# ### END LIBTOOL TAG CONFIG: $1 +_LT_EOF +])dnl /m4_if +], +[m4_if([$1], [], [ + PACKAGE='$PACKAGE' + VERSION='$VERSION' + TIMESTAMP='$TIMESTAMP' + RM='$RM' + ofile='$ofile'], []) +])dnl /_LT_CONFIG_SAVE_COMMANDS +])# _LT_CONFIG -# _LT_CHECK_OBJDIR -# ---------------- -m4_defun([_LT_CHECK_OBJDIR], -[AC_CACHE_CHECK([for objdir], [lt_cv_objdir], -[rm -f .libs 2>/dev/null -mkdir .libs 2>/dev/null -if test -d .libs; then - lt_cv_objdir=.libs -else - # MS-DOS does not allow filenames that begin with a dot. - lt_cv_objdir=_libs -fi -rmdir .libs 2>/dev/null]) -objdir=$lt_cv_objdir -_LT_DECL([], [objdir], [0], - [The name of the directory that contains temporary libtool files])dnl -m4_pattern_allow([LT_OBJDIR])dnl -AC_DEFINE_UNQUOTED(LT_OBJDIR, "$lt_cv_objdir/", - [Define to the sub-directory in which libtool stores uninstalled libraries.]) -])# _LT_CHECK_OBJDIR +# LT_SUPPORTED_TAG(TAG) +# --------------------- +# Trace this macro to discover what tags are supported by the libtool +# --tag option, using: +# autoconf --trace 'LT_SUPPORTED_TAG:$1' +AC_DEFUN([LT_SUPPORTED_TAG], []) -# _LT_LINKER_HARDCODE_LIBPATH([TAGNAME]) -# -------------------------------------- -# Check hardcoding attributes. -m4_defun([_LT_LINKER_HARDCODE_LIBPATH], -[AC_MSG_CHECKING([how to hardcode library paths into programs]) -_LT_TAGVAR(hardcode_action, $1)= -if test -n "$_LT_TAGVAR(hardcode_libdir_flag_spec, $1)" || - test -n "$_LT_TAGVAR(runpath_var, $1)" || - test "X$_LT_TAGVAR(hardcode_automatic, $1)" = "Xyes" ; then - # We can hardcode non-existent directories. - if test "$_LT_TAGVAR(hardcode_direct, $1)" != 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 "$_LT_TAGVAR(hardcode_shlibpath_var, $1)" != no && - test "$_LT_TAGVAR(hardcode_minus_L, $1)" != no; then - # Linking always hardcodes the temporary library directory. - _LT_TAGVAR(hardcode_action, $1)=relink - else - # We can link without hardcoding, and we can hardcode nonexisting dirs. - _LT_TAGVAR(hardcode_action, $1)=immediate - fi -else - # We cannot hardcode anything, or else we can only hardcode existing - # directories. - _LT_TAGVAR(hardcode_action, $1)=unsupported -fi -AC_MSG_RESULT([$_LT_TAGVAR(hardcode_action, $1)]) +# C support is built-in for now +m4_define([_LT_LANG_C_enabled], []) +m4_define([_LT_TAGS], []) -if test "$_LT_TAGVAR(hardcode_action, $1)" = relink || - test "$_LT_TAGVAR(inherit_rpath, $1)" = yes; 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 -_LT_TAGDECL([], [hardcode_action], [0], - [How to hardcode a shared library path into an executable]) -])# _LT_LINKER_HARDCODE_LIBPATH +# LT_LANG(LANG) +# ------------- +# Enable libtool support for the given language if not already enabled. +AC_DEFUN([LT_LANG], +[AC_BEFORE([$0], [LT_OUTPUT])dnl +m4_case([$1], + [C], [_LT_LANG(C)], + [C++], [_LT_LANG(CXX)], + [Go], [_LT_LANG(GO)], + [Java], [_LT_LANG(GCJ)], + [Fortran 77], [_LT_LANG(F77)], + [Fortran], [_LT_LANG(FC)], + [Windows Resource], [_LT_LANG(RC)], + [m4_ifdef([_LT_LANG_]$1[_CONFIG], + [_LT_LANG($1)], + [m4_fatal([$0: unsupported language: "$1"])])])dnl +])# LT_LANG -# _LT_CMD_STRIPLIB -# ---------------- -m4_defun([_LT_CMD_STRIPLIB], -[m4_require([_LT_DECL_EGREP]) -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 -# FIXME - insert some real tests, host_os isn't really good enough - case $host_os in - darwin*) - if test -n "$STRIP" ; then - striplib="$STRIP -x" - old_striplib="$STRIP -S" - AC_MSG_RESULT([yes]) - else - AC_MSG_RESULT([no]) - fi - ;; - *) - AC_MSG_RESULT([no]) - ;; - esac -fi -_LT_DECL([], [old_striplib], [1], [Commands to strip libraries]) -_LT_DECL([], [striplib], [1]) -])# _LT_CMD_STRIPLIB +# _LT_LANG(LANGNAME) +# ------------------ +m4_defun([_LT_LANG], +[m4_ifdef([_LT_LANG_]$1[_enabled], [], + [LT_SUPPORTED_TAG([$1])dnl + m4_append([_LT_TAGS], [$1 ])dnl + m4_define([_LT_LANG_]$1[_enabled], [])dnl + _LT_LANG_$1_CONFIG($1)])dnl +])# _LT_LANG -# _LT_SYS_DYNAMIC_LINKER([TAG]) -# ----------------------------- -# PORTME Fill in your ld.so characteristics -m4_defun([_LT_SYS_DYNAMIC_LINKER], -[AC_REQUIRE([AC_CANONICAL_HOST])dnl -m4_require([_LT_DECL_EGREP])dnl -m4_require([_LT_FILEUTILS_DEFAULTS])dnl -m4_require([_LT_DECL_OBJDUMP])dnl -m4_require([_LT_DECL_SED])dnl -m4_require([_LT_CHECK_SHELL_FEATURES])dnl -AC_MSG_CHECKING([dynamic linker characteristics]) -m4_if([$1], - [], [ -if test "$GCC" = yes; then - case $host_os in - darwin*) lt_awk_arg="/^libraries:/,/LR/" ;; - *) lt_awk_arg="/^libraries:/" ;; - esac - case $host_os in - mingw* | cegcc*) lt_sed_strip_eq="s,=\([[A-Za-z]]:\),\1,g" ;; - *) lt_sed_strip_eq="s,=/,/,g" ;; - esac - lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq` - case $lt_search_path_spec in - *\;*) - # if the path contains ";" then we assume it to be the separator - # otherwise default to the standard path separator (i.e. ":") - it is - # assumed that no part of a normal pathname contains ";" but that should - # okay in the real world where ";" in dirpaths is itself problematic. - lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'` - ;; - *) - lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"` - ;; - esac - # Ok, now we have the path, separated by spaces, we can step through it - # and add multilib dir if necessary. - lt_tmp_lt_search_path_spec= - lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` - for lt_sys_path in $lt_search_path_spec; do - if test -d "$lt_sys_path/$lt_multi_os_dir"; then - lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir" - else - test -d "$lt_sys_path" && \ - lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" - fi - done - lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk ' -BEGIN {RS=" "; FS="/|\n";} { - lt_foo=""; - lt_count=0; - for (lt_i = NF; lt_i > 0; lt_i--) { - if ($lt_i != "" && $lt_i != ".") { - if ($lt_i == "..") { - lt_count++; - } else { - if (lt_count == 0) { - lt_foo="/" $lt_i lt_foo; - } else { - lt_count--; - } - } - } - } - if (lt_foo != "") { lt_freq[[lt_foo]]++; } - if (lt_freq[[lt_foo]] == 1) { print lt_foo; } -}'` - # AWK program above erroneously prepends '/' to C:/dos/paths - # for these hosts. - case $host_os in - mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\ - $SED 's,/\([[A-Za-z]]:\),\1,g'` ;; - esac - sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP` -else - sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" -fi]) -library_names_spec= -libname_spec='lib$name' -soname_spec= -shrext_cmds=".so" -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" -need_lib_prefix=unknown -hardcode_into_libs=no -# when you set need_version to no, make sure it does not cause -set_version -# flags to be left without arguments -need_version=unknown +m4_ifndef([AC_PROG_GO], [ +# NOTE: This macro has been submitted for inclusion into # +# GNU Autoconf as AC_PROG_GO. When it is available in # +# a released version of Autoconf we should remove this # +# macro and use it instead. # +m4_defun([AC_PROG_GO], +[AC_LANG_PUSH(Go)dnl +AC_ARG_VAR([GOC], [Go compiler command])dnl +AC_ARG_VAR([GOFLAGS], [Go compiler flags])dnl +_AC_ARG_VAR_LDFLAGS()dnl +AC_CHECK_TOOL(GOC, gccgo) +if test -z "$GOC"; then + if test -n "$ac_tool_prefix"; then + AC_CHECK_PROG(GOC, [${ac_tool_prefix}gccgo], [${ac_tool_prefix}gccgo]) + fi +fi +if test -z "$GOC"; then + AC_CHECK_PROG(GOC, gccgo, gccgo, false) +fi +])#m4_defun +])#m4_ifndef -case $host_os in -aix3*) - version_type=linux # correct to gnu/linux during the next big refactor - library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' - shlibpath_var=LIBPATH - # AIX 3 has no versioning support, so we append a major version to the name. - soname_spec='${libname}${release}${shared_ext}$major' - ;; +# _LT_LANG_DEFAULT_CONFIG +# ----------------------- +m4_defun([_LT_LANG_DEFAULT_CONFIG], +[AC_PROVIDE_IFELSE([AC_PROG_CXX], + [LT_LANG(CXX)], + [m4_define([AC_PROG_CXX], defn([AC_PROG_CXX])[LT_LANG(CXX)])]) -aix[[4-9]]*) - version_type=linux # correct to gnu/linux during the next big refactor - 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}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' - 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}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - 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}${shared_ext}$major' - fi - shlibpath_var=LIBPATH - fi - ;; +AC_PROVIDE_IFELSE([AC_PROG_F77], + [LT_LANG(F77)], + [m4_define([AC_PROG_F77], defn([AC_PROG_F77])[LT_LANG(F77)])]) -amigaos*) - case $host_cpu in - powerpc) - # Since July 2007 AmigaOS4 officially supports .so libraries. - # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - ;; - m68k) - 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=`func_echo_all "$lib" | $SED '\''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' - ;; - esac - ;; +AC_PROVIDE_IFELSE([AC_PROG_FC], + [LT_LANG(FC)], + [m4_define([AC_PROG_FC], defn([AC_PROG_FC])[LT_LANG(FC)])]) -beos*) - library_names_spec='${libname}${shared_ext}' - dynamic_linker="$host_os ld.so" - shlibpath_var=LIBRARY_PATH - ;; +dnl The call to [A][M_PROG_GCJ] is quoted like that to stop aclocal +dnl pulling things in needlessly. +AC_PROVIDE_IFELSE([AC_PROG_GCJ], + [LT_LANG(GCJ)], + [AC_PROVIDE_IFELSE([A][M_PROG_GCJ], + [LT_LANG(GCJ)], + [AC_PROVIDE_IFELSE([LT_PROG_GCJ], + [LT_LANG(GCJ)], + [m4_ifdef([AC_PROG_GCJ], + [m4_define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[LT_LANG(GCJ)])]) + m4_ifdef([A][M_PROG_GCJ], + [m4_define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[LT_LANG(GCJ)])]) + m4_ifdef([LT_PROG_GCJ], + [m4_define([LT_PROG_GCJ], defn([LT_PROG_GCJ])[LT_LANG(GCJ)])])])])]) -bsdi[[45]]*) - version_type=linux # correct to gnu/linux during the next big refactor - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$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" - # 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 - ;; +AC_PROVIDE_IFELSE([AC_PROG_GO], + [LT_LANG(GO)], + [m4_define([AC_PROG_GO], defn([AC_PROG_GO])[LT_LANG(GO)])]) -cygwin* | mingw* | pw32* | cegcc*) - version_type=windows - shrext_cmds=".dll" - need_version=no - need_lib_prefix=no +AC_PROVIDE_IFELSE([LT_PROG_RC], + [LT_LANG(RC)], + [m4_define([LT_PROG_RC], defn([LT_PROG_RC])[LT_LANG(RC)])]) +])# _LT_LANG_DEFAULT_CONFIG - case $GCC,$cc_basename in - yes,*) - # gcc - library_names_spec='$libname.dll.a' - # DLL is installed to $(libdir)/../bin by postinstall_cmds - postinstall_cmds='base_file=`basename \${file}`~ - dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ - dldir=$destdir/`dirname \$dlpath`~ - test -d \$dldir || mkdir -p \$dldir~ - $install_prog $dir/$dlname \$dldir/$dlname~ - chmod a+x \$dldir/$dlname~ - if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then - eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; - fi' - postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ - dlpath=$dir/\$dldll~ - $RM \$dlpath' - shlibpath_overrides_runpath=yes - - case $host_os in - cygwin*) - # Cygwin DLLs use 'cyg' prefix rather than 'lib' - soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' -m4_if([$1], [],[ - sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"]) - ;; - mingw* | cegcc*) - # MinGW DLLs use traditional 'lib' prefix - soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' - ;; - pw32*) - # pw32 DLLs use 'pw' prefix rather than 'lib' - library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' - ;; - esac - dynamic_linker='Win32 ld.exe' - ;; +# Obsolete macros: +AU_DEFUN([AC_LIBTOOL_CXX], [LT_LANG(C++)]) +AU_DEFUN([AC_LIBTOOL_F77], [LT_LANG(Fortran 77)]) +AU_DEFUN([AC_LIBTOOL_FC], [LT_LANG(Fortran)]) +AU_DEFUN([AC_LIBTOOL_GCJ], [LT_LANG(Java)]) +AU_DEFUN([AC_LIBTOOL_RC], [LT_LANG(Windows Resource)]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_CXX], []) +dnl AC_DEFUN([AC_LIBTOOL_F77], []) +dnl AC_DEFUN([AC_LIBTOOL_FC], []) +dnl AC_DEFUN([AC_LIBTOOL_GCJ], []) +dnl AC_DEFUN([AC_LIBTOOL_RC], []) - *,cl*) - # Native MSVC - libname_spec='$name' - soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' - library_names_spec='${libname}.dll.lib' - case $build_os in - mingw*) - sys_lib_search_path_spec= - lt_save_ifs=$IFS - IFS=';' - for lt_path in $LIB - do - IFS=$lt_save_ifs - # Let DOS variable expansion print the short 8.3 style file name. - lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` - sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" - done - IFS=$lt_save_ifs - # Convert to MSYS style. - sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([[a-zA-Z]]\\):| /\\1|g' -e 's|^ ||'` - ;; - cygwin*) - # Convert to unix form, then to dos form, then back to unix form - # but this time dos style (no spaces!) so that the unix form looks - # like /cygdrive/c/PROGRA~1:/cygdr... - sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` - sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` - sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` - ;; - *) - sys_lib_search_path_spec="$LIB" - if $ECHO "$sys_lib_search_path_spec" | [$GREP ';[c-zC-Z]:/' >/dev/null]; then - # It is most probably a Windows format PATH. - sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` - else - sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` - fi - # FIXME: find the short name or the path components, as spaces are - # common. (e.g. "Program Files" -> "PROGRA~1") - ;; - esac +# _LT_TAG_COMPILER +# ---------------- +m4_defun([_LT_TAG_COMPILER], +[AC_REQUIRE([AC_PROG_CC])dnl - # DLL is installed to $(libdir)/../bin by postinstall_cmds - postinstall_cmds='base_file=`basename \${file}`~ - dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ - dldir=$destdir/`dirname \$dlpath`~ - test -d \$dldir || mkdir -p \$dldir~ - $install_prog $dir/$dlname \$dldir/$dlname' - postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ - dlpath=$dir/\$dldll~ - $RM \$dlpath' - shlibpath_overrides_runpath=yes - dynamic_linker='Win32 link.exe' - ;; +_LT_DECL([LTCC], [CC], [1], [A C compiler])dnl +_LT_DECL([LTCFLAGS], [CFLAGS], [1], [LTCC compiler flags])dnl +_LT_TAGDECL([CC], [compiler], [1], [A language specific compiler])dnl +_LT_TAGDECL([with_gcc], [GCC], [0], [Is the compiler the GNU compiler?])dnl - *) - # Assume MSVC wrapper - library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext} $libname.lib' - dynamic_linker='Win32 ld.exe' - ;; - esac - # FIXME: first we should search . and the directory the executable is in - shlibpath_var=PATH - ;; +# If no C compiler was specified, use CC. +LTCC=${LTCC-"$CC"} -darwin* | rhapsody*) - dynamic_linker="$host_os dyld" - version_type=darwin - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext' - soname_spec='${libname}${release}${major}$shared_ext' - shlibpath_overrides_runpath=yes - shlibpath_var=DYLD_LIBRARY_PATH - shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' -m4_if([$1], [],[ - sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"]) - sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' - ;; +# If no C compiler flags were specified, use CFLAGS. +LTCFLAGS=${LTCFLAGS-"$CFLAGS"} -dgux*) - version_type=linux # correct to gnu/linux during the next big refactor - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - ;; +# Allow CC to be a program name with arguments. +compiler=$CC +])# _LT_TAG_COMPILER -freebsd* | dragonfly*) - # DragonFly does not have aout. When/if they implement a new - # versioning mechanism, adjust this. - if test -x /usr/bin/objformat; then - objformat=`/usr/bin/objformat` - else - case $host_os in - freebsd[[23]].*) objformat=aout ;; - *) objformat=elf ;; - esac - fi - version_type=freebsd-$objformat - case $version_type in - freebsd-elf*) - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' - need_version=no - need_lib_prefix=no - ;; - freebsd-*) - library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' - need_version=yes - ;; - esac - shlibpath_var=LD_LIBRARY_PATH - case $host_os in - freebsd2.*) - shlibpath_overrides_runpath=yes - ;; - freebsd3.[[01]]* | freebsdelf3.[[01]]*) - shlibpath_overrides_runpath=yes - hardcode_into_libs=yes - ;; - freebsd3.[[2-9]]* | freebsdelf3.[[2-9]]* | \ - freebsd4.[[0-5]] | freebsdelf4.[[0-5]] | freebsd4.1.1 | freebsdelf4.1.1) - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - ;; - *) # from 4.6 on, and DragonFly - shlibpath_overrides_runpath=yes - hardcode_into_libs=yes - ;; - esac - ;; -haiku*) - version_type=linux # correct to gnu/linux during the next big refactor - need_lib_prefix=no - need_version=no - dynamic_linker="$host_os runtime_loader" - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LIBRARY_PATH - shlibpath_overrides_runpath=yes - sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' - hardcode_into_libs=yes - ;; +# _LT_COMPILER_BOILERPLATE +# ------------------------ +# Check for compiler boilerplate output or warnings with +# the simple compiler test code. +m4_defun([_LT_COMPILER_BOILERPLATE], +[m4_require([_LT_DECL_SED])dnl +ac_outfile=conftest.$ac_objext +echo "$lt_simple_compile_test_code" >conftest.$ac_ext +eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_compiler_boilerplate=`cat conftest.err` +$RM conftest* +])# _LT_COMPILER_BOILERPLATE -hpux9* | hpux10* | hpux11*) - # Give a soname corresponding to the major version so that dld.sl refuses to - # link against other versions. - version_type=sunos - need_lib_prefix=no - need_version=no - case $host_cpu in - ia64*) - shrext_cmds='.so' - hardcode_into_libs=yes - dynamic_linker="$host_os dld.so" - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - if test "X$HPUX_IA64_MODE" = X32; then - sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" - else - sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" - fi - sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec - ;; - hppa*64*) - shrext_cmds='.sl' - hardcode_into_libs=yes - dynamic_linker="$host_os dld.sl" - shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH - shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" - sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec - ;; - *) - shrext_cmds='.sl' - dynamic_linker="$host_os dld.sl" - shlibpath_var=SHLIB_PATH - shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - ;; - esac - # HP-UX runs *really* slowly unless shared libraries are mode 555, ... - postinstall_cmds='chmod 555 $lib' - # or fails outright, so override atomically: - install_override_mode=555 - ;; -interix[[3-9]]*) - version_type=linux # correct to gnu/linux during the next big refactor - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - ;; +# _LT_LINKER_BOILERPLATE +# ---------------------- +# Check for linker boilerplate output or warnings with +# the simple link test code. +m4_defun([_LT_LINKER_BOILERPLATE], +[m4_require([_LT_DECL_SED])dnl +ac_outfile=conftest.$ac_objext +echo "$lt_simple_link_test_code" >conftest.$ac_ext +eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_linker_boilerplate=`cat conftest.err` +$RM -r conftest* +])# _LT_LINKER_BOILERPLATE -irix5* | irix6* | nonstopux*) - case $host_os in - nonstopux*) version_type=nonstopux ;; - *) - if test "$lt_cv_prog_gnu_ld" = yes; then - version_type=linux # correct to gnu/linux during the next big refactor - else - version_type=irix - fi ;; - esac - need_lib_prefix=no - need_version=no - soname_spec='${libname}${release}${shared_ext}$major' - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' +# _LT_REQUIRED_DARWIN_CHECKS +# ------------------------- +m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[ case $host_os in - irix5* | nonstopux*) - libsuff= shlibsuff= - ;; - *) - case $LD in # libtool.m4 will add one of these switches to LD - *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") - libsuff= shlibsuff= libmagic=32-bit;; - *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") - libsuff=32 shlibsuff=N32 libmagic=N32;; - *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") - 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}" - hardcode_into_libs=yes - ;; + rhapsody* | darwin*) + AC_CHECK_TOOL([DSYMUTIL], [dsymutil], [:]) + AC_CHECK_TOOL([NMEDIT], [nmedit], [:]) + AC_CHECK_TOOL([LIPO], [lipo], [:]) + AC_CHECK_TOOL([OTOOL], [otool], [:]) + AC_CHECK_TOOL([OTOOL64], [otool64], [:]) + _LT_DECL([], [DSYMUTIL], [1], + [Tool to manipulate archived DWARF debug symbol files on Mac OS X]) + _LT_DECL([], [NMEDIT], [1], + [Tool to change global to local symbols on Mac OS X]) + _LT_DECL([], [LIPO], [1], + [Tool to manipulate fat objects and archives on Mac OS X]) + _LT_DECL([], [OTOOL], [1], + [ldd/readelf like tool for Mach-O binaries on Mac OS X]) + _LT_DECL([], [OTOOL64], [1], + [ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4]) -# No shared lib support for Linux oldld, aout, or coff. -linux*oldld* | linux*aout* | linux*coff*) - dynamic_linker=no - ;; + AC_CACHE_CHECK([for -single_module linker flag],[lt_cv_apple_cc_single_mod], + [lt_cv_apple_cc_single_mod=no + if test -z "${LT_MULTI_MODULE}"; then + # By default we will add the -single_module flag. You can override + # by either setting the environment variable LT_MULTI_MODULE + # non-empty at configure time, or by adding -multi_module to the + # link flags. + rm -rf libconftest.dylib* + echo "int foo(void){return 1;}" > conftest.c + echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ +-dynamiclib -Wl,-single_module conftest.c" >&AS_MESSAGE_LOG_FD + $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ + -dynamiclib -Wl,-single_module conftest.c 2>conftest.err + _lt_result=$? + # If there is a non-empty error log, and "single_module" + # appears in it, assume the flag caused a linker warning + if test -s conftest.err && $GREP single_module conftest.err; then + cat conftest.err >&AS_MESSAGE_LOG_FD + # Otherwise, if the output was created with a 0 exit code from + # the compiler, it worked. + elif test -f libconftest.dylib && test $_lt_result -eq 0; then + lt_cv_apple_cc_single_mod=yes + else + cat conftest.err >&AS_MESSAGE_LOG_FD + fi + rm -rf libconftest.dylib* + rm -f conftest.* + fi]) -# This must be glibc/ELF. -linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) - version_type=linux # correct to gnu/linux during the next big refactor - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no + AC_CACHE_CHECK([for -exported_symbols_list linker flag], + [lt_cv_ld_exported_symbols_list], + [lt_cv_ld_exported_symbols_list=no + save_LDFLAGS=$LDFLAGS + echo "_main" > conftest.sym + LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" + AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], + [lt_cv_ld_exported_symbols_list=yes], + [lt_cv_ld_exported_symbols_list=no]) + LDFLAGS="$save_LDFLAGS" + ]) - # Some binutils ld are patched to set DT_RUNPATH - AC_CACHE_VAL([lt_cv_shlibpath_overrides_runpath], - [lt_cv_shlibpath_overrides_runpath=no - save_LDFLAGS=$LDFLAGS - save_libdir=$libdir - eval "libdir=/foo; wl=\"$_LT_TAGVAR(lt_prog_compiler_wl, $1)\"; \ - LDFLAGS=\"\$LDFLAGS $_LT_TAGVAR(hardcode_libdir_flag_spec, $1)\"" - AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], - [AS_IF([ ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null], - [lt_cv_shlibpath_overrides_runpath=yes])]) - LDFLAGS=$save_LDFLAGS - libdir=$save_libdir + AC_CACHE_CHECK([for -force_load linker flag],[lt_cv_ld_force_load], + [lt_cv_ld_force_load=no + cat > conftest.c << _LT_EOF +int forced_loaded() { return 2;} +_LT_EOF + echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&AS_MESSAGE_LOG_FD + $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&AS_MESSAGE_LOG_FD + echo "$AR cru libconftest.a conftest.o" >&AS_MESSAGE_LOG_FD + $AR cru libconftest.a conftest.o 2>&AS_MESSAGE_LOG_FD + echo "$RANLIB libconftest.a" >&AS_MESSAGE_LOG_FD + $RANLIB libconftest.a 2>&AS_MESSAGE_LOG_FD + cat > conftest.c << _LT_EOF +int main() { return 0;} +_LT_EOF + echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&AS_MESSAGE_LOG_FD + $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err + _lt_result=$? + if test -s conftest.err && $GREP force_load conftest.err; then + cat conftest.err >&AS_MESSAGE_LOG_FD + elif test -f conftest && test $_lt_result -eq 0 && $GREP forced_load conftest >/dev/null 2>&1 ; then + lt_cv_ld_force_load=yes + else + cat conftest.err >&AS_MESSAGE_LOG_FD + fi + rm -f conftest.err libconftest.a conftest conftest.c + rm -rf conftest.dSYM ]) - shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath + case $host_os in + rhapsody* | darwin1.[[012]]) + _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;; + darwin1.*) + _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; + darwin*) # darwin 5.x on + # if running on 10.5 or later, the deployment target defaults + # to the OS version, if on x86, and 10.4, the deployment + # target defaults to 10.4. Don't you love it? + case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in + 10.0,*86*-darwin8*|10.0,*-darwin[[91]]*) + _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; + 10.[[012]]*) + _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; + 10.*) + _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; + esac + ;; + esac + if test "$lt_cv_apple_cc_single_mod" = "yes"; then + _lt_dar_single_mod='$single_module' + fi + if test "$lt_cv_ld_exported_symbols_list" = "yes"; then + _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym' + else + _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}' + fi + if test "$DSYMUTIL" != ":" && test "$lt_cv_ld_force_load" = "no"; then + _lt_dsymutil='~$DSYMUTIL $lib || :' + else + _lt_dsymutil= + fi + ;; + esac +]) - # 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 - # Append ld.so.conf contents to the search path - if test -f /etc/ld.so.conf; then - lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '` - sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" +# _LT_DARWIN_LINKER_FEATURES([TAG]) +# --------------------------------- +# Checks for linker and compiler features on darwin +m4_defun([_LT_DARWIN_LINKER_FEATURES], +[ + m4_require([_LT_REQUIRED_DARWIN_CHECKS]) + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_automatic, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported + if test "$lt_cv_ld_force_load" = "yes"; then + _LT_TAGVAR(whole_archive_flag_spec, $1)='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' + m4_case([$1], [F77], [_LT_TAGVAR(compiler_needs_object, $1)=yes], + [FC], [_LT_TAGVAR(compiler_needs_object, $1)=yes]) + else + _LT_TAGVAR(whole_archive_flag_spec, $1)='' + fi + _LT_TAGVAR(link_all_deplibs, $1)=yes + _LT_TAGVAR(allow_undefined_flag, $1)="$_lt_dar_allow_undefined" + case $cc_basename in + ifort*) _lt_dar_can_shared=yes ;; + *) _lt_dar_can_shared=$GCC ;; + esac + if test "$_lt_dar_can_shared" = "yes"; then + output_verbose_link_cmd=func_echo_all + _LT_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" + _LT_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" + _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" + _LT_TAGVAR(module_expsym_cmds, $1)="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}" + m4_if([$1], [CXX], +[ if test "$lt_cv_apple_cc_single_mod" != "yes"; then + _LT_TAGVAR(archive_cmds, $1)="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dsymutil}" + _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dar_export_syms}${_lt_dsymutil}" + fi +],[]) + else + _LT_TAGVAR(ld_shlibs, $1)=no fi +]) - # 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' - ;; +# _LT_SYS_MODULE_PATH_AIX([TAGNAME]) +# ---------------------------------- +# Links a minimal program and checks the executable +# for the system default hardcoded library path. In most cases, +# this is /usr/lib:/lib, but when the MPI compilers are used +# the location of the communication and MPI libs are included too. +# If we don't find anything, use the default library path according +# to the aix ld manual. +# Store the results from the different compilers for each TAGNAME. +# Allow to override them for all tags through lt_cv_aix_libpath. +m4_defun([_LT_SYS_MODULE_PATH_AIX], +[m4_require([_LT_DECL_SED])dnl +if test "${lt_cv_aix_libpath+set}" = set; then + aix_libpath=$lt_cv_aix_libpath +else + AC_CACHE_VAL([_LT_TAGVAR([lt_cv_aix_libpath_], [$1])], + [AC_LINK_IFELSE([AC_LANG_PROGRAM],[ + lt_aix_libpath_sed='[ + /Import File Strings/,/^$/ { + /^0/ { + s/^0 *\([^ ]*\) *$/\1/ + p + } + }]' + _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + # Check for a 64-bit object if we didn't find anything. + if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then + _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + fi],[]) + if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then + _LT_TAGVAR([lt_cv_aix_libpath_], [$1])="/usr/lib:/lib" + fi + ]) + aix_libpath=$_LT_TAGVAR([lt_cv_aix_libpath_], [$1]) +fi +])# _LT_SYS_MODULE_PATH_AIX -netbsdelf*-gnu) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - dynamic_linker='NetBSD ld.elf_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}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' - finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' - dynamic_linker='NetBSD (a.out) ld.so' - else - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - dynamic_linker='NetBSD ld.elf_so' - fi - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - hardcode_into_libs=yes - ;; +# _LT_SHELL_INIT(ARG) +# ------------------- +m4_define([_LT_SHELL_INIT], +[m4_divert_text([M4SH-INIT], [$1 +])])# _LT_SHELL_INIT -newsos6) - version_type=linux # correct to gnu/linux during the next big refactor - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - ;; -*nto* | *qnx*) - version_type=qnx - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - dynamic_linker='ldqnx.so' - ;; -openbsd*) - version_type=sunos - sys_lib_dlsearch_path_spec="/usr/lib" - need_lib_prefix=no - # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. - case $host_os in - openbsd3.3 | openbsd3.3.*) need_version=yes ;; - *) need_version=no ;; - esac - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' - finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' - shlibpath_var=LD_LIBRARY_PATH - 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 - ;; +# _LT_PROG_ECHO_BACKSLASH +# ----------------------- +# Find how we can fake an echo command that does not interpret backslash. +# In particular, with Autoconf 2.60 or later we add some code to the start +# of the generated configure script which will find a shell with a builtin +# printf (which we can use as an echo command). +m4_defun([_LT_PROG_ECHO_BACKSLASH], +[ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' +ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO +ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO -os2*) - libname_spec='$name' - shrext_cmds=".dll" - need_lib_prefix=no - library_names_spec='$libname${shared_ext} $libname.a' - dynamic_linker='OS/2 ld.exe' - shlibpath_var=LIBPATH - ;; +AC_MSG_CHECKING([how to print strings]) +# Test print first, because it will be a builtin if present. +if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \ + test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then + ECHO='print -r --' +elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then + ECHO='printf %s\n' +else + # Use this function as a fallback that always works. + func_fallback_echo () + { + eval 'cat <<_LTECHO_EOF +$[]1 +_LTECHO_EOF' + } + ECHO='func_fallback_echo' +fi -osf3* | osf4* | osf5*) - version_type=osf - need_lib_prefix=no - need_version=no - soname_spec='${libname}${release}${shared_ext}$major' - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - 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" - ;; +# func_echo_all arg... +# Invoke $ECHO with all args, space-separated. +func_echo_all () +{ + $ECHO "$*" +} -rdos*) - dynamic_linker=no - ;; +case "$ECHO" in + printf*) AC_MSG_RESULT([printf]) ;; + print*) AC_MSG_RESULT([print -r]) ;; + *) AC_MSG_RESULT([cat]) ;; +esac -solaris*) - version_type=linux # correct to gnu/linux during the next big refactor - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$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' - ;; +m4_ifdef([_AS_DETECT_SUGGESTED], +[_AS_DETECT_SUGGESTED([ + test -n "${ZSH_VERSION+set}${BASH_VERSION+set}" || ( + ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO + ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO + PATH=/empty FPATH=/empty; export PATH FPATH + test "X`printf %s $ECHO`" = "X$ECHO" \ + || test "X`print -r -- $ECHO`" = "X$ECHO" )])]) -sunos4*) - version_type=sunos - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$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 - ;; +_LT_DECL([], [SHELL], [1], [Shell to use when invoking shell scripts]) +_LT_DECL([], [ECHO], [1], [An echo program that protects backslashes]) +])# _LT_PROG_ECHO_BACKSLASH -sysv4 | sysv4.3*) - version_type=linux # correct to gnu/linux during the next big refactor - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - case $host_vendor in - sni) - shlibpath_overrides_runpath=no - need_lib_prefix=no - 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 - ;; -sysv4*MP*) - if test -d /usr/nec ;then - version_type=linux # correct to gnu/linux during the next big refactor - library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' - soname_spec='$libname${shared_ext}.$major' - shlibpath_var=LD_LIBRARY_PATH - fi - ;; +# _LT_WITH_SYSROOT +# ---------------- +AC_DEFUN([_LT_WITH_SYSROOT], +[AC_MSG_CHECKING([for sysroot]) +AC_ARG_WITH([sysroot], +[ --with-sysroot[=DIR] Search for dependent libraries within DIR + (or the compiler's sysroot if not specified).], +[], [with_sysroot=no]) -sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) - version_type=freebsd-elf - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - hardcode_into_libs=yes - if test "$with_gnu_ld" = yes; then - sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' - else - sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' - case $host_os in - sco3.2v5*) - sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" +dnl lt_sysroot will always be passed unquoted. We quote it here +dnl in case the user passed a directory name. +lt_sysroot= +case ${with_sysroot} in #( + yes) + if test "$GCC" = yes; then + lt_sysroot=`$CC --print-sysroot 2>/dev/null` + fi + ;; #( + /*) + lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"` + ;; #( + no|'') + ;; #( + *) + AC_MSG_RESULT([${with_sysroot}]) + AC_MSG_ERROR([The sysroot must be an absolute path.]) + ;; +esac + + AC_MSG_RESULT([${lt_sysroot:-no}]) +_LT_DECL([], [lt_sysroot], [0], [The root where to search for ]dnl +[dependent libraries, and in which our libraries should be installed.])]) + +# _LT_ENABLE_LOCK +# --------------- +m4_defun([_LT_ENABLE_LOCK], +[AC_ARG_ENABLE([libtool-lock], + [AS_HELP_STRING([--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 +ia64-*-hpux*) + # Find out which ABI we are using. + echo 'int i;' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + case `/usr/bin/file conftest.$ac_objext` in + *ELF-32*) + HPUX_IA64_MODE="32" + ;; + *ELF-64*) + HPUX_IA64_MODE="64" ;; esac fi - sys_lib_dlsearch_path_spec='/usr/lib' + rm -rf conftest* ;; - -tpf*) - # TPF is a cross-target only. Preferred cross-host = GNU/Linux. - version_type=linux # correct to gnu/linux during the next big refactor - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - hardcode_into_libs=yes +*-*-irix6*) + # Find out which ABI we are using. + echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + if test "$lt_cv_prog_gnu_ld" = yes; then + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + LD="${LD-ld} -melf32bsmip" + ;; + *N32*) + LD="${LD-ld} -melf32bmipn32" + ;; + *64-bit*) + LD="${LD-ld} -melf64bmip" + ;; + esac + else + 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 + fi + rm -rf conftest* ;; -uts4*) - version_type=linux # correct to gnu/linux during the next big refactor - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH +x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \ +s390*-*linux*|s390*-*tpf*|sparc*-*linux*) + # Find out which ABI we are using. + echo 'int i;' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + case `/usr/bin/file conftest.o` in + *32-bit*) + case $host in + x86_64-*kfreebsd*-gnu) + LD="${LD-ld} -m elf_i386_fbsd" + ;; + x86_64-*linux*) + case `/usr/bin/file conftest.o` in + *x86-64*) + LD="${LD-ld} -m elf32_x86_64" + ;; + *) + LD="${LD-ld} -m elf_i386" + ;; + esac + ;; + powerpc64le-*) + LD="${LD-ld} -m elf32lppclinux" + ;; + powerpc64-*) + LD="${LD-ld} -m elf32ppclinux" + ;; + s390x-*linux*) + LD="${LD-ld} -m elf_s390" + ;; + sparc64-*linux*) + LD="${LD-ld} -m elf32_sparc" + ;; + esac + ;; + *64-bit*) + case $host in + x86_64-*kfreebsd*-gnu) + LD="${LD-ld} -m elf_x86_64_fbsd" + ;; + x86_64-*linux*) + LD="${LD-ld} -m elf_x86_64" + ;; + powerpcle-*) + LD="${LD-ld} -m elf64lppc" + ;; + powerpc-*) + LD="${LD-ld} -m elf64ppc" + ;; + s390*-*linux*|s390*-*tpf*) + LD="${LD-ld} -m elf64_s390" + ;; + sparc*-*linux*) + LD="${LD-ld} -m elf64_sparc" + ;; + esac + ;; + esac + fi + rm -rf conftest* ;; -*) - dynamic_linker=no +*-*-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_PUSH(C) + AC_LINK_IFELSE([AC_LANG_PROGRAM([[]],[[]])],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no]) + AC_LANG_POP]) + 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 + ;; +*-*solaris*) + # Find out which ABI we are using. + echo 'int i;' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + case `/usr/bin/file conftest.o` in + *64-bit*) + case $lt_cv_prog_gnu_ld in + yes*) + case $host in + i?86-*-solaris*) + LD="${LD-ld} -m elf_x86_64" + ;; + sparc*-*-solaris*) + LD="${LD-ld} -m elf64_sparc" + ;; + esac + # GNU ld 2.21 introduced _sol2 emulations. Use them if available. + if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then + LD="${LD-ld}_sol2" + fi + ;; + *) + if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then + LD="${LD-ld} -64" + fi + ;; + esac + ;; + esac + fi + rm -rf conftest* ;; esac -AC_MSG_RESULT([$dynamic_linker]) -test "$dynamic_linker" = no && can_build_shared=no -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 +need_locks="$enable_libtool_lock" +])# _LT_ENABLE_LOCK -if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then - sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" -fi -if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then - sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" + +# _LT_PROG_AR +# ----------- +m4_defun([_LT_PROG_AR], +[AC_CHECK_TOOLS(AR, [ar], false) +: ${AR=ar} +: ${AR_FLAGS=cru} +_LT_DECL([], [AR], [1], [The archiver]) +_LT_DECL([], [AR_FLAGS], [1], [Flags to create an archive]) + +AC_CACHE_CHECK([for archiver @FILE support], [lt_cv_ar_at_file], + [lt_cv_ar_at_file=no + AC_COMPILE_IFELSE([AC_LANG_PROGRAM], + [echo conftest.$ac_objext > conftest.lst + lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&AS_MESSAGE_LOG_FD' + AC_TRY_EVAL([lt_ar_try]) + if test "$ac_status" -eq 0; then + # Ensure the archiver fails upon bogus file names. + rm -f conftest.$ac_objext libconftest.a + AC_TRY_EVAL([lt_ar_try]) + if test "$ac_status" -ne 0; then + lt_cv_ar_at_file=@ + fi + fi + rm -f conftest.* libconftest.a + ]) + ]) + +if test "x$lt_cv_ar_at_file" = xno; then + archiver_list_spec= +else + archiver_list_spec=$lt_cv_ar_at_file fi +_LT_DECL([], [archiver_list_spec], [1], + [How to feed a file listing to the archiver]) +])# _LT_PROG_AR -_LT_DECL([], [variables_saved_for_relink], [1], - [Variables whose values should be saved in libtool wrapper scripts and - restored at link time]) -_LT_DECL([], [need_lib_prefix], [0], - [Do we need the "lib" prefix for modules?]) -_LT_DECL([], [need_version], [0], [Do we need a version for libraries?]) -_LT_DECL([], [version_type], [0], [Library versioning type]) -_LT_DECL([], [runpath_var], [0], [Shared library runtime path variable]) -_LT_DECL([], [shlibpath_var], [0],[Shared library path variable]) -_LT_DECL([], [shlibpath_overrides_runpath], [0], - [Is shlibpath searched before the hard-coded library search path?]) -_LT_DECL([], [libname_spec], [1], [Format of library name prefix]) -_LT_DECL([], [library_names_spec], [1], - [[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]]) -_LT_DECL([], [soname_spec], [1], - [[The coded name of the library, if different from the real name]]) -_LT_DECL([], [install_override_mode], [1], - [Permission mode override for installation of shared libraries]) -_LT_DECL([], [postinstall_cmds], [2], - [Command to use after installation of a shared archive]) -_LT_DECL([], [postuninstall_cmds], [2], - [Command to use after uninstallation of a shared archive]) -_LT_DECL([], [finish_cmds], [2], - [Commands used to finish a libtool library installation in a directory]) -_LT_DECL([], [finish_eval], [1], - [[As "finish_cmds", except a single script fragment to be evaled but - not shown]]) -_LT_DECL([], [hardcode_into_libs], [0], - [Whether we should hardcode library paths into libraries]) -_LT_DECL([], [sys_lib_search_path_spec], [2], - [Compile-time system search path for libraries]) -_LT_DECL([], [sys_lib_dlsearch_path_spec], [2], - [Run-time system search path for libraries]) -])# _LT_SYS_DYNAMIC_LINKER +# _LT_CMD_OLD_ARCHIVE +# ------------------- +m4_defun([_LT_CMD_OLD_ARCHIVE], +[_LT_PROG_AR -# _LT_PATH_TOOL_PREFIX(TOOL) -# -------------------------- -# find a file program which can recognize shared library -AC_DEFUN([_LT_PATH_TOOL_PREFIX], -[m4_require([_LT_DECL_EGREP])dnl -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_save_MAGIC_CMD="$MAGIC_CMD" - lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR -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="m4_if([$2], , $PATH, [$2])" - for ac_dir in $ac_dummy; do - IFS="$lt_save_ifs" - 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 <<_LT_EOF 1>&2 +AC_CHECK_TOOL(STRIP, strip, :) +test -z "$STRIP" && STRIP=: +_LT_DECL([], [STRIP], [1], [A symbol stripping program]) -*** 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 +AC_CHECK_TOOL(RANLIB, ranlib, :) +test -z "$RANLIB" && RANLIB=: +_LT_DECL([], [RANLIB], [1], + [Commands used to install an old-style archive]) -_LT_EOF - fi ;; - esac - fi - break - fi - done - IFS="$lt_save_ifs" - MAGIC_CMD="$lt_save_MAGIC_CMD" - ;; -esac]) -MAGIC_CMD="$lt_cv_path_MAGIC_CMD" -if test -n "$MAGIC_CMD"; then - AC_MSG_RESULT($MAGIC_CMD) +# Determine commands to create old-style static archives. +old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' +old_postinstall_cmds='chmod 644 $oldlib' +old_postuninstall_cmds= + +if test -n "$RANLIB"; then + case $host_os in + openbsd*) + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib" + ;; + *) + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib" + ;; + esac + old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib" +fi + +case $host_os in + darwin*) + lock_old_archive_extraction=yes ;; + *) + lock_old_archive_extraction=no ;; +esac +_LT_DECL([], [old_postinstall_cmds], [2]) +_LT_DECL([], [old_postuninstall_cmds], [2]) +_LT_TAGDECL([], [old_archive_cmds], [2], + [Commands used to build an old-style archive]) +_LT_DECL([], [lock_old_archive_extraction], [0], + [Whether to use a lock for old archive extraction]) +])# _LT_CMD_OLD_ARCHIVE + + +# _LT_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, +# [OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE]) +# ---------------------------------------------------------------- +# Check whether the given compiler option works +AC_DEFUN([_LT_COMPILER_OPTION], +[m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_DECL_SED])dnl +AC_CACHE_CHECK([$1], [$2], + [$2=no + m4_if([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4]) + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + lt_compiler_flag="$3" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + # The option is referenced via a variable to avoid confusing sed. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&AS_MESSAGE_LOG_FD + echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings other than the usual output. + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then + $2=yes + fi + fi + $RM conftest* +]) + +if test x"[$]$2" = xyes; then + m4_if([$5], , :, [$5]) else - AC_MSG_RESULT(no) + m4_if([$6], , :, [$6]) fi -_LT_DECL([], [MAGIC_CMD], [0], - [Used to examine libraries when file_magic_cmd begins with "file"])dnl -])# _LT_PATH_TOOL_PREFIX +])# _LT_COMPILER_OPTION # Old name: -AU_ALIAS([AC_PATH_TOOL_PREFIX], [_LT_PATH_TOOL_PREFIX]) +AU_ALIAS([AC_LIBTOOL_COMPILER_OPTION], [_LT_COMPILER_OPTION]) dnl aclocal-1.4 backwards compatibility: -dnl AC_DEFUN([AC_PATH_TOOL_PREFIX], []) +dnl AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION], []) -# _LT_PATH_MAGIC -# -------------- -# find a file program which can recognize a shared library -m4_defun([_LT_PATH_MAGIC], -[_LT_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PATH) -if test -z "$lt_cv_path_MAGIC_CMD"; then - if test -n "$ac_tool_prefix"; then - _LT_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH) - else - MAGIC_CMD=: - fi +# _LT_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, +# [ACTION-SUCCESS], [ACTION-FAILURE]) +# ---------------------------------------------------- +# Check whether the given linker option works +AC_DEFUN([_LT_LINKER_OPTION], +[m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_DECL_SED])dnl +AC_CACHE_CHECK([$1], [$2], + [$2=no + save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS $3" + echo "$lt_simple_link_test_code" > conftest.$ac_ext + if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then + # The linker can only warn and ignore the option if not recognized + # So say no if there are warnings + if test -s conftest.err; then + # Append any errors to the config.log. + cat conftest.err 1>&AS_MESSAGE_LOG_FD + $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if diff conftest.exp conftest.er2 >/dev/null; then + $2=yes + fi + else + $2=yes + fi + fi + $RM -r conftest* + LDFLAGS="$save_LDFLAGS" +]) + +if test x"[$]$2" = xyes; then + m4_if([$4], , :, [$4]) +else + m4_if([$5], , :, [$5]) fi -])# _LT_PATH_MAGIC +])# _LT_LINKER_OPTION +# Old name: +AU_ALIAS([AC_LIBTOOL_LINKER_OPTION], [_LT_LINKER_OPTION]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_LINKER_OPTION], []) -# LT_PATH_LD -# ---------- -# find the pathname to the GNU or non-GNU linker -AC_DEFUN([LT_PATH_LD], -[AC_REQUIRE([AC_PROG_CC])dnl -AC_REQUIRE([AC_CANONICAL_HOST])dnl -AC_REQUIRE([AC_CANONICAL_BUILD])dnl -m4_require([_LT_DECL_SED])dnl -m4_require([_LT_DECL_EGREP])dnl -m4_require([_LT_PROG_ECHO_BACKSLASH])dnl -AC_ARG_WITH([gnu-ld], - [AS_HELP_STRING([--with-gnu-ld], - [assume the C compiler uses GNU ld @<:@default=no@:>@])], - [test "$withval" = no || with_gnu_ld=yes], - [with_gnu_ld=no])dnl +# LT_CMD_MAX_LEN +#--------------- +AC_DEFUN([LT_CMD_MAX_LEN], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +# find the maximum length of command line arguments +AC_MSG_CHECKING([the maximum length of command line arguments]) +AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl + i=0 + teststring="ABCD" -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 $CC]) - 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. - [[\\/]]* | ?:[[\\/]]*) - re_direlt='/[[^/]][[^/]]*/\.\./' - # Canonicalize the pathname 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 + case $build_os in + msdosdjgpp*) + # On DJGPP, this test can blow up pretty badly due to problems in libc + # (any single argument exceeding 2000 bytes causes a buffer overrun + # during glob expansion). Even if it were fixed, the result of this + # check would be larger than it should be. + lt_cv_sys_max_cmd_len=12288; # 12K is about right ;; - *) - # If it is relative, then search for the first ld in PATH. - with_gnu_ld=unknown + + gnu*) + # Under GNU Hurd, this test is not required because there is + # no limit to the length of command line arguments. + # Libtool will interpret -1 as no limit whatsoever + lt_cv_sys_max_cmd_len=-1; ;; - 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 - lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR - for ac_dir in $PATH; do - IFS="$lt_save_ifs" - 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 variants of GNU ld only accept -v. - # Break only if it was the GNU/non-GNU ld that we prefer. - case `"$lt_cv_path_LD" -v 2>&1 &1 /dev/null` + if test -n "$kargmax"; then + lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[[ ]]//'` else - reload_cmds='$LD$reload_flag -o $output$reload_objs' + lt_cv_sys_max_cmd_len=32768 fi ;; -esac -_LT_TAGDECL([], [reload_flag], [1], [How to create reloadable object files])dnl -_LT_TAGDECL([], [reload_cmds], [2])dnl -])# _LT_CMD_RELOAD + *) + lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` + if test -n "$lt_cv_sys_max_cmd_len" && \ + test undefined != "$lt_cv_sys_max_cmd_len"; then + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` + else + # Make teststring a little bigger before we do anything with it. + # a 1K string should be a reasonable start. + for i in 1 2 3 4 5 6 7 8 ; do + teststring=$teststring$teststring + done + SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} + # If test is not a shell built-in, we'll probably end up computing a + # maximum length that is only half of the actual maximum length, but + # we can't tell. + while { test "X"`env echo "$teststring$teststring" 2>/dev/null` \ + = "X$teststring$teststring"; } >/dev/null 2>&1 && + test $i != 17 # 1/2 MB should be enough + do + i=`expr $i + 1` + teststring=$teststring$teststring + done + # Only check the string length outside the loop. + lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` + teststring= + # Add a significant safety factor because C++ compilers can tack on + # massive amounts of additional arguments before passing them to the + # linker. It appears as though 1/2 is a usable value. + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` + fi + ;; + esac +]) +if test -n $lt_cv_sys_max_cmd_len ; then + AC_MSG_RESULT($lt_cv_sys_max_cmd_len) +else + AC_MSG_RESULT(none) +fi +max_cmd_len=$lt_cv_sys_max_cmd_len +_LT_DECL([], [max_cmd_len], [0], + [What is the maximum length of a command?]) +])# LT_CMD_MAX_LEN +# Old name: +AU_ALIAS([AC_LIBTOOL_SYS_MAX_CMD_LEN], [LT_CMD_MAX_LEN]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], []) -# _LT_CHECK_MAGIC_METHOD -# ---------------------- -# how to check for library dependencies -# -- PORTME fill in with the dynamic library characteristics -m4_defun([_LT_CHECK_MAGIC_METHOD], -[m4_require([_LT_DECL_EGREP]) -m4_require([_LT_DECL_OBJDUMP]) -AC_CACHE_CHECK([how to recognize 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 extended 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 -aix[[4-9]]*) - lt_cv_deplibs_check_method=pass_all - ;; +# _LT_HEADER_DLFCN +# ---------------- +m4_defun([_LT_HEADER_DLFCN], +[AC_CHECK_HEADERS([dlfcn.h], [], [], [AC_INCLUDES_DEFAULT])dnl +])# _LT_HEADER_DLFCN -beos*) - lt_cv_deplibs_check_method=pass_all - ;; -bsdi[[45]]*) - 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 - ;; +# _LT_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE, +# ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING) +# ---------------------------------------------------------------- +m4_defun([_LT_TRY_DLOPEN_SELF], +[m4_require([_LT_HEADER_DLFCN])dnl +if test "$cross_compiling" = yes; then : + [$4] +else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext <<_LT_EOF +[#line $LINENO "configure" +#include "confdefs.h" -cygwin*) - # func_win32_libid is a shell function defined in ltmain.sh - lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' - lt_cv_file_magic_cmd='func_win32_libid' - ;; +#if HAVE_DLFCN_H +#include +#endif -mingw* | pw32*) - # Base MSYS/MinGW do not provide the 'file' command needed by - # func_win32_libid shell function, so use a weaker test based on 'objdump', - # unless we find 'file', for example because we are cross-compiling. - # func_win32_libid assumes BSD nm, so disallow it if using MS dumpbin. - if ( test "$lt_cv_nm_interface" = "BSD nm" && file / ) >/dev/null 2>&1; then - lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' - lt_cv_file_magic_cmd='func_win32_libid' - else - # Keep this pattern in sync with the one in func_win32_libid. - lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' - lt_cv_file_magic_cmd='$OBJDUMP -f' - fi - ;; +#include -cegcc*) - # use the weaker test based on 'objdump'. See mingw*. - lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' - lt_cv_file_magic_cmd='$OBJDUMP -f' - ;; +#ifdef RTLD_GLOBAL +# define LT_DLGLOBAL RTLD_GLOBAL +#else +# ifdef DL_GLOBAL +# define LT_DLGLOBAL DL_GLOBAL +# else +# define LT_DLGLOBAL 0 +# endif +#endif -darwin* | rhapsody*) - lt_cv_deplibs_check_method=pass_all - ;; +/* 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 -freebsd* | dragonfly*) - 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|DragonFly)/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 +/* When -fvisbility=hidden is used, assume the code has been annotated + correspondingly for the symbols needed. */ +#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) +int fnord () __attribute__((visibility("default"))); +#endif + +int fnord () { return 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; + else puts (dlerror ()); + } + /* dlclose (self); */ + } else - lt_cv_deplibs_check_method=pass_all + puts (dlerror ()); + + return status; +}] +_LT_EOF + if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} 2>/dev/null; then + (./conftest; exit; ) >&AS_MESSAGE_LOG_FD 2>/dev/null + lt_status=$? + case x$lt_status in + x$lt_dlno_uscore) $1 ;; + x$lt_dlneed_uscore) $2 ;; + x$lt_dlunknown|x*) $3 ;; + esac + else : + # compilation failed + $3 fi - ;; +fi +rm -fr conftest* +])# _LT_TRY_DLOPEN_SELF -haiku*) - lt_cv_deplibs_check_method=pass_all - ;; -hpux10.20* | hpux11*) - lt_cv_file_magic_cmd=/usr/bin/file - case $host_cpu in - ia64*) - lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64' - lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so +# LT_SYS_DLOPEN_SELF +# ------------------ +AC_DEFUN([LT_SYS_DLOPEN_SELF], +[m4_require([_LT_HEADER_DLFCN])dnl +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 ;; - hppa*64*) - [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]'] - lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl + + mingw* | pw32* | cegcc*) + lt_cv_dlopen="LoadLibrary" + lt_cv_dlopen_libs= ;; - *) - 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_test_file=/usr/lib/libc.sl + + cygwin*) + lt_cv_dlopen="dlopen" + lt_cv_dlopen_libs= ;; - esac - ;; -interix[[3-9]]*) - # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here - lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|\.a)$' - ;; + darwin*) + # if libdl is installed we need to link against it + AC_CHECK_LIB([dl], [dlopen], + [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],[ + lt_cv_dlopen="dyld" + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + ]) + ;; -irix5* | irix6* | nonstopux*) - case $LD in - *-32|*"-32 ") libmagic=32-bit;; - *-n32|*"-n32 ") libmagic=N32;; - *-64|*"-64 ") libmagic=64-bit;; - *) libmagic=never-match;; + *) + 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="-ldld"], + [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="-ldld"]) + ]) + ]) + ]) + ]) + ]) + ;; esac - lt_cv_deplibs_check_method=pass_all - ;; - -# This must be glibc/ELF. -linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) - lt_cv_deplibs_check_method=pass_all - ;; -netbsd* | netbsdelf*-gnu) - if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then - lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' + if test "x$lt_cv_dlopen" != xno; then + enable_dlopen=yes else - lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|_pic\.a)$' + enable_dlopen=no 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 - ;; + case $lt_cv_dlopen in + dlopen) + save_CPPFLAGS="$CPPFLAGS" + test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" -*nto* | *qnx*) - lt_cv_deplibs_check_method=pass_all - ;; + save_LDFLAGS="$LDFLAGS" + wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" -openbsd*) - if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then - lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|\.so|_pic\.a)$' - else - lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' - fi - ;; - -osf3* | osf4* | osf5*) - lt_cv_deplibs_check_method=pass_all - ;; - -rdos*) - lt_cv_deplibs_check_method=pass_all - ;; + save_LIBS="$LIBS" + LIBS="$lt_cv_dlopen_libs $LIBS" -solaris*) - lt_cv_deplibs_check_method=pass_all - ;; + AC_CACHE_CHECK([whether a program can dlopen itself], + lt_cv_dlopen_self, [dnl + _LT_TRY_DLOPEN_SELF( + lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes, + lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross) + ]) -sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) - lt_cv_deplibs_check_method=pass_all - ;; + if test "x$lt_cv_dlopen_self" = xyes; then + wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" + AC_CACHE_CHECK([whether a statically linked program can dlopen itself], + lt_cv_dlopen_self_static, [dnl + _LT_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 -sysv4 | sysv4.3*) - 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 - ;; - pc) - lt_cv_deplibs_check_method=pass_all + CPPFLAGS="$save_CPPFLAGS" + LDFLAGS="$save_LDFLAGS" + LIBS="$save_LIBS" ;; esac - ;; -tpf*) - lt_cv_deplibs_check_method=pass_all - ;; -esac -]) + case $lt_cv_dlopen_self in + yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; + *) enable_dlopen_self=unknown ;; + esac -file_magic_glob= -want_nocaseglob=no -if test "$build" = "$host"; then - case $host_os in - mingw* | pw32*) - if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then - want_nocaseglob=yes - else - file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[[\1]]\/[[\1]]\/g;/g"` - fi - ;; + 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 +_LT_DECL([dlopen_support], [enable_dlopen], [0], + [Whether dlopen is supported]) +_LT_DECL([dlopen_self], [enable_dlopen_self], [0], + [Whether dlopen of programs is supported]) +_LT_DECL([dlopen_self_static], [enable_dlopen_self_static], [0], + [Whether dlopen of statically linked programs is supported]) +])# LT_SYS_DLOPEN_SELF -file_magic_cmd=$lt_cv_file_magic_cmd -deplibs_check_method=$lt_cv_deplibs_check_method -test -z "$deplibs_check_method" && deplibs_check_method=unknown +# Old name: +AU_ALIAS([AC_LIBTOOL_DLOPEN_SELF], [LT_SYS_DLOPEN_SELF]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF], []) -_LT_DECL([], [deplibs_check_method], [1], - [Method to check whether dependent libraries are shared objects]) -_LT_DECL([], [file_magic_cmd], [1], - [Command to use when deplibs_check_method = "file_magic"]) -_LT_DECL([], [file_magic_glob], [1], - [How to find potential files when deplibs_check_method = "file_magic"]) -_LT_DECL([], [want_nocaseglob], [1], - [Find potential files using nocaseglob when deplibs_check_method = "file_magic"]) -])# _LT_CHECK_MAGIC_METHOD +# _LT_COMPILER_C_O([TAGNAME]) +# --------------------------- +# Check to see if options -c and -o are simultaneously supported by compiler. +# This macro does not hard code the compiler like AC_PROG_CC_C_O. +m4_defun([_LT_COMPILER_C_O], +[m4_require([_LT_DECL_SED])dnl +m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_TAG_COMPILER])dnl +AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext], + [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)], + [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=no + $RM -r conftest 2>/dev/null + mkdir conftest + cd conftest + mkdir out + echo "$lt_simple_compile_test_code" > conftest.$ac_ext -# LT_PATH_NM -# ---------- -# find the pathname to a BSD- or MS-compatible name lister -AC_DEFUN([LT_PATH_NM], -[AC_REQUIRE([AC_PROG_CC])dnl -AC_CACHE_CHECK([for BSD- or MS-compatible name lister (nm)], lt_cv_path_NM, -[if test -n "$NM"; then - # Let the user override the test. - lt_cv_path_NM="$NM" -else - lt_nm_to_check="${ac_tool_prefix}nm" - if test -n "$ac_tool_prefix" && test "$build" = "$host"; then - lt_nm_to_check="$lt_nm_to_check nm" - fi - for lt_tmp_nm in $lt_nm_to_check; do - lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR - for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do - IFS="$lt_save_ifs" - test -z "$ac_dir" && ac_dir=. - tmp_nm="$ac_dir/$lt_tmp_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 - case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in - */dev/null* | *'Invalid file or object type'*) - lt_cv_path_NM="$tmp_nm -B" - break - ;; - *) - case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in - */dev/null*) - lt_cv_path_NM="$tmp_nm -p" - break - ;; - *) - 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 - ;; - esac - ;; - esac - fi - done - IFS="$lt_save_ifs" - done - : ${lt_cv_path_NM=no} -fi]) -if test "$lt_cv_path_NM" != "no"; then - NM="$lt_cv_path_NM" -else - # Didn't find any BSD compatible name lister, look for dumpbin. - if test -n "$DUMPBIN"; then : - # Let the user override the test. - else - AC_CHECK_TOOLS(DUMPBIN, [dumpbin "link -dump"], :) - case `$DUMPBIN -symbols /dev/null 2>&1 | sed '1q'` in - *COFF*) - DUMPBIN="$DUMPBIN -symbols" - ;; - *) - DUMPBIN=: - ;; - esac - fi - AC_SUBST([DUMPBIN]) - if test "$DUMPBIN" != ":"; then - NM="$DUMPBIN" - fi -fi -test -z "$NM" && NM=nm -AC_SUBST([NM]) -_LT_DECL([], [NM], [1], [A BSD- or MS-compatible name lister])dnl + lt_compiler_flag="-o out/conftest2.$ac_objext" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD) + (eval "$lt_compile" 2>out/conftest.err) + ac_status=$? + cat out/conftest.err >&AS_MESSAGE_LOG_FD + echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD + if (exit $ac_status) && 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 + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp + $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 + if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then + _LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes + fi + fi + chmod u+w . 2>&AS_MESSAGE_LOG_FD + $RM conftest* + # SGI C++ compiler will create directory out/ii_files/ for + # template instantiation + test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files + $RM out/* && rmdir out + cd .. + $RM -r conftest + $RM conftest* +]) +_LT_TAGDECL([compiler_c_o], [lt_cv_prog_compiler_c_o], [1], + [Does compiler simultaneously support -c and -o options?]) +])# _LT_COMPILER_C_O -AC_CACHE_CHECK([the name lister ($NM) interface], [lt_cv_nm_interface], - [lt_cv_nm_interface="BSD nm" - echo "int some_variable = 0;" > conftest.$ac_ext - (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&AS_MESSAGE_LOG_FD) - (eval "$ac_compile" 2>conftest.err) - cat conftest.err >&AS_MESSAGE_LOG_FD - (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&AS_MESSAGE_LOG_FD) - (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) - cat conftest.err >&AS_MESSAGE_LOG_FD - (eval echo "\"\$as_me:$LINENO: output\"" >&AS_MESSAGE_LOG_FD) - cat conftest.out >&AS_MESSAGE_LOG_FD - if $GREP 'External.*some_variable' conftest.out > /dev/null; then - lt_cv_nm_interface="MS dumpbin" - fi - rm -f conftest*]) -])# LT_PATH_NM - -# Old names: -AU_ALIAS([AM_PROG_NM], [LT_PATH_NM]) -AU_ALIAS([AC_PROG_NM], [LT_PATH_NM]) -dnl aclocal-1.4 backwards compatibility: -dnl AC_DEFUN([AM_PROG_NM], []) -dnl AC_DEFUN([AC_PROG_NM], []) - -# _LT_CHECK_SHAREDLIB_FROM_LINKLIB -# -------------------------------- -# how to determine the name of the shared library -# associated with a specific link library. -# -- PORTME fill in with the dynamic library characteristics -m4_defun([_LT_CHECK_SHAREDLIB_FROM_LINKLIB], -[m4_require([_LT_DECL_EGREP]) -m4_require([_LT_DECL_OBJDUMP]) -m4_require([_LT_DECL_DLLTOOL]) -AC_CACHE_CHECK([how to associate runtime and link libraries], -lt_cv_sharedlib_from_linklib_cmd, -[lt_cv_sharedlib_from_linklib_cmd='unknown' - -case $host_os in -cygwin* | mingw* | pw32* | cegcc*) - # two different shell functions defined in ltmain.sh - # decide which to use based on capabilities of $DLLTOOL - case `$DLLTOOL --help 2>&1` in - *--identify-strict*) - lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib - ;; - *) - lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback - ;; - esac - ;; -*) - # fallback: assume linklib IS sharedlib - lt_cv_sharedlib_from_linklib_cmd="$ECHO" - ;; -esac -]) -sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd -test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO - -_LT_DECL([], [sharedlib_from_linklib_cmd], [1], - [Command to associate shared and link libraries]) -])# _LT_CHECK_SHAREDLIB_FROM_LINKLIB +# _LT_COMPILER_FILE_LOCKS([TAGNAME]) +# ---------------------------------- +# Check to see if we can do hard links to lock some files if needed +m4_defun([_LT_COMPILER_FILE_LOCKS], +[m4_require([_LT_ENABLE_LOCK])dnl +m4_require([_LT_FILEUTILS_DEFAULTS])dnl +_LT_COMPILER_C_O([$1]) -# _LT_PATH_MANIFEST_TOOL -# ---------------------- -# locate the manifest tool -m4_defun([_LT_PATH_MANIFEST_TOOL], -[AC_CHECK_TOOL(MANIFEST_TOOL, mt, :) -test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt -AC_CACHE_CHECK([if $MANIFEST_TOOL is a manifest tool], [lt_cv_path_mainfest_tool], - [lt_cv_path_mainfest_tool=no - echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&AS_MESSAGE_LOG_FD - $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out - cat conftest.err >&AS_MESSAGE_LOG_FD - if $GREP 'Manifest Tool' conftest.out > /dev/null; then - lt_cv_path_mainfest_tool=yes +hard_links="nottested" +if test "$_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)" = 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 - rm -f conftest*]) -if test "x$lt_cv_path_mainfest_tool" != xyes; then - MANIFEST_TOOL=: +else + need_locks=no fi -_LT_DECL([], [MANIFEST_TOOL], [1], [Manifest tool])dnl -])# _LT_PATH_MANIFEST_TOOL +_LT_DECL([], [need_locks], [1], [Must we lock files when doing compilation?]) +])# _LT_COMPILER_FILE_LOCKS -# LT_LIB_M -# -------- -# check for math library -AC_DEFUN([LT_LIB_M], -[AC_REQUIRE([AC_CANONICAL_HOST])dnl -LIBM= -case $host in -*-*-beos* | *-*-cegcc* | *-*-cygwin* | *-*-haiku* | *-*-pw32* | *-*-darwin*) - # These system don't have libm, or don't need it - ;; -*-ncr-sysv4.3*) - AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw") - AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm") - ;; -*) - AC_CHECK_LIB(m, cos, LIBM="-lm") - ;; -esac -AC_SUBST([LIBM]) -])# LT_LIB_M +# _LT_CHECK_OBJDIR +# ---------------- +m4_defun([_LT_CHECK_OBJDIR], +[AC_CACHE_CHECK([for objdir], [lt_cv_objdir], +[rm -f .libs 2>/dev/null +mkdir .libs 2>/dev/null +if test -d .libs; then + lt_cv_objdir=.libs +else + # MS-DOS does not allow filenames that begin with a dot. + lt_cv_objdir=_libs +fi +rmdir .libs 2>/dev/null]) +objdir=$lt_cv_objdir +_LT_DECL([], [objdir], [0], + [The name of the directory that contains temporary libtool files])dnl +m4_pattern_allow([LT_OBJDIR])dnl +AC_DEFINE_UNQUOTED(LT_OBJDIR, "$lt_cv_objdir/", + [Define to the sub-directory in which libtool stores uninstalled libraries.]) +])# _LT_CHECK_OBJDIR -# Old name: -AU_ALIAS([AC_CHECK_LIBM], [LT_LIB_M]) -dnl aclocal-1.4 backwards compatibility: -dnl AC_DEFUN([AC_CHECK_LIBM], []) +# _LT_LINKER_HARDCODE_LIBPATH([TAGNAME]) +# -------------------------------------- +# Check hardcoding attributes. +m4_defun([_LT_LINKER_HARDCODE_LIBPATH], +[AC_MSG_CHECKING([how to hardcode library paths into programs]) +_LT_TAGVAR(hardcode_action, $1)= +if test -n "$_LT_TAGVAR(hardcode_libdir_flag_spec, $1)" || + test -n "$_LT_TAGVAR(runpath_var, $1)" || + test "X$_LT_TAGVAR(hardcode_automatic, $1)" = "Xyes" ; then -# _LT_COMPILER_NO_RTTI([TAGNAME]) -# ------------------------------- -m4_defun([_LT_COMPILER_NO_RTTI], -[m4_require([_LT_TAG_COMPILER])dnl + # We can hardcode non-existent directories. + if test "$_LT_TAGVAR(hardcode_direct, $1)" != 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 "$_LT_TAGVAR(hardcode_shlibpath_var, $1)" != no && + test "$_LT_TAGVAR(hardcode_minus_L, $1)" != no; then + # Linking always hardcodes the temporary library directory. + _LT_TAGVAR(hardcode_action, $1)=relink + else + # We can link without hardcoding, and we can hardcode nonexisting dirs. + _LT_TAGVAR(hardcode_action, $1)=immediate + fi +else + # We cannot hardcode anything, or else we can only hardcode existing + # directories. + _LT_TAGVAR(hardcode_action, $1)=unsupported +fi +AC_MSG_RESULT([$_LT_TAGVAR(hardcode_action, $1)]) -_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= +if test "$_LT_TAGVAR(hardcode_action, $1)" = relink || + test "$_LT_TAGVAR(inherit_rpath, $1)" = yes; 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 +_LT_TAGDECL([], [hardcode_action], [0], + [How to hardcode a shared library path into an executable]) +])# _LT_LINKER_HARDCODE_LIBPATH -if test "$GCC" = yes; then - case $cc_basename in - nvcc*) - _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -Xcompiler -fno-builtin' ;; + +# _LT_CMD_STRIPLIB +# ---------------- +m4_defun([_LT_CMD_STRIPLIB], +[m4_require([_LT_DECL_EGREP]) +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 +# FIXME - insert some real tests, host_os isn't really good enough + case $host_os in + darwin*) + if test -n "$STRIP" ; then + striplib="$STRIP -x" + old_striplib="$STRIP -S" + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + fi + ;; *) - _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' ;; + AC_MSG_RESULT([no]) + ;; esac - - _LT_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions], - lt_cv_prog_compiler_rtti_exceptions, - [-fno-rtti -fno-exceptions], [], - [_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"]) fi -_LT_TAGDECL([no_builtin_flag], [lt_prog_compiler_no_builtin_flag], [1], - [Compiler flag to turn off builtin functions]) -])# _LT_COMPILER_NO_RTTI +_LT_DECL([], [old_striplib], [1], [Commands to strip libraries]) +_LT_DECL([], [striplib], [1]) +])# _LT_CMD_STRIPLIB -# _LT_CMD_GLOBAL_SYMBOLS -# ---------------------- -m4_defun([_LT_CMD_GLOBAL_SYMBOLS], +# _LT_SYS_DYNAMIC_LINKER([TAG]) +# ----------------------------- +# PORTME Fill in your ld.so characteristics +m4_defun([_LT_SYS_DYNAMIC_LINKER], [AC_REQUIRE([AC_CANONICAL_HOST])dnl -AC_REQUIRE([AC_PROG_CC])dnl -AC_REQUIRE([AC_PROG_AWK])dnl -AC_REQUIRE([LT_PATH_NM])dnl -AC_REQUIRE([LT_PATH_LD])dnl -m4_require([_LT_DECL_SED])dnl m4_require([_LT_DECL_EGREP])dnl -m4_require([_LT_TAG_COMPILER])dnl - -# Check for command to grab the raw symbol name followed by C symbol from nm. -AC_MSG_CHECKING([command to parse $NM output from $compiler object]) -AC_CACHE_VAL([lt_cv_sys_global_symbol_pipe], -[ -# 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]]*\)' - -# Define system-specific variables. -case $host_os in -aix*) - symcode='[[BCDT]]' - ;; -cygwin* | mingw* | pw32* | cegcc*) - symcode='[[ABCDGISTW]]' - ;; -hpux*) - if test "$host_cpu" = ia64; then - symcode='[[ABCDEGRST]]' - fi - ;; -irix* | nonstopux*) - symcode='[[BCDEGRST]]' - ;; -osf*) - symcode='[[BCDEGQRST]]' - ;; -solaris*) - symcode='[[BDRT]]' - ;; -sco3.2v5*) - symcode='[[DT]]' - ;; -sysv4.2uw2*) - symcode='[[DT]]' - ;; -sysv5* | sco5v6* | unixware* | OpenUNIX*) - symcode='[[ABDT]]' - ;; -sysv4) - symcode='[[DFNSTU]]' - ;; -esac - -# If we're using GNU nm, then use its standard symbol codes. -case `$NM -V 2>&1` in -*GNU* | *'with BFD'*) - symcode='[[ABCDGIRSTW]]' ;; -esac +m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_DECL_OBJDUMP])dnl +m4_require([_LT_DECL_SED])dnl +m4_require([_LT_CHECK_SHELL_FEATURES])dnl +AC_MSG_CHECKING([dynamic linker characteristics]) +m4_if([$1], + [], [ +if test "$GCC" = yes; then + case $host_os in + darwin*) lt_awk_arg="/^libraries:/,/LR/" ;; + *) lt_awk_arg="/^libraries:/" ;; + esac + case $host_os in + mingw* | cegcc*) lt_sed_strip_eq="s,=\([[A-Za-z]]:\),\1,g" ;; + *) lt_sed_strip_eq="s,=/,/,g" ;; + esac + lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq` + case $lt_search_path_spec in + *\;*) + # if the path contains ";" then we assume it to be the separator + # otherwise default to the standard path separator (i.e. ":") - it is + # assumed that no part of a normal pathname contains ";" but that should + # okay in the real world where ";" in dirpaths is itself problematic. + lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'` + ;; + *) + lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"` + ;; + esac + # Ok, now we have the path, separated by spaces, we can step through it + # and add multilib dir if necessary. + lt_tmp_lt_search_path_spec= + lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` + for lt_sys_path in $lt_search_path_spec; do + if test -d "$lt_sys_path/$lt_multi_os_dir"; then + lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir" + else + test -d "$lt_sys_path" && \ + lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" + fi + done + lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk ' +BEGIN {RS=" "; FS="/|\n";} { + lt_foo=""; + lt_count=0; + for (lt_i = NF; lt_i > 0; lt_i--) { + if ($lt_i != "" && $lt_i != ".") { + if ($lt_i == "..") { + lt_count++; + } else { + if (lt_count == 0) { + lt_foo="/" $lt_i lt_foo; + } else { + lt_count--; + } + } + } + } + if (lt_foo != "") { lt_freq[[lt_foo]]++; } + if (lt_freq[[lt_foo]] == 1) { print lt_foo; } +}'` + # AWK program above erroneously prepends '/' to C:/dos/paths + # for these hosts. + case $host_os in + mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\ + $SED 's,/\([[A-Za-z]]:\),\1,g'` ;; + esac + sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP` +else + sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" +fi]) +library_names_spec= +libname_spec='lib$name' +soname_spec= +shrext_cmds=".so" +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" +need_lib_prefix=unknown +hardcode_into_libs=no -# Transform an extracted symbol line into a proper C declaration. -# Some systems (esp. on ia64) link data and code symbols differently, -# so use this general approach. -lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" +# when you set need_version to no, make sure it does not cause -set_version +# flags to be left without arguments +need_version=unknown -# Transform an extracted symbol line into symbol name and symbol address -lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\)[[ ]]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p'" -lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([[^ ]]*\)[[ ]]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \(lib[[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"lib\2\", (void *) \&\2},/p'" +case $host_os in +aix3*) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' + shlibpath_var=LIBPATH -# Handle CRLF in mingw tool chain -opt_cr= -case $build_os in -mingw*) - opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp + # AIX 3 has no versioning support, so we append a major version to the name. + soname_spec='${libname}${release}${shared_ext}$major' ;; -esac - -# Try without a prefix underscore, then with it. -for ac_symprfx in "" "_"; do - - # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. - symxfrm="\\1 $ac_symprfx\\2 \\2" - # Write the raw and C identifiers. - if test "$lt_cv_nm_interface" = "MS dumpbin"; then - # Fake it for dumpbin and say T for any non-static function - # and D for any global variable. - # Also find C++ and __fastcall symbols from MSVC++, - # which start with @ or ?. - lt_cv_sys_global_symbol_pipe="$AWK ['"\ -" {last_section=section; section=\$ 3};"\ -" /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\ -" /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ -" \$ 0!~/External *\|/{next};"\ -" / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ -" {if(hide[section]) next};"\ -" {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\ -" {split(\$ 0, a, /\||\r/); split(a[2], s)};"\ -" s[1]~/^[@?]/{print s[1], s[1]; next};"\ -" s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\ -" ' prfx=^$ac_symprfx]" +aix[[4-9]]*) + version_type=linux # correct to gnu/linux during the next big refactor + 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}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH else - lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" + # 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}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + 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}${shared_ext}$major' + fi + shlibpath_var=LIBPATH fi - lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'" - - # Check to see that the pipe works correctly. - pipe_works=no + ;; - rm -f conftest* - cat > conftest.$ac_ext <<_LT_EOF -#ifdef __cplusplus -extern "C" { -#endif -char nm_test_var; -void nm_test_func(void); -void nm_test_func(void){} -#ifdef __cplusplus -} -#endif -int main(){nm_test_var='a';nm_test_func();return(0);} -_LT_EOF +amigaos*) + case $host_cpu in + powerpc) + # Since July 2007 AmigaOS4 officially supports .so libraries. + # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + ;; + m68k) + 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=`func_echo_all "$lib" | $SED '\''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' + ;; + esac + ;; - if AC_TRY_EVAL(ac_compile); then - # Now try to grab the symbols. - nlist=conftest.nm - if AC_TRY_EVAL(NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $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 +beos*) + library_names_spec='${libname}${shared_ext}' + dynamic_linker="$host_os ld.so" + shlibpath_var=LIBRARY_PATH + ;; - # Make sure that we snagged all the symbols we need. - if $GREP ' nm_test_var$' "$nlist" >/dev/null; then - if $GREP ' nm_test_func$' "$nlist" >/dev/null; then - cat <<_LT_EOF > conftest.$ac_ext -/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ -#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) -/* DATA imports from DLLs on WIN32 con't be const, because runtime - relocations are performed -- see ld's documentation on pseudo-relocs. */ -# define LT@&t@_DLSYM_CONST -#elif defined(__osf__) -/* This system does not cope well with relocations in const data. */ -# define LT@&t@_DLSYM_CONST -#else -# define LT@&t@_DLSYM_CONST const -#endif - -#ifdef __cplusplus -extern "C" { -#endif +bsdi[[45]]*) + version_type=linux # correct to gnu/linux during the next big refactor + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$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" + # 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 + ;; -_LT_EOF - # Now generate the symbol file. - eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext' +cygwin* | mingw* | pw32* | cegcc*) + version_type=windows + shrext_cmds=".dll" + need_version=no + need_lib_prefix=no - cat <<_LT_EOF >> conftest.$ac_ext + case $GCC,$cc_basename in + yes,*) + # gcc + library_names_spec='$libname.dll.a' + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \${file}`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname~ + chmod a+x \$dldir/$dlname~ + if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then + eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; + fi' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + shlibpath_overrides_runpath=yes -/* The mapping between symbol names and symbols. */ -LT@&t@_DLSYM_CONST struct { - const char *name; - void *address; -} -lt__PROGRAM__LTX_preloaded_symbols[[]] = -{ - { "@PROGRAM@", (void *) 0 }, -_LT_EOF - $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext - cat <<\_LT_EOF >> conftest.$ac_ext - {0, (void *) 0} -}; + case $host_os in + cygwin*) + # Cygwin DLLs use 'cyg' prefix rather than 'lib' + soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' +m4_if([$1], [],[ + sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"]) + ;; + mingw* | cegcc*) + # MinGW DLLs use traditional 'lib' prefix + soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' + ;; + pw32*) + # pw32 DLLs use 'pw' prefix rather than 'lib' + library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' + ;; + esac + dynamic_linker='Win32 ld.exe' + ;; -/* This works around a problem in FreeBSD linker */ -#ifdef FREEBSD_WORKAROUND -static const void *lt_preloaded_setup() { - return lt__PROGRAM__LTX_preloaded_symbols; -} -#endif + *,cl*) + # Native MSVC + libname_spec='$name' + soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' + library_names_spec='${libname}.dll.lib' -#ifdef __cplusplus -} -#endif -_LT_EOF - # Now try linking the two files. - mv conftest.$ac_objext conftstm.$ac_objext - lt_globsym_save_LIBS=$LIBS - lt_globsym_save_CFLAGS=$CFLAGS - LIBS="conftstm.$ac_objext" - CFLAGS="$CFLAGS$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)" - if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext}; then - pipe_works=yes - fi - LIBS=$lt_globsym_save_LIBS - CFLAGS=$lt_globsym_save_CFLAGS - else - echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD - fi + case $build_os in + mingw*) + sys_lib_search_path_spec= + lt_save_ifs=$IFS + IFS=';' + for lt_path in $LIB + do + IFS=$lt_save_ifs + # Let DOS variable expansion print the short 8.3 style file name. + lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` + sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" + done + IFS=$lt_save_ifs + # Convert to MSYS style. + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([[a-zA-Z]]\\):| /\\1|g' -e 's|^ ||'` + ;; + cygwin*) + # Convert to unix form, then to dos form, then back to unix form + # but this time dos style (no spaces!) so that the unix form looks + # like /cygdrive/c/PROGRA~1:/cygdr... + sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` + sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` + sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + ;; + *) + sys_lib_search_path_spec="$LIB" + if $ECHO "$sys_lib_search_path_spec" | [$GREP ';[c-zC-Z]:/' >/dev/null]; then + # It is most probably a Windows format PATH. + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else - echo "cannot find nm_test_var in $nlist" >&AS_MESSAGE_LOG_FD + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi - else - echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD - fi - else - echo "$progname: failed program was:" >&AS_MESSAGE_LOG_FD - cat conftest.$ac_ext >&5 - fi - rm -rf 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 -]) -if test -z "$lt_cv_sys_global_symbol_pipe"; then - lt_cv_sys_global_symbol_to_cdecl= -fi -if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then - AC_MSG_RESULT(failed) -else - AC_MSG_RESULT(ok) -fi - -# Response file support. -if test "$lt_cv_nm_interface" = "MS dumpbin"; then - nm_file_list_spec='@' -elif $NM --help 2>/dev/null | grep '[[@]]FILE' >/dev/null; then - nm_file_list_spec='@' -fi + # FIXME: find the short name or the path components, as spaces are + # common. (e.g. "Program Files" -> "PROGRA~1") + ;; + esac -_LT_DECL([global_symbol_pipe], [lt_cv_sys_global_symbol_pipe], [1], - [Take the output of nm and produce a listing of raw symbols and C names]) -_LT_DECL([global_symbol_to_cdecl], [lt_cv_sys_global_symbol_to_cdecl], [1], - [Transform the output of nm in a proper C declaration]) -_LT_DECL([global_symbol_to_c_name_address], - [lt_cv_sys_global_symbol_to_c_name_address], [1], - [Transform the output of nm in a C name address pair]) -_LT_DECL([global_symbol_to_c_name_address_lib_prefix], - [lt_cv_sys_global_symbol_to_c_name_address_lib_prefix], [1], - [Transform the output of nm in a C name address pair when lib prefix is needed]) -_LT_DECL([], [nm_file_list_spec], [1], - [Specify filename containing input files for $NM]) -]) # _LT_CMD_GLOBAL_SYMBOLS + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \${file}`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + shlibpath_overrides_runpath=yes + dynamic_linker='Win32 link.exe' + ;; + *) + # Assume MSVC wrapper + library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext} $libname.lib' + dynamic_linker='Win32 ld.exe' + ;; + esac + # FIXME: first we should search . and the directory the executable is in + shlibpath_var=PATH + ;; -# _LT_COMPILER_PIC([TAGNAME]) -# --------------------------- -m4_defun([_LT_COMPILER_PIC], -[m4_require([_LT_TAG_COMPILER])dnl -_LT_TAGVAR(lt_prog_compiler_wl, $1)= -_LT_TAGVAR(lt_prog_compiler_pic, $1)= -_LT_TAGVAR(lt_prog_compiler_static, $1)= +darwin* | rhapsody*) + dynamic_linker="$host_os dyld" + version_type=darwin + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext' + soname_spec='${libname}${release}${major}$shared_ext' + shlibpath_overrides_runpath=yes + shlibpath_var=DYLD_LIBRARY_PATH + shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' +m4_if([$1], [],[ + sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"]) + sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' + ;; -m4_if([$1], [CXX], [ - # C++ specific cases for pic, static, wl, etc. - if test "$GXX" = yes; then - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' +dgux*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + ;; +freebsd* | dragonfly*) + # DragonFly does not have aout. When/if they implement a new + # versioning mechanism, adjust this. + if test -x /usr/bin/objformat; then + objformat=`/usr/bin/objformat` + else case $host_os in - aix*) - # All AIX code is PIC. - if test "$host_cpu" = ia64; then - # AIX 5 now supports IA64 processor - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - fi - ;; - - amigaos*) - case $host_cpu in - powerpc) - # see comment about AmigaOS4 .so support - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' - ;; - m68k) - # 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_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' - ;; - esac - ;; - - beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) - # PIC is the default for these OSes. - ;; - mingw* | cygwin* | os2* | pw32* | cegcc*) - # 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). - # Although the cygwin gcc ignores -fPIC, still need this for old-style - # (--disable-auto-import) libraries - m4_if([$1], [GCJ], [], - [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) - ;; - darwin* | rhapsody*) - # PIC is the default on this platform - # Common symbols not allowed in MH_DYLIB files - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' - ;; - *djgpp*) - # DJGPP does not support shared libraries at all - _LT_TAGVAR(lt_prog_compiler_pic, $1)= - ;; - haiku*) - # PIC is the default for Haiku. - # The "-static" flag exists, but is broken. - _LT_TAGVAR(lt_prog_compiler_static, $1)= - ;; - interix[[3-9]]*) - # Interix 3.x gcc -fpic/-fPIC options generate broken code. - # Instead, we relocate shared libraries at runtime. - ;; - sysv4*MP*) - if test -d /usr/nec; then - _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic - fi - ;; - hpux*) - # PIC is the default for 64-bit PA HP-UX, but not for 32-bit - # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag - # sets the default TLS model and affects inlining. - case $host_cpu in - hppa*64*) - ;; - *) - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' - ;; - esac - ;; - *qnx* | *nto*) - # QNX uses GNU C++, but need to define -shared option too, otherwise - # it will coredump. - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' - ;; - *) - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' - ;; - esac - else - case $host_os in - aix[[4-9]]*) - # All AIX code is PIC. - if test "$host_cpu" = ia64; then - # AIX 5 now supports IA64 processor - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - else - _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' - fi - ;; - chorus*) - case $cc_basename in - cxch68*) - # Green Hills C++ Compiler - # _LT_TAGVAR(lt_prog_compiler_static, $1)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a" - ;; - esac - ;; - mingw* | cygwin* | os2* | pw32* | cegcc*) - # 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). - m4_if([$1], [GCJ], [], - [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) - ;; - dgux*) - case $cc_basename in - ec++*) - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' - ;; - ghcx*) - # Green Hills C++ Compiler - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' - ;; - *) - ;; - esac - ;; - freebsd* | dragonfly*) - # FreeBSD uses GNU C++ - ;; - hpux9* | hpux10* | hpux11*) - case $cc_basename in - CC*) - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' - if test "$host_cpu" != ia64; then - _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' - fi - ;; - aCC*) - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' - case $host_cpu in - hppa*64*|ia64*) - # +Z the default - ;; - *) - _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' - ;; - esac - ;; - *) - ;; - esac - ;; - interix*) - # This is c89, which is MS Visual C++ (no shared libs) - # Anyone wants to do a port? - ;; - irix5* | irix6* | nonstopux*) - case $cc_basename in - CC*) - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' - # CC pic flag -KPIC is the default. - ;; - *) - ;; - esac - ;; - linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) - case $cc_basename in - KCC*) - # KAI C++ Compiler - _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' - ;; - ecpc* ) - # old Intel C++ for x86_64 which still supported -KPIC. - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' - ;; - icpc* ) - # Intel C++, used to be incompatible with GCC. - # ICC 10 doesn't accept -KPIC any more. - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' - ;; - pgCC* | pgcpp*) - # Portland Group C++ compiler - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - ;; - cxx*) - # Compaq C++ - # Make sure the PIC flag is empty. It appears that all Alpha - # Linux and Compaq Tru64 Unix objects are PIC. - _LT_TAGVAR(lt_prog_compiler_pic, $1)= - _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' - ;; - xlc* | xlC* | bgxl[[cC]]* | mpixl[[cC]]*) - # IBM XL 8.0, 9.0 on PPC and BlueGene - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' - ;; - *) - case `$CC -V 2>&1 | sed 5q` in - *Sun\ C*) - # Sun C++ 5.9 - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' - ;; - esac - ;; - esac - ;; - lynxos*) - ;; - m88k*) - ;; - mvs*) - case $cc_basename in - cxx*) - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall' - ;; - *) - ;; - esac - ;; - netbsd* | netbsdelf*-gnu) - ;; - *qnx* | *nto*) - # QNX uses GNU C++, but need to define -shared option too, otherwise - # it will coredump. - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' - ;; - osf3* | osf4* | osf5*) - case $cc_basename in - KCC*) - _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' - ;; - RCC*) - # Rational C++ 2.4.1 - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' - ;; - cxx*) - # Digital/Compaq C++ - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - # Make sure the PIC flag is empty. It appears that all Alpha - # Linux and Compaq Tru64 Unix objects are PIC. - _LT_TAGVAR(lt_prog_compiler_pic, $1)= - _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' - ;; - *) - ;; - esac - ;; - psos*) - ;; - solaris*) - case $cc_basename in - CC* | sunCC*) - # Sun C++ 4.2, 5.x and Centerline C++ - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' - ;; - gcx*) - # Green Hills C++ Compiler - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' - ;; - *) - ;; - esac - ;; - sunos4*) - case $cc_basename in - CC*) - # Sun C++ 4.x - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - ;; - lcc*) - # Lucid - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' - ;; - *) - ;; - esac - ;; - sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) - case $cc_basename in - CC*) - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - ;; - esac - ;; - tandem*) - case $cc_basename in - NCC*) - # NonStop-UX NCC 3.20 - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' - ;; - *) - ;; - esac - ;; - vxworks*) - ;; - *) - _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no - ;; + freebsd[[23]].*) objformat=aout ;; + *) objformat=elf ;; esac fi -], -[ - if test "$GCC" = yes; then - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' - - case $host_os in - aix*) - # All AIX code is PIC. - if test "$host_cpu" = ia64; then - # AIX 5 now supports IA64 processor - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - fi - ;; - - amigaos*) - case $host_cpu in - powerpc) - # see comment about AmigaOS4 .so support - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' - ;; - m68k) - # 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_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' - ;; - esac - ;; - - beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) - # PIC is the default for these OSes. - ;; - - mingw* | cygwin* | pw32* | os2* | cegcc*) - # 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). - # Although the cygwin gcc ignores -fPIC, still need this for old-style - # (--disable-auto-import) libraries - m4_if([$1], [GCJ], [], - [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) - ;; - - darwin* | rhapsody*) - # PIC is the default on this platform - # Common symbols not allowed in MH_DYLIB files - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' - ;; - - haiku*) - # PIC is the default for Haiku. - # The "-static" flag exists, but is broken. - _LT_TAGVAR(lt_prog_compiler_static, $1)= - ;; - - hpux*) - # PIC is the default for 64-bit PA HP-UX, but not for 32-bit - # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag - # sets the default TLS model and affects inlining. - case $host_cpu in - hppa*64*) - # +Z the default - ;; - *) - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' - ;; - esac - ;; - - interix[[3-9]]*) - # Interix 3.x gcc -fpic/-fPIC options generate broken code. - # Instead, we relocate shared libraries at runtime. - ;; - - msdosdjgpp*) - # Just because we use GCC doesn't mean we suddenly get shared libraries - # on systems that don't support them. - _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no - enable_shared=no - ;; - - *nto* | *qnx*) - # QNX uses GNU C++, but need to define -shared option too, otherwise - # it will coredump. - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' - ;; - - sysv4*MP*) - if test -d /usr/nec; then - _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic - fi - ;; - - *) - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' - ;; - esac - - case $cc_basename in - nvcc*) # Cuda Compiler Driver 2.2 - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Xlinker ' - if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then - _LT_TAGVAR(lt_prog_compiler_pic, $1)="-Xcompiler $_LT_TAGVAR(lt_prog_compiler_pic, $1)" - fi - ;; - esac - else - # PORTME Check for flag to pass linker flags through the system compiler. - case $host_os in - aix*) - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - if test "$host_cpu" = ia64; then - # AIX 5 now supports IA64 processor - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - else - _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' - fi - ;; - - mingw* | cygwin* | pw32* | os2* | cegcc*) - # 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). - m4_if([$1], [GCJ], [], - [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) - ;; - - hpux9* | hpux10* | hpux11*) - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but - # not for PA HP-UX. - case $host_cpu in - hppa*64*|ia64*) - # +Z the default - ;; - *) - _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' - ;; - esac - # Is there a better lt_prog_compiler_static that works with the bundled CC? - _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' + version_type=freebsd-$objformat + case $version_type in + freebsd-elf*) + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' + need_version=no + need_lib_prefix=no ;; - - irix5* | irix6* | nonstopux*) - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - # PIC (with -KPIC) is the default. - _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + freebsd-*) + library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' + need_version=yes ;; + esac + shlibpath_var=LD_LIBRARY_PATH + case $host_os in + freebsd2.*) + shlibpath_overrides_runpath=yes + ;; + freebsd3.[[01]]* | freebsdelf3.[[01]]*) + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + freebsd3.[[2-9]]* | freebsdelf3.[[2-9]]* | \ + freebsd4.[[0-5]] | freebsdelf4.[[0-5]] | freebsd4.1.1 | freebsdelf4.1.1) + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + *) # from 4.6 on, and DragonFly + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + esac + ;; - linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) - case $cc_basename in - # old Intel for x86_64 which still supported -KPIC. - ecc*) - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' - ;; - # icc used to be incompatible with GCC. - # ICC 10 doesn't accept -KPIC any more. - icc* | ifort*) - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' - ;; - # Lahey Fortran 8.1. - lf95*) - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_TAGVAR(lt_prog_compiler_pic, $1)='--shared' - _LT_TAGVAR(lt_prog_compiler_static, $1)='--static' - ;; - nagfor*) - # NAG Fortran compiler - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,-Wl,,' - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - ;; - pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) - # Portland Group compilers (*not* the Pentium gcc compiler, - # which looks to be a dead project) - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - ;; - ccc*) - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - # All Alpha code is PIC. - _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' - ;; - xl* | bgxl* | bgf* | mpixl*) - # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' - ;; - *) - case `$CC -V 2>&1 | sed 5q` in - *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [[1-7]].* | *Sun*Fortran*\ 8.[[0-3]]*) - # Sun Fortran 8.3 passes all unrecognized flags to the linker - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - _LT_TAGVAR(lt_prog_compiler_wl, $1)='' - ;; - *Sun\ F* | *Sun*Fortran*) - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' - ;; - *Sun\ C*) - # Sun C 5.9 - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - ;; - *Intel*\ [[CF]]*Compiler*) - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' - ;; - *Portland\ Group*) - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - ;; - esac - ;; - esac - ;; +haiku*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + dynamic_linker="$host_os runtime_loader" + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LIBRARY_PATH + shlibpath_overrides_runpath=yes + sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' + hardcode_into_libs=yes + ;; - newsos6) - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - ;; +hpux9* | hpux10* | hpux11*) + # Give a soname corresponding to the major version so that dld.sl refuses to + # link against other versions. + version_type=sunos + need_lib_prefix=no + need_version=no + case $host_cpu in + ia64*) + shrext_cmds='.so' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.so" + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + if test "X$HPUX_IA64_MODE" = X32; then + sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" + else + sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" + fi + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + hppa*64*) + shrext_cmds='.sl' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.sl" + shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + *) + shrext_cmds='.sl' + dynamic_linker="$host_os dld.sl" + shlibpath_var=SHLIB_PATH + shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + ;; + esac + # HP-UX runs *really* slowly unless shared libraries are mode 555, ... + postinstall_cmds='chmod 555 $lib' + # or fails outright, so override atomically: + install_override_mode=555 + ;; - *nto* | *qnx*) - # QNX uses GNU C++, but need to define -shared option too, otherwise - # it will coredump. - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' - ;; +interix[[3-9]]*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; - osf3* | osf4* | osf5*) - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - # All OSF/1 code is PIC. - _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' - ;; +irix5* | irix6* | nonstopux*) + case $host_os in + nonstopux*) version_type=nonstopux ;; + *) + if test "$lt_cv_prog_gnu_ld" = yes; then + version_type=linux # correct to gnu/linux during the next big refactor + else + version_type=irix + fi ;; + esac + need_lib_prefix=no + need_version=no + soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' + case $host_os in + irix5* | nonstopux*) + libsuff= shlibsuff= + ;; + *) + case $LD in # libtool.m4 will add one of these switches to LD + *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") + libsuff= shlibsuff= libmagic=32-bit;; + *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") + libsuff=32 shlibsuff=N32 libmagic=N32;; + *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") + 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}" + hardcode_into_libs=yes + ;; - rdos*) - _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' - ;; +# No shared lib support for Linux oldld, aout, or coff. +linux*oldld* | linux*aout* | linux*coff*) + dynamic_linker=no + ;; - solaris*) - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - case $cc_basename in - f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';; - *) - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';; - esac - ;; +# This must be glibc/ELF. +linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + + # Some binutils ld are patched to set DT_RUNPATH + AC_CACHE_VAL([lt_cv_shlibpath_overrides_runpath], + [lt_cv_shlibpath_overrides_runpath=no + save_LDFLAGS=$LDFLAGS + save_libdir=$libdir + eval "libdir=/foo; wl=\"$_LT_TAGVAR(lt_prog_compiler_wl, $1)\"; \ + LDFLAGS=\"\$LDFLAGS $_LT_TAGVAR(hardcode_libdir_flag_spec, $1)\"" + AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], + [AS_IF([ ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null], + [lt_cv_shlibpath_overrides_runpath=yes])]) + LDFLAGS=$save_LDFLAGS + libdir=$save_libdir + ]) + shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath - sunos4*) - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - ;; + # 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 - sysv4 | sysv4.2uw2* | sysv4.3*) - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - ;; + # Append ld.so.conf contents to the search path + if test -f /etc/ld.so.conf; then + lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '` + sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" + fi - sysv4*MP*) - if test -d /usr/nec ;then - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - fi - ;; + # 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' + ;; - sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - ;; +netbsdelf*-gnu) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + dynamic_linker='NetBSD ld.elf_so' + ;; - unicos*) - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no - ;; +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}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + dynamic_linker='NetBSD (a.out) ld.so' + else + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + dynamic_linker='NetBSD ld.elf_so' + fi + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; - uts4*) - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - ;; +newsos6) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + ;; - *) - _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no - ;; - esac +*nto* | *qnx*) + version_type=qnx + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + dynamic_linker='ldqnx.so' + ;; + +openbsd*) + version_type=sunos + sys_lib_dlsearch_path_spec="/usr/lib" + need_lib_prefix=no + # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. + case $host_os in + openbsd3.3 | openbsd3.3.*) need_version=yes ;; + *) need_version=no ;; + esac + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + shlibpath_var=LD_LIBRARY_PATH + 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 -]) -case $host_os in - # For platforms which do not support PIC, -DPIC is meaningless: - *djgpp*) - _LT_TAGVAR(lt_prog_compiler_pic, $1)= - ;; - *) - _LT_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])" - ;; -esac + ;; -AC_CACHE_CHECK([for $compiler option to produce PIC], - [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)], - [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_prog_compiler_pic, $1)]) -_LT_TAGVAR(lt_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_cv_prog_compiler_pic, $1) +os2*) + libname_spec='$name' + shrext_cmds=".dll" + need_lib_prefix=no + library_names_spec='$libname${shared_ext} $libname.a' + dynamic_linker='OS/2 ld.exe' + shlibpath_var=LIBPATH + ;; -# -# Check to make sure the PIC flag actually works. -# -if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then - _LT_COMPILER_OPTION([if $compiler PIC flag $_LT_TAGVAR(lt_prog_compiler_pic, $1) works], - [_LT_TAGVAR(lt_cv_prog_compiler_pic_works, $1)], - [$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])], [], - [case $_LT_TAGVAR(lt_prog_compiler_pic, $1) in - "" | " "*) ;; - *) _LT_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_TAGVAR(lt_prog_compiler_pic, $1)" ;; - esac], - [_LT_TAGVAR(lt_prog_compiler_pic, $1)= - _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no]) -fi -_LT_TAGDECL([pic_flag], [lt_prog_compiler_pic], [1], - [Additional compiler flags for building library objects]) +osf3* | osf4* | osf5*) + version_type=osf + need_lib_prefix=no + need_version=no + soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + 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" + ;; -_LT_TAGDECL([wl], [lt_prog_compiler_wl], [1], - [How to pass a linker flag through the compiler]) -# -# Check to make sure the static flag actually works. -# -wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) eval lt_tmp_static_flag=\"$_LT_TAGVAR(lt_prog_compiler_static, $1)\" -_LT_LINKER_OPTION([if $compiler static flag $lt_tmp_static_flag works], - _LT_TAGVAR(lt_cv_prog_compiler_static_works, $1), - $lt_tmp_static_flag, - [], - [_LT_TAGVAR(lt_prog_compiler_static, $1)=]) -_LT_TAGDECL([link_static_flag], [lt_prog_compiler_static], [1], - [Compiler flag to prevent dynamic linking]) -])# _LT_COMPILER_PIC +rdos*) + dynamic_linker=no + ;; + +solaris*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$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}${shared_ext}$versuffix ${libname}${shared_ext}$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 + ;; -# _LT_LINKER_SHLIBS([TAGNAME]) -# ---------------------------- -# See if the linker supports building shared libraries. -m4_defun([_LT_LINKER_SHLIBS], -[AC_REQUIRE([LT_PATH_LD])dnl -AC_REQUIRE([LT_PATH_NM])dnl -m4_require([_LT_PATH_MANIFEST_TOOL])dnl -m4_require([_LT_FILEUTILS_DEFAULTS])dnl -m4_require([_LT_DECL_EGREP])dnl -m4_require([_LT_DECL_SED])dnl -m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl -m4_require([_LT_TAG_COMPILER])dnl -AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) -m4_if([$1], [CXX], [ - _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' - _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] - case $host_os in - aix[[4-9]]*) - # If we're using GNU nm, then we don't want the "-C" option. - # -C means demangle to AIX nm, but means don't demangle with GNU nm - # Also, AIX nm treats weak defined symbols like other global defined - # symbols, whereas GNU nm marks them as "W". - if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then - _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' - else - _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' - fi - ;; - pw32*) - _LT_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds" - ;; - cygwin* | mingw* | cegcc*) - case $cc_basename in - cl*) - _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' +sysv4 | sysv4.3*) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + case $host_vendor in + sni) + shlibpath_overrides_runpath=no + need_lib_prefix=no + runpath_var=LD_RUN_PATH ;; - *) - _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' - _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'] + 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 - ;; - linux* | k*bsd*-gnu | gnu*) - _LT_TAGVAR(link_all_deplibs, $1)=no - ;; - *) - _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' - ;; - esac -], [ - runpath_var= - _LT_TAGVAR(allow_undefined_flag, $1)= - _LT_TAGVAR(always_export_symbols, $1)=no - _LT_TAGVAR(archive_cmds, $1)= - _LT_TAGVAR(archive_expsym_cmds, $1)= - _LT_TAGVAR(compiler_needs_object, $1)=no - _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no - _LT_TAGVAR(export_dynamic_flag_spec, $1)= - _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' - _LT_TAGVAR(hardcode_automatic, $1)=no - _LT_TAGVAR(hardcode_direct, $1)=no - _LT_TAGVAR(hardcode_direct_absolute, $1)=no - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= - _LT_TAGVAR(hardcode_libdir_separator, $1)= - _LT_TAGVAR(hardcode_minus_L, $1)=no - _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported - _LT_TAGVAR(inherit_rpath, $1)=no - _LT_TAGVAR(link_all_deplibs, $1)=unknown - _LT_TAGVAR(module_cmds, $1)= - _LT_TAGVAR(module_expsym_cmds, $1)= - _LT_TAGVAR(old_archive_from_new_cmds, $1)= - _LT_TAGVAR(old_archive_from_expsyms_cmds, $1)= - _LT_TAGVAR(thread_safe_flag_spec, $1)= - _LT_TAGVAR(whole_archive_flag_spec, $1)= - # include_expsyms should be a list of space-separated symbols to be *always* - # included in the symbol list - _LT_TAGVAR(include_expsyms, $1)= - # exclude_expsyms can be an extended regexp 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'. - _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] - # 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. - # Exclude shared library initialization/finalization symbols. -dnl Note also adjust exclude_expsyms for C++ above. - extract_expsyms_cmds= - - case $host_os in - cygwin* | mingw* | pw32* | cegcc*) - # 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 - ;; - interix*) - # we just hope/assume this is gcc and not c89 (= MSVC++) - with_gnu_ld=yes - ;; - openbsd*) - with_gnu_ld=no - ;; - linux* | k*bsd*-gnu | gnu*) - _LT_TAGVAR(link_all_deplibs, $1)=no - ;; esac + ;; - _LT_TAGVAR(ld_shlibs, $1)=yes +sysv4*MP*) + if test -d /usr/nec ;then + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' + soname_spec='$libname${shared_ext}.$major' + shlibpath_var=LD_LIBRARY_PATH + fi + ;; - # On some targets, GNU ld is compatible enough with the native linker - # that we're better off using the native interface for both. - lt_use_gnu_ld_interface=no +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + version_type=freebsd-elf + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes if test "$with_gnu_ld" = yes; then + sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' + else + sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' case $host_os in - aix*) - # The AIX port of GNU ld has always aspired to compatibility - # with the native linker. However, as the warning in the GNU ld - # block says, versions before 2.19.5* couldn't really create working - # shared libraries, regardless of the interface used. - case `$LD -v 2>&1` in - *\ \(GNU\ Binutils\)\ 2.19.5*) ;; - *\ \(GNU\ Binutils\)\ 2.[[2-9]]*) ;; - *\ \(GNU\ Binutils\)\ [[3-9]]*) ;; - *) - lt_use_gnu_ld_interface=yes - ;; - esac - ;; - *) - lt_use_gnu_ld_interface=yes + sco3.2v5*) + sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" ;; esac fi + sys_lib_dlsearch_path_spec='/usr/lib' + ;; - if test "$lt_use_gnu_ld_interface" = yes; then - # If archive_cmds runs LD, not CC, wlarc should be empty - wlarc='${wl}' +tpf*) + # TPF is a cross-target only. Preferred cross-host = GNU/Linux. + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; - # Set some defaults for GNU ld with shared library support. These - # are reset later if shared libraries are not supported. Putting them - # here allows them to be overridden if necessary. - runpath_var=LD_RUN_PATH - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' - # ancient GNU ld didn't support --whole-archive et. al. - if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then - _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' - else - _LT_TAGVAR(whole_archive_flag_spec, $1)= - fi - supports_anon_versioning=no - case `$LD -v 2>&1` in - *GNU\ gold*) supports_anon_versioning=yes ;; - *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11 - *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... - *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... - *\ 2.11.*) ;; # other 2.11 versions - *) supports_anon_versioning=yes ;; - esac +uts4*) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + ;; - # See if GNU ld supports shared libraries. - case $host_os in - aix[[3-9]]*) - # On AIX/PPC, the GNU linker is very broken - if test "$host_cpu" != ia64; then - _LT_TAGVAR(ld_shlibs, $1)=no - cat <<_LT_EOF 1>&2 +*) + dynamic_linker=no + ;; +esac +AC_MSG_RESULT([$dynamic_linker]) +test "$dynamic_linker" = no && can_build_shared=no + +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 "${lt_cv_sys_lib_search_path_spec+set}" = set; then + sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" +fi +if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then + sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" +fi + +_LT_DECL([], [variables_saved_for_relink], [1], + [Variables whose values should be saved in libtool wrapper scripts and + restored at link time]) +_LT_DECL([], [need_lib_prefix], [0], + [Do we need the "lib" prefix for modules?]) +_LT_DECL([], [need_version], [0], [Do we need a version for libraries?]) +_LT_DECL([], [version_type], [0], [Library versioning type]) +_LT_DECL([], [runpath_var], [0], [Shared library runtime path variable]) +_LT_DECL([], [shlibpath_var], [0],[Shared library path variable]) +_LT_DECL([], [shlibpath_overrides_runpath], [0], + [Is shlibpath searched before the hard-coded library search path?]) +_LT_DECL([], [libname_spec], [1], [Format of library name prefix]) +_LT_DECL([], [library_names_spec], [1], + [[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]]) +_LT_DECL([], [soname_spec], [1], + [[The coded name of the library, if different from the real name]]) +_LT_DECL([], [install_override_mode], [1], + [Permission mode override for installation of shared libraries]) +_LT_DECL([], [postinstall_cmds], [2], + [Command to use after installation of a shared archive]) +_LT_DECL([], [postuninstall_cmds], [2], + [Command to use after uninstallation of a shared archive]) +_LT_DECL([], [finish_cmds], [2], + [Commands used to finish a libtool library installation in a directory]) +_LT_DECL([], [finish_eval], [1], + [[As "finish_cmds", except a single script fragment to be evaled but + not shown]]) +_LT_DECL([], [hardcode_into_libs], [0], + [Whether we should hardcode library paths into libraries]) +_LT_DECL([], [sys_lib_search_path_spec], [2], + [Compile-time system search path for libraries]) +_LT_DECL([], [sys_lib_dlsearch_path_spec], [2], + [Run-time system search path for libraries]) +])# _LT_SYS_DYNAMIC_LINKER + + +# _LT_PATH_TOOL_PREFIX(TOOL) +# -------------------------- +# find a file program which can recognize shared library +AC_DEFUN([_LT_PATH_TOOL_PREFIX], +[m4_require([_LT_DECL_EGREP])dnl +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_save_MAGIC_CMD="$MAGIC_CMD" + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR +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="m4_if([$2], , $PATH, [$2])" + for ac_dir in $ac_dummy; do + IFS="$lt_save_ifs" + 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 <<_LT_EOF 1>&2 -*** Warning: the GNU linker, at least up to release 2.19, 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 install binutils -*** 2.20 or above, or modify your PATH so that a non-GNU linker is found. -*** You will then need to restart the configuration process. +*** 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 _LT_EOF + fi ;; + esac fi - ;; + break + fi + done + IFS="$lt_save_ifs" + MAGIC_CMD="$lt_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 +_LT_DECL([], [MAGIC_CMD], [0], + [Used to examine libraries when file_magic_cmd begins with "file"])dnl +])# _LT_PATH_TOOL_PREFIX - amigaos*) - case $host_cpu in - powerpc) - # see comment about AmigaOS4 .so support - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='' - ;; - m68k) - _LT_TAGVAR(archive_cmds, $1)='$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)' - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' - _LT_TAGVAR(hardcode_minus_L, $1)=yes - ;; - esac - ;; +# Old name: +AU_ALIAS([AC_PATH_TOOL_PREFIX], [_LT_PATH_TOOL_PREFIX]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_PATH_TOOL_PREFIX], []) - beos*) - if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then - _LT_TAGVAR(allow_undefined_flag, $1)=unsupported - # Joseph Beckenbach says some releases of gcc - # support --undefined. This deserves some investigation. FIXME - _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - else - _LT_TAGVAR(ld_shlibs, $1)=no - fi - ;; - cygwin* | mingw* | pw32* | cegcc*) - # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, - # as there is no search path for DLLs. - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-all-symbols' - _LT_TAGVAR(allow_undefined_flag, $1)=unsupported - _LT_TAGVAR(always_export_symbols, $1)=no - _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes - _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' - _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'] +# _LT_PATH_MAGIC +# -------------- +# find a file program which can recognize a shared library +m4_defun([_LT_PATH_MAGIC], +[_LT_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PATH) +if test -z "$lt_cv_path_MAGIC_CMD"; then + if test -n "$ac_tool_prefix"; then + _LT_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH) + else + MAGIC_CMD=: + fi +fi +])# _LT_PATH_MAGIC - if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' - # If the export-symbols file already is a .def file (1st line - # is EXPORTS), use it as is; otherwise, prepend... - _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then - cp $export_symbols $output_objdir/$soname.def; - else - echo EXPORTS > $output_objdir/$soname.def; - cat $export_symbols >> $output_objdir/$soname.def; - fi~ - $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' - else - _LT_TAGVAR(ld_shlibs, $1)=no - fi - ;; - haiku*) - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - _LT_TAGVAR(link_all_deplibs, $1)=yes - ;; +# LT_PATH_LD +# ---------- +# find the pathname to the GNU or non-GNU linker +AC_DEFUN([LT_PATH_LD], +[AC_REQUIRE([AC_PROG_CC])dnl +AC_REQUIRE([AC_CANONICAL_HOST])dnl +AC_REQUIRE([AC_CANONICAL_BUILD])dnl +m4_require([_LT_DECL_SED])dnl +m4_require([_LT_DECL_EGREP])dnl +m4_require([_LT_PROG_ECHO_BACKSLASH])dnl - interix[[3-9]]*) - _LT_TAGVAR(hardcode_direct, $1)=no - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' - # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. - # Instead, shared libraries are loaded at an image base (0x10000000 by - # default) and relocated if they conflict, which is a slow very memory - # consuming and fragmenting process. To avoid this, we pick a random, - # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link - # time. Moving up from 0x10000000 also allows more sbrk(2) space. - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' - ;; +AC_ARG_WITH([gnu-ld], + [AS_HELP_STRING([--with-gnu-ld], + [assume the C compiler uses GNU ld @<:@default=no@:>@])], + [test "$withval" = no || with_gnu_ld=yes], + [with_gnu_ld=no])dnl - gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) - tmp_diet=no - if test "$host_os" = linux-dietlibc; then - case $cc_basename in - diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) - esac - fi - if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ - && test "$tmp_diet" = no - then - tmp_addflag=' $pic_flag' - tmp_sharedflag='-shared' - case $cc_basename,$host_cpu in - pgcc*) # Portland Group C compiler - _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' - tmp_addflag=' $pic_flag' - ;; - pgf77* | pgf90* | pgf95* | pgfortran*) - # Portland Group f77 and f90 compilers - _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' - tmp_addflag=' $pic_flag -Mnomain' ;; - ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 - tmp_addflag=' -i_dynamic' ;; - efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 - tmp_addflag=' -i_dynamic -nofor_main' ;; - ifc* | ifort*) # Intel Fortran compiler - tmp_addflag=' -nofor_main' ;; - lf95*) # Lahey Fortran 8.1 - _LT_TAGVAR(whole_archive_flag_spec, $1)= - tmp_sharedflag='--shared' ;; - xl[[cC]]* | bgxl[[cC]]* | mpixl[[cC]]*) # IBM XL C 8.0 on PPC (deal with xlf below) - tmp_sharedflag='-qmkshrobj' - tmp_addflag= ;; - nvcc*) # Cuda Compiler Driver 2.2 - _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' - _LT_TAGVAR(compiler_needs_object, $1)=yes - ;; - esac - case `$CC -V 2>&1 | sed 5q` in - *Sun\ C*) # Sun C 5.9 - _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' - _LT_TAGVAR(compiler_needs_object, $1)=yes - tmp_sharedflag='-G' ;; - *Sun\ F*) # Sun Fortran 8.3 - tmp_sharedflag='-G' ;; - esac - _LT_TAGVAR(archive_cmds, $1)='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' +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 $CC]) + 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. + [[\\/]]* | ?:[[\\/]]*) + re_direlt='/[[^/]][[^/]]*/\.\./' + # Canonicalize the pathname 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 + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH; do + IFS="$lt_save_ifs" + 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 variants of GNU ld only accept -v. + # Break only if it was the GNU/non-GNU ld that we prefer. + case `"$lt_cv_path_LD" -v 2>&1 /dev/null; then - _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' - wlarc= - else - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - fi - ;; - solaris*) - if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then - _LT_TAGVAR(ld_shlibs, $1)=no - cat <<_LT_EOF 1>&2 +# _LT_PATH_LD_GNU +#- -------------- +m4_defun([_LT_PATH_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 lds only accept -v. +case `$LD -v 2>&1 &1 | $GREP ': supported targets:.* elf' > /dev/null; then - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - else - _LT_TAGVAR(ld_shlibs, $1)=no - fi - ;; +# _LT_CMD_RELOAD +# -------------- +# find reload flag for linker +# -- PORTME Some linkers may need a different reload flag. +m4_defun([_LT_CMD_RELOAD], +[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 +case $reload_flag in +"" | " "*) ;; +*) reload_flag=" $reload_flag" ;; +esac +reload_cmds='$LD$reload_flag -o $output$reload_objs' +case $host_os in + cygwin* | mingw* | pw32* | cegcc*) + if test "$GCC" != yes; then + reload_cmds=false + fi + ;; + darwin*) + if test "$GCC" = yes; then + reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs' + else + reload_cmds='$LD$reload_flag -o $output$reload_objs' + fi + ;; +esac +_LT_TAGDECL([], [reload_flag], [1], [How to create reloadable object files])dnl +_LT_TAGDECL([], [reload_cmds], [2])dnl +])# _LT_CMD_RELOAD - sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) - case `$LD -v 2>&1` in - *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.1[[0-5]].*) - _LT_TAGVAR(ld_shlibs, $1)=no - cat <<_LT_EOF 1>&2 -*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not -*** reliably create shared libraries on SCO systems. Therefore, libtool -*** is disabling shared libraries support. We urge you to upgrade GNU -*** binutils to release 2.16.91.0.3 or newer. Another option is to modify -*** your PATH or compiler configuration so that the native linker is -*** used, and then restart. +# _LT_CHECK_MAGIC_METHOD +# ---------------------- +# how to check for library dependencies +# -- PORTME fill in with the dynamic library characteristics +m4_defun([_LT_CHECK_MAGIC_METHOD], +[m4_require([_LT_DECL_EGREP]) +m4_require([_LT_DECL_OBJDUMP]) +AC_CACHE_CHECK([how to recognize 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 extended 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. -_LT_EOF - ;; - *) - # For security reasons, it is highly recommended that you always - # use absolute paths for naming shared libraries, and exclude the - # DT_RUNPATH tag from executables and libraries. But doing so - # requires that you compile everything twice, which is a pain. - if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - else - _LT_TAGVAR(ld_shlibs, $1)=no - fi - ;; - esac - ;; +case $host_os in +aix[[4-9]]*) + lt_cv_deplibs_check_method=pass_all + ;; - sunos4*) - _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' - wlarc= - _LT_TAGVAR(hardcode_direct, $1)=yes - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - ;; +beos*) + lt_cv_deplibs_check_method=pass_all + ;; - *) - if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - else - _LT_TAGVAR(ld_shlibs, $1)=no - fi - ;; - esac +bsdi[[45]]*) + 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 + ;; - if test "$_LT_TAGVAR(ld_shlibs, $1)" = no; then - runpath_var= - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= - _LT_TAGVAR(export_dynamic_flag_spec, $1)= - _LT_TAGVAR(whole_archive_flag_spec, $1)= - fi +cygwin*) + # func_win32_libid is a shell function defined in ltmain.sh + lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' + lt_cv_file_magic_cmd='func_win32_libid' + ;; + +mingw* | pw32*) + # Base MSYS/MinGW do not provide the 'file' command needed by + # func_win32_libid shell function, so use a weaker test based on 'objdump', + # unless we find 'file', for example because we are cross-compiling. + # func_win32_libid assumes BSD nm, so disallow it if using MS dumpbin. + if ( test "$lt_cv_nm_interface" = "BSD nm" && file / ) >/dev/null 2>&1; then + lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' + lt_cv_file_magic_cmd='func_win32_libid' else - # PORTME fill in a description of your system's linker (not GNU ld) - case $host_os in - aix3*) - _LT_TAGVAR(allow_undefined_flag, $1)=unsupported - _LT_TAGVAR(always_export_symbols, $1)=yes - _LT_TAGVAR(archive_expsym_cmds, $1)='$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. - _LT_TAGVAR(hardcode_minus_L, $1)=yes - if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then - # Neither direct hardcoding nor static linking is supported with a - # broken collect2. - _LT_TAGVAR(hardcode_direct, $1)=unsupported - fi - ;; + # Keep this pattern in sync with the one in func_win32_libid. + lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' + lt_cv_file_magic_cmd='$OBJDUMP -f' + fi + ;; - aix[[4-9]]*) - 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 - # If we're using GNU nm, then we don't want the "-C" option. - # -C means demangle to AIX nm, but means don't demangle with GNU nm - # Also, AIX nm treats weak defined symbols like other global - # defined symbols, whereas GNU nm marks them as "W". - if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then - _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' - else - _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' - fi - aix_use_runtimelinking=no +cegcc*) + # use the weaker test based on 'objdump'. See mingw*. + lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' + lt_cv_file_magic_cmd='$OBJDUMP -f' + ;; + +darwin* | rhapsody*) + lt_cv_deplibs_check_method=pass_all + ;; + +freebsd* | dragonfly*) + 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|DragonFly)/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 + ;; - # 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]].*|aix[[5-9]]*) - 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 +haiku*) + lt_cv_deplibs_check_method=pass_all + ;; - exp_sym_flag='-bexport' - no_entry_flag='-bnoentry' - fi +hpux10.20* | hpux11*) + lt_cv_file_magic_cmd=/usr/bin/file + case $host_cpu in + ia64*) + lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64' + lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so + ;; + hppa*64*) + [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]'] + lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl + ;; + *) + 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_test_file=/usr/lib/libc.sl + ;; + esac + ;; - # 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. +interix[[3-9]]*) + # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|\.a)$' + ;; - _LT_TAGVAR(archive_cmds, $1)='' - _LT_TAGVAR(hardcode_direct, $1)=yes - _LT_TAGVAR(hardcode_direct_absolute, $1)=yes - _LT_TAGVAR(hardcode_libdir_separator, $1)=':' - _LT_TAGVAR(link_all_deplibs, $1)=yes - _LT_TAGVAR(file_list_spec, $1)='${wl}-f,' +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 + ;; - if test "$GCC" = yes; then - case $host_os in aix4.[[012]]|aix4.[[012]].*) - # We only want to do this on AIX 4.2 and lower, the check - # below for broken collect2 doesn't work under 4.3+ - collect2name=`${CC} -print-prog-name=collect2` - if test -f "$collect2name" && - strings "$collect2name" | $GREP resolve_lib_name >/dev/null - then - # We have reworked collect2 - : - else - # We have old collect2 - _LT_TAGVAR(hardcode_direct, $1)=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 - _LT_TAGVAR(hardcode_minus_L, $1)=yes - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' - _LT_TAGVAR(hardcode_libdir_separator, $1)= - fi - ;; - esac - shared_flag='-shared' - if test "$aix_use_runtimelinking" = yes; then - shared_flag="$shared_flag "'${wl}-G' - fi - _LT_TAGVAR(link_all_deplibs, $1)=no - else - # not using gcc - if test "$host_cpu" = ia64; then - # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release - # chokes on -Wl,-G. The following line is correct: - shared_flag='-G' - else - if test "$aix_use_runtimelinking" = yes; then - shared_flag='${wl}-G' - else - shared_flag='${wl}-bM:SRE' - fi - fi - fi +# This must be glibc/ELF. +linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) + lt_cv_deplibs_check_method=pass_all + ;; - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall' - # It seems that -bexpall does not export symbols beginning with - # underscore (_), so it is better to generate a list of symbols to export. - _LT_TAGVAR(always_export_symbols, $1)=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. - _LT_TAGVAR(allow_undefined_flag, $1)='-berok' - # Determine the default libpath from the value encoded in an - # empty executable. - _LT_SYS_MODULE_PATH_AIX([$1]) - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" - else - if test "$host_cpu" = ia64; then - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' - _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs" - _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" - else - # Determine the default libpath from the value encoded in an - # empty executable. - _LT_SYS_MODULE_PATH_AIX([$1]) - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" - # Warning - without using the other run time loading flags, - # -berok will link without error, but may produce a broken library. - _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' - _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' - if test "$with_gnu_ld" = yes; then - # We only use this code for GNU lds that support --whole-archive. - _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' - else - # Exported symbols can be pulled into shared objects from archives - _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' - fi - _LT_TAGVAR(archive_cmds_need_lc, $1)=yes - # This is similar to how AIX traditionally builds its shared libraries. - _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' - fi - fi - ;; +netbsd* | netbsdelf*-gnu) + if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' + else + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|_pic\.a)$' + fi + ;; - amigaos*) - case $host_cpu in - powerpc) - # see comment about AmigaOS4 .so support - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='' - ;; - m68k) - _LT_TAGVAR(archive_cmds, $1)='$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)' - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' - _LT_TAGVAR(hardcode_minus_L, $1)=yes - ;; - esac - ;; +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 + ;; - bsdi[[45]]*) - _LT_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic - ;; +*nto* | *qnx*) + lt_cv_deplibs_check_method=pass_all + ;; - cygwin* | mingw* | pw32* | cegcc*) - # 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. - case $cc_basename in - cl*) - # Native MSVC - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' - _LT_TAGVAR(allow_undefined_flag, $1)=unsupported - _LT_TAGVAR(always_export_symbols, $1)=yes - _LT_TAGVAR(file_list_spec, $1)='@' - # Tell ltmain to make .lib files, not .a files. - libext=lib - # Tell ltmain to make .dll files, not .so files. - shrext_cmds=".dll" - # FIXME: Setting linknames here is a bad hack. - _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' - _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then - sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; - else - sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; - fi~ - $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ - linknames=' - # The linker will not automatically build a static lib if we build a DLL. - # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' - _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes - _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' - _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1,DATA/'\'' | $SED -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols' - # Don't use ranlib - _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib' - _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~ - lt_tool_outputfile="@TOOL_OUTPUT@"~ - case $lt_outputfile in - *.exe|*.EXE) ;; - *) - lt_outputfile="$lt_outputfile.exe" - lt_tool_outputfile="$lt_tool_outputfile.exe" - ;; - esac~ - if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then - $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; - $RM "$lt_outputfile.manifest"; - fi' - ;; - *) - # Assume MSVC wrapper - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' - _LT_TAGVAR(allow_undefined_flag, $1)=unsupported - # Tell ltmain to make .lib files, not .a files. - libext=lib - # Tell ltmain to make .dll files, not .so files. - shrext_cmds=".dll" - # FIXME: Setting linknames here is a bad hack. - _LT_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' - # The linker will automatically build a .lib file if we build a DLL. - _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' - # FIXME: Should let the user specify the lib program. - _LT_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs' - _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes - ;; - esac - ;; +openbsd*) + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|\.so|_pic\.a)$' + else + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' + fi + ;; - darwin* | rhapsody*) - _LT_DARWIN_LINKER_FEATURES($1) - ;; +osf3* | osf4* | osf5*) + lt_cv_deplibs_check_method=pass_all + ;; - dgux*) - _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - ;; +rdos*) + lt_cv_deplibs_check_method=pass_all + ;; - # 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*) - _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' - _LT_TAGVAR(hardcode_direct, $1)=yes - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - ;; +solaris*) + lt_cv_deplibs_check_method=pass_all + ;; - # Unfortunately, older versions of FreeBSD 2 do not have this feature. - freebsd2.*) - _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' - _LT_TAGVAR(hardcode_direct, $1)=yes - _LT_TAGVAR(hardcode_minus_L, $1)=yes - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - ;; +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + lt_cv_deplibs_check_method=pass_all + ;; - # FreeBSD 3 and greater uses gcc -shared to do shared libraries. - freebsd* | dragonfly*) - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' - _LT_TAGVAR(hardcode_direct, $1)=yes - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - ;; +sysv4 | sysv4.3*) + 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 + ;; + pc) + lt_cv_deplibs_check_method=pass_all + ;; + esac + ;; - hpux9*) - if test "$GCC" = yes; then - _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' - else - _LT_TAGVAR(archive_cmds, $1)='$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' - fi - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' - _LT_TAGVAR(hardcode_libdir_separator, $1)=: - _LT_TAGVAR(hardcode_direct, $1)=yes +tpf*) + lt_cv_deplibs_check_method=pass_all + ;; +esac +]) - # hardcode_minus_L: Not really in the search PATH, - # but as the default location of the library. - _LT_TAGVAR(hardcode_minus_L, $1)=yes - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' - ;; +file_magic_glob= +want_nocaseglob=no +if test "$build" = "$host"; then + case $host_os in + mingw* | pw32*) + if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then + want_nocaseglob=yes + else + file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[[\1]]\/[[\1]]\/g;/g"` + fi + ;; + esac +fi - hpux10*) - if test "$GCC" = yes && test "$with_gnu_ld" = no; then - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' - else - _LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' - fi - if test "$with_gnu_ld" = no; then - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' - _LT_TAGVAR(hardcode_libdir_separator, $1)=: - _LT_TAGVAR(hardcode_direct, $1)=yes - _LT_TAGVAR(hardcode_direct_absolute, $1)=yes - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' - # hardcode_minus_L: Not really in the search PATH, - # but as the default location of the library. - _LT_TAGVAR(hardcode_minus_L, $1)=yes - fi - ;; +file_magic_cmd=$lt_cv_file_magic_cmd +deplibs_check_method=$lt_cv_deplibs_check_method +test -z "$deplibs_check_method" && deplibs_check_method=unknown - hpux11*) - if test "$GCC" = yes && test "$with_gnu_ld" = no; then - case $host_cpu in - hppa*64*) - _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - ;; - ia64*) - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' - ;; - *) - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' - ;; - esac - else - case $host_cpu in - hppa*64*) - _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - ;; - ia64*) - _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' - ;; - *) - m4_if($1, [], [ - # Older versions of the 11.00 compiler do not understand -b yet - # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does) - _LT_LINKER_OPTION([if $CC understands -b], - _LT_TAGVAR(lt_cv_prog_compiler__b, $1), [-b], - [_LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'], - [_LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'])], - [_LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags']) - ;; - esac - fi - if test "$with_gnu_ld" = no; then - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' - _LT_TAGVAR(hardcode_libdir_separator, $1)=: +_LT_DECL([], [deplibs_check_method], [1], + [Method to check whether dependent libraries are shared objects]) +_LT_DECL([], [file_magic_cmd], [1], + [Command to use when deplibs_check_method = "file_magic"]) +_LT_DECL([], [file_magic_glob], [1], + [How to find potential files when deplibs_check_method = "file_magic"]) +_LT_DECL([], [want_nocaseglob], [1], + [Find potential files using nocaseglob when deplibs_check_method = "file_magic"]) +])# _LT_CHECK_MAGIC_METHOD - case $host_cpu in - hppa*64*|ia64*) - _LT_TAGVAR(hardcode_direct, $1)=no - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - ;; - *) - _LT_TAGVAR(hardcode_direct, $1)=yes - _LT_TAGVAR(hardcode_direct_absolute, $1)=yes - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' - # hardcode_minus_L: Not really in the search PATH, - # but as the default location of the library. - _LT_TAGVAR(hardcode_minus_L, $1)=yes +# LT_PATH_NM +# ---------- +# find the pathname to a BSD- or MS-compatible name lister +AC_DEFUN([LT_PATH_NM], +[AC_REQUIRE([AC_PROG_CC])dnl +AC_CACHE_CHECK([for BSD- or MS-compatible name lister (nm)], lt_cv_path_NM, +[if test -n "$NM"; then + # Let the user override the test. + lt_cv_path_NM="$NM" +else + lt_nm_to_check="${ac_tool_prefix}nm" + if test -n "$ac_tool_prefix" && test "$build" = "$host"; then + lt_nm_to_check="$lt_nm_to_check nm" + fi + for lt_tmp_nm in $lt_nm_to_check; do + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + tmp_nm="$ac_dir/$lt_tmp_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 + case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in + */dev/null* | *'Invalid file or object type'*) + lt_cv_path_NM="$tmp_nm -B" + break ;; - esac - fi - ;; - - irix5* | irix6* | nonstopux*) - if test "$GCC" = yes; then - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - # Try to use the -exported_symbol ld option, if it does not - # work, assume that -exports_file does not work either and - # implicitly export all symbols. - # This should be the same for all languages, so no per-tag cache variable. - AC_CACHE_CHECK([whether the $host_os linker accepts -exported_symbol], - [lt_cv_irix_exported_symbol], - [save_LDFLAGS="$LDFLAGS" - LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" - AC_LINK_IFELSE( - [AC_LANG_SOURCE( - [AC_LANG_CASE([C], [[int foo (void) { return 0; }]], - [C++], [[int foo (void) { return 0; }]], - [Fortran 77], [[ - subroutine foo - end]], - [Fortran], [[ - subroutine foo - end]])])], - [lt_cv_irix_exported_symbol=yes], - [lt_cv_irix_exported_symbol=no]) - LDFLAGS="$save_LDFLAGS"]) - if test "$lt_cv_irix_exported_symbol" = yes; then - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' - fi - else - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' + *) + case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in + */dev/null*) + lt_cv_path_NM="$tmp_nm -p" + break + ;; + *) + 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 + ;; + esac + ;; + esac fi - _LT_TAGVAR(archive_cmds_need_lc, $1)='no' - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' - _LT_TAGVAR(hardcode_libdir_separator, $1)=: - _LT_TAGVAR(inherit_rpath, $1)=yes - _LT_TAGVAR(link_all_deplibs, $1)=yes + done + IFS="$lt_save_ifs" + done + : ${lt_cv_path_NM=no} +fi]) +if test "$lt_cv_path_NM" != "no"; then + NM="$lt_cv_path_NM" +else + # Didn't find any BSD compatible name lister, look for dumpbin. + if test -n "$DUMPBIN"; then : + # Let the user override the test. + else + AC_CHECK_TOOLS(DUMPBIN, [dumpbin "link -dump"], :) + case `$DUMPBIN -symbols /dev/null 2>&1 | sed '1q'` in + *COFF*) + DUMPBIN="$DUMPBIN -symbols" ;; - - netbsd* | netbsdelf*-gnu) - if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then - _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out - else - _LT_TAGVAR(archive_cmds, $1)='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF - fi - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' - _LT_TAGVAR(hardcode_direct, $1)=yes - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + *) + DUMPBIN=: ;; + esac + fi + AC_SUBST([DUMPBIN]) + if test "$DUMPBIN" != ":"; then + NM="$DUMPBIN" + fi +fi +test -z "$NM" && NM=nm +AC_SUBST([NM]) +_LT_DECL([], [NM], [1], [A BSD- or MS-compatible name lister])dnl - newsos6) - _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - _LT_TAGVAR(hardcode_direct, $1)=yes - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' - _LT_TAGVAR(hardcode_libdir_separator, $1)=: - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - ;; +AC_CACHE_CHECK([the name lister ($NM) interface], [lt_cv_nm_interface], + [lt_cv_nm_interface="BSD nm" + echo "int some_variable = 0;" > conftest.$ac_ext + (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&AS_MESSAGE_LOG_FD) + (eval "$ac_compile" 2>conftest.err) + cat conftest.err >&AS_MESSAGE_LOG_FD + (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&AS_MESSAGE_LOG_FD) + (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) + cat conftest.err >&AS_MESSAGE_LOG_FD + (eval echo "\"\$as_me:$LINENO: output\"" >&AS_MESSAGE_LOG_FD) + cat conftest.out >&AS_MESSAGE_LOG_FD + if $GREP 'External.*some_variable' conftest.out > /dev/null; then + lt_cv_nm_interface="MS dumpbin" + fi + rm -f conftest*]) +])# LT_PATH_NM - *nto* | *qnx*) - ;; +# Old names: +AU_ALIAS([AM_PROG_NM], [LT_PATH_NM]) +AU_ALIAS([AC_PROG_NM], [LT_PATH_NM]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AM_PROG_NM], []) +dnl AC_DEFUN([AC_PROG_NM], []) - openbsd*) - if test -f /usr/libexec/ld.so; then - _LT_TAGVAR(hardcode_direct, $1)=yes - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - _LT_TAGVAR(hardcode_direct_absolute, $1)=yes - if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' - else - case $host_os in - openbsd[[01]].* | openbsd2.[[0-7]] | openbsd2.[[0-7]].*) - _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' - ;; - *) - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' - ;; - esac - fi - else - _LT_TAGVAR(ld_shlibs, $1)=no - fi - ;; +# _LT_CHECK_SHAREDLIB_FROM_LINKLIB +# -------------------------------- +# how to determine the name of the shared library +# associated with a specific link library. +# -- PORTME fill in with the dynamic library characteristics +m4_defun([_LT_CHECK_SHAREDLIB_FROM_LINKLIB], +[m4_require([_LT_DECL_EGREP]) +m4_require([_LT_DECL_OBJDUMP]) +m4_require([_LT_DECL_DLLTOOL]) +AC_CACHE_CHECK([how to associate runtime and link libraries], +lt_cv_sharedlib_from_linklib_cmd, +[lt_cv_sharedlib_from_linklib_cmd='unknown' - os2*) - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' - _LT_TAGVAR(hardcode_minus_L, $1)=yes - _LT_TAGVAR(allow_undefined_flag, $1)=unsupported - _LT_TAGVAR(archive_cmds, $1)='$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' - _LT_TAGVAR(old_archive_from_new_cmds, $1)='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' - ;; +case $host_os in +cygwin* | mingw* | pw32* | cegcc*) + # two different shell functions defined in ltmain.sh + # decide which to use based on capabilities of $DLLTOOL + case `$DLLTOOL --help 2>&1` in + *--identify-strict*) + lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib + ;; + *) + lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback + ;; + esac + ;; +*) + # fallback: assume linklib IS sharedlib + lt_cv_sharedlib_from_linklib_cmd="$ECHO" + ;; +esac +]) +sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd +test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO - osf3*) - if test "$GCC" = yes; then - _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' - _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - else - _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' - _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' - fi - _LT_TAGVAR(archive_cmds_need_lc, $1)='no' - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' - _LT_TAGVAR(hardcode_libdir_separator, $1)=: - ;; +_LT_DECL([], [sharedlib_from_linklib_cmd], [1], + [Command to associate shared and link libraries]) +])# _LT_CHECK_SHAREDLIB_FROM_LINKLIB - osf4* | osf5*) # as osf3* with the addition of -msym flag - if test "$GCC" = yes; then - _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' - _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' - else - _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' - _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ - $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp' - # Both c and cxx compiler support -rpath directly - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' - fi - _LT_TAGVAR(archive_cmds_need_lc, $1)='no' - _LT_TAGVAR(hardcode_libdir_separator, $1)=: - ;; +# _LT_PATH_MANIFEST_TOOL +# ---------------------- +# locate the manifest tool +m4_defun([_LT_PATH_MANIFEST_TOOL], +[AC_CHECK_TOOL(MANIFEST_TOOL, mt, :) +test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt +AC_CACHE_CHECK([if $MANIFEST_TOOL is a manifest tool], [lt_cv_path_mainfest_tool], + [lt_cv_path_mainfest_tool=no + echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&AS_MESSAGE_LOG_FD + $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out + cat conftest.err >&AS_MESSAGE_LOG_FD + if $GREP 'Manifest Tool' conftest.out > /dev/null; then + lt_cv_path_mainfest_tool=yes + fi + rm -f conftest*]) +if test "x$lt_cv_path_mainfest_tool" != xyes; then + MANIFEST_TOOL=: +fi +_LT_DECL([], [MANIFEST_TOOL], [1], [Manifest tool])dnl +])# _LT_PATH_MANIFEST_TOOL - solaris*) - _LT_TAGVAR(no_undefined_flag, $1)=' -z defs' - if test "$GCC" = yes; then - wlarc='${wl}' - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ - $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' - else - case `$CC -V 2>&1` in - *"Compilers 5.0"*) - wlarc='' - _LT_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' - _LT_TAGVAR(archive_expsym_cmds, $1)='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' - ;; - *) - wlarc='${wl}' - _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags' - _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ - $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' - ;; - esac - fi - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - case $host_os in - solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; - *) - # The compiler driver will combine and reorder linker options, - # but understands `-z linker_flag'. GCC discards it without `$wl', - # but is careful enough not to reorder. - # Supported since Solaris 2.6 (maybe 2.5.1?) - if test "$GCC" = yes; then - _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' - else - _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' - fi - ;; - esac - _LT_TAGVAR(link_all_deplibs, $1)=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. - _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' - else - _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' - fi - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' - _LT_TAGVAR(hardcode_direct, $1)=yes - _LT_TAGVAR(hardcode_minus_L, $1)=yes - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - ;; +# LT_LIB_M +# -------- +# check for math library +AC_DEFUN([LT_LIB_M], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +LIBM= +case $host in +*-*-beos* | *-*-cegcc* | *-*-cygwin* | *-*-haiku* | *-*-pw32* | *-*-darwin*) + # These system don't have libm, or don't need it + ;; +*-ncr-sysv4.3*) + AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw") + AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm") + ;; +*) + AC_CHECK_LIB(m, cos, LIBM="-lm") + ;; +esac +AC_SUBST([LIBM]) +])# LT_LIB_M + +# Old name: +AU_ALIAS([AC_CHECK_LIBM], [LT_LIB_M]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_CHECK_LIBM], []) + - sysv4) - case $host_vendor in - sni) - _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - _LT_TAGVAR(hardcode_direct, $1)=yes # is this really true??? - ;; - siemens) - ## LD is ld it makes a PLAMLIB - ## CC just makes a GrossModule. - _LT_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags' - _LT_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs' - _LT_TAGVAR(hardcode_direct, $1)=no - ;; - motorola) - _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - _LT_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie - ;; - esac - runpath_var='LD_RUN_PATH' - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - ;; +# _LT_COMPILER_NO_RTTI([TAGNAME]) +# ------------------------------- +m4_defun([_LT_COMPILER_NO_RTTI], +[m4_require([_LT_TAG_COMPILER])dnl - sysv4.3*) - _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - _LT_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport' - ;; +_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= - sysv4*MP*) - if test -d /usr/nec; then - _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - runpath_var=LD_RUN_PATH - hardcode_runpath_var=yes - _LT_TAGVAR(ld_shlibs, $1)=yes - fi - ;; +if test "$GCC" = yes; then + case $cc_basename in + nvcc*) + _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -Xcompiler -fno-builtin' ;; + *) + _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' ;; + esac - sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) - _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' - _LT_TAGVAR(archive_cmds_need_lc, $1)=no - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - runpath_var='LD_RUN_PATH' + _LT_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions], + lt_cv_prog_compiler_rtti_exceptions, + [-fno-rtti -fno-exceptions], [], + [_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"]) +fi +_LT_TAGDECL([no_builtin_flag], [lt_prog_compiler_no_builtin_flag], [1], + [Compiler flag to turn off builtin functions]) +])# _LT_COMPILER_NO_RTTI - if test "$GCC" = yes; then - _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - else - _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - fi - ;; - sysv5* | sco3.2v5* | sco5v6*) - # Note: We can NOT use -z defs as we might desire, because we do not - # link with -lc, and that would cause any symbols used from libc to - # always be unresolved, which means just about no library would - # ever link correctly. If we're not using GNU ld we use -z text - # though, which does catch some bad symbols but isn't as heavy-handed - # as -z defs. - _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' - _LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs' - _LT_TAGVAR(archive_cmds_need_lc, $1)=no - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir' - _LT_TAGVAR(hardcode_libdir_separator, $1)=':' - _LT_TAGVAR(link_all_deplibs, $1)=yes - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' - runpath_var='LD_RUN_PATH' +# _LT_CMD_GLOBAL_SYMBOLS +# ---------------------- +m4_defun([_LT_CMD_GLOBAL_SYMBOLS], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +AC_REQUIRE([AC_PROG_CC])dnl +AC_REQUIRE([AC_PROG_AWK])dnl +AC_REQUIRE([LT_PATH_NM])dnl +AC_REQUIRE([LT_PATH_LD])dnl +m4_require([_LT_DECL_SED])dnl +m4_require([_LT_DECL_EGREP])dnl +m4_require([_LT_TAG_COMPILER])dnl - if test "$GCC" = yes; then - _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - else - _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - fi - ;; +# Check for command to grab the raw symbol name followed by C symbol from nm. +AC_MSG_CHECKING([command to parse $NM output from $compiler object]) +AC_CACHE_VAL([lt_cv_sys_global_symbol_pipe], +[ +# These are sane defaults that work on at least a few old systems. +# [They come from Ultrix. What could be older than Ultrix?!! ;)] - uts4*) - _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - ;; +# Character class describing NM global symbol codes. +symcode='[[BCDEGRST]]' - *) - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - esac +# Regexp to match symbols that can be accessed directly from C. +sympat='\([[_A-Za-z]][[_A-Za-z0-9]]*\)' - if test x$host_vendor = xsni; then - case $host in - sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Blargedynsym' - ;; - esac - fi +# Define system-specific variables. +case $host_os in +aix*) + symcode='[[BCDT]]' + ;; +cygwin* | mingw* | pw32* | cegcc*) + symcode='[[ABCDGISTW]]' + ;; +hpux*) + if test "$host_cpu" = ia64; then + symcode='[[ABCDEGRST]]' fi -]) -AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)]) -test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no - -_LT_TAGVAR(with_gnu_ld, $1)=$with_gnu_ld + ;; +irix* | nonstopux*) + symcode='[[BCDEGRST]]' + ;; +osf*) + symcode='[[BCDEGQRST]]' + ;; +solaris*) + symcode='[[BDRT]]' + ;; +sco3.2v5*) + symcode='[[DT]]' + ;; +sysv4.2uw2*) + symcode='[[DT]]' + ;; +sysv5* | sco5v6* | unixware* | OpenUNIX*) + symcode='[[ABDT]]' + ;; +sysv4) + symcode='[[DFNSTU]]' + ;; +esac -_LT_DECL([], [libext], [0], [Old archive suffix (normally "a")])dnl -_LT_DECL([], [shrext_cmds], [1], [Shared library suffix (normally ".so")])dnl -_LT_DECL([], [extract_expsyms_cmds], [2], - [The commands to extract the exported symbol list from a shared archive]) +# If we're using GNU nm, then use its standard symbol codes. +case `$NM -V 2>&1` in +*GNU* | *'with BFD'*) + symcode='[[ABCDGIRSTW]]' ;; +esac -# -# Do we need to explicitly link libc? -# -case "x$_LT_TAGVAR(archive_cmds_need_lc, $1)" in -x|xyes) - # Assume -lc should be added - _LT_TAGVAR(archive_cmds_need_lc, $1)=yes +# Transform an extracted symbol line into a proper C declaration. +# Some systems (esp. on ia64) link data and code symbols differently, +# so use this general approach. +lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" - if test "$enable_shared" = yes && test "$GCC" = yes; then - case $_LT_TAGVAR(archive_cmds, $1) 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_CACHE_CHECK([whether -lc should be explicitly linked in], - [lt_cv_]_LT_TAGVAR(archive_cmds_need_lc, $1), - [$RM conftest* - echo "$lt_simple_compile_test_code" > conftest.$ac_ext +# Transform an extracted symbol line into symbol name and symbol address +lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\)[[ ]]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p'" +lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([[^ ]]*\)[[ ]]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \(lib[[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"lib\2\", (void *) \&\2},/p'" - if AC_TRY_EVAL(ac_compile) 2>conftest.err; then - soname=conftest - lib=conftest - libobjs=conftest.$ac_objext - deplibs= - wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) - pic_flag=$_LT_TAGVAR(lt_prog_compiler_pic, $1) - compiler_flags=-v - linker_flags=-v - verstring= - output_objdir=. - libname=conftest - lt_save_allow_undefined_flag=$_LT_TAGVAR(allow_undefined_flag, $1) - _LT_TAGVAR(allow_undefined_flag, $1)= - if AC_TRY_EVAL(_LT_TAGVAR(archive_cmds, $1) 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) - then - lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=no - else - lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=yes - fi - _LT_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag - else - cat conftest.err 1>&5 - fi - $RM conftest* - ]) - _LT_TAGVAR(archive_cmds_need_lc, $1)=$lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1) - ;; - esac - fi +# Handle CRLF in mingw tool chain +opt_cr= +case $build_os in +mingw*) + opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp ;; esac -_LT_TAGDECL([build_libtool_need_lc], [archive_cmds_need_lc], [0], - [Whether or not to add -lc for building shared libraries]) -_LT_TAGDECL([allow_libtool_libs_with_static_runtimes], - [enable_shared_with_static_runtimes], [0], - [Whether or not to disallow shared libs when runtime libs are static]) -_LT_TAGDECL([], [export_dynamic_flag_spec], [1], - [Compiler flag to allow reflexive dlopens]) -_LT_TAGDECL([], [whole_archive_flag_spec], [1], - [Compiler flag to generate shared objects directly from archives]) -_LT_TAGDECL([], [compiler_needs_object], [1], - [Whether the compiler copes with passing no objects directly]) -_LT_TAGDECL([], [old_archive_from_new_cmds], [2], - [Create an old-style archive from a shared archive]) -_LT_TAGDECL([], [old_archive_from_expsyms_cmds], [2], - [Create a temporary old-style archive to link instead of a shared archive]) -_LT_TAGDECL([], [archive_cmds], [2], [Commands used to build a shared archive]) -_LT_TAGDECL([], [archive_expsym_cmds], [2]) -_LT_TAGDECL([], [module_cmds], [2], - [Commands used to build a loadable module if different from building - a shared archive.]) -_LT_TAGDECL([], [module_expsym_cmds], [2]) -_LT_TAGDECL([], [with_gnu_ld], [1], - [Whether we are building with GNU ld or not]) -_LT_TAGDECL([], [allow_undefined_flag], [1], - [Flag that allows shared libraries with undefined symbols to be built]) -_LT_TAGDECL([], [no_undefined_flag], [1], - [Flag that enforces no undefined symbols]) -_LT_TAGDECL([], [hardcode_libdir_flag_spec], [1], - [Flag to hardcode $libdir into a binary during linking. - This must work even if $libdir does not exist]) -_LT_TAGDECL([], [hardcode_libdir_separator], [1], - [Whether we need a single "-rpath" flag with a separated argument]) -_LT_TAGDECL([], [hardcode_direct], [0], - [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes - DIR into the resulting binary]) -_LT_TAGDECL([], [hardcode_direct_absolute], [0], - [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes - DIR into the resulting binary and the resulting library dependency is - "absolute", i.e impossible to change by setting ${shlibpath_var} if the - library is relocated]) -_LT_TAGDECL([], [hardcode_minus_L], [0], - [Set to "yes" if using the -LDIR flag during linking hardcodes DIR - into the resulting binary]) -_LT_TAGDECL([], [hardcode_shlibpath_var], [0], - [Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR - into the resulting binary]) -_LT_TAGDECL([], [hardcode_automatic], [0], - [Set to "yes" if building a shared library automatically hardcodes DIR - into the library and all subsequent libraries and executables linked - against it]) -_LT_TAGDECL([], [inherit_rpath], [0], - [Set to yes if linker adds runtime paths of dependent libraries - to runtime path list]) -_LT_TAGDECL([], [link_all_deplibs], [0], - [Whether libtool must link a program against all its dependency libraries]) -_LT_TAGDECL([], [always_export_symbols], [0], - [Set to "yes" if exported symbols are required]) -_LT_TAGDECL([], [export_symbols_cmds], [2], - [The commands to list exported symbols]) -_LT_TAGDECL([], [exclude_expsyms], [1], - [Symbols that should not be listed in the preloaded symbols]) -_LT_TAGDECL([], [include_expsyms], [1], - [Symbols that must always be exported]) -_LT_TAGDECL([], [prelink_cmds], [2], - [Commands necessary for linking programs (against libraries) with templates]) -_LT_TAGDECL([], [postlink_cmds], [2], - [Commands necessary for finishing linking programs]) -_LT_TAGDECL([], [file_list_spec], [1], - [Specify filename containing input files]) -dnl FIXME: Not yet implemented -dnl _LT_TAGDECL([], [thread_safe_flag_spec], [1], -dnl [Compiler flag to generate thread safe objects]) -])# _LT_LINKER_SHLIBS - +# Try without a prefix underscore, then with it. +for ac_symprfx in "" "_"; do -# _LT_LANG_C_CONFIG([TAG]) -# ------------------------ -# Ensure that the configuration variables for a C compiler are suitably -# defined. These variables are subsequently used by _LT_CONFIG to write -# the compiler configuration to `libtool'. -m4_defun([_LT_LANG_C_CONFIG], -[m4_require([_LT_DECL_EGREP])dnl -lt_save_CC="$CC" -AC_LANG_PUSH(C) + # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. + symxfrm="\\1 $ac_symprfx\\2 \\2" -# Source file extension for C test sources. -ac_ext=c + # Write the raw and C identifiers. + if test "$lt_cv_nm_interface" = "MS dumpbin"; then + # Fake it for dumpbin and say T for any non-static function + # and D for any global variable. + # Also find C++ and __fastcall symbols from MSVC++, + # which start with @ or ?. + lt_cv_sys_global_symbol_pipe="$AWK ['"\ +" {last_section=section; section=\$ 3};"\ +" /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\ +" /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ +" \$ 0!~/External *\|/{next};"\ +" / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ +" {if(hide[section]) next};"\ +" {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\ +" {split(\$ 0, a, /\||\r/); split(a[2], s)};"\ +" s[1]~/^[@?]/{print s[1], s[1]; next};"\ +" s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\ +" ' prfx=^$ac_symprfx]" + else + lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" + fi + lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'" -# Object file extension for compiled C test sources. -objext=o -_LT_TAGVAR(objext, $1)=$objext + # Check to see that the pipe works correctly. + pipe_works=no -# Code to be used in simple compile tests -lt_simple_compile_test_code="int some_variable = 0;" + rm -f conftest* + cat > conftest.$ac_ext <<_LT_EOF +#ifdef __cplusplus +extern "C" { +#endif +char nm_test_var; +void nm_test_func(void); +void nm_test_func(void){} +#ifdef __cplusplus +} +#endif +int main(){nm_test_var='a';nm_test_func();return(0);} +_LT_EOF -# Code to be used in simple link tests -lt_simple_link_test_code='int main(){return(0);}' + if AC_TRY_EVAL(ac_compile); then + # Now try to grab the symbols. + nlist=conftest.nm + if AC_TRY_EVAL(NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $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 -_LT_TAG_COMPILER -# Save the default compiler, since it gets overwritten when the other -# tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP. -compiler_DEFAULT=$CC + # Make sure that we snagged all the symbols we need. + if $GREP ' nm_test_var$' "$nlist" >/dev/null; then + if $GREP ' nm_test_func$' "$nlist" >/dev/null; then + cat <<_LT_EOF > conftest.$ac_ext +/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ +#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) +/* DATA imports from DLLs on WIN32 con't be const, because runtime + relocations are performed -- see ld's documentation on pseudo-relocs. */ +# define LT@&t@_DLSYM_CONST +#elif defined(__osf__) +/* This system does not cope well with relocations in const data. */ +# define LT@&t@_DLSYM_CONST +#else +# define LT@&t@_DLSYM_CONST const +#endif -# save warnings/boilerplate of simple test code -_LT_COMPILER_BOILERPLATE -_LT_LINKER_BOILERPLATE +#ifdef __cplusplus +extern "C" { +#endif -if test -n "$compiler"; then - _LT_COMPILER_NO_RTTI($1) - _LT_COMPILER_PIC($1) - _LT_COMPILER_C_O($1) - _LT_COMPILER_FILE_LOCKS($1) - _LT_LINKER_SHLIBS($1) - _LT_SYS_DYNAMIC_LINKER($1) - _LT_LINKER_HARDCODE_LIBPATH($1) - LT_SYS_DLOPEN_SELF - _LT_CMD_STRIPLIB +_LT_EOF + # Now generate the symbol file. + eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext' - # Report which library types will actually be built - AC_MSG_CHECKING([if libtool supports shared libraries]) - AC_MSG_RESULT([$can_build_shared]) + cat <<_LT_EOF >> conftest.$ac_ext - AC_MSG_CHECKING([whether to build shared libraries]) - test "$can_build_shared" = "no" && enable_shared=no +/* The mapping between symbol names and symbols. */ +LT@&t@_DLSYM_CONST struct { + const char *name; + void *address; +} +lt__PROGRAM__LTX_preloaded_symbols[[]] = +{ + { "@PROGRAM@", (void *) 0 }, +_LT_EOF + $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext + cat <<\_LT_EOF >> conftest.$ac_ext + {0, (void *) 0} +}; - # 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 - ;; +/* This works around a problem in FreeBSD linker */ +#ifdef FREEBSD_WORKAROUND +static const void *lt_preloaded_setup() { + return lt__PROGRAM__LTX_preloaded_symbols; +} +#endif - aix[[4-9]]*) - if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then - test "$enable_shared" = yes && enable_static=no +#ifdef __cplusplus +} +#endif +_LT_EOF + # Now try linking the two files. + mv conftest.$ac_objext conftstm.$ac_objext + lt_globsym_save_LIBS=$LIBS + lt_globsym_save_CFLAGS=$CFLAGS + LIBS="conftstm.$ac_objext" + CFLAGS="$CFLAGS$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)" + if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext}; then + pipe_works=yes + fi + LIBS=$lt_globsym_save_LIBS + CFLAGS=$lt_globsym_save_CFLAGS + else + echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD + fi + else + echo "cannot find nm_test_var in $nlist" >&AS_MESSAGE_LOG_FD + fi + else + echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD fi - ;; - esac - AC_MSG_RESULT([$enable_shared]) + else + echo "$progname: failed program was:" >&AS_MESSAGE_LOG_FD + cat conftest.$ac_ext >&5 + fi + rm -rf conftest* conftst* - 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]) + # 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 +]) +if test -z "$lt_cv_sys_global_symbol_pipe"; then + lt_cv_sys_global_symbol_to_cdecl= +fi +if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then + AC_MSG_RESULT(failed) +else + AC_MSG_RESULT(ok) +fi - _LT_CONFIG($1) +# Response file support. +if test "$lt_cv_nm_interface" = "MS dumpbin"; then + nm_file_list_spec='@' +elif $NM --help 2>/dev/null | grep '[[@]]FILE' >/dev/null; then + nm_file_list_spec='@' fi -AC_LANG_POP -CC="$lt_save_CC" -])# _LT_LANG_C_CONFIG +_LT_DECL([global_symbol_pipe], [lt_cv_sys_global_symbol_pipe], [1], + [Take the output of nm and produce a listing of raw symbols and C names]) +_LT_DECL([global_symbol_to_cdecl], [lt_cv_sys_global_symbol_to_cdecl], [1], + [Transform the output of nm in a proper C declaration]) +_LT_DECL([global_symbol_to_c_name_address], + [lt_cv_sys_global_symbol_to_c_name_address], [1], + [Transform the output of nm in a C name address pair]) +_LT_DECL([global_symbol_to_c_name_address_lib_prefix], + [lt_cv_sys_global_symbol_to_c_name_address_lib_prefix], [1], + [Transform the output of nm in a C name address pair when lib prefix is needed]) +_LT_DECL([], [nm_file_list_spec], [1], + [Specify filename containing input files for $NM]) +]) # _LT_CMD_GLOBAL_SYMBOLS -# _LT_LANG_CXX_CONFIG([TAG]) -# -------------------------- -# Ensure that the configuration variables for a C++ compiler are suitably -# defined. These variables are subsequently used by _LT_CONFIG to write -# the compiler configuration to `libtool'. -m4_defun([_LT_LANG_CXX_CONFIG], -[m4_require([_LT_FILEUTILS_DEFAULTS])dnl -m4_require([_LT_DECL_EGREP])dnl -m4_require([_LT_PATH_MANIFEST_TOOL])dnl -if test -n "$CXX" && ( test "X$CXX" != "Xno" && - ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || - (test "X$CXX" != "Xg++"))) ; then - AC_PROG_CXXCPP -else - _lt_caught_CXX_error=yes -fi -AC_LANG_PUSH(C++) -_LT_TAGVAR(archive_cmds_need_lc, $1)=no -_LT_TAGVAR(allow_undefined_flag, $1)= -_LT_TAGVAR(always_export_symbols, $1)=no -_LT_TAGVAR(archive_expsym_cmds, $1)= -_LT_TAGVAR(compiler_needs_object, $1)=no -_LT_TAGVAR(export_dynamic_flag_spec, $1)= -_LT_TAGVAR(hardcode_direct, $1)=no -_LT_TAGVAR(hardcode_direct_absolute, $1)=no -_LT_TAGVAR(hardcode_libdir_flag_spec, $1)= -_LT_TAGVAR(hardcode_libdir_separator, $1)= -_LT_TAGVAR(hardcode_minus_L, $1)=no -_LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported -_LT_TAGVAR(hardcode_automatic, $1)=no -_LT_TAGVAR(inherit_rpath, $1)=no -_LT_TAGVAR(module_cmds, $1)= -_LT_TAGVAR(module_expsym_cmds, $1)= -_LT_TAGVAR(link_all_deplibs, $1)=unknown -_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds -_LT_TAGVAR(reload_flag, $1)=$reload_flag -_LT_TAGVAR(reload_cmds, $1)=$reload_cmds -_LT_TAGVAR(no_undefined_flag, $1)= -_LT_TAGVAR(whole_archive_flag_spec, $1)= -_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no +# _LT_COMPILER_PIC([TAGNAME]) +# --------------------------- +m4_defun([_LT_COMPILER_PIC], +[m4_require([_LT_TAG_COMPILER])dnl +_LT_TAGVAR(lt_prog_compiler_wl, $1)= +_LT_TAGVAR(lt_prog_compiler_pic, $1)= +_LT_TAGVAR(lt_prog_compiler_static, $1)= -# Source file extension for C++ test sources. -ac_ext=cpp +m4_if([$1], [CXX], [ + # C++ specific cases for pic, static, wl, etc. + if test "$GXX" = yes; then + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' -# Object file extension for compiled C++ test sources. -objext=o -_LT_TAGVAR(objext, $1)=$objext + case $host_os in + aix*) + # All AIX code is PIC. + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + fi + ;; -# No sense in running all these tests if we already determined that -# the CXX compiler isn't working. Some variables (like enable_shared) -# are currently assumed to apply to all compilers on this platform, -# and will be corrupted by setting them based on a non-working compiler. -if test "$_lt_caught_CXX_error" != yes; then - # Code to be used in simple compile tests - lt_simple_compile_test_code="int some_variable = 0;" + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + m68k) + # 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_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' + ;; + esac + ;; - # Code to be used in simple link tests - lt_simple_link_test_code='int main(int, char *[[]]) { return(0); }' + beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) + # PIC is the default for these OSes. + ;; + mingw* | cygwin* | os2* | pw32* | cegcc*) + # 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). + # Although the cygwin gcc ignores -fPIC, still need this for old-style + # (--disable-auto-import) libraries + m4_if([$1], [GCJ], [], + [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) + ;; + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' + ;; + *djgpp*) + # DJGPP does not support shared libraries at all + _LT_TAGVAR(lt_prog_compiler_pic, $1)= + ;; + haiku*) + # PIC is the default for Haiku. + # The "-static" flag exists, but is broken. + _LT_TAGVAR(lt_prog_compiler_static, $1)= + ;; + interix[[3-9]]*) + # Interix 3.x gcc -fpic/-fPIC options generate broken code. + # Instead, we relocate shared libraries at runtime. + ;; + sysv4*MP*) + if test -d /usr/nec; then + _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic + fi + ;; + hpux*) + # PIC is the default for 64-bit PA HP-UX, but not for 32-bit + # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag + # sets the default TLS model and affects inlining. + case $host_cpu in + hppa*64*) + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + esac + ;; + *qnx* | *nto*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + esac + else + case $host_os in + aix[[4-9]]*) + # All AIX code is PIC. + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + else + _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' + fi + ;; + chorus*) + case $cc_basename in + cxch68*) + # Green Hills C++ Compiler + # _LT_TAGVAR(lt_prog_compiler_static, $1)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a" + ;; + esac + ;; + mingw* | cygwin* | os2* | pw32* | cegcc*) + # 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). + m4_if([$1], [GCJ], [], + [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) + ;; + dgux*) + case $cc_basename in + ec++*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + ;; + ghcx*) + # Green Hills C++ Compiler + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + ;; + *) + ;; + esac + ;; + freebsd* | dragonfly*) + # FreeBSD uses GNU C++ + ;; + hpux9* | hpux10* | hpux11*) + case $cc_basename in + CC*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' + if test "$host_cpu" != ia64; then + _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' + fi + ;; + aCC*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' + case $host_cpu in + hppa*64*|ia64*) + # +Z the default + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' + ;; + esac + ;; + *) + ;; + esac + ;; + interix*) + # This is c89, which is MS Visual C++ (no shared libs) + # Anyone wants to do a port? + ;; + irix5* | irix6* | nonstopux*) + case $cc_basename in + CC*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + # CC pic flag -KPIC is the default. + ;; + *) + ;; + esac + ;; + linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) + case $cc_basename in + KCC*) + # KAI C++ Compiler + _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + ecpc* ) + # old Intel C++ for x86_64 which still supported -KPIC. + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + icpc* ) + # Intel C++, used to be incompatible with GCC. + # ICC 10 doesn't accept -KPIC any more. + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + pgCC* | pgcpp*) + # Portland Group C++ compiler + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + cxx*) + # Compaq C++ + # Make sure the PIC flag is empty. It appears that all Alpha + # Linux and Compaq Tru64 Unix objects are PIC. + _LT_TAGVAR(lt_prog_compiler_pic, $1)= + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + xlc* | xlC* | bgxl[[cC]]* | mpixl[[cC]]*) + # IBM XL 8.0, 9.0 on PPC and BlueGene + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' + ;; + *) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) + # Sun C++ 5.9 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' + ;; + esac + ;; + esac + ;; + lynxos*) + ;; + m88k*) + ;; + mvs*) + case $cc_basename in + cxx*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall' + ;; + *) + ;; + esac + ;; + netbsd* | netbsdelf*-gnu) + ;; + *qnx* | *nto*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' + ;; + osf3* | osf4* | osf5*) + case $cc_basename in + KCC*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' + ;; + RCC*) + # Rational C++ 2.4.1 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + ;; + cxx*) + # Digital/Compaq C++ + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # Make sure the PIC flag is empty. It appears that all Alpha + # Linux and Compaq Tru64 Unix objects are PIC. + _LT_TAGVAR(lt_prog_compiler_pic, $1)= + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + *) + ;; + esac + ;; + psos*) + ;; + solaris*) + case $cc_basename in + CC* | sunCC*) + # Sun C++ 4.2, 5.x and Centerline C++ + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' + ;; + gcx*) + # Green Hills C++ Compiler + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' + ;; + *) + ;; + esac + ;; + sunos4*) + case $cc_basename in + CC*) + # Sun C++ 4.x + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + lcc*) + # Lucid + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + ;; + *) + ;; + esac + ;; + sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) + case $cc_basename in + CC*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + esac + ;; + tandem*) + case $cc_basename in + NCC*) + # NonStop-UX NCC 3.20 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + ;; + *) + ;; + esac + ;; + vxworks*) + ;; + *) + _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no + ;; + esac + fi +], +[ + if test "$GCC" = yes; then + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' - # ltmain only uses $CC for tagged configurations so make sure $CC is set. - _LT_TAG_COMPILER + case $host_os in + aix*) + # All AIX code is PIC. + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + fi + ;; - # save warnings/boilerplate of simple test code - _LT_COMPILER_BOILERPLATE - _LT_LINKER_BOILERPLATE + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + m68k) + # 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_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' + ;; + esac + ;; - # Allow CC to be a program name with arguments. - lt_save_CC=$CC - lt_save_CFLAGS=$CFLAGS - lt_save_LD=$LD - lt_save_GCC=$GCC - GCC=$GXX - lt_save_with_gnu_ld=$with_gnu_ld - lt_save_path_LD=$lt_cv_path_LD - if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then - lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx - else - $as_unset lt_cv_prog_gnu_ld - fi - if test -n "${lt_cv_path_LDCXX+set}"; then - lt_cv_path_LD=$lt_cv_path_LDCXX - else - $as_unset lt_cv_path_LD - fi - test -z "${LDCXX+set}" || LD=$LDCXX - CC=${CXX-"c++"} - CFLAGS=$CXXFLAGS - compiler=$CC - _LT_TAGVAR(compiler, $1)=$CC - _LT_CC_BASENAME([$compiler]) + beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) + # PIC is the default for these OSes. + ;; - if test -n "$compiler"; then - # We don't want -fno-exception when compiling C++ code, so set the - # no_builtin_flag separately - if test "$GXX" = yes; then - _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' - else - _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= - fi + mingw* | cygwin* | pw32* | os2* | cegcc*) + # 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). + # Although the cygwin gcc ignores -fPIC, still need this for old-style + # (--disable-auto-import) libraries + m4_if([$1], [GCJ], [], + [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) + ;; - if test "$GXX" = yes; then - # Set up default GNU C++ configuration + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' + ;; - LT_PATH_LD + haiku*) + # PIC is the default for Haiku. + # The "-static" flag exists, but is broken. + _LT_TAGVAR(lt_prog_compiler_static, $1)= + ;; - # Check if GNU C++ uses GNU ld as the underlying linker, since the - # archiving commands below assume that GNU ld is being used. - if test "$with_gnu_ld" = yes; then - _LT_TAGVAR(archive_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + hpux*) + # PIC is the default for 64-bit PA HP-UX, but not for 32-bit + # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag + # sets the default TLS model and affects inlining. + case $host_cpu in + hppa*64*) + # +Z the default + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + esac + ;; - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' + interix[[3-9]]*) + # Interix 3.x gcc -fpic/-fPIC options generate broken code. + # Instead, we relocate shared libraries at runtime. + ;; - # If archive_cmds runs LD, not CC, wlarc should be empty - # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to - # investigate it a little bit more. (MM) - wlarc='${wl}' + msdosdjgpp*) + # Just because we use GCC doesn't mean we suddenly get shared libraries + # on systems that don't support them. + _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no + enable_shared=no + ;; - # ancient GNU ld didn't support --whole-archive et. al. - if eval "`$CC -print-prog-name=ld` --help 2>&1" | - $GREP 'no-whole-archive' > /dev/null; then - _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' - else - _LT_TAGVAR(whole_archive_flag_spec, $1)= - fi - else - with_gnu_ld=no - wlarc= + *nto* | *qnx*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' + ;; - # A generic and very simple default shared library creation - # command for GNU C++ for the case where it uses the native - # linker, instead of GNU ld. If possible, this setting should - # overridden to take advantage of the native linker features on - # the platform it is being used on. - _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' + sysv4*MP*) + if test -d /usr/nec; then + _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic fi + ;; - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' - - else - GXX=no - with_gnu_ld=no - wlarc= - fi + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + esac - # PORTME: fill in a description of your system's C++ link characteristics - AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) - _LT_TAGVAR(ld_shlibs, $1)=yes + case $cc_basename in + nvcc*) # Cuda Compiler Driver 2.2 + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Xlinker ' + if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then + _LT_TAGVAR(lt_prog_compiler_pic, $1)="-Xcompiler $_LT_TAGVAR(lt_prog_compiler_pic, $1)" + fi + ;; + esac + else + # PORTME Check for flag to pass linker flags through the system compiler. case $host_os in - aix3*) - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - aix[[4-9]]*) - 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]].*|aix[[5-9]]*) - 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. + aix*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + else + _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' + fi + ;; - _LT_TAGVAR(archive_cmds, $1)='' - _LT_TAGVAR(hardcode_direct, $1)=yes - _LT_TAGVAR(hardcode_direct_absolute, $1)=yes - _LT_TAGVAR(hardcode_libdir_separator, $1)=':' - _LT_TAGVAR(link_all_deplibs, $1)=yes - _LT_TAGVAR(file_list_spec, $1)='${wl}-f,' + mingw* | cygwin* | pw32* | os2* | cegcc*) + # 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). + m4_if([$1], [GCJ], [], + [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) + ;; - if test "$GXX" = yes; then - case $host_os in aix4.[[012]]|aix4.[[012]].*) - # We only want to do this on AIX 4.2 and lower, the check - # below for broken collect2 doesn't work under 4.3+ - collect2name=`${CC} -print-prog-name=collect2` - if test -f "$collect2name" && - strings "$collect2name" | $GREP resolve_lib_name >/dev/null - then - # We have reworked collect2 - : - else - # We have old collect2 - _LT_TAGVAR(hardcode_direct, $1)=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 - _LT_TAGVAR(hardcode_minus_L, $1)=yes - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' - _LT_TAGVAR(hardcode_libdir_separator, $1)= - fi - esac - shared_flag='-shared' - if test "$aix_use_runtimelinking" = yes; then - shared_flag="$shared_flag "'${wl}-G' - fi - else - # not using gcc - if test "$host_cpu" = ia64; then - # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release - # chokes on -Wl,-G. The following line is correct: - shared_flag='-G' - else - if test "$aix_use_runtimelinking" = yes; then - shared_flag='${wl}-G' - else - shared_flag='${wl}-bM:SRE' - fi - fi - fi + hpux9* | hpux10* | hpux11*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but + # not for PA HP-UX. + case $host_cpu in + hppa*64*|ia64*) + # +Z the default + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' + ;; + esac + # Is there a better lt_prog_compiler_static that works with the bundled CC? + _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' + ;; - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall' - # It seems that -bexpall does not export symbols beginning with - # underscore (_), so it is better to generate a list of symbols to - # export. - _LT_TAGVAR(always_export_symbols, $1)=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. - _LT_TAGVAR(allow_undefined_flag, $1)='-berok' - # Determine the default libpath from the value encoded in an empty - # executable. - _LT_SYS_MODULE_PATH_AIX([$1]) - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" + irix5* | irix6* | nonstopux*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # PIC (with -KPIC) is the default. + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" - else - if test "$host_cpu" = ia64; then - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' - _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs" - _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" - else - # Determine the default libpath from the value encoded in an - # empty executable. - _LT_SYS_MODULE_PATH_AIX([$1]) - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" - # Warning - without using the other run time loading flags, - # -berok will link without error, but may produce a broken library. - _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' - _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' - if test "$with_gnu_ld" = yes; then - # We only use this code for GNU lds that support --whole-archive. - _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' - else - # Exported symbols can be pulled into shared objects from archives - _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' - fi - _LT_TAGVAR(archive_cmds_need_lc, $1)=yes - # This is similar to how AIX traditionally builds its shared - # libraries. - _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' - fi - fi + linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) + case $cc_basename in + # old Intel for x86_64 which still supported -KPIC. + ecc*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + # icc used to be incompatible with GCC. + # ICC 10 doesn't accept -KPIC any more. + icc* | ifort*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + # Lahey Fortran 8.1. + lf95*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='--shared' + _LT_TAGVAR(lt_prog_compiler_static, $1)='--static' + ;; + nagfor*) + # NAG Fortran compiler + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,-Wl,,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) + # Portland Group compilers (*not* the Pentium gcc compiler, + # which looks to be a dead project) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; - - beos*) - if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then - _LT_TAGVAR(allow_undefined_flag, $1)=unsupported - # Joseph Beckenbach says some releases of gcc - # support --undefined. This deserves some investigation. FIXME - _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - else - _LT_TAGVAR(ld_shlibs, $1)=no - fi + ccc*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # All Alpha code is PIC. + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + xl* | bgxl* | bgf* | mpixl*) + # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' ;; - - chorus*) - case $cc_basename in - *) - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no + *) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [[1-7]].* | *Sun*Fortran*\ 8.[[0-3]]*) + # Sun Fortran 8.3 passes all unrecognized flags to the linker + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + _LT_TAGVAR(lt_prog_compiler_wl, $1)='' ;; - esac - ;; - - cygwin* | mingw* | pw32* | cegcc*) - case $GXX,$cc_basename in - ,cl* | no,cl*) - # Native MSVC - # hardcode_libdir_flag_spec is actually meaningless, as there is - # no search path for DLLs. - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' - _LT_TAGVAR(allow_undefined_flag, $1)=unsupported - _LT_TAGVAR(always_export_symbols, $1)=yes - _LT_TAGVAR(file_list_spec, $1)='@' - # Tell ltmain to make .lib files, not .a files. - libext=lib - # Tell ltmain to make .dll files, not .so files. - shrext_cmds=".dll" - # FIXME: Setting linknames here is a bad hack. - _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' - _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then - $SED -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; - else - $SED -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; - fi~ - $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ - linknames=' - # The linker will not automatically build a static lib if we build a DLL. - # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' - _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes - # Don't use ranlib - _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib' - _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~ - lt_tool_outputfile="@TOOL_OUTPUT@"~ - case $lt_outputfile in - *.exe|*.EXE) ;; - *) - lt_outputfile="$lt_outputfile.exe" - lt_tool_outputfile="$lt_tool_outputfile.exe" - ;; - esac~ - func_to_tool_file "$lt_outputfile"~ - if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then - $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; - $RM "$lt_outputfile.manifest"; - fi' + *Sun\ F* | *Sun*Fortran*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' ;; - *) - # g++ - # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, - # as there is no search path for DLLs. - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-all-symbols' - _LT_TAGVAR(allow_undefined_flag, $1)=unsupported - _LT_TAGVAR(always_export_symbols, $1)=no - _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes - - if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then - _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' - # If the export-symbols file already is a .def file (1st line - # is EXPORTS), use it as is; otherwise, prepend... - _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then - cp $export_symbols $output_objdir/$soname.def; - else - echo EXPORTS > $output_objdir/$soname.def; - cat $export_symbols >> $output_objdir/$soname.def; - fi~ - $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' - else - _LT_TAGVAR(ld_shlibs, $1)=no - fi + *Sun\ C*) + # Sun C 5.9 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + ;; + *Intel*\ [[CF]]*Compiler*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + *Portland\ Group*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; esac ;; - darwin* | rhapsody*) - _LT_DARWIN_LINKER_FEATURES($1) - ;; + esac + ;; - dgux*) - case $cc_basename in - ec++*) - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - ghcx*) - # Green Hills C++ Compiler - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - *) - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - esac - ;; + newsos6) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; - freebsd2.*) - # C++ shared libraries reported to be fairly broken before - # switch to ELF - _LT_TAGVAR(ld_shlibs, $1)=no - ;; + *nto* | *qnx*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' + ;; - freebsd-elf*) - _LT_TAGVAR(archive_cmds_need_lc, $1)=no - ;; + osf3* | osf4* | osf5*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # All OSF/1 code is PIC. + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; - freebsd* | dragonfly*) - # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF - # conventions - _LT_TAGVAR(ld_shlibs, $1)=yes - ;; + rdos*) + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; - haiku*) - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - _LT_TAGVAR(link_all_deplibs, $1)=yes - ;; + solaris*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + case $cc_basename in + f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';; + *) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';; + esac + ;; - hpux9*) - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' - _LT_TAGVAR(hardcode_libdir_separator, $1)=: - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' - _LT_TAGVAR(hardcode_direct, $1)=yes - _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, - # but as the default - # location of the library. + sunos4*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; - case $cc_basename in - CC*) - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - aCC*) - _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - # - # There doesn't appear to be a way to prevent this compiler from - # explicitly linking system object files so we need to strip them - # from the output so that they don't get included in the library - # dependencies. - output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' - ;; - *) - if test "$GXX" = yes; then - _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -nostdlib $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' - else - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - fi - ;; - esac - ;; + sysv4 | sysv4.2uw2* | sysv4.3*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; - hpux10*|hpux11*) - if test $with_gnu_ld = no; then - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' - _LT_TAGVAR(hardcode_libdir_separator, $1)=: + sysv4*MP*) + if test -d /usr/nec ;then + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + fi + ;; + + sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; - case $host_cpu in - hppa*64*|ia64*) - ;; - *) - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' - ;; - esac - fi - case $host_cpu in - hppa*64*|ia64*) - _LT_TAGVAR(hardcode_direct, $1)=no - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - ;; - *) - _LT_TAGVAR(hardcode_direct, $1)=yes - _LT_TAGVAR(hardcode_direct_absolute, $1)=yes - _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, - # but as the default - # location of the library. - ;; - esac + unicos*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no + ;; - case $cc_basename in - CC*) - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - aCC*) - case $host_cpu in - hppa*64*) - _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' - ;; - ia64*) - _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' - ;; - *) - _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' - ;; - esac - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - # - # There doesn't appear to be a way to prevent this compiler from - # explicitly linking system object files so we need to strip them - # from the output so that they don't get included in the library - # dependencies. - output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' - ;; - *) - if test "$GXX" = yes; then - if test $with_gnu_ld = no; then - case $host_cpu in - hppa*64*) - _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' - ;; - ia64*) - _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' - ;; - *) - _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' - ;; - esac - fi - else - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - fi - ;; - esac - ;; + uts4*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; - interix[[3-9]]*) - _LT_TAGVAR(hardcode_direct, $1)=no - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' - # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. - # Instead, shared libraries are loaded at an image base (0x10000000 by - # default) and relocated if they conflict, which is a slow very memory - # consuming and fragmenting process. To avoid this, we pick a random, - # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link - # time. Moving up from 0x10000000 also allows more sbrk(2) space. - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' - ;; - irix5* | irix6*) - case $cc_basename in - CC*) - # SGI C++ - _LT_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' + *) + _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no + ;; + esac + fi +]) +case $host_os in + # For platforms which do not support PIC, -DPIC is meaningless: + *djgpp*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)= + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])" + ;; +esac - # Archives containing C++ object files must be created using - # "CC -ar", where "CC" is the IRIX C++ compiler. This is - # necessary to make sure instantiated templates are included - # in the archive. - _LT_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs' - ;; - *) - if test "$GXX" = yes; then - if test "$with_gnu_ld" = no; then - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - else - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` -o $lib' - fi - fi - _LT_TAGVAR(link_all_deplibs, $1)=yes - ;; - esac - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' - _LT_TAGVAR(hardcode_libdir_separator, $1)=: - _LT_TAGVAR(inherit_rpath, $1)=yes - ;; +AC_CACHE_CHECK([for $compiler option to produce PIC], + [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)], + [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_prog_compiler_pic, $1)]) +_LT_TAGVAR(lt_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_cv_prog_compiler_pic, $1) - linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) - case $cc_basename in - KCC*) - # Kuck and Associates, Inc. (KAI) C++ Compiler +# +# Check to make sure the PIC flag actually works. +# +if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then + _LT_COMPILER_OPTION([if $compiler PIC flag $_LT_TAGVAR(lt_prog_compiler_pic, $1) works], + [_LT_TAGVAR(lt_cv_prog_compiler_pic_works, $1)], + [$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])], [], + [case $_LT_TAGVAR(lt_prog_compiler_pic, $1) in + "" | " "*) ;; + *) _LT_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_TAGVAR(lt_prog_compiler_pic, $1)" ;; + esac], + [_LT_TAGVAR(lt_prog_compiler_pic, $1)= + _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no]) +fi +_LT_TAGDECL([pic_flag], [lt_prog_compiler_pic], [1], + [Additional compiler flags for building library objects]) - # KCC will only create a shared library if the output file - # ends with ".so" (or ".sl" for HP-UX), so rename the library - # to its proper name (with version) after linking. - _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib' - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - # - # There doesn't appear to be a way to prevent this compiler from - # explicitly linking system object files so we need to strip them - # from the output so that they don't get included in the library - # dependencies. - output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' +_LT_TAGDECL([wl], [lt_prog_compiler_wl], [1], + [How to pass a linker flag through the compiler]) +# +# Check to make sure the static flag actually works. +# +wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) eval lt_tmp_static_flag=\"$_LT_TAGVAR(lt_prog_compiler_static, $1)\" +_LT_LINKER_OPTION([if $compiler static flag $lt_tmp_static_flag works], + _LT_TAGVAR(lt_cv_prog_compiler_static_works, $1), + $lt_tmp_static_flag, + [], + [_LT_TAGVAR(lt_prog_compiler_static, $1)=]) +_LT_TAGDECL([link_static_flag], [lt_prog_compiler_static], [1], + [Compiler flag to prevent dynamic linking]) +])# _LT_COMPILER_PIC - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' - # Archives containing C++ object files must be created using - # "CC -Bstatic", where "CC" is the KAI C++ compiler. - _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' - ;; - icpc* | ecpc* ) - # Intel C++ - with_gnu_ld=yes - # version 8.0 and above of icpc choke on multiply defined symbols - # if we add $predep_objects and $postdep_objects, however 7.1 and - # earlier do not add the objects themselves. - case `$CC -V 2>&1` in - *"Version 7."*) - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - ;; - *) # Version 8.0 or newer - tmp_idyn= - case $host_cpu in - ia64*) tmp_idyn=' -i_dynamic';; - esac - _LT_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - ;; - esac - _LT_TAGVAR(archive_cmds_need_lc, $1)=no - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' - _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' - ;; - pgCC* | pgcpp*) - # Portland Group C++ compiler - case `$CC -V` in - *pgCC\ [[1-5]].* | *pgcpp\ [[1-5]].*) - _LT_TAGVAR(prelink_cmds, $1)='tpldir=Template.dir~ - rm -rf $tpldir~ - $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~ - compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"' - _LT_TAGVAR(old_archive_cmds, $1)='tpldir=Template.dir~ - rm -rf $tpldir~ - $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~ - $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~ - $RANLIB $oldlib' - _LT_TAGVAR(archive_cmds, $1)='tpldir=Template.dir~ - rm -rf $tpldir~ - $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ - $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='tpldir=Template.dir~ - rm -rf $tpldir~ - $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ - $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' - ;; - *) # Version 6 and above use weak symbols - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' - ;; - esac +# _LT_LINKER_SHLIBS([TAGNAME]) +# ---------------------------- +# See if the linker supports building shared libraries. +m4_defun([_LT_LINKER_SHLIBS], +[AC_REQUIRE([LT_PATH_LD])dnl +AC_REQUIRE([LT_PATH_NM])dnl +m4_require([_LT_PATH_MANIFEST_TOOL])dnl +m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_DECL_EGREP])dnl +m4_require([_LT_DECL_SED])dnl +m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl +m4_require([_LT_TAG_COMPILER])dnl +AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) +m4_if([$1], [CXX], [ + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] + case $host_os in + aix[[4-9]]*) + # If we're using GNU nm, then we don't want the "-C" option. + # -C means demangle to AIX nm, but means don't demangle with GNU nm + # Also, AIX nm treats weak defined symbols like other global defined + # symbols, whereas GNU nm marks them as "W". + if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then + _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' + else + _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' + fi + ;; + pw32*) + _LT_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds" + ;; + cygwin* | mingw* | cegcc*) + case $cc_basename in + cl*) + _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' + ;; + *) + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' + _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'] + ;; + esac + ;; + linux* | k*bsd*-gnu | gnu*) + _LT_TAGVAR(link_all_deplibs, $1)=no + ;; + *) + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + ;; + esac +], [ + runpath_var= + _LT_TAGVAR(allow_undefined_flag, $1)= + _LT_TAGVAR(always_export_symbols, $1)=no + _LT_TAGVAR(archive_cmds, $1)= + _LT_TAGVAR(archive_expsym_cmds, $1)= + _LT_TAGVAR(compiler_needs_object, $1)=no + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no + _LT_TAGVAR(export_dynamic_flag_spec, $1)= + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + _LT_TAGVAR(hardcode_automatic, $1)=no + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_direct_absolute, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= + _LT_TAGVAR(hardcode_libdir_separator, $1)= + _LT_TAGVAR(hardcode_minus_L, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported + _LT_TAGVAR(inherit_rpath, $1)=no + _LT_TAGVAR(link_all_deplibs, $1)=unknown + _LT_TAGVAR(module_cmds, $1)= + _LT_TAGVAR(module_expsym_cmds, $1)= + _LT_TAGVAR(old_archive_from_new_cmds, $1)= + _LT_TAGVAR(old_archive_from_expsyms_cmds, $1)= + _LT_TAGVAR(thread_safe_flag_spec, $1)= + _LT_TAGVAR(whole_archive_flag_spec, $1)= + # include_expsyms should be a list of space-separated symbols to be *always* + # included in the symbol list + _LT_TAGVAR(include_expsyms, $1)= + # exclude_expsyms can be an extended regexp 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'. + _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] + # 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. + # Exclude shared library initialization/finalization symbols. +dnl Note also adjust exclude_expsyms for C++ above. + extract_expsyms_cmds= - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir' - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' - _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' - ;; - cxx*) - # Compaq C++ - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib ${wl}-retain-symbols-file $wl$export_symbols' + case $host_os in + cygwin* | mingw* | pw32* | cegcc*) + # 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 + ;; + interix*) + # we just hope/assume this is gcc and not c89 (= MSVC++) + with_gnu_ld=yes + ;; + openbsd*) + with_gnu_ld=no + ;; + linux* | k*bsd*-gnu | gnu*) + _LT_TAGVAR(link_all_deplibs, $1)=no + ;; + esac - runpath_var=LD_RUN_PATH - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' - _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(ld_shlibs, $1)=yes - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - # - # There doesn't appear to be a way to prevent this compiler from - # explicitly linking system object files so we need to strip them - # from the output so that they don't get included in the library - # dependencies. - output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "X$list" | $Xsed' - ;; - xl* | mpixl* | bgxl*) - # IBM XL 8.0 on PPC, with GNU ld - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' - _LT_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - if test "x$supports_anon_versioning" = xyes; then - _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ - cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ - echo "local: *; };" >> $output_objdir/$libname.ver~ - $CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' - fi - ;; + # On some targets, GNU ld is compatible enough with the native linker + # that we're better off using the native interface for both. + lt_use_gnu_ld_interface=no + if test "$with_gnu_ld" = yes; then + case $host_os in + aix*) + # The AIX port of GNU ld has always aspired to compatibility + # with the native linker. However, as the warning in the GNU ld + # block says, versions before 2.19.5* couldn't really create working + # shared libraries, regardless of the interface used. + case `$LD -v 2>&1` in + *\ \(GNU\ Binutils\)\ 2.19.5*) ;; + *\ \(GNU\ Binutils\)\ 2.[[2-9]]*) ;; + *\ \(GNU\ Binutils\)\ [[3-9]]*) ;; *) - case `$CC -V 2>&1 | sed 5q` in - *Sun\ C*) - # Sun C++ 5.9 - _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' - _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols' - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' - _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' - _LT_TAGVAR(compiler_needs_object, $1)=yes - - # Not sure whether something based on - # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 - # would be better. - output_verbose_link_cmd='func_echo_all' - - # Archives containing C++ object files must be created using - # "CC -xar", where "CC" is the Sun C++ compiler. This is - # necessary to make sure instantiated templates are included - # in the archive. - _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' - ;; - esac + lt_use_gnu_ld_interface=yes ;; esac ;; - - lynxos*) - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no + *) + lt_use_gnu_ld_interface=yes ;; + esac + fi - m88k*) - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - ;; + if test "$lt_use_gnu_ld_interface" = yes; then + # If archive_cmds runs LD, not CC, wlarc should be empty + wlarc='${wl}' - mvs*) - case $cc_basename in - cxx*) - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - *) - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - esac - ;; + # Set some defaults for GNU ld with shared library support. These + # are reset later if shared libraries are not supported. Putting them + # here allows them to be overridden if necessary. + runpath_var=LD_RUN_PATH + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' + # ancient GNU ld didn't support --whole-archive et. al. + if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then + _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' + else + _LT_TAGVAR(whole_archive_flag_spec, $1)= + fi + supports_anon_versioning=no + case `$LD -v 2>&1` in + *GNU\ gold*) supports_anon_versioning=yes ;; + *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11 + *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... + *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... + *\ 2.11.*) ;; # other 2.11 versions + *) supports_anon_versioning=yes ;; + esac - netbsd*) - if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then - _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' - wlarc= - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' - _LT_TAGVAR(hardcode_direct, $1)=yes - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - fi - # Workaround some broken pre-1.5 toolchains - output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"' - ;; + # See if GNU ld supports shared libraries. + case $host_os in + aix[[3-9]]*) + # On AIX/PPC, the GNU linker is very broken + if test "$host_cpu" != ia64; then + _LT_TAGVAR(ld_shlibs, $1)=no + cat <<_LT_EOF 1>&2 - *nto* | *qnx*) - _LT_TAGVAR(ld_shlibs, $1)=yes - ;; +*** Warning: the GNU linker, at least up to release 2.19, 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 install binutils +*** 2.20 or above, or modify your PATH so that a non-GNU linker is found. +*** You will then need to restart the configuration process. + +_LT_EOF + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='' + ;; + m68k) + _LT_TAGVAR(archive_cmds, $1)='$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)' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_minus_L, $1)=yes + ;; + esac + ;; - openbsd2*) - # C++ shared libraries are fairly broken + beos*) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + # Joseph Beckenbach says some releases of gcc + # support --undefined. This deserves some investigation. FIXME + _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + else _LT_TAGVAR(ld_shlibs, $1)=no - ;; + fi + ;; - openbsd*) - if test -f /usr/libexec/ld.so; then - _LT_TAGVAR(hardcode_direct, $1)=yes - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - _LT_TAGVAR(hardcode_direct_absolute, $1)=yes - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' - if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib' - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' - _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' - fi - output_verbose_link_cmd=func_echo_all + cygwin* | mingw* | pw32* | cegcc*) + # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, + # as there is no search path for DLLs. + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-all-symbols' + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_TAGVAR(always_export_symbols, $1)=no + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' + _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'] + + if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + # If the export-symbols file already is a .def file (1st line + # is EXPORTS), use it as is; otherwise, prepend... + _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then + cp $export_symbols $output_objdir/$soname.def; else - _LT_TAGVAR(ld_shlibs, $1)=no - fi - ;; + echo EXPORTS > $output_objdir/$soname.def; + cat $export_symbols >> $output_objdir/$soname.def; + fi~ + $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; - osf3* | osf4* | osf5*) - case $cc_basename in - KCC*) - # Kuck and Associates, Inc. (KAI) C++ Compiler + haiku*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(link_all_deplibs, $1)=yes + ;; - # KCC will only create a shared library if the output file - # ends with ".so" (or ".sl" for HP-UX), so rename the library - # to its proper name (with version) after linking. - _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' + interix[[3-9]]*) + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. + # Instead, shared libraries are loaded at an image base (0x10000000 by + # default) and relocated if they conflict, which is a slow very memory + # consuming and fragmenting process. To avoid this, we pick a random, + # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link + # time. Moving up from 0x10000000 also allows more sbrk(2) space. + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + ;; - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' - _LT_TAGVAR(hardcode_libdir_separator, $1)=: + gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) + tmp_diet=no + if test "$host_os" = linux-dietlibc; then + case $cc_basename in + diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) + esac + fi + if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ + && test "$tmp_diet" = no + then + tmp_addflag=' $pic_flag' + tmp_sharedflag='-shared' + case $cc_basename,$host_cpu in + pgcc*) # Portland Group C compiler + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' + tmp_addflag=' $pic_flag' + ;; + pgf77* | pgf90* | pgf95* | pgfortran*) + # Portland Group f77 and f90 compilers + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' + tmp_addflag=' $pic_flag -Mnomain' ;; + ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 + tmp_addflag=' -i_dynamic' ;; + efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 + tmp_addflag=' -i_dynamic -nofor_main' ;; + ifc* | ifort*) # Intel Fortran compiler + tmp_addflag=' -nofor_main' ;; + lf95*) # Lahey Fortran 8.1 + _LT_TAGVAR(whole_archive_flag_spec, $1)= + tmp_sharedflag='--shared' ;; + xl[[cC]]* | bgxl[[cC]]* | mpixl[[cC]]*) # IBM XL C 8.0 on PPC (deal with xlf below) + tmp_sharedflag='-qmkshrobj' + tmp_addflag= ;; + nvcc*) # Cuda Compiler Driver 2.2 + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' + _LT_TAGVAR(compiler_needs_object, $1)=yes + ;; + esac + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) # Sun C 5.9 + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' + _LT_TAGVAR(compiler_needs_object, $1)=yes + tmp_sharedflag='-G' ;; + *Sun\ F*) # Sun Fortran 8.3 + tmp_sharedflag='-G' ;; + esac + _LT_TAGVAR(archive_cmds, $1)='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - # Archives containing C++ object files must be created using - # the KAI C++ compiler. - case $host in - osf3*) _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ;; - *) _LT_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs' ;; - esac - ;; - RCC*) - # Rational C++ 2.4.1 - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - cxx*) - case $host in - osf3*) - _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' - _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && func_echo_all "${wl}-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' - ;; - *) - _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' - _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~ - echo "-hidden">> $lib.exp~ - $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname ${wl}-input ${wl}$lib.exp `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~ - $RM $lib.exp' - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' - ;; - esac + if test "x$supports_anon_versioning" = xyes; then + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' + fi - _LT_TAGVAR(hardcode_libdir_separator, $1)=: + case $cc_basename in + xlf* | bgf* | bgxlf* | mpixlf*) + # IBM XL Fortran 10.1 on PPC cannot create shared libs itself + _LT_TAGVAR(whole_archive_flag_spec, $1)='--whole-archive$convenience --no-whole-archive' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' + if test "x$supports_anon_versioning" = xyes; then + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' + fi + ;; + esac + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - # - # There doesn't appear to be a way to prevent this compiler from - # explicitly linking system object files so we need to strip them - # from the output so that they don't get included in the library - # dependencies. - output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' - ;; - *) - if test "$GXX" = yes && test "$with_gnu_ld" = no; then - _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' - case $host in - osf3*) - _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - ;; - *) - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - ;; - esac + netbsd* | netbsdelf*-gnu) + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' + wlarc= + else + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + fi + ;; - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' - _LT_TAGVAR(hardcode_libdir_separator, $1)=: + solaris*) + if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then + _LT_TAGVAR(ld_shlibs, $1)=no + cat <<_LT_EOF 1>&2 - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' +*** 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. - else - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - fi - ;; - esac - ;; +_LT_EOF + elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) + case `$LD -v 2>&1` in + *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.1[[0-5]].*) + _LT_TAGVAR(ld_shlibs, $1)=no + cat <<_LT_EOF 1>&2 - psos*) - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - ;; +*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not +*** reliably create shared libraries on SCO systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.16.91.0.3 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. - sunos4*) - case $cc_basename in - CC*) - # Sun C++ 4.x - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - lcc*) - # Lucid - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - *) - # FIXME: insert proper C++ library support +_LT_EOF + ;; + *) + # For security reasons, it is highly recommended that you always + # use absolute paths for naming shared libraries, and exclude the + # DT_RUNPATH tag from executables and libraries. But doing so + # requires that you compile everything twice, which is a pain. + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else _LT_TAGVAR(ld_shlibs, $1)=no - ;; - esac - ;; + fi + ;; + esac + ;; - solaris*) - case $cc_basename in - CC* | sunCC*) - # Sun C++ 4.2, 5.x and Centerline C++ - _LT_TAGVAR(archive_cmds_need_lc,$1)=yes - _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' - _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' - _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ - $CC -G${allow_undefined_flag} ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' + sunos4*) + _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' + wlarc= + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - case $host_os in - solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; - *) - # The compiler driver will combine and reorder linker options, - # but understands `-z linker_flag'. - # Supported since Solaris 2.6 (maybe 2.5.1?) - _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' - ;; - esac - _LT_TAGVAR(link_all_deplibs, $1)=yes + *) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac - output_verbose_link_cmd='func_echo_all' + if test "$_LT_TAGVAR(ld_shlibs, $1)" = no; then + runpath_var= + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= + _LT_TAGVAR(export_dynamic_flag_spec, $1)= + _LT_TAGVAR(whole_archive_flag_spec, $1)= + fi + else + # PORTME fill in a description of your system's linker (not GNU ld) + case $host_os in + aix3*) + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_TAGVAR(always_export_symbols, $1)=yes + _LT_TAGVAR(archive_expsym_cmds, $1)='$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. + _LT_TAGVAR(hardcode_minus_L, $1)=yes + if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then + # Neither direct hardcoding nor static linking is supported with a + # broken collect2. + _LT_TAGVAR(hardcode_direct, $1)=unsupported + fi + ;; - # Archives containing C++ object files must be created using - # "CC -xar", where "CC" is the Sun C++ compiler. This is - # necessary to make sure instantiated templates are included - # in the archive. - _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' - ;; - gcx*) - # Green Hills C++ Compiler - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' + aix[[4-9]]*) + 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 + # If we're using GNU nm, then we don't want the "-C" option. + # -C means demangle to AIX nm, but means don't demangle with GNU nm + # Also, AIX nm treats weak defined symbols like other global + # defined symbols, whereas GNU nm marks them as "W". + if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then + _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' + else + _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' + fi + aix_use_runtimelinking=no - # The C++ compiler must be used to create the archive. - _LT_TAGVAR(old_archive_cmds, $1)='$CC $LDFLAGS -archive -o $oldlib $oldobjs' - ;; - *) - # GNU C++ compiler with Solaris linker - if test "$GXX" = yes && test "$with_gnu_ld" = no; then - _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-z ${wl}defs' - if $CC --version | $GREP -v '^2\.7' > /dev/null; then - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ - $CC -shared $pic_flag -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' + # 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]].*|aix[[5-9]]*) + 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 - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' - else - # g++ 2.7 appears to require `-G' NOT `-shared' on this - # platform. - _LT_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ - $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' + exp_sym_flag='-bexport' + no_entry_flag='-bnoentry' + fi - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' - 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. + + _LT_TAGVAR(archive_cmds, $1)='' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(hardcode_libdir_separator, $1)=':' + _LT_TAGVAR(link_all_deplibs, $1)=yes + _LT_TAGVAR(file_list_spec, $1)='${wl}-f,' + + if test "$GCC" = yes; then + case $host_os in aix4.[[012]]|aix4.[[012]].*) + # We only want to do this on AIX 4.2 and lower, the check + # below for broken collect2 doesn't work under 4.3+ + collect2name=`${CC} -print-prog-name=collect2` + if test -f "$collect2name" && + strings "$collect2name" | $GREP resolve_lib_name >/dev/null + then + # We have reworked collect2 + : + else + # We have old collect2 + _LT_TAGVAR(hardcode_direct, $1)=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 + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)= + fi + ;; + esac + shared_flag='-shared' + if test "$aix_use_runtimelinking" = yes; then + shared_flag="$shared_flag "'${wl}-G' + fi + _LT_TAGVAR(link_all_deplibs, $1)=no + else + # not using gcc + if test "$host_cpu" = ia64; then + # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release + # chokes on -Wl,-G. The following line is correct: + shared_flag='-G' + else + if test "$aix_use_runtimelinking" = yes; then + shared_flag='${wl}-G' + else + shared_flag='${wl}-bM:SRE' + fi + fi + fi + + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall' + # It seems that -bexpall does not export symbols beginning with + # underscore (_), so it is better to generate a list of symbols to export. + _LT_TAGVAR(always_export_symbols, $1)=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. + _LT_TAGVAR(allow_undefined_flag, $1)='-berok' + # Determine the default libpath from the value encoded in an + # empty executable. + _LT_SYS_MODULE_PATH_AIX([$1]) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" + else + if test "$host_cpu" = ia64; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' + _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs" + _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" + else + # Determine the default libpath from the value encoded in an + # empty executable. + _LT_SYS_MODULE_PATH_AIX([$1]) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" + # Warning - without using the other run time loading flags, + # -berok will link without error, but may produce a broken library. + _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' + _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' + if test "$with_gnu_ld" = yes; then + # We only use this code for GNU lds that support --whole-archive. + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' + else + # Exported symbols can be pulled into shared objects from archives + _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' + fi + _LT_TAGVAR(archive_cmds_need_lc, $1)=yes + # This is similar to how AIX traditionally builds its shared libraries. + _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' + fi + fi + ;; - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $wl$libdir' - case $host_os in - solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; - *) - _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' - ;; - esac - fi - ;; - esac + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='' + ;; + m68k) + _LT_TAGVAR(archive_cmds, $1)='$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)' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_minus_L, $1)=yes ;; + esac + ;; - sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) - _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' - _LT_TAGVAR(archive_cmds_need_lc, $1)=no - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - runpath_var='LD_RUN_PATH' + bsdi[[45]]*) + _LT_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic + ;; + cygwin* | mingw* | pw32* | cegcc*) + # 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. case $cc_basename in - CC*) - _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - ;; - *) - _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - ;; + cl*) + # Native MSVC + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_TAGVAR(always_export_symbols, $1)=yes + _LT_TAGVAR(file_list_spec, $1)='@' + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=".dll" + # FIXME: Setting linknames here is a bad hack. + _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' + _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then + sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; + else + sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; + fi~ + $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ + linknames=' + # The linker will not automatically build a static lib if we build a DLL. + # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1,DATA/'\'' | $SED -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols' + # Don't use ranlib + _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib' + _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~ + lt_tool_outputfile="@TOOL_OUTPUT@"~ + case $lt_outputfile in + *.exe|*.EXE) ;; + *) + lt_outputfile="$lt_outputfile.exe" + lt_tool_outputfile="$lt_tool_outputfile.exe" + ;; + esac~ + if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then + $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; + $RM "$lt_outputfile.manifest"; + fi' + ;; + *) + # Assume MSVC wrapper + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=".dll" + # FIXME: Setting linknames here is a bad hack. + _LT_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' + # The linker will automatically build a .lib file if we build a DLL. + _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' + # FIXME: Should let the user specify the lib program. + _LT_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs' + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + ;; esac ;; - sysv5* | sco3.2v5* | sco5v6*) - # Note: We can NOT use -z defs as we might desire, because we do not - # link with -lc, and that would cause any symbols used from libc to - # always be unresolved, which means just about no library would - # ever link correctly. If we're not using GNU ld we use -z text - # though, which does catch some bad symbols but isn't as heavy-handed - # as -z defs. - _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' - _LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs' - _LT_TAGVAR(archive_cmds_need_lc, $1)=no - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir' - _LT_TAGVAR(hardcode_libdir_separator, $1)=':' - _LT_TAGVAR(link_all_deplibs, $1)=yes - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' - runpath_var='LD_RUN_PATH' - - case $cc_basename in - CC*) - _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - _LT_TAGVAR(old_archive_cmds, $1)='$CC -Tprelink_objects $oldobjs~ - '"$_LT_TAGVAR(old_archive_cmds, $1)" - _LT_TAGVAR(reload_cmds, $1)='$CC -Tprelink_objects $reload_objs~ - '"$_LT_TAGVAR(reload_cmds, $1)" - ;; - *) - _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - ;; - esac + darwin* | rhapsody*) + _LT_DARWIN_LINKER_FEATURES($1) ;; - tandem*) - case $cc_basename in - NCC*) - # NonStop-UX NCC 3.20 - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - *) - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - esac - ;; - - vxworks*) - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - - *) - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - esac + dgux*) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; - AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)]) - test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=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*) + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; - _LT_TAGVAR(GCC, $1)="$GXX" - _LT_TAGVAR(LD, $1)="$LD" + # Unfortunately, older versions of FreeBSD 2 do not have this feature. + freebsd2.*) + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; - ## CAVEAT EMPTOR: - ## There is no encapsulation within the following macros, do not change - ## the running order or otherwise move them around unless you know exactly - ## what you are doing... - _LT_SYS_HIDDEN_LIBDEPS($1) - _LT_COMPILER_PIC($1) - _LT_COMPILER_C_O($1) - _LT_COMPILER_FILE_LOCKS($1) - _LT_LINKER_SHLIBS($1) - _LT_SYS_DYNAMIC_LINKER($1) - _LT_LINKER_HARDCODE_LIBPATH($1) + # FreeBSD 3 and greater uses gcc -shared to do shared libraries. + freebsd* | dragonfly*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; - _LT_CONFIG($1) - fi # test -n "$compiler" + hpux9*) + if test "$GCC" = yes; then + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + else + _LT_TAGVAR(archive_cmds, $1)='$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' + fi + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(hardcode_direct, $1)=yes - CC=$lt_save_CC - CFLAGS=$lt_save_CFLAGS - LDCXX=$LD - LD=$lt_save_LD - GCC=$lt_save_GCC - with_gnu_ld=$lt_save_with_gnu_ld - lt_cv_path_LDCXX=$lt_cv_path_LD - lt_cv_path_LD=$lt_save_path_LD - lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld - lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld -fi # test "$_lt_caught_CXX_error" != yes + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + ;; -AC_LANG_POP -])# _LT_LANG_CXX_CONFIG + hpux10*) + if test "$GCC" = yes && test "$with_gnu_ld" = no; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + else + _LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' + fi + if test "$with_gnu_ld" = no; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + _LT_TAGVAR(hardcode_minus_L, $1)=yes + fi + ;; + hpux11*) + if test "$GCC" = yes && test "$with_gnu_ld" = no; then + case $host_cpu in + hppa*64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + else + case $host_cpu in + hppa*64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + m4_if($1, [], [ + # Older versions of the 11.00 compiler do not understand -b yet + # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does) + _LT_LINKER_OPTION([if $CC understands -b], + _LT_TAGVAR(lt_cv_prog_compiler__b, $1), [-b], + [_LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'], + [_LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'])], + [_LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags']) + ;; + esac + fi + if test "$with_gnu_ld" = no; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: -# _LT_FUNC_STRIPNAME_CNF -# ---------------------- -# func_stripname_cnf prefix suffix name -# strip PREFIX and SUFFIX off of NAME. -# PREFIX and SUFFIX must not contain globbing or regex special -# characters, hashes, percent signs, but SUFFIX may contain a leading -# dot (in which case that matches only a dot). -# -# This function is identical to the (non-XSI) version of func_stripname, -# except this one can be used by m4 code that may be executed by configure, -# rather than the libtool script. -m4_defun([_LT_FUNC_STRIPNAME_CNF],[dnl -AC_REQUIRE([_LT_DECL_SED]) -AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH]) -func_stripname_cnf () -{ - case ${2} in - .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;; - *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;; - esac -} # func_stripname_cnf -])# _LT_FUNC_STRIPNAME_CNF + case $host_cpu in + hppa*64*|ia64*) + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + *) + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' -# _LT_SYS_HIDDEN_LIBDEPS([TAGNAME]) -# --------------------------------- -# Figure out "hidden" library dependencies from verbose -# compiler output when linking a shared library. -# Parse the compiler output and extract the necessary -# objects, libraries and library flags. -m4_defun([_LT_SYS_HIDDEN_LIBDEPS], -[m4_require([_LT_FILEUTILS_DEFAULTS])dnl -AC_REQUIRE([_LT_FUNC_STRIPNAME_CNF])dnl -# Dependencies to place before and after the object being linked: -_LT_TAGVAR(predep_objects, $1)= -_LT_TAGVAR(postdep_objects, $1)= -_LT_TAGVAR(predeps, $1)= -_LT_TAGVAR(postdeps, $1)= -_LT_TAGVAR(compiler_lib_search_path, $1)= + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + _LT_TAGVAR(hardcode_minus_L, $1)=yes + ;; + esac + fi + ;; -dnl we can't use the lt_simple_compile_test_code here, -dnl because it contains code intended for an executable, -dnl not a library. It's possible we should let each -dnl tag define a new lt_????_link_test_code variable, -dnl but it's only used here... -m4_if([$1], [], [cat > conftest.$ac_ext <<_LT_EOF -int a; -void foo (void) { a = 0; } -_LT_EOF -], [$1], [CXX], [cat > conftest.$ac_ext <<_LT_EOF -class Foo -{ -public: - Foo (void) { a = 0; } -private: - int a; -}; -_LT_EOF -], [$1], [F77], [cat > conftest.$ac_ext <<_LT_EOF + irix5* | irix6* | nonstopux*) + if test "$GCC" = yes; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + # Try to use the -exported_symbol ld option, if it does not + # work, assume that -exports_file does not work either and + # implicitly export all symbols. + # This should be the same for all languages, so no per-tag cache variable. + AC_CACHE_CHECK([whether the $host_os linker accepts -exported_symbol], + [lt_cv_irix_exported_symbol], + [save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" + AC_LINK_IFELSE( + [AC_LANG_SOURCE( + [AC_LANG_CASE([C], [[int foo (void) { return 0; }]], + [C++], [[int foo (void) { return 0; }]], + [Fortran 77], [[ subroutine foo - implicit none - integer*4 a - a=0 - return - end -_LT_EOF -], [$1], [FC], [cat > conftest.$ac_ext <<_LT_EOF + end]], + [Fortran], [[ subroutine foo - implicit none - integer a - a=0 - return - end -_LT_EOF -], [$1], [GCJ], [cat > conftest.$ac_ext <<_LT_EOF -public class foo { - private int a; - public void bar (void) { - a = 0; - } -}; -_LT_EOF -], [$1], [GO], [cat > conftest.$ac_ext <<_LT_EOF -package foo -func foo() { -} -_LT_EOF -]) + end]])])], + [lt_cv_irix_exported_symbol=yes], + [lt_cv_irix_exported_symbol=no]) + LDFLAGS="$save_LDFLAGS"]) + if test "$lt_cv_irix_exported_symbol" = yes; then + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' + fi + else + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' + fi + _LT_TAGVAR(archive_cmds_need_lc, $1)='no' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(inherit_rpath, $1)=yes + _LT_TAGVAR(link_all_deplibs, $1)=yes + ;; -_lt_libdeps_save_CFLAGS=$CFLAGS -case "$CC $CFLAGS " in #( -*\ -flto*\ *) CFLAGS="$CFLAGS -fno-lto" ;; -*\ -fwhopr*\ *) CFLAGS="$CFLAGS -fno-whopr" ;; -*\ -fuse-linker-plugin*\ *) CFLAGS="$CFLAGS -fno-use-linker-plugin" ;; -esac + netbsd* | netbsdelf*-gnu) + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out + else + _LT_TAGVAR(archive_cmds, $1)='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF + fi + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; -dnl Parse the compiler output and extract the necessary -dnl objects, libraries and library flags. -if AC_TRY_EVAL(ac_compile); then - # Parse the compiler output and extract the necessary - # objects, libraries and library flags. + newsos6) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; - # Sentinel used to keep track of whether or not we are before - # the conftest object file. - pre_test_object_deps_done=no + *nto* | *qnx*) + ;; - for p in `eval "$output_verbose_link_cmd"`; do - case ${prev}${p} in + openbsd*) + if test -f /usr/libexec/ld.so; then + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + else + case $host_os in + openbsd[[01]].* | openbsd2.[[0-7]] | openbsd2.[[0-7]].*) + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + ;; + esac + fi + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; - -L* | -R* | -l*) - # Some compilers place space between "-{L,R}" and the path. - # Remove the space. - if test $p = "-L" || - test $p = "-R"; then - prev=$p - continue - fi + os2*) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_TAGVAR(archive_cmds, $1)='$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' + _LT_TAGVAR(old_archive_from_new_cmds, $1)='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' + ;; + + osf3*) + if test "$GCC" = yes; then + _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + else + _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' + fi + _LT_TAGVAR(archive_cmds_need_lc, $1)='no' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + ;; - # Expand the sysroot to ease extracting the directories later. - if test -z "$prev"; then - case $p in - -L*) func_stripname_cnf '-L' '' "$p"; prev=-L; p=$func_stripname_result ;; - -R*) func_stripname_cnf '-R' '' "$p"; prev=-R; p=$func_stripname_result ;; - -l*) func_stripname_cnf '-l' '' "$p"; prev=-l; p=$func_stripname_result ;; - esac - fi - case $p in - =*) func_stripname_cnf '=' '' "$p"; p=$lt_sysroot$func_stripname_result ;; - esac - if test "$pre_test_object_deps_done" = no; then - case ${prev} in - -L | -R) - # Internal compiler library paths should come after those - # provided the user. The postdeps already come after the - # user supplied libs so there is no need to process them. - if test -z "$_LT_TAGVAR(compiler_lib_search_path, $1)"; then - _LT_TAGVAR(compiler_lib_search_path, $1)="${prev}${p}" - else - _LT_TAGVAR(compiler_lib_search_path, $1)="${_LT_TAGVAR(compiler_lib_search_path, $1)} ${prev}${p}" - fi - ;; - # The "-l" case would never come before the object being - # linked, so don't bother handling this case. - esac - else - if test -z "$_LT_TAGVAR(postdeps, $1)"; then - _LT_TAGVAR(postdeps, $1)="${prev}${p}" - else - _LT_TAGVAR(postdeps, $1)="${_LT_TAGVAR(postdeps, $1)} ${prev}${p}" - fi - fi - prev= - ;; + osf4* | osf5*) # as osf3* with the addition of -msym flag + if test "$GCC" = yes; then + _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + else + _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ + $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp' - *.lto.$objext) ;; # Ignore GCC LTO objects - *.$objext) - # This assumes that the test object file only shows up - # once in the compiler output. - if test "$p" = "conftest.$objext"; then - pre_test_object_deps_done=yes - continue - fi + # Both c and cxx compiler support -rpath directly + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' + fi + _LT_TAGVAR(archive_cmds_need_lc, $1)='no' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + ;; - if test "$pre_test_object_deps_done" = no; then - if test -z "$_LT_TAGVAR(predep_objects, $1)"; then - _LT_TAGVAR(predep_objects, $1)="$p" - else - _LT_TAGVAR(predep_objects, $1)="$_LT_TAGVAR(predep_objects, $1) $p" - fi - else - if test -z "$_LT_TAGVAR(postdep_objects, $1)"; then - _LT_TAGVAR(postdep_objects, $1)="$p" - else - _LT_TAGVAR(postdep_objects, $1)="$_LT_TAGVAR(postdep_objects, $1) $p" - fi - fi - ;; + solaris*) + _LT_TAGVAR(no_undefined_flag, $1)=' -z defs' + if test "$GCC" = yes; then + wlarc='${wl}' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' + else + case `$CC -V 2>&1` in + *"Compilers 5.0"*) + wlarc='' + _LT_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='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' + ;; + *) + wlarc='${wl}' + _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' + ;; + esac + fi + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + case $host_os in + solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; + *) + # The compiler driver will combine and reorder linker options, + # but understands `-z linker_flag'. GCC discards it without `$wl', + # but is careful enough not to reorder. + # Supported since Solaris 2.6 (maybe 2.5.1?) + if test "$GCC" = yes; then + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' + else + _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' + fi + ;; + esac + _LT_TAGVAR(link_all_deplibs, $1)=yes + ;; - *) ;; # Ignore the rest. + 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. + _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' + else + _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' + fi + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; - esac - done + sysv4) + case $host_vendor in + sni) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_direct, $1)=yes # is this really true??? + ;; + siemens) + ## LD is ld it makes a PLAMLIB + ## CC just makes a GrossModule. + _LT_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs' + _LT_TAGVAR(hardcode_direct, $1)=no + ;; + motorola) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie + ;; + esac + runpath_var='LD_RUN_PATH' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; - # Clean up. - rm -f a.out a.exe -else - echo "libtool.m4: error: problem compiling $1 test program" -fi + sysv4.3*) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport' + ;; -$RM -f confest.$objext -CFLAGS=$_lt_libdeps_save_CFLAGS + sysv4*MP*) + if test -d /usr/nec; then + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + runpath_var=LD_RUN_PATH + hardcode_runpath_var=yes + _LT_TAGVAR(ld_shlibs, $1)=yes + fi + ;; -# PORTME: override above test on systems where it is broken -m4_if([$1], [CXX], -[case $host_os in -interix[[3-9]]*) - # Interix 3.5 installs completely hosed .la files for C++, so rather than - # hack all around it, let's just trust "g++" to DTRT. - _LT_TAGVAR(predep_objects,$1)= - _LT_TAGVAR(postdep_objects,$1)= - _LT_TAGVAR(postdeps,$1)= - ;; + sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) + _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + runpath_var='LD_RUN_PATH' -linux*) - case `$CC -V 2>&1 | sed 5q` in - *Sun\ C*) - # Sun C++ 5.9 + if test "$GCC" = yes; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + else + _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + fi + ;; - # The more standards-conforming stlport4 library is - # incompatible with the Cstd library. Avoid specifying - # it if it's in CXXFLAGS. Ignore libCrun as - # -library=stlport4 depends on it. - case " $CXX $CXXFLAGS " in - *" -library=stlport4 "*) - solaris_use_stlport4=yes + sysv5* | sco3.2v5* | sco5v6*) + # Note: We can NOT use -z defs as we might desire, because we do not + # link with -lc, and that would cause any symbols used from libc to + # always be unresolved, which means just about no library would + # ever link correctly. If we're not using GNU ld we use -z text + # though, which does catch some bad symbols but isn't as heavy-handed + # as -z defs. + _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' + _LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs' + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=':' + _LT_TAGVAR(link_all_deplibs, $1)=yes + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' + runpath_var='LD_RUN_PATH' + + if test "$GCC" = yes; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + else + _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + fi ;; - esac - if test "$solaris_use_stlport4" != yes; then - _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun' - fi - ;; - esac - ;; + uts4*) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; -solaris*) - case $cc_basename in - CC* | sunCC*) - # The more standards-conforming stlport4 library is - # incompatible with the Cstd library. Avoid specifying - # it if it's in CXXFLAGS. Ignore libCrun as - # -library=stlport4 depends on it. - case " $CXX $CXXFLAGS " in - *" -library=stlport4 "*) - solaris_use_stlport4=yes + *) + _LT_TAGVAR(ld_shlibs, $1)=no ;; esac - # Adding this requires a known-good setup of shared libraries for - # Sun compiler versions before 5.6, else PIC objects from an old - # archive will be linked into the output, leading to subtle bugs. - if test "$solaris_use_stlport4" != yes; then - _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun' + if test x$host_vendor = xsni; then + case $host in + sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Blargedynsym' + ;; + esac fi - ;; - esac - ;; -esac + fi ]) +AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)]) +test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no -case " $_LT_TAGVAR(postdeps, $1) " in -*" -lc "*) _LT_TAGVAR(archive_cmds_need_lc, $1)=no ;; +_LT_TAGVAR(with_gnu_ld, $1)=$with_gnu_ld + +_LT_DECL([], [libext], [0], [Old archive suffix (normally "a")])dnl +_LT_DECL([], [shrext_cmds], [1], [Shared library suffix (normally ".so")])dnl +_LT_DECL([], [extract_expsyms_cmds], [2], + [The commands to extract the exported symbol list from a shared archive]) + +# +# Do we need to explicitly link libc? +# +case "x$_LT_TAGVAR(archive_cmds_need_lc, $1)" in +x|xyes) + # Assume -lc should be added + _LT_TAGVAR(archive_cmds_need_lc, $1)=yes + + if test "$enable_shared" = yes && test "$GCC" = yes; then + case $_LT_TAGVAR(archive_cmds, $1) 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_CACHE_CHECK([whether -lc should be explicitly linked in], + [lt_cv_]_LT_TAGVAR(archive_cmds_need_lc, $1), + [$RM conftest* + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + if AC_TRY_EVAL(ac_compile) 2>conftest.err; then + soname=conftest + lib=conftest + libobjs=conftest.$ac_objext + deplibs= + wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) + pic_flag=$_LT_TAGVAR(lt_prog_compiler_pic, $1) + compiler_flags=-v + linker_flags=-v + verstring= + output_objdir=. + libname=conftest + lt_save_allow_undefined_flag=$_LT_TAGVAR(allow_undefined_flag, $1) + _LT_TAGVAR(allow_undefined_flag, $1)= + if AC_TRY_EVAL(_LT_TAGVAR(archive_cmds, $1) 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) + then + lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=no + else + lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=yes + fi + _LT_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag + else + cat conftest.err 1>&5 + fi + $RM conftest* + ]) + _LT_TAGVAR(archive_cmds_need_lc, $1)=$lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1) + ;; + esac + fi + ;; esac - _LT_TAGVAR(compiler_lib_search_dirs, $1)= -if test -n "${_LT_TAGVAR(compiler_lib_search_path, $1)}"; then - _LT_TAGVAR(compiler_lib_search_dirs, $1)=`echo " ${_LT_TAGVAR(compiler_lib_search_path, $1)}" | ${SED} -e 's! -L! !g' -e 's!^ !!'` -fi -_LT_TAGDECL([], [compiler_lib_search_dirs], [1], - [The directories searched by this compiler when creating a shared library]) -_LT_TAGDECL([], [predep_objects], [1], - [Dependencies to place before and after the objects being linked to - create a shared library]) -_LT_TAGDECL([], [postdep_objects], [1]) -_LT_TAGDECL([], [predeps], [1]) -_LT_TAGDECL([], [postdeps], [1]) -_LT_TAGDECL([], [compiler_lib_search_path], [1], - [The library search path used internally by the compiler when linking - a shared library]) -])# _LT_SYS_HIDDEN_LIBDEPS +_LT_TAGDECL([build_libtool_need_lc], [archive_cmds_need_lc], [0], + [Whether or not to add -lc for building shared libraries]) +_LT_TAGDECL([allow_libtool_libs_with_static_runtimes], + [enable_shared_with_static_runtimes], [0], + [Whether or not to disallow shared libs when runtime libs are static]) +_LT_TAGDECL([], [export_dynamic_flag_spec], [1], + [Compiler flag to allow reflexive dlopens]) +_LT_TAGDECL([], [whole_archive_flag_spec], [1], + [Compiler flag to generate shared objects directly from archives]) +_LT_TAGDECL([], [compiler_needs_object], [1], + [Whether the compiler copes with passing no objects directly]) +_LT_TAGDECL([], [old_archive_from_new_cmds], [2], + [Create an old-style archive from a shared archive]) +_LT_TAGDECL([], [old_archive_from_expsyms_cmds], [2], + [Create a temporary old-style archive to link instead of a shared archive]) +_LT_TAGDECL([], [archive_cmds], [2], [Commands used to build a shared archive]) +_LT_TAGDECL([], [archive_expsym_cmds], [2]) +_LT_TAGDECL([], [module_cmds], [2], + [Commands used to build a loadable module if different from building + a shared archive.]) +_LT_TAGDECL([], [module_expsym_cmds], [2]) +_LT_TAGDECL([], [with_gnu_ld], [1], + [Whether we are building with GNU ld or not]) +_LT_TAGDECL([], [allow_undefined_flag], [1], + [Flag that allows shared libraries with undefined symbols to be built]) +_LT_TAGDECL([], [no_undefined_flag], [1], + [Flag that enforces no undefined symbols]) +_LT_TAGDECL([], [hardcode_libdir_flag_spec], [1], + [Flag to hardcode $libdir into a binary during linking. + This must work even if $libdir does not exist]) +_LT_TAGDECL([], [hardcode_libdir_separator], [1], + [Whether we need a single "-rpath" flag with a separated argument]) +_LT_TAGDECL([], [hardcode_direct], [0], + [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes + DIR into the resulting binary]) +_LT_TAGDECL([], [hardcode_direct_absolute], [0], + [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes + DIR into the resulting binary and the resulting library dependency is + "absolute", i.e impossible to change by setting ${shlibpath_var} if the + library is relocated]) +_LT_TAGDECL([], [hardcode_minus_L], [0], + [Set to "yes" if using the -LDIR flag during linking hardcodes DIR + into the resulting binary]) +_LT_TAGDECL([], [hardcode_shlibpath_var], [0], + [Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR + into the resulting binary]) +_LT_TAGDECL([], [hardcode_automatic], [0], + [Set to "yes" if building a shared library automatically hardcodes DIR + into the library and all subsequent libraries and executables linked + against it]) +_LT_TAGDECL([], [inherit_rpath], [0], + [Set to yes if linker adds runtime paths of dependent libraries + to runtime path list]) +_LT_TAGDECL([], [link_all_deplibs], [0], + [Whether libtool must link a program against all its dependency libraries]) +_LT_TAGDECL([], [always_export_symbols], [0], + [Set to "yes" if exported symbols are required]) +_LT_TAGDECL([], [export_symbols_cmds], [2], + [The commands to list exported symbols]) +_LT_TAGDECL([], [exclude_expsyms], [1], + [Symbols that should not be listed in the preloaded symbols]) +_LT_TAGDECL([], [include_expsyms], [1], + [Symbols that must always be exported]) +_LT_TAGDECL([], [prelink_cmds], [2], + [Commands necessary for linking programs (against libraries) with templates]) +_LT_TAGDECL([], [postlink_cmds], [2], + [Commands necessary for finishing linking programs]) +_LT_TAGDECL([], [file_list_spec], [1], + [Specify filename containing input files]) +dnl FIXME: Not yet implemented +dnl _LT_TAGDECL([], [thread_safe_flag_spec], [1], +dnl [Compiler flag to generate thread safe objects]) +])# _LT_LINKER_SHLIBS -# _LT_LANG_F77_CONFIG([TAG]) -# -------------------------- -# Ensure that the configuration variables for a Fortran 77 compiler are -# suitably defined. These variables are subsequently used by _LT_CONFIG -# to write the compiler configuration to `libtool'. -m4_defun([_LT_LANG_F77_CONFIG], -[AC_LANG_PUSH(Fortran 77) -if test -z "$F77" || test "X$F77" = "Xno"; then - _lt_disable_F77=yes -fi -_LT_TAGVAR(archive_cmds_need_lc, $1)=no -_LT_TAGVAR(allow_undefined_flag, $1)= -_LT_TAGVAR(always_export_symbols, $1)=no -_LT_TAGVAR(archive_expsym_cmds, $1)= -_LT_TAGVAR(export_dynamic_flag_spec, $1)= -_LT_TAGVAR(hardcode_direct, $1)=no -_LT_TAGVAR(hardcode_direct_absolute, $1)=no -_LT_TAGVAR(hardcode_libdir_flag_spec, $1)= -_LT_TAGVAR(hardcode_libdir_separator, $1)= -_LT_TAGVAR(hardcode_minus_L, $1)=no -_LT_TAGVAR(hardcode_automatic, $1)=no -_LT_TAGVAR(inherit_rpath, $1)=no -_LT_TAGVAR(module_cmds, $1)= -_LT_TAGVAR(module_expsym_cmds, $1)= -_LT_TAGVAR(link_all_deplibs, $1)=unknown -_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds -_LT_TAGVAR(reload_flag, $1)=$reload_flag -_LT_TAGVAR(reload_cmds, $1)=$reload_cmds -_LT_TAGVAR(no_undefined_flag, $1)= -_LT_TAGVAR(whole_archive_flag_spec, $1)= -_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no +# _LT_LANG_C_CONFIG([TAG]) +# ------------------------ +# Ensure that the configuration variables for a C compiler are suitably +# defined. These variables are subsequently used by _LT_CONFIG to write +# the compiler configuration to `libtool'. +m4_defun([_LT_LANG_C_CONFIG], +[m4_require([_LT_DECL_EGREP])dnl +lt_save_CC="$CC" +AC_LANG_PUSH(C) -# Source file extension for f77 test sources. -ac_ext=f +# Source file extension for C test sources. +ac_ext=c -# Object file extension for compiled f77 test sources. +# Object file extension for compiled C test sources. objext=o _LT_TAGVAR(objext, $1)=$objext -# No sense in running all these tests if we already determined that -# the F77 compiler isn't working. Some variables (like enable_shared) -# are currently assumed to apply to all compilers on this platform, -# and will be corrupted by setting them based on a non-working compiler. -if test "$_lt_disable_F77" != yes; then - # Code to be used in simple compile tests - lt_simple_compile_test_code="\ - subroutine t - return - end -" - - # Code to be used in simple link tests - lt_simple_link_test_code="\ - program t - end -" - - # ltmain only uses $CC for tagged configurations so make sure $CC is set. - _LT_TAG_COMPILER +# Code to be used in simple compile tests +lt_simple_compile_test_code="int some_variable = 0;" - # save warnings/boilerplate of simple test code - _LT_COMPILER_BOILERPLATE - _LT_LINKER_BOILERPLATE +# Code to be used in simple link tests +lt_simple_link_test_code='int main(){return(0);}' - # Allow CC to be a program name with arguments. - lt_save_CC="$CC" - lt_save_GCC=$GCC - lt_save_CFLAGS=$CFLAGS - CC=${F77-"f77"} - CFLAGS=$FFLAGS - compiler=$CC - _LT_TAGVAR(compiler, $1)=$CC - _LT_CC_BASENAME([$compiler]) - GCC=$G77 - if test -n "$compiler"; then - AC_MSG_CHECKING([if libtool supports shared libraries]) - AC_MSG_RESULT([$can_build_shared]) +_LT_TAG_COMPILER +# Save the default compiler, since it gets overwritten when the other +# tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP. +compiler_DEFAULT=$CC - AC_MSG_CHECKING([whether to build shared libraries]) - test "$can_build_shared" = "no" && enable_shared=no +# save warnings/boilerplate of simple test code +_LT_COMPILER_BOILERPLATE +_LT_LINKER_BOILERPLATE - # 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 - ;; - aix[[4-9]]*) - 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]) +if test -n "$compiler"; then + _LT_COMPILER_NO_RTTI($1) + _LT_COMPILER_PIC($1) + _LT_COMPILER_C_O($1) + _LT_COMPILER_FILE_LOCKS($1) + _LT_LINKER_SHLIBS($1) + _LT_SYS_DYNAMIC_LINKER($1) + _LT_LINKER_HARDCODE_LIBPATH($1) + LT_SYS_DLOPEN_SELF + _LT_CMD_STRIPLIB - 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]) + # Report which library types will actually be built + AC_MSG_CHECKING([if libtool supports shared libraries]) + AC_MSG_RESULT([$can_build_shared]) - _LT_TAGVAR(GCC, $1)="$G77" - _LT_TAGVAR(LD, $1)="$LD" + AC_MSG_CHECKING([whether to build shared libraries]) + test "$can_build_shared" = "no" && enable_shared=no - ## CAVEAT EMPTOR: - ## There is no encapsulation within the following macros, do not change - ## the running order or otherwise move them around unless you know exactly - ## what you are doing... - _LT_COMPILER_PIC($1) - _LT_COMPILER_C_O($1) - _LT_COMPILER_FILE_LOCKS($1) - _LT_LINKER_SHLIBS($1) - _LT_SYS_DYNAMIC_LINKER($1) - _LT_LINKER_HARDCODE_LIBPATH($1) + # 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 + ;; - _LT_CONFIG($1) - fi # test -n "$compiler" + aix[[4-9]]*) + 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]) - GCC=$lt_save_GCC - CC="$lt_save_CC" - CFLAGS="$lt_save_CFLAGS" -fi # test "$_lt_disable_F77" != yes + 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]) + _LT_CONFIG($1) +fi AC_LANG_POP -])# _LT_LANG_F77_CONFIG - +CC="$lt_save_CC" +])# _LT_LANG_C_CONFIG -# _LT_LANG_FC_CONFIG([TAG]) -# ------------------------- -# Ensure that the configuration variables for a Fortran compiler are -# suitably defined. These variables are subsequently used by _LT_CONFIG -# to write the compiler configuration to `libtool'. -m4_defun([_LT_LANG_FC_CONFIG], -[AC_LANG_PUSH(Fortran) -if test -z "$FC" || test "X$FC" = "Xno"; then - _lt_disable_FC=yes +# _LT_LANG_CXX_CONFIG([TAG]) +# -------------------------- +# Ensure that the configuration variables for a C++ compiler are suitably +# defined. These variables are subsequently used by _LT_CONFIG to write +# the compiler configuration to `libtool'. +m4_defun([_LT_LANG_CXX_CONFIG], +[m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_DECL_EGREP])dnl +m4_require([_LT_PATH_MANIFEST_TOOL])dnl +if test -n "$CXX" && ( test "X$CXX" != "Xno" && + ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || + (test "X$CXX" != "Xg++"))) ; then + AC_PROG_CXXCPP +else + _lt_caught_CXX_error=yes fi +AC_LANG_PUSH(C++) _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(allow_undefined_flag, $1)= _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(archive_expsym_cmds, $1)= +_LT_TAGVAR(compiler_needs_object, $1)=no _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no +_LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported _LT_TAGVAR(hardcode_automatic, $1)=no _LT_TAGVAR(inherit_rpath, $1)=no _LT_TAGVAR(module_cmds, $1)= @@ -7346,30 +7007,23 @@ _LT_TAGVAR(whole_archive_flag_spec, $1)= _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no -# Source file extension for fc test sources. -ac_ext=${ac_fc_srcext-f} +# Source file extension for C++ test sources. +ac_ext=cpp -# Object file extension for compiled fc test sources. +# Object file extension for compiled C++ test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # No sense in running all these tests if we already determined that -# the FC compiler isn't working. Some variables (like enable_shared) +# the CXX compiler isn't working. Some variables (like enable_shared) # are currently assumed to apply to all compilers on this platform, # and will be corrupted by setting them based on a non-working compiler. -if test "$_lt_disable_FC" != yes; then +if test "$_lt_caught_CXX_error" != yes; then # Code to be used in simple compile tests - lt_simple_compile_test_code="\ - subroutine t - return - end -" + lt_simple_compile_test_code="int some_variable = 0;" # Code to be used in simple link tests - lt_simple_link_test_code="\ - program t - end -" + lt_simple_link_test_code='int main(int, char *[[]]) { return(0); }' # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER @@ -7379,2533 +7033,2893 @@ _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. - lt_save_CC="$CC" - lt_save_GCC=$GCC + lt_save_CC=$CC lt_save_CFLAGS=$CFLAGS - CC=${FC-"f95"} - CFLAGS=$FCFLAGS + lt_save_LD=$LD + lt_save_GCC=$GCC + GCC=$GXX + lt_save_with_gnu_ld=$with_gnu_ld + lt_save_path_LD=$lt_cv_path_LD + if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then + lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx + else + $as_unset lt_cv_prog_gnu_ld + fi + if test -n "${lt_cv_path_LDCXX+set}"; then + lt_cv_path_LD=$lt_cv_path_LDCXX + else + $as_unset lt_cv_path_LD + fi + test -z "${LDCXX+set}" || LD=$LDCXX + CC=${CXX-"c++"} + CFLAGS=$CXXFLAGS compiler=$CC - GCC=$ac_cv_fc_compiler_gnu - _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) if test -n "$compiler"; then - AC_MSG_CHECKING([if libtool supports shared libraries]) - AC_MSG_RESULT([$can_build_shared]) + # We don't want -fno-exception when compiling C++ code, so set the + # no_builtin_flag separately + if test "$GXX" = yes; then + _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' + else + _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= + fi - AC_MSG_CHECKING([whether to build shared libraries]) - test "$can_build_shared" = "no" && enable_shared=no + if test "$GXX" = yes; then + # Set up default GNU C++ configuration - # On AIX, shared libraries and static libraries use the same namespace, and - # are all built from PIC. + LT_PATH_LD + + # Check if GNU C++ uses GNU ld as the underlying linker, since the + # archiving commands below assume that GNU ld is being used. + if test "$with_gnu_ld" = yes; then + _LT_TAGVAR(archive_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' + + # If archive_cmds runs LD, not CC, wlarc should be empty + # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to + # investigate it a little bit more. (MM) + wlarc='${wl}' + + # ancient GNU ld didn't support --whole-archive et. al. + if eval "`$CC -print-prog-name=ld` --help 2>&1" | + $GREP 'no-whole-archive' > /dev/null; then + _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' + else + _LT_TAGVAR(whole_archive_flag_spec, $1)= + fi + else + with_gnu_ld=no + wlarc= + + # A generic and very simple default shared library creation + # command for GNU C++ for the case where it uses the native + # linker, instead of GNU ld. If possible, this setting should + # overridden to take advantage of the native linker features on + # the platform it is being used on. + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' + fi + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' + + else + GXX=no + with_gnu_ld=no + wlarc= + fi + + # PORTME: fill in a description of your system's C++ link characteristics + AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) + _LT_TAGVAR(ld_shlibs, $1)=yes 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 + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no ;; aix[[4-9]]*) - 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]) + 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]].*|aix[[5-9]]*) + for ld_flag in $LDFLAGS; do + case $ld_flag in + *-brtl*) + aix_use_runtimelinking=yes + break + ;; + esac + done + ;; + esac - 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]) + exp_sym_flag='-bexport' + no_entry_flag='-bnoentry' + fi - _LT_TAGVAR(GCC, $1)="$ac_cv_fc_compiler_gnu" - _LT_TAGVAR(LD, $1)="$LD" + # 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. - ## CAVEAT EMPTOR: - ## There is no encapsulation within the following macros, do not change - ## the running order or otherwise move them around unless you know exactly - ## what you are doing... - _LT_SYS_HIDDEN_LIBDEPS($1) - _LT_COMPILER_PIC($1) - _LT_COMPILER_C_O($1) - _LT_COMPILER_FILE_LOCKS($1) - _LT_LINKER_SHLIBS($1) - _LT_SYS_DYNAMIC_LINKER($1) - _LT_LINKER_HARDCODE_LIBPATH($1) + _LT_TAGVAR(archive_cmds, $1)='' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(hardcode_libdir_separator, $1)=':' + _LT_TAGVAR(link_all_deplibs, $1)=yes + _LT_TAGVAR(file_list_spec, $1)='${wl}-f,' - _LT_CONFIG($1) - fi # test -n "$compiler" + if test "$GXX" = yes; then + case $host_os in aix4.[[012]]|aix4.[[012]].*) + # We only want to do this on AIX 4.2 and lower, the check + # below for broken collect2 doesn't work under 4.3+ + collect2name=`${CC} -print-prog-name=collect2` + if test -f "$collect2name" && + strings "$collect2name" | $GREP resolve_lib_name >/dev/null + then + # We have reworked collect2 + : + else + # We have old collect2 + _LT_TAGVAR(hardcode_direct, $1)=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 + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)= + fi + esac + shared_flag='-shared' + if test "$aix_use_runtimelinking" = yes; then + shared_flag="$shared_flag "'${wl}-G' + fi + else + # not using gcc + if test "$host_cpu" = ia64; then + # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release + # chokes on -Wl,-G. The following line is correct: + shared_flag='-G' + else + if test "$aix_use_runtimelinking" = yes; then + shared_flag='${wl}-G' + else + shared_flag='${wl}-bM:SRE' + fi + fi + fi - GCC=$lt_save_GCC - CC=$lt_save_CC - CFLAGS=$lt_save_CFLAGS -fi # test "$_lt_disable_FC" != yes + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall' + # It seems that -bexpall does not export symbols beginning with + # underscore (_), so it is better to generate a list of symbols to + # export. + _LT_TAGVAR(always_export_symbols, $1)=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. + _LT_TAGVAR(allow_undefined_flag, $1)='-berok' + # Determine the default libpath from the value encoded in an empty + # executable. + _LT_SYS_MODULE_PATH_AIX([$1]) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" -AC_LANG_POP -])# _LT_LANG_FC_CONFIG + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" + else + if test "$host_cpu" = ia64; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' + _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs" + _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" + else + # Determine the default libpath from the value encoded in an + # empty executable. + _LT_SYS_MODULE_PATH_AIX([$1]) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" + # Warning - without using the other run time loading flags, + # -berok will link without error, but may produce a broken library. + _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' + _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' + if test "$with_gnu_ld" = yes; then + # We only use this code for GNU lds that support --whole-archive. + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' + else + # Exported symbols can be pulled into shared objects from archives + _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' + fi + _LT_TAGVAR(archive_cmds_need_lc, $1)=yes + # This is similar to how AIX traditionally builds its shared + # libraries. + _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' + fi + fi + ;; + beos*) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + # Joseph Beckenbach says some releases of gcc + # support --undefined. This deserves some investigation. FIXME + _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; -# _LT_LANG_GCJ_CONFIG([TAG]) -# -------------------------- -# Ensure that the configuration variables for the GNU Java Compiler compiler -# are suitably defined. These variables are subsequently used by _LT_CONFIG -# to write the compiler configuration to `libtool'. -m4_defun([_LT_LANG_GCJ_CONFIG], -[AC_REQUIRE([LT_PROG_GCJ])dnl -AC_LANG_SAVE + chorus*) + case $cc_basename in + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; -# Source file extension for Java test sources. -ac_ext=java + cygwin* | mingw* | pw32* | cegcc*) + case $GXX,$cc_basename in + ,cl* | no,cl*) + # Native MSVC + # hardcode_libdir_flag_spec is actually meaningless, as there is + # no search path for DLLs. + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_TAGVAR(always_export_symbols, $1)=yes + _LT_TAGVAR(file_list_spec, $1)='@' + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=".dll" + # FIXME: Setting linknames here is a bad hack. + _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' + _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then + $SED -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; + else + $SED -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; + fi~ + $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ + linknames=' + # The linker will not automatically build a static lib if we build a DLL. + # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + # Don't use ranlib + _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib' + _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~ + lt_tool_outputfile="@TOOL_OUTPUT@"~ + case $lt_outputfile in + *.exe|*.EXE) ;; + *) + lt_outputfile="$lt_outputfile.exe" + lt_tool_outputfile="$lt_tool_outputfile.exe" + ;; + esac~ + func_to_tool_file "$lt_outputfile"~ + if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then + $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; + $RM "$lt_outputfile.manifest"; + fi' + ;; + *) + # g++ + # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, + # as there is no search path for DLLs. + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-all-symbols' + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_TAGVAR(always_export_symbols, $1)=no + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes -# Object file extension for compiled Java test sources. -objext=o -_LT_TAGVAR(objext, $1)=$objext + if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + # If the export-symbols file already is a .def file (1st line + # is EXPORTS), use it as is; otherwise, prepend... + _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then + cp $export_symbols $output_objdir/$soname.def; + else + echo EXPORTS > $output_objdir/$soname.def; + cat $export_symbols >> $output_objdir/$soname.def; + fi~ + $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + darwin* | rhapsody*) + _LT_DARWIN_LINKER_FEATURES($1) + ;; -# Code to be used in simple compile tests -lt_simple_compile_test_code="class foo {}" + dgux*) + case $cc_basename in + ec++*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + ghcx*) + # Green Hills C++ Compiler + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; -# Code to be used in simple link tests -lt_simple_link_test_code='public class conftest { public static void main(String[[]] argv) {}; }' + freebsd2.*) + # C++ shared libraries reported to be fairly broken before + # switch to ELF + _LT_TAGVAR(ld_shlibs, $1)=no + ;; -# ltmain only uses $CC for tagged configurations so make sure $CC is set. -_LT_TAG_COMPILER + freebsd-elf*) + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + ;; -# save warnings/boilerplate of simple test code -_LT_COMPILER_BOILERPLATE -_LT_LINKER_BOILERPLATE + freebsd* | dragonfly*) + # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF + # conventions + _LT_TAGVAR(ld_shlibs, $1)=yes + ;; -# Allow CC to be a program name with arguments. -lt_save_CC=$CC -lt_save_CFLAGS=$CFLAGS -lt_save_GCC=$GCC -GCC=yes -CC=${GCJ-"gcj"} -CFLAGS=$GCJFLAGS -compiler=$CC -_LT_TAGVAR(compiler, $1)=$CC -_LT_TAGVAR(LD, $1)="$LD" -_LT_CC_BASENAME([$compiler]) + haiku*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(link_all_deplibs, $1)=yes + ;; -# GCJ did not exist at the time GCC didn't implicitly link libc in. -_LT_TAGVAR(archive_cmds_need_lc, $1)=no + hpux9*) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, + # but as the default + # location of the library. -_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds -_LT_TAGVAR(reload_flag, $1)=$reload_flag -_LT_TAGVAR(reload_cmds, $1)=$reload_cmds + case $cc_basename in + CC*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + aCC*) + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' + ;; + *) + if test "$GXX" = yes; then + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -nostdlib $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + else + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; -if test -n "$compiler"; then - _LT_COMPILER_NO_RTTI($1) - _LT_COMPILER_PIC($1) - _LT_COMPILER_C_O($1) - _LT_COMPILER_FILE_LOCKS($1) - _LT_LINKER_SHLIBS($1) - _LT_LINKER_HARDCODE_LIBPATH($1) + hpux10*|hpux11*) + if test $with_gnu_ld = no; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: - _LT_CONFIG($1) -fi + case $host_cpu in + hppa*64*|ia64*) + ;; + *) + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + ;; + esac + fi + case $host_cpu in + hppa*64*|ia64*) + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + *) + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, + # but as the default + # location of the library. + ;; + esac -AC_LANG_RESTORE + case $cc_basename in + CC*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + aCC*) + case $host_cpu in + hppa*64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + ia64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + esac + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' + ;; + *) + if test "$GXX" = yes; then + if test $with_gnu_ld = no; then + case $host_cpu in + hppa*64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + ia64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + esac + fi + else + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; -GCC=$lt_save_GCC -CC=$lt_save_CC -CFLAGS=$lt_save_CFLAGS -])# _LT_LANG_GCJ_CONFIG + interix[[3-9]]*) + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. + # Instead, shared libraries are loaded at an image base (0x10000000 by + # default) and relocated if they conflict, which is a slow very memory + # consuming and fragmenting process. To avoid this, we pick a random, + # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link + # time. Moving up from 0x10000000 also allows more sbrk(2) space. + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + ;; + irix5* | irix6*) + case $cc_basename in + CC*) + # SGI C++ + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' + # Archives containing C++ object files must be created using + # "CC -ar", where "CC" is the IRIX C++ compiler. This is + # necessary to make sure instantiated templates are included + # in the archive. + _LT_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs' + ;; + *) + if test "$GXX" = yes; then + if test "$with_gnu_ld" = no; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + else + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` -o $lib' + fi + fi + _LT_TAGVAR(link_all_deplibs, $1)=yes + ;; + esac + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(inherit_rpath, $1)=yes + ;; -# _LT_LANG_GO_CONFIG([TAG]) -# -------------------------- -# Ensure that the configuration variables for the GNU Go compiler -# are suitably defined. These variables are subsequently used by _LT_CONFIG -# to write the compiler configuration to `libtool'. -m4_defun([_LT_LANG_GO_CONFIG], -[AC_REQUIRE([LT_PROG_GO])dnl -AC_LANG_SAVE + linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) + case $cc_basename in + KCC*) + # Kuck and Associates, Inc. (KAI) C++ Compiler -# Source file extension for Go test sources. -ac_ext=go + # KCC will only create a shared library if the output file + # ends with ".so" (or ".sl" for HP-UX), so rename the library + # to its proper name (with version) after linking. + _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib' + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' -# Object file extension for compiled Go test sources. -objext=o -_LT_TAGVAR(objext, $1)=$objext + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' -# Code to be used in simple compile tests -lt_simple_compile_test_code="package main; func main() { }" + # Archives containing C++ object files must be created using + # "CC -Bstatic", where "CC" is the KAI C++ compiler. + _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' + ;; + icpc* | ecpc* ) + # Intel C++ + with_gnu_ld=yes + # version 8.0 and above of icpc choke on multiply defined symbols + # if we add $predep_objects and $postdep_objects, however 7.1 and + # earlier do not add the objects themselves. + case `$CC -V 2>&1` in + *"Version 7."*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + ;; + *) # Version 8.0 or newer + tmp_idyn= + case $host_cpu in + ia64*) tmp_idyn=' -i_dynamic';; + esac + _LT_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + ;; + esac + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' + ;; + pgCC* | pgcpp*) + # Portland Group C++ compiler + case `$CC -V` in + *pgCC\ [[1-5]].* | *pgcpp\ [[1-5]].*) + _LT_TAGVAR(prelink_cmds, $1)='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~ + compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"' + _LT_TAGVAR(old_archive_cmds, $1)='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~ + $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~ + $RANLIB $oldlib' + _LT_TAGVAR(archive_cmds, $1)='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ + $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ + $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' + ;; + *) # Version 6 and above use weak symbols + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' + ;; + esac -# Code to be used in simple link tests -lt_simple_link_test_code='package main; func main() { }' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' + ;; + cxx*) + # Compaq C++ + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib ${wl}-retain-symbols-file $wl$export_symbols' -# ltmain only uses $CC for tagged configurations so make sure $CC is set. -_LT_TAG_COMPILER + runpath_var=LD_RUN_PATH + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: -# save warnings/boilerplate of simple test code -_LT_COMPILER_BOILERPLATE -_LT_LINKER_BOILERPLATE + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "X$list" | $Xsed' + ;; + xl* | mpixl* | bgxl*) + # IBM XL 8.0 on PPC, with GNU ld + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' + _LT_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + if test "x$supports_anon_versioning" = xyes; then + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' + fi + ;; + *) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) + # Sun C++ 5.9 + _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' + _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' + _LT_TAGVAR(compiler_needs_object, $1)=yes -# Allow CC to be a program name with arguments. -lt_save_CC=$CC -lt_save_CFLAGS=$CFLAGS -lt_save_GCC=$GCC -GCC=yes -CC=${GOC-"gccgo"} -CFLAGS=$GOFLAGS -compiler=$CC -_LT_TAGVAR(compiler, $1)=$CC -_LT_TAGVAR(LD, $1)="$LD" -_LT_CC_BASENAME([$compiler]) + # Not sure whether something based on + # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 + # would be better. + output_verbose_link_cmd='func_echo_all' -# Go did not exist at the time GCC didn't implicitly link libc in. -_LT_TAGVAR(archive_cmds_need_lc, $1)=no + # Archives containing C++ object files must be created using + # "CC -xar", where "CC" is the Sun C++ compiler. This is + # necessary to make sure instantiated templates are included + # in the archive. + _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' + ;; + esac + ;; + esac + ;; -_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds -_LT_TAGVAR(reload_flag, $1)=$reload_flag -_LT_TAGVAR(reload_cmds, $1)=$reload_cmds + lynxos*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; -if test -n "$compiler"; then - _LT_COMPILER_NO_RTTI($1) - _LT_COMPILER_PIC($1) - _LT_COMPILER_C_O($1) - _LT_COMPILER_FILE_LOCKS($1) - _LT_LINKER_SHLIBS($1) - _LT_LINKER_HARDCODE_LIBPATH($1) + m88k*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; - _LT_CONFIG($1) -fi + mvs*) + case $cc_basename in + cxx*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; -AC_LANG_RESTORE + netbsd*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' + wlarc= + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + fi + # Workaround some broken pre-1.5 toolchains + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"' + ;; -GCC=$lt_save_GCC -CC=$lt_save_CC -CFLAGS=$lt_save_CFLAGS -])# _LT_LANG_GO_CONFIG + *nto* | *qnx*) + _LT_TAGVAR(ld_shlibs, $1)=yes + ;; + openbsd2*) + # C++ shared libraries are fairly broken + _LT_TAGVAR(ld_shlibs, $1)=no + ;; -# _LT_LANG_RC_CONFIG([TAG]) -# ------------------------- -# Ensure that the configuration variables for the Windows resource compiler -# are suitably defined. These variables are subsequently used by _LT_CONFIG -# to write the compiler configuration to `libtool'. -m4_defun([_LT_LANG_RC_CONFIG], -[AC_REQUIRE([LT_PROG_RC])dnl -AC_LANG_SAVE + openbsd*) + if test -f /usr/libexec/ld.so; then + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' + fi + output_verbose_link_cmd=func_echo_all + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; -# Source file extension for RC test sources. -ac_ext=rc + osf3* | osf4* | osf5*) + case $cc_basename in + KCC*) + # Kuck and Associates, Inc. (KAI) C++ Compiler -# Object file extension for compiled RC test sources. -objext=o -_LT_TAGVAR(objext, $1)=$objext + # KCC will only create a shared library if the output file + # ends with ".so" (or ".sl" for HP-UX), so rename the library + # to its proper name (with version) after linking. + _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' -# Code to be used in simple compile tests -lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: -# Code to be used in simple link tests -lt_simple_link_test_code="$lt_simple_compile_test_code" + # Archives containing C++ object files must be created using + # the KAI C++ compiler. + case $host in + osf3*) _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ;; + *) _LT_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs' ;; + esac + ;; + RCC*) + # Rational C++ 2.4.1 + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + cxx*) + case $host in + osf3*) + _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && func_echo_all "${wl}-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + ;; + *) + _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~ + echo "-hidden">> $lib.exp~ + $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname ${wl}-input ${wl}$lib.exp `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~ + $RM $lib.exp' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' + ;; + esac -# ltmain only uses $CC for tagged configurations so make sure $CC is set. -_LT_TAG_COMPILER + _LT_TAGVAR(hardcode_libdir_separator, $1)=: -# save warnings/boilerplate of simple test code -_LT_COMPILER_BOILERPLATE -_LT_LINKER_BOILERPLATE + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' + ;; + *) + if test "$GXX" = yes && test "$with_gnu_ld" = no; then + _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' + case $host in + osf3*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + ;; + esac -# Allow CC to be a program name with arguments. -lt_save_CC="$CC" -lt_save_CFLAGS=$CFLAGS -lt_save_GCC=$GCC -GCC= -CC=${RC-"windres"} -CFLAGS= -compiler=$CC -_LT_TAGVAR(compiler, $1)=$CC -_LT_CC_BASENAME([$compiler]) -_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: -if test -n "$compiler"; then - : - _LT_CONFIG($1) -fi + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' -GCC=$lt_save_GCC -AC_LANG_RESTORE -CC=$lt_save_CC -CFLAGS=$lt_save_CFLAGS -])# _LT_LANG_RC_CONFIG + else + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + psos*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; -# LT_PROG_GCJ -# ----------- -AC_DEFUN([LT_PROG_GCJ], -[m4_ifdef([AC_PROG_GCJ], [AC_PROG_GCJ], - [m4_ifdef([A][M_PROG_GCJ], [A][M_PROG_GCJ], - [AC_CHECK_TOOL(GCJ, gcj,) - test "x${GCJFLAGS+set}" = xset || GCJFLAGS="-g -O2" - AC_SUBST(GCJFLAGS)])])[]dnl -]) + sunos4*) + case $cc_basename in + CC*) + # Sun C++ 4.x + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + lcc*) + # Lucid + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; -# Old name: -AU_ALIAS([LT_AC_PROG_GCJ], [LT_PROG_GCJ]) -dnl aclocal-1.4 backwards compatibility: -dnl AC_DEFUN([LT_AC_PROG_GCJ], []) + solaris*) + case $cc_basename in + CC* | sunCC*) + # Sun C++ 4.2, 5.x and Centerline C++ + _LT_TAGVAR(archive_cmds_need_lc,$1)=yes + _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' + _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -G${allow_undefined_flag} ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + case $host_os in + solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; + *) + # The compiler driver will combine and reorder linker options, + # but understands `-z linker_flag'. + # Supported since Solaris 2.6 (maybe 2.5.1?) + _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' + ;; + esac + _LT_TAGVAR(link_all_deplibs, $1)=yes -# LT_PROG_GO -# ---------- -AC_DEFUN([LT_PROG_GO], -[AC_CHECK_TOOL(GOC, gccgo,) -]) + output_verbose_link_cmd='func_echo_all' + # Archives containing C++ object files must be created using + # "CC -xar", where "CC" is the Sun C++ compiler. This is + # necessary to make sure instantiated templates are included + # in the archive. + _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' + ;; + gcx*) + # Green Hills C++ Compiler + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' -# LT_PROG_RC -# ---------- -AC_DEFUN([LT_PROG_RC], -[AC_CHECK_TOOL(RC, windres,) -]) + # The C++ compiler must be used to create the archive. + _LT_TAGVAR(old_archive_cmds, $1)='$CC $LDFLAGS -archive -o $oldlib $oldobjs' + ;; + *) + # GNU C++ compiler with Solaris linker + if test "$GXX" = yes && test "$with_gnu_ld" = no; then + _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-z ${wl}defs' + if $CC --version | $GREP -v '^2\.7' > /dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -shared $pic_flag -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' -# Old name: -AU_ALIAS([LT_AC_PROG_RC], [LT_PROG_RC]) -dnl aclocal-1.4 backwards compatibility: -dnl AC_DEFUN([LT_AC_PROG_RC], []) + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' + else + # g++ 2.7 appears to require `-G' NOT `-shared' on this + # platform. + _LT_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' + fi -# _LT_DECL_EGREP -# -------------- -# If we don't have a new enough Autoconf to choose the best grep -# available, choose the one first in the user's PATH. -m4_defun([_LT_DECL_EGREP], -[AC_REQUIRE([AC_PROG_EGREP])dnl -AC_REQUIRE([AC_PROG_FGREP])dnl -test -z "$GREP" && GREP=grep -_LT_DECL([], [GREP], [1], [A grep program that handles long lines]) -_LT_DECL([], [EGREP], [1], [An ERE matcher]) -_LT_DECL([], [FGREP], [1], [A literal string matcher]) -dnl Non-bleeding-edge autoconf doesn't subst GREP, so do it here too -AC_SUBST([GREP]) -]) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $wl$libdir' + case $host_os in + solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; + *) + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' + ;; + esac + fi + ;; + esac + ;; + sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) + _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + runpath_var='LD_RUN_PATH' -# _LT_DECL_OBJDUMP -# -------------- -# If we don't have a new enough Autoconf to choose the best objdump -# available, choose the one first in the user's PATH. -m4_defun([_LT_DECL_OBJDUMP], -[AC_CHECK_TOOL(OBJDUMP, objdump, false) -test -z "$OBJDUMP" && OBJDUMP=objdump -_LT_DECL([], [OBJDUMP], [1], [An object symbol dumper]) -AC_SUBST([OBJDUMP]) -]) + case $cc_basename in + CC*) + _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + ;; -# _LT_DECL_DLLTOOL -# ---------------- -# Ensure DLLTOOL variable is set. -m4_defun([_LT_DECL_DLLTOOL], -[AC_CHECK_TOOL(DLLTOOL, dlltool, false) -test -z "$DLLTOOL" && DLLTOOL=dlltool -_LT_DECL([], [DLLTOOL], [1], [DLL creation program]) -AC_SUBST([DLLTOOL]) -]) + sysv5* | sco3.2v5* | sco5v6*) + # Note: We can NOT use -z defs as we might desire, because we do not + # link with -lc, and that would cause any symbols used from libc to + # always be unresolved, which means just about no library would + # ever link correctly. If we're not using GNU ld we use -z text + # though, which does catch some bad symbols but isn't as heavy-handed + # as -z defs. + _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' + _LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs' + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=':' + _LT_TAGVAR(link_all_deplibs, $1)=yes + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' + runpath_var='LD_RUN_PATH' -# _LT_DECL_SED -# ------------ -# Check for a fully-functional sed program, that truncates -# as few characters as possible. Prefer GNU sed if found. -m4_defun([_LT_DECL_SED], -[AC_PROG_SED -test -z "$SED" && SED=sed -Xsed="$SED -e 1s/^X//" -_LT_DECL([], [SED], [1], [A sed program that does not truncate output]) -_LT_DECL([], [Xsed], ["\$SED -e 1s/^X//"], - [Sed that helps us avoid accidentally triggering echo(1) options like -n]) -])# _LT_DECL_SED + case $cc_basename in + CC*) + _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(old_archive_cmds, $1)='$CC -Tprelink_objects $oldobjs~ + '"$_LT_TAGVAR(old_archive_cmds, $1)" + _LT_TAGVAR(reload_cmds, $1)='$CC -Tprelink_objects $reload_objs~ + '"$_LT_TAGVAR(reload_cmds, $1)" + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + ;; -m4_ifndef([AC_PROG_SED], [ -# 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. # + tandem*) + case $cc_basename in + NCC*) + # NonStop-UX NCC 3.20 + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; -m4_defun([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_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for lt_ac_prog in sed gsed; do - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then - lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext" - fi - done - done -done -IFS=$as_save_IFS -lt_ac_max=0 -lt_ac_count=0 -# Add /usr/xpg4/bin/sed as it is typically found on Solaris -# along with /bin/sed that truncates output. -for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do - test ! -f $lt_ac_sed && continue - cat /dev/null > conftest.in - lt_ac_count=0 - echo $ECHO_N "0123456789$ECHO_C" >conftest.in - # Check for GNU sed and select it if it is found. - if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then - lt_cv_path_SED=$lt_ac_sed - break - fi - while true; do - cat conftest.in conftest.in >conftest.tmp - mv conftest.tmp conftest.in - cp conftest.in conftest.nl - echo >>conftest.nl - $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break - cmp -s conftest.out conftest.nl || break - # 10000 chars as input seems more than enough - test $lt_ac_count -gt 10 && break - lt_ac_count=`expr $lt_ac_count + 1` - if test $lt_ac_count -gt $lt_ac_max; then - lt_ac_max=$lt_ac_count - lt_cv_path_SED=$lt_ac_sed - fi - done -done -]) -SED=$lt_cv_path_SED -AC_SUBST([SED]) -AC_MSG_RESULT([$SED]) -])#AC_PROG_SED -])#m4_ifndef + vxworks*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; -# Old name: -AU_ALIAS([LT_AC_PROG_SED], [AC_PROG_SED]) -dnl aclocal-1.4 backwards compatibility: -dnl AC_DEFUN([LT_AC_PROG_SED], []) + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)]) + test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no -# _LT_CHECK_SHELL_FEATURES -# ------------------------ -# Find out whether the shell is Bourne or XSI compatible, -# or has some other useful features. -m4_defun([_LT_CHECK_SHELL_FEATURES], -[AC_MSG_CHECKING([whether the shell understands some XSI constructs]) -# Try some XSI features -xsi_shell=no -( _lt_dummy="a/b/c" - test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \ - = c,a/b,b/c, \ - && eval 'test $(( 1 + 1 )) -eq 2 \ - && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ - && xsi_shell=yes -AC_MSG_RESULT([$xsi_shell]) -_LT_CONFIG_LIBTOOL_INIT([xsi_shell='$xsi_shell']) + _LT_TAGVAR(GCC, $1)="$GXX" + _LT_TAGVAR(LD, $1)="$LD" -AC_MSG_CHECKING([whether the shell understands "+="]) -lt_shell_append=no -( foo=bar; set foo baz; eval "$[1]+=\$[2]" && test "$foo" = barbaz ) \ - >/dev/null 2>&1 \ - && lt_shell_append=yes -AC_MSG_RESULT([$lt_shell_append]) -_LT_CONFIG_LIBTOOL_INIT([lt_shell_append='$lt_shell_append']) + ## CAVEAT EMPTOR: + ## There is no encapsulation within the following macros, do not change + ## the running order or otherwise move them around unless you know exactly + ## what you are doing... + _LT_SYS_HIDDEN_LIBDEPS($1) + _LT_COMPILER_PIC($1) + _LT_COMPILER_C_O($1) + _LT_COMPILER_FILE_LOCKS($1) + _LT_LINKER_SHLIBS($1) + _LT_SYS_DYNAMIC_LINKER($1) + _LT_LINKER_HARDCODE_LIBPATH($1) -if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then - lt_unset=unset -else - lt_unset=false -fi -_LT_DECL([], [lt_unset], [0], [whether the shell understands "unset"])dnl + _LT_CONFIG($1) + fi # test -n "$compiler" -# test EBCDIC or ASCII -case `echo X|tr X '\101'` in - A) # ASCII based system - # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr - lt_SP2NL='tr \040 \012' - lt_NL2SP='tr \015\012 \040\040' - ;; - *) # EBCDIC based system - lt_SP2NL='tr \100 \n' - lt_NL2SP='tr \r\n \100\100' - ;; -esac -_LT_DECL([SP2NL], [lt_SP2NL], [1], [turn spaces into newlines])dnl -_LT_DECL([NL2SP], [lt_NL2SP], [1], [turn newlines into spaces])dnl -])# _LT_CHECK_SHELL_FEATURES + CC=$lt_save_CC + CFLAGS=$lt_save_CFLAGS + LDCXX=$LD + LD=$lt_save_LD + GCC=$lt_save_GCC + with_gnu_ld=$lt_save_with_gnu_ld + lt_cv_path_LDCXX=$lt_cv_path_LD + lt_cv_path_LD=$lt_save_path_LD + lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld + lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld +fi # test "$_lt_caught_CXX_error" != yes +AC_LANG_POP +])# _LT_LANG_CXX_CONFIG -# _LT_PROG_FUNCTION_REPLACE (FUNCNAME, REPLACEMENT-BODY) -# ------------------------------------------------------ -# In `$cfgfile', look for function FUNCNAME delimited by `^FUNCNAME ()$' and -# '^} FUNCNAME ', and replace its body with REPLACEMENT-BODY. -m4_defun([_LT_PROG_FUNCTION_REPLACE], -[dnl { -sed -e '/^$1 ()$/,/^} # $1 /c\ -$1 ()\ -{\ -m4_bpatsubsts([$2], [$], [\\], [^\([ ]\)], [\\\1]) -} # Extended-shell $1 implementation' "$cfgfile" > $cfgfile.tmp \ - && mv -f "$cfgfile.tmp" "$cfgfile" \ - || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -test 0 -eq $? || _lt_function_replace_fail=: -]) +# _LT_FUNC_STRIPNAME_CNF +# ---------------------- +# func_stripname_cnf prefix suffix name +# strip PREFIX and SUFFIX off of NAME. +# PREFIX and SUFFIX must not contain globbing or regex special +# characters, hashes, percent signs, but SUFFIX may contain a leading +# dot (in which case that matches only a dot). +# +# This function is identical to the (non-XSI) version of func_stripname, +# except this one can be used by m4 code that may be executed by configure, +# rather than the libtool script. +m4_defun([_LT_FUNC_STRIPNAME_CNF],[dnl +AC_REQUIRE([_LT_DECL_SED]) +AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH]) +func_stripname_cnf () +{ + case ${2} in + .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;; + *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;; + esac +} # func_stripname_cnf +])# _LT_FUNC_STRIPNAME_CNF -# _LT_PROG_REPLACE_SHELLFNS -# ------------------------- -# Replace existing portable implementations of several shell functions with -# equivalent extended shell implementations where those features are available.. -m4_defun([_LT_PROG_REPLACE_SHELLFNS], -[if test x"$xsi_shell" = xyes; then - _LT_PROG_FUNCTION_REPLACE([func_dirname], [dnl - case ${1} in - */*) func_dirname_result="${1%/*}${2}" ;; - * ) func_dirname_result="${3}" ;; - esac]) +# _LT_SYS_HIDDEN_LIBDEPS([TAGNAME]) +# --------------------------------- +# Figure out "hidden" library dependencies from verbose +# compiler output when linking a shared library. +# Parse the compiler output and extract the necessary +# objects, libraries and library flags. +m4_defun([_LT_SYS_HIDDEN_LIBDEPS], +[m4_require([_LT_FILEUTILS_DEFAULTS])dnl +AC_REQUIRE([_LT_FUNC_STRIPNAME_CNF])dnl +# Dependencies to place before and after the object being linked: +_LT_TAGVAR(predep_objects, $1)= +_LT_TAGVAR(postdep_objects, $1)= +_LT_TAGVAR(predeps, $1)= +_LT_TAGVAR(postdeps, $1)= +_LT_TAGVAR(compiler_lib_search_path, $1)= - _LT_PROG_FUNCTION_REPLACE([func_basename], [dnl - func_basename_result="${1##*/}"]) +dnl we can't use the lt_simple_compile_test_code here, +dnl because it contains code intended for an executable, +dnl not a library. It's possible we should let each +dnl tag define a new lt_????_link_test_code variable, +dnl but it's only used here... +m4_if([$1], [], [cat > conftest.$ac_ext <<_LT_EOF +int a; +void foo (void) { a = 0; } +_LT_EOF +], [$1], [CXX], [cat > conftest.$ac_ext <<_LT_EOF +class Foo +{ +public: + Foo (void) { a = 0; } +private: + int a; +}; +_LT_EOF +], [$1], [F77], [cat > conftest.$ac_ext <<_LT_EOF + subroutine foo + implicit none + integer*4 a + a=0 + return + end +_LT_EOF +], [$1], [FC], [cat > conftest.$ac_ext <<_LT_EOF + subroutine foo + implicit none + integer a + a=0 + return + end +_LT_EOF +], [$1], [GCJ], [cat > conftest.$ac_ext <<_LT_EOF +public class foo { + private int a; + public void bar (void) { + a = 0; + } +}; +_LT_EOF +], [$1], [GO], [cat > conftest.$ac_ext <<_LT_EOF +package foo +func foo() { +} +_LT_EOF +]) - _LT_PROG_FUNCTION_REPLACE([func_dirname_and_basename], [dnl - case ${1} in - */*) func_dirname_result="${1%/*}${2}" ;; - * ) func_dirname_result="${3}" ;; - esac - func_basename_result="${1##*/}"]) +_lt_libdeps_save_CFLAGS=$CFLAGS +case "$CC $CFLAGS " in #( +*\ -flto*\ *) CFLAGS="$CFLAGS -fno-lto" ;; +*\ -fwhopr*\ *) CFLAGS="$CFLAGS -fno-whopr" ;; +*\ -fuse-linker-plugin*\ *) CFLAGS="$CFLAGS -fno-use-linker-plugin" ;; +esac - _LT_PROG_FUNCTION_REPLACE([func_stripname], [dnl - # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are - # positional parameters, so assign one to ordinary parameter first. - func_stripname_result=${3} - func_stripname_result=${func_stripname_result#"${1}"} - func_stripname_result=${func_stripname_result%"${2}"}]) +dnl Parse the compiler output and extract the necessary +dnl objects, libraries and library flags. +if AC_TRY_EVAL(ac_compile); then + # Parse the compiler output and extract the necessary + # objects, libraries and library flags. - _LT_PROG_FUNCTION_REPLACE([func_split_long_opt], [dnl - func_split_long_opt_name=${1%%=*} - func_split_long_opt_arg=${1#*=}]) + # Sentinel used to keep track of whether or not we are before + # the conftest object file. + pre_test_object_deps_done=no - _LT_PROG_FUNCTION_REPLACE([func_split_short_opt], [dnl - func_split_short_opt_arg=${1#??} - func_split_short_opt_name=${1%"$func_split_short_opt_arg"}]) + for p in `eval "$output_verbose_link_cmd"`; do + case ${prev}${p} in - _LT_PROG_FUNCTION_REPLACE([func_lo2o], [dnl - case ${1} in - *.lo) func_lo2o_result=${1%.lo}.${objext} ;; - *) func_lo2o_result=${1} ;; - esac]) + -L* | -R* | -l*) + # Some compilers place space between "-{L,R}" and the path. + # Remove the space. + if test $p = "-L" || + test $p = "-R"; then + prev=$p + continue + fi - _LT_PROG_FUNCTION_REPLACE([func_xform], [ func_xform_result=${1%.*}.lo]) + # Expand the sysroot to ease extracting the directories later. + if test -z "$prev"; then + case $p in + -L*) func_stripname_cnf '-L' '' "$p"; prev=-L; p=$func_stripname_result ;; + -R*) func_stripname_cnf '-R' '' "$p"; prev=-R; p=$func_stripname_result ;; + -l*) func_stripname_cnf '-l' '' "$p"; prev=-l; p=$func_stripname_result ;; + esac + fi + case $p in + =*) func_stripname_cnf '=' '' "$p"; p=$lt_sysroot$func_stripname_result ;; + esac + if test "$pre_test_object_deps_done" = no; then + case ${prev} in + -L | -R) + # Internal compiler library paths should come after those + # provided the user. The postdeps already come after the + # user supplied libs so there is no need to process them. + if test -z "$_LT_TAGVAR(compiler_lib_search_path, $1)"; then + _LT_TAGVAR(compiler_lib_search_path, $1)="${prev}${p}" + else + _LT_TAGVAR(compiler_lib_search_path, $1)="${_LT_TAGVAR(compiler_lib_search_path, $1)} ${prev}${p}" + fi + ;; + # The "-l" case would never come before the object being + # linked, so don't bother handling this case. + esac + else + if test -z "$_LT_TAGVAR(postdeps, $1)"; then + _LT_TAGVAR(postdeps, $1)="${prev}${p}" + else + _LT_TAGVAR(postdeps, $1)="${_LT_TAGVAR(postdeps, $1)} ${prev}${p}" + fi + fi + prev= + ;; - _LT_PROG_FUNCTION_REPLACE([func_arith], [ func_arith_result=$(( $[*] ))]) + *.lto.$objext) ;; # Ignore GCC LTO objects + *.$objext) + # This assumes that the test object file only shows up + # once in the compiler output. + if test "$p" = "conftest.$objext"; then + pre_test_object_deps_done=yes + continue + fi - _LT_PROG_FUNCTION_REPLACE([func_len], [ func_len_result=${#1}]) -fi + if test "$pre_test_object_deps_done" = no; then + if test -z "$_LT_TAGVAR(predep_objects, $1)"; then + _LT_TAGVAR(predep_objects, $1)="$p" + else + _LT_TAGVAR(predep_objects, $1)="$_LT_TAGVAR(predep_objects, $1) $p" + fi + else + if test -z "$_LT_TAGVAR(postdep_objects, $1)"; then + _LT_TAGVAR(postdep_objects, $1)="$p" + else + _LT_TAGVAR(postdep_objects, $1)="$_LT_TAGVAR(postdep_objects, $1) $p" + fi + fi + ;; -if test x"$lt_shell_append" = xyes; then - _LT_PROG_FUNCTION_REPLACE([func_append], [ eval "${1}+=\\${2}"]) + *) ;; # Ignore the rest. - _LT_PROG_FUNCTION_REPLACE([func_append_quoted], [dnl - func_quote_for_eval "${2}" -dnl m4 expansion turns \\\\ into \\, and then the shell eval turns that into \ - eval "${1}+=\\\\ \\$func_quote_for_eval_result"]) + esac + done - # Save a `func_append' function call where possible by direct use of '+=' - sed -e 's%func_append \([[a-zA-Z_]]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \ - && mv -f "$cfgfile.tmp" "$cfgfile" \ - || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") - test 0 -eq $? || _lt_function_replace_fail=: + # Clean up. + rm -f a.out a.exe else - # Save a `func_append' function call even when '+=' is not available - sed -e 's%func_append \([[a-zA-Z_]]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \ - && mv -f "$cfgfile.tmp" "$cfgfile" \ - || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") - test 0 -eq $? || _lt_function_replace_fail=: + echo "libtool.m4: error: problem compiling $1 test program" fi -if test x"$_lt_function_replace_fail" = x":"; then - AC_MSG_WARN([Unable to substitute extended shell functions in $ofile]) -fi -]) +$RM -f confest.$objext +CFLAGS=$_lt_libdeps_save_CFLAGS -# _LT_PATH_CONVERSION_FUNCTIONS -# ----------------------------- -# Determine which file name conversion functions should be used by -# func_to_host_file (and, implicitly, by func_to_host_path). These are needed -# for certain cross-compile configurations and native mingw. -m4_defun([_LT_PATH_CONVERSION_FUNCTIONS], -[AC_REQUIRE([AC_CANONICAL_HOST])dnl -AC_REQUIRE([AC_CANONICAL_BUILD])dnl -AC_MSG_CHECKING([how to convert $build file names to $host format]) -AC_CACHE_VAL(lt_cv_to_host_file_cmd, -[case $host in - *-*-mingw* ) - case $build in - *-*-mingw* ) # actually msys - lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 - ;; - *-*-cygwin* ) - lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 - ;; - * ) # otherwise, assume *nix - lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32 - ;; - esac - ;; - *-*-cygwin* ) - case $build in - *-*-mingw* ) # actually msys - lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin - ;; - *-*-cygwin* ) - lt_cv_to_host_file_cmd=func_convert_file_noop - ;; - * ) # otherwise, assume *nix - lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin - ;; +# PORTME: override above test on systems where it is broken +m4_if([$1], [CXX], +[case $host_os in +interix[[3-9]]*) + # Interix 3.5 installs completely hosed .la files for C++, so rather than + # hack all around it, let's just trust "g++" to DTRT. + _LT_TAGVAR(predep_objects,$1)= + _LT_TAGVAR(postdep_objects,$1)= + _LT_TAGVAR(postdeps,$1)= + ;; + +linux*) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) + # Sun C++ 5.9 + + # The more standards-conforming stlport4 library is + # incompatible with the Cstd library. Avoid specifying + # it if it's in CXXFLAGS. Ignore libCrun as + # -library=stlport4 depends on it. + case " $CXX $CXXFLAGS " in + *" -library=stlport4 "*) + solaris_use_stlport4=yes + ;; esac + + if test "$solaris_use_stlport4" != yes; then + _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun' + fi ;; - * ) # unhandled hosts (and "normal" native builds) - lt_cv_to_host_file_cmd=func_convert_file_noop - ;; -esac -]) -to_host_file_cmd=$lt_cv_to_host_file_cmd -AC_MSG_RESULT([$lt_cv_to_host_file_cmd]) -_LT_DECL([to_host_file_cmd], [lt_cv_to_host_file_cmd], - [0], [convert $build file names to $host format])dnl + esac + ;; -AC_MSG_CHECKING([how to convert $build file names to toolchain format]) -AC_CACHE_VAL(lt_cv_to_tool_file_cmd, -[#assume ordinary cross tools, or native build. -lt_cv_to_tool_file_cmd=func_convert_file_noop -case $host in - *-*-mingw* ) - case $build in - *-*-mingw* ) # actually msys - lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32 - ;; +solaris*) + case $cc_basename in + CC* | sunCC*) + # The more standards-conforming stlport4 library is + # incompatible with the Cstd library. Avoid specifying + # it if it's in CXXFLAGS. Ignore libCrun as + # -library=stlport4 depends on it. + case " $CXX $CXXFLAGS " in + *" -library=stlport4 "*) + solaris_use_stlport4=yes + ;; esac + + # Adding this requires a known-good setup of shared libraries for + # Sun compiler versions before 5.6, else PIC objects from an old + # archive will be linked into the output, leading to subtle bugs. + if test "$solaris_use_stlport4" != yes; then + _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun' + fi ;; + esac + ;; esac -]) -to_tool_file_cmd=$lt_cv_to_tool_file_cmd -AC_MSG_RESULT([$lt_cv_to_tool_file_cmd]) -_LT_DECL([to_tool_file_cmd], [lt_cv_to_tool_file_cmd], - [0], [convert $build files to toolchain format])dnl -])# _LT_PATH_CONVERSION_FUNCTIONS +]) -# Helper functions for option handling. -*- Autoconf -*- -# -# Copyright (C) 2004, 2005, 2007, 2008, 2009 Free Software Foundation, -# Inc. -# Written by Gary V. Vaughan, 2004 -# -# This file is free software; the Free Software Foundation gives -# unlimited permission to copy and/or distribute it, with or without -# modifications, as long as this notice is preserved. +case " $_LT_TAGVAR(postdeps, $1) " in +*" -lc "*) _LT_TAGVAR(archive_cmds_need_lc, $1)=no ;; +esac + _LT_TAGVAR(compiler_lib_search_dirs, $1)= +if test -n "${_LT_TAGVAR(compiler_lib_search_path, $1)}"; then + _LT_TAGVAR(compiler_lib_search_dirs, $1)=`echo " ${_LT_TAGVAR(compiler_lib_search_path, $1)}" | ${SED} -e 's! -L! !g' -e 's!^ !!'` +fi +_LT_TAGDECL([], [compiler_lib_search_dirs], [1], + [The directories searched by this compiler when creating a shared library]) +_LT_TAGDECL([], [predep_objects], [1], + [Dependencies to place before and after the objects being linked to + create a shared library]) +_LT_TAGDECL([], [postdep_objects], [1]) +_LT_TAGDECL([], [predeps], [1]) +_LT_TAGDECL([], [postdeps], [1]) +_LT_TAGDECL([], [compiler_lib_search_path], [1], + [The library search path used internally by the compiler when linking + a shared library]) +])# _LT_SYS_HIDDEN_LIBDEPS -# serial 7 ltoptions.m4 -# This is to help aclocal find these macros, as it can't see m4_define. -AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])]) +# _LT_LANG_F77_CONFIG([TAG]) +# -------------------------- +# Ensure that the configuration variables for a Fortran 77 compiler are +# suitably defined. These variables are subsequently used by _LT_CONFIG +# to write the compiler configuration to `libtool'. +m4_defun([_LT_LANG_F77_CONFIG], +[AC_LANG_PUSH(Fortran 77) +if test -z "$F77" || test "X$F77" = "Xno"; then + _lt_disable_F77=yes +fi +_LT_TAGVAR(archive_cmds_need_lc, $1)=no +_LT_TAGVAR(allow_undefined_flag, $1)= +_LT_TAGVAR(always_export_symbols, $1)=no +_LT_TAGVAR(archive_expsym_cmds, $1)= +_LT_TAGVAR(export_dynamic_flag_spec, $1)= +_LT_TAGVAR(hardcode_direct, $1)=no +_LT_TAGVAR(hardcode_direct_absolute, $1)=no +_LT_TAGVAR(hardcode_libdir_flag_spec, $1)= +_LT_TAGVAR(hardcode_libdir_separator, $1)= +_LT_TAGVAR(hardcode_minus_L, $1)=no +_LT_TAGVAR(hardcode_automatic, $1)=no +_LT_TAGVAR(inherit_rpath, $1)=no +_LT_TAGVAR(module_cmds, $1)= +_LT_TAGVAR(module_expsym_cmds, $1)= +_LT_TAGVAR(link_all_deplibs, $1)=unknown +_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_TAGVAR(reload_flag, $1)=$reload_flag +_LT_TAGVAR(reload_cmds, $1)=$reload_cmds +_LT_TAGVAR(no_undefined_flag, $1)= +_LT_TAGVAR(whole_archive_flag_spec, $1)= +_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no -# _LT_MANGLE_OPTION(MACRO-NAME, OPTION-NAME) -# ------------------------------------------ -m4_define([_LT_MANGLE_OPTION], -[[_LT_OPTION_]m4_bpatsubst($1__$2, [[^a-zA-Z0-9_]], [_])]) +# Source file extension for f77 test sources. +ac_ext=f +# Object file extension for compiled f77 test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext -# _LT_SET_OPTION(MACRO-NAME, OPTION-NAME) -# --------------------------------------- -# Set option OPTION-NAME for macro MACRO-NAME, and if there is a -# matching handler defined, dispatch to it. Other OPTION-NAMEs are -# saved as a flag. -m4_define([_LT_SET_OPTION], -[m4_define(_LT_MANGLE_OPTION([$1], [$2]))dnl -m4_ifdef(_LT_MANGLE_DEFUN([$1], [$2]), - _LT_MANGLE_DEFUN([$1], [$2]), - [m4_warning([Unknown $1 option `$2'])])[]dnl -]) +# No sense in running all these tests if we already determined that +# the F77 compiler isn't working. Some variables (like enable_shared) +# are currently assumed to apply to all compilers on this platform, +# and will be corrupted by setting them based on a non-working compiler. +if test "$_lt_disable_F77" != yes; then + # Code to be used in simple compile tests + lt_simple_compile_test_code="\ + subroutine t + return + end +" + # Code to be used in simple link tests + lt_simple_link_test_code="\ + program t + end +" -# _LT_IF_OPTION(MACRO-NAME, OPTION-NAME, IF-SET, [IF-NOT-SET]) -# ------------------------------------------------------------ -# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. -m4_define([_LT_IF_OPTION], -[m4_ifdef(_LT_MANGLE_OPTION([$1], [$2]), [$3], [$4])]) + # ltmain only uses $CC for tagged configurations so make sure $CC is set. + _LT_TAG_COMPILER + # save warnings/boilerplate of simple test code + _LT_COMPILER_BOILERPLATE + _LT_LINKER_BOILERPLATE -# _LT_UNLESS_OPTIONS(MACRO-NAME, OPTION-LIST, IF-NOT-SET) -# ------------------------------------------------------- -# Execute IF-NOT-SET unless all options in OPTION-LIST for MACRO-NAME -# are set. -m4_define([_LT_UNLESS_OPTIONS], -[m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), - [m4_ifdef(_LT_MANGLE_OPTION([$1], _LT_Option), - [m4_define([$0_found])])])[]dnl -m4_ifdef([$0_found], [m4_undefine([$0_found])], [$3 -])[]dnl -]) + # Allow CC to be a program name with arguments. + lt_save_CC="$CC" + lt_save_GCC=$GCC + lt_save_CFLAGS=$CFLAGS + CC=${F77-"f77"} + CFLAGS=$FFLAGS + compiler=$CC + _LT_TAGVAR(compiler, $1)=$CC + _LT_CC_BASENAME([$compiler]) + GCC=$G77 + if test -n "$compiler"; then + AC_MSG_CHECKING([if libtool supports shared libraries]) + AC_MSG_RESULT([$can_build_shared]) + AC_MSG_CHECKING([whether to build shared libraries]) + test "$can_build_shared" = "no" && enable_shared=no -# _LT_SET_OPTIONS(MACRO-NAME, OPTION-LIST) -# ---------------------------------------- -# OPTION-LIST is a space-separated list of Libtool options associated -# with MACRO-NAME. If any OPTION has a matching handler declared with -# LT_OPTION_DEFINE, dispatch to that macro; otherwise complain about -# the unknown option and exit. -m4_defun([_LT_SET_OPTIONS], -[# Set options -m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), - [_LT_SET_OPTION([$1], _LT_Option)]) + # 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 + ;; + aix[[4-9]]*) + 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]) -m4_if([$1],[LT_INIT],[ - dnl - dnl Simply set some default values (i.e off) if boolean options were not - dnl specified: - _LT_UNLESS_OPTIONS([LT_INIT], [dlopen], [enable_dlopen=no - ]) - _LT_UNLESS_OPTIONS([LT_INIT], [win32-dll], [enable_win32_dll=no - ]) - dnl - dnl If no reference was made to various pairs of opposing options, then - dnl we run the default mode handler for the pair. For example, if neither - dnl `shared' nor `disable-shared' was passed, we enable building of shared - dnl archives by default: - _LT_UNLESS_OPTIONS([LT_INIT], [shared disable-shared], [_LT_ENABLE_SHARED]) - _LT_UNLESS_OPTIONS([LT_INIT], [static disable-static], [_LT_ENABLE_STATIC]) - _LT_UNLESS_OPTIONS([LT_INIT], [pic-only no-pic], [_LT_WITH_PIC]) - _LT_UNLESS_OPTIONS([LT_INIT], [fast-install disable-fast-install], - [_LT_ENABLE_FAST_INSTALL]) - ]) -])# _LT_SET_OPTIONS + 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]) + + _LT_TAGVAR(GCC, $1)="$G77" + _LT_TAGVAR(LD, $1)="$LD" + ## CAVEAT EMPTOR: + ## There is no encapsulation within the following macros, do not change + ## the running order or otherwise move them around unless you know exactly + ## what you are doing... + _LT_COMPILER_PIC($1) + _LT_COMPILER_C_O($1) + _LT_COMPILER_FILE_LOCKS($1) + _LT_LINKER_SHLIBS($1) + _LT_SYS_DYNAMIC_LINKER($1) + _LT_LINKER_HARDCODE_LIBPATH($1) + _LT_CONFIG($1) + fi # test -n "$compiler" -# _LT_MANGLE_DEFUN(MACRO-NAME, OPTION-NAME) -# ----------------------------------------- -m4_define([_LT_MANGLE_DEFUN], -[[_LT_OPTION_DEFUN_]m4_bpatsubst(m4_toupper([$1__$2]), [[^A-Z0-9_]], [_])]) + GCC=$lt_save_GCC + CC="$lt_save_CC" + CFLAGS="$lt_save_CFLAGS" +fi # test "$_lt_disable_F77" != yes +AC_LANG_POP +])# _LT_LANG_F77_CONFIG -# LT_OPTION_DEFINE(MACRO-NAME, OPTION-NAME, CODE) -# ----------------------------------------------- -m4_define([LT_OPTION_DEFINE], -[m4_define(_LT_MANGLE_DEFUN([$1], [$2]), [$3])[]dnl -])# LT_OPTION_DEFINE +# _LT_LANG_FC_CONFIG([TAG]) +# ------------------------- +# Ensure that the configuration variables for a Fortran compiler are +# suitably defined. These variables are subsequently used by _LT_CONFIG +# to write the compiler configuration to `libtool'. +m4_defun([_LT_LANG_FC_CONFIG], +[AC_LANG_PUSH(Fortran) -# dlopen -# ------ -LT_OPTION_DEFINE([LT_INIT], [dlopen], [enable_dlopen=yes -]) +if test -z "$FC" || test "X$FC" = "Xno"; then + _lt_disable_FC=yes +fi -AU_DEFUN([AC_LIBTOOL_DLOPEN], -[_LT_SET_OPTION([LT_INIT], [dlopen]) -AC_DIAGNOSE([obsolete], -[$0: Remove this warning and the call to _LT_SET_OPTION when you -put the `dlopen' option into LT_INIT's first parameter.]) -]) +_LT_TAGVAR(archive_cmds_need_lc, $1)=no +_LT_TAGVAR(allow_undefined_flag, $1)= +_LT_TAGVAR(always_export_symbols, $1)=no +_LT_TAGVAR(archive_expsym_cmds, $1)= +_LT_TAGVAR(export_dynamic_flag_spec, $1)= +_LT_TAGVAR(hardcode_direct, $1)=no +_LT_TAGVAR(hardcode_direct_absolute, $1)=no +_LT_TAGVAR(hardcode_libdir_flag_spec, $1)= +_LT_TAGVAR(hardcode_libdir_separator, $1)= +_LT_TAGVAR(hardcode_minus_L, $1)=no +_LT_TAGVAR(hardcode_automatic, $1)=no +_LT_TAGVAR(inherit_rpath, $1)=no +_LT_TAGVAR(module_cmds, $1)= +_LT_TAGVAR(module_expsym_cmds, $1)= +_LT_TAGVAR(link_all_deplibs, $1)=unknown +_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_TAGVAR(reload_flag, $1)=$reload_flag +_LT_TAGVAR(reload_cmds, $1)=$reload_cmds +_LT_TAGVAR(no_undefined_flag, $1)= +_LT_TAGVAR(whole_archive_flag_spec, $1)= +_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no -dnl aclocal-1.4 backwards compatibility: -dnl AC_DEFUN([AC_LIBTOOL_DLOPEN], []) +# Source file extension for fc test sources. +ac_ext=${ac_fc_srcext-f} +# Object file extension for compiled fc test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext -# win32-dll -# --------- -# Declare package support for building win32 dll's. -LT_OPTION_DEFINE([LT_INIT], [win32-dll], -[enable_win32_dll=yes +# No sense in running all these tests if we already determined that +# the FC compiler isn't working. Some variables (like enable_shared) +# are currently assumed to apply to all compilers on this platform, +# and will be corrupted by setting them based on a non-working compiler. +if test "$_lt_disable_FC" != yes; then + # Code to be used in simple compile tests + lt_simple_compile_test_code="\ + subroutine t + return + end +" -case $host in -*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-cegcc*) - AC_CHECK_TOOL(AS, as, false) - AC_CHECK_TOOL(DLLTOOL, dlltool, false) - AC_CHECK_TOOL(OBJDUMP, objdump, false) - ;; -esac + # Code to be used in simple link tests + lt_simple_link_test_code="\ + program t + end +" -test -z "$AS" && AS=as -_LT_DECL([], [AS], [1], [Assembler program])dnl + # ltmain only uses $CC for tagged configurations so make sure $CC is set. + _LT_TAG_COMPILER -test -z "$DLLTOOL" && DLLTOOL=dlltool -_LT_DECL([], [DLLTOOL], [1], [DLL creation program])dnl + # save warnings/boilerplate of simple test code + _LT_COMPILER_BOILERPLATE + _LT_LINKER_BOILERPLATE -test -z "$OBJDUMP" && OBJDUMP=objdump -_LT_DECL([], [OBJDUMP], [1], [Object dumper program])dnl -])# win32-dll + # Allow CC to be a program name with arguments. + lt_save_CC="$CC" + lt_save_GCC=$GCC + lt_save_CFLAGS=$CFLAGS + CC=${FC-"f95"} + CFLAGS=$FCFLAGS + compiler=$CC + GCC=$ac_cv_fc_compiler_gnu -AU_DEFUN([AC_LIBTOOL_WIN32_DLL], -[AC_REQUIRE([AC_CANONICAL_HOST])dnl -_LT_SET_OPTION([LT_INIT], [win32-dll]) -AC_DIAGNOSE([obsolete], -[$0: Remove this warning and the call to _LT_SET_OPTION when you -put the `win32-dll' option into LT_INIT's first parameter.]) -]) + _LT_TAGVAR(compiler, $1)=$CC + _LT_CC_BASENAME([$compiler]) -dnl aclocal-1.4 backwards compatibility: -dnl AC_DEFUN([AC_LIBTOOL_WIN32_DLL], []) + if test -n "$compiler"; then + AC_MSG_CHECKING([if libtool supports shared libraries]) + AC_MSG_RESULT([$can_build_shared]) + AC_MSG_CHECKING([whether to build shared libraries]) + test "$can_build_shared" = "no" && enable_shared=no -# _LT_ENABLE_SHARED([DEFAULT]) -# ---------------------------- -# implement the --enable-shared flag, and supports the `shared' and -# `disable-shared' LT_INIT options. -# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. -m4_define([_LT_ENABLE_SHARED], -[m4_define([_LT_ENABLE_SHARED_DEFAULT], [m4_if($1, no, no, yes)])dnl -AC_ARG_ENABLE([shared], - [AS_HELP_STRING([--enable-shared@<:@=PKGS@:>@], - [build shared libraries @<:@default=]_LT_ENABLE_SHARED_DEFAULT[@:>@])], - [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. - lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," - for pkg in $enableval; do - IFS="$lt_save_ifs" - if test "X$pkg" = "X$p"; then - enable_shared=yes + # 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 + ;; + aix[[4-9]]*) + if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then + test "$enable_shared" = yes && enable_static=no fi - done - IFS="$lt_save_ifs" - ;; - esac], - [enable_shared=]_LT_ENABLE_SHARED_DEFAULT) - - _LT_DECL([build_libtool_libs], [enable_shared], [0], - [Whether or not to build shared libraries]) -])# _LT_ENABLE_SHARED - -LT_OPTION_DEFINE([LT_INIT], [shared], [_LT_ENABLE_SHARED([yes])]) -LT_OPTION_DEFINE([LT_INIT], [disable-shared], [_LT_ENABLE_SHARED([no])]) - -# Old names: -AC_DEFUN([AC_ENABLE_SHARED], -[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[shared]) -]) - -AC_DEFUN([AC_DISABLE_SHARED], -[_LT_SET_OPTION([LT_INIT], [disable-shared]) -]) + ;; + esac + AC_MSG_RESULT([$enable_shared]) -AU_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)]) -AU_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)]) + 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]) -dnl aclocal-1.4 backwards compatibility: -dnl AC_DEFUN([AM_ENABLE_SHARED], []) -dnl AC_DEFUN([AM_DISABLE_SHARED], []) + _LT_TAGVAR(GCC, $1)="$ac_cv_fc_compiler_gnu" + _LT_TAGVAR(LD, $1)="$LD" + ## CAVEAT EMPTOR: + ## There is no encapsulation within the following macros, do not change + ## the running order or otherwise move them around unless you know exactly + ## what you are doing... + _LT_SYS_HIDDEN_LIBDEPS($1) + _LT_COMPILER_PIC($1) + _LT_COMPILER_C_O($1) + _LT_COMPILER_FILE_LOCKS($1) + _LT_LINKER_SHLIBS($1) + _LT_SYS_DYNAMIC_LINKER($1) + _LT_LINKER_HARDCODE_LIBPATH($1) + _LT_CONFIG($1) + fi # test -n "$compiler" -# _LT_ENABLE_STATIC([DEFAULT]) -# ---------------------------- -# implement the --enable-static flag, and support the `static' and -# `disable-static' LT_INIT options. -# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. -m4_define([_LT_ENABLE_STATIC], -[m4_define([_LT_ENABLE_STATIC_DEFAULT], [m4_if($1, no, no, yes)])dnl -AC_ARG_ENABLE([static], - [AS_HELP_STRING([--enable-static@<:@=PKGS@:>@], - [build static libraries @<:@default=]_LT_ENABLE_STATIC_DEFAULT[@:>@])], - [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. - lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," - for pkg in $enableval; do - IFS="$lt_save_ifs" - if test "X$pkg" = "X$p"; then - enable_static=yes - fi - done - IFS="$lt_save_ifs" - ;; - esac], - [enable_static=]_LT_ENABLE_STATIC_DEFAULT) + GCC=$lt_save_GCC + CC=$lt_save_CC + CFLAGS=$lt_save_CFLAGS +fi # test "$_lt_disable_FC" != yes - _LT_DECL([build_old_libs], [enable_static], [0], - [Whether or not to build static libraries]) -])# _LT_ENABLE_STATIC +AC_LANG_POP +])# _LT_LANG_FC_CONFIG -LT_OPTION_DEFINE([LT_INIT], [static], [_LT_ENABLE_STATIC([yes])]) -LT_OPTION_DEFINE([LT_INIT], [disable-static], [_LT_ENABLE_STATIC([no])]) -# Old names: -AC_DEFUN([AC_ENABLE_STATIC], -[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[static]) -]) +# _LT_LANG_GCJ_CONFIG([TAG]) +# -------------------------- +# Ensure that the configuration variables for the GNU Java Compiler compiler +# are suitably defined. These variables are subsequently used by _LT_CONFIG +# to write the compiler configuration to `libtool'. +m4_defun([_LT_LANG_GCJ_CONFIG], +[AC_REQUIRE([LT_PROG_GCJ])dnl +AC_LANG_SAVE -AC_DEFUN([AC_DISABLE_STATIC], -[_LT_SET_OPTION([LT_INIT], [disable-static]) -]) +# Source file extension for Java test sources. +ac_ext=java -AU_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)]) -AU_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)]) +# Object file extension for compiled Java test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext -dnl aclocal-1.4 backwards compatibility: -dnl AC_DEFUN([AM_ENABLE_STATIC], []) -dnl AC_DEFUN([AM_DISABLE_STATIC], []) +# Code to be used in simple compile tests +lt_simple_compile_test_code="class foo {}" +# Code to be used in simple link tests +lt_simple_link_test_code='public class conftest { public static void main(String[[]] argv) {}; }' +# ltmain only uses $CC for tagged configurations so make sure $CC is set. +_LT_TAG_COMPILER -# _LT_ENABLE_FAST_INSTALL([DEFAULT]) -# ---------------------------------- -# implement the --enable-fast-install flag, and support the `fast-install' -# and `disable-fast-install' LT_INIT options. -# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. -m4_define([_LT_ENABLE_FAST_INSTALL], -[m4_define([_LT_ENABLE_FAST_INSTALL_DEFAULT], [m4_if($1, no, no, yes)])dnl -AC_ARG_ENABLE([fast-install], - [AS_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@], - [optimize for fast installation @<:@default=]_LT_ENABLE_FAST_INSTALL_DEFAULT[@:>@])], - [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. - lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," - for pkg in $enableval; do - IFS="$lt_save_ifs" - if test "X$pkg" = "X$p"; then - enable_fast_install=yes - fi - done - IFS="$lt_save_ifs" - ;; - esac], - [enable_fast_install=]_LT_ENABLE_FAST_INSTALL_DEFAULT) +# save warnings/boilerplate of simple test code +_LT_COMPILER_BOILERPLATE +_LT_LINKER_BOILERPLATE -_LT_DECL([fast_install], [enable_fast_install], [0], - [Whether or not to optimize for fast installation])dnl -])# _LT_ENABLE_FAST_INSTALL +# Allow CC to be a program name with arguments. +lt_save_CC=$CC +lt_save_CFLAGS=$CFLAGS +lt_save_GCC=$GCC +GCC=yes +CC=${GCJ-"gcj"} +CFLAGS=$GCJFLAGS +compiler=$CC +_LT_TAGVAR(compiler, $1)=$CC +_LT_TAGVAR(LD, $1)="$LD" +_LT_CC_BASENAME([$compiler]) -LT_OPTION_DEFINE([LT_INIT], [fast-install], [_LT_ENABLE_FAST_INSTALL([yes])]) -LT_OPTION_DEFINE([LT_INIT], [disable-fast-install], [_LT_ENABLE_FAST_INSTALL([no])]) +# GCJ did not exist at the time GCC didn't implicitly link libc in. +_LT_TAGVAR(archive_cmds_need_lc, $1)=no -# Old names: -AU_DEFUN([AC_ENABLE_FAST_INSTALL], -[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[fast-install]) -AC_DIAGNOSE([obsolete], -[$0: Remove this warning and the call to _LT_SET_OPTION when you put -the `fast-install' option into LT_INIT's first parameter.]) -]) +_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_TAGVAR(reload_flag, $1)=$reload_flag +_LT_TAGVAR(reload_cmds, $1)=$reload_cmds -AU_DEFUN([AC_DISABLE_FAST_INSTALL], -[_LT_SET_OPTION([LT_INIT], [disable-fast-install]) -AC_DIAGNOSE([obsolete], -[$0: Remove this warning and the call to _LT_SET_OPTION when you put -the `disable-fast-install' option into LT_INIT's first parameter.]) -]) +if test -n "$compiler"; then + _LT_COMPILER_NO_RTTI($1) + _LT_COMPILER_PIC($1) + _LT_COMPILER_C_O($1) + _LT_COMPILER_FILE_LOCKS($1) + _LT_LINKER_SHLIBS($1) + _LT_LINKER_HARDCODE_LIBPATH($1) -dnl aclocal-1.4 backwards compatibility: -dnl AC_DEFUN([AC_ENABLE_FAST_INSTALL], []) -dnl AC_DEFUN([AM_DISABLE_FAST_INSTALL], []) + _LT_CONFIG($1) +fi +AC_LANG_RESTORE -# _LT_WITH_PIC([MODE]) -# -------------------- -# implement the --with-pic flag, and support the `pic-only' and `no-pic' -# LT_INIT options. -# MODE is either `yes' or `no'. If omitted, it defaults to `both'. -m4_define([_LT_WITH_PIC], -[AC_ARG_WITH([pic], - [AS_HELP_STRING([--with-pic@<:@=PKGS@:>@], - [try to use only PIC/non-PIC objects @<:@default=use both@:>@])], - [lt_p=${PACKAGE-default} - case $withval in - yes|no) pic_mode=$withval ;; - *) - pic_mode=default - # Look at the argument we got. We use all the common list separators. - lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," - for lt_pkg in $withval; do - IFS="$lt_save_ifs" - if test "X$lt_pkg" = "X$lt_p"; then - pic_mode=yes - fi - done - IFS="$lt_save_ifs" - ;; - esac], - [pic_mode=default]) +GCC=$lt_save_GCC +CC=$lt_save_CC +CFLAGS=$lt_save_CFLAGS +])# _LT_LANG_GCJ_CONFIG -test -z "$pic_mode" && pic_mode=m4_default([$1], [default]) -_LT_DECL([], [pic_mode], [0], [What type of objects to build])dnl -])# _LT_WITH_PIC +# _LT_LANG_GO_CONFIG([TAG]) +# -------------------------- +# Ensure that the configuration variables for the GNU Go compiler +# are suitably defined. These variables are subsequently used by _LT_CONFIG +# to write the compiler configuration to `libtool'. +m4_defun([_LT_LANG_GO_CONFIG], +[AC_REQUIRE([LT_PROG_GO])dnl +AC_LANG_SAVE -LT_OPTION_DEFINE([LT_INIT], [pic-only], [_LT_WITH_PIC([yes])]) -LT_OPTION_DEFINE([LT_INIT], [no-pic], [_LT_WITH_PIC([no])]) +# Source file extension for Go test sources. +ac_ext=go -# Old name: -AU_DEFUN([AC_LIBTOOL_PICMODE], -[_LT_SET_OPTION([LT_INIT], [pic-only]) -AC_DIAGNOSE([obsolete], -[$0: Remove this warning and the call to _LT_SET_OPTION when you -put the `pic-only' option into LT_INIT's first parameter.]) -]) +# Object file extension for compiled Go test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext -dnl aclocal-1.4 backwards compatibility: -dnl AC_DEFUN([AC_LIBTOOL_PICMODE], []) +# Code to be used in simple compile tests +lt_simple_compile_test_code="package main; func main() { }" +# Code to be used in simple link tests +lt_simple_link_test_code='package main; func main() { }' -m4_define([_LTDL_MODE], []) -LT_OPTION_DEFINE([LTDL_INIT], [nonrecursive], - [m4_define([_LTDL_MODE], [nonrecursive])]) -LT_OPTION_DEFINE([LTDL_INIT], [recursive], - [m4_define([_LTDL_MODE], [recursive])]) -LT_OPTION_DEFINE([LTDL_INIT], [subproject], - [m4_define([_LTDL_MODE], [subproject])]) +# ltmain only uses $CC for tagged configurations so make sure $CC is set. +_LT_TAG_COMPILER -m4_define([_LTDL_TYPE], []) -LT_OPTION_DEFINE([LTDL_INIT], [installable], - [m4_define([_LTDL_TYPE], [installable])]) -LT_OPTION_DEFINE([LTDL_INIT], [convenience], - [m4_define([_LTDL_TYPE], [convenience])]) +# save warnings/boilerplate of simple test code +_LT_COMPILER_BOILERPLATE +_LT_LINKER_BOILERPLATE -# ltsugar.m4 -- libtool m4 base layer. -*-Autoconf-*- -# -# Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc. -# Written by Gary V. Vaughan, 2004 -# -# This file is free software; the Free Software Foundation gives -# unlimited permission to copy and/or distribute it, with or without -# modifications, as long as this notice is preserved. +# Allow CC to be a program name with arguments. +lt_save_CC=$CC +lt_save_CFLAGS=$CFLAGS +lt_save_GCC=$GCC +GCC=yes +CC=${GOC-"gccgo"} +CFLAGS=$GOFLAGS +compiler=$CC +_LT_TAGVAR(compiler, $1)=$CC +_LT_TAGVAR(LD, $1)="$LD" +_LT_CC_BASENAME([$compiler]) -# serial 6 ltsugar.m4 +# Go did not exist at the time GCC didn't implicitly link libc in. +_LT_TAGVAR(archive_cmds_need_lc, $1)=no -# This is to help aclocal find these macros, as it can't see m4_define. -AC_DEFUN([LTSUGAR_VERSION], [m4_if([0.1])]) +_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_TAGVAR(reload_flag, $1)=$reload_flag +_LT_TAGVAR(reload_cmds, $1)=$reload_cmds +if test -n "$compiler"; then + _LT_COMPILER_NO_RTTI($1) + _LT_COMPILER_PIC($1) + _LT_COMPILER_C_O($1) + _LT_COMPILER_FILE_LOCKS($1) + _LT_LINKER_SHLIBS($1) + _LT_LINKER_HARDCODE_LIBPATH($1) -# lt_join(SEP, ARG1, [ARG2...]) -# ----------------------------- -# Produce ARG1SEPARG2...SEPARGn, omitting [] arguments and their -# associated separator. -# Needed until we can rely on m4_join from Autoconf 2.62, since all earlier -# versions in m4sugar had bugs. -m4_define([lt_join], -[m4_if([$#], [1], [], - [$#], [2], [[$2]], - [m4_if([$2], [], [], [[$2]_])$0([$1], m4_shift(m4_shift($@)))])]) -m4_define([_lt_join], -[m4_if([$#$2], [2], [], - [m4_if([$2], [], [], [[$1$2]])$0([$1], m4_shift(m4_shift($@)))])]) + _LT_CONFIG($1) +fi +AC_LANG_RESTORE -# lt_car(LIST) -# lt_cdr(LIST) -# ------------ -# Manipulate m4 lists. -# These macros are necessary as long as will still need to support -# Autoconf-2.59 which quotes differently. -m4_define([lt_car], [[$1]]) -m4_define([lt_cdr], -[m4_if([$#], 0, [m4_fatal([$0: cannot be called without arguments])], - [$#], 1, [], - [m4_dquote(m4_shift($@))])]) -m4_define([lt_unquote], $1) +GCC=$lt_save_GCC +CC=$lt_save_CC +CFLAGS=$lt_save_CFLAGS +])# _LT_LANG_GO_CONFIG -# lt_append(MACRO-NAME, STRING, [SEPARATOR]) -# ------------------------------------------ -# Redefine MACRO-NAME to hold its former content plus `SEPARATOR'`STRING'. -# Note that neither SEPARATOR nor STRING are expanded; they are appended -# to MACRO-NAME as is (leaving the expansion for when MACRO-NAME is invoked). -# No SEPARATOR is output if MACRO-NAME was previously undefined (different -# than defined and empty). -# -# This macro is needed until we can rely on Autoconf 2.62, since earlier -# versions of m4sugar mistakenly expanded SEPARATOR but not STRING. -m4_define([lt_append], -[m4_define([$1], - m4_ifdef([$1], [m4_defn([$1])[$3]])[$2])]) +# _LT_LANG_RC_CONFIG([TAG]) +# ------------------------- +# Ensure that the configuration variables for the Windows resource compiler +# are suitably defined. These variables are subsequently used by _LT_CONFIG +# to write the compiler configuration to `libtool'. +m4_defun([_LT_LANG_RC_CONFIG], +[AC_REQUIRE([LT_PROG_RC])dnl +AC_LANG_SAVE +# Source file extension for RC test sources. +ac_ext=rc +# Object file extension for compiled RC test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext -# lt_combine(SEP, PREFIX-LIST, INFIX, SUFFIX1, [SUFFIX2...]) -# ---------------------------------------------------------- -# Produce a SEP delimited list of all paired combinations of elements of -# PREFIX-LIST with SUFFIX1 through SUFFIXn. Each element of the list -# has the form PREFIXmINFIXSUFFIXn. -# Needed until we can rely on m4_combine added in Autoconf 2.62. -m4_define([lt_combine], -[m4_if(m4_eval([$# > 3]), [1], - [m4_pushdef([_Lt_sep], [m4_define([_Lt_sep], m4_defn([lt_car]))])]]dnl -[[m4_foreach([_Lt_prefix], [$2], - [m4_foreach([_Lt_suffix], - ]m4_dquote(m4_dquote(m4_shift(m4_shift(m4_shift($@)))))[, - [_Lt_sep([$1])[]m4_defn([_Lt_prefix])[$3]m4_defn([_Lt_suffix])])])])]) +# Code to be used in simple compile tests +lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }' +# Code to be used in simple link tests +lt_simple_link_test_code="$lt_simple_compile_test_code" -# lt_if_append_uniq(MACRO-NAME, VARNAME, [SEPARATOR], [UNIQ], [NOT-UNIQ]) -# ----------------------------------------------------------------------- -# Iff MACRO-NAME does not yet contain VARNAME, then append it (delimited -# by SEPARATOR if supplied) and expand UNIQ, else NOT-UNIQ. -m4_define([lt_if_append_uniq], -[m4_ifdef([$1], - [m4_if(m4_index([$3]m4_defn([$1])[$3], [$3$2$3]), [-1], - [lt_append([$1], [$2], [$3])$4], - [$5])], - [lt_append([$1], [$2], [$3])$4])]) +# ltmain only uses $CC for tagged configurations so make sure $CC is set. +_LT_TAG_COMPILER + +# save warnings/boilerplate of simple test code +_LT_COMPILER_BOILERPLATE +_LT_LINKER_BOILERPLATE +# Allow CC to be a program name with arguments. +lt_save_CC="$CC" +lt_save_CFLAGS=$CFLAGS +lt_save_GCC=$GCC +GCC= +CC=${RC-"windres"} +CFLAGS= +compiler=$CC +_LT_TAGVAR(compiler, $1)=$CC +_LT_CC_BASENAME([$compiler]) +_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes -# lt_dict_add(DICT, KEY, VALUE) -# ----------------------------- -m4_define([lt_dict_add], -[m4_define([$1($2)], [$3])]) +if test -n "$compiler"; then + : + _LT_CONFIG($1) +fi +GCC=$lt_save_GCC +AC_LANG_RESTORE +CC=$lt_save_CC +CFLAGS=$lt_save_CFLAGS +])# _LT_LANG_RC_CONFIG -# lt_dict_add_subkey(DICT, KEY, SUBKEY, VALUE) -# -------------------------------------------- -m4_define([lt_dict_add_subkey], -[m4_define([$1($2:$3)], [$4])]) +# LT_PROG_GCJ +# ----------- +AC_DEFUN([LT_PROG_GCJ], +[m4_ifdef([AC_PROG_GCJ], [AC_PROG_GCJ], + [m4_ifdef([A][M_PROG_GCJ], [A][M_PROG_GCJ], + [AC_CHECK_TOOL(GCJ, gcj,) + test "x${GCJFLAGS+set}" = xset || GCJFLAGS="-g -O2" + AC_SUBST(GCJFLAGS)])])[]dnl +]) -# lt_dict_fetch(DICT, KEY, [SUBKEY]) -# ---------------------------------- -m4_define([lt_dict_fetch], -[m4_ifval([$3], - m4_ifdef([$1($2:$3)], [m4_defn([$1($2:$3)])]), - m4_ifdef([$1($2)], [m4_defn([$1($2)])]))]) +# Old name: +AU_ALIAS([LT_AC_PROG_GCJ], [LT_PROG_GCJ]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([LT_AC_PROG_GCJ], []) -# lt_if_dict_fetch(DICT, KEY, [SUBKEY], VALUE, IF-TRUE, [IF-FALSE]) -# ----------------------------------------------------------------- -m4_define([lt_if_dict_fetch], -[m4_if(lt_dict_fetch([$1], [$2], [$3]), [$4], - [$5], - [$6])]) +# LT_PROG_GO +# ---------- +AC_DEFUN([LT_PROG_GO], +[AC_CHECK_TOOL(GOC, gccgo,) +]) -# lt_dict_filter(DICT, [SUBKEY], VALUE, [SEPARATOR], KEY, [...]) -# -------------------------------------------------------------- -m4_define([lt_dict_filter], -[m4_if([$5], [], [], - [lt_join(m4_quote(m4_default([$4], [[, ]])), - lt_unquote(m4_split(m4_normalize(m4_foreach(_Lt_key, lt_car([m4_shiftn(4, $@)]), - [lt_if_dict_fetch([$1], _Lt_key, [$2], [$3], [_Lt_key ])])))))])[]dnl +# LT_PROG_RC +# ---------- +AC_DEFUN([LT_PROG_RC], +[AC_CHECK_TOOL(RC, windres,) ]) -# ltversion.m4 -- version numbers -*- Autoconf -*- -# -# Copyright (C) 2004 Free Software Foundation, Inc. -# Written by Scott James Remnant, 2004 -# -# This file is free software; the Free Software Foundation gives -# unlimited permission to copy and/or distribute it, with or without -# modifications, as long as this notice is preserved. +# Old name: +AU_ALIAS([LT_AC_PROG_RC], [LT_PROG_RC]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([LT_AC_PROG_RC], []) -# @configure_input@ -# serial 3337 ltversion.m4 -# This file is part of GNU Libtool +# _LT_DECL_EGREP +# -------------- +# If we don't have a new enough Autoconf to choose the best grep +# available, choose the one first in the user's PATH. +m4_defun([_LT_DECL_EGREP], +[AC_REQUIRE([AC_PROG_EGREP])dnl +AC_REQUIRE([AC_PROG_FGREP])dnl +test -z "$GREP" && GREP=grep +_LT_DECL([], [GREP], [1], [A grep program that handles long lines]) +_LT_DECL([], [EGREP], [1], [An ERE matcher]) +_LT_DECL([], [FGREP], [1], [A literal string matcher]) +dnl Non-bleeding-edge autoconf doesn't subst GREP, so do it here too +AC_SUBST([GREP]) +]) -m4_define([LT_PACKAGE_VERSION], [2.4.2]) -m4_define([LT_PACKAGE_REVISION], [1.3337]) -AC_DEFUN([LTVERSION_VERSION], -[macro_version='2.4.2' -macro_revision='1.3337' -_LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?]) -_LT_DECL(, macro_revision, 0) +# _LT_DECL_OBJDUMP +# -------------- +# If we don't have a new enough Autoconf to choose the best objdump +# available, choose the one first in the user's PATH. +m4_defun([_LT_DECL_OBJDUMP], +[AC_CHECK_TOOL(OBJDUMP, objdump, false) +test -z "$OBJDUMP" && OBJDUMP=objdump +_LT_DECL([], [OBJDUMP], [1], [An object symbol dumper]) +AC_SUBST([OBJDUMP]) ]) -# lt~obsolete.m4 -- aclocal satisfying obsolete definitions. -*-Autoconf-*- -# -# Copyright (C) 2004, 2005, 2007, 2009 Free Software Foundation, Inc. -# Written by Scott James Remnant, 2004. -# -# This file is free software; the Free Software Foundation gives -# unlimited permission to copy and/or distribute it, with or without -# modifications, as long as this notice is preserved. - -# serial 5 lt~obsolete.m4 +# _LT_DECL_DLLTOOL +# ---------------- +# Ensure DLLTOOL variable is set. +m4_defun([_LT_DECL_DLLTOOL], +[AC_CHECK_TOOL(DLLTOOL, dlltool, false) +test -z "$DLLTOOL" && DLLTOOL=dlltool +_LT_DECL([], [DLLTOOL], [1], [DLL creation program]) +AC_SUBST([DLLTOOL]) +]) -# These exist entirely to fool aclocal when bootstrapping libtool. -# -# In the past libtool.m4 has provided macros via AC_DEFUN (or AU_DEFUN) -# which have later been changed to m4_define as they aren't part of the -# exported API, or moved to Autoconf or Automake where they belong. -# -# The trouble is, aclocal is a bit thick. It'll see the old AC_DEFUN -# in /usr/share/aclocal/libtool.m4 and remember it, then when it sees us -# using a macro with the same name in our local m4/libtool.m4 it'll -# pull the old libtool.m4 in (it doesn't see our shiny new m4_define -# and doesn't know about Autoconf macros at all.) -# -# So we provide this file, which has a silly filename so it's always -# included after everything else. This provides aclocal with the -# AC_DEFUNs it wants, but when m4 processes it, it doesn't do anything -# because those macros already exist, or will be overwritten later. -# We use AC_DEFUN over AU_DEFUN for compatibility with aclocal-1.6. -# -# Anytime we withdraw an AC_DEFUN or AU_DEFUN, remember to add it here. -# Yes, that means every name once taken will need to remain here until -# we give up compatibility with versions before 1.7, at which point -# we need to keep only those names which we still refer to. +# _LT_DECL_SED +# ------------ +# Check for a fully-functional sed program, that truncates +# as few characters as possible. Prefer GNU sed if found. +m4_defun([_LT_DECL_SED], +[AC_PROG_SED +test -z "$SED" && SED=sed +Xsed="$SED -e 1s/^X//" +_LT_DECL([], [SED], [1], [A sed program that does not truncate output]) +_LT_DECL([], [Xsed], ["\$SED -e 1s/^X//"], + [Sed that helps us avoid accidentally triggering echo(1) options like -n]) +])# _LT_DECL_SED -# This is to help aclocal find these macros, as it can't see m4_define. -AC_DEFUN([LTOBSOLETE_VERSION], [m4_if([1])]) +m4_ifndef([AC_PROG_SED], [ +# 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. # -m4_ifndef([AC_LIBTOOL_LINKER_OPTION], [AC_DEFUN([AC_LIBTOOL_LINKER_OPTION])]) -m4_ifndef([AC_PROG_EGREP], [AC_DEFUN([AC_PROG_EGREP])]) -m4_ifndef([_LT_AC_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH])]) -m4_ifndef([_LT_AC_SHELL_INIT], [AC_DEFUN([_LT_AC_SHELL_INIT])]) -m4_ifndef([_LT_AC_SYS_LIBPATH_AIX], [AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX])]) -m4_ifndef([_LT_PROG_LTMAIN], [AC_DEFUN([_LT_PROG_LTMAIN])]) -m4_ifndef([_LT_AC_TAGVAR], [AC_DEFUN([_LT_AC_TAGVAR])]) -m4_ifndef([AC_LTDL_ENABLE_INSTALL], [AC_DEFUN([AC_LTDL_ENABLE_INSTALL])]) -m4_ifndef([AC_LTDL_PREOPEN], [AC_DEFUN([AC_LTDL_PREOPEN])]) -m4_ifndef([_LT_AC_SYS_COMPILER], [AC_DEFUN([_LT_AC_SYS_COMPILER])]) -m4_ifndef([_LT_AC_LOCK], [AC_DEFUN([_LT_AC_LOCK])]) -m4_ifndef([AC_LIBTOOL_SYS_OLD_ARCHIVE], [AC_DEFUN([AC_LIBTOOL_SYS_OLD_ARCHIVE])]) -m4_ifndef([_LT_AC_TRY_DLOPEN_SELF], [AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF])]) -m4_ifndef([AC_LIBTOOL_PROG_CC_C_O], [AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O])]) -m4_ifndef([AC_LIBTOOL_SYS_HARD_LINK_LOCKS], [AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS])]) -m4_ifndef([AC_LIBTOOL_OBJDIR], [AC_DEFUN([AC_LIBTOOL_OBJDIR])]) -m4_ifndef([AC_LTDL_OBJDIR], [AC_DEFUN([AC_LTDL_OBJDIR])]) -m4_ifndef([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH], [AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH])]) -m4_ifndef([AC_LIBTOOL_SYS_LIB_STRIP], [AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP])]) -m4_ifndef([AC_PATH_MAGIC], [AC_DEFUN([AC_PATH_MAGIC])]) -m4_ifndef([AC_PROG_LD_GNU], [AC_DEFUN([AC_PROG_LD_GNU])]) -m4_ifndef([AC_PROG_LD_RELOAD_FLAG], [AC_DEFUN([AC_PROG_LD_RELOAD_FLAG])]) -m4_ifndef([AC_DEPLIBS_CHECK_METHOD], [AC_DEFUN([AC_DEPLIBS_CHECK_METHOD])]) -m4_ifndef([AC_LIBTOOL_PROG_COMPILER_NO_RTTI], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI])]) -m4_ifndef([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE], [AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE])]) -m4_ifndef([AC_LIBTOOL_PROG_COMPILER_PIC], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC])]) -m4_ifndef([AC_LIBTOOL_PROG_LD_SHLIBS], [AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS])]) -m4_ifndef([AC_LIBTOOL_POSTDEP_PREDEP], [AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP])]) -m4_ifndef([LT_AC_PROG_EGREP], [AC_DEFUN([LT_AC_PROG_EGREP])]) -m4_ifndef([LT_AC_PROG_SED], [AC_DEFUN([LT_AC_PROG_SED])]) -m4_ifndef([_LT_CC_BASENAME], [AC_DEFUN([_LT_CC_BASENAME])]) -m4_ifndef([_LT_COMPILER_BOILERPLATE], [AC_DEFUN([_LT_COMPILER_BOILERPLATE])]) -m4_ifndef([_LT_LINKER_BOILERPLATE], [AC_DEFUN([_LT_LINKER_BOILERPLATE])]) -m4_ifndef([_AC_PROG_LIBTOOL], [AC_DEFUN([_AC_PROG_LIBTOOL])]) -m4_ifndef([AC_LIBTOOL_SETUP], [AC_DEFUN([AC_LIBTOOL_SETUP])]) -m4_ifndef([_LT_AC_CHECK_DLFCN], [AC_DEFUN([_LT_AC_CHECK_DLFCN])]) -m4_ifndef([AC_LIBTOOL_SYS_DYNAMIC_LINKER], [AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER])]) -m4_ifndef([_LT_AC_TAGCONFIG], [AC_DEFUN([_LT_AC_TAGCONFIG])]) -m4_ifndef([AC_DISABLE_FAST_INSTALL], [AC_DEFUN([AC_DISABLE_FAST_INSTALL])]) -m4_ifndef([_LT_AC_LANG_CXX], [AC_DEFUN([_LT_AC_LANG_CXX])]) -m4_ifndef([_LT_AC_LANG_F77], [AC_DEFUN([_LT_AC_LANG_F77])]) -m4_ifndef([_LT_AC_LANG_GCJ], [AC_DEFUN([_LT_AC_LANG_GCJ])]) -m4_ifndef([AC_LIBTOOL_LANG_C_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG])]) -m4_ifndef([_LT_AC_LANG_C_CONFIG], [AC_DEFUN([_LT_AC_LANG_C_CONFIG])]) -m4_ifndef([AC_LIBTOOL_LANG_CXX_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG])]) -m4_ifndef([_LT_AC_LANG_CXX_CONFIG], [AC_DEFUN([_LT_AC_LANG_CXX_CONFIG])]) -m4_ifndef([AC_LIBTOOL_LANG_F77_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG])]) -m4_ifndef([_LT_AC_LANG_F77_CONFIG], [AC_DEFUN([_LT_AC_LANG_F77_CONFIG])]) -m4_ifndef([AC_LIBTOOL_LANG_GCJ_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG])]) -m4_ifndef([_LT_AC_LANG_GCJ_CONFIG], [AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG])]) -m4_ifndef([AC_LIBTOOL_LANG_RC_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG])]) -m4_ifndef([_LT_AC_LANG_RC_CONFIG], [AC_DEFUN([_LT_AC_LANG_RC_CONFIG])]) -m4_ifndef([AC_LIBTOOL_CONFIG], [AC_DEFUN([AC_LIBTOOL_CONFIG])]) -m4_ifndef([_LT_AC_FILE_LTDLL_C], [AC_DEFUN([_LT_AC_FILE_LTDLL_C])]) -m4_ifndef([_LT_REQUIRED_DARWIN_CHECKS], [AC_DEFUN([_LT_REQUIRED_DARWIN_CHECKS])]) -m4_ifndef([_LT_AC_PROG_CXXCPP], [AC_DEFUN([_LT_AC_PROG_CXXCPP])]) -m4_ifndef([_LT_PREPARE_SED_QUOTE_VARS], [AC_DEFUN([_LT_PREPARE_SED_QUOTE_VARS])]) -m4_ifndef([_LT_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_PROG_ECHO_BACKSLASH])]) -m4_ifndef([_LT_PROG_F77], [AC_DEFUN([_LT_PROG_F77])]) -m4_ifndef([_LT_PROG_FC], [AC_DEFUN([_LT_PROG_FC])]) -m4_ifndef([_LT_PROG_CXX], [AC_DEFUN([_LT_PROG_CXX])]) +m4_defun([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_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for lt_ac_prog in sed gsed; do + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then + lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext" + fi + done + done +done +IFS=$as_save_IFS +lt_ac_max=0 +lt_ac_count=0 +# Add /usr/xpg4/bin/sed as it is typically found on Solaris +# along with /bin/sed that truncates output. +for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do + test ! -f $lt_ac_sed && continue + cat /dev/null > conftest.in + lt_ac_count=0 + echo $ECHO_N "0123456789$ECHO_C" >conftest.in + # Check for GNU sed and select it if it is found. + if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then + lt_cv_path_SED=$lt_ac_sed + break + fi + while true; do + cat conftest.in conftest.in >conftest.tmp + mv conftest.tmp conftest.in + cp conftest.in conftest.nl + echo >>conftest.nl + $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break + cmp -s conftest.out conftest.nl || break + # 10000 chars as input seems more than enough + test $lt_ac_count -gt 10 && break + lt_ac_count=`expr $lt_ac_count + 1` + if test $lt_ac_count -gt $lt_ac_max; then + lt_ac_max=$lt_ac_count + lt_cv_path_SED=$lt_ac_sed + fi + done +done +]) +SED=$lt_cv_path_SED +AC_SUBST([SED]) +AC_MSG_RESULT([$SED]) +])#AC_PROG_SED +])#m4_ifndef -# pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*- -# serial 1 (pkg-config-0.24) -# -# Copyright © 2004 Scott James Remnant . -# -# 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. +# Old name: +AU_ALIAS([LT_AC_PROG_SED], [AC_PROG_SED]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([LT_AC_PROG_SED], []) -# PKG_PROG_PKG_CONFIG([MIN-VERSION]) -# ---------------------------------- -AC_DEFUN([PKG_PROG_PKG_CONFIG], -[m4_pattern_forbid([^_?PKG_[A-Z_]+$]) -m4_pattern_allow([^PKG_CONFIG(_(PATH|LIBDIR|SYSROOT_DIR|ALLOW_SYSTEM_(CFLAGS|LIBS)))?$]) -m4_pattern_allow([^PKG_CONFIG_(DISABLE_UNINSTALLED|TOP_BUILD_DIR|DEBUG_SPEW)$]) -AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility]) -AC_ARG_VAR([PKG_CONFIG_PATH], [directories to add to pkg-config's search path]) -AC_ARG_VAR([PKG_CONFIG_LIBDIR], [path overriding pkg-config's built-in search path]) -if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then - AC_PATH_TOOL([PKG_CONFIG], [pkg-config]) +# _LT_CHECK_SHELL_FEATURES +# ------------------------ +# Find out whether the shell is Bourne or XSI compatible, +# or has some other useful features. +m4_defun([_LT_CHECK_SHELL_FEATURES], +[AC_MSG_CHECKING([whether the shell understands some XSI constructs]) +# Try some XSI features +xsi_shell=no +( _lt_dummy="a/b/c" + test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \ + = c,a/b,b/c, \ + && eval 'test $(( 1 + 1 )) -eq 2 \ + && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ + && xsi_shell=yes +AC_MSG_RESULT([$xsi_shell]) +_LT_CONFIG_LIBTOOL_INIT([xsi_shell='$xsi_shell']) + +AC_MSG_CHECKING([whether the shell understands "+="]) +lt_shell_append=no +( foo=bar; set foo baz; eval "$[1]+=\$[2]" && test "$foo" = barbaz ) \ + >/dev/null 2>&1 \ + && lt_shell_append=yes +AC_MSG_RESULT([$lt_shell_append]) +_LT_CONFIG_LIBTOOL_INIT([lt_shell_append='$lt_shell_append']) + +if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then + lt_unset=unset +else + lt_unset=false fi -if test -n "$PKG_CONFIG"; then - _pkg_min_version=m4_default([$1], [0.9.0]) - AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version]) - if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then - AC_MSG_RESULT([yes]) - else - AC_MSG_RESULT([no]) - PKG_CONFIG="" - fi -fi[]dnl -])# PKG_PROG_PKG_CONFIG +_LT_DECL([], [lt_unset], [0], [whether the shell understands "unset"])dnl -# PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) -# -# Check to see whether a particular set of modules exists. Similar -# to PKG_CHECK_MODULES(), but does not set variables or print errors. -# -# Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG]) -# only at the first occurence in configure.ac, so if the first place -# it's called might be skipped (such as if it is within an "if", you -# have to call PKG_CHECK_EXISTS manually -# -------------------------------------------------------------- -AC_DEFUN([PKG_CHECK_EXISTS], -[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl -if test -n "$PKG_CONFIG" && \ - AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then - m4_default([$2], [:]) -m4_ifvaln([$3], [else - $3])dnl -fi]) +# test EBCDIC or ASCII +case `echo X|tr X '\101'` in + A) # ASCII based system + # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr + lt_SP2NL='tr \040 \012' + lt_NL2SP='tr \015\012 \040\040' + ;; + *) # EBCDIC based system + lt_SP2NL='tr \100 \n' + lt_NL2SP='tr \r\n \100\100' + ;; +esac +_LT_DECL([SP2NL], [lt_SP2NL], [1], [turn spaces into newlines])dnl +_LT_DECL([NL2SP], [lt_NL2SP], [1], [turn newlines into spaces])dnl +])# _LT_CHECK_SHELL_FEATURES -# _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES]) -# --------------------------------------------- -m4_define([_PKG_CONFIG], -[if test -n "$$1"; then - pkg_cv_[]$1="$$1" - elif test -n "$PKG_CONFIG"; then - PKG_CHECK_EXISTS([$3], - [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes ], - [pkg_failed=yes]) - else - pkg_failed=untried -fi[]dnl -])# _PKG_CONFIG -# _PKG_SHORT_ERRORS_SUPPORTED -# ----------------------------- -AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED], -[AC_REQUIRE([PKG_PROG_PKG_CONFIG]) -if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then - _pkg_short_errors_supported=yes -else - _pkg_short_errors_supported=no -fi[]dnl -])# _PKG_SHORT_ERRORS_SUPPORTED +# _LT_PROG_FUNCTION_REPLACE (FUNCNAME, REPLACEMENT-BODY) +# ------------------------------------------------------ +# In `$cfgfile', look for function FUNCNAME delimited by `^FUNCNAME ()$' and +# '^} FUNCNAME ', and replace its body with REPLACEMENT-BODY. +m4_defun([_LT_PROG_FUNCTION_REPLACE], +[dnl { +sed -e '/^$1 ()$/,/^} # $1 /c\ +$1 ()\ +{\ +m4_bpatsubsts([$2], [$], [\\], [^\([ ]\)], [\\\1]) +} # Extended-shell $1 implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: +]) -# PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND], -# [ACTION-IF-NOT-FOUND]) -# -# -# Note that if there is a possibility the first call to -# PKG_CHECK_MODULES might not happen, you should be sure to include an -# explicit call to PKG_PROG_PKG_CONFIG in your configure.ac -# -# -# -------------------------------------------------------------- -AC_DEFUN([PKG_CHECK_MODULES], -[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl -AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl -AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl +# _LT_PROG_REPLACE_SHELLFNS +# ------------------------- +# Replace existing portable implementations of several shell functions with +# equivalent extended shell implementations where those features are available.. +m4_defun([_LT_PROG_REPLACE_SHELLFNS], +[if test x"$xsi_shell" = xyes; then + _LT_PROG_FUNCTION_REPLACE([func_dirname], [dnl + case ${1} in + */*) func_dirname_result="${1%/*}${2}" ;; + * ) func_dirname_result="${3}" ;; + esac]) -pkg_failed=no -AC_MSG_CHECKING([for $1]) + _LT_PROG_FUNCTION_REPLACE([func_basename], [dnl + func_basename_result="${1##*/}"]) -_PKG_CONFIG([$1][_CFLAGS], [cflags], [$2]) -_PKG_CONFIG([$1][_LIBS], [libs], [$2]) + _LT_PROG_FUNCTION_REPLACE([func_dirname_and_basename], [dnl + case ${1} in + */*) func_dirname_result="${1%/*}${2}" ;; + * ) func_dirname_result="${3}" ;; + esac + func_basename_result="${1##*/}"]) -m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS -and $1[]_LIBS to avoid the need to call pkg-config. -See the pkg-config man page for more details.]) + _LT_PROG_FUNCTION_REPLACE([func_stripname], [dnl + # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are + # positional parameters, so assign one to ordinary parameter first. + func_stripname_result=${3} + func_stripname_result=${func_stripname_result#"${1}"} + func_stripname_result=${func_stripname_result%"${2}"}]) -if test $pkg_failed = yes; then - AC_MSG_RESULT([no]) - _PKG_SHORT_ERRORS_SUPPORTED - if test $_pkg_short_errors_supported = yes; then - $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "$2" 2>&1` - else - $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "$2" 2>&1` - fi - # Put the nasty error message in config.log where it belongs - echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD + _LT_PROG_FUNCTION_REPLACE([func_split_long_opt], [dnl + func_split_long_opt_name=${1%%=*} + func_split_long_opt_arg=${1#*=}]) - m4_default([$4], [AC_MSG_ERROR( -[Package requirements ($2) were not met: + _LT_PROG_FUNCTION_REPLACE([func_split_short_opt], [dnl + func_split_short_opt_arg=${1#??} + func_split_short_opt_name=${1%"$func_split_short_opt_arg"}]) -$$1_PKG_ERRORS + _LT_PROG_FUNCTION_REPLACE([func_lo2o], [dnl + case ${1} in + *.lo) func_lo2o_result=${1%.lo}.${objext} ;; + *) func_lo2o_result=${1} ;; + esac]) -Consider adjusting the PKG_CONFIG_PATH environment variable if you -installed software in a non-standard prefix. + _LT_PROG_FUNCTION_REPLACE([func_xform], [ func_xform_result=${1%.*}.lo]) + + _LT_PROG_FUNCTION_REPLACE([func_arith], [ func_arith_result=$(( $[*] ))]) + + _LT_PROG_FUNCTION_REPLACE([func_len], [ func_len_result=${#1}]) +fi -_PKG_TEXT])[]dnl - ]) -elif test $pkg_failed = untried; then - AC_MSG_RESULT([no]) - m4_default([$4], [AC_MSG_FAILURE( -[The pkg-config script could not be found or is too old. Make sure it -is in your PATH or set the PKG_CONFIG environment variable to the full -path to pkg-config. +if test x"$lt_shell_append" = xyes; then + _LT_PROG_FUNCTION_REPLACE([func_append], [ eval "${1}+=\\${2}"]) -_PKG_TEXT + _LT_PROG_FUNCTION_REPLACE([func_append_quoted], [dnl + func_quote_for_eval "${2}" +dnl m4 expansion turns \\\\ into \\, and then the shell eval turns that into \ + eval "${1}+=\\\\ \\$func_quote_for_eval_result"]) -To get pkg-config, see .])[]dnl - ]) + # Save a `func_append' function call where possible by direct use of '+=' + sed -e 's%func_append \([[a-zA-Z_]]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") + test 0 -eq $? || _lt_function_replace_fail=: else - $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS - $1[]_LIBS=$pkg_cv_[]$1[]_LIBS - AC_MSG_RESULT([yes]) - $3 -fi[]dnl -])# PKG_CHECK_MODULES - -# Copyright (C) 2002-2013 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. + # Save a `func_append' function call even when '+=' is not available + sed -e 's%func_append \([[a-zA-Z_]]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") + test 0 -eq $? || _lt_function_replace_fail=: +fi -# AM_AUTOMAKE_VERSION(VERSION) -# ---------------------------- -# Automake X.Y traces this macro to ensure aclocal.m4 has been -# generated from the m4 files accompanying Automake X.Y. -# (This private macro should not be called outside this file.) -AC_DEFUN([AM_AUTOMAKE_VERSION], -[am__api_version='1.14' -dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to -dnl require some minimum version. Point them to the right macro. -m4_if([$1], [1.14.1], [], - [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl +if test x"$_lt_function_replace_fail" = x":"; then + AC_MSG_WARN([Unable to substitute extended shell functions in $ofile]) +fi ]) -# _AM_AUTOCONF_VERSION(VERSION) +# _LT_PATH_CONVERSION_FUNCTIONS # ----------------------------- -# aclocal traces this macro to find the Autoconf version. -# This is a private macro too. Using m4_define simplifies -# the logic in aclocal, which can simply ignore this definition. -m4_define([_AM_AUTOCONF_VERSION], []) - -# AM_SET_CURRENT_AUTOMAKE_VERSION -# ------------------------------- -# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. -# This function is AC_REQUIREd by AM_INIT_AUTOMAKE. -AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], -[AM_AUTOMAKE_VERSION([1.14.1])dnl -m4_ifndef([AC_AUTOCONF_VERSION], - [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl -_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) - -# AM_AUX_DIR_EXPAND -*- Autoconf -*- +# Determine which file name conversion functions should be used by +# func_to_host_file (and, implicitly, by func_to_host_path). These are needed +# for certain cross-compile configurations and native mingw. +m4_defun([_LT_PATH_CONVERSION_FUNCTIONS], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +AC_REQUIRE([AC_CANONICAL_BUILD])dnl +AC_MSG_CHECKING([how to convert $build file names to $host format]) +AC_CACHE_VAL(lt_cv_to_host_file_cmd, +[case $host in + *-*-mingw* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 + ;; + *-*-cygwin* ) + lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 + ;; + * ) # otherwise, assume *nix + lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32 + ;; + esac + ;; + *-*-cygwin* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin + ;; + *-*-cygwin* ) + lt_cv_to_host_file_cmd=func_convert_file_noop + ;; + * ) # otherwise, assume *nix + lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin + ;; + esac + ;; + * ) # unhandled hosts (and "normal" native builds) + lt_cv_to_host_file_cmd=func_convert_file_noop + ;; +esac +]) +to_host_file_cmd=$lt_cv_to_host_file_cmd +AC_MSG_RESULT([$lt_cv_to_host_file_cmd]) +_LT_DECL([to_host_file_cmd], [lt_cv_to_host_file_cmd], + [0], [convert $build file names to $host format])dnl -# Copyright (C) 2001-2013 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. +AC_MSG_CHECKING([how to convert $build file names to toolchain format]) +AC_CACHE_VAL(lt_cv_to_tool_file_cmd, +[#assume ordinary cross tools, or native build. +lt_cv_to_tool_file_cmd=func_convert_file_noop +case $host in + *-*-mingw* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32 + ;; + esac + ;; +esac +]) +to_tool_file_cmd=$lt_cv_to_tool_file_cmd +AC_MSG_RESULT([$lt_cv_to_tool_file_cmd]) +_LT_DECL([to_tool_file_cmd], [lt_cv_to_tool_file_cmd], + [0], [convert $build files to toolchain format])dnl +])# _LT_PATH_CONVERSION_FUNCTIONS -# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets -# $ac_aux_dir to '$srcdir/foo'. In other projects, it is set to -# '$srcdir', '$srcdir/..', or '$srcdir/../..'. -# -# Of course, Automake must honor this variable whenever it calls a -# tool from the auxiliary directory. The problem is that $srcdir (and -# therefore $ac_aux_dir as well) can be either absolute or relative, -# depending on how configure is run. This is pretty annoying, since -# it makes $ac_aux_dir quite unusable in subdirectories: in the top -# source directory, any form will work fine, but in subdirectories a -# relative path needs to be adjusted first. -# -# $ac_aux_dir/missing -# fails when called from a subdirectory if $ac_aux_dir is relative -# $top_srcdir/$ac_aux_dir/missing -# fails if $ac_aux_dir is absolute, -# fails when called from a subdirectory in a VPATH build with -# a relative $ac_aux_dir -# -# The reason of the latter failure is that $top_srcdir and $ac_aux_dir -# are both prefixed by $srcdir. In an in-source build this is usually -# harmless because $srcdir is '.', but things will broke when you -# start a VPATH build or use an absolute $srcdir. +# Helper functions for option handling. -*- Autoconf -*- # -# So we could use something similar to $top_srcdir/$ac_aux_dir/missing, -# iff we strip the leading $srcdir from $ac_aux_dir. That would be: -# am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"` -# and then we would define $MISSING as -# MISSING="\${SHELL} $am_aux_dir/missing" -# This will work as long as MISSING is not called from configure, because -# unfortunately $(top_srcdir) has no meaning in configure. -# However there are other variables, like CC, which are often used in -# configure, and could therefore not use this "fixed" $ac_aux_dir. +# Copyright (C) 2004, 2005, 2007, 2008, 2009 Free Software Foundation, +# Inc. +# Written by Gary V. Vaughan, 2004 # -# Another solution, used here, is to always expand $ac_aux_dir to an -# absolute PATH. The drawback is that using absolute paths prevent a -# configured tree to be moved without reconfiguration. +# This file is free software; the Free Software Foundation gives +# unlimited permission to copy and/or distribute it, with or without +# modifications, as long as this notice is preserved. -AC_DEFUN([AM_AUX_DIR_EXPAND], -[dnl Rely on autoconf to set up CDPATH properly. -AC_PREREQ([2.50])dnl -# expand $ac_aux_dir to an absolute path -am_aux_dir=`cd $ac_aux_dir && pwd` +# serial 7 ltoptions.m4 + +# This is to help aclocal find these macros, as it can't see m4_define. +AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])]) + + +# _LT_MANGLE_OPTION(MACRO-NAME, OPTION-NAME) +# ------------------------------------------ +m4_define([_LT_MANGLE_OPTION], +[[_LT_OPTION_]m4_bpatsubst($1__$2, [[^a-zA-Z0-9_]], [_])]) + + +# _LT_SET_OPTION(MACRO-NAME, OPTION-NAME) +# --------------------------------------- +# Set option OPTION-NAME for macro MACRO-NAME, and if there is a +# matching handler defined, dispatch to it. Other OPTION-NAMEs are +# saved as a flag. +m4_define([_LT_SET_OPTION], +[m4_define(_LT_MANGLE_OPTION([$1], [$2]))dnl +m4_ifdef(_LT_MANGLE_DEFUN([$1], [$2]), + _LT_MANGLE_DEFUN([$1], [$2]), + [m4_warning([Unknown $1 option `$2'])])[]dnl ]) -# AM_CONDITIONAL -*- Autoconf -*- -# Copyright (C) 1997-2013 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. +# _LT_IF_OPTION(MACRO-NAME, OPTION-NAME, IF-SET, [IF-NOT-SET]) +# ------------------------------------------------------------ +# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. +m4_define([_LT_IF_OPTION], +[m4_ifdef(_LT_MANGLE_OPTION([$1], [$2]), [$3], [$4])]) -# AM_CONDITIONAL(NAME, SHELL-CONDITION) -# ------------------------------------- -# Define a conditional. -AC_DEFUN([AM_CONDITIONAL], -[AC_PREREQ([2.52])dnl - m4_if([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], - [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl -AC_SUBST([$1_TRUE])dnl -AC_SUBST([$1_FALSE])dnl -_AM_SUBST_NOTMAKE([$1_TRUE])dnl -_AM_SUBST_NOTMAKE([$1_FALSE])dnl -m4_define([_AM_COND_VALUE_$1], [$2])dnl -if $2; then - $1_TRUE= - $1_FALSE='#' -else - $1_TRUE='#' - $1_FALSE= -fi -AC_CONFIG_COMMANDS_PRE( -[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then - AC_MSG_ERROR([[conditional "$1" was never defined. -Usually this means the macro was only invoked conditionally.]]) -fi])]) -# Copyright (C) 1999-2013 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. +# _LT_UNLESS_OPTIONS(MACRO-NAME, OPTION-LIST, IF-NOT-SET) +# ------------------------------------------------------- +# Execute IF-NOT-SET unless all options in OPTION-LIST for MACRO-NAME +# are set. +m4_define([_LT_UNLESS_OPTIONS], +[m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), + [m4_ifdef(_LT_MANGLE_OPTION([$1], _LT_Option), + [m4_define([$0_found])])])[]dnl +m4_ifdef([$0_found], [m4_undefine([$0_found])], [$3 +])[]dnl +]) -# There are a few dirty hacks below to avoid letting 'AC_PROG_CC' be -# written in clear, in which case automake, when reading aclocal.m4, -# will think it sees a *use*, and therefore will trigger all it's -# C support machinery. Also note that it means that autoscan, seeing -# CC etc. in the Makefile, will ask for an AC_PROG_CC use... +# _LT_SET_OPTIONS(MACRO-NAME, OPTION-LIST) +# ---------------------------------------- +# OPTION-LIST is a space-separated list of Libtool options associated +# with MACRO-NAME. If any OPTION has a matching handler declared with +# LT_OPTION_DEFINE, dispatch to that macro; otherwise complain about +# the unknown option and exit. +m4_defun([_LT_SET_OPTIONS], +[# Set options +m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), + [_LT_SET_OPTION([$1], _LT_Option)]) +m4_if([$1],[LT_INIT],[ + dnl + dnl Simply set some default values (i.e off) if boolean options were not + dnl specified: + _LT_UNLESS_OPTIONS([LT_INIT], [dlopen], [enable_dlopen=no + ]) + _LT_UNLESS_OPTIONS([LT_INIT], [win32-dll], [enable_win32_dll=no + ]) + dnl + dnl If no reference was made to various pairs of opposing options, then + dnl we run the default mode handler for the pair. For example, if neither + dnl `shared' nor `disable-shared' was passed, we enable building of shared + dnl archives by default: + _LT_UNLESS_OPTIONS([LT_INIT], [shared disable-shared], [_LT_ENABLE_SHARED]) + _LT_UNLESS_OPTIONS([LT_INIT], [static disable-static], [_LT_ENABLE_STATIC]) + _LT_UNLESS_OPTIONS([LT_INIT], [pic-only no-pic], [_LT_WITH_PIC]) + _LT_UNLESS_OPTIONS([LT_INIT], [fast-install disable-fast-install], + [_LT_ENABLE_FAST_INSTALL]) + ]) +])# _LT_SET_OPTIONS -# _AM_DEPENDENCIES(NAME) -# ---------------------- -# See how the compiler implements dependency checking. -# NAME is "CC", "CXX", "OBJC", "OBJCXX", "UPC", or "GJC". -# We try a few techniques and use that to set a single cache variable. -# -# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was -# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular -# dependency, and given that the user is not expected to run this macro, -# just rely on AC_PROG_CC. -AC_DEFUN([_AM_DEPENDENCIES], -[AC_REQUIRE([AM_SET_DEPDIR])dnl -AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl -AC_REQUIRE([AM_MAKE_INCLUDE])dnl -AC_REQUIRE([AM_DEP_TRACK])dnl -m4_if([$1], [CC], [depcc="$CC" am_compiler_list=], - [$1], [CXX], [depcc="$CXX" am_compiler_list=], - [$1], [OBJC], [depcc="$OBJC" am_compiler_list='gcc3 gcc'], - [$1], [OBJCXX], [depcc="$OBJCXX" am_compiler_list='gcc3 gcc'], - [$1], [UPC], [depcc="$UPC" am_compiler_list=], - [$1], [GCJ], [depcc="$GCJ" am_compiler_list='gcc3 gcc'], - [depcc="$$1" am_compiler_list=]) -AC_CACHE_CHECK([dependency style of $depcc], - [am_cv_$1_dependencies_compiler_type], -[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then - # We make a subdir and do the tests there. Otherwise we can end up - # making bogus files that we don't know about and never remove. For - # instance it was reported that on HP-UX the gcc test will end up - # making a dummy file named 'D' -- because '-MD' means "put the output - # in D". - rm -rf conftest.dir - mkdir conftest.dir - # Copy depcomp to subdir because otherwise we won't find it if we're - # using a relative directory. - cp "$am_depcomp" conftest.dir - cd conftest.dir - # We will build objects and dependencies in a subdirectory because - # it helps to detect inapplicable dependency modes. For instance - # both Tru64's cc and ICC support -MD to output dependencies as a - # side effect of compilation, but ICC will put the dependencies in - # the current directory while Tru64 will put them in the object - # directory. - mkdir sub +# _LT_MANGLE_DEFUN(MACRO-NAME, OPTION-NAME) +# ----------------------------------------- +m4_define([_LT_MANGLE_DEFUN], +[[_LT_OPTION_DEFUN_]m4_bpatsubst(m4_toupper([$1__$2]), [[^A-Z0-9_]], [_])]) - am_cv_$1_dependencies_compiler_type=none - if test "$am_compiler_list" = ""; then - am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp` - fi - am__universal=false - m4_case([$1], [CC], - [case " $depcc " in #( - *\ -arch\ *\ -arch\ *) am__universal=true ;; - esac], - [CXX], - [case " $depcc " in #( - *\ -arch\ *\ -arch\ *) am__universal=true ;; - esac]) - for depmode in $am_compiler_list; do - # Setup a source with many dependencies, because some compilers - # like to wrap large dependency lists on column 80 (with \), and - # we should not choose a depcomp mode which is confused by this. - # - # We need to recreate these files for each test, as the compiler may - # overwrite some of them when testing with obscure command lines. - # This happens at least with the AIX C compiler. - : > sub/conftest.c - for i in 1 2 3 4 5 6; do - echo '#include "conftst'$i'.h"' >> sub/conftest.c - # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with - # Solaris 10 /bin/sh. - echo '/* dummy */' > sub/conftst$i.h - done - echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf +# LT_OPTION_DEFINE(MACRO-NAME, OPTION-NAME, CODE) +# ----------------------------------------------- +m4_define([LT_OPTION_DEFINE], +[m4_define(_LT_MANGLE_DEFUN([$1], [$2]), [$3])[]dnl +])# LT_OPTION_DEFINE - # We check with '-c' and '-o' for the sake of the "dashmstdout" - # mode. It turns out that the SunPro C++ compiler does not properly - # handle '-M -o', and we need to detect this. Also, some Intel - # versions had trouble with output in subdirs. - am__obj=sub/conftest.${OBJEXT-o} - am__minus_obj="-o $am__obj" - case $depmode in - gcc) - # This depmode causes a compiler race in universal mode. - test "$am__universal" = false || continue - ;; - nosideeffect) - # After this tag, mechanisms are not by side-effect, so they'll - # only be used when explicitly requested. - if test "x$enable_dependency_tracking" = xyes; then - continue - else - break - fi - ;; - msvc7 | msvc7msys | msvisualcpp | msvcmsys) - # This compiler won't grok '-c -o', but also, the minuso test has - # not run yet. These depmodes are late enough in the game, and - # so weak that their functioning should not be impacted. - am__obj=conftest.${OBJEXT-o} - am__minus_obj= - ;; - none) break ;; - esac - if depmode=$depmode \ - source=sub/conftest.c object=$am__obj \ - depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ - $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ - >/dev/null 2>conftest.err && - grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && - grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && - grep $am__obj sub/conftest.Po > /dev/null 2>&1 && - ${MAKE-make} -s -f confmf > /dev/null 2>&1; then - # icc doesn't choke on unknown options, it will just issue warnings - # or remarks (even with -Werror). So we grep stderr for any message - # that says an option was ignored or not supported. - # When given -MP, icc 7.0 and 7.1 complain thusly: - # icc: Command line warning: ignoring option '-M'; no argument required - # The diagnosis changed in icc 8.0: - # icc: Command line remark: option '-MP' not supported - if (grep 'ignoring option' conftest.err || - grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else - am_cv_$1_dependencies_compiler_type=$depmode - break - fi - fi - done - cd .. - rm -rf conftest.dir -else - am_cv_$1_dependencies_compiler_type=none -fi +# dlopen +# ------ +LT_OPTION_DEFINE([LT_INIT], [dlopen], [enable_dlopen=yes ]) -AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type]) -AM_CONDITIONAL([am__fastdep$1], [ - test "x$enable_dependency_tracking" != xno \ - && test "$am_cv_$1_dependencies_compiler_type" = gcc3]) + +AU_DEFUN([AC_LIBTOOL_DLOPEN], +[_LT_SET_OPTION([LT_INIT], [dlopen]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you +put the `dlopen' option into LT_INIT's first parameter.]) ]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_DLOPEN], []) + -# AM_SET_DEPDIR -# ------------- -# Choose a directory name for dependency files. -# This macro is AC_REQUIREd in _AM_DEPENDENCIES. -AC_DEFUN([AM_SET_DEPDIR], -[AC_REQUIRE([AM_SET_LEADING_DOT])dnl -AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl -]) +# win32-dll +# --------- +# Declare package support for building win32 dll's. +LT_OPTION_DEFINE([LT_INIT], [win32-dll], +[enable_win32_dll=yes +case $host in +*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-cegcc*) + AC_CHECK_TOOL(AS, as, false) + AC_CHECK_TOOL(DLLTOOL, dlltool, false) + AC_CHECK_TOOL(OBJDUMP, objdump, false) + ;; +esac -# AM_DEP_TRACK -# ------------ -AC_DEFUN([AM_DEP_TRACK], -[AC_ARG_ENABLE([dependency-tracking], [dnl -AS_HELP_STRING( - [--enable-dependency-tracking], - [do not reject slow dependency extractors]) -AS_HELP_STRING( - [--disable-dependency-tracking], - [speeds up one-time build])]) -if test "x$enable_dependency_tracking" != xno; then - am_depcomp="$ac_aux_dir/depcomp" - AMDEPBACKSLASH='\' - am__nodep='_no' -fi -AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) -AC_SUBST([AMDEPBACKSLASH])dnl -_AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl -AC_SUBST([am__nodep])dnl -_AM_SUBST_NOTMAKE([am__nodep])dnl -]) +test -z "$AS" && AS=as +_LT_DECL([], [AS], [1], [Assembler program])dnl -# Generate code to set up dependency tracking. -*- Autoconf -*- +test -z "$DLLTOOL" && DLLTOOL=dlltool +_LT_DECL([], [DLLTOOL], [1], [DLL creation program])dnl -# Copyright (C) 1999-2013 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. +test -z "$OBJDUMP" && OBJDUMP=objdump +_LT_DECL([], [OBJDUMP], [1], [Object dumper program])dnl +])# win32-dll + +AU_DEFUN([AC_LIBTOOL_WIN32_DLL], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +_LT_SET_OPTION([LT_INIT], [win32-dll]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you +put the `win32-dll' option into LT_INIT's first parameter.]) +]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_WIN32_DLL], []) -# _AM_OUTPUT_DEPENDENCY_COMMANDS -# ------------------------------ -AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], -[{ - # Older Autoconf quotes --file arguments for eval, but not when files - # are listed without --file. Let's play safe and only enable the eval - # if we detect the quoting. - case $CONFIG_FILES in - *\'*) eval set x "$CONFIG_FILES" ;; - *) set x $CONFIG_FILES ;; - esac - shift - for mf - do - # Strip MF so we end up with the name of the file. - mf=`echo "$mf" | sed -e 's/:.*$//'` - # Check whether this is an Automake generated Makefile or not. - # We used to match only the files named 'Makefile.in', but - # some people rename them; so instead we look at the file content. - # Grep'ing the first line is not enough: some people post-process - # each Makefile.in and add a new line on top of each file to say so. - # Grep'ing the whole file is not good either: AIX grep has a line - # limit of 2048, but all sed's we know have understand at least 4000. - if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then - dirpart=`AS_DIRNAME("$mf")` - else - continue - fi - # Extract the definition of DEPDIR, am__include, and am__quote - # from the Makefile without running 'make'. - DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` - test -z "$DEPDIR" && continue - am__include=`sed -n 's/^am__include = //p' < "$mf"` - test -z "$am__include" && continue - am__quote=`sed -n 's/^am__quote = //p' < "$mf"` - # Find all dependency output files, they are included files with - # $(DEPDIR) in their names. We invoke sed twice because it is the - # simplest approach to changing $(DEPDIR) to its actual value in the - # expansion. - for file in `sed -n " - s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ - sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do - # Make sure the directory exists. - test -f "$dirpart/$file" && continue - fdir=`AS_DIRNAME(["$file"])` - AS_MKDIR_P([$dirpart/$fdir]) - # echo "creating $dirpart/$file" - echo '# dummy' > "$dirpart/$file" - done - done -} -])# _AM_OUTPUT_DEPENDENCY_COMMANDS +# _LT_ENABLE_SHARED([DEFAULT]) +# ---------------------------- +# implement the --enable-shared flag, and supports the `shared' and +# `disable-shared' LT_INIT options. +# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. +m4_define([_LT_ENABLE_SHARED], +[m4_define([_LT_ENABLE_SHARED_DEFAULT], [m4_if($1, no, no, yes)])dnl +AC_ARG_ENABLE([shared], + [AS_HELP_STRING([--enable-shared@<:@=PKGS@:>@], + [build shared libraries @<:@default=]_LT_ENABLE_SHARED_DEFAULT[@:>@])], + [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. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for pkg in $enableval; do + IFS="$lt_save_ifs" + if test "X$pkg" = "X$p"; then + enable_shared=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac], + [enable_shared=]_LT_ENABLE_SHARED_DEFAULT) + + _LT_DECL([build_libtool_libs], [enable_shared], [0], + [Whether or not to build shared libraries]) +])# _LT_ENABLE_SHARED -# AM_OUTPUT_DEPENDENCY_COMMANDS -# ----------------------------- -# This macro should only be invoked once -- use via AC_REQUIRE. -# -# This code is only required when automatic dependency tracking -# is enabled. FIXME. This creates each '.P' file that we will -# need in order to bootstrap the dependency handling code. -AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], -[AC_CONFIG_COMMANDS([depfiles], - [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS], - [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"]) +LT_OPTION_DEFINE([LT_INIT], [shared], [_LT_ENABLE_SHARED([yes])]) +LT_OPTION_DEFINE([LT_INIT], [disable-shared], [_LT_ENABLE_SHARED([no])]) + +# Old names: +AC_DEFUN([AC_ENABLE_SHARED], +[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[shared]) ]) -# Do all the work for Automake. -*- Autoconf -*- +AC_DEFUN([AC_DISABLE_SHARED], +[_LT_SET_OPTION([LT_INIT], [disable-shared]) +]) -# Copyright (C) 1996-2013 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. +AU_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)]) +AU_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)]) -# This macro actually does too much. Some checks are only needed if -# your package does certain things. But this isn't really a big deal. +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AM_ENABLE_SHARED], []) +dnl AC_DEFUN([AM_DISABLE_SHARED], []) -dnl Redefine AC_PROG_CC to automatically invoke _AM_PROG_CC_C_O. -m4_define([AC_PROG_CC], -m4_defn([AC_PROG_CC]) -[_AM_PROG_CC_C_O -]) -# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE]) -# AM_INIT_AUTOMAKE([OPTIONS]) -# ----------------------------------------------- -# The call with PACKAGE and VERSION arguments is the old style -# call (pre autoconf-2.50), which is being phased out. PACKAGE -# and VERSION should now be passed to AC_INIT and removed from -# the call to AM_INIT_AUTOMAKE. -# We support both call styles for the transition. After -# the next Automake release, Autoconf can make the AC_INIT -# arguments mandatory, and then we can depend on a new Autoconf -# release and drop the old call support. -AC_DEFUN([AM_INIT_AUTOMAKE], -[AC_PREREQ([2.65])dnl -dnl Autoconf wants to disallow AM_ names. We explicitly allow -dnl the ones we care about. -m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl -AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl -AC_REQUIRE([AC_PROG_INSTALL])dnl -if test "`cd $srcdir && pwd`" != "`pwd`"; then - # Use -I$(srcdir) only when $(srcdir) != ., so that make's output - # is not polluted with repeated "-I." - AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl - # test to see if srcdir already configured - if test -f $srcdir/config.status; then - AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) - fi -fi -# test whether we have cygpath -if test -z "$CYGPATH_W"; then - if (cygpath --version) >/dev/null 2>/dev/null; then - CYGPATH_W='cygpath -w' - else - CYGPATH_W=echo - fi -fi -AC_SUBST([CYGPATH_W]) +# _LT_ENABLE_STATIC([DEFAULT]) +# ---------------------------- +# implement the --enable-static flag, and support the `static' and +# `disable-static' LT_INIT options. +# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. +m4_define([_LT_ENABLE_STATIC], +[m4_define([_LT_ENABLE_STATIC_DEFAULT], [m4_if($1, no, no, yes)])dnl +AC_ARG_ENABLE([static], + [AS_HELP_STRING([--enable-static@<:@=PKGS@:>@], + [build static libraries @<:@default=]_LT_ENABLE_STATIC_DEFAULT[@:>@])], + [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. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for pkg in $enableval; do + IFS="$lt_save_ifs" + if test "X$pkg" = "X$p"; then + enable_static=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac], + [enable_static=]_LT_ENABLE_STATIC_DEFAULT) -# Define the identity of the package. -dnl Distinguish between old-style and new-style calls. -m4_ifval([$2], -[AC_DIAGNOSE([obsolete], - [$0: two- and three-arguments forms are deprecated.]) -m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl - AC_SUBST([PACKAGE], [$1])dnl - AC_SUBST([VERSION], [$2])], -[_AM_SET_OPTIONS([$1])dnl -dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT. -m4_if( - m4_ifdef([AC_PACKAGE_NAME], [ok]):m4_ifdef([AC_PACKAGE_VERSION], [ok]), - [ok:ok],, - [m4_fatal([AC_INIT should be called with package and version arguments])])dnl - AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl - AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl + _LT_DECL([build_old_libs], [enable_static], [0], + [Whether or not to build static libraries]) +])# _LT_ENABLE_STATIC -_AM_IF_OPTION([no-define],, -[AC_DEFINE_UNQUOTED([PACKAGE], ["$PACKAGE"], [Name of package]) - AC_DEFINE_UNQUOTED([VERSION], ["$VERSION"], [Version number of package])])dnl +LT_OPTION_DEFINE([LT_INIT], [static], [_LT_ENABLE_STATIC([yes])]) +LT_OPTION_DEFINE([LT_INIT], [disable-static], [_LT_ENABLE_STATIC([no])]) -# Some tools Automake needs. -AC_REQUIRE([AM_SANITY_CHECK])dnl -AC_REQUIRE([AC_ARG_PROGRAM])dnl -AM_MISSING_PROG([ACLOCAL], [aclocal-${am__api_version}]) -AM_MISSING_PROG([AUTOCONF], [autoconf]) -AM_MISSING_PROG([AUTOMAKE], [automake-${am__api_version}]) -AM_MISSING_PROG([AUTOHEADER], [autoheader]) -AM_MISSING_PROG([MAKEINFO], [makeinfo]) -AC_REQUIRE([AM_PROG_INSTALL_SH])dnl -AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl -AC_REQUIRE([AC_PROG_MKDIR_P])dnl -# For better backward compatibility. To be removed once Automake 1.9.x -# dies out for good. For more background, see: -# -# -AC_SUBST([mkdir_p], ['$(MKDIR_P)']) -# We need awk for the "check" target. The system "awk" is bad on -# some platforms. -AC_REQUIRE([AC_PROG_AWK])dnl -AC_REQUIRE([AC_PROG_MAKE_SET])dnl -AC_REQUIRE([AM_SET_LEADING_DOT])dnl -_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], - [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], - [_AM_PROG_TAR([v7])])]) -_AM_IF_OPTION([no-dependencies],, -[AC_PROVIDE_IFELSE([AC_PROG_CC], - [_AM_DEPENDENCIES([CC])], - [m4_define([AC_PROG_CC], - m4_defn([AC_PROG_CC])[_AM_DEPENDENCIES([CC])])])dnl -AC_PROVIDE_IFELSE([AC_PROG_CXX], - [_AM_DEPENDENCIES([CXX])], - [m4_define([AC_PROG_CXX], - m4_defn([AC_PROG_CXX])[_AM_DEPENDENCIES([CXX])])])dnl -AC_PROVIDE_IFELSE([AC_PROG_OBJC], - [_AM_DEPENDENCIES([OBJC])], - [m4_define([AC_PROG_OBJC], - m4_defn([AC_PROG_OBJC])[_AM_DEPENDENCIES([OBJC])])])dnl -AC_PROVIDE_IFELSE([AC_PROG_OBJCXX], - [_AM_DEPENDENCIES([OBJCXX])], - [m4_define([AC_PROG_OBJCXX], - m4_defn([AC_PROG_OBJCXX])[_AM_DEPENDENCIES([OBJCXX])])])dnl +# Old names: +AC_DEFUN([AC_ENABLE_STATIC], +[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[static]) ]) -AC_REQUIRE([AM_SILENT_RULES])dnl -dnl The testsuite driver may need to know about EXEEXT, so add the -dnl 'am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This -dnl macro is hooked onto _AC_COMPILER_EXEEXT early, see below. -AC_CONFIG_COMMANDS_PRE(dnl -[m4_provide_if([_AM_COMPILER_EXEEXT], - [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl -# POSIX will say in a future version that running "rm -f" with no argument -# is OK; and we want to be able to make that assumption in our Makefile -# recipes. So use an aggressive probe to check that the usage we want is -# actually supported "in the wild" to an acceptable degree. -# See automake bug#10828. -# To make any issue more visible, cause the running configure to be aborted -# by default if the 'rm' program in use doesn't match our expectations; the -# user can still override this though. -if rm -f && rm -fr && rm -rf; then : OK; else - cat >&2 <<'END' -Oops! +AC_DEFUN([AC_DISABLE_STATIC], +[_LT_SET_OPTION([LT_INIT], [disable-static]) +]) -Your 'rm' program seems unable to run without file operands specified -on the command line, even when the '-f' option is present. This is contrary -to the behaviour of most rm programs out there, and not conforming with -the upcoming POSIX standard: +AU_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)]) +AU_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)]) -Please tell bug-automake@gnu.org about your system, including the value -of your $PATH and any error possibly output before this message. This -can help us improve future automake versions. +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AM_ENABLE_STATIC], []) +dnl AC_DEFUN([AM_DISABLE_STATIC], []) -END - if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then - echo 'Configuration will proceed anyway, since you have set the' >&2 - echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2 - echo >&2 - else - cat >&2 <<'END' -Aborting the configuration process, to ensure you take notice of the issue. -You can download and install GNU coreutils to get an 'rm' implementation -that behaves properly: . -If you want to complete the configuration process using your problematic -'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM -to "yes", and re-run configure. +# _LT_ENABLE_FAST_INSTALL([DEFAULT]) +# ---------------------------------- +# implement the --enable-fast-install flag, and support the `fast-install' +# and `disable-fast-install' LT_INIT options. +# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. +m4_define([_LT_ENABLE_FAST_INSTALL], +[m4_define([_LT_ENABLE_FAST_INSTALL_DEFAULT], [m4_if($1, no, no, yes)])dnl +AC_ARG_ENABLE([fast-install], + [AS_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@], + [optimize for fast installation @<:@default=]_LT_ENABLE_FAST_INSTALL_DEFAULT[@:>@])], + [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. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for pkg in $enableval; do + IFS="$lt_save_ifs" + if test "X$pkg" = "X$p"; then + enable_fast_install=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac], + [enable_fast_install=]_LT_ENABLE_FAST_INSTALL_DEFAULT) -END - AC_MSG_ERROR([Your 'rm' program is bad, sorry.]) - fi -fi]) +_LT_DECL([fast_install], [enable_fast_install], [0], + [Whether or not to optimize for fast installation])dnl +])# _LT_ENABLE_FAST_INSTALL -dnl Hook into '_AC_COMPILER_EXEEXT' early to learn its expansion. Do not -dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further -dnl mangled by Autoconf and run in a shell conditional statement. -m4_define([_AC_COMPILER_EXEEXT], -m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])]) +LT_OPTION_DEFINE([LT_INIT], [fast-install], [_LT_ENABLE_FAST_INSTALL([yes])]) +LT_OPTION_DEFINE([LT_INIT], [disable-fast-install], [_LT_ENABLE_FAST_INSTALL([no])]) -# When config.status generates a header, we must update the stamp-h file. -# This file resides in the same directory as the config header -# that is generated. The stamp files are numbered to have different names. +# Old names: +AU_DEFUN([AC_ENABLE_FAST_INSTALL], +[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[fast-install]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you put +the `fast-install' option into LT_INIT's first parameter.]) +]) -# Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the -# loop where config.status creates the headers, so we can generate -# our stamp files there. -AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK], -[# Compute $1's index in $config_headers. -_am_arg=$1 -_am_stamp_count=1 -for _am_header in $config_headers :; do - case $_am_header in - $_am_arg | $_am_arg:* ) - break ;; - * ) - _am_stamp_count=`expr $_am_stamp_count + 1` ;; - esac -done -echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) +AU_DEFUN([AC_DISABLE_FAST_INSTALL], +[_LT_SET_OPTION([LT_INIT], [disable-fast-install]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you put +the `disable-fast-install' option into LT_INIT's first parameter.]) +]) -# Copyright (C) 2001-2013 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_ENABLE_FAST_INSTALL], []) +dnl AC_DEFUN([AM_DISABLE_FAST_INSTALL], []) -# AM_PROG_INSTALL_SH -# ------------------ -# Define $install_sh. -AC_DEFUN([AM_PROG_INSTALL_SH], -[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl -if test x"${install_sh}" != xset; then - case $am_aux_dir in - *\ * | *\ *) - install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; - *) - install_sh="\${SHELL} $am_aux_dir/install-sh" - esac -fi -AC_SUBST([install_sh])]) -# Copyright (C) 2003-2013 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. +# _LT_WITH_PIC([MODE]) +# -------------------- +# implement the --with-pic flag, and support the `pic-only' and `no-pic' +# LT_INIT options. +# MODE is either `yes' or `no'. If omitted, it defaults to `both'. +m4_define([_LT_WITH_PIC], +[AC_ARG_WITH([pic], + [AS_HELP_STRING([--with-pic@<:@=PKGS@:>@], + [try to use only PIC/non-PIC objects @<:@default=use both@:>@])], + [lt_p=${PACKAGE-default} + case $withval in + yes|no) pic_mode=$withval ;; + *) + pic_mode=default + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for lt_pkg in $withval; do + IFS="$lt_save_ifs" + if test "X$lt_pkg" = "X$lt_p"; then + pic_mode=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac], + [pic_mode=default]) -# Check whether the underlying file-system supports filenames -# with a leading dot. For instance MS-DOS doesn't. -AC_DEFUN([AM_SET_LEADING_DOT], -[rm -rf .tst 2>/dev/null -mkdir .tst 2>/dev/null -if test -d .tst; then - am__leading_dot=. -else - am__leading_dot=_ -fi -rmdir .tst 2>/dev/null -AC_SUBST([am__leading_dot])]) +test -z "$pic_mode" && pic_mode=m4_default([$1], [default]) -# Check to see how 'make' treats includes. -*- Autoconf -*- +_LT_DECL([], [pic_mode], [0], [What type of objects to build])dnl +])# _LT_WITH_PIC -# Copyright (C) 2001-2013 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. +LT_OPTION_DEFINE([LT_INIT], [pic-only], [_LT_WITH_PIC([yes])]) +LT_OPTION_DEFINE([LT_INIT], [no-pic], [_LT_WITH_PIC([no])]) -# AM_MAKE_INCLUDE() -# ----------------- -# Check to see how make treats includes. -AC_DEFUN([AM_MAKE_INCLUDE], -[am_make=${MAKE-make} -cat > confinc << 'END' -am__doit: - @echo this is the am__doit target -.PHONY: am__doit -END -# If we don't find an include directive, just comment out the code. -AC_MSG_CHECKING([for style of include used by $am_make]) -am__include="#" -am__quote= -_am_result=none -# First try GNU make style include. -echo "include confinc" > confmf -# Ignore all kinds of additional output from 'make'. -case `$am_make -s -f confmf 2> /dev/null` in #( -*the\ am__doit\ target*) - am__include=include - am__quote= - _am_result=GNU - ;; -esac -# Now try BSD make style include. -if test "$am__include" = "#"; then - echo '.include "confinc"' > confmf - case `$am_make -s -f confmf 2> /dev/null` in #( - *the\ am__doit\ target*) - am__include=.include - am__quote="\"" - _am_result=BSD - ;; - esac -fi -AC_SUBST([am__include]) -AC_SUBST([am__quote]) -AC_MSG_RESULT([$_am_result]) -rm -f confinc confmf +# Old name: +AU_DEFUN([AC_LIBTOOL_PICMODE], +[_LT_SET_OPTION([LT_INIT], [pic-only]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you +put the `pic-only' option into LT_INIT's first parameter.]) ]) -# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_PICMODE], []) + + +m4_define([_LTDL_MODE], []) +LT_OPTION_DEFINE([LTDL_INIT], [nonrecursive], + [m4_define([_LTDL_MODE], [nonrecursive])]) +LT_OPTION_DEFINE([LTDL_INIT], [recursive], + [m4_define([_LTDL_MODE], [recursive])]) +LT_OPTION_DEFINE([LTDL_INIT], [subproject], + [m4_define([_LTDL_MODE], [subproject])]) + +m4_define([_LTDL_TYPE], []) +LT_OPTION_DEFINE([LTDL_INIT], [installable], + [m4_define([_LTDL_TYPE], [installable])]) +LT_OPTION_DEFINE([LTDL_INIT], [convenience], + [m4_define([_LTDL_TYPE], [convenience])]) -# Copyright (C) 1997-2013 Free Software Foundation, Inc. +# ltsugar.m4 -- libtool m4 base layer. -*-Autoconf-*- # -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. +# Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc. +# Written by Gary V. Vaughan, 2004 +# +# This file is free software; the Free Software Foundation gives +# unlimited permission to copy and/or distribute it, with or without +# modifications, as long as this notice is preserved. -# AM_MISSING_PROG(NAME, PROGRAM) -# ------------------------------ -AC_DEFUN([AM_MISSING_PROG], -[AC_REQUIRE([AM_MISSING_HAS_RUN]) -$1=${$1-"${am_missing_run}$2"} -AC_SUBST($1)]) +# serial 6 ltsugar.m4 -# AM_MISSING_HAS_RUN -# ------------------ -# Define MISSING if not defined so far and test if it is modern enough. -# If it is, set am_missing_run to use it, otherwise, to nothing. -AC_DEFUN([AM_MISSING_HAS_RUN], -[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl -AC_REQUIRE_AUX_FILE([missing])dnl -if test x"${MISSING+set}" != xset; then - case $am_aux_dir in - *\ * | *\ *) - MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; - *) - MISSING="\${SHELL} $am_aux_dir/missing" ;; - esac -fi -# Use eval to expand $SHELL -if eval "$MISSING --is-lightweight"; then - am_missing_run="$MISSING " -else - am_missing_run= - AC_MSG_WARN(['missing' script is too old or missing]) -fi -]) +# This is to help aclocal find these macros, as it can't see m4_define. +AC_DEFUN([LTSUGAR_VERSION], [m4_if([0.1])]) -# Helper functions for option handling. -*- Autoconf -*- -# Copyright (C) 2001-2013 Free Software Foundation, Inc. +# lt_join(SEP, ARG1, [ARG2...]) +# ----------------------------- +# Produce ARG1SEPARG2...SEPARGn, omitting [] arguments and their +# associated separator. +# Needed until we can rely on m4_join from Autoconf 2.62, since all earlier +# versions in m4sugar had bugs. +m4_define([lt_join], +[m4_if([$#], [1], [], + [$#], [2], [[$2]], + [m4_if([$2], [], [], [[$2]_])$0([$1], m4_shift(m4_shift($@)))])]) +m4_define([_lt_join], +[m4_if([$#$2], [2], [], + [m4_if([$2], [], [], [[$1$2]])$0([$1], m4_shift(m4_shift($@)))])]) + + +# lt_car(LIST) +# lt_cdr(LIST) +# ------------ +# Manipulate m4 lists. +# These macros are necessary as long as will still need to support +# Autoconf-2.59 which quotes differently. +m4_define([lt_car], [[$1]]) +m4_define([lt_cdr], +[m4_if([$#], 0, [m4_fatal([$0: cannot be called without arguments])], + [$#], 1, [], + [m4_dquote(m4_shift($@))])]) +m4_define([lt_unquote], $1) + + +# lt_append(MACRO-NAME, STRING, [SEPARATOR]) +# ------------------------------------------ +# Redefine MACRO-NAME to hold its former content plus `SEPARATOR'`STRING'. +# Note that neither SEPARATOR nor STRING are expanded; they are appended +# to MACRO-NAME as is (leaving the expansion for when MACRO-NAME is invoked). +# No SEPARATOR is output if MACRO-NAME was previously undefined (different +# than defined and empty). # -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. +# This macro is needed until we can rely on Autoconf 2.62, since earlier +# versions of m4sugar mistakenly expanded SEPARATOR but not STRING. +m4_define([lt_append], +[m4_define([$1], + m4_ifdef([$1], [m4_defn([$1])[$3]])[$2])]) -# _AM_MANGLE_OPTION(NAME) -# ----------------------- -AC_DEFUN([_AM_MANGLE_OPTION], -[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])]) -# _AM_SET_OPTION(NAME) -# -------------------- -# Set option NAME. Presently that only means defining a flag for this option. -AC_DEFUN([_AM_SET_OPTION], -[m4_define(_AM_MANGLE_OPTION([$1]), [1])]) -# _AM_SET_OPTIONS(OPTIONS) -# ------------------------ -# OPTIONS is a space-separated list of Automake options. -AC_DEFUN([_AM_SET_OPTIONS], -[m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) +# lt_combine(SEP, PREFIX-LIST, INFIX, SUFFIX1, [SUFFIX2...]) +# ---------------------------------------------------------- +# Produce a SEP delimited list of all paired combinations of elements of +# PREFIX-LIST with SUFFIX1 through SUFFIXn. Each element of the list +# has the form PREFIXmINFIXSUFFIXn. +# Needed until we can rely on m4_combine added in Autoconf 2.62. +m4_define([lt_combine], +[m4_if(m4_eval([$# > 3]), [1], + [m4_pushdef([_Lt_sep], [m4_define([_Lt_sep], m4_defn([lt_car]))])]]dnl +[[m4_foreach([_Lt_prefix], [$2], + [m4_foreach([_Lt_suffix], + ]m4_dquote(m4_dquote(m4_shift(m4_shift(m4_shift($@)))))[, + [_Lt_sep([$1])[]m4_defn([_Lt_prefix])[$3]m4_defn([_Lt_suffix])])])])]) -# _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET]) -# ------------------------------------------- -# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. -AC_DEFUN([_AM_IF_OPTION], -[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) -# Copyright (C) 1999-2013 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. +# lt_if_append_uniq(MACRO-NAME, VARNAME, [SEPARATOR], [UNIQ], [NOT-UNIQ]) +# ----------------------------------------------------------------------- +# Iff MACRO-NAME does not yet contain VARNAME, then append it (delimited +# by SEPARATOR if supplied) and expand UNIQ, else NOT-UNIQ. +m4_define([lt_if_append_uniq], +[m4_ifdef([$1], + [m4_if(m4_index([$3]m4_defn([$1])[$3], [$3$2$3]), [-1], + [lt_append([$1], [$2], [$3])$4], + [$5])], + [lt_append([$1], [$2], [$3])$4])]) -# _AM_PROG_CC_C_O -# --------------- -# Like AC_PROG_CC_C_O, but changed for automake. We rewrite AC_PROG_CC -# to automatically call this. -AC_DEFUN([_AM_PROG_CC_C_O], -[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl -AC_REQUIRE_AUX_FILE([compile])dnl -AC_LANG_PUSH([C])dnl -AC_CACHE_CHECK( - [whether $CC understands -c and -o together], - [am_cv_prog_cc_c_o], - [AC_LANG_CONFTEST([AC_LANG_PROGRAM([])]) - # Make sure it works both with $CC and with simple cc. - # Following AC_PROG_CC_C_O, we do the test twice because some - # compilers refuse to overwrite an existing .o file with -o, - # though they will create one. - am_cv_prog_cc_c_o=yes - for am_i in 1 2; do - if AM_RUN_LOG([$CC -c conftest.$ac_ext -o conftest2.$ac_objext]) \ - && test -f conftest2.$ac_objext; then - : OK - else - am_cv_prog_cc_c_o=no - break - fi - done - rm -f core conftest* - unset am_i]) -if test "$am_cv_prog_cc_c_o" != yes; then - # Losing compiler, so override with the script. - # FIXME: It is wrong to rewrite CC. - # But if we don't then we get into trouble of one sort or another. - # A longer-term fix would be to have automake use am__CC in this case, - # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" - CC="$am_aux_dir/compile $CC" -fi -AC_LANG_POP([C])]) -# For backward compatibility. -AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])]) +# lt_dict_add(DICT, KEY, VALUE) +# ----------------------------- +m4_define([lt_dict_add], +[m4_define([$1($2)], [$3])]) -# Copyright (C) 2001-2013 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. -# AM_RUN_LOG(COMMAND) -# ------------------- -# Run COMMAND, save the exit status in ac_status, and log it. -# (This has been adapted from Autoconf's _AC_RUN_LOG macro.) -AC_DEFUN([AM_RUN_LOG], -[{ echo "$as_me:$LINENO: $1" >&AS_MESSAGE_LOG_FD - ($1) >&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD - (exit $ac_status); }]) +# lt_dict_add_subkey(DICT, KEY, SUBKEY, VALUE) +# -------------------------------------------- +m4_define([lt_dict_add_subkey], +[m4_define([$1($2:$3)], [$4])]) -# Check to make sure that the build environment is sane. -*- Autoconf -*- -# Copyright (C) 1996-2013 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. +# lt_dict_fetch(DICT, KEY, [SUBKEY]) +# ---------------------------------- +m4_define([lt_dict_fetch], +[m4_ifval([$3], + m4_ifdef([$1($2:$3)], [m4_defn([$1($2:$3)])]), + m4_ifdef([$1($2)], [m4_defn([$1($2)])]))]) -# AM_SANITY_CHECK -# --------------- -AC_DEFUN([AM_SANITY_CHECK], -[AC_MSG_CHECKING([whether build environment is sane]) -# Reject unsafe characters in $srcdir or the absolute working directory -# name. Accept space and tab only in the latter. -am_lf=' -' -case `pwd` in - *[[\\\"\#\$\&\'\`$am_lf]]*) - AC_MSG_ERROR([unsafe absolute working directory name]);; -esac -case $srcdir in - *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*) - AC_MSG_ERROR([unsafe srcdir value: '$srcdir']);; -esac -# Do 'set' in a subshell so we don't clobber the current shell's -# arguments. Must try -L first in case configure is actually a -# symlink; some systems play weird games with the mod time of symlinks -# (eg FreeBSD returns the mod time of the symlink's containing -# directory). -if ( - am_has_slept=no - for am_try in 1 2; do - echo "timestamp, slept: $am_has_slept" > conftest.file - set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` - if test "$[*]" = "X"; then - # -L didn't work. - set X `ls -t "$srcdir/configure" conftest.file` - fi - if test "$[*]" != "X $srcdir/configure conftest.file" \ - && test "$[*]" != "X conftest.file $srcdir/configure"; then +# lt_if_dict_fetch(DICT, KEY, [SUBKEY], VALUE, IF-TRUE, [IF-FALSE]) +# ----------------------------------------------------------------- +m4_define([lt_if_dict_fetch], +[m4_if(lt_dict_fetch([$1], [$2], [$3]), [$4], + [$5], + [$6])]) + + +# lt_dict_filter(DICT, [SUBKEY], VALUE, [SEPARATOR], KEY, [...]) +# -------------------------------------------------------------- +m4_define([lt_dict_filter], +[m4_if([$5], [], [], + [lt_join(m4_quote(m4_default([$4], [[, ]])), + lt_unquote(m4_split(m4_normalize(m4_foreach(_Lt_key, lt_car([m4_shiftn(4, $@)]), + [lt_if_dict_fetch([$1], _Lt_key, [$2], [$3], [_Lt_key ])])))))])[]dnl +]) + +# ltversion.m4 -- version numbers -*- Autoconf -*- +# +# Copyright (C) 2004 Free Software Foundation, Inc. +# Written by Scott James Remnant, 2004 +# +# This file is free software; the Free Software Foundation gives +# unlimited permission to copy and/or distribute it, with or without +# modifications, as long as this notice is preserved. + +# @configure_input@ - # If neither matched, then we have a broken ls. This can happen - # if, for instance, CONFIG_SHELL is bash and it inherits a - # broken ls alias from the environment. This has actually - # happened. Such a system could not be considered "sane". - AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken - alias in your environment]) - fi - if test "$[2]" = conftest.file || test $am_try -eq 2; then - break - fi - # Just in case. - sleep 1 - am_has_slept=yes - done - test "$[2]" = conftest.file - ) -then - # Ok. - : -else - AC_MSG_ERROR([newly created file is older than distributed files! -Check your system clock]) -fi -AC_MSG_RESULT([yes]) -# If we didn't sleep, we still need to ensure time stamps of config.status and -# generated files are strictly newer. -am_sleep_pid= -if grep 'slept: no' conftest.file >/dev/null 2>&1; then - ( sleep 1 ) & - am_sleep_pid=$! -fi -AC_CONFIG_COMMANDS_PRE( - [AC_MSG_CHECKING([that generated files are newer than configure]) - if test -n "$am_sleep_pid"; then - # Hide warnings about reused PIDs. - wait $am_sleep_pid 2>/dev/null - fi - AC_MSG_RESULT([done])]) -rm -f conftest.file +# serial 3337 ltversion.m4 +# This file is part of GNU Libtool + +m4_define([LT_PACKAGE_VERSION], [2.4.2]) +m4_define([LT_PACKAGE_REVISION], [1.3337]) + +AC_DEFUN([LTVERSION_VERSION], +[macro_version='2.4.2' +macro_revision='1.3337' +_LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?]) +_LT_DECL(, macro_revision, 0) ]) -# Copyright (C) 2009-2013 Free Software Foundation, Inc. +# lt~obsolete.m4 -- aclocal satisfying obsolete definitions. -*-Autoconf-*- # -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. +# Copyright (C) 2004, 2005, 2007, 2009 Free Software Foundation, Inc. +# Written by Scott James Remnant, 2004. +# +# This file is free software; the Free Software Foundation gives +# unlimited permission to copy and/or distribute it, with or without +# modifications, as long as this notice is preserved. -# AM_SILENT_RULES([DEFAULT]) -# -------------------------- -# Enable less verbose build rules; with the default set to DEFAULT -# ("yes" being less verbose, "no" or empty being verbose). -AC_DEFUN([AM_SILENT_RULES], -[AC_ARG_ENABLE([silent-rules], [dnl -AS_HELP_STRING( - [--enable-silent-rules], - [less verbose build output (undo: "make V=1")]) -AS_HELP_STRING( - [--disable-silent-rules], - [verbose build output (undo: "make V=0")])dnl -]) -case $enable_silent_rules in @%:@ ((( - yes) AM_DEFAULT_VERBOSITY=0;; - no) AM_DEFAULT_VERBOSITY=1;; - *) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);; -esac -dnl -dnl A few 'make' implementations (e.g., NonStop OS and NextStep) -dnl do not support nested variable expansions. -dnl See automake bug#9928 and bug#10237. -am_make=${MAKE-make} -AC_CACHE_CHECK([whether $am_make supports nested variables], - [am_cv_make_support_nested_variables], - [if AS_ECHO([['TRUE=$(BAR$(V)) -BAR0=false -BAR1=true -V=1 -am__doit: - @$(TRUE) -.PHONY: am__doit']]) | $am_make -f - >/dev/null 2>&1; then - am_cv_make_support_nested_variables=yes -else - am_cv_make_support_nested_variables=no -fi]) -if test $am_cv_make_support_nested_variables = yes; then - dnl Using '$V' instead of '$(V)' breaks IRIX make. - AM_V='$(V)' - AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' -else - AM_V=$AM_DEFAULT_VERBOSITY - AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY -fi -AC_SUBST([AM_V])dnl -AM_SUBST_NOTMAKE([AM_V])dnl -AC_SUBST([AM_DEFAULT_V])dnl -AM_SUBST_NOTMAKE([AM_DEFAULT_V])dnl -AC_SUBST([AM_DEFAULT_VERBOSITY])dnl -AM_BACKSLASH='\' -AC_SUBST([AM_BACKSLASH])dnl -_AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl -]) +# serial 5 lt~obsolete.m4 -# Copyright (C) 2001-2013 Free Software Foundation, Inc. +# These exist entirely to fool aclocal when bootstrapping libtool. # -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. +# In the past libtool.m4 has provided macros via AC_DEFUN (or AU_DEFUN) +# which have later been changed to m4_define as they aren't part of the +# exported API, or moved to Autoconf or Automake where they belong. +# +# The trouble is, aclocal is a bit thick. It'll see the old AC_DEFUN +# in /usr/share/aclocal/libtool.m4 and remember it, then when it sees us +# using a macro with the same name in our local m4/libtool.m4 it'll +# pull the old libtool.m4 in (it doesn't see our shiny new m4_define +# and doesn't know about Autoconf macros at all.) +# +# So we provide this file, which has a silly filename so it's always +# included after everything else. This provides aclocal with the +# AC_DEFUNs it wants, but when m4 processes it, it doesn't do anything +# because those macros already exist, or will be overwritten later. +# We use AC_DEFUN over AU_DEFUN for compatibility with aclocal-1.6. +# +# Anytime we withdraw an AC_DEFUN or AU_DEFUN, remember to add it here. +# Yes, that means every name once taken will need to remain here until +# we give up compatibility with versions before 1.7, at which point +# we need to keep only those names which we still refer to. + +# This is to help aclocal find these macros, as it can't see m4_define. +AC_DEFUN([LTOBSOLETE_VERSION], [m4_if([1])]) + +m4_ifndef([AC_LIBTOOL_LINKER_OPTION], [AC_DEFUN([AC_LIBTOOL_LINKER_OPTION])]) +m4_ifndef([AC_PROG_EGREP], [AC_DEFUN([AC_PROG_EGREP])]) +m4_ifndef([_LT_AC_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH])]) +m4_ifndef([_LT_AC_SHELL_INIT], [AC_DEFUN([_LT_AC_SHELL_INIT])]) +m4_ifndef([_LT_AC_SYS_LIBPATH_AIX], [AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX])]) +m4_ifndef([_LT_PROG_LTMAIN], [AC_DEFUN([_LT_PROG_LTMAIN])]) +m4_ifndef([_LT_AC_TAGVAR], [AC_DEFUN([_LT_AC_TAGVAR])]) +m4_ifndef([AC_LTDL_ENABLE_INSTALL], [AC_DEFUN([AC_LTDL_ENABLE_INSTALL])]) +m4_ifndef([AC_LTDL_PREOPEN], [AC_DEFUN([AC_LTDL_PREOPEN])]) +m4_ifndef([_LT_AC_SYS_COMPILER], [AC_DEFUN([_LT_AC_SYS_COMPILER])]) +m4_ifndef([_LT_AC_LOCK], [AC_DEFUN([_LT_AC_LOCK])]) +m4_ifndef([AC_LIBTOOL_SYS_OLD_ARCHIVE], [AC_DEFUN([AC_LIBTOOL_SYS_OLD_ARCHIVE])]) +m4_ifndef([_LT_AC_TRY_DLOPEN_SELF], [AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF])]) +m4_ifndef([AC_LIBTOOL_PROG_CC_C_O], [AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O])]) +m4_ifndef([AC_LIBTOOL_SYS_HARD_LINK_LOCKS], [AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS])]) +m4_ifndef([AC_LIBTOOL_OBJDIR], [AC_DEFUN([AC_LIBTOOL_OBJDIR])]) +m4_ifndef([AC_LTDL_OBJDIR], [AC_DEFUN([AC_LTDL_OBJDIR])]) +m4_ifndef([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH], [AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH])]) +m4_ifndef([AC_LIBTOOL_SYS_LIB_STRIP], [AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP])]) +m4_ifndef([AC_PATH_MAGIC], [AC_DEFUN([AC_PATH_MAGIC])]) +m4_ifndef([AC_PROG_LD_GNU], [AC_DEFUN([AC_PROG_LD_GNU])]) +m4_ifndef([AC_PROG_LD_RELOAD_FLAG], [AC_DEFUN([AC_PROG_LD_RELOAD_FLAG])]) +m4_ifndef([AC_DEPLIBS_CHECK_METHOD], [AC_DEFUN([AC_DEPLIBS_CHECK_METHOD])]) +m4_ifndef([AC_LIBTOOL_PROG_COMPILER_NO_RTTI], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI])]) +m4_ifndef([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE], [AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE])]) +m4_ifndef([AC_LIBTOOL_PROG_COMPILER_PIC], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC])]) +m4_ifndef([AC_LIBTOOL_PROG_LD_SHLIBS], [AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS])]) +m4_ifndef([AC_LIBTOOL_POSTDEP_PREDEP], [AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP])]) +m4_ifndef([LT_AC_PROG_EGREP], [AC_DEFUN([LT_AC_PROG_EGREP])]) +m4_ifndef([LT_AC_PROG_SED], [AC_DEFUN([LT_AC_PROG_SED])]) +m4_ifndef([_LT_CC_BASENAME], [AC_DEFUN([_LT_CC_BASENAME])]) +m4_ifndef([_LT_COMPILER_BOILERPLATE], [AC_DEFUN([_LT_COMPILER_BOILERPLATE])]) +m4_ifndef([_LT_LINKER_BOILERPLATE], [AC_DEFUN([_LT_LINKER_BOILERPLATE])]) +m4_ifndef([_AC_PROG_LIBTOOL], [AC_DEFUN([_AC_PROG_LIBTOOL])]) +m4_ifndef([AC_LIBTOOL_SETUP], [AC_DEFUN([AC_LIBTOOL_SETUP])]) +m4_ifndef([_LT_AC_CHECK_DLFCN], [AC_DEFUN([_LT_AC_CHECK_DLFCN])]) +m4_ifndef([AC_LIBTOOL_SYS_DYNAMIC_LINKER], [AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER])]) +m4_ifndef([_LT_AC_TAGCONFIG], [AC_DEFUN([_LT_AC_TAGCONFIG])]) +m4_ifndef([AC_DISABLE_FAST_INSTALL], [AC_DEFUN([AC_DISABLE_FAST_INSTALL])]) +m4_ifndef([_LT_AC_LANG_CXX], [AC_DEFUN([_LT_AC_LANG_CXX])]) +m4_ifndef([_LT_AC_LANG_F77], [AC_DEFUN([_LT_AC_LANG_F77])]) +m4_ifndef([_LT_AC_LANG_GCJ], [AC_DEFUN([_LT_AC_LANG_GCJ])]) +m4_ifndef([AC_LIBTOOL_LANG_C_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG])]) +m4_ifndef([_LT_AC_LANG_C_CONFIG], [AC_DEFUN([_LT_AC_LANG_C_CONFIG])]) +m4_ifndef([AC_LIBTOOL_LANG_CXX_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG])]) +m4_ifndef([_LT_AC_LANG_CXX_CONFIG], [AC_DEFUN([_LT_AC_LANG_CXX_CONFIG])]) +m4_ifndef([AC_LIBTOOL_LANG_F77_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG])]) +m4_ifndef([_LT_AC_LANG_F77_CONFIG], [AC_DEFUN([_LT_AC_LANG_F77_CONFIG])]) +m4_ifndef([AC_LIBTOOL_LANG_GCJ_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG])]) +m4_ifndef([_LT_AC_LANG_GCJ_CONFIG], [AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG])]) +m4_ifndef([AC_LIBTOOL_LANG_RC_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG])]) +m4_ifndef([_LT_AC_LANG_RC_CONFIG], [AC_DEFUN([_LT_AC_LANG_RC_CONFIG])]) +m4_ifndef([AC_LIBTOOL_CONFIG], [AC_DEFUN([AC_LIBTOOL_CONFIG])]) +m4_ifndef([_LT_AC_FILE_LTDLL_C], [AC_DEFUN([_LT_AC_FILE_LTDLL_C])]) +m4_ifndef([_LT_REQUIRED_DARWIN_CHECKS], [AC_DEFUN([_LT_REQUIRED_DARWIN_CHECKS])]) +m4_ifndef([_LT_AC_PROG_CXXCPP], [AC_DEFUN([_LT_AC_PROG_CXXCPP])]) +m4_ifndef([_LT_PREPARE_SED_QUOTE_VARS], [AC_DEFUN([_LT_PREPARE_SED_QUOTE_VARS])]) +m4_ifndef([_LT_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_PROG_ECHO_BACKSLASH])]) +m4_ifndef([_LT_PROG_F77], [AC_DEFUN([_LT_PROG_F77])]) +m4_ifndef([_LT_PROG_FC], [AC_DEFUN([_LT_PROG_FC])]) +m4_ifndef([_LT_PROG_CXX], [AC_DEFUN([_LT_PROG_CXX])]) + +# pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*- +# serial 1 (pkg-config-0.24) +# +# Copyright © 2004 Scott James Remnant . +# +# 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. + +# PKG_PROG_PKG_CONFIG([MIN-VERSION]) +# ---------------------------------- +AC_DEFUN([PKG_PROG_PKG_CONFIG], +[m4_pattern_forbid([^_?PKG_[A-Z_]+$]) +m4_pattern_allow([^PKG_CONFIG(_(PATH|LIBDIR|SYSROOT_DIR|ALLOW_SYSTEM_(CFLAGS|LIBS)))?$]) +m4_pattern_allow([^PKG_CONFIG_(DISABLE_UNINSTALLED|TOP_BUILD_DIR|DEBUG_SPEW)$]) +AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility]) +AC_ARG_VAR([PKG_CONFIG_PATH], [directories to add to pkg-config's search path]) +AC_ARG_VAR([PKG_CONFIG_LIBDIR], [path overriding pkg-config's built-in search path]) -# AM_PROG_INSTALL_STRIP -# --------------------- -# One issue with vendor 'install' (even GNU) is that you can't -# specify the program used to strip binaries. This is especially -# annoying in cross-compiling environments, where the build's strip -# is unlikely to handle the host's binaries. -# Fortunately install-sh will honor a STRIPPROG variable, so we -# always use install-sh in "make install-strip", and initialize -# STRIPPROG with the value of the STRIP variable (set by the user). -AC_DEFUN([AM_PROG_INSTALL_STRIP], -[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl -# Installed binaries are usually stripped using 'strip' when the user -# run "make install-strip". However 'strip' might not be the right -# tool to use in cross-compilation environments, therefore Automake -# will honor the 'STRIP' environment variable to overrule this program. -dnl Don't test for $cross_compiling = yes, because it might be 'maybe'. -if test "$cross_compiling" != no; then - AC_CHECK_TOOL([STRIP], [strip], :) +if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then + AC_PATH_TOOL([PKG_CONFIG], [pkg-config]) fi -INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" -AC_SUBST([INSTALL_STRIP_PROGRAM])]) +if test -n "$PKG_CONFIG"; then + _pkg_min_version=m4_default([$1], [0.9.0]) + AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version]) + if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + PKG_CONFIG="" + fi +fi[]dnl +])# PKG_PROG_PKG_CONFIG -# Copyright (C) 2006-2013 Free Software Foundation, Inc. +# PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) # -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. +# Check to see whether a particular set of modules exists. Similar +# to PKG_CHECK_MODULES(), but does not set variables or print errors. +# +# Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG]) +# only at the first occurence in configure.ac, so if the first place +# it's called might be skipped (such as if it is within an "if", you +# have to call PKG_CHECK_EXISTS manually +# -------------------------------------------------------------- +AC_DEFUN([PKG_CHECK_EXISTS], +[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl +if test -n "$PKG_CONFIG" && \ + AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then + m4_default([$2], [:]) +m4_ifvaln([$3], [else + $3])dnl +fi]) -# _AM_SUBST_NOTMAKE(VARIABLE) -# --------------------------- -# Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in. -# This macro is traced by Automake. -AC_DEFUN([_AM_SUBST_NOTMAKE]) +# _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES]) +# --------------------------------------------- +m4_define([_PKG_CONFIG], +[if test -n "$$1"; then + pkg_cv_[]$1="$$1" + elif test -n "$PKG_CONFIG"; then + PKG_CHECK_EXISTS([$3], + [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes ], + [pkg_failed=yes]) + else + pkg_failed=untried +fi[]dnl +])# _PKG_CONFIG -# AM_SUBST_NOTMAKE(VARIABLE) -# -------------------------- -# Public sister of _AM_SUBST_NOTMAKE. -AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)]) +# _PKG_SHORT_ERRORS_SUPPORTED +# ----------------------------- +AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED], +[AC_REQUIRE([PKG_PROG_PKG_CONFIG]) +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi[]dnl +])# _PKG_SHORT_ERRORS_SUPPORTED -# Check how to create a tarball. -*- Autoconf -*- -# Copyright (C) 2004-2013 Free Software Foundation, Inc. +# PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND], +# [ACTION-IF-NOT-FOUND]) # -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# _AM_PROG_TAR(FORMAT) -# -------------------- -# Check how to create a tarball in format FORMAT. -# FORMAT should be one of 'v7', 'ustar', or 'pax'. # -# Substitute a variable $(am__tar) that is a command -# writing to stdout a FORMAT-tarball containing the directory -# $tardir. -# tardir=directory && $(am__tar) > result.tar +# Note that if there is a possibility the first call to +# PKG_CHECK_MODULES might not happen, you should be sure to include an +# explicit call to PKG_PROG_PKG_CONFIG in your configure.ac # -# Substitute a variable $(am__untar) that extract such -# a tarball read from stdin. -# $(am__untar) < result.tar # -AC_DEFUN([_AM_PROG_TAR], -[# Always define AMTAR for backward compatibility. Yes, it's still used -# in the wild :-( We should find a proper way to deprecate it ... -AC_SUBST([AMTAR], ['$${TAR-tar}']) +# -------------------------------------------------------------- +AC_DEFUN([PKG_CHECK_MODULES], +[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl +AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl +AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl -# We'll loop over all known methods to create a tar archive until one works. -_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' +pkg_failed=no +AC_MSG_CHECKING([for $1]) -m4_if([$1], [v7], - [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'], +_PKG_CONFIG([$1][_CFLAGS], [cflags], [$2]) +_PKG_CONFIG([$1][_LIBS], [libs], [$2]) - [m4_case([$1], - [ustar], - [# The POSIX 1988 'ustar' format is defined with fixed-size fields. - # There is notably a 21 bits limit for the UID and the GID. In fact, - # the 'pax' utility can hang on bigger UID/GID (see automake bug#8343 - # and bug#13588). - am_max_uid=2097151 # 2^21 - 1 - am_max_gid=$am_max_uid - # The $UID and $GID variables are not portable, so we need to resort - # to the POSIX-mandated id(1) utility. Errors in the 'id' calls - # below are definitely unexpected, so allow the users to see them - # (that is, avoid stderr redirection). - am_uid=`id -u || echo unknown` - am_gid=`id -g || echo unknown` - AC_MSG_CHECKING([whether UID '$am_uid' is supported by ustar format]) - if test $am_uid -le $am_max_uid; then - AC_MSG_RESULT([yes]) - else - AC_MSG_RESULT([no]) - _am_tools=none - fi - AC_MSG_CHECKING([whether GID '$am_gid' is supported by ustar format]) - if test $am_gid -le $am_max_gid; then - AC_MSG_RESULT([yes]) - else - AC_MSG_RESULT([no]) - _am_tools=none - fi], +m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS +and $1[]_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details.]) - [pax], - [], +if test $pkg_failed = yes; then + AC_MSG_RESULT([no]) + _PKG_SHORT_ERRORS_SUPPORTED + if test $_pkg_short_errors_supported = yes; then + $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "$2" 2>&1` + else + $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "$2" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD - [m4_fatal([Unknown tar format])]) + m4_default([$4], [AC_MSG_ERROR( +[Package requirements ($2) were not met: - AC_MSG_CHECKING([how to create a $1 tar archive]) +$$1_PKG_ERRORS - # Go ahead even if we have the value already cached. We do so because we - # need to set the values for the 'am__tar' and 'am__untar' variables. - _am_tools=${am_cv_prog_tar_$1-$_am_tools} +Consider adjusting the PKG_CONFIG_PATH environment variable if you +installed software in a non-standard prefix. - for _am_tool in $_am_tools; do - case $_am_tool in - gnutar) - for _am_tar in tar gnutar gtar; do - AM_RUN_LOG([$_am_tar --version]) && break - done - am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"' - am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"' - am__untar="$_am_tar -xf -" - ;; - plaintar) - # Must skip GNU tar: if it does not support --format= it doesn't create - # ustar tarball either. - (tar --version) >/dev/null 2>&1 && continue - am__tar='tar chf - "$$tardir"' - am__tar_='tar chf - "$tardir"' - am__untar='tar xf -' - ;; - pax) - am__tar='pax -L -x $1 -w "$$tardir"' - am__tar_='pax -L -x $1 -w "$tardir"' - am__untar='pax -r' - ;; - cpio) - am__tar='find "$$tardir" -print | cpio -o -H $1 -L' - am__tar_='find "$tardir" -print | cpio -o -H $1 -L' - am__untar='cpio -i -H $1 -d' - ;; - none) - am__tar=false - am__tar_=false - am__untar=false - ;; - esac +_PKG_TEXT])[]dnl + ]) +elif test $pkg_failed = untried; then + AC_MSG_RESULT([no]) + m4_default([$4], [AC_MSG_FAILURE( +[The pkg-config script could not be found or is too old. Make sure it +is in your PATH or set the PKG_CONFIG environment variable to the full +path to pkg-config. - # If the value was cached, stop now. We just wanted to have am__tar - # and am__untar set. - test -n "${am_cv_prog_tar_$1}" && break +_PKG_TEXT - # tar/untar a dummy directory, and stop if the command works. - rm -rf conftest.dir - mkdir conftest.dir - echo GrepMe > conftest.dir/file - AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar]) - rm -rf conftest.dir - if test -s conftest.tar; then - AM_RUN_LOG([$am__untar /dev/null 2>&1 && break - fi - done - rm -rf conftest.dir +To get pkg-config, see .])[]dnl + ]) +else + $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS + $1[]_LIBS=$pkg_cv_[]$1[]_LIBS + AC_MSG_RESULT([yes]) + $3 +fi[]dnl +])# PKG_CHECK_MODULES - AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool]) - AC_MSG_RESULT([$am_cv_prog_tar_$1])]) +AC_DEFUN([WAYLAND_SCANNER_RULES], [ + PKG_PROG_PKG_CONFIG -AC_SUBST([am__tar]) -AC_SUBST([am__untar]) -]) # _AM_PROG_TAR + PKG_CHECK_MODULES([WAYLAND_SCANNER], [wayland-scanner]) + + wayland_scanner=`$PKG_CONFIG --variable=wayland_scanner wayland-scanner` + AC_SUBST([wayland_scanner]) + + wayland_scanner_rules=`$PKG_CONFIG --variable=pkgdatadir wayland-scanner`/wayland-scanner.mk + AC_SUBST_FILE([wayland_scanner_rules]) + + AC_SUBST([wayland_protocoldir], [$1]) +]) diff -Nru intel-vaapi-driver-1.7.1/configure intel-vaapi-driver-1.7.0/configure --- intel-vaapi-driver-1.7.1/configure 2016-06-21 02:07:54.000000000 +0000 +++ intel-vaapi-driver-1.7.0/configure 2016-03-15 06:42:19.000000000 +0000 @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for intel_driver 1.7.1. +# Generated by GNU Autoconf 2.69 for intel_driver 1.7.0. # # Report bugs to . # @@ -590,8 +590,8 @@ # Identity of this package. PACKAGE_NAME='intel_driver' PACKAGE_TARNAME='libva-intel-driver' -PACKAGE_VERSION='1.7.1' -PACKAGE_STRING='intel_driver 1.7.1' +PACKAGE_VERSION='1.7.0' +PACKAGE_STRING='intel_driver 1.7.0' PACKAGE_BUGREPORT='haihao.xiang@intel.com' PACKAGE_URL='' @@ -636,11 +636,16 @@ am__EXEEXT_TRUE LTLIBOBJS LIBOBJS +wayland_protocoldir +wayland_scanner +WAYLAND_SCANNER_LIBS +WAYLAND_SCANNER_CFLAGS USE_WAYLAND_FALSE USE_WAYLAND_TRUE -WAYLAND_SCANNER LIBVA_WAYLAND_DEPS_LIBS LIBVA_WAYLAND_DEPS_CFLAGS +WAYLAND_LIBS +WAYLAND_CFLAGS USE_EGL_FALSE USE_EGL_TRUE EGL_LIBS @@ -785,7 +790,7 @@ PACKAGE_NAME PATH_SEPARATOR SHELL' -ac_subst_files='' +ac_subst_files='wayland_scanner_rules' ac_user_opts=' enable_option_checking enable_silent_rules @@ -829,8 +834,12 @@ LIBVA_DRIVERS_PATH EGL_CFLAGS EGL_LIBS +WAYLAND_CFLAGS +WAYLAND_LIBS LIBVA_WAYLAND_DEPS_CFLAGS -LIBVA_WAYLAND_DEPS_LIBS' +LIBVA_WAYLAND_DEPS_LIBS +WAYLAND_SCANNER_CFLAGS +WAYLAND_SCANNER_LIBS' # Initialize some variables set by options. @@ -1371,7 +1380,7 @@ # 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 intel_driver 1.7.1 to adapt to many kinds of systems. +\`configure' configures intel_driver 1.7.0 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1442,7 +1451,7 @@ if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of intel_driver 1.7.1:";; + short | recursive ) echo "Configuration of intel_driver 1.7.0:";; esac cat <<\_ACEOF @@ -1513,10 +1522,18 @@ drivers install path EGL_CFLAGS C compiler flags for EGL, overriding pkg-config EGL_LIBS linker flags for EGL, overriding pkg-config + WAYLAND_CFLAGS + C compiler flags for WAYLAND, overriding pkg-config + WAYLAND_LIBS + linker flags for WAYLAND, overriding pkg-config LIBVA_WAYLAND_DEPS_CFLAGS C compiler flags for LIBVA_WAYLAND_DEPS, overriding pkg-config LIBVA_WAYLAND_DEPS_LIBS linker flags for LIBVA_WAYLAND_DEPS, overriding pkg-config + WAYLAND_SCANNER_CFLAGS + C compiler flags for WAYLAND_SCANNER, overriding pkg-config + WAYLAND_SCANNER_LIBS + linker flags for WAYLAND_SCANNER, overriding pkg-config Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. @@ -1584,7 +1601,7 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -intel_driver configure 1.7.1 +intel_driver configure 1.7.0 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -1953,7 +1970,7 @@ This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by intel_driver $as_me 1.7.1, which was +It was created by intel_driver $as_me 1.7.0, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -2817,7 +2834,7 @@ # Define the identity of the package. PACKAGE='libva-intel-driver' - VERSION='1.7.1' + VERSION='1.7.0' cat >>confdefs.h <<_ACEOF @@ -3031,7 +3048,7 @@ INTEL_DRIVER_MAJOR_VERSION=1 INTEL_DRIVER_MINOR_VERSION=7 -INTEL_DRIVER_MICRO_VERSION=1 +INTEL_DRIVER_MICRO_VERSION=0 $as_echo "#define INTEL_DRIVER_MAJOR_VERSION 1" >>confdefs.h @@ -3039,7 +3056,7 @@ $as_echo "#define INTEL_DRIVER_MINOR_VERSION 7" >>confdefs.h -$as_echo "#define INTEL_DRIVER_MICRO_VERSION 1" >>confdefs.h +$as_echo "#define INTEL_DRIVER_MICRO_VERSION 0" >>confdefs.h $as_echo "#define INTEL_DRIVER_PRE_VERSION 0" >>confdefs.h @@ -13116,10 +13133,10 @@ done -LIBVA_PACKAGE_VERSION=1.7.1 +LIBVA_PACKAGE_VERSION=1.7.0 -LIBDRM_VERSION=2.4.52 +LIBDRM_VERSION=2.4.45 @@ -13523,12 +13540,12 @@ pkg_cv_LIBVA_DEPS_CFLAGS="$LIBVA_DEPS_CFLAGS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libva >= 0.39.2\""; } >&5 - ($PKG_CONFIG --exists --print-errors "libva >= 0.39.2") 2>&5 + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libva >= 0.39\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libva >= 0.39") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then - pkg_cv_LIBVA_DEPS_CFLAGS=`$PKG_CONFIG --cflags "libva >= 0.39.2" 2>/dev/null` + pkg_cv_LIBVA_DEPS_CFLAGS=`$PKG_CONFIG --cflags "libva >= 0.39" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes @@ -13540,12 +13557,12 @@ pkg_cv_LIBVA_DEPS_LIBS="$LIBVA_DEPS_LIBS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libva >= 0.39.2\""; } >&5 - ($PKG_CONFIG --exists --print-errors "libva >= 0.39.2") 2>&5 + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libva >= 0.39\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libva >= 0.39") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then - pkg_cv_LIBVA_DEPS_LIBS=`$PKG_CONFIG --libs "libva >= 0.39.2" 2>/dev/null` + pkg_cv_LIBVA_DEPS_LIBS=`$PKG_CONFIG --libs "libva >= 0.39" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes @@ -13566,14 +13583,14 @@ _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then - LIBVA_DEPS_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libva >= 0.39.2" 2>&1` + LIBVA_DEPS_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libva >= 0.39" 2>&1` else - LIBVA_DEPS_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libva >= 0.39.2" 2>&1` + LIBVA_DEPS_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libva >= 0.39" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$LIBVA_DEPS_PKG_ERRORS" >&5 - as_fn_error $? "Package requirements (libva >= 0.39.2) were not met: + as_fn_error $? "Package requirements (libva >= 0.39) were not met: $LIBVA_DEPS_PKG_ERRORS @@ -13988,6 +14005,77 @@ if test "$enable_wayland" = "yes"; then pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for WAYLAND" >&5 +$as_echo_n "checking for WAYLAND... " >&6; } + +if test -n "$WAYLAND_CFLAGS"; then + pkg_cv_WAYLAND_CFLAGS="$WAYLAND_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"wayland-client\""; } >&5 + ($PKG_CONFIG --exists --print-errors "wayland-client") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_WAYLAND_CFLAGS=`$PKG_CONFIG --cflags "wayland-client" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$WAYLAND_LIBS"; then + pkg_cv_WAYLAND_LIBS="$WAYLAND_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"wayland-client\""; } >&5 + ($PKG_CONFIG --exists --print-errors "wayland-client") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_WAYLAND_LIBS=`$PKG_CONFIG --libs "wayland-client" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + WAYLAND_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "wayland-client" 2>&1` + else + WAYLAND_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "wayland-client" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$WAYLAND_PKG_ERRORS" >&5 + + : +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + : +else + WAYLAND_CFLAGS=$pkg_cv_WAYLAND_CFLAGS + WAYLAND_LIBS=$pkg_cv_WAYLAND_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + USE_WAYLAND="yes" +fi + +pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for LIBVA_WAYLAND_DEPS" >&5 $as_echo_n "checking for LIBVA_WAYLAND_DEPS... " >&6; } @@ -14045,42 +14133,60 @@ # Put the nasty error message in config.log where it belongs echo "$LIBVA_WAYLAND_DEPS_PKG_ERRORS" >&5 - : + USE_WAYLAND="no" elif test $pkg_failed = untried; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } - : + USE_WAYLAND="no" else LIBVA_WAYLAND_DEPS_CFLAGS=$pkg_cv_LIBVA_WAYLAND_DEPS_CFLAGS LIBVA_WAYLAND_DEPS_LIBS=$pkg_cv_LIBVA_WAYLAND_DEPS_LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } - USE_WAYLAND="yes" + +$as_echo "#define HAVE_VA_WAYLAND 1" >>confdefs.h + +fi fi + if test "$USE_WAYLAND" = "yes"; then + USE_WAYLAND_TRUE= + USE_WAYLAND_FALSE='#' +else + USE_WAYLAND_TRUE='#' + USE_WAYLAND_FALSE= +fi + + - if test "$USE_WAYLAND" = "yes"; then - WAYLAND_PREFIX=`$PKG_CONFIG --variable=prefix wayland-client` - # Extract the first word of "wayland-scanner", so it can be a program name with args. -set dummy wayland-scanner; ac_word=$2 + + + + + + +if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. +set dummy ${ac_tool_prefix}pkg-config; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_WAYLAND_SCANNER+:} false; then : +if ${ac_cv_path_PKG_CONFIG+:} false; then : $as_echo_n "(cached) " >&6 else - case $WAYLAND_SCANNER in + case $PKG_CONFIG in [\\/]* | ?:[\\/]*) - ac_cv_path_WAYLAND_SCANNER="$WAYLAND_SCANNER" # Let the user override the test with a path. + ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in ${WAYLAND_PREFIX}/bin$PATH_SEPARATOR$PATH +for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_WAYLAND_SCANNER="$as_dir/$ac_word$ac_exec_ext" + ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi @@ -14091,32 +14197,191 @@ ;; esac fi -WAYLAND_SCANNER=$ac_cv_path_WAYLAND_SCANNER -if test -n "$WAYLAND_SCANNER"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $WAYLAND_SCANNER" >&5 -$as_echo "$WAYLAND_SCANNER" >&6; } +PKG_CONFIG=$ac_cv_path_PKG_CONFIG +if test -n "$PKG_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5 +$as_echo "$PKG_CONFIG" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi +fi +if test -z "$ac_cv_path_PKG_CONFIG"; then + ac_pt_PKG_CONFIG=$PKG_CONFIG + # Extract the first word of "pkg-config", so it can be a program name with args. +set dummy pkg-config; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_ac_pt_PKG_CONFIG+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $ac_pt_PKG_CONFIG in + [\\/]* | ?:[\\/]*) + ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_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 as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + ;; +esac +fi +ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG +if test -n "$ac_pt_PKG_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5 +$as_echo "$ac_pt_PKG_CONFIG" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi -$as_echo "#define HAVE_VA_WAYLAND 1" >>confdefs.h + if test "x$ac_pt_PKG_CONFIG" = x; then + PKG_CONFIG="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + PKG_CONFIG=$ac_pt_PKG_CONFIG + fi +else + PKG_CONFIG="$ac_cv_path_PKG_CONFIG" +fi - fi fi - if test "$USE_WAYLAND" = "yes"; then - USE_WAYLAND_TRUE= - USE_WAYLAND_FALSE='#' +if test -n "$PKG_CONFIG"; then + _pkg_min_version=0.9.0 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5 +$as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; } + if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + PKG_CONFIG="" + fi +fi + + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for WAYLAND_SCANNER" >&5 +$as_echo_n "checking for WAYLAND_SCANNER... " >&6; } + +if test -n "$WAYLAND_SCANNER_CFLAGS"; then + pkg_cv_WAYLAND_SCANNER_CFLAGS="$WAYLAND_SCANNER_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"wayland-scanner\""; } >&5 + ($PKG_CONFIG --exists --print-errors "wayland-scanner") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_WAYLAND_SCANNER_CFLAGS=`$PKG_CONFIG --cflags "wayland-scanner" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes else - USE_WAYLAND_TRUE='#' - USE_WAYLAND_FALSE= + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$WAYLAND_SCANNER_LIBS"; then + pkg_cv_WAYLAND_SCANNER_LIBS="$WAYLAND_SCANNER_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"wayland-scanner\""; } >&5 + ($PKG_CONFIG --exists --print-errors "wayland-scanner") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_WAYLAND_SCANNER_LIBS=`$PKG_CONFIG --libs "wayland-scanner" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes fi + else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + WAYLAND_SCANNER_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "wayland-scanner" 2>&1` + else + WAYLAND_SCANNER_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "wayland-scanner" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$WAYLAND_SCANNER_PKG_ERRORS" >&5 + + as_fn_error $? "Package requirements (wayland-scanner) were not met: + +$WAYLAND_SCANNER_PKG_ERRORS + +Consider adjusting the PKG_CONFIG_PATH environment variable if you +installed software in a non-standard prefix. + +Alternatively, you may set the environment variables WAYLAND_SCANNER_CFLAGS +and WAYLAND_SCANNER_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details." "$LINENO" 5 +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it +is in your PATH or set the PKG_CONFIG environment variable to the full +path to pkg-config. + +Alternatively, you may set the environment variables WAYLAND_SCANNER_CFLAGS +and WAYLAND_SCANNER_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details. + +To get pkg-config, see . +See \`config.log' for more details" "$LINENO" 5; } +else + WAYLAND_SCANNER_CFLAGS=$pkg_cv_WAYLAND_SCANNER_CFLAGS + WAYLAND_SCANNER_LIBS=$pkg_cv_WAYLAND_SCANNER_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + +fi + + wayland_scanner=`$PKG_CONFIG --variable=wayland_scanner wayland-scanner` + + + wayland_scanner_rules=`$PKG_CONFIG --variable=pkgdatadir wayland-scanner`/wayland-scanner.mk -ac_config_files="$ac_config_files Makefile debian.upstream/Makefile src/Makefile src/shaders/Makefile src/shaders/h264/Makefile src/shaders/h264/ildb/Makefile src/shaders/h264/mc/Makefile src/shaders/mpeg2/Makefile src/shaders/mpeg2/vld/Makefile src/shaders/post_processing/Makefile src/shaders/post_processing/gen5_6/Makefile src/shaders/post_processing/gen7/Makefile src/shaders/post_processing/gen75/Makefile src/shaders/post_processing/gen8/Makefile src/shaders/post_processing/gen9/Makefile src/shaders/render/Makefile src/shaders/utils/Makefile src/shaders/vme/Makefile" + wayland_protocoldir='$(top_builddir)/src/wayland' + + + +ac_config_files="$ac_config_files Makefile debian.upstream/Makefile src/Makefile src/shaders/Makefile src/shaders/h264/Makefile src/shaders/h264/ildb/Makefile src/shaders/h264/mc/Makefile src/shaders/mpeg2/Makefile src/shaders/mpeg2/vld/Makefile src/shaders/post_processing/Makefile src/shaders/post_processing/gen5_6/Makefile src/shaders/post_processing/gen7/Makefile src/shaders/post_processing/gen75/Makefile src/shaders/post_processing/gen8/Makefile src/shaders/post_processing/gen9/Makefile src/shaders/render/Makefile src/shaders/utils/Makefile src/shaders/vme/Makefile src/wayland/Makefile" cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure @@ -14681,7 +14946,7 @@ # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by intel_driver $as_me 1.7.1, which was +This file was extended by intel_driver $as_me 1.7.0, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -14747,7 +15012,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -intel_driver config.status 1.7.1 +intel_driver config.status 1.7.0 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" @@ -15174,6 +15439,7 @@ "src/shaders/render/Makefile") CONFIG_FILES="$CONFIG_FILES src/shaders/render/Makefile" ;; "src/shaders/utils/Makefile") CONFIG_FILES="$CONFIG_FILES src/shaders/utils/Makefile" ;; "src/shaders/vme/Makefile") CONFIG_FILES="$CONFIG_FILES src/shaders/vme/Makefile" ;; + "src/wayland/Makefile") CONFIG_FILES="$CONFIG_FILES src/wayland/Makefile" ;; *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; esac @@ -15222,7 +15488,24 @@ # This happens for instance with `./config.status config.h'. if test -n "$CONFIG_FILES"; then - +if $AWK 'BEGIN { getline <"/dev/null" }' /dev/null; then + ac_cs_awk_getline=: + ac_cs_awk_pipe_init= + ac_cs_awk_read_file=' + while ((getline aline < (F[key])) > 0) + print(aline) + close(F[key])' + ac_cs_awk_pipe_fini= +else + ac_cs_awk_getline=false + ac_cs_awk_pipe_init="print \"cat <<'|#_!!_#|' &&\"" + ac_cs_awk_read_file=' + print "|#_!!_#|" + print "cat " F[key] " &&" + '$ac_cs_awk_pipe_init + # The final `:' finishes the AND list. + ac_cs_awk_pipe_fini='END { print "|#_!!_#|"; print ":" }' +fi ac_cr=`echo X | tr X '\015'` # On cygwin, bash can eat \r inside `` if the user requested igncr. # But we know of no other shell where ac_cr would be empty at this @@ -15240,6 +15523,17 @@ echo 'BEGIN {' >"$ac_tmp/subs1.awk" && _ACEOF +# Create commands to substitute file output variables. +{ + echo "cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1" && + echo 'cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK &&' && + echo "$ac_subst_files" | sed 's/.*/F["&"]="$&"/' && + echo "_ACAWK" && + echo "_ACEOF" +} >conf$$files.sh && +. ./conf$$files.sh || + as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 +rm -f conf$$files.sh { echo "cat >conf$$subs.awk <<_ACEOF" && @@ -15316,7 +15610,7 @@ cat >>"\$ac_tmp/subs1.awk" <<_ACAWK && for (key in S) S_is_set[key] = 1 FS = "" - + \$ac_cs_awk_pipe_init } { line = $ 0 @@ -15334,10 +15628,16 @@ } else len += 1 + keylen } - + if (nfields == 3 && !substed) { + key = field[2] + if (F[key] != "" && line ~ /^[ ]*@.*@[ ]*$/) { + \$ac_cs_awk_read_file + next + } + } print line } - +\$ac_cs_awk_pipe_fini _ACAWK _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 @@ -15684,7 +15984,12 @@ s&@MKDIR_P@&$ac_MKDIR_P&;t t $ac_datarootdir_hack " -eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \ +eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | +if $ac_cs_awk_getline; then + $AWK -f "$ac_tmp/subs.awk" +else + $AWK -f "$ac_tmp/subs.awk" | $SHELL +fi \ >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5 test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && diff -Nru intel-vaapi-driver-1.7.1/configure.ac intel-vaapi-driver-1.7.0/configure.ac --- intel-vaapi-driver-1.7.1/configure.ac 2016-06-21 02:05:31.000000000 +0000 +++ intel-vaapi-driver-1.7.0/configure.ac 2016-03-15 06:42:03.000000000 +0000 @@ -1,7 +1,7 @@ # intel-driver package version number m4_define([intel_driver_major_version], [1]) m4_define([intel_driver_minor_version], [7]) -m4_define([intel_driver_micro_version], [1]) +m4_define([intel_driver_micro_version], [0]) m4_define([intel_driver_pre_version], [0]) m4_define([intel_driver_version], [intel_driver_major_version.intel_driver_minor_version.intel_driver_micro_version]) @@ -10,11 +10,11 @@ ]) # libva minimum version requirement -m4_define([va_api_version], [0.39.2]) -m4_define([libva_package_version], [1.7.1]) +m4_define([va_api_version], [0.39]) +m4_define([libva_package_version], [1.7.0]) # libdrm minimum version requirement -m4_define([libdrm_version], [2.4.52]) +m4_define([libdrm_version], [2.4.45]) AC_PREREQ([2.57]) AC_INIT([intel_driver], [intel_driver_version], [haihao.xiang@intel.com], @@ -173,21 +173,17 @@ # Check for Wayland USE_WAYLAND="no" if test "$enable_wayland" = "yes"; then + PKG_CHECK_MODULES([WAYLAND], [wayland-client], [USE_WAYLAND="yes"], [:]) PKG_CHECK_MODULES([LIBVA_WAYLAND_DEPS], [libva-wayland], - [USE_WAYLAND="yes"], [:]) - - if test "$USE_WAYLAND" = "yes"; then - - WAYLAND_PREFIX=`$PKG_CONFIG --variable=prefix wayland-client` - AC_PATH_PROG([WAYLAND_SCANNER], [wayland-scanner],, - [${WAYLAND_PREFIX}/bin$PATH_SEPARATOR$PATH]) - - AC_DEFINE([HAVE_VA_WAYLAND], [1], - [Defined to 1 if VA/Wayland API is enabled]) - fi + [AC_DEFINE([HAVE_VA_WAYLAND], [1], [Defined to 1 if VA/Wayland API is enabled])], + [USE_WAYLAND="no"]) fi AM_CONDITIONAL(USE_WAYLAND, test "$USE_WAYLAND" = "yes") +m4_ifdef([WAYLAND_SCANNER_RULES], + [WAYLAND_SCANNER_RULES(['$(top_builddir)/src/wayland'])], + [wayland_scanner_rules=""; AC_SUBST(wayland_scanner_rules)]) + AC_OUTPUT([ Makefile debian.upstream/Makefile @@ -207,6 +203,7 @@ src/shaders/render/Makefile src/shaders/utils/Makefile src/shaders/vme/Makefile + src/wayland/Makefile ]) dnl Print summary diff -Nru intel-vaapi-driver-1.7.1/debian/changelog intel-vaapi-driver-1.7.0/debian/changelog --- intel-vaapi-driver-1.7.1/debian/changelog 2016-07-02 00:54:47.000000000 +0000 +++ intel-vaapi-driver-1.7.0/debian/changelog 2016-03-18 17:33:34.000000000 +0000 @@ -1,18 +1,8 @@ -intel-vaapi-driver (1.7.1-1~ppa) xenial; urgency=medium +intel-vaapi-driver (1.7.0-1~ppa1) trusty; urgency=medium - * For xenial + * Trusty - -- Doug McMahon Fri, 01 Jul 2016 20:54:17 -0400 - -intel-vaapi-driver (1.7.1-1) unstable; urgency=medium - - * New upstream release. - * debian/control: - - Bump Standards-Version. - - Build-Depends: Bump libdrm-dev and libva-dev according to configure.ac. - - Description: Mention Skylake. - - -- Sebastian Ramacher Wed, 22 Jun 2016 19:08:16 +0200 + -- Doug McMahon Fri, 18 Mar 2016 13:33:07 -0400 intel-vaapi-driver (1.7.0-1) unstable; urgency=medium diff -Nru intel-vaapi-driver-1.7.1/debian/control intel-vaapi-driver-1.7.0/debian/control --- intel-vaapi-driver-1.7.1/debian/control 2016-07-02 00:55:13.000000000 +0000 +++ intel-vaapi-driver-1.7.0/debian/control 2016-03-18 17:36:33.000000000 +0000 @@ -10,14 +10,13 @@ Build-Depends: debhelper (>= 9), dh-autoreconf, - intel-gpu-tools (>= 1.9) [amd64 i386], - libdrm-dev (>= 2.4.52), - libva-dev (>= 1.7.1), + libdrm-dev (>= 2.4.45), + libva-dev (>= 1.7.0), libwayland-dev (>= 1.0.0) [amd64 i386], libx11-dev, pkg-config, python [amd64 i386] -Standards-Version: 3.9.7 +Standards-Version: 3.9.6 Homepage: http://www.freedesktop.org/wiki/Software/vaapi Vcs-Git: https://anonscm.debian.org/git/pkg-multimedia/intel-vaapi-driver.git Vcs-Browser: https://anonscm.debian.org/cgit/pkg-multimedia/intel-vaapi-driver.git @@ -49,4 +48,3 @@ * Ivy Bridge * Haswell * Broadwell - * Skylake diff -Nru intel-vaapi-driver-1.7.1/debian/source/options intel-vaapi-driver-1.7.0/debian/source/options --- intel-vaapi-driver-1.7.1/debian/source/options 1970-01-01 00:00:00.000000000 +0000 +++ intel-vaapi-driver-1.7.0/debian/source/options 2014-06-16 08:13:49.000000000 +0000 @@ -0,0 +1,2 @@ +unapply-patches +abort-on-upstream-changes diff -Nru intel-vaapi-driver-1.7.1/debian.upstream/changelog intel-vaapi-driver-1.7.0/debian.upstream/changelog --- intel-vaapi-driver-1.7.1/debian.upstream/changelog 2016-06-21 02:07:56.000000000 +0000 +++ intel-vaapi-driver-1.7.0/debian.upstream/changelog 2016-03-15 06:42:57.000000000 +0000 @@ -1,5 +1,5 @@ -libva-intel-driver (1.7.1-1) unstable; urgency=low +libva-intel-driver (1.7.0-1) unstable; urgency=low * Autogenerated package, see NEWS file for ChangeLog. - -- Gwenole Beauchesne Tue, 21 Jun 2016 10:07:56 +0800 + -- Gwenole Beauchesne Tue, 15 Mar 2016 14:42:57 +0800 diff -Nru intel-vaapi-driver-1.7.1/debian.upstream/control intel-vaapi-driver-1.7.0/debian.upstream/control --- intel-vaapi-driver-1.7.1/debian.upstream/control 2016-06-21 02:07:56.000000000 +0000 +++ intel-vaapi-driver-1.7.0/debian.upstream/control 2016-03-15 06:42:57.000000000 +0000 @@ -4,14 +4,14 @@ Maintainer: Gwenole Beauchesne Build-Depends: debhelper (>= 5), cdbs, - libdrm-dev (>= 2.4.52), - libva-dev (>= 1.7.1) + libdrm-dev (>= 2.4.45), + libva-dev (>= 1.7.0) Standards-Version: 3.7.2 Package: libva-intel-driver Section: libs Architecture: any -Depends: libva1 (>= 1.7.1), +Depends: libva1 (>= 1.7.0), ${shlibs:Depends}, ${misc:Depends} Description: VA driver for Intel G45 & HD Graphics family Video decode & encode driver for Intel G45 chipsets and Intel HD diff -Nru intel-vaapi-driver-1.7.1/debian.upstream/Makefile.in intel-vaapi-driver-1.7.0/debian.upstream/Makefile.in --- intel-vaapi-driver-1.7.1/debian.upstream/Makefile.in 2016-06-21 02:07:53.000000000 +0000 +++ intel-vaapi-driver-1.7.0/debian.upstream/Makefile.in 2016-03-15 06:42:43.000000000 +0000 @@ -197,7 +197,10 @@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ -WAYLAND_SCANNER = @WAYLAND_SCANNER@ +WAYLAND_CFLAGS = @WAYLAND_CFLAGS@ +WAYLAND_LIBS = @WAYLAND_LIBS@ +WAYLAND_SCANNER_CFLAGS = @WAYLAND_SCANNER_CFLAGS@ +WAYLAND_SCANNER_LIBS = @WAYLAND_SCANNER_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ @@ -250,6 +253,8 @@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ +wayland_protocoldir = @wayland_protocoldir@ +wayland_scanner = @wayland_scanner@ DEBIANFILES = \ changelog.in \ compat \ @@ -282,9 +287,9 @@ exit 1;; \ esac; \ done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign debian.upstream/Makefile'; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu debian.upstream/Makefile'; \ $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --foreign debian.upstream/Makefile + $(AUTOMAKE) --gnu debian.upstream/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ diff -Nru intel-vaapi-driver-1.7.1/Makefile.in intel-vaapi-driver-1.7.0/Makefile.in --- intel-vaapi-driver-1.7.1/Makefile.in 2016-06-21 02:07:53.000000000 +0000 +++ intel-vaapi-driver-1.7.0/Makefile.in 2016-03-15 06:42:16.000000000 +0000 @@ -276,7 +276,10 @@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ -WAYLAND_SCANNER = @WAYLAND_SCANNER@ +WAYLAND_CFLAGS = @WAYLAND_CFLAGS@ +WAYLAND_LIBS = @WAYLAND_LIBS@ +WAYLAND_SCANNER_CFLAGS = @WAYLAND_SCANNER_CFLAGS@ +WAYLAND_SCANNER_LIBS = @WAYLAND_SCANNER_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ @@ -329,6 +332,8 @@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ +wayland_protocoldir = @wayland_protocoldir@ +wayland_scanner = @wayland_scanner@ AUTOMAKE_OPTIONS = foreign SUBDIRS = debian.upstream src diff -Nru intel-vaapi-driver-1.7.1/NEWS intel-vaapi-driver-1.7.0/NEWS --- intel-vaapi-driver-1.7.1/NEWS 2016-06-21 01:36:08.000000000 +0000 +++ intel-vaapi-driver-1.7.0/NEWS 2016-03-15 06:41:19.000000000 +0000 @@ -1,15 +1,5 @@ -libva-intel-driver NEWS -- summary of changes. 2016-06-21 -Copyright (C) 2009-2016 Intel Corporation - -Version 1.7.1 - 21.Jun.2016 -* Add support VP9 8bit encoding on KBL -* Add support for low-power/high-performance H.264 encoder on SKL -* Fix incorrect color space conversion in driver - (https://bugs.freedesktop.org/show_bug.cgi?id=94845) -* Fix FPS caculation for HEVC encoder -* Fix VP9 10bit decoding issue on KBL -* Fix the noise issue when VA_FILTER_SCALING_HQ upscaling from 1280x720 to 1920x1080 with YUY2 format on BDW+ - (https://bugs.freedesktop.org/show_bug.cgi?id=94765) +libva-intel-driver NEWS -- summary of changes. 2016-03-15 +Copyright (C) 2009-2015 Intel Corporation Version 1.7.0 - 15.Mar.2016 * Add support for Kabylake diff -Nru intel-vaapi-driver-1.7.1/src/gen6_mfc_common.c intel-vaapi-driver-1.7.0/src/gen6_mfc_common.c --- intel-vaapi-driver-1.7.1/src/gen6_mfc_common.c 2016-06-17 01:56:44.000000000 +0000 +++ intel-vaapi-driver-1.7.0/src/gen6_mfc_common.c 2016-03-15 06:40:58.000000000 +0000 @@ -441,6 +441,58 @@ } } +static int intel_avc_find_skipemulcnt(unsigned char *buf, int bits_length) +{ + int i, found; + int leading_zero_cnt, byte_length, zero_byte; + int nal_unit_type; + int skip_cnt = 0; + +#define NAL_UNIT_TYPE_MASK 0x1f +#define HW_MAX_SKIP_LENGTH 15 + + byte_length = ALIGN(bits_length, 32) >> 3; + + + leading_zero_cnt = 0; + found = 0; + for(i = 0; i < byte_length - 4; i++) { + if (((buf[i] == 0) && (buf[i + 1] == 0) && (buf[i + 2] == 1)) || + ((buf[i] == 0) && (buf[i + 1] == 0) && (buf[i + 2] == 0) && (buf[i + 3] == 1))) { + found = 1; + break; + } + leading_zero_cnt++; + } + if (!found) { + /* warning message is complained. But anyway it will be inserted. */ + WARN_ONCE("Invalid packed header data. " + "Can't find the 000001 start_prefix code\n"); + return 0; + } + i = leading_zero_cnt; + + zero_byte = 0; + if (!((buf[i] == 0) && (buf[i + 1] == 0) && (buf[i + 2] == 1))) + zero_byte = 1; + + skip_cnt = leading_zero_cnt + zero_byte + 3; + + /* the unit header byte is accounted */ + nal_unit_type = (buf[skip_cnt]) & NAL_UNIT_TYPE_MASK; + skip_cnt += 1; + + if (nal_unit_type == 14 || nal_unit_type == 20 || nal_unit_type == 21) { + /* more unit header bytes are accounted for MVC/SVC */ + skip_cnt += 3; + } + if (skip_cnt > HW_MAX_SKIP_LENGTH) { + WARN_ONCE("Too many leading zeros are padded for packed data. " + "It is beyond the HW range.!!!\n"); + } + return skip_cnt; +} + void intel_mfc_avc_pipeline_header_programing(VADriverContextP ctx, struct encode_state *encode_state, struct intel_encoder_context *encoder_context, diff -Nru intel-vaapi-driver-1.7.1/src/gen8_post_processing.c intel-vaapi-driver-1.7.0/src/gen8_post_processing.c --- intel-vaapi-driver-1.7.1/src/gen8_post_processing.c 2016-06-21 01:35:12.000000000 +0000 +++ intel-vaapi-driver-1.7.0/src/gen8_post_processing.c 2016-03-11 04:38:17.000000000 +0000 @@ -765,19 +765,6 @@ }, }; -static int -gen8_pp_get_8tap_filter_mode(VADriverContextP ctx, - const struct i965_surface *surface) -{ - int fourcc = pp_get_surface_fourcc(ctx, surface); - - if (fourcc == VA_FOURCC_YUY2 || - fourcc == VA_FOURCC_UYVY) - return 1; - else - return 3; -} - VAStatus gen8_pp_plx_avs_initialize(VADriverContextP ctx, struct i965_post_processing_context *pp_context, const struct i965_surface *src_surface, @@ -854,7 +841,7 @@ * If the 8tap filter is disabled, the adaptive filter should be disabled. * Only when 8tap filter is enabled, it can be enabled or not. */ - sampler_8x8->dw3.enable_8tap_filter = gen8_pp_get_8tap_filter_mode(ctx, src_surface); + sampler_8x8->dw3.enable_8tap_filter = 3; sampler_8x8->dw3.ief4_smooth_enable = 0; sampler_8x8->dw4.s3u = 0; diff -Nru intel-vaapi-driver-1.7.1/src/gen9_mfc_hevc.c intel-vaapi-driver-1.7.0/src/gen9_mfc_hevc.c --- intel-vaapi-driver-1.7.1/src/gen9_mfc_hevc.c 2016-06-16 00:57:46.000000000 +0000 +++ intel-vaapi-driver-1.7.0/src/gen9_mfc_hevc.c 2016-03-11 04:38:17.000000000 +0000 @@ -1687,8 +1687,6 @@ int cu_index = 0; int inter_rdo, intra_rdo; int qp; - int drop_cu_row_in_last_mb = 0; - int drop_cu_column_in_last_mb = 0; if (log2_ctb_size == 5) num_cu_record = 16; else if (log2_ctb_size == 4) num_cu_record = 4; @@ -1753,29 +1751,10 @@ int last_ctb = (i_ctb == (pSliceParameter->slice_segment_address + pSliceParameter->num_ctu_in_slice - 1)); int ctb_height_in_mb_internal = ctb_width_in_mb; int ctb_width_in_mb_internal = ctb_width_in_mb; - int max_cu_num_in_mb = 4; - ctb_x = i_ctb % width_in_ctb; ctb_y = i_ctb / width_in_ctb; - - drop_cu_row_in_last_mb = 0; - drop_cu_column_in_last_mb = 0; - - if(ctb_y == (height_in_ctb - 1) && row_pad_flag) - { - ctb_height_in_mb_internal = (pSequenceParameter->pic_height_in_luma_samples - (ctb_y * ctb_size) + 15)/16; - - if((log2_cu_size == 3) && (pSequenceParameter->pic_height_in_luma_samples % 16)) - drop_cu_row_in_last_mb = (16 - (pSequenceParameter->pic_height_in_luma_samples % 16))>>log2_cu_size; - } - - if(ctb_x == (width_in_ctb - 1) && col_pad_flag) - { - ctb_width_in_mb_internal = (pSequenceParameter->pic_width_in_luma_samples - (ctb_x * ctb_size) + 15) / 16; - - if((log2_cu_size == 3) && (pSequenceParameter->pic_width_in_luma_samples % 16)) - drop_cu_column_in_last_mb = (16 - (pSequenceParameter->pic_width_in_luma_samples % 16))>>log2_cu_size; - } + if(ctb_y == (height_in_ctb - 1) && row_pad_flag) ctb_height_in_mb_internal = 1; + if(ctb_x == (width_in_ctb - 1) && col_pad_flag) ctb_width_in_mb_internal = 1; mb_x = 0; mb_y = 0; @@ -1790,13 +1769,6 @@ mb_addr = macroblock_address + mb_y * width_in_mbs ; for (mb_x = 0; mb_x < ctb_width_in_mb_internal; mb_x++) { - max_cu_num_in_mb = 4; - if(drop_cu_row_in_last_mb && (mb_y == ctb_height_in_mb_internal - 1)) - max_cu_num_in_mb /= 2; - - if(drop_cu_column_in_last_mb && (mb_x == ctb_width_in_mb_internal - 1)) - max_cu_num_in_mb /= 2; - /* get the mb info from the vme out */ msg = (unsigned int *)(msg_ptr + mb_addr * vme_context->vme_output.size_block); @@ -1807,23 +1779,7 @@ if (is_intra || intra_rdo < inter_rdo) { /* fill intra cu */ tmp_mb_mode = (msg[0] & AVC_INTRA_MODE_MASK) >> 4; - if(max_cu_num_in_mb < 4){ - if(tmp_mb_mode == AVC_INTRA_16X16) - { - msg[0] = (msg[0] & !AVC_INTRA_MODE_MASK) | (AVC_INTRA_8X8<<4); - tmp_mb_mode = AVC_INTRA_8X8; - } - - gen9_hcpe_hevc_fill_indirect_cu_intra(ctx, encode_state, encoder_context, qp, msg, ctb_x, ctb_y, mb_x, mb_y, ctb_width_in_mb, width_in_ctb, num_cu_record, slice_type,cu_index++,0); - if(--max_cu_num_in_mb > 0) - gen9_hcpe_hevc_fill_indirect_cu_intra(ctx, encode_state, encoder_context, qp, msg, ctb_x, ctb_y, mb_x, mb_y, ctb_width_in_mb, width_in_ctb, num_cu_record, slice_type,cu_index++,2); - - if(ctb_width_in_mb == 2) - split_coding_unit_flag |= 0x1 << (mb_x + mb_y * ctb_width_in_mb + 16); - else if(ctb_width_in_mb == 1) - split_coding_unit_flag |= 0x1 << 20; - } - else if(tmp_mb_mode == AVC_INTRA_16X16) { + if (tmp_mb_mode == AVC_INTRA_16X16) { gen9_hcpe_hevc_fill_indirect_cu_intra(ctx, encode_state, encoder_context, qp, msg, ctb_x, ctb_y, mb_x, mb_y, ctb_width_in_mb, width_in_ctb, num_cu_record, slice_type,cu_index++,0); } else { // for 4x4 to use 8x8 replace gen9_hcpe_hevc_fill_indirect_cu_intra(ctx, encode_state, encoder_context, qp, msg, ctb_x, ctb_y, mb_x, mb_y, ctb_width_in_mb, width_in_ctb, num_cu_record, slice_type,cu_index++,0); @@ -1839,23 +1795,7 @@ msg += AVC_INTER_MSG_OFFSET; /* fill inter cu */ tmp_mb_mode = msg[0] & AVC_INTER_MODE_MASK; - if(max_cu_num_in_mb < 4) - { - if(tmp_mb_mode != AVC_INTER_8X8) - { - msg[0] = (msg[0] & !AVC_INTER_MODE_MASK) | AVC_INTER_8X8; - tmp_mb_mode = AVC_INTER_8X8; - } - gen9_hcpe_hevc_fill_indirect_cu_inter(ctx, encode_state, encoder_context, qp, msg, ctb_x, ctb_y, mb_x, mb_y, ctb_width_in_mb, width_in_ctb, num_cu_record, slice_type,cu_index++,0); - if(--max_cu_num_in_mb > 0) - gen9_hcpe_hevc_fill_indirect_cu_inter(ctx, encode_state, encoder_context, qp, msg, ctb_x, ctb_y, mb_x, mb_y, ctb_width_in_mb, width_in_ctb, num_cu_record, slice_type,cu_index++,1); - - if(ctb_width_in_mb == 2) - split_coding_unit_flag |= 0x1 << (mb_x + mb_y * ctb_width_in_mb + 16); - else if(ctb_width_in_mb == 1) - split_coding_unit_flag |= 0x1 << 20; - } - else if (tmp_mb_mode == AVC_INTER_8X8){ + if (tmp_mb_mode == AVC_INTER_8X8){ gen9_hcpe_hevc_fill_indirect_cu_inter(ctx, encode_state, encoder_context, qp, msg, ctb_x, ctb_y, mb_x, mb_y, ctb_width_in_mb, width_in_ctb, num_cu_record, slice_type,cu_index++,0); gen9_hcpe_hevc_fill_indirect_cu_inter(ctx, encode_state, encoder_context, qp, msg, ctb_x, ctb_y, mb_x, mb_y, ctb_width_in_mb, width_in_ctb, num_cu_record, slice_type,cu_index++,1); gen9_hcpe_hevc_fill_indirect_cu_inter(ctx, encode_state, encoder_context, qp, msg, ctb_x, ctb_y, mb_x, mb_y, ctb_width_in_mb, width_in_ctb, num_cu_record, slice_type,cu_index++,2); @@ -2211,7 +2151,7 @@ int width_in_mbs = (pSequenceParameter->pic_width_in_luma_samples + ctb_size - 1) / ctb_size; int height_in_mbs = (pSequenceParameter->pic_height_in_luma_samples + ctb_size - 1) / ctb_size; - float fps = pSequenceParameter->vui_time_scale / pSequenceParameter->vui_num_units_in_tick ; + float fps = pSequenceParameter->vui_time_scale * 0.5 / pSequenceParameter->vui_num_units_in_tick ; double bitrate = pSequenceParameter->bits_per_second * 1.0; int inter_mb_size = bitrate * 1.0 / (fps + 4.0) / width_in_mbs / height_in_mbs; int intra_mb_size = inter_mb_size * 5.0; @@ -2259,7 +2199,7 @@ VAEncMiscParameterBuffer* pMiscParamHRD = NULL; double bitrate = pSequenceParameter->bits_per_second * 1.0; - double framerate = (double)pSequenceParameter->vui_time_scale / (double)pSequenceParameter->vui_num_units_in_tick; + double framerate = (double)pSequenceParameter->vui_time_scale / (2 * (double)pSequenceParameter->vui_num_units_in_tick); int inum = 1, pnum = 0, bnum = 0; /* Gop structure: number of I, P, B frames in the Gop. */ int intra_period = pSequenceParameter->intra_period; int ip_period = pSequenceParameter->ip_period; @@ -2578,7 +2518,7 @@ cur_bitrate = pSequenceParameter->bits_per_second; cur_fps = (double)pSequenceParameter->vui_time_scale / - (double)pSequenceParameter->vui_num_units_in_tick; + (2 * (double)pSequenceParameter->vui_num_units_in_tick); if ((cur_bitrate == mfc_context->brc.saved_bps) && (cur_fps == mfc_context->brc.saved_fps) && diff -Nru intel-vaapi-driver-1.7.1/src/gen9_mfd.c intel-vaapi-driver-1.7.0/src/gen9_mfd.c --- intel-vaapi-driver-1.7.1/src/gen9_mfd.c 2016-06-21 01:35:12.000000000 +0000 +++ intel-vaapi-driver-1.7.0/src/gen9_mfd.c 2016-03-11 04:38:17.000000000 +0000 @@ -189,23 +189,13 @@ int codec, struct gen9_hcpd_context *gen9_hcpd_context) { - struct i965_driver_data *i965 = i965_driver_data(ctx); struct intel_batchbuffer *batch = gen9_hcpd_context->base.batch; assert((codec == HCP_CODEC_HEVC) || (codec == HCP_CODEC_VP9)); - if(IS_KBL(i965->intel.device_info)) - { - BEGIN_BCS_BATCH(batch, 6); - - OUT_BCS_BATCH(batch, HCP_PIPE_MODE_SELECT | (6 - 2)); - } - else - { - BEGIN_BCS_BATCH(batch, 4); + BEGIN_BCS_BATCH(batch, 4); - OUT_BCS_BATCH(batch, HCP_PIPE_MODE_SELECT | (4 - 2)); - } + OUT_BCS_BATCH(batch, HCP_PIPE_MODE_SELECT | (4 - 2)); OUT_BCS_BATCH(batch, (codec << 5) | (0 << 3) | /* disable Pic Status / Error Report */ @@ -213,16 +203,6 @@ OUT_BCS_BATCH(batch, 0); OUT_BCS_BATCH(batch, 0); - if(IS_KBL(i965->intel.device_info)) - { - if(codec == HCP_CODEC_VP9) - OUT_BCS_BATCH(batch, 1<<6); - else - OUT_BCS_BATCH(batch, 0); - - OUT_BCS_BATCH(batch, 0); - } - ADVANCE_BCS_BATCH(batch); } @@ -1126,6 +1106,8 @@ { gen9_hcpd_context->vp9_frame_ctx[i] = gen9_hcpd_context->vp9_fc_inter_default; } + gen9_hcpd_context->vp9_fc = gen9_hcpd_context->vp9_fc_inter_default; + } static void @@ -1135,10 +1117,64 @@ { VADecPictureParameterBufferVP9 *pic_param; int i = 0; + uint8_t is_saved = VP9_PROB_BUFFER_SAVED_NO; + uint8_t is_restored = VP9_PROB_BUFFER_RESTORED_NO; + + uint8_t last_frame_type = gen9_hcpd_context->last_frame.frame_type; + uint8_t temp_frame_ctx_id; assert(decode_state->pic_param && decode_state->pic_param->buffer); pic_param = (VADecPictureParameterBufferVP9 *)decode_state->pic_param->buffer; + temp_frame_ctx_id = pic_param->pic_fields.bits.frame_context_idx; + + if(pic_param->pic_fields.bits.frame_type == HCP_VP9_KEY_FRAME) + { + gen9_hcpd_context->vp9_fc = gen9_hcpd_context->vp9_fc_key_default; + gen9_hcpd_context->last_frame.prob_buffer_saved_flag = VP9_PROB_BUFFER_SAVED_NO; + gen9_hcpd_context->last_frame.prob_buffer_restored_flag = VP9_PROB_BUFFER_RESTORED_NO; + + }else + { + gen9_hcpd_context->vp9_fc = gen9_hcpd_context->vp9_fc_inter_default; + } + + // restore? + if(gen9_hcpd_context->last_frame.prob_buffer_saved_flag == VP9_PROB_BUFFER_SAVED_SECNE_1) + { + if((pic_param->pic_fields.bits.frame_type == HCP_VP9_INTER_FRAME)) + { + //save the inter frame values for the 343 bytes + //Update the 343 bytes of the buffer with Intra values + is_restored = VP9_PROB_BUFFER_RESTORED_SECNE_1; + } + }else if(gen9_hcpd_context->last_frame.prob_buffer_saved_flag == VP9_PROB_BUFFER_SAVED_SECNE_2) + { + if((pic_param->pic_fields.bits.frame_type == HCP_VP9_KEY_FRAME) ||pic_param->pic_fields.bits.intra_only||pic_param->pic_fields.bits.error_resilient_mode) + { + temp_frame_ctx_id = 0; + } + + if((pic_param->pic_fields.bits.frame_type == HCP_VP9_INTER_FRAME) && + (temp_frame_ctx_id == 0)) + { + + is_restored = VP9_PROB_BUFFER_RESTORED_SECNE_2; + } + } + + if(is_restored > VP9_PROB_BUFFER_RESTORED_NO && is_restored < VP9_PROB_BUFFER_RESTORED_SECNE_MAX) + { + memcpy(gen9_hcpd_context->vp9_frame_ctx[gen9_hcpd_context->last_frame.frame_context_idx].inter_mode_probs,gen9_hcpd_context->vp9_saved_fc.inter_mode_probs,VP9_PROB_BUFFER_KEY_INTER_SIZE); + } + if((gen9_hcpd_context->last_frame.prob_buffer_restored_flag == VP9_PROB_BUFFER_RESTORED_SECNE_MAX) || + (gen9_hcpd_context->last_frame.refresh_frame_context && last_frame_type == HCP_VP9_KEY_FRAME && (pic_param->pic_fields.bits.frame_type == HCP_VP9_INTER_FRAME))) + { + if(pic_param->pic_fields.bits.frame_type == HCP_VP9_INTER_FRAME) + { + memcpy(gen9_hcpd_context->vp9_frame_ctx[gen9_hcpd_context->last_frame.frame_context_idx].inter_mode_probs,gen9_hcpd_context->vp9_fc_inter_default.inter_mode_probs,VP9_PROB_BUFFER_KEY_INTER_SIZE); + } + } //first part buffer update: Case 1)Reset all 4 probablity buffers if((pic_param->pic_fields.bits.frame_type == HCP_VP9_KEY_FRAME) ||pic_param->pic_fields.bits.intra_only||pic_param->pic_fields.bits.error_resilient_mode) { @@ -1150,9 +1186,6 @@ for(i = 0; i < FRAME_CONTEXTS; i++) { memcpy(&gen9_hcpd_context->vp9_frame_ctx[i],&gen9_hcpd_context->vp9_fc_inter_default,VP9_PROB_BUFFER_FIRST_PART_SIZE); - - vp9_copy(gen9_hcpd_context->vp9_frame_ctx[i].seg_tree_probs, default_seg_tree_probs); - vp9_copy(gen9_hcpd_context->vp9_frame_ctx[i].seg_pred_probs, default_seg_pred_probs); } }else if(pic_param->pic_fields.bits.reset_frame_context == 2&&pic_param->pic_fields.bits.intra_only) { @@ -1161,6 +1194,46 @@ pic_param->pic_fields.bits.frame_context_idx = 0; } + //Full buffer update: Case 2.2)Reset only segmentation prob buffer + if(pic_param->pic_fields.bits.segmentation_enabled && + pic_param->pic_fields.bits.segmentation_update_map) + { + for(i = 0; i < FRAME_CONTEXTS; i++) + { + //Reset only the segementation probability buffers + vp9_copy(gen9_hcpd_context->vp9_frame_ctx[i].seg_tree_probs, default_seg_tree_probs); + vp9_copy(gen9_hcpd_context->vp9_frame_ctx[i].seg_pred_probs, default_seg_pred_probs); + } + } + + //update vp9_fc according to frame_context_id + { + gen9_hcpd_context->vp9_fc = gen9_hcpd_context->vp9_frame_ctx[pic_param->pic_fields.bits.frame_context_idx]; + } + //Partial Buffer Update + //Case 1) Update top 3 probabilities only + if(pic_param->pic_fields.bits.frame_type == HCP_VP9_KEY_FRAME) + { + memcpy(gen9_hcpd_context->vp9_fc.inter_mode_probs,gen9_hcpd_context->vp9_fc_key_default.inter_mode_probs,VP9_PROB_BUFFER_KEY_INTER_SIZE); + if((!pic_param->pic_fields.bits.segmentation_enabled || + !pic_param->pic_fields.bits.segmentation_update_map)) { + //Update with key frame default probability values for only + //tx_probs, coef_probs, and the next 343 bytes + memcpy(&gen9_hcpd_context->vp9_fc,&gen9_hcpd_context->vp9_fc_key_default,VP9_PROB_BUFFER_FIRST_PART_SIZE); + } + } + //Case 2) Update 343 bytes for first inter following key frame + if( last_frame_type == HCP_VP9_KEY_FRAME && + (pic_param->pic_fields.bits.frame_type == HCP_VP9_INTER_FRAME)) { + //Update with inter frame default values for the 343 bytes + memcpy(gen9_hcpd_context->vp9_fc.inter_mode_probs,gen9_hcpd_context->vp9_fc_inter_default.inter_mode_probs,VP9_PROB_BUFFER_KEY_INTER_SIZE); + } + //Case 2.1) Update 343 bytes for first intra-inly frame following key frame + if( last_frame_type == HCP_VP9_KEY_FRAME && + pic_param->pic_fields.bits.intra_only) { + //Update with inter frame default values for the 343 bytes + memcpy(gen9_hcpd_context->vp9_fc.inter_mode_probs,gen9_hcpd_context->vp9_fc_key_default.inter_mode_probs,VP9_PROB_BUFFER_KEY_INTER_SIZE); + } //Case 3) Update only segment probabilities if((pic_param->pic_fields.bits.segmentation_enabled && pic_param->pic_fields.bits.segmentation_update_map)) @@ -1168,34 +1241,68 @@ //Update seg_tree_probs and seg_pred_probs accordingly for (i=0; ivp9_frame_ctx[pic_param->pic_fields.bits.frame_context_idx].seg_tree_probs[i] = pic_param->mb_segment_tree_probs[i]; + gen9_hcpd_context->vp9_fc.seg_tree_probs[i] = pic_param->mb_segment_tree_probs[i]; } for (i=0; ivp9_frame_ctx[pic_param->pic_fields.bits.frame_context_idx].seg_pred_probs[i] = pic_param->segment_pred_probs[i]; + gen9_hcpd_context->vp9_fc.seg_pred_probs[i] = pic_param->segment_pred_probs[i]; } } - //update vp9_fc according to frame_context_id + //Case 4) Considering Intra only frame in the middle of Inter frames + if((pic_param->pic_fields.bits.intra_only && + (pic_param->pic_fields.bits.frame_type == HCP_VP9_INTER_FRAME)&& + (pic_param->pic_fields.bits.reset_frame_context==0 || + pic_param->pic_fields.bits.reset_frame_context==1|| + pic_param->pic_fields.bits.reset_frame_context==2|| + pic_param->pic_fields.bits.reset_frame_context==3)) && + (last_frame_type == HCP_VP9_INTER_FRAME)) { - void *pfc = (void *)&gen9_hcpd_context->vp9_frame_ctx[pic_param->pic_fields.bits.frame_context_idx]; - void *pprob = NULL; + //save the inter frame values for the 343 bytes + //Update the 343 bytes of the buffer with Intra values + is_saved = VP9_PROB_BUFFER_SAVED_SECNE_1; + } + //Case 5) Considering Intra only frame among 3 Inter frames + if((pic_param->pic_fields.bits.intra_only && + (pic_param->pic_fields.bits.frame_type == HCP_VP9_INTER_FRAME)&& + (pic_param->pic_fields.bits.reset_frame_context==2 || + pic_param->pic_fields.bits.frame_context_idx==1)) && + ((last_frame_type == HCP_VP9_INTER_FRAME) && + (gen9_hcpd_context->last_frame.frame_context_idx==0))) + { + //save the inter frame values for the 343 bytes + //Update the 343 bytes of the buffer with Intra values + is_saved = VP9_PROB_BUFFER_SAVED_SECNE_2; + } - dri_bo_map(gen9_hcpd_context->vp9_probability_buffer.bo,1); + if(is_saved > VP9_PROB_BUFFER_SAVED_NO) + { + gen9_hcpd_context->vp9_saved_fc = gen9_hcpd_context->vp9_fc; + memcpy(gen9_hcpd_context->vp9_fc.inter_mode_probs,gen9_hcpd_context->vp9_fc_key_default.inter_mode_probs,VP9_PROB_BUFFER_KEY_INTER_SIZE); + }else if(pic_param->pic_fields.bits.intra_only) + { + is_restored = VP9_PROB_BUFFER_RESTORED_SECNE_MAX; - pprob = (void *)gen9_hcpd_context->vp9_probability_buffer.bo->virtual; - memcpy(pprob,pfc,2048); - //only update 343bytes for key or intra_only frame - if(pic_param->pic_fields.bits.frame_type == HCP_VP9_KEY_FRAME || - pic_param->pic_fields.bits.intra_only) - { - memcpy(pprob + VP9_PROB_BUFFER_FIRST_PART_SIZE - VP9_PROB_BUFFER_KEY_INTER_SIZE - , gen9_hcpd_context->vp9_fc_key_default.inter_mode_probs - , VP9_PROB_BUFFER_KEY_INTER_SIZE); + } + + // update after the restored + if(gen9_hcpd_context->last_frame.prob_buffer_restored_flag == VP9_PROB_BUFFER_RESTORED_SECNE_2) + { + if((pic_param->pic_fields.bits.frame_type == HCP_VP9_INTER_FRAME) && + pic_param->pic_fields.bits.frame_context_idx==1) + { + memcpy(&gen9_hcpd_context->vp9_fc,&gen9_hcpd_context->vp9_fc_inter_default,VP9_PROB_BUFFER_FIRST_PART_SIZE); } + } + { + dri_bo_map(gen9_hcpd_context->vp9_probability_buffer.bo,1); + memcpy((unsigned char *)gen9_hcpd_context->vp9_probability_buffer.bo->virtual,&gen9_hcpd_context->vp9_fc,2048); dri_bo_unmap(gen9_hcpd_context->vp9_probability_buffer.bo); } + // save the flag in order to restore or update prob buffer + gen9_hcpd_context->last_frame.prob_buffer_saved_flag = is_saved; + gen9_hcpd_context->last_frame.prob_buffer_restored_flag = is_restored; } static void @@ -1664,19 +1771,13 @@ { struct intel_batchbuffer *batch = gen9_hcpd_context->base.batch; - int segment_ref = seg_param->segment_flags.fields.segment_reference; - - if((pic_param->pic_fields.bits.frame_type == HCP_VP9_KEY_FRAME) - || (pic_param->pic_fields.bits.intra_only)) - segment_ref = 0; - BEGIN_BCS_BATCH(batch, 7); OUT_BCS_BATCH(batch, HCP_VP9_SEGMENT_STATE | (7 - 2)); OUT_BCS_BATCH(batch, seg_id << 0); /* DW 1 - SegmentID */ OUT_BCS_BATCH(batch, seg_param->segment_flags.fields.segment_reference_enabled << 3 | - segment_ref << 1 | + seg_param->segment_flags.fields.segment_reference << 1 | seg_param->segment_flags.fields.segment_reference_skipped <<0 ); /* DW 2 */ if(pic_param->filter_level) { @@ -1830,19 +1931,12 @@ //update vp9_frame_ctx according to frame_context_id if (pic_param->pic_fields.bits.refresh_frame_context) { - void *pfc = (void *)&gen9_hcpd_context->vp9_frame_ctx[pic_param->pic_fields.bits.frame_context_idx]; - void *pprob = NULL; - //update vp9_fc to frame_context dri_bo_map(gen9_hcpd_context->vp9_probability_buffer.bo,1); - pprob = (void *)gen9_hcpd_context->vp9_probability_buffer.bo->virtual; - if(pic_param->pic_fields.bits.frame_type == HCP_VP9_KEY_FRAME|| - pic_param->pic_fields.bits.intra_only) - memcpy(pfc, pprob, VP9_PROB_BUFFER_FIRST_PART_SIZE - VP9_PROB_BUFFER_KEY_INTER_SIZE); - else - memcpy(pfc, pprob, VP9_PROB_BUFFER_FIRST_PART_SIZE); - + memcpy(&gen9_hcpd_context->vp9_fc,(unsigned char *)gen9_hcpd_context->vp9_probability_buffer.bo->virtual,2048); dri_bo_unmap(gen9_hcpd_context->vp9_probability_buffer.bo); + gen9_hcpd_context->vp9_frame_ctx[pic_param->pic_fields.bits.frame_context_idx] = gen9_hcpd_context->vp9_fc; + } out: diff -Nru intel-vaapi-driver-1.7.1/src/gen9_mfd.h intel-vaapi-driver-1.7.0/src/gen9_mfd.h --- intel-vaapi-driver-1.7.1/src/gen9_mfd.h 2016-06-16 00:57:46.000000000 +0000 +++ intel-vaapi-driver-1.7.0/src/gen9_mfd.h 2016-03-11 04:38:17.000000000 +0000 @@ -101,6 +101,8 @@ FRAME_CONTEXT vp9_frame_ctx[FRAME_CONTEXTS]; FRAME_CONTEXT vp9_fc_inter_default; FRAME_CONTEXT vp9_fc_key_default; + FRAME_CONTEXT vp9_fc; + FRAME_CONTEXT vp9_saved_fc; }; #endif /* GEN9_MFD_H */ diff -Nru intel-vaapi-driver-1.7.1/src/gen9_vdenc.c intel-vaapi-driver-1.7.0/src/gen9_vdenc.c --- intel-vaapi-driver-1.7.1/src/gen9_vdenc.c 2016-06-16 00:57:46.000000000 +0000 +++ intel-vaapi-driver-1.7.0/src/gen9_vdenc.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,3778 +0,0 @@ -/* - * Copyright © 2015 Intel Corporation - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the - * "Software"), to deal in the Software without restriction, including - * without limitation the rights to use, copy, modify, merge, publish, - * distribute, sub license, and/or sell copies of the Software, and to - * permit persons to whom the Software is furnished to do so, subject to - * the following conditions: - * - * The above copyright notice and this permission notice (including the - * next paragraph) shall be included in all copies or substantial portions - * of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. - * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR - * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, - * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE - * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * - * Authors: - * Xiang Haihao - * - */ - -#include -#include -#include -#include -#include - -#include "intel_batchbuffer.h" -#include "i965_defines.h" -#include "i965_structs.h" -#include "i965_drv_video.h" -#include "i965_encoder.h" -#include "i965_encoder_utils.h" -#include "intel_media.h" -#include "gen9_vdenc.h" - -static const uint8_t buf_rate_adj_tab_i_lowdelay[72] = { - 0, 0, -8, -12, -16, -20, -28, -36, - 0, 0, -4, -8, -12, -16, -24, -32, - 4, 2, 0, -1, -3, -8, -16, -24, - 8, 4, 2, 0, -1, -4, -8, -16, - 20, 16, 4, 0, -1, -4, -8, -16, - 24, 20, 16, 8, 4, 0, -4, -8, - 28, 24, 20, 16, 8, 4, 0, -8, - 32, 24, 20, 16, 8, 4, 0, -4, - 64, 48, 28, 20, 16, 12, 8, 4, -}; - -static const uint8_t buf_rate_adj_tab_p_lowdelay[72] = { - -8, -24, -32, -40, -44, -48, -52, -80, - -8, -16, -32, -40, -40, -44, -44, -56, - 0, 0, -12, -20, -24, -28, -32, -36, - 8, 4, 0, 0, -8, -16, -24, -32, - 32, 16, 8, 4, -4, -8, -16, -20, - 36, 24, 16, 8, 4, -2, -4, -8, - 40, 36, 24, 20, 16, 8, 0, -8, - 48, 40, 28, 24, 20, 12, 0, -4, - 64, 48, 28, 20, 16, 12, 8, 4, -}; - -static const uint8_t buf_rate_adj_tab_b_lowdelay[72] = { - 0, -4, -8, -16, -24, -32, -40, -48, - 1, 0, -4, -8, -16, -24, -32, -40, - 4, 2, 0, -1, -3, -8, -16, -24, - 8, 4, 2, 0, -1, -4, -8, -16, - 20, 16, 4, 0, -1, -4, -8, -16, - 24, 20, 16, 8, 4, 0, -4, -8, - 28, 24, 20, 16, 8, 4, 0, -8, - 32, 24, 20, 16, 8, 4, 0, -4, - 64, 48, 28, 20, 16, 12, 8, 4, -}; - -static const int8_t dist_qp_adj_tab_i_vbr[81] = { - +0, 0, 0, 0, 0, 3, 4, 6, 8, - +0, 0, 0, 0, 0, 2, 3, 5, 7, - -1, 0, 0, 0, 0, 2, 2, 4, 5, - -1, -1, 0, 0, 0, 1, 2, 2, 4, - -2, -2, -1, 0, 0, 0, 1, 2, 4, - -2, -2, -1, 0, 0, 0, 1, 2, 4, - -3, -2, -1, -1, 0, 0, 1, 2, 5, - -3, -2, -1, -1, 0, 0, 2, 4, 7, - -4, -3, -2, -1, 0, 1, 3, 5, 8, -}; - -static const int8_t dist_qp_adj_tab_p_vbr[81] = { - -1, 0, 0, 0, 0, 1, 1, 2, 3, - -1, -1, 0, 0, 0, 1, 1, 2, 3, - -2, -1, -1, 0, 0, 1, 1, 2, 3, - -3, -2, -2, -1, 0, 0, 1, 2, 3, - -3, -2, -1, -1, 0, 0, 1, 2, 3, - -3, -2, -1, -1, 0, 0, 1, 2, 3, - -3, -2, -1, -1, 0, 0, 1, 2, 3, - -3, -2, -1, -1, 0, 0, 1, 2, 3, - -3, -2, -1, -1, 0, 0, 1, 2, 3, -}; - -static const int8_t dist_qp_adj_tab_b_vbr[81] = { - +0, 0, 0, 0, 0, 2, 3, 3, 4, - +0, 0, 0, 0, 0, 2, 3, 3, 4, - -1, 0, 0, 0, 0, 2, 2, 3, 3, - -1, -1, 0, 0, 0, 1, 2, 2, 2, - -1, -1, -1, 0, 0, 0, 1, 2, 2, - -2, -1, -1, 0, 0, 0, 0, 1, 2, - -2, -1, -1, -1, 0, 0, 0, 1, 3, - -2, -2, -1, -1, 0, 0, 1, 1, 3, - -2, -2, -1, -1, 0, 1, 1, 2, 4, -}; - -static const int8_t buf_rate_adj_tab_i_vbr[72] = { - -4, -20, -28, -36, -40, -44, -48, -80, - +0, -8, -12, -20, -24, -28, -32, -36, - +0, 0, -8, -16, -20, -24, -28, -32, - +8, 4, 0, 0, -8, -16, -24, -28, - 32, 24, 16, 2, -4, -8, -16, -20, - 36, 32, 28, 16, 8, 0, -4, -8, - 40, 36, 24, 20, 16, 8, 0, -8, - 48, 40, 28, 24, 20, 12, 0, -4, - 64, 48, 28, 20, 16, 12, 8, 4, -}; - -static const int8_t buf_rate_adj_tab_p_vbr[72] = { - -8, -24, -32, -44, -48, -56, -64, -80, - -8, -16, -32, -40, -44, -52, -56, -64, - +0, 0, -16, -28, -36, -40, -44, -48, - +8, 4, 0, 0, -8, -16, -24, -36, - 20, 12, 4, 0, -8, -8, -8, -16, - 24, 16, 8, 8, 8, 0, -4, -8, - 40, 36, 24, 20, 16, 8, 0, -8, - 48, 40, 28, 24, 20, 12, 0, -4, - 64, 48, 28, 20, 16, 12, 8, 4, -}; - -static const int8_t buf_rate_adj_tab_b_vbr[72] = { - 0, -4, -8, -16, -24, -32, -40, -48, - 1, 0, -4, -8, -16, -24, -32, -40, - 4, 2, 0, -1, -3, -8, -16, -24, - 8, 4, 2, 0, -1, -4, -8, -16, - 20, 16, 4, 0, -1, -4, -8, -16, - 24, 20, 16, 8, 4, 0, -4, -8, - 28, 24, 20, 16, 8, 4, 0, -8, - 32, 24, 20, 16, 8, 4, 0, -4, - 64, 48, 28, 20, 16, 12, 8, 4, -}; - -static struct huc_brc_update_constant_data -gen9_brc_update_constant_data = { - .global_rate_qp_adj_tab_i = { - 48, 40, 32, 24, 16, 8, 0, -8, - 40, 32, 24, 16, 8, 0, -8, -16, - 32, 24, 16, 8, 0, -8, -16, -24, - 24, 16, 8, 0, -8, -16, -24, -32, - 16, 8, 0, -8, -16, -24, -32, -40, - 8, 0, -8, -16, -24, -32, -40, -48, - 0, -8, -16, -24, -32, -40, -48, -56, - 48, 40, 32, 24, 16, 8, 0, -8, - }, - - .global_rate_qp_adj_tab_p = { - 48, 40, 32, 24, 16, 8, 0, -8, - 40, 32, 24, 16, 8, 0, -8, -16, - 16, 8, 8, 4, -8, -16, -16, -24, - 8, 0, 0, -8, -16, -16, -16, -24, - 8, 0, 0, -24, -32, -32, -32, -48, - 0, -16, -16, -24, -32, -48, -56, -64, - -8, -16, -32, -32, -48, -48, -56, -64, - -16,-32, -48, -48, -48, -56, -64, -80, - }, - - .global_rate_qp_adj_tab_b = { - 48, 40, 32, 24, 16, 8, 0, -8, - 40, 32, 24, 16, 8, 0, -8, -16, - 32, 24, 16, 8, 0, -8, -16, -24, - 24, 16, 8, 0, -8, -8, -16, -24, - 16, 8, 0, 0, -8, -16, -24, -32, - 16, 8, 0, 0, -8, -16, -24, -32, - 0, -8, -8, -16, -32, -48, -56, -64, - 0, -8, -8, -16, -32, -48, -56, -64 - }, - - .dist_threshld_i = { 2, 4, 8, 12, 19, 32, 64, 128, 0, 0 }, - .dist_threshld_p = { 2, 4, 8, 12, 19, 32, 64, 128, 0, 0 }, - .dist_threshld_b = { 2, 4, 8, 12, 19, 32, 64, 128, 0, 0 }, - - .dist_qp_adj_tab_i = { - 0, 0, 0, 0, 0, 3, 4, 6, 8, - 0, 0, 0, 0, 0, 2, 3, 5, 7, - -1, 0, 0, 0, 0, 2, 2, 4, 5, - -1, -1, 0, 0, 0, 1, 2, 2, 4, - -2, -2, -1, 0, 0, 0, 1, 2, 4, - -2, -2, -1, 0, 0, 0, 1, 2, 4, - -3, -2, -1, -1, 0, 0, 1, 2, 5, - -3, -2, -1, -1, 0, 0, 2, 4, 7, - -4, -3, -2, -1, 0, 1, 3, 5, 8, - }, - - .dist_qp_adj_tab_p = { - -1, 0, 0, 0, 0, 1, 1, 2, 3, - -1, -1, 0, 0, 0, 1, 1, 2, 3, - -2, -1, -1, 0, 0, 1, 1, 2, 3, - -3, -2, -2, -1, 0, 0, 1, 2, 3, - -3, -2, -1, -1, 0, 0, 1, 2, 3, - -3, -2, -1, -1, 0, 0, 1, 2, 3, - -3, -2, -1, -1, 0, 0, 1, 2, 3, - -3, -2, -1, -1, 0, 0, 1, 2, 3, - -3, -2, -1, -1, 0, 0, 1, 2, 3, - }, - - .dist_qp_adj_tab_b = { - 0, 0, 0, 0, 0, 2, 3, 3, 4, - 0, 0, 0, 0, 0, 2, 3, 3, 4, - -1, 0, 0, 0, 0, 2, 2, 3, 3, - -1, -1, 0, 0, 0, 1, 2, 2, 2, - -1, -1, -1, 0, 0, 0, 1, 2, 2, - -2, -1, -1, 0, 0, 0, 0, 1, 2, - -2, -1, -1, -1, 0, 0, 0, 1, 3, - -2, -2, -1, -1, 0, 0, 1, 1, 3, - -2, -2, -1, -1, 0, 1, 1, 2, 4, - }, - - /* default table for non lowdelay */ - .buf_rate_adj_tab_i = { - -4, -20, -28, -36, -40, -44, -48, -80, - 0, -8, -12, -20, -24, -28, -32, -36, - 0, 0, -8, -16, -20, -24, -28, -32, - 8, 4, 0, 0, -8, -16, -24, -28, - 32, 24, 16, 2, -4, -8, -16, -20, - 36, 32, 28, 16, 8, 0, -4, -8, - 40, 36, 24, 20, 16, 8, 0, -8, - 48, 40, 28, 24, 20, 12, 0, -4, - 64, 48, 28, 20, 16, 12, 8, 4, - }, - - /* default table for non lowdelay */ - .buf_rate_adj_tab_p = { - -8, -24, -32, -44, -48, -56, -64, -80, - -8, -16, -32, -40, -44, -52, -56, -64, - 0, 0, -16, -28, -36, -40, -44, -48, - 8, 4, 0, 0, -8, -16, -24, -36, - 20, 12, 4, 0, -8, -8, -8, -16, - 24, 16, 8, 8, 8, 0, -4, -8, - 40, 36, 24, 20, 16, 8, 0, -8, - 48, 40, 28, 24, 20, 12, 0, -4, - 64, 48, 28, 20, 16, 12, 8, 4, - }, - - /* default table for non lowdelay */ - .buf_rate_adj_tab_b = { - 0, -4, -8, -16, -24, -32, -40, -48, - 1, 0, -4, -8, -16, -24, -32, -40, - 4, 2, 0, -1, -3, -8, -16, -24, - 8, 4, 2, 0, -1, -4, -8, -16, - 20, 16, 4, 0, -1, -4, -8, -16, - 24, 20, 16, 8, 4, 0, -4, -8, - 28, 24, 20, 16, 8, 4, 0, -8, - 32, 24, 20, 16, 8, 4, 0, -4, - 64, 48, 28, 20, 16, 12, 8, 4, - }, - - .frame_size_min_tab_p = { 1, 2, 4, 6, 8, 10, 16, 16, 16 }, - .frame_size_min_tab_i = { 1, 2, 4, 8, 16, 20, 24, 32, 36 }, - - .frame_size_max_tab_p = { 48, 64, 80, 96, 112, 128, 144, 160, 160 }, - .frame_size_max_tab_i = { 48, 64, 80, 96, 112, 128, 144, 160, 160 }, - - .frame_size_scg_tab_p = { 4, 8, 12, 16, 20, 24, 24, 0, 0 }, - .frame_size_scg_tab_i = { 4, 8, 12, 16, 20, 24, 24, 0, 0 }, - - .i_intra_non_pred = { - 0x0e, 0x0e, 0x0e, 0x18, 0x19, 0x1b, 0x1c, 0x0d, 0x0f, 0x18, 0x19, 0x0d, 0x0f, 0x0f, - 0x0c, 0x0e, 0x0c, 0x0c, 0x0a, 0x0a, 0x0b, 0x0a, 0x0a, 0x0a, 0x09, 0x09, 0x08, 0x08, - 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x07, 0x07, 0x07, 0x07, 0x07, - }, - - .i_intra_16x16 = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - }, - - .i_intra_8x8 = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, - 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x04, 0x04, 0x04, 0x04, 0x06, 0x06, 0x06, - 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x07, 0x07, 0x07, 0x07, 0x07, - }, - - .i_intra_4x4 = { - 0x2e, 0x2e, 0x2e, 0x38, 0x39, 0x3a, 0x3b, 0x2c, 0x2e, 0x38, 0x39, 0x2d, 0x2f, 0x38, - 0x2e, 0x38, 0x2e, 0x38, 0x2f, 0x2e, 0x38, 0x38, 0x38, 0x38, 0x2f, 0x2f, 0x2f, 0x2e, - 0x2d, 0x2c, 0x2b, 0x2a, 0x29, 0x28, 0x1e, 0x1c, 0x1b, 0x1a, 0x19, 0x18, 0x0e, 0x0d, - }, - - .i_intra_chroma = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - }, - - .p_intra_non_pred = { - 0x06, 0x06, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x05, 0x06, 0x07, 0x08, 0x06, 0x07, 0x07, - 0x07, 0x07, 0x06, 0x07, 0x07, 0x06, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, - 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, - }, - - .p_intra_16x16 = { - 0x1b, 0x1b, 0x1b, 0x1c, 0x1e, 0x28, 0x29, 0x1a, 0x1b, 0x1c, 0x1e, 0x1a, 0x1c, 0x1d, - 0x1b, 0x1c, 0x1c, 0x1c, 0x1c, 0x1b, 0x1c, 0x1c, 0x1d, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, - 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c - }, - - .p_intra_8x8 = { - 0x1d, 0x1d, 0x1d, 0x1e, 0x28, 0x29, 0x2a, 0x1b, 0x1d, 0x1e, 0x28, 0x1c, 0x1d, 0x1f, - 0x1d, 0x1e, 0x1d, 0x1e, 0x1d, 0x1d, 0x1f, 0x1e, 0x1e, 0x1e, 0x1d, 0x1e, 0x1e, 0x1d, - 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, - }, - - .p_intra_4x4 = { - 0x38, 0x38, 0x38, 0x39, 0x3a, 0x3b, 0x3d, 0x2e, 0x38, 0x39, 0x3a, 0x2f, 0x39, 0x3a, - 0x38, 0x39, 0x38, 0x39, 0x39, 0x38, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, - 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, - }, - - .p_intra_chroma = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - }, - - .p_inter_16x8 = { - 0x07, 0x07, 0x07, 0x08, 0x09, 0x0b, 0x0c, 0x06, 0x07, 0x09, 0x0a, 0x07, 0x08, 0x09, - 0x08, 0x09, 0x08, 0x09, 0x08, 0x08, 0x09, 0x09, 0x09, 0x09, 0x08, 0x08, 0x08, 0x08, - 0x08, 0x08, 0x08, 0x08, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, - }, - - .p_inter_8x8 = { - 0x02, 0x02, 0x02, 0x02, 0x03, 0x03, 0x03, 0x02, 0x02, 0x02, 0x03, 0x02, 0x02, 0x02, - 0x02, 0x03, 0x02, 0x02, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, - 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, - }, - - .p_inter_16x16 = { - 0x05, 0x05, 0x05, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, - 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, - 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, - }, - - .p_ref_id = { - 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, - 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, - 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04 - }, - - .hme_mv_cost = { - /* mv = 0 */ - { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - }, - - /* mv <= 16 */ - { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - }, - - /* mv <= 32 */ - { - 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, - 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, - 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, - }, - - /* mv <= 64 */ - { - 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, - 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, - 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, - }, - - /* mv <= 128 */ - { - 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, - 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, - 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, - }, - - /* mv <= 256 */ - { - 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, - 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, - 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x1a, 0x1f, 0x2a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d - }, - - /* mv <= 512 */ - { - 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, - 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, - 0x1a, 0x1a, 0x1a, 0x1a, 0x2a, 0x2f, 0x3a, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, - }, - - /* mv <= 1024 */ - { - 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, - 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, - 0x1a, 0x1a, 0x1a, 0x1f, 0x2d, 0x3d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, - }, - }, -}; - -/* 11 DWs */ -static uint8_t vdenc_const_qp_lambda[44] = { - 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x02, 0x02, - 0x02, 0x03, 0x03, 0x03, 0x04, 0x04, 0x05, 0x05, 0x06, 0x07, - 0x07, 0x08, 0x09, 0x0a, 0x0c, 0x0d, 0x0f, 0x11, 0x13, 0x15, - 0x17, 0x1a, 0x1e, 0x21, 0x25, 0x2a, 0x2f, 0x35, 0x3b, 0x42, - 0x4a, 0x53, 0x00, 0x00 -}; - -/* 14 DWs */ -static uint16_t vdenc_const_skip_threshold[28] = { - -}; - -/* 14 DWs */ -static uint16_t vdenc_const_sic_forward_transform_coeff_threshold_0[28] = { - -}; - -/* 7 DWs */ -static uint8_t vdenc_const_sic_forward_transform_coeff_threshold_1[28] = { - -}; - -/* 7 DWs */ -static uint8_t vdenc_const_sic_forward_transform_coeff_threshold_2[28] = { - -}; - -/* 7 DWs */ -static uint8_t vdenc_const_sic_forward_transform_coeff_threshold_3[28] = { - -}; - -/* P frame */ -/* 11 DWs */ -static uint8_t vdenc_const_qp_lambda_p[44] = { - 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x02, 0x02, - 0x02, 0x03, 0x03, 0x03, 0x04, 0x04, 0x05, 0x05, 0x06, 0x07, - 0x07, 0x08, 0x09, 0x0a, 0x0c, 0x0d, 0x0f, 0x11, 0x13, 0x15, - 0x17, 0x1a, 0x1e, 0x21, 0x25, 0x2a, 0x2f, 0x35, 0x3b, 0x42, - 0x4a, 0x53, 0x00, 0x00 -}; - -/* 14 DWs */ -static uint16_t vdenc_const_skip_threshold_p[28] = { - 0x0000, 0x0000, 0x0000, 0x0000, 0x0002, 0x0004, 0x0007, 0x000b, - 0x0011, 0x0019, 0x0023, 0x0032, 0x0044, 0x005b, 0x0077, 0x0099, - 0x00c2, 0x00f1, 0x0128, 0x0168, 0x01b0, 0x0201, 0x025c, 0x02c2, - 0x0333, 0x03b0, 0x0000, 0x0000 -}; - -/* 14 DWs */ -static uint16_t vdenc_const_sic_forward_transform_coeff_threshold_0_p[28] = { - 0x02, 0x02, 0x03, 0x04, 0x04, 0x05, 0x07, 0x09, 0x0b, 0x0e, - 0x12, 0x14, 0x18, 0x1d, 0x20, 0x25, 0x2a, 0x34, 0x39, 0x3f, - 0x4e, 0x51, 0x5b, 0x63, 0x6f, 0x7f, 0x00, 0x00 -}; - -/* 7 DWs */ -static uint8_t vdenc_const_sic_forward_transform_coeff_threshold_1_p[28] = { - 0x03, 0x04, 0x05, 0x05, 0x07, 0x09, 0x0b, 0x0e, 0x12, 0x17, - 0x1c, 0x21, 0x27, 0x2c, 0x33, 0x3b, 0x41, 0x51, 0x5c, 0x1a, - 0x1e, 0x21, 0x22, 0x26, 0x2c, 0x30, 0x00, 0x00 -}; - -/* 7 DWs */ -static uint8_t vdenc_const_sic_forward_transform_coeff_threshold_2_p[28] = { - 0x02, 0x02, 0x03, 0x04, 0x04, 0x05, 0x07, 0x09, 0x0b, 0x0e, - 0x12, 0x14, 0x18, 0x1d, 0x20, 0x25, 0x2a, 0x34, 0x39, 0x0f, - 0x13, 0x14, 0x16, 0x18, 0x1b, 0x1f, 0x00, 0x00 -}; - -/* 7 DWs */ -static uint8_t vdenc_const_sic_forward_transform_coeff_threshold_3_p[28] = { - 0x04, 0x05, 0x06, 0x09, 0x0b, 0x0d, 0x12, 0x16, 0x1b, 0x23, - 0x2c, 0x33, 0x3d, 0x45, 0x4f, 0x5b, 0x66, 0x7f, 0x8e, 0x2a, - 0x2f, 0x32, 0x37, 0x3c, 0x45, 0x4c, 0x00, 0x00 -}; - -static const double -vdenc_brc_dev_threshi0_fp_neg[4] = { 0.80, 0.60, 0.34, 0.2 }; - -static const double -vdenc_brc_dev_threshi0_fp_pos[4] = { 0.2, 0.4, 0.66, 0.9 }; - -static const double -vdenc_brc_dev_threshpb0_fp_neg[4] = { 0.90, 0.66, 0.46, 0.3 }; - -static const double -vdenc_brc_dev_threshpb0_fp_pos[4] = { 0.3, 0.46, 0.70, 0.90 }; - -static const double -vdenc_brc_dev_threshvbr0_neg[4] = { 0.90, 0.70, 0.50, 0.3 }; - -static const double -vdenc_brc_dev_threshvbr0_pos[4] = { 0.4, 0.5, 0.75, 0.90 }; - -static const unsigned char -vdenc_brc_estrate_thresh_p0[7] = { 4, 8, 12, 16, 20, 24, 28 }; - -static const unsigned char -vdenc_brc_estrate_thresh_i0[7] = { 4, 8, 12, 16, 20, 24, 28 }; - -static const uint16_t -vdenc_brc_start_global_adjust_frame[4] = { 10, 50, 100, 150 }; - -static const uint8_t -vdenc_brc_global_rate_ratio_threshold[7] = { 80, 90, 95, 101, 105, 115, 130}; - -static const uint8_t -vdenc_brc_start_global_adjust_mult[5] = { 1, 1, 3, 2, 1 }; - -static const uint8_t -vdenc_brc_start_global_adjust_div[5] = { 40, 5, 5, 3, 1 }; - -static const int8_t -vdenc_brc_global_rate_ratio_threshold_qp[8] = { -3, -2, -1, 0, 1, 1, 2, 3 }; - -const int vdenc_mode_const[2][12][52] = { - //INTRASLICE - { - //LUTMODE_INTRA_NONPRED - { - 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, //QP=[0 ~12] - 16, 18, 22, 24, 13, 15, 16, 18, 13, 15, 15, 12, 14, //QP=[13~25] - 12, 12, 10, 10, 11, 10, 10, 10, 9, 9, 8, 8, 8, //QP=[26~38] - 8, 8, 8, 8, 8, 8, 8, 8, 7, 7, 7, 7, 7, //QP=[39~51] - }, - - //LUTMODE_INTRA_16x16, LUTMODE_INTRA - { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //QP=[0 ~12] - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //QP=[13~25] - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //QP=[26~38] - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //QP=[39~51] - }, - - //LUTMODE_INTRA_8x8 - { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //QP=[0 ~12] - 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, //QP=[13~25] - 1, 1, 1, 1, 1, 4, 4, 4, 4, 6, 6, 6, 6, //QP=[26~38] - 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, //QP=[39~51] - }, - - //LUTMODE_INTRA_4x4 - { - 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, //QP=[0 ~12] - 64, 72, 80, 88, 48, 56, 64, 72, 53, 59, 64, 56, 64, //QP=[13~25] - 57, 64, 58, 55, 64, 64, 64, 64, 59, 59, 60, 57, 50, //QP=[26~38] - 46, 42, 38, 34, 31, 27, 23, 22, 19, 18, 16, 14, 13, //QP=[39~51] - }, - - //LUTMODE_INTER_16x8, LUTMODE_INTER_8x16 - { 0, }, - - //LUTMODE_INTER_8X8Q - { 0, }, - - //LUTMODE_INTER_8X4Q, LUTMODE_INTER_4X8Q, LUTMODE_INTER_16x8_FIELD - { 0, }, - - //LUTMODE_INTER_4X4Q, LUTMODE_INTER_8X8_FIELD - { 0, }, - - //LUTMODE_INTER_16x16, LUTMODE_INTER - { 0, }, - - //LUTMODE_INTER_BWD - { 0, }, - - //LUTMODE_REF_ID - { 0, }, - - //LUTMODE_INTRA_CHROMA - { 0, }, - }, - - //PREDSLICE - { - //LUTMODE_INTRA_NONPRED - { - 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, //QP=[0 ~12] - 7, 8, 9, 10, 5, 6, 7, 8, 6, 7, 7, 7, 7, //QP=[13~25] - 6, 7, 7, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, //QP=[26~38] - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, //QP=[39~51] - }, - - //LUTMODE_INTRA_16x16, LUTMODE_INTRA - { - 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, - 24, 28, 31, 35, 19, 21, 24, 28, 20, 24, 25, 21, 24, - 24, 24, 24, 21, 24, 24, 26, 24, 24, 24, 24, 24, 24, - 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, - - }, - - //LUTMODE_INTRA_8x8 - { - 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, //QP=[0 ~12] - 28, 32, 36, 40, 22, 26, 28, 32, 24, 26, 30, 26, 28, //QP=[13~25] - 26, 28, 26, 26, 30, 28, 28, 28, 26, 28, 28, 26, 28, //QP=[26~38] - 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, //QP=[39~51] - }, - - //LUTMODE_INTRA_4x4 - { - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, //QP=[0 ~12] - 72, 80, 88, 104, 56, 64, 72, 80, 58, 68, 76, 64, 68, //QP=[13~25] - 64, 68, 68, 64, 70, 70, 70, 70, 68, 68, 68, 68, 68, //QP=[26~38] - 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, //QP=[39~51] - }, - - //LUTMODE_INTER_16x8, LUTMODE_INTER_8x16 - { - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, //QP=[0 ~12] - 8, 9, 11, 12, 6, 7, 9, 10, 7, 8, 9, 8, 9, //QP=[13~25] - 8, 9, 8, 8, 9, 9, 9, 9, 8, 8, 8, 8, 8, //QP=[26~38] - 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, //QP=[39~51] - }, - - //LUTMODE_INTER_8X8Q - { - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, //QP=[0 ~12] - 2, 3, 3, 3, 2, 2, 2, 3, 2, 2, 2, 2, 3, //QP=[13~25] - 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, //QP=[26~38] - 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, //QP=[39~51] - }, - - //LUTMODE_INTER_8X4Q, LUTMODE_INTER_4X8Q, LUTMODE_INTER_16X8_FIELD - { - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, //QP=[0 ~12] - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, //QP=[13~25] - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, //QP=[26~38] - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, //QP=[39~51] - }, - - //LUTMODE_INTER_4X4Q, LUTMODE_INTER_8x8_FIELD - { - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, //QP=[0 ~12] - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, //QP=[13~25] - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, //QP=[26~38] - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, //QP=[39~51] - }, - - //LUTMODE_INTER_16x16, LUTMODE_INTER - { - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, //QP=[0 ~12] - 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, //QP=[13~25] - 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, //QP=[26~38] - 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, //QP=[39~51] - }, - - //LUTMODE_INTER_BWD - { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //QP=[0 ~12] - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //QP=[13~25] - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //QP=[26~38] - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //QP=[39~51] - }, - - //LUTMODE_REF_ID - { - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, //QP=[0 ~12] - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, //QP=[13~25] - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, //QP=[26~38] - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, //QP=[39~51] - }, - - //LUTMODE_INTRA_CHROMA - { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //QP=[0 ~12] - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //QP=[13~25] - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //QP=[26~38] - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //QP=[39~51] - }, - }, -}; - -const int vdenc_mv_cost_skipbias_qpel[8] = { - //PREDSLICE - 0, 6, 6, 9, 10, 13, 14, 16 -}; - -const int vdenc_hme_cost[8][52] = { - //mv=0 - { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //QP=[0 ~12] - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //QP=[13 ~25] - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //QP=[26 ~38] - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //QP=[39 ~51] - }, - //mv<=16 - { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //QP=[0 ~12] - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //QP=[13 ~25] - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //QP=[26 ~38] - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //QP=[39 ~51] - }, - //mv<=32 - { - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, //QP=[0 ~12] - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, //QP=[13 ~25] - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, //QP=[26 ~38] - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, //QP=[39 ~51] - }, - //mv<=64 - { - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, //QP=[0 ~12] - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, //QP=[13 ~25] - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, //QP=[26 ~38] - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, //QP=[39 ~51] - }, - //mv<=128 - { - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, //QP=[0 ~12] - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, //QP=[13 ~25] - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, //QP=[26 ~38] - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, //QP=[39 ~51] - }, - //mv<=256 - { - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, //QP=[0 ~12] - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, //QP=[13 ~25] - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, //QP=[26 ~38] - 10, 10, 10, 10, 20, 30, 40, 50, 50, 50, 50, 50, 50, //QP=[39 ~51] - }, - //mv<=512 - { - 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, //QP=[0 ~12] - 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, //QP=[13 ~25] - 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, //QP=[26 ~38] - 20, 20, 20, 40, 60, 80, 100, 100, 100, 100, 100, 100, 100, //QP=[39 ~51] - }, - - //mv<=1024 - { - 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, //QP=[0 ~12] - 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, //QP=[13 ~25] - 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, //QP=[26 ~38] - 20, 20, 30, 50, 100, 200, 200, 200, 200, 200, 200, 200, 200, //QP=[39 ~51] - }, -}; - -#define OUT_BUFFER_2DW(batch, bo, is_target, delta) do { \ - if (bo) { \ - OUT_BCS_RELOC64(batch, \ - bo, \ - I915_GEM_DOMAIN_RENDER, \ - is_target ? I915_GEM_DOMAIN_RENDER : 0, \ - delta); \ - } else { \ - OUT_BCS_BATCH(batch, 0); \ - OUT_BCS_BATCH(batch, 0); \ - } \ - } while (0) - -#define OUT_BUFFER_3DW(batch, bo, is_target, delta, attr) do { \ - OUT_BUFFER_2DW(batch, bo, is_target, delta); \ - OUT_BCS_BATCH(batch, attr); \ - } while (0) - -#define ALLOC_VDENC_BUFFER_RESOURCE(buffer, bfsize, des) { \ - buffer.type = I965_GPE_RESOURCE_BUFFER; \ - buffer.width = bfsize; \ - buffer.height = 1; \ - buffer.pitch = buffer.width; \ - buffer.size = buffer.pitch; \ - buffer.tiling = I915_TILING_NONE; \ - i965_allocate_gpe_resource(i965->intel.bufmgr, \ - &buffer, \ - bfsize, \ - (des)); \ - } while (0) - -static int -gen9_vdenc_get_max_vmv_range(int level) -{ - int max_vmv_range = 512; - - if (level == 10) - max_vmv_range = 256; - else if (level <= 20) - max_vmv_range = 512; - else if (level <= 30) - max_vmv_range = 1024; - else - max_vmv_range = 2048; - - return max_vmv_range; -} - -static unsigned char -map_44_lut_value(unsigned int v, unsigned char max) -{ - unsigned int maxcost; - int d; - unsigned char ret; - - if (v == 0) { - return 0; - } - - maxcost = ((max & 15) << (max >> 4)); - - if (v >= maxcost) { - return max; - } - - d = (int)(log((double)v) / log(2.0)) - 3; - - if (d < 0) { - d = 0; - } - - ret = (unsigned char)((d << 4) + (int)((v + (d == 0 ? 0 : (1 << (d - 1)))) >> d)); - ret = (ret & 0xf) == 0 ? (ret | 8) : ret; - - return ret; -} - -static void -gen9_vdenc_update_rate_control_parameters(VADriverContextP ctx, - struct intel_encoder_context *encoder_context, - VAEncMiscParameterRateControl *misc) -{ - struct gen9_vdenc_context *vdenc_context = encoder_context->mfc_context; - - vdenc_context->max_bit_rate = ALIGN(misc->bits_per_second, 1000) / 1000; - vdenc_context->mb_brc_enabled = 0; - - if (vdenc_context->internal_rate_mode == I965_BRC_CBR) { - vdenc_context->min_bit_rate = vdenc_context->max_bit_rate; - vdenc_context->mb_brc_enabled = (misc->rc_flags.bits.mb_rate_control < 2); - - if (vdenc_context->target_bit_rate != vdenc_context->max_bit_rate) { - vdenc_context->target_bit_rate = vdenc_context->max_bit_rate; - vdenc_context->brc_need_reset = 1; - } - } else if (vdenc_context->internal_rate_mode == I965_BRC_VBR) { - vdenc_context->min_bit_rate = vdenc_context->max_bit_rate * (2 * misc->target_percentage - 100) / 100; - vdenc_context->mb_brc_enabled = (misc->rc_flags.bits.mb_rate_control < 2); - - if (vdenc_context->target_bit_rate != vdenc_context->max_bit_rate * misc->target_percentage / 100) { - vdenc_context->target_bit_rate = vdenc_context->max_bit_rate * misc->target_percentage / 100; - vdenc_context->brc_need_reset = 1; - } - } -} - -static void -gen9_vdenc_update_hrd_parameters(VADriverContextP ctx, - struct intel_encoder_context *encoder_context, - VAEncMiscParameterHRD *misc) -{ - struct gen9_vdenc_context *vdenc_context = encoder_context->mfc_context; - - if (vdenc_context->internal_rate_mode == I965_BRC_CQP) - return; - - vdenc_context->vbv_buffer_size_in_bit = misc->buffer_size; - vdenc_context->init_vbv_buffer_fullness_in_bit = misc->initial_buffer_fullness; -} - -static void -gen9_vdenc_update_framerate_parameters(VADriverContextP ctx, - struct intel_encoder_context *encoder_context, - VAEncMiscParameterFrameRate *misc) -{ - struct gen9_vdenc_context *vdenc_context = encoder_context->mfc_context; - - vdenc_context->frames_per_100s = misc->framerate; /* misc->framerate is multiple of 100 */ -} - -static void -gen9_vdenc_update_roi_parameters(VADriverContextP ctx, - struct intel_encoder_context *encoder_context, - VAEncMiscParameterBufferROI *misc) -{ - struct gen9_vdenc_context *vdenc_context = encoder_context->mfc_context; - int i; - - if (!misc || !misc->roi) { - vdenc_context->num_roi = 0; - return; - } - - vdenc_context->num_roi = MIN(misc->num_roi, 3); - vdenc_context->max_delta_qp = misc->max_delta_qp; - vdenc_context->min_delta_qp = misc->min_delta_qp; - vdenc_context->vdenc_streamin_enable = (vdenc_context->num_roi == 0); - - for (i = 0; i < vdenc_context->num_roi; i++) { - vdenc_context->roi[i].left = misc->roi->roi_rectangle.x; - vdenc_context->roi[i].right = vdenc_context->roi[i].left + misc->roi->roi_rectangle.width; - vdenc_context->roi[i].top = misc->roi->roi_rectangle.y; - vdenc_context->roi[i].bottom = vdenc_context->roi[i].top + misc->roi->roi_rectangle.height; - vdenc_context->roi[i].value = misc->roi->roi_value; - - vdenc_context->roi[i].left /= 16; - vdenc_context->roi[i].right /= 16; - vdenc_context->roi[i].top /= 16; - vdenc_context->roi[i].bottom /= 16; - } -} - -static void -gen9_vdenc_update_misc_parameters(VADriverContextP ctx, - struct encode_state *encode_state, - struct intel_encoder_context *encoder_context) -{ - int i; - VAEncMiscParameterBuffer *misc_param; - - for (i = 0; i < ARRAY_ELEMS(encode_state->misc_param); i++) { - if (!encode_state->misc_param[i] || !encode_state->misc_param[i]->buffer) - continue; - - misc_param = (VAEncMiscParameterBuffer *)encode_state->misc_param[i]->buffer; - - switch (misc_param->type) { - case VAEncMiscParameterTypeFrameRate: - gen9_vdenc_update_framerate_parameters(ctx, - encoder_context, - (VAEncMiscParameterFrameRate *)misc_param->data); - break; - - case VAEncMiscParameterTypeRateControl: - gen9_vdenc_update_rate_control_parameters(ctx, - encoder_context, - (VAEncMiscParameterRateControl *)misc_param->data); - break; - - case VAEncMiscParameterTypeHRD: - gen9_vdenc_update_hrd_parameters(ctx, - encoder_context, - (VAEncMiscParameterHRD *)misc_param->data); - break; - - case VAEncMiscParameterTypeROI: - gen9_vdenc_update_roi_parameters(ctx, - encoder_context, - (VAEncMiscParameterBufferROI *)misc_param->data); - break; - - default: - break; - } - } -} - -static void -gen9_vdenc_update_parameters(VADriverContextP ctx, - VAProfile profile, - struct encode_state *encode_state, - struct intel_encoder_context *encoder_context) -{ - struct gen9_vdenc_context *vdenc_context = encoder_context->mfc_context; - VAEncSequenceParameterBufferH264 *seq_param = (VAEncSequenceParameterBufferH264 *)encode_state->seq_param_ext->buffer; - VAEncPictureParameterBufferH264 *pic_param = (VAEncPictureParameterBufferH264 *)encode_state->pic_param_ext->buffer; - - if (profile == VAProfileH264High) - vdenc_context->transform_8x8_mode_enable = !!pic_param->pic_fields.bits.transform_8x8_mode_flag; - else - vdenc_context->transform_8x8_mode_enable = 0; - - vdenc_context->frame_width_in_mbs = seq_param->picture_width_in_mbs; - vdenc_context->frame_height_in_mbs = seq_param->picture_height_in_mbs; - - vdenc_context->frame_width = vdenc_context->frame_width_in_mbs * 16; - vdenc_context->frame_height = vdenc_context->frame_height_in_mbs * 16; - - vdenc_context->down_scaled_width_in_mb4x = WIDTH_IN_MACROBLOCKS(vdenc_context->frame_width / SCALE_FACTOR_4X); - vdenc_context->down_scaled_height_in_mb4x = HEIGHT_IN_MACROBLOCKS(vdenc_context->frame_height / SCALE_FACTOR_4X); - vdenc_context->down_scaled_width_4x = vdenc_context->down_scaled_width_in_mb4x * 16; - vdenc_context->down_scaled_height_4x = ((vdenc_context->down_scaled_height_in_mb4x + 1) >> 1) * 16; - vdenc_context->down_scaled_height_4x = ALIGN(vdenc_context->down_scaled_height_4x, 32) << 1; - - if (vdenc_context->internal_rate_mode == I965_BRC_CBR) { - vdenc_context->target_bit_rate = ALIGN(seq_param->bits_per_second, 1000) / 1000; - vdenc_context->max_bit_rate = ALIGN(seq_param->bits_per_second, 1000) / 1000; - vdenc_context->min_bit_rate = ALIGN(seq_param->bits_per_second, 1000) / 1000; - } - - vdenc_context->init_vbv_buffer_fullness_in_bit = seq_param->bits_per_second; - vdenc_context->vbv_buffer_size_in_bit = (uint64_t)seq_param->bits_per_second << 1; - vdenc_context->frames_per_100s = 3000; /* 30fps */ - vdenc_context->gop_size = seq_param->intra_period; - vdenc_context->ref_dist = seq_param->ip_period; - vdenc_context->vdenc_streamin_enable = 0; - - gen9_vdenc_update_misc_parameters(ctx, encode_state, encoder_context); - - vdenc_context->current_pass = 0; - vdenc_context->num_passes = 1; - - if (vdenc_context->internal_rate_mode == I965_BRC_CBR || - vdenc_context->internal_rate_mode == I965_BRC_VBR) - vdenc_context->brc_enabled = 1; - else - vdenc_context->brc_enabled = 0; - - if (vdenc_context->brc_enabled && - (!vdenc_context->init_vbv_buffer_fullness_in_bit || - !vdenc_context->vbv_buffer_size_in_bit || - !vdenc_context->max_bit_rate || - !vdenc_context->target_bit_rate || - !vdenc_context->frames_per_100s)) - vdenc_context->brc_enabled = 0; - - if (!vdenc_context->brc_enabled) { - vdenc_context->target_bit_rate = 0; - vdenc_context->max_bit_rate = 0; - vdenc_context->min_bit_rate = 0; - vdenc_context->init_vbv_buffer_fullness_in_bit = 0; - vdenc_context->vbv_buffer_size_in_bit = 0; - } else { - vdenc_context->num_passes = NUM_OF_BRC_PAK_PASSES; - } -} - -static void -gen9_vdenc_avc_calculate_mode_cost(VADriverContextP ctx, - struct encode_state *encode_state, - struct intel_encoder_context *encoder_context, - int qp) -{ - struct gen9_vdenc_context *vdenc_context = encoder_context->mfc_context; - unsigned int frame_type = vdenc_context->frame_type; - - memset(vdenc_context->mode_cost, 0, sizeof(vdenc_context->mode_cost)); - memset(vdenc_context->mv_cost, 0, sizeof(vdenc_context->mv_cost)); - memset(vdenc_context->hme_mv_cost, 0, sizeof(vdenc_context->hme_mv_cost)); - - vdenc_context->mode_cost[VDENC_LUTMODE_INTRA_NONPRED] = map_44_lut_value((uint32_t)(vdenc_mode_const[frame_type][VDENC_LUTMODE_INTRA_NONPRED][qp]), 0x6f); - vdenc_context->mode_cost[VDENC_LUTMODE_INTRA_16x16] = map_44_lut_value((uint32_t)(vdenc_mode_const[frame_type][VDENC_LUTMODE_INTRA_16x16][qp]), 0x8f); - vdenc_context->mode_cost[VDENC_LUTMODE_INTRA_8x8] = map_44_lut_value((uint32_t)(vdenc_mode_const[frame_type][VDENC_LUTMODE_INTRA_8x8][qp]), 0x8f); - vdenc_context->mode_cost[VDENC_LUTMODE_INTRA_4x4] = map_44_lut_value((uint32_t)(vdenc_mode_const[frame_type][VDENC_LUTMODE_INTRA_4x4][qp]), 0x8f); - - if (frame_type == VDENC_FRAME_P) { - vdenc_context->mode_cost[VDENC_LUTMODE_INTER_16x16] = map_44_lut_value((uint32_t)(vdenc_mode_const[frame_type][VDENC_LUTMODE_INTER_16x16][qp]), 0x8f); - vdenc_context->mode_cost[VDENC_LUTMODE_INTER_16x8] = map_44_lut_value((uint32_t)(vdenc_mode_const[frame_type][VDENC_LUTMODE_INTER_16x8][qp]), 0x8f); - vdenc_context->mode_cost[VDENC_LUTMODE_INTER_8X8Q] = map_44_lut_value((uint32_t)(vdenc_mode_const[frame_type][VDENC_LUTMODE_INTER_8X8Q][qp]), 0x6f); - vdenc_context->mode_cost[VDENC_LUTMODE_INTER_8X4Q] = map_44_lut_value((uint32_t)(vdenc_mode_const[frame_type][VDENC_LUTMODE_INTER_8X4Q][qp]), 0x6f); - vdenc_context->mode_cost[VDENC_LUTMODE_INTER_4X4Q] = map_44_lut_value((uint32_t)(vdenc_mode_const[frame_type][VDENC_LUTMODE_INTER_4X4Q][qp]), 0x6f); - vdenc_context->mode_cost[VDENC_LUTMODE_REF_ID] = map_44_lut_value((uint32_t)(vdenc_mode_const[frame_type][VDENC_LUTMODE_REF_ID][qp]), 0x6f); - - vdenc_context->mv_cost[0] = map_44_lut_value((uint32_t)(vdenc_mv_cost_skipbias_qpel[0]), 0x6f); - vdenc_context->mv_cost[1] = map_44_lut_value((uint32_t)(vdenc_mv_cost_skipbias_qpel[1]), 0x6f); - vdenc_context->mv_cost[2] = map_44_lut_value((uint32_t)(vdenc_mv_cost_skipbias_qpel[2]), 0x6f); - vdenc_context->mv_cost[3] = map_44_lut_value((uint32_t)(vdenc_mv_cost_skipbias_qpel[3]), 0x6f); - vdenc_context->mv_cost[4] = map_44_lut_value((uint32_t)(vdenc_mv_cost_skipbias_qpel[4]), 0x6f); - vdenc_context->mv_cost[5] = map_44_lut_value((uint32_t)(vdenc_mv_cost_skipbias_qpel[5]), 0x6f); - vdenc_context->mv_cost[6] = map_44_lut_value((uint32_t)(vdenc_mv_cost_skipbias_qpel[6]), 0x6f); - vdenc_context->mv_cost[7] = map_44_lut_value((uint32_t)(vdenc_mv_cost_skipbias_qpel[7]), 0x6f); - - vdenc_context->hme_mv_cost[0] = map_44_lut_value((uint32_t)(vdenc_hme_cost[0][qp]), 0x6f); - vdenc_context->hme_mv_cost[1] = map_44_lut_value((uint32_t)(vdenc_hme_cost[1][qp]), 0x6f); - vdenc_context->hme_mv_cost[2] = map_44_lut_value((uint32_t)(vdenc_hme_cost[2][qp]), 0x6f); - vdenc_context->hme_mv_cost[3] = map_44_lut_value((uint32_t)(vdenc_hme_cost[3][qp]), 0x6f); - vdenc_context->hme_mv_cost[4] = map_44_lut_value((uint32_t)(vdenc_hme_cost[4][qp]), 0x6f); - vdenc_context->hme_mv_cost[5] = map_44_lut_value((uint32_t)(vdenc_hme_cost[5][qp]), 0x6f); - vdenc_context->hme_mv_cost[6] = map_44_lut_value((uint32_t)(vdenc_hme_cost[6][qp]), 0x6f); - vdenc_context->hme_mv_cost[7] = map_44_lut_value((uint32_t)(vdenc_hme_cost[7][qp]), 0x6f); - } -} - -static void -gen9_vdenc_update_roi_in_streamin_state(VADriverContextP ctx, - struct intel_encoder_context *encoder_context) -{ - struct gen9_vdenc_context *vdenc_context = encoder_context->mfc_context; - struct gen9_vdenc_streamin_state *streamin_state; - int row, col, i; - - if (!vdenc_context->num_roi) - return; - - streamin_state = (struct gen9_vdenc_streamin_state *)i965_map_gpe_resource(&vdenc_context->vdenc_streamin_res); - - if (!streamin_state) - return; - - for (col = 0; col < vdenc_context->frame_width_in_mbs; col++) { - for (row = 0; row < vdenc_context->frame_height_in_mbs; row++) { - streamin_state[row * vdenc_context->frame_width_in_mbs + col].dw0.roi_selection = 0; /* non-ROI region */ - - /* The last one has higher priority */ - for (i = vdenc_context->num_roi - 1; i >= 0; i--) { - if ((col >= vdenc_context->roi[i].left && col <= vdenc_context->roi[i].right) && - (row >= vdenc_context->roi[i].top && row <= vdenc_context->roi[i].bottom)) { - streamin_state[row * vdenc_context->frame_width_in_mbs + col].dw0.roi_selection = i + 1; - - break; - } - } - } - } - - i965_unmap_gpe_resource(&vdenc_context->vdenc_streamin_res); -} - -static VAStatus -gen9_vdenc_avc_prepare(VADriverContextP ctx, - VAProfile profile, - struct encode_state *encode_state, - struct intel_encoder_context *encoder_context) -{ - struct i965_driver_data *i965 = i965_driver_data(ctx); - struct gen9_vdenc_context *vdenc_context = encoder_context->mfc_context; - struct i965_coded_buffer_segment *coded_buffer_segment; - struct object_surface *obj_surface; - struct object_buffer *obj_buffer; - VAEncPictureParameterBufferH264 *pic_param; - VAEncSliceParameterBufferH264 *slice_param; - VDEncAvcSurface *vdenc_avc_surface; - dri_bo *bo; - int i, j, enable_avc_ildb = 0; - int qp; - char *pbuffer; - - gen9_vdenc_update_parameters(ctx, profile, encode_state, encoder_context); - - for (j = 0; j < encode_state->num_slice_params_ext && enable_avc_ildb == 0; j++) { - assert(encode_state->slice_params_ext && encode_state->slice_params_ext[j]->buffer); - slice_param = (VAEncSliceParameterBufferH264 *)encode_state->slice_params_ext[j]->buffer; - - for (i = 0; i < encode_state->slice_params_ext[j]->num_elements; i++) { - assert((slice_param->slice_type == SLICE_TYPE_I) || - (slice_param->slice_type == SLICE_TYPE_SI) || - (slice_param->slice_type == SLICE_TYPE_P) || - (slice_param->slice_type == SLICE_TYPE_SP) || - (slice_param->slice_type == SLICE_TYPE_B)); - - if (slice_param->disable_deblocking_filter_idc != 1) { - enable_avc_ildb = 1; - break; - } - - slice_param++; - } - } - - /* Setup current frame */ - obj_surface = encode_state->reconstructed_object; - i965_check_alloc_surface_bo(ctx, obj_surface, 1, VA_FOURCC_NV12, SUBSAMPLE_YUV420); - - if (obj_surface->private_data == NULL) { - vdenc_avc_surface = calloc(sizeof(VDEncAvcSurface), 1); - assert(vdenc_avc_surface); - - vdenc_avc_surface->ctx = ctx; - i965_CreateSurfaces(ctx, - vdenc_context->down_scaled_width_4x, - vdenc_context->down_scaled_height_4x, - VA_RT_FORMAT_YUV420, - 1, - &vdenc_avc_surface->scaled_4x_surface_id); - vdenc_avc_surface->scaled_4x_surface_obj = SURFACE(vdenc_avc_surface->scaled_4x_surface_id); - assert(vdenc_avc_surface->scaled_4x_surface_obj); - i965_check_alloc_surface_bo(ctx, - vdenc_avc_surface->scaled_4x_surface_obj, - 1, - VA_FOURCC_NV12, - SUBSAMPLE_YUV420); - - obj_surface->private_data = (void *)vdenc_avc_surface; - obj_surface->free_private_data = (void *)vdenc_free_avc_surface; - } - - vdenc_avc_surface = (VDEncAvcSurface *)obj_surface->private_data; - assert(vdenc_avc_surface->scaled_4x_surface_obj); - - /* Reconstructed surfaces */ - i965_free_gpe_resource(&vdenc_context->recon_surface_res); - i965_free_gpe_resource(&vdenc_context->scaled_4x_recon_surface_res); - i965_free_gpe_resource(&vdenc_context->post_deblocking_output_res); - i965_free_gpe_resource(&vdenc_context->pre_deblocking_output_res); - - i965_object_surface_to_2d_gpe_resource(&vdenc_context->recon_surface_res, obj_surface); - i965_object_surface_to_2d_gpe_resource(&vdenc_context->scaled_4x_recon_surface_res, vdenc_avc_surface->scaled_4x_surface_obj); - - if (enable_avc_ildb) { - i965_object_surface_to_2d_gpe_resource(&vdenc_context->post_deblocking_output_res, obj_surface); - } else { - i965_object_surface_to_2d_gpe_resource(&vdenc_context->pre_deblocking_output_res, obj_surface); - } - - - /* Reference surfaces */ - for (i = 0; i < ARRAY_ELEMS(vdenc_context->list_reference_res); i++) { - assert(ARRAY_ELEMS(vdenc_context->list_reference_res) == - ARRAY_ELEMS(vdenc_context->list_scaled_4x_reference_res)); - i965_free_gpe_resource(&vdenc_context->list_reference_res[i]); - i965_free_gpe_resource(&vdenc_context->list_scaled_4x_reference_res[i]); - obj_surface = encode_state->reference_objects[i]; - - if (obj_surface && obj_surface->bo) { - i965_object_surface_to_2d_gpe_resource(&vdenc_context->list_reference_res[i], obj_surface); - - if (obj_surface->private_data == NULL) { - vdenc_avc_surface = calloc(sizeof(VDEncAvcSurface), 1); - assert(vdenc_avc_surface); - - vdenc_avc_surface->ctx = ctx; - i965_CreateSurfaces(ctx, - vdenc_context->down_scaled_width_4x, - vdenc_context->down_scaled_height_4x, - VA_RT_FORMAT_YUV420, - 1, - &vdenc_avc_surface->scaled_4x_surface_id); - vdenc_avc_surface->scaled_4x_surface_obj = SURFACE(vdenc_avc_surface->scaled_4x_surface_id); - assert(vdenc_avc_surface->scaled_4x_surface_obj); - i965_check_alloc_surface_bo(ctx, - vdenc_avc_surface->scaled_4x_surface_obj, - 1, - VA_FOURCC_NV12, - SUBSAMPLE_YUV420); - - obj_surface->private_data = vdenc_avc_surface; - obj_surface->free_private_data = gen_free_avc_surface; - } - - vdenc_avc_surface = obj_surface->private_data; - i965_object_surface_to_2d_gpe_resource(&vdenc_context->list_scaled_4x_reference_res[i], vdenc_avc_surface->scaled_4x_surface_obj); - } - } - - /* Input YUV surface */ - i965_free_gpe_resource(&vdenc_context->uncompressed_input_surface_res); - i965_object_surface_to_2d_gpe_resource(&vdenc_context->uncompressed_input_surface_res, encode_state->input_yuv_object); - - /* Encoded bitstream */ - obj_buffer = encode_state->coded_buf_object; - bo = obj_buffer->buffer_store->bo; - i965_free_gpe_resource(&vdenc_context->compressed_bitstream.res); - i965_dri_object_to_buffer_gpe_resource(&vdenc_context->compressed_bitstream.res, bo); - vdenc_context->compressed_bitstream.start_offset = I965_CODEDBUFFER_HEADER_SIZE; - vdenc_context->compressed_bitstream.end_offset = ALIGN(obj_buffer->size_element - 0x1000, 0x1000); - - /* Status buffer */ - i965_free_gpe_resource(&vdenc_context->status_bffuer.res); - i965_dri_object_to_buffer_gpe_resource(&vdenc_context->status_bffuer.res, bo); - vdenc_context->status_bffuer.base_offset = offsetof(struct i965_coded_buffer_segment, codec_private_data); - vdenc_context->status_bffuer.size = ALIGN(sizeof(struct gen9_vdenc_status), 64); - vdenc_context->status_bffuer.bytes_per_frame_offset = offsetof(struct gen9_vdenc_status, bytes_per_frame); - assert(vdenc_context->status_bffuer.base_offset + vdenc_context->status_bffuer.size < - vdenc_context->compressed_bitstream.start_offset); - - dri_bo_map(bo, 1); - - coded_buffer_segment = (struct i965_coded_buffer_segment *)bo->virtual; - coded_buffer_segment->mapped = 0; - coded_buffer_segment->codec = encoder_context->codec; - coded_buffer_segment->status_support = 1; - - pbuffer = bo->virtual; - pbuffer += vdenc_context->status_bffuer.base_offset; - memset(pbuffer, 0, vdenc_context->status_bffuer.size); - - dri_bo_unmap(bo); - - i965_free_gpe_resource(&vdenc_context->mfx_intra_row_store_scratch_res); - ALLOC_VDENC_BUFFER_RESOURCE(vdenc_context->mfx_intra_row_store_scratch_res, - vdenc_context->frame_width_in_mbs * 64, - "Intra row store scratch buffer"); - - i965_free_gpe_resource(&vdenc_context->mfx_deblocking_filter_row_store_scratch_res); - ALLOC_VDENC_BUFFER_RESOURCE(vdenc_context->mfx_deblocking_filter_row_store_scratch_res, - vdenc_context->frame_width_in_mbs * 256, - "Deblocking filter row store scratch buffer"); - - i965_free_gpe_resource(&vdenc_context->mfx_bsd_mpc_row_store_scratch_res); - ALLOC_VDENC_BUFFER_RESOURCE(vdenc_context->mfx_bsd_mpc_row_store_scratch_res, - vdenc_context->frame_width_in_mbs * 128, - "BSD/MPC row store scratch buffer"); - - i965_free_gpe_resource(&vdenc_context->vdenc_row_store_scratch_res); - ALLOC_VDENC_BUFFER_RESOURCE(vdenc_context->vdenc_row_store_scratch_res, - vdenc_context->frame_width_in_mbs * 64, - "VDENC row store scratch buffer"); - - assert(sizeof(struct gen9_vdenc_streamin_state) == 64); - i965_free_gpe_resource(&vdenc_context->vdenc_streamin_res); - ALLOC_VDENC_BUFFER_RESOURCE(vdenc_context->vdenc_streamin_res, - vdenc_context->frame_width_in_mbs * - vdenc_context->frame_height_in_mbs * - sizeof(struct gen9_vdenc_streamin_state), - "VDENC StreamIn buffer"); - - /* - * Calculate the index for each reference surface in list0 for the first slice - * TODO: other slices - */ - pic_param = (VAEncPictureParameterBufferH264 *)encode_state->pic_param_ext->buffer; - slice_param = (VAEncSliceParameterBufferH264 *)encode_state->slice_params_ext[0]->buffer; - - vdenc_context->num_refs[0] = pic_param->num_ref_idx_l0_active_minus1 + 1; - - if (slice_param->num_ref_idx_active_override_flag) - vdenc_context->num_refs[0] = slice_param->num_ref_idx_l0_active_minus1 + 1; - - if (vdenc_context->num_refs[0] > ARRAY_ELEMS(vdenc_context->list_ref_idx[0])) - return VA_STATUS_ERROR_INVALID_VALUE; - - for (i = 0; i < ARRAY_ELEMS(vdenc_context->list_ref_idx[0]); i++) { - VAPictureH264 *va_pic; - - assert(ARRAY_ELEMS(slice_param->RefPicList0) == ARRAY_ELEMS(vdenc_context->list_ref_idx[0])); - vdenc_context->list_ref_idx[0][i] = 0; - - if (i >= vdenc_context->num_refs[0]) - continue; - - va_pic = &slice_param->RefPicList0[i]; - - for (j = 0; j < ARRAY_ELEMS(encode_state->reference_objects); j++) { - obj_surface = encode_state->reference_objects[j]; - - if (obj_surface && - obj_surface->bo && - obj_surface->base.id == va_pic->picture_id) { - - assert(obj_surface->base.id != VA_INVALID_SURFACE); - vdenc_context->list_ref_idx[0][i] = j; - - break; - } - } - } - - if (slice_param->slice_type == SLICE_TYPE_I || - slice_param->slice_type == SLICE_TYPE_SI) - vdenc_context->frame_type = VDENC_FRAME_I; - else - vdenc_context->frame_type = VDENC_FRAME_P; - - qp = pic_param->pic_init_qp + slice_param->slice_qp_delta; - - gen9_vdenc_avc_calculate_mode_cost(ctx, encode_state, encoder_context, qp); - gen9_vdenc_update_roi_in_streamin_state(ctx, encoder_context); - - return VA_STATUS_SUCCESS; -} - -static void -gen9_vdenc_huc_pipe_mode_select(VADriverContextP ctx, - struct intel_encoder_context *encoder_context, - struct huc_pipe_mode_select_parameter *params) -{ - struct intel_batchbuffer *batch = encoder_context->base.batch; - - BEGIN_BCS_BATCH(batch, 3); - - OUT_BCS_BATCH(batch, HUC_PIPE_MODE_SELECT | (3 - 2)); - OUT_BCS_BATCH(batch, - (params->huc_stream_object_enable << 10) | - (params->indirect_stream_out_enable << 4)); - OUT_BCS_BATCH(batch, - params->media_soft_reset_counter); - - ADVANCE_BCS_BATCH(batch); -} - -static void -gen9_vdenc_huc_imem_state(VADriverContextP ctx, - struct intel_encoder_context *encoder_context, - struct huc_imem_state_parameter *params) -{ - struct intel_batchbuffer *batch = encoder_context->base.batch; - - BEGIN_BCS_BATCH(batch, 5); - - OUT_BCS_BATCH(batch, HUC_IMEM_STATE | (5 - 2)); - OUT_BCS_BATCH(batch, 0); - OUT_BCS_BATCH(batch, 0); - OUT_BCS_BATCH(batch, 0); - OUT_BCS_BATCH(batch, params->huc_firmware_descriptor); - - ADVANCE_BCS_BATCH(batch); -} - -static void -gen9_vdenc_huc_dmem_state(VADriverContextP ctx, - struct intel_encoder_context *encoder_context, - struct huc_dmem_state_parameter *params) -{ - struct intel_batchbuffer *batch = encoder_context->base.batch; - - BEGIN_BCS_BATCH(batch, 6); - - OUT_BCS_BATCH(batch, HUC_DMEM_STATE | (6 - 2)); - OUT_BUFFER_3DW(batch, params->huc_data_source_res->bo, 0, 0, 0); - OUT_BCS_BATCH(batch, params->huc_data_destination_base_address); - OUT_BCS_BATCH(batch, params->huc_data_length); - - ADVANCE_BCS_BATCH(batch); -} - -/* -static void -gen9_vdenc_huc_cfg_state(VADriverContextP ctx, - struct intel_encoder_context *encoder_context, - struct huc_cfg_state_parameter *params) -{ - struct intel_batchbuffer *batch = encoder_context->base.batch; - - BEGIN_BCS_BATCH(batch, 2); - - OUT_BCS_BATCH(batch, HUC_CFG_STATE | (2 - 2)); - OUT_BCS_BATCH(batch, !!params->force_reset); - - ADVANCE_BCS_BATCH(batch); -} -*/ -static void -gen9_vdenc_huc_virtual_addr_state(VADriverContextP ctx, - struct intel_encoder_context *encoder_context, - struct huc_virtual_addr_parameter *params) -{ - struct intel_batchbuffer *batch = encoder_context->base.batch; - int i; - - BEGIN_BCS_BATCH(batch, 49); - - OUT_BCS_BATCH(batch, HUC_VIRTUAL_ADDR_STATE | (49 - 2)); - - for (i = 0; i < 16; i++) { - if (params->regions[i].huc_surface_res && params->regions[i].huc_surface_res->bo) - OUT_BUFFER_3DW(batch, - params->regions[i].huc_surface_res->bo, - !!params->regions[i].is_target, 0, 0); - else - OUT_BUFFER_3DW(batch, NULL, 0, 0, 0); - } - - ADVANCE_BCS_BATCH(batch); -} - -static void -gen9_vdenc_huc_ind_obj_base_addr_state(VADriverContextP ctx, - struct intel_encoder_context *encoder_context, - struct huc_ind_obj_base_addr_parameter *params) -{ - struct intel_batchbuffer *batch = encoder_context->base.batch; - - BEGIN_BCS_BATCH(batch, 11); - - OUT_BCS_BATCH(batch, HUC_IND_OBJ_BASE_ADDR_STATE | (11 - 2)); - - if (params->huc_indirect_stream_in_object_res) - OUT_BUFFER_3DW(batch, - params->huc_indirect_stream_in_object_res->bo, - 0, 0, 0); - else - OUT_BUFFER_3DW(batch, NULL, 0, 0, 0); - - OUT_BUFFER_2DW(batch, NULL, 0, 0); /* ignore access upper bound */ - - if (params->huc_indirect_stream_out_object_res) - OUT_BUFFER_3DW(batch, - params->huc_indirect_stream_out_object_res->bo, - 1, 0, 0); - else - OUT_BUFFER_3DW(batch, NULL, 0, 0, 0); - - OUT_BUFFER_2DW(batch, NULL, 0, 0); /* ignore access upper bound */ - - ADVANCE_BCS_BATCH(batch); -} - -static void -gen9_vdenc_huc_store_huc_status2(VADriverContextP ctx, - struct intel_encoder_context *encoder_context) -{ - struct gen9_vdenc_context *vdenc_context = encoder_context->mfc_context; - struct intel_batchbuffer *batch = encoder_context->base.batch; - struct gpe_mi_store_register_mem_parameter mi_store_register_mem_params; - struct gpe_mi_store_data_imm_parameter mi_store_data_imm_params; - - /* Write HUC_STATUS2 mask (1 << 6) */ - memset(&mi_store_data_imm_params, 0, sizeof(mi_store_data_imm_params)); - mi_store_data_imm_params.bo = vdenc_context->huc_status2_res.bo; - mi_store_data_imm_params.offset = 0; - mi_store_data_imm_params.dw0 = (1 << 6); - gen9_gpe_mi_store_data_imm(ctx, batch, &mi_store_data_imm_params); - - /* Store HUC_STATUS2 */ - memset(&mi_store_register_mem_params, 0, sizeof(mi_store_register_mem_params)); - mi_store_register_mem_params.mmio_offset = VCS0_HUC_STATUS2; - mi_store_register_mem_params.bo = vdenc_context->huc_status2_res.bo; - mi_store_register_mem_params.offset = 4; - gen9_gpe_mi_store_register_mem(ctx, batch, &mi_store_register_mem_params); -} - -static void -gen9_vdenc_huc_stream_object(VADriverContextP ctx, - struct intel_encoder_context *encoder_context, - struct huc_stream_object_parameter *params) -{ - struct intel_batchbuffer *batch = encoder_context->base.batch; - - BEGIN_BCS_BATCH(batch, 5); - - OUT_BCS_BATCH(batch, HUC_STREAM_OBJECT | (5 - 2)); - OUT_BCS_BATCH(batch, params->indirect_stream_in_data_length); - OUT_BCS_BATCH(batch, - (1 << 31) | /* Must be 1 */ - params->indirect_stream_in_start_address); - OUT_BCS_BATCH(batch, params->indirect_stream_out_start_address); - OUT_BCS_BATCH(batch, - (!!params->huc_bitstream_enable << 29) | - (params->length_mode << 27) | - (!!params->stream_out << 26) | - (!!params->emulation_prevention_byte_removal << 25) | - (!!params->start_code_search_engine << 24) | - (params->start_code_byte2 << 16) | - (params->start_code_byte1 << 8) | - params->start_code_byte0); - - ADVANCE_BCS_BATCH(batch); -} - -static void -gen9_vdenc_huc_start(VADriverContextP ctx, - struct intel_encoder_context *encoder_context, - struct huc_start_parameter *params) -{ - struct intel_batchbuffer *batch = encoder_context->base.batch; - - BEGIN_BCS_BATCH(batch, 2); - - OUT_BCS_BATCH(batch, HUC_START | (2 - 2)); - OUT_BCS_BATCH(batch, !!params->last_stream_object); - - ADVANCE_BCS_BATCH(batch); -} - -static void -gen9_vdenc_vd_pipeline_flush(VADriverContextP ctx, - struct intel_encoder_context *encoder_context, - struct vd_pipeline_flush_parameter *params) -{ - struct intel_batchbuffer *batch = encoder_context->base.batch; - - BEGIN_BCS_BATCH(batch, 2); - - OUT_BCS_BATCH(batch, VD_PIPELINE_FLUSH | (2 - 2)); - OUT_BCS_BATCH(batch, - params->mfx_pipeline_command_flush << 19 | - params->mfl_pipeline_command_flush << 18 | - params->vdenc_pipeline_command_flush << 17 | - params->hevc_pipeline_command_flush << 16 | - params->vd_command_message_parser_done << 4 | - params->mfx_pipeline_done << 3 | - params->mfl_pipeline_done << 2 | - params->vdenc_pipeline_done << 1 | - params->hevc_pipeline_done); - - ADVANCE_BCS_BATCH(batch); -} - -static int -gen9_vdenc_get_max_mbps(int level_idc) -{ - int max_mbps = 11880; - - switch (level_idc) { - case 20: - max_mbps = 11880; - break; - - case 21: - max_mbps = 19800; - break; - - case 22: - max_mbps = 20250; - break; - - case 30: - max_mbps = 40500; - break; - - case 31: - max_mbps = 108000; - break; - - case 32: - max_mbps = 216000; - break; - - case 40: - case 41: - max_mbps = 245760; - break; - - case 42: - max_mbps = 522240; - break; - - case 50: - max_mbps = 589824; - break; - - case 51: - max_mbps = 983040; - break; - - case 52: - max_mbps = 2073600; - break; - - default: - break; - } - - return max_mbps; -}; - -static unsigned int -gen9_vdenc_get_profile_level_max_frame(VADriverContextP ctx, - struct intel_encoder_context *encoder_context, - int level_idc) -{ - struct gen9_vdenc_context *vdenc_context = encoder_context->mfc_context; - double bits_per_mb, tmpf; - int max_mbps, num_mb_per_frame; - uint64_t max_byte_per_frame0, max_byte_per_frame1; - unsigned int ret; - - if (level_idc >= 31 && level_idc <= 40) - bits_per_mb = 96.0; - else - bits_per_mb = 192.0; - - max_mbps = gen9_vdenc_get_max_mbps(level_idc); - num_mb_per_frame = vdenc_context->frame_width_in_mbs * vdenc_context->frame_height_in_mbs; - - tmpf = (double)num_mb_per_frame; - - if (tmpf < max_mbps / 172.0) - tmpf = max_mbps / 172.0; - - max_byte_per_frame0 = (uint64_t)(tmpf * bits_per_mb); - max_byte_per_frame1 = (uint64_t)(((double)max_mbps * 100) / vdenc_context->frames_per_100s *bits_per_mb); - - /* TODO: check VAEncMiscParameterTypeMaxFrameSize */ - ret = (unsigned int)MIN(max_byte_per_frame0, max_byte_per_frame1); - ret = (unsigned int)MIN(ret, vdenc_context->frame_height * vdenc_context->frame_height); - - return ret; -} - -static int -gen9_vdenc_calculate_initial_qp(VADriverContextP ctx, - struct encode_state *encode_state, - struct intel_encoder_context *encoder_context) -{ - struct gen9_vdenc_context *vdenc_context = encoder_context->mfc_context; - float x0 = 0, y0 = 1.19f, x1 = 1.75f, y1 = 1.75f; - unsigned frame_size; - int qp, delat_qp; - - frame_size = (vdenc_context->frame_width * vdenc_context->frame_height * 3 / 2); - qp = (int)(1.0 / 1.2 * pow(10.0, - (log10(frame_size * 2.0 / 3.0 * ((float)vdenc_context->frames_per_100s) / - ((float)(vdenc_context->target_bit_rate * 1000) * 100)) - x0) * - (y1 - y0) / (x1 - x0) + y0) + 0.5); - qp += 2; - delat_qp = (int)(9 - (vdenc_context->vbv_buffer_size_in_bit * ((float)vdenc_context->frames_per_100s) / - ((float)(vdenc_context->target_bit_rate * 1000) * 100))); - if (delat_qp > 0) - qp += delat_qp; - - qp = CLAMP(1, 51, qp); - qp--; - - if (qp < 0) - qp = 1; - - return qp; -} - -static void -gen9_vdenc_update_huc_brc_init_dmem(VADriverContextP ctx, - struct encode_state *encode_state, - struct intel_encoder_context *encoder_context) -{ - struct gen9_vdenc_context *vdenc_context = encoder_context->mfc_context; - struct huc_brc_init_dmem *dmem; - VAEncSequenceParameterBufferH264 *seq_param = (VAEncSequenceParameterBufferH264 *)encode_state->seq_param_ext->buffer; - double input_bits_per_frame, bps_ratio; - int i; - - vdenc_context->brc_init_reset_input_bits_per_frame = ((double)(vdenc_context->max_bit_rate * 1000) * 100) / vdenc_context->frames_per_100s; - vdenc_context->brc_init_current_target_buf_full_in_bits = vdenc_context->brc_init_reset_input_bits_per_frame; - vdenc_context->brc_target_size = vdenc_context->init_vbv_buffer_fullness_in_bit; - - dmem = (struct huc_brc_init_dmem *)i965_map_gpe_resource(&vdenc_context->brc_init_reset_dmem_res); - - if (!dmem) - return; - - memset(dmem, 0, sizeof(*dmem)); - - dmem->brc_func = vdenc_context->brc_initted ? 2 : 0; - - dmem->frame_width = vdenc_context->frame_width; - dmem->frame_height = vdenc_context->frame_height; - - dmem->target_bitrate = vdenc_context->target_bit_rate * 1000; - dmem->min_rate = vdenc_context->min_bit_rate * 1000; - dmem->max_rate = vdenc_context->max_bit_rate * 1000; - dmem->buffer_size = vdenc_context->vbv_buffer_size_in_bit; - dmem->init_buffer_fullness = vdenc_context->init_vbv_buffer_fullness_in_bit; - - if (dmem->init_buffer_fullness > vdenc_context->init_vbv_buffer_fullness_in_bit) - dmem->init_buffer_fullness = vdenc_context->vbv_buffer_size_in_bit; - - if (vdenc_context->internal_rate_mode == I965_BRC_CBR) - dmem->brc_flag |= 0x10; - else if (vdenc_context->internal_rate_mode == I965_BRC_VBR) - dmem->brc_flag |= 0x20; - - dmem->frame_rate_m = vdenc_context->frames_per_100s; - dmem->frame_rate_d = 100; - - dmem->profile_level_max_frame = gen9_vdenc_get_profile_level_max_frame(ctx, encoder_context, seq_param->level_idc); - - if (vdenc_context->ref_dist && vdenc_context->gop_size > 0) - dmem->num_p_in_gop = (vdenc_context->gop_size - 1) / vdenc_context->ref_dist; - - dmem->min_qp = 10; - dmem->max_qp = 51; - - input_bits_per_frame = ((double)vdenc_context->max_bit_rate * 1000 * 100) / vdenc_context->frames_per_100s; - bps_ratio = input_bits_per_frame / ((double)vdenc_context->vbv_buffer_size_in_bit * 100 / vdenc_context->frames_per_100s); - - if (bps_ratio < 0.1) - bps_ratio = 0.1; - - if (bps_ratio > 3.5) - bps_ratio = 3.5; - - for (i = 0; i < 4; i++) { - dmem->dev_thresh_pb0[i] = (char)(-50 * pow(vdenc_brc_dev_threshpb0_fp_neg[i], bps_ratio)); - dmem->dev_thresh_pb0[i + 4] = (char)(50 * pow(vdenc_brc_dev_threshpb0_fp_pos[i], bps_ratio)); - - dmem->dev_thresh_i0[i] = (char)(-50 * pow(vdenc_brc_dev_threshi0_fp_neg[i], bps_ratio)); - dmem->dev_thresh_i0[i + 4] = (char)(50 * pow(vdenc_brc_dev_threshi0_fp_pos[i], bps_ratio)); - - dmem->dev_thresh_vbr0[i] = (char)(-50 * pow(vdenc_brc_dev_threshvbr0_neg[i], bps_ratio)); - dmem->dev_thresh_vbr0[i + 4] = (char)(100 * pow(vdenc_brc_dev_threshvbr0_pos[i], bps_ratio)); - } - - dmem->init_qp_ip = gen9_vdenc_calculate_initial_qp(ctx, encode_state, encoder_context); - - if (vdenc_context->mb_brc_enabled) { - dmem->mb_qp_ctrl = 1; - dmem->dist_qp_delta[0] = -5; - dmem->dist_qp_delta[1] = -2; - dmem->dist_qp_delta[2] = 2; - dmem->dist_qp_delta[3] = 5; - } - - dmem->slice_size_ctrl_en = 0; /* TODO: add support for slice size control */ - - dmem->oscillation_qp_delta = 0; /* TODO: add support */ - dmem->first_iframe_no_hrd_check = 0;/* TODO: add support */ - - // 2nd re-encode pass if possible - if (vdenc_context->frame_width_in_mbs * vdenc_context->frame_height_in_mbs >= (3840 * 2160 / 256)) { - dmem->top_qp_delta_thr_for_2nd_pass = 5; - dmem->bottom_qp_delta_thr_for_2nd_pass = 5; - dmem->top_frame_size_threshold_for_2nd_pass = 80; - dmem->bottom_frame_size_threshold_for_2nd_pass = 80; - } else { - dmem->top_qp_delta_thr_for_2nd_pass = 2; - dmem->bottom_qp_delta_thr_for_2nd_pass = 1; - dmem->top_frame_size_threshold_for_2nd_pass = 32; - dmem->bottom_frame_size_threshold_for_2nd_pass = 24; - } - - dmem->qp_select_for_first_pass = 1; - dmem->mb_header_compensation = 1; - dmem->delta_qp_adaptation = 1; - dmem->max_crf_quality_factor = 52; - - dmem->crf_quality_factor = 0; /* TODO: add support for CRF */ - dmem->scenario_info = 0; - - memcpy(&dmem->estrate_thresh_i0, vdenc_brc_estrate_thresh_i0, sizeof(dmem->estrate_thresh_i0)); - memcpy(&dmem->estrate_thresh_p0, vdenc_brc_estrate_thresh_p0, sizeof(dmem->estrate_thresh_p0)); - - i965_unmap_gpe_resource(&vdenc_context->brc_init_reset_dmem_res); -} - -static void -gen9_vdenc_huc_brc_init_reset(VADriverContextP ctx, - struct encode_state *encode_state, - struct intel_encoder_context *encoder_context) -{ - struct intel_batchbuffer *batch = encoder_context->base.batch; - struct gen9_vdenc_context *vdenc_context = encoder_context->mfc_context; - struct huc_pipe_mode_select_parameter pipe_mode_select_params; - struct huc_imem_state_parameter imem_state_params; - struct huc_dmem_state_parameter dmem_state_params; - struct huc_virtual_addr_parameter virtual_addr_params; - struct huc_ind_obj_base_addr_parameter ind_obj_base_addr_params; - struct huc_stream_object_parameter stream_object_params; - struct huc_start_parameter start_params; - struct vd_pipeline_flush_parameter pipeline_flush_params; - struct gpe_mi_flush_dw_parameter mi_flush_dw_params; - - vdenc_context->brc_target_size = vdenc_context->init_vbv_buffer_fullness_in_bit; - - memset(&imem_state_params, 0, sizeof(imem_state_params)); - imem_state_params.huc_firmware_descriptor = HUC_BRC_INIT_RESET; - gen9_vdenc_huc_imem_state(ctx, encoder_context, &imem_state_params); - - memset(&pipe_mode_select_params, 0, sizeof(pipe_mode_select_params)); - gen9_vdenc_huc_pipe_mode_select(ctx, encoder_context, &pipe_mode_select_params); - - gen9_vdenc_update_huc_brc_init_dmem(ctx, encode_state, encoder_context); - memset(&dmem_state_params, 0, sizeof(dmem_state_params)); - dmem_state_params.huc_data_source_res = &vdenc_context->brc_init_reset_dmem_res; - dmem_state_params.huc_data_destination_base_address = HUC_DMEM_DATA_OFFSET; - dmem_state_params.huc_data_length = ALIGN(sizeof(struct huc_brc_init_dmem), 64); - gen9_vdenc_huc_dmem_state(ctx, encoder_context, &dmem_state_params); - - memset(&virtual_addr_params, 0, sizeof(virtual_addr_params)); - virtual_addr_params.regions[0].huc_surface_res = &vdenc_context->brc_history_buffer_res; - virtual_addr_params.regions[0].is_target = 1; - gen9_vdenc_huc_virtual_addr_state(ctx, encoder_context, &virtual_addr_params); - - memset(&ind_obj_base_addr_params, 0, sizeof(ind_obj_base_addr_params)); - ind_obj_base_addr_params.huc_indirect_stream_in_object_res = &vdenc_context->huc_dummy_res; - ind_obj_base_addr_params.huc_indirect_stream_out_object_res = NULL; - gen9_vdenc_huc_ind_obj_base_addr_state(ctx, encoder_context, &ind_obj_base_addr_params); - - memset(&stream_object_params, 0, sizeof(stream_object_params)); - stream_object_params.indirect_stream_in_data_length = 1; - stream_object_params.indirect_stream_in_start_address = 0; - gen9_vdenc_huc_stream_object(ctx, encoder_context, &stream_object_params); - - gen9_vdenc_huc_store_huc_status2(ctx, encoder_context); - - memset(&start_params, 0, sizeof(start_params)); - start_params.last_stream_object = 1; - gen9_vdenc_huc_start(ctx, encoder_context, &start_params); - - memset(&pipeline_flush_params, 0, sizeof(pipeline_flush_params)); - pipeline_flush_params.hevc_pipeline_done = 1; - pipeline_flush_params.hevc_pipeline_command_flush = 1; - gen9_vdenc_vd_pipeline_flush(ctx, encoder_context, &pipeline_flush_params); - - memset(&mi_flush_dw_params, 0, sizeof(mi_flush_dw_params)); - mi_flush_dw_params.video_pipeline_cache_invalidate = 1; - gen9_gpe_mi_flush_dw(ctx, batch, &mi_flush_dw_params); -} - -static void -gen9_vdenc_update_huc_update_dmem(VADriverContextP ctx, struct intel_encoder_context *encoder_context) -{ - struct gen9_vdenc_context *vdenc_context = encoder_context->mfc_context; - struct huc_brc_update_dmem *dmem; - int i, num_p_in_gop = 0; - - dmem = (struct huc_brc_update_dmem *)i965_map_gpe_resource(&vdenc_context->brc_update_dmem_res[vdenc_context->current_pass]); - - if (!dmem) - return; - - dmem->brc_func = 1; - - if (vdenc_context->brc_initted && (vdenc_context->current_pass == 0)) { - vdenc_context->brc_init_previous_target_buf_full_in_bits = - (uint32_t)(vdenc_context->brc_init_current_target_buf_full_in_bits); - vdenc_context->brc_init_current_target_buf_full_in_bits += vdenc_context->brc_init_reset_input_bits_per_frame; - vdenc_context->brc_target_size += vdenc_context->brc_init_reset_input_bits_per_frame; - } - - if (vdenc_context->brc_target_size > vdenc_context->vbv_buffer_size_in_bit) - vdenc_context->brc_target_size -= vdenc_context->vbv_buffer_size_in_bit; - - dmem->target_size = vdenc_context->brc_target_size; - - dmem->peak_tx_bits_per_frame = (uint32_t)(vdenc_context->brc_init_current_target_buf_full_in_bits - vdenc_context->brc_init_previous_target_buf_full_in_bits); - - dmem->target_slice_size = 0; // TODO: add support for slice size control - - memcpy(dmem->start_global_adjust_frame, vdenc_brc_start_global_adjust_frame, sizeof(dmem->start_global_adjust_frame)); - memcpy(dmem->global_rate_ratio_threshold, vdenc_brc_global_rate_ratio_threshold, sizeof(dmem->global_rate_ratio_threshold)); - - dmem->current_frame_type = (vdenc_context->frame_type + 2) % 3; // I frame:2, P frame:0, B frame:1 - - memcpy(dmem->start_global_adjust_mult, vdenc_brc_start_global_adjust_mult, sizeof(dmem->start_global_adjust_mult)); - memcpy(dmem->start_global_adjust_div, vdenc_brc_start_global_adjust_div, sizeof(dmem->start_global_adjust_div)); - memcpy(dmem->global_rate_ratio_threshold_qp, vdenc_brc_global_rate_ratio_threshold_qp, sizeof(dmem->global_rate_ratio_threshold_qp)); - - dmem->current_pak_pass = vdenc_context->current_pass; - dmem->max_num_passes = 2; - - dmem->scene_change_detect_enable = 1; - dmem->scene_change_prev_intra_percent_threshold = 96; - dmem->scene_change_cur_intra_perent_threshold = 192; - - if (vdenc_context->ref_dist && vdenc_context->gop_size > 0) - num_p_in_gop = (vdenc_context->gop_size - 1) / vdenc_context->ref_dist; - - for (i = 0; i < 2; i++) - dmem->scene_change_width[i] = MIN((num_p_in_gop + 1) / 5, 6); - - if (vdenc_context->is_low_delay) - dmem->ip_average_coeff = 0; - else - dmem->ip_average_coeff = 128; - - dmem->skip_frame_size = 0; - dmem->num_of_frames_skipped = 0; - - dmem->roi_source = 0; // TODO: add support for dirty ROI - dmem->hme_detection_enable = 0; // TODO: support HME kernel - dmem->hme_cost_enable = 1; - - dmem->second_level_batchbuffer_size = 228; - - i965_unmap_gpe_resource(&vdenc_context->brc_update_dmem_res[vdenc_context->current_pass]); -} - -static void -gen9_vdenc_init_mfx_avc_img_state(VADriverContextP ctx, - struct encode_state *encode_state, - struct intel_encoder_context *encoder_context, - struct gen9_mfx_avc_img_state *pstate) -{ - struct gen9_vdenc_context *vdenc_context = encoder_context->mfc_context; - VAEncSequenceParameterBufferH264 *seq_param = (VAEncSequenceParameterBufferH264 *)encode_state->seq_param_ext->buffer; - VAEncPictureParameterBufferH264 *pic_param = (VAEncPictureParameterBufferH264 *)encode_state->pic_param_ext->buffer; - - memset(pstate, 0, sizeof(*pstate)); - - pstate->dw0.value = (MFX_AVC_IMG_STATE | (sizeof(*pstate) / 4 - 2)); - - pstate->dw1.frame_size_in_mbs_minus1 = vdenc_context->frame_width_in_mbs * vdenc_context->frame_height_in_mbs - 1; - - pstate->dw2.frame_width_in_mbs_minus1 = vdenc_context->frame_width_in_mbs - 1; - pstate->dw2.frame_height_in_mbs_minus1 = vdenc_context->frame_height_in_mbs - 1; - - pstate->dw3.image_structure = 0; - pstate->dw3.weighted_bipred_idc = pic_param->pic_fields.bits.weighted_bipred_idc; - pstate->dw3.weighted_pred_flag = pic_param->pic_fields.bits.weighted_pred_flag; - pstate->dw3.brc_domain_rate_control_enable = 1; - pstate->dw3.chroma_qp_offset = pic_param->chroma_qp_index_offset; - pstate->dw3.second_chroma_qp_offset = pic_param->second_chroma_qp_index_offset; - - pstate->dw4.field_picture_flag = 0; - pstate->dw4.mbaff_mode_active = seq_param->seq_fields.bits.mb_adaptive_frame_field_flag; - pstate->dw4.frame_mb_only_flag = seq_param->seq_fields.bits.frame_mbs_only_flag; - pstate->dw4.transform_8x8_idct_mode_flag = vdenc_context->transform_8x8_mode_enable; - pstate->dw4.direct_8x8_interface_flag = seq_param->seq_fields.bits.direct_8x8_inference_flag; - pstate->dw4.constrained_intra_prediction_flag = pic_param->pic_fields.bits.constrained_intra_pred_flag; - pstate->dw4.entropy_coding_flag = pic_param->pic_fields.bits.entropy_coding_mode_flag; - pstate->dw4.mb_mv_format_flag = 1; - pstate->dw4.chroma_format_idc = seq_param->seq_fields.bits.chroma_format_idc; - pstate->dw4.mv_unpacked_flag = 1; - pstate->dw4.insert_test_flag = 0; - pstate->dw4.load_slice_pointer_flag = 0; - pstate->dw4.macroblock_stat_enable = 0; /* Always 0 in VDEnc mode */ - pstate->dw4.minimum_frame_size = 0; - - pstate->dw5.intra_mb_max_bit_flag = 1; - pstate->dw5.inter_mb_max_bit_flag = 1; - pstate->dw5.frame_size_over_flag = 1; - pstate->dw5.frame_size_under_flag = 1; - pstate->dw5.intra_mb_ipcm_flag = 1; - pstate->dw5.mb_rate_ctrl_flag = 0; /* Always 0 in VDEnc mode */ - pstate->dw5.non_first_pass_flag = 0; - pstate->dw5.aq_enable = pstate->dw5.aq_rounding = 0; - pstate->dw5.aq_chroma_disable = 1; - - pstate->dw6.intra_mb_max_size = 2700; - pstate->dw6.inter_mb_max_size = 4095; - - pstate->dw8.slice_delta_qp_max0 = 0; - pstate->dw8.slice_delta_qp_max1 = 0; - pstate->dw8.slice_delta_qp_max2 = 0; - pstate->dw8.slice_delta_qp_max3 = 0; - - pstate->dw9.slice_delta_qp_min0 = 0; - pstate->dw9.slice_delta_qp_min1 = 0; - pstate->dw9.slice_delta_qp_min2 = 0; - pstate->dw9.slice_delta_qp_min3 = 0; - - pstate->dw10.frame_bitrate_min = 0; - pstate->dw10.frame_bitrate_min_unit = 1; - pstate->dw10.frame_bitrate_min_unit_mode = 1; - pstate->dw10.frame_bitrate_max = (1 << 14) - 1; - pstate->dw10.frame_bitrate_max_unit = 1; - pstate->dw10.frame_bitrate_max_unit_mode = 1; - - pstate->dw11.frame_bitrate_min_delta = 0; - pstate->dw11.frame_bitrate_max_delta = 0; - - pstate->dw12.vad_error_logic = 1; - /* TODO: set paramters DW19/DW20 for slices */ -} - -static void -gen9_vdenc_init_vdenc_img_state(VADriverContextP ctx, - struct encode_state *encode_state, - struct intel_encoder_context *encoder_context, - struct gen9_vdenc_img_state *pstate, - int update_cost) -{ - struct gen9_vdenc_context *vdenc_context = encoder_context->mfc_context; - VAEncSequenceParameterBufferH264 *seq_param = (VAEncSequenceParameterBufferH264 *)encode_state->seq_param_ext->buffer; - VAEncPictureParameterBufferH264 *pic_param = (VAEncPictureParameterBufferH264 *)encode_state->pic_param_ext->buffer; - VAEncSliceParameterBufferH264 *slice_param = (VAEncSliceParameterBufferH264 *)encode_state->slice_params_ext[0]->buffer; - - memset(pstate, 0, sizeof(*pstate)); - - pstate->dw0.value = (VDENC_IMG_STATE | (sizeof(*pstate) / 4 - 2)); - - if (vdenc_context->frame_type == VDENC_FRAME_I) { - pstate->dw4.intra_sad_measure_adjustment = 2; - pstate->dw4.sub_macroblock_sub_partition_mask = 0x70; - - pstate->dw5.cre_prefetch_enable = 1; - - pstate->dw9.mode0_cost = 10; - pstate->dw9.mode1_cost = 0; - pstate->dw9.mode2_cost = 3; - pstate->dw9.mode3_cost = 30; - - pstate->dw20.penalty_for_intra_16x16_non_dc_prediction = 36; - pstate->dw20.penalty_for_intra_8x8_non_dc_prediction = 12; - pstate->dw20.penalty_for_intra_4x4_non_dc_prediction = 4; - - pstate->dw22.small_mb_size_in_word = 0xff; - pstate->dw22.large_mb_size_in_word = 0xff; - - pstate->dw27.max_hmv_r = 0x2000; - pstate->dw27.max_vmv_r = 0x200; - - pstate->dw33.qp_range_check_upper_bound = 0x33; - pstate->dw33.qp_range_check_lower_bound = 0x0a; - pstate->dw33.qp_range_check_value = 0x0f; - } else { - pstate->dw2.bidirectional_weight = 0x20; - - pstate->dw4.subpel_mode = 3; - pstate->dw4.bme_disable_for_fbr_message = 1; - pstate->dw4.inter_sad_measure_adjustment = 2; - pstate->dw4.intra_sad_measure_adjustment = 2; - pstate->dw4.sub_macroblock_sub_partition_mask = 0x70; - - pstate->dw5.cre_prefetch_enable = 1; - - pstate->dw8.non_skip_zero_mv_const_added = 1; - pstate->dw8.non_skip_mb_mode_const_added = 1; - pstate->dw8.ref_id_cost_mode_select = 1; - - pstate->dw9.mode0_cost = 7; - pstate->dw9.mode1_cost = 26; - pstate->dw9.mode2_cost = 30; - pstate->dw9.mode3_cost = 57; - - pstate->dw10.mode4_cost = 8; - pstate->dw10.mode5_cost = 2; - pstate->dw10.mode6_cost = 4; - pstate->dw10.mode7_cost = 6; - - pstate->dw11.mode8_cost = 5; - pstate->dw11.mode9_cost = 0; - pstate->dw11.ref_id_cost = 4; - pstate->dw11.chroma_intra_mode_cost = 0; - - pstate->dw12_13.mv_cost.dw0.mv0_cost = 0; - pstate->dw12_13.mv_cost.dw0.mv1_cost = 6; - pstate->dw12_13.mv_cost.dw0.mv2_cost = 6; - pstate->dw12_13.mv_cost.dw0.mv3_cost = 9; - pstate->dw12_13.mv_cost.dw1.mv4_cost = 10; - pstate->dw12_13.mv_cost.dw1.mv5_cost = 13; - pstate->dw12_13.mv_cost.dw1.mv6_cost = 14; - pstate->dw12_13.mv_cost.dw1.mv7_cost = 24; - - pstate->dw20.penalty_for_intra_16x16_non_dc_prediction = 36; - pstate->dw20.penalty_for_intra_8x8_non_dc_prediction = 12; - pstate->dw20.penalty_for_intra_4x4_non_dc_prediction = 4; - - pstate->dw22.small_mb_size_in_word = 0xff; - pstate->dw22.large_mb_size_in_word = 0xff; - - pstate->dw27.max_hmv_r = 0x2000; - pstate->dw27.max_vmv_r = 0x200; - - pstate->dw31.offset0_for_zone0_neg_zone1_boundary = 800; - - pstate->dw32.offset1_for_zone1_neg_zone2_boundary = 1600; - pstate->dw32.offset2_for_zone2_neg_zone3_boundary = 2400; - - pstate->dw33.qp_range_check_upper_bound = 0x33; - pstate->dw33.qp_range_check_lower_bound = 0x0a; - pstate->dw33.qp_range_check_value = 0x0f; - - pstate->dw34.midpoint_distortion = 0x640; - } - - /* ROI will be updated in HuC kernel for CBR/VBR */ - if (!vdenc_context->brc_enabled && vdenc_context->num_roi) { - pstate->dw34.roi_enable = 1; - - pstate->dw30.roi_qp_adjustment_for_zone1 = CLAMP(-8, 7, vdenc_context->roi[0].value); - - if (vdenc_context->num_roi > 1) - pstate->dw30.roi_qp_adjustment_for_zone2 = CLAMP(-8, 7, vdenc_context->roi[1].value); - - if (vdenc_context->num_roi > 2) - pstate->dw30.roi_qp_adjustment_for_zone3 = CLAMP(-8, 7, vdenc_context->roi[2].value); - } - - pstate->dw1.transform_8x8_flag = vdenc_context->transform_8x8_mode_enable; - - pstate->dw3.picture_width = vdenc_context->frame_width_in_mbs; - - pstate->dw4.forward_transform_skip_check_enable = 1; /* TODO: double-check it */ - - pstate->dw5.picture_height_minus1 = vdenc_context->frame_height_in_mbs - 1; - pstate->dw5.picture_type = vdenc_context->frame_type; - pstate->dw5.constrained_intra_prediction_flag = pic_param->pic_fields.bits.constrained_intra_pred_flag; - - if (vdenc_context->frame_type == VDENC_FRAME_P) { - pstate->dw5.hme_ref1_disable = vdenc_context->num_refs[0] == 1 ? 1 : 0; - } - - pstate->dw5.mb_slice_threshold_value = 0; - - pstate->dw6.slice_macroblock_height_minus1 = vdenc_context->frame_height_in_mbs - 1; /* single slice onlye */ - - if (pstate->dw1.transform_8x8_flag) - pstate->dw8.luma_intra_partition_mask = 0; - else - pstate->dw8.luma_intra_partition_mask = (1 << 1); /* disable transform_8x8 */ - - pstate->dw14.qp_prime_y = pic_param->pic_init_qp + slice_param->slice_qp_delta; /* TODO: check whether it is OK to use the first slice only */ - - if (update_cost) { - pstate->dw9.mode0_cost = vdenc_context->mode_cost[0]; - pstate->dw9.mode1_cost = vdenc_context->mode_cost[1]; - pstate->dw9.mode2_cost = vdenc_context->mode_cost[2]; - pstate->dw9.mode3_cost = vdenc_context->mode_cost[3]; - - pstate->dw10.mode4_cost = vdenc_context->mode_cost[4]; - pstate->dw10.mode5_cost = vdenc_context->mode_cost[5]; - pstate->dw10.mode6_cost = vdenc_context->mode_cost[6]; - pstate->dw10.mode7_cost = vdenc_context->mode_cost[7]; - - pstate->dw11.mode8_cost = vdenc_context->mode_cost[8]; - pstate->dw11.mode9_cost = vdenc_context->mode_cost[9]; - pstate->dw11.ref_id_cost = vdenc_context->mode_cost[10]; - pstate->dw11.chroma_intra_mode_cost = vdenc_context->mode_cost[11]; - - pstate->dw12_13.mv_cost.dw0.mv0_cost = vdenc_context->mv_cost[0]; - pstate->dw12_13.mv_cost.dw0.mv1_cost = vdenc_context->mv_cost[1]; - pstate->dw12_13.mv_cost.dw0.mv2_cost = vdenc_context->mv_cost[2]; - pstate->dw12_13.mv_cost.dw0.mv3_cost = vdenc_context->mv_cost[3]; - pstate->dw12_13.mv_cost.dw1.mv4_cost = vdenc_context->mv_cost[4]; - pstate->dw12_13.mv_cost.dw1.mv5_cost = vdenc_context->mv_cost[5]; - pstate->dw12_13.mv_cost.dw1.mv6_cost = vdenc_context->mv_cost[6]; - pstate->dw12_13.mv_cost.dw1.mv7_cost = vdenc_context->mv_cost[7]; - - pstate->dw28_29.hme_mv_cost.dw0.mv0_cost = vdenc_context->hme_mv_cost[0]; - pstate->dw28_29.hme_mv_cost.dw0.mv1_cost = vdenc_context->hme_mv_cost[1]; - pstate->dw28_29.hme_mv_cost.dw0.mv2_cost = vdenc_context->hme_mv_cost[2]; - pstate->dw28_29.hme_mv_cost.dw0.mv3_cost = vdenc_context->hme_mv_cost[3]; - pstate->dw28_29.hme_mv_cost.dw1.mv4_cost = vdenc_context->hme_mv_cost[4]; - pstate->dw28_29.hme_mv_cost.dw1.mv5_cost = vdenc_context->hme_mv_cost[5]; - pstate->dw28_29.hme_mv_cost.dw1.mv6_cost = vdenc_context->hme_mv_cost[6]; - pstate->dw28_29.hme_mv_cost.dw1.mv7_cost = vdenc_context->hme_mv_cost[7]; - } - - pstate->dw27.max_vmv_r = gen9_vdenc_get_max_vmv_range(seq_param->level_idc); - - pstate->dw34.image_state_qp_override = (vdenc_context->internal_rate_mode == I965_BRC_CQP) ? 1 : 0; - - /* TODO: check rolling I */ - - /* TODO: handle ROI */ - - /* TODO: check stream in support */ -} - -static void -gen9_vdenc_init_img_states(VADriverContextP ctx, - struct encode_state *encode_state, - struct intel_encoder_context *encoder_context) -{ - struct gen9_vdenc_context *vdenc_context = encoder_context->mfc_context; - struct gen9_mfx_avc_img_state *mfx_img_cmd; - struct gen9_vdenc_img_state *vdenc_img_cmd; - char *pbuffer; - - pbuffer = i965_map_gpe_resource(&vdenc_context->vdenc_avc_image_state_res); - - if (!pbuffer) - return; - - mfx_img_cmd = (struct gen9_mfx_avc_img_state *)pbuffer; - gen9_vdenc_init_mfx_avc_img_state(ctx, encode_state, encoder_context, mfx_img_cmd); - pbuffer += sizeof(*mfx_img_cmd); - - vdenc_img_cmd = (struct gen9_vdenc_img_state *)pbuffer; - gen9_vdenc_init_vdenc_img_state(ctx, encode_state, encoder_context, vdenc_img_cmd, 0); - pbuffer += sizeof(*vdenc_img_cmd); - - /* Add batch buffer end command */ - *((unsigned int *)pbuffer) = MI_BATCH_BUFFER_END; - - i965_unmap_gpe_resource(&vdenc_context->vdenc_avc_image_state_res); -} - -static void -gen9_vdenc_huc_brc_update_constant_data(VADriverContextP ctx, - struct encode_state *encode_state, - struct intel_encoder_context *encoder_context) -{ - struct gen9_vdenc_context *vdenc_context = encoder_context->mfc_context; - char *pbuffer; - - pbuffer = i965_map_gpe_resource(&vdenc_context->brc_constant_data_res); - - if (!pbuffer) - return; - - if (vdenc_context->internal_rate_mode == I965_BRC_VBR) { - memcpy(gen9_brc_update_constant_data.dist_qp_adj_tab_i, dist_qp_adj_tab_i_vbr, sizeof(dist_qp_adj_tab_i_vbr)); - memcpy(gen9_brc_update_constant_data.dist_qp_adj_tab_p, dist_qp_adj_tab_p_vbr, sizeof(dist_qp_adj_tab_p_vbr)); - memcpy(gen9_brc_update_constant_data.dist_qp_adj_tab_b, dist_qp_adj_tab_b_vbr, sizeof(dist_qp_adj_tab_b_vbr)); - memcpy(gen9_brc_update_constant_data.buf_rate_adj_tab_i, buf_rate_adj_tab_i_vbr, sizeof(buf_rate_adj_tab_i_vbr)); - memcpy(gen9_brc_update_constant_data.buf_rate_adj_tab_p, buf_rate_adj_tab_p_vbr, sizeof(buf_rate_adj_tab_p_vbr)); - memcpy(gen9_brc_update_constant_data.buf_rate_adj_tab_b, buf_rate_adj_tab_b_vbr, sizeof(buf_rate_adj_tab_b_vbr)); - } - - memcpy(pbuffer, &gen9_brc_update_constant_data, sizeof(gen9_brc_update_constant_data)); - - i965_unmap_gpe_resource(&vdenc_context->brc_constant_data_res); -} - -static void -gen9_vdenc_huc_brc_update(VADriverContextP ctx, - struct encode_state *encode_state, - struct intel_encoder_context *encoder_context) -{ - struct intel_batchbuffer *batch = encoder_context->base.batch; - struct gen9_vdenc_context *vdenc_context = encoder_context->mfc_context; - struct huc_pipe_mode_select_parameter pipe_mode_select_params; - struct huc_imem_state_parameter imem_state_params; - struct huc_dmem_state_parameter dmem_state_params; - struct huc_virtual_addr_parameter virtual_addr_params; - struct huc_ind_obj_base_addr_parameter ind_obj_base_addr_params; - struct huc_stream_object_parameter stream_object_params; - struct huc_start_parameter start_params; - struct vd_pipeline_flush_parameter pipeline_flush_params; - struct gpe_mi_store_register_mem_parameter mi_store_register_mem_params; - struct gpe_mi_store_data_imm_parameter mi_store_data_imm_params; - struct gpe_mi_flush_dw_parameter mi_flush_dw_params; - - memset(&mi_flush_dw_params, 0, sizeof(mi_flush_dw_params)); - mi_flush_dw_params.video_pipeline_cache_invalidate = 1; - gen9_gpe_mi_flush_dw(ctx, batch, &mi_flush_dw_params); - - if (!vdenc_context->brc_initted || vdenc_context->brc_need_reset) { - struct gpe_mi_conditional_batch_buffer_end_parameter mi_conditional_batch_buffer_end_params; - - memset(&mi_conditional_batch_buffer_end_params, 0, sizeof(mi_conditional_batch_buffer_end_params)); - mi_conditional_batch_buffer_end_params.bo = vdenc_context->huc_status2_res.bo; - gen9_gpe_mi_conditional_batch_buffer_end(ctx, batch, &mi_conditional_batch_buffer_end_params); - } - - gen9_vdenc_init_img_states(ctx, encode_state, encoder_context); - - memset(&imem_state_params, 0, sizeof(imem_state_params)); - imem_state_params.huc_firmware_descriptor = HUC_BRC_UPDATE; - gen9_vdenc_huc_imem_state(ctx, encoder_context, &imem_state_params); - - memset(&pipe_mode_select_params, 0, sizeof(pipe_mode_select_params)); - gen9_vdenc_huc_pipe_mode_select(ctx, encoder_context, &pipe_mode_select_params); - - gen9_vdenc_update_huc_update_dmem(ctx, encoder_context); - memset(&dmem_state_params, 0, sizeof(dmem_state_params)); - dmem_state_params.huc_data_source_res = &vdenc_context->brc_update_dmem_res[vdenc_context->current_pass]; - dmem_state_params.huc_data_destination_base_address = HUC_DMEM_DATA_OFFSET; - dmem_state_params.huc_data_length = ALIGN(sizeof(struct huc_brc_update_dmem), 64); - gen9_vdenc_huc_dmem_state(ctx, encoder_context, &dmem_state_params); - - gen9_vdenc_huc_brc_update_constant_data(ctx, encode_state, encoder_context); - memset(&virtual_addr_params, 0, sizeof(virtual_addr_params)); - virtual_addr_params.regions[0].huc_surface_res = &vdenc_context->brc_history_buffer_res; - virtual_addr_params.regions[0].is_target = 1; - virtual_addr_params.regions[1].huc_surface_res = &vdenc_context->vdenc_statistics_res; - virtual_addr_params.regions[2].huc_surface_res = &vdenc_context->pak_statistics_res; - virtual_addr_params.regions[3].huc_surface_res = &vdenc_context->vdenc_avc_image_state_res; - virtual_addr_params.regions[4].huc_surface_res = &vdenc_context->hme_detection_summary_buffer_res; - virtual_addr_params.regions[4].is_target = 1; - virtual_addr_params.regions[5].huc_surface_res = &vdenc_context->brc_constant_data_res; - virtual_addr_params.regions[6].huc_surface_res = &vdenc_context->second_level_batch_res; - virtual_addr_params.regions[6].is_target = 1; - gen9_vdenc_huc_virtual_addr_state(ctx, encoder_context, &virtual_addr_params); - - memset(&ind_obj_base_addr_params, 0, sizeof(ind_obj_base_addr_params)); - ind_obj_base_addr_params.huc_indirect_stream_in_object_res = &vdenc_context->huc_dummy_res; - ind_obj_base_addr_params.huc_indirect_stream_out_object_res = NULL; - gen9_vdenc_huc_ind_obj_base_addr_state(ctx, encoder_context, &ind_obj_base_addr_params); - - memset(&stream_object_params, 0, sizeof(stream_object_params)); - stream_object_params.indirect_stream_in_data_length = 1; - stream_object_params.indirect_stream_in_start_address = 0; - gen9_vdenc_huc_stream_object(ctx, encoder_context, &stream_object_params); - - gen9_vdenc_huc_store_huc_status2(ctx, encoder_context); - - memset(&start_params, 0, sizeof(start_params)); - start_params.last_stream_object = 1; - gen9_vdenc_huc_start(ctx, encoder_context, &start_params); - - memset(&pipeline_flush_params, 0, sizeof(pipeline_flush_params)); - pipeline_flush_params.hevc_pipeline_done = 1; - pipeline_flush_params.hevc_pipeline_command_flush = 1; - gen9_vdenc_vd_pipeline_flush(ctx, encoder_context, &pipeline_flush_params); - - memset(&mi_flush_dw_params, 0, sizeof(mi_flush_dw_params)); - mi_flush_dw_params.video_pipeline_cache_invalidate = 1; - gen9_gpe_mi_flush_dw(ctx, batch, &mi_flush_dw_params); - - /* Store HUC_STATUS */ - memset(&mi_store_register_mem_params, 0, sizeof(mi_store_register_mem_params)); - mi_store_register_mem_params.mmio_offset = VCS0_HUC_STATUS; - mi_store_register_mem_params.bo = vdenc_context->huc_status_res.bo; - gen9_gpe_mi_store_register_mem(ctx, batch, &mi_store_register_mem_params); - - /* Write HUC_STATUS mask (1 << 31) */ - memset(&mi_store_data_imm_params, 0, sizeof(mi_store_data_imm_params)); - mi_store_data_imm_params.bo = vdenc_context->huc_status_res.bo; - mi_store_data_imm_params.offset = 4; - mi_store_data_imm_params.dw0 = (1 << 31); - gen9_gpe_mi_store_data_imm(ctx, batch, &mi_store_data_imm_params); -} - -static void -gen9_vdenc_mfx_pipe_mode_select(VADriverContextP ctx, - struct encode_state *encode_state, - struct intel_encoder_context *encoder_context) -{ - struct gen9_vdenc_context *vdenc_context = encoder_context->mfc_context; - struct intel_batchbuffer *batch = encoder_context->base.batch; - - BEGIN_BCS_BATCH(batch, 5); - - OUT_BCS_BATCH(batch, MFX_PIPE_MODE_SELECT | (5 - 2)); - OUT_BCS_BATCH(batch, - (1 << 29) | - (MFX_LONG_MODE << 17) | /* Must be long format for encoder */ - (MFD_MODE_VLD << 15) | - (1 << 13) | /* VDEnc mode */ - ((!!vdenc_context->post_deblocking_output_res.bo) << 9) | /* Post Deblocking Output */ - ((!!vdenc_context->pre_deblocking_output_res.bo) << 8) | /* Pre Deblocking Output */ - (1 << 7) | /* Scaled surface enable */ - (1 << 6) | /* Frame statistics stream out enable, always '1' in VDEnc mode */ - (1 << 4) | /* encoding mode */ - (MFX_FORMAT_AVC << 0)); - OUT_BCS_BATCH(batch, 0); - OUT_BCS_BATCH(batch, 0); - OUT_BCS_BATCH(batch, 0); - - ADVANCE_BCS_BATCH(batch); -} - -static void -gen9_vdenc_mfx_surface_state(VADriverContextP ctx, - struct intel_encoder_context *encoder_context, - struct i965_gpe_resource *gpe_resource, - int id) -{ - struct intel_batchbuffer *batch = encoder_context->base.batch; - - BEGIN_BCS_BATCH(batch, 6); - - OUT_BCS_BATCH(batch, MFX_SURFACE_STATE | (6 - 2)); - OUT_BCS_BATCH(batch, id); - OUT_BCS_BATCH(batch, - ((gpe_resource->height - 1) << 18) | - ((gpe_resource->width - 1) << 4)); - OUT_BCS_BATCH(batch, - (MFX_SURFACE_PLANAR_420_8 << 28) | /* 420 planar YUV surface */ - (1 << 27) | /* must be 1 for interleave U/V, hardware requirement */ - ((gpe_resource->pitch - 1) << 3) | /* pitch */ - (0 << 2) | /* must be 0 for interleave U/V */ - (1 << 1) | /* must be tiled */ - (I965_TILEWALK_YMAJOR << 0)); /* tile walk, TILEWALK_YMAJOR */ - OUT_BCS_BATCH(batch, - (0 << 16) | /* must be 0 for interleave U/V */ - (gpe_resource->y_cb_offset)); /* y offset for U(cb) */ - OUT_BCS_BATCH(batch, - (0 << 16) | /* must be 0 for interleave U/V */ - (gpe_resource->y_cb_offset)); /* y offset for U(cb) */ - - ADVANCE_BCS_BATCH(batch); -} - -static void -gen9_vdenc_mfx_pipe_buf_addr_state(VADriverContextP ctx, struct intel_encoder_context *encoder_context) -{ - struct gen9_vdenc_context *vdenc_context = encoder_context->mfc_context; - struct intel_batchbuffer *batch = encoder_context->base.batch; - int i; - - BEGIN_BCS_BATCH(batch, 65); - - OUT_BCS_BATCH(batch, MFX_PIPE_BUF_ADDR_STATE | (65 - 2)); - - /* the DW1-3 is for pre_deblocking */ - OUT_BUFFER_3DW(batch, vdenc_context->pre_deblocking_output_res.bo, 1, 0, 0); - - /* the DW4-6 is for the post_deblocking */ - OUT_BUFFER_3DW(batch, vdenc_context->post_deblocking_output_res.bo, 1, 0, 0); - - /* the DW7-9 is for the uncompressed_picture */ - OUT_BUFFER_3DW(batch, vdenc_context->uncompressed_input_surface_res.bo, 0, 0, 0); - - /* the DW10-12 is for PAK information (write) */ - OUT_BUFFER_3DW(batch, vdenc_context->pak_statistics_res.bo, 1, 0, 0); - - /* the DW13-15 is for the intra_row_store_scratch */ - OUT_BUFFER_3DW(batch, vdenc_context->mfx_intra_row_store_scratch_res.bo, 1, 0, 0); - - /* the DW16-18 is for the deblocking filter */ - OUT_BUFFER_3DW(batch, vdenc_context->mfx_deblocking_filter_row_store_scratch_res.bo, 1, 0, 0); - - /* the DW 19-50 is for Reference pictures*/ - for (i = 0; i < ARRAY_ELEMS(vdenc_context->list_reference_res); i++) { - OUT_BUFFER_2DW(batch, vdenc_context->list_reference_res[i].bo, 0, 0); - } - - /* DW 51, reference picture attributes */ - OUT_BCS_BATCH(batch, 0); - - /* The DW 52-54 is for PAK information (read) */ - OUT_BUFFER_3DW(batch, vdenc_context->pak_statistics_res.bo, 0, 0, 0); - - /* the DW 55-57 is the ILDB buffer */ - OUT_BUFFER_3DW(batch, NULL, 0, 0, 0); - - /* the DW 58-60 is the second ILDB buffer */ - OUT_BUFFER_3DW(batch, NULL, 0, 0, 0); - - /* DW 61, memory compress enable & mode */ - OUT_BCS_BATCH(batch, 0); - - /* the DW 62-64 is the 4x Down Scaling surface */ - OUT_BUFFER_3DW(batch, vdenc_context->scaled_4x_recon_surface_res.bo, 0, 0, 0); - - ADVANCE_BCS_BATCH(batch); -} - -static void -gen9_vdenc_mfx_ind_obj_base_addr_state(VADriverContextP ctx, struct intel_encoder_context *encoder_context) -{ - struct gen9_vdenc_context *vdenc_context = encoder_context->mfc_context; - struct intel_batchbuffer *batch = encoder_context->base.batch; - - BEGIN_BCS_BATCH(batch, 26); - - OUT_BCS_BATCH(batch, MFX_IND_OBJ_BASE_ADDR_STATE | (26 - 2)); - /* The DW1-5 is for the MFX indirect bistream offset, ignore for VDEnc mode */ - OUT_BUFFER_3DW(batch, NULL, 0, 0, 0); - OUT_BUFFER_2DW(batch, NULL, 0, 0); - - /* the DW6-10 is for MFX Indirect MV Object Base Address, ignore for VDEnc mode */ - OUT_BUFFER_3DW(batch, NULL, 0, 0, 0); - OUT_BUFFER_2DW(batch, NULL, 0, 0); - - /* The DW11-15 is for MFX IT-COFF. Not used on encoder */ - OUT_BUFFER_3DW(batch, NULL, 0, 0, 0); - OUT_BUFFER_2DW(batch, NULL, 0, 0); - - /* The DW16-20 is for MFX indirect DBLK. Not used on encoder */ - OUT_BUFFER_3DW(batch, NULL, 0, 0, 0); - OUT_BUFFER_2DW(batch, NULL, 0, 0); - - /* The DW21-25 is for MFC Indirect PAK-BSE Object Base Address for Encoder - * Note: an offset is specified in MFX_AVC_SLICE_STATE - */ - OUT_BUFFER_3DW(batch, - vdenc_context->compressed_bitstream.res.bo, - 1, - 0, - 0); - OUT_BUFFER_2DW(batch, - vdenc_context->compressed_bitstream.res.bo, - 1, - vdenc_context->compressed_bitstream.end_offset); - - ADVANCE_BCS_BATCH(batch); -} - -static void -gen9_vdenc_mfx_bsp_buf_base_addr_state(VADriverContextP ctx, struct intel_encoder_context *encoder_context) -{ - struct gen9_vdenc_context *vdenc_context = encoder_context->mfc_context; - struct intel_batchbuffer *batch = encoder_context->base.batch; - - BEGIN_BCS_BATCH(batch, 10); - - OUT_BCS_BATCH(batch, MFX_BSP_BUF_BASE_ADDR_STATE | (10 - 2)); - - /* The DW1-3 is for bsd/mpc row store scratch buffer */ - OUT_BUFFER_3DW(batch, vdenc_context->mfx_bsd_mpc_row_store_scratch_res.bo, 1, 0, 0); - - /* The DW4-6 is for MPR Row Store Scratch Buffer Base Address, ignore for encoder */ - OUT_BUFFER_3DW(batch, NULL, 0, 0, 0); - - /* The DW7-9 is for Bitplane Read Buffer Base Address, ignore for encoder */ - OUT_BUFFER_3DW(batch, NULL, 0, 0, 0); - - ADVANCE_BCS_BATCH(batch); -} - -static void -gen9_vdenc_mfx_qm_state(VADriverContextP ctx, - int qm_type, - unsigned int *qm, - int qm_length, - struct intel_encoder_context *encoder_context) -{ - struct intel_batchbuffer *batch = encoder_context->base.batch; - unsigned int qm_buffer[16]; - - assert(qm_length <= 16); - assert(sizeof(*qm) == 4); - memcpy(qm_buffer, qm, qm_length * 4); - - BEGIN_BCS_BATCH(batch, 18); - OUT_BCS_BATCH(batch, MFX_QM_STATE | (18 - 2)); - OUT_BCS_BATCH(batch, qm_type << 0); - intel_batchbuffer_data(batch, qm_buffer, 16 * 4); - ADVANCE_BCS_BATCH(batch); -} - -static void -gen9_vdenc_mfx_avc_qm_state(VADriverContextP ctx, struct intel_encoder_context *encoder_context) -{ - /* TODO: add support for non flat matrix */ - unsigned int qm[16] = { - 0x10101010, 0x10101010, 0x10101010, 0x10101010, - 0x10101010, 0x10101010, 0x10101010, 0x10101010, - 0x10101010, 0x10101010, 0x10101010, 0x10101010, - 0x10101010, 0x10101010, 0x10101010, 0x10101010 - }; - - gen9_vdenc_mfx_qm_state(ctx, MFX_QM_AVC_4X4_INTRA_MATRIX, qm, 12, encoder_context); - gen9_vdenc_mfx_qm_state(ctx, MFX_QM_AVC_4X4_INTER_MATRIX, qm, 12, encoder_context); - gen9_vdenc_mfx_qm_state(ctx, MFX_QM_AVC_8x8_INTRA_MATRIX, qm, 16, encoder_context); - gen9_vdenc_mfx_qm_state(ctx, MFX_QM_AVC_8x8_INTER_MATRIX, qm, 16, encoder_context); -} - -static void -gen9_vdenc_mfx_fqm_state(VADriverContextP ctx, - int fqm_type, - unsigned int *fqm, - int fqm_length, - struct intel_encoder_context *encoder_context) -{ - struct intel_batchbuffer *batch = encoder_context->base.batch; - unsigned int fqm_buffer[32]; - - assert(fqm_length <= 32); - assert(sizeof(*fqm) == 4); - memcpy(fqm_buffer, fqm, fqm_length * 4); - - BEGIN_BCS_BATCH(batch, 34); - OUT_BCS_BATCH(batch, MFX_FQM_STATE | (34 - 2)); - OUT_BCS_BATCH(batch, fqm_type << 0); - intel_batchbuffer_data(batch, fqm_buffer, 32 * 4); - ADVANCE_BCS_BATCH(batch); -} - -static void -gen9_vdenc_mfx_avc_fqm_state(VADriverContextP ctx, struct intel_encoder_context *encoder_context) -{ - /* TODO: add support for non flat matrix */ - unsigned int qm[32] = { - 0x10001000, 0x10001000, 0x10001000, 0x10001000, - 0x10001000, 0x10001000, 0x10001000, 0x10001000, - 0x10001000, 0x10001000, 0x10001000, 0x10001000, - 0x10001000, 0x10001000, 0x10001000, 0x10001000, - 0x10001000, 0x10001000, 0x10001000, 0x10001000, - 0x10001000, 0x10001000, 0x10001000, 0x10001000, - 0x10001000, 0x10001000, 0x10001000, 0x10001000, - 0x10001000, 0x10001000, 0x10001000, 0x10001000 - }; - - gen9_vdenc_mfx_fqm_state(ctx, MFX_QM_AVC_4X4_INTRA_MATRIX, qm, 24, encoder_context); - gen9_vdenc_mfx_fqm_state(ctx, MFX_QM_AVC_4X4_INTER_MATRIX, qm, 24, encoder_context); - gen9_vdenc_mfx_fqm_state(ctx, MFX_QM_AVC_8x8_INTRA_MATRIX, qm, 32, encoder_context); - gen9_vdenc_mfx_fqm_state(ctx, MFX_QM_AVC_8x8_INTER_MATRIX, qm, 32, encoder_context); -} - -static void -gen9_vdenc_mfx_avc_img_state(VADriverContextP ctx, - struct encode_state *encode_state, - struct intel_encoder_context *encoder_context) -{ - struct intel_batchbuffer *batch = encoder_context->base.batch; - struct gen9_mfx_avc_img_state mfx_img_cmd; - - gen9_vdenc_init_mfx_avc_img_state(ctx, encode_state, encoder_context, &mfx_img_cmd); - - BEGIN_BCS_BATCH(batch, (sizeof(mfx_img_cmd) >> 2)); - intel_batchbuffer_data(batch, &mfx_img_cmd, sizeof(mfx_img_cmd)); - ADVANCE_BCS_BATCH(batch); -} - -static void -gen9_vdenc_vdenc_pipe_mode_select(VADriverContextP ctx, - struct encode_state *encode_state, - struct intel_encoder_context *encoder_context) -{ - struct gen9_vdenc_context *vdenc_context = encoder_context->mfc_context; - struct intel_batchbuffer *batch = encoder_context->base.batch; - - BEGIN_BCS_BATCH(batch, 2); - - OUT_BCS_BATCH(batch, VDENC_PIPE_MODE_SELECT | (2 - 2)); - OUT_BCS_BATCH(batch, - (vdenc_context->vdenc_streamin_enable << 9) | - (vdenc_context->vdenc_pak_threshold_check_enable << 8) | - (1 << 7) | /* Tlb prefetch enable */ - (1 << 5) | /* Frame Statistics Stream-Out Enable */ - (VDENC_CODEC_AVC << 0)); - - ADVANCE_BCS_BATCH(batch); -} - -static void -gen9_vdenc_vdenc_surface_state(VADriverContextP ctx, - struct intel_encoder_context *encoder_context, - struct i965_gpe_resource *gpe_resource, - int vdenc_surface_cmd) -{ - struct intel_batchbuffer *batch = encoder_context->base.batch; - - BEGIN_BCS_BATCH(batch, 6); - - OUT_BCS_BATCH(batch, vdenc_surface_cmd | (6 - 2)); - OUT_BCS_BATCH(batch, 0); - OUT_BCS_BATCH(batch, - ((gpe_resource->height - 1) << 18) | - ((gpe_resource->width - 1) << 4)); - OUT_BCS_BATCH(batch, - (VDENC_SURFACE_PLANAR_420_8 << 28) | /* 420 planar YUV surface only on SKL */ - (1 << 27) | /* must be 1 for interleave U/V, hardware requirement */ - ((gpe_resource->pitch - 1) << 3) | /* pitch */ - (0 << 2) | /* must be 0 for interleave U/V */ - (1 << 1) | /* must be tiled */ - (I965_TILEWALK_YMAJOR << 0)); /* tile walk, TILEWALK_YMAJOR */ - OUT_BCS_BATCH(batch, - (0 << 16) | /* must be 0 for interleave U/V */ - (gpe_resource->y_cb_offset)); /* y offset for U(cb) */ - OUT_BCS_BATCH(batch, - (0 << 16) | /* must be 0 for interleave U/V */ - (gpe_resource->y_cb_offset)); /* y offset for v(cr) */ - - ADVANCE_BCS_BATCH(batch); -} - -static void -gen9_vdenc_vdenc_src_surface_state(VADriverContextP ctx, - struct intel_encoder_context *encoder_context, - struct i965_gpe_resource *gpe_resource) -{ - gen9_vdenc_vdenc_surface_state(ctx, encoder_context, gpe_resource, VDENC_SRC_SURFACE_STATE); -} - -static void -gen9_vdenc_vdenc_ref_surface_state(VADriverContextP ctx, - struct intel_encoder_context *encoder_context, - struct i965_gpe_resource *gpe_resource) -{ - gen9_vdenc_vdenc_surface_state(ctx, encoder_context, gpe_resource, VDENC_REF_SURFACE_STATE); -} - -static void -gen9_vdenc_vdenc_ds_ref_surface_state(VADriverContextP ctx, - struct intel_encoder_context *encoder_context, - struct i965_gpe_resource *gpe_resource) -{ - gen9_vdenc_vdenc_surface_state(ctx, encoder_context, gpe_resource, VDENC_DS_REF_SURFACE_STATE); -} - -static void -gen9_vdenc_vdenc_pipe_buf_addr_state(VADriverContextP ctx, - struct encode_state *encode_state, - struct intel_encoder_context *encoder_context) -{ - struct gen9_vdenc_context *vdenc_context = encoder_context->mfc_context; - struct intel_batchbuffer *batch = encoder_context->base.batch; - - BEGIN_BCS_BATCH(batch, 37); - - OUT_BCS_BATCH(batch, VDENC_PIPE_BUF_ADDR_STATE | (37 - 2)); - - /* DW1-6 for DS FWD REF0/REF1 */ - OUT_BUFFER_3DW(batch, vdenc_context->list_scaled_4x_reference_res[vdenc_context->list_ref_idx[0][0]].bo, 0, 0, 0); - OUT_BUFFER_3DW(batch, vdenc_context->list_scaled_4x_reference_res[vdenc_context->list_ref_idx[0][1]].bo, 0, 0, 0); - - /* DW7-9 for DS BWD REF0, ignored on SKL */ - OUT_BUFFER_3DW(batch, NULL, 0, 0, 0); - - /* DW10-12 for uncompressed input data */ - OUT_BUFFER_3DW(batch, vdenc_context->uncompressed_input_surface_res.bo, 0, 0, 0); - - /* DW13-DW15 for streamin data */ - if (vdenc_context->vdenc_streamin_enable) - OUT_BUFFER_3DW(batch, vdenc_context->vdenc_streamin_res.bo, 0, 0, 0); - else - OUT_BUFFER_3DW(batch, NULL, 0, 0, 0); - - /* DW16-DW18 for row scratch buffer */ - OUT_BUFFER_3DW(batch, vdenc_context->vdenc_row_store_scratch_res.bo, 1, 0, 0); - - /* DW19-DW21, ignored on SKL */ - OUT_BUFFER_3DW(batch, NULL, 0, 0, 0); - - /* DW22-DW27 for FWD REF0/REF1 */ - OUT_BUFFER_3DW(batch, vdenc_context->list_reference_res[vdenc_context->list_ref_idx[0][0]].bo, 0, 0, 0); - OUT_BUFFER_3DW(batch, vdenc_context->list_reference_res[vdenc_context->list_ref_idx[0][1]].bo, 0, 0, 0); - - /* DW28-DW30 for FWD REF2, ignored on SKL */ - OUT_BUFFER_3DW(batch, NULL, 0, 0, 0); - - /* DW31-DW33 for BDW REF0, ignored on SKL */ - OUT_BUFFER_3DW(batch, NULL, 0, 0, 0); - - /* DW34-DW36 for VDEnc statistics streamout */ - OUT_BUFFER_3DW(batch, vdenc_context->vdenc_statistics_res.bo, 1, 0, 0); - - ADVANCE_BCS_BATCH(batch); -} - -static void -gen9_vdenc_vdenc_const_qpt_state(VADriverContextP ctx, - struct encode_state *encode_state, - struct intel_encoder_context *encoder_context) -{ - struct gen9_vdenc_context *vdenc_context = encoder_context->mfc_context; - struct intel_batchbuffer *batch = encoder_context->base.batch; - - BEGIN_BCS_BATCH(batch, 61); - - OUT_BCS_BATCH(batch, VDENC_CONST_QPT_STATE | (61 - 2)); - - if (vdenc_context->frame_type == VDENC_FRAME_I) { - /* DW1-DW11 */ - intel_batchbuffer_data(batch, vdenc_const_qp_lambda, sizeof(vdenc_const_qp_lambda)); - - /* DW12-DW25 */ - intel_batchbuffer_data(batch, vdenc_const_skip_threshold, sizeof(vdenc_const_skip_threshold)); - - /* DW26-DW39 */ - intel_batchbuffer_data(batch, vdenc_const_sic_forward_transform_coeff_threshold_0, sizeof(vdenc_const_sic_forward_transform_coeff_threshold_0)); - - /* DW40-DW46 */ - intel_batchbuffer_data(batch, vdenc_const_sic_forward_transform_coeff_threshold_1, sizeof(vdenc_const_sic_forward_transform_coeff_threshold_1)); - - /* DW47-DW53 */ - intel_batchbuffer_data(batch, vdenc_const_sic_forward_transform_coeff_threshold_2, sizeof(vdenc_const_sic_forward_transform_coeff_threshold_2)); - - /* DW54-DW60 */ - intel_batchbuffer_data(batch, vdenc_const_sic_forward_transform_coeff_threshold_3, sizeof(vdenc_const_sic_forward_transform_coeff_threshold_3)); - } else { - int i; - - for (i = 0; i < 28; i++) { - vdenc_const_skip_threshold_p[i] *= 3; - } - - /* DW1-DW11 */ - intel_batchbuffer_data(batch, vdenc_const_qp_lambda_p, sizeof(vdenc_const_qp_lambda_p)); - - /* DW12-DW25 */ - intel_batchbuffer_data(batch, vdenc_const_skip_threshold_p, sizeof(vdenc_const_skip_threshold_p)); - - /* DW26-DW39 */ - intel_batchbuffer_data(batch, vdenc_const_sic_forward_transform_coeff_threshold_0_p, sizeof(vdenc_const_sic_forward_transform_coeff_threshold_0_p)); - - /* DW40-DW46 */ - intel_batchbuffer_data(batch, vdenc_const_sic_forward_transform_coeff_threshold_1_p, sizeof(vdenc_const_sic_forward_transform_coeff_threshold_1_p)); - - /* DW47-DW53 */ - intel_batchbuffer_data(batch, vdenc_const_sic_forward_transform_coeff_threshold_2_p, sizeof(vdenc_const_sic_forward_transform_coeff_threshold_2_p)); - - /* DW54-DW60 */ - intel_batchbuffer_data(batch, vdenc_const_sic_forward_transform_coeff_threshold_3_p, sizeof(vdenc_const_sic_forward_transform_coeff_threshold_3_p)); - } - - ADVANCE_BCS_BATCH(batch); -} - -static void -gen9_vdenc_vdenc_walker_state(VADriverContextP ctx, - struct encode_state *encode_state, - struct intel_encoder_context *encoder_context) -{ - struct intel_batchbuffer *batch = encoder_context->base.batch; - - BEGIN_BCS_BATCH(batch, 2); - - OUT_BCS_BATCH(batch, VDENC_WALKER_STATE | (2 - 2)); - OUT_BCS_BATCH(batch, 0); /* All fields are set to 0 */ - - ADVANCE_BCS_BATCH(batch); -} - -static void -gen9_vdenc_vdenc_img_state(VADriverContextP ctx, - struct encode_state *encode_state, - struct intel_encoder_context *encoder_context) -{ - struct intel_batchbuffer *batch = encoder_context->base.batch; - struct gen9_vdenc_img_state vdenc_img_cmd; - - gen9_vdenc_init_vdenc_img_state(ctx, encode_state, encoder_context, &vdenc_img_cmd, 1); - - BEGIN_BCS_BATCH(batch, (sizeof(vdenc_img_cmd) >> 2)); - intel_batchbuffer_data(batch, &vdenc_img_cmd, sizeof(vdenc_img_cmd)); - ADVANCE_BCS_BATCH(batch); -} - -extern int -intel_avc_enc_slice_type_fixup(int slice_type); - -static void -gen9_vdenc_mfx_avc_insert_object(VADriverContextP ctx, - struct intel_encoder_context *encoder_context, - unsigned int *insert_data, int lenght_in_dws, int data_bits_in_last_dw, - int skip_emul_byte_count, int is_last_header, int is_end_of_slice, int emulation_flag, - int slice_header_indicator) -{ - struct intel_batchbuffer *batch = encoder_context->base.batch; - - if (data_bits_in_last_dw == 0) - data_bits_in_last_dw = 32; - - BEGIN_BCS_BATCH(batch, lenght_in_dws + 2); - - OUT_BCS_BATCH(batch, MFX_INSERT_OBJECT | (lenght_in_dws)); - OUT_BCS_BATCH(batch, - (0 << 16) | /* always start at offset 0 */ - (slice_header_indicator << 14) | - (data_bits_in_last_dw << 8) | - (skip_emul_byte_count << 4) | - (!!emulation_flag << 3) | - ((!!is_last_header) << 2) | - ((!!is_end_of_slice) << 1) | - (0 << 0)); /* TODO: check this flag */ - intel_batchbuffer_data(batch, insert_data, lenght_in_dws * 4); - - ADVANCE_BCS_BATCH(batch); -} - -static void -gen9_vdenc_mfx_avc_insert_slice_packed_data(VADriverContextP ctx, - struct encode_state *encode_state, - struct intel_encoder_context *encoder_context, - int slice_index) -{ - VAEncPackedHeaderParameterBuffer *param = NULL; - unsigned int length_in_bits; - unsigned int *header_data = NULL; - int count, i, start_index; - int slice_header_index; - - if (encode_state->slice_header_index[slice_index] == 0) - slice_header_index = -1; - else - slice_header_index = (encode_state->slice_header_index[slice_index] & SLICE_PACKED_DATA_INDEX_MASK); - - count = encode_state->slice_rawdata_count[slice_index]; - start_index = (encode_state->slice_rawdata_index[slice_index] & SLICE_PACKED_DATA_INDEX_MASK); - - for (i = 0; i < count; i++) { - unsigned int skip_emul_byte_cnt; - - header_data = (unsigned int *)encode_state->packed_header_data_ext[start_index + i]->buffer; - - param = (VAEncPackedHeaderParameterBuffer *)(encode_state->packed_header_params_ext[start_index + i]->buffer); - - /* skip the slice header packed data type as it is lastly inserted */ - if (param->type == VAEncPackedHeaderSlice) - continue; - - length_in_bits = param->bit_length; - - skip_emul_byte_cnt = intel_avc_find_skipemulcnt((unsigned char *)header_data, length_in_bits); - - /* as the slice header is still required, the last header flag is set to - * zero. - */ - gen9_vdenc_mfx_avc_insert_object(ctx, - encoder_context, - header_data, - ALIGN(length_in_bits, 32) >> 5, - length_in_bits & 0x1f, - skip_emul_byte_cnt, - 0, - 0, - !param->has_emulation_bytes, - 0); - } - - if (slice_header_index == -1) { - VAEncSequenceParameterBufferH264 *seq_param = (VAEncSequenceParameterBufferH264 *)encode_state->seq_param_ext->buffer; - VAEncPictureParameterBufferH264 *pic_param = (VAEncPictureParameterBufferH264 *)encode_state->pic_param_ext->buffer; - VAEncSliceParameterBufferH264 *slice_params = (VAEncSliceParameterBufferH264 *)encode_state->slice_params_ext[slice_index]->buffer; - unsigned char *slice_header = NULL; - int slice_header_length_in_bits = 0; - - /* No slice header data is passed. And the driver needs to generate it */ - /* For the Normal H264 */ - slice_header_length_in_bits = build_avc_slice_header(seq_param, - pic_param, - slice_params, - &slice_header); - gen9_vdenc_mfx_avc_insert_object(ctx, - encoder_context, - (unsigned int *)slice_header, - ALIGN(slice_header_length_in_bits, 32) >> 5, - slice_header_length_in_bits & 0x1f, - 5, /* first 5 bytes are start code + nal unit type */ - 1, 0, 1, - 1); - - free(slice_header); - } else { - unsigned int skip_emul_byte_cnt; - - header_data = (unsigned int *)encode_state->packed_header_data_ext[slice_header_index]->buffer; - - param = (VAEncPackedHeaderParameterBuffer *)(encode_state->packed_header_params_ext[slice_header_index]->buffer); - length_in_bits = param->bit_length; - - /* as the slice header is the last header data for one slice, - * the last header flag is set to one. - */ - skip_emul_byte_cnt = intel_avc_find_skipemulcnt((unsigned char *)header_data, length_in_bits); - - gen9_vdenc_mfx_avc_insert_object(ctx, - encoder_context, - header_data, - ALIGN(length_in_bits, 32) >> 5, - length_in_bits & 0x1f, - skip_emul_byte_cnt, - 1, - 0, - !param->has_emulation_bytes, - 1); - } - - return; -} - -static void -gen9_vdenc_mfx_avc_inset_headers(VADriverContextP ctx, - struct encode_state *encode_state, - struct intel_encoder_context *encoder_context, - VAEncSliceParameterBufferH264 *slice_param, - int slice_index) -{ - struct gen9_vdenc_context *vdenc_context = encoder_context->mfc_context; - int idx = va_enc_packed_type_to_idx(VAEncPackedHeaderH264_SPS); - unsigned int internal_rate_mode = vdenc_context->internal_rate_mode; - unsigned int skip_emul_byte_cnt; - - if (slice_index == 0) { - if (encode_state->packed_header_data[idx]) { - VAEncPackedHeaderParameterBuffer *param = NULL; - unsigned int *header_data = (unsigned int *)encode_state->packed_header_data[idx]->buffer; - unsigned int length_in_bits; - - assert(encode_state->packed_header_param[idx]); - param = (VAEncPackedHeaderParameterBuffer *)encode_state->packed_header_param[idx]->buffer; - length_in_bits = param->bit_length; - - skip_emul_byte_cnt = intel_avc_find_skipemulcnt((unsigned char *)header_data, length_in_bits); - gen9_vdenc_mfx_avc_insert_object(ctx, - encoder_context, - header_data, - ALIGN(length_in_bits, 32) >> 5, - length_in_bits & 0x1f, - skip_emul_byte_cnt, - 0, - 0, - !param->has_emulation_bytes, - 0); - } - - idx = va_enc_packed_type_to_idx(VAEncPackedHeaderH264_PPS); - - if (encode_state->packed_header_data[idx]) { - VAEncPackedHeaderParameterBuffer *param = NULL; - unsigned int *header_data = (unsigned int *)encode_state->packed_header_data[idx]->buffer; - unsigned int length_in_bits; - - assert(encode_state->packed_header_param[idx]); - param = (VAEncPackedHeaderParameterBuffer *)encode_state->packed_header_param[idx]->buffer; - length_in_bits = param->bit_length; - - skip_emul_byte_cnt = intel_avc_find_skipemulcnt((unsigned char *)header_data, length_in_bits); - - gen9_vdenc_mfx_avc_insert_object(ctx, - encoder_context, - header_data, - ALIGN(length_in_bits, 32) >> 5, - length_in_bits & 0x1f, - skip_emul_byte_cnt, - 0, - 0, - !param->has_emulation_bytes, - 0); - } - - idx = va_enc_packed_type_to_idx(VAEncPackedHeaderH264_SEI); - - if (encode_state->packed_header_data[idx]) { - VAEncPackedHeaderParameterBuffer *param = NULL; - unsigned int *header_data = (unsigned int *)encode_state->packed_header_data[idx]->buffer; - unsigned int length_in_bits; - - assert(encode_state->packed_header_param[idx]); - param = (VAEncPackedHeaderParameterBuffer *)encode_state->packed_header_param[idx]->buffer; - length_in_bits = param->bit_length; - - skip_emul_byte_cnt = intel_avc_find_skipemulcnt((unsigned char *)header_data, length_in_bits); - gen9_vdenc_mfx_avc_insert_object(ctx, - encoder_context, - header_data, - ALIGN(length_in_bits, 32) >> 5, - length_in_bits & 0x1f, - skip_emul_byte_cnt, - 0, - 0, - !param->has_emulation_bytes, - 0); - } else if (internal_rate_mode == I965_BRC_CBR) { - /* TODO: insert others */ - } - } - - gen9_vdenc_mfx_avc_insert_slice_packed_data(ctx, - encode_state, - encoder_context, - slice_index); -} - -static void -gen9_vdenc_mfx_avc_slice_state(VADriverContextP ctx, - struct encode_state *encode_state, - struct intel_encoder_context *encoder_context, - VAEncPictureParameterBufferH264 *pic_param, - VAEncSliceParameterBufferH264 *slice_param, - VAEncSliceParameterBufferH264 *next_slice_param) -{ - struct gen9_vdenc_context *vdenc_context = encoder_context->mfc_context; - struct intel_batchbuffer *batch = encoder_context->base.batch; - unsigned int luma_log2_weight_denom = slice_param->luma_log2_weight_denom; - unsigned int chroma_log2_weight_denom = slice_param->chroma_log2_weight_denom; - unsigned char correct[6], grow, shrink; - int slice_hor_pos, slice_ver_pos, next_slice_hor_pos, next_slice_ver_pos; - int max_qp_n, max_qp_p; - int i; - int weighted_pred_idc = 0; - int num_ref_l0 = 0, num_ref_l1 = 0; - int slice_type = intel_avc_enc_slice_type_fixup(slice_param->slice_type); - int slice_qp = pic_param->pic_init_qp + slice_param->slice_qp_delta; // TODO: fix for CBR&VBR */ - - slice_hor_pos = slice_param->macroblock_address % vdenc_context->frame_width_in_mbs; - slice_ver_pos = slice_param->macroblock_address / vdenc_context->frame_height_in_mbs; - - if (next_slice_param) { - next_slice_hor_pos = next_slice_param->macroblock_address % vdenc_context->frame_width_in_mbs; - next_slice_ver_pos = next_slice_param->macroblock_address / vdenc_context->frame_height_in_mbs; - } else { - next_slice_hor_pos = 0; - next_slice_ver_pos = vdenc_context->frame_height_in_mbs; - } - - if (slice_type == SLICE_TYPE_I) { - luma_log2_weight_denom = 0; - chroma_log2_weight_denom = 0; - } else if (slice_type == SLICE_TYPE_P) { - weighted_pred_idc = pic_param->pic_fields.bits.weighted_pred_flag; - num_ref_l0 = pic_param->num_ref_idx_l0_active_minus1 + 1; - - if (slice_param->num_ref_idx_active_override_flag) - num_ref_l0 = slice_param->num_ref_idx_l0_active_minus1 + 1; - } else if (slice_type == SLICE_TYPE_B) { - weighted_pred_idc = pic_param->pic_fields.bits.weighted_bipred_idc; - num_ref_l0 = pic_param->num_ref_idx_l0_active_minus1 + 1; - num_ref_l1 = pic_param->num_ref_idx_l1_active_minus1 + 1; - - if (slice_param->num_ref_idx_active_override_flag) { - num_ref_l0 = slice_param->num_ref_idx_l0_active_minus1 + 1; - num_ref_l1 = slice_param->num_ref_idx_l1_active_minus1 + 1; - } - - if (weighted_pred_idc == 2) { - /* 8.4.3 - Derivation process for prediction weights (8-279) */ - luma_log2_weight_denom = 5; - chroma_log2_weight_denom = 5; - } - } - - max_qp_n = 0; /* TODO: update it */ - max_qp_p = 0; /* TODO: update it */ - grow = 0; /* TODO: update it */ - shrink = 0; /* TODO: update it */ - - for (i = 0; i < 6; i++) - correct[i] = 0; /* TODO: update it */ - - BEGIN_BCS_BATCH(batch, 11); - - OUT_BCS_BATCH(batch, MFX_AVC_SLICE_STATE | (11 - 2) ); - OUT_BCS_BATCH(batch, slice_type); - OUT_BCS_BATCH(batch, - (num_ref_l0 << 16) | - (num_ref_l1 << 24) | - (chroma_log2_weight_denom << 8) | - (luma_log2_weight_denom << 0)); - OUT_BCS_BATCH(batch, - (weighted_pred_idc << 30) | - (slice_param->direct_spatial_mv_pred_flag << 29) | - (slice_param->disable_deblocking_filter_idc << 27) | - (slice_param->cabac_init_idc << 24) | - (slice_qp << 16) | - ((slice_param->slice_beta_offset_div2 & 0xf) << 8) | - ((slice_param->slice_alpha_c0_offset_div2 & 0xf) << 0)); - - OUT_BCS_BATCH(batch, - slice_ver_pos << 24 | - slice_hor_pos << 16 | - slice_param->macroblock_address); - OUT_BCS_BATCH(batch, - next_slice_ver_pos << 16 | - next_slice_hor_pos); - - OUT_BCS_BATCH(batch, - (0 << 31) | /* TODO: ignore it for VDENC ??? */ - (!slice_param->macroblock_address << 30) | /* ResetRateControlCounter */ - (2 << 28) | /* Loose Rate Control */ - (0 << 24) | /* RC Stable Tolerance */ - (0 << 23) | /* RC Panic Enable */ - (1 << 22) | /* CBP mode */ - (0 << 21) | /* MB Type Direct Conversion, 0: Enable, 1: Disable */ - (0 << 20) | /* MB Type Skip Conversion, 0: Enable, 1: Disable */ - (!next_slice_param << 19) | /* Is Last Slice */ - (0 << 18) | /* BitstreamOutputFlag Compressed BitStream Output Disable Flag 0:enable 1:disable */ - (1 << 17) | /* HeaderPresentFlag */ - (1 << 16) | /* SliceData PresentFlag */ - (0 << 15) | /* TailPresentFlag, TODO: check it on VDEnc */ - (1 << 13) | /* RBSP NAL TYPE */ - (1 << 12)); /* CabacZeroWordInsertionEnable */ - - OUT_BCS_BATCH(batch, vdenc_context->compressed_bitstream.start_offset); - - OUT_BCS_BATCH(batch, - (max_qp_n << 24) | /*Target QP - 24 is lowest QP*/ - (max_qp_p << 16) | /*Target QP + 20 is highest QP*/ - (shrink << 8) | - (grow << 0)); - OUT_BCS_BATCH(batch, - (1 << 31) | - (3 << 28) | - (1 << 27) | - (5 << 24) | - (correct[5] << 20) | - (correct[4] << 16) | - (correct[3] << 12) | - (correct[2] << 8) | - (correct[1] << 4) | - (correct[0] << 0)); - OUT_BCS_BATCH(batch, 0); - - ADVANCE_BCS_BATCH(batch); -} - -static uint8_t -gen9_vdenc_mfx_get_ref_idx_state(VAPictureH264 *va_pic, unsigned int frame_store_id) -{ - unsigned int is_long_term = - !!(va_pic->flags & VA_PICTURE_H264_LONG_TERM_REFERENCE); - unsigned int is_top_field = - !!(va_pic->flags & VA_PICTURE_H264_TOP_FIELD); - unsigned int is_bottom_field = - !!(va_pic->flags & VA_PICTURE_H264_BOTTOM_FIELD); - - return ((is_long_term << 6) | - ((is_top_field ^ is_bottom_field ^ 1) << 5) | - (frame_store_id << 1) | - ((is_top_field ^ 1) & is_bottom_field)); -} - -static void -gen9_vdenc_mfx_avc_ref_idx_state(VADriverContextP ctx, - struct encode_state *encode_state, - struct intel_encoder_context *encoder_context, - VAEncSliceParameterBufferH264 *slice_param) -{ - struct gen9_vdenc_context *vdenc_context = encoder_context->mfc_context; - struct intel_batchbuffer *batch = encoder_context->base.batch; - VAPictureH264 *ref_pic; - int i, slice_type, ref_idx_shift; - unsigned int fwd_ref_entry; - - fwd_ref_entry = 0x80808080; - slice_type = intel_avc_enc_slice_type_fixup(slice_param->slice_type); - - for (i = 0; i < MAX(vdenc_context->num_refs[0], 2); i++) { - ref_pic = &slice_param->RefPicList0[i]; - ref_idx_shift = vdenc_context->list_ref_idx[0][i] * 8; - - fwd_ref_entry &= ~(0xFF << ref_idx_shift); - fwd_ref_entry += (gen9_vdenc_mfx_get_ref_idx_state(ref_pic, vdenc_context->list_ref_idx[0][i]) << ref_idx_shift); - } - - if (slice_type == SLICE_TYPE_P) { - BEGIN_BCS_BATCH(batch, 10); - OUT_BCS_BATCH(batch, MFX_AVC_REF_IDX_STATE | 8); - OUT_BCS_BATCH(batch, 0); // L0 - OUT_BCS_BATCH(batch, fwd_ref_entry); - - for (i = 0; i < 7; i++) { - OUT_BCS_BATCH(batch, 0x80808080); - } - - ADVANCE_BCS_BATCH(batch); - } - - if (slice_type == SLICE_TYPE_B) { - /* VDEnc on SKL doesn't support BDW */ - assert(0); - } -} - -static void -gen9_vdenc_mfx_avc_weightoffset_state(VADriverContextP ctx, - struct encode_state *encode_state, - struct intel_encoder_context *encoder_context, - VAEncPictureParameterBufferH264 *pic_param, - VAEncSliceParameterBufferH264 *slice_param) -{ - struct intel_batchbuffer *batch = encoder_context->base.batch; - int i, slice_type; - short weightoffsets[32 * 6]; - - slice_type = intel_avc_enc_slice_type_fixup(slice_param->slice_type); - - if (slice_type == SLICE_TYPE_P && - pic_param->pic_fields.bits.weighted_pred_flag == 1) { - - for (i = 0; i < 32; i++) { - weightoffsets[i * 6 + 0] = slice_param->luma_weight_l0[i]; - weightoffsets[i * 6 + 1] = slice_param->luma_offset_l0[i]; - weightoffsets[i * 6 + 2] = slice_param->chroma_weight_l0[i][0]; - weightoffsets[i * 6 + 3] = slice_param->chroma_offset_l0[i][0]; - weightoffsets[i * 6 + 4] = slice_param->chroma_weight_l0[i][1]; - weightoffsets[i * 6 + 5] = slice_param->chroma_offset_l0[i][1]; - } - - BEGIN_BCS_BATCH(batch, 98); - OUT_BCS_BATCH(batch, MFX_AVC_WEIGHTOFFSET_STATE | (98 - 2)); - OUT_BCS_BATCH(batch, 0); - intel_batchbuffer_data(batch, weightoffsets, sizeof(weightoffsets)); - - ADVANCE_BCS_BATCH(batch); - } - - if (slice_type == SLICE_TYPE_B) { - /* VDEnc on SKL doesn't support BWD */ - assert(0); - } -} - -static void -gen9_vdenc_mfx_avc_single_slice(VADriverContextP ctx, - struct encode_state *encode_state, - struct intel_encoder_context *encoder_context, - VAEncSliceParameterBufferH264 *slice_param, - VAEncSliceParameterBufferH264 *next_slice_param, - int slice_index) -{ - VAEncPictureParameterBufferH264 *pic_param = (VAEncPictureParameterBufferH264 *)encode_state->pic_param_ext->buffer; - - gen9_vdenc_mfx_avc_ref_idx_state(ctx, encode_state, encoder_context, slice_param); - gen9_vdenc_mfx_avc_weightoffset_state(ctx, - encode_state, - encoder_context, - pic_param, - slice_param); - gen9_vdenc_mfx_avc_slice_state(ctx, - encode_state, - encoder_context, - pic_param, - slice_param, - next_slice_param); - gen9_vdenc_mfx_avc_inset_headers(ctx, - encode_state, - encoder_context, - slice_param, - slice_index); -} - -static void -gen9_vdenc_mfx_vdenc_avc_slices(VADriverContextP ctx, - struct encode_state *encode_state, - struct intel_encoder_context *encoder_context) -{ - struct intel_batchbuffer *batch = encoder_context->base.batch; - struct gpe_mi_flush_dw_parameter mi_flush_dw_params; - VAEncSliceParameterBufferH264 *slice_param, *next_slice_param, *next_slice_group_param; - int i, j; - int slice_index = 0; - int is_frame_level_vdenc = 1; /* TODO: check it for SKL */ - int has_tail = 0; /* TODO: check it later */ - - for (j = 0; j < encode_state->num_slice_params_ext; j++) { - slice_param = (VAEncSliceParameterBufferH264 *)encode_state->slice_params_ext[j]->buffer; - - if (j == encode_state->num_slice_params_ext - 1) - next_slice_group_param = NULL; - else - next_slice_group_param = (VAEncSliceParameterBufferH264 *)encode_state->slice_params_ext[j + 1]->buffer; - - for (i = 0; i < encode_state->slice_params_ext[j]->num_elements; i++) { - if (i < encode_state->slice_params_ext[j]->num_elements - 1) - next_slice_param = slice_param + 1; - else - next_slice_param = next_slice_group_param; - - gen9_vdenc_mfx_avc_single_slice(ctx, - encode_state, - encoder_context, - slice_param, - next_slice_param, - slice_index); - slice_param++; - slice_index++; - - if (is_frame_level_vdenc) - break; - else { - /* TODO: remove assert(0) and add other commands here */ - assert(0); - } - } - - if (is_frame_level_vdenc) - break; - } - - if (is_frame_level_vdenc) { - struct vd_pipeline_flush_parameter pipeline_flush_params; - - gen9_vdenc_vdenc_walker_state(ctx, encode_state, encoder_context); - - memset(&pipeline_flush_params, 0, sizeof(pipeline_flush_params)); - pipeline_flush_params.mfx_pipeline_done = !has_tail; - pipeline_flush_params.vdenc_pipeline_done = 1; - pipeline_flush_params.vdenc_pipeline_command_flush = 1; - pipeline_flush_params.vd_command_message_parser_done = 1; - gen9_vdenc_vd_pipeline_flush(ctx, encoder_context, &pipeline_flush_params); - } - - if (has_tail) { - /* TODO: insert a tail if required */ - } - - memset(&mi_flush_dw_params, 0, sizeof(mi_flush_dw_params)); - mi_flush_dw_params.video_pipeline_cache_invalidate = 1; - gen9_gpe_mi_flush_dw(ctx, batch, &mi_flush_dw_params); -} - -static void -gen9_vdenc_mfx_vdenc_pipeline(VADriverContextP ctx, - struct encode_state *encode_state, - struct intel_encoder_context *encoder_context) -{ - struct gen9_vdenc_context *vdenc_context = encoder_context->mfc_context; - struct intel_batchbuffer *batch = encoder_context->base.batch; - struct gpe_mi_batch_buffer_start_parameter mi_batch_buffer_start_params; - - if (vdenc_context->brc_enabled) { - struct gpe_mi_conditional_batch_buffer_end_parameter mi_conditional_batch_buffer_end_params; - - memset(&mi_conditional_batch_buffer_end_params, 0, sizeof(mi_conditional_batch_buffer_end_params)); - mi_conditional_batch_buffer_end_params.bo = vdenc_context->huc_status2_res.bo; - gen9_gpe_mi_conditional_batch_buffer_end(ctx, batch, &mi_conditional_batch_buffer_end_params); - } - - if (vdenc_context->current_pass) { - struct gpe_mi_conditional_batch_buffer_end_parameter mi_conditional_batch_buffer_end_params; - - memset(&mi_conditional_batch_buffer_end_params, 0, sizeof(mi_conditional_batch_buffer_end_params)); - mi_conditional_batch_buffer_end_params.bo = vdenc_context->huc_status_res.bo; - gen9_gpe_mi_conditional_batch_buffer_end(ctx, batch, &mi_conditional_batch_buffer_end_params); - } - - gen9_vdenc_mfx_pipe_mode_select(ctx, encode_state, encoder_context); - - gen9_vdenc_mfx_surface_state(ctx, encoder_context, &vdenc_context->recon_surface_res, 0); - gen9_vdenc_mfx_surface_state(ctx, encoder_context, &vdenc_context->uncompressed_input_surface_res, 4); - gen9_vdenc_mfx_surface_state(ctx, encoder_context, &vdenc_context->scaled_4x_recon_surface_res, 5); - - gen9_vdenc_mfx_pipe_buf_addr_state(ctx, encoder_context); - gen9_vdenc_mfx_ind_obj_base_addr_state(ctx, encoder_context); - gen9_vdenc_mfx_bsp_buf_base_addr_state(ctx, encoder_context); - - gen9_vdenc_vdenc_pipe_mode_select(ctx, encode_state, encoder_context); - gen9_vdenc_vdenc_src_surface_state(ctx, encoder_context, &vdenc_context->uncompressed_input_surface_res); - gen9_vdenc_vdenc_ref_surface_state(ctx, encoder_context, &vdenc_context->recon_surface_res); - gen9_vdenc_vdenc_ds_ref_surface_state(ctx, encoder_context, &vdenc_context->scaled_4x_recon_surface_res); - gen9_vdenc_vdenc_pipe_buf_addr_state(ctx, encode_state, encoder_context); - gen9_vdenc_vdenc_const_qpt_state(ctx, encode_state, encoder_context); - - if (!vdenc_context->brc_enabled) { - gen9_vdenc_mfx_avc_img_state(ctx, encode_state, encoder_context); - gen9_vdenc_vdenc_img_state(ctx, encode_state, encoder_context); - } else { - memset(&mi_batch_buffer_start_params, 0, sizeof(mi_batch_buffer_start_params)); - mi_batch_buffer_start_params.is_second_level = 1; /* Must be the second level batch buffer */ - mi_batch_buffer_start_params.bo = vdenc_context->second_level_batch_res.bo; - gen9_gpe_mi_batch_buffer_start(ctx, batch, &mi_batch_buffer_start_params); - } - - gen9_vdenc_mfx_avc_qm_state(ctx, encoder_context); - gen9_vdenc_mfx_avc_fqm_state(ctx, encoder_context); - - gen9_vdenc_mfx_vdenc_avc_slices(ctx, encode_state, encoder_context); -} - -static void -gen9_vdenc_context_brc_prepare(struct encode_state *encode_state, - struct intel_encoder_context *encoder_context) -{ - struct gen9_vdenc_context *vdenc_context = encoder_context->mfc_context; - unsigned int rate_control_mode = encoder_context->rate_control_mode; - - switch (rate_control_mode & 0x7f) { - case VA_RC_CBR: - vdenc_context->internal_rate_mode = I965_BRC_CBR; - break; - - case VA_RC_VBR: - vdenc_context->internal_rate_mode = I965_BRC_VBR; - break; - - case VA_RC_CQP: - default: - vdenc_context->internal_rate_mode = I965_BRC_CQP; - break; - } -} - -static void -gen9_vdenc_read_status(VADriverContextP ctx, struct intel_encoder_context *encoder_context) -{ - struct gen9_vdenc_context *vdenc_context = encoder_context->mfc_context; - struct intel_batchbuffer *batch = encoder_context->base.batch; - struct gpe_mi_store_register_mem_parameter mi_store_register_mem_params; - struct gpe_mi_flush_dw_parameter mi_flush_dw_params; - unsigned int base_offset = vdenc_context->status_bffuer.base_offset; - int i; - - memset(&mi_flush_dw_params, 0, sizeof(mi_flush_dw_params)); - gen9_gpe_mi_flush_dw(ctx, batch, &mi_flush_dw_params); - - memset(&mi_store_register_mem_params, 0, sizeof(mi_store_register_mem_params)); - mi_store_register_mem_params.mmio_offset = MFC_BITSTREAM_BYTECOUNT_FRAME_REG; /* TODO: fix it if VDBOX2 is used */ - mi_store_register_mem_params.bo = vdenc_context->status_bffuer.res.bo; - mi_store_register_mem_params.offset = base_offset + vdenc_context->status_bffuer.bytes_per_frame_offset; - gen9_gpe_mi_store_register_mem(ctx, batch, &mi_store_register_mem_params); - - /* Update DMEM buffer for BRC Update */ - for (i = 0; i < NUM_OF_BRC_PAK_PASSES; i++) { - mi_store_register_mem_params.mmio_offset = MFC_BITSTREAM_BYTECOUNT_FRAME_REG; /* TODO: fix it if VDBOX2 is used */ - mi_store_register_mem_params.bo = vdenc_context->brc_update_dmem_res[i].bo; - mi_store_register_mem_params.offset = 5 * sizeof(uint32_t); - gen9_gpe_mi_store_register_mem(ctx, batch, &mi_store_register_mem_params); - - mi_store_register_mem_params.mmio_offset = MFC_IMAGE_STATUS_CTRL_REG; /* TODO: fix it if VDBOX2 is used */ - mi_store_register_mem_params.bo = vdenc_context->brc_update_dmem_res[i].bo; - mi_store_register_mem_params.offset = 7 * sizeof(uint32_t); - gen9_gpe_mi_store_register_mem(ctx, batch, &mi_store_register_mem_params); - } -} - -static VAStatus -gen9_vdenc_avc_check_capability(VADriverContextP ctx, - struct encode_state *encode_state, - struct intel_encoder_context *encoder_context) -{ - VAEncSliceParameterBufferH264 *slice_param; - int i, j; - - for (j = 0; j < encode_state->num_slice_params_ext; j++) { - slice_param = (VAEncSliceParameterBufferH264 *)encode_state->slice_params_ext[j]->buffer; - - for (i = 0; i < encode_state->slice_params_ext[j]->num_elements; i++) { - if (slice_param->slice_type == SLICE_TYPE_B) - return VA_STATUS_ERROR_UNKNOWN; - - slice_param++; - } - } - - return VA_STATUS_SUCCESS; -} - -static VAStatus -gen9_vdenc_avc_encode_picture(VADriverContextP ctx, - VAProfile profile, - struct encode_state *encode_state, - struct intel_encoder_context *encoder_context) -{ - VAStatus va_status; - struct gen9_vdenc_context *vdenc_context = encoder_context->mfc_context; - struct intel_batchbuffer *batch = encoder_context->base.batch; - - va_status = gen9_vdenc_avc_check_capability(ctx, encode_state, encoder_context); - - if (va_status != VA_STATUS_SUCCESS) - return va_status; - - gen9_vdenc_avc_prepare(ctx, profile, encode_state, encoder_context); - - for (vdenc_context->current_pass = 0; vdenc_context->current_pass < vdenc_context->num_passes; vdenc_context->current_pass++) { - vdenc_context->is_first_pass = (vdenc_context->current_pass == 0); - vdenc_context->is_last_pass = (vdenc_context->current_pass == (vdenc_context->num_passes - 1)); - - intel_batchbuffer_start_atomic_bcs(batch, 0x1000); - intel_batchbuffer_emit_mi_flush(batch); - - if (vdenc_context->brc_enabled) { - if (!vdenc_context->brc_initted || vdenc_context->brc_need_reset) - gen9_vdenc_huc_brc_init_reset(ctx, encode_state, encoder_context); - - gen9_vdenc_huc_brc_update(ctx, encode_state, encoder_context); - intel_batchbuffer_emit_mi_flush(batch); - } - - gen9_vdenc_mfx_vdenc_pipeline(ctx, encode_state, encoder_context); - gen9_vdenc_read_status(ctx, encoder_context); - - intel_batchbuffer_end_atomic(batch); - intel_batchbuffer_flush(batch); - - vdenc_context->brc_initted = 1; - vdenc_context->brc_need_reset = 0; - } - - return VA_STATUS_SUCCESS; -} - -static VAStatus -gen9_vdenc_pipeline(VADriverContextP ctx, - VAProfile profile, - struct encode_state *encode_state, - struct intel_encoder_context *encoder_context) -{ - VAStatus vaStatus; - - switch (profile) { - case VAProfileH264ConstrainedBaseline: - case VAProfileH264Main: - case VAProfileH264High: - vaStatus = gen9_vdenc_avc_encode_picture(ctx, profile, encode_state, encoder_context); - break; - - default: - vaStatus = VA_STATUS_ERROR_UNSUPPORTED_PROFILE; - break; - } - - return vaStatus; -} - -static void -gen9_vdenc_free_resources(struct gen9_vdenc_context *vdenc_context) -{ - int i; - - i965_free_gpe_resource(&vdenc_context->brc_init_reset_dmem_res); - i965_free_gpe_resource(&vdenc_context->brc_history_buffer_res); - i965_free_gpe_resource(&vdenc_context->brc_stream_in_res); - i965_free_gpe_resource(&vdenc_context->brc_stream_out_res); - i965_free_gpe_resource(&vdenc_context->huc_dummy_res); - - for (i = 0; i < NUM_OF_BRC_PAK_PASSES; i++) - i965_free_gpe_resource(&vdenc_context->brc_update_dmem_res[i]); - - i965_free_gpe_resource(&vdenc_context->vdenc_statistics_res); - i965_free_gpe_resource(&vdenc_context->pak_statistics_res); - i965_free_gpe_resource(&vdenc_context->vdenc_avc_image_state_res); - i965_free_gpe_resource(&vdenc_context->hme_detection_summary_buffer_res); - i965_free_gpe_resource(&vdenc_context->brc_constant_data_res); - i965_free_gpe_resource(&vdenc_context->second_level_batch_res); - - i965_free_gpe_resource(&vdenc_context->huc_status_res); - i965_free_gpe_resource(&vdenc_context->huc_status2_res); - - i965_free_gpe_resource(&vdenc_context->recon_surface_res); - i965_free_gpe_resource(&vdenc_context->scaled_4x_recon_surface_res); - i965_free_gpe_resource(&vdenc_context->post_deblocking_output_res); - i965_free_gpe_resource(&vdenc_context->pre_deblocking_output_res); - - for (i = 0; i < ARRAY_ELEMS(vdenc_context->list_reference_res); i++) { - i965_free_gpe_resource(&vdenc_context->list_reference_res[i]); - i965_free_gpe_resource(&vdenc_context->list_scaled_4x_reference_res[i]); - } - - i965_free_gpe_resource(&vdenc_context->uncompressed_input_surface_res); - i965_free_gpe_resource(&vdenc_context->compressed_bitstream.res); - i965_free_gpe_resource(&vdenc_context->status_bffuer.res); - - i965_free_gpe_resource(&vdenc_context->mfx_intra_row_store_scratch_res); - i965_free_gpe_resource(&vdenc_context->mfx_deblocking_filter_row_store_scratch_res); - i965_free_gpe_resource(&vdenc_context->mfx_bsd_mpc_row_store_scratch_res); - i965_free_gpe_resource(&vdenc_context->vdenc_row_store_scratch_res); - - i965_free_gpe_resource(&vdenc_context->vdenc_streamin_res); -} - -static void -gen9_vdenc_context_destroy(void *context) -{ - struct gen9_vdenc_context *vdenc_context = context; - - gen9_vdenc_free_resources(vdenc_context); - - free(vdenc_context); -} - -static void -gen9_vdenc_allocate_resources(VADriverContextP ctx, - struct intel_encoder_context *encoder_context, - struct gen9_vdenc_context *vdenc_context) -{ - struct i965_driver_data *i965 = i965_driver_data(ctx); - int i; - - ALLOC_VDENC_BUFFER_RESOURCE(vdenc_context->brc_init_reset_dmem_res, - ALIGN(sizeof(struct huc_brc_init_dmem), 64), - "HuC Init&Reset DMEM buffer"); - - ALLOC_VDENC_BUFFER_RESOURCE(vdenc_context->brc_history_buffer_res, - ALIGN(HUC_BRC_HISTORY_BUFFER_SIZE, 0x1000), - "HuC History buffer"); - - ALLOC_VDENC_BUFFER_RESOURCE(vdenc_context->brc_stream_in_res, - ALIGN(HUC_BRC_STREAM_INOUT_BUFFER_SIZE, 0x1000), - "HuC Stream In buffer"); - - ALLOC_VDENC_BUFFER_RESOURCE(vdenc_context->brc_stream_out_res, - ALIGN(HUC_BRC_STREAM_INOUT_BUFFER_SIZE, 0x1000), - "HuC Stream Out buffer"); - - ALLOC_VDENC_BUFFER_RESOURCE(vdenc_context->huc_dummy_res, - 0x1000, - "HuC dummy buffer"); - - for (i = 0; i < NUM_OF_BRC_PAK_PASSES; i++) { - ALLOC_VDENC_BUFFER_RESOURCE(vdenc_context->brc_update_dmem_res[i], - ALIGN(sizeof(struct huc_brc_update_dmem), 64), - "HuC BRC Update buffer"); - i965_zero_gpe_resource(&vdenc_context->brc_update_dmem_res[i]); - } - - ALLOC_VDENC_BUFFER_RESOURCE(vdenc_context->vdenc_statistics_res, - ALIGN(VDENC_STATISTICS_SIZE, 0x1000), - "VDENC statistics buffer"); - - ALLOC_VDENC_BUFFER_RESOURCE(vdenc_context->pak_statistics_res, - ALIGN(PAK_STATISTICS_SIZE, 0x1000), - "PAK statistics buffer"); - - ALLOC_VDENC_BUFFER_RESOURCE(vdenc_context->vdenc_avc_image_state_res, - ALIGN(VDENC_AVC_IMAGE_STATE_SIZE, 0x1000), - "VDENC/AVC image state buffer"); - - ALLOC_VDENC_BUFFER_RESOURCE(vdenc_context->hme_detection_summary_buffer_res, - ALIGN(HME_DETECTION_SUMMARY_BUFFER_SIZE, 0x1000), - "HME summary buffer"); - - ALLOC_VDENC_BUFFER_RESOURCE(vdenc_context->brc_constant_data_res, - ALIGN(BRC_CONSTANT_DATA_SIZE, 0x1000), - "BRC constant buffer"); - - ALLOC_VDENC_BUFFER_RESOURCE(vdenc_context->second_level_batch_res, - ALIGN(VDENC_AVC_IMAGE_STATE_SIZE, 0x1000), - "Second level batch buffer"); - - ALLOC_VDENC_BUFFER_RESOURCE(vdenc_context->huc_status_res, - 0x1000, - "HuC Status buffer"); - - ALLOC_VDENC_BUFFER_RESOURCE(vdenc_context->huc_status2_res, - 0x1000, - "HuC Status buffer"); -} - -static VAStatus -gen9_vdenc_context_get_status(VADriverContextP ctx, - struct intel_encoder_context *encoder_context, - struct i965_coded_buffer_segment *coded_buffer_segment) -{ - struct gen9_vdenc_status *vdenc_status = (struct gen9_vdenc_status *)coded_buffer_segment->codec_private_data; - - coded_buffer_segment->base.size = vdenc_status->bytes_per_frame; - - return VA_STATUS_SUCCESS; -} - -Bool -gen9_vdenc_context_init(VADriverContextP ctx, struct intel_encoder_context *encoder_context) -{ - struct gen9_vdenc_context *vdenc_context = calloc(1, sizeof(struct gen9_vdenc_context)); - - if (!vdenc_context) - return False; - - vdenc_context->brc_initted = 0; - vdenc_context->brc_need_reset = 0; - vdenc_context->is_low_delay = 0; - vdenc_context->current_pass = 0; - vdenc_context->num_passes = 1; - vdenc_context->vdenc_streamin_enable = 0; - vdenc_context->vdenc_pak_threshold_check_enable = 0; - - gen9_vdenc_allocate_resources(ctx, encoder_context, vdenc_context); - - encoder_context->mfc_context = vdenc_context; - encoder_context->mfc_context_destroy = gen9_vdenc_context_destroy; - encoder_context->mfc_pipeline = gen9_vdenc_pipeline; - encoder_context->mfc_brc_prepare = gen9_vdenc_context_brc_prepare; - encoder_context->get_status = gen9_vdenc_context_get_status; - - return True; -} diff -Nru intel-vaapi-driver-1.7.1/src/gen9_vdenc.h intel-vaapi-driver-1.7.0/src/gen9_vdenc.h --- intel-vaapi-driver-1.7.1/src/gen9_vdenc.h 2016-06-16 00:57:46.000000000 +0000 +++ intel-vaapi-driver-1.7.0/src/gen9_vdenc.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,908 +0,0 @@ -/* - * Copyright © 2015 Intel Corporation - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the - * "Software"), to deal in the Software without restriction, including - * without limitation the rights to use, copy, modify, merge, publish, - * distribute, sub license, and/or sell copies of the Software, and to - * permit persons to whom the Software is furnished to do so, subject to - * the following conditions: - * - * The above copyright notice and this permission notice (including the - * next paragraph) shall be included in all copies or substantial portions - * of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. - * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR - * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, - * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE - * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * - * Authors: - * Xiang Haihao - * - */ - -#ifndef GEN9_VDENC_H -#define GEN9_VDENC_H - -#include -#include -#include - -#include "i965_gpe_utils.h" -#include "i965_encoder.h" - -struct encode_state; - -#define HUC_BRC_INIT_RESET 4 -#define HUC_BRC_UPDATE 5 - -#define HUC_DMEM_DATA_OFFSET 0x2000 - -#define NUM_OF_BRC_PAK_PASSES 2 - -#define HUC_BRC_HISTORY_BUFFER_SIZE 832 -#define HUC_BRC_STREAM_INOUT_BUFFER_SIZE 4096 -#define VDENC_STATISTICS_SIZE 128 -#define PAK_STATISTICS_SIZE 256 -#define VDENC_AVC_IMAGE_STATE_SIZE (sizeof(struct gen9_mfx_avc_img_state) + sizeof(struct gen9_vdenc_img_state) + 2 * sizeof(int)) -#define HME_DETECTION_SUMMARY_BUFFER_SIZE 256 -#define BRC_CONSTANT_DATA_SIZE 4096 -#define BRC_DEBUG_OUTPUT_SIZE 4096 - -#define HUC_STATUS_MMIO_OFFSET 0x0D000 - -#define SCALE_FACTOR_4X 4 - -#define VDENC_FRAME_I 0 -#define VDENC_FRAME_P 1 - -#define VDENC_LUTMODE_INTRA_NONPRED 0x00 -#define VDENC_LUTMODE_INTRA 0x01 -#define VDENC_LUTMODE_INTRA_16x16 0x01 -#define VDENC_LUTMODE_INTRA_8x8 0x02 -#define VDENC_LUTMODE_INTRA_4x4 0x03 -#define VDENC_LUTMODE_INTER_16x8 0x04 -#define VDENC_LUTMODE_INTER_8x16 0x04 -#define VDENC_LUTMODE_INTER_8X8Q 0x05 -#define VDENC_LUTMODE_INTER_8X4Q 0x06 -#define VDENC_LUTMODE_INTER_4X8Q 0x06 -#define VDENC_LUTMODE_INTER_16x8_FIELD 0x06 -#define VDENC_LUTMODE_INTER_4X4Q 0x07 -#define VDENC_LUTMODE_INTER_8x8_FIELD 0x07 -#define VDENC_LUTMODE_INTER 0x08 -#define VDENC_LUTMODE_INTER_16x16 0x08 -#define VDENC_LUTMODE_INTER_BWD 0x09 -#define VDENC_LUTMODE_REF_ID 0x0A -#define VDENC_LUTMODE_INTRA_CHROMA 0x0B - -#define WIDTH_IN_MACROBLOCKS(width) (ALIGN(width, 16) >> 4) -#define HEIGHT_IN_MACROBLOCKS(height) (ALIGN(height, 16) >> 4) - -struct gen9_mfx_avc_img_state -{ - union { - struct { - uint32_t dword_length:16; - uint32_t sub_opcode_b:5; - uint32_t sub_opcode_a:3; - uint32_t command_opcode:3; - uint32_t pipeline:2; - uint32_t command_type:3; - }; - - uint32_t value; - } dw0; - - struct { - uint32_t frame_size_in_mbs_minus1:16; - uint32_t pad0:16; - } dw1; - - struct { - uint32_t frame_width_in_mbs_minus1:8; - uint32_t pad0:8; - uint32_t frame_height_in_mbs_minus1:8; - uint32_t pad1:8; - } dw2; - - struct { - uint32_t pad0:8; - uint32_t image_structure:2; - uint32_t weighted_bipred_idc:2; - uint32_t weighted_pred_flag:1; - uint32_t brc_domain_rate_control_enable:1; - uint32_t pad1:2; - uint32_t chroma_qp_offset:5; - uint32_t pad2:3; - uint32_t second_chroma_qp_offset:5; - uint32_t pad3:3; - } dw3; - - struct { - uint32_t field_picture_flag:1; - uint32_t mbaff_mode_active:1; - uint32_t frame_mb_only_flag:1; - uint32_t transform_8x8_idct_mode_flag:1; - uint32_t direct_8x8_interface_flag:1; - uint32_t constrained_intra_prediction_flag:1; - uint32_t current_img_dispoable_flag:1; - uint32_t entropy_coding_flag:1; - uint32_t mb_mv_format_flag:1; - uint32_t pad0:1; - uint32_t chroma_format_idc:2; - uint32_t mv_unpacked_flag:1; - uint32_t insert_test_flag:1; - uint32_t load_slice_pointer_flag:1; - uint32_t macroblock_stat_enable:1; - uint32_t minimum_frame_size:16; - } dw4; - - struct { - uint32_t intra_mb_max_bit_flag:1; - uint32_t inter_mb_max_bit_flag:1; - uint32_t frame_size_over_flag:1; - uint32_t frame_size_under_flag:1; - uint32_t pad0:3; - uint32_t intra_mb_ipcm_flag:1; - uint32_t pad1:1; - uint32_t mb_rate_ctrl_flag:1; - uint32_t min_frame_size_units:2; - uint32_t inter_mb_zero_cbp_flag:1; - uint32_t pad2:3; - uint32_t non_first_pass_flag:1; - uint32_t pad3:10; - uint32_t aq_chroma_disable:1; - uint32_t aq_rounding:3; - uint32_t aq_enable:1; - } dw5; - - struct { - uint32_t intra_mb_max_size:12; - uint32_t pad0:4; - uint32_t inter_mb_max_size:12; - uint32_t pad1:4; - } dw6; - - struct { - uint32_t pad0; - } dw7; - - struct { - uint32_t slice_delta_qp_max0:8; - uint32_t slice_delta_qp_max1:8; - uint32_t slice_delta_qp_max2:8; - uint32_t slice_delta_qp_max3:8; - } dw8; - - struct { - uint32_t slice_delta_qp_min0:8; - uint32_t slice_delta_qp_min1:8; - uint32_t slice_delta_qp_min2:8; - uint32_t slice_delta_qp_min3:8; - } dw9; - - struct { - uint32_t frame_bitrate_min:14; - uint32_t frame_bitrate_min_unit_mode:1; - uint32_t frame_bitrate_min_unit:1; - uint32_t frame_bitrate_max:14; - uint32_t frame_bitrate_max_unit_mode:1; - uint32_t frame_bitrate_max_unit:1; - } dw10; - - struct { - uint32_t frame_bitrate_min_delta:15; - uint32_t pad0:1; - uint32_t frame_bitrate_max_delta:15; - uint32_t pad1:1; - } dw11; - - struct { - uint32_t pad0:18; - uint32_t vad_error_logic:1; - uint32_t pad1:13; - } dw12; - - struct { - uint32_t pic_qp_init_minus26:8; - uint32_t pic_num_ref_idx_l0_active_minus1:6; - uint32_t pad0:2; - uint32_t pic_num_ref_idx_l1_active_minus1:6; - uint32_t pad1:2; - uint32_t num_ref_frames:5; - uint32_t is_curr_pic_has_mmco5:1; - } dw13; - - struct { - uint32_t pic_order_present_flag:1; - uint32_t delta_pic_order_always_zero_flag:1; - uint32_t pic_order_cnt_type:2; - uint32_t pad0:4; - uint32_t slice_group_map_type:3; - uint32_t redundant_pic_cnt_present_flag:1; - uint32_t num_slice_groups_minus1:3; - uint32_t deblock_filter_ctrl_present_flag:1; - uint32_t log2_max_frame_num_minus4:8; - uint32_t log2_max_pic_order_cnt_lsb_minus4:8; - } dw14; - - struct { - uint32_t slice_group_change_rate:16; - uint32_t curr_pic_frame_num:16; - } dw15; - - struct { - uint32_t current_frame_view_id:10; - uint32_t pad0:2; - uint32_t max_view_idx_l0:4; - uint32_t pad1:2; - uint32_t max_view_idx_l1:4; - uint32_t pad2:9; - uint32_t inter_view_order_disable:1; - } dw16; - - struct { - uint32_t fqp:3; // Must be zero for SKL - uint32_t fqp_offset:3; // Must be zero for SKL - uint32_t pad0:2; - uint32_t ext_brc_dm_stat_en:1; // Must be zero for SKL - uint32_t pad1:7; - uint32_t brc_dm_avg_mb_qp:6; // Must be zero for SKL - uint32_t pad2:10; - } dw17; - - struct { - uint32_t brc_domain_target_frame_size; - } dw18; - - struct { - uint32_t threshold_size_in_bytes; - } dw19; - - struct { - uint32_t target_slice_size_in_bytes; - } dw20; -}; - -struct gen9_image_state_cost -{ - struct { - uint32_t mv0_cost:8; - uint32_t mv1_cost:8; - uint32_t mv2_cost:8; - uint32_t mv3_cost:8; - } dw0; - - struct { - uint32_t mv4_cost:8; - uint32_t mv5_cost:8; - uint32_t mv6_cost:8; - uint32_t mv7_cost:8; - } dw1; -}; - -struct gen9_vdenc_img_state -{ - union { - struct { - uint32_t dword_length:12; - uint32_t pad0:4; - uint32_t sub_opcode_b:5; - uint32_t sub_opcode_a:2; - uint32_t command_opcode:4; - uint32_t pipeline:2; - uint32_t command_type:3; - }; - - uint32_t value; - } dw0; - - struct { - uint32_t pad0:2; - uint32_t bidirectional_mix_disable:1; - uint32_t pad1:1; - uint32_t time_budget_overflow_check:1; - uint32_t pad2:2; - uint32_t transform_8x8_flag:1; - uint32_t vdenc_l1_cache_priority:2; - uint32_t pad3:22; - } dw1; - - struct { - uint32_t pad0:16; - uint32_t bidirectional_weight:6; - uint32_t pad1:6; - uint32_t unidirection_mix_disable:1; - uint32_t pad2:3; - } dw2; - - struct { - uint32_t pad0:16; - uint32_t picture_width:16; - } dw3; - - struct { - uint32_t pad0:12; - uint32_t subpel_mode:2; - uint32_t pad1:3; - uint32_t forward_transform_skip_check_enable:1; - uint32_t bme_disable_for_fbr_message:1; - uint32_t block_based_skip_enabled:1; - uint32_t inter_sad_measure_adjustment:2; - uint32_t intra_sad_measure_adjustment:2; - uint32_t sub_macroblock_sub_partition_mask:7; - uint32_t block_based_skip_type:1; - } dw4; - - struct { - uint32_t picture_height_minus1:16; - uint32_t cre_prefetch_enable:1; - uint32_t hme_ref1_disable:1; - uint32_t mb_slice_threshold_value:4; - uint32_t pad0:4; - uint32_t constrained_intra_prediction_flag:1; - uint32_t pad1:2; - uint32_t picture_type:2; - uint32_t pad2:1; - } dw5; - - struct { - uint32_t slice_macroblock_height_minus1:16; - uint32_t pad0:16; - } dw6; - - struct { - uint32_t pad0; - } dw7; - - struct { - uint32_t luma_intra_partition_mask:5; - uint32_t non_skip_zero_mv_const_added:1; - uint32_t non_skip_mb_mode_const_added:1; - uint32_t pad0:9; - uint32_t mv_cost_scaling_factor:2; - uint32_t bilinear_filter_enable:1; - uint32_t pad1:3; - uint32_t ref_id_cost_mode_select:1; - uint32_t pad2:9; - } dw8; - - struct { - uint32_t mode0_cost:8; - uint32_t mode1_cost:8; - uint32_t mode2_cost:8; - uint32_t mode3_cost:8; - } dw9; - - struct { - uint32_t mode4_cost:8; - uint32_t mode5_cost:8; - uint32_t mode6_cost:8; - uint32_t mode7_cost:8; - } dw10; - - struct { - uint32_t mode8_cost:8; - uint32_t mode9_cost:8; - uint32_t ref_id_cost:8; - uint32_t chroma_intra_mode_cost:8; - } dw11; - - struct { - struct gen9_image_state_cost mv_cost; - } dw12_13; - - struct { - uint32_t qp_prime_y:8; - uint32_t pad0:16; - uint32_t target_size_in_word:8; - } dw14; - - struct { - uint32_t pad0; - } dw15; - - struct { - uint32_t pad0; - } dw16; - - struct { - uint32_t avc_intra_4x4_mode_mask:9; - uint32_t pad0:7; - uint32_t avc_intra_8x8_mode_mask:9; - uint32_t pad1:7; - } dw17; - - struct { - uint32_t avc_intra_16x16_mode_mask:4; - uint32_t avc_intra_chroma_mode_mask:4; - uint32_t intra_compute_type_intra_compute_type:2; - uint32_t pad0:22; - } dw18; - - struct { - uint32_t pad0; - } dw19; - - struct { - uint32_t penalty_for_intra_16x16_non_dc_prediction:8; - uint32_t penalty_for_intra_8x8_non_dc_prediction:8; - uint32_t penalty_for_intra_4x4_non_dc_prediction:8; - uint32_t pad0:8; - } dw20; - - struct { - uint32_t pad0; - } dw21; - - struct { - uint32_t panic_mode_mb_threadhold:16; - uint32_t small_mb_size_in_word:8; - uint32_t large_mb_size_in_word:8; - } dw22; - - struct { - uint32_t l0_number_of_reference_minus1:8; - uint32_t pad0:8; - uint32_t l1_number_of_reference_minus1:8; - uint32_t pad1:8; - } dw23; - - struct { - uint32_t pad0; - } dw24; - - struct { - uint32_t pad0; - } dw25; - - struct { - uint32_t pad0:8; - uint32_t hme_ref_windows_combining_threshold:8; - uint32_t pad1:16; - } dw26; - - struct { - uint32_t max_hmv_r:16; - uint32_t max_vmv_r:16; - } dw27; - - struct { - struct gen9_image_state_cost hme_mv_cost; - } dw28_29; - - struct { - uint32_t roi_qp_adjustment_for_zone0:4; - uint32_t roi_qp_adjustment_for_zone1:4; - uint32_t roi_qp_adjustment_for_zone2:4; - uint32_t roi_qp_adjustment_for_zone3:4; - uint32_t qp_adjustment_for_shape_best_intra_4x4_winner:4; - uint32_t qp_adjustment_for_shape_best_intra_8x8_winner:4; - uint32_t qp_adjustment_for_shape_best_intra_16x16_winner:4; - uint32_t pad0:4; - } dw30; - - struct { - uint32_t best_distortion_qp_adjustment_for_zone0:4; - uint32_t best_distortion_qp_adjustment_for_zone1:4; - uint32_t best_distortion_qp_adjustment_for_zone2:4; - uint32_t best_distortion_qp_adjustment_for_zone3:4; - uint32_t offset0_for_zone0_neg_zone1_boundary:16; - } dw31; - - struct { - uint32_t offset1_for_zone1_neg_zone2_boundary:16; - uint32_t offset2_for_zone2_neg_zone3_boundary:16; - } dw32; - - struct { - uint32_t qp_range_check_upper_bound:8; - uint32_t qp_range_check_lower_bound:8; - uint32_t pad0:8; - uint32_t qp_range_check_value:4; - uint32_t pad1:4; - } dw33; - - struct { - uint32_t roi_enable:1; - uint32_t fwd_predictor0_mv_enable:1; - uint32_t bdw_predictor1_mv_enable:1; - uint32_t mb_level_qp_enable:1; - uint32_t target_size_in_words_mb_max_size_in_words_mb_enable:1; - uint32_t pad0:3; - uint32_t ppmv_disable:1; - uint32_t coefficient_clamp_enable:1; - uint32_t long_term_reference_frame_bwd_ref0_indicator:1; - uint32_t long_term_reference_frame_fwd_ref2_indicator:1; - uint32_t long_term_reference_frame_fwd_ref1_indicator:1; - uint32_t long_term_reference_frame_fwd_ref0_indicator:1; - uint32_t image_state_qp_override:1; - uint32_t pad1:1; - uint32_t midpoint_distortion:16; - } dw34; -}; - -struct gen9_vdenc_streamin_state -{ - struct { - uint32_t roi_selection:8; - uint32_t force_intra:1; - uint32_t force_skip:1; - uint32_t pad0:22; - } dw0; - - struct { - uint32_t qp_prime_y:8; - uint32_t target_size_in_word:8; - uint32_t max_size_in_word:8; - uint32_t pad0:8; - } dw1; - - struct { - uint32_t fwd_predictor_x:16; - uint32_t fwd_predictor_y:16; - } dw2; - - struct { - uint32_t bwd_predictore_x:16; - uint32_t bwd_predictore_y:16; - } dw3; - - struct { - uint32_t fwd_ref_id0:4; - uint32_t bdw_ref_id0:4; - uint32_t pad0:24; - } dw4; - - struct { - uint32_t pad0[11]; - } dw5_15; -}; - -struct huc_brc_update_constant_data -{ - uint8_t global_rate_qp_adj_tab_i[64]; - uint8_t global_rate_qp_adj_tab_p[64]; - uint8_t global_rate_qp_adj_tab_b[64]; - uint8_t dist_threshld_i[10]; - uint8_t dist_threshld_p[10]; - uint8_t dist_threshld_b[10]; - uint8_t dist_qp_adj_tab_i[81]; - uint8_t dist_qp_adj_tab_p[81]; - uint8_t dist_qp_adj_tab_b[81]; - int8_t buf_rate_adj_tab_i[72]; - int8_t buf_rate_adj_tab_p[72]; - int8_t buf_rate_adj_tab_b[72]; - uint8_t frame_size_min_tab_p[9]; - uint8_t frame_size_min_tab_b[9]; - uint8_t frame_size_min_tab_i[9]; - uint8_t frame_size_max_tab_p[9]; - uint8_t frame_size_max_tab_b[9]; - uint8_t frame_size_max_tab_i[9]; - uint8_t frame_size_scg_tab_p[9]; - uint8_t frame_size_scg_tab_b[9]; - uint8_t frame_size_scg_tab_i[9]; - /* cost table 14*42 = 588 bytes */ - uint8_t i_intra_non_pred[42]; - uint8_t i_intra_16x16[42]; - uint8_t i_intra_8x8[42]; - uint8_t i_intra_4x4[42]; - uint8_t i_intra_chroma[42]; - uint8_t p_intra_non_pred[42]; - uint8_t p_intra_16x16[42]; - uint8_t p_intra_8x8[42]; - uint8_t p_intra_4x4[42]; - uint8_t p_intra_chroma[42]; - uint8_t p_inter_16x8[42]; - uint8_t p_inter_8x8[42]; - uint8_t p_inter_16x16[42]; - uint8_t p_ref_id[42]; - uint8_t hme_mv_cost[8][42]; - uint8_t pad0[42]; -}; - -struct huc_brc_init_dmem -{ - uint8_t brc_func; // 0: Init; 2: Reset - uint8_t os_enabled; // Always 1 - uint8_t pad0[2]; - uint16_t brc_flag; // ICQ or CQP with slice size control: 0x00 CBR: 0x10; VBR: 0x20; VCM: 0x40; LOWDELAY: 0x80. - uint16_t pad1; - uint16_t frame_width; // Luma width in bytes - uint16_t frame_height; // Luma height in bytes - uint32_t target_bitrate; // target bitrate, set by application - uint32_t min_rate; // 0 - uint32_t max_rate; // Maximum bit rate in bits per second (bps). - uint32_t buffer_size; // buffer size in bits - uint32_t init_buffer_fullness; // initial buffer fullness in bits - uint32_t profile_level_max_frame; // user defined. refer to AVC BRC HLD for conformance check and correction - uint32_t frame_rate_m; // FrameRateM is the number of frames in FrameRateD - uint32_t frame_rate_d; // If driver gets this FrameRateD from VUI, it is the num_units_in_tick field (32 bits UINT). - uint16_t num_p_in_gop; // number of P frames in a GOP - uint16_t num_b_in_gop; // number of B frames in a GOP - uint16_t min_qp; // 10 - uint16_t max_qp; // 51 - int8_t dev_thresh_pb0[8]; // lowdelay ? (-45, -33, -23, -15, -8, 0, 15, 25) : (-46, -38, -30, -23, 23, 30, 40, 46) - int8_t dev_thresh_vbr0[8]; // lowdelay ? (-45, -35, -25, -15, -8, 0, 20, 40) : (-46, -40, -32, -23, 56, 64, 83, 93) - int8_t dev_thresh_i0[8]; // lowdelay ? (-40, -30, -17, -10, -5, 0, 10, 20) : (-43, -36, -25, -18, 18, 28, 38, 46) - uint8_t init_qp_ip; // Initial QP for I and P - - uint8_t pad2; // Reserved - uint8_t init_qp_b; // Initial QP for B - uint8_t mb_qp_ctrl; // Enable MB level QP control (global) - uint8_t slice_size_ctrl_en; // Enable slice size control - int8_t intra_qp_delta[3]; // set to zero for all by default - int8_t skip_qp_delta; // Reserved - int8_t dist_qp_delta[4]; // lowdelay ? (-5, -2, 2, 5) : (0, 0, 0, 0) - uint8_t oscillation_qp_delta; // BRCFLAG_ISVCM ? 16 : 0 - uint8_t first_iframe_no_hrd_check; // BRCFLAG_ISVCM ? 1 : 0 - uint8_t skip_frame_enable_flag; - uint8_t top_qp_delta_thr_for_2nd_pass; // =1. QP Delta threshold for second pass. - uint8_t top_frame_size_threshold_for_2nd_pass; // lowdelay ? 10 : 50. Top frame size threshold for second pass - uint8_t bottom_frame_size_threshold_for_2nd_pass; // lowdelay ? 10 : 200. Bottom frame size threshold for second pass - uint8_t qp_select_for_first_pass; // lowdelay ? 0 : 1. =0 to use previous frame final QP; or =1 to use (targetQP + previousQP) / 2. - uint8_t mb_header_compensation; // Reserved - uint8_t over_shoot_carry_flag; // set to zero by default - uint8_t over_shoot_skip_frame_pct; // set to zero by default - uint8_t estrate_thresh_p0[7]; // 4, 8, 12, 16, 20, 24, 28 - uint8_t estrate_thresh_b0[7]; // 4, 8, 12, 16, 20, 24, 28 - uint8_t estrate_thresh_i0[7]; // 4, 8, 12, 16, 20, 24, 28 - uint8_t fqp_enable; // ExtendedBrcDomainEn - uint8_t scenario_info; // 0: UNKNOWN, 1: DISPLAYREMOTING, 2: VIDEOCONFERENCE, 3: ARCHIVE, 4: LIVESTREAMING. - uint8_t static_Region_streamin; // should be programmed from par file - uint8_t delta_qp_adaptation; // =1, - uint8_t max_crf_quality_factor; // =52, - uint8_t crf_quality_factor; // =25, - uint8_t bottom_qp_delta_thr_for_2nd_pass;// =1. QP Delta threshold for second pass. - uint8_t sliding_window_size; // =30, the window size (in frames) used to compute bit rate - uint8_t sliding_widow_rc_enable; // =0, sliding window based rate control (SWRC) disabled, 1: enabled - uint8_t sliding_window_max_rate_ratio; // =120, ratio between the max rate within the window and average target bitrate - uint8_t low_delay_golden_frame_boost; // only for lowdelay mode, 0 (default): no boost for I and scene change frames, 1: boost - uint8_t pad3[61]; // Must be zero -}; - -struct huc_brc_update_dmem -{ - uint8_t brc_func; // =1 for Update, other values are reserved for future use - uint8_t pad0[3]; - uint32_t target_size; // refer to AVC BRC HLD for calculation - uint32_t frame_number; // frame number - uint32_t peak_tx_bits_per_frame; // current global target bits - previous global target bits (global target bits += input bits per frame) - uint32_t frame_budget; // target time counter - uint32_t frame_byte_count; // PAK output via MMIO - uint32_t timing_budget_overflow; // PAK output via MMIO - uint32_t slice_size_violation; // PAK output via MMIO - uint32_t ipcm_non_conformant; // PAK output via MMIO - - uint16_t start_global_adjust_frame[4]; // 10, 50, 100, 150 - uint16_t mb_budget[52]; // MB bugdet for QP 0 - 51. - uint16_t target_slice_size; // target slice size - uint16_t slcsz_thr_deltai[42]; // slice size threshold delta for I frame - uint16_t slcsz_thr_deltap[42]; // slice size threshold delta for P frame - uint16_t num_of_frames_skipped; // Recording how many frames have been skipped. - uint16_t skip_frame_size; // Recording the skip frame size for one frame. =NumMBs * 1, assuming one bit per mb for skip frame. - uint16_t static_region_pct; // One entry, recording the percentage of static region - uint8_t global_rate_ratio_threshold[7]; // 80,95,99,101,105,125,160 - uint8_t current_frame_type; // I frame: 2; P frame: 0; B frame: 1. - uint8_t start_global_adjust_mult[5]; // 1, 1, 3, 2, 1 - uint8_t start_global_adjust_div[5]; // 40, 5, 5, 3, 1 - uint8_t global_rate_ratio_threshold_qp[8]; // 253,254,255,0,1,1,2,3 - uint8_t current_pak_pass; // current pak pass number - uint8_t max_num_passes; // 2 - uint8_t scene_change_width[2]; // set both to MIN((NumP + 1) / 5, 6) - uint8_t scene_change_detect_enable; // Enable scene change detection - uint8_t scene_change_prev_intra_percent_threshold; // =96. scene change previous intra percentage threshold - uint8_t scene_change_cur_intra_perent_threshold; // =192. scene change current intra percentage threshold - uint8_t ip_average_coeff; // lowdelay ? 0 : 128 - uint8_t min_qp_adjustment; // Minimum QP increase step - uint8_t timing_budget_check; // Flag indicating if kernel will check timing budget. - int8_t roi_qp_delta_i8[4]; // Application specified ROI QP Adjustment for Zone0, Zone1, Zone2 and Zone3. - uint8_t cqp_qp_value; // Application specified target QP in BRC_ICQ mode - uint8_t cqp_fqp; // Application specified fine position in BRC_ICQ mode - uint8_t hme_detection_enable; // 0: default, 1: HuC BRC kernel requires information from HME detection kernel output - uint8_t hme_cost_enable; // 0: default, 1: driver provides HME cost table - uint8_t disable_pframe_8x8_transform; - uint8_t skl_cabac_wa_enable; - uint8_t roi_source; // =0: disable, 1: ROIMap from HME Static Region or from App dirty rectangle, 2: ROIMap from App - uint8_t slice_size_consertative_threshold; // =0, 0: do not set conservative threshold (suggested for video conference) 1: set conservative threshold for non-video conference - uint16_t max_target_slice_size; // default: 1498, max target slice size from app DDI - uint16_t max_num_slice_allowed; // computed by driver based on level idc - uint16_t second_level_batchbuffer_size; // second level batch buffer (SLBB) size in bytes, the input buffer will contain two SLBBs A and B, A followed by B, A and B have the same structure. - uint16_t second_level_batchbuffer_b_offset; // offset in bytes from the beginning of the input buffer, it points to the start of SLBB B, set by driver for skip frame support - uint16_t avc_img_state_offset; // offset in bytes from the beginning of SLBB A - - /* HME distortion based QP adjustment */ - uint16_t ave_hme_dist; - uint8_t hme_dist_available; // 0: disabled, 1: enabled - - uint8_t pad1[63]; -}; - -struct gen9_vdenc_status -{ - uint32_t bytes_per_frame; -}; - -struct gen9_vdenc_context -{ - uint32_t frame_width_in_mbs; - uint32_t frame_height_in_mbs; - uint32_t frame_width; // frame_width_in_mbs * 16 - uint32_t frame_height; // frame_height_in_mbs * 16 - uint32_t down_scaled_width_in_mb4x; - uint32_t down_scaled_height_in_mb4x; - uint32_t down_scaled_width_4x; // down_scaled_width_in_mb4x * 16 - uint32_t down_scaled_height_4x; // down_scaled_height_in_mbs * 16 - - uint32_t target_bit_rate; /* in kbps */ - uint32_t max_bit_rate; /* in kbps */ - uint32_t min_bit_rate; /* in kbps */ - uint64_t init_vbv_buffer_fullness_in_bit; - uint64_t vbv_buffer_size_in_bit; - uint32_t frames_per_100s; - uint32_t gop_size; - uint32_t ref_dist; - uint32_t brc_target_size; - double brc_init_current_target_buf_full_in_bits; - double brc_init_reset_input_bits_per_frame; - uint32_t brc_init_reset_buf_size_in_bits; - uint32_t brc_init_previous_target_buf_full_in_bits; - - uint8_t mode_cost[12]; - uint8_t mv_cost[8]; - uint8_t hme_mv_cost[8]; - - uint32_t num_roi; - uint32_t max_delta_qp; - uint32_t min_delta_qp; - struct intel_roi roi[3]; - - uint32_t brc_initted:1; - uint32_t brc_need_reset:1; - uint32_t is_low_delay:1; - uint32_t brc_enabled:1; - uint32_t internal_rate_mode:4; - uint32_t current_pass:4; - uint32_t num_passes:4; - uint32_t is_first_pass:1; - uint32_t is_last_pass:1; - - uint32_t vdenc_streamin_enable:1; - uint32_t vdenc_pak_threshold_check_enable:1; - uint32_t pad1:1; - uint32_t transform_8x8_mode_enable:1; - uint32_t frame_type:2; - - uint32_t mb_brc_enabled:1; - uint32_t pad0:31; - - struct i965_gpe_resource brc_init_reset_dmem_res; - struct i965_gpe_resource brc_history_buffer_res; - struct i965_gpe_resource brc_stream_in_res; - struct i965_gpe_resource brc_stream_out_res; - struct i965_gpe_resource huc_dummy_res; - - struct i965_gpe_resource brc_update_dmem_res[NUM_OF_BRC_PAK_PASSES]; - struct i965_gpe_resource vdenc_statistics_res; - struct i965_gpe_resource pak_statistics_res; - struct i965_gpe_resource vdenc_avc_image_state_res; - struct i965_gpe_resource hme_detection_summary_buffer_res; - struct i965_gpe_resource brc_constant_data_res; - struct i965_gpe_resource second_level_batch_res; - - struct i965_gpe_resource huc_status_res; - struct i965_gpe_resource huc_status2_res; - - struct i965_gpe_resource recon_surface_res; - struct i965_gpe_resource scaled_4x_recon_surface_res; - struct i965_gpe_resource post_deblocking_output_res; - struct i965_gpe_resource pre_deblocking_output_res; - struct i965_gpe_resource list_reference_res[16]; - struct i965_gpe_resource list_scaled_4x_reference_res[16]; - struct i965_gpe_resource uncompressed_input_surface_res; // Input - - struct { - struct i965_gpe_resource res; // Output - uint32_t start_offset; - uint32_t end_offset; - } compressed_bitstream; - - struct i965_gpe_resource mfx_intra_row_store_scratch_res; // MFX internal buffer - struct i965_gpe_resource mfx_deblocking_filter_row_store_scratch_res; // MFX internal buffer - struct i965_gpe_resource mfx_bsd_mpc_row_store_scratch_res; // MFX internal buffer - struct i965_gpe_resource vdenc_row_store_scratch_res; // VDENC internal buffer - - struct i965_gpe_resource vdenc_streamin_res; - - uint32_t num_refs[2]; - uint32_t list_ref_idx[2][32]; - - struct { - struct i965_gpe_resource res; - uint32_t base_offset; - uint32_t size; - uint32_t bytes_per_frame_offset; - } status_bffuer; -}; - -struct huc_pipe_mode_select_parameter -{ - uint32_t huc_stream_object_enable; - uint32_t indirect_stream_out_enable; - uint32_t media_soft_reset_counter; -}; - -struct huc_imem_state_parameter -{ - uint32_t huc_firmware_descriptor; -}; - -struct huc_dmem_state_parameter -{ - struct i965_gpe_resource *huc_data_source_res; - uint32_t huc_data_destination_base_address; - uint32_t huc_data_length; -}; - -struct huc_cfg_state_parameter -{ - uint32_t force_reset; -}; - - -struct huc_virtual_addr_parameter -{ - struct { - struct i965_gpe_resource *huc_surface_res; - uint32_t is_target; - } regions[16]; -}; - -struct huc_ind_obj_base_addr_parameter -{ - struct i965_gpe_resource *huc_indirect_stream_in_object_res; - struct i965_gpe_resource *huc_indirect_stream_out_object_res; -}; - -struct huc_stream_object_parameter -{ - uint32_t indirect_stream_in_data_length; - uint32_t indirect_stream_in_start_address; - uint32_t indirect_stream_out_start_address; - uint32_t huc_bitstream_enable; - uint32_t length_mode; - uint32_t stream_out; - uint32_t emulation_prevention_byte_removal; - uint32_t start_code_search_engine; - uint8_t start_code_byte2; - uint8_t start_code_byte1; - uint8_t start_code_byte0; -}; - -struct huc_start_parameter -{ - uint32_t last_stream_object; -}; - -struct vd_pipeline_flush_parameter -{ - uint32_t hevc_pipeline_done; - uint32_t vdenc_pipeline_done; - uint32_t mfl_pipeline_done; - uint32_t mfx_pipeline_done; - uint32_t vd_command_message_parser_done; - uint32_t hevc_pipeline_command_flush; - uint32_t vdenc_pipeline_command_flush; - uint32_t mfl_pipeline_command_flush; - uint32_t mfx_pipeline_command_flush; -}; - -extern Bool -gen9_vdenc_context_init(VADriverContextP ctx, struct intel_encoder_context *encoder_context); - -#endif /* GEN9_VDENC_H */ diff -Nru intel-vaapi-driver-1.7.1/src/gen9_vp9_const_def.c intel-vaapi-driver-1.7.0/src/gen9_vp9_const_def.c --- intel-vaapi-driver-1.7.1/src/gen9_vp9_const_def.c 2016-06-16 00:57:46.000000000 +0000 +++ intel-vaapi-driver-1.7.0/src/gen9_vp9_const_def.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,1716 +0,0 @@ -/* - * * Copyright (c) 2016, Intel Corporation - * - * All rights reserved. - * Redistribution. Redistribution and use in binary form, without modification, are - * permitted provided that the following conditions are met: - * Redistributions must reproduce the above copyright notice and the following - * disclaimer in the documentation and/or other materials provided with the - * distribution. - * Neither the name of Intel Corporation nor the names of its suppliers may be used - * to endorse or promote products derived from this software without specific prior - * written permission. - * No reverse engineering, decompilation, or disassembly of this software is permitted. - * Limited patent license. Intel Corporation grants a world-wide, royalty-free, - * nonexclusive license under patents it now or hereafter owns or controls to make, have made, - * use, import, offer to sell and sell (.Utilize.) this software, but solely to the extent that any - * such patent is necessary to Utilize the software alone. The patent license shall not apply - * to any combinations which include this software. No hardware per se is licensed here under. - - * DISCLAIMER. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT - * HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER - * 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 - -const unsigned int vp9_fullspiral_ime_search_path_delta[14] = { - 0x0101F00F, 0x0F0F1010, 0xF0F0F00F, 0x01010101, 0x10101010, 0x0F0F0F0F, 0xF0F0F00F, 0x0101F0F0, 0x01010101, 0x10101010, 0x0F0F1010, 0x0F0F0F0F, 0xF0F0F00F, 0xF0F0F0F0 -}; - -const unsigned int vp9_diamond_ime_search_path_delta[14] = { - 0x120FF10F, 0x1E22E20D, 0x20E2FF10, 0x2EDD06FC, 0x11D33FF1, 0xEB1FF33D, 0x4EF1F1F1, 0xF1F21211, 0x0DFFFFE0, 0x11201F1F, 0x1105F1CF, 0x00000000, 0x00000000, 0x00000000 -}; - -const unsigned int vp9_brc_const_data_i_g9[4448] = { - 0x0032000A, 0x00960064, 0x67614B28, 0xFCFAA07D, 0x040200FE, 0x03010106, 0x05280102, 0x04010305, - 0x78503C1E, 0x04FFC88C, 0x78503C1E, 0x28FFC88C, 0x02B47850, 0x120E0A06, 0x0A060402, 0x0200000E, - 0x00000804, 0xFE040200, 0x02000000, 0x00FEFCFA, 0xFCF8F600, 0xF4F200FE, 0xEEFEFCF8, 0xFEFCF6F2, - 0x100A0402, 0x08040214, 0x0200100C, 0x000C0804, 0x04020000, 0x000000FE, 0xFEFEFC02, 0xFCFA0000, - 0xF600FEFE, 0x00FEFCFA, 0xFCF8F4F2, 0x000000FE, 0x0C080000, 0x00001410, 0x06000000, 0xFE120E0A, - 0x00000000, 0x0E0C0806, 0x0000FEFC, 0x06040200, 0xFEFCFA0A, 0x02000000, 0xFCF80A06, 0x000000FE, - 0xF60A0602, 0x00FEFCFA, 0x0A060200, 0xFEFCF8F4, 0x06020000, 0xFCF8F40A, 0x020000FE, 0x00000A06, - 0x06000000, 0x00120E0A, 0x00000000, 0x100C0A06, 0x000000FE, 0x0E0A0600, 0x00FEFC10, 0x08040000, - 0xFCFA0C0A, 0x000000FE, 0xF80A0802, 0x0000FEFC, 0x0A080200, 0xFEFEFCF8, 0x08000000, 0xFCFAF80A, - 0x000000FE, 0xF8F60A02, 0x0000FEFC, 0x00080200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x02061200, 0x00000036, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x28190702, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00010002, - 0x050D2501, 0x0000006D, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x38290E03, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00020004, - 0x050D2502, 0x0000006D, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x38290E03, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00020004, - 0x050D2503, 0x0000006D, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x38290E03, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00020004, - 0x06102E04, 0x00000088, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x3A2B1904, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00020005, - 0x06102E05, 0x00000088, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x3A2B1904, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00020005, - 0x07133706, 0x000000A3, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x3C2E1B05, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00030006, - 0x07133707, 0x000000A3, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x3C2E1B05, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00030006, - 0x07133708, 0x000000A3, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x3C2E1B05, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00030006, - 0x08164009, 0x000000BE, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x3E381D05, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00030007, - 0x0816400A, 0x000000BE, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x3E381D05, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00030007, - 0x0A1A4A0B, 0x000000DA, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x48391E06, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00040008, - 0x0A1A4A0C, 0x000000DA, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x48391E06, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00040008, - 0x0B1D530D, 0x000000F5, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x493A2807, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00040009, - 0x0B1D530E, 0x000000F5, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x493A2807, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00040009, - 0x0B1D530F, 0x000000F5, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x493A2807, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00040009, - 0x0C205C10, 0x00000110, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x4A3B2908, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0005000A, - 0x0C205C11, 0x00000110, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x4A3B2908, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0005000A, - 0x0D236512, 0x0000012B, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x4B3C2A09, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0005000B, - 0x0D236513, 0x0000012B, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x4B3C2A09, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0005000B, - 0x0E266E14, 0x00000146, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x4C3E2B09, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0006000C, - 0x0E266E15, 0x00000146, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x4C3E2B09, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0006000C, - 0x102A7816, 0x00000162, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x4D3F2C0A, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0006000D, - 0x102A7817, 0x00000162, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x4D3F2C0A, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0006000D, - 0x102A7818, 0x00000162, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x4D3F2C0A, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0006000D, - 0x112D8119, 0x0000017D, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x4E482C0B, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0007000E, - 0x112D811A, 0x0000017D, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x4E482C0B, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0007000E, - 0x12308A1B, 0x00000198, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x4F482D0C, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0007000F, - 0x12308A1C, 0x00000198, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x4F482D0C, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0007000F, - 0x1333931D, 0x000001B3, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x58492E0D, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00080010, - 0x1333931E, 0x000001B3, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x58492E0D, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00080010, - 0x1333931F, 0x000001B3, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x58492E0D, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00080010, - 0x14369C20, 0x000001CE, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x594A2F0D, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00080011, - 0x14369C21, 0x000001CE, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x594A2F0D, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00080011, - 0x163AA622, 0x000001EA, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x594A380E, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00090012, - 0x163AA623, 0x000001EA, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x594A380E, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00090012, - 0x173DAF24, 0x00000205, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x5A4B380F, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00090013, - 0x173DAF25, 0x00000205, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x5A4B380F, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00090013, - 0x173DAF26, 0x00000205, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x5A4B380F, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00090013, - 0x1840B827, 0x00000220, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x5A4B3918, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000A0014, - 0x1840B828, 0x00000220, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x5A4B3918, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000A0014, - 0x1943C129, 0x0000023B, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x5B4C3918, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000A0015, - 0x1943C12A, 0x0000023B, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x5B4C3918, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000A0015, - 0x1943C12B, 0x0000023B, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x5B4C3918, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000A0015, - 0x1A46CA2C, 0x00000256, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x5B4C3A19, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000B0016, - 0x1A46CA2D, 0x00000256, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x5B4C3A19, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000B0016, - 0x1B49D32E, 0x00000271, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x5C4D3A19, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000B0017, - 0x1B49D32F, 0x00000271, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x5C4D3A19, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000B0017, - 0x1D4DDD30, 0x0000028D, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x5C4E3B1A, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000C0018, - 0x1D4DDD31, 0x0000028D, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x5C4E3B1A, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000C0018, - 0x1D4DDD32, 0x0000028D, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x5C4E3B1A, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000C0018, - 0x1E50E633, 0x000002A8, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x5D4E3B1A, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000C0019, - 0x1E50E634, 0x000002A8, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x5D4E3B1A, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000C0019, - 0x1F53EF35, 0x000002C3, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x5D4F3B1A, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000D001A, - 0x1F53EF36, 0x000002C3, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x5D4F3B1A, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000D001A, - 0x1F53EF37, 0x000002C3, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x5D4F3B1A, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000D001A, - 0x2056F838, 0x000002DE, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x5E4F3C1B, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000D001B, - 0x2056F839, 0x000002DE, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x5E4F3C1B, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000D001B, - 0x2159FF3A, 0x000002F9, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x5E583C1B, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000E001C, - 0x2159FF3B, 0x000002F9, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x5E583C1B, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000E001C, - 0x2159FF3C, 0x000002F9, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x5E583C1B, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000E001C, - 0x235DFF3D, 0x00000315, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x5F583D1C, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000E001D, - 0x235DFF3E, 0x00000315, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x5F583D1C, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000E001D, - 0x2460FF3F, 0x00000330, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x5F583D1C, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000F001E, - 0x2460FF40, 0x00000330, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x5F583D1C, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000F001E, - 0x2563FF41, 0x0000034B, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x68593E1C, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000F001F, - 0x2563FF42, 0x0000034B, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x68593E1C, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000F001F, - 0x2563FF43, 0x0000034B, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x68593E1C, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000F001F, - 0x2666FF44, 0x00000366, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x68593E1D, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00100020, - 0x2666FF45, 0x00000366, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x68593E1D, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00100020, - 0x2769FF46, 0x00000381, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x68593F1D, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00100021, - 0x2769FF47, 0x00000381, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x68593F1D, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00100021, - 0x2769FF48, 0x00000381, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x68593F1D, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00100021, - 0x296DFF49, 0x0000039D, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x695A3F1E, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00110022, - 0x296DFF4A, 0x0000039D, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x695A3F1E, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00110022, - 0x2A70FF4B, 0x000003B8, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x695A3F1E, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00110023, - 0x2A70FF4C, 0x000003B8, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x695A3F1E, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00110023, - 0x2A70FF4D, 0x000003B8, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x695A3F1E, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00110023, - 0x2B73FF4E, 0x000003D3, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x695A481E, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00120024, - 0x2B73FF4F, 0x000003D3, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x695A481E, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00120024, - 0x2C76FF50, 0x000003EE, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x695A481F, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00120025, - 0x2C76FF51, 0x000003EE, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x695A481F, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00120025, - 0x2C76FF52, 0x000003EE, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x695A481F, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00120025, - 0x2D79FF53, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x6A5B481F, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00130026, - 0x2D79FF54, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x6A5B481F, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00130026, - 0x2F7DFF55, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x6A5B491F, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00130027, - 0x2F7DFF56, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x6A5B491F, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00130027, - 0x2F7DFF57, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x6A5B491F, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00130027, - 0x3080FF58, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x6A5B4928, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00140028, - 0x3080FF59, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x6A5B4928, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00140028, - 0x3080FF5A, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x6A5B4928, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00140028, - 0x3183FF5B, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x6B5C4928, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00140029, - 0x3183FF5C, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x6B5C4928, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00140029, - 0x3286FF5D, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x6B5C4928, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0015002A, - 0x3286FF5E, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x6B5C4928, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0015002A, - 0x3286FF5F, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x6B5C4928, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0015002A, - 0x3389FF60, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x6B5C4929, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0015002B, - 0x358DFF61, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x6B5C4A29, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0016002C, - 0x3690FF62, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x6C5D4A29, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0016002D, - 0x3793FF63, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x6C5D4A29, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0017002E, - 0x3793FF64, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x6C5D4A29, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0017002E, - 0x3896FF65, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x6C5D4A29, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0017002F, - 0x3999FF66, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x6C5D4B2A, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00180030, - 0x3B9DFF67, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x6D5E4B2A, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00180031, - 0x3B9DFF68, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x6D5E4B2A, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00180031, - 0x3CA0FF69, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x6D5E4B2A, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00190032, - 0x3DA3FF6A, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x6D5E4B2A, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00190033, - 0x3EA6FF6B, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x6D5F4B2A, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x001A0034, - 0x3EA6FF6C, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x6D5F4B2A, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x001A0034, - 0x3FA9FF6D, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x6E5F4C2A, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x001A0035, - 0x41ADFF6E, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x6E5F4C2B, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x001B0036, - 0x42B0FF6F, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x6E5F4C2B, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x001B0037, - 0x42B0FF70, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x6E5F4C2B, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x001B0037, - 0x43B3FF71, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x6E684C2B, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x001C0038, - 0x44B6FF72, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x6F684D2B, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x001C0039, - 0x45B9FF73, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x6F684D2B, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x001D003A, - 0x45B9FF74, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x6F684D2B, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x001D003A, - 0x47BDFF75, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x6F684D2C, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x001D003B, - 0x48C0FF76, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x6F684D2C, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x001E003C, - 0x48C0FF77, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x6F684D2C, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x001E003C, - 0x49C3FF78, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x78694D2C, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x001E003D, - 0x4AC6FF79, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x78694E2C, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x001F003E, - 0x4BC9FF7A, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x78694E2C, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x001F003F, - 0x4DCDFF7B, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x78694E2D, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00200040, - 0x4ED0FF7C, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x78694E2D, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00200041, - 0x50D6FF7D, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x79694F2D, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00210043, - 0x51D9FF7E, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x796A4F2D, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00220044, - 0x52DCFF7F, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x796A4F2E, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00220045, - 0x54E0FF80, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x796A4F2E, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00230046, - 0x55E3FF81, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x796A582E, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00230047, - 0x56E6FF82, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x796A582E, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00240048, - 0x57E9FF83, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x796A582E, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00240049, - 0x58ECFF84, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x796A582F, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0025004A, - 0x5AF0FF85, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x7A6B582F, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0025004B, - 0x5BF3FF86, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x7A6B582F, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0026004C, - 0x5CF6FF87, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x7A6B582F, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0026004D, - 0x5DF9FF88, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x7A6B592F, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0027004E, - 0x5EFCFF89, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x7A6B5938, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0027004F, - 0x60FFFF8A, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x7A6B5938, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00280050, - 0x62FFFF8B, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x7B6C5938, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00290052, - 0x63FFFF8C, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x7B6C5938, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00290053, - 0x64FFFF8D, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x7B6C5938, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x002A0054, - 0x67FFFF8E, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x7B6C5938, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x002B0056, - 0x68FFFF8F, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x7B6C5A39, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x002B0057, - 0x69FFFF90, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x7B6C5A39, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x002C0058, - 0x6CFFFF91, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x7C6D5A39, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x002D005A, - 0x6DFFFF92, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x7C6D5A39, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x002D005B, - 0x6EFFFF93, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x7C6D5A39, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x002E005C, - 0x6FFFFF94, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x7C6D5A39, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x002E005D, - 0x72FFFF95, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x7C6D5A39, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x002F005F, - 0x73FFFF96, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x7C6D5B39, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00300060, - 0x74FFFF97, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x7C6E5B3A, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00300061, - 0x76FFFF98, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x7D6E5B3A, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00310063, - 0x79FFFF99, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x7D6E5B3A, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00320065, - 0x7AFFFF9A, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x7D6E5B3A, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00330066, - 0x7CFFFF9B, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x7D6F5B3A, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00340068, - 0x7EFFFF9C, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x7D6F5C3A, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00340069, - 0x80FFFF9D, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x7E6F5C3B, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0035006B, - 0x81FFFF9E, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x7E6F5C3B, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0036006C, - 0x83FFFF9F, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x7E6F5C3B, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0037006E, - 0x85FFFFA0, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x7E785C3B, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0037006F, - 0x87FFFFA1, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x7E785C3B, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00380071, - 0x89FFFFA2, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x7F785D3B, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00390073, - 0x8BFFFFA3, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x7F785D3B, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x003A0074, - 0x8DFFFFA4, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x7F785D3C, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x003B0076, - 0x8FFFFFA5, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x7F785D3C, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x003C0078, - 0x91FFFFA6, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x88785D3C, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x003C0079, - 0x93FFFFA7, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x88795E3C, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x003D007B, - 0x95FFFFA8, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x88795E3C, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x003E007D, - 0x97FFFFA9, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x88795E3C, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x003F007E, - 0x99FFFFAA, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x88795E3D, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00400080, - 0x9BFFFFAB, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x88795E3D, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00410082, - 0x9EFFFFAC, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x88795F3D, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00420084, - 0xA0FFFFAD, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x89795F3D, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00430086, - 0xA3FFFFAE, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x897A5F3D, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00440088, - 0xA5FFFFAF, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x897A5F3E, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0045008A, - 0xA7FFFFB0, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x897A5F3E, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0046008C, - 0xAAFFFFB1, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x897A683E, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0047008E, - 0xACFFFFB2, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x897A683E, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00480090, - 0xAFFFFFB3, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x897A683E, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00490092, - 0xB1FFFFB4, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x897A683F, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x004A0094, - 0xB3FFFFB5, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x8A7B683F, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x004B0096, - 0xB6FFFFB6, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x8A7B683F, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x004C0098, - 0xB8FFFFB7, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x8A7B683F, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x004D009A, - 0xBAFFFFB8, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x8A7B693F, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x004E009C, - 0xBDFFFFB9, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x8A7B693F, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x004F009E, - 0xC0FFFFBA, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x8A7B6948, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x005000A1, - 0xC3FFFFBB, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x8A7B6948, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x005100A3, - 0xC5FFFFBC, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x8B7C6948, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x005200A5, - 0xC8FFFFBD, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x8B7C6948, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x005300A7, - 0xCBFFFFBE, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x8B7C6948, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x005500AA, - 0xCEFFFFBF, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x8B7C6948, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x005600AC, - 0xD0FFFFC0, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x8B7C6A49, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x005700AE, - 0xD4FFFFC1, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x8B7C6A49, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x005800B1, - 0xD6FFFFC2, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x8B7D6A49, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x005900B3, - 0xDAFFFFC3, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x8C7D6A49, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x005B00B6, - 0xDCFFFFC4, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x8C7D6A49, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x005C00B8, - 0xE0FFFFC5, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x8C7D6A49, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x005D00BB, - 0xE2FFFFC6, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x8C7D6A49, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x005E00BD, - 0xE6FFFFC7, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x8C7D6B49, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x006000C0, - 0xE8FFFFC8, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x8C7E6B4A, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x006100C2, - 0xEBFFFFC9, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x8D7E6B4A, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x006200C5, - 0xEFFFFFCA, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x8D7E6B4A, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x006400C8, - 0xF3FFFFCB, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x8D7E6B4A, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x006500CB, - 0xF5FFFFCC, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x8D7E6B4A, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x006600CD, - 0xF9FFFFCD, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x8D7F6B4A, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x006800D0, - 0xFCFFFFCE, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x8E7F6C4A, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x006900D3, - 0xFFFFFFCF, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x8E7F6C4A, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x006B00D6, - 0xFFFFFFD0, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x8E7F6C4B, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x006C00D9, - 0xFFFFFFD1, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x8E7F6C4B, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x006E00DC, - 0xFFFFFFD2, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x8E886C4B, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x006F00DF, - 0xFFFFFFD3, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x8F886C4B, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x007100E3, - 0xFFFFFFD4, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x8F886D4B, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x007300E6, - 0xFFFFFFD5, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x8F886D4B, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x007400E9, - 0xFFFFFFD6, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x8F886D4C, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x007600ED, - 0xFFFFFFD7, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x8F886D4C, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x007800F1, - 0xFFFFFFD8, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x8F896D4C, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x007A00F4, - 0xFFFFFFD9, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x8F896E4C, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x007C00F8, - 0xFFFFFFDA, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x8F896E4C, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x007E00FC, - 0xFFFFFFDB, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x8F896E4D, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00800100, - 0xFFFFFFDC, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x8F896E4D, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00820105, - 0xFFFFFFDD, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x8F896F4D, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00840109, - 0xFFFFFFDE, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x8F896F4D, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0086010D, - 0xFFFFFFDF, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x8F8A6F4D, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00890112, - 0xFFFFFFE0, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x8F8A6F4E, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x008B0117, - 0xFFFFFFE1, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x8F8A784E, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x008E011C, - 0xFFFFFFE2, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x8F8A784E, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00900121, - 0xFFFFFFE3, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x8F8A784E, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00930127, - 0xFFFFFFE4, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x8F8B784F, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0096012D, - 0xFFFFFFE5, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x8F8B784F, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00990133, - 0xFFFFFFE6, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x8F8B794F, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x009C0139, - 0xFFFFFFE7, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x8F8B7958, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00A00140, - 0xFFFFFFE8, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x8F8B7958, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00A30147, - 0xFFFFFFE9, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x8F8C7958, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00A7014E, - 0xFFFFFFEA, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x8F8C7958, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00AB0156, - 0xFFFFFFEB, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x8F8C7A59, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00AF015E, - 0xFFFFFFEC, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x8F8D7A59, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00B30166, - 0xFFFFFFED, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x8F8D7A59, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00B80170, - 0xFFFFFFEE, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x8F8D7A59, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00BC0179, - 0xFFFFFFEF, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x8F8E7B59, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00C10183, - 0xFFFFFFF0, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x8F8E7B5A, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00C7018E, - 0xFFFFFFF1, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x8F8E7B5A, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00CC0199, - 0xFFFFFFF2, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x8F8F7C5A, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00D201A5, - 0xFFFFFFF3, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x8F8F7C5B, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00D901B2, - 0xFFFFFFF4, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x8F8F7C5B, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00E001C0, - 0xFFFFFFF5, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x8F8F7D5B, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00E701CE, - 0xFFFFFFF6, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x8F8F7D5C, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00EE01DD, - 0xFFFFFFF7, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x8F8F7E5C, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00F701EE, - 0xFFFFFFF8, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x8F8F7E5C, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00FF01FF, - 0xFFFFFFF9, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x8F8F7F5D, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x01080211, - 0xFFFFFFFA, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x8F8F7F5D, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x01120225, - 0xFFFFFFFB, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x8F8F885E, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x011C0239, - 0xFFFFFFFC, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x8F8F885E, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x01280250, - 0xFFFFFFFD, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x8F8F885F, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x01340268, - 0xFFFFFFFE, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x8F8F8968, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x01400281, - 0xFFFFFFFF, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x8F8F8968, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x014E029C, - 0x00080004, 0x00090008, 0x000B000A, 0x000C000C, 0x000E000D, 0x0010000F, 0x00120011, 0x00130013, - 0x00150014, 0x00170016, 0x00190018, 0x001A001A, 0x001C001B, 0x001E001D, 0x0020001F, 0x00210020, - 0x00230022, 0x00250024, 0x00260026, 0x00280027, 0x002A0029, 0x002B002B, 0x002D002C, 0x002F002E, - 0x00300030, 0x00320031, 0x00340033, 0x00350035, 0x00370036, 0x00390038, 0x003A0039, 0x003C003B, - 0x003E003D, 0x003F003E, 0x00410040, 0x00420042, 0x00440043, 0x00460045, 0x00470046, 0x00490048, - 0x004A004A, 0x004C004B, 0x004E004D, 0x004F004E, 0x00510050, 0x00520051, 0x00540053, 0x00550055, - 0x00580057, 0x005C005A, 0x005F005D, 0x00620060, 0x00650063, 0x00680066, 0x006B0069, 0x006E006C, - 0x0071006F, 0x00740072, 0x00760075, 0x00790078, 0x007D007B, 0x0081007F, 0x00860083, 0x008A0088, - 0x008E008C, 0x00920090, 0x00960094, 0x009A0098, 0x009E009C, 0x00A400A1, 0x00A900A6, 0x00AE00AC, - 0x00B400B1, 0x00B900B6, 0x00BE00BB, 0x00C300C0, 0x00CA00C7, 0x00D000CD, 0x00D600D3, 0x00DC00D9, - 0x00E200DF, 0x00E900E6, 0x00F000ED, 0x00F700F3, 0x00FD00FA, 0x01050101, 0x010D0109, 0x01140110, - 0x011C0118, 0x01240120, 0x012C0128, 0x01350130, 0x013D0139, 0x01460142, 0x014F014A, 0x01580154, - 0x0162015D, 0x016C0167, 0x01760171, 0x0180017B, 0x018B0185, 0x01960190, 0x01A1019B, 0x01AD01A7, - 0x01B901B3, 0x01C601BF, 0x01D301CD, 0x01E201DB, 0x01F101E9, 0x020101F9, 0x0212020A, 0x0225021B, - 0x0239022F, 0x024E0243, 0x0266025A, 0x02800272, 0x029C028E, 0x02BC02AC, 0x02E002CD, 0x030702F3, - 0x0333031C, 0x0365034B, 0x039D0380, 0x03DC03BB, 0x042203FE, 0x0473044A, 0x04D004A0, 0x05380502, - 0x00080004, 0x000A0009, 0x000C000B, 0x000E000D, 0x0010000F, 0x00120011, 0x00140013, 0x00160015, - 0x00180017, 0x001A0019, 0x001C001B, 0x001E001D, 0x0020001F, 0x00220021, 0x00240023, 0x00260025, - 0x00280027, 0x002A0029, 0x002C002B, 0x002E002D, 0x0030002F, 0x00320031, 0x00340033, 0x00360035, - 0x00380037, 0x003A0039, 0x003C003B, 0x003E003D, 0x0040003F, 0x00420041, 0x00440043, 0x00460045, - 0x00480047, 0x004A0049, 0x004C004B, 0x004E004D, 0x0050004F, 0x00520051, 0x00540053, 0x00560055, - 0x00580057, 0x005A0059, 0x005C005B, 0x005E005D, 0x0060005F, 0x00620061, 0x00640063, 0x00660065, - 0x006A0068, 0x006E006C, 0x00720070, 0x00760074, 0x007A0078, 0x007E007C, 0x00820080, 0x00860084, - 0x008A0088, 0x008E008C, 0x00920090, 0x00960094, 0x009B0098, 0x00A1009E, 0x00A700A4, 0x00AD00AA, - 0x00B300B0, 0x00B900B6, 0x00BF00BC, 0x00C500C2, 0x00CB00C8, 0x00D300CF, 0x00DB00D7, 0x00E300DF, - 0x00EB00E7, 0x00F300EF, 0x00FB00F7, 0x010400FF, 0x010E0109, 0x01180113, 0x0122011D, 0x012C0127, - 0x01370131, 0x0143013D, 0x014F0149, 0x015B0155, 0x01670161, 0x0175016E, 0x0183017C, 0x0191018A, - 0x01A00198, 0x01B001A8, 0x01C001B8, 0x01D101C8, 0x01E301DA, 0x01F501EC, 0x020801FE, 0x021C0212, - 0x02300226, 0x0246023B, 0x025C0251, 0x02730267, 0x028B027F, 0x02A40297, 0x02BE02B1, 0x02D902CB, - 0x02F502E7, 0x03120303, 0x03300321, 0x03500340, 0x03710360, 0x03930382, 0x03B703A5, 0x03DC03C9, - 0x040203EF, 0x042A0416, 0x0454043F, 0x047F0469, 0x04AC0495, 0x04DB04C3, 0x050C04F3, 0x053F0525, - 0x05740559, 0x05AB058F, 0x05E405C7, 0x061F0601, 0x065C063D, 0x069C067C, 0x06DF06BD, 0x07240701 -}; - -const unsigned int vp9_brc_const_data_p_g9[4448] = { - 0x0032000A, 0x00960064, 0x67614B28, 0xFCFAA07D, 0x040200FE, 0x03010106, 0x05280102, 0x04010305, - 0x78503C1E, 0x04FFC88C, 0x78503C1E, 0x28FFC88C, 0x02B47850, 0x120E0A06, 0x0A060402, 0x0200000E, - 0x00000804, 0xFE040200, 0x02000000, 0x00FEFCFA, 0xFCF8F600, 0xF4F200FE, 0xEEFEFCF8, 0xFEFCF6F2, - 0x100A0402, 0x08040214, 0x0200100C, 0x000C0804, 0x04020000, 0x000000FE, 0xFEFEFC02, 0xFCFA0000, - 0xF600FEFE, 0x00FEFCFA, 0xFCF8F4F2, 0x000000FE, 0x0C080000, 0x00001410, 0x06000000, 0xFE120E0A, - 0x00000000, 0x0E0C0806, 0x0000FEFC, 0x06040200, 0xFEFCFA0A, 0x02000000, 0xFCF80A06, 0x000000FE, - 0xF60A0602, 0x00FEFCFA, 0x0A060200, 0xFEFCF8F4, 0x06020000, 0xFCF8F40A, 0x020000FE, 0x00000A06, - 0x06000000, 0x00120E0A, 0x00000000, 0x100C0A06, 0x000000FE, 0x0E0A0600, 0x00FEFC10, 0x08040000, - 0xFCFA0C0A, 0x000000FE, 0xF80A0802, 0x0000FEFC, 0x0A080200, 0xFEFEFCF8, 0x08000000, 0xFCFAF80A, - 0x000000FE, 0xF8F60A02, 0x0000FEFC, 0x00080200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x040C2400, 0x00000000, 0x00010001, 0x00010000, 0x00010000, 0x00020002, 0x00030002, 0x00040003, - 0x02020100, 0x04030302, 0x39070402, 0x6F6F0103, 0x00010001, 0x00000000, 0x00000004, 0x00010004, - 0x08184801, 0x00000000, 0x00020002, 0x00020001, 0x00020000, 0x00040003, 0x00060005, 0x00080007, - 0x04030200, 0x08070605, 0x490D0903, 0x6F6F0305, 0x00020001, 0x00000000, 0x00000008, 0x00020008, - 0x08184802, 0x00000000, 0x00020002, 0x00020001, 0x00020000, 0x00040003, 0x00060005, 0x00080007, - 0x04030200, 0x08070605, 0x490D0903, 0x6F6F0305, 0x00020001, 0x00000000, 0x00000008, 0x00020008, - 0x091B5103, 0x00000000, 0x00020002, 0x00020001, 0x00020000, 0x00040003, 0x00060005, 0x00080007, - 0x04030200, 0x08070605, 0x4A0F0A04, 0x6F6F0305, 0x00020001, 0x00000000, 0x00000008, 0x00020009, - 0x0A1E5A04, 0x00000000, 0x00020002, 0x00020001, 0x00020000, 0x00040003, 0x00060005, 0x00080007, - 0x04030200, 0x08070605, 0x4B180B04, 0x6F6F0305, 0x00020001, 0x00000000, 0x00000008, 0x0002000A, - 0x0B216305, 0x00000000, 0x00020002, 0x00020001, 0x00020000, 0x00040003, 0x00060005, 0x00080007, - 0x04030200, 0x08070605, 0x4D190C04, 0x6F6F0305, 0x00020001, 0x00000000, 0x00000008, 0x0002000B, - 0x0C246C06, 0x00000000, 0x00020004, 0x00030001, 0x00040000, 0x00060005, 0x00080007, 0x000C000A, - 0x06050400, 0x0C0A0807, 0x4E1A0D05, 0x6F6F0408, 0x00030002, 0x00000000, 0x0000000C, 0x0003000C, - 0x0C246C07, 0x00000000, 0x00020004, 0x00030001, 0x00040000, 0x00060005, 0x00080007, 0x000C000A, - 0x06050400, 0x0C0A0807, 0x4E1A0D05, 0x6F6F0408, 0x00030002, 0x00000000, 0x0000000C, 0x0003000C, - 0x0D277508, 0x00000000, 0x00020004, 0x00030001, 0x00040000, 0x00060005, 0x00080007, 0x000C000A, - 0x06050400, 0x0C0A0807, 0x4F1B0E05, 0x6F6F0408, 0x00030002, 0x00000000, 0x0000000C, 0x0003000D, - 0x0E2A7E09, 0x00000000, 0x00020004, 0x00030001, 0x00040000, 0x00060005, 0x00080007, 0x000C000A, - 0x06050400, 0x0C0A0807, 0x581C0F05, 0x6F6F0408, 0x00030002, 0x00000000, 0x0000000C, 0x0003000E, - 0x0F2D870A, 0x00000000, 0x00020004, 0x00030001, 0x00040000, 0x00060005, 0x00080007, 0x000C000A, - 0x06050400, 0x0C0A0807, 0x591D1806, 0x6F6F0408, 0x00030002, 0x00000000, 0x0000000C, 0x0003000F, - 0x1030900B, 0x00000000, 0x00030005, 0x00040002, 0x00050000, 0x00080006, 0x000B000A, 0x0010000D, - 0x08060500, 0x180D0B0A, 0x591D1906, 0x6F6F050B, 0x00040002, 0x00000000, 0x00000010, 0x00040010, - 0x1133990C, 0x00000000, 0x00030005, 0x00040002, 0x00050000, 0x00080006, 0x000B000A, 0x0010000D, - 0x08060500, 0x180D0B0A, 0x5A1E1A07, 0x6F6F050B, 0x00040002, 0x00000000, 0x00000010, 0x00040011, - 0x1236A20D, 0x00000000, 0x00030005, 0x00040002, 0x00050000, 0x00080006, 0x000B000A, 0x0010000D, - 0x08060500, 0x180D0B0A, 0x5A1F1A07, 0x6F6F050B, 0x00040002, 0x00000000, 0x00000010, 0x00040012, - 0x1339AB0E, 0x00000000, 0x00030005, 0x00040002, 0x00050000, 0x00080006, 0x000B000A, 0x0010000D, - 0x08060500, 0x180D0B0A, 0x5B281B07, 0x6F6F050B, 0x00040002, 0x00000000, 0x00000010, 0x00040013, - 0x1339AB0F, 0x00000000, 0x00030005, 0x00040002, 0x00050000, 0x00080006, 0x000B000A, 0x0010000D, - 0x08060500, 0x180D0B0A, 0x5B281B07, 0x6F6F050B, 0x00040002, 0x00000000, 0x00000010, 0x00040013, - 0x143CB410, 0x00000000, 0x00040006, 0x00050002, 0x00060000, 0x000A0008, 0x000E000C, 0x00140011, - 0x0A080600, 0x1A190E0C, 0x5B281B08, 0x6F6F070E, 0x00050003, 0x00000000, 0x00000014, 0x00050014, - 0x153FBD11, 0x00000000, 0x00040006, 0x00050002, 0x00060000, 0x000A0008, 0x000E000C, 0x00140011, - 0x0A080600, 0x1A190E0C, 0x5C291C08, 0x6F6F070E, 0x00050003, 0x00000000, 0x00000014, 0x00050015, - 0x1642C612, 0x00000000, 0x00040006, 0x00050002, 0x00060000, 0x000A0008, 0x000E000C, 0x00140011, - 0x0A080600, 0x1A190E0C, 0x5D291C09, 0x6F6F070E, 0x00050003, 0x00000000, 0x00000014, 0x00050016, - 0x1745CF13, 0x00000000, 0x00040006, 0x00050002, 0x00060000, 0x000A0008, 0x000E000C, 0x00140011, - 0x0A080600, 0x1A190E0C, 0x5D2A1D09, 0x6F6F070E, 0x00050003, 0x00000000, 0x00000014, 0x00050017, - 0x1848D814, 0x00000000, 0x00050007, 0x00060002, 0x00070000, 0x000C0009, 0x0011000F, 0x00170014, - 0x0C090700, 0x1C1A190F, 0x5E2A1D09, 0x6F6F0818, 0x00060003, 0x00000000, 0x00000017, 0x00060018, - 0x194BE115, 0x00000000, 0x00050007, 0x00060002, 0x00070000, 0x000C0009, 0x0011000F, 0x00170014, - 0x0C090700, 0x1C1A190F, 0x5E2A1E0A, 0x6F6F0818, 0x00060003, 0x00000000, 0x00000017, 0x00060019, - 0x1A4EEA16, 0x00000000, 0x00050007, 0x00060002, 0x00070000, 0x000C0009, 0x0011000F, 0x00170014, - 0x0C090700, 0x1C1A190F, 0x5F2B1E0A, 0x6F6F0818, 0x00060003, 0x00000000, 0x00000017, 0x0006001A, - 0x1A4EEA17, 0x00000000, 0x00050007, 0x00060002, 0x00070000, 0x000C0009, 0x0011000F, 0x00170014, - 0x0C090700, 0x1C1A190F, 0x5F2B1E0A, 0x6F6F0818, 0x00060003, 0x00000000, 0x00000017, 0x0006001A, - 0x1B51F318, 0x00000000, 0x00050007, 0x00060002, 0x00070000, 0x000C0009, 0x0011000F, 0x00170014, - 0x0C090700, 0x1C1A190F, 0x5F2B1F0B, 0x6F6F0818, 0x00060003, 0x00000000, 0x00000017, 0x0006001B, - 0x1C54FC19, 0x00000000, 0x00050008, 0x00070003, 0x00080000, 0x000E000B, 0x00140011, 0x001B0017, - 0x0E0B0800, 0x1E1C1A19, 0x682C280B, 0x6F6F0A1A, 0x00070004, 0x00000000, 0x0000001B, 0x0007001C, - 0x1D57FF1A, 0x00000000, 0x00050008, 0x00070003, 0x00080000, 0x000E000B, 0x00140011, 0x001B0017, - 0x0E0B0800, 0x1E1C1A19, 0x682C280B, 0x6F6F0A1A, 0x00070004, 0x00000000, 0x0000001B, 0x0007001D, - 0x1E5AFF1B, 0x00000000, 0x00050008, 0x00070003, 0x00080000, 0x000E000B, 0x00140011, 0x001B0017, - 0x0E0B0800, 0x1E1C1A19, 0x692C280C, 0x6F6F0A1A, 0x00070004, 0x00000000, 0x0000001B, 0x0007001E, - 0x1F5DFF1C, 0x00000000, 0x00050008, 0x00070003, 0x00080000, 0x000E000B, 0x00140011, 0x001B0017, - 0x0E0B0800, 0x1E1C1A19, 0x692D290C, 0x6F6F0A1A, 0x00070004, 0x00000000, 0x0000001B, 0x0007001F, - 0x2060FF1D, 0x00000000, 0x00060009, 0x00080003, 0x00090000, 0x0010000D, 0x00170013, 0x001F001B, - 0x180D0900, 0x281E1C1A, 0x692D290D, 0x6F6F0B1B, 0x00080004, 0x00000000, 0x0000001F, 0x00080020, - 0x2060FF1E, 0x00000000, 0x00060009, 0x00080003, 0x00090000, 0x0010000D, 0x00170013, 0x001F001B, - 0x180D0900, 0x281E1C1A, 0x692D290D, 0x6F6F0B1B, 0x00080004, 0x00000000, 0x0000001F, 0x00080020, - 0x2163FF1F, 0x00000000, 0x00060009, 0x00080003, 0x00090000, 0x0010000D, 0x00170013, 0x001F001B, - 0x180D0900, 0x281E1C1A, 0x692E290D, 0x6F6F0B1B, 0x00080004, 0x00000000, 0x0000001F, 0x00080021, - 0x2266FF20, 0x00000000, 0x00060009, 0x00080003, 0x00090000, 0x0010000D, 0x00170013, 0x001F001B, - 0x180D0900, 0x281E1C1A, 0x6A2E290D, 0x6F6F0B1B, 0x00080004, 0x00000000, 0x0000001F, 0x00080022, - 0x2369FF21, 0x00000000, 0x00060009, 0x00080003, 0x00090000, 0x0010000D, 0x00170013, 0x001F001B, - 0x180D0900, 0x281E1C1A, 0x6A2E2A0E, 0x6F6F0B1B, 0x00080004, 0x00000000, 0x0000001F, 0x00080023, - 0x246CFF22, 0x00000000, 0x0007000B, 0x00090004, 0x000B0000, 0x0012000E, 0x00190016, 0x0023001E, - 0x190E0B00, 0x291F1D1B, 0x6A2F2A0E, 0x6F6F0C1D, 0x00090005, 0x00000000, 0x00000023, 0x00090024, - 0x256FFF23, 0x00000000, 0x0007000B, 0x00090004, 0x000B0000, 0x0012000E, 0x00190016, 0x0023001E, - 0x190E0B00, 0x291F1D1B, 0x6B2F2A0E, 0x6F6F0C1D, 0x00090005, 0x00000000, 0x00000023, 0x00090025, - 0x2672FF24, 0x00000000, 0x0007000B, 0x00090004, 0x000B0000, 0x0012000E, 0x00190016, 0x0023001E, - 0x190E0B00, 0x291F1D1B, 0x6B382B0F, 0x6F6F0C1D, 0x00090005, 0x00000000, 0x00000023, 0x00090026, - 0x2672FF25, 0x00000000, 0x0007000B, 0x00090004, 0x000B0000, 0x0012000E, 0x00190016, 0x0023001E, - 0x190E0B00, 0x291F1D1B, 0x6B382B0F, 0x6F6F0C1D, 0x00090005, 0x00000000, 0x00000023, 0x00090026, - 0x2775FF26, 0x00000000, 0x0007000B, 0x00090004, 0x000B0000, 0x0012000E, 0x00190016, 0x0023001E, - 0x190E0B00, 0x291F1D1B, 0x6B382B0F, 0x6F6F0C1D, 0x00090005, 0x00000000, 0x00000023, 0x00090027, - 0x2878FF27, 0x00000000, 0x0008000C, 0x000A0004, 0x000C0000, 0x00140010, 0x001C0018, 0x00270021, - 0x1A180C00, 0x2A281E1C, 0x6B382B18, 0x6F6F0E1E, 0x000A0005, 0x00000000, 0x00000027, 0x000A0028, - 0x297BFF28, 0x00000000, 0x0008000C, 0x000A0004, 0x000C0000, 0x00140010, 0x001C0018, 0x00270021, - 0x1A180C00, 0x2A281E1C, 0x6C382B18, 0x6F6F0E1E, 0x000A0005, 0x00000000, 0x00000027, 0x000A0029, - 0x2A7EFF29, 0x00000000, 0x0008000C, 0x000A0004, 0x000C0000, 0x00140010, 0x001C0018, 0x00270021, - 0x1A180C00, 0x2A281E1C, 0x6C392C18, 0x6F6F0E1E, 0x000A0005, 0x00000000, 0x00000027, 0x000A002A, - 0x2B81FF2A, 0x00000000, 0x0008000C, 0x000A0004, 0x000C0000, 0x00140010, 0x001C0018, 0x00270021, - 0x1A180C00, 0x2A281E1C, 0x6C392C19, 0x6F6F0E1E, 0x000A0005, 0x00000000, 0x00000027, 0x000A002B, - 0x2B81FF2B, 0x00000000, 0x0008000C, 0x000A0004, 0x000C0000, 0x00140010, 0x001C0018, 0x00270021, - 0x1A180C00, 0x2A281E1C, 0x6C392C19, 0x6F6F0E1E, 0x000A0005, 0x00000000, 0x00000027, 0x000A002B, - 0x2C84FF2C, 0x00000000, 0x0009000D, 0x000B0004, 0x000D0000, 0x00160011, 0x001F001B, 0x002B0025, - 0x1B190D00, 0x2B29281E, 0x6D392C19, 0x6F6F0F1F, 0x000B0006, 0x00000000, 0x0000002B, 0x000B002C, - 0x2D87FF2D, 0x00000000, 0x0009000D, 0x000B0004, 0x000D0000, 0x00160011, 0x001F001B, 0x002B0025, - 0x1B190D00, 0x2B29281E, 0x6D392C19, 0x6F6F0F1F, 0x000B0006, 0x00000000, 0x0000002B, 0x000B002D, - 0x2E8AFF2E, 0x00000000, 0x0009000D, 0x000B0004, 0x000D0000, 0x00160011, 0x001F001B, 0x002B0025, - 0x1B190D00, 0x2B29281E, 0x6D392D19, 0x6F6F0F1F, 0x000B0006, 0x00000000, 0x0000002B, 0x000B002E, - 0x2F8DFF2F, 0x00000000, 0x0009000D, 0x000B0004, 0x000D0000, 0x00160011, 0x001F001B, 0x002B0025, - 0x1B190D00, 0x2B29281E, 0x6D3A2D19, 0x6F6F0F1F, 0x000B0006, 0x00000000, 0x0000002B, 0x000B002F, - 0x3090FF30, 0x00000000, 0x0009000E, 0x000C0005, 0x000E0000, 0x00180013, 0x0022001D, 0x002F0028, - 0x1C1A0E00, 0x2C2A291F, 0x6E3A2D1A, 0x6F6F1828, 0x000C0007, 0x00000000, 0x0000002F, 0x000C0030, - 0x3090FF31, 0x00000000, 0x0009000E, 0x000C0005, 0x000E0000, 0x00180013, 0x0022001D, 0x002F0028, - 0x1C1A0E00, 0x2C2A291F, 0x6E3A2D1A, 0x6F6F1828, 0x000C0007, 0x00000000, 0x0000002F, 0x000C0030, - 0x3193FF32, 0x00000000, 0x0009000E, 0x000C0005, 0x000E0000, 0x00180013, 0x0022001D, 0x002F0028, - 0x1C1A0E00, 0x2C2A291F, 0x6E3A2E1A, 0x6F6F1828, 0x000C0007, 0x00000000, 0x0000002F, 0x000C0031, - 0x3296FF33, 0x00000000, 0x0009000E, 0x000C0005, 0x000E0000, 0x00180013, 0x0022001D, 0x002F0028, - 0x1C1A0E00, 0x2C2A291F, 0x6E3A2E1A, 0x6F6F1828, 0x000C0007, 0x00000000, 0x0000002F, 0x000C0032, - 0x3399FF34, 0x00000000, 0x0009000E, 0x000C0005, 0x000E0000, 0x00180013, 0x0022001D, 0x002F0028, - 0x1C1A0E00, 0x2C2A291F, 0x6F3B2E1A, 0x6F6F1828, 0x000C0007, 0x00000000, 0x0000002F, 0x000C0033, - 0x349CFF35, 0x00000000, 0x000A000F, 0x000D0005, 0x000F0000, 0x001A0014, 0x0025001F, 0x0033002B, - 0x1D1A0F00, 0x2D2B2928, 0x6F3B2E1A, 0x6F6F1929, 0x000D0007, 0x00000000, 0x00000033, 0x000D0034, - 0x359FFF36, 0x00000000, 0x000A000F, 0x000D0005, 0x000F0000, 0x001A0014, 0x0025001F, 0x0033002B, - 0x1D1A0F00, 0x2D2B2928, 0x6F3B2F1B, 0x6F6F1929, 0x000D0007, 0x00000000, 0x00000033, 0x000D0035, - 0x359FFF37, 0x00000000, 0x000A000F, 0x000D0005, 0x000F0000, 0x001A0014, 0x0025001F, 0x0033002B, - 0x1D1A0F00, 0x2D2B2928, 0x6F3B2F1B, 0x6F6F1929, 0x000D0007, 0x00000000, 0x00000033, 0x000D0035, - 0x36A2FF38, 0x00000000, 0x000A000F, 0x000D0005, 0x000F0000, 0x001A0014, 0x0025001F, 0x0033002B, - 0x1D1A0F00, 0x2D2B2928, 0x6F3B2F1B, 0x6F6F1929, 0x000D0007, 0x00000000, 0x00000033, 0x000D0036, - 0x37A5FF39, 0x00000000, 0x000A000F, 0x000D0005, 0x000F0000, 0x001A0014, 0x0025001F, 0x0033002B, - 0x1D1A0F00, 0x2D2B2928, 0x783B2F1B, 0x6F6F1929, 0x000D0007, 0x00000000, 0x00000033, 0x000D0037, - 0x38A8FF3A, 0x00000000, 0x000B0010, 0x000E0005, 0x00100000, 0x001C0016, 0x00270022, 0x0037002E, - 0x1E1B1800, 0x2E2C2A29, 0x783C2F1B, 0x6F6F1A2A, 0x000E0008, 0x00000000, 0x00000037, 0x000E0038, - 0x39ABFF3B, 0x00000000, 0x000B0010, 0x000E0005, 0x00100000, 0x001C0016, 0x00270022, 0x0037002E, - 0x1E1B1800, 0x2E2C2A29, 0x783C381B, 0x6F6F1A2A, 0x000E0008, 0x00000000, 0x00000037, 0x000E0039, - 0x39ABFF3C, 0x00000000, 0x000B0010, 0x000E0005, 0x00100000, 0x001C0016, 0x00270022, 0x0037002E, - 0x1E1B1800, 0x2E2C2A29, 0x783C381B, 0x6F6F1A2A, 0x000E0008, 0x00000000, 0x00000037, 0x000E0039, - 0x3AAEFF3D, 0x00000000, 0x000B0010, 0x000E0005, 0x00100000, 0x001C0016, 0x00270022, 0x0037002E, - 0x1E1B1800, 0x2E2C2A29, 0x783C381C, 0x6F6F1A2A, 0x000E0008, 0x00000000, 0x00000037, 0x000E003A, - 0x3BB1FF3E, 0x00000000, 0x000B0010, 0x000E0005, 0x00100000, 0x001C0016, 0x00270022, 0x0037002E, - 0x1E1B1800, 0x2E2C2A29, 0x783C381C, 0x6F6F1A2A, 0x000E0008, 0x00000000, 0x00000037, 0x000E003B, - 0x3CB4FF3F, 0x00000000, 0x000C0012, 0x000F0006, 0x00120000, 0x001E0017, 0x002A0024, 0x003B0032, - 0x1F1C1900, 0x2F2D2B29, 0x793C381C, 0x6F6F1B2A, 0x000F0008, 0x00000000, 0x0000003B, 0x000F003C, - 0x3DB7FF40, 0x00000000, 0x000C0012, 0x000F0006, 0x00120000, 0x001E0017, 0x002A0024, 0x003B0032, - 0x1F1C1900, 0x2F2D2B29, 0x793D381C, 0x6F6F1B2A, 0x000F0008, 0x00000000, 0x0000003B, 0x000F003D, - 0x3EBAFF41, 0x00000000, 0x000C0012, 0x000F0006, 0x00120000, 0x001E0017, 0x002A0024, 0x003B0032, - 0x1F1C1900, 0x2F2D2B29, 0x793D391C, 0x6F6F1B2A, 0x000F0008, 0x00000000, 0x0000003B, 0x000F003E, - 0x3EBAFF42, 0x00000000, 0x000C0012, 0x000F0006, 0x00120000, 0x001E0017, 0x002A0024, 0x003B0032, - 0x1F1C1900, 0x2F2D2B29, 0x793D391C, 0x6F6F1B2A, 0x000F0008, 0x00000000, 0x0000003B, 0x000F003E, - 0x3FBDFF43, 0x00000000, 0x000C0012, 0x000F0006, 0x00120000, 0x001E0017, 0x002A0024, 0x003B0032, - 0x1F1C1900, 0x2F2D2B29, 0x793D391D, 0x6F6F1B2A, 0x000F0008, 0x00000000, 0x0000003B, 0x000F003F, - 0x40C0FF44, 0x00000000, 0x000D0013, 0x00100006, 0x00130000, 0x00210019, 0x002D0027, 0x003F0035, - 0x281D1A00, 0x382D2B2A, 0x793D391D, 0x6F6F1B2B, 0x00180009, 0x00000000, 0x0000003F, 0x00100040, - 0x41C3FF45, 0x00000000, 0x000D0013, 0x00100006, 0x00130000, 0x00210019, 0x002D0027, 0x003F0035, - 0x281D1A00, 0x382D2B2A, 0x793D391D, 0x6F6F1B2B, 0x00180009, 0x00000000, 0x0000003F, 0x00100041, - 0x42C6FF46, 0x00000000, 0x000D0013, 0x00100006, 0x00130000, 0x00210019, 0x002D0027, 0x003F0035, - 0x281D1A00, 0x382D2B2A, 0x793E391D, 0x6F6F1B2B, 0x00180009, 0x00000000, 0x0000003F, 0x00100042, - 0x42C6FF47, 0x00000000, 0x000D0013, 0x00100006, 0x00130000, 0x00210019, 0x002D0027, 0x003F0035, - 0x281D1A00, 0x382D2B2A, 0x793E391D, 0x6F6F1B2B, 0x00180009, 0x00000000, 0x0000003F, 0x00100042, - 0x43C9FF48, 0x00000000, 0x000D0013, 0x00100006, 0x00130000, 0x00210019, 0x002D0027, 0x003F0035, - 0x281D1A00, 0x382D2B2A, 0x7A3E391D, 0x6F6F1B2B, 0x00180009, 0x00000000, 0x0000003F, 0x00100043, - 0x44CCFF49, 0x00000000, 0x000D0014, 0x00110007, 0x00140000, 0x0023001B, 0x00300029, 0x00420038, - 0x291E1A00, 0x382E2C2A, 0x7A3E391E, 0x6F6F1C2C, 0x00190009, 0x00000000, 0x00000042, 0x00110044, - 0x45CFFF4A, 0x00000000, 0x000D0014, 0x00110007, 0x00140000, 0x0023001B, 0x00300029, 0x00420038, - 0x291E1A00, 0x382E2C2A, 0x7A3E391E, 0x6F6F1C2C, 0x00190009, 0x00000000, 0x00000042, 0x00110045, - 0x46D2FF4B, 0x00000000, 0x000D0014, 0x00110007, 0x00140000, 0x0023001B, 0x00300029, 0x00420038, - 0x291E1A00, 0x382E2C2A, 0x7A3E3A1E, 0x6F6F1C2C, 0x00190009, 0x00000000, 0x00000042, 0x00110046, - 0x46D2FF4C, 0x00000000, 0x000D0014, 0x00110007, 0x00140000, 0x0023001B, 0x00300029, 0x00420038, - 0x291E1A00, 0x382E2C2A, 0x7A3E3A1E, 0x6F6F1C2C, 0x00190009, 0x00000000, 0x00000042, 0x00110046, - 0x47D5FF4D, 0x00000000, 0x000D0014, 0x00110007, 0x00140000, 0x0023001B, 0x00300029, 0x00420038, - 0x291E1A00, 0x382E2C2A, 0x7A3F3A1E, 0x6F6F1C2C, 0x00190009, 0x00000000, 0x00000042, 0x00110047, - 0x48D8FF4E, 0x00000000, 0x000E0015, 0x00120007, 0x00150000, 0x0025001C, 0x0033002C, 0x0046003C, - 0x291E1B00, 0x392F2D2B, 0x7A3F3A1E, 0x6F6F1D2C, 0x0019000A, 0x00000000, 0x00000046, 0x00120048, - 0x49DBFF4F, 0x00000000, 0x000E0015, 0x00120007, 0x00150000, 0x0025001C, 0x0033002C, 0x0046003C, - 0x291E1B00, 0x392F2D2B, 0x7A3F3A1F, 0x6F6F1D2C, 0x0019000A, 0x00000000, 0x00000046, 0x00120049, - 0x4ADEFF50, 0x00000000, 0x000E0015, 0x00120007, 0x00150000, 0x0025001C, 0x0033002C, 0x0046003C, - 0x291E1B00, 0x392F2D2B, 0x7B3F3A1F, 0x6F6F1D2C, 0x0019000A, 0x00000000, 0x00000046, 0x0012004A, - 0x4ADEFF51, 0x00000000, 0x000E0015, 0x00120007, 0x00150000, 0x0025001C, 0x0033002C, 0x0046003C, - 0x291E1B00, 0x392F2D2B, 0x7B3F3A1F, 0x6F6F1D2C, 0x0019000A, 0x00000000, 0x00000046, 0x0012004A, - 0x4BE1FF52, 0x00000000, 0x000E0015, 0x00120007, 0x00150000, 0x0025001C, 0x0033002C, 0x0046003C, - 0x291E1B00, 0x392F2D2B, 0x7B3F3A1F, 0x6F6F1D2C, 0x0019000A, 0x00000000, 0x00000046, 0x0012004B, - 0x4CE4FF53, 0x00000000, 0x000F0016, 0x00130007, 0x00160000, 0x0027001E, 0x0035002E, 0x004A003F, - 0x2A1F1B00, 0x39382D2C, 0x7B483A1F, 0x6F6F1D2D, 0x001A000A, 0x00000000, 0x0000004A, 0x0013004C, - 0x4DE7FF54, 0x00000000, 0x000F0016, 0x00130007, 0x00160000, 0x0027001E, 0x0035002E, 0x004A003F, - 0x2A1F1B00, 0x39382D2C, 0x7B483B1F, 0x6F6F1D2D, 0x001A000A, 0x00000000, 0x0000004A, 0x0013004D, - 0x4EEAFF55, 0x00000000, 0x000F0016, 0x00130007, 0x00160000, 0x0027001E, 0x0035002E, 0x004A003F, - 0x2A1F1B00, 0x39382D2C, 0x7B483B1F, 0x6F6F1D2D, 0x001A000A, 0x00000000, 0x0000004A, 0x0013004E, - 0x4EEAFF56, 0x00000000, 0x000F0016, 0x00130007, 0x00160000, 0x0027001E, 0x0035002E, 0x004A003F, - 0x2A1F1B00, 0x39382D2C, 0x7B483B1F, 0x6F6F1D2D, 0x001A000A, 0x00000000, 0x0000004A, 0x0013004E, - 0x4FEDFF57, 0x00000000, 0x000F0016, 0x00130007, 0x00160000, 0x0027001E, 0x0035002E, 0x004A003F, - 0x2A1F1B00, 0x39382D2C, 0x7B483B28, 0x6F6F1D2D, 0x001A000A, 0x00000000, 0x0000004A, 0x0013004F, - 0x50F0FF58, 0x00000000, 0x00100017, 0x00140008, 0x00170000, 0x0029001F, 0x00380030, 0x004E0042, - 0x2A281C00, 0x3A382E2C, 0x7B483B28, 0x6F6F1E2E, 0x001A000B, 0x00000000, 0x0000004E, 0x00140050, - 0x51F3FF59, 0x00000000, 0x00100017, 0x00140008, 0x00170000, 0x0029001F, 0x00380030, 0x004E0042, - 0x2A281C00, 0x3A382E2C, 0x7C483B28, 0x6F6F1E2E, 0x001A000B, 0x00000000, 0x0000004E, 0x00140051, - 0x51F3FF5A, 0x00000000, 0x00100017, 0x00140008, 0x00170000, 0x0029001F, 0x00380030, 0x004E0042, - 0x2A281C00, 0x3A382E2C, 0x7C483B28, 0x6F6F1E2E, 0x001A000B, 0x00000000, 0x0000004E, 0x00140051, - 0x52F6FF5B, 0x00000000, 0x00100017, 0x00140008, 0x00170000, 0x0029001F, 0x00380030, 0x004E0042, - 0x2A281C00, 0x3A382E2C, 0x7C483B28, 0x6F6F1E2E, 0x001A000B, 0x00000000, 0x0000004E, 0x00140052, - 0x53F9FF5C, 0x00000000, 0x00100017, 0x00140008, 0x00170000, 0x0029001F, 0x00380030, 0x004E0042, - 0x2A281C00, 0x3A382E2C, 0x7C493B28, 0x6F6F1E2E, 0x001A000B, 0x00000000, 0x0000004E, 0x00140053, - 0x54FCFF5D, 0x00000000, 0x00100019, 0x00150008, 0x00190000, 0x002B0021, 0x003B0033, 0x00520046, - 0x2B281D00, 0x3A392F2D, 0x7C493C28, 0x6F6F1F2E, 0x001B000B, 0x00000000, 0x00000052, 0x00150054, - 0x55FFFF5E, 0x00000000, 0x00100019, 0x00150008, 0x00190000, 0x002B0021, 0x003B0033, 0x00520046, - 0x2B281D00, 0x3A392F2D, 0x7C493C28, 0x6F6F1F2E, 0x001B000B, 0x00000000, 0x00000052, 0x00150055, - 0x55FFFF5F, 0x00000000, 0x00100019, 0x00150008, 0x00190000, 0x002B0021, 0x003B0033, 0x00520046, - 0x2B281D00, 0x3A392F2D, 0x7C493C28, 0x6F6F1F2E, 0x001B000B, 0x00000000, 0x00000052, 0x00150055, - 0x57FFFF60, 0x00000000, 0x00100019, 0x00150008, 0x00190000, 0x002B0021, 0x003B0033, 0x00520046, - 0x2B281D00, 0x3A392F2D, 0x7C493C29, 0x6F6F1F2E, 0x001B000B, 0x00000000, 0x00000052, 0x00150057, - 0x58FFFF61, 0x00000000, 0x0011001A, 0x00150009, 0x001A0000, 0x002D0022, 0x003E0035, 0x00560049, - 0x2B291D00, 0x3B39382D, 0x7D493C29, 0x6F6F1F2F, 0x001B000C, 0x00000000, 0x00000056, 0x00160058, - 0x5AFFFF62, 0x00000000, 0x0011001A, 0x00150009, 0x001A0000, 0x002D0022, 0x003E0035, 0x00560049, - 0x2B291D00, 0x3B39382D, 0x7D493C29, 0x6F6F1F2F, 0x001B000C, 0x00000000, 0x00000056, 0x0016005A, - 0x5CFFFF63, 0x00000000, 0x0012001B, 0x00160009, 0x001B0000, 0x002F0024, 0x00410038, 0x005A004C, - 0x2C291E00, 0x3B3A382E, 0x7D493D29, 0x6F6F2838, 0x001B000D, 0x00000000, 0x0000005A, 0x0017005C, - 0x5DFFFF64, 0x00000000, 0x0012001B, 0x00160009, 0x001B0000, 0x002F0024, 0x00410038, 0x005A004C, - 0x2C291E00, 0x3B3A382E, 0x7D4A3D29, 0x6F6F2838, 0x001B000D, 0x00000000, 0x0000005A, 0x0017005D, - 0x5FFFFF65, 0x00000000, 0x0012001B, 0x00160009, 0x001B0000, 0x002F0024, 0x00410038, 0x005A004C, - 0x2C291E00, 0x3B3A382E, 0x7E4A3D29, 0x6F6F2838, 0x001B000D, 0x00000000, 0x0000005A, 0x0017005F, - 0x60FFFF66, 0x00000000, 0x0013001C, 0x00170009, 0x001C0000, 0x00310026, 0x0044003A, 0x005E0050, - 0x2C2A1E00, 0x3C3A392F, 0x7E4A3D2A, 0x6F6F2838, 0x001C000D, 0x00000000, 0x0000005E, 0x00180060, - 0x62FFFF67, 0x00000000, 0x0013001C, 0x00170009, 0x001C0000, 0x00310026, 0x0044003A, 0x005E0050, - 0x2C2A1E00, 0x3C3A392F, 0x7E4A3D2A, 0x6F6F2838, 0x001C000D, 0x00000000, 0x0000005E, 0x00180062, - 0x63FFFF68, 0x00000000, 0x0013001C, 0x00170009, 0x001C0000, 0x00310026, 0x0044003A, 0x005E0050, - 0x2C2A1E00, 0x3C3A392F, 0x7E4A3E2A, 0x6F6F2838, 0x001C000D, 0x00000000, 0x0000005E, 0x00180063, - 0x65FFFF69, 0x00000000, 0x0014001D, 0x0018000A, 0x001D0000, 0x00330027, 0x0046003D, 0x00620053, - 0x2D2A1F00, 0x3C3A392F, 0x7E4A3E2A, 0x6F6F2939, 0x001C000E, 0x00000000, 0x00000062, 0x00190065, - 0x66FFFF6A, 0x00000000, 0x0014001D, 0x0018000A, 0x001D0000, 0x00330027, 0x0046003D, 0x00620053, - 0x2D2A1F00, 0x3C3A392F, 0x7E4A3E2A, 0x6F6F2939, 0x001C000E, 0x00000000, 0x00000062, 0x00190066, - 0x68FFFF6B, 0x00000000, 0x0014001E, 0x0019000A, 0x001E0000, 0x00350029, 0x0049003F, 0x00660056, - 0x2D2A1F00, 0x3D3B3938, 0x7F4B3E2A, 0x6F6F2939, 0x001D000E, 0x00000000, 0x00000066, 0x001A0068, - 0x69FFFF6C, 0x00000000, 0x0014001E, 0x0019000A, 0x001E0000, 0x00350029, 0x0049003F, 0x00660056, - 0x2D2A1F00, 0x3D3B3938, 0x7F4B3E2A, 0x6F6F2939, 0x001D000E, 0x00000000, 0x00000066, 0x001A0069, - 0x6BFFFF6D, 0x00000000, 0x0014001E, 0x0019000A, 0x001E0000, 0x00350029, 0x0049003F, 0x00660056, - 0x2D2A1F00, 0x3D3B3938, 0x7F4B3F2B, 0x6F6F2939, 0x001D000E, 0x00000000, 0x00000066, 0x001A006B, - 0x6CFFFF6E, 0x00000000, 0x00150020, 0x001A000B, 0x00200000, 0x0037002A, 0x004C0041, 0x0069005A, - 0x2E2B2800, 0x3D3B3A38, 0x7F4B3F2B, 0x6F6F2939, 0x001D000F, 0x00000000, 0x00000069, 0x001B006C, - 0x6EFFFF6F, 0x00000000, 0x00150020, 0x001A000B, 0x00200000, 0x0037002A, 0x004C0041, 0x0069005A, - 0x2E2B2800, 0x3D3B3A38, 0x884B3F2B, 0x6F6F2939, 0x001D000F, 0x00000000, 0x00000069, 0x001B006E, - 0x6FFFFF70, 0x00000000, 0x00150020, 0x001A000B, 0x00200000, 0x0037002A, 0x004C0041, 0x0069005A, - 0x2E2B2800, 0x3D3B3A38, 0x884B3F2B, 0x6F6F2939, 0x001D000F, 0x00000000, 0x00000069, 0x001B006F, - 0x71FFFF71, 0x00000000, 0x00160021, 0x001B000B, 0x00210000, 0x0039002C, 0x004F0044, 0x006D005D, - 0x2E2B2800, 0x3E3C3A39, 0x884C482B, 0x6F6F2A3A, 0x001E000F, 0x00000000, 0x0000006D, 0x001C0071, - 0x72FFFF72, 0x00000000, 0x00160021, 0x001B000B, 0x00210000, 0x0039002C, 0x004F0044, 0x006D005D, - 0x2E2B2800, 0x3E3C3A39, 0x884C482B, 0x6F6F2A3A, 0x001E000F, 0x00000000, 0x0000006D, 0x001C0072, - 0x74FFFF73, 0x00000000, 0x00170022, 0x001C000B, 0x00220000, 0x003B002D, 0x00520046, 0x00710060, - 0x2F2B2900, 0x3E3C3A39, 0x884C482B, 0x6F6F2A3A, 0x001E0018, 0x00000000, 0x00000071, 0x001D0074, - 0x75FFFF74, 0x00000000, 0x00170022, 0x001C000B, 0x00220000, 0x003B002D, 0x00520046, 0x00710060, - 0x2F2B2900, 0x3E3C3A39, 0x884C482C, 0x6F6F2A3A, 0x001E0018, 0x00000000, 0x00000071, 0x001D0075, - 0x76FFFF75, 0x00000000, 0x00170022, 0x001C000B, 0x00220000, 0x003B002D, 0x00520046, 0x00710060, - 0x2F2B2900, 0x3E3C3A39, 0x884C482C, 0x6F6F2A3A, 0x001E0018, 0x00000000, 0x00000071, 0x001D0076, - 0x78FFFF76, 0x00000000, 0x00170023, 0x001D000C, 0x00230000, 0x003D002F, 0x00540049, 0x00750064, - 0x2F2C2900, 0x3F3D3B39, 0x894C482C, 0x6F6F2A3A, 0x001F0018, 0x00000000, 0x00000075, 0x001E0078, - 0x79FFFF77, 0x00000000, 0x00170023, 0x001D000C, 0x00230000, 0x003D002F, 0x00540049, 0x00750064, - 0x2F2C2900, 0x3F3D3B39, 0x894C482C, 0x6F6F2A3A, 0x001F0018, 0x00000000, 0x00000075, 0x001E0079, - 0x7BFFFF78, 0x00000000, 0x00170023, 0x001D000C, 0x00230000, 0x003D002F, 0x00540049, 0x00750064, - 0x2F2C2900, 0x3F3D3B39, 0x894D482C, 0x6F6F2A3A, 0x001F0018, 0x00000000, 0x00000075, 0x001E007B, - 0x7DFFFF79, 0x00000000, 0x00180024, 0x001E000C, 0x00240000, 0x003F0030, 0x0057004B, 0x00790067, - 0x382C2900, 0x3F3D3B39, 0x894D492C, 0x6F6F2B3B, 0x001F0019, 0x00000000, 0x00000079, 0x001F007D, - 0x7FFFFF7A, 0x00000000, 0x00180024, 0x001E000C, 0x00240000, 0x003F0030, 0x0057004B, 0x00790067, - 0x382C2900, 0x3F3D3B39, 0x894D492D, 0x6F6F2B3B, 0x001F0019, 0x00000000, 0x00000079, 0x001F007F, - 0x81FFFF7B, 0x00000000, 0x00190026, 0x001F000D, 0x00260000, 0x00410032, 0x005A004E, 0x007D006A, - 0x382D2A00, 0x483D3B3A, 0x894D492D, 0x6F6F2B3B, 0x00280019, 0x00000000, 0x0000007D, 0x00200081, - 0x83FFFF7C, 0x00000000, 0x00190026, 0x001F000D, 0x00260000, 0x00410032, 0x005A004E, 0x007D006A, - 0x382D2A00, 0x483D3B3A, 0x894D492D, 0x6F6F2B3B, 0x00280019, 0x00000000, 0x0000007D, 0x00200083, - 0x86FFFF7D, 0x00000000, 0x001A0027, 0x0020000D, 0x00270000, 0x00430034, 0x005D0050, 0x0081006E, - 0x382D2A00, 0x483E3C3A, 0x8A4E492D, 0x6F6F2B3B, 0x00280019, 0x00000000, 0x00000081, 0x00210086, - 0x88FFFF7E, 0x00000000, 0x001B0028, 0x0021000D, 0x00280000, 0x00450035, 0x00600052, 0x00850071, - 0x392D2A00, 0x483E3C3A, 0x8A4E492D, 0x6F6F2C3C, 0x0028001A, 0x00000000, 0x00000085, 0x00220088, - 0x8AFFFF7F, 0x00000000, 0x001B0028, 0x0021000D, 0x00280000, 0x00450035, 0x00600052, 0x00850071, - 0x392D2A00, 0x483E3C3A, 0x8A4E492E, 0x6F6F2C3C, 0x0028001A, 0x00000000, 0x00000085, 0x0022008A, - 0x8CFFFF80, 0x00000000, 0x001B0029, 0x0022000E, 0x00290000, 0x00470037, 0x00620055, 0x00890074, - 0x392E2A00, 0x493F3C3B, 0x8A4E4A2E, 0x6F6F2C3C, 0x0029001A, 0x00000000, 0x00000089, 0x0023008C, - 0x8EFFFF81, 0x00000000, 0x001B0029, 0x0022000E, 0x00290000, 0x00470037, 0x00620055, 0x00890074, - 0x392E2A00, 0x493F3C3B, 0x8A4F4A2E, 0x6F6F2C3C, 0x0029001A, 0x00000000, 0x00000089, 0x0023008E, - 0x90FFFF82, 0x00000000, 0x001C002A, 0x0023000E, 0x002A0000, 0x00490038, 0x00650057, 0x008D0078, - 0x392E2B00, 0x493F3D3B, 0x8A4F4A2E, 0x6F6F2C3C, 0x0029001A, 0x00000000, 0x0000008D, 0x00240090, - 0x92FFFF83, 0x00000000, 0x001C002A, 0x0023000E, 0x002A0000, 0x00490038, 0x00650057, 0x008D0078, - 0x392E2B00, 0x493F3D3B, 0x8A4F4A2E, 0x6F6F2C3C, 0x0029001A, 0x00000000, 0x0000008D, 0x00240092, - 0x94FFFF84, 0x00000000, 0x001D002B, 0x0024000E, 0x002B0000, 0x004B003A, 0x0068005A, 0x0091007B, - 0x392F2B00, 0x493F3D3B, 0x8B4F4A2F, 0x6F6F2D3D, 0x0029001A, 0x00000000, 0x00000091, 0x00250094, - 0x96FFFF85, 0x00000000, 0x001D002B, 0x0024000E, 0x002B0000, 0x004B003A, 0x0068005A, 0x0091007B, - 0x392F2B00, 0x493F3D3B, 0x8B4F4A2F, 0x6F6F2D3D, 0x0029001A, 0x00000000, 0x00000091, 0x00250096, - 0x98FFFF86, 0x00000000, 0x001E002D, 0x0025000F, 0x002D0000, 0x004D003B, 0x006B005C, 0x0094007E, - 0x3A2F2B00, 0x49483D3C, 0x8B584A2F, 0x6F6F2D3D, 0x0029001B, 0x00000000, 0x00000094, 0x00260098, - 0x9AFFFF87, 0x00000000, 0x001E002D, 0x0025000F, 0x002D0000, 0x004D003B, 0x006B005C, 0x0094007E, - 0x3A2F2B00, 0x49483D3C, 0x8B584B2F, 0x6F6F2D3D, 0x0029001B, 0x00000000, 0x00000094, 0x0026009A, - 0x9CFFFF88, 0x00000000, 0x001E002E, 0x0026000F, 0x002E0000, 0x004F003D, 0x006E005E, 0x00980081, - 0x3A2F2C00, 0x4A483E3C, 0x8B584B2F, 0x6F6F2D3D, 0x002A001B, 0x00000000, 0x00000098, 0x0027009C, - 0x9EFFFF89, 0x00000000, 0x001E002E, 0x0026000F, 0x002E0000, 0x004F003D, 0x006E005E, 0x00980081, - 0x3A2F2C00, 0x4A483E3C, 0x8B584B38, 0x6F6F2D3D, 0x002A001B, 0x00000000, 0x00000098, 0x0027009E, - 0xA1FFFF8A, 0x00000000, 0x001F002F, 0x00270010, 0x002F0000, 0x0051003F, 0x00710061, 0x009C0085, - 0x3A382C00, 0x4A483E3C, 0x8B584B38, 0x6F6F2E3E, 0x002A001B, 0x00000000, 0x0000009C, 0x002800A1, - 0xA4FFFF8B, 0x00000000, 0x00200030, 0x00280010, 0x00300000, 0x00530040, 0x00730063, 0x00A00088, - 0x3A382C00, 0x4A493E3C, 0x8C584B38, 0x6F6F2E3E, 0x002A001B, 0x00000000, 0x000000A0, 0x002900A4, - 0xA6FFFF8C, 0x00000000, 0x00200030, 0x00280010, 0x00300000, 0x00530040, 0x00730063, 0x00A00088, - 0x3A382C00, 0x4A493E3C, 0x8C594B38, 0x6F6F2E3E, 0x002A001B, 0x00000000, 0x000000A0, 0x002900A6, - 0xA9FFFF8D, 0x00000000, 0x00210031, 0x00290010, 0x00310000, 0x00550042, 0x00760066, 0x00A4008B, - 0x3B382C00, 0x4A493F3D, 0x8C594C38, 0x6F6F2E3E, 0x002A001C, 0x00000000, 0x000000A4, 0x002A00A9, - 0xACFFFF8E, 0x00000000, 0x00220032, 0x002A0011, 0x00320000, 0x00570043, 0x00790068, 0x00A8008F, - 0x3B382D00, 0x4B493F3D, 0x8C594C38, 0x6F6F2F3F, 0x002B001C, 0x00000000, 0x000000A8, 0x002B00AC, - 0xAEFFFF8F, 0x00000000, 0x00220032, 0x002A0011, 0x00320000, 0x00570043, 0x00790068, 0x00A8008F, - 0x3B382D00, 0x4B493F3D, 0x8C594C39, 0x6F6F2F3F, 0x002B001C, 0x00000000, 0x000000A8, 0x002B00AE, - 0xB1FFFF90, 0x00000000, 0x00220034, 0x002B0011, 0x00340000, 0x00590045, 0x007C006B, 0x00AC0092, - 0x3B392D00, 0x4B49483D, 0x8D594C39, 0x6F6F2F3F, 0x002B001C, 0x00000000, 0x000000AC, 0x002C00B1, - 0xB4FFFF91, 0x00000000, 0x00230035, 0x002C0012, 0x00350000, 0x005B0046, 0x007F006D, 0x00B00095, - 0x3B392D00, 0x4B49483E, 0x8D594C39, 0x6F6F383F, 0x002B001D, 0x00000000, 0x000000B0, 0x002D00B4, - 0xB6FFFF92, 0x00000000, 0x00230035, 0x002C0012, 0x00350000, 0x005B0046, 0x007F006D, 0x00B00095, - 0x3B392D00, 0x4B49483E, 0x8D594C39, 0x6F6F383F, 0x002B001D, 0x00000000, 0x000000B0, 0x002D00B6, - 0xB9FFFF93, 0x00000000, 0x00240036, 0x002D0012, 0x00360000, 0x005D0048, 0x0081006F, 0x00B40099, - 0x3C392E00, 0x4B4A483E, 0x8D5A4D39, 0x6F6F3848, 0x002B001D, 0x00000000, 0x000000B4, 0x002E00B9, - 0xBBFFFF94, 0x00000000, 0x00240036, 0x002D0012, 0x00360000, 0x005D0048, 0x0081006F, 0x00B40099, - 0x3C392E00, 0x4B4A483E, 0x8D5A4D39, 0x6F6F3848, 0x002B001D, 0x00000000, 0x000000B4, 0x002E00BB, - 0xBEFFFF95, 0x00000000, 0x00250037, 0x002E0012, 0x00370000, 0x005F0049, 0x00840072, 0x00B8009C, - 0x3C392E00, 0x4C4A483E, 0x8E5A4D39, 0x6F6F3848, 0x002C001D, 0x00000000, 0x000000B8, 0x002F00BE, - 0xC0FFFF96, 0x00000000, 0x00260038, 0x002F0013, 0x00380000, 0x0062004B, 0x00870074, 0x00BC009F, - 0x3C392E00, 0x4C4A483F, 0x8E5A4D39, 0x6F6F3848, 0x002C001D, 0x00000000, 0x000000BC, 0x003000C0, - 0xC3FFFF97, 0x00000000, 0x00260038, 0x002F0013, 0x00380000, 0x0062004B, 0x00870074, 0x00BC009F, - 0x3C392E00, 0x4C4A483F, 0x8E5A4D3A, 0x6F6F3848, 0x002C001D, 0x00000000, 0x000000BC, 0x003000C3, - 0xC7FFFF98, 0x00000000, 0x00260039, 0x00300013, 0x00390000, 0x0064004D, 0x008A0077, 0x00BF00A3, - 0x3D3A2E00, 0x4C4A493F, 0x8E5A4E3A, 0x6F6F3848, 0x002C001E, 0x00000000, 0x000000BF, 0x003100C7, - 0xCAFFFF99, 0x00000000, 0x0027003B, 0x00310014, 0x003B0000, 0x0066004E, 0x008D0079, 0x00C300A6, - 0x3D3A2F00, 0x4C4A493F, 0x8E5A4E3A, 0x6F6F3949, 0x002C001E, 0x00000000, 0x000000C3, 0x003200CA, - 0xCDFFFF9A, 0x00000000, 0x0028003C, 0x00320014, 0x003C0000, 0x00680050, 0x008F007C, 0x00C700A9, - 0x3D3A2F00, 0x4C4B4948, 0x8F5B4E3A, 0x6F6F3949, 0x002D001E, 0x00000000, 0x000000C7, 0x003300CD, - 0xD0FFFF9B, 0x00000000, 0x0029003D, 0x00330014, 0x003D0000, 0x006A0051, 0x0092007E, 0x00CB00AD, - 0x3D3A2F00, 0x4D4B4948, 0x8F5B4E3A, 0x6F6F3949, 0x002D001E, 0x00000000, 0x000000CB, 0x003400D0, - 0xD3FFFF9C, 0x00000000, 0x0029003D, 0x00330014, 0x003D0000, 0x006A0051, 0x0092007E, 0x00CB00AD, - 0x3D3A2F00, 0x4D4B4948, 0x8F5B4E3A, 0x6F6F3949, 0x002D001E, 0x00000000, 0x000000CB, 0x003400D3, - 0xD6FFFF9D, 0x00000000, 0x0029003E, 0x00340015, 0x003E0000, 0x006C0053, 0x00950080, 0x00CF00B0, - 0x3E3A3800, 0x4D4B4948, 0x8F5B4F3B, 0x6F6F3949, 0x002D001F, 0x00000000, 0x000000CF, 0x003500D6, - 0xD9FFFF9E, 0x00000000, 0x002A003F, 0x00350015, 0x003F0000, 0x006E0054, 0x00980083, 0x00D300B3, - 0x3E3B3800, 0x4D4B4A48, 0x8F5B4F3B, 0x6F6F3949, 0x002D001F, 0x00000000, 0x000000D3, 0x003600D9, - 0xDCFFFF9F, 0x00000000, 0x002B0040, 0x00360015, 0x00400000, 0x00700056, 0x009B0085, 0x00D700B7, - 0x3E3B3800, 0x4D4B4A48, 0x8F5B4F3B, 0x6F6F3949, 0x002E001F, 0x00000000, 0x000000D7, 0x003700DC, - 0xDFFFFFA0, 0x00000000, 0x002B0040, 0x00360015, 0x00400000, 0x00700056, 0x009B0085, 0x00D700B7, - 0x3E3B3800, 0x4D4B4A48, 0x8F5B4F3B, 0x6F6F3949, 0x002E001F, 0x00000000, 0x000000D7, 0x003700DF, - 0xE2FFFFA1, 0x00000000, 0x002C0042, 0x00370016, 0x00420000, 0x00720058, 0x009E0088, 0x00DB00BA, - 0x3E3B3800, 0x4E4C4A49, 0x8F5C4F3B, 0x6F6F3A4A, 0x002E0028, 0x00000000, 0x000000DB, 0x003800E2, - 0xE6FFFFA2, 0x00000000, 0x002D0043, 0x00380016, 0x00430000, 0x00740059, 0x00A0008A, 0x00DF00BD, - 0x3F3B3800, 0x4E4C4A49, 0x8F5C583B, 0x6F6F3A4A, 0x002E0028, 0x00000000, 0x000000DF, 0x003900E6, - 0xE9FFFFA3, 0x00000000, 0x002D0044, 0x00390017, 0x00440000, 0x0076005B, 0x00A3008C, 0x00E300C1, - 0x3F3B3900, 0x4E4C4A49, 0x8F5C583B, 0x6F6F3A4A, 0x002E0028, 0x00000000, 0x000000E3, 0x003A00E9, - 0xEDFFFFA4, 0x00000000, 0x002E0045, 0x003A0017, 0x00450000, 0x0078005C, 0x00A6008F, 0x00E600C4, - 0x3F3C3900, 0x4E4C4A49, 0x8F5C583C, 0x6F6F3A4A, 0x002F0028, 0x00000000, 0x000000E6, 0x003B00ED, - 0xF0FFFFA5, 0x00000000, 0x002F0046, 0x003B0017, 0x00460000, 0x007A005E, 0x00A90091, 0x00EA00C7, - 0x3F3C3900, 0x4F4C4B49, 0x8F5C583C, 0x6F6F3A4A, 0x002F0028, 0x00000000, 0x000000EA, 0x003C00F0, - 0xF3FFFFA6, 0x00000000, 0x002F0046, 0x003B0017, 0x00460000, 0x007A005E, 0x00A90091, 0x00EA00C7, - 0x3F3C3900, 0x4F4C4B49, 0x8F5C583C, 0x6F6F3A4A, 0x002F0028, 0x00000000, 0x000000EA, 0x003C00F3, - 0xF7FFFFA7, 0x00000000, 0x00300047, 0x003C0018, 0x00470000, 0x007C005F, 0x00AC0094, 0x00EE00CB, - 0x483C3900, 0x4F4D4B49, 0x8F5D583C, 0x6F6F3A4A, 0x002F0028, 0x00000000, 0x000000EE, 0x003D00F7, - 0xFAFFFFA8, 0x00000000, 0x00300049, 0x003D0018, 0x00490000, 0x007E0061, 0x00AE0096, 0x00F200CE, - 0x483C3900, 0x4F4D4B49, 0x8F5D593C, 0x6F6F3B4B, 0x002F0029, 0x00000000, 0x000000F2, 0x003E00FA, - 0xFDFFFFA9, 0x00000000, 0x0031004A, 0x003E0019, 0x004A0000, 0x00800062, 0x00B10099, 0x00F600D1, - 0x483C3900, 0x4F4D4B4A, 0x8F5D593C, 0x6F6F3B4B, 0x00380029, 0x00000000, 0x000000F6, 0x003F00FD, - 0xFFFFFFAA, 0x00000000, 0x0032004B, 0x003F0019, 0x004B0000, 0x00820064, 0x00B4009B, 0x00FA00D5, - 0x483D3900, 0x584D4B4A, 0x8F5D593D, 0x6F6F3B4B, 0x00380029, 0x00000000, 0x000000FA, 0x00400101, - 0xFFFFFFAB, 0x00000000, 0x0033004C, 0x003F0019, 0x004C0000, 0x00840066, 0x00B7009D, 0x00FE00D8, - 0x483D3A00, 0x584E4B4A, 0x8F5D593D, 0x6F6F3B4B, 0x00380029, 0x00000000, 0x000000FE, 0x00410105, - 0xFFFFFFAC, 0x00000000, 0x0034004D, 0x0040001A, 0x004D0000, 0x00860067, 0x00BA00A0, 0x010200DB, - 0x483D3A00, 0x584E4C4A, 0x8F5E593D, 0x6F6F3B4B, 0x00380029, 0x00000000, 0x00000102, 0x00420109, - 0xFFFFFFAD, 0x00000000, 0x0034004F, 0x0041001A, 0x004F0000, 0x00880069, 0x00BC00A2, 0x010600DE, - 0x493D3A00, 0x584E4C4A, 0x8F5E593D, 0x6F6F3C4B, 0x00380029, 0x00000000, 0x00000106, 0x0043010D, - 0xFFFFFFAE, 0x00000000, 0x00350050, 0x0042001B, 0x00500000, 0x008A006A, 0x00BF00A5, 0x010A00E2, - 0x493D3A00, 0x584E4C4A, 0x8F5E593D, 0x6F6F3C4C, 0x00380029, 0x00000000, 0x0000010A, 0x00440110, - 0xFFFFFFAF, 0x00000000, 0x00360051, 0x0043001B, 0x00510000, 0x008C006C, 0x00C200A7, 0x010E00E5, - 0x493E3A00, 0x584E4C4A, 0x8F5E593E, 0x6F6F3C4C, 0x0038002A, 0x00000000, 0x0000010E, 0x00450114, - 0xFFFFFFB0, 0x00000000, 0x00370052, 0x0044001B, 0x00520000, 0x008E006D, 0x00C500AA, 0x011100E8, - 0x493E3A00, 0x594F4C4B, 0x8F5E5A3E, 0x6F6F3C4C, 0x0039002A, 0x00000000, 0x00000111, 0x00460118, - 0xFFFFFFB1, 0x00000000, 0x00370053, 0x0045001C, 0x00530000, 0x0090006F, 0x00C800AC, 0x011500EC, - 0x493E3A00, 0x594F4D4B, 0x8F5F5A3E, 0x6F6F3C4C, 0x0039002A, 0x00000000, 0x00000115, 0x0047011C, - 0xFFFFFFB2, 0x00000000, 0x00380054, 0x0046001C, 0x00540000, 0x00920071, 0x00CB00AE, 0x011900EF, - 0x493E3B00, 0x594F4D4B, 0x8F5F5A3E, 0x6F6F3C4C, 0x0039002A, 0x00000000, 0x00000119, 0x00480120, - 0xFFFFFFB3, 0x00000000, 0x00390056, 0x0047001D, 0x00560000, 0x00940072, 0x00CD00B1, 0x011D00F2, - 0x493E3B00, 0x594F4D4B, 0x8F5F5A3E, 0x6F6F3D4D, 0x0039002A, 0x00000000, 0x0000011D, 0x00490124, - 0xFFFFFFB4, 0x00000000, 0x003A0057, 0x0048001D, 0x00570000, 0x00960074, 0x00D000B3, 0x012100F6, - 0x493F3B00, 0x594F4D4B, 0x8F5F5A3F, 0x6F6F3D4D, 0x0039002A, 0x00000000, 0x00000121, 0x004A0128, - 0xFFFFFFB5, 0x00000000, 0x003B0058, 0x0049001D, 0x00580000, 0x00980075, 0x00D300B6, 0x012500F9, - 0x4A3F3B00, 0x59584D4B, 0x8F5F5A3F, 0x6F6F3D4D, 0x0039002A, 0x00000000, 0x00000125, 0x004B012C, - 0xFFFFFFB6, 0x00000000, 0x003B0059, 0x004A001E, 0x00590000, 0x009A0077, 0x00D600B8, 0x012900FC, - 0x4A3F3B00, 0x59584D4C, 0x8F685A3F, 0x6F6F3D4D, 0x0039002B, 0x00000000, 0x00000129, 0x004C0130, - 0xFFFFFFB7, 0x00000000, 0x003C005A, 0x004B001E, 0x005A0000, 0x009C0078, 0x00D900BA, 0x012D0100, - 0x4A3F3B00, 0x59584E4C, 0x8F685B3F, 0x6F6F3D4D, 0x0039002B, 0x00000000, 0x0000012D, 0x004D0135, - 0xFFFFFFB8, 0x00000000, 0x003D005B, 0x004C001E, 0x005B0000, 0x009E007A, 0x00DB00BD, 0x01310103, - 0x4A3F3B00, 0x5A584E4C, 0x8F685B3F, 0x6F6F3D4D, 0x003A002B, 0x00000000, 0x00000131, 0x004E0139, - 0xFFFFFFB9, 0x00000000, 0x003E005D, 0x004D001F, 0x005D0000, 0x00A0007B, 0x00DE00BF, 0x01350106, - 0x4A3F3C00, 0x5A584E4C, 0x8F685B48, 0x6F6F3E4E, 0x003A002B, 0x00000000, 0x00000135, 0x004F013D, - 0xFFFFFFBA, 0x00000000, 0x003F005E, 0x004E001F, 0x005E0000, 0x00A3007D, 0x00E100C2, 0x0139010A, - 0x4A483C00, 0x5A584E4C, 0x8F685B48, 0x6F6F3E4E, 0x003A002B, 0x00000000, 0x00000139, 0x00500142, - 0xFFFFFFBB, 0x00000000, 0x003F005F, 0x004F0020, 0x005F0000, 0x00A5007F, 0x00E400C4, 0x013C010D, - 0x4A483C00, 0x5A584E4C, 0x8F685B48, 0x6F6F3E4E, 0x003A002B, 0x00000000, 0x0000013C, 0x00510146, - 0xFFFFFFBC, 0x00000000, 0x00400060, 0x00500020, 0x00600000, 0x00A70080, 0x00E700C7, 0x01400110, - 0x4A483C00, 0x5A594E4C, 0x8F685B48, 0x6F6F3E4E, 0x003A002B, 0x00000000, 0x00000140, 0x0052014A, - 0xFFFFFFBD, 0x00000000, 0x00410061, 0x00510020, 0x00610000, 0x00A90082, 0x00E900C9, 0x01440114, - 0x4B483C00, 0x5A594F4D, 0x8F695B48, 0x6F6F3E4E, 0x003A002B, 0x00000000, 0x00000144, 0x0053014F, - 0xFFFFFFBE, 0x00000000, 0x00420064, 0x00530021, 0x00640000, 0x00AD0085, 0x00EF00CE, 0x014C011A, - 0x4B483D00, 0x5A594F4D, 0x8F695C48, 0x6F6F3F4F, 0x003A002C, 0x00000000, 0x0000014C, 0x00550154, - 0xFFFFFFBF, 0x00000000, 0x00430065, 0x00540022, 0x00650000, 0x00AF0086, 0x00F200D0, 0x0150011E, - 0x4B483D00, 0x5B594F4D, 0x8F695C48, 0x6F6F3F4F, 0x003B002C, 0x00000000, 0x00000150, 0x00560158, - 0xFFFFFFC0, 0x00000000, 0x00440066, 0x00550022, 0x00660000, 0x00B10088, 0x00F500D3, 0x01540121, - 0x4B493D00, 0x5B594F4D, 0x8F695C49, 0x6F6F3F4F, 0x003B002C, 0x00000000, 0x00000154, 0x0057015D, - 0xFFFFFFC1, 0x00000000, 0x00450067, 0x00560022, 0x00670000, 0x00B3008A, 0x00F800D5, 0x01580124, - 0x4B493D00, 0x5B59584D, 0x8F695C49, 0x6F6F3F4F, 0x003B002C, 0x00000000, 0x00000158, 0x00580162, - 0xFFFFFFC2, 0x00000000, 0x00460068, 0x00570023, 0x00680000, 0x00B5008B, 0x00FA00D8, 0x015C0128, - 0x4B493D00, 0x5B59584E, 0x8F695C49, 0x6F6F3F4F, 0x003B002C, 0x00000000, 0x0000015C, 0x00590167, - 0xFFFFFFC3, 0x00000000, 0x0047006B, 0x00590024, 0x006B0000, 0x00B9008E, 0x010000DC, 0x0163012E, - 0x4C493D00, 0x5B59584E, 0x8F695C49, 0x6F6F4858, 0x003B002D, 0x00000000, 0x00000163, 0x005B016C, - 0xFFFFFFC4, 0x00000000, 0x0048006C, 0x005A0024, 0x006C0000, 0x00BB0090, 0x010300DF, 0x01670131, - 0x4C493E00, 0x5B5A584E, 0x8F695D49, 0x6F6F4858, 0x003B002D, 0x00000000, 0x00000167, 0x005C0171, - 0xFFFFFFC5, 0x00000000, 0x0049006D, 0x005B0024, 0x006D0000, 0x00BD0091, 0x010600E1, 0x016B0135, - 0x4C493E00, 0x5B5A584E, 0x8F6A5D49, 0x6F6F4858, 0x003B002D, 0x00000000, 0x0000016B, 0x005D0176, - 0xFFFFFFC6, 0x00000000, 0x0049006E, 0x005C0025, 0x006E0000, 0x00BF0093, 0x010800E4, 0x016F0138, - 0x4C493E00, 0x5B5A584E, 0x8F6A5D49, 0x6F6F4858, 0x003C002D, 0x00000000, 0x0000016F, 0x005E017B, - 0xFFFFFFC7, 0x00000000, 0x004B0071, 0x005E0026, 0x00710000, 0x00C30096, 0x010E00E9, 0x0177013F, - 0x4C493E00, 0x5C5A584F, 0x8F6A5D49, 0x6F6F4858, 0x003C002D, 0x00000000, 0x00000177, 0x00600180, - 0xFFFFFFC8, 0x00000000, 0x004C0072, 0x005F0026, 0x00720000, 0x00C50098, 0x011100EB, 0x017B0142, - 0x4C4A3E00, 0x5C5A594F, 0x8F6A5D4A, 0x6F6F4858, 0x003C002D, 0x00000000, 0x0000017B, 0x00610185, - 0xFFFFFFC9, 0x00000000, 0x004D0073, 0x00600026, 0x00730000, 0x00C70099, 0x011400ED, 0x017F0145, - 0x4C4A3E00, 0x5C5A594F, 0x8F6A5E4A, 0x6F6F4858, 0x003C002E, 0x00000000, 0x0000017F, 0x0062018B, - 0xFFFFFFCA, 0x00000000, 0x004E0075, 0x00620027, 0x00750000, 0x00CB009C, 0x011900F2, 0x0187014C, - 0x4D4A3F00, 0x5C5A594F, 0x8F6A5E4A, 0x6F6F4959, 0x003C002E, 0x00000000, 0x00000187, 0x00640190, - 0xFFFFFFCB, 0x00000000, 0x004F0076, 0x00630027, 0x00760000, 0x00CD009E, 0x011C00F5, 0x018B014F, - 0x4D4A3F00, 0x5C5A594F, 0x8F6A5E4A, 0x6F6F4959, 0x003C002E, 0x00000000, 0x0000018B, 0x00650196, - 0xFFFFFFCC, 0x00000000, 0x00500078, 0x00640028, 0x00780000, 0x00CF009F, 0x011F00F7, 0x018E0153, - 0x4D4A3F00, 0x5C5B594F, 0x8F6B5E4A, 0x6F6F4959, 0x003D002E, 0x00000000, 0x0000018E, 0x0066019B, - 0xFFFFFFCD, 0x00000000, 0x0051007A, 0x00660029, 0x007A0000, 0x00D300A3, 0x012500FC, 0x01960159, - 0x4D4A3F00, 0x5D5B5958, 0x8F6B5E4A, 0x6F6F4959, 0x003D002E, 0x00000000, 0x00000196, 0x006801A1, - 0xFFFFFFCE, 0x00000000, 0x0052007B, 0x00670029, 0x007B0000, 0x00D500A4, 0x012700FE, 0x019A015D, - 0x4D4A3F00, 0x5D5B5958, 0x8F6B5E4A, 0x6F6F4959, 0x003D002E, 0x00000000, 0x0000019A, 0x006901A7, - 0xFFFFFFCF, 0x00000000, 0x0054007D, 0x0068002A, 0x007D0000, 0x00D900A7, 0x012D0103, 0x01A20163, - 0x4E4A4800, 0x5D5B5958, 0x8F6B5F4B, 0x6F6F4959, 0x003D002F, 0x00000000, 0x000001A2, 0x006B01AD, - 0xFFFFFFD0, 0x00000000, 0x0054007F, 0x0069002A, 0x007F0000, 0x00DB00A9, 0x01300106, 0x01A60167, - 0x4E4B4800, 0x5D5B5A58, 0x8F6B5F4B, 0x6F6F4959, 0x003D002F, 0x00000000, 0x000001A6, 0x006C01B3, - 0xFFFFFFD1, 0x00000000, 0x00560081, 0x006B002B, 0x00810000, 0x00DF00AC, 0x0135010A, 0x01AE016D, - 0x4E4B4800, 0x5D5B5A58, 0x8F6B5F4B, 0x6F6F4959, 0x003D002F, 0x00000000, 0x000001AE, 0x006E01B9, - 0xFFFFFFD2, 0x00000000, 0x00570082, 0x006C002B, 0x00820000, 0x00E100AD, 0x0138010D, 0x01B20171, - 0x4E4B4800, 0x5E5C5A58, 0x8F6B5F4B, 0x6F6F4A5A, 0x003E002F, 0x00000000, 0x000001B2, 0x006F01BF, - 0xFFFFFFD3, 0x00000000, 0x00580084, 0x006E002C, 0x00840000, 0x00E600B1, 0x013E0112, 0x01B90177, - 0x4E4B4800, 0x5E5C5A59, 0x8F6C684B, 0x6F6F4A5A, 0x003E0038, 0x00000000, 0x000001B9, 0x007101C6, - 0xFFFFFFD4, 0x00000000, 0x005A0087, 0x0070002D, 0x00870000, 0x00EA00B4, 0x01430117, 0x01C1017E, - 0x4F4B4800, 0x5E5C5A59, 0x8F6C684B, 0x6F6F4A5A, 0x003E0038, 0x00000000, 0x000001C1, 0x007301CD, - 0xFFFFFFD5, 0x00000000, 0x005B0088, 0x0071002D, 0x00880000, 0x00EC00B5, 0x01460119, 0x01C50181, - 0x4F4B4900, 0x5E5C5A59, 0x8F6C684B, 0x6F6F4A5A, 0x003E0038, 0x00000000, 0x000001C5, 0x007401D3, - 0xFFFFFFD6, 0x00000000, 0x005C008A, 0x0073002E, 0x008A0000, 0x00F000B8, 0x014C011E, 0x01CD0188, - 0x4F4C4900, 0x5E5C5A59, 0x8F6C684C, 0x6F6F4A5A, 0x003E0038, 0x00000000, 0x000001CD, 0x007601DB, - 0xFFFFFFD7, 0x00000000, 0x005E008D, 0x0075002F, 0x008D0000, 0x00F400BC, 0x01520123, 0x01D5018E, - 0x4F4C4900, 0x5F5C5B59, 0x8F6C684C, 0x6F6F4A5A, 0x003F0038, 0x00000000, 0x000001D5, 0x007801E2, - 0xFFFFFFD8, 0x00000000, 0x005F008F, 0x00770030, 0x008F0000, 0x00F800BF, 0x01570127, 0x01DD0195, - 0x584C4900, 0x5F5D5B59, 0x8F6D684C, 0x6F6F4A5A, 0x003F0038, 0x00000000, 0x000001DD, 0x007A01E9, - 0xFFFFFFD9, 0x00000000, 0x00610091, 0x00790030, 0x00910000, 0x00FC00C2, 0x015D012C, 0x01E4019C, - 0x584C4900, 0x5F5D5B59, 0x8F6D694C, 0x6F6F4B5B, 0x003F0039, 0x00000000, 0x000001E4, 0x007C01F1, - 0xFFFFFFDA, 0x00000000, 0x00620094, 0x007B0031, 0x00940000, 0x010000C5, 0x01620131, 0x01EC01A2, - 0x584C4900, 0x5F5D5B5A, 0x8F6D694C, 0x6F6F4B5B, 0x003F0039, 0x00000000, 0x000001EC, 0x007E01F9, - 0xFFFFFFDB, 0x00000000, 0x00640096, 0x007D0032, 0x00960000, 0x010400C8, 0x01680136, 0x01F401A9, - 0x584D4900, 0x685D5B5A, 0x8F6D694D, 0x6F6F4B5B, 0x00480039, 0x00000000, 0x000001F4, 0x00800201, - 0xFFFFFFDC, 0x00000000, 0x00660098, 0x007F0033, 0x00980000, 0x010800CB, 0x016E013B, 0x01FC01B0, - 0x584D4A00, 0x685E5B5A, 0x8F6D694D, 0x6F6F4B5B, 0x00480039, 0x00000000, 0x000001FC, 0x0082020A, - 0xFFFFFFDD, 0x00000000, 0x0067009B, 0x00810034, 0x009B0000, 0x010C00CE, 0x01730140, 0x020401B6, - 0x584D4A00, 0x685E5C5A, 0x8F6E694D, 0x6F6F4B5B, 0x00480039, 0x00000000, 0x00000204, 0x00840212, - 0xFFFFFFDE, 0x00000000, 0x0069009D, 0x00830034, 0x009D0000, 0x011000D1, 0x01790145, 0x020B01BD, - 0x594D4A00, 0x685E5C5A, 0x8F6E694D, 0x6F6F4B5B, 0x00480039, 0x00000000, 0x0000020B, 0x0086021B, - 0xFFFFFFDF, 0x00000000, 0x006B00A1, 0x00860036, 0x00A10000, 0x011600D6, 0x0181014C, 0x021701C7, - 0x594D4A00, 0x685E5C5A, 0x8F6E694D, 0x6F6F4C5C, 0x00480039, 0x00000000, 0x00000217, 0x00890225, - 0xFFFFFFE0, 0x00000000, 0x006D00A3, 0x00880036, 0x00A30000, 0x011A00D9, 0x01870151, 0x021F01CE, - 0x594E4A00, 0x685E5C5B, 0x8F6E6A4E, 0x6F6F4C5C, 0x0049003A, 0x00000000, 0x0000021F, 0x008B022F, - 0xFFFFFFE1, 0x00000000, 0x006F00A6, 0x008B0037, 0x00A60000, 0x012000DE, 0x018F0158, 0x022B01D7, - 0x594E4A00, 0x695F5C5B, 0x8F6F6A4E, 0x6F6F4C5C, 0x0049003A, 0x00000000, 0x0000022B, 0x008E0239, - 0xFFFFFFE2, 0x00000000, 0x007100A9, 0x008D0038, 0x00A90000, 0x012500E1, 0x0195015D, 0x023301DE, - 0x594E4B00, 0x695F5D5B, 0x8F6F6A4E, 0x6F6F4C5C, 0x0049003A, 0x00000000, 0x00000233, 0x00900243, - 0xFFFFFFE3, 0x00000000, 0x007300AC, 0x00900039, 0x00AC0000, 0x012B00E6, 0x019D0164, 0x023E01E8, - 0x594E4B00, 0x695F5D5B, 0x8F6F6A4E, 0x6F6F4D5D, 0x0049003A, 0x00000000, 0x0000023E, 0x0093024E, - 0xFFFFFFE4, 0x00000000, 0x007500B0, 0x0092003B, 0x00B00000, 0x013100EA, 0x01A6016B, 0x024A01F2, - 0x5A4F4B00, 0x69685D5B, 0x8F6F6A4F, 0x6F6F4D5D, 0x0049003A, 0x00000000, 0x0000024A, 0x0096025A, - 0xFFFFFFE5, 0x00000000, 0x007800B3, 0x0095003C, 0x00B30000, 0x013700EF, 0x01AE0173, 0x025601FC, - 0x5A4F4B00, 0x69685D5C, 0x8F786B4F, 0x6F6F4D5D, 0x0049003B, 0x00000000, 0x00000256, 0x00990266, - 0xFFFFFFE6, 0x00000000, 0x007A00B7, 0x0098003D, 0x00B70000, 0x013D00F4, 0x01B7017A, 0x02610206, - 0x5A4F4B00, 0x6A685E5C, 0x8F786B4F, 0x6F6F4D5D, 0x004A003B, 0x00000000, 0x00000261, 0x009C0272, - 0xFFFFFFE7, 0x00000000, 0x007D00BC, 0x009C003F, 0x00BC0000, 0x014500FA, 0x01C20184, 0x02710213, - 0x5A584C00, 0x6A685E5C, 0x8F786B58, 0x6F6F4E5E, 0x004A003B, 0x00000000, 0x00000271, 0x00A00280, - 0xFFFFFFE8, 0x00000000, 0x007F00BF, 0x009F0040, 0x00BF0000, 0x014B00FF, 0x01CA018B, 0x027D021D, - 0x5A584C00, 0x6A685E5C, 0x8F786B58, 0x6F6F4E5E, 0x004A003B, 0x00000000, 0x0000027D, 0x00A3028E, - 0xFFFFFFE9, 0x00000000, 0x008200C4, 0x00A30041, 0x00C40000, 0x01530105, 0x01D60194, 0x028C022A, - 0x5B584C00, 0x6A695F5D, 0x8F796B58, 0x6F6F4E5E, 0x004A003B, 0x00000000, 0x0000028C, 0x00A7029C, - 0xFFFFFFEA, 0x00000000, 0x008600C8, 0x00A70043, 0x00C80000, 0x015B010B, 0x01E1019E, 0x029C0238, - 0x5B584D00, 0x6A695F5D, 0x8F796C58, 0x6F6F4F5F, 0x004A003C, 0x00000000, 0x0000029C, 0x00AB02AC, - 0xFFFFFFEB, 0x00000000, 0x008900CD, 0x00AB0044, 0x00CD0000, 0x01630111, 0x01EC01A8, 0x02AC0245, - 0x5B594D00, 0x6B695F5D, 0x8F796C59, 0x6F6F4F5F, 0x004B003C, 0x00000000, 0x000002AC, 0x00AF02BC, - 0xFFFFFFEC, 0x00000000, 0x008C00D2, 0x00AF0046, 0x00D20000, 0x016C0118, 0x01F701B2, 0x02BB0252, - 0x5B594D00, 0x6B69685E, 0x8F796C59, 0x6F6F4F5F, 0x004B003C, 0x00000000, 0x000002BB, 0x00B302CD, - 0xFFFFFFED, 0x00000000, 0x009000D8, 0x00B40048, 0x00D80000, 0x01760120, 0x020601BE, 0x02CF0263, - 0x5C594E00, 0x6B6A685E, 0x8F796D59, 0x6F6F5868, 0x004B003D, 0x00000000, 0x000002CF, 0x00B802E0, - 0xFFFFFFEE, 0x00000000, 0x009300DC, 0x00B80049, 0x00DC0000, 0x017E0126, 0x021101C7, 0x02DE0270, - 0x5C594E00, 0x6B6A685E, 0x8F7A6D59, 0x6F6F5868, 0x004C003D, 0x00000000, 0x000002DE, 0x00BC02F3, - 0xFFFFFFEF, 0x00000000, 0x009700E2, 0x00BC004B, 0x00E20000, 0x0188012E, 0x021F01D3, 0x02F20281, - 0x5C594E00, 0x6C6A685F, 0x8F7A6D59, 0x6F6F5868, 0x004C003D, 0x00000000, 0x000002F2, 0x00C10307, - 0xFFFFFFF0, 0x00000000, 0x009B00E9, 0x00C2004E, 0x00E90000, 0x01940137, 0x023001E2, 0x03090295, - 0x5D5A4F00, 0x6C6A695F, 0x8F7A6E5A, 0x6F6F5969, 0x004C003E, 0x00000000, 0x00000309, 0x00C7031C, - 0xFFFFFFF1, 0x00000000, 0x009F00EF, 0x00C70050, 0x00EF0000, 0x019E013F, 0x023E01EE, 0x031D02A5, - 0x5D5A4F00, 0x6C6B695F, 0x8F7B6E5A, 0x6F6F5969, 0x004C003E, 0x00000000, 0x0000031D, 0x00CC0333, - 0xFFFFFFF2, 0x00000000, 0x00A400F6, 0x00CD0052, 0x00F60000, 0x01AB0148, 0x024F01FD, 0x033402B9, - 0x5D5A4F00, 0x6D6B6968, 0x8F7B6E5A, 0x6F6F5969, 0x004D003E, 0x00000000, 0x00000334, 0x00D2034B, - 0xFFFFFFF3, 0x00000000, 0x00AA00FE, 0x00D40055, 0x00FE0000, 0x01B90153, 0x0262020E, 0x035002D1, - 0x5E5B5800, 0x6D6B6A68, 0x8F7B6F5B, 0x6F6F5969, 0x004D003F, 0x00000000, 0x00000350, 0x00D90365, - 0xFFFFFFF4, 0x00000000, 0x00AF0107, 0x00DB0058, 0x01070000, 0x01C7015E, 0x0276021F, 0x036B02E8, - 0x5E5B5800, 0x6E6C6A68, 0x8F7B6F5B, 0x6F6F5A6A, 0x004E003F, 0x00000000, 0x0000036B, 0x00E00380, - 0xFFFFFFF5, 0x00000000, 0x00B4010F, 0x00E2005A, 0x010F0000, 0x01D50169, 0x028A022F, 0x038602FF, - 0x5F5B5800, 0x6E6C6A69, 0x8F7C785B, 0x6F6F5A6A, 0x004E0048, 0x00000000, 0x00000386, 0x00E7039D, - 0xFFFFFFF6, 0x00000000, 0x00BA0117, 0x00E8005D, 0x01170000, 0x01E30174, 0x029D0240, 0x03A20316, - 0x5F5C5900, 0x6F6C6A69, 0x8F7C785C, 0x6F6F5A6A, 0x004F0048, 0x00000000, 0x000003A2, 0x00EE03BB, - 0xFFFFFFF7, 0x00000000, 0x00C10121, 0x00F10060, 0x01210000, 0x01F60182, 0x02B70256, 0x03C50334, - 0x685C5900, 0x6F6D6B69, 0x8F7D785C, 0x6F6F5B6B, 0x004F0048, 0x00000000, 0x000003C5, 0x00F703DC, - 0xFFFFFFF8, 0x00000000, 0x00C7012B, 0x00F90064, 0x012B0000, 0x0206018E, 0x02CD026A, 0x03E4034F, - 0x685C5900, 0x6F6D6B6A, 0x8F7D795C, 0x6F6F5B6B, 0x00580049, 0x00000000, 0x000003E4, 0x00FF03FE, - 0xFFFFFFF9, 0x00000000, 0x00CE0135, 0x01020067, 0x01350000, 0x0218019D, 0x02E7027F, 0x0407036D, - 0x685D5A00, 0x6F6E6C6A, 0x8F7E795D, 0x6F6F5B6B, 0x00580049, 0x00000000, 0x00000407, 0x01080422, - 0xFFFFFFFA, 0x00000000, 0x00D60141, 0x010C006B, 0x01410000, 0x022D01AC, 0x03030298, 0x042E038E, - 0x695D5A00, 0x6F6E6C6A, 0x8F7E795D, 0x6F6F5C6C, 0x00580049, 0x00000000, 0x0000042E, 0x0112044A, - 0xFFFFFFFB, 0x00000000, 0x00DE014D, 0x0115006F, 0x014D0000, 0x024101BC, 0x031F02B0, 0x045503AF, - 0x695E5A00, 0x6F6F6C6B, 0x8F7F7A5E, 0x6F6F5C6C, 0x0059004A, 0x00000000, 0x00000455, 0x011C0473, - 0xFFFFFFFC, 0x00000000, 0x00E7015B, 0x01210074, 0x015B0000, 0x025901CF, 0x034102CD, 0x048403D7, - 0x695E5B00, 0x6F6F6D6B, 0x8F7F7A5E, 0x6F6F5D6D, 0x0059004A, 0x00000000, 0x00000484, 0x012804A0, - 0xFFFFFFFD, 0x00000000, 0x00F10169, 0x012D0078, 0x01690000, 0x027201E1, 0x036202EA, 0x04B303FF, - 0x6A5F5B00, 0x6F6F6E6C, 0x8F887B5F, 0x6F6F5D6D, 0x0059004B, 0x00000000, 0x000004B3, 0x013404D0, - 0xFFFFFFFE, 0x00000000, 0x00FA0177, 0x0139007D, 0x01770000, 0x028A01F4, 0x03840307, 0x04E20427, - 0x6A685C00, 0x6F6F6E6C, 0x8F887B68, 0x6F6F5E6E, 0x005A004B, 0x00000000, 0x000004E2, 0x01400502, - 0xFFFFFFFF, 0x00000000, 0x01050187, 0x01460082, 0x01870000, 0x02A6020A, 0x03AB0329, 0x05190455, - 0x6B685C00, 0x6F6F6F6D, 0x8F897B68, 0x6F6F5E6E, 0x005A004B, 0x00000000, 0x00000519, 0x014E0538, - 0x00080004, 0x00090008, 0x000B000A, 0x000C000C, 0x000E000D, 0x0010000F, 0x00120011, 0x00130013, - 0x00150014, 0x00170016, 0x00190018, 0x001A001A, 0x001C001B, 0x001E001D, 0x0020001F, 0x00210020, - 0x00230022, 0x00250024, 0x00260026, 0x00280027, 0x002A0029, 0x002B002B, 0x002D002C, 0x002F002E, - 0x00300030, 0x00320031, 0x00340033, 0x00350035, 0x00370036, 0x00390038, 0x003A0039, 0x003C003B, - 0x003E003D, 0x003F003E, 0x00410040, 0x00420042, 0x00440043, 0x00460045, 0x00470046, 0x00490048, - 0x004A004A, 0x004C004B, 0x004E004D, 0x004F004E, 0x00510050, 0x00520051, 0x00540053, 0x00550055, - 0x00580057, 0x005C005A, 0x005F005D, 0x00620060, 0x00650063, 0x00680066, 0x006B0069, 0x006E006C, - 0x0071006F, 0x00740072, 0x00760075, 0x00790078, 0x007D007B, 0x0081007F, 0x00860083, 0x008A0088, - 0x008E008C, 0x00920090, 0x00960094, 0x009A0098, 0x009E009C, 0x00A400A1, 0x00A900A6, 0x00AE00AC, - 0x00B400B1, 0x00B900B6, 0x00BE00BB, 0x00C300C0, 0x00CA00C7, 0x00D000CD, 0x00D600D3, 0x00DC00D9, - 0x00E200DF, 0x00E900E6, 0x00F000ED, 0x00F700F3, 0x00FD00FA, 0x01050101, 0x010D0109, 0x01140110, - 0x011C0118, 0x01240120, 0x012C0128, 0x01350130, 0x013D0139, 0x01460142, 0x014F014A, 0x01580154, - 0x0162015D, 0x016C0167, 0x01760171, 0x0180017B, 0x018B0185, 0x01960190, 0x01A1019B, 0x01AD01A7, - 0x01B901B3, 0x01C601BF, 0x01D301CD, 0x01E201DB, 0x01F101E9, 0x020101F9, 0x0212020A, 0x0225021B, - 0x0239022F, 0x024E0243, 0x0266025A, 0x02800272, 0x029C028E, 0x02BC02AC, 0x02E002CD, 0x030702F3, - 0x0333031C, 0x0365034B, 0x039D0380, 0x03DC03BB, 0x042203FE, 0x0473044A, 0x04D004A0, 0x05380502, - 0x00080004, 0x000A0009, 0x000C000B, 0x000E000D, 0x0010000F, 0x00120011, 0x00140013, 0x00160015, - 0x00180017, 0x001A0019, 0x001C001B, 0x001E001D, 0x0020001F, 0x00220021, 0x00240023, 0x00260025, - 0x00280027, 0x002A0029, 0x002C002B, 0x002E002D, 0x0030002F, 0x00320031, 0x00340033, 0x00360035, - 0x00380037, 0x003A0039, 0x003C003B, 0x003E003D, 0x0040003F, 0x00420041, 0x00440043, 0x00460045, - 0x00480047, 0x004A0049, 0x004C004B, 0x004E004D, 0x0050004F, 0x00520051, 0x00540053, 0x00560055, - 0x00580057, 0x005A0059, 0x005C005B, 0x005E005D, 0x0060005F, 0x00620061, 0x00640063, 0x00660065, - 0x006A0068, 0x006E006C, 0x00720070, 0x00760074, 0x007A0078, 0x007E007C, 0x00820080, 0x00860084, - 0x008A0088, 0x008E008C, 0x00920090, 0x00960094, 0x009B0098, 0x00A1009E, 0x00A700A4, 0x00AD00AA, - 0x00B300B0, 0x00B900B6, 0x00BF00BC, 0x00C500C2, 0x00CB00C8, 0x00D300CF, 0x00DB00D7, 0x00E300DF, - 0x00EB00E7, 0x00F300EF, 0x00FB00F7, 0x010400FF, 0x010E0109, 0x01180113, 0x0122011D, 0x012C0127, - 0x01370131, 0x0143013D, 0x014F0149, 0x015B0155, 0x01670161, 0x0175016E, 0x0183017C, 0x0191018A, - 0x01A00198, 0x01B001A8, 0x01C001B8, 0x01D101C8, 0x01E301DA, 0x01F501EC, 0x020801FE, 0x021C0212, - 0x02300226, 0x0246023B, 0x025C0251, 0x02730267, 0x028B027F, 0x02A40297, 0x02BE02B1, 0x02D902CB, - 0x02F502E7, 0x03120303, 0x03300321, 0x03500340, 0x03710360, 0x03930382, 0x03B703A5, 0x03DC03C9, - 0x040203EF, 0x042A0416, 0x0454043F, 0x047F0469, 0x04AC0495, 0x04DB04C3, 0x050C04F3, 0x053F0525, - 0x05740559, 0x05AB058F, 0x05E405C7, 0x061F0601, 0x065C063D, 0x069C067C, 0x06DF06BD, 0x07240701 -}; - -const unsigned int gen9_vp9_avs_coeffs[256] = { - 0x00000000, 0x40400000, 0x00000000, 0x00000000, 0x40000000, 0x00000000, 0x40000000, 0x00000000, - 0x0101FFFF, 0x4040FEFE, 0xFFFF0202, 0x00000101, 0x40FF0000, 0x00000001, 0x40FF0000, 0x00000001, - 0x0202FFFF, 0x4141FCFC, 0xFEFE0404, 0xFFFF0101, 0x3FFE0000, 0x00000003, 0x3FFE0000, 0x00000003, - 0x0303FFFF, 0x3F3FFBFB, 0xFDFD0606, 0xFFFF0202, 0x3EFD0000, 0x00000005, 0x3EFD0000, 0x00000005, - 0x0303FEFE, 0x4040F9F9, 0xFCFC0909, 0xFFFF0202, 0x3EFC0000, 0x00000006, 0x3EFC0000, 0x00000006, - 0x0404FEFE, 0x3F3FF8F8, 0xFBFB0B0B, 0xFEFE0303, 0x3CFC0000, 0x00000008, 0x3CFC0000, 0x00000008, - 0x0505FDFD, 0x3E3EF7F7, 0xFAFA0E0E, 0xFEFE0303, 0x3CFB0000, 0x0000FF0A, 0x3CFB0000, 0x0000FF0A, - 0x0505FDFD, 0x3D3DF5F5, 0xF9F91111, 0xFEFE0404, 0x39FB0000, 0x0000FF0D, 0x39FB0000, 0x0000FF0D, - 0x0606FDFD, 0x3B3BF5F5, 0xF8F81414, 0xFDFD0404, 0x37FB0000, 0x0000FF0F, 0x37FB0000, 0x0000FF0F, - 0x0606FCFC, 0x3B3BF4F4, 0xF7F71616, 0xFDFD0505, 0x35FB0000, 0x0000FF11, 0x35FB0000, 0x0000FF11, - 0x0707FCFC, 0x3939F3F3, 0xF6F61919, 0xFDFD0505, 0x33FB0000, 0x0000FE14, 0x33FB0000, 0x0000FE14, - 0x0707FCFC, 0x3737F3F3, 0xF5F51C1C, 0xFCFC0606, 0x31FB0000, 0x0000FE16, 0x31FB0000, 0x0000FE16, - 0x0707FCFC, 0x3535F2F2, 0xF5F51F1F, 0xFCFC0606, 0x2EFB0000, 0x0000FE19, 0x2EFB0000, 0x0000FE19, - 0x0707FCFC, 0x3232F2F2, 0xF4F42222, 0xFCFC0707, 0x2CFB0000, 0x0000FD1C, 0x2CFB0000, 0x0000FD1C, - 0x0707FCFC, 0x3030F2F2, 0xF3F32525, 0xFCFC0707, 0x29FB0000, 0x0000FD1F, 0x29FB0000, 0x0000FD1F, - 0x0707FCFC, 0x2D2DF2F2, 0xF3F32828, 0xFCFC0707, 0x27FC0000, 0x0000FC21, 0x27FC0000, 0x0000FC21, - 0x0707FCFC, 0x2929F3F3, 0xF3F32B2B, 0xFCFC0707, 0x24FC0000, 0x0000FC24, 0x24FC0000, 0x0000FC24, - 0x0707FCFC, 0x2828F3F3, 0xF2F22D2D, 0xFCFC0707, 0x21FC0000, 0x0000FC27, 0x21FC0000, 0x0000FC27, - 0x0707FCFC, 0x2525F3F3, 0xF2F23030, 0xFCFC0707, 0x1FFD0000, 0x0000FB29, 0x1FFD0000, 0x0000FB29, - 0x0707FCFC, 0x2222F4F4, 0xF2F23232, 0xFCFC0707, 0x1CFD0000, 0x0000FB2C, 0x1CFD0000, 0x0000FB2C, - 0x0606FCFC, 0x1F1FF5F5, 0xF2F23535, 0xFCFC0707, 0x19FE0000, 0x0000FB2E, 0x19FE0000, 0x0000FB2E, - 0x0606FCFC, 0x1C1CF5F5, 0xF3F33737, 0xFCFC0707, 0x16FE0000, 0x0000FB31, 0x16FE0000, 0x0000FB31, - 0x0505FDFD, 0x1919F6F6, 0xF3F33939, 0xFCFC0707, 0x14FE0000, 0x0000FB33, 0x14FE0000, 0x0000FB33, - 0x0505FDFD, 0x1616F7F7, 0xF4F43B3B, 0xFCFC0606, 0x11FF0000, 0x0000FB35, 0x11FF0000, 0x0000FB35, - 0x0404FDFD, 0x1414F8F8, 0xF5F53B3B, 0xFDFD0606, 0x0FFF0000, 0x0000FB37, 0x0FFF0000, 0x0000FB37, - 0x0404FEFE, 0x1111F9F9, 0xF5F53D3D, 0xFDFD0505, 0x0DFF0000, 0x0000FB39, 0x0DFF0000, 0x0000FB39, - 0x0303FEFE, 0x0E0EFAFA, 0xF7F73E3E, 0xFDFD0505, 0x0AFF0000, 0x0000FB3C, 0x0AFF0000, 0x0000FB3C, - 0x0303FEFE, 0x0B0BFBFB, 0xF8F83F3F, 0xFEFE0404, 0x08000000, 0x0000FC3C, 0x08000000, 0x0000FC3C, - 0x0202FFFF, 0x0909FCFC, 0xF9F94040, 0xFEFE0303, 0x06000000, 0x0000FC3E, 0x06000000, 0x0000FC3E, - 0x0202FFFF, 0x0606FDFD, 0xFBFB3F3F, 0xFFFF0303, 0x05000000, 0x0000FD3E, 0x05000000, 0x0000FD3E, - 0x0101FFFF, 0x0404FEFE, 0xFCFC4141, 0xFFFF0202, 0x03000000, 0x0000FE3F, 0x03000000, 0x0000FE3F, - 0x01010000, 0x0202FFFF, 0xFEFE4040, 0xFFFF0101, 0x01000000, 0x0000FF40, 0x01000000, 0x0000FF40, -}; - -const unsigned int intel_vp9_costlut_key[4096] = { - 0x02061200, 0x00000036, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x28190702, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00010002, - 0x050D2501, 0x0000006D, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x38290E03, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00020004, - 0x050D2502, 0x0000006D, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x38290E03, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00020004, - 0x050D2503, 0x0000006D, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x38290E03, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00020004, - 0x06102E04, 0x00000088, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x3A2B1904, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00020005, - 0x06102E05, 0x00000088, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x3A2B1904, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00020005, - 0x07133706, 0x000000A3, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x3C2E1B05, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00030006, - 0x07133707, 0x000000A3, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x3C2E1B05, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00030006, - 0x07133708, 0x000000A3, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x3C2E1B05, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00030006, - 0x08164009, 0x000000BE, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x3E381D05, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00030007, - 0x0816400A, 0x000000BE, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x3E381D05, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00030007, - 0x0A1A4A0B, 0x000000DA, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x48391E06, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00040008, - 0x0A1A4A0C, 0x000000DA, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x48391E06, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00040008, - 0x0B1D530D, 0x000000F5, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x493A2807, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00040009, - 0x0B1D530E, 0x000000F5, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x493A2807, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00040009, - 0x0B1D530F, 0x000000F5, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x493A2807, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00040009, - 0x0C205C10, 0x00000110, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x4A3B2908, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0005000A, - 0x0C205C11, 0x00000110, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x4A3B2908, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0005000A, - 0x0D236512, 0x0000012B, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x4B3C2A09, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0005000B, - 0x0D236513, 0x0000012B, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x4B3C2A09, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0005000B, - 0x0E266E14, 0x00000146, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x4C3E2B09, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0006000C, - 0x0E266E15, 0x00000146, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x4C3E2B09, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0006000C, - 0x102A7816, 0x00000162, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x4D3F2C0A, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0006000D, - 0x102A7817, 0x00000162, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x4D3F2C0A, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0006000D, - 0x102A7818, 0x00000162, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x4D3F2C0A, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0006000D, - 0x112D8119, 0x0000017D, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x4E482C0B, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0007000E, - 0x112D811A, 0x0000017D, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x4E482C0B, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0007000E, - 0x12308A1B, 0x00000198, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x4F482D0C, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0007000F, - 0x12308A1C, 0x00000198, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x4F482D0C, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0007000F, - 0x1333931D, 0x000001B3, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x58492E0D, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00080010, - 0x1333931E, 0x000001B3, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x58492E0D, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00080010, - 0x1333931F, 0x000001B3, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x58492E0D, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00080010, - 0x14369C20, 0x000001CE, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x594A2F0D, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00080011, - 0x14369C21, 0x000001CE, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x594A2F0D, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00080011, - 0x163AA622, 0x000001EA, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x594A380E, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00090012, - 0x163AA623, 0x000001EA, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x594A380E, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00090012, - 0x173DAF24, 0x00000205, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x5A4B380F, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00090013, - 0x173DAF25, 0x00000205, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x5A4B380F, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00090013, - 0x173DAF26, 0x00000205, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x5A4B380F, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00090013, - 0x1840B827, 0x00000220, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x5A4B3918, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000A0014, - 0x1840B828, 0x00000220, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x5A4B3918, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000A0014, - 0x1943C129, 0x0000023B, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x5B4C3918, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000A0015, - 0x1943C12A, 0x0000023B, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x5B4C3918, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000A0015, - 0x1943C12B, 0x0000023B, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x5B4C3918, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000A0015, - 0x1A46CA2C, 0x00000256, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x5B4C3A19, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000B0016, - 0x1A46CA2D, 0x00000256, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x5B4C3A19, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000B0016, - 0x1B49D32E, 0x00000271, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x5C4D3A19, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000B0017, - 0x1B49D32F, 0x00000271, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x5C4D3A19, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000B0017, - 0x1D4DDD30, 0x0000028D, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x5C4E3B1A, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000C0018, - 0x1D4DDD31, 0x0000028D, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x5C4E3B1A, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000C0018, - 0x1D4DDD32, 0x0000028D, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x5C4E3B1A, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000C0018, - 0x1E50E633, 0x000002A8, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x5D4E3B1A, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000C0019, - 0x1E50E634, 0x000002A8, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x5D4E3B1A, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000C0019, - 0x1F53EF35, 0x000002C3, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x5D4F3B1A, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000D001A, - 0x1F53EF36, 0x000002C3, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x5D4F3B1A, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000D001A, - 0x1F53EF37, 0x000002C3, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x5D4F3B1A, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000D001A, - 0x2056F838, 0x000002DE, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x5E4F3C1B, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000D001B, - 0x2056F839, 0x000002DE, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x5E4F3C1B, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000D001B, - 0x2159FF3A, 0x000002F9, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x5E583C1B, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000E001C, - 0x2159FF3B, 0x000002F9, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x5E583C1B, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000E001C, - 0x2159FF3C, 0x000002F9, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x5E583C1B, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000E001C, - 0x235DFF3D, 0x00000315, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x5F583D1C, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000E001D, - 0x235DFF3E, 0x00000315, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x5F583D1C, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000E001D, - 0x2460FF3F, 0x00000330, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x5F583D1C, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000F001E, - 0x2460FF40, 0x00000330, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x5F583D1C, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000F001E, - 0x2563FF41, 0x0000034B, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x68593E1C, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000F001F, - 0x2563FF42, 0x0000034B, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x68593E1C, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000F001F, - 0x2563FF43, 0x0000034B, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x68593E1C, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000F001F, - 0x2666FF44, 0x00000366, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x68593E1D, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00100020, - 0x2666FF45, 0x00000366, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x68593E1D, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00100020, - 0x2769FF46, 0x00000381, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x68593F1D, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00100021, - 0x2769FF47, 0x00000381, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x68593F1D, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00100021, - 0x2769FF48, 0x00000381, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x68593F1D, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00100021, - 0x296DFF49, 0x0000039D, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x695A3F1E, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00110022, - 0x296DFF4A, 0x0000039D, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x695A3F1E, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00110022, - 0x2A70FF4B, 0x000003B8, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x695A3F1E, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00110023, - 0x2A70FF4C, 0x000003B8, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x695A3F1E, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00110023, - 0x2A70FF4D, 0x000003B8, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x695A3F1E, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00110023, - 0x2B73FF4E, 0x000003D3, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x695A481E, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00120024, - 0x2B73FF4F, 0x000003D3, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x695A481E, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00120024, - 0x2C76FF50, 0x000003EE, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x695A481F, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00120025, - 0x2C76FF51, 0x000003EE, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x695A481F, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00120025, - 0x2C76FF52, 0x000003EE, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x695A481F, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00120025, - 0x2D79FF53, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x6A5B481F, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00130026, - 0x2D79FF54, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x6A5B481F, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00130026, - 0x2F7DFF55, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x6A5B491F, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00130027, - 0x2F7DFF56, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x6A5B491F, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00130027, - 0x2F7DFF57, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x6A5B491F, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00130027, - 0x3080FF58, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x6A5B4928, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00140028, - 0x3080FF59, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x6A5B4928, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00140028, - 0x3080FF5A, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x6A5B4928, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00140028, - 0x3183FF5B, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x6B5C4928, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00140029, - 0x3183FF5C, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x6B5C4928, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00140029, - 0x3286FF5D, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x6B5C4928, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0015002A, - 0x3286FF5E, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x6B5C4928, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0015002A, - 0x3286FF5F, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x6B5C4928, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0015002A, - 0x3389FF60, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x6B5C4929, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0015002B, - 0x358DFF61, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x6B5C4A29, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0016002C, - 0x3690FF62, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x6C5D4A29, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0016002D, - 0x3793FF63, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x6C5D4A29, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0017002E, - 0x3793FF64, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x6C5D4A29, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0017002E, - 0x3896FF65, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x6C5D4A29, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0017002F, - 0x3999FF66, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x6C5D4B2A, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00180030, - 0x3B9DFF67, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x6D5E4B2A, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00180031, - 0x3B9DFF68, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x6D5E4B2A, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00180031, - 0x3CA0FF69, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x6D5E4B2A, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00190032, - 0x3DA3FF6A, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x6D5E4B2A, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00190033, - 0x3EA6FF6B, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x6D5F4B2A, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x001A0034, - 0x3EA6FF6C, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x6D5F4B2A, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x001A0034, - 0x3FA9FF6D, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x6E5F4C2A, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x001A0035, - 0x41ADFF6E, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x6E5F4C2B, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x001B0036, - 0x42B0FF6F, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x6E5F4C2B, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x001B0037, - 0x42B0FF70, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x6E5F4C2B, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x001B0037, - 0x43B3FF71, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x6E684C2B, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x001C0038, - 0x44B6FF72, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x6F684D2B, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x001C0039, - 0x45B9FF73, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x6F684D2B, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x001D003A, - 0x45B9FF74, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x6F684D2B, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x001D003A, - 0x47BDFF75, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x6F684D2C, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x001D003B, - 0x48C0FF76, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x6F684D2C, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x001E003C, - 0x48C0FF77, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x6F684D2C, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x001E003C, - 0x49C3FF78, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x78694D2C, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x001E003D, - 0x4AC6FF79, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x78694E2C, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x001F003E, - 0x4BC9FF7A, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x78694E2C, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x001F003F, - 0x4DCDFF7B, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x78694E2D, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00200040, - 0x4ED0FF7C, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x78694E2D, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00200041, - 0x50D6FF7D, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x79694F2D, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00210043, - 0x51D9FF7E, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x796A4F2D, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00220044, - 0x52DCFF7F, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x796A4F2E, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00220045, - 0x54E0FF80, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x796A4F2E, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00230046, - 0x55E3FF81, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x796A582E, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00230047, - 0x56E6FF82, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x796A582E, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00240048, - 0x57E9FF83, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x796A582E, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00240049, - 0x58ECFF84, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x796A582F, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0025004A, - 0x5AF0FF85, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x7A6B582F, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0025004B, - 0x5BF3FF86, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x7A6B582F, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0026004C, - 0x5CF6FF87, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x7A6B582F, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0026004D, - 0x5DF9FF88, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x7A6B592F, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0027004E, - 0x5EFCFF89, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x7A6B5938, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0027004F, - 0x60FFFF8A, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x7A6B5938, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00280050, - 0x62FFFF8B, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x7B6C5938, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00290052, - 0x63FFFF8C, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x7B6C5938, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00290053, - 0x64FFFF8D, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x7B6C5938, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x002A0054, - 0x67FFFF8E, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x7B6C5938, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x002B0056, - 0x68FFFF8F, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x7B6C5A39, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x002B0057, - 0x69FFFF90, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x7B6C5A39, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x002C0058, - 0x6CFFFF91, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x7C6D5A39, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x002D005A, - 0x6DFFFF92, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x7C6D5A39, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x002D005B, - 0x6EFFFF93, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x7C6D5A39, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x002E005C, - 0x6FFFFF94, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x7C6D5A39, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x002E005D, - 0x72FFFF95, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x7C6D5A39, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x002F005F, - 0x73FFFF96, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x7C6D5B39, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00300060, - 0x74FFFF97, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x7C6E5B3A, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00300061, - 0x76FFFF98, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x7D6E5B3A, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00310063, - 0x79FFFF99, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x7D6E5B3A, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00320065, - 0x7AFFFF9A, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x7D6E5B3A, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00330066, - 0x7CFFFF9B, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x7D6F5B3A, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00340068, - 0x7EFFFF9C, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x7D6F5C3A, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00340069, - 0x80FFFF9D, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x7E6F5C3B, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0035006B, - 0x81FFFF9E, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x7E6F5C3B, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0036006C, - 0x83FFFF9F, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x7E6F5C3B, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0037006E, - 0x85FFFFA0, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x7E785C3B, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0037006F, - 0x87FFFFA1, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x7E785C3B, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00380071, - 0x89FFFFA2, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x7F785D3B, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00390073, - 0x8BFFFFA3, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x7F785D3B, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x003A0074, - 0x8DFFFFA4, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x7F785D3C, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x003B0076, - 0x8FFFFFA5, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x7F785D3C, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x003C0078, - 0x91FFFFA6, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x88785D3C, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x003C0079, - 0x93FFFFA7, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x88795E3C, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x003D007B, - 0x95FFFFA8, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x88795E3C, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x003E007D, - 0x97FFFFA9, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x88795E3C, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x003F007E, - 0x99FFFFAA, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x88795E3D, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00400080, - 0x9BFFFFAB, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x88795E3D, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00410082, - 0x9EFFFFAC, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x88795F3D, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00420084, - 0xA0FFFFAD, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x89795F3D, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00430086, - 0xA3FFFFAE, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x897A5F3D, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00440088, - 0xA5FFFFAF, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x897A5F3E, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0045008A, - 0xA7FFFFB0, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x897A5F3E, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0046008C, - 0xAAFFFFB1, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x897A683E, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0047008E, - 0xACFFFFB2, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x897A683E, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00480090, - 0xAFFFFFB3, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x897A683E, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00490092, - 0xB1FFFFB4, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x897A683F, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x004A0094, - 0xB3FFFFB5, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x8A7B683F, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x004B0096, - 0xB6FFFFB6, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x8A7B683F, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x004C0098, - 0xB8FFFFB7, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x8A7B683F, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x004D009A, - 0xBAFFFFB8, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x8A7B693F, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x004E009C, - 0xBDFFFFB9, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x8A7B693F, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x004F009E, - 0xC0FFFFBA, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x8A7B6948, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x005000A1, - 0xC3FFFFBB, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x8A7B6948, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x005100A3, - 0xC5FFFFBC, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x8B7C6948, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x005200A5, - 0xC8FFFFBD, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x8B7C6948, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x005300A7, - 0xCBFFFFBE, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x8B7C6948, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x005500AA, - 0xCEFFFFBF, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x8B7C6948, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x005600AC, - 0xD0FFFFC0, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x8B7C6A49, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x005700AE, - 0xD4FFFFC1, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x8B7C6A49, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x005800B1, - 0xD6FFFFC2, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x8B7D6A49, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x005900B3, - 0xDAFFFFC3, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x8C7D6A49, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x005B00B6, - 0xDCFFFFC4, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x8C7D6A49, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x005C00B8, - 0xE0FFFFC5, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x8C7D6A49, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x005D00BB, - 0xE2FFFFC6, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x8C7D6A49, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x005E00BD, - 0xE6FFFFC7, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x8C7D6B49, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x006000C0, - 0xE8FFFFC8, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x8C7E6B4A, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x006100C2, - 0xEBFFFFC9, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x8D7E6B4A, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x006200C5, - 0xEFFFFFCA, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x8D7E6B4A, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x006400C8, - 0xF3FFFFCB, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x8D7E6B4A, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x006500CB, - 0xF5FFFFCC, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x8D7E6B4A, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x006600CD, - 0xF9FFFFCD, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x8D7F6B4A, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x006800D0, - 0xFCFFFFCE, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x8E7F6C4A, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x006900D3, - 0xFFFFFFCF, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x8E7F6C4A, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x006B00D6, - 0xFFFFFFD0, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x8E7F6C4B, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x006C00D9, - 0xFFFFFFD1, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x8E7F6C4B, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x006E00DC, - 0xFFFFFFD2, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x8E886C4B, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x006F00DF, - 0xFFFFFFD3, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x8F886C4B, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x007100E3, - 0xFFFFFFD4, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x8F886D4B, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x007300E6, - 0xFFFFFFD5, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x8F886D4B, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x007400E9, - 0xFFFFFFD6, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x8F886D4C, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x007600ED, - 0xFFFFFFD7, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x8F886D4C, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x007800F1, - 0xFFFFFFD8, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x8F896D4C, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x007A00F4, - 0xFFFFFFD9, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x8F896E4C, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x007C00F8, - 0xFFFFFFDA, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x8F896E4C, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x007E00FC, - 0xFFFFFFDB, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x8F896E4D, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00800100, - 0xFFFFFFDC, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x8F896E4D, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00820105, - 0xFFFFFFDD, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x8F896F4D, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00840109, - 0xFFFFFFDE, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x8F896F4D, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0086010D, - 0xFFFFFFDF, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x8F8A6F4D, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00890112, - 0xFFFFFFE0, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x8F8A6F4E, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x008B0117, - 0xFFFFFFE1, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x8F8A784E, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x008E011C, - 0xFFFFFFE2, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x8F8A784E, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00900121, - 0xFFFFFFE3, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x8F8A784E, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00930127, - 0xFFFFFFE4, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x8F8B784F, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0096012D, - 0xFFFFFFE5, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x8F8B784F, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00990133, - 0xFFFFFFE6, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x8F8B794F, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x009C0139, - 0xFFFFFFE7, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x8F8B7958, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00A00140, - 0xFFFFFFE8, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x8F8B7958, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00A30147, - 0xFFFFFFE9, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x8F8C7958, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00A7014E, - 0xFFFFFFEA, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x8F8C7958, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00AB0156, - 0xFFFFFFEB, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x8F8C7A59, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00AF015E, - 0xFFFFFFEC, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x8F8D7A59, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00B30166, - 0xFFFFFFED, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x8F8D7A59, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00B80170, - 0xFFFFFFEE, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x8F8D7A59, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00BC0179, - 0xFFFFFFEF, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x8F8E7B59, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00C10183, - 0xFFFFFFF0, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x8F8E7B5A, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00C7018E, - 0xFFFFFFF1, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x8F8E7B5A, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00CC0199, - 0xFFFFFFF2, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x8F8F7C5A, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00D201A5, - 0xFFFFFFF3, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x8F8F7C5B, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00D901B2, - 0xFFFFFFF4, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x8F8F7C5B, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00E001C0, - 0xFFFFFFF5, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x8F8F7D5B, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00E701CE, - 0xFFFFFFF6, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x8F8F7D5C, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00EE01DD, - 0xFFFFFFF7, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x8F8F7E5C, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00F701EE, - 0xFFFFFFF8, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x8F8F7E5C, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00FF01FF, - 0xFFFFFFF9, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x8F8F7F5D, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x01080211, - 0xFFFFFFFA, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x8F8F7F5D, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x01120225, - 0xFFFFFFFB, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x8F8F885E, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x011C0239, - 0xFFFFFFFC, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x8F8F885E, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x01280250, - 0xFFFFFFFD, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x8F8F885F, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x01340268, - 0xFFFFFFFE, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x8F8F8968, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x01400281, - 0xFFFFFFFF, 0x000003FF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x8F8F8968, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x014E029C, -}; - -const unsigned int intel_vp9_costlut_p[4096] = { - 0x040C2400, 0x00000010, 0x00010001, 0x00010000, 0x00010000, 0x00020002, 0x00030002, 0x00040003, 0x02020100, 0x04030302, 0x39070402, 0x6F6F0103, 0x00010001, 0x00000000, 0x00000004, 0x00010004, - 0x08184801, 0x00000001, 0x00020002, 0x00020001, 0x00020000, 0x00040003, 0x00060005, 0x00080007, 0x04030200, 0x08070605, 0x490D0903, 0x6F6F0305, 0x00020001, 0x00000000, 0x00000008, 0x00020008, - 0x08184802, 0x00000000, 0x00020002, 0x00020001, 0x00020000, 0x00040003, 0x00060005, 0x00080007, 0x04030200, 0x08070605, 0x490D0903, 0x6F6F0305, 0x00020001, 0x00000000, 0x00000008, 0x00020008, - 0x091B5103, 0x00000000, 0x00020002, 0x00020001, 0x00020000, 0x00040003, 0x00060005, 0x00080007, 0x04030200, 0x08070605, 0x4A0F0A04, 0x6F6F0305, 0x00020001, 0x00000000, 0x00000008, 0x00020009, - 0x0A1E5A04, 0x00000000, 0x00020002, 0x00020001, 0x00020000, 0x00040003, 0x00060005, 0x00080007, 0x04030200, 0x08070605, 0x4B180B04, 0x6F6F0305, 0x00020001, 0x00000000, 0x00000008, 0x0002000A, - 0x0B216305, 0x00000000, 0x00020002, 0x00020001, 0x00020000, 0x00040003, 0x00060005, 0x00080007, 0x04030200, 0x08070605, 0x4D190C04, 0x6F6F0305, 0x00020001, 0x00000000, 0x00000008, 0x0002000B, - 0x0C246C06, 0x00000000, 0x00020004, 0x00030001, 0x00040000, 0x00060005, 0x00080007, 0x000C000A, 0x06050400, 0x0C0A0807, 0x4E1A0D05, 0x6F6F0408, 0x00030002, 0x00000000, 0x0000000C, 0x0003000C, - 0x0C246C07, 0x00000000, 0x00020004, 0x00030001, 0x00040000, 0x00060005, 0x00080007, 0x000C000A, 0x06050400, 0x0C0A0807, 0x4E1A0D05, 0x6F6F0408, 0x00030002, 0x00000000, 0x0000000C, 0x0003000C, - 0x0D277508, 0x00000000, 0x00020004, 0x00030001, 0x00040000, 0x00060005, 0x00080007, 0x000C000A, 0x06050400, 0x0C0A0807, 0x4F1B0E05, 0x6F6F0408, 0x00030002, 0x00000000, 0x0000000C, 0x0003000D, - 0x0E2A7E09, 0x00000000, 0x00020004, 0x00030001, 0x00040000, 0x00060005, 0x00080007, 0x000C000A, 0x06050400, 0x0C0A0807, 0x581C0F05, 0x6F6F0408, 0x00030002, 0x00000000, 0x0000000C, 0x0003000E, - 0x0F2D870A, 0x00000000, 0x00020004, 0x00030001, 0x00040000, 0x00060005, 0x00080007, 0x000C000A, 0x06050400, 0x0C0A0807, 0x591D1806, 0x6F6F0408, 0x00030002, 0x00000000, 0x0000000C, 0x0003000F, - 0x1030900B, 0x00000000, 0x00030005, 0x00040002, 0x00050000, 0x00080006, 0x000B000A, 0x0010000D, 0x08060500, 0x180D0B0A, 0x591D1906, 0x6F6F050B, 0x00040002, 0x00000000, 0x00000010, 0x00040010, - 0x1133990C, 0x00000000, 0x00030005, 0x00040002, 0x00050000, 0x00080006, 0x000B000A, 0x0010000D, 0x08060500, 0x180D0B0A, 0x5A1E1A07, 0x6F6F050B, 0x00040002, 0x00000000, 0x00000010, 0x00040011, - 0x1236A20D, 0x00000000, 0x00030005, 0x00040002, 0x00050000, 0x00080006, 0x000B000A, 0x0010000D, 0x08060500, 0x180D0B0A, 0x5A1F1A07, 0x6F6F050B, 0x00040002, 0x00000000, 0x00000010, 0x00040012, - 0x1339AB0E, 0x00000000, 0x00030005, 0x00040002, 0x00050000, 0x00080006, 0x000B000A, 0x0010000D, 0x08060500, 0x180D0B0A, 0x5B281B07, 0x6F6F050B, 0x00040002, 0x00000000, 0x00000010, 0x00040013, - 0x1339AB0F, 0x00000000, 0x00030005, 0x00040002, 0x00050000, 0x00080006, 0x000B000A, 0x0010000D, 0x08060500, 0x180D0B0A, 0x5B281B07, 0x6F6F050B, 0x00040002, 0x00000000, 0x00000010, 0x00040013, - 0x143CB410, 0x00000000, 0x00040006, 0x00050002, 0x00060000, 0x000A0008, 0x000E000C, 0x00140011, 0x0A080600, 0x1A190E0C, 0x5B281B08, 0x6F6F070E, 0x00050003, 0x00000000, 0x00000014, 0x00050014, - 0x153FBD11, 0x00000000, 0x00040006, 0x00050002, 0x00060000, 0x000A0008, 0x000E000C, 0x00140011, 0x0A080600, 0x1A190E0C, 0x5C291C08, 0x6F6F070E, 0x00050003, 0x00000000, 0x00000014, 0x00050015, - 0x1642C612, 0x00000000, 0x00040006, 0x00050002, 0x00060000, 0x000A0008, 0x000E000C, 0x00140011, 0x0A080600, 0x1A190E0C, 0x5D291C09, 0x6F6F070E, 0x00050003, 0x00000000, 0x00000014, 0x00050016, - 0x1745CF13, 0x00000000, 0x00040006, 0x00050002, 0x00060000, 0x000A0008, 0x000E000C, 0x00140011, 0x0A080600, 0x1A190E0C, 0x5D2A1D09, 0x6F6F070E, 0x00050003, 0x00000000, 0x00000014, 0x00050017, - 0x1848D814, 0x00000000, 0x00050007, 0x00060002, 0x00070000, 0x000C0009, 0x0011000F, 0x00170014, 0x0C090700, 0x1C1A190F, 0x5E2A1D09, 0x6F6F0818, 0x00060003, 0x00000000, 0x00000017, 0x00060018, - 0x194BE115, 0x00000000, 0x00050007, 0x00060002, 0x00070000, 0x000C0009, 0x0011000F, 0x00170014, 0x0C090700, 0x1C1A190F, 0x5E2A1E0A, 0x6F6F0818, 0x00060003, 0x00000000, 0x00000017, 0x00060019, - 0x1A4EEA16, 0x00000000, 0x00050007, 0x00060002, 0x00070000, 0x000C0009, 0x0011000F, 0x00170014, 0x0C090700, 0x1C1A190F, 0x5F2B1E0A, 0x6F6F0818, 0x00060003, 0x00000000, 0x00000017, 0x0006001A, - 0x1A4EEA17, 0x00000000, 0x00050007, 0x00060002, 0x00070000, 0x000C0009, 0x0011000F, 0x00170014, 0x0C090700, 0x1C1A190F, 0x5F2B1E0A, 0x6F6F0818, 0x00060003, 0x00000000, 0x00000017, 0x0006001A, - 0x1B51F318, 0x00000000, 0x00050007, 0x00060002, 0x00070000, 0x000C0009, 0x0011000F, 0x00170014, 0x0C090700, 0x1C1A190F, 0x5F2B1F0B, 0x6F6F0818, 0x00060003, 0x00000000, 0x00000017, 0x0006001B, - 0x1C54FC19, 0x00000000, 0x00050008, 0x00070003, 0x00080000, 0x000E000B, 0x00140011, 0x001B0017, 0x0E0B0800, 0x1E1C1A19, 0x682C280B, 0x6F6F0A1A, 0x00070004, 0x00000000, 0x0000001B, 0x0007001C, - 0x1D57FF1A, 0x00000000, 0x00050008, 0x00070003, 0x00080000, 0x000E000B, 0x00140011, 0x001B0017, 0x0E0B0800, 0x1E1C1A19, 0x682C280B, 0x6F6F0A1A, 0x00070004, 0x00000000, 0x0000001B, 0x0007001D, - 0x1E5AFF1B, 0x00000000, 0x00050008, 0x00070003, 0x00080000, 0x000E000B, 0x00140011, 0x001B0017, 0x0E0B0800, 0x1E1C1A19, 0x692C280C, 0x6F6F0A1A, 0x00070004, 0x00000000, 0x0000001B, 0x0007001E, - 0x1F5DFF1C, 0x00000000, 0x00050008, 0x00070003, 0x00080000, 0x000E000B, 0x00140011, 0x001B0017, 0x0E0B0800, 0x1E1C1A19, 0x692D290C, 0x6F6F0A1A, 0x00070004, 0x00000000, 0x0000001B, 0x0007001F, - 0x2060FF1D, 0x00000000, 0x00060009, 0x00080003, 0x00090000, 0x0010000D, 0x00170013, 0x001F001B, 0x180D0900, 0x281E1C1A, 0x692D290D, 0x6F6F0B1B, 0x00080004, 0x00000000, 0x0000001F, 0x00080020, - 0x2060FF1E, 0x00000000, 0x00060009, 0x00080003, 0x00090000, 0x0010000D, 0x00170013, 0x001F001B, 0x180D0900, 0x281E1C1A, 0x692D290D, 0x6F6F0B1B, 0x00080004, 0x00000000, 0x0000001F, 0x00080020, - 0x2163FF1F, 0x00000000, 0x00060009, 0x00080003, 0x00090000, 0x0010000D, 0x00170013, 0x001F001B, 0x180D0900, 0x281E1C1A, 0x692E290D, 0x6F6F0B1B, 0x00080004, 0x00000000, 0x0000001F, 0x00080021, - 0x2266FF20, 0x00000000, 0x00060009, 0x00080003, 0x00090000, 0x0010000D, 0x00170013, 0x001F001B, 0x180D0900, 0x281E1C1A, 0x6A2E290D, 0x6F6F0B1B, 0x00080004, 0x00000000, 0x0000001F, 0x00080022, - 0x2369FF21, 0x00000000, 0x00060009, 0x00080003, 0x00090000, 0x0010000D, 0x00170013, 0x001F001B, 0x180D0900, 0x281E1C1A, 0x6A2E2A0E, 0x6F6F0B1B, 0x00080004, 0x00000000, 0x0000001F, 0x00080023, - 0x246CFF22, 0x00000000, 0x0007000B, 0x00090004, 0x000B0000, 0x0012000E, 0x00190016, 0x0023001E, 0x190E0B00, 0x291F1D1B, 0x6A2F2A0E, 0x6F6F0C1D, 0x00090005, 0x00000000, 0x00000023, 0x00090024, - 0x256FFF23, 0x00000000, 0x0007000B, 0x00090004, 0x000B0000, 0x0012000E, 0x00190016, 0x0023001E, 0x190E0B00, 0x291F1D1B, 0x6B2F2A0E, 0x6F6F0C1D, 0x00090005, 0x00000000, 0x00000023, 0x00090025, - 0x2672FF24, 0x00000000, 0x0007000B, 0x00090004, 0x000B0000, 0x0012000E, 0x00190016, 0x0023001E, 0x190E0B00, 0x291F1D1B, 0x6B382B0F, 0x6F6F0C1D, 0x00090005, 0x00000000, 0x00000023, 0x00090026, - 0x2672FF25, 0x00000000, 0x0007000B, 0x00090004, 0x000B0000, 0x0012000E, 0x00190016, 0x0023001E, 0x190E0B00, 0x291F1D1B, 0x6B382B0F, 0x6F6F0C1D, 0x00090005, 0x00000000, 0x00000023, 0x00090026, - 0x2775FF26, 0x00000000, 0x0007000B, 0x00090004, 0x000B0000, 0x0012000E, 0x00190016, 0x0023001E, 0x190E0B00, 0x291F1D1B, 0x6B382B0F, 0x6F6F0C1D, 0x00090005, 0x00000000, 0x00000023, 0x00090027, - 0x2878FF27, 0x00000000, 0x0008000C, 0x000A0004, 0x000C0000, 0x00140010, 0x001C0018, 0x00270021, 0x1A180C00, 0x2A281E1C, 0x6B382B18, 0x6F6F0E1E, 0x000A0005, 0x00000000, 0x00000027, 0x000A0028, - 0x297BFF28, 0x00000000, 0x0008000C, 0x000A0004, 0x000C0000, 0x00140010, 0x001C0018, 0x00270021, 0x1A180C00, 0x2A281E1C, 0x6C382B18, 0x6F6F0E1E, 0x000A0005, 0x00000000, 0x00000027, 0x000A0029, - 0x2A7EFF29, 0x00000000, 0x0008000C, 0x000A0004, 0x000C0000, 0x00140010, 0x001C0018, 0x00270021, 0x1A180C00, 0x2A281E1C, 0x6C392C18, 0x6F6F0E1E, 0x000A0005, 0x00000000, 0x00000027, 0x000A002A, - 0x2B81FF2A, 0x00000000, 0x0008000C, 0x000A0004, 0x000C0000, 0x00140010, 0x001C0018, 0x00270021, 0x1A180C00, 0x2A281E1C, 0x6C392C19, 0x6F6F0E1E, 0x000A0005, 0x00000000, 0x00000027, 0x000A002B, - 0x2B81FF2B, 0x00000000, 0x0008000C, 0x000A0004, 0x000C0000, 0x00140010, 0x001C0018, 0x00270021, 0x1A180C00, 0x2A281E1C, 0x6C392C19, 0x6F6F0E1E, 0x000A0005, 0x00000000, 0x00000027, 0x000A002B, - 0x2C84FF2C, 0x00000000, 0x0009000D, 0x000B0004, 0x000D0000, 0x00160011, 0x001F001B, 0x002B0025, 0x1B190D00, 0x2B29281E, 0x6D392C19, 0x6F6F0F1F, 0x000B0006, 0x00000000, 0x0000002B, 0x000B002C, - 0x2D87FF2D, 0x00000000, 0x0009000D, 0x000B0004, 0x000D0000, 0x00160011, 0x001F001B, 0x002B0025, 0x1B190D00, 0x2B29281E, 0x6D392C19, 0x6F6F0F1F, 0x000B0006, 0x00000000, 0x0000002B, 0x000B002D, - 0x2E8AFF2E, 0x00000000, 0x0009000D, 0x000B0004, 0x000D0000, 0x00160011, 0x001F001B, 0x002B0025, 0x1B190D00, 0x2B29281E, 0x6D392D19, 0x6F6F0F1F, 0x000B0006, 0x00000000, 0x0000002B, 0x000B002E, - 0x2F8DFF2F, 0x00000000, 0x0009000D, 0x000B0004, 0x000D0000, 0x00160011, 0x001F001B, 0x002B0025, 0x1B190D00, 0x2B29281E, 0x6D3A2D19, 0x6F6F0F1F, 0x000B0006, 0x00000000, 0x0000002B, 0x000B002F, - 0x3090FF30, 0x00000000, 0x0009000E, 0x000C0005, 0x000E0000, 0x00180013, 0x0022001D, 0x002F0028, 0x1C1A0E00, 0x2C2A291F, 0x6E3A2D1A, 0x6F6F1828, 0x000C0007, 0x00000000, 0x0000002F, 0x000C0030, - 0x3090FF31, 0x00000000, 0x0009000E, 0x000C0005, 0x000E0000, 0x00180013, 0x0022001D, 0x002F0028, 0x1C1A0E00, 0x2C2A291F, 0x6E3A2D1A, 0x6F6F1828, 0x000C0007, 0x00000000, 0x0000002F, 0x000C0030, - 0x3193FF32, 0x00000000, 0x0009000E, 0x000C0005, 0x000E0000, 0x00180013, 0x0022001D, 0x002F0028, 0x1C1A0E00, 0x2C2A291F, 0x6E3A2E1A, 0x6F6F1828, 0x000C0007, 0x00000000, 0x0000002F, 0x000C0031, - 0x3296FF33, 0x00000000, 0x0009000E, 0x000C0005, 0x000E0000, 0x00180013, 0x0022001D, 0x002F0028, 0x1C1A0E00, 0x2C2A291F, 0x6E3A2E1A, 0x6F6F1828, 0x000C0007, 0x00000000, 0x0000002F, 0x000C0032, - 0x3399FF34, 0x00000000, 0x0009000E, 0x000C0005, 0x000E0000, 0x00180013, 0x0022001D, 0x002F0028, 0x1C1A0E00, 0x2C2A291F, 0x6F3B2E1A, 0x6F6F1828, 0x000C0007, 0x00000000, 0x0000002F, 0x000C0033, - 0x349CFF35, 0x00000000, 0x000A000F, 0x000D0005, 0x000F0000, 0x001A0014, 0x0025001F, 0x0033002B, 0x1D1A0F00, 0x2D2B2928, 0x6F3B2E1A, 0x6F6F1929, 0x000D0007, 0x00000000, 0x00000033, 0x000D0034, - 0x359FFF36, 0x00000000, 0x000A000F, 0x000D0005, 0x000F0000, 0x001A0014, 0x0025001F, 0x0033002B, 0x1D1A0F00, 0x2D2B2928, 0x6F3B2F1B, 0x6F6F1929, 0x000D0007, 0x00000000, 0x00000033, 0x000D0035, - 0x359FFF37, 0x00000000, 0x000A000F, 0x000D0005, 0x000F0000, 0x001A0014, 0x0025001F, 0x0033002B, 0x1D1A0F00, 0x2D2B2928, 0x6F3B2F1B, 0x6F6F1929, 0x000D0007, 0x00000000, 0x00000033, 0x000D0035, - 0x36A2FF38, 0x00000000, 0x000A000F, 0x000D0005, 0x000F0000, 0x001A0014, 0x0025001F, 0x0033002B, 0x1D1A0F00, 0x2D2B2928, 0x6F3B2F1B, 0x6F6F1929, 0x000D0007, 0x00000000, 0x00000033, 0x000D0036, - 0x37A5FF39, 0x00000000, 0x000A000F, 0x000D0005, 0x000F0000, 0x001A0014, 0x0025001F, 0x0033002B, 0x1D1A0F00, 0x2D2B2928, 0x783B2F1B, 0x6F6F1929, 0x000D0007, 0x00000000, 0x00000033, 0x000D0037, - 0x38A8FF3A, 0x00000000, 0x000B0010, 0x000E0005, 0x00100000, 0x001C0016, 0x00270022, 0x0037002E, 0x1E1B1800, 0x2E2C2A29, 0x783C2F1B, 0x6F6F1A2A, 0x000E0008, 0x00000000, 0x00000037, 0x000E0038, - 0x39ABFF3B, 0x00000000, 0x000B0010, 0x000E0005, 0x00100000, 0x001C0016, 0x00270022, 0x0037002E, 0x1E1B1800, 0x2E2C2A29, 0x783C381B, 0x6F6F1A2A, 0x000E0008, 0x00000000, 0x00000037, 0x000E0039, - 0x39ABFF3C, 0x00000000, 0x000B0010, 0x000E0005, 0x00100000, 0x001C0016, 0x00270022, 0x0037002E, 0x1E1B1800, 0x2E2C2A29, 0x783C381B, 0x6F6F1A2A, 0x000E0008, 0x00000000, 0x00000037, 0x000E0039, - 0x3AAEFF3D, 0x00000000, 0x000B0010, 0x000E0005, 0x00100000, 0x001C0016, 0x00270022, 0x0037002E, 0x1E1B1800, 0x2E2C2A29, 0x783C381C, 0x6F6F1A2A, 0x000E0008, 0x00000000, 0x00000037, 0x000E003A, - 0x3BB1FF3E, 0x00000000, 0x000B0010, 0x000E0005, 0x00100000, 0x001C0016, 0x00270022, 0x0037002E, 0x1E1B1800, 0x2E2C2A29, 0x783C381C, 0x6F6F1A2A, 0x000E0008, 0x00000000, 0x00000037, 0x000E003B, - 0x3CB4FF3F, 0x00000000, 0x000C0012, 0x000F0006, 0x00120000, 0x001E0017, 0x002A0024, 0x003B0032, 0x1F1C1900, 0x2F2D2B29, 0x793C381C, 0x6F6F1B2A, 0x000F0008, 0x00000000, 0x0000003B, 0x000F003C, - 0x3DB7FF40, 0x00000000, 0x000C0012, 0x000F0006, 0x00120000, 0x001E0017, 0x002A0024, 0x003B0032, 0x1F1C1900, 0x2F2D2B29, 0x793D381C, 0x6F6F1B2A, 0x000F0008, 0x00000000, 0x0000003B, 0x000F003D, - 0x3EBAFF41, 0x00000000, 0x000C0012, 0x000F0006, 0x00120000, 0x001E0017, 0x002A0024, 0x003B0032, 0x1F1C1900, 0x2F2D2B29, 0x793D391C, 0x6F6F1B2A, 0x000F0008, 0x00000000, 0x0000003B, 0x000F003E, - 0x3EBAFF42, 0x00000000, 0x000C0012, 0x000F0006, 0x00120000, 0x001E0017, 0x002A0024, 0x003B0032, 0x1F1C1900, 0x2F2D2B29, 0x793D391C, 0x6F6F1B2A, 0x000F0008, 0x00000000, 0x0000003B, 0x000F003E, - 0x3FBDFF43, 0x00000000, 0x000C0012, 0x000F0006, 0x00120000, 0x001E0017, 0x002A0024, 0x003B0032, 0x1F1C1900, 0x2F2D2B29, 0x793D391D, 0x6F6F1B2A, 0x000F0008, 0x00000000, 0x0000003B, 0x000F003F, - 0x40C0FF44, 0x00000000, 0x000D0013, 0x00100006, 0x00130000, 0x00210019, 0x002D0027, 0x003F0035, 0x281D1A00, 0x382D2B2A, 0x793D391D, 0x6F6F1B2B, 0x00180009, 0x00000000, 0x0000003F, 0x00100040, - 0x41C3FF45, 0x00000000, 0x000D0013, 0x00100006, 0x00130000, 0x00210019, 0x002D0027, 0x003F0035, 0x281D1A00, 0x382D2B2A, 0x793D391D, 0x6F6F1B2B, 0x00180009, 0x00000000, 0x0000003F, 0x00100041, - 0x42C6FF46, 0x00000000, 0x000D0013, 0x00100006, 0x00130000, 0x00210019, 0x002D0027, 0x003F0035, 0x281D1A00, 0x382D2B2A, 0x793E391D, 0x6F6F1B2B, 0x00180009, 0x00000000, 0x0000003F, 0x00100042, - 0x42C6FF47, 0x00000000, 0x000D0013, 0x00100006, 0x00130000, 0x00210019, 0x002D0027, 0x003F0035, 0x281D1A00, 0x382D2B2A, 0x793E391D, 0x6F6F1B2B, 0x00180009, 0x00000000, 0x0000003F, 0x00100042, - 0x43C9FF48, 0x00000000, 0x000D0013, 0x00100006, 0x00130000, 0x00210019, 0x002D0027, 0x003F0035, 0x281D1A00, 0x382D2B2A, 0x7A3E391D, 0x6F6F1B2B, 0x00180009, 0x00000000, 0x0000003F, 0x00100043, - 0x44CCFF49, 0x00000000, 0x000D0014, 0x00110007, 0x00140000, 0x0023001B, 0x00300029, 0x00420038, 0x291E1A00, 0x382E2C2A, 0x7A3E391E, 0x6F6F1C2C, 0x00190009, 0x00000000, 0x00000042, 0x00110044, - 0x45CFFF4A, 0x00000000, 0x000D0014, 0x00110007, 0x00140000, 0x0023001B, 0x00300029, 0x00420038, 0x291E1A00, 0x382E2C2A, 0x7A3E391E, 0x6F6F1C2C, 0x00190009, 0x00000000, 0x00000042, 0x00110045, - 0x46D2FF4B, 0x00000000, 0x000D0014, 0x00110007, 0x00140000, 0x0023001B, 0x00300029, 0x00420038, 0x291E1A00, 0x382E2C2A, 0x7A3E3A1E, 0x6F6F1C2C, 0x00190009, 0x00000000, 0x00000042, 0x00110046, - 0x46D2FF4C, 0x00000000, 0x000D0014, 0x00110007, 0x00140000, 0x0023001B, 0x00300029, 0x00420038, 0x291E1A00, 0x382E2C2A, 0x7A3E3A1E, 0x6F6F1C2C, 0x00190009, 0x00000000, 0x00000042, 0x00110046, - 0x47D5FF4D, 0x00000000, 0x000D0014, 0x00110007, 0x00140000, 0x0023001B, 0x00300029, 0x00420038, 0x291E1A00, 0x382E2C2A, 0x7A3F3A1E, 0x6F6F1C2C, 0x00190009, 0x00000000, 0x00000042, 0x00110047, - 0x48D8FF4E, 0x00000000, 0x000E0015, 0x00120007, 0x00150000, 0x0025001C, 0x0033002C, 0x0046003C, 0x291E1B00, 0x392F2D2B, 0x7A3F3A1E, 0x6F6F1D2C, 0x0019000A, 0x00000000, 0x00000046, 0x00120048, - 0x49DBFF4F, 0x00000000, 0x000E0015, 0x00120007, 0x00150000, 0x0025001C, 0x0033002C, 0x0046003C, 0x291E1B00, 0x392F2D2B, 0x7A3F3A1F, 0x6F6F1D2C, 0x0019000A, 0x00000000, 0x00000046, 0x00120049, - 0x4ADEFF50, 0x00000000, 0x000E0015, 0x00120007, 0x00150000, 0x0025001C, 0x0033002C, 0x0046003C, 0x291E1B00, 0x392F2D2B, 0x7B3F3A1F, 0x6F6F1D2C, 0x0019000A, 0x00000000, 0x00000046, 0x0012004A, - 0x4ADEFF51, 0x00000000, 0x000E0015, 0x00120007, 0x00150000, 0x0025001C, 0x0033002C, 0x0046003C, 0x291E1B00, 0x392F2D2B, 0x7B3F3A1F, 0x6F6F1D2C, 0x0019000A, 0x00000000, 0x00000046, 0x0012004A, - 0x4BE1FF52, 0x00000000, 0x000E0015, 0x00120007, 0x00150000, 0x0025001C, 0x0033002C, 0x0046003C, 0x291E1B00, 0x392F2D2B, 0x7B3F3A1F, 0x6F6F1D2C, 0x0019000A, 0x00000000, 0x00000046, 0x0012004B, - 0x4CE4FF53, 0x00000000, 0x000F0016, 0x00130007, 0x00160000, 0x0027001E, 0x0035002E, 0x004A003F, 0x2A1F1B00, 0x39382D2C, 0x7B483A1F, 0x6F6F1D2D, 0x001A000A, 0x00000000, 0x0000004A, 0x0013004C, - 0x4DE7FF54, 0x00000000, 0x000F0016, 0x00130007, 0x00160000, 0x0027001E, 0x0035002E, 0x004A003F, 0x2A1F1B00, 0x39382D2C, 0x7B483B1F, 0x6F6F1D2D, 0x001A000A, 0x00000000, 0x0000004A, 0x0013004D, - 0x4EEAFF55, 0x00000000, 0x000F0016, 0x00130007, 0x00160000, 0x0027001E, 0x0035002E, 0x004A003F, 0x2A1F1B00, 0x39382D2C, 0x7B483B1F, 0x6F6F1D2D, 0x001A000A, 0x00000000, 0x0000004A, 0x0013004E, - 0x4EEAFF56, 0x00000000, 0x000F0016, 0x00130007, 0x00160000, 0x0027001E, 0x0035002E, 0x004A003F, 0x2A1F1B00, 0x39382D2C, 0x7B483B1F, 0x6F6F1D2D, 0x001A000A, 0x00000000, 0x0000004A, 0x0013004E, - 0x4FEDFF57, 0x00000000, 0x000F0016, 0x00130007, 0x00160000, 0x0027001E, 0x0035002E, 0x004A003F, 0x2A1F1B00, 0x39382D2C, 0x7B483B28, 0x6F6F1D2D, 0x001A000A, 0x00000000, 0x0000004A, 0x0013004F, - 0x50F0FF58, 0x00000000, 0x00100017, 0x00140008, 0x00170000, 0x0029001F, 0x00380030, 0x004E0042, 0x2A281C00, 0x3A382E2C, 0x7B483B28, 0x6F6F1E2E, 0x001A000B, 0x00000000, 0x0000004E, 0x00140050, - 0x51F3FF59, 0x00000000, 0x00100017, 0x00140008, 0x00170000, 0x0029001F, 0x00380030, 0x004E0042, 0x2A281C00, 0x3A382E2C, 0x7C483B28, 0x6F6F1E2E, 0x001A000B, 0x00000000, 0x0000004E, 0x00140051, - 0x51F3FF5A, 0x00000000, 0x00100017, 0x00140008, 0x00170000, 0x0029001F, 0x00380030, 0x004E0042, 0x2A281C00, 0x3A382E2C, 0x7C483B28, 0x6F6F1E2E, 0x001A000B, 0x00000000, 0x0000004E, 0x00140051, - 0x52F6FF5B, 0x00000000, 0x00100017, 0x00140008, 0x00170000, 0x0029001F, 0x00380030, 0x004E0042, 0x2A281C00, 0x3A382E2C, 0x7C483B28, 0x6F6F1E2E, 0x001A000B, 0x00000000, 0x0000004E, 0x00140052, - 0x53F9FF5C, 0x00000000, 0x00100017, 0x00140008, 0x00170000, 0x0029001F, 0x00380030, 0x004E0042, 0x2A281C00, 0x3A382E2C, 0x7C493B28, 0x6F6F1E2E, 0x001A000B, 0x00000000, 0x0000004E, 0x00140053, - 0x54FCFF5D, 0x00000000, 0x00100019, 0x00150008, 0x00190000, 0x002B0021, 0x003B0033, 0x00520046, 0x2B281D00, 0x3A392F2D, 0x7C493C28, 0x6F6F1F2E, 0x001B000B, 0x00000000, 0x00000052, 0x00150054, - 0x55FFFF5E, 0x00000000, 0x00100019, 0x00150008, 0x00190000, 0x002B0021, 0x003B0033, 0x00520046, 0x2B281D00, 0x3A392F2D, 0x7C493C28, 0x6F6F1F2E, 0x001B000B, 0x00000000, 0x00000052, 0x00150055, - 0x55FFFF5F, 0x00000000, 0x00100019, 0x00150008, 0x00190000, 0x002B0021, 0x003B0033, 0x00520046, 0x2B281D00, 0x3A392F2D, 0x7C493C28, 0x6F6F1F2E, 0x001B000B, 0x00000000, 0x00000052, 0x00150055, - 0x57FFFF60, 0x00000000, 0x00100019, 0x00150008, 0x00190000, 0x002B0021, 0x003B0033, 0x00520046, 0x2B281D00, 0x3A392F2D, 0x7C493C29, 0x6F6F1F2E, 0x001B000B, 0x00000000, 0x00000052, 0x00150057, - 0x58FFFF61, 0x00000000, 0x0011001A, 0x00150009, 0x001A0000, 0x002D0022, 0x003E0035, 0x00560049, 0x2B291D00, 0x3B39382D, 0x7D493C29, 0x6F6F1F2F, 0x001B000C, 0x00000000, 0x00000056, 0x00160058, - 0x5AFFFF62, 0x00000000, 0x0011001A, 0x00150009, 0x001A0000, 0x002D0022, 0x003E0035, 0x00560049, 0x2B291D00, 0x3B39382D, 0x7D493C29, 0x6F6F1F2F, 0x001B000C, 0x00000000, 0x00000056, 0x0016005A, - 0x5CFFFF63, 0x00000000, 0x0012001B, 0x00160009, 0x001B0000, 0x002F0024, 0x00410038, 0x005A004C, 0x2C291E00, 0x3B3A382E, 0x7D493D29, 0x6F6F2838, 0x001B000D, 0x00000000, 0x0000005A, 0x0017005C, - 0x5DFFFF64, 0x00000000, 0x0012001B, 0x00160009, 0x001B0000, 0x002F0024, 0x00410038, 0x005A004C, 0x2C291E00, 0x3B3A382E, 0x7D4A3D29, 0x6F6F2838, 0x001B000D, 0x00000000, 0x0000005A, 0x0017005D, - 0x5FFFFF65, 0x00000000, 0x0012001B, 0x00160009, 0x001B0000, 0x002F0024, 0x00410038, 0x005A004C, 0x2C291E00, 0x3B3A382E, 0x7E4A3D29, 0x6F6F2838, 0x001B000D, 0x00000000, 0x0000005A, 0x0017005F, - 0x60FFFF66, 0x00000000, 0x0013001C, 0x00170009, 0x001C0000, 0x00310026, 0x0044003A, 0x005E0050, 0x2C2A1E00, 0x3C3A392F, 0x7E4A3D2A, 0x6F6F2838, 0x001C000D, 0x00000000, 0x0000005E, 0x00180060, - 0x62FFFF67, 0x00000000, 0x0013001C, 0x00170009, 0x001C0000, 0x00310026, 0x0044003A, 0x005E0050, 0x2C2A1E00, 0x3C3A392F, 0x7E4A3D2A, 0x6F6F2838, 0x001C000D, 0x00000000, 0x0000005E, 0x00180062, - 0x63FFFF68, 0x00000000, 0x0013001C, 0x00170009, 0x001C0000, 0x00310026, 0x0044003A, 0x005E0050, 0x2C2A1E00, 0x3C3A392F, 0x7E4A3E2A, 0x6F6F2838, 0x001C000D, 0x00000000, 0x0000005E, 0x00180063, - 0x65FFFF69, 0x00000000, 0x0014001D, 0x0018000A, 0x001D0000, 0x00330027, 0x0046003D, 0x00620053, 0x2D2A1F00, 0x3C3A392F, 0x7E4A3E2A, 0x6F6F2939, 0x001C000E, 0x00000000, 0x00000062, 0x00190065, - 0x66FFFF6A, 0x00000000, 0x0014001D, 0x0018000A, 0x001D0000, 0x00330027, 0x0046003D, 0x00620053, 0x2D2A1F00, 0x3C3A392F, 0x7E4A3E2A, 0x6F6F2939, 0x001C000E, 0x00000000, 0x00000062, 0x00190066, - 0x68FFFF6B, 0x00000000, 0x0014001E, 0x0019000A, 0x001E0000, 0x00350029, 0x0049003F, 0x00660056, 0x2D2A1F00, 0x3D3B3938, 0x7F4B3E2A, 0x6F6F2939, 0x001D000E, 0x00000000, 0x00000066, 0x001A0068, - 0x69FFFF6C, 0x00000000, 0x0014001E, 0x0019000A, 0x001E0000, 0x00350029, 0x0049003F, 0x00660056, 0x2D2A1F00, 0x3D3B3938, 0x7F4B3E2A, 0x6F6F2939, 0x001D000E, 0x00000000, 0x00000066, 0x001A0069, - 0x6BFFFF6D, 0x00000000, 0x0014001E, 0x0019000A, 0x001E0000, 0x00350029, 0x0049003F, 0x00660056, 0x2D2A1F00, 0x3D3B3938, 0x7F4B3F2B, 0x6F6F2939, 0x001D000E, 0x00000000, 0x00000066, 0x001A006B, - 0x6CFFFF6E, 0x00000000, 0x00150020, 0x001A000B, 0x00200000, 0x0037002A, 0x004C0041, 0x0069005A, 0x2E2B2800, 0x3D3B3A38, 0x7F4B3F2B, 0x6F6F2939, 0x001D000F, 0x00000000, 0x00000069, 0x001B006C, - 0x6EFFFF6F, 0x00000000, 0x00150020, 0x001A000B, 0x00200000, 0x0037002A, 0x004C0041, 0x0069005A, 0x2E2B2800, 0x3D3B3A38, 0x884B3F2B, 0x6F6F2939, 0x001D000F, 0x00000000, 0x00000069, 0x001B006E, - 0x6FFFFF70, 0x00000000, 0x00150020, 0x001A000B, 0x00200000, 0x0037002A, 0x004C0041, 0x0069005A, 0x2E2B2800, 0x3D3B3A38, 0x884B3F2B, 0x6F6F2939, 0x001D000F, 0x00000000, 0x00000069, 0x001B006F, - 0x71FFFF71, 0x00000000, 0x00160021, 0x001B000B, 0x00210000, 0x0039002C, 0x004F0044, 0x006D005D, 0x2E2B2800, 0x3E3C3A39, 0x884C482B, 0x6F6F2A3A, 0x001E000F, 0x00000000, 0x0000006D, 0x001C0071, - 0x72FFFF72, 0x00000000, 0x00160021, 0x001B000B, 0x00210000, 0x0039002C, 0x004F0044, 0x006D005D, 0x2E2B2800, 0x3E3C3A39, 0x884C482B, 0x6F6F2A3A, 0x001E000F, 0x00000000, 0x0000006D, 0x001C0072, - 0x74FFFF73, 0x00000000, 0x00170022, 0x001C000B, 0x00220000, 0x003B002D, 0x00520046, 0x00710060, 0x2F2B2900, 0x3E3C3A39, 0x884C482B, 0x6F6F2A3A, 0x001E0018, 0x00000000, 0x00000071, 0x001D0074, - 0x75FFFF74, 0x00000000, 0x00170022, 0x001C000B, 0x00220000, 0x003B002D, 0x00520046, 0x00710060, 0x2F2B2900, 0x3E3C3A39, 0x884C482C, 0x6F6F2A3A, 0x001E0018, 0x00000000, 0x00000071, 0x001D0075, - 0x76FFFF75, 0x00000000, 0x00170022, 0x001C000B, 0x00220000, 0x003B002D, 0x00520046, 0x00710060, 0x2F2B2900, 0x3E3C3A39, 0x884C482C, 0x6F6F2A3A, 0x001E0018, 0x00000000, 0x00000071, 0x001D0076, - 0x78FFFF76, 0x00000000, 0x00170023, 0x001D000C, 0x00230000, 0x003D002F, 0x00540049, 0x00750064, 0x2F2C2900, 0x3F3D3B39, 0x894C482C, 0x6F6F2A3A, 0x001F0018, 0x00000000, 0x00000075, 0x001E0078, - 0x79FFFF77, 0x00000000, 0x00170023, 0x001D000C, 0x00230000, 0x003D002F, 0x00540049, 0x00750064, 0x2F2C2900, 0x3F3D3B39, 0x894C482C, 0x6F6F2A3A, 0x001F0018, 0x00000000, 0x00000075, 0x001E0079, - 0x7BFFFF78, 0x00000000, 0x00170023, 0x001D000C, 0x00230000, 0x003D002F, 0x00540049, 0x00750064, 0x2F2C2900, 0x3F3D3B39, 0x894D482C, 0x6F6F2A3A, 0x001F0018, 0x00000000, 0x00000075, 0x001E007B, - 0x7DFFFF79, 0x00000000, 0x00180024, 0x001E000C, 0x00240000, 0x003F0030, 0x0057004B, 0x00790067, 0x382C2900, 0x3F3D3B39, 0x894D492C, 0x6F6F2B3B, 0x001F0019, 0x00000000, 0x00000079, 0x001F007D, - 0x7FFFFF7A, 0x00000000, 0x00180024, 0x001E000C, 0x00240000, 0x003F0030, 0x0057004B, 0x00790067, 0x382C2900, 0x3F3D3B39, 0x894D492D, 0x6F6F2B3B, 0x001F0019, 0x00000000, 0x00000079, 0x001F007F, - 0x81FFFF7B, 0x00000000, 0x00190026, 0x001F000D, 0x00260000, 0x00410032, 0x005A004E, 0x007D006A, 0x382D2A00, 0x483D3B3A, 0x894D492D, 0x6F6F2B3B, 0x00280019, 0x00000000, 0x0000007D, 0x00200081, - 0x83FFFF7C, 0x00000000, 0x00190026, 0x001F000D, 0x00260000, 0x00410032, 0x005A004E, 0x007D006A, 0x382D2A00, 0x483D3B3A, 0x894D492D, 0x6F6F2B3B, 0x00280019, 0x00000000, 0x0000007D, 0x00200083, - 0x86FFFF7D, 0x00000000, 0x001A0027, 0x0020000D, 0x00270000, 0x00430034, 0x005D0050, 0x0081006E, 0x382D2A00, 0x483E3C3A, 0x8A4E492D, 0x6F6F2B3B, 0x00280019, 0x00000000, 0x00000081, 0x00210086, - 0x88FFFF7E, 0x00000000, 0x001B0028, 0x0021000D, 0x00280000, 0x00450035, 0x00600052, 0x00850071, 0x392D2A00, 0x483E3C3A, 0x8A4E492D, 0x6F6F2C3C, 0x0028001A, 0x00000000, 0x00000085, 0x00220088, - 0x8AFFFF7F, 0x00000000, 0x001B0028, 0x0021000D, 0x00280000, 0x00450035, 0x00600052, 0x00850071, 0x392D2A00, 0x483E3C3A, 0x8A4E492E, 0x6F6F2C3C, 0x0028001A, 0x00000000, 0x00000085, 0x0022008A, - 0x8CFFFF80, 0x00000000, 0x001B0029, 0x0022000E, 0x00290000, 0x00470037, 0x00620055, 0x00890074, 0x392E2A00, 0x493F3C3B, 0x8A4E4A2E, 0x6F6F2C3C, 0x0029001A, 0x00000000, 0x00000089, 0x0023008C, - 0x8EFFFF81, 0x00000000, 0x001B0029, 0x0022000E, 0x00290000, 0x00470037, 0x00620055, 0x00890074, 0x392E2A00, 0x493F3C3B, 0x8A4F4A2E, 0x6F6F2C3C, 0x0029001A, 0x00000000, 0x00000089, 0x0023008E, - 0x90FFFF82, 0x00000000, 0x001C002A, 0x0023000E, 0x002A0000, 0x00490038, 0x00650057, 0x008D0078, 0x392E2B00, 0x493F3D3B, 0x8A4F4A2E, 0x6F6F2C3C, 0x0029001A, 0x00000000, 0x0000008D, 0x00240090, - 0x92FFFF83, 0x00000000, 0x001C002A, 0x0023000E, 0x002A0000, 0x00490038, 0x00650057, 0x008D0078, 0x392E2B00, 0x493F3D3B, 0x8A4F4A2E, 0x6F6F2C3C, 0x0029001A, 0x00000000, 0x0000008D, 0x00240092, - 0x94FFFF84, 0x00000000, 0x001D002B, 0x0024000E, 0x002B0000, 0x004B003A, 0x0068005A, 0x0091007B, 0x392F2B00, 0x493F3D3B, 0x8B4F4A2F, 0x6F6F2D3D, 0x0029001A, 0x00000000, 0x00000091, 0x00250094, - 0x96FFFF85, 0x00000000, 0x001D002B, 0x0024000E, 0x002B0000, 0x004B003A, 0x0068005A, 0x0091007B, 0x392F2B00, 0x493F3D3B, 0x8B4F4A2F, 0x6F6F2D3D, 0x0029001A, 0x00000000, 0x00000091, 0x00250096, - 0x98FFFF86, 0x00000000, 0x001E002D, 0x0025000F, 0x002D0000, 0x004D003B, 0x006B005C, 0x0094007E, 0x3A2F2B00, 0x49483D3C, 0x8B584A2F, 0x6F6F2D3D, 0x0029001B, 0x00000000, 0x00000094, 0x00260098, - 0x9AFFFF87, 0x00000000, 0x001E002D, 0x0025000F, 0x002D0000, 0x004D003B, 0x006B005C, 0x0094007E, 0x3A2F2B00, 0x49483D3C, 0x8B584B2F, 0x6F6F2D3D, 0x0029001B, 0x00000000, 0x00000094, 0x0026009A, - 0x9CFFFF88, 0x00000000, 0x001E002E, 0x0026000F, 0x002E0000, 0x004F003D, 0x006E005E, 0x00980081, 0x3A2F2C00, 0x4A483E3C, 0x8B584B2F, 0x6F6F2D3D, 0x002A001B, 0x00000000, 0x00000098, 0x0027009C, - 0x9EFFFF89, 0x00000000, 0x001E002E, 0x0026000F, 0x002E0000, 0x004F003D, 0x006E005E, 0x00980081, 0x3A2F2C00, 0x4A483E3C, 0x8B584B38, 0x6F6F2D3D, 0x002A001B, 0x00000000, 0x00000098, 0x0027009E, - 0xA1FFFF8A, 0x00000000, 0x001F002F, 0x00270010, 0x002F0000, 0x0051003F, 0x00710061, 0x009C0085, 0x3A382C00, 0x4A483E3C, 0x8B584B38, 0x6F6F2E3E, 0x002A001B, 0x00000000, 0x0000009C, 0x002800A1, - 0xA4FFFF8B, 0x00000000, 0x00200030, 0x00280010, 0x00300000, 0x00530040, 0x00730063, 0x00A00088, 0x3A382C00, 0x4A493E3C, 0x8C584B38, 0x6F6F2E3E, 0x002A001B, 0x00000000, 0x000000A0, 0x002900A4, - 0xA6FFFF8C, 0x00000000, 0x00200030, 0x00280010, 0x00300000, 0x00530040, 0x00730063, 0x00A00088, 0x3A382C00, 0x4A493E3C, 0x8C594B38, 0x6F6F2E3E, 0x002A001B, 0x00000000, 0x000000A0, 0x002900A6, - 0xA9FFFF8D, 0x00000000, 0x00210031, 0x00290010, 0x00310000, 0x00550042, 0x00760066, 0x00A4008B, 0x3B382C00, 0x4A493F3D, 0x8C594C38, 0x6F6F2E3E, 0x002A001C, 0x00000000, 0x000000A4, 0x002A00A9, - 0xACFFFF8E, 0x00000000, 0x00220032, 0x002A0011, 0x00320000, 0x00570043, 0x00790068, 0x00A8008F, 0x3B382D00, 0x4B493F3D, 0x8C594C38, 0x6F6F2F3F, 0x002B001C, 0x00000000, 0x000000A8, 0x002B00AC, - 0xAEFFFF8F, 0x00000000, 0x00220032, 0x002A0011, 0x00320000, 0x00570043, 0x00790068, 0x00A8008F, 0x3B382D00, 0x4B493F3D, 0x8C594C39, 0x6F6F2F3F, 0x002B001C, 0x00000000, 0x000000A8, 0x002B00AE, - 0xB1FFFF90, 0x00000000, 0x00220034, 0x002B0011, 0x00340000, 0x00590045, 0x007C006B, 0x00AC0092, 0x3B392D00, 0x4B49483D, 0x8D594C39, 0x6F6F2F3F, 0x002B001C, 0x00000000, 0x000000AC, 0x002C00B1, - 0xB4FFFF91, 0x00000000, 0x00230035, 0x002C0012, 0x00350000, 0x005B0046, 0x007F006D, 0x00B00095, 0x3B392D00, 0x4B49483E, 0x8D594C39, 0x6F6F383F, 0x002B001D, 0x00000000, 0x000000B0, 0x002D00B4, - 0xB6FFFF92, 0x00000000, 0x00230035, 0x002C0012, 0x00350000, 0x005B0046, 0x007F006D, 0x00B00095, 0x3B392D00, 0x4B49483E, 0x8D594C39, 0x6F6F383F, 0x002B001D, 0x00000000, 0x000000B0, 0x002D00B6, - 0xB9FFFF93, 0x00000000, 0x00240036, 0x002D0012, 0x00360000, 0x005D0048, 0x0081006F, 0x00B40099, 0x3C392E00, 0x4B4A483E, 0x8D5A4D39, 0x6F6F3848, 0x002B001D, 0x00000000, 0x000000B4, 0x002E00B9, - 0xBBFFFF94, 0x00000000, 0x00240036, 0x002D0012, 0x00360000, 0x005D0048, 0x0081006F, 0x00B40099, 0x3C392E00, 0x4B4A483E, 0x8D5A4D39, 0x6F6F3848, 0x002B001D, 0x00000000, 0x000000B4, 0x002E00BB, - 0xBEFFFF95, 0x00000000, 0x00250037, 0x002E0012, 0x00370000, 0x005F0049, 0x00840072, 0x00B8009C, 0x3C392E00, 0x4C4A483E, 0x8E5A4D39, 0x6F6F3848, 0x002C001D, 0x00000000, 0x000000B8, 0x002F00BE, - 0xC0FFFF96, 0x00000000, 0x00260038, 0x002F0013, 0x00380000, 0x0062004B, 0x00870074, 0x00BC009F, 0x3C392E00, 0x4C4A483F, 0x8E5A4D39, 0x6F6F3848, 0x002C001D, 0x00000000, 0x000000BC, 0x003000C0, - 0xC3FFFF97, 0x00000000, 0x00260038, 0x002F0013, 0x00380000, 0x0062004B, 0x00870074, 0x00BC009F, 0x3C392E00, 0x4C4A483F, 0x8E5A4D3A, 0x6F6F3848, 0x002C001D, 0x00000000, 0x000000BC, 0x003000C3, - 0xC7FFFF98, 0x00000000, 0x00260039, 0x00300013, 0x00390000, 0x0064004D, 0x008A0077, 0x00BF00A3, 0x3D3A2E00, 0x4C4A493F, 0x8E5A4E3A, 0x6F6F3848, 0x002C001E, 0x00000000, 0x000000BF, 0x003100C7, - 0xCAFFFF99, 0x00000000, 0x0027003B, 0x00310014, 0x003B0000, 0x0066004E, 0x008D0079, 0x00C300A6, 0x3D3A2F00, 0x4C4A493F, 0x8E5A4E3A, 0x6F6F3949, 0x002C001E, 0x00000000, 0x000000C3, 0x003200CA, - 0xCDFFFF9A, 0x00000000, 0x0028003C, 0x00320014, 0x003C0000, 0x00680050, 0x008F007C, 0x00C700A9, 0x3D3A2F00, 0x4C4B4948, 0x8F5B4E3A, 0x6F6F3949, 0x002D001E, 0x00000000, 0x000000C7, 0x003300CD, - 0xD0FFFF9B, 0x00000000, 0x0029003D, 0x00330014, 0x003D0000, 0x006A0051, 0x0092007E, 0x00CB00AD, 0x3D3A2F00, 0x4D4B4948, 0x8F5B4E3A, 0x6F6F3949, 0x002D001E, 0x00000000, 0x000000CB, 0x003400D0, - 0xD3FFFF9C, 0x00000000, 0x0029003D, 0x00330014, 0x003D0000, 0x006A0051, 0x0092007E, 0x00CB00AD, 0x3D3A2F00, 0x4D4B4948, 0x8F5B4E3A, 0x6F6F3949, 0x002D001E, 0x00000000, 0x000000CB, 0x003400D3, - 0xD6FFFF9D, 0x00000000, 0x0029003E, 0x00340015, 0x003E0000, 0x006C0053, 0x00950080, 0x00CF00B0, 0x3E3A3800, 0x4D4B4948, 0x8F5B4F3B, 0x6F6F3949, 0x002D001F, 0x00000000, 0x000000CF, 0x003500D6, - 0xD9FFFF9E, 0x00000000, 0x002A003F, 0x00350015, 0x003F0000, 0x006E0054, 0x00980083, 0x00D300B3, 0x3E3B3800, 0x4D4B4A48, 0x8F5B4F3B, 0x6F6F3949, 0x002D001F, 0x00000000, 0x000000D3, 0x003600D9, - 0xDCFFFF9F, 0x00000000, 0x002B0040, 0x00360015, 0x00400000, 0x00700056, 0x009B0085, 0x00D700B7, 0x3E3B3800, 0x4D4B4A48, 0x8F5B4F3B, 0x6F6F3949, 0x002E001F, 0x00000000, 0x000000D7, 0x003700DC, - 0xDFFFFFA0, 0x00000000, 0x002B0040, 0x00360015, 0x00400000, 0x00700056, 0x009B0085, 0x00D700B7, 0x3E3B3800, 0x4D4B4A48, 0x8F5B4F3B, 0x6F6F3949, 0x002E001F, 0x00000000, 0x000000D7, 0x003700DF, - 0xE2FFFFA1, 0x00000000, 0x002C0042, 0x00370016, 0x00420000, 0x00720058, 0x009E0088, 0x00DB00BA, 0x3E3B3800, 0x4E4C4A49, 0x8F5C4F3B, 0x6F6F3A4A, 0x002E0028, 0x00000000, 0x000000DB, 0x003800E2, - 0xE6FFFFA2, 0x00000000, 0x002D0043, 0x00380016, 0x00430000, 0x00740059, 0x00A0008A, 0x00DF00BD, 0x3F3B3800, 0x4E4C4A49, 0x8F5C583B, 0x6F6F3A4A, 0x002E0028, 0x00000000, 0x000000DF, 0x003900E6, - 0xE9FFFFA3, 0x00000000, 0x002D0044, 0x00390017, 0x00440000, 0x0076005B, 0x00A3008C, 0x00E300C1, 0x3F3B3900, 0x4E4C4A49, 0x8F5C583B, 0x6F6F3A4A, 0x002E0028, 0x00000000, 0x000000E3, 0x003A00E9, - 0xEDFFFFA4, 0x00000000, 0x002E0045, 0x003A0017, 0x00450000, 0x0078005C, 0x00A6008F, 0x00E600C4, 0x3F3C3900, 0x4E4C4A49, 0x8F5C583C, 0x6F6F3A4A, 0x002F0028, 0x00000000, 0x000000E6, 0x003B00ED, - 0xF0FFFFA5, 0x00000000, 0x002F0046, 0x003B0017, 0x00460000, 0x007A005E, 0x00A90091, 0x00EA00C7, 0x3F3C3900, 0x4F4C4B49, 0x8F5C583C, 0x6F6F3A4A, 0x002F0028, 0x00000000, 0x000000EA, 0x003C00F0, - 0xF3FFFFA6, 0x00000000, 0x002F0046, 0x003B0017, 0x00460000, 0x007A005E, 0x00A90091, 0x00EA00C7, 0x3F3C3900, 0x4F4C4B49, 0x8F5C583C, 0x6F6F3A4A, 0x002F0028, 0x00000000, 0x000000EA, 0x003C00F3, - 0xF7FFFFA7, 0x00000000, 0x00300047, 0x003C0018, 0x00470000, 0x007C005F, 0x00AC0094, 0x00EE00CB, 0x483C3900, 0x4F4D4B49, 0x8F5D583C, 0x6F6F3A4A, 0x002F0028, 0x00000000, 0x000000EE, 0x003D00F7, - 0xFAFFFFA8, 0x00000000, 0x00300049, 0x003D0018, 0x00490000, 0x007E0061, 0x00AE0096, 0x00F200CE, 0x483C3900, 0x4F4D4B49, 0x8F5D593C, 0x6F6F3B4B, 0x002F0029, 0x00000000, 0x000000F2, 0x003E00FA, - 0xFDFFFFA9, 0x00000000, 0x0031004A, 0x003E0019, 0x004A0000, 0x00800062, 0x00B10099, 0x00F600D1, 0x483C3900, 0x4F4D4B4A, 0x8F5D593C, 0x6F6F3B4B, 0x00380029, 0x00000000, 0x000000F6, 0x003F00FD, - 0xFFFFFFAA, 0x00000000, 0x0032004B, 0x003F0019, 0x004B0000, 0x00820064, 0x00B4009B, 0x00FA00D5, 0x483D3900, 0x584D4B4A, 0x8F5D593D, 0x6F6F3B4B, 0x00380029, 0x00000000, 0x000000FA, 0x00400101, - 0xFFFFFFAB, 0x00000000, 0x0033004C, 0x003F0019, 0x004C0000, 0x00840066, 0x00B7009D, 0x00FE00D8, 0x483D3A00, 0x584E4B4A, 0x8F5D593D, 0x6F6F3B4B, 0x00380029, 0x00000000, 0x000000FE, 0x00410105, - 0xFFFFFFAC, 0x00000000, 0x0034004D, 0x0040001A, 0x004D0000, 0x00860067, 0x00BA00A0, 0x010200DB, 0x483D3A00, 0x584E4C4A, 0x8F5E593D, 0x6F6F3B4B, 0x00380029, 0x00000000, 0x00000102, 0x00420109, - 0xFFFFFFAD, 0x00000000, 0x0034004F, 0x0041001A, 0x004F0000, 0x00880069, 0x00BC00A2, 0x010600DE, 0x493D3A00, 0x584E4C4A, 0x8F5E593D, 0x6F6F3C4B, 0x00380029, 0x00000000, 0x00000106, 0x0043010D, - 0xFFFFFFAE, 0x00000000, 0x00350050, 0x0042001B, 0x00500000, 0x008A006A, 0x00BF00A5, 0x010A00E2, 0x493D3A00, 0x584E4C4A, 0x8F5E593D, 0x6F6F3C4C, 0x00380029, 0x00000000, 0x0000010A, 0x00440110, - 0xFFFFFFAF, 0x00000000, 0x00360051, 0x0043001B, 0x00510000, 0x008C006C, 0x00C200A7, 0x010E00E5, 0x493E3A00, 0x584E4C4A, 0x8F5E593E, 0x6F6F3C4C, 0x0038002A, 0x00000000, 0x0000010E, 0x00450114, - 0xFFFFFFB0, 0x00000000, 0x00370052, 0x0044001B, 0x00520000, 0x008E006D, 0x00C500AA, 0x011100E8, 0x493E3A00, 0x594F4C4B, 0x8F5E5A3E, 0x6F6F3C4C, 0x0039002A, 0x00000000, 0x00000111, 0x00460118, - 0xFFFFFFB1, 0x00000000, 0x00370053, 0x0045001C, 0x00530000, 0x0090006F, 0x00C800AC, 0x011500EC, 0x493E3A00, 0x594F4D4B, 0x8F5F5A3E, 0x6F6F3C4C, 0x0039002A, 0x00000000, 0x00000115, 0x0047011C, - 0xFFFFFFB2, 0x00000000, 0x00380054, 0x0046001C, 0x00540000, 0x00920071, 0x00CB00AE, 0x011900EF, 0x493E3B00, 0x594F4D4B, 0x8F5F5A3E, 0x6F6F3C4C, 0x0039002A, 0x00000000, 0x00000119, 0x00480120, - 0xFFFFFFB3, 0x00000000, 0x00390056, 0x0047001D, 0x00560000, 0x00940072, 0x00CD00B1, 0x011D00F2, 0x493E3B00, 0x594F4D4B, 0x8F5F5A3E, 0x6F6F3D4D, 0x0039002A, 0x00000000, 0x0000011D, 0x00490124, - 0xFFFFFFB4, 0x00000000, 0x003A0057, 0x0048001D, 0x00570000, 0x00960074, 0x00D000B3, 0x012100F6, 0x493F3B00, 0x594F4D4B, 0x8F5F5A3F, 0x6F6F3D4D, 0x0039002A, 0x00000000, 0x00000121, 0x004A0128, - 0xFFFFFFB5, 0x00000000, 0x003B0058, 0x0049001D, 0x00580000, 0x00980075, 0x00D300B6, 0x012500F9, 0x4A3F3B00, 0x59584D4B, 0x8F5F5A3F, 0x6F6F3D4D, 0x0039002A, 0x00000000, 0x00000125, 0x004B012C, - 0xFFFFFFB6, 0x00000000, 0x003B0059, 0x004A001E, 0x00590000, 0x009A0077, 0x00D600B8, 0x012900FC, 0x4A3F3B00, 0x59584D4C, 0x8F685A3F, 0x6F6F3D4D, 0x0039002B, 0x00000000, 0x00000129, 0x004C0130, - 0xFFFFFFB7, 0x00000000, 0x003C005A, 0x004B001E, 0x005A0000, 0x009C0078, 0x00D900BA, 0x012D0100, 0x4A3F3B00, 0x59584E4C, 0x8F685B3F, 0x6F6F3D4D, 0x0039002B, 0x00000000, 0x0000012D, 0x004D0135, - 0xFFFFFFB8, 0x00000000, 0x003D005B, 0x004C001E, 0x005B0000, 0x009E007A, 0x00DB00BD, 0x01310103, 0x4A3F3B00, 0x5A584E4C, 0x8F685B3F, 0x6F6F3D4D, 0x003A002B, 0x00000000, 0x00000131, 0x004E0139, - 0xFFFFFFB9, 0x00000000, 0x003E005D, 0x004D001F, 0x005D0000, 0x00A0007B, 0x00DE00BF, 0x01350106, 0x4A3F3C00, 0x5A584E4C, 0x8F685B48, 0x6F6F3E4E, 0x003A002B, 0x00000000, 0x00000135, 0x004F013D, - 0xFFFFFFBA, 0x00000000, 0x003F005E, 0x004E001F, 0x005E0000, 0x00A3007D, 0x00E100C2, 0x0139010A, 0x4A483C00, 0x5A584E4C, 0x8F685B48, 0x6F6F3E4E, 0x003A002B, 0x00000000, 0x00000139, 0x00500142, - 0xFFFFFFBB, 0x00000000, 0x003F005F, 0x004F0020, 0x005F0000, 0x00A5007F, 0x00E400C4, 0x013C010D, 0x4A483C00, 0x5A584E4C, 0x8F685B48, 0x6F6F3E4E, 0x003A002B, 0x00000000, 0x0000013C, 0x00510146, - 0xFFFFFFBC, 0x00000000, 0x00400060, 0x00500020, 0x00600000, 0x00A70080, 0x00E700C7, 0x01400110, 0x4A483C00, 0x5A594E4C, 0x8F685B48, 0x6F6F3E4E, 0x003A002B, 0x00000000, 0x00000140, 0x0052014A, - 0xFFFFFFBD, 0x00000000, 0x00410061, 0x00510020, 0x00610000, 0x00A90082, 0x00E900C9, 0x01440114, 0x4B483C00, 0x5A594F4D, 0x8F695B48, 0x6F6F3E4E, 0x003A002B, 0x00000000, 0x00000144, 0x0053014F, - 0xFFFFFFBE, 0x00000000, 0x00420064, 0x00530021, 0x00640000, 0x00AD0085, 0x00EF00CE, 0x014C011A, 0x4B483D00, 0x5A594F4D, 0x8F695C48, 0x6F6F3F4F, 0x003A002C, 0x00000000, 0x0000014C, 0x00550154, - 0xFFFFFFBF, 0x00000000, 0x00430065, 0x00540022, 0x00650000, 0x00AF0086, 0x00F200D0, 0x0150011E, 0x4B483D00, 0x5B594F4D, 0x8F695C48, 0x6F6F3F4F, 0x003B002C, 0x00000000, 0x00000150, 0x00560158, - 0xFFFFFFC0, 0x00000000, 0x00440066, 0x00550022, 0x00660000, 0x00B10088, 0x00F500D3, 0x01540121, 0x4B493D00, 0x5B594F4D, 0x8F695C49, 0x6F6F3F4F, 0x003B002C, 0x00000000, 0x00000154, 0x0057015D, - 0xFFFFFFC1, 0x00000000, 0x00450067, 0x00560022, 0x00670000, 0x00B3008A, 0x00F800D5, 0x01580124, 0x4B493D00, 0x5B59584D, 0x8F695C49, 0x6F6F3F4F, 0x003B002C, 0x00000000, 0x00000158, 0x00580162, - 0xFFFFFFC2, 0x00000000, 0x00460068, 0x00570023, 0x00680000, 0x00B5008B, 0x00FA00D8, 0x015C0128, 0x4B493D00, 0x5B59584E, 0x8F695C49, 0x6F6F3F4F, 0x003B002C, 0x00000000, 0x0000015C, 0x00590167, - 0xFFFFFFC3, 0x00000000, 0x0047006B, 0x00590024, 0x006B0000, 0x00B9008E, 0x010000DC, 0x0163012E, 0x4C493D00, 0x5B59584E, 0x8F695C49, 0x6F6F4858, 0x003B002D, 0x00000000, 0x00000163, 0x005B016C, - 0xFFFFFFC4, 0x00000000, 0x0048006C, 0x005A0024, 0x006C0000, 0x00BB0090, 0x010300DF, 0x01670131, 0x4C493E00, 0x5B5A584E, 0x8F695D49, 0x6F6F4858, 0x003B002D, 0x00000000, 0x00000167, 0x005C0171, - 0xFFFFFFC5, 0x00000000, 0x0049006D, 0x005B0024, 0x006D0000, 0x00BD0091, 0x010600E1, 0x016B0135, 0x4C493E00, 0x5B5A584E, 0x8F6A5D49, 0x6F6F4858, 0x003B002D, 0x00000000, 0x0000016B, 0x005D0176, - 0xFFFFFFC6, 0x00000000, 0x0049006E, 0x005C0025, 0x006E0000, 0x00BF0093, 0x010800E4, 0x016F0138, 0x4C493E00, 0x5B5A584E, 0x8F6A5D49, 0x6F6F4858, 0x003C002D, 0x00000000, 0x0000016F, 0x005E017B, - 0xFFFFFFC7, 0x00000000, 0x004B0071, 0x005E0026, 0x00710000, 0x00C30096, 0x010E00E9, 0x0177013F, 0x4C493E00, 0x5C5A584F, 0x8F6A5D49, 0x6F6F4858, 0x003C002D, 0x00000000, 0x00000177, 0x00600180, - 0xFFFFFFC8, 0x00000000, 0x004C0072, 0x005F0026, 0x00720000, 0x00C50098, 0x011100EB, 0x017B0142, 0x4C4A3E00, 0x5C5A594F, 0x8F6A5D4A, 0x6F6F4858, 0x003C002D, 0x00000000, 0x0000017B, 0x00610185, - 0xFFFFFFC9, 0x00000000, 0x004D0073, 0x00600026, 0x00730000, 0x00C70099, 0x011400ED, 0x017F0145, 0x4C4A3E00, 0x5C5A594F, 0x8F6A5E4A, 0x6F6F4858, 0x003C002E, 0x00000000, 0x0000017F, 0x0062018B, - 0xFFFFFFCA, 0x00000000, 0x004E0075, 0x00620027, 0x00750000, 0x00CB009C, 0x011900F2, 0x0187014C, 0x4D4A3F00, 0x5C5A594F, 0x8F6A5E4A, 0x6F6F4959, 0x003C002E, 0x00000000, 0x00000187, 0x00640190, - 0xFFFFFFCB, 0x00000000, 0x004F0076, 0x00630027, 0x00760000, 0x00CD009E, 0x011C00F5, 0x018B014F, 0x4D4A3F00, 0x5C5A594F, 0x8F6A5E4A, 0x6F6F4959, 0x003C002E, 0x00000000, 0x0000018B, 0x00650196, - 0xFFFFFFCC, 0x00000000, 0x00500078, 0x00640028, 0x00780000, 0x00CF009F, 0x011F00F7, 0x018E0153, 0x4D4A3F00, 0x5C5B594F, 0x8F6B5E4A, 0x6F6F4959, 0x003D002E, 0x00000000, 0x0000018E, 0x0066019B, - 0xFFFFFFCD, 0x00000000, 0x0051007A, 0x00660029, 0x007A0000, 0x00D300A3, 0x012500FC, 0x01960159, 0x4D4A3F00, 0x5D5B5958, 0x8F6B5E4A, 0x6F6F4959, 0x003D002E, 0x00000000, 0x00000196, 0x006801A1, - 0xFFFFFFCE, 0x00000000, 0x0052007B, 0x00670029, 0x007B0000, 0x00D500A4, 0x012700FE, 0x019A015D, 0x4D4A3F00, 0x5D5B5958, 0x8F6B5E4A, 0x6F6F4959, 0x003D002E, 0x00000000, 0x0000019A, 0x006901A7, - 0xFFFFFFCF, 0x00000000, 0x0054007D, 0x0068002A, 0x007D0000, 0x00D900A7, 0x012D0103, 0x01A20163, 0x4E4A4800, 0x5D5B5958, 0x8F6B5F4B, 0x6F6F4959, 0x003D002F, 0x00000000, 0x000001A2, 0x006B01AD, - 0xFFFFFFD0, 0x00000000, 0x0054007F, 0x0069002A, 0x007F0000, 0x00DB00A9, 0x01300106, 0x01A60167, 0x4E4B4800, 0x5D5B5A58, 0x8F6B5F4B, 0x6F6F4959, 0x003D002F, 0x00000000, 0x000001A6, 0x006C01B3, - 0xFFFFFFD1, 0x00000000, 0x00560081, 0x006B002B, 0x00810000, 0x00DF00AC, 0x0135010A, 0x01AE016D, 0x4E4B4800, 0x5D5B5A58, 0x8F6B5F4B, 0x6F6F4959, 0x003D002F, 0x00000000, 0x000001AE, 0x006E01B9, - 0xFFFFFFD2, 0x00000000, 0x00570082, 0x006C002B, 0x00820000, 0x00E100AD, 0x0138010D, 0x01B20171, 0x4E4B4800, 0x5E5C5A58, 0x8F6B5F4B, 0x6F6F4A5A, 0x003E002F, 0x00000000, 0x000001B2, 0x006F01BF, - 0xFFFFFFD3, 0x00000000, 0x00580084, 0x006E002C, 0x00840000, 0x00E600B1, 0x013E0112, 0x01B90177, 0x4E4B4800, 0x5E5C5A59, 0x8F6C684B, 0x6F6F4A5A, 0x003E0038, 0x00000000, 0x000001B9, 0x007101C6, - 0xFFFFFFD4, 0x00000000, 0x005A0087, 0x0070002D, 0x00870000, 0x00EA00B4, 0x01430117, 0x01C1017E, 0x4F4B4800, 0x5E5C5A59, 0x8F6C684B, 0x6F6F4A5A, 0x003E0038, 0x00000000, 0x000001C1, 0x007301CD, - 0xFFFFFFD5, 0x00000000, 0x005B0088, 0x0071002D, 0x00880000, 0x00EC00B5, 0x01460119, 0x01C50181, 0x4F4B4900, 0x5E5C5A59, 0x8F6C684B, 0x6F6F4A5A, 0x003E0038, 0x00000000, 0x000001C5, 0x007401D3, - 0xFFFFFFD6, 0x00000000, 0x005C008A, 0x0073002E, 0x008A0000, 0x00F000B8, 0x014C011E, 0x01CD0188, 0x4F4C4900, 0x5E5C5A59, 0x8F6C684C, 0x6F6F4A5A, 0x003E0038, 0x00000000, 0x000001CD, 0x007601DB, - 0xFFFFFFD7, 0x00000000, 0x005E008D, 0x0075002F, 0x008D0000, 0x00F400BC, 0x01520123, 0x01D5018E, 0x4F4C4900, 0x5F5C5B59, 0x8F6C684C, 0x6F6F4A5A, 0x003F0038, 0x00000000, 0x000001D5, 0x007801E2, - 0xFFFFFFD8, 0x00000000, 0x005F008F, 0x00770030, 0x008F0000, 0x00F800BF, 0x01570127, 0x01DD0195, 0x584C4900, 0x5F5D5B59, 0x8F6D684C, 0x6F6F4A5A, 0x003F0038, 0x00000000, 0x000001DD, 0x007A01E9, - 0xFFFFFFD9, 0x00000000, 0x00610091, 0x00790030, 0x00910000, 0x00FC00C2, 0x015D012C, 0x01E4019C, 0x584C4900, 0x5F5D5B59, 0x8F6D694C, 0x6F6F4B5B, 0x003F0039, 0x00000000, 0x000001E4, 0x007C01F1, - 0xFFFFFFDA, 0x00000000, 0x00620094, 0x007B0031, 0x00940000, 0x010000C5, 0x01620131, 0x01EC01A2, 0x584C4900, 0x5F5D5B5A, 0x8F6D694C, 0x6F6F4B5B, 0x003F0039, 0x00000000, 0x000001EC, 0x007E01F9, - 0xFFFFFFDB, 0x00000000, 0x00640096, 0x007D0032, 0x00960000, 0x010400C8, 0x01680136, 0x01F401A9, 0x584D4900, 0x685D5B5A, 0x8F6D694D, 0x6F6F4B5B, 0x00480039, 0x00000000, 0x000001F4, 0x00800201, - 0xFFFFFFDC, 0x00000000, 0x00660098, 0x007F0033, 0x00980000, 0x010800CB, 0x016E013B, 0x01FC01B0, 0x584D4A00, 0x685E5B5A, 0x8F6D694D, 0x6F6F4B5B, 0x00480039, 0x00000000, 0x000001FC, 0x0082020A, - 0xFFFFFFDD, 0x00000000, 0x0067009B, 0x00810034, 0x009B0000, 0x010C00CE, 0x01730140, 0x020401B6, 0x584D4A00, 0x685E5C5A, 0x8F6E694D, 0x6F6F4B5B, 0x00480039, 0x00000000, 0x00000204, 0x00840212, - 0xFFFFFFDE, 0x00000000, 0x0069009D, 0x00830034, 0x009D0000, 0x011000D1, 0x01790145, 0x020B01BD, 0x594D4A00, 0x685E5C5A, 0x8F6E694D, 0x6F6F4B5B, 0x00480039, 0x00000000, 0x0000020B, 0x0086021B, - 0xFFFFFFDF, 0x00000000, 0x006B00A1, 0x00860036, 0x00A10000, 0x011600D6, 0x0181014C, 0x021701C7, 0x594D4A00, 0x685E5C5A, 0x8F6E694D, 0x6F6F4C5C, 0x00480039, 0x00000000, 0x00000217, 0x00890225, - 0xFFFFFFE0, 0x00000000, 0x006D00A3, 0x00880036, 0x00A30000, 0x011A00D9, 0x01870151, 0x021F01CE, 0x594E4A00, 0x685E5C5B, 0x8F6E6A4E, 0x6F6F4C5C, 0x0049003A, 0x00000000, 0x0000021F, 0x008B022F, - 0xFFFFFFE1, 0x00000000, 0x006F00A6, 0x008B0037, 0x00A60000, 0x012000DE, 0x018F0158, 0x022B01D7, 0x594E4A00, 0x695F5C5B, 0x8F6F6A4E, 0x6F6F4C5C, 0x0049003A, 0x00000000, 0x0000022B, 0x008E0239, - 0xFFFFFFE2, 0x00000000, 0x007100A9, 0x008D0038, 0x00A90000, 0x012500E1, 0x0195015D, 0x023301DE, 0x594E4B00, 0x695F5D5B, 0x8F6F6A4E, 0x6F6F4C5C, 0x0049003A, 0x00000000, 0x00000233, 0x00900243, - 0xFFFFFFE3, 0x00000000, 0x007300AC, 0x00900039, 0x00AC0000, 0x012B00E6, 0x019D0164, 0x023E01E8, 0x594E4B00, 0x695F5D5B, 0x8F6F6A4E, 0x6F6F4D5D, 0x0049003A, 0x00000000, 0x0000023E, 0x0093024E, - 0xFFFFFFE4, 0x00000000, 0x007500B0, 0x0092003B, 0x00B00000, 0x013100EA, 0x01A6016B, 0x024A01F2, 0x5A4F4B00, 0x69685D5B, 0x8F6F6A4F, 0x6F6F4D5D, 0x0049003A, 0x00000000, 0x0000024A, 0x0096025A, - 0xFFFFFFE5, 0x00000000, 0x007800B3, 0x0095003C, 0x00B30000, 0x013700EF, 0x01AE0173, 0x025601FC, 0x5A4F4B00, 0x69685D5C, 0x8F786B4F, 0x6F6F4D5D, 0x0049003B, 0x00000000, 0x00000256, 0x00990266, - 0xFFFFFFE6, 0x00000000, 0x007A00B7, 0x0098003D, 0x00B70000, 0x013D00F4, 0x01B7017A, 0x02610206, 0x5A4F4B00, 0x6A685E5C, 0x8F786B4F, 0x6F6F4D5D, 0x004A003B, 0x00000000, 0x00000261, 0x009C0272, - 0xFFFFFFE7, 0x00000000, 0x007D00BC, 0x009C003F, 0x00BC0000, 0x014500FA, 0x01C20184, 0x02710213, 0x5A584C00, 0x6A685E5C, 0x8F786B58, 0x6F6F4E5E, 0x004A003B, 0x00000000, 0x00000271, 0x00A00280, - 0xFFFFFFE8, 0x00000000, 0x007F00BF, 0x009F0040, 0x00BF0000, 0x014B00FF, 0x01CA018B, 0x027D021D, 0x5A584C00, 0x6A685E5C, 0x8F786B58, 0x6F6F4E5E, 0x004A003B, 0x00000000, 0x0000027D, 0x00A3028E, - 0xFFFFFFE9, 0x00000000, 0x008200C4, 0x00A30041, 0x00C40000, 0x01530105, 0x01D60194, 0x028C022A, 0x5B584C00, 0x6A695F5D, 0x8F796B58, 0x6F6F4E5E, 0x004A003B, 0x00000000, 0x0000028C, 0x00A7029C, - 0xFFFFFFEA, 0x00000000, 0x008600C8, 0x00A70043, 0x00C80000, 0x015B010B, 0x01E1019E, 0x029C0238, 0x5B584D00, 0x6A695F5D, 0x8F796C58, 0x6F6F4F5F, 0x004A003C, 0x00000000, 0x0000029C, 0x00AB02AC, - 0xFFFFFFEB, 0x00000000, 0x008900CD, 0x00AB0044, 0x00CD0000, 0x01630111, 0x01EC01A8, 0x02AC0245, 0x5B594D00, 0x6B695F5D, 0x8F796C59, 0x6F6F4F5F, 0x004B003C, 0x00000000, 0x000002AC, 0x00AF02BC, - 0xFFFFFFEC, 0x00000000, 0x008C00D2, 0x00AF0046, 0x00D20000, 0x016C0118, 0x01F701B2, 0x02BB0252, 0x5B594D00, 0x6B69685E, 0x8F796C59, 0x6F6F4F5F, 0x004B003C, 0x00000000, 0x000002BB, 0x00B302CD, - 0xFFFFFFED, 0x00000000, 0x009000D8, 0x00B40048, 0x00D80000, 0x01760120, 0x020601BE, 0x02CF0263, 0x5C594E00, 0x6B6A685E, 0x8F796D59, 0x6F6F5868, 0x004B003D, 0x00000000, 0x000002CF, 0x00B802E0, - 0xFFFFFFEE, 0x00000000, 0x009300DC, 0x00B80049, 0x00DC0000, 0x017E0126, 0x021101C7, 0x02DE0270, 0x5C594E00, 0x6B6A685E, 0x8F7A6D59, 0x6F6F5868, 0x004C003D, 0x00000000, 0x000002DE, 0x00BC02F3, - 0xFFFFFFEF, 0x00000000, 0x009700E2, 0x00BC004B, 0x00E20000, 0x0188012E, 0x021F01D3, 0x02F20281, 0x5C594E00, 0x6C6A685F, 0x8F7A6D59, 0x6F6F5868, 0x004C003D, 0x00000000, 0x000002F2, 0x00C10307, - 0xFFFFFFF0, 0x00000000, 0x009B00E9, 0x00C2004E, 0x00E90000, 0x01940137, 0x023001E2, 0x03090295, 0x5D5A4F00, 0x6C6A695F, 0x8F7A6E5A, 0x6F6F5969, 0x004C003E, 0x00000000, 0x00000309, 0x00C7031C, - 0xFFFFFFF1, 0x00000000, 0x009F00EF, 0x00C70050, 0x00EF0000, 0x019E013F, 0x023E01EE, 0x031D02A5, 0x5D5A4F00, 0x6C6B695F, 0x8F7B6E5A, 0x6F6F5969, 0x004C003E, 0x00000000, 0x0000031D, 0x00CC0333, - 0xFFFFFFF2, 0x00000000, 0x00A400F6, 0x00CD0052, 0x00F60000, 0x01AB0148, 0x024F01FD, 0x033402B9, 0x5D5A4F00, 0x6D6B6968, 0x8F7B6E5A, 0x6F6F5969, 0x004D003E, 0x00000000, 0x00000334, 0x00D2034B, - 0xFFFFFFF3, 0x00000000, 0x00AA00FE, 0x00D40055, 0x00FE0000, 0x01B90153, 0x0262020E, 0x035002D1, 0x5E5B5800, 0x6D6B6A68, 0x8F7B6F5B, 0x6F6F5969, 0x004D003F, 0x00000000, 0x00000350, 0x00D90365, - 0xFFFFFFF4, 0x00000000, 0x00AF0107, 0x00DB0058, 0x01070000, 0x01C7015E, 0x0276021F, 0x036B02E8, 0x5E5B5800, 0x6E6C6A68, 0x8F7B6F5B, 0x6F6F5A6A, 0x004E003F, 0x00000000, 0x0000036B, 0x00E00380, - 0xFFFFFFF5, 0x00000000, 0x00B4010F, 0x00E2005A, 0x010F0000, 0x01D50169, 0x028A022F, 0x038602FF, 0x5F5B5800, 0x6E6C6A69, 0x8F7C785B, 0x6F6F5A6A, 0x004E0048, 0x00000000, 0x00000386, 0x00E7039D, - 0xFFFFFFF6, 0x00000000, 0x00BA0117, 0x00E8005D, 0x01170000, 0x01E30174, 0x029D0240, 0x03A20316, 0x5F5C5900, 0x6F6C6A69, 0x8F7C785C, 0x6F6F5A6A, 0x004F0048, 0x00000000, 0x000003A2, 0x00EE03BB, - 0xFFFFFFF7, 0x00000000, 0x00C10121, 0x00F10060, 0x01210000, 0x01F60182, 0x02B70256, 0x03C50334, 0x685C5900, 0x6F6D6B69, 0x8F7D785C, 0x6F6F5B6B, 0x004F0048, 0x00000000, 0x000003C5, 0x00F703DC, - 0xFFFFFFF8, 0x00000000, 0x00C7012B, 0x00F90064, 0x012B0000, 0x0206018E, 0x02CD026A, 0x03E4034F, 0x685C5900, 0x6F6D6B6A, 0x8F7D795C, 0x6F6F5B6B, 0x00580049, 0x00000000, 0x000003E4, 0x00FF03FE, - 0xFFFFFFF9, 0x00000000, 0x00CE0135, 0x01020067, 0x01350000, 0x0218019D, 0x02E7027F, 0x0407036D, 0x685D5A00, 0x6F6E6C6A, 0x8F7E795D, 0x6F6F5B6B, 0x00580049, 0x00000000, 0x00000407, 0x01080422, - 0xFFFFFFFA, 0x00000000, 0x00D60141, 0x010C006B, 0x01410000, 0x022D01AC, 0x03030298, 0x042E038E, 0x695D5A00, 0x6F6E6C6A, 0x8F7E795D, 0x6F6F5C6C, 0x00580049, 0x00000000, 0x0000042E, 0x0112044A, - 0xFFFFFFFB, 0x00000000, 0x00DE014D, 0x0115006F, 0x014D0000, 0x024101BC, 0x031F02B0, 0x045503AF, 0x695E5A00, 0x6F6F6C6B, 0x8F7F7A5E, 0x6F6F5C6C, 0x0059004A, 0x00000000, 0x00000455, 0x011C0473, - 0xFFFFFFFC, 0x00000000, 0x00E7015B, 0x01210074, 0x015B0000, 0x025901CF, 0x034102CD, 0x048403D7, 0x695E5B00, 0x6F6F6D6B, 0x8F7F7A5E, 0x6F6F5D6D, 0x0059004A, 0x00000000, 0x00000484, 0x012804A0, - 0xFFFFFFFD, 0x00000000, 0x00F10169, 0x012D0078, 0x01690000, 0x027201E1, 0x036202EA, 0x04B303FF, 0x6A5F5B00, 0x6F6F6E6C, 0x8F887B5F, 0x6F6F5D6D, 0x0059004B, 0x00000000, 0x000004B3, 0x013404D0, - 0xFFFFFFFE, 0x00000000, 0x00FA0177, 0x0139007D, 0x01770000, 0x028A01F4, 0x03840307, 0x04E20427, 0x6A685C00, 0x6F6F6E6C, 0x8F887B68, 0x6F6F5E6E, 0x005A004B, 0x00000000, 0x000004E2, 0x01400502, - 0xFFFFFFFF, 0x00000000, 0x01050187, 0x01460082, 0x01870000, 0x02A6020A, 0x03AB0329, 0x05190455, 0x6B685C00, 0x6F6F6F6D, 0x8F897B68, 0x6F6F5E6E, 0x005A004B, 0x00000000, 0x00000519, 0x014E0538, -}; diff -Nru intel-vaapi-driver-1.7.1/src/gen9_vp9_const_def.h intel-vaapi-driver-1.7.0/src/gen9_vp9_const_def.h --- intel-vaapi-driver-1.7.1/src/gen9_vp9_const_def.h 2016-06-16 00:57:46.000000000 +0000 +++ intel-vaapi-driver-1.7.0/src/gen9_vp9_const_def.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,44 +0,0 @@ -/* - * Copyright © 2016 Intel Corporation - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the - * "Software"), to deal in the Software without restriction, including - * without limitation the rights to use, copy, modify, merge, publish, - * distribute, sub license, and/or sell copies of the Software, and to - * permit persons to whom the Software is furnished to do so, subject to - * the following conditions: - * - * The above copyright notice and this permission notice (including the - * next paragraph) shall be included in all copies or substantial portions - * of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. - * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR - * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, - * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE - * SOFTWAR - * - * Authors: - * Zhao, Yakui - * - */ - -#ifndef _GEN9_VP9_CONST_H -#define _GEN9_VP9_CONST_H - -extern const unsigned int vp9_fullspiral_ime_search_path_delta[14]; - -extern const unsigned int vp9_diamond_ime_search_path_delta[14]; - -extern const int vp9_brc_const_data_p_g9[4448]; -extern const int vp9_brc_const_data_i_g9[4448]; - -extern const unsigned int gen9_vp9_avs_coeffs[256]; - -extern const unsigned int intel_vp9_costlut_key[4096]; -extern const unsigned int intel_vp9_costlut_p[4096]; - -#endif diff -Nru intel-vaapi-driver-1.7.1/src/gen9_vp9_encapi.h intel-vaapi-driver-1.7.0/src/gen9_vp9_encapi.h --- intel-vaapi-driver-1.7.1/src/gen9_vp9_encapi.h 2016-06-16 00:57:46.000000000 +0000 +++ intel-vaapi-driver-1.7.0/src/gen9_vp9_encapi.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,52 +0,0 @@ -/* - * Copyright © 2016 Intel Corporation - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the - * "Software"), to deal in the Software without restriction, including - * without limitation the rights to use, copy, modify, merge, publish, - * distribute, sub license, and/or sell copies of the Software, and to - * permit persons to whom the Software is furnished to do so, subject to - * the following conditions: - * - * The above copyright notice and this permission notice (including the - * next paragraph) shall be included in all copies or substantial portions - * of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. - * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR - * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, - * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE - * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * - * Authors: - * Zhao Yakui - * - */ - -#ifndef _INTEL_VP9_ENC_API_H_ -#define _INTEL_VP9_ENC_API_H_ - -#include - -struct intel_encoder_context; -struct hw_context; - -extern Bool -gen9_vp9_vme_context_init(VADriverContextP ctx, struct intel_encoder_context *encoder_context); - -extern Bool -gen9_vp9_pak_context_init(VADriverContextP ctx, struct intel_encoder_context *encoder_context); - -/* buffer points to the start address of coded_buffer. It is also - * interpreted as i965_coded_buffer_segment. - */ -extern VAStatus -gen9_vp9_get_coded_status(VADriverContextP ctx, - char *buffer, - struct hw_context *hw_context); - - -#endif // _INTE_VP9_ENC_API_H_ diff -Nru intel-vaapi-driver-1.7.1/src/gen9_vp9_encoder.c intel-vaapi-driver-1.7.0/src/gen9_vp9_encoder.c --- intel-vaapi-driver-1.7.1/src/gen9_vp9_encoder.c 2016-06-17 01:06:24.000000000 +0000 +++ intel-vaapi-driver-1.7.0/src/gen9_vp9_encoder.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,6065 +0,0 @@ -/* - * Copyright © 2016 Intel Corporation - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the - * "Software"), to deal in the Software without restriction, including - * without limitation the rights to use, copy, modify, merge, publish, - * distribute, sub license, and/or sell copies of the Software, and to - * permit persons to whom the Software is furnished to do so, subject to - * the following conditions: - * - * The above copyright notice and this permission notice (including the - * next paragraph) shall be included in all copies or substantial portions - * of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. - * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR - * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, - * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE - * SOFTWAR - * - * Authors: - * Zhao, Yakui - * - */ - -#include -#include -#include -#include -#include -#include -#include - -#include "intel_batchbuffer.h" -#include "intel_driver.h" - -#include "i965_defines.h" -#include "i965_drv_video.h" -#include "i965_encoder.h" -#include "gen9_vp9_encapi.h" -#include "gen9_vp9_encoder.h" -#include "gen9_vp9_encoder_kernels.h" -#include "vp9_probs.h" -#include "gen9_vp9_const_def.h" - -#define MAX_VP9_ENCODER_SURFACES 64 - -#define MAX_URB_SIZE 4096 /* In register */ -#define NUM_KERNELS_PER_GPE_CONTEXT 1 - -#define VP9_BRC_KBPS 1000 - -#define BRC_KERNEL_CBR 0x0010 -#define BRC_KERNEL_VBR 0x0020 -#define BRC_KERNEL_AVBR 0x0040 -#define BRC_KERNEL_CQL 0x0080 - -#define DEFAULT_MOCS 0x02 -#define VP9_PIC_STATE_BUFFER_SIZE 192 - -typedef struct _intel_kernel_header_ -{ - uint32_t reserved : 6; - uint32_t kernel_start_pointer : 26; -} intel_kernel_header; - -typedef struct _intel_vp9_kernel_header { - int nKernelCount; - intel_kernel_header PLY_DSCALE; - intel_kernel_header VP9_ME_P; - intel_kernel_header VP9_Enc_I_32x32; - intel_kernel_header VP9_Enc_I_16x16; - intel_kernel_header VP9_Enc_P; - intel_kernel_header VP9_Enc_TX; - intel_kernel_header VP9_DYS; - - intel_kernel_header VP9BRC_Intra_Distortion; - intel_kernel_header VP9BRC_Init; - intel_kernel_header VP9BRC_Reset; - intel_kernel_header VP9BRC_Update; -} intel_vp9_kernel_header; - -#define DYS_1X_FLAG 0x01 -#define DYS_4X_FLAG 0x02 -#define DYS_16X_FLAG 0x04 - -struct vp9_surface_param { - uint32_t frame_width; - uint32_t frame_height; -}; - -static uint32_t intel_convert_sign_mag(int val, int sign_bit_pos) -{ - uint32_t ret_val = 0; - if (val < 0) - { - val = -val; - ret_val = ((1 << (sign_bit_pos - 1)) | (val & ((1 << (sign_bit_pos - 1)) - 1))); - } - else - { - ret_val = val & ((1 << (sign_bit_pos - 1)) - 1); - } - return ret_val; -} - -static bool -intel_vp9_get_kernel_header_and_size( - void *pvbinary, - int binary_size, - INTEL_VP9_ENC_OPERATION operation, - int krnstate_idx, - struct i965_kernel *ret_kernel) -{ - typedef uint32_t BIN_PTR[4]; - - char *bin_start; - intel_vp9_kernel_header *pkh_table; - intel_kernel_header *pcurr_header, *pinvalid_entry, *pnext_header; - int next_krnoffset; - - if (!pvbinary || !ret_kernel) - return false; - - bin_start = (char *)pvbinary; - pkh_table = (intel_vp9_kernel_header *)pvbinary; - pinvalid_entry = &(pkh_table->VP9BRC_Update) + 1; - next_krnoffset = binary_size; - - if ((operation == INTEL_VP9_ENC_SCALING4X) || (operation == INTEL_VP9_ENC_SCALING2X)) - { - pcurr_header = &pkh_table->PLY_DSCALE; - } - else if (operation == INTEL_VP9_ENC_ME) - { - pcurr_header = &pkh_table->VP9_ME_P; - } - else if (operation == INTEL_VP9_ENC_MBENC) - { - pcurr_header = &pkh_table->VP9_Enc_I_32x32; - } - else if (operation == INTEL_VP9_ENC_DYS) - { - pcurr_header = &pkh_table->VP9_DYS; - } - else if (operation == INTEL_VP9_ENC_BRC) - { - pcurr_header = &pkh_table->VP9BRC_Intra_Distortion; - } - else - { - return false; - } - - pcurr_header += krnstate_idx; - ret_kernel->bin = (const BIN_PTR *)(bin_start + (pcurr_header->kernel_start_pointer << 6)); - - pnext_header = (pcurr_header + 1); - if (pnext_header < pinvalid_entry) - { - next_krnoffset = pnext_header->kernel_start_pointer << 6; - } - ret_kernel->size = next_krnoffset - (pcurr_header->kernel_start_pointer << 6); - - return true; -} - - -static void -gen9_free_surfaces_vp9(void **data) -{ - struct gen9_surface_vp9 *vp9_surface; - - if (!data || !*data) - return; - - vp9_surface = *data; - - if (vp9_surface->scaled_4x_surface_obj) { - i965_DestroySurfaces(vp9_surface->ctx, &vp9_surface->scaled_4x_surface_id, 1); - vp9_surface->scaled_4x_surface_id = VA_INVALID_SURFACE; - vp9_surface->scaled_4x_surface_obj = NULL; - } - - if (vp9_surface->scaled_16x_surface_obj) { - i965_DestroySurfaces(vp9_surface->ctx, &vp9_surface->scaled_16x_surface_id, 1); - vp9_surface->scaled_16x_surface_id = VA_INVALID_SURFACE; - vp9_surface->scaled_16x_surface_obj = NULL; - } - - if (vp9_surface->dys_4x_surface_obj) { - i965_DestroySurfaces(vp9_surface->ctx, &vp9_surface->dys_4x_surface_id, 1); - vp9_surface->dys_4x_surface_id = VA_INVALID_SURFACE; - vp9_surface->dys_4x_surface_obj = NULL; - } - - if (vp9_surface->dys_16x_surface_obj) { - i965_DestroySurfaces(vp9_surface->ctx, &vp9_surface->dys_16x_surface_id, 1); - vp9_surface->dys_16x_surface_id = VA_INVALID_SURFACE; - vp9_surface->dys_16x_surface_obj = NULL; - } - - if (vp9_surface->dys_surface_obj) { - i965_DestroySurfaces(vp9_surface->ctx, &vp9_surface->dys_surface_id, 1); - vp9_surface->dys_surface_id = VA_INVALID_SURFACE; - vp9_surface->dys_surface_obj = NULL; - } - - free(vp9_surface); - - *data = NULL; - - return; -} - -static VAStatus -gen9_vp9_init_check_surfaces(VADriverContextP ctx, - struct object_surface *obj_surface, - struct vp9_surface_param *surface_param) -{ - struct i965_driver_data *i965 = i965_driver_data(ctx); - struct gen9_surface_vp9 *vp9_surface; - int downscaled_width_4x, downscaled_height_4x; - int downscaled_width_16x, downscaled_height_16x; - - if (!obj_surface || !obj_surface->bo) - return VA_STATUS_ERROR_INVALID_SURFACE; - - if (obj_surface->private_data && - obj_surface->free_private_data != gen9_free_surfaces_vp9) { - obj_surface->free_private_data(&obj_surface->private_data); - obj_surface->private_data = NULL; - } - - if (obj_surface->private_data) { - /* if the frame width/height is already the same as the expected, - * it is unncessary to reallocate it. - */ - vp9_surface = (struct gen9_surface_vp9 *)(obj_surface->private_data); - if (vp9_surface->frame_width >= surface_param->frame_width || - vp9_surface->frame_height >= surface_param->frame_height) - return VA_STATUS_SUCCESS; - - obj_surface->free_private_data(&obj_surface->private_data); - obj_surface->private_data = NULL; - vp9_surface = NULL; - } - - vp9_surface = calloc(1, sizeof(struct gen9_surface_vp9)); - - if (!vp9_surface) - return VA_STATUS_ERROR_ALLOCATION_FAILED; - - vp9_surface->ctx = ctx; - obj_surface->private_data = vp9_surface; - obj_surface->free_private_data = gen9_free_surfaces_vp9; - - vp9_surface->frame_width = surface_param->frame_width; - vp9_surface->frame_height = surface_param->frame_height; - - downscaled_width_4x = ALIGN(surface_param->frame_width / 4, 16); - downscaled_height_4x = ALIGN(surface_param->frame_height / 4, 16); - - i965_CreateSurfaces(ctx, - downscaled_width_4x, - downscaled_height_4x, - VA_RT_FORMAT_YUV420, - 1, - &vp9_surface->scaled_4x_surface_id); - - vp9_surface->scaled_4x_surface_obj = SURFACE(vp9_surface->scaled_4x_surface_id); - - if (!vp9_surface->scaled_4x_surface_obj) { - return VA_STATUS_ERROR_ALLOCATION_FAILED; - } - - i965_check_alloc_surface_bo(ctx, vp9_surface->scaled_4x_surface_obj, 1, - VA_FOURCC('N', 'V', '1', '2'), SUBSAMPLE_YUV420); - - downscaled_width_16x = ALIGN(surface_param->frame_width / 16, 16); - downscaled_height_16x = ALIGN(surface_param->frame_height / 16, 16); - i965_CreateSurfaces(ctx, - downscaled_width_16x, - downscaled_height_16x, - VA_RT_FORMAT_YUV420, - 1, - &vp9_surface->scaled_16x_surface_id); - vp9_surface->scaled_16x_surface_obj = SURFACE(vp9_surface->scaled_16x_surface_id); - - if (!vp9_surface->scaled_16x_surface_obj) { - return VA_STATUS_ERROR_ALLOCATION_FAILED; - } - - i965_check_alloc_surface_bo(ctx, vp9_surface->scaled_16x_surface_obj, 1, - VA_FOURCC('N', 'V', '1', '2'), SUBSAMPLE_YUV420); - - return VA_STATUS_SUCCESS; -} - -static VAStatus -gen9_vp9_check_dys_surfaces(VADriverContextP ctx, - struct object_surface *obj_surface, - struct vp9_surface_param *surface_param) -{ - struct i965_driver_data *i965 = i965_driver_data(ctx); - struct gen9_surface_vp9 *vp9_surface; - int dys_width_4x, dys_height_4x; - int dys_width_16x, dys_height_16x; - - /* As this is handled after the surface checking, it is unnecessary - * to check the surface bo and vp9_priv_surface again - */ - - vp9_surface = (struct gen9_surface_vp9 *)(obj_surface->private_data); - - if (!vp9_surface) - return VA_STATUS_ERROR_INVALID_SURFACE; - - /* if the frame_width/height of dys_surface is the same as - * the expected, it is unnecessary to allocate it again - */ - if (vp9_surface->dys_frame_width == surface_param->frame_width && - vp9_surface->dys_frame_width == surface_param->frame_width) - return VA_STATUS_SUCCESS; - - if (vp9_surface->dys_4x_surface_obj) { - i965_DestroySurfaces(vp9_surface->ctx, &vp9_surface->dys_4x_surface_id, 1); - vp9_surface->dys_4x_surface_id = VA_INVALID_SURFACE; - vp9_surface->dys_4x_surface_obj = NULL; - } - - if (vp9_surface->dys_16x_surface_obj) { - i965_DestroySurfaces(vp9_surface->ctx, &vp9_surface->dys_16x_surface_id, 1); - vp9_surface->dys_16x_surface_id = VA_INVALID_SURFACE; - vp9_surface->dys_16x_surface_obj = NULL; - } - - if (vp9_surface->dys_surface_obj) { - i965_DestroySurfaces(vp9_surface->ctx, &vp9_surface->dys_surface_id, 1); - vp9_surface->dys_surface_id = VA_INVALID_SURFACE; - vp9_surface->dys_surface_obj = NULL; - } - - vp9_surface->dys_frame_width = surface_param->frame_width; - vp9_surface->dys_frame_height = surface_param->frame_height; - - i965_CreateSurfaces(ctx, - surface_param->frame_width, - surface_param->frame_height, - VA_RT_FORMAT_YUV420, - 1, - &vp9_surface->dys_surface_id); - vp9_surface->dys_surface_obj = SURFACE(vp9_surface->dys_surface_id); - - if (!vp9_surface->dys_surface_obj) { - return VA_STATUS_ERROR_ALLOCATION_FAILED; - } - - i965_check_alloc_surface_bo(ctx, vp9_surface->dys_surface_obj, 1, - VA_FOURCC('N', 'V', '1', '2'), SUBSAMPLE_YUV420); - - dys_width_4x = ALIGN(surface_param->frame_width / 4, 16); - dys_height_4x = ALIGN(surface_param->frame_width / 4, 16); - - i965_CreateSurfaces(ctx, - dys_width_4x, - dys_height_4x, - VA_RT_FORMAT_YUV420, - 1, - &vp9_surface->dys_4x_surface_id); - - vp9_surface->dys_4x_surface_obj = SURFACE(vp9_surface->dys_4x_surface_id); - - if (!vp9_surface->dys_4x_surface_obj) { - return VA_STATUS_ERROR_ALLOCATION_FAILED; - } - - i965_check_alloc_surface_bo(ctx, vp9_surface->dys_4x_surface_obj, 1, - VA_FOURCC('N', 'V', '1', '2'), SUBSAMPLE_YUV420); - - dys_width_16x = ALIGN(surface_param->frame_width / 16, 16); - dys_height_16x = ALIGN(surface_param->frame_width / 16, 16); - i965_CreateSurfaces(ctx, - dys_width_16x, - dys_height_16x, - VA_RT_FORMAT_YUV420, - 1, - &vp9_surface->dys_16x_surface_id); - vp9_surface->dys_16x_surface_obj = SURFACE(vp9_surface->dys_16x_surface_id); - - if (!vp9_surface->dys_16x_surface_obj) { - return VA_STATUS_ERROR_ALLOCATION_FAILED; - } - - i965_check_alloc_surface_bo(ctx, vp9_surface->dys_16x_surface_obj, 1, - VA_FOURCC('N', 'V', '1', '2'), SUBSAMPLE_YUV420); - - return VA_STATUS_SUCCESS; -} - -static VAStatus -gen9_vp9_allocate_resources(VADriverContextP ctx, - struct encode_state *encode_state, - struct intel_encoder_context *encoder_context, - int allocate) -{ - struct i965_driver_data *i965 = i965_driver_data(ctx); - struct gen9_encoder_context_vp9 *vme_context = encoder_context->vme_context; - struct gen9_vp9_state *vp9_state; - int allocate_flag, i; - int res_size; - uint32_t frame_width_in_sb, frame_height_in_sb, frame_sb_num; - unsigned int width, height; - - vp9_state = (struct gen9_vp9_state *) encoder_context->enc_priv_state; - - if (!vp9_state || !vp9_state->pic_param) - return VA_STATUS_ERROR_INVALID_PARAMETER; - - /* the buffer related with BRC is not changed. So it is allocated - * based on the input parameter - */ - if (allocate) { - i965_free_gpe_resource(&vme_context->res_brc_history_buffer); - i965_free_gpe_resource(&vme_context->res_brc_const_data_buffer); - i965_free_gpe_resource(&vme_context->res_brc_mbenc_curbe_write_buffer); - i965_free_gpe_resource(&vme_context->res_pic_state_brc_read_buffer); - i965_free_gpe_resource(&vme_context->res_pic_state_brc_write_hfw_read_buffer); - i965_free_gpe_resource(&vme_context->res_pic_state_hfw_write_buffer); - i965_free_gpe_resource(&vme_context->res_seg_state_brc_read_buffer); - i965_free_gpe_resource(&vme_context->res_seg_state_brc_write_buffer); - i965_free_gpe_resource(&vme_context->res_brc_bitstream_size_buffer); - i965_free_gpe_resource(&vme_context->res_brc_hfw_data_buffer); - i965_free_gpe_resource(&vme_context->res_brc_mmdk_pak_buffer); - - allocate_flag = i965_allocate_gpe_resource(i965->intel.bufmgr, - &vme_context->res_brc_history_buffer, - VP9_BRC_HISTORY_BUFFER_SIZE, - "Brc History buffer"); - if (!allocate_flag) - goto failed_allocation; - allocate_flag = i965_allocate_gpe_resource(i965->intel.bufmgr, - &vme_context->res_brc_const_data_buffer, - VP9_BRC_CONSTANTSURFACE_SIZE, - "Brc Constant buffer"); - if (!allocate_flag) - goto failed_allocation; - - res_size = ALIGN(sizeof(vp9_mbenc_curbe_data), 64) + 128 + - ALIGN(sizeof(struct gen8_interface_descriptor_data), 64) * NUM_VP9_MBENC; - allocate_flag = i965_allocate_gpe_resource(i965->intel.bufmgr, - &vme_context->res_brc_mbenc_curbe_write_buffer, - res_size, - "Brc Curbe write"); - if (!allocate_flag) - goto failed_allocation; - - res_size = VP9_PIC_STATE_BUFFER_SIZE * 4; - allocate_flag = i965_allocate_gpe_resource(i965->intel.bufmgr, - &vme_context->res_pic_state_brc_read_buffer, - res_size, - "Pic State Brc_read"); - if (!allocate_flag) - goto failed_allocation; - - res_size = VP9_PIC_STATE_BUFFER_SIZE * 4; - allocate_flag = i965_allocate_gpe_resource(i965->intel.bufmgr, - &vme_context->res_pic_state_brc_write_hfw_read_buffer, - res_size, - "Pic State Brc_write Hfw_Read"); - if (!allocate_flag) - goto failed_allocation; - - res_size = VP9_PIC_STATE_BUFFER_SIZE * 4; - allocate_flag = i965_allocate_gpe_resource(i965->intel.bufmgr, - &vme_context->res_pic_state_hfw_write_buffer, - res_size, - "Pic State Hfw Write"); - if (!allocate_flag) - goto failed_allocation; - - res_size = VP9_SEGMENT_STATE_BUFFER_SIZE; - allocate_flag = i965_allocate_gpe_resource(i965->intel.bufmgr, - &vme_context->res_seg_state_brc_read_buffer, - res_size, - "Segment state brc_read"); - if (!allocate_flag) - goto failed_allocation; - - res_size = VP9_SEGMENT_STATE_BUFFER_SIZE; - allocate_flag = i965_allocate_gpe_resource(i965->intel.bufmgr, - &vme_context->res_seg_state_brc_write_buffer, - res_size, - "Segment state brc_write"); - if (!allocate_flag) - goto failed_allocation; - - res_size = VP9_BRC_BITSTREAM_SIZE_BUFFER_SIZE; - allocate_flag = i965_allocate_gpe_resource(i965->intel.bufmgr, - &vme_context->res_brc_bitstream_size_buffer, - res_size, - "Brc bitstream buffer"); - if (!allocate_flag) - goto failed_allocation; - - res_size = VP9_HFW_BRC_DATA_BUFFER_SIZE; - allocate_flag = i965_allocate_gpe_resource(i965->intel.bufmgr, - &vme_context->res_brc_hfw_data_buffer, - res_size, - "mfw Brc data"); - if (!allocate_flag) - goto failed_allocation; - - res_size = VP9_BRC_MMDK_PAK_BUFFER_SIZE; - allocate_flag = i965_allocate_gpe_resource(i965->intel.bufmgr, - &vme_context->res_brc_mmdk_pak_buffer, - res_size, - "Brc mmdk_pak"); - if (!allocate_flag) - goto failed_allocation; - } - - /* If the width/height of allocated buffer is greater than the expected, - * it is unnecessary to allocate it again - */ - if (vp9_state->res_width >= vp9_state->frame_width && - vp9_state->res_height >= vp9_state->frame_height) { - - return VA_STATUS_SUCCESS; - } - frame_width_in_sb = ALIGN(vp9_state->frame_width, 64) / 64; - frame_height_in_sb = ALIGN(vp9_state->frame_height, 64) / 64; - frame_sb_num = frame_width_in_sb * frame_height_in_sb; - - i965_free_gpe_resource(&vme_context->res_hvd_line_buffer); - res_size = frame_width_in_sb * 64; - allocate_flag = i965_allocate_gpe_resource(i965->intel.bufmgr, - &vme_context->res_hvd_line_buffer, - res_size, - "VP9 hvd line line"); - if (!allocate_flag) - goto failed_allocation; - - i965_free_gpe_resource(&vme_context->res_hvd_tile_line_buffer); - allocate_flag = i965_allocate_gpe_resource(i965->intel.bufmgr, - &vme_context->res_hvd_tile_line_buffer, - res_size, - "VP9 hvd tile_line line"); - if (!allocate_flag) - goto failed_allocation; - - i965_free_gpe_resource(&vme_context->res_deblocking_filter_line_buffer); - res_size = frame_width_in_sb * 18 * 64; - allocate_flag = i965_allocate_gpe_resource(i965->intel.bufmgr, - &vme_context->res_deblocking_filter_line_buffer, - res_size, - "VP9 deblocking filter line"); - if (!allocate_flag) - goto failed_allocation; - - i965_free_gpe_resource(&vme_context->res_deblocking_filter_tile_line_buffer); - res_size = frame_width_in_sb * 18 * 64; - allocate_flag = i965_allocate_gpe_resource(i965->intel.bufmgr, - &vme_context->res_deblocking_filter_tile_line_buffer, - res_size, - "VP9 deblocking tile line"); - if (!allocate_flag) - goto failed_allocation; - - i965_free_gpe_resource(&vme_context->res_deblocking_filter_tile_col_buffer); - res_size = frame_height_in_sb * 17 * 64; - allocate_flag = i965_allocate_gpe_resource(i965->intel.bufmgr, - &vme_context->res_deblocking_filter_tile_col_buffer, - res_size, - "VP9 deblocking tile col"); - if (!allocate_flag) - goto failed_allocation; - - i965_free_gpe_resource(&vme_context->res_metadata_line_buffer); - res_size = frame_width_in_sb * 5 * 64; - allocate_flag = i965_allocate_gpe_resource(i965->intel.bufmgr, - &vme_context->res_metadata_line_buffer, - res_size, - "VP9 metadata line"); - if (!allocate_flag) - goto failed_allocation; - - i965_free_gpe_resource(&vme_context->res_metadata_tile_line_buffer); - res_size = frame_width_in_sb * 5 * 64; - allocate_flag = i965_allocate_gpe_resource(i965->intel.bufmgr, - &vme_context->res_metadata_tile_line_buffer, - res_size, - "VP9 metadata tile line"); - if (!allocate_flag) - goto failed_allocation; - - i965_free_gpe_resource(&vme_context->res_metadata_tile_col_buffer); - res_size = frame_height_in_sb * 5 * 64; - allocate_flag = i965_allocate_gpe_resource(i965->intel.bufmgr, - &vme_context->res_metadata_tile_col_buffer, - res_size, - "VP9 metadata tile col"); - if (!allocate_flag) - goto failed_allocation; - - i965_free_gpe_resource(&vme_context->res_prob_buffer); - res_size = 2048; - allocate_flag = i965_allocate_gpe_resource(i965->intel.bufmgr, - &vme_context->res_prob_buffer, - res_size, - "VP9 prob"); - if (!allocate_flag) - goto failed_allocation; - - i965_free_gpe_resource(&vme_context->res_segmentid_buffer); - res_size = frame_sb_num * 64; - allocate_flag = i965_allocate_gpe_resource(i965->intel.bufmgr, - &vme_context->res_segmentid_buffer, - res_size, - "VP9 segment id"); - if (!allocate_flag) - goto failed_allocation; - - i965_zero_gpe_resource(&vme_context->res_segmentid_buffer); - - i965_free_gpe_resource(&vme_context->res_prob_delta_buffer); - res_size = 29 * 64; - allocate_flag = i965_allocate_gpe_resource(i965->intel.bufmgr, - &vme_context->res_prob_delta_buffer, - res_size, - "VP9 prob delta"); - if (!allocate_flag) - goto failed_allocation; - - i965_zero_gpe_resource(&vme_context->res_segmentid_buffer); - - i965_free_gpe_resource(&vme_context->res_prob_delta_buffer); - res_size = 29 * 64; - allocate_flag = i965_allocate_gpe_resource(i965->intel.bufmgr, - &vme_context->res_prob_delta_buffer, - res_size, - "VP9 prob delta"); - if (!allocate_flag) - goto failed_allocation; - - i965_free_gpe_resource(&vme_context->res_compressed_input_buffer); - res_size = 32 * 64; - allocate_flag = i965_allocate_gpe_resource(i965->intel.bufmgr, - &vme_context->res_compressed_input_buffer, - res_size, - "VP9 compressed_input buffer"); - if (!allocate_flag) - goto failed_allocation; - - i965_free_gpe_resource(&vme_context->res_prob_counter_buffer); - res_size = 193 * 64; - allocate_flag = i965_allocate_gpe_resource(i965->intel.bufmgr, - &vme_context->res_prob_counter_buffer, - res_size, - "VP9 prob counter"); - if (!allocate_flag) - goto failed_allocation; - - i965_free_gpe_resource(&vme_context->res_tile_record_streamout_buffer); - res_size = frame_sb_num * 64; - allocate_flag = i965_allocate_gpe_resource(i965->intel.bufmgr, - &vme_context->res_tile_record_streamout_buffer, - res_size, - "VP9 tile record stream_out"); - if (!allocate_flag) - goto failed_allocation; - - i965_free_gpe_resource(&vme_context->res_cu_stat_streamout_buffer); - res_size = frame_sb_num * 64; - allocate_flag = i965_allocate_gpe_resource(i965->intel.bufmgr, - &vme_context->res_cu_stat_streamout_buffer, - res_size, - "VP9 CU stat stream_out"); - if (!allocate_flag) - goto failed_allocation; - - width = vp9_state->downscaled_width_4x_in_mb * 32; - height = vp9_state->downscaled_height_4x_in_mb * 16; - i965_free_gpe_resource(&vme_context->s4x_memv_data_buffer); - allocate_flag = i965_gpe_allocate_2d_resource(i965->intel.bufmgr, - &vme_context->s4x_memv_data_buffer, - width, height, - ALIGN(width, 64), - "VP9 4x MEMV data"); - if (!allocate_flag) - goto failed_allocation; - - width = vp9_state->downscaled_width_4x_in_mb * 8; - height = vp9_state->downscaled_height_4x_in_mb * 16; - i965_free_gpe_resource(&vme_context->s4x_memv_distortion_buffer); - allocate_flag = i965_gpe_allocate_2d_resource(i965->intel.bufmgr, - &vme_context->s4x_memv_distortion_buffer, - width, height, - ALIGN(width, 64), - "VP9 4x MEMV distorion"); - if (!allocate_flag) - goto failed_allocation; - - width = ALIGN(vp9_state->downscaled_width_16x_in_mb * 32, 64); - height = vp9_state->downscaled_height_16x_in_mb * 16; - i965_free_gpe_resource(&vme_context->s16x_memv_data_buffer); - allocate_flag = i965_gpe_allocate_2d_resource(i965->intel.bufmgr, - &vme_context->s16x_memv_data_buffer, - width, height, - width, - "VP9 16x MEMV data"); - if (!allocate_flag) - goto failed_allocation; - - width = vp9_state->frame_width_in_mb * 16; - height = vp9_state->frame_height_in_mb * 8; - i965_free_gpe_resource(&vme_context->res_output_16x16_inter_modes); - allocate_flag = i965_gpe_allocate_2d_resource(i965->intel.bufmgr, - &vme_context->res_output_16x16_inter_modes, - width, height, - ALIGN(width, 64), - "VP9 output inter_mode"); - if (!allocate_flag) - goto failed_allocation; - - res_size = vp9_state->frame_width_in_mb * vp9_state->frame_height_in_mb * - 16 * 4; - for (i = 0; i < 2; i++) { - i965_free_gpe_resource(&vme_context->res_mode_decision[i]); - allocate_flag = i965_allocate_gpe_resource(i965->intel.bufmgr, - &vme_context->res_mode_decision[i], - res_size, - "VP9 mode decision"); - if (!allocate_flag) - goto failed_allocation; - - } - - res_size = frame_sb_num * 9 * 64; - for (i = 0; i < 2; i++) { - i965_free_gpe_resource(&vme_context->res_mv_temporal_buffer[i]); - allocate_flag = i965_allocate_gpe_resource(i965->intel.bufmgr, - &vme_context->res_mv_temporal_buffer[i], - res_size, - "VP9 temporal mv"); - if (!allocate_flag) - goto failed_allocation; - } - - vp9_state->mb_data_offset = ALIGN(frame_sb_num * 16, 4096) + 4096; - res_size = vp9_state->mb_data_offset + frame_sb_num * 64 * 64 + 1000; - i965_free_gpe_resource(&vme_context->res_mb_code_surface); - allocate_flag = i965_allocate_gpe_resource(i965->intel.bufmgr, - &vme_context->res_mb_code_surface, - ALIGN(res_size, 4096), - "VP9 mb_code surface"); - if (!allocate_flag) - goto failed_allocation; - - res_size = 128; - i965_free_gpe_resource(&vme_context->res_pak_uncompressed_input_buffer); - allocate_flag = i965_allocate_gpe_resource(i965->intel.bufmgr, - &vme_context->res_pak_uncompressed_input_buffer, - ALIGN(res_size, 4096), - "VP9 pak_uncompressed_input"); - if (!allocate_flag) - goto failed_allocation; - - if (!vme_context->frame_header_data) { - /* allocate 512 bytes for generating the uncompressed header */ - vme_context->frame_header_data = calloc(1, 512); - } - - vp9_state->res_width = vp9_state->frame_width; - vp9_state->res_height = vp9_state->frame_height; - - return VA_STATUS_SUCCESS; - -failed_allocation: - return VA_STATUS_ERROR_ALLOCATION_FAILED; -} - -static void -gen9_vp9_free_resources(struct gen9_encoder_context_vp9 *vme_context) -{ - int i; - struct gen9_vp9_state *vp9_state = (struct gen9_vp9_state *) vme_context->enc_priv_state; - - if (vp9_state->brc_enabled) { - i965_free_gpe_resource(&vme_context->res_brc_history_buffer); - i965_free_gpe_resource(&vme_context->res_brc_const_data_buffer); - i965_free_gpe_resource(&vme_context->res_brc_mbenc_curbe_write_buffer); - i965_free_gpe_resource(&vme_context->res_pic_state_brc_read_buffer); - i965_free_gpe_resource(&vme_context->res_pic_state_brc_write_hfw_read_buffer); - i965_free_gpe_resource(&vme_context->res_pic_state_hfw_write_buffer); - i965_free_gpe_resource(&vme_context->res_seg_state_brc_read_buffer); - i965_free_gpe_resource(&vme_context->res_seg_state_brc_write_buffer); - i965_free_gpe_resource(&vme_context->res_brc_bitstream_size_buffer); - i965_free_gpe_resource(&vme_context->res_brc_hfw_data_buffer); - i965_free_gpe_resource(&vme_context->res_brc_mmdk_pak_buffer); - } - - i965_free_gpe_resource(&vme_context->res_hvd_line_buffer); - i965_free_gpe_resource(&vme_context->res_hvd_tile_line_buffer); - i965_free_gpe_resource(&vme_context->res_deblocking_filter_line_buffer); - i965_free_gpe_resource(&vme_context->res_deblocking_filter_tile_line_buffer); - i965_free_gpe_resource(&vme_context->res_deblocking_filter_tile_col_buffer); - i965_free_gpe_resource(&vme_context->res_metadata_line_buffer); - i965_free_gpe_resource(&vme_context->res_metadata_tile_line_buffer); - i965_free_gpe_resource(&vme_context->res_metadata_tile_col_buffer); - i965_free_gpe_resource(&vme_context->res_prob_buffer); - i965_free_gpe_resource(&vme_context->res_segmentid_buffer); - i965_free_gpe_resource(&vme_context->res_prob_delta_buffer); - i965_free_gpe_resource(&vme_context->res_prob_counter_buffer); - i965_free_gpe_resource(&vme_context->res_tile_record_streamout_buffer); - i965_free_gpe_resource(&vme_context->res_cu_stat_streamout_buffer); - i965_free_gpe_resource(&vme_context->s4x_memv_data_buffer); - i965_free_gpe_resource(&vme_context->s4x_memv_distortion_buffer); - i965_free_gpe_resource(&vme_context->s16x_memv_data_buffer); - i965_free_gpe_resource(&vme_context->res_output_16x16_inter_modes); - for (i = 0; i < 2; i++) { - i965_free_gpe_resource(&vme_context->res_mode_decision[i]); - } - - for (i = 0; i < 2; i++) { - i965_free_gpe_resource(&vme_context->res_mv_temporal_buffer[i]); - } - - i965_free_gpe_resource(&vme_context->res_compressed_input_buffer); - i965_free_gpe_resource(&vme_context->res_mb_code_surface); - i965_free_gpe_resource(&vme_context->res_pak_uncompressed_input_buffer); - - if (vme_context->frame_header_data) { - free(vme_context->frame_header_data); - vme_context->frame_header_data = NULL; - } - return; -} - -static void -gen9_init_media_object_walker_parameter(struct intel_encoder_context *encoder_context, - struct vp9_encoder_kernel_walker_parameter *kernel_walker_param, - struct gpe_media_object_walker_parameter *walker_param) -{ - memset(walker_param, 0, sizeof(*walker_param)); - - walker_param->use_scoreboard = kernel_walker_param->use_scoreboard; - - walker_param->block_resolution.x = kernel_walker_param->resolution_x; - walker_param->block_resolution.y = kernel_walker_param->resolution_y; - - walker_param->global_resolution.x = kernel_walker_param->resolution_x; - walker_param->global_resolution.y = kernel_walker_param->resolution_y; - - walker_param->global_outer_loop_stride.x = kernel_walker_param->resolution_x; - walker_param->global_outer_loop_stride.y = 0; - - walker_param->global_inner_loop_unit.x = 0; - walker_param->global_inner_loop_unit.y = kernel_walker_param->resolution_y; - - walker_param->local_loop_exec_count = 0xFFFF; //MAX VALUE - walker_param->global_loop_exec_count = 0xFFFF; //MAX VALUE - - if (kernel_walker_param->no_dependency) { - walker_param->scoreboard_mask = 0; - walker_param->use_scoreboard = 0; - // Raster scan walking pattern - walker_param->local_outer_loop_stride.x = 0; - walker_param->local_outer_loop_stride.y = 1; - walker_param->local_inner_loop_unit.x = 1; - walker_param->local_inner_loop_unit.y = 0; - walker_param->local_end.x = kernel_walker_param->resolution_x - 1; - walker_param->local_end.y = 0; - } else { - walker_param->local_end.x = 0; - walker_param->local_end.y = 0; - - if (kernel_walker_param->walker_degree == VP9_45Z_DEGREE) { - // 45z degree - walker_param->scoreboard_mask = 0x0F; - - walker_param->global_loop_exec_count = 0x3FF; - walker_param->local_loop_exec_count = 0x3FF; - - walker_param->global_resolution.x = (unsigned int)(kernel_walker_param->resolution_x / 2.f) + 1; - walker_param->global_resolution.y = 2 * kernel_walker_param->resolution_y; - - walker_param->global_start.x = 0; - walker_param->global_start.y = 0; - - walker_param->global_outer_loop_stride.x = walker_param->global_resolution.x; - walker_param->global_outer_loop_stride.y = 0; - - walker_param->global_inner_loop_unit.x = 0; - walker_param->global_inner_loop_unit.y = walker_param->global_resolution.y; - - walker_param->block_resolution.x = walker_param->global_resolution.x; - walker_param->block_resolution.y = walker_param->global_resolution.y; - - walker_param->local_start.x = 0; - walker_param->local_start.y = 0; - - walker_param->local_outer_loop_stride.x = 1; - walker_param->local_outer_loop_stride.y = 0; - - walker_param->local_inner_loop_unit.x = -1; - walker_param->local_inner_loop_unit.y = 4; - - walker_param->middle_loop_extra_steps = 3; - walker_param->mid_loop_unit_x = 0; - walker_param->mid_loop_unit_y = 1; - } else { - // 26 degree - walker_param->scoreboard_mask = 0x0F; - walker_param->local_outer_loop_stride.x = 1; - walker_param->local_outer_loop_stride.y = 0; - walker_param->local_inner_loop_unit.x = -2; - walker_param->local_inner_loop_unit.y = 1; - } - } -} - -static void -gen9_add_2d_gpe_surface(VADriverContextP ctx, - struct i965_gpe_context *gpe_context, - struct object_surface *obj_surface, - int is_uv_surface, - int is_media_block_rw, - unsigned int format, - int index) -{ - struct i965_gpe_resource gpe_resource; - struct i965_gpe_surface gpe_surface; - - memset(&gpe_surface, 0, sizeof(gpe_surface)); - - i965_object_surface_to_2d_gpe_resource(&gpe_resource, obj_surface); - gpe_surface.gpe_resource = &gpe_resource; - gpe_surface.is_2d_surface = 1; - gpe_surface.is_uv_surface = !!is_uv_surface; - gpe_surface.is_media_block_rw = !!is_media_block_rw; - - gpe_surface.cacheability_control = DEFAULT_MOCS; - gpe_surface.format = format; - - gen9_gpe_context_add_surface(gpe_context, &gpe_surface, index); - i965_free_gpe_resource(&gpe_resource); -} - -static void -gen9_add_adv_gpe_surface(VADriverContextP ctx, - struct i965_gpe_context *gpe_context, - struct object_surface *obj_surface, - int index) -{ - struct i965_gpe_resource gpe_resource; - struct i965_gpe_surface gpe_surface; - - memset(&gpe_surface, 0, sizeof(gpe_surface)); - - i965_object_surface_to_2d_gpe_resource(&gpe_resource, obj_surface); - gpe_surface.gpe_resource = &gpe_resource; - gpe_surface.is_adv_surface = 1; - gpe_surface.cacheability_control = DEFAULT_MOCS; - gpe_surface.v_direction = 2; - - gen9_gpe_context_add_surface(gpe_context, &gpe_surface, index); - i965_free_gpe_resource(&gpe_resource); -} - -static void -gen9_add_buffer_gpe_surface(VADriverContextP ctx, - struct i965_gpe_context *gpe_context, - struct i965_gpe_resource *gpe_buffer, - int is_raw_buffer, - unsigned int size, - unsigned int offset, - int index) -{ - struct i965_gpe_surface gpe_surface; - - memset(&gpe_surface, 0, sizeof(gpe_surface)); - - gpe_surface.gpe_resource = gpe_buffer; - gpe_surface.is_buffer = 1; - gpe_surface.is_raw_buffer = !!is_raw_buffer; - gpe_surface.cacheability_control = DEFAULT_MOCS; - gpe_surface.size = size; - gpe_surface.offset = offset; - - gen9_gpe_context_add_surface(gpe_context, &gpe_surface, index); -} - -static void -gen9_add_buffer_2d_gpe_surface(VADriverContextP ctx, - struct i965_gpe_context *gpe_context, - struct i965_gpe_resource *gpe_buffer, - int is_media_block_rw, - unsigned int format, - int index) -{ - struct i965_gpe_surface gpe_surface; - - memset(&gpe_surface, 0, sizeof(gpe_surface)); - - gpe_surface.gpe_resource = gpe_buffer; - gpe_surface.is_2d_surface = 1; - gpe_surface.is_media_block_rw = !!is_media_block_rw; - gpe_surface.cacheability_control = DEFAULT_MOCS; - gpe_surface.format = format; - - gen9_gpe_context_add_surface(gpe_context, &gpe_surface, index); -} - -static void -gen9_add_dri_buffer_gpe_surface(VADriverContextP ctx, - struct i965_gpe_context *gpe_context, - dri_bo *bo, - int is_raw_buffer, - unsigned int size, - unsigned int offset, - int index) -{ - struct i965_gpe_resource gpe_resource; - - i965_dri_object_to_buffer_gpe_resource(&gpe_resource, bo); - gen9_add_buffer_gpe_surface(ctx, - gpe_context, - &gpe_resource, - is_raw_buffer, - size, - offset, - index); - - i965_free_gpe_resource(&gpe_resource); -} - -/* -static void -gen9_add_dri_buffer_2d_gpe_surface(VADriverContextP ctx, - struct i965_gpe_context *gpe_context, - dri_bo *bo, - unsigned int width, - unsigned int height, - unsigned int pitch, - int is_media_block_rw, - unsigned int format, - int index) -{ - struct i965_gpe_resource gpe_resource; - - i965_gpe_dri_object_to_2d_gpe_resource(&gpe_resource, bo, width, height, pitch); - gen9_add_buffer_2d_gpe_surface(ctx, - gpe_context, - &gpe_resource, - is_media_block_rw, - format, - index); - - i965_free_gpe_resource(&gpe_resource); -} -*/ - -static void -gen9_run_kernel_media_object(VADriverContextP ctx, - struct intel_encoder_context *encoder_context, - struct i965_gpe_context *gpe_context, - int media_function, - struct gpe_media_object_parameter *param) -{ - struct intel_batchbuffer *batch = encoder_context->base.batch; - struct vp9_encode_status_buffer_internal *status_buffer; - struct gen9_vp9_state *vp9_state; - struct gpe_mi_store_data_imm_parameter mi_store_data_imm; - - vp9_state = (struct gen9_vp9_state *)(encoder_context->enc_priv_state); - if (!vp9_state || !batch) - return; - - intel_batchbuffer_start_atomic(batch, 0x1000); - - status_buffer = &(vp9_state->status_buffer); - memset(&mi_store_data_imm, 0, sizeof(mi_store_data_imm)); - mi_store_data_imm.bo = status_buffer->bo; - mi_store_data_imm.offset = status_buffer->media_index_offset; - mi_store_data_imm.dw0 = media_function; - gen9_gpe_mi_store_data_imm(ctx, batch, &mi_store_data_imm); - - intel_batchbuffer_emit_mi_flush(batch); - gen9_gpe_pipeline_setup(ctx, gpe_context, batch); - gen8_gpe_media_object(ctx, gpe_context, batch, param); - gen8_gpe_media_state_flush(ctx, gpe_context, batch); - - gen9_gpe_pipeline_end(ctx, gpe_context, batch); - - intel_batchbuffer_end_atomic(batch); - - intel_batchbuffer_flush(batch); -} - -static void -gen9_run_kernel_media_object_walker(VADriverContextP ctx, - struct intel_encoder_context *encoder_context, - struct i965_gpe_context *gpe_context, - int media_function, - struct gpe_media_object_walker_parameter *param) -{ - struct intel_batchbuffer *batch = encoder_context->base.batch; - struct vp9_encode_status_buffer_internal *status_buffer; - struct gen9_vp9_state *vp9_state; - struct gpe_mi_store_data_imm_parameter mi_store_data_imm; - - vp9_state = (struct gen9_vp9_state *)(encoder_context->enc_priv_state); - if (!vp9_state || !batch) - return; - - intel_batchbuffer_start_atomic(batch, 0x1000); - - intel_batchbuffer_emit_mi_flush(batch); - - status_buffer = &(vp9_state->status_buffer); - memset(&mi_store_data_imm, 0, sizeof(mi_store_data_imm)); - mi_store_data_imm.bo = status_buffer->bo; - mi_store_data_imm.offset = status_buffer->media_index_offset; - mi_store_data_imm.dw0 = media_function; - gen9_gpe_mi_store_data_imm(ctx, batch, &mi_store_data_imm); - - gen9_gpe_pipeline_setup(ctx, gpe_context, batch); - gen9_gpe_media_object_walker(ctx, gpe_context, batch, param); - gen8_gpe_media_state_flush(ctx, gpe_context, batch); - - gen9_gpe_pipeline_end(ctx, gpe_context, batch); - - intel_batchbuffer_end_atomic(batch); - - intel_batchbuffer_flush(batch); -} - -static -void gen9_vp9_set_curbe_brc(VADriverContextP ctx, - struct encode_state *encode_state, - struct i965_gpe_context *gpe_context, - struct intel_encoder_context *encoder_context, - struct gen9_vp9_brc_curbe_param *param) -{ - VAEncSequenceParameterBufferVP9 *seq_param; - VAEncPictureParameterBufferVP9 *pic_param; - VAEncMiscParameterTypeVP9PerSegmantParam *segment_param; - vp9_brc_curbe_data *cmd; - double dbps_ratio, dInputBitsPerFrame; - struct gen9_vp9_state *vp9_state; - - vp9_state = (struct gen9_vp9_state *) encoder_context->enc_priv_state; - - pic_param = param->ppic_param; - seq_param = param->pseq_param; - segment_param = param->psegment_param; - - cmd = gen8p_gpe_context_map_curbe(gpe_context); - - if (!cmd) - return; - - memset(cmd, 0, sizeof(vp9_brc_curbe_data)); - - if (!vp9_state->dys_enabled) - { - cmd->dw0.frame_width = pic_param->frame_width_src; - cmd->dw0.frame_height = pic_param->frame_height_src; - } - else - { - cmd->dw0.frame_width = pic_param->frame_width_dst; - cmd->dw0.frame_height = pic_param->frame_height_dst; - } - - cmd->dw1.frame_type = vp9_state->picture_coding_type; - cmd->dw1.segmentation_enable = 0; - cmd->dw1.ref_frame_flags = vp9_state->ref_frame_flag; - cmd->dw1.num_tlevels = 1; - - switch(param->media_state_type) - { - case VP9_MEDIA_STATE_BRC_INIT_RESET: - { - cmd->dw3.max_level_ratiot0 = 0; - cmd->dw3.max_level_ratiot1 = 0; - cmd->dw3.max_level_ratiot2 = 0; - cmd->dw3.max_level_ratiot3 = 0; - - cmd->dw4.profile_level_max_frame = seq_param->max_frame_width * - seq_param->max_frame_height; - cmd->dw5.init_buf_fullness = vp9_state->init_vbv_buffer_fullness_in_bit; - cmd->dw6.buf_size = vp9_state->vbv_buffer_size_in_bit; - cmd->dw7.target_bit_rate = (vp9_state->target_bit_rate + VP9_BRC_KBPS - 1) / VP9_BRC_KBPS * - VP9_BRC_KBPS; - cmd->dw8.max_bit_rate = (vp9_state->max_bit_rate + VP9_BRC_KBPS - 1) / VP9_BRC_KBPS * - VP9_BRC_KBPS; - cmd->dw9.min_bit_rate = (vp9_state->min_bit_rate + VP9_BRC_KBPS - 1) / VP9_BRC_KBPS * - VP9_BRC_KBPS; - cmd->dw10.frame_ratem = vp9_state->frame_rate; - cmd->dw11.frame_rated = 1; - - cmd->dw14.avbr_accuracy = 30; - cmd->dw14.avbr_convergence = 150; - - if (encoder_context->rate_control_mode == VA_RC_CBR) - { - cmd->dw12.brc_flag = BRC_KERNEL_CBR; - cmd->dw8.max_bit_rate = cmd->dw7.target_bit_rate; - cmd->dw9.min_bit_rate = 0; - } - else if (encoder_context->rate_control_mode == VA_RC_VBR) - { - cmd->dw12.brc_flag = BRC_KERNEL_VBR; - } - else - { - cmd->dw12.brc_flag = BRC_KERNEL_CQL; - cmd->dw16.cq_level = 30; - } - cmd->dw12.gopp = seq_param->intra_period - 1; - - cmd->dw13.init_frame_width = pic_param->frame_width_src; - cmd->dw13.init_frame_height = pic_param->frame_height_src; - - cmd->dw15.min_qp = 0; - cmd->dw15.max_qp = 255; - - cmd->dw16.cq_level = 30; - - cmd->dw17.enable_dynamic_scaling = vp9_state->dys_in_use; - cmd->dw17.brc_overshoot_cbr_pct = 150; - - dInputBitsPerFrame = (double)(cmd->dw8.max_bit_rate) / (vp9_state->frame_rate); - dbps_ratio = dInputBitsPerFrame / ((double)(vp9_state->vbv_buffer_size_in_bit) / 30); - if (dbps_ratio < 0.1) - dbps_ratio = 0.1; - if (dbps_ratio > 3.5) - dbps_ratio = 3.5; - - *param->pbrc_init_reset_buf_size_in_bits = cmd->dw6.buf_size; - *param->pbrc_init_reset_input_bits_per_frame = dInputBitsPerFrame; - - cmd->dw18.pframe_deviation_threshold0 = (uint32_t)(-50 * pow(0.90, dbps_ratio)); - cmd->dw18.pframe_deviation_threshold1 = (uint32_t)(-50 * pow(0.66, dbps_ratio)); - cmd->dw18.pframe_deviation_threshold2 = (uint32_t)(-50 * pow(0.46, dbps_ratio)); - cmd->dw18.pframe_deviation_threshold3 = (uint32_t)(-50 * pow(0.3, dbps_ratio)); - cmd->dw19.pframe_deviation_threshold4 = (uint32_t)(50 * pow(0.3, dbps_ratio)); - cmd->dw19.pframe_deviation_threshold5 = (uint32_t)(50 * pow(0.46, dbps_ratio)); - cmd->dw19.pframe_deviation_threshold6 = (uint32_t)(50 * pow(0.7, dbps_ratio)); - cmd->dw19.pframe_deviation_threshold7 = (uint32_t)(50 * pow(0.9, dbps_ratio)); - - cmd->dw20.vbr_deviation_threshold0 = (uint32_t)(-50 * pow(0.9, dbps_ratio)); - cmd->dw20.vbr_deviation_threshold1 = (uint32_t)(-50 * pow(0.7, dbps_ratio)); - cmd->dw20.vbr_deviation_threshold2 = (uint32_t)(-50 * pow(0.5, dbps_ratio)); - cmd->dw20.vbr_deviation_threshold3 = (uint32_t)(-50 * pow(0.3, dbps_ratio)); - cmd->dw21.vbr_deviation_threshold4 = (uint32_t)(100 * pow(0.4, dbps_ratio)); - cmd->dw21.vbr_deviation_threshold5 = (uint32_t)(100 * pow(0.5, dbps_ratio)); - cmd->dw21.vbr_deviation_threshold6 = (uint32_t)(100 * pow(0.75, dbps_ratio)); - cmd->dw21.vbr_deviation_threshold7 = (uint32_t)(100 * pow(0.9, dbps_ratio)); - - cmd->dw22.kframe_deviation_threshold0 = (uint32_t)(-50 * pow(0.8, dbps_ratio)); - cmd->dw22.kframe_deviation_threshold1 = (uint32_t)(-50 * pow(0.6, dbps_ratio)); - cmd->dw22.kframe_deviation_threshold2 = (uint32_t)(-50 * pow(0.34, dbps_ratio)); - cmd->dw22.kframe_deviation_threshold3 = (uint32_t)(-50 * pow(0.2, dbps_ratio)); - cmd->dw23.kframe_deviation_threshold4 = (uint32_t)(50 * pow(0.2, dbps_ratio)); - cmd->dw23.kframe_deviation_threshold5 = (uint32_t)(50 * pow(0.4, dbps_ratio)); - cmd->dw23.kframe_deviation_threshold6 = (uint32_t)(50 * pow(0.66, dbps_ratio)); - cmd->dw23.kframe_deviation_threshold7 = (uint32_t)(50 * pow(0.9, dbps_ratio)); - - break; - } - case VP9_MEDIA_STATE_BRC_UPDATE: - { - cmd->dw15.min_qp = 0; - cmd->dw15.max_qp = 255; - - cmd->dw25.frame_number = param->frame_number; - - // Used in dynamic scaling. set to zero for now - cmd->dw27.hrd_buffer_fullness_upper_limit = 0; - cmd->dw28.hrd_buffer_fullness_lower_limit = 0; - - if (pic_param->pic_flags.bits.segmentation_enabled) { - cmd->dw32.seg_delta_qp0 = segment_param->seg_data[0].segment_qindex_delta; - cmd->dw32.seg_delta_qp1 = segment_param->seg_data[1].segment_qindex_delta; - cmd->dw32.seg_delta_qp2 = segment_param->seg_data[2].segment_qindex_delta; - cmd->dw32.seg_delta_qp3 = segment_param->seg_data[3].segment_qindex_delta; - - cmd->dw33.seg_delta_qp4 = segment_param->seg_data[4].segment_qindex_delta; - cmd->dw33.seg_delta_qp5 = segment_param->seg_data[5].segment_qindex_delta; - cmd->dw33.seg_delta_qp6 = segment_param->seg_data[6].segment_qindex_delta; - cmd->dw33.seg_delta_qp7 = segment_param->seg_data[7].segment_qindex_delta; - } - - //cmd->dw34.temporal_id = pPicParams->temporal_idi; - cmd->dw34.temporal_id = 0; - cmd->dw34.multi_ref_qp_check = param->multi_ref_qp_check; - - cmd->dw35.max_num_pak_passes = param->brc_num_pak_passes; - cmd->dw35.sync_async = 0; - cmd->dw35.mbrc = param->mbbrc_enabled; - if (*param->pbrc_init_current_target_buf_full_in_bits > - ((double)(*param->pbrc_init_reset_buf_size_in_bits))) { - *param->pbrc_init_current_target_buf_full_in_bits -= - (double)(*param->pbrc_init_reset_buf_size_in_bits); - cmd->dw35.overflow = 1; - } - else - cmd->dw35.overflow = 0; - - cmd->dw24.target_size = (uint32_t)(*param->pbrc_init_current_target_buf_full_in_bits); - - cmd->dw36.segmentation = pic_param->pic_flags.bits.segmentation_enabled; - - *param->pbrc_init_current_target_buf_full_in_bits += *param->pbrc_init_reset_input_bits_per_frame; - - cmd->dw38.qdelta_ydc = pic_param->luma_dc_qindex_delta; - cmd->dw38.qdelta_uvdc = pic_param->chroma_dc_qindex_delta; - cmd->dw38.qdelta_uvac = pic_param->chroma_ac_qindex_delta; - - break; - } - case VP9_MEDIA_STATE_ENC_I_FRAME_DIST: - cmd->dw2.intra_mode_disable = 0; - break; - default: - break; - } - - cmd->dw48.brc_y4x_input_bti = VP9_BTI_BRC_SRCY4X_G9; - cmd->dw49.brc_vme_coarse_intra_input_bti = VP9_BTI_BRC_VME_COARSE_INTRA_G9; - cmd->dw50.brc_history_buffer_bti = VP9_BTI_BRC_HISTORY_G9; - cmd->dw51.brc_const_data_input_bti = VP9_BTI_BRC_CONSTANT_DATA_G9; - cmd->dw52.brc_distortion_bti = VP9_BTI_BRC_DISTORTION_G9; - cmd->dw53.brc_mmdk_pak_output_bti = VP9_BTI_BRC_MMDK_PAK_OUTPUT_G9; - cmd->dw54.brc_enccurbe_input_bti = VP9_BTI_BRC_MBENC_CURBE_INPUT_G9; - cmd->dw55.brc_enccurbe_output_bti = VP9_BTI_BRC_MBENC_CURBE_OUTPUT_G9; - cmd->dw56.brc_pic_state_input_bti = VP9_BTI_BRC_PIC_STATE_INPUT_G9; - cmd->dw57.brc_pic_state_output_bti = VP9_BTI_BRC_PIC_STATE_OUTPUT_G9; - cmd->dw58.brc_seg_state_input_bti = VP9_BTI_BRC_SEGMENT_STATE_INPUT_G9; - cmd->dw59.brc_seg_state_output_bti = VP9_BTI_BRC_SEGMENT_STATE_OUTPUT_G9; - cmd->dw60.brc_bitstream_size_data_bti = VP9_BTI_BRC_BITSTREAM_SIZE_G9; - cmd->dw61.brc_hfw_data_output_bti = VP9_BTI_BRC_HFW_DATA_G9; - - gen8p_gpe_context_unmap_curbe(gpe_context); - return; -} - -static void -gen9_brc_init_reset_add_surfaces_vp9(VADriverContextP ctx, - struct encode_state *encode_state, - struct intel_encoder_context *encoder_context, - struct i965_gpe_context *gpe_context) -{ - struct gen9_encoder_context_vp9 *vme_context = encoder_context->vme_context; - - gen9_add_buffer_gpe_surface(ctx, - gpe_context, - &vme_context->res_brc_history_buffer, - 0, - vme_context->res_brc_history_buffer.size, - 0, - VP9_BTI_BRC_HISTORY_G9); - - gen9_add_buffer_2d_gpe_surface(ctx, - gpe_context, - &vme_context->s4x_memv_distortion_buffer, - 1, - I965_SURFACEFORMAT_R8_UNORM, - VP9_BTI_BRC_DISTORTION_G9); -} - -/* The function related with BRC */ -static VAStatus -gen9_vp9_brc_init_reset_kernel(VADriverContextP ctx, - struct encode_state *encode_state, - struct intel_encoder_context *encoder_context) -{ - struct gen9_encoder_context_vp9 *vme_context = encoder_context->vme_context; - struct vp9_brc_context *brc_context = &vme_context->brc_context; - struct gpe_media_object_parameter media_object_param; - struct i965_gpe_context *gpe_context; - int gpe_index = VP9_BRC_INIT; - int media_function = VP9_MEDIA_STATE_BRC_INIT_RESET; - struct gen9_vp9_brc_curbe_param brc_initreset_curbe; - VAEncPictureParameterBufferVP9 *pic_param; - struct gen9_vp9_state *vp9_state; - - vp9_state = (struct gen9_vp9_state *) encoder_context->enc_priv_state; - - if (!vp9_state || !vp9_state->pic_param) - return VA_STATUS_ERROR_INVALID_PARAMETER; - - pic_param = vp9_state->pic_param; - - if (vp9_state->brc_inited) - gpe_index = VP9_BRC_RESET; - - gpe_context = &brc_context->gpe_contexts[gpe_index]; - - gen8_gpe_context_init(ctx, gpe_context); - gen9_gpe_reset_binding_table(ctx, gpe_context); - - brc_initreset_curbe.media_state_type = media_function; - brc_initreset_curbe.curr_frame = pic_param->reconstructed_frame; - brc_initreset_curbe.ppic_param = vp9_state->pic_param; - brc_initreset_curbe.pseq_param = vp9_state->seq_param; - brc_initreset_curbe.psegment_param = vp9_state->segment_param; - brc_initreset_curbe.frame_width = vp9_state->frame_width; - brc_initreset_curbe.frame_height = vp9_state->frame_height; - brc_initreset_curbe.pbrc_init_current_target_buf_full_in_bits = - &vp9_state->brc_init_current_target_buf_full_in_bits; - brc_initreset_curbe.pbrc_init_reset_buf_size_in_bits = - &vp9_state->brc_init_reset_buf_size_in_bits; - brc_initreset_curbe.pbrc_init_reset_input_bits_per_frame = - &vp9_state->brc_init_reset_input_bits_per_frame; - brc_initreset_curbe.picture_coding_type = vp9_state->picture_coding_type; - brc_initreset_curbe.initbrc = !vp9_state->brc_inited; - brc_initreset_curbe.mbbrc_enabled = 0; - brc_initreset_curbe.ref_frame_flag = vp9_state->ref_frame_flag; - brc_initreset_curbe.frame_rate = vp9_state->frame_rate; - - vme_context->pfn_set_curbe_brc(ctx, encode_state, - gpe_context, - encoder_context, - &brc_initreset_curbe); - - gen9_brc_init_reset_add_surfaces_vp9(ctx, encode_state, encoder_context, gpe_context); - gen8_gpe_setup_interface_data(ctx, gpe_context); - - memset(&media_object_param, 0, sizeof(media_object_param)); - gen9_run_kernel_media_object(ctx, encoder_context, gpe_context, media_function, &media_object_param); - - return VA_STATUS_SUCCESS; -} - -static void -gen9_brc_intra_dist_add_surfaces_vp9(VADriverContextP ctx, - struct encode_state *encode_state, - struct intel_encoder_context *encoder_context, - struct i965_gpe_context *gpe_context) -{ - struct gen9_encoder_context_vp9 *vme_context = encoder_context->vme_context; - - struct object_surface *obj_surface; - struct gen9_surface_vp9 *vp9_priv_surface; - - /* sScaled4xSurface surface */ - obj_surface = encode_state->reconstructed_object; - - vp9_priv_surface = (struct gen9_surface_vp9 *)(obj_surface->private_data); - - obj_surface = vp9_priv_surface->scaled_4x_surface_obj; - gen9_add_2d_gpe_surface(ctx, gpe_context, - obj_surface, - 0, 1, - I965_SURFACEFORMAT_R8_UNORM, - VP9_BTI_BRC_SRCY4X_G9 - ); - - gen9_add_adv_gpe_surface(ctx, gpe_context, - obj_surface, - VP9_BTI_BRC_VME_COARSE_INTRA_G9); - - gen9_add_buffer_2d_gpe_surface(ctx, - gpe_context, - &vme_context->s4x_memv_distortion_buffer, - 1, - I965_SURFACEFORMAT_R8_UNORM, - VP9_BTI_BRC_DISTORTION_G9); - - return; -} - -/* The function related with BRC */ -static VAStatus -gen9_vp9_brc_intra_dist_kernel(VADriverContextP ctx, - struct encode_state *encode_state, - struct intel_encoder_context *encoder_context) -{ - struct gen9_encoder_context_vp9 *vme_context = encoder_context->vme_context; - struct vp9_brc_context *brc_context = &vme_context->brc_context; - struct i965_gpe_context *gpe_context; - int gpe_index = VP9_BRC_INTRA_DIST; - int media_function = VP9_MEDIA_STATE_ENC_I_FRAME_DIST; - struct gen9_vp9_brc_curbe_param brc_intra_dist_curbe; - VAEncPictureParameterBufferVP9 *pic_param; - struct gen9_vp9_state *vp9_state; - struct gpe_media_object_walker_parameter media_object_walker_param; - struct vp9_encoder_kernel_walker_parameter kernel_walker_param; - - vp9_state = (struct gen9_vp9_state *) encoder_context->enc_priv_state; - - if (!vp9_state || !vp9_state->pic_param) - return VA_STATUS_ERROR_INVALID_PARAMETER; - - pic_param = vp9_state->pic_param; - - gpe_context = &brc_context->gpe_contexts[gpe_index]; - - gen8_gpe_context_init(ctx, gpe_context); - gen9_gpe_reset_binding_table(ctx, gpe_context); - - brc_intra_dist_curbe.media_state_type = media_function; - brc_intra_dist_curbe.curr_frame = pic_param->reconstructed_frame; - brc_intra_dist_curbe.ppic_param = vp9_state->pic_param; - brc_intra_dist_curbe.pseq_param = vp9_state->seq_param; - brc_intra_dist_curbe.psegment_param = vp9_state->segment_param; - brc_intra_dist_curbe.frame_width = vp9_state->frame_width; - brc_intra_dist_curbe.frame_height = vp9_state->frame_height; - brc_intra_dist_curbe.pbrc_init_current_target_buf_full_in_bits = - &vp9_state->brc_init_current_target_buf_full_in_bits; - brc_intra_dist_curbe.pbrc_init_reset_buf_size_in_bits = - &vp9_state->brc_init_reset_buf_size_in_bits; - brc_intra_dist_curbe.pbrc_init_reset_input_bits_per_frame = - &vp9_state->brc_init_reset_input_bits_per_frame; - brc_intra_dist_curbe.picture_coding_type = vp9_state->picture_coding_type; - brc_intra_dist_curbe.initbrc = !vp9_state->brc_inited; - brc_intra_dist_curbe.mbbrc_enabled = 0; - brc_intra_dist_curbe.ref_frame_flag = vp9_state->ref_frame_flag; - brc_intra_dist_curbe.frame_rate = vp9_state->frame_rate; - - vme_context->pfn_set_curbe_brc(ctx, encode_state, - gpe_context, - encoder_context, - &brc_intra_dist_curbe); - - /* zero distortion buffer */ - i965_zero_gpe_resource(&vme_context->s4x_memv_distortion_buffer); - - gen9_brc_intra_dist_add_surfaces_vp9(ctx, encode_state, encoder_context, gpe_context); - gen8_gpe_setup_interface_data(ctx, gpe_context); - - memset(&kernel_walker_param, 0, sizeof(kernel_walker_param)); - kernel_walker_param.resolution_x = vme_context->downscaled_width_in_mb4x; - kernel_walker_param.resolution_y = vme_context->downscaled_height_in_mb4x; - kernel_walker_param.no_dependency = 1; - - gen9_init_media_object_walker_parameter(encoder_context, &kernel_walker_param, &media_object_walker_param); - - gen9_run_kernel_media_object_walker(ctx, encoder_context, - gpe_context, - media_function, - &media_object_walker_param); - - return VA_STATUS_SUCCESS; -} - -static void -intel_vp9enc_construct_picstate_batchbuf(VADriverContextP ctx, - struct encode_state *encode_state, - struct intel_encoder_context *encoder_context, - struct i965_gpe_resource *gpe_resource) -{ - struct gen9_vp9_state *vp9_state; - VAEncPictureParameterBufferVP9 *pic_param; - int frame_width_minus1, frame_height_minus1; - int is_lossless = 0; - int is_intra_only = 0; - unsigned int last_frame_type; - unsigned int ref_flags; - unsigned int use_prev_frame_mvs, adapt_flag; - struct gen9_surface_vp9 *vp9_surface = NULL; - struct object_surface *obj_surface = NULL; - uint32_t scale_h = 0; - uint32_t scale_w = 0; - - char *pdata; - int i, j; - unsigned int *cmd_ptr, cmd_value, tmp; - - pdata = i965_map_gpe_resource(gpe_resource); - vp9_state = (struct gen9_vp9_state *) encoder_context->enc_priv_state; - - if (!vp9_state || !vp9_state->pic_param || !pdata) - return; - - pic_param = vp9_state->pic_param; - frame_width_minus1 = ALIGN(pic_param->frame_width_dst, 8) - 1; - frame_height_minus1 = ALIGN(pic_param->frame_height_dst, 8) - 1; - if ((pic_param->luma_ac_qindex == 0) && - (pic_param->luma_dc_qindex_delta == 0) && - (pic_param->chroma_ac_qindex_delta == 0) && - (pic_param->chroma_dc_qindex_delta == 0)) - is_lossless = 1; - - if (pic_param->pic_flags.bits.frame_type) - is_intra_only = pic_param->pic_flags.bits.intra_only; - - last_frame_type = vp9_state->vp9_last_frame.frame_type; - - use_prev_frame_mvs = 0; - if (pic_param->pic_flags.bits.frame_type == HCP_VP9_KEY_FRAME) { - last_frame_type = 0; - ref_flags = 0; - } else { - ref_flags = ((pic_param->ref_flags.bits.ref_arf_sign_bias << 9) | - (pic_param->ref_flags.bits.ref_gf_sign_bias << 8) | - (pic_param->ref_flags.bits.ref_last_sign_bias << 7) - ); - if (!pic_param->pic_flags.bits.error_resilient_mode && - (pic_param->frame_width_dst == vp9_state->vp9_last_frame.frame_width) && - (pic_param->frame_height_dst == vp9_state->vp9_last_frame.frame_height) && - !pic_param->pic_flags.bits.intra_only && - vp9_state->vp9_last_frame.show_frame && - ((vp9_state->vp9_last_frame.frame_type == HCP_VP9_INTER_FRAME) && - !vp9_state->vp9_last_frame.intra_only) - ) - use_prev_frame_mvs = 1; - } - adapt_flag = 0; - if (!pic_param->pic_flags.bits.error_resilient_mode && - !pic_param->pic_flags.bits.frame_parallel_decoding_mode) - adapt_flag = 1; - - for (i = 0; i < 4; i++) { - uint32_t non_first_pass; - non_first_pass = 1; - if (i == 0) - non_first_pass = 0; - - cmd_ptr =(unsigned int *)(pdata + i * VP9_PIC_STATE_BUFFER_SIZE); - - *cmd_ptr++ = (HCP_VP9_PIC_STATE | (33 - 2)); - *cmd_ptr++ = (frame_height_minus1 << 16 | - frame_width_minus1); - /* dw2 */ - *cmd_ptr++ = ( 0 << 31 | /* disable segment_in */ - 0 << 30 | /* disable segment_out */ - is_lossless << 29 | /* loseless */ - (pic_param->pic_flags.bits.segmentation_enabled && pic_param->pic_flags.bits.segmentation_temporal_update) << 28 | /* temporal update */ - (pic_param->pic_flags.bits.segmentation_enabled && pic_param->pic_flags.bits.segmentation_update_map) << 27 | /* temporal update */ - (pic_param->pic_flags.bits.segmentation_enabled << 26) | - (pic_param->sharpness_level << 23) | - (pic_param->filter_level << 17) | - (pic_param->pic_flags.bits.frame_parallel_decoding_mode << 16) | - (pic_param->pic_flags.bits.error_resilient_mode << 15) | - (pic_param->pic_flags.bits.refresh_frame_context << 14) | - (last_frame_type << 13) | - (vp9_state->tx_mode == TX_MODE_SELECT) << 12 | - (pic_param->pic_flags.bits.comp_prediction_mode == REFERENCE_MODE_SELECT) << 11 | - (use_prev_frame_mvs) << 10 | - ref_flags | - (pic_param->pic_flags.bits.mcomp_filter_type << 4) | - (pic_param->pic_flags.bits.allow_high_precision_mv << 3) | - (is_intra_only << 2) | - (adapt_flag << 1) | - (pic_param->pic_flags.bits.frame_type) << 0); - - *cmd_ptr++ =((0 << 28) | /* VP9Profile0 */ - (0 << 24) | /* 8-bit depth */ - (0 << 22) | /* only 420 format */ - (0 << 0) | /* sse statistics */ - (pic_param->log2_tile_rows << 8) | - (pic_param->log2_tile_columns << 0)); - - /* dw4..6 */ - if (pic_param->pic_flags.bits.frame_type && - !pic_param->pic_flags.bits.intra_only) { - for (j = 0; j < 3; j++) { - obj_surface = encode_state->reference_objects[j]; - scale_w = 0; - scale_h = 0; - if (obj_surface && obj_surface->private_data) { - vp9_surface = obj_surface->private_data; - scale_w = (vp9_surface->frame_width << 14) / pic_param->frame_width_dst; - scale_h = (vp9_surface->frame_height << 14) / pic_param->frame_height_dst; - *cmd_ptr++ = (scale_w << 16 | - scale_h); - } else - *cmd_ptr++ = 0; - } - } else { - *cmd_ptr++ = 0; - *cmd_ptr++ = 0; - *cmd_ptr++ = 0; - } - /* dw7..9 */ - for(j = 0; j < 3; j++) { - obj_surface = encode_state->reference_objects[j]; - vp9_surface = NULL; - - if (obj_surface && obj_surface->private_data) { - vp9_surface = obj_surface->private_data; - *cmd_ptr++ = (vp9_surface->frame_height - 1) << 16 | - (vp9_surface->frame_width - 1); - } else - *cmd_ptr++ = 0; - } - /* dw10 */ - *cmd_ptr++ = 0; - /* dw11 */ - *cmd_ptr++ = (1 << 1); - *cmd_ptr++ = 0; - - /* dw13 */ - *cmd_ptr++ = ((1 << 25) | /* header insertation for VP9 */ - (0 << 24) | /* tail insertation */ - (pic_param->luma_ac_qindex << 16) | - 0 /* compressed header bin count */); - - /* dw14 */ - tmp = intel_convert_sign_mag(pic_param->luma_dc_qindex_delta, 5); - cmd_value = (tmp << 16); - tmp = intel_convert_sign_mag(pic_param->chroma_dc_qindex_delta, 5); - cmd_value |= (tmp << 8); - tmp = intel_convert_sign_mag(pic_param->chroma_ac_qindex_delta, 5); - cmd_value |= tmp; - *cmd_ptr++ = cmd_value; - - tmp = intel_convert_sign_mag(pic_param->ref_lf_delta[0], 7); - cmd_value = tmp; - tmp = intel_convert_sign_mag(pic_param->ref_lf_delta[1], 7); - cmd_value |= (tmp << 8); - tmp = intel_convert_sign_mag(pic_param->ref_lf_delta[2], 7); - cmd_value |= (tmp << 16); - tmp = intel_convert_sign_mag(pic_param->ref_lf_delta[3], 7); - cmd_value |= (tmp << 24); - *cmd_ptr++ = cmd_value; - - /* dw16 */ - tmp = intel_convert_sign_mag(pic_param->mode_lf_delta[0], 7); - cmd_value = tmp; - tmp = intel_convert_sign_mag(pic_param->mode_lf_delta[1], 7); - cmd_value |= (tmp << 8); - *cmd_ptr++ = cmd_value; - - /* dw17 */ - *cmd_ptr++ = vp9_state->frame_header.bit_offset_ref_lf_delta | - (vp9_state->frame_header.bit_offset_mode_lf_delta << 16); - *cmd_ptr++ = vp9_state->frame_header.bit_offset_qindex | - (vp9_state->frame_header.bit_offset_lf_level << 16); - - /* dw19 */ - *cmd_ptr++ = (1 << 26 | (1 << 25) | - non_first_pass << 16); - /* dw20 */ - *cmd_ptr++ = (1 << 31) | (256); - - /* dw21 */ - *cmd_ptr++ = (0 << 31) | 1; - - /* dw22-dw24. Frame_delta_qindex_range */ - *cmd_ptr++ = 0; - *cmd_ptr++ = 0; - *cmd_ptr++ = 0; - - /* dw25-26. frame_delta_lf_range */ - *cmd_ptr++ = 0; - *cmd_ptr++ = 0; - - /* dw27. frame_delta_lf_min */ - *cmd_ptr++ = 0; - - /* dw28..30 */ - *cmd_ptr++ = 0; - *cmd_ptr++ = 0; - *cmd_ptr++ = 0; - - /* dw31 */ - *cmd_ptr++ = (0 << 30) | 1; - /* dw32 */ - *cmd_ptr++ = vp9_state->frame_header.bit_offset_first_partition_size; - - *cmd_ptr++ = 0; - *cmd_ptr++ = MI_BATCH_BUFFER_END; - } - - i965_unmap_gpe_resource(gpe_resource); -} - -static void -gen9_brc_update_add_surfaces_vp9(VADriverContextP ctx, - struct encode_state *encode_state, - struct intel_encoder_context *encoder_context, - struct i965_gpe_context *brc_gpe_context, - struct i965_gpe_context *mbenc_gpe_context) -{ - struct gen9_encoder_context_vp9 *vme_context = encoder_context->vme_context; - - /* 0. BRC history buffer */ - gen9_add_buffer_gpe_surface(ctx, - brc_gpe_context, - &vme_context->res_brc_history_buffer, - 0, - vme_context->res_brc_history_buffer.size, - 0, - VP9_BTI_BRC_HISTORY_G9); - - /* 1. Constant data buffer */ - gen9_add_buffer_gpe_surface(ctx, - brc_gpe_context, - &vme_context->res_brc_const_data_buffer, - 0, - vme_context->res_brc_const_data_buffer.size, - 0, - VP9_BTI_BRC_CONSTANT_DATA_G9); - - /* 2. Distortion 2D surface buffer */ - gen9_add_buffer_2d_gpe_surface(ctx, - brc_gpe_context, - &vme_context->s4x_memv_distortion_buffer, - 1, - I965_SURFACEFORMAT_R8_UNORM, - VP9_BTI_BRC_DISTORTION_G9); - - /* 3. pak buffer */ - gen9_add_buffer_gpe_surface(ctx, - brc_gpe_context, - &vme_context->res_brc_mmdk_pak_buffer, - 0, - vme_context->res_brc_mmdk_pak_buffer.size, - 0, - VP9_BTI_BRC_MMDK_PAK_OUTPUT_G9); - /* 4. Mbenc curbe input buffer */ - gen9_add_dri_buffer_gpe_surface(ctx, - brc_gpe_context, - mbenc_gpe_context->dynamic_state.bo, - 0, - ALIGN(mbenc_gpe_context->curbe_size, 64), - mbenc_gpe_context->curbe_offset, - VP9_BTI_BRC_MBENC_CURBE_INPUT_G9); - /* 5. Mbenc curbe output buffer */ - gen9_add_dri_buffer_gpe_surface(ctx, - brc_gpe_context, - mbenc_gpe_context->dynamic_state.bo, - 0, - ALIGN(mbenc_gpe_context->curbe_size, 64), - mbenc_gpe_context->curbe_offset, - VP9_BTI_BRC_MBENC_CURBE_OUTPUT_G9); - - /* 6. BRC_PIC_STATE read buffer */ - gen9_add_buffer_gpe_surface(ctx, brc_gpe_context, - &vme_context->res_pic_state_brc_read_buffer, - 0, - vme_context->res_pic_state_brc_read_buffer.size, - 0, - VP9_BTI_BRC_PIC_STATE_INPUT_G9); - - /* 7. BRC_PIC_STATE write buffer */ - gen9_add_buffer_gpe_surface(ctx, brc_gpe_context, - &vme_context->res_pic_state_brc_write_hfw_read_buffer, - 0, - vme_context->res_pic_state_brc_write_hfw_read_buffer.size, - 0, - VP9_BTI_BRC_PIC_STATE_OUTPUT_G9); - - /* 8. SEGMENT_STATE read buffer */ - gen9_add_buffer_gpe_surface(ctx, brc_gpe_context, - &vme_context->res_seg_state_brc_read_buffer, - 0, - vme_context->res_seg_state_brc_read_buffer.size, - 0, - VP9_BTI_BRC_SEGMENT_STATE_INPUT_G9); - - /* 9. SEGMENT_STATE write buffer */ - gen9_add_buffer_gpe_surface(ctx, brc_gpe_context, - &vme_context->res_seg_state_brc_write_buffer, - 0, - vme_context->res_seg_state_brc_write_buffer.size, - 0, - VP9_BTI_BRC_SEGMENT_STATE_OUTPUT_G9); - - /* 10. Bitstream size buffer */ - gen9_add_buffer_gpe_surface(ctx, brc_gpe_context, - &vme_context->res_brc_bitstream_size_buffer, - 0, - vme_context->res_brc_bitstream_size_buffer.size, - 0, - VP9_BTI_BRC_BITSTREAM_SIZE_G9); - - gen9_add_buffer_gpe_surface(ctx, brc_gpe_context, - &vme_context->res_brc_hfw_data_buffer, - 0, - vme_context->res_brc_hfw_data_buffer.size, - 0, - VP9_BTI_BRC_HFW_DATA_G9); - - return; -} - -static VAStatus -gen9_vp9_brc_update_kernel(VADriverContextP ctx, - struct encode_state *encode_state, - struct intel_encoder_context *encoder_context) -{ - struct gen9_encoder_context_vp9 *vme_context = encoder_context->vme_context; - struct vp9_brc_context *brc_context = &vme_context->brc_context; - struct i965_gpe_context *brc_gpe_context, *mbenc_gpe_context; - int mbenc_index, gpe_index = VP9_BRC_UPDATE; - int media_function = VP9_MEDIA_STATE_BRC_UPDATE; - int mbenc_function; - struct gen9_vp9_brc_curbe_param brc_update_curbe_param; - VAEncPictureParameterBufferVP9 *pic_param; - struct gen9_vp9_state *vp9_state; - struct gen9_vp9_mbenc_curbe_param mbenc_curbe_param; - struct gpe_media_object_parameter media_object_param; - - vp9_state = (struct gen9_vp9_state *) encoder_context->enc_priv_state; - if (!vp9_state || !vp9_state->pic_param) - return VA_STATUS_ERROR_INVALID_PARAMETER; - - pic_param = vp9_state->pic_param; - // Setup VP9 MbEnc Curbe - if (vp9_state->picture_coding_type) { - mbenc_function = VP9_MEDIA_STATE_MBENC_P; - mbenc_index = VP9_MBENC_IDX_INTER; - } else { - mbenc_function = VP9_MEDIA_STATE_MBENC_I_32x32; - mbenc_index = VP9_MBENC_IDX_KEY_32x32; - } - - mbenc_gpe_context = &(vme_context->mbenc_context.gpe_contexts[mbenc_index]); - - memset(&mbenc_curbe_param, 0, sizeof(mbenc_curbe_param)); - - mbenc_curbe_param.ppic_param = vp9_state->pic_param; - mbenc_curbe_param.pseq_param = vp9_state->seq_param; - mbenc_curbe_param.psegment_param = vp9_state->segment_param; - //mbenc_curbe_param.ppRefList = &(vp9_state->pRefList[0]); - mbenc_curbe_param.last_ref_obj = vp9_state->last_ref_obj; - mbenc_curbe_param.golden_ref_obj = vp9_state->golden_ref_obj; - mbenc_curbe_param.alt_ref_obj = vp9_state->alt_ref_obj; - mbenc_curbe_param.frame_width_in_mb = ALIGN(vp9_state->frame_width, 16) / 16; - mbenc_curbe_param.frame_height_in_mb = ALIGN(vp9_state->frame_height, 16) / 16; - mbenc_curbe_param.hme_enabled = vp9_state->hme_enabled; - mbenc_curbe_param.ref_frame_flag = vp9_state->ref_frame_flag; - mbenc_curbe_param.multi_ref_qp_check = vp9_state->multi_ref_qp_check; - mbenc_curbe_param.picture_coding_type = vp9_state->picture_coding_type; - mbenc_curbe_param.media_state_type = mbenc_function; - - vme_context->pfn_set_curbe_mbenc(ctx, encode_state, - mbenc_gpe_context, - encoder_context, - &mbenc_curbe_param); - - vp9_state->mbenc_curbe_set_in_brc_update = true; - - brc_gpe_context = &brc_context->gpe_contexts[gpe_index]; - - gen8_gpe_context_init(ctx, brc_gpe_context); - gen9_gpe_reset_binding_table(ctx, brc_gpe_context); - - memset(&brc_update_curbe_param, 0, sizeof(brc_update_curbe_param)); - - // Setup BRC Update Curbe - brc_update_curbe_param.media_state_type = media_function; - brc_update_curbe_param.curr_frame = pic_param->reconstructed_frame; - brc_update_curbe_param.ppic_param = vp9_state->pic_param; - brc_update_curbe_param.pseq_param = vp9_state->seq_param; - brc_update_curbe_param.psegment_param = vp9_state->segment_param; - brc_update_curbe_param.picture_coding_type = vp9_state->picture_coding_type; - brc_update_curbe_param.frame_width_in_mb = ALIGN(vp9_state->frame_width, 16) / 16; - brc_update_curbe_param.frame_height_in_mb = ALIGN(vp9_state->frame_height, 16) / 16; - brc_update_curbe_param.hme_enabled = vp9_state->hme_enabled; - brc_update_curbe_param.b_used_ref = 1; - brc_update_curbe_param.frame_number = vp9_state->frame_number; - brc_update_curbe_param.ref_frame_flag = vp9_state->ref_frame_flag; - brc_update_curbe_param.mbbrc_enabled = 0; - brc_update_curbe_param.multi_ref_qp_check = vp9_state->multi_ref_qp_check; - brc_update_curbe_param.brc_num_pak_passes = vp9_state->num_pak_passes; - - brc_update_curbe_param.pbrc_init_current_target_buf_full_in_bits = - &vp9_state->brc_init_current_target_buf_full_in_bits; - brc_update_curbe_param.pbrc_init_reset_buf_size_in_bits = - &vp9_state->brc_init_reset_buf_size_in_bits; - brc_update_curbe_param.pbrc_init_reset_input_bits_per_frame = - &vp9_state->brc_init_reset_input_bits_per_frame; - - vme_context->pfn_set_curbe_brc(ctx, encode_state, - brc_gpe_context, - encoder_context, - &brc_update_curbe_param); - - - // Check if the constant data surface is present - if (vp9_state->brc_constant_buffer_supported) - { - char *brc_const_buffer; - brc_const_buffer = i965_map_gpe_resource(&vme_context->res_brc_const_data_buffer); - - if (!brc_const_buffer) - return VA_STATUS_ERROR_OPERATION_FAILED; - - if (vp9_state->picture_coding_type) - memcpy(brc_const_buffer, vp9_brc_const_data_p_g9, - sizeof(vp9_brc_const_data_p_g9)); - else - memcpy(brc_const_buffer, vp9_brc_const_data_i_g9, - sizeof(vp9_brc_const_data_i_g9)); - - i965_unmap_gpe_resource(&vme_context->res_brc_const_data_buffer); - } - - if (pic_param->pic_flags.bits.segmentation_enabled) - { - //reallocate the vme_state->mb_segment_map_surface - /* this will be added later */ - } - - { - pic_param->filter_level = 0; - // clear the filter level value in picParams ebfore programming pic state, as this value will be determined and updated by BRC. - intel_vp9enc_construct_picstate_batchbuf(ctx, encode_state, - encoder_context, &vme_context->res_pic_state_brc_read_buffer); - } - - gen9_brc_update_add_surfaces_vp9(ctx, encode_state, - encoder_context, - brc_gpe_context, - mbenc_gpe_context); - - gen8_gpe_setup_interface_data(ctx, brc_gpe_context); - memset(&media_object_param, 0, sizeof(media_object_param)); - gen9_run_kernel_media_object(ctx, encoder_context, - brc_gpe_context, - media_function, - &media_object_param); - return VA_STATUS_SUCCESS; -} - -static -void gen9_vp9_set_curbe_me(VADriverContextP ctx, - struct encode_state *encode_state, - struct i965_gpe_context *gpe_context, - struct intel_encoder_context *encoder_context, - struct gen9_vp9_me_curbe_param *param) -{ - vp9_me_curbe_data *me_cmd; - int enc_media_state; - int me_mode; - unsigned int width, height; - uint32_t l0_ref_frames; - uint32_t scale_factor; - - if (param->b16xme_enabled) { - if (param->use_16x_me) - me_mode = VP9_ENC_ME16X_BEFORE_ME4X; - else - me_mode = VP9_ENC_ME4X_AFTER_ME16X; - } else { - me_mode = VP9_ENC_ME4X_ONLY; - } - - if (me_mode == VP9_ENC_ME16X_BEFORE_ME4X) - scale_factor = 16; - else - scale_factor = 4; - - if (param->use_16x_me) - enc_media_state = VP9_MEDIA_STATE_16X_ME; - else - enc_media_state = VP9_MEDIA_STATE_4X_ME; - - me_cmd = gen8p_gpe_context_map_curbe(gpe_context); - - if (!me_cmd) - return; - - memset(me_cmd, 0, sizeof(vp9_me_curbe_data)); - - me_cmd->dw1.max_num_mvs = 0x10; - me_cmd->dw1.bi_weight = 0x00; - - me_cmd->dw2.max_num_su = 0x39; - me_cmd->dw2.max_len_sp = 0x39; - - me_cmd->dw3.sub_mb_part_mask = 0x77; - me_cmd->dw3.inter_sad = 0x00; - me_cmd->dw3.intra_sad = 0x00; - me_cmd->dw3.bme_disable_fbr = 0x01; - me_cmd->dw3.sub_pel_mode = 0x03; - - width = param->frame_width / scale_factor; - height = param->frame_height / scale_factor; - - me_cmd->dw4.picture_width = ALIGN(width, 16) / 16; - me_cmd->dw4.picture_height_minus1 = ALIGN(height, 16) / 16 - 1; - - me_cmd->dw5.ref_width = 0x30; - me_cmd->dw5.ref_height = 0x28; - - if (enc_media_state == VP9_MEDIA_STATE_4X_ME) - me_cmd->dw6.write_distortions = 0x01; - - me_cmd->dw6.use_mv_from_prev_step = me_mode == VP9_ENC_ME4X_AFTER_ME16X ? 1 : 0; - me_cmd->dw6.super_combine_dist = 0x5; - me_cmd->dw6.max_vmvr = 0x7fc; - - l0_ref_frames = (param->ref_frame_flag & 0x01) + - !!(param->ref_frame_flag & 0x02) + - !!(param->ref_frame_flag & 0x04); - me_cmd->dw13.num_ref_idx_l0_minus1 = (l0_ref_frames > 0) ? l0_ref_frames - 1 : 0; - me_cmd->dw13.num_ref_idx_l1_minus1 = 0; - - me_cmd->dw14.l0_ref_pic_polarity_bits = 0; - me_cmd->dw14.l1_ref_pic_polarity_bits = 0; - - me_cmd->dw15.mv_shift_factor = 0x02; - - { - memcpy((void *)((char *)me_cmd + 64), - vp9_diamond_ime_search_path_delta, - sizeof(vp9_diamond_ime_search_path_delta)); - } - - - me_cmd->dw32._4x_memv_output_data_surf_index = VP9_BTI_ME_MV_DATA_SURFACE; - me_cmd->dw33._16x_32x_memv_input_data_surf_index = VP9_BTI_16XME_MV_DATA_SURFACE; - me_cmd->dw34._4x_me_output_dist_surf_index = VP9_BTI_ME_DISTORTION_SURFACE; - me_cmd->dw35._4x_me_output_brc_dist_surf_index = VP9_BTI_ME_BRC_DISTORTION_SURFACE; - me_cmd->dw36.vme_fwd_inter_pred_surf_index = VP9_BTI_ME_CURR_PIC_L0; - me_cmd->dw37.vme_bdw_inter_pred_surf_index = VP9_BTI_ME_CURR_PIC_L1; - - gen8p_gpe_context_unmap_curbe(gpe_context); -} - -static void -gen9_vp9_send_me_surface(VADriverContextP ctx, - struct encode_state *encode_state, - struct i965_gpe_context *gpe_context, - struct intel_encoder_context *encoder_context, - struct gen9_vp9_me_surface_param *param) -{ - struct i965_driver_data *i965 = i965_driver_data(ctx); - struct object_surface *obj_surface; - struct gen9_surface_vp9 *vp9_priv_surface; - struct object_surface *input_surface; - struct i965_gpe_resource *gpe_resource; - int ref_bti; - - obj_surface = SURFACE(param->curr_pic); - - if (!obj_surface || !obj_surface->private_data) - return; - - vp9_priv_surface = obj_surface->private_data; - if (param->use_16x_me) - { - gpe_resource = param->pres_16x_memv_data_buffer; - } - else - { - gpe_resource = param->pres_4x_memv_data_buffer; - } - - gen9_add_buffer_2d_gpe_surface(ctx, gpe_context, - gpe_resource, - 1, - I965_SURFACEFORMAT_R8_UNORM, - VP9_BTI_ME_MV_DATA_SURFACE); - - if (param->b16xme_enabled) { - gpe_resource = param->pres_16x_memv_data_buffer; - gen9_add_buffer_2d_gpe_surface(ctx, gpe_context, - gpe_resource, - 1, - I965_SURFACEFORMAT_R8_UNORM, - VP9_BTI_16XME_MV_DATA_SURFACE); - } - - if (!param->use_16x_me) { - gpe_resource = param->pres_me_brc_distortion_buffer; - - gen9_add_buffer_2d_gpe_surface(ctx, gpe_context, - gpe_resource, - 1, - I965_SURFACEFORMAT_R8_UNORM, - VP9_BTI_ME_BRC_DISTORTION_SURFACE); - - gpe_resource = param->pres_me_distortion_buffer; - - gen9_add_buffer_2d_gpe_surface(ctx, gpe_context, - gpe_resource, - 1, - I965_SURFACEFORMAT_R8_UNORM, - VP9_BTI_ME_DISTORTION_SURFACE); - } - - if (param->use_16x_me) - input_surface = vp9_priv_surface->scaled_16x_surface_obj; - else - input_surface = vp9_priv_surface->scaled_4x_surface_obj; - - gen9_add_adv_gpe_surface(ctx, gpe_context, - input_surface, - VP9_BTI_ME_CURR_PIC_L0); - - ref_bti = VP9_BTI_ME_CURR_PIC_L0 + 1; - - - if (param->last_ref_pic) { - obj_surface = param->last_ref_pic; - vp9_priv_surface = obj_surface->private_data; - - if (param->use_16x_me) - input_surface = vp9_priv_surface->scaled_16x_surface_obj; - else - input_surface = vp9_priv_surface->scaled_4x_surface_obj; - - if (param->dys_enabled && - ((vp9_priv_surface->frame_width != param->frame_width) || - (vp9_priv_surface->frame_height != param->frame_height))) { - if (param->use_16x_me) - input_surface = vp9_priv_surface->dys_16x_surface_obj; - else - input_surface = vp9_priv_surface->dys_4x_surface_obj; - } - gen9_add_adv_gpe_surface(ctx, gpe_context, - input_surface, - ref_bti); - gen9_add_adv_gpe_surface(ctx, gpe_context, - input_surface, - ref_bti + 1); - ref_bti += 2; - } - - if (param->golden_ref_pic) { - obj_surface = param->golden_ref_pic; - vp9_priv_surface = obj_surface->private_data; - - if (param->use_16x_me) - input_surface = vp9_priv_surface->scaled_16x_surface_obj; - else - input_surface = vp9_priv_surface->scaled_4x_surface_obj; - - if (param->dys_enabled && - ((vp9_priv_surface->frame_width != param->frame_width) || - (vp9_priv_surface->frame_height != param->frame_height))) { - if (param->use_16x_me) - input_surface = vp9_priv_surface->dys_16x_surface_obj; - else - input_surface = vp9_priv_surface->dys_4x_surface_obj; - } - - gen9_add_adv_gpe_surface(ctx, gpe_context, - input_surface, - ref_bti); - gen9_add_adv_gpe_surface(ctx, gpe_context, - input_surface, - ref_bti + 1); - ref_bti += 2; - } - - if (param->alt_ref_pic) { - obj_surface = param->alt_ref_pic; - vp9_priv_surface = obj_surface->private_data; - - if (param->use_16x_me) - input_surface = vp9_priv_surface->scaled_16x_surface_obj; - else - input_surface = vp9_priv_surface->scaled_4x_surface_obj; - - if (param->dys_enabled && - ((vp9_priv_surface->frame_width != param->frame_width) || - (vp9_priv_surface->frame_height != param->frame_height))) { - if (param->use_16x_me) - input_surface = vp9_priv_surface->dys_16x_surface_obj; - else - input_surface = vp9_priv_surface->dys_4x_surface_obj; - } - gen9_add_adv_gpe_surface(ctx, gpe_context, - input_surface, - ref_bti); - gen9_add_adv_gpe_surface(ctx, gpe_context, - input_surface, - ref_bti + 1); - ref_bti += 2; - } - - return; -} - -static -void gen9_me_add_surfaces_vp9(VADriverContextP ctx, - struct encode_state *encode_state, - struct intel_encoder_context *encoder_context, - struct i965_gpe_context *gpe_context, - int use_16x_me) -{ - struct gen9_encoder_context_vp9 *vme_context = encoder_context->vme_context; - struct gen9_vp9_me_surface_param me_surface_param; - struct gen9_vp9_state *vp9_state; - - vp9_state = (struct gen9_vp9_state *)(encoder_context->enc_priv_state); - - /* sScaled4xSurface surface */ - memset(&me_surface_param, 0, sizeof(me_surface_param)); - me_surface_param.last_ref_pic = vp9_state->last_ref_obj; - me_surface_param.golden_ref_pic = vp9_state->golden_ref_obj; - me_surface_param.alt_ref_pic = vp9_state->alt_ref_obj; - me_surface_param.curr_pic = vp9_state->curr_frame; - me_surface_param.pres_4x_memv_data_buffer = &vme_context->s4x_memv_data_buffer; - me_surface_param.pres_16x_memv_data_buffer = &vme_context->s16x_memv_data_buffer; - me_surface_param.pres_me_distortion_buffer = &vme_context->s4x_memv_distortion_buffer; - me_surface_param.pres_me_brc_distortion_buffer = &vme_context->s4x_memv_distortion_buffer; - - if (use_16x_me) { - me_surface_param.downscaled_width_in_mb = vp9_state->downscaled_width_16x_in_mb; - me_surface_param.downscaled_height_in_mb = vp9_state->downscaled_height_16x_in_mb; - } else { - me_surface_param.downscaled_width_in_mb = vp9_state->downscaled_width_4x_in_mb; - me_surface_param.downscaled_height_in_mb = vp9_state->downscaled_height_4x_in_mb; - } - me_surface_param.frame_width = vp9_state->frame_width; - me_surface_param.frame_height = vp9_state->frame_height; - - me_surface_param.use_16x_me = use_16x_me; - me_surface_param.b16xme_enabled = vp9_state->b16xme_enabled; - me_surface_param.dys_enabled = vp9_state->dys_in_use; - - vme_context->pfn_send_me_surface(ctx, encode_state, - gpe_context, - encoder_context, - &me_surface_param); - return; -} - -static VAStatus -gen9_vp9_me_kernel(VADriverContextP ctx, - struct encode_state *encode_state, - struct intel_encoder_context *encoder_context, - int use_16x_me) -{ - struct gen9_encoder_context_vp9 *vme_context = encoder_context->vme_context; - struct i965_gpe_context *gpe_context; - int media_function; - struct gen9_vp9_me_curbe_param me_curbe_param; - struct gen9_vp9_state *vp9_state; - struct gpe_media_object_walker_parameter media_object_walker_param; - struct vp9_encoder_kernel_walker_parameter kernel_walker_param; - - vp9_state = (struct gen9_vp9_state *) encoder_context->enc_priv_state; - if (!vp9_state || !vp9_state->pic_param) - return VA_STATUS_ERROR_INVALID_PARAMETER; - - if (use_16x_me) - media_function = VP9_MEDIA_STATE_16X_ME; - else - media_function = VP9_MEDIA_STATE_4X_ME; - - gpe_context = &(vme_context->me_context.gpe_context); - - gen8_gpe_context_init(ctx, gpe_context); - gen9_gpe_reset_binding_table(ctx, gpe_context); - - memset(&me_curbe_param, 0, sizeof(me_curbe_param)); - me_curbe_param.ppic_param = vp9_state->pic_param; - me_curbe_param.pseq_param = vp9_state->seq_param; - me_curbe_param.frame_width = vp9_state->frame_width; - me_curbe_param.frame_height = vp9_state->frame_height; - me_curbe_param.ref_frame_flag = vp9_state->ref_frame_flag; - me_curbe_param.use_16x_me = use_16x_me; - me_curbe_param.b16xme_enabled = vp9_state->b16xme_enabled; - vme_context->pfn_set_curbe_me(ctx, encode_state, - gpe_context, - encoder_context, - &me_curbe_param); - - gen9_me_add_surfaces_vp9(ctx, encode_state, - encoder_context, - gpe_context, - use_16x_me); - - gen8_gpe_setup_interface_data(ctx, gpe_context); - - memset(&kernel_walker_param, 0, sizeof(kernel_walker_param)); - if (use_16x_me) { - kernel_walker_param.resolution_x = vp9_state->downscaled_width_16x_in_mb; - kernel_walker_param.resolution_y = vp9_state->downscaled_height_16x_in_mb; - } else { - kernel_walker_param.resolution_x = vp9_state->downscaled_width_4x_in_mb; - kernel_walker_param.resolution_y = vp9_state->downscaled_height_4x_in_mb; - } - kernel_walker_param.no_dependency = 1; - - gen9_init_media_object_walker_parameter(encoder_context, &kernel_walker_param, &media_object_walker_param); - - gen9_run_kernel_media_object_walker(ctx, encoder_context, - gpe_context, - media_function, - &media_object_walker_param); - - return VA_STATUS_SUCCESS; -} - -static void -gen9_vp9_set_curbe_scaling_cm(VADriverContextP ctx, - struct encode_state *encode_state, - struct i965_gpe_context *gpe_context, - struct intel_encoder_context *encoder_context, - struct gen9_vp9_scaling_curbe_param *curbe_param) -{ - vp9_scaling4x_curbe_data_cm *curbe_cmd; - - curbe_cmd = gen8p_gpe_context_map_curbe(gpe_context); - - if (!curbe_cmd) - return; - - memset(curbe_cmd, 0, sizeof(vp9_scaling4x_curbe_data_cm)); - - curbe_cmd->dw0.input_picture_width = curbe_param->input_picture_width; - curbe_cmd->dw0.input_picture_height = curbe_param->input_picture_height; - - curbe_cmd->dw1.input_y_bti = VP9_BTI_SCALING_FRAME_SRC_Y; - curbe_cmd->dw2.output_y_bti = VP9_BTI_SCALING_FRAME_DST_Y; - - - curbe_cmd->dw6.enable_mb_variance_output = 0; - curbe_cmd->dw6.enable_mb_pixel_average_output = 0; - curbe_cmd->dw6.enable_blk8x8_stat_output = 0; - - if (curbe_param->mb_variance_output_enabled || - curbe_param->mb_pixel_average_output_enabled) - { - curbe_cmd->dw10.mbv_proc_stat_bti = VP9_BTI_SCALING_FRAME_MBVPROCSTATS_DST_CM; - } - - gen8p_gpe_context_unmap_curbe(gpe_context); - return; -} - -static void -gen9_vp9_send_scaling_surface(VADriverContextP ctx, - struct encode_state *encode_state, - struct i965_gpe_context *gpe_context, - struct intel_encoder_context *encoder_context, - struct gen9_vp9_scaling_surface_param *scaling_surface_param) -{ - vp9_bti_scaling_offset *scaling_bti; - unsigned int surface_format; - - scaling_bti = scaling_surface_param->p_scaling_bti; - - if (scaling_surface_param->scaling_out_use_32unorm_surf_fmt) - surface_format = I965_SURFACEFORMAT_R32_UNORM; - else if (scaling_surface_param->scaling_out_use_16unorm_surf_fmt) - surface_format = I965_SURFACEFORMAT_R16_UNORM; - else - surface_format = I965_SURFACEFORMAT_R8_UNORM; - - gen9_add_2d_gpe_surface(ctx, gpe_context, - scaling_surface_param->input_surface, - 0, 1, surface_format, - scaling_bti->scaling_frame_src_y); - - gen9_add_2d_gpe_surface(ctx, gpe_context, - scaling_surface_param->output_surface, - 0, 1, surface_format, - scaling_bti->scaling_frame_dst_y); - - - return; -} - -static VAStatus -gen9_vp9_scaling_kernel(VADriverContextP ctx, - struct encode_state *encode_state, - struct intel_encoder_context *encoder_context, - int use_16x_scaling) -{ - struct gen9_encoder_context_vp9 *vme_context = encoder_context->vme_context; - struct i965_gpe_context *gpe_context; - int media_function; - struct gen9_vp9_scaling_curbe_param scaling_curbe_param; - struct gen9_vp9_scaling_surface_param scaling_surface_param; - struct gen9_vp9_state *vp9_state; - VAEncPictureParameterBufferVP9 *pic_param; - struct gpe_media_object_walker_parameter media_object_walker_param; - struct vp9_encoder_kernel_walker_parameter kernel_walker_param; - struct object_surface *obj_surface; - struct object_surface *input_surface, *output_surface; - struct gen9_surface_vp9 *vp9_priv_surface; - unsigned int downscaled_width_in_mb, downscaled_height_in_mb; - unsigned int input_frame_width, input_frame_height; - unsigned int output_frame_width, output_frame_height; - - vp9_state = (struct gen9_vp9_state *) encoder_context->enc_priv_state; - if (!vp9_state || !vp9_state->pic_param) - return VA_STATUS_ERROR_INVALID_PARAMETER; - - pic_param = vp9_state->pic_param; - - if (use_16x_scaling) - media_function = VP9_MEDIA_STATE_16X_SCALING; - else - media_function = VP9_MEDIA_STATE_4X_SCALING; - - gpe_context = &(vme_context->scaling_context.gpe_contexts[0]); - - gen8_gpe_context_init(ctx, gpe_context); - gen9_gpe_reset_binding_table(ctx, gpe_context); - - obj_surface = encode_state->reconstructed_object; - vp9_priv_surface = obj_surface->private_data; - - if (use_16x_scaling) - { - downscaled_width_in_mb = vp9_state->downscaled_width_16x_in_mb; - downscaled_height_in_mb = vp9_state->downscaled_height_16x_in_mb; - - input_surface = vp9_priv_surface->scaled_4x_surface_obj; - input_frame_width = vp9_state->frame_width_4x; - input_frame_height = vp9_state->frame_height_4x; - - output_surface = vp9_priv_surface->scaled_16x_surface_obj; - output_frame_width = vp9_state->frame_width_16x; - output_frame_height = vp9_state->frame_height_16x; - } else { - downscaled_width_in_mb = vp9_state->downscaled_width_4x_in_mb; - downscaled_height_in_mb = vp9_state->downscaled_height_4x_in_mb; - - if (vp9_state->dys_in_use && - ((pic_param->frame_width_src != pic_param->frame_width_dst) || - (pic_param->frame_height_src != pic_param->frame_height_dst))) - input_surface = vp9_priv_surface->dys_surface_obj; - else - input_surface = encode_state->input_yuv_object; - - input_frame_width = vp9_state->frame_width; - input_frame_height = vp9_state->frame_height; - - output_surface = vp9_priv_surface->scaled_4x_surface_obj; - output_frame_width = vp9_state->frame_width_4x; - output_frame_height = vp9_state->frame_height_4x; - } - - memset(&scaling_curbe_param, 0, sizeof(scaling_curbe_param)); - - scaling_curbe_param.input_picture_width = input_frame_width; - scaling_curbe_param.input_picture_height = input_frame_height; - - scaling_curbe_param.use_16x_scaling = use_16x_scaling; - scaling_curbe_param.use_32x_scaling = 0; - - if (use_16x_scaling) - scaling_curbe_param.mb_variance_output_enabled = 0; - else - scaling_curbe_param.mb_variance_output_enabled = vp9_state->adaptive_transform_decision_enabled; - - scaling_curbe_param.blk8x8_stat_enabled = 0; - - vme_context->pfn_set_curbe_scaling(ctx, encode_state, - gpe_context, - encoder_context, - &scaling_curbe_param); - - memset(&scaling_surface_param, 0, sizeof(scaling_surface_param)); - scaling_surface_param.p_scaling_bti = (void *)(&vme_context->scaling_context.scaling_4x_bti); - scaling_surface_param.input_surface = input_surface; - scaling_surface_param.input_frame_width = input_frame_width; - scaling_surface_param.input_frame_height = input_frame_height; - - scaling_surface_param.output_surface = output_surface; - scaling_surface_param.output_frame_width = output_frame_width; - scaling_surface_param.output_frame_height = output_frame_height; - scaling_surface_param.scaling_out_use_16unorm_surf_fmt = 0; - scaling_surface_param.scaling_out_use_32unorm_surf_fmt = 1; - - vme_context->pfn_send_scaling_surface(ctx, encode_state, - gpe_context, - encoder_context, - &scaling_surface_param); - - gen8_gpe_setup_interface_data(ctx, gpe_context); - - memset(&kernel_walker_param, 0, sizeof(kernel_walker_param)); - /* the scaling is based on 8x8 blk level */ - kernel_walker_param.resolution_x = downscaled_width_in_mb * 2; - kernel_walker_param.resolution_y = downscaled_height_in_mb * 2; - kernel_walker_param.no_dependency = 1; - - gen9_init_media_object_walker_parameter(encoder_context, &kernel_walker_param, &media_object_walker_param); - - gen9_run_kernel_media_object_walker(ctx, encoder_context, - gpe_context, - media_function, - &media_object_walker_param); - - return VA_STATUS_SUCCESS; -} - -static void -gen9_vp9_dys_set_sampler_state(struct i965_gpe_context *gpe_context) -{ - struct gen9_sampler_8x8_avs *sampler_cmd; - - if (!gpe_context) - return; - - dri_bo_map(gpe_context->dynamic_state.bo, 1); - - if (!gpe_context->dynamic_state.bo->virtual) - return; - - sampler_cmd = (struct gen9_sampler_8x8_avs *) - (gpe_context->dynamic_state.bo->virtual + gpe_context->sampler_offset); - - memset(sampler_cmd, 0, sizeof(struct gen9_sampler_8x8_avs)); - - sampler_cmd->dw0.r3c_coefficient = 15; - sampler_cmd->dw0.r3x_coefficient = 6; - sampler_cmd->dw0.strong_edge_threshold = 8; - sampler_cmd->dw0.weak_edge_threshold = 1; - sampler_cmd->dw0.gain_factor = 32; - - sampler_cmd->dw2.r5c_coefficient = 3; - sampler_cmd->dw2.r5cx_coefficient = 8; - sampler_cmd->dw2.r5x_coefficient = 9; - sampler_cmd->dw2.strong_edge_weight = 6; - sampler_cmd->dw2.regular_weight = 3; - sampler_cmd->dw2.non_edge_weight = 2; - sampler_cmd->dw2.global_noise_estimation = 255; - - sampler_cmd->dw3.enable_8tap_adaptive_filter = 0; - sampler_cmd->dw3.cos_alpha = 79; - sampler_cmd->dw3.sin_alpha = 101; - - sampler_cmd->dw5.diamond_du = 0; - sampler_cmd->dw5.hs_margin = 3; - sampler_cmd->dw5.diamond_alpha = 100; - - sampler_cmd->dw7.inv_margin_vyl = 3300; - - sampler_cmd->dw8.inv_margin_vyu = 1600; - - sampler_cmd->dw10.y_slope2 = 24; - sampler_cmd->dw10.s0l = 1792; - - sampler_cmd->dw12.y_slope1 = 24; - - sampler_cmd->dw14.s0u = 256; - - sampler_cmd->dw15.s2u = 1792; - sampler_cmd->dw15.s1u = 0; - - memcpy(sampler_cmd->coefficients, - &gen9_vp9_avs_coeffs[0], - 17 * sizeof(struct gen8_sampler_8x8_avs_coefficients)); - - sampler_cmd->dw152.default_sharpness_level = 255; - sampler_cmd->dw152.max_derivative_4_pixels = 7; - sampler_cmd->dw152.max_derivative_8_pixels = 20; - sampler_cmd->dw152.transition_area_with_4_pixels = 4; - sampler_cmd->dw152.transition_area_with_8_pixels = 5; - - sampler_cmd->dw153.bypass_x_adaptive_filtering = 1; - sampler_cmd->dw153.bypass_y_adaptive_filtering = 1; - sampler_cmd->dw153.adaptive_filter_for_all_channel = 0; - - memcpy(sampler_cmd->extra_coefficients, - &gen9_vp9_avs_coeffs[17 * 8], - 15 * sizeof(struct gen8_sampler_8x8_avs_coefficients)); - - dri_bo_unmap(gpe_context->dynamic_state.bo); -} - -static void -gen9_vp9_set_curbe_dys(VADriverContextP ctx, - struct encode_state *encode_state, - struct i965_gpe_context *gpe_context, - struct intel_encoder_context *encoder_context, - struct gen9_vp9_dys_curbe_param *curbe_param) -{ - vp9_dys_curbe_data *curbe_cmd; - - curbe_cmd = gen8p_gpe_context_map_curbe(gpe_context); - - if (!curbe_cmd) - return; - - memset(curbe_cmd, 0, sizeof(vp9_dys_curbe_data)); - - curbe_cmd->dw0.input_frame_width = curbe_param->input_width; - curbe_cmd->dw0.input_frame_height = curbe_param->input_height; - - curbe_cmd->dw1.output_frame_width = curbe_param->output_width; - curbe_cmd->dw1.output_frame_height = curbe_param->output_height; - - curbe_cmd->dw2.delta_u = 1.0f / curbe_param->output_width; - curbe_cmd->dw3.delta_v = 1.0f / curbe_param->output_height; - - curbe_cmd->dw16.input_frame_nv12_bti = VP9_BTI_DYS_INPUT_NV12; - curbe_cmd->dw17.output_frame_y_bti = VP9_BTI_DYS_OUTPUT_Y; - curbe_cmd->dw18.avs_sample_idx = 0; - - gen8p_gpe_context_unmap_curbe(gpe_context); -} - -static void -gen9_vp9_send_dys_surface(VADriverContextP ctx, - struct encode_state *encode_state, - struct i965_gpe_context *gpe_context, - struct intel_encoder_context *encoder_context, - struct gen9_vp9_dys_surface_param *surface_param) -{ - - if (surface_param->input_frame) - gen9_add_adv_gpe_surface(ctx, - gpe_context, - surface_param->input_frame, - VP9_BTI_DYS_INPUT_NV12); - - if (surface_param->output_frame) { - gen9_add_2d_gpe_surface(ctx, - gpe_context, - surface_param->output_frame, - 0, - 1, - I965_SURFACEFORMAT_R8_UNORM, - VP9_BTI_DYS_OUTPUT_Y); - - gen9_add_2d_gpe_surface(ctx, - gpe_context, - surface_param->output_frame, - 1, - 1, - I965_SURFACEFORMAT_R16_UINT, - VP9_BTI_DYS_OUTPUT_UV); - } - - return; -} - -static VAStatus -gen9_vp9_dys_kernel(VADriverContextP ctx, - struct encode_state *encode_state, - struct intel_encoder_context *encoder_context, - gen9_vp9_dys_kernel_param *dys_kernel_param) -{ - struct gen9_encoder_context_vp9 *vme_context = encoder_context->vme_context; - struct i965_gpe_context *gpe_context; - int media_function; - struct gen9_vp9_dys_curbe_param curbe_param; - struct gen9_vp9_dys_surface_param surface_param; - struct gpe_media_object_walker_parameter media_object_walker_param; - struct vp9_encoder_kernel_walker_parameter kernel_walker_param; - unsigned int resolution_x, resolution_y; - - media_function = VP9_MEDIA_STATE_DYS; - gpe_context = &vme_context->dys_context.gpe_context; - - //gen8_gpe_context_init(ctx, gpe_context); - gen9_gpe_reset_binding_table(ctx, gpe_context); - - /* sampler state is configured only when initializing the GPE context */ - - memset(&curbe_param, 0, sizeof(curbe_param)); - curbe_param.input_width = dys_kernel_param->input_width; - curbe_param.input_height = dys_kernel_param->input_height; - curbe_param.output_width = dys_kernel_param->output_width; - curbe_param.output_height = dys_kernel_param->output_height; - vme_context->pfn_set_curbe_dys(ctx, encode_state, - gpe_context, - encoder_context, - &curbe_param); - - // Add surface states - memset(&surface_param, 0, sizeof(surface_param)); - surface_param.input_frame = dys_kernel_param->input_surface; - surface_param.output_frame = dys_kernel_param->output_surface; - surface_param.vert_line_stride = 0; - surface_param.vert_line_stride_offset = 0; - - vme_context->pfn_send_dys_surface(ctx, - encode_state, - gpe_context, - encoder_context, - &surface_param); - - resolution_x = ALIGN(dys_kernel_param->output_width, 16) / 16; - resolution_y = ALIGN(dys_kernel_param->output_height, 16) / 16; - - gen8_gpe_setup_interface_data(ctx, gpe_context); - - memset(&kernel_walker_param, 0, sizeof(kernel_walker_param)); - kernel_walker_param.resolution_x = resolution_x; - kernel_walker_param.resolution_y = resolution_y; - kernel_walker_param.no_dependency = 1; - - gen9_init_media_object_walker_parameter(encoder_context, &kernel_walker_param, &media_object_walker_param); - - gen9_run_kernel_media_object_walker(ctx, encoder_context, - gpe_context, - media_function, - &media_object_walker_param); - - return VA_STATUS_SUCCESS; -} - -static VAStatus -gen9_vp9_run_dys_refframes(VADriverContextP ctx, - struct encode_state *encode_state, - struct intel_encoder_context *encoder_context) -{ - struct gen9_vp9_state *vp9_state; - VAEncPictureParameterBufferVP9 *pic_param; - gen9_vp9_dys_kernel_param dys_kernel_param; - struct object_surface *obj_surface; - struct object_surface *input_surface, *output_surface; - struct gen9_surface_vp9 *vp9_priv_surface; - - vp9_state = (struct gen9_vp9_state *) encoder_context->enc_priv_state; - - if (!vp9_state || !vp9_state->pic_param) - return VA_STATUS_ERROR_INVALID_PARAMETER; - - pic_param = vp9_state->pic_param; - - if ((pic_param->frame_width_src != pic_param->frame_width_dst) || - (pic_param->frame_height_src != pic_param->frame_height_dst)) { - input_surface = encode_state->input_yuv_object; - obj_surface = encode_state->reconstructed_object; - vp9_priv_surface = (struct gen9_surface_vp9 *)(obj_surface->private_data); - output_surface = vp9_priv_surface->dys_surface_obj; - - memset(&dys_kernel_param, 0, sizeof(dys_kernel_param)); - dys_kernel_param.input_width = pic_param->frame_width_src; - dys_kernel_param.input_height = pic_param->frame_height_src; - dys_kernel_param.input_surface = input_surface; - dys_kernel_param.output_width = pic_param->frame_width_dst; - dys_kernel_param.output_height = pic_param->frame_height_dst; - dys_kernel_param.output_surface = output_surface; - gen9_vp9_dys_kernel(ctx, encode_state, - encoder_context, - &dys_kernel_param); - } - - if ((vp9_state->dys_ref_frame_flag & VP9_LAST_REF) && - vp9_state->last_ref_obj) { - obj_surface = vp9_state->last_ref_obj; - vp9_priv_surface = (struct gen9_surface_vp9 *)(obj_surface->private_data); - - input_surface = obj_surface; - output_surface = vp9_priv_surface->dys_surface_obj; - - dys_kernel_param.input_width = vp9_priv_surface->frame_width; - dys_kernel_param.input_height = vp9_priv_surface->frame_height; - dys_kernel_param.input_surface = input_surface; - - dys_kernel_param.output_width = pic_param->frame_width_dst; - dys_kernel_param.output_height = pic_param->frame_height_dst; - dys_kernel_param.output_surface = output_surface; - - gen9_vp9_dys_kernel(ctx, encode_state, - encoder_context, - &dys_kernel_param); - - if (vp9_state->hme_enabled) { - dys_kernel_param.input_width = ALIGN((vp9_priv_surface->frame_width / 4), 16); - dys_kernel_param.input_width = ALIGN((vp9_priv_surface->frame_height / 4), 16); - dys_kernel_param.input_surface = vp9_priv_surface->scaled_4x_surface_obj; - - dys_kernel_param.output_width = vp9_state->frame_width_4x; - dys_kernel_param.output_height = vp9_state->frame_height_4x; - dys_kernel_param.output_surface = vp9_priv_surface->dys_4x_surface_obj; - - gen9_vp9_dys_kernel(ctx, encode_state, - encoder_context, - &dys_kernel_param); - - /* Does it really need to do the 16x HME if the - * resolution is different? - * Maybe it should be restricted - */ - if (vp9_state->b16xme_enabled) { - dys_kernel_param.input_width = ALIGN((vp9_priv_surface->frame_width / 16), 16); - dys_kernel_param.input_height = ALIGN((vp9_priv_surface->frame_height / 16), 16); - dys_kernel_param.input_surface = vp9_priv_surface->scaled_16x_surface_obj; - - dys_kernel_param.output_width = vp9_state->frame_width_16x; - dys_kernel_param.output_height = vp9_state->frame_height_16x; - dys_kernel_param.output_surface = vp9_priv_surface->dys_16x_surface_obj; - - gen9_vp9_dys_kernel(ctx, encode_state, - encoder_context, - &dys_kernel_param); - } - } - } - - if ((vp9_state->dys_ref_frame_flag & VP9_GOLDEN_REF) && - vp9_state->golden_ref_obj) { - obj_surface = vp9_state->golden_ref_obj; - vp9_priv_surface = (struct gen9_surface_vp9 *)(obj_surface->private_data); - - input_surface = obj_surface; - output_surface = vp9_priv_surface->dys_surface_obj; - - dys_kernel_param.input_width = vp9_priv_surface->frame_width; - dys_kernel_param.input_height = vp9_priv_surface->frame_height; - dys_kernel_param.input_surface = input_surface; - - dys_kernel_param.output_width = pic_param->frame_width_dst; - dys_kernel_param.output_height = pic_param->frame_height_dst; - dys_kernel_param.output_surface = output_surface; - - gen9_vp9_dys_kernel(ctx, encode_state, - encoder_context, - &dys_kernel_param); - - if (vp9_state->hme_enabled) { - dys_kernel_param.input_width = ALIGN((vp9_priv_surface->frame_width / 4), 16); - dys_kernel_param.input_width = ALIGN((vp9_priv_surface->frame_height / 4), 16); - dys_kernel_param.input_surface = vp9_priv_surface->scaled_4x_surface_obj; - - dys_kernel_param.output_width = vp9_state->frame_width_4x; - dys_kernel_param.output_height = vp9_state->frame_height_4x; - dys_kernel_param.output_surface = vp9_priv_surface->dys_4x_surface_obj; - - gen9_vp9_dys_kernel(ctx, encode_state, - encoder_context, - &dys_kernel_param); - - /* Does it really need to do the 16x HME if the - * resolution is different? - * Maybe it should be restricted - */ - if (vp9_state->b16xme_enabled) { - dys_kernel_param.input_width = ALIGN((vp9_priv_surface->frame_width / 16), 16); - dys_kernel_param.input_height = ALIGN((vp9_priv_surface->frame_height / 16), 16); - dys_kernel_param.input_surface = vp9_priv_surface->scaled_16x_surface_obj; - - dys_kernel_param.output_width = vp9_state->frame_width_16x; - dys_kernel_param.output_height = vp9_state->frame_height_16x; - dys_kernel_param.output_surface = vp9_priv_surface->dys_16x_surface_obj; - - gen9_vp9_dys_kernel(ctx, encode_state, - encoder_context, - &dys_kernel_param); - } - } - } - - if ((vp9_state->dys_ref_frame_flag & VP9_ALT_REF) && - vp9_state->alt_ref_obj) { - obj_surface = vp9_state->alt_ref_obj; - vp9_priv_surface = (struct gen9_surface_vp9 *)(obj_surface->private_data); - - input_surface = obj_surface; - output_surface = vp9_priv_surface->dys_surface_obj; - - dys_kernel_param.input_width = vp9_priv_surface->frame_width; - dys_kernel_param.input_height = vp9_priv_surface->frame_height; - dys_kernel_param.input_surface = input_surface; - - dys_kernel_param.output_width = pic_param->frame_width_dst; - dys_kernel_param.output_height = pic_param->frame_height_dst; - dys_kernel_param.output_surface = output_surface; - - gen9_vp9_dys_kernel(ctx, encode_state, - encoder_context, - &dys_kernel_param); - - if (vp9_state->hme_enabled) { - dys_kernel_param.input_width = ALIGN((vp9_priv_surface->frame_width / 4), 16); - dys_kernel_param.input_width = ALIGN((vp9_priv_surface->frame_height / 4), 16); - dys_kernel_param.input_surface = vp9_priv_surface->scaled_4x_surface_obj; - - dys_kernel_param.output_width = vp9_state->frame_width_4x; - dys_kernel_param.output_height = vp9_state->frame_height_4x; - dys_kernel_param.output_surface = vp9_priv_surface->dys_4x_surface_obj; - - gen9_vp9_dys_kernel(ctx, encode_state, - encoder_context, - &dys_kernel_param); - - /* Does it really need to do the 16x HME if the - * resolution is different? - * Maybe it should be restricted - */ - if (vp9_state->b16xme_enabled) { - dys_kernel_param.input_width = ALIGN((vp9_priv_surface->frame_width / 16), 16); - dys_kernel_param.input_height = ALIGN((vp9_priv_surface->frame_height / 16), 16); - dys_kernel_param.input_surface = vp9_priv_surface->scaled_16x_surface_obj; - - dys_kernel_param.output_width = vp9_state->frame_width_16x; - dys_kernel_param.output_height = vp9_state->frame_height_16x; - dys_kernel_param.output_surface = vp9_priv_surface->dys_16x_surface_obj; - - gen9_vp9_dys_kernel(ctx, encode_state, - encoder_context, - &dys_kernel_param); - } - } - } - - return VA_STATUS_SUCCESS; -} - -static void -gen9_vp9_set_curbe_mbenc(VADriverContextP ctx, - struct encode_state *encode_state, - struct i965_gpe_context *gpe_context, - struct intel_encoder_context *encoder_context, - struct gen9_vp9_mbenc_curbe_param *curbe_param) -{ - struct gen9_vp9_state *vp9_state; - VAEncMiscParameterTypeVP9PerSegmantParam *seg_param, tmp_seg_param; - vp9_mbenc_curbe_data *curbe_cmd; - VAEncPictureParameterBufferVP9 *pic_param; - int i, segment_count; - int seg_qindex; - struct object_surface *obj_surface; - struct gen9_surface_vp9 *vp9_priv_surface; - - vp9_state = (struct gen9_vp9_state *) encoder_context->enc_priv_state; - - if (!vp9_state || !vp9_state->pic_param) - return; - - pic_param = curbe_param->ppic_param; - seg_param = curbe_param->psegment_param; - - if (!seg_param) { - memset(&tmp_seg_param, 0, sizeof(tmp_seg_param)); - seg_param = &tmp_seg_param; - } - - curbe_cmd = gen8p_gpe_context_map_curbe(gpe_context); - - if (!curbe_cmd) - return; - - memset(curbe_cmd, 0, sizeof(vp9_mbenc_curbe_data)); - - if (vp9_state->dys_in_use) - { - curbe_cmd->dw0.frame_width = pic_param->frame_width_dst; - curbe_cmd->dw0.frame_height = pic_param->frame_height_dst; - } - else - { - curbe_cmd->dw0.frame_width = pic_param->frame_width_src; - curbe_cmd->dw0.frame_height = pic_param->frame_height_src; - } - - curbe_cmd->dw1.frame_type = curbe_param->picture_coding_type; - - curbe_cmd->dw1.segmentation_enable = pic_param->pic_flags.bits.segmentation_enabled; - if (pic_param->pic_flags.bits.segmentation_enabled) - segment_count = 8; - else - segment_count = 1; - - curbe_cmd->dw1.ref_frame_flags = curbe_param->ref_frame_flag; - - //right now set them to normal settings - if (curbe_param->picture_coding_type) - { - switch (vp9_state->target_usage) - { - case INTEL_ENC_VP9_TU_QUALITY: - curbe_cmd->dw1.min_16for32_check = 0x00; - curbe_cmd->dw2.multi_pred = 0x02; - curbe_cmd->dw2.len_sp = 0x39; - curbe_cmd->dw2.search_x = 0x30; - curbe_cmd->dw2.search_y = 0x28; - curbe_cmd->dw3.min_ref_for32_check = 0x01; - curbe_cmd->dw4.skip16_threshold = 0x000A; - curbe_cmd->dw4.disable_mr_threshold = 0x000C; - - memcpy(&curbe_cmd->dw16, - vp9_diamond_ime_search_path_delta, - 14 * sizeof(unsigned int)); - break; - case INTEL_ENC_VP9_TU_PERFORMANCE: - curbe_cmd->dw1.min_16for32_check = 0x02; - curbe_cmd->dw2.multi_pred = 0x00; - curbe_cmd->dw2.len_sp = 0x10; - curbe_cmd->dw2.search_x = 0x20; - curbe_cmd->dw2.search_y = 0x20; - curbe_cmd->dw3.min_ref_for32_check = 0x03; - curbe_cmd->dw4.skip16_threshold = 0x0014; - curbe_cmd->dw4.disable_mr_threshold = 0x0016; - - memcpy(&curbe_cmd->dw16, - vp9_fullspiral_ime_search_path_delta, - 14 * sizeof(unsigned int)); - - break; - default: // normal settings - curbe_cmd->dw1.min_16for32_check = 0x01; - curbe_cmd->dw2.multi_pred = 0x00; - curbe_cmd->dw2.len_sp = 0x19; - curbe_cmd->dw2.search_x = 0x30; - curbe_cmd->dw2.search_y = 0x28; - curbe_cmd->dw3.min_ref_for32_check = 0x02; - curbe_cmd->dw4.skip16_threshold = 0x000F; - curbe_cmd->dw4.disable_mr_threshold = 0x0011; - - memcpy(&curbe_cmd->dw16, - vp9_diamond_ime_search_path_delta, - 14 * sizeof(unsigned int)); - break; - } - - curbe_cmd->dw3.hme_enabled = curbe_param->hme_enabled; - curbe_cmd->dw3.multi_ref_qp_check = curbe_param->multi_ref_qp_check; - // co-located predictor must be disabled when dynamic scaling is enabled - curbe_cmd->dw3.disable_temp_pred = vp9_state->dys_in_use; - } - - curbe_cmd->dw5.inter_round = 0; - curbe_cmd->dw5.intra_round = 4; - curbe_cmd->dw5.frame_qpindex = pic_param->luma_ac_qindex; - - for (i = 0; i < segment_count; i++) - { - seg_qindex = pic_param->luma_ac_qindex + pic_param->luma_dc_qindex_delta - + seg_param->seg_data[i].segment_qindex_delta; - - seg_qindex = CLAMP(0, 255, seg_qindex); - - if (curbe_param->picture_coding_type) - memcpy(&curbe_cmd->segments[i], - &intel_vp9_costlut_p[seg_qindex * 16], - 16 * sizeof(unsigned int)); - else - memcpy(&curbe_cmd->segments[i], - &intel_vp9_costlut_key[seg_qindex * 16], - 16 * sizeof(unsigned int)); - } - - if (curbe_param->picture_coding_type) - { - if (curbe_cmd->dw3.multi_ref_qp_check) - { - if (curbe_param->ref_frame_flag & 0x01) - { - obj_surface = curbe_param->last_ref_obj; - vp9_priv_surface = (struct gen9_surface_vp9 *)(obj_surface->private_data); - curbe_cmd->dw8.last_ref_qp = vp9_quant_dc[vp9_priv_surface->qp_value]; - } - - if (curbe_param->ref_frame_flag & 0x02) - { - obj_surface = curbe_param->golden_ref_obj; - vp9_priv_surface = (struct gen9_surface_vp9 *)(obj_surface->private_data); - curbe_cmd->dw8.golden_ref_qp = vp9_quant_dc[vp9_priv_surface->qp_value]; - } - - if (curbe_param->ref_frame_flag & 0x04) - { - obj_surface = curbe_param->alt_ref_obj; - vp9_priv_surface = (struct gen9_surface_vp9 *)(obj_surface->private_data); - curbe_cmd->dw9.alt_ref_qp = vp9_quant_dc[vp9_priv_surface->qp_value]; - } - } - } - curbe_cmd->dw160.enc_curr_y_surf_bti = VP9_BTI_MBENC_CURR_Y_G9; - curbe_cmd->dw162.enc_curr_nv12_surf_bti = VP9_BTI_MBENC_CURR_NV12_G9; - curbe_cmd->dw166.segmentation_map_bti = VP9_BTI_MBENC_SEGMENTATION_MAP_G9; - curbe_cmd->dw172.mode_decision_bti = VP9_BTI_MBENC_MODE_DECISION_G9; - curbe_cmd->dw167.tx_curbe_bti = VP9_BTI_MBENC_TX_CURBE_G9; - curbe_cmd->dw168.hme_mvdata_bti = VP9_BTI_MBENC_HME_MV_DATA_G9; - curbe_cmd->dw169.hme_distortion_bti = VP9_BTI_MBENC_HME_DISTORTION_G9; - curbe_cmd->dw171.mode_decision_prev_bti = VP9_BTI_MBENC_MODE_DECISION_PREV_G9; - curbe_cmd->dw172.mode_decision_bti = VP9_BTI_MBENC_MODE_DECISION_G9; - curbe_cmd->dw173.output_16x16_inter_modes_bti = VP9_BTI_MBENC_OUT_16x16_INTER_MODES_G9; - curbe_cmd->dw174.cu_record_bti = VP9_BTI_MBENC_CU_RECORDS_G9; - curbe_cmd->dw175.pak_data_bti = VP9_BTI_MBENC_PAK_DATA_G9; - - gen8p_gpe_context_unmap_curbe(gpe_context); - return; -} - -static void -gen9_vp9_send_mbenc_surface(VADriverContextP ctx, - struct encode_state *encode_state, - struct i965_gpe_context *gpe_context, - struct intel_encoder_context *encoder_context, - struct gen9_vp9_mbenc_surface_param *mbenc_param) -{ - struct gen9_vp9_state *vp9_state; - unsigned int res_size; - unsigned int frame_width_in_sb, frame_height_in_sb; - struct object_surface *obj_surface, *tmp_input; - struct gen9_surface_vp9 *vp9_priv_surface; - int media_function; - - vp9_state = (struct gen9_vp9_state *) encoder_context->enc_priv_state; - - if (!vp9_state || !vp9_state->pic_param) - return; - - frame_width_in_sb = ALIGN(mbenc_param->frame_width, 64) / 64; - frame_height_in_sb = ALIGN(mbenc_param->frame_height, 64) / 64; - media_function = mbenc_param->media_state_type; - - switch (media_function) - { - case VP9_MEDIA_STATE_MBENC_I_32x32: - { - obj_surface = mbenc_param->curr_frame_obj; - - gen9_add_2d_gpe_surface(ctx, - gpe_context, - obj_surface, - 0, - 1, - I965_SURFACEFORMAT_R8_UNORM, - VP9_BTI_MBENC_CURR_Y_G9); - - gen9_add_2d_gpe_surface(ctx, - gpe_context, - obj_surface, - 1, - 1, - I965_SURFACEFORMAT_R16_UINT, - VP9_BTI_MBENC_CURR_UV_G9); - - - if (mbenc_param->segmentation_enabled) - { - gen9_add_buffer_2d_gpe_surface(ctx, - gpe_context, - mbenc_param->pres_segmentation_map, - 1, - I965_SURFACEFORMAT_R8_UNORM, - VP9_BTI_MBENC_SEGMENTATION_MAP_G9); - - } - - res_size = 16 * mbenc_param->frame_width_in_mb * - mbenc_param->frame_height_in_mb * sizeof(unsigned int); - gen9_add_buffer_gpe_surface(ctx, - gpe_context, - mbenc_param->pres_mode_decision, - 0, - res_size / 4, - 0, - VP9_BTI_MBENC_MODE_DECISION_G9); - - break; - } - case VP9_MEDIA_STATE_MBENC_I_16x16: - { - obj_surface = mbenc_param->curr_frame_obj; - - gen9_add_2d_gpe_surface(ctx, - gpe_context, - obj_surface, - 0, - 1, - I965_SURFACEFORMAT_R8_UNORM, - VP9_BTI_MBENC_CURR_Y_G9); - - gen9_add_2d_gpe_surface(ctx, - gpe_context, - obj_surface, - 1, - 1, - I965_SURFACEFORMAT_R16_UINT, - VP9_BTI_MBENC_CURR_UV_G9); - - gen9_add_adv_gpe_surface(ctx, gpe_context, - obj_surface, - VP9_BTI_MBENC_CURR_NV12_G9); - - if (mbenc_param->segmentation_enabled) - { - gen9_add_buffer_2d_gpe_surface(ctx, - gpe_context, - mbenc_param->pres_segmentation_map, - 1, - I965_SURFACEFORMAT_R8_UNORM, - VP9_BTI_MBENC_SEGMENTATION_MAP_G9); - - } - - res_size = 16 * mbenc_param->frame_width_in_mb * - mbenc_param->frame_height_in_mb * sizeof(unsigned int); - gen9_add_buffer_gpe_surface(ctx, - gpe_context, - mbenc_param->pres_mode_decision, - 0, - res_size / 4, - 0, - VP9_BTI_MBENC_MODE_DECISION_G9); - - res_size = 160; - - gen9_add_dri_buffer_gpe_surface(ctx, - gpe_context, - mbenc_param->gpe_context_tx->dynamic_state.bo, - 0, - ALIGN(res_size, 64), - mbenc_param->gpe_context_tx->curbe_offset, - VP9_BTI_MBENC_TX_CURBE_G9); - - break; - } - case VP9_MEDIA_STATE_MBENC_P: - { - obj_surface = mbenc_param->curr_frame_obj; - - gen9_add_2d_gpe_surface(ctx, - gpe_context, - obj_surface, - 0, - 1, - I965_SURFACEFORMAT_R8_UNORM, - VP9_BTI_MBENC_CURR_Y_G9); - - gen9_add_2d_gpe_surface(ctx, gpe_context, - obj_surface, - 1, - 1, - I965_SURFACEFORMAT_R16_UINT, - VP9_BTI_MBENC_CURR_UV_G9); - - gen9_add_adv_gpe_surface(ctx, gpe_context, - obj_surface, - VP9_BTI_MBENC_CURR_NV12_G9); - - if (mbenc_param->last_ref_obj) - { - obj_surface = mbenc_param->last_ref_obj; - vp9_priv_surface = (struct gen9_surface_vp9 *)(obj_surface->private_data); - - if (vp9_state->dys_in_use && - ((vp9_priv_surface->frame_width != vp9_state->frame_width) || - (vp9_priv_surface->frame_height != vp9_state->frame_height))) - tmp_input = vp9_priv_surface->dys_surface_obj; - else - tmp_input = obj_surface; - - gen9_add_adv_gpe_surface(ctx, gpe_context, - tmp_input, - VP9_BTI_MBENC_LAST_NV12_G9); - - gen9_add_adv_gpe_surface(ctx, gpe_context, - tmp_input, - VP9_BTI_MBENC_LAST_NV12_G9 + 1); - - } - - if (mbenc_param->golden_ref_obj) - { - obj_surface = mbenc_param->golden_ref_obj; - vp9_priv_surface = (struct gen9_surface_vp9 *)(obj_surface->private_data); - - if (vp9_state->dys_in_use && - ((vp9_priv_surface->frame_width != vp9_state->frame_width) || - (vp9_priv_surface->frame_height != vp9_state->frame_height))) - tmp_input = vp9_priv_surface->dys_surface_obj; - else - tmp_input = obj_surface; - - gen9_add_adv_gpe_surface(ctx, gpe_context, - tmp_input, - VP9_BTI_MBENC_GOLD_NV12_G9); - - gen9_add_adv_gpe_surface(ctx, gpe_context, - tmp_input, - VP9_BTI_MBENC_GOLD_NV12_G9 + 1); - - } - - if (mbenc_param->alt_ref_obj) - { - obj_surface = mbenc_param->alt_ref_obj; - vp9_priv_surface = (struct gen9_surface_vp9 *)(obj_surface->private_data); - - if (vp9_state->dys_in_use && - ((vp9_priv_surface->frame_width != vp9_state->frame_width) || - (vp9_priv_surface->frame_height != vp9_state->frame_height))) - tmp_input = vp9_priv_surface->dys_surface_obj; - else - tmp_input = obj_surface; - - gen9_add_adv_gpe_surface(ctx, gpe_context, - tmp_input, - VP9_BTI_MBENC_ALTREF_NV12_G9); - - gen9_add_adv_gpe_surface(ctx, gpe_context, - tmp_input, - VP9_BTI_MBENC_ALTREF_NV12_G9 + 1); - - } - - if (mbenc_param->hme_enabled) - { - gen9_add_buffer_2d_gpe_surface(ctx, gpe_context, - mbenc_param->ps4x_memv_data_buffer, - 1, - I965_SURFACEFORMAT_R8_UNORM, - VP9_BTI_MBENC_HME_MV_DATA_G9); - - gen9_add_buffer_2d_gpe_surface(ctx, gpe_context, - mbenc_param->ps4x_memv_distortion_buffer, - 1, - I965_SURFACEFORMAT_R8_UNORM, - VP9_BTI_MBENC_HME_DISTORTION_G9); - } - - if (mbenc_param->segmentation_enabled) - { - gen9_add_buffer_2d_gpe_surface(ctx, - gpe_context, - mbenc_param->pres_segmentation_map, - 1, - I965_SURFACEFORMAT_R8_UNORM, - VP9_BTI_MBENC_SEGMENTATION_MAP_G9); - - } - - res_size = 16 * mbenc_param->frame_width_in_mb * - mbenc_param->frame_height_in_mb * sizeof(unsigned int); - gen9_add_buffer_gpe_surface(ctx, - gpe_context, - mbenc_param->pres_mode_decision_prev, - 0, - res_size / 4, - 0, - VP9_BTI_MBENC_MODE_DECISION_PREV_G9); - - gen9_add_buffer_gpe_surface(ctx, - gpe_context, - mbenc_param->pres_mode_decision, - 0, - res_size / 4, - 0, - VP9_BTI_MBENC_MODE_DECISION_G9); - - gen9_add_buffer_2d_gpe_surface(ctx, - gpe_context, - mbenc_param->pres_output_16x16_inter_modes, - 1, - I965_SURFACEFORMAT_R8_UNORM, - VP9_BTI_MBENC_OUT_16x16_INTER_MODES_G9); - - res_size = 160; - - gen9_add_dri_buffer_gpe_surface(ctx, - gpe_context, - mbenc_param->gpe_context_tx->dynamic_state.bo, - 0, - ALIGN(res_size, 64), - mbenc_param->gpe_context_tx->curbe_offset, - VP9_BTI_MBENC_TX_CURBE_G9); - - - break; - } - case VP9_MEDIA_STATE_MBENC_TX: - { - obj_surface = mbenc_param->curr_frame_obj; - - gen9_add_2d_gpe_surface(ctx, - gpe_context, - obj_surface, - 0, - 1, - I965_SURFACEFORMAT_R8_UNORM, - VP9_BTI_MBENC_CURR_Y_G9); - - gen9_add_2d_gpe_surface(ctx, - gpe_context, - obj_surface, - 1, - 1, - I965_SURFACEFORMAT_R16_UINT, - VP9_BTI_MBENC_CURR_UV_G9); - - if (mbenc_param->segmentation_enabled) - { - gen9_add_buffer_2d_gpe_surface(ctx, - gpe_context, - mbenc_param->pres_segmentation_map, - 1, - I965_SURFACEFORMAT_R8_UNORM, - VP9_BTI_MBENC_SEGMENTATION_MAP_G9); - - } - - res_size = 16 * mbenc_param->frame_width_in_mb * - mbenc_param->frame_height_in_mb * sizeof(unsigned int); - gen9_add_buffer_gpe_surface(ctx, - gpe_context, - mbenc_param->pres_mode_decision, - 0, - res_size / 4, - 0, - VP9_BTI_MBENC_MODE_DECISION_G9); - - res_size = frame_width_in_sb * frame_height_in_sb * 4 * sizeof(unsigned int); - gen9_add_buffer_gpe_surface(ctx, - gpe_context, - mbenc_param->pres_mb_code_surface, - 0, - res_size / 4, - 0, - VP9_BTI_MBENC_PAK_DATA_G9); - - // CU Record - res_size = frame_width_in_sb * frame_height_in_sb * - 64 * 16 * sizeof(unsigned int); - - gen9_add_buffer_gpe_surface(ctx, - gpe_context, - mbenc_param->pres_mb_code_surface, - 0, - res_size / 4, - mbenc_param->mb_data_offset, - VP9_BTI_MBENC_CU_RECORDS_G9); - } - default: - break; - } - - return; -} - -static VAStatus -gen9_vp9_mbenc_kernel(VADriverContextP ctx, - struct encode_state *encode_state, - struct intel_encoder_context *encoder_context, - int media_function) -{ - struct gen9_encoder_context_vp9 *vme_context = encoder_context->vme_context; - struct i965_gpe_context *gpe_context, *tx_gpe_context; - struct gpe_media_object_walker_parameter media_object_walker_param; - struct vp9_encoder_kernel_walker_parameter kernel_walker_param; - unsigned int resolution_x, resolution_y; - struct gen9_vp9_state *vp9_state; - VAEncPictureParameterBufferVP9 *pic_param; - struct gen9_vp9_mbenc_curbe_param curbe_param; - struct gen9_vp9_mbenc_surface_param surface_param; - VAStatus va_status = VA_STATUS_SUCCESS; - int mbenc_gpe_index = 0; - struct object_surface *obj_surface; - struct gen9_surface_vp9 *vp9_priv_surface; - - vp9_state = (struct gen9_vp9_state *) encoder_context->enc_priv_state; - - if (!vp9_state || !vp9_state->pic_param) - return VA_STATUS_ERROR_ENCODING_ERROR; - - pic_param = vp9_state->pic_param; - - switch (media_function) - { - case VP9_MEDIA_STATE_MBENC_I_32x32: - mbenc_gpe_index = VP9_MBENC_IDX_KEY_32x32; - break; - - case VP9_MEDIA_STATE_MBENC_I_16x16: - mbenc_gpe_index = VP9_MBENC_IDX_KEY_16x16; - break; - - case VP9_MEDIA_STATE_MBENC_P: - mbenc_gpe_index = VP9_MBENC_IDX_INTER; - break; - - case VP9_MEDIA_STATE_MBENC_TX: - mbenc_gpe_index = VP9_MBENC_IDX_TX; - break; - - default: - va_status = VA_STATUS_ERROR_OPERATION_FAILED; - return va_status; - } - - gpe_context = &(vme_context->mbenc_context.gpe_contexts[mbenc_gpe_index]); - tx_gpe_context = &(vme_context->mbenc_context.gpe_contexts[VP9_MBENC_IDX_TX]); - - gen9_gpe_reset_binding_table(ctx, gpe_context); - - // Set curbe - if (!vp9_state->mbenc_curbe_set_in_brc_update) - { - if(media_function == VP9_MEDIA_STATE_MBENC_I_32x32 || - media_function == VP9_MEDIA_STATE_MBENC_P) - { - memset(&curbe_param, 0, sizeof(curbe_param)); - curbe_param.ppic_param = vp9_state->pic_param; - curbe_param.pseq_param = vp9_state->seq_param; - curbe_param.psegment_param = vp9_state->segment_param; - curbe_param.frame_width_in_mb = vp9_state->frame_width_in_mb; - curbe_param.frame_height_in_mb = vp9_state->frame_height_in_mb; - curbe_param.last_ref_obj = vp9_state->last_ref_obj; - curbe_param.golden_ref_obj = vp9_state->golden_ref_obj; - curbe_param.alt_ref_obj = vp9_state->alt_ref_obj; - curbe_param.hme_enabled = vp9_state->hme_enabled; - curbe_param.ref_frame_flag = vp9_state->ref_frame_flag; - curbe_param.picture_coding_type = vp9_state->picture_coding_type; - curbe_param.media_state_type = media_function; - curbe_param.mbenc_curbe_set_in_brc_update = vp9_state->mbenc_curbe_set_in_brc_update; - - vme_context->pfn_set_curbe_mbenc(ctx, - encode_state, - gpe_context, - encoder_context, - &curbe_param); - } - } - - memset(&surface_param, 0, sizeof(surface_param)); - surface_param.media_state_type = media_function; - surface_param.picture_coding_type = vp9_state->picture_coding_type; - surface_param.frame_width = vp9_state->frame_width; - surface_param.frame_height = vp9_state->frame_height; - surface_param.frame_width_in_mb = vp9_state->frame_width_in_mb; - surface_param.frame_height_in_mb = vp9_state->frame_height_in_mb; - surface_param.hme_enabled = vp9_state->hme_enabled; - surface_param.segmentation_enabled = pic_param->pic_flags.bits.segmentation_enabled; - surface_param.pres_segmentation_map = &vme_context->mb_segment_map_surface; - surface_param.ps4x_memv_data_buffer = &vme_context->s4x_memv_data_buffer; - surface_param.ps4x_memv_distortion_buffer = &vme_context->s4x_memv_distortion_buffer; - surface_param.pres_mode_decision = - &vme_context->res_mode_decision[vp9_state->curr_mode_decision_index]; - surface_param.pres_mode_decision_prev = - &vme_context->res_mode_decision[!vp9_state->curr_mode_decision_index]; - surface_param.pres_output_16x16_inter_modes = &vme_context->res_output_16x16_inter_modes; - surface_param.pres_mbenc_curbe_buffer = NULL; - surface_param.last_ref_obj = vp9_state->last_ref_obj; - surface_param.golden_ref_obj = vp9_state->golden_ref_obj; - surface_param.alt_ref_obj = vp9_state->alt_ref_obj; - surface_param.pres_mb_code_surface = &vme_context->res_mb_code_surface; - surface_param.gpe_context_tx = tx_gpe_context; - surface_param.mb_data_offset = vp9_state->mb_data_offset; - - obj_surface = encode_state->reconstructed_object; - vp9_priv_surface = (struct gen9_surface_vp9 *)(obj_surface->private_data); - if (vp9_state->dys_in_use && - (pic_param->frame_width_src != pic_param->frame_height_dst || - pic_param->frame_height_src != pic_param->frame_height_dst)) { - obj_surface = vp9_priv_surface->dys_surface_obj; - } else - obj_surface = encode_state->input_yuv_object; - - surface_param.curr_frame_obj = obj_surface; - - vme_context->pfn_send_mbenc_surface(ctx, - encode_state, - gpe_context, - encoder_context, - &surface_param); - - if (media_function == VP9_MEDIA_STATE_MBENC_I_32x32) { - resolution_x = ALIGN(vp9_state->frame_width, 32) / 32; - resolution_y = ALIGN(vp9_state->frame_height, 32) / 32; - } else { - resolution_x = ALIGN(vp9_state->frame_width, 16) / 16; - resolution_y = ALIGN(vp9_state->frame_height, 16) / 16; - } - - memset(&kernel_walker_param, 0, sizeof(kernel_walker_param)); - kernel_walker_param.resolution_x = resolution_x; - kernel_walker_param.resolution_y = resolution_y; - - if (media_function == VP9_MEDIA_STATE_MBENC_P || - media_function == VP9_MEDIA_STATE_MBENC_I_16x16) { - kernel_walker_param.use_scoreboard = 1; - kernel_walker_param.no_dependency = 0; - kernel_walker_param.walker_degree = VP9_45Z_DEGREE; - } else { - kernel_walker_param.use_scoreboard = 0; - kernel_walker_param.no_dependency = 1; - } - - gen8_gpe_setup_interface_data(ctx, gpe_context); - - gen9_init_media_object_walker_parameter(encoder_context, &kernel_walker_param, &media_object_walker_param); - - gen9_run_kernel_media_object_walker(ctx, encoder_context, - gpe_context, - media_function, - &media_object_walker_param); - return va_status; -} - -static void -gen9_init_gpe_context_vp9(struct i965_gpe_context *gpe_context, - struct vp9_encoder_kernel_parameter *kernel_param) -{ - gpe_context->curbe.length = kernel_param->curbe_size; // in bytes - - gpe_context->curbe_size = ALIGN(kernel_param->curbe_size, 64); - - gpe_context->sampler_size = 0; - if (kernel_param->sampler_size) { - gpe_context->sampler_size = ALIGN(kernel_param->sampler_size, 64); - } - - gpe_context->idrt.entry_size = ALIGN(sizeof(struct gen8_interface_descriptor_data), 64); // 8 dws, 1 register - gpe_context->idrt.max_entries = NUM_KERNELS_PER_GPE_CONTEXT; - gpe_context->idrt_size = ALIGN(sizeof(struct gen8_interface_descriptor_data), 64) * - NUM_KERNELS_PER_GPE_CONTEXT; - - gpe_context->surface_state_binding_table.max_entries = MAX_VP9_ENCODER_SURFACES; - gpe_context->surface_state_binding_table.binding_table_offset = 0; - gpe_context->surface_state_binding_table.surface_state_offset = ALIGN(MAX_VP9_ENCODER_SURFACES * 4, 64); - gpe_context->surface_state_binding_table.length = ALIGN(MAX_VP9_ENCODER_SURFACES * 4, 64) + ALIGN(MAX_VP9_ENCODER_SURFACES * SURFACE_STATE_PADDED_SIZE_GEN9, 64); - - gpe_context->vfe_state.max_num_threads = 112; // 16 EU * 7 threads - gpe_context->vfe_state.curbe_allocation_size = MAX(1, ALIGN(gpe_context->curbe.length, 32) >> 5); // in registers - gpe_context->vfe_state.urb_entry_size = MAX(1, ALIGN(kernel_param->inline_data_size, 32) >> 5); // in registers - gpe_context->vfe_state.num_urb_entries = (MAX_URB_SIZE - - gpe_context->vfe_state.curbe_allocation_size - - ((gpe_context->idrt.entry_size >> 5) * - gpe_context->idrt.max_entries)) / gpe_context->vfe_state.urb_entry_size; - gpe_context->vfe_state.num_urb_entries = CLAMP(1, 127, gpe_context->vfe_state.num_urb_entries); - gpe_context->vfe_state.gpgpu_mode = 0; -} - -static void -gen9_init_vfe_scoreboard_vp9(struct i965_gpe_context *gpe_context, - struct vp9_encoder_scoreboard_parameter *scoreboard_param) -{ - gpe_context->vfe_desc5.scoreboard0.mask = scoreboard_param->mask; - gpe_context->vfe_desc5.scoreboard0.type = scoreboard_param->type; - gpe_context->vfe_desc5.scoreboard0.enable = scoreboard_param->enable; - - if (scoreboard_param->walkpat_flag) { - gpe_context->vfe_desc5.scoreboard0.mask = 0x0F; - gpe_context->vfe_desc5.scoreboard0.type = 1; - - gpe_context->vfe_desc6.scoreboard1.delta_x0 = 0x0; - gpe_context->vfe_desc6.scoreboard1.delta_y0 = 0xF; - - gpe_context->vfe_desc6.scoreboard1.delta_x1 = 0x0; - gpe_context->vfe_desc6.scoreboard1.delta_y1 = 0xE; - - gpe_context->vfe_desc6.scoreboard1.delta_x2 = 0xF; - gpe_context->vfe_desc6.scoreboard1.delta_y2 = 0x3; - - gpe_context->vfe_desc6.scoreboard1.delta_x3 = 0xF; - gpe_context->vfe_desc6.scoreboard1.delta_y3 = 0x1; - } else { - // Scoreboard 0 - gpe_context->vfe_desc6.scoreboard1.delta_x0 = 0xF; - gpe_context->vfe_desc6.scoreboard1.delta_y0 = 0x0; - - // Scoreboard 1 - gpe_context->vfe_desc6.scoreboard1.delta_x1 = 0x0; - gpe_context->vfe_desc6.scoreboard1.delta_y1 = 0xF; - - // Scoreboard 2 - gpe_context->vfe_desc6.scoreboard1.delta_x2 = 0x1; - gpe_context->vfe_desc6.scoreboard1.delta_y2 = 0xF; - - // Scoreboard 3 - gpe_context->vfe_desc6.scoreboard1.delta_x3 = 0xF; - gpe_context->vfe_desc6.scoreboard1.delta_y3 = 0xF; - - // Scoreboard 4 - gpe_context->vfe_desc7.scoreboard2.delta_x4 = 0xF; - gpe_context->vfe_desc7.scoreboard2.delta_y4 = 0x1; - - // Scoreboard 5 - gpe_context->vfe_desc7.scoreboard2.delta_x5 = 0x0; - gpe_context->vfe_desc7.scoreboard2.delta_y5 = 0xE; - - // Scoreboard 6 - gpe_context->vfe_desc7.scoreboard2.delta_x6 = 0x1; - gpe_context->vfe_desc7.scoreboard2.delta_y6 = 0xE; - - // Scoreboard 7 - gpe_context->vfe_desc7.scoreboard2.delta_x6 = 0xF; - gpe_context->vfe_desc7.scoreboard2.delta_y6 = 0xE; - } -} - -#define VP9_MI_BLOCK_MASK 0x07 -#define VP9_VME_REF_WIN 48 - -static VAStatus -gen9_encode_vp9_check_parameter(VADriverContextP ctx, - struct encode_state *encode_state, - struct intel_encoder_context *encoder_context) -{ - struct i965_driver_data *i965 = i965_driver_data(ctx); - struct gen9_vp9_state *vp9_state; - VAEncPictureParameterBufferVP9 *pic_param; - VAEncMiscParameterTypeVP9PerSegmantParam *seg_param; - VAEncSequenceParameterBufferVP9 *seq_param; - struct object_surface *obj_surface; - struct object_buffer *obj_buffer; - struct gen9_surface_vp9 *vp9_priv_surface; - - vp9_state = (struct gen9_vp9_state *) encoder_context->enc_priv_state; - - if (!encode_state->pic_param_ext || - !encode_state->pic_param_ext->buffer) { - return VA_STATUS_ERROR_INVALID_PARAMETER; - } - pic_param = (VAEncPictureParameterBufferVP9 *)encode_state->pic_param_ext->buffer; - - if (pic_param->frame_width_src & VP9_MI_BLOCK_MASK || - pic_param->frame_height_src & VP9_MI_BLOCK_MASK || - pic_param->frame_width_dst & VP9_MI_BLOCK_MASK || - pic_param->frame_height_dst & VP9_MI_BLOCK_MASK) - return VA_STATUS_ERROR_INVALID_PARAMETER; - - obj_buffer = BUFFER(pic_param->coded_buf); - - if (!obj_buffer || - !obj_buffer->buffer_store || - !obj_buffer->buffer_store->bo) - return VA_STATUS_ERROR_INVALID_PARAMETER; - - encode_state->coded_buf_object = obj_buffer; - - vp9_state->status_buffer.bo = obj_buffer->buffer_store->bo; - - encode_state->reconstructed_object = SURFACE(pic_param->reconstructed_frame); - encode_state->input_yuv_object = SURFACE(encode_state->current_render_target); - - if (!encode_state->reconstructed_object || - !encode_state->input_yuv_object) - return VA_STATUS_ERROR_INVALID_PARAMETER; - - vp9_state->curr_frame = pic_param->reconstructed_frame; - vp9_state->ref_frame_flag = 0; - if (pic_param->pic_flags.bits.frame_type == KEY_FRAME || - pic_param->pic_flags.bits.intra_only) { - /* this will be regarded as I-frame type */ - vp9_state->picture_coding_type = 0; - vp9_state->last_ref_obj = NULL; - vp9_state->golden_ref_obj = NULL; - vp9_state->alt_ref_obj = NULL; - } else { - vp9_state->picture_coding_type = 1; - vp9_state->ref_frame_flag = pic_param->ref_flags.bits.ref_frame_ctrl_l0 | - pic_param->ref_flags.bits.ref_frame_ctrl_l1; - - obj_surface = SURFACE(pic_param->reference_frames[pic_param->ref_flags.bits.ref_last_idx]); - vp9_state->last_ref_obj = obj_surface; - if (!obj_surface || - !obj_surface->bo || - !obj_surface->private_data) { - vp9_state->last_ref_obj = NULL; - vp9_state->ref_frame_flag &= ~(VP9_LAST_REF); - } - - obj_surface = SURFACE(pic_param->reference_frames[pic_param->ref_flags.bits.ref_gf_idx]); - vp9_state->golden_ref_obj = obj_surface; - if (!obj_surface || - !obj_surface->bo || - !obj_surface->private_data) { - vp9_state->golden_ref_obj = NULL; - vp9_state->ref_frame_flag &= ~(VP9_GOLDEN_REF); - } - - obj_surface = SURFACE(pic_param->reference_frames[pic_param->ref_flags.bits.ref_arf_idx]); - vp9_state->alt_ref_obj = obj_surface; - if (!obj_surface || - !obj_surface->bo || - !obj_surface->private_data) { - vp9_state->alt_ref_obj = NULL; - vp9_state->ref_frame_flag &= ~(VP9_ALT_REF); - } - - /* remove the duplicated flag and ref frame list */ - if (vp9_state->ref_frame_flag & VP9_LAST_REF) { - if (pic_param->reference_frames[pic_param->ref_flags.bits.ref_last_idx] == - pic_param->reference_frames[pic_param->ref_flags.bits.ref_gf_idx]) { - vp9_state->ref_frame_flag &= ~(VP9_GOLDEN_REF); - vp9_state->golden_ref_obj = NULL; - } - - if (pic_param->reference_frames[pic_param->ref_flags.bits.ref_last_idx] == - pic_param->reference_frames[pic_param->ref_flags.bits.ref_arf_idx]) { - vp9_state->ref_frame_flag &= ~(VP9_ALT_REF); - vp9_state->alt_ref_obj = NULL; - } - } - - if (vp9_state->ref_frame_flag & VP9_GOLDEN_REF) { - if (pic_param->reference_frames[pic_param->ref_flags.bits.ref_gf_idx] == - pic_param->reference_frames[pic_param->ref_flags.bits.ref_arf_idx]) { - vp9_state->ref_frame_flag &= ~(VP9_ALT_REF); - vp9_state->alt_ref_obj = NULL; - } - } - - if (vp9_state->ref_frame_flag == 0) - return VA_STATUS_ERROR_INVALID_PARAMETER; - } - - seg_param = NULL; - if (pic_param->pic_flags.bits.segmentation_enabled) { - if (!encode_state->q_matrix || - !encode_state->q_matrix->buffer) { - return VA_STATUS_ERROR_INVALID_PARAMETER; - } - seg_param = (VAEncMiscParameterTypeVP9PerSegmantParam *) - encode_state->q_matrix->buffer; - } - - seq_param = NULL; - if (encode_state->seq_param_ext && - encode_state->seq_param_ext->buffer) - seq_param = (VAEncSequenceParameterBufferVP9 *)encode_state->seq_param_ext->buffer; - - if (!seq_param) { - seq_param = &vp9_state->bogus_seq_param; - } - - vp9_state->pic_param = pic_param; - vp9_state->segment_param = seg_param; - vp9_state->seq_param = seq_param; - - obj_surface = encode_state->reconstructed_object; - if (pic_param->frame_width_dst > obj_surface->orig_width || - pic_param->frame_height_dst > obj_surface->orig_height) - return VA_STATUS_ERROR_INVALID_SURFACE; - - if (!vp9_state->dys_enabled && - ((pic_param->frame_width_src != pic_param->frame_width_dst) || - (pic_param->frame_height_src != pic_param->frame_height_dst))) - return VA_STATUS_ERROR_UNIMPLEMENTED; - - if (vp9_state->brc_enabled) { - if (vp9_state->brc_flag_check & VP9_BRC_FAILURE) { - WARN_ONCE("Rate control misc_parameter is required for BRC\n"); - return VA_STATUS_ERROR_INVALID_PARAMETER; - } - - if (vp9_state->first_frame) { - unsigned int brc_flag; - VAEncMiscParameterBuffer *misc_param; - - brc_flag = VP9_BRC_SEQ | VP9_BRC_RC; - if ((vp9_state->brc_flag_check & brc_flag) != brc_flag) { - WARN_ONCE("SPS/RC misc is required for BRC\n"); - return VA_STATUS_ERROR_INVALID_PARAMETER; - } - - /* check the corresponding BRC parameter for CBR and VBR */ - if (encoder_context->rate_control_mode == VA_RC_CBR) { - vp9_state->target_bit_rate = seq_param->bits_per_second; - vp9_state->gop_size = seq_param->intra_period; - - if (vp9_state->brc_flag_check & VP9_BRC_HRD) { - VAEncMiscParameterHRD *misc_param_hrd; - - misc_param = (VAEncMiscParameterBuffer *) - encode_state->misc_param[VAEncMiscParameterTypeHRD]->buffer; - misc_param_hrd = (VAEncMiscParameterHRD *)misc_param->data; - - vp9_state->init_vbv_buffer_fullness_in_bit = misc_param_hrd->initial_buffer_fullness; - vp9_state->vbv_buffer_size_in_bit = misc_param_hrd->buffer_size; - } - - if (vp9_state->brc_flag_check & VP9_BRC_FR) { - VAEncMiscParameterFrameRate *misc_param_fr; - - misc_param = (VAEncMiscParameterBuffer *) - encode_state->misc_param[VAEncMiscParameterTypeFrameRate]->buffer; - misc_param_fr = (VAEncMiscParameterFrameRate *)misc_param->data; - - vp9_state->frame_rate = misc_param_fr->framerate; - } else { - /* Assign the default frame rate */ - vp9_state->frame_rate = 30; - } - - /* RC misc will override HRD parameter */ - if (vp9_state->brc_flag_check & VP9_BRC_RC) { - VAEncMiscParameterRateControl *misc_param_rc; - - misc_param = (VAEncMiscParameterBuffer *) - encode_state->misc_param[VAEncMiscParameterTypeRateControl]->buffer; - misc_param_rc = (VAEncMiscParameterRateControl *)misc_param->data; - - vp9_state->target_bit_rate = misc_param_rc->bits_per_second; - vp9_state->vbv_buffer_size_in_bit = (misc_param_rc->bits_per_second / 1000) * - misc_param_rc->window_size; - vp9_state->init_vbv_buffer_fullness_in_bit = vp9_state->vbv_buffer_size_in_bit / 2; - vp9_state->window_size = misc_param_rc->window_size; - } - vp9_state->max_bit_rate = vp9_state->target_bit_rate; - vp9_state->min_bit_rate = vp9_state->target_bit_rate; - } else { - /* VBR mode */ - brc_flag = VP9_BRC_SEQ | VP9_BRC_RC; - vp9_state->target_bit_rate = seq_param->bits_per_second; - vp9_state->gop_size = seq_param->intra_period; - - if (vp9_state->brc_flag_check & VP9_BRC_FR) { - VAEncMiscParameterFrameRate *misc_param_fr; - - misc_param = (VAEncMiscParameterBuffer *) - encode_state->misc_param[VAEncMiscParameterTypeFrameRate]->buffer; - misc_param_fr = (VAEncMiscParameterFrameRate *)misc_param->data; - - vp9_state->frame_rate = misc_param_fr->framerate; - } else { - /* Assign the default frame rate */ - vp9_state->frame_rate = 30; - } - - if (vp9_state->brc_flag_check & VP9_BRC_RC) { - VAEncMiscParameterRateControl *misc_param_rc; - - misc_param = (VAEncMiscParameterBuffer *) - encode_state->misc_param[VAEncMiscParameterTypeRateControl]->buffer; - misc_param_rc = (VAEncMiscParameterRateControl *)misc_param->data; - - vp9_state->max_bit_rate = misc_param_rc->bits_per_second; - vp9_state->vbv_buffer_size_in_bit = (misc_param_rc->bits_per_second / 1000) * - misc_param_rc->window_size; - vp9_state->init_vbv_buffer_fullness_in_bit = vp9_state->vbv_buffer_size_in_bit / 2; - vp9_state->target_bit_rate = (misc_param_rc->bits_per_second / 100) * - misc_param_rc->target_percentage; - vp9_state->min_bit_rate = (misc_param_rc->bits_per_second / 100) * - (2 * misc_param_rc->target_percentage - 100); - vp9_state->target_percentage = misc_param_rc->target_percentage; - vp9_state->window_size = misc_param_rc->window_size; - } - } - } - else if (vp9_state->picture_coding_type == KEY_FRAME){ - VAEncMiscParameterBuffer *misc_param; - /* update the BRC parameter only when it is key-frame */ - /* If the parameter related with RC is changed. Reset BRC */ - if (vp9_state->brc_flag_check & VP9_BRC_FR) { - VAEncMiscParameterFrameRate *misc_param_fr; - - misc_param = (VAEncMiscParameterBuffer *) - encode_state->misc_param[VAEncMiscParameterTypeFrameRate]->buffer; - misc_param_fr = (VAEncMiscParameterFrameRate *)misc_param->data; - - if (vp9_state->frame_rate != misc_param_fr->framerate) { - vp9_state->brc_reset = 1; - vp9_state->frame_rate = misc_param_fr->framerate; - } - } - - /* check the GOP size. And bit_per_second in SPS is ignored */ - if (vp9_state->brc_flag_check & VP9_BRC_SEQ) { - if (vp9_state->gop_size != seq_param->intra_period) { - vp9_state->brc_reset = 1; - vp9_state->gop_size = seq_param->intra_period; - } - } - - /* update the bit_per_second */ - if (vp9_state->brc_flag_check & VP9_BRC_RC) { - VAEncMiscParameterRateControl *misc_param_rc; - - misc_param = (VAEncMiscParameterBuffer *) - encode_state->misc_param[VAEncMiscParameterTypeRateControl]->buffer; - misc_param_rc = (VAEncMiscParameterRateControl *)misc_param->data; - - if (encoder_context->rate_control_mode == VA_RC_CBR) { - if (vp9_state->target_bit_rate != misc_param_rc->bits_per_second || - vp9_state->window_size != misc_param_rc->window_size) { - vp9_state->target_bit_rate = misc_param_rc->bits_per_second; - vp9_state->vbv_buffer_size_in_bit = (misc_param_rc->bits_per_second / 1000) * - misc_param_rc->window_size; - vp9_state->init_vbv_buffer_fullness_in_bit = vp9_state->vbv_buffer_size_in_bit * 2; - vp9_state->window_size = misc_param_rc->window_size; - vp9_state->max_bit_rate = vp9_state->target_bit_rate; - vp9_state->min_bit_rate = vp9_state->target_bit_rate; - vp9_state->brc_reset = 1; - } - } else { - /* VBR mode */ - if (vp9_state->max_bit_rate != misc_param_rc->bits_per_second || - vp9_state->target_percentage != misc_param_rc->target_percentage) { - - vp9_state->target_bit_rate = (misc_param_rc->bits_per_second / 100) * - misc_param_rc->target_percentage; - vp9_state->min_bit_rate = (misc_param_rc->bits_per_second / 100) * - (2 * misc_param_rc->target_percentage - 100); - vp9_state->max_bit_rate = misc_param_rc->bits_per_second; - vp9_state->vbv_buffer_size_in_bit = (misc_param_rc->bits_per_second / 1000) * - misc_param_rc->window_size; - vp9_state->init_vbv_buffer_fullness_in_bit = vp9_state->vbv_buffer_size_in_bit / 2; - vp9_state->target_percentage = misc_param_rc->target_percentage; - vp9_state->window_size = misc_param_rc->window_size; - vp9_state->brc_reset = 1; - } - } - } - } - } - - vp9_state->frame_width = pic_param->frame_width_dst; - vp9_state->frame_height = pic_param->frame_height_dst; - - vp9_state->frame_width_4x = ALIGN(vp9_state->frame_width / 4, 16); - vp9_state->frame_height_4x = ALIGN(vp9_state->frame_height / 4, 16); - - vp9_state->frame_width_16x = ALIGN(vp9_state->frame_width / 16, 16); - vp9_state->frame_height_16x = ALIGN(vp9_state->frame_height / 16, 16); - - vp9_state->frame_width_in_mb = ALIGN(vp9_state->frame_width, 16) / 16; - vp9_state->frame_height_in_mb = ALIGN(vp9_state->frame_height, 16) / 16; - - vp9_state->downscaled_width_4x_in_mb = vp9_state->frame_width_4x / 16; - vp9_state->downscaled_height_4x_in_mb = vp9_state->frame_height_4x / 16; - vp9_state->downscaled_width_16x_in_mb = vp9_state->frame_width_16x / 16; - vp9_state->downscaled_height_16x_in_mb = vp9_state->frame_height_16x / 16; - - vp9_state->dys_in_use = 0; - if(pic_param->frame_width_src != pic_param->frame_width_dst || - pic_param->frame_height_src != pic_param->frame_height_dst) - vp9_state->dys_in_use = 1; - vp9_state->dys_ref_frame_flag = 0; - /* check the dys setting. The dys is supported by default. */ - if (pic_param->pic_flags.bits.frame_type != KEY_FRAME && - !pic_param->pic_flags.bits.intra_only) { - vp9_state->dys_ref_frame_flag = vp9_state->ref_frame_flag; - - if ((vp9_state->ref_frame_flag & VP9_LAST_REF) && - vp9_state->last_ref_obj) { - obj_surface = vp9_state->last_ref_obj; - vp9_priv_surface = (struct gen9_surface_vp9 *)(obj_surface->private_data); - - if (vp9_state->frame_width == vp9_priv_surface->frame_width && - vp9_state->frame_height == vp9_priv_surface->frame_height) - vp9_state->dys_ref_frame_flag &= ~(VP9_LAST_REF); - } - if ((vp9_state->ref_frame_flag & VP9_GOLDEN_REF) && - vp9_state->golden_ref_obj) { - obj_surface = vp9_state->golden_ref_obj; - vp9_priv_surface = (struct gen9_surface_vp9 *)(obj_surface->private_data); - - if (vp9_state->frame_width == vp9_priv_surface->frame_width && - vp9_state->frame_height == vp9_priv_surface->frame_height) - vp9_state->dys_ref_frame_flag &= ~(VP9_GOLDEN_REF); - } - if ((vp9_state->ref_frame_flag & VP9_ALT_REF) && - vp9_state->alt_ref_obj) { - obj_surface = vp9_state->alt_ref_obj; - vp9_priv_surface = (struct gen9_surface_vp9 *)(obj_surface->private_data); - - if (vp9_state->frame_width == vp9_priv_surface->frame_width && - vp9_state->frame_height == vp9_priv_surface->frame_height) - vp9_state->dys_ref_frame_flag &= ~(VP9_ALT_REF); - } - if (vp9_state->dys_ref_frame_flag) - vp9_state->dys_in_use = 1; - } - - if (vp9_state->hme_supported) { - vp9_state->hme_enabled = 1; - } else { - vp9_state->hme_enabled = 0; - } - - if (vp9_state->b16xme_supported) { - vp9_state->b16xme_enabled = 1; - } else { - vp9_state->b16xme_enabled = 0; - } - - /* disable HME/16xME if the size is too small */ - if (vp9_state->frame_width_4x <= VP9_VME_REF_WIN || - vp9_state->frame_height_4x <= VP9_VME_REF_WIN) { - vp9_state->hme_enabled = 0; - vp9_state->b16xme_enabled = 0; - } - - if (vp9_state->frame_width_16x < VP9_VME_REF_WIN || - vp9_state->frame_height_16x < VP9_VME_REF_WIN) - vp9_state->b16xme_enabled = 0; - - if (pic_param->pic_flags.bits.frame_type == HCP_VP9_KEY_FRAME || - pic_param->pic_flags.bits.intra_only) { - vp9_state->hme_enabled = 0; - vp9_state->b16xme_enabled = 0; - } - - vp9_state->mbenc_keyframe_dist_enabled = 0; - if ((vp9_state->picture_coding_type == KEY_FRAME) && - vp9_state->brc_distortion_buffer_supported) - vp9_state->mbenc_keyframe_dist_enabled = 1; - - return VA_STATUS_SUCCESS; -} - -static VAStatus -gen9_vme_gpe_kernel_prepare_vp9(VADriverContextP ctx, - struct encode_state *encode_state, - struct intel_encoder_context *encoder_context) -{ - struct gen9_encoder_context_vp9 *vme_context = encoder_context->vme_context; - struct vp9_surface_param surface_param; - struct gen9_vp9_state *vp9_state; - VAEncPictureParameterBufferVP9 *pic_param; - struct object_surface *obj_surface; - struct gen9_surface_vp9 *vp9_surface; - int driver_header_flag = 0; - VAStatus va_status; - - vp9_state = (struct gen9_vp9_state *) encoder_context->enc_priv_state; - - if (!vp9_state || !vp9_state->pic_param) - return VA_STATUS_ERROR_INVALID_PARAMETER; - - pic_param = vp9_state->pic_param; - - /* this is to check whether the driver should generate the uncompressed header */ - driver_header_flag = 1; - if (encode_state->packed_header_data_ext && - encode_state->packed_header_data_ext[0] && - pic_param->bit_offset_first_partition_size) { - VAEncPackedHeaderParameterBuffer *param = NULL; - - param = (VAEncPackedHeaderParameterBuffer *)encode_state->packed_header_params_ext[0]->buffer; - - if (param->type == VAEncPackedHeaderRawData) { - char *header_data; - unsigned int length_in_bits; - - header_data = (char *)encode_state->packed_header_data_ext[0]->buffer; - length_in_bits = param->bit_length; - driver_header_flag = 0; - - vp9_state->frame_header.bit_offset_first_partition_size = - pic_param->bit_offset_first_partition_size; - vp9_state->header_length = ALIGN(length_in_bits, 8) >> 3; - vp9_state->alias_insert_data = header_data; - - vp9_state->frame_header.bit_offset_ref_lf_delta = pic_param->bit_offset_ref_lf_delta; - vp9_state->frame_header.bit_offset_mode_lf_delta = pic_param->bit_offset_mode_lf_delta; - vp9_state->frame_header.bit_offset_lf_level = pic_param->bit_offset_lf_level; - vp9_state->frame_header.bit_offset_qindex = pic_param->bit_offset_qindex; - vp9_state->frame_header.bit_offset_segmentation = pic_param->bit_offset_segmentation; - vp9_state->frame_header.bit_size_segmentation = pic_param->bit_size_segmentation; - } - } - - if (driver_header_flag) { - memset(&vp9_state->frame_header, 0, sizeof(vp9_state->frame_header)); - intel_write_uncompressed_header(encode_state, - VAProfileVP9Profile0, - vme_context->frame_header_data, - &vp9_state->header_length, - &vp9_state->frame_header); - vp9_state->alias_insert_data = vme_context->frame_header_data; - } - - va_status = i965_check_alloc_surface_bo(ctx, encode_state->input_yuv_object, - 1, VA_FOURCC_NV12, SUBSAMPLE_YUV420); - if (va_status != VA_STATUS_SUCCESS) - return va_status; - - va_status = i965_check_alloc_surface_bo(ctx, encode_state->reconstructed_object, - 1, VA_FOURCC_NV12, SUBSAMPLE_YUV420); - - if (va_status != VA_STATUS_SUCCESS) - return va_status; - - surface_param.frame_width = vp9_state->frame_width; - surface_param.frame_height = vp9_state->frame_height; - va_status = gen9_vp9_init_check_surfaces(ctx, - encode_state->reconstructed_object, - &surface_param); - - { - vp9_surface = (struct gen9_surface_vp9*)encode_state->reconstructed_object; - - vp9_surface->qp_value = pic_param->luma_ac_qindex + pic_param->luma_dc_qindex_delta; - } - if (vp9_state->dys_in_use && - (pic_param->frame_width_src != pic_param->frame_width_dst || - pic_param->frame_height_src != pic_param->frame_height_dst)) { - surface_param.frame_width = pic_param->frame_width_dst; - surface_param.frame_height = pic_param->frame_height_dst; - va_status = gen9_vp9_check_dys_surfaces(ctx, - encode_state->reconstructed_object, - &surface_param); - - if (va_status) - return va_status; - } - - if (vp9_state->dys_ref_frame_flag) { - if ((vp9_state->dys_ref_frame_flag & VP9_LAST_REF) && - vp9_state->last_ref_obj) { - obj_surface = vp9_state->last_ref_obj; - surface_param.frame_width = vp9_state->frame_width; - surface_param.frame_height = vp9_state->frame_height; - va_status = gen9_vp9_check_dys_surfaces(ctx, - obj_surface, - &surface_param); - - if (va_status) - return va_status; - } - if ((vp9_state->dys_ref_frame_flag & VP9_GOLDEN_REF) && - vp9_state->golden_ref_obj) { - obj_surface = vp9_state->golden_ref_obj; - surface_param.frame_width = vp9_state->frame_width; - surface_param.frame_height = vp9_state->frame_height; - va_status = gen9_vp9_check_dys_surfaces(ctx, - obj_surface, - &surface_param); - - if (va_status) - return va_status; - } - if ((vp9_state->dys_ref_frame_flag & VP9_ALT_REF) && - vp9_state->alt_ref_obj) { - obj_surface = vp9_state->alt_ref_obj; - surface_param.frame_width = vp9_state->frame_width; - surface_param.frame_height = vp9_state->frame_height; - va_status = gen9_vp9_check_dys_surfaces(ctx, - obj_surface, - &surface_param); - - if (va_status) - return va_status; - } - } - - if (va_status != VA_STATUS_SUCCESS) - return va_status; - /* check the corresponding ref_frame_flag && dys_ref_frame_flag */ - - return VA_STATUS_SUCCESS; -} - -static VAStatus -gen9_vme_gpe_kernel_init_vp9(VADriverContextP ctx, - struct encode_state *encode_state, - struct intel_encoder_context *encoder_context) -{ - struct i965_driver_data *i965 = i965_driver_data(ctx); - struct gen9_encoder_context_vp9 *vme_context = encoder_context->vme_context; - struct vp9_mbenc_context *mbenc_context = &vme_context->mbenc_context; - struct vp9_dys_context *dys_context = &vme_context->dys_context; - struct gpe_dynamic_state_parameter ds_param; - int i; - - /* - * BRC will update MBEnc curbe data buffer, so initialize GPE context for - * MBEnc first - */ - for (i = 0; i < NUM_VP9_MBENC; i++) { - gen8_gpe_context_init(ctx, &mbenc_context->gpe_contexts[i]); - } - - /* - * VP9_MBENC_XXX uses the same dynamic state buffer as they share the same - * curbe_buffer. - */ - ds_param.bo_size = ALIGN(sizeof(vp9_mbenc_curbe_data), 64) + 128 + - ALIGN(sizeof(struct gen8_interface_descriptor_data), 64) * NUM_VP9_MBENC; - mbenc_context->mbenc_bo_dys = dri_bo_alloc(i965->intel.bufmgr, - "mbenc_dys", - ds_param.bo_size, - 0x1000); - mbenc_context->mbenc_bo_size = ds_param.bo_size; - - ds_param.bo = mbenc_context->mbenc_bo_dys; - ds_param.curbe_offset = 0; - ds_param.sampler_offset = ALIGN(sizeof(vp9_mbenc_curbe_data), 64); - for (i = 0; i < NUM_VP9_MBENC; i++) { - ds_param.idrt_offset = ds_param.sampler_offset + 128 + - ALIGN(sizeof(struct gen8_interface_descriptor_data), 64) * i; - - gen8_gpe_context_set_dynamic_buffer(ctx, - &mbenc_context->gpe_contexts[i], - &ds_param); - } - - gen8_gpe_context_init(ctx, &dys_context->gpe_context); - gen9_vp9_dys_set_sampler_state(&dys_context->gpe_context); - - return VA_STATUS_SUCCESS; -} - -static VAStatus -gen9_vme_gpe_kernel_final_vp9(VADriverContextP ctx, - struct encode_state *encode_state, - struct intel_encoder_context *encoder_context) -{ - struct gen9_encoder_context_vp9 *vme_context = encoder_context->vme_context; - struct vp9_mbenc_context *mbenc_context = &vme_context->mbenc_context; - - dri_bo_unreference(mbenc_context->mbenc_bo_dys); - mbenc_context->mbenc_bo_dys = NULL; - - return VA_STATUS_SUCCESS; -} - -static VAStatus -gen9_vme_gpe_kernel_run_vp9(VADriverContextP ctx, - struct encode_state *encode_state, - struct intel_encoder_context *encoder_context) -{ - struct gen9_encoder_context_vp9 *vme_context = encoder_context->vme_context; - struct gen9_vp9_state *vp9_state; - int i; - - vp9_state = (struct gen9_vp9_state *) encoder_context->enc_priv_state; - - if (!vp9_state || !vp9_state->pic_param) - return VA_STATUS_ERROR_INVALID_PARAMETER; - - if (vp9_state->dys_in_use) { - gen9_vp9_run_dys_refframes(ctx, encode_state, encoder_context); - } - - if (vp9_state->brc_enabled && (vp9_state->brc_reset || !vp9_state->brc_inited)) { - gen9_vp9_brc_init_reset_kernel(ctx, encode_state, encoder_context); - } - - if (vp9_state->picture_coding_type == KEY_FRAME) { - for (i = 0; i < 2; i++) - i965_zero_gpe_resource(&vme_context->res_mode_decision[i]); - } - - if (vp9_state->hme_supported) { - gen9_vp9_scaling_kernel(ctx, encode_state, - encoder_context, - 0); - if (vp9_state->b16xme_supported) { - gen9_vp9_scaling_kernel(ctx, encode_state, - encoder_context, - 1); - } - } - - if (vp9_state->picture_coding_type && vp9_state->hme_enabled) { - if (vp9_state->b16xme_enabled) - gen9_vp9_me_kernel(ctx, encode_state, - encoder_context, - 1); - - gen9_vp9_me_kernel(ctx, encode_state, - encoder_context, - 0); - } - - if (vp9_state->brc_enabled) { - if (vp9_state->mbenc_keyframe_dist_enabled) - gen9_vp9_brc_intra_dist_kernel(ctx, - encode_state, - encoder_context); - - gen9_vp9_brc_update_kernel(ctx, encode_state, - encoder_context); - } - - if (vp9_state->picture_coding_type == KEY_FRAME) { - gen9_vp9_mbenc_kernel(ctx, encode_state, - encoder_context, - VP9_MEDIA_STATE_MBENC_I_32x32); - gen9_vp9_mbenc_kernel(ctx, encode_state, - encoder_context, - VP9_MEDIA_STATE_MBENC_I_16x16); - } else { - gen9_vp9_mbenc_kernel(ctx, encode_state, - encoder_context, - VP9_MEDIA_STATE_MBENC_P); - } - - gen9_vp9_mbenc_kernel(ctx, encode_state, - encoder_context, - VP9_MEDIA_STATE_MBENC_TX); - - vp9_state->curr_mode_decision_index ^= 1; - if (vp9_state->brc_enabled) { - vp9_state->brc_inited = 1; - vp9_state->brc_reset = 0; - } - - return VA_STATUS_SUCCESS; -} - -static VAStatus -gen9_vme_pipeline_vp9(VADriverContextP ctx, - VAProfile profile, - struct encode_state *encode_state, - struct intel_encoder_context *encoder_context) -{ - VAStatus va_status; - struct gen9_vp9_state *vp9_state; - - vp9_state = (struct gen9_vp9_state *) encoder_context->enc_priv_state; - - if (!vp9_state) - return VA_STATUS_ERROR_INVALID_CONTEXT; - - va_status = gen9_encode_vp9_check_parameter(ctx, encode_state, encoder_context); - if (va_status != VA_STATUS_SUCCESS) - return va_status; - - va_status = gen9_vp9_allocate_resources(ctx, encode_state, - encoder_context, - !vp9_state->brc_allocated); - - if (va_status != VA_STATUS_SUCCESS) - return va_status; - vp9_state->brc_allocated = 1; - - va_status = gen9_vme_gpe_kernel_prepare_vp9(ctx, encode_state, encoder_context); - - if (va_status != VA_STATUS_SUCCESS) - return va_status; - - va_status = gen9_vme_gpe_kernel_init_vp9(ctx, encode_state, encoder_context); - if (va_status != VA_STATUS_SUCCESS) - return va_status; - - va_status = gen9_vme_gpe_kernel_run_vp9(ctx, encode_state, encoder_context); - if (va_status != VA_STATUS_SUCCESS) - return va_status; - - gen9_vme_gpe_kernel_final_vp9(ctx, encode_state, encoder_context); - - return VA_STATUS_SUCCESS; -} - -static void -gen9_vme_brc_context_destroy_vp9(struct vp9_brc_context *brc_context) -{ - int i; - - for (i = 0; i < NUM_VP9_BRC; i++) - gen8_gpe_context_destroy(&brc_context->gpe_contexts[i]); -} - -static void -gen9_vme_scaling_context_destroy_vp9(struct vp9_scaling_context *scaling_context) -{ - int i; - - for (i = 0; i < NUM_VP9_SCALING; i++) - gen8_gpe_context_destroy(&scaling_context->gpe_contexts[i]); -} - -static void -gen9_vme_me_context_destroy_vp9(struct vp9_me_context *me_context) -{ - gen8_gpe_context_destroy(&me_context->gpe_context); -} - -static void -gen9_vme_mbenc_context_destroy_vp9(struct vp9_mbenc_context *mbenc_context) -{ - int i; - - for (i = 0; i < NUM_VP9_MBENC; i++) - gen8_gpe_context_destroy(&mbenc_context->gpe_contexts[i]); - dri_bo_unreference(mbenc_context->mbenc_bo_dys); - mbenc_context->mbenc_bo_size = 0; -} - -static void -gen9_vme_dys_context_destroy_vp9(struct vp9_dys_context *dys_context) -{ - gen8_gpe_context_destroy(&dys_context->gpe_context); -} - -static void -gen9_vme_kernel_context_destroy_vp9(struct gen9_encoder_context_vp9 *vme_context) -{ - gen9_vp9_free_resources(vme_context); - gen9_vme_scaling_context_destroy_vp9(&vme_context->scaling_context); - gen9_vme_me_context_destroy_vp9(&vme_context->me_context); - gen9_vme_mbenc_context_destroy_vp9(&vme_context->mbenc_context); - gen9_vme_brc_context_destroy_vp9(&vme_context->brc_context); - gen9_vme_dys_context_destroy_vp9(&vme_context->dys_context); - - return; -} - -static void -gen9_vme_context_destroy_vp9(void *context) -{ - struct gen9_encoder_context_vp9 *vme_context = context; - - if (!vme_context) - return; - - gen9_vme_kernel_context_destroy_vp9(vme_context); - - free(vme_context); - - return; -} - -static void -gen9_vme_scaling_context_init_vp9(VADriverContextP ctx, - struct gen9_encoder_context_vp9 *vme_context, - struct vp9_scaling_context *scaling_context) -{ - struct i965_gpe_context *gpe_context = NULL; - struct vp9_encoder_kernel_parameter kernel_param; - struct vp9_encoder_scoreboard_parameter scoreboard_param; - struct i965_kernel scale_kernel; - - kernel_param.curbe_size = sizeof(vp9_scaling4x_curbe_data_cm); - kernel_param.inline_data_size = sizeof(vp9_scaling4x_inline_data_cm); - kernel_param.sampler_size = 0; - - memset(&scoreboard_param, 0, sizeof(scoreboard_param)); - scoreboard_param.mask = 0xFF; - scoreboard_param.enable = vme_context->use_hw_scoreboard; - scoreboard_param.type = vme_context->use_hw_non_stalling_scoreboard; - scoreboard_param.walkpat_flag = 0; - - gpe_context = &scaling_context->gpe_contexts[0]; - gen9_init_gpe_context_vp9(gpe_context, &kernel_param); - gen9_init_vfe_scoreboard_vp9(gpe_context, &scoreboard_param); - - scaling_context->scaling_4x_bti.scaling_frame_src_y = VP9_BTI_SCALING_FRAME_SRC_Y; - scaling_context->scaling_4x_bti.scaling_frame_dst_y = VP9_BTI_SCALING_FRAME_DST_Y; - scaling_context->scaling_4x_bti.scaling_frame_mbv_proc_stat_dst = - VP9_BTI_SCALING_FRAME_MBVPROCSTATS_DST_CM; - - memset(&scale_kernel, 0, sizeof(scale_kernel)); - - intel_vp9_get_kernel_header_and_size((void *)media_vp9_kernels, - sizeof(media_vp9_kernels), - INTEL_VP9_ENC_SCALING4X, - 0, - &scale_kernel); - - gen8_gpe_load_kernels(ctx, - gpe_context, - &scale_kernel, - 1); - - kernel_param.curbe_size = sizeof(vp9_scaling2x_curbe_data_cm); - kernel_param.inline_data_size = 0; - kernel_param.sampler_size = 0; - - gpe_context = &scaling_context->gpe_contexts[1]; - gen9_init_gpe_context_vp9(gpe_context, &kernel_param); - gen9_init_vfe_scoreboard_vp9(gpe_context, &scoreboard_param); - - memset(&scale_kernel, 0, sizeof(scale_kernel)); - - intel_vp9_get_kernel_header_and_size((void *)media_vp9_kernels, - sizeof(media_vp9_kernels), - INTEL_VP9_ENC_SCALING2X, - 0, - &scale_kernel); - - gen8_gpe_load_kernels(ctx, - gpe_context, - &scale_kernel, - 1); - - scaling_context->scaling_2x_bti.scaling_frame_src_y = VP9_BTI_SCALING_FRAME_SRC_Y; - scaling_context->scaling_2x_bti.scaling_frame_dst_y = VP9_BTI_SCALING_FRAME_DST_Y; - return; -} - -static void -gen9_vme_me_context_init_vp9(VADriverContextP ctx, - struct gen9_encoder_context_vp9 *vme_context, - struct vp9_me_context *me_context) -{ - struct i965_gpe_context *gpe_context = NULL; - struct vp9_encoder_kernel_parameter kernel_param; - struct vp9_encoder_scoreboard_parameter scoreboard_param; - struct i965_kernel scale_kernel; - - kernel_param.curbe_size = sizeof(vp9_me_curbe_data); - kernel_param.inline_data_size = 0; - kernel_param.sampler_size = 0; - - memset(&scoreboard_param, 0, sizeof(scoreboard_param)); - scoreboard_param.mask = 0xFF; - scoreboard_param.enable = vme_context->use_hw_scoreboard; - scoreboard_param.type = vme_context->use_hw_non_stalling_scoreboard; - scoreboard_param.walkpat_flag = 0; - - gpe_context = &me_context->gpe_context; - gen9_init_gpe_context_vp9(gpe_context, &kernel_param); - gen9_init_vfe_scoreboard_vp9(gpe_context, &scoreboard_param); - - memset(&scale_kernel, 0, sizeof(scale_kernel)); - - intel_vp9_get_kernel_header_and_size((void *)media_vp9_kernels, - sizeof(media_vp9_kernels), - INTEL_VP9_ENC_ME, - 0, - &scale_kernel); - - gen8_gpe_load_kernels(ctx, - gpe_context, - &scale_kernel, - 1); - - return; -} - -static void -gen9_vme_mbenc_context_init_vp9(VADriverContextP ctx, - struct gen9_encoder_context_vp9 *vme_context, - struct vp9_mbenc_context *mbenc_context) -{ - struct i965_gpe_context *gpe_context = NULL; - struct vp9_encoder_kernel_parameter kernel_param; - struct vp9_encoder_scoreboard_parameter scoreboard_param; - int i; - struct i965_kernel scale_kernel; - - kernel_param.curbe_size = sizeof(vp9_mbenc_curbe_data); - kernel_param.inline_data_size = 0; - kernel_param.sampler_size = 0; - - memset(&scoreboard_param, 0, sizeof(scoreboard_param)); - scoreboard_param.mask = 0xFF; - scoreboard_param.enable = vme_context->use_hw_scoreboard; - scoreboard_param.type = vme_context->use_hw_non_stalling_scoreboard; - - for (i = 0; i < NUM_VP9_MBENC; i++) { - gpe_context = &mbenc_context->gpe_contexts[i]; - - if ((i == VP9_MBENC_IDX_KEY_16x16) || - (i == VP9_MBENC_IDX_INTER)) { - scoreboard_param.walkpat_flag = 1; - } else - scoreboard_param.walkpat_flag = 0; - - gen9_init_gpe_context_vp9(gpe_context, &kernel_param); - gen9_init_vfe_scoreboard_vp9(gpe_context, &scoreboard_param); - - memset(&scale_kernel, 0, sizeof(scale_kernel)); - - intel_vp9_get_kernel_header_and_size((void *)media_vp9_kernels, - sizeof(media_vp9_kernels), - INTEL_VP9_ENC_MBENC, - i, - &scale_kernel); - - gen8_gpe_load_kernels(ctx, - gpe_context, - &scale_kernel, - 1); - } -} - -static void -gen9_vme_brc_context_init_vp9(VADriverContextP ctx, - struct gen9_encoder_context_vp9 *vme_context, - struct vp9_brc_context *brc_context) -{ - struct i965_gpe_context *gpe_context = NULL; - struct vp9_encoder_kernel_parameter kernel_param; - struct vp9_encoder_scoreboard_parameter scoreboard_param; - int i; - struct i965_kernel scale_kernel; - - kernel_param.curbe_size = sizeof(vp9_brc_curbe_data); - kernel_param.inline_data_size = 0; - kernel_param.sampler_size = 0; - - memset(&scoreboard_param, 0, sizeof(scoreboard_param)); - scoreboard_param.mask = 0xFF; - scoreboard_param.enable = vme_context->use_hw_scoreboard; - scoreboard_param.type = vme_context->use_hw_non_stalling_scoreboard; - - for (i = 0; i < NUM_VP9_BRC; i++) { - gpe_context = &brc_context->gpe_contexts[i]; - gen9_init_gpe_context_vp9(gpe_context, &kernel_param); - gen9_init_vfe_scoreboard_vp9(gpe_context, &scoreboard_param); - - memset(&scale_kernel, 0, sizeof(scale_kernel)); - - intel_vp9_get_kernel_header_and_size((void *)media_vp9_kernels, - sizeof(media_vp9_kernels), - INTEL_VP9_ENC_BRC, - i, - &scale_kernel); - - gen8_gpe_load_kernels(ctx, - gpe_context, - &scale_kernel, - 1); - } -} - -static void -gen9_vme_dys_context_init_vp9(VADriverContextP ctx, - struct gen9_encoder_context_vp9 *vme_context, - struct vp9_dys_context *dys_context) -{ - struct i965_gpe_context *gpe_context = NULL; - struct vp9_encoder_kernel_parameter kernel_param; - struct vp9_encoder_scoreboard_parameter scoreboard_param; - struct i965_kernel scale_kernel; - - kernel_param.curbe_size = sizeof(vp9_dys_curbe_data); - kernel_param.inline_data_size = 0; - kernel_param.sampler_size = sizeof(struct gen9_sampler_8x8_avs); - - memset(&scoreboard_param, 0, sizeof(scoreboard_param)); - scoreboard_param.mask = 0xFF; - scoreboard_param.enable = vme_context->use_hw_scoreboard; - scoreboard_param.type = vme_context->use_hw_non_stalling_scoreboard; - scoreboard_param.walkpat_flag = 0; - - gpe_context = &dys_context->gpe_context; - gen9_init_gpe_context_vp9(gpe_context, &kernel_param); - gen9_init_vfe_scoreboard_vp9(gpe_context, &scoreboard_param); - - memset(&scale_kernel, 0, sizeof(scale_kernel)); - - intel_vp9_get_kernel_header_and_size((void *)media_vp9_kernels, - sizeof(media_vp9_kernels), - INTEL_VP9_ENC_DYS, - 0, - &scale_kernel); - - gen8_gpe_load_kernels(ctx, - gpe_context, - &scale_kernel, - 1); - - return; -} - -static Bool -gen9_vme_kernels_context_init_vp9(VADriverContextP ctx, - struct intel_encoder_context *encoder_context, - struct gen9_encoder_context_vp9 *vme_context) -{ - gen9_vme_scaling_context_init_vp9(ctx, vme_context, &vme_context->scaling_context); - gen9_vme_me_context_init_vp9(ctx, vme_context, &vme_context->me_context); - gen9_vme_mbenc_context_init_vp9(ctx, vme_context, &vme_context->mbenc_context); - gen9_vme_dys_context_init_vp9(ctx, vme_context, &vme_context->dys_context); - gen9_vme_brc_context_init_vp9(ctx, vme_context, &vme_context->brc_context); - - vme_context->pfn_set_curbe_brc = gen9_vp9_set_curbe_brc; - vme_context->pfn_set_curbe_me = gen9_vp9_set_curbe_me; - vme_context->pfn_send_me_surface = gen9_vp9_send_me_surface; - vme_context->pfn_send_scaling_surface = gen9_vp9_send_scaling_surface; - - vme_context->pfn_set_curbe_scaling = gen9_vp9_set_curbe_scaling_cm; - - vme_context->pfn_send_dys_surface = gen9_vp9_send_dys_surface; - vme_context->pfn_set_curbe_dys = gen9_vp9_set_curbe_dys; - vme_context->pfn_set_curbe_mbenc = gen9_vp9_set_curbe_mbenc; - vme_context->pfn_send_mbenc_surface = gen9_vp9_send_mbenc_surface; - return true; -} - -static -void gen9_vp9_write_compressed_element(char *buffer, - int index, - int prob, - bool value) -{ - struct vp9_compressed_element *base_element, *vp9_element; - base_element = (struct vp9_compressed_element *)buffer; - - vp9_element = base_element + (index >> 1); - if (index % 2) { - vp9_element->b_valid = 1; - vp9_element->b_probdiff_select = 1; - vp9_element->b_prob_select = (prob == 252) ? 1: 0; - vp9_element->b_bin = value; - } else { - vp9_element->a_valid = 1; - vp9_element->a_probdiff_select = 1; - vp9_element->a_prob_select = (prob == 252) ? 1: 0; - vp9_element->a_bin = value; - } -} - -static void -intel_vp9enc_refresh_frame_internal_buffers(VADriverContextP ctx, - struct intel_encoder_context *encoder_context) -{ - struct gen9_encoder_context_vp9 *pak_context = encoder_context->mfc_context; - VAEncPictureParameterBufferVP9 *pic_param; - struct gen9_vp9_state *vp9_state; - char *buffer; - int i; - - vp9_state = (struct gen9_vp9_state *)(encoder_context->enc_priv_state); - - if (!pak_context || !vp9_state || !vp9_state->pic_param) - return; - - pic_param = vp9_state->pic_param; - if ((pic_param->pic_flags.bits.frame_type == HCP_VP9_KEY_FRAME) || - (pic_param->pic_flags.bits.intra_only) || - pic_param->pic_flags.bits.error_resilient_mode) { - /* reset current frame_context */ - intel_init_default_vp9_probs(&vp9_state->vp9_current_fc); - if ((pic_param->pic_flags.bits.frame_type == HCP_VP9_KEY_FRAME) || - pic_param->pic_flags.bits.error_resilient_mode || - (pic_param->pic_flags.bits.reset_frame_context == 3)) { - for (i = 0; i < 4; i++) - memcpy(&vp9_state->vp9_frame_ctx[i], - &vp9_state->vp9_current_fc, - sizeof(FRAME_CONTEXT)); - } else if (pic_param->pic_flags.bits.reset_frame_context == 2) { - i = pic_param->pic_flags.bits.frame_context_idx; - memcpy(&vp9_state->vp9_frame_ctx[i], - &vp9_state->vp9_current_fc, sizeof(FRAME_CONTEXT)); - } - /* reset the frame_ctx_idx = 0 */ - vp9_state->frame_ctx_idx = 0; - } else { - vp9_state->frame_ctx_idx = pic_param->pic_flags.bits.frame_context_idx; - } - - i965_zero_gpe_resource(&pak_context->res_compressed_input_buffer); - buffer = i965_map_gpe_resource(&pak_context->res_compressed_input_buffer); - - if (!buffer) - return; - - /* write tx_size */ - if ((pic_param->luma_ac_qindex == 0) && - (pic_param->luma_dc_qindex_delta == 0) && - (pic_param->chroma_ac_qindex_delta == 0) && - (pic_param->chroma_dc_qindex_delta == 0)) { - /* lossless flag */ - /* nothing is needed */ - gen9_vp9_write_compressed_element(buffer, - 0, 128, 0); - gen9_vp9_write_compressed_element(buffer, - 1, 128, 0); - gen9_vp9_write_compressed_element(buffer, - 2, 128, 0); - } else { - if (vp9_state->tx_mode == TX_MODE_SELECT) { - gen9_vp9_write_compressed_element(buffer, - 0, 128, 1); - gen9_vp9_write_compressed_element(buffer, - 1, 128, 1); - gen9_vp9_write_compressed_element(buffer, - 2, 128, 1); - } else if (vp9_state->tx_mode == ALLOW_32X32) { - gen9_vp9_write_compressed_element(buffer, - 0, 128, 1); - gen9_vp9_write_compressed_element(buffer, - 1, 128, 1); - gen9_vp9_write_compressed_element(buffer, - 2, 128, 0); - } else { - unsigned int tx_mode; - - tx_mode = vp9_state->tx_mode; - gen9_vp9_write_compressed_element(buffer, - 0, 128, ((tx_mode) & 2)); - gen9_vp9_write_compressed_element(buffer, - 1, 128, ((tx_mode) & 1)); - gen9_vp9_write_compressed_element(buffer, - 2, 128, 0); - } - - if (vp9_state->tx_mode == TX_MODE_SELECT) { - - gen9_vp9_write_compressed_element(buffer, - 3, 128, 0); - - gen9_vp9_write_compressed_element(buffer, - 7, 128, 0); - - gen9_vp9_write_compressed_element(buffer, - 15, 128, 0); - } - } - /*Setup all the input&output object*/ - - { - /* update the coeff_update flag */ - gen9_vp9_write_compressed_element(buffer, - 27, 128, 0); - gen9_vp9_write_compressed_element(buffer, - 820, 128, 0); - gen9_vp9_write_compressed_element(buffer, - 1613, 128, 0); - gen9_vp9_write_compressed_element(buffer, - 2406, 128, 0); - } - - - if (pic_param->pic_flags.bits.frame_type && !pic_param->pic_flags.bits.intra_only) - { - bool allow_comp = !( - (pic_param->ref_flags.bits.ref_last_sign_bias && pic_param->ref_flags.bits.ref_gf_sign_bias && pic_param->ref_flags.bits.ref_arf_sign_bias) || - (!pic_param->ref_flags.bits.ref_last_sign_bias && !pic_param->ref_flags.bits.ref_gf_sign_bias && !pic_param->ref_flags.bits.ref_arf_sign_bias) - ); - - if (allow_comp) - { - if (pic_param->pic_flags.bits.comp_prediction_mode == REFERENCE_MODE_SELECT) { - gen9_vp9_write_compressed_element(buffer, - 3271, 128, 1); - gen9_vp9_write_compressed_element(buffer, - 3272, 128, 1); - } - else if (pic_param->pic_flags.bits.comp_prediction_mode == COMPOUND_REFERENCE) { - gen9_vp9_write_compressed_element(buffer, - 3271, 128, 1); - gen9_vp9_write_compressed_element(buffer, - 3272, 128, 0); - } - else { - - gen9_vp9_write_compressed_element(buffer, - 3271, 128, 0); - gen9_vp9_write_compressed_element(buffer, - 3272, 128, 0); - } - } - } - - i965_unmap_gpe_resource(&pak_context->res_compressed_input_buffer); -} - - -static void -gen9_pak_vp9_pipe_mode_select(VADriverContextP ctx, - struct encode_state *encode_state, - struct intel_encoder_context *encoder_context, - struct gen9_hcpe_pipe_mode_select_param *pipe_mode_param) -{ - struct intel_batchbuffer *batch = encoder_context->base.batch; - - BEGIN_BCS_BATCH(batch, 6); - - OUT_BCS_BATCH(batch, HCP_PIPE_MODE_SELECT | (6 - 2)); - OUT_BCS_BATCH(batch, - (pipe_mode_param->stream_out << 12) | - (pipe_mode_param->codec_mode << 5) | - (0 << 3) | /* disable Pic Status / Error Report */ - (pipe_mode_param->stream_out << 2) | - HCP_CODEC_SELECT_ENCODE); - OUT_BCS_BATCH(batch, 0); - OUT_BCS_BATCH(batch, 0); - OUT_BCS_BATCH(batch, (1 << 6)); - OUT_BCS_BATCH(batch, 0); - - ADVANCE_BCS_BATCH(batch); -} - -static void -gen9_vp9_add_surface_state(VADriverContextP ctx, - struct encode_state *encode_state, - struct intel_encoder_context *encoder_context, - hcp_surface_state *hcp_state) -{ - struct intel_batchbuffer *batch = encoder_context->base.batch; - if (!hcp_state) - return; - - BEGIN_BCS_BATCH(batch, 3); - OUT_BCS_BATCH(batch, HCP_SURFACE_STATE | (3 - 2)); - OUT_BCS_BATCH(batch, - (hcp_state->dw1.surface_id << 28) | - (hcp_state->dw1.surface_pitch - 1) - ); - OUT_BCS_BATCH(batch, - (hcp_state->dw2.surface_format << 28) | - (hcp_state->dw2.y_cb_offset) - ); - ADVANCE_BCS_BATCH(batch); -} - -static void -gen9_pak_vp9_pipe_buf_addr_state(VADriverContextP ctx, - struct encode_state *encode_state, - struct intel_encoder_context *encoder_context) -{ - struct intel_batchbuffer *batch = encoder_context->base.batch; - struct gen9_encoder_context_vp9 *pak_context = encoder_context->mfc_context; - struct gen9_vp9_state *vp9_state; - unsigned int i; - struct object_surface *obj_surface; - - vp9_state = (struct gen9_vp9_state *)(encoder_context->enc_priv_state); - - if (!vp9_state || !vp9_state->pic_param) - return; - - - BEGIN_BCS_BATCH(batch, 104); - - OUT_BCS_BATCH(batch, HCP_PIPE_BUF_ADDR_STATE | (104 - 2)); - - obj_surface = encode_state->reconstructed_object; - - /* reconstructed obj_surface is already checked. So this is skipped */ - /* DW 1..3 decoded surface */ - OUT_RELOC64(batch, - obj_surface->bo, - I915_GEM_DOMAIN_INSTRUCTION, I915_GEM_DOMAIN_INSTRUCTION, - 0); - OUT_BCS_BATCH(batch, 0); - - /* DW 4..6 deblocking line */ - OUT_RELOC64(batch, - pak_context->res_deblocking_filter_line_buffer.bo, - I915_GEM_DOMAIN_INSTRUCTION, I915_GEM_DOMAIN_INSTRUCTION, - 0); - OUT_BCS_BATCH(batch, 0); - - /* DW 7..9 deblocking tile line */ - OUT_RELOC64(batch, - pak_context->res_deblocking_filter_tile_line_buffer.bo, - I915_GEM_DOMAIN_INSTRUCTION, I915_GEM_DOMAIN_INSTRUCTION, - 0); - OUT_BCS_BATCH(batch, 0); - - /* DW 10..12 deblocking tile col */ - OUT_RELOC64(batch, - pak_context->res_deblocking_filter_tile_col_buffer.bo, - I915_GEM_DOMAIN_INSTRUCTION, I915_GEM_DOMAIN_INSTRUCTION, - 0); - OUT_BCS_BATCH(batch, 0); - - /* DW 13..15 metadata line */ - OUT_RELOC64(batch, - pak_context->res_metadata_line_buffer.bo, - I915_GEM_DOMAIN_INSTRUCTION, I915_GEM_DOMAIN_INSTRUCTION, - 0); - OUT_BCS_BATCH(batch, 0); - - /* DW 16..18 metadata tile line */ - OUT_RELOC64(batch, - pak_context->res_metadata_tile_line_buffer.bo, - I915_GEM_DOMAIN_INSTRUCTION, I915_GEM_DOMAIN_INSTRUCTION, - 0); - OUT_BCS_BATCH(batch, 0); - - /* DW 19..21 metadata tile col */ - OUT_RELOC64(batch, - pak_context->res_metadata_tile_col_buffer.bo, - I915_GEM_DOMAIN_INSTRUCTION, I915_GEM_DOMAIN_INSTRUCTION, - 0); - OUT_BCS_BATCH(batch, 0); - - /* DW 22..30 SAO is not used for VP9 */ - OUT_BCS_BATCH(batch, 0); - OUT_BCS_BATCH(batch, 0); - OUT_BCS_BATCH(batch, 0); - OUT_BCS_BATCH(batch, 0); - OUT_BCS_BATCH(batch, 0); - OUT_BCS_BATCH(batch, 0); - OUT_BCS_BATCH(batch, 0); - OUT_BCS_BATCH(batch, 0); - OUT_BCS_BATCH(batch, 0); - - /* DW 31..33 Current Motion vector temporal buffer */ - OUT_RELOC64(batch, - pak_context->res_mv_temporal_buffer[vp9_state->curr_mv_temporal_index].bo, - I915_GEM_DOMAIN_INSTRUCTION, I915_GEM_DOMAIN_INSTRUCTION, - 0); - OUT_BCS_BATCH(batch, 0); - - /* DW 34..36 Not used */ - OUT_BCS_BATCH(batch, 0); - OUT_BCS_BATCH(batch, 0); - OUT_BCS_BATCH(batch, 0); - - /* Only the first three reference_frame is used for VP9 */ - /* DW 37..52 for reference_frame */ - i = 0; - if (vp9_state->picture_coding_type) { - for (i = 0; i < 3; i++) { - - if (pak_context->reference_surfaces[i].bo) { - OUT_RELOC64(batch, - pak_context->reference_surfaces[i].bo, - I915_GEM_DOMAIN_INSTRUCTION, 0, - 0); - } else { - OUT_BCS_BATCH(batch, 0); - OUT_BCS_BATCH(batch, 0); - } - } - } - - for (; i < 8; i++) { - OUT_BCS_BATCH(batch, 0); - OUT_BCS_BATCH(batch, 0); - } - - OUT_BCS_BATCH(batch, 0); - - /* DW 54..56 for source input */ - OUT_RELOC64(batch, - pak_context->uncompressed_picture_source.bo, - I915_GEM_DOMAIN_INSTRUCTION, 0, - 0); - OUT_BCS_BATCH(batch, 0); - - /* DW 57..59 StreamOut is not used */ - OUT_BCS_BATCH(batch, 0); - OUT_BCS_BATCH(batch, 0); - OUT_BCS_BATCH(batch, 0); - - /* DW 60..62. Not used for encoder */ - OUT_BCS_BATCH(batch, 0); - OUT_BCS_BATCH(batch, 0); - OUT_BCS_BATCH(batch, 0); - - /* DW 63..65. ILDB Not used for encoder */ - OUT_BCS_BATCH(batch, 0); - OUT_BCS_BATCH(batch, 0); - OUT_BCS_BATCH(batch, 0); - - /* DW 66..81 For the collocated motion vector temporal buffer */ - if (vp9_state->picture_coding_type) { - int prev_index = vp9_state->curr_mv_temporal_index ^ 0x01; - OUT_RELOC64(batch, - pak_context->res_mv_temporal_buffer[prev_index].bo, - I915_GEM_DOMAIN_INSTRUCTION, 0, - 0); - } else { - OUT_BCS_BATCH(batch, 0); - OUT_BCS_BATCH(batch, 0); - } - - for (i = 1; i < 8; i++) { - OUT_BCS_BATCH(batch, 0); - OUT_BCS_BATCH(batch, 0); - } - OUT_BCS_BATCH(batch, 0); - - /* DW 83..85 VP9 prob buffer */ - OUT_RELOC64(batch, - pak_context->res_prob_buffer.bo, - I915_GEM_DOMAIN_INSTRUCTION, I915_GEM_DOMAIN_INSTRUCTION, - 0); - - OUT_BCS_BATCH(batch, 0); - - /* DW 86..88 Segment id buffer */ - if (pak_context->res_segmentid_buffer.bo) { - OUT_RELOC64(batch, - pak_context->res_segmentid_buffer.bo, - I915_GEM_DOMAIN_INSTRUCTION, I915_GEM_DOMAIN_INSTRUCTION, - 0); - } else { - OUT_BCS_BATCH(batch, 0); - OUT_BCS_BATCH(batch, 0); - } - OUT_BCS_BATCH(batch, 0); - - /* DW 89..91 HVD line rowstore buffer */ - OUT_RELOC64(batch, - pak_context->res_hvd_line_buffer.bo, - I915_GEM_DOMAIN_INSTRUCTION, I915_GEM_DOMAIN_INSTRUCTION, - 0); - OUT_BCS_BATCH(batch, 0); - - /* DW 92..94 HVD tile line rowstore buffer */ - OUT_RELOC64(batch, - pak_context->res_hvd_tile_line_buffer.bo, - I915_GEM_DOMAIN_INSTRUCTION, I915_GEM_DOMAIN_INSTRUCTION, - 0); - OUT_BCS_BATCH(batch, 0); - - /* DW 95..97 SAO streamout. Not used for VP9 */ - OUT_BCS_BATCH(batch, 0); - OUT_BCS_BATCH(batch, 0); - OUT_BCS_BATCH(batch, 0); - - /* reserved for KBL. 98..100 */ - OUT_BCS_BATCH(batch, 0); - OUT_BCS_BATCH(batch, 0); - OUT_BCS_BATCH(batch, 0); - - /* 101..103 */ - OUT_BCS_BATCH(batch, 0); - OUT_BCS_BATCH(batch, 0); - OUT_BCS_BATCH(batch, 0); - - ADVANCE_BCS_BATCH(batch); -} - -static void -gen9_pak_vp9_ind_obj_base_addr_state(VADriverContextP ctx, - struct encode_state *encode_state, - struct intel_encoder_context *encoder_context) -{ - struct intel_batchbuffer *batch = encoder_context->base.batch; - struct gen9_encoder_context_vp9 *pak_context = encoder_context->mfc_context; - struct gen9_vp9_state *vp9_state; - - vp9_state = (struct gen9_vp9_state *)(encoder_context->enc_priv_state); - - /* to do */ - BEGIN_BCS_BATCH(batch, 29); - - OUT_BCS_BATCH(batch, HCP_IND_OBJ_BASE_ADDR_STATE | (29 - 2)); - - /* indirect bitstream object base */ - OUT_BCS_BATCH(batch, 0); - OUT_BCS_BATCH(batch, 0); - OUT_BCS_BATCH(batch, 0); - /* the upper bound of indirect bitstream object */ - OUT_BCS_BATCH(batch, 0); - OUT_BCS_BATCH(batch, 0); - - /* DW 6: Indirect CU object base address */ - OUT_RELOC64(batch, - pak_context->res_mb_code_surface.bo, - I915_GEM_DOMAIN_INSTRUCTION, 0, /* No write domain */ - vp9_state->mb_data_offset); - /* default attribute */ - OUT_BCS_BATCH(batch, 0); - - /* DW 9..11, PAK-BSE */ - OUT_RELOC64(batch, - pak_context->indirect_pak_bse_object.bo, - I915_GEM_DOMAIN_INSTRUCTION, I915_GEM_DOMAIN_INSTRUCTION, - pak_context->indirect_pak_bse_object.offset); - OUT_BCS_BATCH(batch, 0); - - /* DW 12..13 upper bound */ - OUT_RELOC64(batch, - pak_context->indirect_pak_bse_object.bo, - I915_GEM_DOMAIN_INSTRUCTION, I915_GEM_DOMAIN_INSTRUCTION, - pak_context->indirect_pak_bse_object.end_offset); - - /* DW 14..16 compressed header buffer */ - OUT_RELOC64(batch, - pak_context->res_compressed_input_buffer.bo, - I915_GEM_DOMAIN_INSTRUCTION, 0, - 0); - OUT_BCS_BATCH(batch, 0); - - /* DW 17..19 prob counter streamout */ - OUT_RELOC64(batch, - pak_context->res_prob_counter_buffer.bo, - I915_GEM_DOMAIN_INSTRUCTION, I915_GEM_DOMAIN_INSTRUCTION, - 0); - OUT_BCS_BATCH(batch, 0); - - /* DW 20..22 prob delta streamin */ - OUT_RELOC64(batch, - pak_context->res_prob_delta_buffer.bo, - I915_GEM_DOMAIN_INSTRUCTION, I915_GEM_DOMAIN_INSTRUCTION, - 0); - OUT_BCS_BATCH(batch, 0); - - /* DW 23..25 Tile record streamout */ - OUT_RELOC64(batch, - pak_context->res_tile_record_streamout_buffer.bo, - I915_GEM_DOMAIN_INSTRUCTION, I915_GEM_DOMAIN_INSTRUCTION, - 0); - OUT_BCS_BATCH(batch, 0); - - /* DW 26..28 CU record streamout */ - OUT_RELOC64(batch, - pak_context->res_cu_stat_streamout_buffer.bo, - I915_GEM_DOMAIN_INSTRUCTION, I915_GEM_DOMAIN_INSTRUCTION, - 0); - OUT_BCS_BATCH(batch, 0); - - ADVANCE_BCS_BATCH(batch); -} - -static void -gen9_pak_vp9_segment_state(VADriverContextP ctx, - struct encode_state *encode_state, - struct intel_encoder_context *encoder_context, - VAEncSegParamVP9 *seg_param, uint8_t seg_id) -{ - struct intel_batchbuffer *batch = encoder_context->base.batch; - uint32_t batch_value, tmp; - VAEncPictureParameterBufferVP9 *pic_param; - - if (!encode_state->pic_param_ext || - !encode_state->pic_param_ext->buffer) { - return; - } - - pic_param = (VAEncPictureParameterBufferVP9 *)encode_state->pic_param_ext->buffer; - - batch_value = seg_param->seg_flags.bits.segment_reference; - if (pic_param->pic_flags.bits.frame_type == HCP_VP9_KEY_FRAME || - pic_param->pic_flags.bits.intra_only) - batch_value = 0; - - BEGIN_BCS_BATCH(batch, 8); - - OUT_BCS_BATCH(batch, HCP_VP9_SEGMENT_STATE | (8 - 2)); - OUT_BCS_BATCH(batch, seg_id << 0); /* DW 1 - SegmentID */ - OUT_BCS_BATCH(batch, - (seg_param->seg_flags.bits.segment_reference_enabled << 3) | - (batch_value << 1) | - (seg_param->seg_flags.bits.segment_reference_skipped <<0) - ); - - /* DW 3..6 is not used for encoder */ - OUT_BCS_BATCH(batch, 0); - OUT_BCS_BATCH(batch, 0); - OUT_BCS_BATCH(batch, 0); - OUT_BCS_BATCH(batch, 0); - - /* DW 7 Mode */ - tmp = intel_convert_sign_mag(seg_param->segment_qindex_delta, 9); - batch_value = tmp; - tmp = intel_convert_sign_mag(seg_param->segment_lf_level_delta, 7); - batch_value |= (tmp << 16); - OUT_BCS_BATCH(batch, batch_value); - - ADVANCE_BCS_BATCH(batch); - -} - -static void -intel_vp9enc_construct_pak_insertobj_batchbuffer(VADriverContextP ctx, - struct intel_encoder_context *encoder_context, - struct i965_gpe_resource *obj_batch_buffer) -{ - struct gen9_encoder_context_vp9 *pak_context = encoder_context->mfc_context; - struct gen9_vp9_state *vp9_state; - int uncompressed_header_length; - unsigned int *cmd_ptr; - unsigned int dw_length, bits_in_last_dw; - - vp9_state = (struct gen9_vp9_state *)(encoder_context->enc_priv_state); - - if (!pak_context || !vp9_state || !vp9_state->pic_param) - return; - - uncompressed_header_length = vp9_state->header_length; - cmd_ptr = i965_map_gpe_resource(obj_batch_buffer); - - if (!cmd_ptr) - return; - - bits_in_last_dw = uncompressed_header_length % 4; - bits_in_last_dw *= 8; - - if (bits_in_last_dw == 0) - bits_in_last_dw = 32; - - /* get the DWORD length of the inserted_data */ - dw_length = ALIGN(uncompressed_header_length, 4) / 4; - *cmd_ptr++ = HCP_INSERT_PAK_OBJECT | dw_length; - - *cmd_ptr++ = ((0 << 31) | /* indirect payload */ - (0 << 16) | /* the start offset in first DW */ - (0 << 15) | - (bits_in_last_dw << 8) | /* bits_in_last_dw */ - (0 << 4) | /* skip emulation byte count. 0 for VP9 */ - (0 << 3) | /* emulation flag. 0 for VP9 */ - (1 << 2) | /* last header flag. */ - (0 << 1)); - memcpy(cmd_ptr, vp9_state->alias_insert_data, dw_length * sizeof(unsigned int)); - - cmd_ptr += dw_length; - - *cmd_ptr++ = MI_NOOP; - *cmd_ptr++ = MI_BATCH_BUFFER_END; - i965_unmap_gpe_resource(obj_batch_buffer); -} - -static void -gen9_vp9_pak_picture_level(VADriverContextP ctx, - struct encode_state *encode_state, - struct intel_encoder_context *encoder_context) -{ - struct intel_batchbuffer *batch = encoder_context->base.batch; - struct gen9_encoder_context_vp9 *pak_context = encoder_context->mfc_context; - struct object_surface *obj_surface; - VAEncPictureParameterBufferVP9 *pic_param; - VAEncMiscParameterTypeVP9PerSegmantParam *seg_param, tmp_seg_param; - struct gen9_vp9_state *vp9_state; - struct gen9_surface_vp9 *vp9_priv_surface; - int i; - struct gen9_hcpe_pipe_mode_select_param mode_param; - hcp_surface_state hcp_surface; - struct gpe_mi_batch_buffer_start_parameter second_level_batch; - int segment_count; - - vp9_state = (struct gen9_vp9_state *)(encoder_context->enc_priv_state); - - if (!pak_context || !vp9_state || !vp9_state->pic_param) - return; - - pic_param = vp9_state->pic_param; - seg_param = vp9_state->segment_param; - - if (vp9_state->curr_pak_pass == 0) - { - intel_vp9enc_construct_pak_insertobj_batchbuffer(ctx, encoder_context, - &pak_context->res_pak_uncompressed_input_buffer); - - // Check if driver already programmed pic state as part of BRC update kernel programming. - if (!vp9_state->brc_enabled) - { - intel_vp9enc_construct_picstate_batchbuf(ctx, encode_state, - encoder_context, &pak_context->res_pic_state_brc_write_hfw_read_buffer); - } - } - - if (vp9_state->curr_pak_pass == 0) - { - intel_vp9enc_refresh_frame_internal_buffers(ctx, encoder_context); - } - - { - /* copy the frame_context[frame_idx] into curr_frame_context */ - memcpy(&vp9_state->vp9_current_fc, - &(vp9_state->vp9_frame_ctx[vp9_state->frame_ctx_idx]), - sizeof(FRAME_CONTEXT)); - { - uint8_t *prob_ptr; - - prob_ptr = i965_map_gpe_resource(&pak_context->res_prob_buffer); - - if (!prob_ptr) - return; - - /* copy the current fc to vp9_prob buffer */ - memcpy(prob_ptr, &vp9_state->vp9_current_fc, sizeof(FRAME_CONTEXT)); - if ((pic_param->pic_flags.bits.frame_type == HCP_VP9_KEY_FRAME) || - pic_param->pic_flags.bits.intra_only) { - FRAME_CONTEXT *frame_ptr = (FRAME_CONTEXT *)prob_ptr; - - memcpy(frame_ptr->partition_prob, vp9_kf_partition_probs, - sizeof(vp9_kf_partition_probs)); - memcpy(frame_ptr->uv_mode_prob, vp9_kf_uv_mode_prob, - sizeof(vp9_kf_uv_mode_prob)); - } - i965_unmap_gpe_resource(&pak_context->res_prob_buffer); - } - } - - if (vp9_state->brc_enabled && vp9_state->curr_pak_pass) { - /* read image status and insert the conditional end cmd */ - /* image ctrl/status is already accessed */ - struct gpe_mi_conditional_batch_buffer_end_parameter mi_cond_end; - struct vp9_encode_status_buffer_internal *status_buffer; - - status_buffer = &vp9_state->status_buffer; - memset(&mi_cond_end, 0, sizeof(mi_cond_end)); - mi_cond_end.offset = status_buffer->image_status_mask_offset; - mi_cond_end.bo = status_buffer->bo; - mi_cond_end.compare_data = 0; - mi_cond_end.compare_mask_mode_disabled = 1; - gen9_gpe_mi_conditional_batch_buffer_end(ctx, batch, - &mi_cond_end); - } - - mode_param.codec_mode = 1; - mode_param.stream_out = 0; - gen9_pak_vp9_pipe_mode_select(ctx, encode_state, encoder_context, &mode_param); - - /* reconstructed surface */ - memset(&hcp_surface, 0, sizeof(hcp_surface)); - obj_surface = encode_state->reconstructed_object; - hcp_surface.dw1.surface_id = 0; - hcp_surface.dw1.surface_pitch = obj_surface->width; - hcp_surface.dw2.surface_format = SURFACE_FORMAT_PLANAR_420_8; - hcp_surface.dw2.y_cb_offset = obj_surface->y_cb_offset; - gen9_vp9_add_surface_state(ctx, encode_state, encoder_context, - &hcp_surface); - - /* Input surface */ - if (vp9_state->dys_in_use && - ((pic_param->frame_width_src != pic_param->frame_width_dst) || - (pic_param->frame_height_src != pic_param->frame_height_dst))) { - vp9_priv_surface = (struct gen9_surface_vp9 *)(obj_surface->private_data); - obj_surface = vp9_priv_surface->dys_surface_obj; - } else { - obj_surface = encode_state->input_yuv_object; - } - - hcp_surface.dw1.surface_id = 1; - hcp_surface.dw1.surface_pitch = obj_surface->width; - hcp_surface.dw2.surface_format = SURFACE_FORMAT_PLANAR_420_8; - hcp_surface.dw2.y_cb_offset = obj_surface->y_cb_offset; - gen9_vp9_add_surface_state(ctx, encode_state, encoder_context, - &hcp_surface); - - if (vp9_state->picture_coding_type) { - /* Add surface for last */ - if (vp9_state->last_ref_obj) { - obj_surface = vp9_state->last_ref_obj; - hcp_surface.dw1.surface_id = 2; - hcp_surface.dw1.surface_pitch = obj_surface->width; - hcp_surface.dw2.surface_format = SURFACE_FORMAT_PLANAR_420_8; - hcp_surface.dw2.y_cb_offset = obj_surface->y_cb_offset; - gen9_vp9_add_surface_state(ctx, encode_state, encoder_context, - &hcp_surface); - } - if (vp9_state->golden_ref_obj) { - obj_surface = vp9_state->golden_ref_obj; - hcp_surface.dw1.surface_id = 3; - hcp_surface.dw1.surface_pitch = obj_surface->width; - hcp_surface.dw2.surface_format = SURFACE_FORMAT_PLANAR_420_8; - hcp_surface.dw2.y_cb_offset = obj_surface->y_cb_offset; - gen9_vp9_add_surface_state(ctx, encode_state, encoder_context, - &hcp_surface); - } - if (vp9_state->alt_ref_obj) { - obj_surface = vp9_state->alt_ref_obj; - hcp_surface.dw1.surface_id = 4; - hcp_surface.dw1.surface_pitch = obj_surface->width; - hcp_surface.dw2.surface_format = SURFACE_FORMAT_PLANAR_420_8; - hcp_surface.dw2.y_cb_offset = obj_surface->y_cb_offset; - gen9_vp9_add_surface_state(ctx, encode_state, encoder_context, - &hcp_surface); - } - } - - gen9_pak_vp9_pipe_buf_addr_state(ctx, encode_state, encoder_context); - - gen9_pak_vp9_ind_obj_base_addr_state(ctx, encode_state, encoder_context); - - // Using picstate zero with updated QP and LF deltas by HuC for repak, irrespective of how many Pak passes were run in multi-pass mode. - memset(&second_level_batch, 0, sizeof(second_level_batch)); - - if (vp9_state->curr_pak_pass == 0) { - second_level_batch.offset = 0; - } else - second_level_batch.offset = vp9_state->curr_pak_pass * VP9_PIC_STATE_BUFFER_SIZE; - - second_level_batch.is_second_level = 1; - second_level_batch.bo = pak_context->res_pic_state_brc_write_hfw_read_buffer.bo; - - gen9_gpe_mi_batch_buffer_start(ctx, batch, &second_level_batch); - - if (pic_param->pic_flags.bits.segmentation_enabled && - seg_param) - segment_count = 8; - else { - segment_count = 1; - memset(&tmp_seg_param, 0, sizeof(tmp_seg_param)); - seg_param = &tmp_seg_param; - } - for (i = 0; i < segment_count; i++) - { - gen9_pak_vp9_segment_state(ctx, encode_state, - encoder_context, - &seg_param->seg_data[i], i); - } - - /* Insert the uncompressed header buffer */ - second_level_batch.is_second_level = 1; - second_level_batch.offset = 0; - second_level_batch.bo = pak_context->res_pak_uncompressed_input_buffer.bo; - - gen9_gpe_mi_batch_buffer_start(ctx, batch, &second_level_batch); - - /* PAK_OBJECT */ - second_level_batch.is_second_level = 1; - second_level_batch.offset = 0; - second_level_batch.bo = pak_context->res_mb_code_surface.bo; - gen9_gpe_mi_batch_buffer_start(ctx, batch, &second_level_batch); - - return; -} - -static void -gen9_vp9_read_mfc_status(VADriverContextP ctx, struct intel_encoder_context *encoder_context) -{ - struct intel_batchbuffer *batch = encoder_context->base.batch; - struct gen9_encoder_context_vp9 *pak_context = encoder_context->mfc_context; - struct gpe_mi_store_register_mem_parameter mi_store_reg_mem_param; - struct gpe_mi_flush_dw_parameter mi_flush_dw_param; - //struct gpe_mi_copy_mem_parameter mi_copy_mem_param; - struct vp9_encode_status_buffer_internal *status_buffer; - struct gen9_vp9_state *vp9_state; - - vp9_state = (struct gen9_vp9_state *)(encoder_context->enc_priv_state); - if (!vp9_state || !pak_context || !batch) - return; - - status_buffer = &(vp9_state->status_buffer); - - memset(&mi_flush_dw_param, 0, sizeof(mi_flush_dw_param)); - gen9_gpe_mi_flush_dw(ctx, batch, &mi_flush_dw_param); - - memset(&mi_store_reg_mem_param, 0, sizeof(mi_store_reg_mem_param)); - mi_store_reg_mem_param.bo = status_buffer->bo; - mi_store_reg_mem_param.offset = status_buffer->bs_byte_count_offset; - mi_store_reg_mem_param.mmio_offset = status_buffer->vp9_bs_frame_reg_offset; - gen9_gpe_mi_store_register_mem(ctx, batch, &mi_store_reg_mem_param); - - mi_store_reg_mem_param.bo = pak_context->res_brc_bitstream_size_buffer.bo; - mi_store_reg_mem_param.offset = 0; - mi_store_reg_mem_param.mmio_offset = status_buffer->vp9_bs_frame_reg_offset; - gen9_gpe_mi_store_register_mem(ctx, batch, &mi_store_reg_mem_param); - - /* Read HCP Image status */ - mi_store_reg_mem_param.bo = status_buffer->bo; - mi_store_reg_mem_param.offset = status_buffer->image_status_mask_offset; - mi_store_reg_mem_param.mmio_offset = - status_buffer->vp9_image_mask_reg_offset; - gen9_gpe_mi_store_register_mem(ctx, batch, &mi_store_reg_mem_param); - - mi_store_reg_mem_param.bo = status_buffer->bo; - mi_store_reg_mem_param.offset = status_buffer->image_status_ctrl_offset; - mi_store_reg_mem_param.mmio_offset = - status_buffer->vp9_image_ctrl_reg_offset; - gen9_gpe_mi_store_register_mem(ctx, batch, &mi_store_reg_mem_param); - - mi_store_reg_mem_param.bo = pak_context->res_brc_bitstream_size_buffer.bo; - mi_store_reg_mem_param.offset = 4; - mi_store_reg_mem_param.mmio_offset = - status_buffer->vp9_image_ctrl_reg_offset; - gen9_gpe_mi_store_register_mem(ctx, batch, &mi_store_reg_mem_param); - - gen9_gpe_mi_flush_dw(ctx, batch, &mi_flush_dw_param); - - return; -} - -static VAStatus -gen9_vp9_pak_pipeline_prepare(VADriverContextP ctx, - struct encode_state *encode_state, - struct intel_encoder_context *encoder_context) -{ - struct gen9_encoder_context_vp9 *pak_context = encoder_context->mfc_context; - struct object_surface *obj_surface; - struct object_buffer *obj_buffer; - struct i965_coded_buffer_segment *coded_buffer_segment; - VAEncPictureParameterBufferVP9 *pic_param; - struct gen9_vp9_state *vp9_state; - dri_bo *bo; - int i; - - vp9_state = (struct gen9_vp9_state *)(encoder_context->enc_priv_state); - if (!vp9_state || - !vp9_state->pic_param) - return VA_STATUS_ERROR_INVALID_PARAMETER; - - pic_param = vp9_state->pic_param; - - /* reconstructed surface */ - obj_surface = encode_state->reconstructed_object; - i965_check_alloc_surface_bo(ctx, obj_surface, 1, VA_FOURCC_NV12, SUBSAMPLE_YUV420); - - pak_context->reconstructed_object.bo = obj_surface->bo; - dri_bo_reference(pak_context->reconstructed_object.bo); - - /* set vp9 reference frames */ - for (i = 0; i < ARRAY_ELEMS(pak_context->reference_surfaces); i++) { - if (pak_context->reference_surfaces[i].bo) - dri_bo_unreference(pak_context->reference_surfaces[i].bo); - pak_context->reference_surfaces[i].bo = NULL; - } - - /* Three reference frames are enough for VP9 */ - if (pic_param->pic_flags.bits.frame_type && - !pic_param->pic_flags.bits.intra_only) { - for (i = 0; i < 3; i++) { - obj_surface = encode_state->reference_objects[i]; - if (obj_surface && obj_surface->bo) { - pak_context->reference_surfaces[i].bo = obj_surface->bo; - dri_bo_reference(obj_surface->bo); - } - } - } - - /* input YUV surface */ - dri_bo_unreference(pak_context->uncompressed_picture_source.bo); - pak_context->uncompressed_picture_source.bo = NULL; - obj_surface = encode_state->reconstructed_object; - if (vp9_state->dys_in_use && - ((pic_param->frame_width_src != pic_param->frame_width_dst) || - (pic_param->frame_height_src != pic_param->frame_height_dst))) { - struct gen9_surface_vp9 *vp9_priv_surface = - (struct gen9_surface_vp9 *)(obj_surface->private_data); - obj_surface = vp9_priv_surface->dys_surface_obj; - } else - obj_surface = encode_state->input_yuv_object; - - pak_context->uncompressed_picture_source.bo = obj_surface->bo; - dri_bo_reference(pak_context->uncompressed_picture_source.bo); - - /* coded buffer */ - dri_bo_unreference(pak_context->indirect_pak_bse_object.bo); - pak_context->indirect_pak_bse_object.bo = NULL; - obj_buffer = encode_state->coded_buf_object; - bo = obj_buffer->buffer_store->bo; - pak_context->indirect_pak_bse_object.offset = I965_CODEDBUFFER_HEADER_SIZE; - pak_context->indirect_pak_bse_object.end_offset = ALIGN((obj_buffer->size_element - 0x1000), 0x1000); - pak_context->indirect_pak_bse_object.bo = bo; - dri_bo_reference(pak_context->indirect_pak_bse_object.bo); - - /* set the internal flag to 0 to indicate the coded size is unknown */ - dri_bo_map(bo, 1); - coded_buffer_segment = (struct i965_coded_buffer_segment *)bo->virtual; - coded_buffer_segment->mapped = 0; - coded_buffer_segment->codec = encoder_context->codec; - dri_bo_unmap(bo); - - return VA_STATUS_SUCCESS; -} - -static void -gen9_vp9_pak_brc_prepare(struct encode_state *encode_state, - struct intel_encoder_context *encoder_context) -{ - struct gen9_encoder_context_vp9 *pak_context = encoder_context->mfc_context; - struct gen9_vp9_state *vp9_state; - - vp9_state = (struct gen9_vp9_state *)(encoder_context->enc_priv_state); - - if (!vp9_state || !pak_context) - return; - - if (vp9_state->brc_enabled) { - /* check the buffer related with BRC */ - vp9_state->brc_flag_check = 0; - if (encode_state->seq_param_ext && encode_state->seq_param_ext->buffer) { - vp9_state->brc_flag_check |= VP9_BRC_SEQ; - } - - /* Frame_rate */ - if (encode_state->misc_param[VAEncMiscParameterTypeFrameRate] && - encode_state->misc_param[VAEncMiscParameterTypeFrameRate]->buffer) { - vp9_state->brc_flag_check |= VP9_BRC_FR; - } - - /* HRD */ - if (encode_state->misc_param[VAEncMiscParameterTypeRateControl] && - encode_state->misc_param[VAEncMiscParameterTypeRateControl]->buffer) { - vp9_state->brc_flag_check |= VP9_BRC_RC; - } - - if (encode_state->misc_param[VAEncMiscParameterTypeHRD] && - encode_state->misc_param[VAEncMiscParameterTypeHRD]->buffer) { - vp9_state->brc_flag_check |= VP9_BRC_HRD; - } - - /* - * If user-app doesn't pass the buffer related with BRC for the first - * frame, the error flag is returned. - */ - if (vp9_state->brc_flag_check == 0 && vp9_state->first_frame) { - vp9_state->brc_flag_check |= VP9_BRC_FAILURE; - } - } - return; -} - -static void -gen9_vp9_pak_context_destroy(void *context) -{ - struct gen9_encoder_context_vp9 *pak_context = context; - int i; - - dri_bo_unreference(pak_context->reconstructed_object.bo); - pak_context->reconstructed_object.bo = NULL; - - dri_bo_unreference(pak_context->uncompressed_picture_source.bo); - pak_context->uncompressed_picture_source.bo = NULL; - - dri_bo_unreference(pak_context->indirect_pak_bse_object.bo); - pak_context->indirect_pak_bse_object.bo = NULL; - - for (i = 0; i < 8; i++){ - dri_bo_unreference(pak_context->reference_surfaces[i].bo); - pak_context->reference_surfaces[i].bo = NULL; - } - - /* vme & pak same the same structure, so don't free the context here */ -} - -static VAStatus -gen9_vp9_pak_pipeline(VADriverContextP ctx, - VAProfile profile, - struct encode_state *encode_state, - struct intel_encoder_context *encoder_context) -{ - struct i965_driver_data *i965 = i965_driver_data(ctx); - struct intel_batchbuffer *batch = encoder_context->base.batch; - struct gen9_encoder_context_vp9 *pak_context = encoder_context->mfc_context; - VAStatus va_status; - struct gen9_vp9_state *vp9_state; - VAEncPictureParameterBufferVP9 *pic_param; - int i; - - vp9_state = (struct gen9_vp9_state *)(encoder_context->enc_priv_state); - - if (!vp9_state || !vp9_state->pic_param || !pak_context) - return VA_STATUS_ERROR_INVALID_PARAMETER; - - va_status = gen9_vp9_pak_pipeline_prepare(ctx, encode_state, encoder_context); - - if (va_status != VA_STATUS_SUCCESS) - return va_status; - - if (i965->intel.has_bsd2) - intel_batchbuffer_start_atomic_bcs_override(batch, 0x1000, BSD_RING0); - else - intel_batchbuffer_start_atomic_bcs(batch, 0x1000); - - intel_batchbuffer_emit_mi_flush(batch); - - BEGIN_BCS_BATCH(batch, 64); - for (i = 0; i < 64; i++) - OUT_BCS_BATCH(batch, MI_NOOP); - - ADVANCE_BCS_BATCH(batch); - - for (vp9_state->curr_pak_pass = 0; - vp9_state->curr_pak_pass < vp9_state->num_pak_passes; - vp9_state->curr_pak_pass++) { - - if (vp9_state->curr_pak_pass == 0) { - /* Initialize the VP9 Image Ctrl reg for the first pass */ - struct gpe_mi_load_register_imm_parameter mi_load_reg_imm; - struct vp9_encode_status_buffer_internal *status_buffer; - - status_buffer = &(vp9_state->status_buffer); - memset(&mi_load_reg_imm, 0, sizeof(mi_load_reg_imm)); - mi_load_reg_imm.mmio_offset = status_buffer->vp9_image_ctrl_reg_offset; - mi_load_reg_imm.data = 0; - gen9_gpe_mi_load_register_imm(ctx, batch, &mi_load_reg_imm); - } - gen9_vp9_pak_picture_level(ctx, encode_state, encoder_context); - gen9_vp9_read_mfc_status(ctx, encoder_context); - } - - intel_batchbuffer_end_atomic(batch); - intel_batchbuffer_flush(batch); - - pic_param = vp9_state->pic_param; - vp9_state->vp9_last_frame.frame_width = pic_param->frame_width_dst; - vp9_state->vp9_last_frame.frame_height = pic_param->frame_height_dst; - vp9_state->vp9_last_frame.frame_type = pic_param->pic_flags.bits.frame_type; - vp9_state->vp9_last_frame.show_frame = pic_param->pic_flags.bits.show_frame; - vp9_state->vp9_last_frame.refresh_frame_context = pic_param->pic_flags.bits.refresh_frame_context; - vp9_state->vp9_last_frame.frame_context_idx = pic_param->pic_flags.bits.frame_context_idx; - vp9_state->vp9_last_frame.intra_only = pic_param->pic_flags.bits.intra_only; - vp9_state->frame_number++; - vp9_state->curr_mv_temporal_index ^= 1; - vp9_state->first_frame = 0; - - return VA_STATUS_SUCCESS; -} - -Bool -gen9_vp9_vme_context_init(VADriverContextP ctx, struct intel_encoder_context *encoder_context) -{ - struct gen9_encoder_context_vp9 *vme_context = NULL; - struct gen9_vp9_state *vp9_state = NULL; - - vme_context = calloc(1, sizeof(struct gen9_encoder_context_vp9)); - vp9_state = calloc(1, sizeof(struct gen9_vp9_state)); - - if (!vme_context || !vp9_state) { - if (vme_context) - free(vme_context); - if (vp9_state) - free(vp9_state); - return false; - } - - encoder_context->enc_priv_state = vp9_state; - vme_context->enc_priv_state = vp9_state; - - /* Initialize the features that are supported by VP9 */ - vme_context->hme_supported = 1; - vme_context->use_hw_scoreboard = 1; - vme_context->use_hw_non_stalling_scoreboard = 1; - - vp9_state->tx_mode = TX_MODE_SELECT; - vp9_state->multi_ref_qp_check = 0; - vp9_state->target_usage = INTEL_ENC_VP9_TU_NORMAL; - vp9_state->num_pak_passes = 1; - vp9_state->hme_supported = vme_context->hme_supported; - vp9_state->b16xme_supported = 1; - - if (encoder_context->rate_control_mode != VA_RC_NONE && - encoder_context->rate_control_mode != VA_RC_CQP) { - vp9_state->brc_enabled = 1; - vp9_state->brc_distortion_buffer_supported = 1; - vp9_state->brc_constant_buffer_supported = 1; - vp9_state->num_pak_passes = 4; - } - vp9_state->dys_enabled = 1; /* this is supported by default */ - vp9_state->first_frame = 1; - - /* the definition of status buffer offset for VP9 */ - { - struct vp9_encode_status_buffer_internal *status_buffer; - - status_buffer = &vp9_state->status_buffer; - memset(status_buffer, 0, - sizeof(struct vp9_encode_status_buffer_internal)); - - status_buffer->bs_byte_count_offset = 2048; - status_buffer->image_status_mask_offset = 2052; - status_buffer->image_status_ctrl_offset = 2056; - status_buffer->media_index_offset = 2060; - - status_buffer->vp9_bs_frame_reg_offset = 0x1E9E0; - status_buffer->vp9_image_mask_reg_offset = 0x1E9F0; - status_buffer->vp9_image_ctrl_reg_offset = 0x1E9F4; - } - - gen9_vme_kernels_context_init_vp9(ctx, encoder_context, vme_context); - - encoder_context->vme_context = vme_context; - encoder_context->vme_pipeline = gen9_vme_pipeline_vp9; - encoder_context->vme_context_destroy = gen9_vme_context_destroy_vp9; - - return true; -} - -Bool -gen9_vp9_pak_context_init(VADriverContextP ctx, struct intel_encoder_context *encoder_context) -{ - /* VME & PAK share the same context */ - struct gen9_encoder_context_vp9 *pak_context = encoder_context->vme_context; - - if (!pak_context) - return false; - - encoder_context->mfc_context = pak_context; - encoder_context->mfc_context_destroy = gen9_vp9_pak_context_destroy; - encoder_context->mfc_pipeline = gen9_vp9_pak_pipeline; - encoder_context->mfc_brc_prepare = gen9_vp9_pak_brc_prepare; - - return true; -} - -VAStatus -gen9_vp9_get_coded_status(VADriverContextP ctx, - char *buffer, - struct hw_context *hw_context) -{ - struct intel_encoder_context *encoder_context = - (struct intel_encoder_context *)hw_context; - struct gen9_vp9_state *vp9_state = NULL; - struct vp9_encode_status_buffer_internal *status_buffer; - struct i965_coded_buffer_segment *coded_buf_seg; - unsigned int *buf_ptr; - - if (!encoder_context || !buffer) - return VA_STATUS_ERROR_INVALID_BUFFER; - - vp9_state = (struct gen9_vp9_state *)(encoder_context->enc_priv_state); - coded_buf_seg = (struct i965_coded_buffer_segment *) buffer; - - if (!vp9_state) - return VA_STATUS_ERROR_INVALID_BUFFER; - - status_buffer = &vp9_state->status_buffer; - - buf_ptr = (unsigned int *)(buffer + status_buffer->bs_byte_count_offset); - coded_buf_seg->base.buf = buffer + I965_CODEDBUFFER_HEADER_SIZE; - coded_buf_seg->base.next = NULL; - - /* the stream size is writen into the bs_byte_count_offset address of buffer */ - coded_buf_seg->base.size = *buf_ptr; - - coded_buf_seg->mapped = 1; - - /* One VACodedBufferSegment for VP9 will be added later. - * It will be linked to the next element of coded_buf_seg->base.next - */ - - return VA_STATUS_SUCCESS; -} diff -Nru intel-vaapi-driver-1.7.1/src/gen9_vp9_encoder.h intel-vaapi-driver-1.7.0/src/gen9_vp9_encoder.h --- intel-vaapi-driver-1.7.1/src/gen9_vp9_encoder.h 2016-06-17 01:06:24.000000000 +0000 +++ intel-vaapi-driver-1.7.0/src/gen9_vp9_encoder.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,1979 +0,0 @@ -/* - * Copyright © 2016 Intel Corporation - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the - * "Software"), to deal in the Software without restriction, including - * without limitation the rights to use, copy, modify, merge, publish, - * distribute, sub license, and/or sell copies of the Software, and to - * permit persons to whom the Software is furnished to do so, subject to - * the following conditions: - * - * The above copyright notice and this permission notice (including the - * next paragraph) shall be included in all copies or substantial portions - * of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. - * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR - * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, - * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE - * SOFTWAR - * - * Authors: - * Zhao, Yakui - * - */ - -#ifndef GEN9_VP9_ENCODER_H -#define GEN9_VP9_ENCODER_H - -#include -#include -#include - -#include -#include "i965_gpe_utils.h" - -#include "vp9_probs.h" - -struct encode_state; -struct intel_encoder_context; - -#define KEY_FRAME 0 -#define INTER_FRAME 1 - -#define INTEL_BRC_NONE 0 -#define INTEL_BRC_CBR 1 -#define INTEL_BRC_VBR 2 -#define INTEL_BRC_CQP 3 - -typedef enum _VP9_MEDIA_STATE_TYPE -{ - VP9_MEDIA_STATE_ENC_I_FRAME_DIST = 0, - VP9_MEDIA_STATE_32X_SCALING , - VP9_MEDIA_STATE_16X_SCALING , - VP9_MEDIA_STATE_4X_SCALING , - VP9_MEDIA_STATE_32X_ME , - VP9_MEDIA_STATE_16X_ME , - VP9_MEDIA_STATE_4X_ME , - VP9_MEDIA_STATE_BRC_INIT_RESET , - VP9_MEDIA_STATE_BRC_UPDATE , - VP9_MEDIA_STATE_MBENC_I_32x32 , - VP9_MEDIA_STATE_MBENC_I_16x16 , - VP9_MEDIA_STATE_MBENC_P , - VP9_MEDIA_STATE_MBENC_TX , - VP9_MEDIA_STATE_DYS , - VP9_NUM_MEDIA_STATES -} VP9_MEDIA_STATE_TYPE; - - -enum vp9_walker_degree -{ - VP9_NO_DEGREE = 0, - VP9_26_DEGREE, - VP9_45Z_DEGREE -}; - -struct vp9_encoder_kernel_parameter -{ - unsigned int curbe_size; - unsigned int inline_data_size; - unsigned int sampler_size; -}; - -struct vp9_encoder_kernel_walker_parameter -{ - unsigned int walker_degree; - unsigned int use_scoreboard; - unsigned int scoreboard_mask; - unsigned int no_dependency; - unsigned int resolution_x; - unsigned int resolution_y; -}; - -struct vp9_encoder_scoreboard_parameter -{ - unsigned int mask; - unsigned int type; - unsigned int enable; - unsigned int walkpat_flag; -}; - -typedef enum _INTEL_VP9_ENC_OPERATION -{ - INTEL_VP9_ENC_SCALING4X = 0, - INTEL_VP9_ENC_SCALING2X, - INTEL_VP9_ENC_ME, - INTEL_VP9_ENC_BRC, - INTEL_VP9_ENC_MBENC, - INTEL_VP9_ENC_DYS -} INTEL_VP9_ENC_OPERATION; - -struct gen9_surface_vp9 -{ - VADriverContextP ctx; - VASurfaceID scaled_4x_surface_id; - struct object_surface *scaled_4x_surface_obj; - VASurfaceID scaled_16x_surface_id; - struct object_surface *scaled_16x_surface_obj; - - VASurfaceID dys_surface_id; - struct object_surface *dys_surface_obj; - VASurfaceID dys_4x_surface_id; - struct object_surface *dys_4x_surface_obj; - VASurfaceID dys_16x_surface_id; - struct object_surface *dys_16x_surface_obj; - int dys_frame_width; - int dys_frame_height; - int frame_width; - int frame_height; - unsigned int qp_value; - uint8_t dys_hme_flag; -}; - -/* The definition for Scaling */ -enum vp9_binding_table_offset_scaling -{ - VP9_BTI_SCALING_FRAME_SRC_Y = 0, - VP9_BTI_SCALING_FRAME_DST_Y = 1, - VP9_BTI_SCALING_FRAME_MBVPROCSTATS_DST_CM = 6, - VP9_BTI_SCALING_NUM_SURFACES = 8 -}; - - -typedef struct _vp9_scaling4x_curbe_data_cm -{ - struct - { - uint32_t input_picture_width :16; - uint32_t input_picture_height :16; - } dw0; - - struct { - uint32_t input_y_bti; - } dw1; - - struct { - uint32_t output_y_bti; - } dw2; - - struct { - uint32_t reserved; - } dw3; - - struct { - uint32_t reserved; - } dw4; - - struct { - uint32_t reserved; - } dw5; - - struct - { - uint32_t reserved0 : 1; - uint32_t enable_mb_variance_output : 1; - uint32_t enable_mb_pixel_average_output : 1; - uint32_t enable_blk8x8_stat_output : 1; - uint32_t reserved1 : 28; - } dw6; - - struct { - uint32_t reserved; - } dw7; - - struct { - uint32_t reserved; - } dw8; - - struct { - uint32_t reserved; - } dw9; - - struct { - uint32_t mbv_proc_stat_bti; - } dw10; - - struct { - uint32_t reserved; - } dw11; -} vp9_scaling4x_curbe_data_cm; - -typedef struct _vp9_scaling2x_curbe_data_cm -{ - struct - { - uint32_t input_picture_width :16; - uint32_t input_picture_height :16; - } dw0; - - /* dw1-dw7 */ - uint32_t reserved1[7]; - - struct { - uint32_t input_y_bti; - } dw8; - - struct { - uint32_t output_y_bti; - } dw9; - - uint32_t reserved2[2]; -} vp9_scaling2x_curbe_data_cm; - -typedef struct _vp9_scaling4x_inline_data_cm -{ - struct - { - uint32_t dstblk_hori_origin : 16; - uint32_t dstblk_vert_origin : 16; - } dw0; - - struct - { - uint32_t horiblk_compmask_layer0 : 16; - uint32_t vertblk_compmask_layer0 : 16; - } dw1; - - struct - { - uint32_t horiblk_compmask_layer1 : 16; - uint32_t vertblk_compmask_layer1 : 16; - } dw2; - - struct - { - uint32_t horiblk_compmask_layer2 : 16; - uint32_t vertblk_compmask_layer2 : 16; - } dw3; - - struct - { - float video_xscaling_step; - } dw4; - - struct - { - float video_step_delta; - } dw5; - - - struct - { - uint32_t vert_blk_num :17; - uint32_t area_interest :1; - uint32_t reserved :14; - } dw6; - - struct - { - uint32_t grp_id_num; - } dw7; - - struct - { - uint32_t horiblk_compmask_layer3 : 16; - uint32_t vertblk_compmask_layer3 : 16; - } dw8; - - struct - { - uint32_t horiblk_compmask_layer4 : 16; - uint32_t vertblk_compmask_layer4 : 16; - } dw9; - - struct - { - uint32_t horiblk_compmask_layer5 : 16; - uint32_t vertblk_compmask_layer5 : 16; - } dw10; - - struct - { - uint32_t horiblk_compmask_layer6 : 16; - uint32_t vertblk_compmask_layer6 : 16; - } dw11; - - struct - { - uint32_t horiblk_compmask_layer7 : 16; - uint32_t vertblk_compmask_layer7 : 16; - } dw12; - - struct { - uint32_t reserved; - } dw13; - - struct { - uint32_t reserved; - } dw14; - - struct { - uint32_t reserved; - } dw15; -} vp9_scaling4x_inline_data_cm; - -#define VP9_SCALING_4X 0 -#define VP9_SCALING_2X 1 -#define NUM_VP9_SCALING 2 - -typedef struct _vp9_bti_scaling_offset -{ - uint32_t scaling_frame_src_y; - uint32_t scaling_frame_dst_y; - uint32_t reserved; - uint32_t scaling_frame_mbv_proc_stat_dst; -} vp9_bti_scaling_offset; - -struct vp9_scaling_context -{ - struct i965_gpe_context gpe_contexts[NUM_VP9_SCALING]; - vp9_bti_scaling_offset scaling_4x_bti; - vp9_bti_scaling_offset scaling_2x_bti; -}; - -struct gen9_search_path_delta -{ - char search_path_delta_x:4; - char search_path_delta_y:4; -}; - -struct vp9_binding_table_me -{ - uint32_t memv_data_surface_offset; - uint32_t memv16x_data_surface_offset; - uint32_t me_dist_offset; - uint32_t me_brc_dist_offset; - uint32_t me_curr_picl0_offset; - uint32_t me_curr_picl1_offset; -}; - -enum vp9_binding_table_offset_me -{ - VP9_BTI_ME_MV_DATA_SURFACE = 0, - VP9_BTI_16XME_MV_DATA_SURFACE = 1, - VP9_BTI_ME_DISTORTION_SURFACE = 2, - VP9_BTI_ME_BRC_DISTORTION_SURFACE = 3, - VP9_BTI_ME_CURR_PIC_L0 = 4, - VP9_BTI_ME_CURR_PIC_L1 = VP9_BTI_ME_CURR_PIC_L0 + 17, - VP9_BTI_ME_NUM_SURFACES = VP9_BTI_ME_CURR_PIC_L1 + 5 -}; - -enum VP9_ENC_ME_MODES -{ - VP9_ENC_ME16X_BEFORE_ME4X = 0, - VP9_ENC_ME16X_ONLY = 1, - VP9_ENC_ME4X_ONLY = 2, - VP9_ENC_ME4X_AFTER_ME16X = 3 -}; - -typedef struct _vp9_me_curbe_data -{ - struct - { - uint32_t skip_mode_enable:1; - uint32_t adaptive_enable:1; - uint32_t bi_mix_dis:1; - uint32_t reserved0:2; - uint32_t early_ime_success_enable:1; - uint32_t reserved1:1; - uint32_t t8x8_flag_for_inter_enable:1; - uint32_t reserved2:16; - uint32_t early_ime_stop:8; - } dw0; - - struct { - uint32_t max_num_mvs:6; - uint32_t reserved0:10; - uint32_t bi_weight:6; - uint32_t reserved1:6; - uint32_t uni_mix_disable:1; - uint32_t reserved2:3; - } dw1; - - struct { - uint32_t max_len_sp:8; - uint32_t max_num_su:8; - uint32_t reserved0:16; - } dw2; - - struct { - uint32_t src_size:2; - uint32_t reserved0:2; - uint32_t mb_type_remap:2; - uint32_t src_Access:1; - uint32_t ref_access:1; - uint32_t search_ctrl:3; - uint32_t dual_search_path_option:1; - uint32_t sub_pel_mode:2; - uint32_t skip_type:1; - uint32_t disable_field_cache_allocation:1; - uint32_t inter_chroma_mode:1; - uint32_t ft_enable:1; - uint32_t bme_disable_fbr:1; - uint32_t block_based_skip_enable:1; - uint32_t inter_sad:2; - uint32_t intra_sad:2; - uint32_t sub_mb_part_mask:7; - uint32_t reserved1:1; - } dw3; - - struct { - uint32_t reserved0:8; - uint32_t picture_height_minus1:8; - uint32_t picture_width:8; - uint32_t reserved1:8; - } dw4; - - struct { - uint32_t reserved0:8; - uint32_t qp_prime_y:8; - uint32_t ref_width:8; - uint32_t ref_height:8; - } dw5; - - struct { - uint32_t reserved0:3; - uint32_t write_distortions:1; - uint32_t use_mv_from_prev_step:1; - uint32_t reserved1:3; - uint32_t super_combine_dist:8; - uint32_t max_vmvr:16; - } dw6; - - struct { - uint32_t reserved0:16; - uint32_t mv_cost_scale_factor:2; - uint32_t bilinear_enable:1; - uint32_t src_field_polarity:1; - uint32_t weightedsad_harr:1; - uint32_t ac_only_haar:1; - uint32_t ref_id_cost_mode:1; - uint32_t reserved1:1; - uint32_t skip_center_mask:8; - } dw7; - - struct { - uint32_t mode_0_cost:8; - uint32_t mode_1_cost:8; - uint32_t mode_2_cost:8; - uint32_t mode_3_cost:8; - } dw8; - - struct { - uint32_t mode_4_cost:8; - uint32_t mode_5_cost:8; - uint32_t mode_6_cost:8; - uint32_t mode_7_cost:8; - } dw9; - - struct { - uint32_t mode_8_cost:8; - uint32_t mode_9_cost:8; - uint32_t ref_id_cost:8; - uint32_t chroma_intra_mode_cost:8; - } dw10; - - struct { - uint32_t mv_0_cost:8; - uint32_t mv_1_cost:8; - uint32_t mv_2_cost:8; - uint32_t mv_3_cost:8; - } dw11; - - struct { - uint32_t mv_4_cost:8; - uint32_t mv_5_cost:8; - uint32_t mv_6_cost:8; - uint32_t mv_7_cost:8; - } dw12; - - struct { - uint32_t num_ref_idx_l0_minus1:8; - uint32_t num_ref_idx_l1_minus1:8; - uint32_t actual_mb_width:8; - uint32_t actual_mb_height:8; - } dw13; - - struct { - uint32_t l0_ref_pic_polarity_bits:8; - uint32_t l1_ref_pic_polarity_bits:2; - uint32_t reserved:22; - } dw14; - - struct { - uint32_t prev_mv_read_pos_factor : 8; - uint32_t mv_shift_factor : 8; - uint32_t reserved:16; - } dw15; - - struct { - struct gen9_search_path_delta sp_delta_0; - struct gen9_search_path_delta sp_delta_1; - struct gen9_search_path_delta sp_delta_2; - struct gen9_search_path_delta sp_delta_3; - } dw16; - - struct { - struct gen9_search_path_delta sp_delta_4; - struct gen9_search_path_delta sp_delta_5; - struct gen9_search_path_delta sp_delta_6; - struct gen9_search_path_delta sp_delta_7; - } dw17; - - struct { - struct gen9_search_path_delta sp_delta_8; - struct gen9_search_path_delta sp_delta_9; - struct gen9_search_path_delta sp_delta_10; - struct gen9_search_path_delta sp_delta_11; - } dw18; - - struct { - struct gen9_search_path_delta sp_delta_12; - struct gen9_search_path_delta sp_delta_13; - struct gen9_search_path_delta sp_delta_14; - struct gen9_search_path_delta sp_delta_15; - } dw19; - - struct { - struct gen9_search_path_delta sp_delta_16; - struct gen9_search_path_delta sp_delta_17; - struct gen9_search_path_delta sp_delta_18; - struct gen9_search_path_delta sp_delta_19; - } dw20; - - struct { - struct gen9_search_path_delta sp_delta_20; - struct gen9_search_path_delta sp_delta_21; - struct gen9_search_path_delta sp_delta_22; - struct gen9_search_path_delta sp_delta_23; - } dw21; - - struct { - struct gen9_search_path_delta sp_delta_24; - struct gen9_search_path_delta sp_delta_25; - struct gen9_search_path_delta sp_delta_26; - struct gen9_search_path_delta sp_delta_27; - } dw22; - - struct { - struct gen9_search_path_delta sp_delta_28; - struct gen9_search_path_delta sp_delta_29; - struct gen9_search_path_delta sp_delta_30; - struct gen9_search_path_delta sp_delta_31; - } dw23; - - struct { - struct gen9_search_path_delta sp_delta_32; - struct gen9_search_path_delta sp_delta_33; - struct gen9_search_path_delta sp_delta_34; - struct gen9_search_path_delta sp_delta_35; - } dw24; - - struct { - struct gen9_search_path_delta sp_delta_36; - struct gen9_search_path_delta sp_delta_37; - struct gen9_search_path_delta sp_delta_38; - struct gen9_search_path_delta sp_delta_39; - } dw25; - - struct { - struct gen9_search_path_delta sp_delta_40; - struct gen9_search_path_delta sp_delta_41; - struct gen9_search_path_delta sp_delta_42; - struct gen9_search_path_delta sp_delta_43; - } dw26; - - struct { - struct gen9_search_path_delta sp_delta_44; - struct gen9_search_path_delta sp_delta_45; - struct gen9_search_path_delta sp_delta_46; - struct gen9_search_path_delta sp_delta_47; - } dw27; - - struct { - struct gen9_search_path_delta sp_delta_48; - struct gen9_search_path_delta sp_delta_49; - struct gen9_search_path_delta sp_delta_50; - struct gen9_search_path_delta sp_delta_51; - } dw28; - - struct { - struct gen9_search_path_delta sp_delta_52; - struct gen9_search_path_delta sp_delta_53; - struct gen9_search_path_delta sp_delta_54; - struct gen9_search_path_delta sp_delta_55; - } dw29; - - struct { - uint32_t reserved0; - } dw30; - - struct { - uint32_t reserved0; - } dw31; - - struct { - uint32_t _4x_memv_output_data_surf_index; - } dw32; - - struct { - uint32_t _16x_32x_memv_input_data_surf_index; - } dw33; - - struct { - uint32_t _4x_me_output_dist_surf_index; - } dw34; - - struct { - uint32_t _4x_me_output_brc_dist_surf_index; - } dw35; - - struct { - uint32_t vme_fwd_inter_pred_surf_index; - } dw36; - - struct { - uint32_t vme_bdw_inter_pred_surf_index; - } dw37; - - /* reserved */ - struct { - uint32_t reserved; - } dw38; -} vp9_me_curbe_data; - -struct vp9_me_context -{ - struct i965_gpe_context gpe_context; - struct vp9_binding_table_me vp9_me_bti; -}; - - -enum vp9_binding_table_offset_mbenc -{ - VP9_BTI_MBENC_CURR_Y_G9 = 0, - VP9_BTI_MBENC_CURR_UV_G9 = 1, - VP9_BTI_MBENC_CURR_NV12_G9 = 2, - VP9_BTI_MBENC_LAST_NV12_G9 = 3, - VP9_BTI_MBENC_GOLD_NV12_G9 = 5, - VP9_BTI_MBENC_ALTREF_NV12_G9 = 7, - VP9_BTI_MBENC_SEGMENTATION_MAP_G9 = 8, - VP9_BTI_MBENC_TX_CURBE_G9 = 9, - VP9_BTI_MBENC_HME_MV_DATA_G9 = 10, - VP9_BTI_MBENC_HME_DISTORTION_G9 = 11, - VP9_BTI_MBENC_MODE_DECISION_PREV_G9 = 12, - VP9_BTI_MBENC_MODE_DECISION_G9 = 13, - VP9_BTI_MBENC_OUT_16x16_INTER_MODES_G9 = 14, - VP9_BTI_MBENC_CU_RECORDS_G9 = 15, - VP9_BTI_MBENC_PAK_DATA_G9 = 16, - VP9_BTI_MBENC_NUM_SURFACES_G9 = 17, -}; - -struct vp9_binding_table_mbenc_i32 -{ - uint32_t mbenc_curr_y; - uint32_t mbenc_curr_uv; - uint32_t mbenc_segmentation_map; - uint32_t mbenc_mode_decision; -}; - -struct vp9_binding_table_mbenc_i16 -{ - uint32_t mbenc_curr_y; - uint32_t mbenc_curr_uv; - uint32_t mbenc_curr_nv12; - uint32_t mbenc_segmentation_map; - uint32_t mbenc_tx_curbe; - uint32_t mbenc_mode_decision; -}; - -struct vp9_binding_table_mbenc_p -{ - uint32_t mbenc_curr_y; - uint32_t mbenc_curr_uv; - uint32_t mbenc_curr_nv12; - uint32_t mbenc_lastref_pic; - uint32_t mbenc_goldref_pic; - uint32_t mbenc_altref_pic; - uint32_t mbenc_hme_mvdata; - uint32_t mbenc_hme_distortion; - uint32_t mbenc_segmentation_map; - uint32_t mbenc_tx_curbe; - uint32_t mbenc_mode_decision_prev; - uint32_t mbenc_mode_decision; - uint32_t mbenc_output_intermodes16x16; -}; - -struct vp9_binding_table_mbenc_tx -{ - uint32_t mbenc_curr_y; - uint32_t mbenc_curr_uv; - uint32_t mbenc_segmentation_map; - uint32_t mbenc_mode_decision; - uint32_t mbenc_cu_records; - uint32_t mbenc_pak_data; -}; - -typedef struct _vp9_mbenc_curbe_data -{ - struct { - uint32_t frame_width:16; - uint32_t frame_height:16; - } dw0; - - struct { - uint32_t frame_type : 8; - uint32_t segmentation_enable : 8; - uint32_t ref_frame_flags : 8; - uint32_t min_16for32_check : 8; - } dw1; - - struct { - uint32_t multi_pred : 8; - uint32_t len_sp : 8; - uint32_t search_x : 8; - uint32_t search_y : 8; - } dw2; - - struct { - uint32_t hme_enabled : 8; - uint32_t multi_ref_qp_check : 8; - uint32_t disable_temp_pred : 8; - uint32_t min_ref_for32_check : 8; - } dw3; - - struct { - uint32_t skip16_threshold : 16; - uint32_t disable_mr_threshold : 16; - } dw4; - - struct { - uint32_t enable_mbrc : 8; - uint32_t inter_round : 8; - uint32_t intra_round : 8; - uint32_t frame_qpindex : 8; - } dw5; - - struct { - uint32_t reserved; - } dw6; - - struct { - uint32_t reserved; - } dw7; - - struct { - uint32_t last_ref_qp : 16; - uint32_t golden_ref_qp : 16; - } dw8; - - struct { - uint32_t alt_ref_qp : 16; - uint32_t reserved : 16; - } dw9; - - struct { - uint32_t sum_intra_dist; - } dw10; - - struct { - uint32_t sum_inter_dist; - } dw11; - - struct { - uint32_t num_intra; - } dw12; - - struct { - uint32_t num_lastref; - } dw13; - - struct { - uint32_t num_goldref; - } dw14; - - struct { - uint32_t num_altref; - } dw15; - - struct { - uint32_t ime_search_path_delta03; - } dw16; - - struct { - uint32_t ime_search_path_delta47; - } dw17; - - struct { - uint32_t ime_search_path_delta811; - } dw18; - - struct { - uint32_t ime_search_path_delta1215; - } dw19; - - struct { - uint32_t ime_search_path_delta1619; - } dw20; - - struct { - uint32_t ime_search_path_delta2023; - } dw21; - - struct { - uint32_t ime_search_path_delta2427; - } dw22; - - struct { - uint32_t ime_search_path_delta2831; - } dw23; - - struct { - uint32_t ime_search_path_delta3235; - } dw24; - - struct { - uint32_t ime_search_path_delta3639; - } dw25; - - struct { - uint32_t ime_search_path_delta4043; - } dw26; - - struct { - uint32_t ime_search_path_delta4447; - } dw27; - - struct { - uint32_t ime_search_path_delta4851; - } dw28; - - struct { - uint32_t ime_search_path_delta5255; - } dw29; - - struct { - uint32_t reserved; - } dw30; - - struct { - uint32_t reserved; - } dw31; - - /* DW 32 */ - struct { - struct { - uint32_t segment_qpindex : 8; - uint32_t intra_non_dcpenalty_16x16 : 8; - uint32_t intra_non_dcpenalty_8x8 : 8; - uint32_t intra_non_dcpenalty_4x4 : 8; - } dw32; - - struct { - uint32_t intra_non_dcpenalty_32x32 : 16; - uint32_t reserved : 16; - } dw33; - - - struct { - uint32_t zero_cost : 16; - uint32_t near_cost : 16; - } dw34; - - struct { - uint32_t nearest_cost : 16; - uint32_t refid_cost : 16; - } dw35; - - struct { - uint32_t mv_cost0 : 16; - uint32_t mv_cost1 : 16; - } dw36; - - struct { - uint32_t mv_cost2 : 16; - uint32_t mv_cost3 : 16; - } dw37; - - struct { - uint32_t mv_cost4 : 16; - uint32_t mv_cost5 : 16; - } dw38; - - struct { - uint32_t mv_cost6 : 16; - uint32_t mv_cost7 : 16; - } dw39; - - struct { - uint32_t mv_cost0 : 8; - uint32_t mv_cost1 : 8; - uint32_t mv_cost2 : 8; - uint32_t mv_cost3 : 8; - } dw40; - - struct { - uint32_t mv_cost4 : 8; - uint32_t mv_cost5 : 8; - uint32_t mv_cost6 : 8; - uint32_t mv_cost7 : 8; - } dw41; - - struct { - uint32_t mode_cost0 : 8; - uint32_t mode_cost1 : 8; - uint32_t mode_cost2 : 8; - uint32_t mode_cost3 : 8; - } dw42; - - struct { - uint32_t mode_cost4 : 8; - uint32_t mode_cost5 : 8; - uint32_t mode_cost6 : 8; - uint32_t mode_cost7 : 8; - } dw43; - - struct { - uint32_t mode_cost8 : 8; - uint32_t mode_cost9 : 8; - uint32_t refid_cost : 8; - uint32_t reserved : 8; - } dw44; - - struct { - uint32_t mode_cost_intra32x32 : 16; - uint32_t mode_cost_inter32x32 : 16; - } dw45; - - struct { - uint32_t mode_cost_intra32x16 : 16; - uint32_t reserved : 16; - } dw46; - - struct { - uint32_t lambda_intra : 16; - uint32_t lambda_inter : 16; - } dw47; - } segments[8]; - - /* - Segment 0: dw32 - dw47 - Segment 1 : dw48 - dw63 - Segment 2 : dw64 - dw79 - Segment 3 : dw80 - dw95 - Segment 4 : dw96 - dw111 - Segment 5 : dw112 - dw127 - Segment 6 : dw128 - dw143 - Segment 7 : dw144 - dw159 - */ - - // dw160 - struct { - uint32_t enc_curr_y_surf_bti; - } dw160; - - struct { - uint32_t reserved; - } dw161; - - struct { - uint32_t enc_curr_nv12_surf_bti; - } dw162; - - struct { - uint32_t reserved; - } dw163; - - struct { - uint32_t reserved; - } dw164; - - struct { - uint32_t reserved; - } dw165; - - struct { - uint32_t segmentation_map_bti; - } dw166; - - struct { - uint32_t tx_curbe_bti; - } dw167; - - struct { - uint32_t hme_mvdata_bti; - } dw168; - - struct { - uint32_t hme_distortion_bti; - } dw169; - - struct { - uint32_t reserved; - } dw170; - - struct { - uint32_t mode_decision_prev_bti; - } dw171; - - struct { - uint32_t mode_decision_bti; - } dw172; - - struct { - uint32_t output_16x16_inter_modes_bti; - } dw173; - - struct { - uint32_t cu_record_bti; - } dw174; - - struct { - uint32_t pak_data_bti; - } dw175; -} vp9_mbenc_curbe_data; - - - -#define VP9_MBENC_IDX_KEY_32x32 0 -#define VP9_MBENC_IDX_KEY_16x16 1 -#define VP9_MBENC_IDX_INTER 2 -#define VP9_MBENC_IDX_TX 3 -#define NUM_VP9_MBENC 4 - -struct vp9_mbenc_context -{ - struct i965_gpe_context gpe_contexts[NUM_VP9_MBENC]; - struct vp9_binding_table_mbenc_tx vp9_mbenc_tx_bti; - struct vp9_binding_table_mbenc_i32 vp9_mbenc_i32_bti; - struct vp9_binding_table_mbenc_i16 vp9_mbenc_i16_bti; - struct vp9_binding_table_mbenc_p vp9_mbenc_p_bti; - dri_bo *mbenc_bo_dys; - int mbenc_bo_size; -}; - -enum vp9_binding_table_offset_dys -{ - VP9_BTI_DYS_INPUT_NV12 = 0, - VP9_BTI_DYS_OUTPUT_Y = 1, - VP9_BTI_DYS_OUTPUT_UV = 2, - VP9_BTI_DYS_NUM_SURFACES = 3 -}; - -struct vp9_binding_table_dys -{ - uint32_t dys_input_frame_nv12; - uint32_t dys_output_frame_y; - uint32_t dys_output_frame_uv; -}; - -typedef struct _vp9_dys_curbe_data -{ - struct { - uint32_t input_frame_width : 16; - uint32_t input_frame_height: 16; - } dw0; - - struct { - uint32_t output_frame_width : 16; - uint32_t output_frame_height: 16; - } dw1; - - struct { - float delta_u; - } dw2; - - struct { - float delta_v; - } dw3; - - /* DW4-15 */ - uint32_t reserved[12]; - - struct { - uint32_t input_frame_nv12_bti; - } dw16; - - struct { - uint32_t output_frame_y_bti; - } dw17; - - struct { - uint32_t avs_sample_idx; - } dw18; -} vp9_dys_curbe_data; - -// DYS kernel parameters -typedef struct _gen9_vp9_dys_kernel_param -{ - uint32_t input_width; - uint32_t input_height; - uint32_t output_width; - uint32_t output_height; - struct object_surface *input_surface; - struct object_surface *output_surface; -} gen9_vp9_dys_kernel_param; - -struct vp9_dys_context { - struct i965_gpe_context gpe_context; - struct vp9_binding_table_dys vp9_dys_bti; -}; - -enum vp9_binding_table_offset_brc -{ - VP9_BTI_BRC_SRCY4X_G9 = 0, - VP9_BTI_BRC_VME_COARSE_INTRA_G9 = 1, - VP9_BTI_BRC_HISTORY_G9 = 2, - VP9_BTI_BRC_CONSTANT_DATA_G9 = 3, - VP9_BTI_BRC_DISTORTION_G9 = 4, - VP9_BTI_BRC_MMDK_PAK_OUTPUT_G9 = 5, - VP9_BTI_BRC_MBENC_CURBE_INPUT_G9 = 6, - VP9_BTI_BRC_MBENC_CURBE_OUTPUT_G9 = 7, - VP9_BTI_BRC_PIC_STATE_INPUT_G9 = 8, - VP9_BTI_BRC_PIC_STATE_OUTPUT_G9 = 9, - VP9_BTI_BRC_SEGMENT_STATE_INPUT_G9 = 10, - VP9_BTI_BRC_SEGMENT_STATE_OUTPUT_G9 = 11, - VP9_BTI_BRC_BITSTREAM_SIZE_G9 = 12, - VP9_BTI_BRC_HFW_DATA_G9 = 13, - VP9_BTI_BRC_NUM_SURFACES_G9 = 14, -}; - -struct vp9_binding_table_brc_intra_dist -{ - uint32_t intra_dist_src_y4xsurface; - uint32_t brc_intra_dist_vme_coarse_intra; - uint32_t brc_intra_dist_distortion_buffer; -}; - -struct vp9_binding_table_brc_init -{ - uint32_t brc_history_buffer; - uint32_t brc_distortion_buffer; -}; - - -typedef struct _vp9_brc_curbe_data -{ - struct { - uint32_t frame_width : 16; - uint32_t frame_height : 16; - } dw0; - - struct { - uint32_t frame_type : 8; - uint32_t segmentation_enable : 8; - uint32_t ref_frame_flags : 8; - uint32_t num_tlevels : 8; - } dw1; - - struct { - uint32_t reserved : 16; - uint32_t intra_mode_disable : 8; - uint32_t loop_filter_type : 8; - } dw2; - - struct { - uint32_t max_level_ratiot0 : 8; - uint32_t max_level_ratiot1 : 8; - uint32_t max_level_ratiot2 : 8; - uint32_t max_level_ratiot3 : 8; - } dw3; - - struct { - uint32_t profile_level_max_frame; - } dw4; - - struct { - uint32_t init_buf_fullness; - } dw5; - - struct { - uint32_t buf_size; - } dw6; - - struct { - uint32_t target_bit_rate; - } dw7; - - struct { - uint32_t max_bit_rate; - } dw8; - - struct { - uint32_t min_bit_rate; - } dw9; - - struct { - uint32_t frame_ratem; - } dw10; - - struct { - uint32_t frame_rated; - } dw11; - - struct { - uint32_t brc_flag : 16; - uint32_t gopp : 16; - } dw12; - - struct { - uint32_t init_frame_width : 16; - uint32_t init_frame_height : 16; - } dw13; - - struct { - uint32_t avbr_accuracy : 16; - uint32_t avbr_convergence : 16; - } dw14; - - struct { - uint32_t min_qp : 16; - uint32_t max_qp : 16; - } dw15; - - struct { - uint32_t cq_level : 16; - uint32_t reserved : 16; - } dw16; - - struct { - uint32_t enable_dynamic_scaling : 16; - uint32_t brc_overshoot_cbr_pct : 16; - } dw17; - - struct { - uint32_t pframe_deviation_threshold0 : 8; - uint32_t pframe_deviation_threshold1 : 8; - uint32_t pframe_deviation_threshold2 : 8; - uint32_t pframe_deviation_threshold3 : 8; - } dw18; - - struct { - uint32_t pframe_deviation_threshold4 : 8; - uint32_t pframe_deviation_threshold5 : 8; - uint32_t pframe_deviation_threshold6 : 8; - uint32_t pframe_deviation_threshold7 : 8; - } dw19; - - struct { - uint32_t vbr_deviation_threshold0 : 8; - uint32_t vbr_deviation_threshold1 : 8; - uint32_t vbr_deviation_threshold2 : 8; - uint32_t vbr_deviation_threshold3 : 8; - } dw20; - - struct { - uint32_t vbr_deviation_threshold4 : 8; - uint32_t vbr_deviation_threshold5 : 8; - uint32_t vbr_deviation_threshold6 : 8; - uint32_t vbr_deviation_threshold7 : 8; - } dw21; - - struct { - uint32_t kframe_deviation_threshold0 : 8; - uint32_t kframe_deviation_threshold1 : 8; - uint32_t kframe_deviation_threshold2 : 8; - uint32_t kframe_deviation_threshold3 : 8; - } dw22; - - struct { - uint32_t kframe_deviation_threshold4 : 8; - uint32_t kframe_deviation_threshold5 : 8; - uint32_t kframe_deviation_threshold6 : 8; - uint32_t kframe_deviation_threshold7 : 8; - } dw23; - - struct { - uint32_t target_size; - } dw24; - - struct { - uint32_t frame_number; - } dw25; - - struct { - uint32_t reserved; - } dw26; - - struct { - uint32_t hrd_buffer_fullness_upper_limit; - } dw27; - - struct { - uint32_t hrd_buffer_fullness_lower_limit; - } dw28; - - struct { - uint32_t reserved; - } dw29; - - struct { - uint32_t reserved; - } dw30; - - struct { - uint32_t reserved; - } dw31; - - struct { - uint32_t seg_delta_qp0 : 8; - uint32_t seg_delta_qp1 : 8; - uint32_t seg_delta_qp2 : 8; - uint32_t seg_delta_qp3 : 8; - } dw32; - - struct { - uint32_t seg_delta_qp4 : 8; - uint32_t seg_delta_qp5 : 8; - uint32_t seg_delta_qp6 : 8; - uint32_t seg_delta_qp7 : 8; - } dw33; - - struct { - uint32_t temporal_id : 8; - uint32_t multi_ref_qp_check : 8; - uint32_t reserved : 16; - } dw34; - - struct { - uint32_t max_num_pak_passes : 8; - uint32_t sync_async : 8; - uint32_t overflow : 8; - uint32_t mbrc : 8; - } dw35; - - struct { - uint32_t reserved : 16; - uint32_t segmentation : 8; - uint32_t reserved1 : 8; - } dw36; - - struct { - uint32_t cur_qpindex : 8; - uint32_t lastref_qpindex : 8; - uint32_t goldref_qpindex : 8; - uint32_t altref_qpindex : 8; - } dw37; - - struct { - uint32_t qdelta_ydc : 8; - uint32_t qdelta_uvac : 8; - uint32_t qdelta_uvdc : 8; - uint32_t reserved : 8; - } dw38; - - struct { - uint32_t reserved; - } dw39; - - struct { - uint32_t reserved; - } dw40; - - struct { - uint32_t reserved; - } dw41; - - struct { - uint32_t reserved; - } dw42; - - struct { - uint32_t reserved; - } dw43; - - struct { - uint32_t reserved; - } dw44; - - struct { - uint32_t reserved; - } dw45; - - struct { - uint32_t reserved; - } dw46; - - struct { - uint32_t reserved; - } dw47; - - struct { - uint32_t brc_y4x_input_bti; - } dw48; - - struct { - uint32_t brc_vme_coarse_intra_input_bti; - } dw49; - - struct { - uint32_t brc_history_buffer_bti; - } dw50; - - struct { - uint32_t brc_const_data_input_bti; - } dw51; - - struct { - uint32_t brc_distortion_bti; - } dw52; - - struct { - uint32_t brc_mmdk_pak_output_bti; - } dw53; - - struct { - uint32_t brc_enccurbe_input_bti; - } dw54; - - struct { - uint32_t brc_enccurbe_output_bti; - } dw55; - - struct { - uint32_t brc_pic_state_input_bti; - } dw56; - - struct { - uint32_t brc_pic_state_output_bti; - } dw57; - - struct { - uint32_t brc_seg_state_input_bti; - } dw58; - - struct { - uint32_t brc_seg_state_output_bti; - } dw59; - - struct { - uint32_t brc_bitstream_size_data_bti; - } dw60; - - struct { - uint32_t brc_hfw_data_output_bti; - } dw61; - - struct { - uint32_t reserved; - } dw62; - - struct { - uint32_t reserved; - } dw63; -} vp9_brc_curbe_data; - - -#define VP9_BRC_INTRA_DIST 0 -#define VP9_BRC_INIT 1 -#define VP9_BRC_RESET 2 -#define VP9_BRC_UPDATE 3 -#define NUM_VP9_BRC 4 - -struct vp9_brc_context { - struct i965_gpe_context gpe_contexts[NUM_VP9_BRC]; -}; - -struct gen9_vp9_scaling_curbe_param -{ - uint32_t input_picture_width; - uint32_t input_picture_height; - bool use_16x_scaling; - bool use_32x_scaling; - bool mb_variance_output_enabled; - bool mb_pixel_average_output_enabled; - bool blk8x8_stat_enabled; -}; - -struct gen9_vp9_me_curbe_param -{ - VAEncSequenceParameterBufferVP9 *pseq_param; - VAEncPictureParameterBufferVP9 *ppic_param; - uint32_t frame_width; - uint32_t frame_height; - uint32_t ref_frame_flag; - bool use_16x_me; - bool b16xme_enabled; -}; - -struct gen9_vp9_mbenc_curbe_param -{ - VAEncSequenceParameterBufferVP9 *pseq_param; - VAEncPictureParameterBufferVP9 *ppic_param; - VAEncMiscParameterTypeVP9PerSegmantParam *psegment_param; - - uint16_t frame_width_in_mb; - uint16_t frame_height_in_mb; - uint16_t frame_type; - bool hme_enabled; - uint8_t ref_frame_flag; - VP9_MEDIA_STATE_TYPE media_state_type; - struct object_surface *curr_obj; - struct object_surface *last_ref_obj; - struct object_surface *golden_ref_obj; - struct object_surface *alt_ref_obj; - int picture_coding_type; - bool mbenc_curbe_set_in_brc_update; - bool multi_ref_qp_check; -}; - -struct gen9_vp9_dys_curbe_param -{ - uint32_t input_width; - uint32_t input_height; - uint32_t output_width; - uint32_t output_height; -}; - -struct gen9_vp9_brc_curbe_param -{ - VAEncSequenceParameterBufferVP9 *pseq_param; - VAEncPictureParameterBufferVP9 *ppic_param; - VAEncMiscParameterTypeVP9PerSegmantParam *psegment_param; - - VASurfaceID curr_frame; - uint32_t picture_coding_type; - /* the unit is in bits */ - double *pbrc_init_current_target_buf_full_in_bits; - double *pbrc_init_reset_input_bits_per_frame; - uint32_t *pbrc_init_reset_buf_size_in_bits; - uint32_t frame_width; - uint32_t frame_height; - uint32_t frame_width_in_mb; - uint32_t frame_height_in_mb; - uint32_t ref_frame_flag; - bool hme_enabled; - bool initbrc; - bool mbbrc_enabled; - bool b_used_ref; - int32_t brc_num_pak_passes; - bool multi_ref_qp_check; - int16_t frame_number; - int32_t frame_rate; - VP9_MEDIA_STATE_TYPE media_state_type; -}; - -struct gen9_vp9_scaling_surface_param -{ - VASurfaceID curr_pic; - void *p_scaling_bti; - struct object_surface *input_surface; - struct object_surface *output_surface; - uint32_t input_frame_width; - uint32_t input_frame_height; - uint32_t output_frame_width; - uint32_t output_frame_height; - uint32_t vert_line_stride; - uint32_t vert_line_stride_offset; - bool scaling_out_use_16unorm_surf_fmt; - bool scaling_out_use_32unorm_surf_fmt; - bool mbv_proc_stat_enabled; - struct i965_gpe_resource *pres_mbv_proc_stat_buffer; -}; - -struct gen9_vp9_brc_init_constant_buffer_param -{ - struct i965_gpe_resource *pres_brc_const_data_buffer; - uint16_t picture_coding_type; -}; - -struct gen9_vp9_dys_surface_param -{ - struct object_surface *input_frame; - struct object_surface *output_frame; - uint32_t vert_line_stride; - uint32_t vert_line_stride_offset; -}; - -struct gen9_vp9_me_surface_param -{ - VASurfaceID curr_pic; - struct object_surface *last_ref_pic; - struct object_surface *golden_ref_pic; - struct object_surface *alt_ref_pic; - - struct i965_gpe_resource *pres_4x_memv_data_buffer; - struct i965_gpe_resource *pres_16x_memv_data_buffer; - struct i965_gpe_resource *pres_me_distortion_buffer; - struct i965_gpe_resource *pres_me_brc_distortion_buffer; - uint32_t downscaled_width_in_mb; - uint32_t downscaled_height_in_mb; - uint32_t frame_width; - uint32_t frame_height; - bool use_16x_me; - bool b16xme_enabled; - bool dys_enabled; -}; - -struct gen9_vp9_mbenc_surface_param -{ - int media_state_type; - struct object_surface *last_ref_obj; - struct object_surface *golden_ref_obj; - struct object_surface *alt_ref_obj; - struct object_surface *curr_frame_obj; - unsigned short picture_coding_type; - unsigned int curr_surface_offset; - struct i965_gpe_resource *ps4x_memv_data_buffer; - struct i965_gpe_resource *ps4x_memv_distortion_buffer; - struct i965_gpe_resource *ps_me_brc_distortion_buffer; - uint32_t frame_width; - uint32_t frame_height; - uint32_t frame_width_in_mb; - uint32_t frame_height_in_mb; - bool hme_enabled; - bool segmentation_enabled; - uint32_t mb_data_offset; - struct i965_gpe_resource *pres_mb_code_surface; - struct i965_gpe_resource *pres_segmentation_map; - struct i965_gpe_resource *pres_mode_decision_prev; - struct i965_gpe_resource *pres_mode_decision; - struct i965_gpe_resource *pres_mbenc_curbe_buffer; - struct i965_gpe_resource *pres_output_16x16_inter_modes; - struct i965_gpe_resource *pres_mode_decision_i32; - - struct i965_gpe_context *gpe_context_tx; -}; - -typedef struct _vp9_frame_status_ -{ - uint16_t frame_width; - uint16_t frame_height; - uint8_t frame_type; - uint8_t show_frame; - uint8_t refresh_frame_context; - uint8_t frame_context_idx; - uint8_t intra_only; -} vp9_frame_status; - -#define VP9_BRC_SEQ 0x01 -#define VP9_BRC_HRD 0x02 -#define VP9_BRC_RC 0x04 -#define VP9_BRC_FR 0x08 -#define VP9_BRC_FAILURE (1 << 31) - -struct gen9_hcpe_pipe_mode_select_param -{ - uint32_t codec_mode; - uint32_t stream_out; -}; - -typedef struct _hcp_surface_state { - struct { - uint32_t surface_pitch : 17; - uint32_t reserved : 11; - uint32_t surface_id : 4; - } dw1; - - struct { - uint32_t y_cb_offset : 15; - uint32_t reserved : 12; - uint32_t surface_format : 5; - } dw2; - - struct { - uint32_t default_alpha : 16; - uint32_t y_cr_offset : 16; - } dw3; - - struct { - uint32_t auxilary_index : 11; - uint32_t reserved0 : 1; - uint32_t memory_compression : 1; - uint32_t reserved1 : 18; - } dw4; -} hcp_surface_state; - -struct gen9_encoder_context_vp9 -{ - struct vp9_scaling_context scaling_context; - struct vp9_me_context me_context; - struct vp9_mbenc_context mbenc_context; - struct vp9_brc_context brc_context; - struct vp9_dys_context dys_context; - void *enc_priv_state; - - struct i965_gpe_resource res_brc_history_buffer; - struct i965_gpe_resource res_brc_const_data_buffer; - struct i965_gpe_resource res_brc_mmdk_pak_buffer; - struct i965_gpe_resource res_brc_mbenc_curbe_write_buffer; - struct i965_gpe_resource res_pic_state_brc_read_buffer; - struct i965_gpe_resource res_pic_state_brc_write_hfw_read_buffer; - struct i965_gpe_resource res_pic_state_hfw_write_buffer; - struct i965_gpe_resource res_seg_state_brc_read_buffer; - struct i965_gpe_resource res_seg_state_brc_write_buffer; - struct i965_gpe_resource res_brc_bitstream_size_buffer; - struct i965_gpe_resource res_brc_hfw_data_buffer; - - struct i965_gpe_resource s4x_memv_distortion_buffer; - struct i965_gpe_resource mb_segment_map_surface; - struct i965_gpe_resource s4x_memv_data_buffer; - struct i965_gpe_resource s16x_memv_data_buffer; - struct i965_gpe_resource res_mode_decision[2]; - struct i965_gpe_resource res_output_16x16_inter_modes; - struct i965_gpe_resource res_mb_code_surface; - - /* PAK resource */ - struct i965_gpe_resource res_hvd_line_buffer; - struct i965_gpe_resource res_hvd_tile_line_buffer; - struct i965_gpe_resource res_deblocking_filter_line_buffer; - struct i965_gpe_resource res_deblocking_filter_tile_line_buffer; - struct i965_gpe_resource res_deblocking_filter_tile_col_buffer; - - struct i965_gpe_resource res_metadata_line_buffer; - struct i965_gpe_resource res_metadata_tile_line_buffer; - struct i965_gpe_resource res_metadata_tile_col_buffer; - - struct i965_gpe_resource res_segmentid_buffer; - struct i965_gpe_resource res_prob_buffer; - struct i965_gpe_resource res_prob_delta_buffer; - struct i965_gpe_resource res_prob_counter_buffer; - - struct i965_gpe_resource res_compressed_input_buffer; - struct i965_gpe_resource res_tile_record_streamout_buffer; - struct i965_gpe_resource res_cu_stat_streamout_buffer; - struct i965_gpe_resource res_mv_temporal_buffer[2]; - struct i965_gpe_resource res_pak_uncompressed_input_buffer; - - char *frame_header_data; - - unsigned int use_hw_scoreboard; - unsigned int use_hw_non_stalling_scoreboard; - unsigned int mb_stats_supported; - unsigned int hme_supported; - unsigned int b32xme_supported; - - unsigned int downscaled_width_in_mb4x; - unsigned int downscaled_height_in_mb4x; - - void (*pfn_set_sample_state_dys)( - VADriverContextP ctx, - struct encode_state *encode_state, - struct i965_gpe_context *gpe_context, - struct intel_encoder_context *encoder_context); - - void (*pfn_set_curbe_mbenc)( - VADriverContextP ctx, - struct encode_state *encode_state, - struct i965_gpe_context *gpe_context, - struct intel_encoder_context *encoder_context, - struct gen9_vp9_mbenc_curbe_param *param); - - void (*pfn_set_curbe_me)( - VADriverContextP ctx, - struct encode_state *encode_state, - struct i965_gpe_context *gpe_context, - struct intel_encoder_context *encoder_context, - struct gen9_vp9_me_curbe_param *param); - - void (*pfn_set_curbe_scaling)( - VADriverContextP ctx, - struct encode_state *encode_state, - struct i965_gpe_context *gpe_context, - struct intel_encoder_context *encoder_context, - struct gen9_vp9_scaling_curbe_param *param); - - void (*pfn_set_curbe_dys)( - VADriverContextP ctx, - struct encode_state *encode_state, - struct i965_gpe_context *gpe_context, - struct intel_encoder_context *encoder_context, - struct gen9_vp9_dys_curbe_param *param); - - void (*pfn_set_curbe_brc)( - VADriverContextP ctx, - struct encode_state *encode_state, - struct i965_gpe_context *gpe_context, - struct intel_encoder_context *encoder_context, - struct gen9_vp9_brc_curbe_param *param); - - void (*pfn_send_me_surface)( - VADriverContextP ctx, - struct encode_state *encode_state, - struct i965_gpe_context *gpe_context, - struct intel_encoder_context *encoder_context, - struct gen9_vp9_me_surface_param *param); - - void (*pfn_send_mbenc_surface)( - VADriverContextP ctx, - struct encode_state *encode_state, - struct i965_gpe_context *gpe_context, - struct intel_encoder_context *encoder_context, - struct gen9_vp9_mbenc_surface_param *mbenc_param); - - void (*pfn_send_scaling_surface)( - VADriverContextP ctx, - struct encode_state *encode_state, - struct i965_gpe_context *gpe_context, - struct intel_encoder_context *encoder_context, - struct gen9_vp9_scaling_surface_param *param); - - void (*pfn_send_dys_surface)( - VADriverContextP ctx, - struct encode_state *encode_state, - struct i965_gpe_context *gpe_context, - struct intel_encoder_context *encoder_context, - struct gen9_vp9_dys_surface_param *param); - - struct { - dri_bo *bo; - } reconstructed_object; - - struct { - dri_bo *bo; - } uncompressed_picture_source; - - struct { - dri_bo *bo; - int offset; - int end_offset; - int status_offset; - } indirect_pak_bse_object; - - struct { - dri_bo *bo; - } reference_surfaces[8]; -}; - -enum INTEL_ENC_VP9_TU_MODE -{ - INTEL_ENC_VP9_TU_QUALITY = 0, - INTEL_ENC_VP9_TU_NORMAL, - INTEL_ENC_VP9_TU_PERFORMANCE -}; - -#define VP9_LAST_REF 0x01 -#define VP9_GOLDEN_REF 0x02 -#define VP9_ALT_REF 0x04 - -/* the vp9_encode_status_buffer is the shadow - * of vp9_encode_status_buffer_internal. - */ -struct vp9_encode_status_buffer_internal -{ - uint32_t bs_byte_count_offset; - uint32_t reserved[15]; - - /* the above is shared with the gen9_encode_status_buffer */ - uint32_t image_status_mask_offset; - uint32_t image_status_ctrl_offset; - - uint32_t vp9_image_mask_reg_offset; - uint32_t vp9_image_ctrl_reg_offset; - uint32_t vp9_bs_frame_reg_offset; - dri_bo *bo; - - uint32_t media_index_offset; -}; - - -struct gen9_vp9_state { - unsigned int brc_inited; - unsigned int brc_reset; - unsigned int brc_enabled; - unsigned int use_hw_scoreboard; - unsigned int use_hw_non_stalling_scoreborad; - unsigned int hme_supported; - unsigned int b16xme_supported; - unsigned int hme_enabled; - unsigned int b16xme_enabled; - - unsigned int frame_width; - unsigned int frame_height; - unsigned int frame_width_in_mb; - unsigned int frame_height_in_mb; - unsigned int frame_width_4x; - unsigned int frame_height_4x; - unsigned int frame_width_16x; - unsigned int frame_height_16x; - unsigned int downscaled_width_4x_in_mb; - unsigned int downscaled_height_4x_in_mb; - unsigned int downscaled_width_16x_in_mb; - unsigned int downscaled_height_16x_in_mb; - - unsigned int res_width; - unsigned int res_height; - int brc_allocated; - VASurfaceID curr_frame; - VASurfaceID last_ref_pic; - VASurfaceID alt_ref_pic; - VASurfaceID golden_ref_pic; - - struct object_surface *input_surface_obj; - struct object_surface *last_ref_obj; - struct object_surface *golden_ref_obj; - struct object_surface *alt_ref_obj; - - VAEncSequenceParameterBufferVP9 *seq_param; - VAEncSequenceParameterBufferVP9 bogus_seq_param; - VAEncPictureParameterBufferVP9 *pic_param; - VAEncMiscParameterTypeVP9PerSegmantParam *segment_param; - double brc_init_current_target_buf_full_in_bits; - double brc_init_reset_input_bits_per_frame; - uint32_t brc_init_reset_buf_size_in_bits; - unsigned int gop_size; - unsigned int target_bit_rate; - unsigned int max_bit_rate; - unsigned int min_bit_rate; - unsigned long init_vbv_buffer_fullness_in_bit; - unsigned long vbv_buffer_size_in_bit; - int frame_number; - uint32_t frame_rate; - uint8_t ref_frame_flag; - uint8_t dys_ref_frame_flag; - uint8_t picture_coding_type; - unsigned int adaptive_transform_decision_enabled; - int curr_mode_decision_index; - int target_usage; - int window_size; - int target_percentage; - unsigned int mb_data_offset; - int curr_pak_pass; - unsigned int brc_flag_check; - bool first_frame; - bool dys_enabled; - bool dys_in_use; - bool mbenc_curbe_set_in_brc_update; - bool multi_ref_qp_check; - bool brc_distortion_buffer_supported; - bool brc_constant_buffer_supported; - bool mbenc_keyframe_dist_enabled; - unsigned int curr_mv_temporal_index; - int tx_mode; - int num_pak_passes; - char *alias_insert_data; - int header_length; - vp9_header_bitoffset frame_header; - - struct vp9_encode_status_buffer_internal status_buffer; - - /* the frame context related with VP9 encoding */ - FRAME_CONTEXT vp9_frame_ctx[FRAME_CONTEXTS]; - FRAME_CONTEXT vp9_current_fc; - int frame_ctx_idx; - - vp9_frame_status vp9_last_frame; -}; - -struct vp9_compressed_element { - uint8_t a_valid : 1; - uint8_t a_probdiff_select: 1; - uint8_t a_prob_select : 1; - uint8_t a_bin : 1; - uint8_t b_valid : 1; - uint8_t b_probdiff_select: 1; - uint8_t b_prob_select : 1; - uint8_t b_bin : 1; -}; - -#define VP9_BRC_HISTORY_BUFFER_SIZE 768 -#define VP9_BRC_CONSTANTSURFACE_SIZE 17792 -#define VP9_BRC_BITSTREAM_SIZE_BUFFER_SIZE 16 -#define VP9_BRC_MMDK_PAK_BUFFER_SIZE 64 -#define VP9_SEGMENT_STATE_BUFFER_SIZE 256 -#define VP9_HFW_BRC_DATA_BUFFER_SIZE 32 - -#endif /* GEN9_VP9_ENCODER_H */ diff -Nru intel-vaapi-driver-1.7.1/src/gen9_vp9_encoder_kernels.c intel-vaapi-driver-1.7.0/src/gen9_vp9_encoder_kernels.c --- intel-vaapi-driver-1.7.1/src/gen9_vp9_encoder_kernels.c 2016-06-17 01:06:24.000000000 +0000 +++ intel-vaapi-driver-1.7.0/src/gen9_vp9_encoder_kernels.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,4955 +0,0 @@ -/* - * * Copyright (c) 2016, Intel Corporation - * - * All rights reserved. - * Redistribution. Redistribution and use in binary form, without modification, are - * permitted provided that the following conditions are met: - * Redistributions must reproduce the above copyright notice and the following - * disclaimer in the documentation and/or other materials provided with the - * distribution. - * Neither the name of Intel Corporation nor the names of its suppliers may be used - * to endorse or promote products derived from this software without specific prior - * written permission. - * No reverse engineering, decompilation, or disassembly of this software is permitted. - * Limited patent license. Intel Corporation grants a world-wide, royalty-free, - * nonexclusive license under patents it now or hereafter owns or controls to make, have made, - * use, import, offer to sell and sell (.Utilize.) this software, but solely to the extent that any - * such patent is necessary to Utilize the software alone. The patent license shall not apply - * to any combinations which include this software. No hardware per se is licensed here under. - - * DISCLAIMER. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT - * HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER - * 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 "gen9_vp9_encoder_kernels.h" - - -const unsigned int media_vp9_kernels[AllVP9ENC_SZ] = { -0x0000000b,0x00000048,0x00001c48,0x00002b08,0x00009c88,0x0000b5c8,0x00011c88,0x00017d08, -0x000183c8,0x00018ac8,0x0001a748,0x0001bac8,0x00000000,0x00000000,0x00000000,0x00000000, -0x00000005,0x2f82124c,0x16000004,0x07ff07ff,0x00000005,0x2f80124c,0x16000006,0x07ff07ff, -0x00000001,0x2f861648,0x00000000,0x00000000,0x00000009,0x2f841248,0x16000f82,0x00030003, -0x00000009,0x2f881248,0x16000f80,0x00030003,0x00000001,0x202c1248,0x00000f88,0x00000000, -0x00000040,0x202e1248,0x16000f88,0x00080008,0x0000000c,0x20301248,0x16000022,0x00020002, -0x00000040,0x203c1248,0x1200002e,0x00004030,0x03000010,0x20001240,0x1200002e,0x00000030, -0x00010001,0x2f861248,0x0000003c,0x00000000,0x00000040,0x20441248,0x1e000030,0xffffffff, -0x04000010,0x20001240,0x12000f88,0x00000030,0x00010001,0x202c1248,0x00000044,0x00000000, -0x00010001,0x2f861648,0x00000000,0x00070007,0x00000009,0x20601248,0x1600002c,0x00020002, -0x20004d01,0x00000407,0x00000009,0x20801228,0x16000f84,0x00020002,0x00000001,0x20841208, -0x00000060,0x00000000,0x00000001,0x2088060c,0x00000000,0x0007001f,0x00000040,0x22000204, -0x06000024,0x02890000,0x0c600031,0x2b803a0c,0x00000080,0x00000200,0x00000040,0x20841228, -0x16000060,0x00080008,0x0c600031,0x2c803a0c,0x00000080,0x00000200,0x00000040,0x20841228, -0x16000060,0x00100010,0x0c600031,0x2d803a0c,0x00000080,0x00000200,0x00000040,0x20841228, -0x16000060,0x00180018,0x0c600031,0x2e803a0c,0x00000080,0x00000200,0x00800040,0x20a02248, -0x228d0b80,0x008d0ba0,0x00800040,0x20e02248,0x228d0bc0,0x008d0be0,0x00800040,0x21202248, -0x228d0c00,0x008d0c20,0x00800040,0x21602248,0x228d0c40,0x008d0c60,0x00800040,0x21a02248, -0x228d0c80,0x008d0ca0,0x00800040,0x21e02248,0x228d0cc0,0x008d0ce0,0x00800040,0x22202248, -0x228d0d00,0x008d0d20,0x00800040,0x22602248,0x228d0d40,0x008d0d60,0x00600040,0x22a01248, -0x124000a0,0x004000a2,0x00600040,0x22b01248,0x124000e0,0x004000e2,0x00600040,0x22c01248, -0x12400120,0x00400122,0x00600040,0x22d01248,0x12400160,0x00400162,0x00600040,0x22e01248, -0x124001a0,0x004001a2,0x00600040,0x22f01248,0x124001e0,0x004001e2,0x00600040,0x23001248, -0x12400220,0x00400222,0x00600040,0x23101248,0x12400260,0x00400262,0x00a00040,0x22a01248, -0x168d02a0,0x00020002,0x00a00040,0x22e01248,0x168d02e0,0x00020002,0x00a0000c,0x22a01248, -0x168d02a0,0x00020002,0x00a0000c,0x22e01248,0x168d02e0,0x00020002,0x00600040,0x22a01248, -0x128d02a0,0x008d02b0,0x00600040,0x22c01248,0x128d02c0,0x008d02d0,0x00600040,0x22e01248, -0x128d02e0,0x008d02f0,0x00600040,0x23001248,0x128d0300,0x008d0310,0x00600040,0x20601248, -0x12aa02a0,0x00aa02a2,0x00600040,0x20701248,0x12aa02e0,0x00aa02e2,0x00800040,0x20601248, -0x168d0060,0x00020002,0x0080000c,0x40801288,0x168d0060,0x00020002,0x00400001,0x23402288, -0x00400080,0x00000000,0x00400001,0x23482288,0x00400088,0x00000000,0x00400001,0x23502288, -0x00400090,0x00000000,0x00400001,0x23582288,0x00400098,0x00000000,0x00800040,0x20a02248, -0x228d0b90,0x008d0bb0,0x00800040,0x20e02248,0x228d0bd0,0x008d0bf0,0x00800040,0x21202248, -0x228d0c10,0x008d0c30,0x00800040,0x21602248,0x228d0c50,0x008d0c70,0x00800040,0x21a02248, -0x228d0c90,0x008d0cb0,0x00800040,0x21e02248,0x228d0cd0,0x008d0cf0,0x00800040,0x22202248, -0x228d0d10,0x008d0d30,0x00800040,0x22602248,0x228d0d50,0x008d0d70,0x00600040,0x22a01248, -0x124000a0,0x004000a2,0x00600040,0x22b01248,0x124000e0,0x004000e2,0x00600040,0x22c01248, -0x12400120,0x00400122,0x00600040,0x22d01248,0x12400160,0x00400162,0x00600040,0x22e01248, -0x124001a0,0x004001a2,0x00600040,0x22f01248,0x124001e0,0x004001e2,0x00600040,0x23001248, -0x12400220,0x00400222,0x00600040,0x23101248,0x12400260,0x00400262,0x00a00040,0x22a01248, -0x168d02a0,0x00020002,0x00a00040,0x22e01248,0x168d02e0,0x00020002,0x00a0000c,0x22a01248, -0x168d02a0,0x00020002,0x00a0000c,0x22e01248,0x168d02e0,0x00020002,0x00600040,0x22a01248, -0x128d02a0,0x008d02b0,0x00600040,0x22c01248,0x128d02c0,0x008d02d0,0x00600040,0x22e01248, -0x128d02e0,0x008d02f0,0x00600040,0x23001248,0x128d0300,0x008d0310,0x00600040,0x20601248, -0x12aa02a0,0x00aa02a2,0x00600040,0x20701248,0x12aa02e0,0x00aa02e2,0x00800040,0x20601248, -0x168d0060,0x00020002,0x0080000c,0x40801288,0x168d0060,0x00020002,0x00400001,0x23442288, -0x00400080,0x00000000,0x00400001,0x234c2288,0x00400088,0x00000000,0x00400001,0x23542288, -0x00400090,0x00000000,0x00400001,0x235c2288,0x00400098,0x00000000,0x00800040,0x20a02248, -0x228d0d80,0x008d0da0,0x00800040,0x20e02248,0x228d0dc0,0x008d0de0,0x00800040,0x21202248, -0x228d0e00,0x008d0e20,0x00800040,0x21602248,0x228d0e40,0x008d0e60,0x00800040,0x21a02248, -0x228d0e80,0x008d0ea0,0x00800040,0x21e02248,0x228d0ec0,0x008d0ee0,0x00800040,0x22202248, -0x228d0f00,0x008d0f20,0x00800040,0x22602248,0x228d0f40,0x008d0f60,0x00600040,0x22a01248, -0x124000a0,0x004000a2,0x00600040,0x22b01248,0x124000e0,0x004000e2,0x00600040,0x22c01248, -0x12400120,0x00400122,0x00600040,0x22d01248,0x12400160,0x00400162,0x00600040,0x22e01248, -0x124001a0,0x004001a2,0x00600040,0x22f01248,0x124001e0,0x004001e2,0x00600040,0x23001248, -0x12400220,0x00400222,0x00600040,0x23101248,0x12400260,0x00400262,0x00a00040,0x22a01248, -0x168d02a0,0x00020002,0x00a00040,0x22e01248,0x168d02e0,0x00020002,0x00a0000c,0x22a01248, -0x168d02a0,0x00020002,0x00a0000c,0x22e01248,0x168d02e0,0x00020002,0x00600040,0x22a01248, -0x128d02a0,0x008d02b0,0x00600040,0x22c01248,0x128d02c0,0x008d02d0,0x00600040,0x22e01248, -0x128d02e0,0x008d02f0,0x00600040,0x23001248,0x128d0300,0x008d0310,0x00600040,0x20601248, -0x12aa02a0,0x00aa02a2,0x00600040,0x20701248,0x12aa02e0,0x00aa02e2,0x00800040,0x20601248, -0x168d0060,0x00020002,0x0080000c,0x40801288,0x168d0060,0x00020002,0x00400001,0x23602288, -0x00400080,0x00000000,0x00400001,0x23682288,0x00400088,0x00000000,0x00400001,0x23702288, -0x00400090,0x00000000,0x00400001,0x23782288,0x00400098,0x00000000,0x00800040,0x20a02248, -0x228d0d90,0x008d0db0,0x00800040,0x20e02248,0x228d0dd0,0x008d0df0,0x00800040,0x21202248, -0x228d0e10,0x008d0e30,0x00800040,0x21602248,0x228d0e50,0x008d0e70,0x00800040,0x21a02248, -0x228d0e90,0x008d0eb0,0x00800040,0x21e02248,0x228d0ed0,0x008d0ef0,0x00800040,0x22202248, -0x228d0f10,0x008d0f30,0x00800040,0x22602248,0x228d0f50,0x008d0f70,0x00600040,0x22a01248, -0x124000a0,0x004000a2,0x00600040,0x22b01248,0x124000e0,0x004000e2,0x00600040,0x22c01248, -0x12400120,0x00400122,0x00600040,0x22d01248,0x12400160,0x00400162,0x00600040,0x22e01248, -0x124001a0,0x004001a2,0x00600040,0x22f01248,0x124001e0,0x004001e2,0x00600040,0x23001248, -0x12400220,0x00400222,0x00600040,0x23101248,0x12400260,0x00400262,0x00a00040,0x22a01248, -0x168d02a0,0x00020002,0x00a00040,0x22e01248,0x168d02e0,0x00020002,0x00a0000c,0x22a01248, -0x168d02a0,0x00020002,0x00a0000c,0x22e01248,0x168d02e0,0x00020002,0x00600040,0x22a01248, -0x128d02a0,0x008d02b0,0x00600040,0x22c01248,0x128d02c0,0x008d02d0,0x00600040,0x22e01248, -0x128d02e0,0x008d02f0,0x00600040,0x23001248,0x128d0300,0x008d0310,0x00600040,0x20601248, -0x12aa02a0,0x00aa02a2,0x00600040,0x20701248,0x12aa02e0,0x00aa02e2,0x00800040,0x20601248, -0x168d0060,0x00020002,0x0080000c,0x40801288,0x168d0060,0x00020002,0x00400001,0x23642288, -0x00400080,0x00000000,0x00400001,0x236c2288,0x00400088,0x00000000,0x00400001,0x23742288, -0x00400090,0x00000000,0x00400001,0x237c2288,0x00400098,0x00000000,0x02000010,0x20001260, -0x1e000f86,0x00000000,0x00010020,0x34000004,0x0e001400,0x00000068,0x20004d01,0x00000307, -0x00000001,0x20601208,0x00000f84,0x00000000,0x00000001,0x20641208,0x00000f88,0x00000000, -0x00000001,0x2068060c,0x00000000,0x00070007,0x00000040,0x22000204,0x06000028,0x020a8000, -0x0c600033,0x0001a014,0x00002062,0x00000000,0x00000020,0x34000004,0x0e001400,0x00000268, -0x00000040,0x20241228,0x16004f86,0x00070007,0x00000041,0x202c1248,0x16000024,0x00080008, -0x00000040,0x22001240,0x1600002c,0x03400340,0x00600001,0x20502288,0x00208000,0x00000000, -0x05000010,0x20000200,0x16000024,0x00010001,0x00000001,0x20441e68,0x00000000,0x00010001, -0x00010002,0x404c1a88,0x1e000044,0x00000000,0x02600005,0x20002260,0x1600004c,0x00010001, -0x00610001,0x23482288,0x008d0050,0x00000000,0x05000010,0x20000200,0x16000024,0x00020002, -0x00010002,0x404c1a88,0x1e000044,0x00000000,0x02600005,0x20002260,0x1600004c,0x00010001, -0x00610001,0x23502288,0x008d0050,0x00000000,0x05000010,0x20000200,0x16000024,0x00030003, -0x00010002,0x404c1a88,0x1e000044,0x00000000,0x02600005,0x20002260,0x1600004c,0x00010001, -0x00610001,0x23582288,0x008d0050,0x00000000,0x05000010,0x20000200,0x16000024,0x00040004, -0x00010002,0x404c1a88,0x1e000044,0x00000000,0x02600005,0x20002260,0x1600004c,0x00010001, -0x00610001,0x23602288,0x008d0050,0x00000000,0x05000010,0x20000200,0x16000024,0x00050005, -0x00010002,0x404c1a88,0x1e000044,0x00000000,0x02600005,0x20002260,0x1600004c,0x00010001, -0x00610001,0x23682288,0x008d0050,0x00000000,0x05000010,0x20000200,0x16000024,0x00060006, -0x00010002,0x404c1a88,0x1e000044,0x00000000,0x02600005,0x20002260,0x1600004c,0x00010001, -0x00610001,0x23702288,0x008d0050,0x00000000,0x05000010,0x20000200,0x16000024,0x00070007, -0x00010002,0x404c1a88,0x1e000044,0x00000000,0x02600005,0x20002260,0x1600004c,0x00010001, -0x00610001,0x23782288,0x008d0050,0x00000000,0x20004d01,0x00000307,0x00000001,0x20601208, -0x00000f84,0x00000000,0x00000001,0x20641208,0x00000f88,0x00000000,0x00000001,0x2068060c, -0x00000000,0x00070007,0x00000040,0x22000204,0x06000028,0x020a8000,0x0c600033,0x0001a014, -0x00002062,0x00000000,0x00000005,0x4f840248,0x16000038,0x00010001,0x00000005,0x4f880248, -0x16000038,0x00020002,0x00000005,0x4f8c0248,0x16000038,0x00040004,0x01000010,0x20000200, -0x16000038,0x00000000,0x00010020,0x34000004,0x0e001400,0x00000ed8,0x00a00041,0x20602248, -0x228d0b80,0x008d0b80,0x00a00041,0x20a02248,0x228d0ba0,0x008d0ba0,0x00a00041,0x20e02248, -0x228d0bc0,0x008d0bc0,0x00a00041,0x21202248,0x228d0be0,0x008d0be0,0x00a00041,0x21602248, -0x228d0c00,0x008d0c00,0x00a00041,0x21a02248,0x228d0c20,0x008d0c20,0x00a00041,0x21e02248, -0x228d0c40,0x008d0c40,0x00a00041,0x22202248,0x228d0c60,0x008d0c60,0x00a00041,0x22602248, -0x228d0c80,0x008d0c80,0x00a00041,0x22a02248,0x228d0ca0,0x008d0ca0,0x00a00041,0x22e02248, -0x228d0cc0,0x008d0cc0,0x00a00041,0x23202248,0x228d0ce0,0x008d0ce0,0x00a00041,0x23602248, -0x228d0d00,0x008d0d00,0x00a00041,0x23a02248,0x228d0d20,0x008d0d20,0x00a00041,0x23e02248, -0x228d0d40,0x008d0d40,0x00a00041,0x24202248,0x228d0d60,0x008d0d60,0x00a00041,0x24602248, -0x228d0d80,0x008d0d80,0x00a00041,0x24a02248,0x228d0da0,0x008d0da0,0x00a00041,0x24e02248, -0x228d0dc0,0x008d0dc0,0x00a00041,0x25202248,0x228d0de0,0x008d0de0,0x00a00041,0x25602248, -0x228d0e00,0x008d0e00,0x00a00041,0x25a02248,0x228d0e20,0x008d0e20,0x00a00041,0x25e02248, -0x228d0e40,0x008d0e40,0x00a00041,0x26202248,0x228d0e60,0x008d0e60,0x00a00041,0x26602248, -0x228d0e80,0x008d0e80,0x00a00041,0x26a02248,0x228d0ea0,0x008d0ea0,0x00a00041,0x26e02248, -0x228d0ec0,0x008d0ec0,0x00a00041,0x27202248,0x228d0ee0,0x008d0ee0,0x00a00041,0x27602248, -0x228d0f00,0x008d0f00,0x00a00041,0x27a02248,0x228d0f20,0x008d0f20,0x00a00041,0x27e02248, -0x228d0f40,0x008d0f40,0x00a00041,0x28202248,0x228d0f60,0x008d0f60,0x00800040,0x28602248, -0x228d0b80,0x008d0ba0,0x00800040,0x28802248,0x228d0bc0,0x008d0be0,0x00800040,0x28a02248, -0x228d0c00,0x008d0c20,0x00800040,0x28c02248,0x228d0c40,0x008d0c60,0x00800040,0x28e02248, -0x228d0c80,0x008d0ca0,0x00800040,0x29002248,0x228d0cc0,0x008d0ce0,0x00800040,0x29202248, -0x228d0d00,0x008d0d20,0x00800040,0x29402248,0x228d0d40,0x008d0d60,0x00a00040,0x28601248, -0x128d0860,0x008d08a0,0x00a00040,0x28a01248,0x128d08e0,0x008d0920,0x00a00040,0x28601248, -0x128d0860,0x008d08a0,0x00800040,0x28601248,0x128d0860,0x008d0880,0x00600040,0x28601248, -0x128d0860,0x008d0870,0x00400040,0x28601248,0x12690860,0x00690868,0x00200040,0x28601248, -0x12450860,0x00450864,0x80000040,0x20501208,0x12000860,0x00000862,0x00800040,0x29601208, -0x128d0060,0x008d00a0,0x00800040,0x29a01208,0x128d00e0,0x008d0120,0x00800040,0x29e01208, -0x128d0160,0x008d01a0,0x00800040,0x2a201208,0x128d01e0,0x008d0220,0x00800040,0x2a601208, -0x128d0260,0x008d02a0,0x00800040,0x2aa01208,0x128d02e0,0x008d0320,0x00800040,0x2ae01208, -0x128d0360,0x008d03a0,0x00800040,0x2b201208,0x128d03e0,0x008d0420,0x20013640,0x4d4b4be7, -0x20013640,0x514f4de7,0x20013640,0x55534fe7,0x20013640,0x595751e7,0x20013640,0x4d4b4be7, -0x20013640,0x514f4de7,0x20013640,0x4d4b4be7,0x20012b40,0x4c4b4be7,0x606d2140,0x4b4b4bad, -0x00200040,0x29600208,0x02450960,0x00450968,0x80000040,0x2f900208,0x02000960,0x00000964, -0x00800040,0x28602248,0x228d0b90,0x008d0bb0,0x00800040,0x28802248,0x228d0bd0,0x008d0bf0, -0x00800040,0x28a02248,0x228d0c10,0x008d0c30,0x00800040,0x28c02248,0x228d0c50,0x008d0c70, -0x00800040,0x28e02248,0x228d0c90,0x008d0cb0,0x00800040,0x29002248,0x228d0cd0,0x008d0cf0, -0x00800040,0x29202248,0x228d0d10,0x008d0d30,0x00800040,0x29402248,0x228d0d50,0x008d0d70, -0x00a00040,0x28601248,0x128d0860,0x008d08a0,0x00a00040,0x28a01248,0x128d08e0,0x008d0920, -0x00a00040,0x28601248,0x128d0860,0x008d08a0,0x00800040,0x28601248,0x128d0860,0x008d0880, -0x00600040,0x28601248,0x128d0860,0x008d0870,0x00400040,0x28601248,0x12690860,0x00690868, -0x00200040,0x28601248,0x12450860,0x00450864,0x80000040,0x20541208,0x12000860,0x00000862, -0x00800040,0x29601208,0x128d0080,0x008d00c0,0x00800040,0x29a01208,0x128d0100,0x008d0140, -0x00800040,0x29e01208,0x128d0180,0x008d01c0,0x00800040,0x2a201208,0x128d0200,0x008d0240, -0x00800040,0x2a601208,0x128d0280,0x008d02c0,0x00800040,0x2aa01208,0x128d0300,0x008d0340, -0x00800040,0x2ae01208,0x128d0380,0x008d03c0,0x00800040,0x2b201208,0x128d0400,0x008d0440, -0x20013640,0x4d4b4be7,0x20013640,0x514f4de7,0x20013640,0x55534fe7,0x20013640,0x595751e7, -0x20013640,0x4d4b4be7,0x20013640,0x514f4de7,0x20013640,0x4d4b4be7,0x20012b40,0x4c4b4be7, -0x606d2140,0x4b4b4bad,0x00200040,0x29600208,0x02450960,0x00450968,0x80000040,0x2f940208, -0x02000960,0x00000964,0x00800040,0x28602248,0x228d0d80,0x008d0da0,0x00800040,0x28802248, -0x228d0dc0,0x008d0de0,0x00800040,0x28a02248,0x228d0e00,0x008d0e20,0x00800040,0x28c02248, -0x228d0e40,0x008d0e60,0x00800040,0x28e02248,0x228d0e80,0x008d0ea0,0x00800040,0x29002248, -0x228d0ec0,0x008d0ee0,0x00800040,0x29202248,0x228d0f00,0x008d0f20,0x00800040,0x29402248, -0x228d0f40,0x008d0f60,0x00a00040,0x28601248,0x128d0860,0x008d08a0,0x00a00040,0x28a01248, -0x128d08e0,0x008d0920,0x00a00040,0x28601248,0x128d0860,0x008d08a0,0x00800040,0x28601248, -0x128d0860,0x008d0880,0x00600040,0x28601248,0x128d0860,0x008d0870,0x00400040,0x28601248, -0x12690860,0x00690868,0x00200040,0x28601248,0x12450860,0x00450864,0x80000040,0x20581208, -0x12000860,0x00000862,0x00800040,0x29601208,0x128d0460,0x008d04a0,0x00800040,0x29a01208, -0x128d04e0,0x008d0520,0x00800040,0x29e01208,0x128d0560,0x008d05a0,0x00800040,0x2a201208, -0x128d05e0,0x008d0620,0x00800040,0x2a601208,0x128d0660,0x008d06a0,0x00800040,0x2aa01208, -0x128d06e0,0x008d0720,0x00800040,0x2ae01208,0x128d0760,0x008d07a0,0x00800040,0x2b201208, -0x128d07e0,0x008d0820,0x20013640,0x4d4b4be7,0x20013640,0x514f4de7,0x20013640,0x55534fe7, -0x20013640,0x595751e7,0x20013640,0x4d4b4be7,0x20013640,0x514f4de7,0x20013640,0x4d4b4be7, -0x20012b40,0x4c4b4be7,0x606d2140,0x4b4b4bad,0x00200040,0x29600208,0x02450960,0x00450968, -0x80000040,0x2f980208,0x02000960,0x00000964,0x00800040,0x28602248,0x228d0d90,0x008d0db0, -0x00800040,0x28802248,0x228d0dd0,0x008d0df0,0x00800040,0x28a02248,0x228d0e10,0x008d0e30, -0x00800040,0x28c02248,0x228d0e50,0x008d0e70,0x00800040,0x28e02248,0x228d0e90,0x008d0eb0, -0x00800040,0x29002248,0x228d0ed0,0x008d0ef0,0x00800040,0x29202248,0x228d0f10,0x008d0f30, -0x00800040,0x29402248,0x228d0f50,0x008d0f70,0x00a00040,0x28601248,0x128d0860,0x008d08a0, -0x00a00040,0x28a01248,0x128d08e0,0x008d0920,0x00a00040,0x28601248,0x128d0860,0x008d08a0, -0x00800040,0x28601248,0x128d0860,0x008d0880,0x00600040,0x28601248,0x128d0860,0x008d0870, -0x00400040,0x28601248,0x12690860,0x00690868,0x00200040,0x28601248,0x12450860,0x00450864, -0x80000040,0x205c1208,0x12000860,0x00000862,0x00800040,0x29601208,0x128d0480,0x008d04c0, -0x00800040,0x29a01208,0x128d0500,0x008d0540,0x00800040,0x29e01208,0x128d0580,0x008d05c0, -0x00800040,0x2a201208,0x128d0600,0x008d0640,0x00800040,0x2a601208,0x128d0680,0x008d06c0, -0x00800040,0x2aa01208,0x128d0700,0x008d0740,0x00800040,0x2ae01208,0x128d0780,0x008d07c0, -0x00800040,0x2b201208,0x128d0800,0x008d0840,0x20013640,0x4d4b4be7,0x20013640,0x514f4de7, -0x20013640,0x55534fe7,0x20013640,0x595751e7,0x20013640,0x4d4b4be7,0x20013640,0x514f4de7, -0x20013640,0x4d4b4be7,0x20012b40,0x4c4b4be7,0x606d2140,0x4b4b4bad,0x00200040,0x29600208, -0x02450960,0x00450968,0x80000040,0x2f9c0208,0x02000960,0x00000964,0x0040000c,0x21c00208, -0x16690050,0x00080008,0x00400041,0x20500208,0x02690050,0x00690050,0x0040000c,0x20500208, -0x16690050,0x00080008,0x00400040,0x2f900208,0x02690f90,0x00694050,0x0040000c,0x2f900208, -0x16690f90,0x00080008,0x05400010,0x20000200,0x02690f90,0x00000034,0x00000001,0x20601e68, -0x00000000,0x00010001,0x00410002,0x20701a48,0x1e000060,0x00000000,0x00400001,0x22401208, -0x00690070,0x00000000,0x0000000c,0x20801248,0x16000020,0x00040004,0x00000005,0x20841228, -0x16000020,0x000f000f,0x03000010,0x20000a20,0x1e000084,0x00000000,0x00010002,0x20a01a28, -0x1e000060,0x00000000,0x00000040,0x40c01248,0x0a000080,0x000000a0,0x00000041,0x20c41228, -0x12000f80,0x000000c0,0x00000040,0x20440a28,0x120000c4,0x00000f82,0x00000041,0x21d00a08, -0x1e000044,0x00680068,0x00000041,0x20241208,0x160000c0,0x00340034,0x00000040,0x20e00228, -0x020001d0,0x00000024,0x00800001,0x21001e08,0x00000000,0x00000000,0x00800001,0x21401e08, -0x00000000,0x00000000,0x00600001,0x20f02648,0x00000000,0xcba98765,0x00600001,0x22001208, -0x008d00f0,0x00000000,0x00600001,0x21801208,0x008d00f0,0x00000000,0x00600001,0x20602668, -0x00000000,0x76543210,0x00600040,0x21a01a08,0x1e8d0060,0x00120012,0x0000000c,0x21d00a08, -0x1e0001d0,0x00020002,0x0000000c,0x21d40a08,0x1e0000e0,0x00020002,0x01000010,0x20001260, -0x1e000f84,0x00000000,0x00010020,0x34000004,0x0e001400,0x00000058,0x20004d01,0x00000307, -0x00000009,0x20601228,0x16000f82,0x00030003,0x00000009,0x20641228,0x16000f80,0x00010001, -0x00000001,0x2068060c,0x00000000,0x00010007,0x00000040,0x22000204,0x06000040,0x020a8000, -0x0c600033,0x00012014,0x00002061,0x00000000,0x01000010,0x20001260,0x1e000f88,0x00000000, -0x00010020,0x34000004,0x0e001400,0x00000040,0x00000001,0x21000208,0x00000f90,0x00000000, -0x00000001,0x21200208,0x00000f94,0x00000000,0x00000001,0x21400208,0x00000f98,0x00000000, -0x00000001,0x21600208,0x00000f9c,0x00000000,0x01000010,0x20001260,0x1e000f8c,0x00000000, -0x00010020,0x34000004,0x0e001400,0x00000040,0x00000001,0x21100208,0x000001c0,0x00000000, -0x00000001,0x21300208,0x000001c4,0x00000000,0x00000001,0x21500208,0x000001c8,0x00000000, -0x00000001,0x21700208,0x000001cc,0x00000000,0x01000006,0x20001220,0x12000f88,0x00000f8c, -0x00010020,0x34000004,0x0e001400,0x00000220,0x00000041,0x20241228,0x16000f82,0x00200020, -0x04000010,0x20000a20,0x12000024,0x00000020,0x00010020,0x34000004,0x0e001400,0x000001f0, -0x00000041,0x20241228,0x16000f80,0x00200020,0x04000010,0x20000a20,0x12000024,0x00000022, -0x00010020,0x34000004,0x0e001400,0x000001c0,0x00000041,0x20241228,0x16000f82,0x00200020, -0x00000040,0x20400a28,0x1e000024,0x00100010,0x05000010,0x20000a20,0x12000040,0x00000020, -0x00010020,0x34000004,0x0e001400,0x00000058,0x20004d01,0x00000307,0x00000001,0x2068020c, -0x000001d0,0x00000000,0x20004b01,0x00100407,0x20004b01,0x00080507,0x00000040,0x22000204, -0x06000048,0x060ac200,0x0a600031,0x20003a00,0x00000060,0x00000200,0x00000020,0x34000004, -0x0e001400,0x00000048,0x20004d01,0x00000307,0x00000001,0x2068020c,0x000001d0,0x00000000, -0x20005601,0x000c0407,0x20005601,0x00080607,0x00000040,0x22000204,0x06000048,0x0a0ac300, -0x0a800031,0x20003a40,0x00000060,0x00000200,0x00000041,0x20241228,0x16000f82,0x00200020, -0x00000040,0x20400a28,0x1e000024,0x00100010,0x05000010,0x20000a20,0x12000040,0x00000020, -0x00010020,0x34000004,0x0e001400,0x00000058,0x20004d01,0x00000307,0x00000001,0x2068020c, -0x000001d4,0x00000000,0x20004b01,0x00100407,0x20004b01,0x000a0507,0x00000040,0x22000204, -0x06000048,0x060ac200,0x0a600031,0x20003a00,0x00000060,0x00000200,0x00000020,0x34000004, -0x0e001400,0x00000048,0x20004d01,0x00000307,0x00000001,0x2068020c,0x000001d4,0x00000000, -0x20005601,0x000c0407,0x20005601,0x000a0607,0x00000040,0x22000204,0x06000048,0x0a0ac300, -0x0a800031,0x20003a40,0x00000060,0x00000200,0x20004d01,0x00007f07,0x07000031,0x20003a00, -0x06000fe0,0x82000010,0x2000007d,0x2000000c,0x2000007d,0x2000000c,0x2000007d,0x2000000c, -0x20005601,0x00011b07,0x00000001,0x20b41e68,0x00000000,0x00010001,0x00000005,0x23e0124c, -0x16000004,0x07ff07ff,0x00000005,0x23e2124c,0x16000006,0x07ff07ff,0x00600001,0x24001608, -0x00000000,0x00000000,0x00200001,0x25101608,0x00000000,0x00000000,0x00200040,0x20c02268, -0x1e450376,0xfff0fff0,0x02000005,0x20002220,0x1e000378,0x00100010,0x00200001,0x440c0208, -0x0040036c,0x00000000,0x20005601,0x00031d07,0x00000009,0x23e41268,0x160003e0,0x00040004, -0x00000009,0x23ec1268,0x160003e2,0x00040004,0x0020000c,0x23f81a48,0x1e4500c0,0x00010001, -0x00010002,0x43f01a88,0x1e0000b4,0x00000000,0x02000005,0x20002220,0x1e000378,0x00080008, -0x00000001,0x44141e88,0x00000000,0x00000000,0x00600001,0x24201608,0x00000000,0x00000000, -0x00000001,0x24280208,0x00000368,0x00000000,0x00000001,0x43f21e88,0x00000000,0x00000000, -0x0020000c,0x20e01208,0x164503f8,0x00020002,0x00200001,0x24b81e08,0x00000000,0x00000000, -0x00010002,0x43f41a88,0x1e0000b4,0x00000000,0x00000001,0x26002244,0x00000398,0x00000000, -0x00000001,0x23fc1608,0x00000000,0x00000000,0x00000040,0x43e62288,0x1e000371,0x00010001, -0x0000000c,0x25002228,0x1600036c,0x00070007,0x00200001,0x21001a68,0x006600e0,0x00000000, -0x20004b01,0x001d2407,0x00200001,0x24b00208,0x004503d0,0x00000000,0x60004101,0x001e2505, -0x00000001,0x24081a48,0x000003e4,0x00000000,0x00000001,0x23e81a68,0x000003e4,0x00000000, -0x00000001,0x240a1a48,0x000003ec,0x00000000,0x00000009,0x20b41a28,0x1e000102,0x00040004, -0x00000001,0x23ea1a68,0x000003ec,0x00000000,0x00000001,0x43ee2288,0x00000414,0x00000000, -0x00200001,0x24200208,0x00450360,0x00000000,0x00000001,0x243c0208,0x0000037c,0x00000000, -0x00000040,0x20c01a28,0x0a000100,0x000000b4,0x00000001,0x40b41eac,0x00000000,0x00ff00ff, -0x00000001,0x61200a8c,0x000000c0,0x00000000,0x00610001,0x25102aa8,0x000000b4,0x00000000, -0x05000010,0x20002260,0x1e000394,0x00000000,0x00200001,0x242a2288,0x00000120,0x00000000, -0x00010020,0x34000004,0x0e001400,0x00000bc8,0x02000005,0x20000a20,0x1e000500,0x00010001, -0x00000040,0x22002240,0x160003ee,0x05100510,0x00000001,0x25281648,0x00000000,0xffffffff, -0x00010002,0x44252aa8,0x1e008000,0x00000000,0x01000010,0x20002260,0x1e0003f0,0x00000000, -0x00010020,0x34000004,0x0e001400,0x000004c8,0x00000009,0x20bc2228,0x220003e6,0x0000039c, -0x00000009,0x20b81208,0x220003e2,0x0000039c,0x00000009,0x20b41208,0x220003e0,0x0000039c, -0x20004d01,0x00000907,0x00000040,0x22000204,0x060000a4,0x02190000,0x20086001,0x07000900, -0x00000001,0x21801e68,0x00000000,0x00010001,0x00000040,0x20c00a28,0x1e0000bc,0x00030003, -0x00000001,0x43f21e88,0x00000000,0x00010001,0x00000009,0x21200228,0x160000b4,0x00030003, -0x00000005,0x20e00a08,0x1e0000c0,0xfffcfffc,0x00000041,0x21000208,0x220000e0,0x000003ee, -0x00000040,0x21240228,0x020000b8,0x00000100,0x0c600031,0x21403a0c,0x00000120,0x00000200, -0x00600001,0x2600228c,0x008d0140,0x00000000,0x0040000c,0x21601a48,0x1e692600,0x00020002, -0x05400010,0x20001240,0x22690160,0x00000379,0x00410002,0x20c01a48,0x1e000180,0x00000000, -0x00000005,0x20e01228,0x120000c0,0x000000c2,0x02000005,0x20000a20,0x1e0000e0,0x00010001, -0x00010001,0x43f21e88,0x00000000,0x00000000,0x01000010,0x20002260,0x1e0003f2,0x00000000, -0x00010020,0x34000004,0x0e001400,0x00000348,0x00200040,0x20bc2248,0x1e450376,0xfff0fff0, -0x0000000c,0x20b61a68,0x1e00037a,0x00020002,0x00000001,0x20b41e68,0x00000000,0x02000200, -0x0020000c,0x20b81a68,0x1e450600,0x00020002,0x00000009,0x20c82268,0x1e000371,0x00040004, -0x00000009,0x20c42268,0x1e000372,0x00040004,0x20004b01,0x00203107,0x0020000c,0x20c01248, -0x164500bc,0x00010001,0x20004b01,0x00213207,0x00200040,0x21101a28,0x1a4503e8,0x004500b4, -0x00200040,0x21301a28,0x124500b8,0x004500bc,0x00200040,0x21501a28,0x124500b8,0x004540bc, -0x00200040,0x21401a28,0x1a4503e8,0x004540b4,0x00000040,0x20c61a68,0x1e0000c8,0x00100010, -0x00200040,0x20e01a68,0x124500b8,0x004540c0,0x00400001,0x26582288,0x000003ee,0x00000000, -0x00200040,0x21200a28,0x12450110,0x004540bc,0x03200010,0x20000a20,0x1a450130,0x004500b4, -0x00200040,0x21102228,0x1e454376,0x00050005,0x20004b01,0x001c3307,0x00200040,0x21601a28, -0x1e4500c4,0xffffffff,0x00200040,0x21001a68,0x1a4500e0,0x004503e8,0x00200040,0x20e01a28, -0x1e4500c4,0xffffffff,0x00600001,0x26801608,0x00000000,0x00000000,0x00210001,0x21001a68, -0x00660120,0x00000000,0x05200010,0x20000a20,0x1a450150,0x004540b4,0x00200005,0x21800a28, -0x0e450110,0x0000fffc,0x00200005,0x20d00a28,0x0e450160,0x0000fffc,0x20005701,0x00241107, -0x20005701,0x00330f07,0x00210001,0x21001a68,0x00660140,0x00000000,0x00200001,0x21401e68, -0x00000000,0x00000000,0x00000040,0x22000204,0x060000b0,0x0c98c000,0x00800001,0x22001648, -0x00000000,0x00000000,0x03200010,0x20001a20,0x0a450100,0x004500e0,0x00210001,0x21001a68, -0x006600d0,0x00000000,0x06200010,0x20001a60,0x22450100,0x00454376,0x00210001,0x21001a68, -0x00660180,0x00000000,0x00200040,0x26201a68,0x1a450100,0x004543e8,0x20005701,0x00310d07, -0x00200001,0x21201a68,0x00450620,0x00000000,0x00000001,0x21a4020c,0x00000140,0x00000000, -0x20005701,0x00311307,0x00000005,0x41ad228c,0x160001ad,0x00f800f8,0x20004001,0x00090d00, -0x00000006,0x41ad228c,0x160001ad,0x00000000,0x08600031,0x26a03a0c,0x000001a0,0x00000200, -0x00000040,0x22000204,0x060000b0,0x10786000,0x00000005,0x26740a28,0x0e0006b8,0x00ffff00, -0x00000005,0x46742288,0x1e0006a0,0x00030003,0x20004b01,0x00381907,0x20004b01,0x00361707, -0x20004b01,0x00391a07,0x20004b01,0x00371807,0x20005701,0x00331507,0x00000001,0x42b62288, -0x00000676,0x00000000,0x00000001,0x42b52288,0x00000675,0x00000000,0x00000005,0x42b42288, -0x1e000674,0x00030003,0x0d600031,0x25203a0c,0x00000260,0x00000200,0x00a00009,0x25401a68, -0x228d0540,0x0000039d,0x00a00009,0x25801a68,0x228d0580,0x0000039d,0x01000010,0x20002260, -0x1e0003f2,0x00000000,0x20004b01,0x00213207,0x20004b01,0x00203107,0x00600001,0x26801608, -0x00000000,0x00000000,0x20004b01,0x001c3307,0x00400001,0x26582288,0x000003ee,0x00000000, -0x00200001,0x26201268,0x004543f8,0x00000000,0x00010020,0x34000004,0x0e001400,0x000000c0, -0x20005701,0x00310607,0x00200001,0x21e01e68,0x00000000,0x00000000,0x00200001,0x21c01268, -0x004543f8,0x00000000,0x20005701,0x00330807,0x20005701,0x00240a07,0x00000005,0x40cd228c, -0x160000cd,0x00f800f8,0x20004b01,0x003c0c07,0x20004b01,0x003d0d07,0x00000040,0x22000204, -0x060000b0,0x10794000,0x00000001,0x20c4020c,0x000001e0,0x00000000,0x20004001,0x000e0600, -0x00800001,0x21201648,0x00000000,0x00000000,0x00000006,0x40cd228c,0x160000cd,0x00000000, -0x08600031,0x27c03a0c,0x000000c0,0x00000200,0x00000020,0x34000004,0x0e001400,0x000000a0, -0x20005701,0x00310807,0x00200001,0x20c01268,0x004543f8,0x00000000,0x00200001,0x20e01e68, -0x00000000,0x00000000,0x20005701,0x00330a07,0x20005701,0x00240c07,0x00000005,0x410d228c, -0x1600010d,0x00f800f8,0x00000040,0x22000204,0x060000b0,0x0c784000,0x20004001,0x00060800, -0x00000001,0x2104020c,0x000000e0,0x00000000,0x00800001,0x21601648,0x00000000,0x00000000, -0x00000006,0x410d228c,0x1600010d,0x00000000,0x08600031,0x27c03a0c,0x00000100,0x00000200, -0x00000005,0x26740a28,0x0e0007d8,0x00ffff00,0x00000005,0x46742288,0x1e0007c0,0x00030003, -0x20004b01,0x003f0a07,0x00000040,0x22000204,0x060000b0,0x10786000,0x20004b01,0x00400b07, -0x20004b01,0x00410c07,0x20004b01,0x00420d07,0x20005701,0x00310607,0x20005701,0x00330807, -0x00000001,0x41162288,0x00000676,0x00000000,0x00000001,0x41152288,0x00000675,0x00000000, -0x00000005,0x41142288,0x1e000674,0x00030003,0x00000001,0x20b41e68,0x00000000,0x00010001, -0x0d600031,0x28a03a0c,0x000000c0,0x00000200,0x20004d01,0x00000607,0x00000040,0x22000204, -0x060000a0,0x020a8000,0x00000001,0x20c8060c,0x00000000,0x0003001f,0x00000009,0x20c01a28, -0x1e0003e4,0x00010001,0x05000010,0x20001240,0x12000528,0x000008a8,0x00a00009,0x28c01a68, -0x228d08c0,0x0000039d,0x00a00009,0x29001a68,0x228d0900,0x0000039d,0x00010002,0x41c01a88, -0x1e0000b4,0x00000000,0x0000000c,0x20b41a08,0x1e0003ec,0x00020002,0x00a00001,0x21e02248, -0x000001c0,0x00000000,0x00000040,0x20c40228,0x020000b4,0x000003fc,0x02600005,0x20001260, -0x168d01e0,0x00010001,0x00610002,0x22201a68,0x1a8d0540,0x008d08c0,0x02600005,0x20001260, -0x168d01f0,0x00010001,0x00610002,0x22401a68,0x1a8d0550,0x008d08d0,0x02600005,0x20001260, -0x168d0200,0x00010001,0x00610002,0x22601a68,0x1a8d0580,0x008d0900,0x02600005,0x20001260, -0x168d0210,0x00010001,0x00610002,0x22801a68,0x1a8d0590,0x008d0910,0x02600005,0x20001260, -0x168d01e0,0x00010001,0x00610002,0x22301a68,0x1a8d0560,0x008d08e0,0x02600005,0x20001260, -0x168d01f0,0x00010001,0x00610002,0x22501a68,0x1a8d0570,0x008d08f0,0x02600005,0x20001260, -0x168d0200,0x00010001,0x00610002,0x22701a68,0x1a8d05a0,0x008d0920,0x02600005,0x20001260, -0x168d0210,0x00010001,0x00610002,0x22901a68,0x1a8d05b0,0x008d0930,0x01000010,0x20002260, -0x1e0003f4,0x00000000,0x0c600033,0x00011014,0x000020c4,0x00000000,0x00010020,0x34000004, -0x0e001400,0x00000200,0x05000010,0x20001240,0x12000528,0x000008a8,0x00000001,0x20b41e68, -0x00000000,0x00010001,0x00010002,0x40c01a88,0x1e0000b4,0x00000000,0x00a00001,0x20e02248, -0x000000c0,0x00000000,0x02800005,0x20001260,0x168d00e0,0x00010001,0x00810002,0x41202288, -0x228d05c0,0x008d0940,0x02800005,0x20001260,0x168d0100,0x00010001,0x00800001,0x29802288, -0x00400120,0x00000000,0x00810002,0x41402288,0x228d05d0,0x008d0950,0x02000010,0x20002260, -0x1e0003ee,0x00000000,0x00800001,0x29902288,0x00400140,0x00000000,0x00010020,0x34000004, -0x0e001400,0x00000060,0x20004d01,0x00000707,0x20004b01,0x004c0607,0x00000040,0x22000204, -0x060000ac,0x020a8000,0x00000001,0x20e8060c,0x00000000,0x00030007,0x0000000c,0x20e41a28, -0x1e0003ec,0x00020002,0x0000000c,0x20e01a28,0x1e0003e4,0x00010001,0x0c600033,0x00006014, -0x000020e1,0x00000000,0x20004b01,0x004c0607,0x0000000c,0x20b41a08,0x1e0003ec,0x00020002, -0x20004d01,0x00000707,0x00000040,0x22000204,0x060000a8,0x020a8000,0x00000001,0x20e8060c, -0x00000000,0x00030007,0x0000000c,0x20e01a28,0x1e0003e4,0x00010001,0x00400001,0x60c21248, -0x006000c0,0x00000000,0x00000040,0x20e40228,0x020000b4,0x000003fc,0x00200001,0x20d41248, -0x004500d8,0x00000000,0x00200001,0x20c41248,0x004500c8,0x00000000,0x00200001,0x20d81248, -0x004500d0,0x00000000,0x00200001,0x20c81248,0x004500c0,0x00000000,0x00200001,0x20dc1248, -0x004500d4,0x00000000,0x00200001,0x20cc1248,0x004500c4,0x00000000,0x0c600033,0x00006014, -0x000020e1,0x00000000,0x00000040,0x43ee2288,0x1e0003ee,0x00010001,0x00000009,0x20b42208, -0x1e0003e6,0x00020002,0x06000010,0x20002260,0x220003ee,0x00000394,0x00000040,0x23fc0208, -0x020003fc,0x000000b4,0x00010020,0x34000004,0x0e001400,0xfffff438,0x20004d01,0x00007f07, -0x07000031,0x20003a00,0x06000fe0,0x82000010,0x2000007d,0x2000000c,0x2000007d,0x2000000c, -0x2000007d,0x2000000c,0x2000007d,0x2000000c,0x2000007d,0x2000000c,0x2000007d,0x2000000c, -0x00000005,0x26c0124c,0x16000004,0x07ff07ff,0x00000005,0x26c2124c,0x16000006,0x07ff07ff, -0x06000010,0x20002260,0x1e000025,0x00000000,0x00000001,0x26c41248,0x000006c0,0x00000000, -0x00000001,0x26c61248,0x000006c2,0x00000000,0x00200009,0x26c81248,0x164506c4,0x00050005, -0x00010020,0x34000004,0x0e001400,0x000000f0,0x00200041,0x22b01248,0x164506c4,0x00020002, -0x20004d01,0x00001707,0x00000040,0x22000204,0x060002b8,0x02190000,0x20086001,0x00001700, -0x00200040,0x22c01248,0x164502b0,0x00010001,0x00000001,0x22e01228,0x000002c0,0x00000000, -0x00000001,0x22e41228,0x000002c2,0x00000000,0x0c600031,0x23003a0c,0x000002e0,0x00000200, -0x00400001,0x2320228c,0x00690300,0x00000000,0x00000041,0x23402228,0x1e000320,0x00400040, -0x00000040,0x23600a28,0x1e000340,0x00800080,0x00000040,0x22001240,0x16000360,0x00200020, -0x00800001,0x20a02288,0x00208000,0x00000000,0x00800001,0x20b02288,0x00208010,0x00000000, -0x00800001,0x20c02288,0x00208020,0x00000000,0x00800001,0x20d02288,0x00208030,0x00000000, -0x00200040,0x22c01228,0x164506c8,0x00200020,0x00000001,0x22f01e68,0x00000000,0x00010001, -0x00600001,0x22e01648,0x00000000,0x00000000,0x00000040,0x22a41228,0x16000020,0x000f000f, -0x03200010,0x20000a20,0x124502c0,0x00450020,0x0000000c,0x46cc0a48,0x1e0002a4,0x00040004, -0x00210002,0x22e01a48,0x1e0002f0,0x00000000,0x2203eb10,0x00170007,0x00000001,0x23001048, -0x00000600,0x00000000,0x02000005,0x20001200,0x16000300,0x00030003,0x00010020,0x34000004, -0x0e001400,0x00006f38,0x03200010,0x20001260,0x1e4506c8,0x00000000,0x00000001,0x22a41e68, -0x00000000,0x00010001,0x00000001,0x47401e88,0x00000000,0x007f007f,0x00800001,0x27001648, -0x00000000,0x81818181,0x00800001,0x27201648,0x00000000,0x7f7f7f7f,0x00600001,0x26e01e08, -0x00000000,0x00000000,0x00210002,0x26d01a48,0x1e0002a4,0x00000000,0x03000010,0x20001260, -0x1e0006c2,0x00000000,0x00000001,0x46ce1e88,0x00000000,0x00000000,0x00010001,0x47401e88, -0x00000000,0x00810081,0x06000010,0x20001260,0x1e0006ca,0x00000000,0x00010020,0x34000004, -0x0e001400,0x00000050,0x20004d01,0x00001707,0x00000040,0x22000204,0x060002a0,0x02190000, -0x20086001,0x1f001700,0x00000040,0x22e41228,0x1e0006ca,0xffffffff,0x00000001,0x22e01228, -0x000006c8,0x00000000,0x0c600031,0x27203a0c,0x000002e0,0x00000200,0x06000010,0x20001260, -0x1e0006c8,0x00000000,0x00010020,0x34000004,0x0e001400,0x00000078,0x20004d01,0x00001707, -0x00000040,0x22000204,0x060002a0,0x02490000,0x00000001,0x22e8060c,0x00000000,0x001f0000, -0x00000001,0x22e41228,0x000006ca,0x00000000,0x00000040,0x22e01228,0x1e0006c8,0xffffffff, -0x0c600031,0x23003a0c,0x000002e0,0x00000200,0x00800001,0x27102288,0x00600340,0x00000000, -0x00800001,0x27002288,0x00600300,0x00000000,0x02000010,0x20000200,0x060006d0,0x00010001, -0x00010020,0x34000004,0x0e001400,0x00000078,0x00000040,0x22a41228,0x1e0006c8,0xffffffff, -0x20004d01,0x00001707,0x00000040,0x22000204,0x060002a0,0x02190000,0x20086001,0x00001700, -0x00000040,0x22e41228,0x1e0006ca,0xffffffff,0x20144001,0x00151700,0x0c600031,0x23003a0c, -0x000002e0,0x00000200,0x00400001,0x22c0228c,0x00690300,0x00000000,0x00000001,0x47402288, -0x000002c0,0x00000000,0x20004b01,0x00381707,0x20004b01,0x00391807,0x00000040,0x22000204, -0x060002a0,0x02490000,0x03200010,0x20001260,0x1e4506c8,0x00000000,0x00000040,0x23a01228, -0x160006d0,0x00040004,0x00200001,0x23841648,0x00000000,0x00000000,0x00800001,0x67602288, -0x008d0700,0x00000000,0x00a00040,0x23202248,0x224002e0,0x004002e1,0x20004d01,0x00001707, -0x00000001,0x22e8060c,0x00000000,0x001f0003,0x00000001,0x22e41228,0x000006ca,0x00000000, -0x00800040,0x23601248,0x12400320,0x00400322,0x00000001,0x22e01228,0x000006c8,0x00000000, -0x00000040,0x63c00a88,0x120003a0,0x000006d2,0x00800001,0x67a02288,0x008d0710,0x00000000, -0x00800001,0x67612288,0x008d0700,0x00000000,0x00600040,0x22b01248,0x12400360,0x00400362, -0x0c600031,0x27e03a0c,0x000002e0,0x00000200,0x00000040,0x22e01228,0x160006c8,0x00040004, -0x00000001,0x22e41228,0x000006ca,0x00000000,0x00800001,0x67a12288,0x008d0710,0x00000000, -0x00800001,0x67622288,0x008d0700,0x00000000,0x00400040,0x22c01248,0x124002b0,0x004002b2, -0x00800001,0x67a22288,0x008d0710,0x00000000,0x0c600031,0x28603a0c,0x000002e0,0x00000200, -0x00000040,0x22e01228,0x160006c8,0x00080008,0x00000001,0x22e41228,0x000006ca,0x00000000, -0x00800001,0x67632288,0x008d0700,0x00000000,0x00200040,0x23801248,0x124002c0,0x004002c2, -0x00800001,0x67a32288,0x008d0710,0x00000000,0x0c600031,0x28e03a0c,0x000002e0,0x00000200, -0x00000040,0x22e01228,0x160006c8,0x000c000c,0x00000001,0x22e41228,0x000006ca,0x00000000, -0x00200040,0x23801248,0x16450380,0x00100010,0x0c600031,0x29603a0c,0x000002e0,0x00000200, -0x00210001,0x23841248,0x00450380,0x00000000,0x01000010,0x20002260,0x1e0003c0,0x00040004, -0x00000040,0x23c41228,0x12000384,0x00000386,0x0000000c,0x26d40a08,0x220003c4,0x000003c0, -0x00010001,0x26d41608,0x00000000,0x00800080,0x03000010,0x20000200,0x060006e0,0x7fffffff, -0x00a00040,0x2b602268,0x228d08a0,0x000046d4,0x00a00040,0x2ba02268,0x228d08c0,0x000046d4, -0x00a00040,0x2aa02268,0x228d0840,0x000046d4,0x00a00040,0x29e02268,0x228d07e0,0x000046d4, -0x00a00040,0x2a602268,0x228d0820,0x000046d4,0x00a00040,0x2ae02268,0x228d0860,0x000046d4, -0x00a00040,0x2a202268,0x228d0800,0x000046d4,0x00a00040,0x2b202268,0x228d0880,0x000046d4, -0x00010020,0x34000004,0x0e001400,0x00000548,0x00800040,0x22e01a68,0x1a4009e0,0x004009e2, -0x00800040,0x29e01a68,0x1a4009e0,0x004049e2,0x00800040,0x23001a68,0x1a400a20,0x00400a22, -0x00800040,0x2a001a68,0x1a400a20,0x00404a22,0x00800040,0x23401a68,0x1a400aa0,0x00400aa2, -0x00800040,0x23201a68,0x1a400a60,0x00400a62,0x00800040,0x2a401a68,0x1a400aa0,0x00404aa2, -0x00800040,0x2a201a68,0x1a400a60,0x00404a62,0x00800040,0x2ac01a68,0x1a400ba0,0x00404ba2, -0x00800040,0x2aa01a68,0x1a400b60,0x00404b62,0x00800040,0x2a801a68,0x1a400b20,0x00404b22, -0x00800040,0x2a601a68,0x1a400ae0,0x00404ae2,0x00a00008,0x24c01a68,0x1e8d09e0,0x00010001, -0x00a00008,0x25001a68,0x1e8d0a20,0x00010001,0x00a00008,0x25801a68,0x1e8d0aa0,0x00010001, -0x00a00008,0x25401a68,0x1e8d0a60,0x00010001,0x00800040,0x23601a68,0x1a400ae0,0x00400ae2, -0x00800040,0x23c01a68,0x1a400ba0,0x00400ba2,0x00800040,0x23801a68,0x1a400b20,0x00400b22, -0x00800040,0x23a01a68,0x1a400b60,0x00400b62,0x00a00001,0x29e01a48,0x008d24c0,0x00000000, -0x00a00001,0x2a201a48,0x008d2500,0x00000000,0x00a00001,0x2aa01a48,0x008d2580,0x00000000, -0x00a00001,0x2a601a48,0x008d2540,0x00000000,0x00600040,0x43e01a68,0x1a6002e0,0x006002e4, -0x00600040,0x44001a68,0x1a600320,0x00600324,0x00600040,0x4b001a68,0x1a600320,0x00604324, -0x00600040,0x4ae01a68,0x1a6002e0,0x006042e4,0x00600040,0x44201a68,0x1a600360,0x00600364, -0x00600040,0x4b201a68,0x1a600360,0x00604364,0x00600040,0x4b401a68,0x1a6003a0,0x006043a4, -0x00600040,0x44401a68,0x1a6003a0,0x006003a4,0x00600040,0x43e21a68,0x1a6002e2,0x006002e6, -0x00600040,0x44021a68,0x1a600322,0x00600326,0x00600040,0x4b021a68,0x1a600322,0x00604326, -0x00600040,0x4ae21a68,0x1a6002e2,0x006042e6,0x00600040,0x44221a68,0x1a600362,0x00600366, -0x00600040,0x4b221a68,0x1a600362,0x00604366,0x00600040,0x4b421a68,0x1a6003a2,0x006043a6, -0x00600040,0x44421a68,0x1a6003a2,0x006003a6,0x00800040,0x23401a68,0x1a400aa0,0x00400aa2, -0x00800040,0x23201a68,0x1a400a60,0x00400a62,0x00800040,0x23001a68,0x1a400a20,0x00400a22, -0x00800040,0x22e01a68,0x1a4009e0,0x004009e2,0x00800040,0x24601a68,0x1a4003e0,0x004003e2, -0x00a00008,0x25c01a68,0x1e8d0ae0,0x00010001,0x00a00008,0x26001a68,0x1e8d0b20,0x00010001, -0x00800040,0x24801a68,0x1a400420,0x00400422,0x00800040,0x23801a68,0x1a400320,0x00400322, -0x00800040,0x23601a68,0x1a4002e0,0x004002e2,0x00800040,0x2b601a68,0x1a4003e0,0x004043e2, -0x00800040,0x2b801a68,0x1a400420,0x00404422,0x00a00001,0x2ae01a48,0x008d25c0,0x00000000, -0x00a00001,0x2b201a48,0x008d2600,0x00000000,0x00800040,0x24a01a68,0x1a400460,0x00400462, -0x00800040,0x2ba01a68,0x1a400460,0x00404462,0x00800040,0x23a01a48,0x1a400360,0x00400362, -0x00a00008,0x26401a68,0x1e8d0b60,0x00010001,0x0080000c,0x24401a28,0x1e8d04a0,0x00010001, -0x00800040,0x23801a68,0x1a400b20,0x00400b22,0x00800040,0x23601a68,0x1a400ae0,0x00400ae2, -0x00a00008,0x26801a68,0x1e8d0ba0,0x00010001,0x00a00001,0x2b601a48,0x008d2640,0x00000000, -0x00800001,0x44c00a48,0x008d2440,0x00000000,0x00800040,0x23c01a48,0x1a400360,0x00400362, -0x00a00001,0x2ba01a48,0x008d2680,0x00000000,0x00800040,0x24001a48,0x1a400b60,0x00400b62, -0x00800001,0x24801248,0x004004c0,0x00000000,0x00800040,0x23a01248,0x128d03a0,0x008d03c0, -0x00800040,0x25001a48,0x128d0ba0,0x008d0480,0x00800040,0x23a01248,0x128d03a0,0x008d0400, -0x00800040,0x23a01248,0x128d03a0,0x008d0500,0x04600002,0x22c01248,0x128d03a0,0x008d03b0, -0x00600040,0x22e01208,0x128d03a0,0x008d03b0,0x00600001,0x23001268,0x008d02c0,0x00000000, -0x606d2140,0x171717ad,0x04400002,0x23201a48,0x1a690300,0x00690308,0x00200040,0x22e00208, -0x024502e0,0x004502e8,0x00400001,0x23401268,0x00690320,0x00000000,0x00000040,0x22a40208, -0x020002e0,0x000002e4,0x04200002,0x23601a48,0x1a450340,0x00450344,0x00000040,0x26e00208, -0x020006e0,0x000002a4,0x04000002,0x23801248,0x12000360,0x00000362,0x00200001,0x23c01248, -0x00000380,0x00000000,0x04000002,0x26e41208,0x020003c0,0x000006e4,0x03000010,0x20000200, -0x060006e0,0x7fffffff,0x00a00040,0x2ae02268,0x228d0960,0x000046d4,0x00a00040,0x2b602268, -0x228d09a0,0x000046d4,0x00a00040,0x2aa02268,0x228d0940,0x000046d4,0x00a00040,0x29e02268, -0x228d08e0,0x000046d4,0x00a00040,0x2a602268,0x228d0920,0x000046d4,0x00a00040,0x2a202268, -0x228d0900,0x000046d4,0x00a00040,0x2b202268,0x228d0980,0x000046d4,0x00a00040,0x2ba02268, -0x228d09c0,0x000046d4,0x00010020,0x34000004,0x0e001400,0x00000548,0x00800040,0x22e01a68, -0x1a4009e0,0x004009e2,0x00800040,0x29e01a68,0x1a4009e0,0x004049e2,0x00800040,0x23001a68, -0x1a400a20,0x00400a22,0x00800040,0x2a001a68,0x1a400a20,0x00404a22,0x00800040,0x23401a68, -0x1a400aa0,0x00400aa2,0x00800040,0x23201a68,0x1a400a60,0x00400a62,0x00800040,0x2a401a68, -0x1a400aa0,0x00404aa2,0x00800040,0x2a201a68,0x1a400a60,0x00404a62,0x00800040,0x2ac01a68, -0x1a400ba0,0x00404ba2,0x00800040,0x2aa01a68,0x1a400b60,0x00404b62,0x00800040,0x2a801a68, -0x1a400b20,0x00404b22,0x00800040,0x2a601a68,0x1a400ae0,0x00404ae2,0x00a00008,0x24c01a68, -0x1e8d09e0,0x00010001,0x00a00008,0x25001a68,0x1e8d0a20,0x00010001,0x00a00008,0x25801a68, -0x1e8d0aa0,0x00010001,0x00a00008,0x25401a68,0x1e8d0a60,0x00010001,0x00800040,0x23601a68, -0x1a400ae0,0x00400ae2,0x00800040,0x23c01a68,0x1a400ba0,0x00400ba2,0x00800040,0x23801a68, -0x1a400b20,0x00400b22,0x00800040,0x23a01a68,0x1a400b60,0x00400b62,0x00a00001,0x29e01a48, -0x008d24c0,0x00000000,0x00a00001,0x2a201a48,0x008d2500,0x00000000,0x00a00001,0x2aa01a48, -0x008d2580,0x00000000,0x00a00001,0x2a601a48,0x008d2540,0x00000000,0x00600040,0x43e01a68, -0x1a6002e0,0x006002e4,0x00600040,0x44001a68,0x1a600320,0x00600324,0x00600040,0x4b001a68, -0x1a600320,0x00604324,0x00600040,0x4ae01a68,0x1a6002e0,0x006042e4,0x00600040,0x44201a68, -0x1a600360,0x00600364,0x00600040,0x4b201a68,0x1a600360,0x00604364,0x00600040,0x4b401a68, -0x1a6003a0,0x006043a4,0x00600040,0x44401a68,0x1a6003a0,0x006003a4,0x00600040,0x43e21a68, -0x1a6002e2,0x006002e6,0x00600040,0x44021a68,0x1a600322,0x00600326,0x00600040,0x4b021a68, -0x1a600322,0x00604326,0x00600040,0x4ae21a68,0x1a6002e2,0x006042e6,0x00600040,0x44221a68, -0x1a600362,0x00600366,0x00600040,0x4b221a68,0x1a600362,0x00604366,0x00600040,0x4b421a68, -0x1a6003a2,0x006043a6,0x00600040,0x44421a68,0x1a6003a2,0x006003a6,0x00800040,0x23401a68, -0x1a400aa0,0x00400aa2,0x00800040,0x23201a68,0x1a400a60,0x00400a62,0x00800040,0x23001a68, -0x1a400a20,0x00400a22,0x00800040,0x22e01a68,0x1a4009e0,0x004009e2,0x00800040,0x24601a68, -0x1a4003e0,0x004003e2,0x00a00008,0x25c01a68,0x1e8d0ae0,0x00010001,0x00a00008,0x26001a68, -0x1e8d0b20,0x00010001,0x00800040,0x24801a68,0x1a400420,0x00400422,0x00800040,0x23801a68, -0x1a400320,0x00400322,0x00800040,0x23601a68,0x1a4002e0,0x004002e2,0x00800040,0x2b601a68, -0x1a4003e0,0x004043e2,0x00800040,0x2b801a68,0x1a400420,0x00404422,0x00a00001,0x2ae01a48, -0x008d25c0,0x00000000,0x00a00001,0x2b201a48,0x008d2600,0x00000000,0x00800040,0x24a01a68, -0x1a400460,0x00400462,0x00800040,0x2ba01a68,0x1a400460,0x00404462,0x00800040,0x23a01a48, -0x1a400360,0x00400362,0x00a00008,0x26401a68,0x1e8d0b60,0x00010001,0x0080000c,0x24401a28, -0x1e8d04a0,0x00010001,0x00800040,0x23801a68,0x1a400b20,0x00400b22,0x00800040,0x23601a68, -0x1a400ae0,0x00400ae2,0x00a00008,0x26801a68,0x1e8d0ba0,0x00010001,0x00a00001,0x2b601a48, -0x008d2640,0x00000000,0x00800001,0x44c00a48,0x008d2440,0x00000000,0x00800040,0x23c01a48, -0x1a400360,0x00400362,0x00a00001,0x2ba01a48,0x008d2680,0x00000000,0x00800040,0x24001a48, -0x1a400b60,0x00400b62,0x00800001,0x24801248,0x004004c0,0x00000000,0x00800040,0x23a01248, -0x128d03a0,0x008d03c0,0x00800040,0x25001a48,0x128d0ba0,0x008d0480,0x00800040,0x23a01248, -0x128d03a0,0x008d0400,0x00800040,0x23a01248,0x128d03a0,0x008d0500,0x04600002,0x22c01248, -0x128d03a0,0x008d03b0,0x00600040,0x22e01208,0x128d03a0,0x008d03b0,0x00600001,0x23001268, -0x008d02c0,0x00000000,0x606d2140,0x171717ad,0x04400002,0x23201a48,0x1a690300,0x00690308, -0x00200040,0x22e00208,0x024502e0,0x004502e8,0x00400001,0x23401268,0x00690320,0x00000000, -0x00000040,0x22a40208,0x020002e0,0x000002e4,0x04200002,0x23601a48,0x1a450340,0x00450344, -0x00000040,0x26e00208,0x020006e0,0x000002a4,0x04000002,0x23801248,0x12000360,0x00000362, -0x00200001,0x23c01248,0x00000380,0x00000000,0x04000002,0x26e41208,0x020003c0,0x000006e4, -0x20005601,0x00396100,0x20145601,0x00396500,0x20005601,0x00395f00,0x20145601,0x00396300, -0x03000010,0x20000200,0x060006e8,0x7fffffff,0x00a00040,0x2aa02268,0x228d0840,0x008d4c40, -0x00a00040,0x2a602268,0x228d0820,0x008d4c20,0x00a00040,0x2ba02268,0x228d08c0,0x008d4cc0, -0x00a00040,0x2b602268,0x228d08a0,0x008d4ca0,0x00a00040,0x29e02268,0x228d07e0,0x008d4be0, -0x00a00040,0x2a202268,0x228d0800,0x008d4c00,0x00a00040,0x2ae02268,0x228d0860,0x008d4c60, -0x00a00040,0x2b202268,0x228d0880,0x008d4c80,0x00010020,0x34000004,0x0e001400,0x00000548, -0x00800040,0x22e01a68,0x1a4009e0,0x004009e2,0x00800040,0x29e01a68,0x1a4009e0,0x004049e2, -0x00800040,0x23001a68,0x1a400a20,0x00400a22,0x00800040,0x2a001a68,0x1a400a20,0x00404a22, -0x00800040,0x23401a68,0x1a400aa0,0x00400aa2,0x00800040,0x23201a68,0x1a400a60,0x00400a62, -0x00800040,0x2a401a68,0x1a400aa0,0x00404aa2,0x00800040,0x2a201a68,0x1a400a60,0x00404a62, -0x00800040,0x2ac01a68,0x1a400ba0,0x00404ba2,0x00800040,0x2aa01a68,0x1a400b60,0x00404b62, -0x00800040,0x2a801a68,0x1a400b20,0x00404b22,0x00800040,0x2a601a68,0x1a400ae0,0x00404ae2, -0x00a00008,0x24c01a68,0x1e8d09e0,0x00010001,0x00a00008,0x25001a68,0x1e8d0a20,0x00010001, -0x00a00008,0x25801a68,0x1e8d0aa0,0x00010001,0x00a00008,0x25401a68,0x1e8d0a60,0x00010001, -0x00800040,0x23601a68,0x1a400ae0,0x00400ae2,0x00800040,0x23c01a68,0x1a400ba0,0x00400ba2, -0x00800040,0x23801a68,0x1a400b20,0x00400b22,0x00800040,0x23a01a68,0x1a400b60,0x00400b62, -0x00a00001,0x29e01a48,0x008d24c0,0x00000000,0x00a00001,0x2a201a48,0x008d2500,0x00000000, -0x00a00001,0x2aa01a48,0x008d2580,0x00000000,0x00a00001,0x2a601a48,0x008d2540,0x00000000, -0x00600040,0x43e01a68,0x1a6002e0,0x006002e4,0x00600040,0x44001a68,0x1a600320,0x00600324, -0x00600040,0x4b001a68,0x1a600320,0x00604324,0x00600040,0x4ae01a68,0x1a6002e0,0x006042e4, -0x00600040,0x44201a68,0x1a600360,0x00600364,0x00600040,0x4b201a68,0x1a600360,0x00604364, -0x00600040,0x4b401a68,0x1a6003a0,0x006043a4,0x00600040,0x44401a68,0x1a6003a0,0x006003a4, -0x00600040,0x43e21a68,0x1a6002e2,0x006002e6,0x00600040,0x44021a68,0x1a600322,0x00600326, -0x00600040,0x4b021a68,0x1a600322,0x00604326,0x00600040,0x4ae21a68,0x1a6002e2,0x006042e6, -0x00600040,0x44221a68,0x1a600362,0x00600366,0x00600040,0x4b221a68,0x1a600362,0x00604366, -0x00600040,0x4b421a68,0x1a6003a2,0x006043a6,0x00600040,0x44421a68,0x1a6003a2,0x006003a6, -0x00800040,0x23401a68,0x1a400aa0,0x00400aa2,0x00800040,0x23201a68,0x1a400a60,0x00400a62, -0x00800040,0x23001a68,0x1a400a20,0x00400a22,0x00800040,0x22e01a68,0x1a4009e0,0x004009e2, -0x00800040,0x24601a68,0x1a4003e0,0x004003e2,0x00a00008,0x25c01a68,0x1e8d0ae0,0x00010001, -0x00a00008,0x26001a68,0x1e8d0b20,0x00010001,0x00800040,0x24801a68,0x1a400420,0x00400422, -0x00800040,0x23801a68,0x1a400320,0x00400322,0x00800040,0x23601a68,0x1a4002e0,0x004002e2, -0x00800040,0x2b601a68,0x1a4003e0,0x004043e2,0x00800040,0x2b801a68,0x1a400420,0x00404422, -0x00a00001,0x2ae01a48,0x008d25c0,0x00000000,0x00a00001,0x2b201a48,0x008d2600,0x00000000, -0x00800040,0x24a01a68,0x1a400460,0x00400462,0x00800040,0x2ba01a68,0x1a400460,0x00404462, -0x00800040,0x23a01a48,0x1a400360,0x00400362,0x00a00008,0x26401a68,0x1e8d0b60,0x00010001, -0x0080000c,0x24401a28,0x1e8d04a0,0x00010001,0x00800040,0x23801a68,0x1a400b20,0x00400b22, -0x00800040,0x23601a68,0x1a400ae0,0x00400ae2,0x00a00008,0x26801a68,0x1e8d0ba0,0x00010001, -0x00a00001,0x2b601a48,0x008d2640,0x00000000,0x00800001,0x44c00a48,0x008d2440,0x00000000, -0x00800040,0x23c01a48,0x1a400360,0x00400362,0x00a00001,0x2ba01a48,0x008d2680,0x00000000, -0x00800040,0x24001a48,0x1a400b60,0x00400b62,0x00800001,0x24801248,0x004004c0,0x00000000, -0x00800040,0x23a01248,0x128d03a0,0x008d03c0,0x00800040,0x25001a48,0x128d0ba0,0x008d0480, -0x00800040,0x23a01248,0x128d03a0,0x008d0400,0x00800040,0x23a01248,0x128d03a0,0x008d0500, -0x04600002,0x22c01248,0x128d03a0,0x008d03b0,0x00600040,0x22e01208,0x128d03a0,0x008d03b0, -0x00600001,0x23001268,0x008d02c0,0x00000000,0x606d2140,0x171717ad,0x04400002,0x23201a48, -0x1a690300,0x00690308,0x00200040,0x22e00208,0x024502e0,0x004502e8,0x00400001,0x23401268, -0x00690320,0x00000000,0x00000040,0x22a40208,0x020002e0,0x000002e4,0x04200002,0x23601a48, -0x1a450340,0x00450344,0x00000040,0x26e80208,0x020006e8,0x000002a4,0x04000002,0x23801248, -0x12000360,0x00000362,0x00200001,0x23c01248,0x00000380,0x00000000,0x04000002,0x26ec1208, -0x020003c0,0x000006ec,0x20185601,0x00396100,0x201c5601,0x00396500,0x20185601,0x00395f00, -0x201c5601,0x00396300,0x03000010,0x20000200,0x060006e8,0x7fffffff,0x00a00040,0x2aa02268, -0x228d0940,0x008d4c40,0x00a00040,0x2a602268,0x228d0920,0x008d4c20,0x00a00040,0x2ba02268, -0x228d09c0,0x008d4cc0,0x00a00040,0x2b602268,0x228d09a0,0x008d4ca0,0x00a00040,0x29e02268, -0x228d08e0,0x008d4be0,0x00a00040,0x2a202268,0x228d0900,0x008d4c00,0x00a00040,0x2ae02268, -0x228d0960,0x008d4c60,0x00a00040,0x2b202268,0x228d0980,0x008d4c80,0x00010020,0x34000004, -0x0e001400,0x00000548,0x00800040,0x22e01a68,0x1a4009e0,0x004009e2,0x00800040,0x29e01a68, -0x1a4009e0,0x004049e2,0x00800040,0x23001a68,0x1a400a20,0x00400a22,0x00800040,0x2a001a68, -0x1a400a20,0x00404a22,0x00800040,0x23401a68,0x1a400aa0,0x00400aa2,0x00800040,0x23201a68, -0x1a400a60,0x00400a62,0x00800040,0x2a401a68,0x1a400aa0,0x00404aa2,0x00800040,0x2a201a68, -0x1a400a60,0x00404a62,0x00800040,0x2ac01a68,0x1a400ba0,0x00404ba2,0x00800040,0x2aa01a68, -0x1a400b60,0x00404b62,0x00800040,0x2a801a68,0x1a400b20,0x00404b22,0x00800040,0x2a601a68, -0x1a400ae0,0x00404ae2,0x00a00008,0x24c01a68,0x1e8d09e0,0x00010001,0x00a00008,0x25001a68, -0x1e8d0a20,0x00010001,0x00a00008,0x25801a68,0x1e8d0aa0,0x00010001,0x00a00008,0x25401a68, -0x1e8d0a60,0x00010001,0x00800040,0x23601a68,0x1a400ae0,0x00400ae2,0x00800040,0x23c01a68, -0x1a400ba0,0x00400ba2,0x00800040,0x23801a68,0x1a400b20,0x00400b22,0x00800040,0x23a01a68, -0x1a400b60,0x00400b62,0x00a00001,0x29e01a48,0x008d24c0,0x00000000,0x00a00001,0x2a201a48, -0x008d2500,0x00000000,0x00a00001,0x2aa01a48,0x008d2580,0x00000000,0x00a00001,0x2a601a48, -0x008d2540,0x00000000,0x00600040,0x43e01a68,0x1a6002e0,0x006002e4,0x00600040,0x44001a68, -0x1a600320,0x00600324,0x00600040,0x4b001a68,0x1a600320,0x00604324,0x00600040,0x4ae01a68, -0x1a6002e0,0x006042e4,0x00600040,0x44201a68,0x1a600360,0x00600364,0x00600040,0x4b201a68, -0x1a600360,0x00604364,0x00600040,0x4b401a68,0x1a6003a0,0x006043a4,0x00600040,0x44401a68, -0x1a6003a0,0x006003a4,0x00600040,0x43e21a68,0x1a6002e2,0x006002e6,0x00600040,0x44021a68, -0x1a600322,0x00600326,0x00600040,0x4b021a68,0x1a600322,0x00604326,0x00600040,0x4ae21a68, -0x1a6002e2,0x006042e6,0x00600040,0x44221a68,0x1a600362,0x00600366,0x00600040,0x4b221a68, -0x1a600362,0x00604366,0x00600040,0x4b421a68,0x1a6003a2,0x006043a6,0x00600040,0x44421a68, -0x1a6003a2,0x006003a6,0x00800040,0x23401a68,0x1a400aa0,0x00400aa2,0x00800040,0x23201a68, -0x1a400a60,0x00400a62,0x00800040,0x23001a68,0x1a400a20,0x00400a22,0x00800040,0x22e01a68, -0x1a4009e0,0x004009e2,0x00800040,0x24601a68,0x1a4003e0,0x004003e2,0x00a00008,0x25c01a68, -0x1e8d0ae0,0x00010001,0x00a00008,0x26001a68,0x1e8d0b20,0x00010001,0x00800040,0x24801a68, -0x1a400420,0x00400422,0x00800040,0x23801a68,0x1a400320,0x00400322,0x00800040,0x23601a68, -0x1a4002e0,0x004002e2,0x00800040,0x2b601a68,0x1a4003e0,0x004043e2,0x00800040,0x2b801a68, -0x1a400420,0x00404422,0x00a00001,0x2ae01a48,0x008d25c0,0x00000000,0x00a00001,0x2b201a48, -0x008d2600,0x00000000,0x00800040,0x24a01a68,0x1a400460,0x00400462,0x00800040,0x2ba01a68, -0x1a400460,0x00404462,0x00800040,0x23a01a48,0x1a400360,0x00400362,0x00a00008,0x26401a68, -0x1e8d0b60,0x00010001,0x0080000c,0x24401a28,0x1e8d04a0,0x00010001,0x00800040,0x23801a68, -0x1a400b20,0x00400b22,0x00800040,0x23601a68,0x1a400ae0,0x00400ae2,0x00a00008,0x26801a68, -0x1e8d0ba0,0x00010001,0x00a00001,0x2b601a48,0x008d2640,0x00000000,0x00800001,0x44c00a48, -0x008d2440,0x00000000,0x00800040,0x23c01a48,0x1a400360,0x00400362,0x00a00001,0x2ba01a48, -0x008d2680,0x00000000,0x00800040,0x24001a48,0x1a400b60,0x00400b62,0x00800001,0x24801248, -0x004004c0,0x00000000,0x00800040,0x23a01248,0x128d03a0,0x008d03c0,0x00800040,0x25001a48, -0x128d0ba0,0x008d0480,0x00800040,0x23a01248,0x128d03a0,0x008d0400,0x00800040,0x23a01248, -0x128d03a0,0x008d0500,0x04600002,0x22c01248,0x128d03a0,0x008d03b0,0x00600040,0x22e01208, -0x128d03a0,0x008d03b0,0x00600001,0x23001268,0x008d02c0,0x00000000,0x606d2140,0x171717ad, -0x04400002,0x23201a48,0x1a690300,0x00690308,0x00200040,0x22e00208,0x024502e0,0x004502e8, -0x00400001,0x23401268,0x00690320,0x00000000,0x00000040,0x22a40208,0x020002e0,0x000002e4, -0x04200002,0x23601a48,0x1a450340,0x00450344,0x00000040,0x26e80208,0x020006e8,0x000002a4, -0x04000002,0x23801248,0x12000360,0x00000362,0x00200001,0x23c01248,0x00000380,0x00000000, -0x04000002,0x26ec1208,0x020003c0,0x000006ec,0x20005601,0x003d6507,0x20005601,0x003b6307, -0x20005601,0x003d6107,0x20005601,0x003b5f07,0x03000010,0x20000200,0x060006f0,0x7fffffff, -0x00a00040,0x2ba02268,0x228d08c0,0x008d4cc0,0x00a00040,0x2b602268,0x228d08a0,0x008d4ca0, -0x00a00040,0x2b202268,0x228d0880,0x008d4c80,0x00a00040,0x2ae02268,0x228d0860,0x008d4c60, -0x00a00040,0x2a602268,0x228d0820,0x008d4c20,0x00a00040,0x2aa02268,0x228d0840,0x008d4c40, -0x00a00040,0x29e02268,0x228d07e0,0x008d4be0,0x00a00040,0x2a202268,0x228d0800,0x008d4c00, -0x00010020,0x34000004,0x0e001400,0x00000548,0x00800040,0x22e01a68,0x1a4009e0,0x004009e2, -0x00800040,0x29e01a68,0x1a4009e0,0x004049e2,0x00800040,0x23001a68,0x1a400a20,0x00400a22, -0x00800040,0x2a001a68,0x1a400a20,0x00404a22,0x00800040,0x23401a68,0x1a400aa0,0x00400aa2, -0x00800040,0x23201a68,0x1a400a60,0x00400a62,0x00800040,0x2a401a68,0x1a400aa0,0x00404aa2, -0x00800040,0x2a201a68,0x1a400a60,0x00404a62,0x00800040,0x2ac01a68,0x1a400ba0,0x00404ba2, -0x00800040,0x2aa01a68,0x1a400b60,0x00404b62,0x00800040,0x2a801a68,0x1a400b20,0x00404b22, -0x00800040,0x2a601a68,0x1a400ae0,0x00404ae2,0x00a00008,0x24c01a68,0x1e8d09e0,0x00010001, -0x00a00008,0x25001a68,0x1e8d0a20,0x00010001,0x00a00008,0x25801a68,0x1e8d0aa0,0x00010001, -0x00a00008,0x25401a68,0x1e8d0a60,0x00010001,0x00800040,0x23601a68,0x1a400ae0,0x00400ae2, -0x00800040,0x23c01a68,0x1a400ba0,0x00400ba2,0x00800040,0x23801a68,0x1a400b20,0x00400b22, -0x00800040,0x23a01a68,0x1a400b60,0x00400b62,0x00a00001,0x29e01a48,0x008d24c0,0x00000000, -0x00a00001,0x2a201a48,0x008d2500,0x00000000,0x00a00001,0x2aa01a48,0x008d2580,0x00000000, -0x00a00001,0x2a601a48,0x008d2540,0x00000000,0x00600040,0x43e01a68,0x1a6002e0,0x006002e4, -0x00600040,0x44001a68,0x1a600320,0x00600324,0x00600040,0x4b001a68,0x1a600320,0x00604324, -0x00600040,0x4ae01a68,0x1a6002e0,0x006042e4,0x00600040,0x44201a68,0x1a600360,0x00600364, -0x00600040,0x4b201a68,0x1a600360,0x00604364,0x00600040,0x4b401a68,0x1a6003a0,0x006043a4, -0x00600040,0x44401a68,0x1a6003a0,0x006003a4,0x00600040,0x43e21a68,0x1a6002e2,0x006002e6, -0x00600040,0x44021a68,0x1a600322,0x00600326,0x00600040,0x4b021a68,0x1a600322,0x00604326, -0x00600040,0x4ae21a68,0x1a6002e2,0x006042e6,0x00600040,0x44221a68,0x1a600362,0x00600366, -0x00600040,0x4b221a68,0x1a600362,0x00604366,0x00600040,0x4b421a68,0x1a6003a2,0x006043a6, -0x00600040,0x44421a68,0x1a6003a2,0x006003a6,0x00800040,0x23401a68,0x1a400aa0,0x00400aa2, -0x00800040,0x23201a68,0x1a400a60,0x00400a62,0x00800040,0x23001a68,0x1a400a20,0x00400a22, -0x00800040,0x22e01a68,0x1a4009e0,0x004009e2,0x00800040,0x24601a68,0x1a4003e0,0x004003e2, -0x00a00008,0x25c01a68,0x1e8d0ae0,0x00010001,0x00a00008,0x26001a68,0x1e8d0b20,0x00010001, -0x00800040,0x24801a68,0x1a400420,0x00400422,0x00800040,0x23801a68,0x1a400320,0x00400322, -0x00800040,0x23601a68,0x1a4002e0,0x004002e2,0x00800040,0x2b601a68,0x1a4003e0,0x004043e2, -0x00800040,0x2b801a68,0x1a400420,0x00404422,0x00a00001,0x2ae01a48,0x008d25c0,0x00000000, -0x00a00001,0x2b201a48,0x008d2600,0x00000000,0x00800040,0x24a01a68,0x1a400460,0x00400462, -0x00800040,0x2ba01a68,0x1a400460,0x00404462,0x00800040,0x23a01a48,0x1a400360,0x00400362, -0x00a00008,0x26401a68,0x1e8d0b60,0x00010001,0x0080000c,0x24401a28,0x1e8d04a0,0x00010001, -0x00800040,0x23801a68,0x1a400b20,0x00400b22,0x00800040,0x23601a68,0x1a400ae0,0x00400ae2, -0x00a00008,0x26801a68,0x1e8d0ba0,0x00010001,0x00a00001,0x2b601a48,0x008d2640,0x00000000, -0x00800001,0x44c00a48,0x008d2440,0x00000000,0x00800040,0x23c01a48,0x1a400360,0x00400362, -0x00a00001,0x2ba01a48,0x008d2680,0x00000000,0x00800040,0x24001a48,0x1a400b60,0x00400b62, -0x00800001,0x24801248,0x004004c0,0x00000000,0x00800040,0x23a01248,0x128d03a0,0x008d03c0, -0x00800040,0x25001a48,0x128d0ba0,0x008d0480,0x00800040,0x23a01248,0x128d03a0,0x008d0400, -0x00800040,0x23a01248,0x128d03a0,0x008d0500,0x04600002,0x22c01248,0x128d03a0,0x008d03b0, -0x00600040,0x22e01208,0x128d03a0,0x008d03b0,0x00600001,0x23001268,0x008d02c0,0x00000000, -0x606d2140,0x171717ad,0x04400002,0x23201a48,0x1a690300,0x00690308,0x00200040,0x22e00208, -0x024502e0,0x004502e8,0x00400001,0x23401268,0x00690320,0x00000000,0x00000040,0x22a40208, -0x020002e0,0x000002e4,0x04200002,0x23601a48,0x1a450340,0x00450344,0x00000040,0x26f00208, -0x020006f0,0x000002a4,0x04000002,0x23801248,0x12000360,0x00000362,0x00200001,0x23c01248, -0x00000380,0x00000000,0x04000002,0x26f41208,0x020003c0,0x000006f4,0x03000010,0x20000200, -0x060006f0,0x7fffffff,0x00a00040,0x2a602268,0x228d0920,0x008d4c20,0x00a00040,0x29e02268, -0x228d08e0,0x008d4be0,0x00a00040,0x2aa02268,0x228d0940,0x008d4c40,0x00a00040,0x2b602268, -0x228d09a0,0x008d4ca0,0x00a00040,0x2ae02268,0x228d0960,0x008d4c60,0x00a00040,0x2ba02268, -0x228d09c0,0x008d4cc0,0x00a00040,0x2b202268,0x228d0980,0x008d4c80,0x00a00040,0x2a202268, -0x228d0900,0x008d4c00,0x00010020,0x34000004,0x0e001400,0x00000548,0x00800040,0x22e01a68, -0x1a4009e0,0x004009e2,0x00800040,0x29e01a68,0x1a4009e0,0x004049e2,0x00800040,0x23001a68, -0x1a400a20,0x00400a22,0x00800040,0x2a001a68,0x1a400a20,0x00404a22,0x00800040,0x23401a68, -0x1a400aa0,0x00400aa2,0x00800040,0x23201a68,0x1a400a60,0x00400a62,0x00800040,0x2a401a68, -0x1a400aa0,0x00404aa2,0x00800040,0x2a201a68,0x1a400a60,0x00404a62,0x00800040,0x2ac01a68, -0x1a400ba0,0x00404ba2,0x00800040,0x2aa01a68,0x1a400b60,0x00404b62,0x00800040,0x2a801a68, -0x1a400b20,0x00404b22,0x00800040,0x2a601a68,0x1a400ae0,0x00404ae2,0x00a00008,0x24c01a68, -0x1e8d09e0,0x00010001,0x00a00008,0x25001a68,0x1e8d0a20,0x00010001,0x00a00008,0x25801a68, -0x1e8d0aa0,0x00010001,0x00a00008,0x25401a68,0x1e8d0a60,0x00010001,0x00800040,0x23601a68, -0x1a400ae0,0x00400ae2,0x00800040,0x23c01a68,0x1a400ba0,0x00400ba2,0x00800040,0x23801a68, -0x1a400b20,0x00400b22,0x00800040,0x23a01a68,0x1a400b60,0x00400b62,0x00a00001,0x29e01a48, -0x008d24c0,0x00000000,0x00a00001,0x2a201a48,0x008d2500,0x00000000,0x00a00001,0x2aa01a48, -0x008d2580,0x00000000,0x00a00001,0x2a601a48,0x008d2540,0x00000000,0x00600040,0x43e01a68, -0x1a6002e0,0x006002e4,0x00600040,0x44001a68,0x1a600320,0x00600324,0x00600040,0x4b001a68, -0x1a600320,0x00604324,0x00600040,0x4ae01a68,0x1a6002e0,0x006042e4,0x00600040,0x44201a68, -0x1a600360,0x00600364,0x00600040,0x4b201a68,0x1a600360,0x00604364,0x00600040,0x4b401a68, -0x1a6003a0,0x006043a4,0x00600040,0x44401a68,0x1a6003a0,0x006003a4,0x00600040,0x43e21a68, -0x1a6002e2,0x006002e6,0x00600040,0x44021a68,0x1a600322,0x00600326,0x00600040,0x4b021a68, -0x1a600322,0x00604326,0x00600040,0x4ae21a68,0x1a6002e2,0x006042e6,0x00600040,0x44221a68, -0x1a600362,0x00600366,0x00600040,0x4b221a68,0x1a600362,0x00604366,0x00600040,0x4b421a68, -0x1a6003a2,0x006043a6,0x00600040,0x44421a68,0x1a6003a2,0x006003a6,0x00800040,0x23401a68, -0x1a400aa0,0x00400aa2,0x00800040,0x23201a68,0x1a400a60,0x00400a62,0x00800040,0x23001a68, -0x1a400a20,0x00400a22,0x00800040,0x22e01a68,0x1a4009e0,0x004009e2,0x00800040,0x24601a68, -0x1a4003e0,0x004003e2,0x00a00008,0x25c01a68,0x1e8d0ae0,0x00010001,0x00a00008,0x26001a68, -0x1e8d0b20,0x00010001,0x00800040,0x24801a68,0x1a400420,0x00400422,0x00800040,0x23801a68, -0x1a400320,0x00400322,0x00800040,0x23601a68,0x1a4002e0,0x004002e2,0x00800040,0x2b601a68, -0x1a4003e0,0x004043e2,0x00800040,0x2b801a68,0x1a400420,0x00404422,0x00a00001,0x2ae01a48, -0x008d25c0,0x00000000,0x00a00001,0x2b201a48,0x008d2600,0x00000000,0x00800040,0x24a01a68, -0x1a400460,0x00400462,0x00800040,0x2ba01a68,0x1a400460,0x00404462,0x00800040,0x23a01a48, -0x1a400360,0x00400362,0x00a00008,0x26401a68,0x1e8d0b60,0x00010001,0x0080000c,0x24401a28, -0x1e8d04a0,0x00010001,0x00800040,0x23801a68,0x1a400b20,0x00400b22,0x00800040,0x23601a68, -0x1a400ae0,0x00400ae2,0x00a00008,0x26801a68,0x1e8d0ba0,0x00010001,0x00a00001,0x2b601a48, -0x008d2640,0x00000000,0x00800001,0x44c00a48,0x008d2440,0x00000000,0x00800040,0x23c01a48, -0x1a400360,0x00400362,0x00a00001,0x2ba01a48,0x008d2680,0x00000000,0x00800040,0x24001a48, -0x1a400b60,0x00400b62,0x00800001,0x24801248,0x004004c0,0x00000000,0x00800040,0x23a01248, -0x128d03a0,0x008d03c0,0x00800040,0x25001a48,0x128d0ba0,0x008d0480,0x00800040,0x23a01248, -0x128d03a0,0x008d0400,0x00800040,0x23a01248,0x128d03a0,0x008d0500,0x04600002,0x22c01248, -0x128d03a0,0x008d03b0,0x00600040,0x22e01208,0x128d03a0,0x008d03b0,0x00600001,0x23001268, -0x008d02c0,0x00000000,0x606d2140,0x171717ad,0x04400002,0x23201a48,0x1a690300,0x00690308, -0x00200040,0x22e00208,0x024502e0,0x004502e8,0x00400001,0x23401268,0x00690320,0x00000000, -0x00000040,0x22a40208,0x020002e0,0x000002e4,0x04200002,0x23601a48,0x1a450340,0x00450344, -0x00000040,0x26f00208,0x020006f0,0x000002a4,0x04000002,0x23801248,0x12000360,0x00000362, -0x00200001,0x23c01248,0x00000380,0x00000000,0x04000002,0x26f41208,0x020003c0,0x000006f4, -0x20005601,0x00396100,0x20005601,0x00395f00,0x20145601,0x00396500,0x20145601,0x00396300, -0x00a00040,0x2da02268,0x228d0c40,0x008d07c0,0x00a00040,0x2d602268,0x228d0c20,0x008d07a0, -0x00a00040,0x2ce02268,0x228d0be0,0x008d0760,0x00a00040,0x2d202268,0x228d0c00,0x008d0780, -0x80800040,0x4c401a88,0x22400da0,0x00004740,0x80800040,0x4c201a88,0x22400d60,0x00004740, -0x80800040,0x4be01a88,0x22400ce0,0x00004740,0x80800040,0x4c001a88,0x22400d20,0x00004740, -0x80800040,0x4c411a88,0x22400da2,0x00004740,0x80800040,0x4c211a88,0x22400d62,0x00004740, -0x80800040,0x4be11a88,0x22400ce2,0x00004740,0x80800040,0x4c011a88,0x22400d22,0x00004740, -0x00a00040,0x2da02268,0x228d0cc0,0x008d07c0,0x00a00040,0x2d602268,0x228d0ca0,0x008d07a0, -0x00a00040,0x2ce02268,0x228d0c60,0x008d0760,0x00a00040,0x2d202268,0x228d0c80,0x008d0780, -0x80800040,0x4cc01a88,0x22400da0,0x00004740,0x80800040,0x4ca01a88,0x22400d60,0x00004740, -0x80800040,0x4c601a88,0x22400ce0,0x00004740,0x80800040,0x4c801a88,0x22400d20,0x00004740, -0x80800040,0x4cc11a88,0x22400da2,0x00004740,0x80800040,0x4ca11a88,0x22400d62,0x00004740, -0x80800040,0x4c611a88,0x22400ce2,0x00004740,0x80800040,0x4c811a88,0x22400d22,0x00004740, -0x03000010,0x20000200,0x060006f8,0x7fffffff,0x00a00040,0x2aa02268,0x228d0840,0x008d4c40, -0x00a00040,0x2a602268,0x228d0820,0x008d4c20,0x00a00040,0x29e02268,0x228d07e0,0x008d4be0, -0x00a00040,0x2a202268,0x228d0800,0x008d4c00,0x00a00040,0x2ba02268,0x228d08c0,0x008d4cc0, -0x00a00040,0x2b602268,0x228d08a0,0x008d4ca0,0x00a00040,0x2ae02268,0x228d0860,0x008d4c60, -0x00a00040,0x2b202268,0x228d0880,0x008d4c80,0x00010020,0x34000004,0x0e001400,0x00000548, -0x00800040,0x22e01a68,0x1a4009e0,0x004009e2,0x00800040,0x29e01a68,0x1a4009e0,0x004049e2, -0x00800040,0x23001a68,0x1a400a20,0x00400a22,0x00800040,0x2a001a68,0x1a400a20,0x00404a22, -0x00800040,0x23401a68,0x1a400aa0,0x00400aa2,0x00800040,0x23201a68,0x1a400a60,0x00400a62, -0x00800040,0x2a401a68,0x1a400aa0,0x00404aa2,0x00800040,0x2a201a68,0x1a400a60,0x00404a62, -0x00800040,0x2ac01a68,0x1a400ba0,0x00404ba2,0x00800040,0x2aa01a68,0x1a400b60,0x00404b62, -0x00800040,0x2a801a68,0x1a400b20,0x00404b22,0x00800040,0x2a601a68,0x1a400ae0,0x00404ae2, -0x00a00008,0x24c01a68,0x1e8d09e0,0x00010001,0x00a00008,0x25001a68,0x1e8d0a20,0x00010001, -0x00a00008,0x25801a68,0x1e8d0aa0,0x00010001,0x00a00008,0x25401a68,0x1e8d0a60,0x00010001, -0x00800040,0x23601a68,0x1a400ae0,0x00400ae2,0x00800040,0x23c01a68,0x1a400ba0,0x00400ba2, -0x00800040,0x23801a68,0x1a400b20,0x00400b22,0x00800040,0x23a01a68,0x1a400b60,0x00400b62, -0x00a00001,0x29e01a48,0x008d24c0,0x00000000,0x00a00001,0x2a201a48,0x008d2500,0x00000000, -0x00a00001,0x2aa01a48,0x008d2580,0x00000000,0x00a00001,0x2a601a48,0x008d2540,0x00000000, -0x00600040,0x43e01a68,0x1a6002e0,0x006002e4,0x00600040,0x44001a68,0x1a600320,0x00600324, -0x00600040,0x4b001a68,0x1a600320,0x00604324,0x00600040,0x4ae01a68,0x1a6002e0,0x006042e4, -0x00600040,0x44201a68,0x1a600360,0x00600364,0x00600040,0x4b201a68,0x1a600360,0x00604364, -0x00600040,0x4b401a68,0x1a6003a0,0x006043a4,0x00600040,0x44401a68,0x1a6003a0,0x006003a4, -0x00600040,0x43e21a68,0x1a6002e2,0x006002e6,0x00600040,0x44021a68,0x1a600322,0x00600326, -0x00600040,0x4b021a68,0x1a600322,0x00604326,0x00600040,0x4ae21a68,0x1a6002e2,0x006042e6, -0x00600040,0x44221a68,0x1a600362,0x00600366,0x00600040,0x4b221a68,0x1a600362,0x00604366, -0x00600040,0x4b421a68,0x1a6003a2,0x006043a6,0x00600040,0x44421a68,0x1a6003a2,0x006003a6, -0x00800040,0x23401a68,0x1a400aa0,0x00400aa2,0x00800040,0x23201a68,0x1a400a60,0x00400a62, -0x00800040,0x23001a68,0x1a400a20,0x00400a22,0x00800040,0x22e01a68,0x1a4009e0,0x004009e2, -0x00800040,0x24601a68,0x1a4003e0,0x004003e2,0x00a00008,0x25c01a68,0x1e8d0ae0,0x00010001, -0x00a00008,0x26001a68,0x1e8d0b20,0x00010001,0x00800040,0x24801a68,0x1a400420,0x00400422, -0x00800040,0x23801a68,0x1a400320,0x00400322,0x00800040,0x23601a68,0x1a4002e0,0x004002e2, -0x00800040,0x2b601a68,0x1a4003e0,0x004043e2,0x00800040,0x2b801a68,0x1a400420,0x00404422, -0x00a00001,0x2ae01a48,0x008d25c0,0x00000000,0x00a00001,0x2b201a48,0x008d2600,0x00000000, -0x00800040,0x24a01a68,0x1a400460,0x00400462,0x00800040,0x2ba01a68,0x1a400460,0x00404462, -0x00800040,0x23a01a48,0x1a400360,0x00400362,0x00a00008,0x26401a68,0x1e8d0b60,0x00010001, -0x0080000c,0x24401a28,0x1e8d04a0,0x00010001,0x00800040,0x23801a68,0x1a400b20,0x00400b22, -0x00800040,0x23601a68,0x1a400ae0,0x00400ae2,0x00a00008,0x26801a68,0x1e8d0ba0,0x00010001, -0x00a00001,0x2b601a48,0x008d2640,0x00000000,0x00800001,0x44c00a48,0x008d2440,0x00000000, -0x00800040,0x23c01a48,0x1a400360,0x00400362,0x00a00001,0x2ba01a48,0x008d2680,0x00000000, -0x00800040,0x24001a48,0x1a400b60,0x00400b62,0x00800001,0x24801248,0x004004c0,0x00000000, -0x00800040,0x23a01248,0x128d03a0,0x008d03c0,0x00800040,0x25001a48,0x128d0ba0,0x008d0480, -0x00800040,0x23a01248,0x128d03a0,0x008d0400,0x00800040,0x23a01248,0x128d03a0,0x008d0500, -0x04600002,0x22c01248,0x128d03a0,0x008d03b0,0x00600040,0x22e01208,0x128d03a0,0x008d03b0, -0x00600001,0x23001268,0x008d02c0,0x00000000,0x606d2140,0x171717ad,0x04400002,0x23201a48, -0x1a690300,0x00690308,0x00200040,0x22e00208,0x024502e0,0x004502e8,0x00400001,0x23401268, -0x00690320,0x00000000,0x00000040,0x22a40208,0x020002e0,0x000002e4,0x04200002,0x23601a48, -0x1a450340,0x00450344,0x00000040,0x26f80208,0x020006f8,0x000002a4,0x04000002,0x23801248, -0x12000360,0x00000362,0x00200001,0x23c01248,0x00000380,0x00000000,0x04000002,0x26fc1208, -0x020003c0,0x000006fc,0x20185601,0x00396100,0x20185601,0x00395f00,0x201c5601,0x00396500, -0x201c5601,0x00396300,0x00a00040,0x2da02268,0x228d0c40,0x008d07c0,0x00a00040,0x2d602268, -0x228d0c20,0x008d07a0,0x00a00040,0x2ce02268,0x228d0be0,0x008d0760,0x00a00040,0x2d202268, -0x228d0c00,0x008d0780,0x80800040,0x4c401a88,0x22400da0,0x00004740,0x80800040,0x4c201a88, -0x22400d60,0x00004740,0x80800040,0x4be01a88,0x22400ce0,0x00004740,0x80800040,0x4c001a88, -0x22400d20,0x00004740,0x80800040,0x4c411a88,0x22400da2,0x00004740,0x80800040,0x4c211a88, -0x22400d62,0x00004740,0x80800040,0x4be11a88,0x22400ce2,0x00004740,0x80800040,0x4c011a88, -0x22400d22,0x00004740,0x00a00040,0x2da02268,0x228d0cc0,0x008d07c0,0x00a00040,0x2d602268, -0x228d0ca0,0x008d07a0,0x00a00040,0x2ce02268,0x228d0c60,0x008d0760,0x00a00040,0x2d202268, -0x228d0c80,0x008d0780,0x80800040,0x4cc01a88,0x22400da0,0x00004740,0x80800040,0x4ca01a88, -0x22400d60,0x00004740,0x80800040,0x4c601a88,0x22400ce0,0x00004740,0x80800040,0x4c801a88, -0x22400d20,0x00004740,0x80800040,0x4cc11a88,0x22400da2,0x00004740,0x80800040,0x4ca11a88, -0x22400d62,0x00004740,0x80800040,0x4c611a88,0x22400ce2,0x00004740,0x80800040,0x4c811a88, -0x22400d22,0x00004740,0x03000010,0x20000200,0x060006f8,0x7fffffff,0x00a00040,0x2aa02268, -0x228d0940,0x008d4c40,0x00a00040,0x2a602268,0x228d0920,0x008d4c20,0x00a00040,0x29e02268, -0x228d08e0,0x008d4be0,0x00a00040,0x2a202268,0x228d0900,0x008d4c00,0x00a00040,0x2ba02268, -0x228d09c0,0x008d4cc0,0x00a00040,0x2b602268,0x228d09a0,0x008d4ca0,0x00a00040,0x2ae02268, -0x228d0960,0x008d4c60,0x00a00040,0x2b202268,0x228d0980,0x008d4c80,0x00010020,0x34000004, -0x0e001400,0x00000548,0x00800040,0x22e01a68,0x1a4009e0,0x004009e2,0x00800040,0x29e01a68, -0x1a4009e0,0x004049e2,0x00800040,0x23001a68,0x1a400a20,0x00400a22,0x00800040,0x2a001a68, -0x1a400a20,0x00404a22,0x00800040,0x23401a68,0x1a400aa0,0x00400aa2,0x00800040,0x23201a68, -0x1a400a60,0x00400a62,0x00800040,0x2a401a68,0x1a400aa0,0x00404aa2,0x00800040,0x2a201a68, -0x1a400a60,0x00404a62,0x00800040,0x2ac01a68,0x1a400ba0,0x00404ba2,0x00800040,0x2aa01a68, -0x1a400b60,0x00404b62,0x00800040,0x2a801a68,0x1a400b20,0x00404b22,0x00800040,0x2a601a68, -0x1a400ae0,0x00404ae2,0x00a00008,0x24c01a68,0x1e8d09e0,0x00010001,0x00a00008,0x25001a68, -0x1e8d0a20,0x00010001,0x00a00008,0x25801a68,0x1e8d0aa0,0x00010001,0x00a00008,0x25401a68, -0x1e8d0a60,0x00010001,0x00800040,0x23601a68,0x1a400ae0,0x00400ae2,0x00800040,0x23c01a68, -0x1a400ba0,0x00400ba2,0x00800040,0x23801a68,0x1a400b20,0x00400b22,0x00800040,0x23a01a68, -0x1a400b60,0x00400b62,0x00a00001,0x29e01a48,0x008d24c0,0x00000000,0x00a00001,0x2a201a48, -0x008d2500,0x00000000,0x00a00001,0x2aa01a48,0x008d2580,0x00000000,0x00a00001,0x2a601a48, -0x008d2540,0x00000000,0x00600040,0x43e01a68,0x1a6002e0,0x006002e4,0x00600040,0x44001a68, -0x1a600320,0x00600324,0x00600040,0x4b001a68,0x1a600320,0x00604324,0x00600040,0x4ae01a68, -0x1a6002e0,0x006042e4,0x00600040,0x44201a68,0x1a600360,0x00600364,0x00600040,0x4b201a68, -0x1a600360,0x00604364,0x00600040,0x4b401a68,0x1a6003a0,0x006043a4,0x00600040,0x44401a68, -0x1a6003a0,0x006003a4,0x00600040,0x43e21a68,0x1a6002e2,0x006002e6,0x00600040,0x44021a68, -0x1a600322,0x00600326,0x00600040,0x4b021a68,0x1a600322,0x00604326,0x00600040,0x4ae21a68, -0x1a6002e2,0x006042e6,0x00600040,0x44221a68,0x1a600362,0x00600366,0x00600040,0x4b221a68, -0x1a600362,0x00604366,0x00600040,0x4b421a68,0x1a6003a2,0x006043a6,0x00600040,0x44421a68, -0x1a6003a2,0x006003a6,0x00800040,0x23401a68,0x1a400aa0,0x00400aa2,0x00800040,0x23201a68, -0x1a400a60,0x00400a62,0x00800040,0x23001a68,0x1a400a20,0x00400a22,0x00800040,0x22e01a68, -0x1a4009e0,0x004009e2,0x00800040,0x24601a68,0x1a4003e0,0x004003e2,0x00a00008,0x25c01a68, -0x1e8d0ae0,0x00010001,0x00a00008,0x26001a68,0x1e8d0b20,0x00010001,0x00800040,0x24801a68, -0x1a400420,0x00400422,0x00800040,0x23801a68,0x1a400320,0x00400322,0x00800040,0x23601a68, -0x1a4002e0,0x004002e2,0x00800040,0x2b601a68,0x1a4003e0,0x004043e2,0x00800040,0x2b801a68, -0x1a400420,0x00404422,0x00a00001,0x2ae01a48,0x008d25c0,0x00000000,0x00a00001,0x2b201a48, -0x008d2600,0x00000000,0x00800040,0x24a01a68,0x1a400460,0x00400462,0x00800040,0x2ba01a68, -0x1a400460,0x00404462,0x00800040,0x23a01a48,0x1a400360,0x00400362,0x00a00008,0x26401a68, -0x1e8d0b60,0x00010001,0x0080000c,0x24401a28,0x1e8d04a0,0x00010001,0x00800040,0x23801a68, -0x1a400b20,0x00400b22,0x00800040,0x23601a68,0x1a400ae0,0x00400ae2,0x00a00008,0x26801a68, -0x1e8d0ba0,0x00010001,0x00a00001,0x2b601a48,0x008d2640,0x00000000,0x00800001,0x44c00a48, -0x008d2440,0x00000000,0x00800040,0x23c01a48,0x1a400360,0x00400362,0x00a00001,0x2ba01a48, -0x008d2680,0x00000000,0x00800040,0x24001a48,0x1a400b60,0x00400b62,0x00800001,0x24801248, -0x004004c0,0x00000000,0x00800040,0x23a01248,0x128d03a0,0x008d03c0,0x00800040,0x25001a48, -0x128d0ba0,0x008d0480,0x00800040,0x23a01248,0x128d03a0,0x008d0400,0x00800040,0x23a01248, -0x128d03a0,0x008d0500,0x04600002,0x22c01248,0x128d03a0,0x008d03b0,0x00600040,0x22e01208, -0x128d03a0,0x008d03b0,0x00600001,0x23001268,0x008d02c0,0x00000000,0x606d2140,0x171717ad, -0x04400002,0x23201a48,0x1a690300,0x00690308,0x00200040,0x22e00208,0x024502e0,0x004502e8, -0x00400001,0x23401268,0x00690320,0x00000000,0x00000040,0x22a40208,0x020002e0,0x000002e4, -0x04200002,0x23601a48,0x1a450340,0x00450344,0x00000040,0x26f80208,0x020006f8,0x000002a4, -0x04000002,0x23801248,0x12000360,0x00000362,0x00200001,0x23c01248,0x00000380,0x00000000, -0x04000002,0x26fc1208,0x020003c0,0x000006fc,0x20004d01,0x00001707,0x00000040,0x22000204, -0x060002a0,0x02490000,0x00000001,0x22e8060c,0x00000000,0x001f0003,0x00000001,0x22e41228, -0x000006ca,0x00000000,0x00000040,0x22e01228,0x160006c8,0x00100010,0x03000010,0x20000200, -0x060006e0,0x7fffffff,0x0c600031,0x27e03a0c,0x000002e0,0x00000200,0x00000040,0x22e01228, -0x160006c8,0x00140014,0x00000001,0x22e41228,0x000006ca,0x00000000,0x0c600031,0x28603a0c, -0x000002e0,0x00000200,0x00000040,0x22e01228,0x160006c8,0x00180018,0x00000001,0x22e41228, -0x000006ca,0x00000000,0x0c600031,0x28e03a0c,0x000002e0,0x00000200,0x00000040,0x22e01228, -0x160006c8,0x001c001c,0x00000001,0x22e41228,0x000006ca,0x00000000,0x00a00040,0x29e02268, -0x228d07e0,0x000046d4,0x00a00040,0x2aa02268,0x228d0840,0x000046d4,0x00a00040,0x2a202268, -0x228d0800,0x000046d4,0x00a00040,0x2a602268,0x228d0820,0x000046d4,0x00a00040,0x2ba02268, -0x228d08c0,0x000046d4,0x00a00040,0x2ae02268,0x228d0860,0x000046d4,0x00a00040,0x2b602268, -0x228d08a0,0x000046d4,0x00a00040,0x2b202268,0x228d0880,0x000046d4,0x0c600031,0x29603a0c, -0x000002e0,0x00000200,0x00010020,0x34000004,0x0e001400,0x00000548,0x00800040,0x22e01a68, -0x1a4009e0,0x004009e2,0x00800040,0x29e01a68,0x1a4009e0,0x004049e2,0x00800040,0x23001a68, -0x1a400a20,0x00400a22,0x00800040,0x2a001a68,0x1a400a20,0x00404a22,0x00800040,0x23401a68, -0x1a400aa0,0x00400aa2,0x00800040,0x23201a68,0x1a400a60,0x00400a62,0x00800040,0x2a401a68, -0x1a400aa0,0x00404aa2,0x00800040,0x2a201a68,0x1a400a60,0x00404a62,0x00800040,0x2ac01a68, -0x1a400ba0,0x00404ba2,0x00800040,0x2aa01a68,0x1a400b60,0x00404b62,0x00800040,0x2a801a68, -0x1a400b20,0x00404b22,0x00800040,0x2a601a68,0x1a400ae0,0x00404ae2,0x00a00008,0x24a01a68, -0x1e8d09e0,0x00010001,0x00a00008,0x24e01a68,0x1e8d0a20,0x00010001,0x00a00008,0x25601a68, -0x1e8d0aa0,0x00010001,0x00a00008,0x25201a68,0x1e8d0a60,0x00010001,0x00800040,0x23601a68, -0x1a400ae0,0x00400ae2,0x00800040,0x23c01a68,0x1a400ba0,0x00400ba2,0x00800040,0x23801a68, -0x1a400b20,0x00400b22,0x00800040,0x23a01a68,0x1a400b60,0x00400b62,0x00a00001,0x29e01a48, -0x008d24a0,0x00000000,0x00a00001,0x2a201a48,0x008d24e0,0x00000000,0x00a00001,0x2aa01a48, -0x008d2560,0x00000000,0x00a00001,0x2a601a48,0x008d2520,0x00000000,0x00600040,0x43e01a68, -0x1a6002e0,0x006002e4,0x00600040,0x44001a68,0x1a600320,0x00600324,0x00600040,0x4b001a68, -0x1a600320,0x00604324,0x00600040,0x4ae01a68,0x1a6002e0,0x006042e4,0x00600040,0x44201a68, -0x1a600360,0x00600364,0x00600040,0x4b201a68,0x1a600360,0x00604364,0x00600040,0x4b401a68, -0x1a6003a0,0x006043a4,0x00600040,0x44401a68,0x1a6003a0,0x006003a4,0x00600040,0x43e21a68, -0x1a6002e2,0x006002e6,0x00600040,0x44021a68,0x1a600322,0x00600326,0x00600040,0x4b021a68, -0x1a600322,0x00604326,0x00600040,0x4ae21a68,0x1a6002e2,0x006042e6,0x00600040,0x44221a68, -0x1a600362,0x00600366,0x00600040,0x4b221a68,0x1a600362,0x00604366,0x00600040,0x4b421a68, -0x1a6003a2,0x006043a6,0x00600040,0x44421a68,0x1a6003a2,0x006003a6,0x00800040,0x23401a68, -0x1a400aa0,0x00400aa2,0x00800040,0x23201a68,0x1a400a60,0x00400a62,0x00800040,0x23001a68, -0x1a400a20,0x00400a22,0x00800040,0x22e01a68,0x1a4009e0,0x004009e2,0x00800040,0x24601a68, -0x1a4003e0,0x004003e2,0x00a00008,0x25a01a68,0x1e8d0ae0,0x00010001,0x00a00008,0x25e01a68, -0x1e8d0b20,0x00010001,0x00800040,0x24801a68,0x1a400420,0x00400422,0x00800040,0x23801a68, -0x1a400320,0x00400322,0x00800040,0x23601a68,0x1a4002e0,0x004002e2,0x00800040,0x2b601a68, -0x1a4003e0,0x004043e2,0x00800040,0x2b801a68,0x1a400420,0x00404422,0x00a00001,0x2ae01a48, -0x008d25a0,0x00000000,0x00a00001,0x2b201a48,0x008d25e0,0x00000000,0x00800040,0x22a01a68, -0x1a400460,0x00400462,0x00800040,0x2ba01a68,0x1a400460,0x00404462,0x00800040,0x23a01a48, -0x1a400360,0x00400362,0x00a00008,0x26201a68,0x1e8d0b60,0x00010001,0x0080000c,0x24401a28, -0x1e8d02a0,0x00010001,0x00800040,0x23801a68,0x1a400b20,0x00400b22,0x00800040,0x23601a68, -0x1a400ae0,0x00400ae2,0x00a00008,0x26601a68,0x1e8d0ba0,0x00010001,0x00a00001,0x2b601a48, -0x008d2620,0x00000000,0x00800001,0x44800a48,0x008d2440,0x00000000,0x00800040,0x23c01a48, -0x1a400360,0x00400362,0x00a00001,0x2ba01a48,0x008d2660,0x00000000,0x00800040,0x24001a48, -0x1a400b60,0x00400b62,0x00800001,0x24c01248,0x00400480,0x00000000,0x00800040,0x23a01248, -0x128d03a0,0x008d03c0,0x00800040,0x24e01a48,0x128d0ba0,0x008d04c0,0x00800040,0x23a01248, -0x128d03a0,0x008d0400,0x00800040,0x23a01248,0x128d03a0,0x008d04e0,0x04600002,0x23001248, -0x128d03a0,0x008d03b0,0x00600040,0x22e01208,0x128d03a0,0x008d03b0,0x00600001,0x23201268, -0x008d0300,0x00000000,0x606d2140,0x171717ad,0x04400002,0x22a01a48,0x1a690320,0x00690328, -0x00200040,0x22e00208,0x024502e0,0x004502e8,0x00400001,0x23401268,0x006902a0,0x00000000, -0x00000040,0x22c00208,0x020002e0,0x000002e4,0x04200002,0x23601a48,0x1a450340,0x00450344, -0x00000040,0x26e00208,0x020006e0,0x000002c0,0x04000002,0x23801248,0x12000360,0x00000362, -0x00200001,0x23c01248,0x00000380,0x00000000,0x04000002,0x26e41208,0x020003c0,0x000006e4, -0x03000010,0x20000200,0x060006e0,0x7fffffff,0x00a00040,0x2ae02268,0x228d0960,0x000046d4, -0x00a00040,0x2b602268,0x228d09a0,0x000046d4,0x00a00040,0x2aa02268,0x228d0940,0x000046d4, -0x00a00040,0x29e02268,0x228d08e0,0x000046d4,0x00a00040,0x2a602268,0x228d0920,0x000046d4, -0x00a00040,0x2a202268,0x228d0900,0x000046d4,0x00a00040,0x2b202268,0x228d0980,0x000046d4, -0x00a00040,0x2ba02268,0x228d09c0,0x000046d4,0x00010020,0x34000004,0x0e001400,0x00000548, -0x00800040,0x22e01a68,0x1a4009e0,0x004009e2,0x00800040,0x29e01a68,0x1a4009e0,0x004049e2, -0x00800040,0x23001a68,0x1a400a20,0x00400a22,0x00800040,0x2a001a68,0x1a400a20,0x00404a22, -0x00800040,0x23401a68,0x1a400aa0,0x00400aa2,0x00800040,0x23201a68,0x1a400a60,0x00400a62, -0x00800040,0x2a401a68,0x1a400aa0,0x00404aa2,0x00800040,0x2a201a68,0x1a400a60,0x00404a62, -0x00800040,0x2ac01a68,0x1a400ba0,0x00404ba2,0x00800040,0x2aa01a68,0x1a400b60,0x00404b62, -0x00800040,0x2a801a68,0x1a400b20,0x00404b22,0x00800040,0x2a601a68,0x1a400ae0,0x00404ae2, -0x00a00008,0x24a01a68,0x1e8d09e0,0x00010001,0x00a00008,0x24e01a68,0x1e8d0a20,0x00010001, -0x00a00008,0x25601a68,0x1e8d0aa0,0x00010001,0x00a00008,0x25201a68,0x1e8d0a60,0x00010001, -0x00800040,0x23601a68,0x1a400ae0,0x00400ae2,0x00800040,0x23c01a68,0x1a400ba0,0x00400ba2, -0x00800040,0x23801a68,0x1a400b20,0x00400b22,0x00800040,0x23a01a68,0x1a400b60,0x00400b62, -0x00a00001,0x29e01a48,0x008d24a0,0x00000000,0x00a00001,0x2a201a48,0x008d24e0,0x00000000, -0x00a00001,0x2aa01a48,0x008d2560,0x00000000,0x00a00001,0x2a601a48,0x008d2520,0x00000000, -0x00600040,0x43e01a68,0x1a6002e0,0x006002e4,0x00600040,0x44001a68,0x1a600320,0x00600324, -0x00600040,0x4b001a68,0x1a600320,0x00604324,0x00600040,0x4ae01a68,0x1a6002e0,0x006042e4, -0x00600040,0x44201a68,0x1a600360,0x00600364,0x00600040,0x4b201a68,0x1a600360,0x00604364, -0x00600040,0x4b401a68,0x1a6003a0,0x006043a4,0x00600040,0x44401a68,0x1a6003a0,0x006003a4, -0x00600040,0x43e21a68,0x1a6002e2,0x006002e6,0x00600040,0x44021a68,0x1a600322,0x00600326, -0x00600040,0x4b021a68,0x1a600322,0x00604326,0x00600040,0x4ae21a68,0x1a6002e2,0x006042e6, -0x00600040,0x44221a68,0x1a600362,0x00600366,0x00600040,0x4b221a68,0x1a600362,0x00604366, -0x00600040,0x4b421a68,0x1a6003a2,0x006043a6,0x00600040,0x44421a68,0x1a6003a2,0x006003a6, -0x00800040,0x23401a68,0x1a400aa0,0x00400aa2,0x00800040,0x23201a68,0x1a400a60,0x00400a62, -0x00800040,0x23001a68,0x1a400a20,0x00400a22,0x00800040,0x22e01a68,0x1a4009e0,0x004009e2, -0x00800040,0x24601a68,0x1a4003e0,0x004003e2,0x00a00008,0x25a01a68,0x1e8d0ae0,0x00010001, -0x00a00008,0x25e01a68,0x1e8d0b20,0x00010001,0x00800040,0x24801a68,0x1a400420,0x00400422, -0x00800040,0x23801a68,0x1a400320,0x00400322,0x00800040,0x23601a68,0x1a4002e0,0x004002e2, -0x00800040,0x2b601a68,0x1a4003e0,0x004043e2,0x00800040,0x2b801a68,0x1a400420,0x00404422, -0x00a00001,0x2ae01a48,0x008d25a0,0x00000000,0x00a00001,0x2b201a48,0x008d25e0,0x00000000, -0x00800040,0x22a01a68,0x1a400460,0x00400462,0x00800040,0x2ba01a68,0x1a400460,0x00404462, -0x00800040,0x23a01a48,0x1a400360,0x00400362,0x00a00008,0x26201a68,0x1e8d0b60,0x00010001, -0x0080000c,0x24401a28,0x1e8d02a0,0x00010001,0x00800040,0x23801a68,0x1a400b20,0x00400b22, -0x00800040,0x23601a68,0x1a400ae0,0x00400ae2,0x00a00008,0x26601a68,0x1e8d0ba0,0x00010001, -0x00a00001,0x2b601a48,0x008d2620,0x00000000,0x00800001,0x44800a48,0x008d2440,0x00000000, -0x00800040,0x23c01a48,0x1a400360,0x00400362,0x00a00001,0x2ba01a48,0x008d2660,0x00000000, -0x00800040,0x24001a48,0x1a400b60,0x00400b62,0x00800001,0x24c01248,0x00400480,0x00000000, -0x00800040,0x23a01248,0x128d03a0,0x008d03c0,0x00800040,0x24e01a48,0x128d0ba0,0x008d04c0, -0x00800040,0x23a01248,0x128d03a0,0x008d0400,0x00800040,0x23a01248,0x128d03a0,0x008d04e0, -0x04600002,0x23001248,0x128d03a0,0x008d03b0,0x00600040,0x22e01208,0x128d03a0,0x008d03b0, -0x00600001,0x23201268,0x008d0300,0x00000000,0x606d2140,0x171717ad,0x04400002,0x22a01a48, -0x1a690320,0x00690328,0x00200040,0x22e00208,0x024502e0,0x004502e8,0x00400001,0x23401268, -0x006902a0,0x00000000,0x00000040,0x22c00208,0x020002e0,0x000002e4,0x04200002,0x23601a48, -0x1a450340,0x00450344,0x00000040,0x26e00208,0x020006e0,0x000002c0,0x04000002,0x23801248, -0x12000360,0x00000362,0x00200001,0x23c01248,0x00000380,0x00000000,0x04000002,0x26e41208, -0x020003c0,0x000006e4,0x20285601,0x00396500,0x20285601,0x00396300,0x20205601,0x00395f00, -0x20205601,0x00396100,0x03000010,0x20000200,0x020006e8,0x000006e0,0x00a00040,0x2ba02268, -0x228d08c0,0x008d4cc0,0x00a00040,0x2b602268,0x228d08a0,0x008d4ca0,0x00a00040,0x2b202268, -0x228d0880,0x008d4c80,0x00a00040,0x2ae02268,0x228d0860,0x008d4c60,0x00a00040,0x29e02268, -0x228d07e0,0x008d4be0,0x00a00040,0x2a202268,0x228d0800,0x008d4c00,0x00a00040,0x2a602268, -0x228d0820,0x008d4c20,0x00a00040,0x2aa02268,0x228d0840,0x008d4c40,0x00000001,0x26d80208, -0x000006e0,0x00000000,0x00000001,0x26dc0208,0x000006e4,0x00000000,0x00010020,0x34000004, -0x0e001400,0x00000548,0x00800040,0x22e01a68,0x1a4009e0,0x004009e2,0x00800040,0x29e01a68, -0x1a4009e0,0x004049e2,0x00800040,0x23001a68,0x1a400a20,0x00400a22,0x00800040,0x2a001a68, -0x1a400a20,0x00404a22,0x00800040,0x23401a68,0x1a400aa0,0x00400aa2,0x00800040,0x23201a68, -0x1a400a60,0x00400a62,0x00800040,0x2a401a68,0x1a400aa0,0x00404aa2,0x00800040,0x2a201a68, -0x1a400a60,0x00404a62,0x00800040,0x2ac01a68,0x1a400ba0,0x00404ba2,0x00800040,0x2aa01a68, -0x1a400b60,0x00404b62,0x00800040,0x2a801a68,0x1a400b20,0x00404b22,0x00800040,0x2a601a68, -0x1a400ae0,0x00404ae2,0x00a00008,0x24a01a68,0x1e8d09e0,0x00010001,0x00a00008,0x24e01a68, -0x1e8d0a20,0x00010001,0x00a00008,0x25601a68,0x1e8d0aa0,0x00010001,0x00a00008,0x25201a68, -0x1e8d0a60,0x00010001,0x00800040,0x23601a68,0x1a400ae0,0x00400ae2,0x00800040,0x23c01a68, -0x1a400ba0,0x00400ba2,0x00800040,0x23801a68,0x1a400b20,0x00400b22,0x00800040,0x23a01a68, -0x1a400b60,0x00400b62,0x00a00001,0x29e01a48,0x008d24a0,0x00000000,0x00a00001,0x2a201a48, -0x008d24e0,0x00000000,0x00a00001,0x2aa01a48,0x008d2560,0x00000000,0x00a00001,0x2a601a48, -0x008d2520,0x00000000,0x00600040,0x43e01a68,0x1a6002e0,0x006002e4,0x00600040,0x44001a68, -0x1a600320,0x00600324,0x00600040,0x4b001a68,0x1a600320,0x00604324,0x00600040,0x4ae01a68, -0x1a6002e0,0x006042e4,0x00600040,0x44201a68,0x1a600360,0x00600364,0x00600040,0x4b201a68, -0x1a600360,0x00604364,0x00600040,0x4b401a68,0x1a6003a0,0x006043a4,0x00600040,0x44401a68, -0x1a6003a0,0x006003a4,0x00600040,0x43e21a68,0x1a6002e2,0x006002e6,0x00600040,0x44021a68, -0x1a600322,0x00600326,0x00600040,0x4b021a68,0x1a600322,0x00604326,0x00600040,0x4ae21a68, -0x1a6002e2,0x006042e6,0x00600040,0x44221a68,0x1a600362,0x00600366,0x00600040,0x4b221a68, -0x1a600362,0x00604366,0x00600040,0x4b421a68,0x1a6003a2,0x006043a6,0x00600040,0x44421a68, -0x1a6003a2,0x006003a6,0x00800040,0x23401a68,0x1a400aa0,0x00400aa2,0x00800040,0x23201a68, -0x1a400a60,0x00400a62,0x00800040,0x23001a68,0x1a400a20,0x00400a22,0x00800040,0x22e01a68, -0x1a4009e0,0x004009e2,0x00800040,0x24601a68,0x1a4003e0,0x004003e2,0x00a00008,0x25a01a68, -0x1e8d0ae0,0x00010001,0x00a00008,0x25e01a68,0x1e8d0b20,0x00010001,0x00800040,0x24801a68, -0x1a400420,0x00400422,0x00800040,0x23801a68,0x1a400320,0x00400322,0x00800040,0x23601a68, -0x1a4002e0,0x004002e2,0x00800040,0x2b601a68,0x1a4003e0,0x004043e2,0x00800040,0x2b801a68, -0x1a400420,0x00404422,0x00a00001,0x2ae01a48,0x008d25a0,0x00000000,0x00a00001,0x2b201a48, -0x008d25e0,0x00000000,0x00800040,0x22a01a68,0x1a400460,0x00400462,0x00800040,0x2ba01a68, -0x1a400460,0x00404462,0x00800040,0x23a01a48,0x1a400360,0x00400362,0x00a00008,0x26201a68, -0x1e8d0b60,0x00010001,0x0080000c,0x24401a28,0x1e8d02a0,0x00010001,0x00800040,0x23801a68, -0x1a400b20,0x00400b22,0x00800040,0x23601a68,0x1a400ae0,0x00400ae2,0x00a00008,0x26601a68, -0x1e8d0ba0,0x00010001,0x00a00001,0x2b601a48,0x008d2620,0x00000000,0x00800001,0x44800a48, -0x008d2440,0x00000000,0x00800040,0x23c01a48,0x1a400360,0x00400362,0x00a00001,0x2ba01a48, -0x008d2660,0x00000000,0x00800040,0x24001a48,0x1a400b60,0x00400b62,0x00800001,0x24c01248, -0x00400480,0x00000000,0x00800040,0x23a01248,0x128d03a0,0x008d03c0,0x00800040,0x24e01a48, -0x128d0ba0,0x008d04c0,0x00800040,0x23a01248,0x128d03a0,0x008d0400,0x00800040,0x23a01248, -0x128d03a0,0x008d04e0,0x04600002,0x23001248,0x128d03a0,0x008d03b0,0x00600040,0x22e01208, -0x128d03a0,0x008d03b0,0x00600001,0x23201268,0x008d0300,0x00000000,0x606d2140,0x171717ad, -0x04400002,0x22a01a48,0x1a690320,0x00690328,0x00200040,0x22e00208,0x024502e0,0x004502e8, -0x00400001,0x23401268,0x006902a0,0x00000000,0x00000040,0x22c00208,0x020002e0,0x000002e4, -0x04200002,0x23601a48,0x1a450340,0x00450344,0x00000040,0x26e80208,0x020006e8,0x000002c0, -0x04000002,0x23801248,0x12000360,0x00000362,0x00200001,0x23c01248,0x00000380,0x00000000, -0x04000002,0x26ec1208,0x020003c0,0x000006ec,0x00800001,0x2c200208,0x00000738,0x00000000, -0x00800001,0x2ca00208,0x0000073c,0x00000000,0x00800001,0x2be00208,0x00000738,0x00000000, -0x00800001,0x2c600208,0x0000073c,0x00000000,0x03000010,0x20000200,0x020006e8,0x000006e0, -0x00a00040,0x2aa02268,0x228d0940,0x008d4c40,0x00a00040,0x2a602268,0x228d0920,0x008d4c20, -0x00a00040,0x2ba02268,0x228d09c0,0x008d4cc0,0x00a00040,0x2b602268,0x228d09a0,0x008d4ca0, -0x00a00040,0x29e02268,0x228d08e0,0x008d4be0,0x00a00040,0x2a202268,0x228d0900,0x008d4c00, -0x00a00040,0x2ae02268,0x228d0960,0x008d4c60,0x00a00040,0x2b202268,0x228d0980,0x008d4c80, -0x00010020,0x34000004,0x0e001400,0x00000548,0x00800040,0x22e01a68,0x1a4009e0,0x004009e2, -0x00800040,0x29e01a68,0x1a4009e0,0x004049e2,0x00800040,0x23001a68,0x1a400a20,0x00400a22, -0x00800040,0x2a001a68,0x1a400a20,0x00404a22,0x00800040,0x23401a68,0x1a400aa0,0x00400aa2, -0x00800040,0x23201a68,0x1a400a60,0x00400a62,0x00800040,0x2a401a68,0x1a400aa0,0x00404aa2, -0x00800040,0x2a201a68,0x1a400a60,0x00404a62,0x00800040,0x2ac01a68,0x1a400ba0,0x00404ba2, -0x00800040,0x2aa01a68,0x1a400b60,0x00404b62,0x00800040,0x2a801a68,0x1a400b20,0x00404b22, -0x00800040,0x2a601a68,0x1a400ae0,0x00404ae2,0x00a00008,0x24a01a68,0x1e8d09e0,0x00010001, -0x00a00008,0x24e01a68,0x1e8d0a20,0x00010001,0x00a00008,0x25601a68,0x1e8d0aa0,0x00010001, -0x00a00008,0x25201a68,0x1e8d0a60,0x00010001,0x00800040,0x23601a68,0x1a400ae0,0x00400ae2, -0x00800040,0x23c01a68,0x1a400ba0,0x00400ba2,0x00800040,0x23801a68,0x1a400b20,0x00400b22, -0x00800040,0x23a01a68,0x1a400b60,0x00400b62,0x00a00001,0x29e01a48,0x008d24a0,0x00000000, -0x00a00001,0x2a201a48,0x008d24e0,0x00000000,0x00a00001,0x2aa01a48,0x008d2560,0x00000000, -0x00a00001,0x2a601a48,0x008d2520,0x00000000,0x00600040,0x43e01a68,0x1a6002e0,0x006002e4, -0x00600040,0x44001a68,0x1a600320,0x00600324,0x00600040,0x4b001a68,0x1a600320,0x00604324, -0x00600040,0x4ae01a68,0x1a6002e0,0x006042e4,0x00600040,0x44201a68,0x1a600360,0x00600364, -0x00600040,0x4b201a68,0x1a600360,0x00604364,0x00600040,0x4b401a68,0x1a6003a0,0x006043a4, -0x00600040,0x44401a68,0x1a6003a0,0x006003a4,0x00600040,0x43e21a68,0x1a6002e2,0x006002e6, -0x00600040,0x44021a68,0x1a600322,0x00600326,0x00600040,0x4b021a68,0x1a600322,0x00604326, -0x00600040,0x4ae21a68,0x1a6002e2,0x006042e6,0x00600040,0x44221a68,0x1a600362,0x00600366, -0x00600040,0x4b221a68,0x1a600362,0x00604366,0x00600040,0x4b421a68,0x1a6003a2,0x006043a6, -0x00600040,0x44421a68,0x1a6003a2,0x006003a6,0x00800040,0x23401a68,0x1a400aa0,0x00400aa2, -0x00800040,0x23201a68,0x1a400a60,0x00400a62,0x00800040,0x23001a68,0x1a400a20,0x00400a22, -0x00800040,0x22e01a68,0x1a4009e0,0x004009e2,0x00800040,0x24601a68,0x1a4003e0,0x004003e2, -0x00a00008,0x25a01a68,0x1e8d0ae0,0x00010001,0x00a00008,0x25e01a68,0x1e8d0b20,0x00010001, -0x00800040,0x24801a68,0x1a400420,0x00400422,0x00800040,0x23801a68,0x1a400320,0x00400322, -0x00800040,0x23601a68,0x1a4002e0,0x004002e2,0x00800040,0x2b601a68,0x1a4003e0,0x004043e2, -0x00800040,0x2b801a68,0x1a400420,0x00404422,0x00a00001,0x2ae01a48,0x008d25a0,0x00000000, -0x00a00001,0x2b201a48,0x008d25e0,0x00000000,0x00800040,0x22a01a68,0x1a400460,0x00400462, -0x00800040,0x2ba01a68,0x1a400460,0x00404462,0x00800040,0x23a01a48,0x1a400360,0x00400362, -0x00a00008,0x26201a68,0x1e8d0b60,0x00010001,0x0080000c,0x24401a28,0x1e8d02a0,0x00010001, -0x00800040,0x23801a68,0x1a400b20,0x00400b22,0x00800040,0x23601a68,0x1a400ae0,0x00400ae2, -0x00a00008,0x26601a68,0x1e8d0ba0,0x00010001,0x00a00001,0x2b601a48,0x008d2620,0x00000000, -0x00800001,0x44800a48,0x008d2440,0x00000000,0x00800040,0x23c01a48,0x1a400360,0x00400362, -0x00a00001,0x2ba01a48,0x008d2660,0x00000000,0x00800040,0x24001a48,0x1a400b60,0x00400b62, -0x00800001,0x24c01248,0x00400480,0x00000000,0x00800040,0x23a01248,0x128d03a0,0x008d03c0, -0x00800040,0x24e01a48,0x128d0ba0,0x008d04c0,0x00800040,0x23a01248,0x128d03a0,0x008d0400, -0x00800040,0x23a01248,0x128d03a0,0x008d04e0,0x04600002,0x23001248,0x128d03a0,0x008d03b0, -0x00600040,0x22e01208,0x128d03a0,0x008d03b0,0x00600001,0x23201268,0x008d0300,0x00000000, -0x606d2140,0x171717ad,0x04400002,0x22a01a48,0x1a690320,0x00690328,0x00200040,0x22e00208, -0x024502e0,0x004502e8,0x00400001,0x23401268,0x006902a0,0x00000000,0x00000040,0x22c00208, -0x020002e0,0x000002e4,0x04200002,0x23601a48,0x1a450340,0x00450344,0x00000040,0x26e80208, -0x020006e8,0x000002c0,0x04000002,0x23801248,0x12000360,0x00000362,0x00200001,0x23c01248, -0x00000380,0x00000000,0x04000002,0x26ec1208,0x020003c0,0x000006ec,0x00000040,0x27440208, -0x120006e8,0x000000a4,0x04000010,0x20000200,0x02000744,0x000006e0,0x00010020,0x34000004, -0x0e001400,0x00000030,0x00000001,0x26d80208,0x00000744,0x00000000,0x00000001,0x46ce1e88, -0x00000000,0x00010001,0x00000001,0x26dc0208,0x000006ec,0x00000000,0x20005601,0x003d6507, -0x20005601,0x003b6307,0x20005601,0x003d6107,0x20005601,0x003b5f07,0x03000010,0x20000200, -0x020006f0,0x000006d8,0x00a00040,0x2ba02268,0x228d08c0,0x008d4cc0,0x00a00040,0x2b602268, -0x228d08a0,0x008d4ca0,0x00a00040,0x2b202268,0x228d0880,0x008d4c80,0x00a00040,0x2ae02268, -0x228d0860,0x008d4c60,0x00a00040,0x2a602268,0x228d0820,0x008d4c20,0x00a00040,0x2aa02268, -0x228d0840,0x008d4c40,0x00a00040,0x29e02268,0x228d07e0,0x008d4be0,0x00a00040,0x2a202268, -0x228d0800,0x008d4c00,0x00010020,0x34000004,0x0e001400,0x00000548,0x00800040,0x22e01a68, -0x1a4009e0,0x004009e2,0x00800040,0x29e01a68,0x1a4009e0,0x004049e2,0x00800040,0x23001a68, -0x1a400a20,0x00400a22,0x00800040,0x2a001a68,0x1a400a20,0x00404a22,0x00800040,0x23401a68, -0x1a400aa0,0x00400aa2,0x00800040,0x23201a68,0x1a400a60,0x00400a62,0x00800040,0x2a401a68, -0x1a400aa0,0x00404aa2,0x00800040,0x2a201a68,0x1a400a60,0x00404a62,0x00800040,0x2ac01a68, -0x1a400ba0,0x00404ba2,0x00800040,0x2aa01a68,0x1a400b60,0x00404b62,0x00800040,0x2a801a68, -0x1a400b20,0x00404b22,0x00800040,0x2a601a68,0x1a400ae0,0x00404ae2,0x00a00008,0x24a01a68, -0x1e8d09e0,0x00010001,0x00a00008,0x24e01a68,0x1e8d0a20,0x00010001,0x00a00008,0x25601a68, -0x1e8d0aa0,0x00010001,0x00a00008,0x25201a68,0x1e8d0a60,0x00010001,0x00800040,0x23601a68, -0x1a400ae0,0x00400ae2,0x00800040,0x23c01a68,0x1a400ba0,0x00400ba2,0x00800040,0x23801a68, -0x1a400b20,0x00400b22,0x00800040,0x23a01a68,0x1a400b60,0x00400b62,0x00a00001,0x29e01a48, -0x008d24a0,0x00000000,0x00a00001,0x2a201a48,0x008d24e0,0x00000000,0x00a00001,0x2aa01a48, -0x008d2560,0x00000000,0x00a00001,0x2a601a48,0x008d2520,0x00000000,0x00600040,0x43e01a68, -0x1a6002e0,0x006002e4,0x00600040,0x44001a68,0x1a600320,0x00600324,0x00600040,0x4b001a68, -0x1a600320,0x00604324,0x00600040,0x4ae01a68,0x1a6002e0,0x006042e4,0x00600040,0x44201a68, -0x1a600360,0x00600364,0x00600040,0x4b201a68,0x1a600360,0x00604364,0x00600040,0x4b401a68, -0x1a6003a0,0x006043a4,0x00600040,0x44401a68,0x1a6003a0,0x006003a4,0x00600040,0x43e21a68, -0x1a6002e2,0x006002e6,0x00600040,0x44021a68,0x1a600322,0x00600326,0x00600040,0x4b021a68, -0x1a600322,0x00604326,0x00600040,0x4ae21a68,0x1a6002e2,0x006042e6,0x00600040,0x44221a68, -0x1a600362,0x00600366,0x00600040,0x4b221a68,0x1a600362,0x00604366,0x00600040,0x4b421a68, -0x1a6003a2,0x006043a6,0x00600040,0x44421a68,0x1a6003a2,0x006003a6,0x00800040,0x23401a68, -0x1a400aa0,0x00400aa2,0x00800040,0x23201a68,0x1a400a60,0x00400a62,0x00800040,0x23001a68, -0x1a400a20,0x00400a22,0x00800040,0x22e01a68,0x1a4009e0,0x004009e2,0x00800040,0x24601a68, -0x1a4003e0,0x004003e2,0x00a00008,0x25a01a68,0x1e8d0ae0,0x00010001,0x00a00008,0x25e01a68, -0x1e8d0b20,0x00010001,0x00800040,0x24801a68,0x1a400420,0x00400422,0x00800040,0x23801a68, -0x1a400320,0x00400322,0x00800040,0x23601a68,0x1a4002e0,0x004002e2,0x00800040,0x2b601a68, -0x1a4003e0,0x004043e2,0x00800040,0x2b801a68,0x1a400420,0x00404422,0x00a00001,0x2ae01a48, -0x008d25a0,0x00000000,0x00a00001,0x2b201a48,0x008d25e0,0x00000000,0x00800040,0x22a01a68, -0x1a400460,0x00400462,0x00800040,0x2ba01a68,0x1a400460,0x00404462,0x00800040,0x23a01a48, -0x1a400360,0x00400362,0x00a00008,0x26201a68,0x1e8d0b60,0x00010001,0x0080000c,0x24401a28, -0x1e8d02a0,0x00010001,0x00800040,0x23801a68,0x1a400b20,0x00400b22,0x00800040,0x23601a68, -0x1a400ae0,0x00400ae2,0x00a00008,0x26601a68,0x1e8d0ba0,0x00010001,0x00a00001,0x2b601a48, -0x008d2620,0x00000000,0x00800001,0x44800a48,0x008d2440,0x00000000,0x00800040,0x23c01a48, -0x1a400360,0x00400362,0x00a00001,0x2ba01a48,0x008d2660,0x00000000,0x00800040,0x24001a48, -0x1a400b60,0x00400b62,0x00800001,0x24c01248,0x00400480,0x00000000,0x00800040,0x23a01248, -0x128d03a0,0x008d03c0,0x00800040,0x24e01a48,0x128d0ba0,0x008d04c0,0x00800040,0x23a01248, -0x128d03a0,0x008d0400,0x00800040,0x23a01248,0x128d03a0,0x008d04e0,0x04600002,0x23001248, -0x128d03a0,0x008d03b0,0x00600040,0x22e01208,0x128d03a0,0x008d03b0,0x00600001,0x23201268, -0x008d0300,0x00000000,0x606d2140,0x171717ad,0x04400002,0x22a01a48,0x1a690320,0x00690328, -0x00200040,0x22e00208,0x024502e0,0x004502e8,0x00400001,0x23401268,0x006902a0,0x00000000, -0x00000040,0x22c00208,0x020002e0,0x000002e4,0x04200002,0x23601a48,0x1a450340,0x00450344, -0x00000040,0x26f00208,0x020006f0,0x000002c0,0x04000002,0x23801248,0x12000360,0x00000362, -0x00200001,0x23c01248,0x00000380,0x00000000,0x04000002,0x26f41208,0x020003c0,0x000006f4, -0x03000010,0x20000200,0x020006f0,0x000006d8,0x00a00040,0x2a602268,0x228d0920,0x008d4c20, -0x00a00040,0x29e02268,0x228d08e0,0x008d4be0,0x00a00040,0x2aa02268,0x228d0940,0x008d4c40, -0x00a00040,0x2b602268,0x228d09a0,0x008d4ca0,0x00a00040,0x2ae02268,0x228d0960,0x008d4c60, -0x00a00040,0x2ba02268,0x228d09c0,0x008d4cc0,0x00a00040,0x2b202268,0x228d0980,0x008d4c80, -0x00a00040,0x2a202268,0x228d0900,0x008d4c00,0x00010020,0x34000004,0x0e001400,0x00000548, -0x00800040,0x22e01a68,0x1a4009e0,0x004009e2,0x00800040,0x29e01a68,0x1a4009e0,0x004049e2, -0x00800040,0x23001a68,0x1a400a20,0x00400a22,0x00800040,0x2a001a68,0x1a400a20,0x00404a22, -0x00800040,0x23401a68,0x1a400aa0,0x00400aa2,0x00800040,0x23201a68,0x1a400a60,0x00400a62, -0x00800040,0x2a401a68,0x1a400aa0,0x00404aa2,0x00800040,0x2a201a68,0x1a400a60,0x00404a62, -0x00800040,0x2ac01a68,0x1a400ba0,0x00404ba2,0x00800040,0x2aa01a68,0x1a400b60,0x00404b62, -0x00800040,0x2a801a68,0x1a400b20,0x00404b22,0x00800040,0x2a601a68,0x1a400ae0,0x00404ae2, -0x00a00008,0x24a01a68,0x1e8d09e0,0x00010001,0x00a00008,0x24e01a68,0x1e8d0a20,0x00010001, -0x00a00008,0x25601a68,0x1e8d0aa0,0x00010001,0x00a00008,0x25201a68,0x1e8d0a60,0x00010001, -0x00800040,0x23601a68,0x1a400ae0,0x00400ae2,0x00800040,0x23c01a68,0x1a400ba0,0x00400ba2, -0x00800040,0x23801a68,0x1a400b20,0x00400b22,0x00800040,0x23a01a68,0x1a400b60,0x00400b62, -0x00a00001,0x29e01a48,0x008d24a0,0x00000000,0x00a00001,0x2a201a48,0x008d24e0,0x00000000, -0x00a00001,0x2aa01a48,0x008d2560,0x00000000,0x00a00001,0x2a601a48,0x008d2520,0x00000000, -0x00600040,0x43e01a68,0x1a6002e0,0x006002e4,0x00600040,0x44001a68,0x1a600320,0x00600324, -0x00600040,0x4b001a68,0x1a600320,0x00604324,0x00600040,0x4ae01a68,0x1a6002e0,0x006042e4, -0x00600040,0x44201a68,0x1a600360,0x00600364,0x00600040,0x4b201a68,0x1a600360,0x00604364, -0x00600040,0x4b401a68,0x1a6003a0,0x006043a4,0x00600040,0x44401a68,0x1a6003a0,0x006003a4, -0x00600040,0x43e21a68,0x1a6002e2,0x006002e6,0x00600040,0x44021a68,0x1a600322,0x00600326, -0x00600040,0x4b021a68,0x1a600322,0x00604326,0x00600040,0x4ae21a68,0x1a6002e2,0x006042e6, -0x00600040,0x44221a68,0x1a600362,0x00600366,0x00600040,0x4b221a68,0x1a600362,0x00604366, -0x00600040,0x4b421a68,0x1a6003a2,0x006043a6,0x00600040,0x44421a68,0x1a6003a2,0x006003a6, -0x00800040,0x23401a68,0x1a400aa0,0x00400aa2,0x00800040,0x23201a68,0x1a400a60,0x00400a62, -0x00800040,0x23001a68,0x1a400a20,0x00400a22,0x00800040,0x22e01a68,0x1a4009e0,0x004009e2, -0x00800040,0x24601a68,0x1a4003e0,0x004003e2,0x00a00008,0x25a01a68,0x1e8d0ae0,0x00010001, -0x00a00008,0x25e01a68,0x1e8d0b20,0x00010001,0x00800040,0x24801a68,0x1a400420,0x00400422, -0x00800040,0x23801a68,0x1a400320,0x00400322,0x00800040,0x23601a68,0x1a4002e0,0x004002e2, -0x00800040,0x2b601a68,0x1a4003e0,0x004043e2,0x00800040,0x2b801a68,0x1a400420,0x00404422, -0x00a00001,0x2ae01a48,0x008d25a0,0x00000000,0x00a00001,0x2b201a48,0x008d25e0,0x00000000, -0x00800040,0x22a01a68,0x1a400460,0x00400462,0x00800040,0x2ba01a68,0x1a400460,0x00404462, -0x00800040,0x23a01a48,0x1a400360,0x00400362,0x00a00008,0x26201a68,0x1e8d0b60,0x00010001, -0x0080000c,0x24401a28,0x1e8d02a0,0x00010001,0x00800040,0x23801a68,0x1a400b20,0x00400b22, -0x00800040,0x23601a68,0x1a400ae0,0x00400ae2,0x00a00008,0x26601a68,0x1e8d0ba0,0x00010001, -0x00a00001,0x2b601a48,0x008d2620,0x00000000,0x00800001,0x44800a48,0x008d2440,0x00000000, -0x00800040,0x23c01a48,0x1a400360,0x00400362,0x00a00001,0x2ba01a48,0x008d2660,0x00000000, -0x00800040,0x24001a48,0x1a400b60,0x00400b62,0x00800001,0x24c01248,0x00400480,0x00000000, -0x00800040,0x23a01248,0x128d03a0,0x008d03c0,0x00800040,0x24e01a48,0x128d0ba0,0x008d04c0, -0x00800040,0x23a01248,0x128d03a0,0x008d0400,0x00800040,0x23a01248,0x128d03a0,0x008d04e0, -0x04600002,0x23001248,0x128d03a0,0x008d03b0,0x00600040,0x22e01208,0x128d03a0,0x008d03b0, -0x00600001,0x23201268,0x008d0300,0x00000000,0x606d2140,0x171717ad,0x04400002,0x22a01a48, -0x1a690320,0x00690328,0x00200040,0x22e00208,0x024502e0,0x004502e8,0x00400001,0x23401268, -0x006902a0,0x00000000,0x00000040,0x22c00208,0x020002e0,0x000002e4,0x04200002,0x23601a48, -0x1a450340,0x00450344,0x00000040,0x26f00208,0x020006f0,0x000002c0,0x04000002,0x23801248, -0x12000360,0x00000362,0x00200001,0x23c01248,0x00000380,0x00000000,0x04000002,0x26f41208, -0x020003c0,0x000006f4,0x00000040,0x27440208,0x120006f0,0x000000a4,0x04000010,0x20000200, -0x02000744,0x000006d8,0x00010020,0x34000004,0x0e001400,0x00000030,0x00000001,0x26d80208, -0x00000744,0x00000000,0x00000001,0x46ce1e88,0x00000000,0x00020002,0x00000001,0x26dc0208, -0x000006f4,0x00000000,0x20205601,0x00396100,0x20205601,0x00395f00,0x20285601,0x00396500, -0x20285601,0x00396300,0x00a00040,0x2da02268,0x228d0c40,0x008d07c0,0x00a00040,0x2d602268, -0x228d0c20,0x008d07a0,0x00a00040,0x2ce02268,0x228d0be0,0x008d0760,0x00a00040,0x2d202268, -0x228d0c00,0x008d0780,0x80800040,0x4c401a88,0x22400da0,0x00004740,0x80800040,0x4c201a88, -0x22400d60,0x00004740,0x80800040,0x4be01a88,0x22400ce0,0x00004740,0x80800040,0x4c001a88, -0x22400d20,0x00004740,0x80800040,0x4c411a88,0x22400da2,0x00004740,0x80800040,0x4c211a88, -0x22400d62,0x00004740,0x80800040,0x4be11a88,0x22400ce2,0x00004740,0x80800040,0x4c011a88, -0x22400d22,0x00004740,0x00a00040,0x2da02268,0x228d0cc0,0x008d07c0,0x00a00040,0x2d602268, -0x228d0ca0,0x008d07a0,0x00a00040,0x2ce02268,0x228d0c60,0x008d0760,0x00a00040,0x2d202268, -0x228d0c80,0x008d0780,0x80800040,0x4cc01a88,0x22400da0,0x00004740,0x80800040,0x4ca01a88, -0x22400d60,0x00004740,0x80800040,0x4c601a88,0x22400ce0,0x00004740,0x80800040,0x4c801a88, -0x22400d20,0x00004740,0x80800040,0x4cc11a88,0x22400da2,0x00004740,0x80800040,0x4ca11a88, -0x22400d62,0x00004740,0x80800040,0x4c611a88,0x22400ce2,0x00004740,0x80800040,0x4c811a88, -0x22400d22,0x00004740,0x03000010,0x20000200,0x020006f8,0x000006d8,0x00a00040,0x2aa02268, -0x228d0840,0x008d4c40,0x00a00040,0x2a602268,0x228d0820,0x008d4c20,0x00a00040,0x29e02268, -0x228d07e0,0x008d4be0,0x00a00040,0x2a202268,0x228d0800,0x008d4c00,0x00a00040,0x2ba02268, -0x228d08c0,0x008d4cc0,0x00a00040,0x2b602268,0x228d08a0,0x008d4ca0,0x00a00040,0x2ae02268, -0x228d0860,0x008d4c60,0x00a00040,0x2b202268,0x228d0880,0x008d4c80,0x00010020,0x34000004, -0x0e001400,0x00000548,0x00800040,0x22e01a68,0x1a4009e0,0x004009e2,0x00800040,0x29e01a68, -0x1a4009e0,0x004049e2,0x00800040,0x23001a68,0x1a400a20,0x00400a22,0x00800040,0x2a001a68, -0x1a400a20,0x00404a22,0x00800040,0x23401a68,0x1a400aa0,0x00400aa2,0x00800040,0x23201a68, -0x1a400a60,0x00400a62,0x00800040,0x2a401a68,0x1a400aa0,0x00404aa2,0x00800040,0x2a201a68, -0x1a400a60,0x00404a62,0x00800040,0x2ac01a68,0x1a400ba0,0x00404ba2,0x00800040,0x2aa01a68, -0x1a400b60,0x00404b62,0x00800040,0x2a801a68,0x1a400b20,0x00404b22,0x00800040,0x2a601a68, -0x1a400ae0,0x00404ae2,0x00a00008,0x24a01a68,0x1e8d09e0,0x00010001,0x00a00008,0x24e01a68, -0x1e8d0a20,0x00010001,0x00a00008,0x25601a68,0x1e8d0aa0,0x00010001,0x00a00008,0x25201a68, -0x1e8d0a60,0x00010001,0x00800040,0x23601a68,0x1a400ae0,0x00400ae2,0x00800040,0x23c01a68, -0x1a400ba0,0x00400ba2,0x00800040,0x23801a68,0x1a400b20,0x00400b22,0x00800040,0x23a01a68, -0x1a400b60,0x00400b62,0x00a00001,0x29e01a48,0x008d24a0,0x00000000,0x00a00001,0x2a201a48, -0x008d24e0,0x00000000,0x00a00001,0x2aa01a48,0x008d2560,0x00000000,0x00a00001,0x2a601a48, -0x008d2520,0x00000000,0x00600040,0x43e01a68,0x1a6002e0,0x006002e4,0x00600040,0x44001a68, -0x1a600320,0x00600324,0x00600040,0x4b001a68,0x1a600320,0x00604324,0x00600040,0x4ae01a68, -0x1a6002e0,0x006042e4,0x00600040,0x44201a68,0x1a600360,0x00600364,0x00600040,0x4b201a68, -0x1a600360,0x00604364,0x00600040,0x4b401a68,0x1a6003a0,0x006043a4,0x00600040,0x44401a68, -0x1a6003a0,0x006003a4,0x00600040,0x43e21a68,0x1a6002e2,0x006002e6,0x00600040,0x44021a68, -0x1a600322,0x00600326,0x00600040,0x4b021a68,0x1a600322,0x00604326,0x00600040,0x4ae21a68, -0x1a6002e2,0x006042e6,0x00600040,0x44221a68,0x1a600362,0x00600366,0x00600040,0x4b221a68, -0x1a600362,0x00604366,0x00600040,0x4b421a68,0x1a6003a2,0x006043a6,0x00600040,0x44421a68, -0x1a6003a2,0x006003a6,0x00800040,0x23401a68,0x1a400aa0,0x00400aa2,0x00800040,0x23201a68, -0x1a400a60,0x00400a62,0x00800040,0x23001a68,0x1a400a20,0x00400a22,0x00800040,0x22e01a68, -0x1a4009e0,0x004009e2,0x00800040,0x24601a68,0x1a4003e0,0x004003e2,0x00a00008,0x25a01a68, -0x1e8d0ae0,0x00010001,0x00a00008,0x25e01a68,0x1e8d0b20,0x00010001,0x00800040,0x24801a68, -0x1a400420,0x00400422,0x00800040,0x23801a68,0x1a400320,0x00400322,0x00800040,0x23601a68, -0x1a4002e0,0x004002e2,0x00800040,0x2b601a68,0x1a4003e0,0x004043e2,0x00800040,0x2b801a68, -0x1a400420,0x00404422,0x00a00001,0x2ae01a48,0x008d25a0,0x00000000,0x00a00001,0x2b201a48, -0x008d25e0,0x00000000,0x00800040,0x22a01a68,0x1a400460,0x00400462,0x00800040,0x2ba01a68, -0x1a400460,0x00404462,0x00800040,0x23a01a48,0x1a400360,0x00400362,0x00a00008,0x26201a68, -0x1e8d0b60,0x00010001,0x0080000c,0x24401a28,0x1e8d02a0,0x00010001,0x00800040,0x23801a68, -0x1a400b20,0x00400b22,0x00800040,0x23601a68,0x1a400ae0,0x00400ae2,0x00a00008,0x26601a68, -0x1e8d0ba0,0x00010001,0x00a00001,0x2b601a48,0x008d2620,0x00000000,0x00800001,0x44800a48, -0x008d2440,0x00000000,0x00800040,0x23c01a48,0x1a400360,0x00400362,0x00a00001,0x2ba01a48, -0x008d2660,0x00000000,0x00800040,0x24001a48,0x1a400b60,0x00400b62,0x00800001,0x24c01248, -0x00400480,0x00000000,0x00800040,0x23a01248,0x128d03a0,0x008d03c0,0x00800040,0x24e01a48, -0x128d0ba0,0x008d04c0,0x00800040,0x23a01248,0x128d03a0,0x008d0400,0x00800040,0x23a01248, -0x128d03a0,0x008d04e0,0x04600002,0x23001248,0x128d03a0,0x008d03b0,0x00600040,0x22e01208, -0x128d03a0,0x008d03b0,0x00600001,0x23201268,0x008d0300,0x00000000,0x606d2140,0x171717ad, -0x04400002,0x22a01a48,0x1a690320,0x00690328,0x00200040,0x22e00208,0x024502e0,0x004502e8, -0x00400001,0x23401268,0x006902a0,0x00000000,0x00000040,0x22c00208,0x020002e0,0x000002e4, -0x04200002,0x23601a48,0x1a450340,0x00450344,0x00000040,0x26f80208,0x020006f8,0x000002c0, -0x04000002,0x23801248,0x12000360,0x00000362,0x00200001,0x23c01248,0x00000380,0x00000000, -0x04000002,0x26fc1208,0x020003c0,0x000006fc,0x00800001,0x2c200208,0x00000738,0x00000000, -0x00800001,0x2be00208,0x00000738,0x00000000,0x00800001,0x2ca00208,0x0000073c,0x00000000, -0x00800001,0x2c600208,0x0000073c,0x00000000,0x00a00040,0x2da02268,0x228d0c40,0x008d07c0, -0x00a00040,0x2d602268,0x228d0c20,0x008d07a0,0x00a00040,0x2ce02268,0x228d0be0,0x008d0760, -0x00a00040,0x2d202268,0x228d0c00,0x008d0780,0x80800040,0x4c401a88,0x22400da0,0x00004740, -0x80800040,0x4c201a88,0x22400d60,0x00004740,0x80800040,0x4be01a88,0x22400ce0,0x00004740, -0x80800040,0x4c001a88,0x22400d20,0x00004740,0x80800040,0x4c411a88,0x22400da2,0x00004740, -0x80800040,0x4c211a88,0x22400d62,0x00004740,0x80800040,0x4be11a88,0x22400ce2,0x00004740, -0x80800040,0x4c011a88,0x22400d22,0x00004740,0x00a00040,0x2da02268,0x228d0cc0,0x008d07c0, -0x00a00040,0x2d602268,0x228d0ca0,0x008d07a0,0x00a00040,0x2ce02268,0x228d0c60,0x008d0760, -0x00a00040,0x2d202268,0x228d0c80,0x008d0780,0x80800040,0x4cc01a88,0x22400da0,0x00004740, -0x80800040,0x4ca01a88,0x22400d60,0x00004740,0x80800040,0x4c601a88,0x22400ce0,0x00004740, -0x80800040,0x4c801a88,0x22400d20,0x00004740,0x80800040,0x4cc11a88,0x22400da2,0x00004740, -0x80800040,0x4ca11a88,0x22400d62,0x00004740,0x80800040,0x4c611a88,0x22400ce2,0x00004740, -0x80800040,0x4c811a88,0x22400d22,0x00004740,0x03000010,0x20000200,0x020006f8,0x000006d8, -0x00a00040,0x2aa02268,0x228d0940,0x008d4c40,0x00a00040,0x2a602268,0x228d0920,0x008d4c20, -0x00a00040,0x29e02268,0x228d08e0,0x008d4be0,0x00a00040,0x2a202268,0x228d0900,0x008d4c00, -0x00a00040,0x2ba02268,0x228d09c0,0x008d4cc0,0x00a00040,0x2b602268,0x228d09a0,0x008d4ca0, -0x00a00040,0x2ae02268,0x228d0960,0x008d4c60,0x00a00040,0x2b202268,0x228d0980,0x008d4c80, -0x00010020,0x34000004,0x0e001400,0x00000548,0x00800040,0x22e01a68,0x1a4009e0,0x004009e2, -0x00800040,0x29e01a68,0x1a4009e0,0x004049e2,0x00800040,0x23001a68,0x1a400a20,0x00400a22, -0x00800040,0x2a001a68,0x1a400a20,0x00404a22,0x00800040,0x23401a68,0x1a400aa0,0x00400aa2, -0x00800040,0x23201a68,0x1a400a60,0x00400a62,0x00800040,0x2a401a68,0x1a400aa0,0x00404aa2, -0x00800040,0x2a201a68,0x1a400a60,0x00404a62,0x00800040,0x2ac01a68,0x1a400ba0,0x00404ba2, -0x00800040,0x2aa01a68,0x1a400b60,0x00404b62,0x00800040,0x2a801a68,0x1a400b20,0x00404b22, -0x00800040,0x2a601a68,0x1a400ae0,0x00404ae2,0x00a00008,0x24a01a68,0x1e8d09e0,0x00010001, -0x00a00008,0x24e01a68,0x1e8d0a20,0x00010001,0x00a00008,0x25601a68,0x1e8d0aa0,0x00010001, -0x00a00008,0x25201a68,0x1e8d0a60,0x00010001,0x00800040,0x23601a68,0x1a400ae0,0x00400ae2, -0x00800040,0x23c01a68,0x1a400ba0,0x00400ba2,0x00800040,0x23801a68,0x1a400b20,0x00400b22, -0x00800040,0x23a01a68,0x1a400b60,0x00400b62,0x00a00001,0x29e01a48,0x008d24a0,0x00000000, -0x00a00001,0x2a201a48,0x008d24e0,0x00000000,0x00a00001,0x2aa01a48,0x008d2560,0x00000000, -0x00a00001,0x2a601a48,0x008d2520,0x00000000,0x00600040,0x43e01a68,0x1a6002e0,0x006002e4, -0x00600040,0x44001a68,0x1a600320,0x00600324,0x00600040,0x4b001a68,0x1a600320,0x00604324, -0x00600040,0x4ae01a68,0x1a6002e0,0x006042e4,0x00600040,0x44201a68,0x1a600360,0x00600364, -0x00600040,0x4b201a68,0x1a600360,0x00604364,0x00600040,0x4b401a68,0x1a6003a0,0x006043a4, -0x00600040,0x44401a68,0x1a6003a0,0x006003a4,0x00600040,0x43e21a68,0x1a6002e2,0x006002e6, -0x00600040,0x44021a68,0x1a600322,0x00600326,0x00600040,0x4b021a68,0x1a600322,0x00604326, -0x00600040,0x4ae21a68,0x1a6002e2,0x006042e6,0x00600040,0x44221a68,0x1a600362,0x00600366, -0x00600040,0x4b221a68,0x1a600362,0x00604366,0x00600040,0x4b421a68,0x1a6003a2,0x006043a6, -0x00600040,0x44421a68,0x1a6003a2,0x006003a6,0x00800040,0x23401a68,0x1a400aa0,0x00400aa2, -0x00800040,0x23201a68,0x1a400a60,0x00400a62,0x00800040,0x23001a68,0x1a400a20,0x00400a22, -0x00800040,0x22e01a68,0x1a4009e0,0x004009e2,0x00800040,0x24601a68,0x1a4003e0,0x004003e2, -0x00a00008,0x25a01a68,0x1e8d0ae0,0x00010001,0x00a00008,0x25e01a68,0x1e8d0b20,0x00010001, -0x00800040,0x24801a68,0x1a400420,0x00400422,0x00800040,0x23801a68,0x1a400320,0x00400322, -0x00800040,0x23601a68,0x1a4002e0,0x004002e2,0x00800040,0x2b601a68,0x1a4003e0,0x004043e2, -0x00800040,0x2b801a68,0x1a400420,0x00404422,0x00a00001,0x2ae01a48,0x008d25a0,0x00000000, -0x00a00001,0x2b201a48,0x008d25e0,0x00000000,0x00800040,0x22a01a68,0x1a400460,0x00400462, -0x00800040,0x2ba01a68,0x1a400460,0x00404462,0x00800040,0x23a01a48,0x1a400360,0x00400362, -0x00a00008,0x26201a68,0x1e8d0b60,0x00010001,0x0080000c,0x24401a28,0x1e8d02a0,0x00010001, -0x00800040,0x23801a68,0x1a400b20,0x00400b22,0x00800040,0x23601a68,0x1a400ae0,0x00400ae2, -0x00a00008,0x26601a68,0x1e8d0ba0,0x00010001,0x00a00001,0x2b601a48,0x008d2620,0x00000000, -0x00800001,0x44800a48,0x008d2440,0x00000000,0x00800040,0x23c01a48,0x1a400360,0x00400362, -0x00a00001,0x2ba01a48,0x008d2660,0x00000000,0x00800040,0x24001a48,0x1a400b60,0x00400b62, -0x00800001,0x24c01248,0x00400480,0x00000000,0x00800040,0x23a01248,0x128d03a0,0x008d03c0, -0x00800040,0x24e01a48,0x128d0ba0,0x008d04c0,0x00800040,0x23a01248,0x128d03a0,0x008d0400, -0x00800040,0x23a01248,0x128d03a0,0x008d04e0,0x04600002,0x23001248,0x128d03a0,0x008d03b0, -0x00600040,0x22e01208,0x128d03a0,0x008d03b0,0x00600001,0x23201268,0x008d0300,0x00000000, -0x606d2140,0x171717ad,0x04400002,0x22a01a48,0x1a690320,0x00690328,0x00200040,0x22e00208, -0x024502e0,0x004502e8,0x00400001,0x23401268,0x006902a0,0x00000000,0x00000040,0x22c00208, -0x020002e0,0x000002e4,0x04200002,0x23601a48,0x1a450340,0x00450344,0x00000040,0x26f80208, -0x020006f8,0x000002c0,0x04000002,0x23801248,0x12000360,0x00000362,0x00200001,0x23c01248, -0x00000380,0x00000000,0x04000002,0x26fc1208,0x020003c0,0x000006fc,0x00000040,0x27440208, -0x120006f8,0x000000a4,0x04000010,0x20000200,0x02000744,0x000006d8,0x00010020,0x34000004, -0x0e001400,0x00000030,0x00000001,0x26d80208,0x00000744,0x00000000,0x00000001,0x46ce1e88, -0x00000000,0x00090009,0x00000001,0x26dc0208,0x000006fc,0x00000000,0x00000041,0x22a01208, -0x160000dc,0x08a008a0,0x00000041,0x22e41208,0x160000dc,0x03c003c0,0x00000041,0x23201208, -0x160000dc,0x02800280,0x00000040,0x22c00208,0x160002a0,0x00800080,0x00000040,0x23000208, -0x160002e4,0x00800080,0x00000040,0x23400208,0x16000320,0x00800080,0x0000000c,0x22e00208, -0x160002c0,0x00080008,0x0000000c,0x27480208,0x16000300,0x00080008,0x0000000c,0x274c0208, -0x16000340,0x00080008,0x04000010,0x20000200,0x020006dc,0x000002e0,0x00010020,0x34000004, -0x0e001400,0x000000a0,0x04000010,0x20000200,0x020006dc,0x00000748,0x00010020,0x34000004, -0x0e001400,0x00000060,0x04000010,0x20000200,0x020006dc,0x0000074c,0x00010020,0x34000004, -0x0e001400,0x00000020,0x00000001,0x27501608,0x00000000,0x00030003,0x00000020,0x34000004, -0x0e001400,0x00000050,0x00000001,0x27501608,0x00000000,0x00020002,0x00000020,0x34000004, -0x0e001400,0x00000030,0x00000001,0x27501608,0x00000000,0x00010001,0x00000020,0x34000004, -0x0e001400,0x00000010,0x00000001,0x27501608,0x00000000,0x00000000,0x00000041,0x22c01228, -0x160006c2,0x00020002,0x00000041,0x23441228,0x160006c0,0x00020002,0x00000001,0x62a0028c, -0x00000750,0x00000000,0x00800001,0x22e01608,0x00000000,0x00000000,0x00000040,0x22000204, -0x060002d0,0x020a0300,0x00000001,0x43002288,0x000006ce,0x00000000,0x00000040,0x23200a28, -0x1e0002c0,0x00010001,0x00000040,0x23600a28,0x1e000344,0x00010001,0x00000001,0x42ee2288, -0x000002a0,0x00000000,0x00000040,0x23140208,0x120006d8,0x000000d4,0x00000041,0x23400a28, -0x12000320,0x000006cc,0x00000040,0x23800a28,0x0a000340,0x00000360,0x00000041,0x23a00a28, -0x1e000380,0x00400040,0x00000008,0x23c80a08,0x1e0003a0,0x00040004,0x0a800033,0x00017054, -0x000023c2,0x00000000,0x20004d01,0x00007e07,0x07000031,0x20003a00,0x06000fc0,0x82000010, -0x20004d01,0x00007f07,0x07000031,0x20003a00,0x06000fe0,0x82000010,0x2000007d,0x2000000c, -0x2000007d,0x2000000c,0x2000007d,0x2000000c,0x2000007d,0x2000000c,0x2000007d,0x2000000c, -0x00200001,0x24ec1248,0x00450020,0x00000000,0x00000005,0x22a6124c,0x16000006,0x07ff07ff, -0x00000005,0x22a4124c,0x16000004,0x07ff07ff,0x00000040,0x22c01228,0x160004ec,0x000f000f, -0x00000005,0x24001260,0x160002a6,0x00010001,0x0000000c,0x24e81248,0x160002a6,0x00010001, -0x0000000c,0x44f00a48,0x1e0002c0,0x00040004,0x00000048,0x24e01248,0x1e0002a4,0x00020002, -0x00000001,0x24e61248,0x000004e8,0x00000000,0x00000041,0x22e01228,0x120004e8,0x000004f0, -0x05000010,0x20001240,0x120004e0,0x000004f0,0x00000001,0x24e41248,0x000004e0,0x00000000, -0x00000040,0x24f40a08,0x120002e0,0x000004e0,0x00010020,0x34000004,0x0e001400,0x00000030, -0x0a600032,0x22e03a08,0x06000000,0x0219e000,0x20004d01,0x00171707,0x20004d01,0x00007d07, -0x07000031,0x20003a00,0x06000fa0,0x82000010,0x06000010,0x20002260,0x1e000025,0x00000000, -0x00200009,0x24f81248,0x164504e4,0x00040004,0x00010020,0x34000004,0x0e001400,0x000000c0, -0x20004d01,0x00001707,0x00000040,0x22000204,0x060002b8,0x02190000,0x20086001,0x00001700, -0x00000001,0x22e41208,0x000004e8,0x00000000,0x00000001,0x22e01208,0x000004e0,0x00000000, -0x0c600031,0x23003a0c,0x000002e0,0x00000200,0x00400001,0x22c0228c,0x00690300,0x00000000, -0x00000041,0x22a42228,0x1e0002c0,0x00400040,0x00000040,0x23200a28,0x1e0002a4,0x00800080, -0x00000040,0x22001240,0x16000320,0x00200020,0x00800001,0x20a02288,0x00208000,0x00000000, -0x00800001,0x20b02288,0x00208010,0x00000000,0x00800001,0x20c02288,0x00208020,0x00000000, -0x00200005,0x22b01228,0x164504e4,0x00010001,0x00000001,0x22a41e68,0x00000000,0x00010001, -0x00600001,0x22c01648,0x00000000,0x00000000,0x00200040,0x22e01228,0x164504f8,0x00100010, -0x00600001,0x23401648,0x00000000,0x00000000,0x00800001,0x25801e08,0x00000000,0x00000000, -0x03200010,0x20000a20,0x1e4502b0,0x00000000,0x00800001,0x26001e08,0x00000000,0x00000000, -0x00800001,0x26401e08,0x00000000,0x00000000,0x00600001,0x26281648,0x00000000,0x7f7f7f7f, -0x00600001,0x26401648,0x00000000,0x81818181,0x00210002,0x22c01a48,0x1e0002a4,0x00000000, -0x00000001,0x45bd1e88,0x00000000,0x00000000,0x00800001,0x25c01e08,0x00000000,0x00000000, -0x00000001,0x25140e28,0x00000000,0x08060504,0x00800001,0x26702288,0x008d0628,0x00000000, -0x2203eb10,0x00160007,0x00600001,0x22c02648,0x00000000,0x76543210,0x00800001,0x26602288, -0x008d0640,0x00000000,0x00000001,0x25080e28,0x00000000,0x09010200,0x00000001,0x25100e28, -0x00000000,0x03010002,0x00000001,0x45281688,0x00000000,0x00070007,0x00000001,0x22a61048, -0x00000600,0x00000000,0x06200010,0x20000a20,0x124502e0,0x00450020,0x00600001,0x25601208, -0x008d02c0,0x00000000,0x00600001,0x22c01648,0x00000000,0x00000000,0x00000001,0x25240e28, -0x00000000,0x08060504,0x00000001,0x25200e28,0x00000000,0x03000201,0x00600001,0x25401e08, -0x00000000,0x00000000,0x00000005,0x44fc1288,0x160002a6,0x00030003,0x00210002,0x25001a48, -0x1e0002a4,0x00000000,0x00000001,0x25181e68,0x00000000,0x08070807,0x00000001,0x258c0608, -0x00000000,0x00a83000,0x00000001,0x45a01e88,0x00000000,0x00020002,0x00200001,0x25881248, -0x004504f8,0x00000000,0x00000001,0x46241e88,0x00000000,0x00880088,0x01000010,0x20002260, -0x1e0004fc,0x00030003,0x00000005,0x22ac1228,0x12000500,0x00000502,0x00400001,0x26381648, -0x00000000,0x7f7f7f7f,0x00000001,0x465e2288,0x000000a3,0x00000000,0x00200001,0x265c2288, -0x004500a1,0x00000000,0x00000001,0x26541648,0x00000000,0x00000000,0x00000001,0x46272288, -0x000005bd,0x00000000,0x00010002,0x23001a28,0x1e0002a4,0x00000000,0x01200010,0x20000a20, -0x1e4502b0,0x00000000,0x00000001,0x25c00208,0x000000c8,0x00000000,0x00000005,0x65040a88, -0x0a0002ac,0x00000300,0x00210002,0x22e01a48,0x1e0002a4,0x00000000,0x00200041,0x22e41248, -0x164502e0,0x00100010,0x00200040,0x22e01248,0x164504f8,0x00100010,0x00200040,0x23001228, -0x124504f8,0x004502e4,0x00200040,0x23200a28,0x1e450300,0x00100010,0x00000006,0x43022288, -0x1e0005bc,0x00010001,0x03200010,0x20000a20,0x12450320,0x00450020,0x00210002,0x23401a48, -0x1e0002a4,0x00000000,0x2203eb10,0x001a0007,0x00000001,0x22a61048,0x00000600,0x00000000, -0x03200010,0x20001240,0x124502e0,0x00450020,0x00000005,0x450c1288,0x160002a6,0x00030003, -0x00210002,0x22c01a48,0x1e0002a4,0x00000000,0x2203eb10,0x00160007,0x00000001,0x22a61048, -0x00000600,0x00000000,0x00000005,0x23001248,0x160002a6,0x00030003,0x03000010,0x20001260, -0x1e000300,0x00000000,0x00010001,0x45bc2288,0x00000302,0x00000000,0x01000010,0x20001260, -0x1e0004e0,0x00000000,0x00010020,0x34000004,0x0e001400,0x000000c8,0x20004d01,0x00001707, -0x00000040,0x22000204,0x060002a0,0x02290000,0x00000001,0x22e8060c,0x00000000,0x000f0000, -0x00000001,0x22e41228,0x0000058a,0x00000000,0x00000040,0x22e01228,0x1e000588,0xffffffff, -0x0c600031,0x23003a0c,0x000002e0,0x00000200,0x00000040,0x22e01228,0x1e000588,0xfffcfffc, -0x00000040,0x22000204,0x060002a0,0x02190001,0x0000000c,0x22e41228,0x1600058a,0x00010001, -0x00000001,0x22e8060c,0x00000000,0x00070003,0x0c600031,0x23403a0c,0x000002e0,0x00000200, -0x00800001,0x26402288,0x00600300,0x00000000,0x00800001,0x26602288,0x00650342,0x00000000, -0x01000010,0x20001260,0x1e0004e8,0x00000000,0x00010020,0x34000004,0x0e001400,0x000000c8, -0x00000040,0x22a41228,0x1e000588,0xfff8fff8,0x20004d01,0x00001707,0x00000040,0x22000204, -0x060002a0,0x02190000,0x20086001,0x1f001700,0x00000040,0x22e41228,0x1e00058a,0xffffffff, -0x0000000c,0x22c01228,0x1600058a,0x00010001,0x20144001,0x00151700,0x0c600031,0x26803a0c, -0x000002e0,0x00000200,0x00000040,0x22000204,0x060002a0,0x02190001,0x00000040,0x22e40a28, -0x1e0002c0,0xffffffff,0x0c600031,0x26a03a0c,0x000002e0,0x00000200,0x00400001,0x26280208, -0x00690688,0x00000000,0x00600001,0x26382288,0x00000637,0x00000000,0x00400001,0x26700208, -0x006906a8,0x00000000,0x02000010,0x20001260,0x1e0004e0,0x00000000,0x00000001,0x22a41e68, -0x00000000,0x00010001,0x02010010,0x20001260,0x1e0004e8,0x00000000,0x00010002,0x22c01a28, -0x1e0002a4,0x00000000,0x01000010,0x20000a20,0x1e0002c0,0x00000000,0x00010020,0x34000004, -0x0e001400,0x00000030,0x00200001,0x26542288,0x004506a6,0x00000000,0x00000001,0x46272288, -0x00000687,0x00000000,0x00000006,0x45bd2288,0x1e0005bd,0x00040004,0x00000005,0x22b01228, -0x160004e8,0x00010001,0x02000010,0x20001260,0x1e0004e8,0x00000000,0x00000040,0x22a41228, -0x160004e0,0x00010001,0x00000005,0x22ac1228,0x160004e0,0x00010001,0x00000001,0x22e01e68, -0x00000000,0x00010001,0x05010010,0x20000a20,0x120002a4,0x000004f0,0x00000040,0x22c00a28, -0x0a0002ac,0x000002b0,0x02010010,0x20000a20,0x1e0002c0,0x00020002,0x00010002,0x23001a28, -0x1e0002e0,0x00000000,0x01000010,0x20000a20,0x1e000300,0x00000000,0x00010020,0x34000004, -0x0e001400,0x00000020,0x00200001,0x26380208,0x00450698,0x00000000,0x00000006,0x45bd2288, -0x1e0005bd,0x00080008,0x02000010,0x20002260,0x1e0004fc,0x00000000,0x00000006,0x45bd2288, -0x1e0005bd,0x00700070,0x00010020,0x34000004,0x0e001400,0x00000020,0x00000001,0x44e21e88, -0x00000000,0x000f000f,0x00000020,0x34000004,0x0e001400,0x00000090,0x02000010,0x20002260, -0x1e0004fc,0x00010001,0x00010020,0x34000004,0x0e001400,0x00000020,0x00000001,0x44e21e88, -0x00000000,0x00010001,0x00000020,0x34000004,0x0e001400,0x00000050,0x02000010,0x20002260, -0x1e0004fc,0x00020002,0x00010020,0x34000004,0x0e001400,0x00000020,0x00000001,0x44e21e88, -0x00000000,0x00020002,0x00000020,0x34000004,0x0e001400,0x00000010,0x00000001,0x44e21e88, -0x00000000,0x00030003,0x00000004,0x22a42228,0x000004e2,0x00000000,0x00000005,0x62c00a88, -0x1e0002a4,0x00ff00ff,0x00000001,0x26002244,0x000002c0,0x00000000,0x00618005,0x36001044, -0x168d1600,0x7fff7fff,0x00000009,0x22e00208,0x160004f4,0x00060006,0x00000040,0x22000204, -0x060002d0,0x02480400,0x00000040,0x251c0228,0x1e0002e0,0xffc0ffc0,0x03000002,0x251c0a28, -0x1e00051c,0x00000000,0x00000008,0x23080a08,0x1e00051c,0x00040004,0x0a800032,0x27403a6c, -0x00000300,0x00000200,0x00000040,0x23200228,0x120004f4,0x000044f0,0x00000041,0x23400a28, -0x1e000320,0x00400040,0x04000040,0x251c0a28,0x1e000340,0xffc0ffc0,0x00010020,0x34000004, -0x0e001400,0x00000070,0x00000040,0x22a40228,0x120004f4,0x000044f0,0x00000040,0x22000204, -0x060002d0,0x02280300,0x00000041,0x251c0a28,0x1e0002a4,0x00400040,0x03000002,0x251c0a28, -0x1e00051c,0x00000000,0x00000008,0x22e80a08,0x1e00051c,0x00040004,0x0a800031,0x27003a6c, -0x000002e0,0x00000200,0x00000020,0x34000004,0x0e001400,0x00000030,0x00000008,0x22e80a08, -0x1e00051c,0x00040004,0x00000040,0x22000204,0x060002d0,0x02480400,0x0a800031,0x26c03a6c, -0x000002e0,0x00000200,0x0020000c,0x23701208,0x16450724,0x00080008,0x0020000c,0x22b01208, -0x16400762,0x00040004,0x0020000c,0x23b01208,0x16450724,0x000c000c,0x0020000c,0x22f01208, -0x16400762,0x000c000c,0x03200010,0x20001260,0x1e4504e4,0x00000000,0x20005701,0x00302307, -0x00200005,0x63800288,0x16450370,0x000f000f,0x00200005,0x62c00288,0x164502b0,0x000f000f, -0x00200005,0x23c00208,0x164503b0,0x000f000f,0x00200005,0x23000208,0x164502f0,0x000f000f, -0x20005701,0x002c1f07,0x20005701,0x002e2107,0x00200001,0x23a02288,0x00600380,0x00000000, -0x00200001,0x22e02288,0x006002c0,0x00000000,0x00200009,0x22b00208,0x164503c0,0x00040004, -0x00200009,0x23200208,0x16450300,0x00040004,0x00000040,0x22000204,0x060002a8,0x10782000, -0x00800001,0x28a01608,0x00000000,0x00000000,0x00200006,0x62c02288,0x024503a0,0x004502b0, -0x00200006,0x63402288,0x024502e0,0x00450320,0x00200001,0x23622288,0x006002c0,0x00000000, -0x00200001,0x23602288,0x00600340,0x00000000,0x00210002,0x26501248,0x16450360,0x22222222, -0x06000010,0x20002260,0x1e000504,0x00000000,0x20005701,0x00322507,0x0d600031,0x27c03a0c, -0x000003e0,0x00000200,0x00010020,0x34000004,0x0e001400,0x00000280,0x00000040,0x22a40208, -0x020006f4,0x00000734,0x01000010,0x20002260,0x1e000034,0x00000000,0x00000040,0x22c00208, -0x020002a4,0x00000774,0x00000040,0x252c0208,0x120002c0,0x000007cc,0x00010020,0x34000004, -0x0e001400,0x00000060,0x00600040,0x22e00208,0x168d0560,0x000a000a,0x00000001,0x25481608, -0x00000000,0x00040004,0x05000002,0x25400208,0x020007b4,0x0000052c,0x00000040,0x22000204, -0x060002bc,0x0210b700,0x00600009,0x23000208,0x168d02e0,0x00020002,0x0c600033,0x08e2a018, -0x00002301,0x00000000,0x04000010,0x20000200,0x020007b4,0x0000052c,0x00010020,0x34000004, -0x0e001400,0x000001b0,0x00000001,0x48cd1e88,0x00000000,0x00090009,0x00000040,0x22002240, -0x160007a0,0x05100510,0x00000001,0x48ad1e88,0x00000000,0x00010001,0x00000001,0x48ae2288, -0x0000078e,0x00000000,0x00000001,0x48ac2288,0x000008cd,0x00000000,0x00000006,0x22a42248, -0x1e008000,0x22202220,0x00000040,0x23e00208,0x120004f4,0x000044f0,0x00000005,0x42c02288, -0x1e0007a0,0x000f000f,0x00000001,0x28d40208,0x000007b4,0x00000000,0x00400001,0x28c01248, -0x000002a4,0x00000000,0x00000009,0x22a40208,0x160004f4,0x00060006,0x00000040,0x22000204, -0x060002d0,0x020a0400,0x00000009,0x24000208,0x160003e0,0x00060006,0x00400001,0x28c82288, -0x000002c0,0x00000000,0x00000040,0x22c00228,0x1e0002a4,0xffc0ffc0,0x00000040,0x24200228, -0x1e000400,0xffc0ffc0,0x20005601,0x00451b07,0x20005601,0x00451707,0x20005601,0x00451907, -0x00000008,0x24480a08,0x1e000420,0x00040004,0x00000001,0x48cc2288,0x000008ad,0x00000000, -0x00000008,0x24680a08,0x1e0002c0,0x00040004,0x0a800033,0x00017054,0x00002444,0x00000000, -0x20005601,0x00451d07,0x00000040,0x22000204,0x060002d0,0x020a0400,0x0a800033,0x0001b054, -0x00002464,0x00000000,0x0a600031,0x24803a08,0x06000000,0x0219e000,0x20004d01,0x00242407, -0x20004d01,0x00007e07,0x07000031,0x20003a00,0x06000fc0,0x82000010,0x01000010,0x20002260, -0x1e000034,0x00000000,0x00010020,0x34000004,0x0e001400,0x000000c0,0x03000010,0x20002260, -0x1e00050c,0x00000000,0x00000001,0x22ac1e68,0x00000000,0x00010001,0x00000005,0x22a41228, -0x12000500,0x00000502,0x00010002,0x22c01a28,0x1e0002ac,0x00000000,0x01000005,0x20000a20, -0x0a0002a4,0x000002c0,0x00010020,0x34000004,0x0e001400,0x00000060,0x00600040,0x22e00208, -0x168d0560,0x000a000a,0x00000001,0x25401208,0x000007cc,0x00000000,0x00000001,0x25481608, -0x00000000,0x00010001,0x00000040,0x22000204,0x060002bc,0x0210b700,0x00600009,0x23000208, -0x168d02e0,0x00020002,0x0c600033,0x08e2a018,0x00002301,0x00000000,0x02000005,0x44ea2288, -0x1e0007c0,0x00ff00ff,0x00000005,0x25302228,0x1e0007d8,0x00030003,0x00000001,0x25341608, -0x00000000,0x00000000,0x00010020,0x34000004,0x0e001400,0x00000050,0x00000040,0x22001240, -0x16000530,0x05080508,0x00000001,0x24f21648,0x00000000,0x06060606,0x00400001,0x25342288, -0x00008000,0x00000000,0x00000001,0x48cc1e88,0x00000000,0x00010001,0x00000020,0x34000004, -0x0e001400,0x00000760,0x02000010,0x20002260,0x1e0004ea,0x00100010,0x00010020,0x34000004, -0x0e001400,0x00000260,0x00200040,0x22b01228,0x164504f8,0x00080008,0x00000001,0x22c01e68, -0x00000000,0x00010001,0x00200001,0x42a41688,0x00000000,0x00000000,0x00000001,0x48cc1e88, -0x00000000,0x00040004,0x00000040,0x22e81228,0x160004f8,0x00100010,0x00000040,0x22ac1228, -0x160004fa,0x00100010,0x00000001,0x42e01e88,0x00000000,0x00000000,0x04200010,0x20000a20, -0x124502b0,0x00450020,0x00000001,0x24f21648,0x00000000,0x03030303,0x00210002,0x42a41a88, -0x1e0002c0,0x00000000,0x00000040,0x42c22288,0x220002a4,0x000002a6,0x01000010,0x20002260, -0x1e0002c2,0x00010001,0x00010001,0x48cc1e88,0x00000000,0x00020002,0x01000010,0x20002260, -0x1e0002c2,0x00020002,0x00010001,0x48cc1e88,0x00000000,0x00010001,0x01000010,0x20001240, -0x120007d0,0x000007d2,0x01010010,0x20001240,0x120007d4,0x000007d6,0x00010002,0x22e41a28, -0x1e0002c0,0x00000000,0x05000010,0x20000a20,0x120002e8,0x000004ec,0x00010002,0x23001a28, -0x1e0002c0,0x00000000,0x05000010,0x20000a20,0x120002ac,0x000004ee,0x00000005,0x22a40a28, -0x0a0002e4,0x00000300,0x00010002,0x22c41a28,0x1e0002c0,0x00000000,0x00000005,0x22c80a28, -0x0a0002a4,0x000002c4,0x02000005,0x20000a20,0x1e0002c8,0x00010001,0x00010001,0x42e01e88, -0x00000000,0x00010001,0x01000010,0x20001240,0x120007d0,0x000007d4,0x01010010,0x20001240, -0x120007d2,0x000007d6,0x00010002,0x23041a28,0x1e0002c0,0x00000000,0x00000005,0x23200a28, -0x0a000304,0x00000300,0x00000005,0x23400a28,0x0a000320,0x000002c4,0x02000005,0x20000a20, -0x1e000340,0x00010001,0x00010001,0x42e01e88,0x00000000,0x00010001,0x02000005,0x20002260, -0x160002e0,0x00010001,0x00010001,0x48cc1e88,0x00000000,0x00010001,0x02000005,0x20002260, -0x160002e0,0x00010001,0x00010001,0x44f31e88,0x00000000,0x00060006,0x00000020,0x34000004, -0x0e001400,0x000004e0,0x0060000c,0x22e02208,0x168d07d0,0x00040004,0x00600005,0x49002288, -0x1e8d07d0,0x000f000f,0x00000001,0x24f21648,0x00000000,0x00000000,0x00000001,0x25381608, -0x00000000,0x00000000,0x00600005,0x63000288,0x168d02e0,0x000f000f,0x00600001,0x49012288, -0x00600300,0x00000000,0x00000040,0x22001240,0x16000538,0x09000900,0x00000040,0x22a40208, -0x16000538,0x00010001,0x00000001,0x22ac2228,0x00008000,0x00000000,0x00000040,0x22001240, -0x160002a4,0x09000900,0x00600001,0x22c01648,0x00000000,0x00000000,0x01400010,0x20000a20, -0x220002ac,0x00208000,0x00000001,0x22d41e68,0x00000000,0x00010001,0x00410002,0x22c01a48, -0x1e0002d4,0x00000000,0x2203eb10,0x00160007,0x00000001,0x22e01048,0x00000600,0x00000000, -0x00000005,0x23001208,0x160002e0,0x00070007,0x06000010,0x20000200,0x16000300,0x00000000, -0x00010020,0x34000004,0x0e001400,0x00000070,0x00000040,0x22001240,0x16000538,0x09000900, -0x00000040,0x22002240,0x17e08000,0x05200520,0x00000001,0x42a42288,0x00008000,0x00000000, -0x0000000c,0x22ac0208,0x16000538,0x00020002,0x00000040,0x22001240,0x160002ac,0x05340534, -0x00000001,0xc0002288,0x000002a4,0x00000000,0x00000020,0x34000004,0x0e001400,0x00000268, -0x00000040,0x22a40208,0x16000538,0x00010001,0x00000040,0x22ac0208,0x16000538,0x00020002, -0x00000040,0x22001240,0x160002a4,0x09000900,0x00000001,0x22c02228,0x00008000,0x00000000, -0x00000040,0x22001240,0x160002ac,0x09000900,0x00600001,0x22e01648,0x00000000,0x00000000, -0x01200010,0x20000a20,0x220002c0,0x00208000,0x00000001,0x22f01e68,0x00000000,0x00010001, -0x00210002,0x22e01a48,0x1e0002f0,0x00000000,0x2203eb10,0x00170007,0x00000001,0x23001048, -0x00000600,0x00000000,0x00000005,0x23201208,0x16000300,0x00030003,0x06000010,0x20000200, -0x16000320,0x00000000,0x00010020,0x34000004,0x0e001400,0x00000080,0x00000040,0x22a40208, -0x16000538,0x00010001,0x00000040,0x22001240,0x160002a4,0x09000900,0x00000040,0x22002240, -0x17e08000,0x05200520,0x00000001,0x42c02288,0x00008000,0x00000000,0x0000000c,0x22c40208, -0x16000538,0x00020002,0x00000040,0x22001240,0x160002c4,0x05340534,0x00000001,0xc0002288, -0x000002c0,0x00000000,0x00000020,0x34000004,0x0e001400,0x00000110,0x00000040,0x22a40208, -0x16000538,0x00020002,0x00000040,0x22001240,0x160002a4,0x09000900,0x02000010,0x20002220, -0x22008000,0x00008001,0x00010020,0x34000004,0x0e001400,0x00000080,0x00000040,0x22a40208, -0x16000538,0x00020002,0x00000040,0x22001240,0x160002a4,0x09000900,0x00000040,0x22002240, -0x17e08000,0x05200520,0x00000001,0x42c02288,0x00008000,0x00000000,0x0000000c,0x22c40208, -0x16000538,0x00020002,0x00000040,0x22001240,0x160002c4,0x05340534,0x00000001,0xc0002288, -0x000002c0,0x00000000,0x00000020,0x34000004,0x0e001400,0x00000050,0x00000040,0x22001240, -0x16000530,0x05080508,0x00000001,0x42a42288,0x00008000,0x00000000,0x0000000c,0x22ac0208, -0x16000538,0x00020002,0x00000040,0x22001240,0x160002ac,0x05340534,0x00000001,0xc0002288, -0x000002a4,0x00000000,0x00000040,0x25380208,0x16000538,0x00040004,0x05000010,0x20000200, -0x16000538,0x00100010,0x00010020,0x34000004,0x0e001400,0xfffffc30,0x00200040,0x22b01228, -0x164504f8,0x00080008,0x00000001,0x22c01e68,0x00000000,0x00010001,0x00200001,0x42a41688, -0x00000000,0x00000000,0x00000001,0x48cc1e88,0x00000000,0x00040004,0x04200010,0x20000a20, -0x124502b0,0x00450020,0x00210002,0x42a41a88,0x1e0002c0,0x00000000,0x00000040,0x42e02288, -0x220002a4,0x000002a6,0x01000010,0x20002260,0x1e0002e0,0x00010001,0x00010001,0x48cc1e88, -0x00000000,0x00020002,0x01000010,0x20002260,0x1e0002e0,0x00020002,0x00010001,0x48cc1e88, -0x00000000,0x00010001,0x00000009,0x22a40228,0x160004f4,0x00060006,0x00000001,0x48ac2288, -0x000004f2,0x00000000,0x00000040,0x22000204,0x060002d0,0x020a0300,0x00000001,0x28c80208, -0x00000534,0x00000000,0x00000001,0x48ae1e88,0x00000000,0x00000000,0x00400001,0x28c01248, -0x006907d0,0x00000000,0x00000001,0x28d41208,0x000007cc,0x00000000,0x00000001,0x48cd2288, -0x000004f3,0x00000000,0x00000008,0x22e80a08,0x1e0002a4,0x00040004,0x0a800033,0x00045054, -0x000022e2,0x00000000,0x0a600031,0x23003a08,0x06000000,0x0219e000,0x20004d01,0x00181807, -0x20004d01,0x00007f07,0x07000031,0x20003a00,0x06000fe0,0x82000010,0x2000007d,0x2000000c, -0x00200040,0x22e01228,0x16450020,0x000f000f,0x00000005,0x22a6124c,0x16000006,0x07ff07ff, -0x00000005,0x22a4124c,0x16000004,0x07ff07ff,0x00200001,0x2c601248,0x00450020,0x00000000, -0x0020000c,0x43000a48,0x1e4502e0,0x00040004,0x00000005,0x24001260,0x160002a6,0x00010001, -0x00000008,0x25c21248,0x160002a6,0x00010001,0x00200001,0x287c1248,0x00400300,0x00000000, -0x00000048,0x25c01248,0x1e0002a4,0x00020002,0x00000001,0x25c41248,0x000005c2,0x00000000, -0x04000010,0x20001240,0x120005c0,0x0000087c,0x00200009,0x2c641248,0x164505c0,0x00040004, -0x00010020,0x34000004,0x0e001400,0x00006478,0x06000010,0x20002260,0x1e000025,0x00000000, -0x00010020,0x34000004,0x0e001400,0x000000c0,0x20004d01,0x00001707,0x00000040,0x22000204, -0x060002b8,0x02190000,0x20086001,0x00001700,0x00000001,0x22e41208,0x000005c4,0x00000000, -0x00000001,0x22e01228,0x000005c0,0x00000000,0x0c600031,0x23003a0c,0x000002e0,0x00000200, -0x00400001,0x2320228c,0x00690300,0x00000000,0x00000041,0x22a42228,0x1e000320,0x00100010, -0x00000040,0x22c80a28,0x1e0002a4,0x00200020,0x00000041,0x23401248,0x160002c8,0x00040004, -0x00000040,0x22001240,0x16000340,0x00200020,0x00600001,0x20a00208,0x00208000,0x00000000, -0x00600001,0x20c00208,0x00208020,0x00000000,0x0000004d,0x22a42208,0x00000026,0x00000000, -0x00600001,0x22e02648,0x00000000,0x76543210,0x00000040,0x22002240,0x16000026,0x05d005d0, -0x00800001,0x28201608,0x00000000,0x00000000,0x00800001,0x26801608,0x00000000,0x00000000, -0x00800001,0x28801608,0x00000000,0x00000000,0x00800001,0x28c01608,0x00000000,0x00000000, -0x00800001,0x29001608,0x00000000,0x00000000,0x00800001,0x29401608,0x00000000,0x00000000, -0x00800001,0x26c01608,0x00000000,0x00000000,0x00000001,0x25d40e28,0x00000000,0x390e0d03, -0x00000001,0x25d00e28,0x00000000,0x09020100,0x00000001,0x486c1e88,0x00000000,0x00010001, -0x00600001,0x2bc01e08,0x00000000,0x00000000,0x20106101,0xff0054f8,0x00000001,0x6c680288, -0x000002a4,0x00000000,0x00600001,0x2c801208,0x008d02e0,0x00000000,0x60004101,0x00044205, -0x00200001,0x28500208,0x00450090,0x00000000,0x20004b01,0x00034107,0x00000001,0x45c42288, -0x00008000,0x00000000,0x00000005,0x486e2288,0x1e0005c4,0x00030003,0x00000040,0x22c82228, -0x1e00086e,0xffffffff,0x00000041,0x23001248,0x160002c8,0x00020002,0x00000040,0x22001240, -0x16000300,0x00200020,0x00000001,0x25c61248,0x00008020,0x00000000,0x00000001,0x22ac12e8, -0x00000032,0x00000000,0x00000001,0x236412e8,0x00000030,0x00000000,0x00000001,0x22a422e8, -0x000000a0,0x00000000,0x00000009,0x23001228,0x1600087e,0x00020002,0x00000001,0x236022e8, -0x000000a0,0x00000000,0x02000010,0x20002260,0x1e000c68,0x00010001,0x00200001,0x28701648, -0x00000000,0x00000000,0x09000038,0x22e03ae8,0x3e0002ac,0x41200000,0x09000038,0x23803ae8, -0x3e000364,0x41200000,0x00000040,0x23a00a28,0x1e000300,0x000f000f,0x00000009,0x25c81228, -0x160005c0,0x00010001,0x00000001,0x28741648,0x00000000,0x00000000,0x00000041,0x23203ae8, -0x3a0002a4,0x000002e0,0x00000005,0x22a40a08,0x1e0003a0,0xfff0fff0,0x00000041,0x22c83ae8, -0x3a000360,0x00000380,0x00000001,0x43403a4c,0x00000320,0x00000000,0x00000001,0x23201e68, -0x00000000,0x00010001,0x0000000c,0x22e00208,0x160002a4,0x00040004,0x00000001,0x40303a48, -0x000002c8,0x00000000,0x00000001,0x20321248,0x00000340,0x00000000,0x00010002,0x22c81a28, -0x1e000320,0x00000000,0x00000009,0x25d80208,0x160002e0,0x00020002,0x01000005,0x20002220, -0x0a00002d,0x000002c8,0x00000040,0x25cc0228,0x120045d8,0x000005c2,0x00010020,0x34000004, -0x0e001400,0x00000078,0x00000041,0x22a40208,0x220005d8,0x0000086e,0x20004d01,0x00001707, -0x00000040,0x22000204,0x060002c4,0x02190000,0x20184001,0x002e1700,0x20086001,0x01001700, -0x00000040,0x22e40228,0x020002a4,0x000005cc,0x0c600031,0x23003a0c,0x000002e0,0x00000200, -0x00200001,0x2320124c,0x00450300,0x00000000,0x00000001,0x23801248,0x00000320,0x00000000, -0x06000010,0x20002260,0x1e000c68,0x00000000,0x00000001,0x45d41e88,0x00000000,0x00000000, -0x00010020,0x34000004,0x0e001400,0x000002d8,0x00000041,0x22a42228,0x1e0005d4,0x00020002, -0x00000041,0x23002248,0x160005d4,0x00020002,0x0000000c,0x22c82228,0x0a0005c4,0x000002a4, -0x00000040,0x22001240,0x16000300,0x0ba00ba0,0x00000005,0x22e00a28,0x1e0002c8,0x00030003, -0x00000040,0x25d00a28,0x1e0002e0,0xffffffff,0x00000001,0x4c6c0a68,0x000005d0,0x00000000, -0x00000001,0xa0001a68,0x00000c6c,0x00000000,0x00000040,0x23201a28,0x1e000c6c,0x00010001, -0x00000001,0x23401e68,0x00000000,0x00010001,0x00000040,0x25cc0228,0x020005cc,0x000005d8, -0x02000010,0x20000a20,0x22000320,0x0000086e,0x00010002,0x23601a28,0x1e000340,0x00000000, -0x01000005,0x20002220,0x0a00002d,0x00000360,0x00010020,0x34000004,0x0e001400,0x00000108, -0x00000041,0x22a41248,0x160005d0,0x00020002,0x00000040,0x22001240,0x160002a4,0x00200020, -0x00000001,0x22a61248,0x00008020,0x00000000,0x20004d01,0x00001707,0x00000040,0x22000204, -0x060002c4,0x02190000,0x00000001,0x22e4020c,0x000005cc,0x00000000,0x20184001,0x002e1700, -0x20086001,0x01001700,0x01000010,0x20001240,0x120005c6,0x000002a6,0x00000001,0x22c81e68, -0x00000000,0x00010001,0x0c600031,0x23003a0c,0x000002e0,0x00000200,0x00000040,0x22001240, -0x160002a4,0x08700870,0x00200001,0x2320124c,0x00450300,0x00000000,0x03010010,0x20001240, -0x12000320,0x00000380,0x05110010,0x20001240,0x120005c6,0x000002a6,0x00010002,0xa0001a48, -0x1e0002c8,0x00000000,0x03000010,0x20001220,0x1e008000,0x00000000,0x00010020,0x34000004, -0x0e001400,0x000000b0,0x06000010,0x20002260,0x1e00002c,0x00000000,0x00010020,0x34000004, -0x0e001400,0x00000090,0x20004d01,0x00001707,0x00000040,0x22000204,0x060002c0,0x02190000, -0x00000001,0x22e4020c,0x000005cc,0x00000000,0x20086001,0x03001700,0x00000041,0x22e00a28, -0x1e0005c8,0x00040004,0x00000041,0x22a41248,0x160005d0,0x00040004,0x0c600031,0x23003a0c, -0x000002e0,0x00000200,0x00000040,0x22001240,0x160002a4,0x08600860,0x00200001,0x23201a6c, -0x00450300,0x00000000,0x00000001,0xa0000208,0x00000320,0x00000000,0x00000040,0x45d42288, -0x1e0005d4,0x00010001,0x05000010,0x20002260,0x220005d4,0x00000c68,0x00010020,0x34000004, -0x0e001400,0xfffffd28,0x00200001,0x22b01e48,0x00000000,0x00010001,0x00200001,0x22e00208, -0x000005c0,0x00000000,0x00200001,0x22b41e48,0x00000000,0x00020002,0x00600001,0x23001648, -0x00000000,0x00000000,0x00000001,0x43b01e88,0x00000000,0x00020002,0x00000001,0x25d40e28, -0x00000000,0x5f004a00,0x00000001,0x25dc0e28,0x00000000,0xff000000,0x00000001,0x25d00e28, -0x00000000,0x1f050a00,0x00000001,0x25d80e28,0x00000000,0x3f250000,0x646fc110,0x151700ad, -0x00410002,0x23001a48,0x1e0002b0,0x00000000,0x2203eb10,0x00180007,0x00000001,0x22a41048, -0x00000600,0x00000000,0x00000005,0x22ac1208,0x160002a4,0x000f000f,0x00000040,0x22001240, -0x160002ac,0x05d005d0,0x00000001,0x48762288,0x00008000,0x00000000,0x00600001,0x22e02668, -0x00000000,0x33221100,0x20104101,0x002e6600,0x00000040,0x22000204,0x060002cc,0x02180200, -0x00000001,0x22c81648,0x00000000,0x00000000,0x02000005,0x20002260,0x1600002e,0x00010001, -0x00200001,0x23b01268,0x00450c64,0x00000000,0x00600001,0x23801648,0x00000000,0x00000000, -0x00800001,0x25e01608,0x00000000,0x00000000,0x00600040,0x2cd01a68,0x1a8d0cd0,0x008d42e0, -0x00200040,0x22e01268,0x12450020,0x00454c64,0x00010002,0x2c6a1248,0x160002c8,0x01000100, -0x00800001,0x26201608,0x00000000,0x00000000,0x00200001,0x26601648,0x00000000,0x00000000, -0x00600001,0x23a02648,0x00000000,0x00011011,0x00600001,0x2ca01a28,0x008d0cd0,0x00000000, -0x00200040,0x23b41a68,0x1e4502e0,0xfff0fff0,0x00600001,0x22e01648,0x00000000,0x00000000, -0x00400041,0x4cd01a68,0x1e400cd0,0x00100010,0x00400041,0x4ca40a28,0x12400ca4,0x0000087c, -0x00400041,0x23401a28,0x1e6903b0,0x00080008,0x00400041,0x4cd21a68,0x1e400cd2,0x00040004, -0x03600002,0x2ca00a28,0x1e8d0ca0,0x00000000,0x00400040,0x23b00a28,0x1e690340,0x00800080, -0x00600041,0x2ca00a28,0x1e8d0ca0,0x00400040,0x00200001,0x23b00a28,0x004543b0,0x00000000, -0x00600001,0x4b600a28,0x000003b8,0x00000000,0x00600001,0x4b640a28,0x000003bc,0x00000000, -0x00000040,0x22ac0a28,0x0a000ca0,0x00000ca4,0x00600001,0x4be00a28,0x000003b0,0x00000000, -0x00600001,0x4be40a28,0x000003b4,0x00000000,0x00000008,0x23080a08,0x1e0002ac,0x00040004, -0x0a600031,0x23203a0c,0x00000300,0x00000200,0x00200005,0x23001228,0x164505c0,0x00010001, -0x00200040,0x23101228,0x16450c64,0x00100010,0x03200010,0x20000a20,0x1e450300,0x00000000, -0x00210002,0x22e01a48,0x1e0002b0,0x00000000,0x2203eb10,0x00170007,0x00000001,0x22a41048, -0x00000600,0x00000000,0x06200010,0x20000a20,0x12450310,0x00450020,0x00000005,0x42ac1288, -0x160002a4,0x00030003,0x00210002,0x2c741a48,0x1e0002b0,0x00000000,0x01000010,0x20002260, -0x1e0002ac,0x00030003,0x00000005,0x22c81228,0x12000c74,0x00000c76,0x00010002,0x22d81a28, -0x1e0002b0,0x00000000,0x01200010,0x20000a20,0x1e450300,0x00000000,0x00000005,0x68780a88, -0x0a0002c8,0x000002d8,0x00210002,0x23201a48,0x1e0002b0,0x00000000,0x00200041,0x22e01248, -0x16450320,0x00100010,0x00200040,0x23401228,0x12450c64,0x004502e0,0x00200040,0x23600a28, -0x1e450340,0x00100010,0x03200010,0x20000a20,0x12450360,0x00450020,0x00210002,0x23801a48, -0x1e0002b0,0x00000000,0x2203eb10,0x001c0007,0x00000001,0x22a41048,0x00000600,0x00000000, -0x01000005,0x20002220,0x1e000878,0x00010001,0x00000005,0x4c701288,0x160002a4,0x00030003, -0x00000001,0x4d182288,0x00000324,0x00000000,0x00000001,0x2c400208,0x00000330,0x00000000, -0x00010020,0x34000004,0x0e001400,0x00000440,0x04200010,0x20001240,0x164505c0,0x00020002, -0x00000001,0x22a41e68,0x00000000,0x00010001,0x00600001,0x22e01648,0x00000000,0x00000000, -0x00000001,0x25c40e28,0x00000000,0xff254a00,0x00210002,0x22e01a48,0x1e0002a4,0x00000000, -0x2203eb10,0x00170007,0x00000001,0x22c81048,0x00000600,0x00000000,0x00000005,0x23001208, -0x160002c8,0x00030003,0x00000040,0x22001240,0x16000300,0x05c405c4,0x00000001,0x4c6e2288, -0x00008000,0x00000000,0x00000040,0x23200a28,0x0a000ca8,0x00000cac,0x00000040,0x22000204, -0x060002cc,0x02180200,0x00200040,0x22b01268,0x12450020,0x00454c64,0x20104101,0x002e5d00, -0x00200040,0x23b01268,0x16450c64,0xfff0fff0,0x03600010,0x20001260,0x1e8d00b0,0x03ff03ff, -0x00600001,0x22f02648,0x00000000,0xfedcba98,0x00000008,0x23480a08,0x1e000320,0x00040004, -0x00200040,0x23b41a68,0x1e4502b0,0xfff0fff0,0x00600040,0x23001228,0x128d0bb0,0x008d43a0, -0x0a600031,0x23603a0c,0x00000340,0x00000200,0x00600001,0x23401248,0x008d00b0,0x00000000, -0x00400041,0x22e01a28,0x1e6903b0,0x00080008,0x00610001,0x23401648,0x00000000,0x03ff03ff, -0x00600009,0x43200a48,0x1e8d0300,0x00040004,0x00400040,0x23b00a28,0x1e6902e0,0x00800080, -0x00400040,0x22b01268,0x12690348,0x00694346,0x00600001,0x22e02648,0x00000000,0x76543210, -0x00600001,0x2bb01248,0x00400320,0x00000000,0x00000001,0x25e81248,0x00000346,0x00000000, -0x00000001,0x25e41248,0x00000344,0x00000000,0x00000001,0x26001248,0x0000034a,0x00000000, -0x00200001,0x23b00a28,0x004543b0,0x00000000,0x00600001,0x4b200a28,0x000003b8,0x00000000, -0x00400041,0x23201a28,0x120002b0,0x006902e0,0x00600040,0x23101a48,0x1e8d02e0,0x00180018, -0x00600040,0x23001a48,0x1e8d02e0,0x00100010,0x00800041,0x24c01a28,0x120002b6,0x008d02e0, -0x00600001,0x4ae00a28,0x000003b0,0x00000000,0x00800041,0x24001a28,0x120002b4,0x008d02e0, -0x00600001,0x4b240a28,0x000003bc,0x00000000,0x00800041,0x25001a28,0x120002b6,0x008d0300, -0x00600001,0x4ae40a28,0x000003b4,0x00000000,0x00600041,0x23a01a28,0x120002b2,0x008d02e0, -0x00000001,0x26201248,0x0000034c,0x00000000,0x0080000c,0x25400a28,0x1e8d04c0,0x00050005, -0x0080000c,0x24400a28,0x1e8d0400,0x00040004,0x0080000c,0x25800a28,0x1e8d0500,0x00050005, -0x00000001,0x25f01248,0x00000348,0x00000000,0x00000040,0x22a41228,0x120005e4,0x000005e8, -0x0060000c,0x23c00a28,0x1e8d03a0,0x00030003,0x00000001,0x25e01248,0x00000340,0x00000000, -0x00000001,0x26601248,0x0000034e,0x00000000,0x00000001,0x25e21248,0x00000342,0x00000000, -0x00800040,0x44801248,0x0a000600,0x008d0440,0x0000000c,0x42c80a4c,0x1e0002a4,0x00010001, -0x00600040,0x43e01248,0x0a0005f0,0x008d03c0,0x00800001,0x26001248,0x00400480,0x00000000, -0x00000001,0x25e61248,0x000002c8,0x00000000,0x00600001,0x25f01248,0x004003e0,0x00000000, -0x00000001,0x4cc82288,0x00000364,0x00000000,0x0040000c,0x23600a28,0x1e690320,0x00020002, -0x00000001,0x2ac00208,0x00000370,0x00000000,0x00800040,0x43201248,0x0a000620,0x008d0580, -0x00400040,0x43801248,0x0a0005e8,0x00690360,0x00800001,0x26401248,0x00400320,0x00000000, -0x00400001,0x25e81248,0x00400380,0x00000000,0x00800040,0x43601248,0x0a000620,0x008d0540, -0x00800001,0x26201248,0x00400360,0x00000000,0x00200001,0x22a42268,0x0045002a,0x00000000, -0x00200040,0x22b01228,0x164505c0,0x00010001,0x00600001,0x23000e08,0x00000000,0x00020001, -0x00000001,0x22c81e68,0x00000000,0x00010001,0x00600001,0x2d201e28,0x00000000,0x00000000, -0x00600001,0x2e800208,0x0000087c,0x00000000,0x00000001,0x48bc1e88,0x00000000,0x00040004, -0x20144b01,0x00157200,0x00200040,0x22a41248,0x16450c64,0x00100010,0x00800040,0x2e201a68, -0x1e8d4300,0x00ff00ff,0x00200040,0x23101228,0x1245087c,0x004545c0,0x00800041,0x2e801a68, -0x1e8d0e80,0x00100010,0x00800040,0x22e01a68,0x1e8d0e40,0xfff0fff0,0x03200010,0x20001240, -0x124502a4,0x00450020,0x00800040,0x23201a68,0x1e8d4e40,0x00050005,0x00800040,0x23a01a68, -0x1e8d0e80,0xffffffff,0x00800008,0x2de01a68,0x1e8d02e0,0x00010001,0x00200009,0x22e00a28, -0x1e4502b0,0x00070007,0x00800005,0x23601a68,0x1e8d0320,0xfffcfffc,0x00000006,0x43222288, -0x1e0008bc,0x00010001,0x00600001,0x29281648,0x00000000,0x7f7f7f7f,0x00600001,0x29401648, -0x00000000,0x81818181,0x20144b01,0x00636d00,0x00200001,0x23000a28,0x004542e0,0x00000000, -0x00600001,0x22e01648,0x00000000,0x00000000,0x00210002,0x22e01a48,0x1e0002c8,0x00000000, -0x00800040,0x2d801a68,0x1e8d0e40,0xfff0fff0,0x00200009,0x24200a28,0x1e450310,0x00070007, -0x00800005,0x23e01a68,0x1e8d03a0,0xfffcfffc,0x00400001,0x4d200a28,0x00000300,0x00000000, -0x2203eb10,0x00170007,0x00600001,0x2d401e28,0x00000000,0x00000000,0x00800001,0x2dc01e68, -0x00000000,0x00ff00ff,0x00800001,0x29702288,0x008d0928,0x00000000,0x00800001,0x29602288, -0x008d0940,0x00000000,0x00000001,0x23001048,0x00000600,0x00000000,0x00800040,0x2d601a68, -0x1a8d0360,0x008d4da0,0x00800040,0x2e001a68,0x1a8d0d80,0x008d4e20,0x00800040,0x2e601a68, -0x1a8d03e0,0x008d4da0,0x00000005,0x23201248,0x16000300,0x00030003,0x00400001,0x4d400a28, -0x00000420,0x00000000,0x00200001,0x28881248,0x00450c64,0x00000000,0x00000001,0x488e1e88, -0x00000000,0x00ac00ac,0x00000006,0x48a02288,0x1e0008a0,0x00030003,0x00400001,0x29381648, -0x00000000,0x7f7f7f7f,0x00000001,0x49271e88,0x00000000,0x00000000,0x03000010,0x20001260, -0x1e000320,0x00000000,0x00000001,0x49241e88,0x00000000,0x00880088,0x00000001,0x29541648, -0x00000000,0x00000000,0x00000001,0x488d1e88,0x00000000,0x00300030,0x00400001,0x4d240a28, -0x00000304,0x00000000,0x00400001,0x4d440a28,0x00000424,0x00000000,0x00010001,0x48bc2288, -0x00000322,0x00000000,0x01000010,0x20001260,0x1e0005c0,0x00000000,0x00010020,0x34000004, -0x0e001400,0x000000c8,0x20004d01,0x00001707,0x00000040,0x22000204,0x060002a0,0x02290000, -0x00000001,0x22e8060c,0x00000000,0x000f0000,0x00000001,0x22e41228,0x0000088a,0x00000000, -0x00000040,0x22e01228,0x1e000888,0xffffffff,0x0c600031,0x23003a0c,0x000002e0,0x00000200, -0x00000040,0x22e01228,0x1e000888,0xfffcfffc,0x00000040,0x22000204,0x060002a0,0x02190001, -0x0000000c,0x22e41228,0x1600088a,0x00010001,0x00000001,0x22e8060c,0x00000000,0x00070003, -0x0c600031,0x23403a0c,0x000002e0,0x00000200,0x00800001,0x29402288,0x00600300,0x00000000, -0x00800001,0x29602288,0x00650342,0x00000000,0x01000010,0x20001260,0x1e0005c2,0x00000000, -0x00010020,0x34000004,0x0e001400,0x000000c8,0x00000040,0x22a41228,0x1e000888,0xfff8fff8, -0x20004d01,0x00001707,0x00000040,0x22000204,0x060002a0,0x02190000,0x20086001,0x1f001700, -0x00000040,0x22e41228,0x1e00088a,0xffffffff,0x0000000c,0x22c81228,0x1600088a,0x00010001, -0x20144001,0x00151700,0x0c600031,0x23203a0c,0x000002e0,0x00000200,0x00000040,0x22000204, -0x060002a0,0x02190001,0x00000040,0x22e40a28,0x1e0002c8,0xffffffff,0x0c600031,0x22e03a0c, -0x000002e0,0x00000200,0x00400001,0x29280208,0x00690328,0x00000000,0x00600001,0x29382288, -0x00000937,0x00000000,0x00400001,0x29700208,0x006902e8,0x00000000,0x02000010,0x20001260, -0x1e0005c0,0x00000000,0x00000001,0x22a41e68,0x00000000,0x00010001,0x02010010,0x20001260, -0x1e0005c2,0x00000000,0x00010002,0x22c81a28,0x1e0002a4,0x00000000,0x01000010,0x20000a20, -0x1e0002c8,0x00000000,0x00010020,0x34000004,0x0e001400,0x00000030,0x00000006,0x48bd2288, -0x1e0008bd,0x00040004,0x00000001,0x49272288,0x00000327,0x00000000,0x00200001,0x29542288, -0x004502e6,0x00000000,0x00000005,0x22b01228,0x160005c2,0x00010001,0x02000010,0x20001260, -0x1e0005c2,0x00000000,0x00000040,0x22a41228,0x160005c0,0x00010001,0x00000005,0x22ac1228, -0x160005c0,0x00010001,0x00000001,0x22e01e68,0x00000000,0x00010001,0x05010010,0x20000a20, -0x120002a4,0x0000087c,0x00000040,0x22c80a28,0x0a0002ac,0x000002b0,0x02010010,0x20000a20, -0x1e0002c8,0x00020002,0x00010002,0x23001a28,0x1e0002e0,0x00000000,0x01000010,0x20000a20, -0x1e000300,0x00000000,0x00010020,0x34000004,0x0e001400,0x00000020,0x00000006,0x48bd2288, -0x1e0008bd,0x00080008,0x00200001,0x29380208,0x00450338,0x00000000,0x00200040,0x22a41248, -0x16450c64,0x00100010,0x00000001,0x22ac1e68,0x00000000,0x00010001,0x00600001,0x22e01648, -0x00000000,0x00000000,0x00000001,0x488f1e88,0x00000000,0x00700070,0x00000001,0x48a91e88, -0x00000000,0x00390039,0x00000005,0x23202228,0x1e0008a4,0x00c000c0,0x00200001,0x28cc0208, -0x004500c0,0x00000000,0x03200010,0x20001240,0x124502a4,0x00450020,0x00000001,0x495e2288, -0x000000a3,0x00000000,0x00000001,0x48ca2288,0x000000d2,0x00000000,0x00200001,0x28c82288, -0x004500d0,0x00000000,0x00000001,0x48a82288,0x000008a9,0x00000000,0x00000006,0x488e2288, -0x1e00088e,0x00040004,0x00000001,0x48a61e88,0x00000000,0x00200020,0x00210002,0x22e01a48, -0x1e0002ac,0x00000000,0x00200040,0x22ac2248,0x1e45002a,0xfff0fff0,0x00000001,0x48be1e88, -0x00000000,0x00400040,0x00000006,0x48bd2288,0x1e0008bd,0x00700070,0x00200001,0x29501e48, -0x00000000,0x22222222,0x00000001,0x48bf1e88,0x00000000,0x00010001,0x00200001,0x28c00208, -0x004500c8,0x00000000,0x2203eb10,0x00170007,0x00200005,0x22e41248,0x164505c0,0x00010001, -0x00000001,0x42e01e88,0x00000000,0x00000000,0x00200008,0x22a41248,0x164502ac,0x00030003, -0x00200001,0x295c2288,0x004500a1,0x00000000,0x00200001,0x28962288,0x0045002a,0x00000000, -0x00000006,0x68a40a88,0x1e000320,0x00200020,0x00000001,0x22c81048,0x00000600,0x00000000, -0x00000005,0x23001248,0x160002c8,0x00030003,0x00200005,0x22c81248,0x164502a4,0x000f000f, -0x03000010,0x20001260,0x1e000300,0x00000000,0x00000009,0x42d81288,0x160002ca,0x00040004, -0x00010001,0x488f1e88,0x00000000,0x00770077,0x05000010,0x20002260,0x1e000029,0x00390039, -0x00000006,0x48aa2288,0x120002d8,0x000002c8,0x00010001,0x48a82288,0x00000029,0x00000000, -0x01000010,0x20000200,0x160002e4,0x00000000,0x00010001,0x42e01e88,0x00000000,0x000f000f, -0x01000010,0x20000200,0x160002e4,0x00010001,0x00010001,0x42e01e88,0x00000000,0x00010001, -0x01000010,0x20000200,0x060002e4,0x00010000,0x00010001,0x42e01e88,0x00000000,0x00020002, -0x01000010,0x20000200,0x060002e4,0x00010001,0x00010001,0x42e01e88,0x00000000,0x00030003, -0x00000004,0x22a42228,0x000002e0,0x00000000,0x00000005,0x62c80a88,0x1e0002a4,0x00ff00ff, -0x00000001,0x26002244,0x000002c8,0x00000000,0x00618005,0x36001044,0x168d1600,0x7fff7fff, -0x00000040,0x24000a28,0x0a000ca0,0x00000cb4,0x00000040,0x22000204,0x060002d0,0x02280300, -0x00800001,0x23801608,0x00000000,0x00000000,0x00800001,0x23001608,0x00000000,0x00000000, -0x00800001,0x23401608,0x00000000,0x00000000,0x00000008,0x24280a08,0x1e000400,0x00040004, -0x0a800032,0x23003a6c,0x00000420,0x00000200,0x00000040,0x22c80a28,0x0a000ca8,0x00000ca4, -0x00000040,0x24400a28,0x0a000ca0,0x00000cac,0x00000040,0x22a40a28,0x0a000cb0,0x00000ca4, -0x00000040,0x24000a28,0x0a000ca8,0x00000cac,0x00000001,0x2aa80208,0x00000318,0x00000000, -0x00000001,0x4d152288,0x00000304,0x00000000,0x00000001,0x2c340208,0x00000318,0x00000000, -0x00000008,0x25080a08,0x1e0002c8,0x00040004,0x00000008,0x22e80a08,0x1e000440,0x00040004, -0x00000008,0x24680a08,0x1e0002a4,0x00040004,0x00000040,0x22a40a28,0x0a000cb0,0x00000cb4, -0x00000001,0x487a1e88,0x00000000,0x00000000,0x00000001,0x4cc22288,0x00000304,0x00000000, -0x0a800031,0x24c03a6c,0x00000500,0x00000200,0x0a800031,0x23403a6c,0x000002e0,0x00000200, -0x0a800031,0x24803a6c,0x00000460,0x00000200,0x00000008,0x24480a08,0x1e0002a4,0x00040004, -0x00000008,0x22e80a08,0x1e000400,0x00040004,0x00000040,0x22000204,0x060002d0,0x02180200, -0x0a600031,0x24203a0c,0x000002e0,0x00000200,0x0a600031,0x24603a0c,0x00000440,0x00000200, -0x60104101,0x00261c05,0x60244101,0x00261d05,0x00200001,0x4d102288,0x00000344,0x00000000, -0x00200001,0x22c82288,0x00450342,0x00000000,0x60204101,0x00241d05,0x60004101,0x00241c05, -0x00200001,0x4c200208,0x00450358,0x00000000,0x00200001,0x4d112288,0x00000394,0x00000000, -0x00200001,0x22ca2288,0x00450390,0x00000000,0x00200001,0x4c240208,0x004003b4,0x00000000, -0x00000001,0x2aac0208,0x000003a4,0x00000000,0x00000001,0x2c380208,0x000003a4,0x00000000, -0x00000001,0x4cc32288,0x00000384,0x00000000,0x01000010,0x20002260,0x1e000d11,0x00000000, -0x00000001,0x4d142288,0x00000424,0x00000000,0x00000001,0x2c300208,0x0000043c,0x00000000, -0x00000001,0x4cc42288,0x00000464,0x00000000,0x00000001,0x2ab00208,0x0000047c,0x00000000, -0x00000001,0x4d172288,0x00000464,0x00000000,0x00000001,0x2c3c0208,0x0000047c,0x00000000, -0x03010010,0x20001260,0x1e0005c0,0x00000000,0x00000001,0x4d162288,0x00000384,0x00000000, -0x00010001,0x29501248,0x000002ca,0x00000000,0x01000010,0x20002260,0x1e000d10,0x00000000, -0x03010010,0x20001260,0x1e0005c2,0x00000000,0x00010001,0x29521248,0x000002c8,0x00000000, -0x06000010,0x20002260,0x1e000c68,0x00000000,0x00010020,0x34000004,0x0e001400,0x000018c0, -0x00000041,0x22a42248,0x1600087a,0x00020002,0x00000040,0x22001240,0x160002a4,0x0ba00ba0, -0x00000001,0x2c6c1a68,0x00008000,0x00000000,0x05000010,0x20000200,0x12000a94,0x00000032, -0x00000001,0x22e01e68,0x00000000,0x00010001,0x00000041,0x22c81a48,0x12000c6c,0x000000ae, -0x00800001,0x23801648,0x00000000,0x00000000,0x00400001,0x28b82288,0x00000c6c,0x00000000, -0x05110010,0x20000200,0x12000a90,0x00000032,0x00400040,0x23a01208,0x126900a8,0x000002c8, -0x00010002,0x23001a28,0x1e0002e0,0x00000000,0x02000010,0x20000a20,0x1e000300,0x00000000, -0x00010020,0x34000004,0x0e001400,0x000017f0,0x00000040,0x22a41a28,0x1e000c6c,0x00040004, -0x00000040,0x22001240,0x160002a4,0x06e006e0,0x00000001,0xc0001e88,0x00000000,0x00010001, -0x00000040,0x22c81a28,0x1e000c6c,0x00010001,0x03000010,0x20002260,0x1e000028,0x00000000, -0x00000001,0x22d81e68,0x00000000,0x00080008,0x00000006,0x22e21248,0x22000c6a,0x00000876, -0x20005601,0x00611807,0x20005601,0x00611a07,0x01010010,0x20002220,0x0a00086e,0x000002c8, -0x00000001,0x62e00a88,0x000002c8,0x00000000,0x00600001,0x2ce01e08,0x00000000,0x00000000, -0x00010002,0x43b01a88,0x1e0002d8,0x00020002,0x01800010,0x20002260,0x228d0d10,0x000002e0, -0x00000001,0x22a41048,0x00000600,0x00000000,0x02800010,0x20002260,0x1e8d0d10,0x00000000, -0x00000005,0x23b41248,0x120002e2,0x000002a4,0x00000001,0x22a41048,0x00000600,0x00000000, -0x00000005,0x23b61248,0x120002e2,0x000002a4,0x0000004c,0x23b80208,0x000003b4,0x00000000, -0x03000010,0x20000200,0x160003b8,0x00180018,0x00010020,0x34000004,0x0e001400,0x00000520, -0x00000041,0x22a41248,0x160003b8,0x00040004,0x00000040,0x22001240,0x160002a4,0x03000300, -0x00000001,0x2ce00208,0x00008000,0x00000000,0x02800010,0x20000220,0x028d0c20,0x00000ce0, -0x00000001,0x22c81048,0x00000600,0x00000000,0x02800010,0x20000220,0x028d0c20,0x00000ce0, -0x00000001,0x22ca1048,0x00000600,0x00000000,0x00000005,0x23b40208,0x020003b4,0x000002c8, -0x0000004c,0x22c00208,0x000003b4,0x00000000,0x03000010,0x20000200,0x160002c0,0x00180018, -0x00010020,0x34000004,0x0e001400,0x00000470,0x00000041,0x22a41248,0x160002c0,0x00040004, -0x00000040,0x22001240,0x160002a4,0x03000300,0x00000001,0x2ce40208,0x00008000,0x00000000, -0x01000010,0x20002260,0x1e0003b0,0x00020002,0x00010020,0x34000004,0x0e001400,0x00000420, -0x02800010,0x20000220,0x028d0c20,0x00000ce4,0x00000001,0x22a41048,0x00000600,0x00000000, -0x02800010,0x20000220,0x028d0c20,0x00000ce4,0x00000001,0x22a61048,0x00000600,0x00000000, -0x00000005,0x23b40208,0x020003b4,0x000002a4,0x0000004c,0x23b00208,0x000003b4,0x00000000, -0x03000010,0x20000200,0x160003b0,0x00180018,0x00010020,0x34000004,0x0e001400,0x000003a0, -0x00000041,0x22a41248,0x160003b0,0x00040004,0x00000040,0x22001240,0x160002a4,0x03000300, -0x00000001,0x2ce80208,0x00008000,0x00000000,0x02800010,0x20000220,0x028d0c20,0x00000ce8, -0x00000001,0x22c81048,0x00000600,0x00000000,0x02800010,0x20000220,0x028d0c20,0x00000ce8, -0x00000001,0x22ca1048,0x00000600,0x00000000,0x00000005,0x23b40208,0x020003b4,0x000002c8, -0x0000004c,0x23b00208,0x000003b4,0x00000000,0x03000010,0x20000200,0x160003b0,0x00180018, -0x00010020,0x34000004,0x0e001400,0x000002f0,0x00000041,0x22a41248,0x160003b0,0x00040004, -0x00000040,0x22001240,0x160002a4,0x03000300,0x00000001,0x2cec0208,0x00008000,0x00000000, -0x02800010,0x20000220,0x028d0c20,0x00000cec,0x00000001,0x22c81048,0x00000600,0x00000000, -0x02800010,0x20000220,0x028d0c20,0x00000cec,0x00000001,0x22ca1048,0x00000600,0x00000000, -0x00000005,0x23b40208,0x020003b4,0x000002c8,0x0000004c,0x23b00208,0x000003b4,0x00000000, -0x03000010,0x20000200,0x160003b0,0x00180018,0x00010020,0x34000004,0x0e001400,0x00000240, -0x00000041,0x22a41248,0x160003b0,0x00040004,0x00000040,0x22001240,0x160002a4,0x03000300, -0x00000001,0x2cf00208,0x00008000,0x00000000,0x02800010,0x20000220,0x028d0c20,0x00000cf0, -0x00000001,0x22c81048,0x00000600,0x00000000,0x02800010,0x20000220,0x028d0c20,0x00000cf0, -0x00000001,0x22ca1048,0x00000600,0x00000000,0x00000005,0x23b40208,0x020003b4,0x000002c8, -0x0000004c,0x23b00208,0x000003b4,0x00000000,0x03000010,0x20000200,0x160003b0,0x00180018, -0x00010020,0x34000004,0x0e001400,0x00000190,0x00000041,0x22a41248,0x160003b0,0x00040004, -0x00000040,0x22001240,0x160002a4,0x03000300,0x00000001,0x2cf40208,0x00008000,0x00000000, -0x02800010,0x20000220,0x028d0c20,0x00000cf4,0x00000001,0x22c81048,0x00000600,0x00000000, -0x02800010,0x20000220,0x028d0c20,0x00000cf4,0x00000001,0x22ca1048,0x00000600,0x00000000, -0x00000005,0x23b40208,0x020003b4,0x000002c8,0x0000004c,0x23b00208,0x000003b4,0x00000000, -0x03000010,0x20000200,0x160003b0,0x00180018,0x00010020,0x34000004,0x0e001400,0x000000e0, -0x00000041,0x22a41248,0x160003b0,0x00040004,0x00000040,0x22001240,0x160002a4,0x03000300, -0x00000001,0x2cf80208,0x00008000,0x00000000,0x02800010,0x20000220,0x028d0c20,0x00000cf8, -0x00000001,0x22c81048,0x00000600,0x00000000,0x02800010,0x20000220,0x028d0c20,0x00000cf8, -0x00000001,0x22ca1048,0x00000600,0x00000000,0x00000005,0x23b40208,0x020003b4,0x000002c8, -0x0000004c,0x22c00208,0x000003b4,0x00000000,0x03000010,0x20000200,0x160002c0,0x00180018, -0x00010020,0x34000004,0x0e001400,0x00000030,0x00000041,0x22a41248,0x160002c0,0x00040004, -0x00000040,0x22001240,0x160002a4,0x03000300,0x00000001,0x2cfc0208,0x00008000,0x00000000, -0x04800002,0x42e00a68,0x1a8d0be0,0x008d0ce0,0x00000040,0x22000204,0x060002a8,0x10782000, -0x00800001,0x2ce01a68,0x004002e0,0x00000000,0x06800002,0x43200a68,0x1a8d0b60,0x008d0ce0, -0x00800001,0x2ce01a68,0x00400320,0x00000000,0x0000000c,0x22c81a28,0x1e000ce2,0x00010001, -0x0000000c,0x22a41a28,0x1e000ce0,0x00010001,0x0020000c,0x29001a68,0x1e450ce0,0x00010001, -0x00200001,0x23801a68,0x00450ce0,0x00000000,0x00000001,0x43600a6c,0x000002c8,0x00000000, -0x00400001,0x68e00a68,0x000002a4,0x00000000,0x00400001,0x68e21a68,0x00000360,0x00000000, -0x0d600031,0x29803a0c,0x00000880,0x00000200,0x00000040,0x23a80208,0x120003a8,0x00000988, -0x00200001,0x23901248,0x00450988,0x00000000,0x04000010,0x20000200,0x020003a8,0x00000a94, -0x00010020,0x34000004,0x0e001400,0x00000040,0x00200001,0x2a681648,0x00000000,0x0a0a0a0a, -0x20004b01,0x004c7507,0x00000040,0x4a641a88,0x1e000c6c,0x00010001,0x20104101,0x004d5300, -0x00000001,0x2a940208,0x000003a8,0x00000000,0x01000010,0x20002260,0x1e00086c,0x00000000, -0x00010020,0x34000004,0x0e001400,0x00000070,0x0000000c,0x22a42228,0x16000980,0x00040004, -0x00000005,0x4a882288,0x1e000998,0x00030003,0x00000001,0x486c1e88,0x00000000,0x00000000, -0x00400001,0x2a801248,0x00690990,0x00000000,0x00000001,0x2a901208,0x0000098c,0x00000000, -0x00000001,0x49251e88,0x00000000,0x00020002,0x00000005,0x6a6d0a88,0x1e0002a4,0x00030003, -0x01000010,0x20000200,0x02000ce0,0x00000ce4,0x00010020,0x34000004,0x0e001400,0x000000d0, -0x0020000c,0x29001a68,0x1e450ce4,0x00010001,0x00000040,0x22000204,0x060002a8,0x10782000, -0x00200001,0x23841a68,0x00450ce4,0x00000000,0x0d600031,0x29803a0c,0x00000880,0x00000200, -0x00000040,0x23a40208,0x120003a4,0x00000988,0x00200001,0x23941248,0x00450988,0x00000000, -0x04000010,0x20000200,0x020003a4,0x00000a94,0x00010020,0x34000004,0x0e001400,0x00000080, -0x00200001,0x2a681648,0x00000000,0x0b0b0b0b,0x20004b01,0x004c7507,0x00000040,0x4a641a88, -0x1e000c6c,0x00010001,0x20104101,0x004d5300,0x00000001,0x2a940208,0x000003a4,0x00000000, -0x00000020,0x34000004,0x0e001400,0x00000030,0x00000040,0x22a41a28,0x1e000c6c,0x00080008, -0x00000040,0x22001240,0x160002a4,0x06e006e0,0x00000001,0xc0001e88,0x00000000,0x00010001, -0x02000010,0x20000200,0x16000ce0,0x00000000,0x00000001,0x22a41e68,0x00000000,0x00010001, -0x02010010,0x20000200,0x16000ce4,0x00000000,0x00010002,0x22c81a28,0x1e0002a4,0x00000000, -0x01000010,0x20000a20,0x1e0002c8,0x00000000,0x00010020,0x34000004,0x0e001400,0x000000c0, -0x00200001,0x29001e68,0x00000000,0x00000000,0x00000040,0x22000204,0x060002a8,0x10782000, -0x00200001,0x23881a68,0x00450900,0x00000000,0x0d600031,0x29803a0c,0x00000880,0x00000200, -0x00000040,0x23a00208,0x120003a0,0x00000988,0x00200001,0x23981248,0x00450988,0x00000000, -0x04000010,0x20000200,0x020003a0,0x00000a94,0x00010020,0x34000004,0x0e001400,0x00000040, -0x00200001,0x2a681648,0x00000000,0x0c0c0c0c,0x20004b01,0x004c7507,0x00000040,0x4a641a88, -0x1e000c6c,0x00010001,0x20104101,0x004d5300,0x00000001,0x2a940208,0x000003a0,0x00000000, -0x00000041,0x22a41a28,0x1e000c6c,0x00020002,0x00000041,0x22c81248,0x160002a4,0x00100010, -0x00000040,0x22001240,0x160002c8,0x06800680,0x00600001,0xa0000208,0x008d0380,0x00000000, -0x0000000c,0x22e01208,0x16000030,0x00010001,0x05000010,0x20000200,0x12000a94,0x00000030, -0x00000001,0x23001e68,0x00000000,0x00010001,0x05110010,0x20000200,0x02000a90,0x000002e0, -0x00010002,0x23201a28,0x1e000300,0x00000000,0x02000010,0x20000a20,0x1e000320,0x00000000, -0x00010020,0x34000004,0x0e001400,0x00000cb0,0x00000041,0x22a41a48,0x1e000c6c,0x00020002, -0x00000040,0x22001240,0x160002a4,0x08700870,0x02000005,0x20002220,0x1200002d,0x00008000, -0x00010020,0x34000004,0x0e001400,0x00000c40,0x00000041,0x22a41a48,0x1e000c6c,0x00040004, -0x00200008,0x287c1a68,0x1e450ce0,0x00010001,0x00200001,0x2d001608,0x00000000,0x00000000, -0x00000040,0x22001240,0x160002a4,0x08600860,0x00200001,0x22b01a68,0x0045087c,0x00000000, -0x00000001,0x22b40208,0x00008000,0x00000000,0x00200001,0x22e00208,0x000002b0,0x00000000, -0x00400008,0x22f01a68,0x1e6902b0,0x00020002,0x0040000c,0x22e01a68,0x1e6902e0,0x00020002, -0x00400040,0x2ec01a68,0x1a6902f0,0x00694de0,0x00400040,0x23101a68,0x1a6902e0,0x00694e20, -0x00400040,0x23001a68,0x1a690ec0,0x006942e0,0x00400040,0x23201a68,0x1a6902e0,0x00694e00, -0x00000001,0x22e01e68,0x00000000,0x00010001,0x06400010,0x20001a60,0x1a690300,0x00694dc0, -0x00400040,0x23301a28,0x1a690300,0x00690d80,0x00410001,0x2ec01a68,0x00690310,0x00000000, -0x04400010,0x20000a20,0x1a690330,0x00690dc0,0x00410001,0x2ec01a68,0x00690320,0x00000000, -0x00400040,0x23401a68,0x1a690ec0,0x00690da0,0x06400040,0x20001a20,0x1a690340,0x00690e40, -0x00410001,0x2ec01a68,0x00690d60,0x00000000,0x04400010,0x20001a60,0x1a690340,0x00690e80, -0x00410001,0x2ec01a68,0x00690e60,0x00000000,0x00200040,0x22a41a68,0x1a450ec4,0x00454ec0, -0x00200001,0x22c81a48,0x004522a4,0x00000000,0x05000010,0x20001260,0x1e0002c8,0x00070007, -0x05010010,0x20001260,0x1e0002ca,0x00070007,0x01110010,0x20002260,0x1e00002c,0x00000000, -0x00010002,0x4c781a88,0x1e0002e0,0x00000000,0x01000005,0x20002220,0x1e000c78,0x00010001, -0x00010020,0x34000004,0x0e001400,0x00000130,0x00200001,0x28801a68,0x00450ec0,0x00000000, -0x00200001,0x23001e68,0x00000000,0x00000000,0x20005701,0x00461b07,0x20005701,0x00411d07, -0x00000040,0x22000204,0x060002a8,0x0c98c000,0x20005701,0x00441907,0x00200001,0x22e01a68, -0x00450880,0x00000000,0x00800001,0x23801a48,0x008d08e0,0x00000000,0x00000001,0x2324020c, -0x00000300,0x00000000,0x20005701,0x00462107,0x00000005,0x432d228c,0x1600032d,0x00f800f8, -0x20004001,0x00171900,0x20005701,0x00441f07,0x00000006,0x432d228c,0x1600032d,0x00000000, -0x08600031,0x27003a0c,0x00000320,0x00000200,0x00000040,0x22000204,0x060002a8,0x10786000, -0x20005601,0x00392307,0x00000005,0x44342288,0x1e000700,0x00030003,0x20005601,0x003b2507, -0x00000001,0x4435228c,0x00000719,0x00000000,0x00000001,0x4436228c,0x0000071a,0x00000000, -0x0d600031,0x29803a0c,0x000003e0,0x00000200,0x00000020,0x34000004,0x0e001400,0x00000280, -0x00200001,0x28801a68,0x00450ec0,0x00000000,0x00200001,0x23001e68,0x00000000,0x00000000, -0x20005701,0x00461b07,0x20005701,0x00411d07,0x00000040,0x22000204,0x060002a8,0x0c98c000, -0x20005701,0x00441907,0x00200001,0x22e01a68,0x00450880,0x00000000,0x00800001,0x23801a48, -0x008d08e0,0x00000000,0x00000001,0x2324020c,0x00000300,0x00000000,0x20005701,0x00441f07, -0x00000005,0x432d228c,0x1600032d,0x00f800f8,0x20004001,0x00171900,0x00200001,0x28801a68, -0x00450ec4,0x00000000,0x20005701,0x00462107,0x00200001,0x23001e68,0x00000000,0x00000000, -0x20005701,0x00462907,0x00000006,0x432d228c,0x1600032d,0x00000000,0x20005701,0x00442707, -0x00200001,0x22e01a68,0x00450880,0x00000000,0x20005601,0x00412b07,0x00800001,0x25401a48, -0x008d08e0,0x00000000,0x08600031,0x27003a0c,0x00000320,0x00000200,0x00000040,0x22000204, -0x060002a8,0x10786000,0x00000005,0x44ed228c,0x160004ed,0x00f800f8,0x00000001,0x24e4020c, -0x00000300,0x00000000,0x20004001,0x00172700,0x20005701,0x00461b07,0x20005701,0x00441907, -0x00000006,0x44ed228c,0x160004ed,0x00000000,0x00000001,0x4436228c,0x0000071a,0x00000000, -0x20005601,0x00392307,0x00000005,0x44342288,0x1e000700,0x00030003,0x20005601,0x003b2507, -0x00000001,0x4435228c,0x00000719,0x00000000,0x20005601,0x003f2d07,0x0d600031,0x29803a0c, -0x000003e0,0x00000200,0x00000040,0x22000204,0x060002a8,0x1099c000,0x08600031,0x27003a0c, -0x000004e0,0x00000200,0x00000040,0x22000204,0x060002a8,0x10786000,0x20005601,0x00391d07, -0x00000005,0x43742288,0x1e000700,0x00030003,0x20005601,0x003b1f07,0x00000001,0x4375228c, -0x00000719,0x00000000,0x00000001,0x4376228c,0x0000071a,0x00000000,0x0d600031,0x24203a0c, -0x00000320,0x00000200,0x04000010,0x20001240,0x12000428,0x00000988,0x00010020,0x34000004, -0x0e001400,0x00000018,0x20005601,0x00255007,0x20005601,0x00234e07,0x20005601,0x00214c07, -0x04000010,0x20001200,0x02000988,0x00000a94,0x00010020,0x34000004,0x0e001400,0x00000058, -0x00200001,0x2a780208,0x008009e0,0x00000000,0x00000001,0x2a941208,0x00000988,0x00000000, -0x00200001,0x2a681648,0x00000000,0x0d0d0d0d,0x00000040,0x4a641a88,0x1e000c6c,0x00010001, -0x00200001,0x2a700208,0x008009a0,0x00000000,0x20004b01,0x004c7507,0x00000040,0x22a41a28, -0x1e000c6c,0x00010001,0x03000010,0x20002260,0x1e000028,0x00000000,0x00000001,0x22c81e68, -0x00000000,0x00010001,0x01010010,0x20002220,0x0a00086e,0x000002a4,0x00010002,0x22e01a28, -0x1e0002c8,0x00000000,0x01000010,0x20000a20,0x1e0002e0,0x00000000,0x00010020,0x34000004, -0x0e001400,0x000005a8,0x00200040,0x22a42268,0x1e45002a,0xfff0fff0,0x0080000c,0x23201a68, -0x1e8d0ce0,0x00030003,0x00000001,0x43801e8c,0x00000000,0x00010001,0x00200008,0x22c81a68, -0x1e4502a4,0x00010001,0x00200040,0x22e01a68,0x1a450ec0,0x004502c8,0x20004b01,0x00171800, -0x00800040,0x23401a68,0x1a8d0300,0x008d4320,0x00800001,0x23601a48,0x008d2340,0x00000000, -0x05600010,0x20001260,0x1e400360,0x00070007,0x05610010,0x20001260,0x1e400362,0x00070007, -0x00610001,0x2d002288,0x00000380,0x00000000,0x02000010,0x20002260,0x1e000c78,0x00000000, -0x00010020,0x34000004,0x0e001400,0x000000a8,0x00200040,0x22a42268,0x1e45002a,0xfff0fff0, -0x0080000c,0x23201a68,0x1e8d0ce0,0x00030003,0x00000001,0x43801e8c,0x00000000,0x00010001, -0x00200008,0x22c81a68,0x1e4502a4,0x00010001,0x00200040,0x22e01a68,0x1a450ec4,0x004502c8, -0x20004b01,0x00171800,0x00800040,0x23401a68,0x1a8d0300,0x008d4320,0x00800001,0x23601a48, -0x008d2340,0x00000000,0x05600010,0x20001260,0x1e400360,0x00070007,0x05610010,0x20001260, -0x1e400362,0x00070007,0x00610001,0x2d002288,0x00000380,0x00000000,0x0080000c,0x22e01a68, -0x1e8d0ce0,0x00010001,0x00200001,0x22a41a68,0x0045087c,0x00000000,0x00000001,0x4c721e88, -0x00000000,0x00000000,0x00000001,0x487c1e88,0x00000000,0x00010001,0x00800008,0x23201a68, -0x1e8d02e0,0x00020002,0x20144b01,0x00151800,0x00800040,0x25c01a68,0x1a8d0320,0x008d4de0, -0x0080000c,0x23001a68,0x1e8d0300,0x00020002,0x00800040,0x23401a68,0x1a8d05c0,0x008d4300, -0x00800040,0x23601a68,0x1a8d0300,0x008d4e20,0x00800040,0x23a01a68,0x1a8d0300,0x008d4e00, -0x06800010,0x20001a60,0x1e8d0340,0xff01ff01,0x00800040,0x23e01a28,0x1a8d0340,0x008d0d80, -0x00810001,0x25c01a68,0x008d0360,0x00000000,0x04800010,0x20000a20,0x1e8d03e0,0x00ff00ff, -0x00810001,0x25c01a68,0x008d03a0,0x00000000,0x00800040,0x24201a68,0x1a8d05c0,0x008d0da0, -0x06800040,0x20001a20,0x1a8d0420,0x008d0e40,0x00810001,0x25c01a68,0x008d0d60,0x00000000, -0x04800010,0x20001a60,0x1a8d0420,0x008d0e80,0x00810001,0x25c01a68,0x008d0e60,0x00000000, -0x00000040,0x22002240,0x1600087c,0x0d000d00,0x02000010,0x20002220,0x1e008000,0x00000000, -0x00010020,0x34000004,0x0e001400,0x00000290,0x04000010,0x20002260,0x22000c72,0x00000028, -0x00010020,0x34000004,0x0e001400,0x000002a0,0x00000041,0x22a42248,0x1600087c,0x00040004, -0x00000040,0x4c722288,0x1e000c72,0x00010001,0x00000040,0x22001240,0x160002a4,0x05c005c0, -0x00000001,0x28800208,0x00008000,0x00000000,0x20005701,0x00442007,0x00200001,0x23c01a68, -0x00450880,0x00000000,0x00200001,0x23e01e68,0x00000000,0x00000000,0x20005701,0x00462207, -0x00000040,0x22000204,0x060002a8,0x0c98c000,0x00000005,0x440d228c,0x1600040d,0x00f800f8, -0x20005701,0x00412407,0x20004001,0x001e2000,0x00000001,0x2404020c,0x000003e0,0x00000000, -0x00800001,0x24601a48,0x008d08e0,0x00000000,0x00000006,0x440d228c,0x1600040d,0x00000000, -0x20005701,0x00462807,0x20005701,0x00442607,0x00200040,0x22c82268,0x1e45002a,0xfff0fff0, -0x0080000c,0x23401a68,0x1e8d0ce0,0x00030003,0x08600031,0x27003a0c,0x00000400,0x00000200, -0x00000040,0x22000204,0x060002a8,0x10786000,0x00000001,0x43a01e8c,0x00000000,0x00010001, -0x00200008,0x22e01a68,0x1e4502c8,0x00010001,0x00200040,0x23001a68,0x1a450880,0x004502e0, -0x20004b01,0x00181900,0x00000001,0x4515228c,0x00000719,0x00000000,0x00000001,0x4516228c, -0x0000071a,0x00000000,0x20005601,0x00392a07,0x00000005,0x45142288,0x1e000700,0x00030003, -0x20005601,0x003b2c07,0x00800040,0x23601a68,0x1a8d0320,0x008d4340,0x0d600031,0x29803a0c, -0x000004c0,0x00000200,0x00800001,0x23801a48,0x008d2360,0x00000000,0x05600010,0x20001260, -0x1e400380,0x00070007,0x05610010,0x20001260,0x1e400382,0x00070007,0x00610001,0x2d002288, -0x000003a0,0x00000000,0x04000010,0x20001200,0x02000988,0x00000a94,0x00010020,0x34000004, -0x0e001400,0x00000058,0x00200001,0x2a780208,0x008009e0,0x00000000,0x00000001,0x2a941208, -0x00000988,0x00000000,0x00200001,0x2a681648,0x00000000,0x0d0d0d0d,0x00000040,0x4a641a88, -0x1e000c6c,0x00010001,0x00200001,0x2a700208,0x008009a0,0x00000000,0x20004b01,0x004c7507, -0x00000040,0x487c2288,0x1e00087c,0x00010001,0x05000010,0x20002260,0x1e00087c,0x00080008, -0x00010020,0x34000004,0x0e001400,0xfffffd10,0x00000040,0x487a2288,0x1e00087a,0x00010001, -0x05000010,0x20002260,0x2200087a,0x00000c68,0x00010020,0x34000004,0x0e001400,0xffffe740, -0x02000005,0x4a6c2288,0x1e000ea0,0x00030003,0x00200001,0x2a981208,0x00450ea8,0x00000000, -0x00600009,0x2a701a68,0x1e8d0a70,0x00010001,0x00010020,0x34000004,0x0e001400,0x000001a0, -0x00000040,0x2c6c2268,0x1e000a64,0xffffffff,0x00000041,0x22a41a28,0x1e000c6c,0x00020002, -0x00000041,0x22c81248,0x160002a4,0x00100010,0x00000040,0x22001240,0x160002c8,0x06800680, -0x00000040,0x22021240,0x160002c8,0x06800680,0x02000010,0x20000200,0x02000a70,0x00008000, -0x02010010,0x20000200,0x02000a70,0x00008204,0x02010010,0x20000200,0x16000a70,0x00000000, -0x00000001,0x22e01e68,0x00000000,0x00010001,0x00010002,0x23001a28,0x1e0002e0,0x00000000, -0x01000010,0x20000a20,0x1e000300,0x00000000,0x00010020,0x34000004,0x0e001400,0x00000190, -0x00000041,0x22a41a28,0x1e000c6c,0x00020002,0x0020000c,0x29001a68,0x1e450a70,0x00010001, -0x00000040,0x22000204,0x060002a8,0x10782000,0x00400001,0x28b82288,0x00000c6c,0x00000000, -0x00000041,0x22ac1248,0x160002a4,0x00100010,0x0d600031,0x29803a0c,0x00000880,0x00000200, -0x00000040,0x22001240,0x160002ac,0x06800680,0x00200001,0xa00c1a68,0x00450a70,0x00000000, -0x00000040,0x22c80a28,0x1e0002a4,0x00010001,0x00000041,0x22e01248,0x160002c8,0x00100010, -0x00000040,0x22001240,0x160002e0,0x06800680,0x00200001,0xa00c1248,0x00450988,0x00000000, -0x00000001,0x2a9c1208,0x0000098a,0x00000000,0x00000020,0x34000004,0x0e001400,0x000000b0, -0x00000040,0x42a42288,0x1e000a64,0xffffffff,0x00400001,0x49000208,0x00690a70,0x00000000, -0x00000001,0x48bf1e88,0x00000000,0x00550055,0x00000006,0x488d2288,0x1e00088d,0x00400040, -0x00000040,0x22000204,0x060002a8,0x10782000,0x00400001,0x28b82288,0x000002a4,0x00000000, -0x0080000c,0x29001a68,0x1e8d0900,0x00010001,0x0d600031,0x29803a0c,0x00000880,0x00000200, -0x00000001,0x48bf1e88,0x00000000,0x00010001,0x00000005,0x488d2288,0x1e00088d,0x00bf00bf, -0x00000001,0x2a9c1208,0x0000098a,0x00000000,0x04000010,0x20000200,0x02000a90,0x00000a94, -0x00010020,0x34000004,0x0e001400,0x00000090,0x00000041,0x22a42228,0x1e000a6d,0x00030003, -0x00000001,0x2a681608,0x00000000,0x00000000,0x00000001,0x46ec1e88,0x00000000,0x00000000, -0x00600001,0x2a701e68,0x00000000,0x00000000,0x00000001,0x4c721e88,0x00000000,0x00000000, -0x00000001,0x4a641e88,0x00000000,0x00000000,0x00000001,0x26e00208,0x00000a90,0x00000000, -0x00000040,0x6a6d0a88,0x1e0042a4,0x00060006,0x00000020,0x34000004,0x0e001400,0x000001a0, -0x02000010,0x20002260,0x1e000a6c,0x00000000,0x00000001,0x4c721e88,0x00000000,0x00010001, -0x00010020,0x34000004,0x0e001400,0x00000048,0x01000010,0x20000200,0x06000c74,0x00010001, -0x00010020,0x34000004,0x0e001400,0x00000028,0x00000001,0x4a6c1e88,0x00000000,0x00030003, -0x20244101,0x00535300,0x00200001,0x2a681648,0x00000000,0x0d0d0d0d,0x01000010,0x20002260, -0x1e000a6c,0x00000000,0x00010020,0x34000004,0x0e001400,0x00000098,0x01400010,0x20000200, -0x16690a70,0x00000000,0x00000001,0x22a41e68,0x00000000,0x00010001,0x00600001,0x22e01648, -0x00000000,0x00000000,0x00000001,0x43001e8c,0x00000000,0x000c000c,0x00200001,0x2a681648, -0x00000000,0x0d0d0d0d,0x00410002,0x22e01a48,0x1e0002a4,0x00000000,0x2203eb10,0x00170007, -0x00000001,0x22c81048,0x00000600,0x00000000,0x00000005,0x26001240,0x160002c8,0x000f000f, -0x00410001,0x2a682288,0x00000300,0x00000000,0x04600002,0x42e00a68,0x1a8d0d20,0x008d0a70, -0x00000040,0x4a6c2288,0x1e004a6c,0x00060006,0x00000001,0x46ec2288,0x00000a64,0x00000000, -0x00000001,0x26e00208,0x00000a94,0x00000000,0x00600001,0x2a701a68,0x004002e0,0x00000000, -0x06600002,0x43000a68,0x1a8d0d40,0x008d0a70,0x00600001,0x2a701a68,0x00400300,0x00000000, -0x20004d01,0x00001707,0x00000040,0x22000204,0x060002d4,0x020a8000,0x00000001,0x22e8060c, -0x00000000,0x0007000f,0x00000041,0x22e41a28,0x1e000cd2,0x00020002,0x00000001,0x22e01a28, -0x00000cd0,0x00000000,0x01000005,0x20002220,0x1e000878,0x00010001,0x00000001,0x4c781e88, -0x00000000,0x00000000,0x0c600033,0x00034014,0x000022e4,0x00000000,0x00010020,0x34000004, -0x0e001400,0x00002090,0x00000040,0x23a00a28,0x0a000cb8,0x00000cac,0x00000040,0x22c80a28, -0x0a000ca8,0x00000cb4,0x00000040,0x24600a28,0x0a000cb0,0x00000cac,0x00000040,0x22a40a28, -0x0a000ca8,0x00000cbc,0x00000040,0x22000204,0x060002d0,0x02280300,0x00000008,0x23c80a08, -0x1e0003a0,0x00040004,0x00000008,0x23880a08,0x1e0002c8,0x00040004,0x00000008,0x24880a08, -0x1e000460,0x00040004,0x00000008,0x22e80a08,0x1e0002a4,0x00040004,0x00000040,0x22a40a28, -0x0a000cb8,0x00000cbc,0x0a800031,0x23e03a6c,0x000003c0,0x00000200,0x0a800031,0x23403a6c, -0x00000380,0x00000200,0x0a800031,0x24203a6c,0x00000480,0x00000200,0x0a800031,0x23003a6c, -0x000002e0,0x00000200,0x00000040,0x22000204,0x060002d0,0x02180200,0x00000008,0x22e80a08, -0x1e0002a4,0x00040004,0x0a600031,0x23803a0c,0x000002e0,0x00000200,0x60204101,0x001f2605, -0x60004101,0x001f2505,0x00000001,0x4cc02288,0x00000344,0x00000000,0x00000001,0x2aa00208, -0x0000035c,0x00000000,0x60104101,0x00212505,0x60244101,0x00212605,0x00000001,0x2ab40208, -0x00000318,0x00000000,0x00000001,0x4cc52288,0x00000304,0x00000000,0x00000001,0x2ab80208, -0x000004c4,0x00000000,0x00000001,0x4cc62288,0x000004a4,0x00000000,0x20006101,0xff0021f8, -0x00000001,0x4cc12288,0x000004b4,0x00000000,0x00000001,0x2aa40208,0x000004dc,0x00000000, -0x00400001,0x24301e08,0x00000000,0x00000000,0x00000001,0x2abc0208,0x0000039c,0x00000000, -0x00000001,0x4cc72288,0x00000384,0x00000000,0x0a600031,0x22e03a08,0x06000000,0x0219e000, -0x20004d01,0x00171707,0x20004d01,0x00001d07,0x00000040,0x22000204,0x060002d4,0x02890000, -0x00000001,0x23a8060c,0x00000000,0x0007001f,0x00000041,0x23a41a28,0x1e000cd6,0x00020002, -0x00000001,0x23a01a28,0x00000cd4,0x00000000,0x06000010,0x20002260,0x1e000c68,0x00000000, -0x00000001,0x44401e88,0x00000000,0x00000000,0x0c800031,0x26803a4c,0x000003a0,0x00000200, -0x00000001,0x23a01a28,0x00000cd4,0x00000000,0x00000041,0x23a41a28,0x1e000cd2,0x00020002, -0x0c800031,0x27803a4c,0x000003a0,0x00000200,0x00400005,0x42ac2288,0x22690744,0x00690754, -0x00000040,0x22e00208,0x02000740,0x00000750,0x00000001,0x44492288,0x0000075c,0x00000000, -0x00000001,0x44482288,0x0000074c,0x00000000,0x00400005,0x42d82288,0x224002ac,0x00690844, -0x00000001,0x444b2288,0x0000085c,0x00000000,0x00000001,0x444a2288,0x0000084c,0x00000000, -0x00000040,0x23000208,0x020002e0,0x00000840,0x00200005,0x4c7c2288,0x226002d8,0x00400854, -0x00200005,0x4c7d2288,0x226002da,0x00400855,0x00000001,0x24480208,0x00000448,0x00000000, -0x00000040,0x24440208,0x02000300,0x00000850,0x00010020,0x34000004,0x0e001400,0x00001858, -0x00000041,0x22a42248,0x16000440,0x00020002,0x00000040,0x22001240,0x160002a4,0x0ba00ba0, -0x00000001,0x2c6c1a68,0x00008000,0x00000000,0x00000040,0x22001240,0x16000c6c,0x0c7c0c7c, -0x01000010,0x20002220,0x1e008000,0x00000000,0x00010020,0x34000004,0x0e001400,0x000017f8, -0x00000040,0x22a41a28,0x1e000c6c,0x00010001,0x00000001,0x22c81e68,0x00000000,0x00010001, -0x00600001,0x22e01648,0x00000000,0x00000000,0x01400010,0x20002220,0x0a690448,0x000002a4, -0x00410002,0x22e01a48,0x1e0002c8,0x00000000,0x2203eb10,0x00170007,0x00000001,0x23001048, -0x00000600,0x00000000,0x00000005,0x43201288,0x16000300,0x000f000f,0x0000004d,0x23402208, -0x00000320,0x00000000,0x05000010,0x20000200,0x22000340,0x0000002f,0x00010020,0x34000004, -0x0e001400,0x00001720,0x00000040,0x42a41a88,0x1e000c6c,0x00010001,0x00000006,0x22a61248, -0x22000c6a,0x00000c6e,0x20005601,0x00551907,0x20005601,0x00551707,0x00600001,0x2ce01e08, -0x00000000,0x00000000,0x01800010,0x20002260,0x228d0cc0,0x000002a4,0x00000001,0x22c81048, -0x00000600,0x00000000,0x02800010,0x20002260,0x1e8d0cc0,0x00000000,0x00000005,0x244c1248, -0x120002a6,0x000002c8,0x00000001,0x22c81048,0x00000600,0x00000000,0x00000005,0x244e1248, -0x120002a6,0x000002c8,0x0000004c,0x24500208,0x0000044c,0x00000000,0x03000010,0x20000200, -0x16000450,0x00180018,0x00010020,0x34000004,0x0e001400,0x000000e0,0x00000041,0x22a41248, -0x16000450,0x00040004,0x00000040,0x22001240,0x160002a4,0x02e002e0,0x00000001,0x2ce00208, -0x00008000,0x00000000,0x02800010,0x20000220,0x028d0aa0,0x00000ce0,0x00000001,0x22c81048, -0x00000600,0x00000000,0x02800010,0x20000220,0x028d0aa0,0x00000ce0,0x00000001,0x22ca1048, -0x00000600,0x00000000,0x00000005,0x244c0208,0x0200044c,0x000002c8,0x0000004c,0x22c00208, -0x0000044c,0x00000000,0x03000010,0x20000200,0x160002c0,0x00180018,0x00010020,0x34000004, -0x0e001400,0x00000030,0x00000041,0x22a41248,0x160002c0,0x00040004,0x00000040,0x22001240, -0x160002a4,0x02e002e0,0x00000001,0x2ce40208,0x00008000,0x00000000,0x00000041,0x22a41a28, -0x1e000c6c,0x00020002,0x04800002,0x42e00a68,0x1a8d0ae0,0x008d0ce0,0x00000001,0x42ac0a48, -0x000002a4,0x00000000,0x00800001,0x2ce01a68,0x004002e0,0x00000000,0x00000009,0x22c81248, -0x160002ac,0x00050005,0x06800002,0x43200a68,0x1a8d0b20,0x008d0ce0,0x00000040,0x22001240, -0x160002c8,0x06800680,0x00800001,0x2ce01a68,0x00400320,0x00000000,0x00600001,0x23e00208, -0x00208000,0x00000000,0x00000040,0x22001240,0x160002c8,0x07800780,0x00600001,0x24000208, -0x00208000,0x00000000,0x00000040,0x43600a48,0x1e0002a4,0x00010001,0x00000009,0x23801248, -0x16000360,0x00050005,0x00000040,0x22001240,0x16000380,0x06800680,0x00600001,0x24801248, -0x00408000,0x00000000,0x00000040,0x22001240,0x16000380,0x07800780,0x00600001,0x24901248, -0x00408000,0x00000000,0x00000040,0x22001240,0x16000380,0x06800680,0x00600001,0x24601248, -0x00408002,0x00000000,0x00000040,0x22001240,0x16000380,0x07800780,0x00600001,0x24701248, -0x00408002,0x00000000,0x01800010,0x20000220,0x028d03e0,0x00000ce0,0x00000001,0x22a41e68, -0x00000000,0x00010001,0x00000001,0x22ac1a08,0x00000c6c,0x00000000,0x00400001,0x28b82288, -0x00000c6c,0x00000000,0x0020000c,0x29001a68,0x1e450ce0,0x00010001,0x00000001,0x48ca1e88, -0x00000000,0x00000000,0x00000041,0x24421a48,0x12000c6c,0x000000ae,0x00810002,0x42e01a88, -0x1e0002a4,0x00000000,0x00800001,0x23002288,0x004002e0,0x00000000,0x00400001,0x63031e88, -0x00000000,0x00000000,0x00800041,0x23201228,0x228d0480,0x008d0300,0x00800041,0x23801248, -0x228d0460,0x008d0300,0x03400010,0x20000200,0x16690300,0x00000000,0x0000000c,0x23001a28, -0x1e000ce2,0x00010001,0x20018b40,0x1a191be7,0x0000000c,0x23401a28,0x1e000ce0,0x00010001, -0x04600002,0x23a01248,0x128d0380,0x008d0390,0x00000041,0x23200228,0x120002ac,0x000000ae, -0x00410002,0x24501a48,0x1e0002a4,0x00000000,0x606d8140,0x1b1b1bad,0x00400001,0x68e00a68, -0x00000340,0x00000000,0x04400002,0x23c01248,0x126903a0,0x006903a8,0x02000010,0x20001260, -0x1e000450,0x00000000,0x00200040,0x23600a28,0x0a450360,0x00450368,0x04200002,0x22c81248, -0x124503c0,0x004503c4,0x00000040,0x24340a08,0x0a000360,0x00000364,0x00000001,0x43600a6c, -0x00000300,0x00000000,0x04000002,0x22e01248,0x120002c8,0x000002ca,0x00000040,0x22a40208, -0x12000434,0x000000ac,0x00400001,0x68e21a68,0x00000360,0x00000000,0x00000001,0x24381208, -0x000002e0,0x00000000,0x00000040,0x24300a08,0x02000320,0x000002a4,0x00010020,0x34000004, -0x0e001400,0x000000b0,0x03000010,0x20000200,0x02000430,0x00000420,0x00000001,0x22a41e68, -0x00000000,0x00010001,0x03110010,0x20000200,0x02000430,0x00000444,0x00010002,0x22c81a28, -0x1e0002a4,0x00000000,0x02000010,0x20000a20,0x1e0002c8,0x00000000,0x00010020,0x34000004, -0x0e001400,0x000002c0,0x00200001,0x28881248,0x00450bb0,0x00000000,0x00000040,0x22000204, -0x060002a8,0x10782000,0x0d600031,0x29803a0c,0x00000880,0x00000200,0x00000040,0x24300208, -0x12000430,0x00000988,0x03000002,0x24381208,0x0200098a,0x00000438,0x02000010,0x20001260, -0x1e000452,0x00000000,0x00010020,0x34000004,0x0e001400,0x000000b0,0x03000010,0x20000200, -0x02000430,0x00000420,0x00000001,0x22a41e68,0x00000000,0x00010001,0x03110010,0x20000200, -0x02000430,0x00000444,0x00010002,0x22c81a28,0x1e0002a4,0x00000000,0x02000010,0x20000a20, -0x1e0002c8,0x00000000,0x00010020,0x34000004,0x0e001400,0x000001f0,0x00200001,0x28881248, -0x00450bb4,0x00000000,0x00000040,0x22000204,0x060002a8,0x10782000,0x0d600031,0x29803a0c, -0x00000880,0x00000200,0x00000040,0x24300208,0x12000430,0x00000988,0x03000002,0x24381208, -0x0200098a,0x00000438,0x02000010,0x20001260,0x1e000454,0x00000000,0x00010020,0x34000004, -0x0e001400,0x000000b0,0x03000010,0x20000200,0x02000430,0x00000420,0x00000001,0x22a41e68, -0x00000000,0x00010001,0x03110010,0x20000200,0x02000430,0x00000444,0x00010002,0x22c81a28, -0x1e0002a4,0x00000000,0x02000010,0x20000a20,0x1e0002c8,0x00000000,0x00010020,0x34000004, -0x0e001400,0x00000120,0x00200001,0x28881248,0x00450bb8,0x00000000,0x00000040,0x22000204, -0x060002a8,0x10782000,0x0d600031,0x29803a0c,0x00000880,0x00000200,0x00000040,0x24300208, -0x12000430,0x00000988,0x03000002,0x24381208,0x0200098a,0x00000438,0x02000010,0x20001260, -0x1e000456,0x00000000,0x00010020,0x34000004,0x0e001400,0x000000b0,0x03000010,0x20000200, -0x02000430,0x00000420,0x00000001,0x22a41e68,0x00000000,0x00010001,0x03110010,0x20000200, -0x02000430,0x00000444,0x00010002,0x22c81a28,0x1e0002a4,0x00000000,0x02000010,0x20000a20, -0x1e0002c8,0x00000000,0x00010020,0x34000004,0x0e001400,0x00000050,0x00200001,0x28881248, -0x00450bbc,0x00000000,0x00000040,0x22000204,0x060002a8,0x10782000,0x0d600031,0x29803a0c, -0x00000880,0x00000200,0x00000040,0x24300208,0x12000430,0x00000988,0x03000002,0x24381208, -0x0200098a,0x00000438,0x04000010,0x20000200,0x02000430,0x00000420,0x00010020,0x34000004, -0x0e001400,0x00000058,0x00000040,0x22a40208,0x12000430,0x000040ac,0x60204101,0x00212105, -0x00200001,0x2cd81a68,0x00450ce0,0x00000000,0x00000001,0x4cdc1e88,0x00000000,0x000a000a, -0x00000040,0x4cde1a88,0x1e000c6c,0x00010001,0x00000040,0x24240208,0x120002a4,0x00004442, -0x01000010,0x20000200,0x02000ce0,0x00000ce4,0x00010020,0x34000004,0x0e001400,0x00000548, -0x01800010,0x20000220,0x028d03e0,0x00000ce4,0x00000001,0x22a41e68,0x00000000,0x00010001, -0x0020000c,0x29001a68,0x1e450ce4,0x00010001,0x00810002,0x42e01a88,0x1e0002a4,0x00000000, -0x00800001,0x23002288,0x004002e0,0x00000000,0x00400001,0x63031e88,0x00000000,0x00000000, -0x00800041,0x23201228,0x228d0480,0x008d0300,0x00800041,0x23801248,0x228d0460,0x008d0300, -0x03400010,0x20000200,0x16690300,0x00000000,0x20018b40,0x1a191be7,0x0000000c,0x23401a28, -0x1e000ce6,0x00010001,0x04600002,0x23a01248,0x128d0380,0x008d0390,0x0000000c,0x23201a28, -0x1e000ce4,0x00010001,0x00410002,0x24501a48,0x1e0002a4,0x00000000,0x606d8140,0x1b1b1bad, -0x00000001,0x43000a6c,0x00000340,0x00000000,0x04400002,0x23c01248,0x126903a0,0x006903a8, -0x00400001,0x68e00a68,0x00000320,0x00000000,0x02000010,0x20001260,0x1e000450,0x00000000, -0x00200040,0x23600a28,0x0a450360,0x00450368,0x00400001,0x68e21a68,0x00000300,0x00000000, -0x04200002,0x22c81248,0x124503c0,0x004503c4,0x00000040,0x24340a08,0x0a000360,0x00000364, -0x04000002,0x22e01248,0x120002c8,0x000002ca,0x00000040,0x22a40208,0x12000434,0x000000aa, -0x00000001,0x24381208,0x000002e0,0x00000000,0x00000040,0x24300208,0x120002a4,0x00000442, -0x00010020,0x34000004,0x0e001400,0x000000b0,0x03000010,0x20000200,0x02000430,0x00000420, -0x00000001,0x22a41e68,0x00000000,0x00010001,0x03110010,0x20000200,0x02000430,0x00000444, -0x00010002,0x22c81a28,0x1e0002a4,0x00000000,0x02000010,0x20000a20,0x1e0002c8,0x00000000, -0x00010020,0x34000004,0x0e001400,0x000002c0,0x00200001,0x28881248,0x00450bb0,0x00000000, -0x00000040,0x22000204,0x060002a8,0x10782000,0x0d600031,0x29803a0c,0x00000880,0x00000200, -0x00000040,0x24300208,0x12000430,0x00000988,0x03000002,0x24381208,0x0200098a,0x00000438, -0x02000010,0x20001260,0x1e000452,0x00000000,0x00010020,0x34000004,0x0e001400,0x000000b0, -0x03000010,0x20000200,0x02000430,0x00000420,0x00000001,0x22a41e68,0x00000000,0x00010001, -0x03110010,0x20000200,0x02000430,0x00000444,0x00010002,0x22c81a28,0x1e0002a4,0x00000000, -0x02000010,0x20000a20,0x1e0002c8,0x00000000,0x00010020,0x34000004,0x0e001400,0x000001f0, -0x00200001,0x28881248,0x00450bb4,0x00000000,0x00000040,0x22000204,0x060002a8,0x10782000, -0x0d600031,0x29803a0c,0x00000880,0x00000200,0x00000040,0x24300208,0x12000430,0x00000988, -0x03000002,0x24381208,0x0200098a,0x00000438,0x02000010,0x20001260,0x1e000454,0x00000000, -0x00010020,0x34000004,0x0e001400,0x000000b0,0x03000010,0x20000200,0x02000430,0x00000420, -0x00000001,0x22a41e68,0x00000000,0x00010001,0x03110010,0x20000200,0x02000430,0x00000444, -0x00010002,0x22c81a28,0x1e0002a4,0x00000000,0x02000010,0x20000a20,0x1e0002c8,0x00000000, -0x00010020,0x34000004,0x0e001400,0x00000120,0x00200001,0x28881248,0x00450bb8,0x00000000, -0x00000040,0x22000204,0x060002a8,0x10782000,0x0d600031,0x29803a0c,0x00000880,0x00000200, -0x00000040,0x24300208,0x12000430,0x00000988,0x03000002,0x24381208,0x0200098a,0x00000438, -0x02000010,0x20001260,0x1e000456,0x00000000,0x00010020,0x34000004,0x0e001400,0x000000b0, -0x03000010,0x20000200,0x02000430,0x00000420,0x00000001,0x22a41e68,0x00000000,0x00010001, -0x03110010,0x20000200,0x02000430,0x00000444,0x00010002,0x22c81a28,0x1e0002a4,0x00000000, -0x02000010,0x20000a20,0x1e0002c8,0x00000000,0x00010020,0x34000004,0x0e001400,0x00000050, -0x00200001,0x28881248,0x00450bbc,0x00000000,0x00000040,0x22000204,0x060002a8,0x10782000, -0x0d600031,0x29803a0c,0x00000880,0x00000200,0x00000040,0x24300208,0x12000430,0x00000988, -0x03000002,0x24381208,0x0200098a,0x00000438,0x04000010,0x20000200,0x02000430,0x00000420, -0x00010020,0x34000004,0x0e001400,0x00000058,0x00000040,0x22a40208,0x12000430,0x000040aa, -0x60204101,0x00212105,0x00200001,0x2cd81a68,0x00450ce4,0x00000000,0x00000001,0x4cdc1e88, -0x00000000,0x000b000b,0x00000040,0x4cde1a88,0x1e000c6c,0x00010001,0x00000040,0x24240208, -0x120002a4,0x00004442,0x02000010,0x20000200,0x16000ce0,0x00000000,0x00000001,0x22a41e68, -0x00000000,0x00010001,0x02010010,0x20000200,0x16000ce4,0x00000000,0x02010010,0x20000200, -0x02000ce0,0x00000ce4,0x00010002,0x22c81a28,0x1e0002a4,0x00000000,0x01000010,0x20000a20, -0x1e0002c8,0x00000000,0x00010020,0x34000004,0x0e001400,0x00000168,0x01800010,0x20000220, -0x168d03e0,0x00000000,0x00000001,0x22a41e68,0x00000000,0x00010001,0x00810002,0x42e01a88, -0x1e0002a4,0x00000000,0x00800001,0x23002288,0x004002e0,0x00000000,0x00400001,0x63031e88, -0x00000000,0x00000000,0x00800041,0x23201228,0x228d0480,0x008d0300,0x00800041,0x23801248, -0x228d0460,0x008d0300,0x20018b40,0x1a191be7,0x04600002,0x23a01248,0x128d0380,0x008d0390, -0x606d8140,0x1b1b1bad,0x04400002,0x23c01248,0x126903a0,0x006903a8,0x00200040,0x23600a28, -0x0a450360,0x00450368,0x04200002,0x22c81248,0x124503c0,0x004503c4,0x00000040,0x24340a08, -0x0a000360,0x00000364,0x04000002,0x22a41248,0x120002c8,0x000002ca,0x00000040,0x22e00208, -0x12000434,0x000000a8,0x00000001,0x24381208,0x000002a4,0x00000000,0x00000040,0x24300208, -0x120002e0,0x00000442,0x04000010,0x20000200,0x02000430,0x00000420,0x00010020,0x34000004, -0x0e001400,0x00000038,0x00000001,0x4cdc1e88,0x00000000,0x000c000c,0x00000040,0x4cde1a88, -0x1e000c6c,0x00010001,0x00200001,0x2cd81e68,0x00000000,0x00000000,0x60204101,0x00212105, -0x00000040,0x22a41a28,0x1e000c6c,0x00080008,0x00200001,0x22b03648,0x00000000,0x10101010, -0x00000040,0x22001240,0x160002a4,0x07400740,0x00200041,0x22b01248,0x164502b0,0x00100010, -0x00200040,0x22001040,0x12000200,0x004502b0,0x00200001,0x22ac2288,0x01e08000,0x00000000, -0x00000040,0x22001240,0x160002a4,0x08400840,0x00200040,0x22001040,0x12000200,0x004502b0, -0x00200001,0x22ae2288,0x01e08000,0x00000000,0x02400005,0x20002260,0x166902ac,0x00010001, -0x00410001,0x63e40208,0x006003e0,0x00000000,0x01800010,0x20000220,0x028d03e0,0x00000ce0, -0x00000001,0x22c81048,0x00000600,0x00000000,0x01800010,0x20000220,0x028d03e0,0x00000ce4, -0x00000001,0x22d81048,0x00000600,0x00000000,0x01800010,0x20000220,0x168d03e0,0x00000000, -0x00000006,0x22e01228,0x120002c8,0x000002d8,0x00000001,0x22dc1048,0x00000600,0x00000000, -0x00000006,0x23000a28,0x120002e0,0x000002dc,0x00000004,0x44580a48,0x00000300,0x00000000, -0x06000010,0x20001260,0x1e000458,0x00000000,0x00010020,0x34000004,0x0e001400,0x000005e8, -0x0000004c,0x22a41208,0x00000458,0x00000000,0x00000041,0x22c81248,0x160002a4,0x00040004, -0x00000040,0x22001240,0x160002c8,0x03e003e0,0x00000001,0x244c0208,0x00008000,0x00000000, -0x01800010,0x20000220,0x028d03e0,0x0000044c,0x00000001,0x22e01e68,0x00000000,0x00010001, -0x00810002,0x24a01a48,0x1e0002e0,0x00000000,0x02800010,0x20001260,0x168d04a0,0x00000000, -0x00000001,0x23001048,0x00000600,0x00000000,0x0000004d,0x23201208,0x00000300,0x00000000, -0x00000004,0x23041228,0x00000300,0x00000000,0x00000001,0x63400288,0x00000320,0x00000000, -0x00000005,0x44581248,0x0a000458,0x00000304,0x06000010,0x20002260,0x22000340,0x00000027, -0x00010020,0x34000004,0x0e001400,0x000004d8,0x00800001,0x22e02288,0x004004a0,0x00000000, -0x00800041,0x23201228,0x128d0480,0x008d04a0,0x00000001,0x22a41e68,0x00000000,0x00010001, -0x00600001,0x23001648,0x00000000,0x00000000,0x00000040,0x23841208,0x120000d6,0x00000442, -0x03400010,0x20000200,0x166902e0,0x00000000,0x00800041,0x22e01248,0x128d0460,0x008d04a0, -0x20018b40,0x1a191be7,0x00000001,0x43c61e88,0x00000000,0x00010001,0x00000001,0x43c41e88, -0x00000000,0x00000000,0x00410002,0x23001a48,0x1e0002a4,0x00000000,0x04600002,0x23a01248, -0x128d02e0,0x008d02f0,0x606d8140,0x1b1b1bad,0x2203eb10,0x00180007,0x04400002,0x22b01248, -0x126903a0,0x006903a8,0x00200040,0x23600a28,0x0a450360,0x00450368,0x00000001,0x22c81048, -0x00000600,0x00000000,0x04200002,0x23001248,0x124502b0,0x004502b4,0x00000040,0x23800a08, -0x0a000360,0x00000364,0x00000005,0x43c01288,0x160002c8,0x000f000f,0x04000002,0x23c21248, -0x12000300,0x00000302,0x00000040,0x245c0208,0x02000380,0x00000384,0x00000001,0x22a41e68, -0x00000000,0x00010001,0x00000009,0x22c81a28,0x220002a4,0x000003c4,0x02000005,0x20002220, -0x0a0003c0,0x000002c8,0x00010020,0x34000004,0x0e001400,0x00000150,0x03000010,0x20000200, -0x0200045c,0x00000420,0x00010020,0x34000004,0x0e001400,0x00000160,0x03000010,0x20000200, -0x0200045c,0x00000444,0x00010020,0x34000004,0x0e001400,0x00000140,0x00000041,0x22c82248, -0x160003c4,0x00040004,0x02000005,0x20002260,0x160003c6,0x00010001,0x00000001,0x22a41e68, -0x00000000,0x00240024,0x00000040,0x22001240,0x160002c8,0x0bb00bb0,0x00010002,0x48bc1a88, -0x1e0002a4,0x00040004,0x00000001,0x28880208,0x00008000,0x00000000,0x0000000c,0x23001a28, -0x1e000ce2,0x00010001,0x0000000c,0x22e01a28,0x1e000ce0,0x00010001,0x0020000c,0x29001a68, -0x1e45044c,0x00010001,0x00000040,0x22000204,0x060002a8,0x10782000,0x00000001,0x43c61e88, -0x00000000,0x00000000,0x00000001,0x43200a6c,0x00000300,0x00000000,0x00400001,0x68e00a68, -0x000002e0,0x00000000,0x00400001,0x68e21a68,0x00000320,0x00000000,0x0d600031,0x29803a0c, -0x00000880,0x00000200,0x00000040,0x245c0208,0x1200045c,0x00000988,0x03000002,0x23c21248, -0x1200098a,0x000003c2,0x00000040,0x43c42288,0x1e0003c4,0x00010001,0x05000010,0x20002260, -0x1e0003c4,0x00040004,0x00010020,0x34000004,0x0e001400,0xfffffe40,0x01000010,0x20002260, -0x1e0003c6,0x00000000,0x00010020,0x34000004,0x0e001400,0x00000090,0x00200040,0x22b01a28, -0x1a45044c,0x00454ce0,0x00000001,0x22041640,0x00000000,0x05e005e0,0x00000001,0x22021640, -0x00000000,0x0cd40cd4,0x0020000c,0x42e00a68,0x1e4502b0,0x00010001,0x00200001,0x2cd41a68, -0x004002e0,0x00000000,0x0080002c,0x24500008,0x0e450000,0x00000f50,0x00008001,0x20000204, -0x00000000,0x00000000,0x00200001,0x23c41a68,0x00450cd4,0x00000000,0x00000040,0x245c0208, -0x1200045c,0x000003c0,0x04000010,0x20000200,0x0200045c,0x00000420,0x00010020,0x34000004, -0x0e001400,0x00000100,0x00200040,0x22b01a28,0x1a45044c,0x00454ce0,0x00000001,0x22041640, -0x00000000,0x05e005e0,0x00000001,0x24281208,0x000003c2,0x00000000,0x00000001,0x24200208, -0x0000045c,0x00000000,0x00000001,0x22021640,0x00000000,0x0cd00cd0,0x0020000c,0x42e00a68, -0x1e4502b0,0x00010001,0x00200001,0x2cd01a68,0x004002e0,0x00000000,0x0080002c,0x24500008, -0x0e450000,0x00000e80,0x00008001,0x20000204,0x00000000,0x00000000,0x00000040,0x22a40208, -0x12000420,0x00004442,0x00000040,0x4cde1a88,0x1e000c6c,0x00010001,0x00200001,0x23c41a68, -0x00450cd0,0x00000000,0x00000001,0x4cdc1e88,0x00000000,0x000d000d,0x00200001,0x2cd81a68, -0x0045044c,0x00000000,0x00000040,0x22c80208,0x120002a4,0x000040d6,0x00000040,0x24240208, -0x120002c8,0x000043c0,0x03000010,0x20001260,0x1e000458,0x00000000,0x00010020,0x34000004, -0x0e001400,0xfffffa18,0x00000040,0x44402288,0x1e000440,0x00010001,0x05000010,0x20002260, -0x22000440,0x00000c68,0x00010020,0x34000004,0x0e001400,0xffffe7a8,0x03000010,0x20000200, -0x02000420,0x00000444,0x00010020,0x34000004,0x0e001400,0x00000080,0x00400001,0x2a682288, -0x00000cdc,0x00000000,0x00000001,0x2a940208,0x00000420,0x00000000,0x00400001,0x2a700208, -0x00000cd8,0x00000000,0x00000001,0x4c721e88,0x00000000,0x00010001,0x00000001,0x4a642288, -0x00000cde,0x00000000,0x00000001,0x4c781e88,0x00000000,0x00010001,0x00000001,0x4a6c1e88, -0x00000000,0x00090009,0x00200001,0x2a980208,0x00450424,0x00000000,0x01000010,0x20002260, -0x1e000034,0x00000000,0x00010020,0x34000004,0x0e001400,0x00000400,0x03000010,0x20000200, -0x02000420,0x00000444,0x00010020,0x34000004,0x0e001400,0x00000060,0x00000040,0x22a42228, -0x1e000a64,0x00020002,0x00000001,0x2bc40208,0x00000420,0x00000000,0x00000041,0x22c81248, -0x160002a4,0x00040004,0x00000040,0x22001240,0x160002c8,0x0bc00bc0,0x00000001,0xa0001608, -0x00000000,0x00100010,0x00000020,0x34000004,0x0e001400,0x00000340,0x01400010,0x20002260, -0x1e690448,0x00000000,0x00000001,0x22a41e68,0x00000000,0x00010001,0x00600001,0x23201648, -0x00000000,0x00000000,0x00000001,0x22e80208,0x00000840,0x00000000,0x00000001,0x22e40208, -0x00000750,0x00000000,0x00000001,0x22e00208,0x00000740,0x00000000,0x00000001,0x22ec0208, -0x00000850,0x00000000,0x00400001,0x22f01e08,0x00000000,0x00000000,0x00410002,0x23201a48, -0x1e0002a4,0x00000000,0x00600001,0x23401648,0x00000000,0x00000000,0x00600001,0x23601648, -0x00000000,0x00000000,0x00400001,0x23001608,0x00000000,0x00000000,0x2203eb10,0x00190007, -0x00400001,0x23601248,0x00690320,0x00000000,0x00000001,0x22a61048,0x00000600,0x00000000, -0x00000005,0x26001240,0x160002a6,0x000f000f,0x00410001,0x22f00208,0x006902e0,0x00000000, -0x02400010,0x20002260,0x1e690448,0x00000000,0x00200040,0x22b00208,0x024502f0,0x004502f8, -0x00410002,0x23401a48,0x1e0002a4,0x00000000,0x00000040,0x2bc00208,0x020002b0,0x000002b4, -0x2203eb10,0x001a0007,0x00600001,0x23401648,0x00000000,0x00000000,0x00000001,0x22a61048, -0x00000600,0x00000000,0x00000005,0x26001240,0x160002a6,0x000f000f,0x00410001,0x23000208, -0x006902e0,0x00000000,0x2203eb10,0x001b0007,0x00600001,0x22e01648,0x00000000,0x00000000, -0x00200040,0x23300208,0x02450300,0x00450308,0x00000001,0x22a61048,0x00000600,0x00000000, -0x01400010,0x20002260,0x1e690448,0x00010001,0x00600001,0x23001648,0x00000000,0x00000000, -0x00000040,0x2bc40208,0x02000330,0x00000334,0x00000005,0x42c81288,0x160002a6,0x000f000f, -0x00410002,0x23401a48,0x1e0002a4,0x00000000,0x0000004d,0x2bc82208,0x000002c8,0x00000000, -0x2203eb10,0x001a0007,0x00000001,0x22a61048,0x00000600,0x00000000,0x01400010,0x20002260, -0x1e690448,0x00020002,0x00000005,0x42c81288,0x160002a6,0x000f000f,0x00410002,0x22e01a48, -0x1e0002a4,0x00000000,0x0000004d,0x22ac2208,0x000002c8,0x00000000,0x2203eb10,0x00170007, -0x00000009,0x2bcc0208,0x160002ac,0x00020002,0x00000001,0x22a61048,0x00000600,0x00000000, -0x01400010,0x20002260,0x1e690448,0x00030003,0x00000005,0x42c81288,0x160002a6,0x000f000f, -0x00410002,0x23001a48,0x1e0002a4,0x00000000,0x0000004d,0x22d82208,0x000002c8,0x00000000, -0x2203eb10,0x00180007,0x00000009,0x2bd00208,0x160002d8,0x00020002,0x00000001,0x22a61048, -0x00000600,0x00000000,0x00000005,0x42c81288,0x160002a6,0x000f000f,0x0000004d,0x23202208, -0x000002c8,0x00000000,0x00000009,0x2bd40208,0x16000320,0x00020002,0x00600040,0x22e00208, -0x168d0c80,0x000a000a,0x00000040,0x22000204,0x060002bc,0x0210b700,0x00600009,0x23000208, -0x168d02e0,0x00020002,0x0c600033,0x02e5e018,0x00002301,0x00000000,0x01000010,0x20002260, -0x1e000034,0x00000000,0x00010020,0x34000004,0x0e001400,0x00000170,0x03000010,0x20002260, -0x1e000c70,0x00000000,0x00000001,0x22ac1e68,0x00000000,0x00010001,0x00000005,0x22a41228, -0x12000c74,0x00000c76,0x00010002,0x22c81a28,0x1e0002ac,0x00000000,0x01000005,0x20000a20, -0x0a0002a4,0x000002c8,0x00010020,0x34000004,0x0e001400,0x00000110,0x01000010,0x20002260, -0x1e000c72,0x00000000,0x00010020,0x34000004,0x0e001400,0x00000060,0x00000040,0x22a42228, -0x1e000a64,0x00020002,0x00000001,0x2bc40208,0x00000a94,0x00000000,0x00000041,0x22c81248, -0x160002a4,0x00040004,0x00000040,0x22001240,0x160002c8,0x0bc00bc0,0x00000001,0xa0001608, -0x00000000,0x00040004,0x00000020,0x34000004,0x0e001400,0x00000050,0x00000040,0x22a42228, -0x1e000a64,0x00020002,0x00000001,0x2bc00208,0x00000a90,0x00000000,0x00000041,0x22c81248, -0x160002a4,0x00040004,0x00000040,0x22001240,0x160002c8,0x0bc00bc0,0x00000001,0xa0001608, -0x00000000,0x00010001,0x00600040,0x22e00208,0x168d0c80,0x000a000a,0x00000040,0x22000204, -0x060002bc,0x0210b700,0x00600009,0x23000208,0x168d02e0,0x00020002,0x0c600033,0x02e5e018, -0x00002301,0x00000000,0x01000010,0x20002260,0x1e000c72,0x00000000,0x00800001,0x20201608, -0x00000000,0x00000000,0x00000001,0x402d2288,0x00000c78,0x00000000,0x00000001,0x402f2288, -0x00000c72,0x00000000,0x00010020,0x34000004,0x0e001400,0x000000a0,0x00000001,0x404d2288, -0x00000a6c,0x00000000,0x00000001,0x402e1e88,0x00000000,0x00000000,0x00000001,0x20280208, -0x00000a68,0x00000000,0x00200001,0x20580208,0x00450a98,0x00000000,0x00000001,0x20541608, -0x00000000,0x00000000,0x00000001,0x20500208,0x00000a94,0x00000000,0x00400001,0x20242288, -0x00000a64,0x00000000,0x00600001,0x20301a68,0x008d0a70,0x00000000,0x00000001,0x402c2288, -0x0000004d,0x00000000,0x00000020,0x34000004,0x0e001400,0x00000380,0x01000010,0x20001240, -0x12000a80,0x00000a82,0x00000001,0x22a61e68,0x00000000,0x00010001,0x00000040,0x22b01228, -0x16000c64,0x00100010,0x00000040,0x22dc1228,0x16000c66,0x00100010,0x00000001,0x42a41e88, -0x00000000,0x00000000,0x0000000c,0x23601228,0x16000a82,0x00040004,0x0000000c,0x23841228, -0x16000a82,0x000c000c,0x01010010,0x20001240,0x12000a84,0x00000a86,0x0000000c,0x23241228, -0x16000a84,0x000c000c,0x0000000c,0x23641228,0x16000a86,0x00080008,0x0000000c,0x23c41228, -0x16000a86,0x00040004,0x00000001,0x402c2288,0x00000a6d,0x00000000,0x00000005,0x23800a28, -0x1e000360,0x000f000f,0x00000009,0x23a00a28,0x1e000384,0x00040004,0x00010002,0x22ac1a28, -0x1e0002a6,0x00000000,0x05000010,0x20000a20,0x120002b0,0x00000c60,0x00000005,0x23041228, -0x1e000a86,0xf000f000,0x00400001,0x20401248,0x00690a80,0x00000000,0x00000001,0x404d2288, -0x0000002c,0x00000000,0x00000001,0x2c680e28,0x00000000,0x09010200,0x00000006,0x23c00a28, -0x0a000380,0x000003a0,0x00000005,0x23800a28,0x1e000364,0x000f000f,0x00010002,0x22c81a28, -0x1e0002a6,0x00000000,0x05000010,0x20000a20,0x120002dc,0x00000c62,0x00000009,0x23a00a28, -0x1e000380,0x00080008,0x00000005,0x22d80a28,0x0a0002ac,0x000002c8,0x00010002,0x22e01a28, -0x1e0002a6,0x00000000,0x00000005,0x22e40a28,0x0a0002d8,0x000002e0,0x02000005,0x20000a20, -0x1e0002e4,0x00010001,0x00010001,0x42a41e88,0x00000000,0x00010001,0x01000010,0x20001240, -0x12000a80,0x00000a84,0x01010010,0x20001240,0x12000a82,0x00000a86,0x00010002,0x23001a28, -0x1e0002a6,0x00000000,0x00000005,0x23200a28,0x0a000300,0x000002c8,0x00000005,0x22c80a28, -0x1e0003c4,0x000f000f,0x00000005,0x23400a28,0x0a000320,0x000002e0,0x00000009,0x22e00a28, -0x1e0002c8,0x00080008,0x02000005,0x20000a20,0x1e000340,0x00010001,0x00000009,0x23400a28, -0x1e000324,0x00040004,0x00000006,0x23000a28,0x0a0003c0,0x000002e0,0x00010001,0x42a41e88, -0x00000000,0x00010001,0x00000006,0x40200a48,0x0a000300,0x00000304,0x02000005,0x20002260, -0x160002a4,0x00010001,0x0000000c,0x22a41228,0x16000a84,0x00080008,0x00010001,0x404d1e88, -0x00000000,0x00060006,0x00000005,0x23200a28,0x1e0002a4,0x000f000f,0x02000010,0x20002260, -0x1e000a6d,0x00060006,0x00000006,0x23600a28,0x0a000320,0x00000340,0x00000006,0x22c80a28, -0x0a000360,0x000003a0,0x00000006,0x42e00a4c,0x0a0002c8,0x00000304,0x00000001,0x20221248, -0x000002e0,0x00000000,0x00010020,0x34000004,0x0e001400,0x00000020,0x00000040,0x22002240, -0x16000a88,0x0c680c68,0x00400001,0x20482288,0x00008000,0x00000000,0x00000001,0x20501608, -0x00000000,0x00000000,0x00000001,0x20540208,0x00000a90,0x00000000,0x01000010,0x20002260, -0x1e000c78,0x00000000,0x00010020,0x34000004,0x0e001400,0x000000b0,0x00000040,0x22a40a28, -0x0a000ca8,0x00000cac,0x20005601,0x00011707,0x00000040,0x22000204,0x060002d0,0x020a0400, -0x20005601,0x00011907,0x00000040,0x22c80a28,0x0a000ca8,0x00000ca4,0x00000008,0x23680a08, -0x1e0002a4,0x00040004,0x00000008,0x23880a08,0x1e0002c8,0x00040004,0x0a800033,0x00017054, -0x00002364,0x00000000,0x00000040,0x22000204,0x060002d0,0x020a0400,0x00000001,0x434c1e88, -0x00000000,0x00010001,0x0a800033,0x00017054,0x00002384,0x00000000,0x00000020,0x34000004, -0x0e001400,0x000001b0,0x06000010,0x20002260,0x1e00004d,0x00060006,0x00200040,0x22b01228, -0x16450c64,0x00080008,0x00000001,0x22c81e68,0x00000000,0x00010001,0x00200001,0x42a41688, -0x00000000,0x00000000,0x01000010,0x20002262,0x1e00004d,0x00030003,0x00000040,0x23200a28, -0x0a000ca0,0x00000ca4,0x00000040,0x22000204,0x060002d0,0x020a0300,0x00010001,0x404c1e88, -0x00000000,0x00010001,0x06000010,0x20002260,0x1e00004d,0x00030003,0x00010002,0x22d81a2a, -0x1e0002c8,0x00000000,0x00000008,0x23480a08,0x1e000320,0x00040004,0x00010001,0x404c1e88, -0x00000000,0x00040004,0x04200010,0x20000a20,0x124502b0,0x00450c60,0x00000001,0x46200a44, -0x000002d8,0x00000000,0x00210002,0x42a41a88,0x1e0002c8,0x00000000,0x00010002,0x22e0124a, -0x160002c8,0x00000000,0x00000040,0x42ca2288,0x220002a4,0x000002a6,0x01000010,0x20002260, -0x1e0002ca,0x00010001,0x00010002,0x22dc1248,0x160002c8,0x00000000,0x02000005,0x20001240, -0x120002dc,0x000002e0,0x00010001,0x404c1e88,0x00000000,0x00020002,0x01000010,0x20002260, -0x1e0002ca,0x00020002,0x00010002,0x23001a28,0x1e0002c8,0x00000000,0x00000005,0x22a40a28, -0x0a000300,0x000002d8,0x02000005,0x20000a20,0x1e0002a4,0x00010001,0x00010001,0x404c1e88, -0x00000000,0x00010001,0x0a800033,0x00001054,0x00002342,0x00000000,0x0a600031,0x22e03a08, -0x06000000,0x0219e000,0x20004d01,0x00171707,0x20004d01,0x00007e07,0x07000031,0x20003a00, -0x06000fc0,0x82000010,0x0a600032,0x22e03a08,0x06000000,0x0219e000,0x20004d01,0x00171707, -0x20004d01,0x00007f07,0x07000031,0x20003a00,0x06000fe0,0x82000010,0x00008001,0x20000204, -0x00000000,0x00000000,0x00200001,0xa2001a68,0x0020a200,0x00000000,0x00200040,0x22a41a68, -0x1e208200,0xffc0ffc0,0x00200008,0x22c81a68,0x1e4502a4,0x00020002,0x00200040,0x22e01248, -0x1a008480,0x004502c8,0x00000041,0x22e41248,0x17e08200,0x00020002,0x00000040,0x22001040, -0x12000204,0x000002e4,0x00000001,0x23001248,0x00008000,0x00000000,0x00000041,0x23041248, -0x17e08202,0x00020002,0x00000040,0x22001040,0x12000204,0x00000304,0x00000001,0x23021248, -0x00008000,0x00000000,0x05200010,0x20001a20,0x1e208200,0x00400040,0x00210001,0x22e01248, -0x00450300,0x00000000,0x00000040,0x22c01248,0x120002e0,0x000002e2,0x05000002,0x22c01248, -0x160002c0,0x03ff03ff,0x00000001,0x23c01248,0x000002c0,0x00000000,0x0080002d,0x20000220, -0x00450450,0x00000000,0x2000007d,0x2000000c,0x2000007d,0x2000000c,0x2000007d,0x2000000c, -0x2000007d,0x2000000c,0x2000007d,0x2000000c,0x2000007d,0x2000000c,0x2000007d,0x2000000c, -0x00200040,0x22b01228,0x16450020,0x000f000f,0x00200001,0x29081648,0x00000000,0x00000000, -0x00000005,0x290a124c,0x16000006,0x07ff07ff,0x00000005,0x2908124c,0x16000004,0x07ff07ff, -0x00000040,0x22000204,0x060002d0,0x02280300,0x06000010,0x20002260,0x1e000025,0x00000000, -0x00000001,0x49401e88,0x00000000,0x00000000,0x0020000c,0x42c00a48,0x1e4502b0,0x00040004, -0x00200001,0x29041248,0x00450020,0x00000000,0x00200009,0x29001248,0x16450908,0x00040004, -0x00200001,0x290c1248,0x004002c0,0x00000000,0x00000041,0x22e01228,0x1200090a,0x0000090c, -0x00000040,0x23000a08,0x120002e0,0x00000908,0x00000009,0x23200228,0x16000300,0x00060006, -0x00000008,0x23480a08,0x1e000320,0x00040004,0x0a800031,0x28c03a6c,0x00000340,0x00000200, -0x00010020,0x34000004,0x0e001400,0x00000380,0x02000010,0x20002260,0x1e0008cc,0x00090009, -0x00010020,0x34000004,0x0e001400,0x00000280,0x00000005,0x22a41228,0x0e000908,0x0000fffe, -0x20004d01,0x00001707,0x00000040,0x22000204,0x060002b8,0x02190000,0x00000001,0x22e8060c, -0x00000000,0x00010001,0x00000005,0x22e41228,0x0e00090a,0x0000fffe,0x00000001,0x23241608, -0x00000000,0x00000000,0x20144001,0x00151700,0x0c600031,0x23003a0c,0x000002e0,0x00000200, -0x00600001,0x22c0228c,0x008d0300,0x00000000,0x00400001,0x23202288,0x006502c0,0x00000000, -0x00000041,0x23282228,0x1e000320,0x00400040,0x00000040,0x23400a28,0x1e000328,0x00800080, -0x00000040,0x22001240,0x16000340,0x00200020,0x00000001,0x43242288,0x00008000,0x00000000, -0x00000041,0x23602228,0x1e000321,0x00400040,0x00000040,0x23800a28,0x1e000360,0x00800080, -0x00000040,0x22001240,0x16000380,0x00200020,0x00000001,0x43252288,0x00008000,0x00000000, -0x00000041,0x22a42228,0x1e000322,0x00400040,0x00000040,0x22e00a28,0x1e0002a4,0x00800080, -0x00000040,0x22001240,0x160002e0,0x00200020,0x00000001,0x43262288,0x00008000,0x00000000, -0x00000041,0x22c02228,0x1e000323,0x00400040,0x00000040,0x23000a28,0x1e0002c0,0x00800080, -0x00000040,0x22001240,0x16000300,0x00200020,0x00000001,0x43282288,0x00008000,0x00000000, -0x05000010,0x20002260,0x22000326,0x00000328,0x00000001,0x49402288,0x00000323,0x00000000, -0x00010001,0x49402288,0x00000322,0x00000000,0x05000010,0x20002260,0x22000326,0x00000328, -0x00010001,0x43282288,0x00000326,0x00000000,0x05000010,0x20002260,0x22000324,0x00000328, -0x05000002,0x43282288,0x22000324,0x00000328,0x00010001,0x49402288,0x00000320,0x00000000, -0x05000010,0x20002260,0x22000325,0x00000328,0x00010001,0x49402288,0x00000321,0x00000000, -0x00800001,0x20a02288,0x00208000,0x00000000,0x00800001,0x20b02288,0x00208010,0x00000000, -0x00800001,0x20c02288,0x00208020,0x00000000,0x00800001,0x20d02288,0x00208030,0x00000000, -0x00000020,0x34000004,0x0e001400,0x000000e0,0x20004d01,0x00001707,0x00000040,0x22000204, -0x060002b8,0x02190000,0x20086001,0x00001700,0x00000001,0x22e41228,0x0000090a,0x00000000, -0x00000001,0x22e01228,0x00000908,0x00000000,0x0c600031,0x23003a0c,0x000002e0,0x00000200, -0x00400001,0x22c0228c,0x00690300,0x00000000,0x00000041,0x22a42228,0x1e0002c0,0x00400040, -0x00000001,0x49402288,0x000002c0,0x00000000,0x00000040,0x23200a28,0x1e0002a4,0x00800080, -0x00000040,0x22001240,0x16000320,0x00200020,0x00800001,0x20a02288,0x00208000,0x00000000, -0x00800001,0x20b02288,0x00208010,0x00000000,0x00800001,0x20c02288,0x00208020,0x00000000, -0x00800001,0x20d02288,0x00208030,0x00000000,0x02000010,0x20002260,0x1e0008cf,0x00000000, -0x00010020,0x34000004,0x0e001400,0x00000770,0x02000010,0x20002260,0x1e0008cc,0x00090009, -0x00000001,0x23001e28,0x00000000,0x02010201,0x00000001,0x23081e68,0x00000000,0x00090009, -0x00000001,0x29500e28,0x00000000,0x03000201,0x00000001,0x49581688,0x00000000,0x00070007, -0x00000001,0x29540e28,0x00000000,0x08060504,0x00000001,0x23041608,0x00000000,0x00000000, -0x00000001,0x230c0e28,0x00000000,0x09000201,0x00010020,0x34000004,0x0e001400,0x00000040, -0x00000005,0x22a41228,0x160008e0,0x000f000f,0x00000040,0x22001240,0x160002a4,0x03000300, -0x00000001,0x29102248,0x00008000,0x00000000,0x00000020,0x34000004,0x0e001400,0x000006a0, -0x02000010,0x20002260,0x1e0008cc,0x00060006,0x00010020,0x34000004,0x0e001400,0x00000040, -0x00000005,0x22a41228,0x160008e0,0x000f000f,0x00000040,0x22001240,0x160002a4,0x030c030c, -0x00000001,0x29102248,0x00008000,0x00000000,0x00000020,0x34000004,0x0e001400,0x00000640, -0x02000010,0x20002260,0x1e0008cc,0x00030003,0x00010020,0x34000004,0x0e001400,0x000000d0, -0x00000005,0x22a41228,0x160008e0,0x000f000f,0x00000040,0x22001240,0x160002a4,0x09500950, -0x00000001,0x29102248,0x00008000,0x00000000,0x00000005,0x22a41228,0x160008e2,0x000f000f, -0x00000040,0x22001240,0x160002a4,0x09500950,0x00000001,0x29122248,0x00008000,0x00000000, -0x00000005,0x22a41228,0x160008e4,0x000f000f,0x00000040,0x22001240,0x160002a4,0x09500950, -0x00000001,0x29142248,0x00008000,0x00000000,0x00000005,0x22a41228,0x160008e6,0x000f000f, -0x00000040,0x22001240,0x160002a4,0x09500950,0x00000001,0x29162248,0x00008000,0x00000000, -0x00000020,0x34000004,0x0e001400,0x00000550,0x00000005,0x22a41228,0x1e0008e0,0x000f000f, -0x0000000c,0x22a81228,0x160008e0,0x00040004,0x00000040,0x22001240,0x160002a4,0x09500950, -0x00000005,0x22a40a28,0x1e0002a8,0x000f000f,0x00000001,0x22ac2228,0x00008000,0x00000000, -0x00000040,0x22001240,0x160002a4,0x09500950,0x00000001,0x42e12288,0x00008000,0x00000000, -0x0000000c,0x22a81228,0x160008e0,0x00080008,0x00000005,0x22a40a28,0x1e0002a8,0x000f000f, -0x00000040,0x22001240,0x160002a4,0x09500950,0x00000001,0x42e22288,0x00008000,0x00000000, -0x0000000c,0x22a81228,0x160008e0,0x000c000c,0x00000005,0x22a40a28,0x1e0002a8,0x000f000f, -0x00000040,0x22001240,0x160002a4,0x09500950,0x00000005,0x22a41228,0x1e0008e2,0x000f000f, -0x00000009,0x22b02228,0x1e008000,0x000c000c,0x00000040,0x22001240,0x160002a4,0x09500950, -0x00000001,0x42e42288,0x00008000,0x00000000,0x0000000c,0x22a81228,0x160008e2,0x00040004, -0x00000005,0x22a40a28,0x1e0002a8,0x000f000f,0x00000040,0x22001240,0x160002a4,0x09500950, -0x00000001,0x42e52288,0x00008000,0x00000000,0x0000000c,0x22a81228,0x160008e2,0x00080008, -0x00000005,0x22a40a28,0x1e0002a8,0x000f000f,0x00000040,0x22001240,0x160002a4,0x09500950, -0x00000001,0x42e62288,0x00008000,0x00000000,0x0000000c,0x22a81228,0x160008e2,0x000c000c, -0x00000005,0x22a40a28,0x1e0002a8,0x000f000f,0x00000040,0x22001240,0x160002a4,0x09500950, -0x00000001,0x42e72288,0x00008000,0x00000000,0x00000005,0x22a41228,0x1e0008e4,0x000f000f, -0x00000040,0x22001240,0x160002a4,0x09500950,0x00000001,0x42e82288,0x00008000,0x00000000, -0x0000000c,0x22a81228,0x160008e4,0x00040004,0x00000005,0x22a40a28,0x1e0002a8,0x000f000f, -0x00000040,0x22001240,0x160002a4,0x09500950,0x00000001,0x42e92288,0x00008000,0x00000000, -0x0000000c,0x22a81228,0x160008e4,0x00080008,0x00000005,0x22a40a28,0x1e0002a8,0x000f000f, -0x00000040,0x22001240,0x160002a4,0x09500950,0x00000001,0x42ea2288,0x00008000,0x00000000, -0x0000000c,0x22a81228,0x160008e4,0x000c000c,0x00000005,0x22a40a28,0x1e0002a8,0x000f000f, -0x00000040,0x22001240,0x160002a4,0x09500950,0x00000001,0x42eb2288,0x00008000,0x00000000, -0x00000005,0x22a41228,0x1e0008e6,0x000f000f,0x00000040,0x22001240,0x160002a4,0x09500950, -0x00000001,0x42ec2288,0x00008000,0x00000000,0x0000000c,0x22a81228,0x160008e6,0x00040004, -0x00000005,0x22a40a28,0x1e0002a8,0x000f000f,0x00000040,0x22001240,0x160002a4,0x09500950, -0x00000001,0x42ed2288,0x00008000,0x00000000,0x0000000c,0x22a81228,0x160008e6,0x00080008, -0x00000005,0x22a40a28,0x1e0002a8,0x000f000f,0x00000040,0x22001240,0x160002a4,0x09500950, -0x00000001,0x42ee2288,0x00008000,0x00000000,0x0000000c,0x22a81228,0x160008e6,0x000c000c, -0x00000005,0x22a40a28,0x1e0002a8,0x000f000f,0x00000040,0x22001240,0x160002a4,0x09500950, -0x00000001,0x42c02288,0x00008000,0x00000000,0x00000009,0x22c42228,0x1e0002e2,0x00080008, -0x00000009,0x22f42228,0x1e0002e1,0x00040004,0x00000009,0x23202228,0x1e0002e7,0x000c000c, -0x00000009,0x23242228,0x1e0002e6,0x00080008,0x00000009,0x23042228,0x1e0002ee,0x00080008, -0x00000009,0x23442228,0x1e0002e5,0x00040004,0x00000009,0x23a02228,0x1e0002eb,0x000c000c, -0x00000006,0x22f00a28,0x0a0002b0,0x000002c4,0x00000009,0x22c42228,0x1e0002ea,0x00080008, -0x00000006,0x23400a28,0x0a000320,0x00000324,0x00000009,0x23242228,0x1e0002ed,0x00040004, -0x00000006,0x23000a28,0x0a0002f0,0x000002f4,0x00000006,0x23c00a28,0x0a0003a0,0x000002c4, -0x00000009,0x22f02228,0x1e0002e9,0x00040004,0x00000006,0x23600a28,0x0a000340,0x00000344, -0x00000006,0x49100a48,0x0a000300,0x000002ac,0x00000009,0x23002228,0x1e0002c0,0x000c000c, -0x00000006,0x22a40a28,0x0a0003c0,0x000002f0,0x00000006,0x43800a4c,0x22000360,0x000002e4, -0x00000006,0x23200a28,0x0a000300,0x00000304,0x00000006,0x49140a48,0x220002a4,0x000002e8, -0x00000001,0x29121248,0x00000380,0x00000000,0x00000006,0x23400a28,0x0a000320,0x00000324, -0x00000006,0x43600a4c,0x22000340,0x000002ec,0x00000001,0x29161248,0x00000360,0x00000000, -0x02000010,0x20002260,0x1e0008cf,0x00000000,0x00010020,0x34000004,0x0e001400,0x00002c40, -0x02000010,0x20002260,0x1e0008cd,0x00000000,0x00010020,0x34000004,0x0e001400,0x00002c20, -0x02000010,0x20002260,0x1e0008cc,0x00060006,0x00010020,0x34000004,0x0e001400,0x00000f50, -0x03200009,0x25d01208,0x16450908,0x00040004,0x20004d01,0x00001707,0x00000040,0x22000204, -0x060002a0,0x02290000,0x00000001,0x22e8060c,0x00000000,0x000f0003,0x00000001,0x22a41e68, -0x00000000,0x00010001,0x00000001,0x46001e88,0x00000000,0x007f007f,0x00600001,0x24c01648, -0x00000000,0x81818181,0x00000001,0x22e00228,0x000005d0,0x00000000,0x00000001,0x22e40228, -0x000005d4,0x00000000,0x00000005,0x44d01288,0x16000910,0x000f000f,0x00600001,0x25c01648, -0x00000000,0x7f7f7f7f,0x00210002,0x25d81a48,0x1e0002a4,0x00000000,0x03000010,0x20001260, -0x1e00090a,0x00000000,0x00200001,0x29501e08,0x00000000,0x00000000,0x0c600031,0x23c03a0c, -0x000002e0,0x00000200,0x00000040,0x22e00228,0x160005d0,0x00040004,0x00000001,0x22e40228, -0x000005d4,0x00000000,0x00010001,0x46001e88,0x00000000,0x00810081,0x06000010,0x20000200, -0x160005d4,0x00000000,0x0c600031,0x24003a0c,0x000002e0,0x00000200,0x00000040,0x22e00228, -0x160005d0,0x00080008,0x00000001,0x22e40228,0x000005d4,0x00000000,0x0c600031,0x24403a0c, -0x000002e0,0x00000200,0x00000040,0x22e00228,0x160005d0,0x000c000c,0x00000001,0x22e40228, -0x000005d4,0x00000000,0x0c600031,0x24803a0c,0x000002e0,0x00000200,0x00010020,0x34000004, -0x0e001400,0x00000060,0x20004d01,0x00001707,0x00000040,0x22000204,0x060002a0,0x02190000, -0x20086001,0x0f001700,0x00000040,0x22e40228,0x1e0005d4,0xffffffff,0x00000001,0x22e00228, -0x000005d0,0x00000000,0x0c600031,0x23003a0c,0x000002e0,0x00000200,0x00800001,0x25c0228c, -0x008d0300,0x00000000,0x06000010,0x20000200,0x160005d0,0x00000000,0x00010020,0x34000004, -0x0e001400,0x00000068,0x20004d01,0x00001707,0x00000040,0x22000204,0x060002a0,0x02290000, -0x00000001,0x22e8060c,0x00000000,0x000f0000,0x00000001,0x22e40228,0x000005d4,0x00000000, -0x00000040,0x22e00228,0x1e0005d0,0xffffffff,0x0c600031,0x23003a0c,0x000002e0,0x00000200, -0x00800001,0x24c02288,0x00600300,0x00000000,0x02000010,0x20000200,0x060005d8,0x00010001, -0x00010020,0x34000004,0x0e001400,0x00000070,0x20004d01,0x00001707,0x00000040,0x22000204, -0x060002a0,0x02190000,0x20086001,0x00001700,0x00000040,0x22e40228,0x1e0005d4,0xffffffff, -0x00000040,0x22e00228,0x1e0005d0,0xffffffff,0x0c600031,0x23003a0c,0x000002e0,0x00000200, -0x00400001,0x22c0228c,0x00690300,0x00000000,0x00000001,0x46002288,0x000002c0,0x00000000, -0x02000010,0x20002260,0x1e0004d0,0x00000000,0x00010020,0x34000004,0x0e001400,0x00000190, -0x00800001,0x22e02248,0x008d04c0,0x00000000,0x00800001,0x23002248,0x008d05c0,0x00000000, -0x03200010,0x20000200,0x164505d0,0x00000000,0x00000040,0x23601228,0x160005d8,0x00030003, -0x00200001,0x22c41648,0x00000000,0x00000000,0x00800040,0x23201248,0x124002e0,0x004002e2, -0x00000040,0x63800a88,0x12000360,0x000005da,0x00600040,0x23401248,0x12400320,0x00400322, -0x00400040,0x22b01248,0x12400340,0x00400342,0x00200040,0x22c01248,0x124002b0,0x004002b2, -0x00200040,0x22c01248,0x164502c0,0x00080008,0x00210001,0x22c41248,0x004502c0,0x00000000, -0x01000010,0x20002260,0x1e000380,0x00030003,0x00000040,0x23841228,0x120002c4,0x000002c6, -0x0000000c,0x23a00a08,0x22000384,0x00000380,0x00010001,0x23a01608,0x00000000,0x00800080, -0x00a00040,0x27402268,0x228d0400,0x000043a0,0x00a00040,0x26c02268,0x228d03c0,0x000043a0, -0x00a00040,0x27802268,0x228d0420,0x000043a0,0x00a00040,0x28402268,0x228d0480,0x000043a0, -0x00a00040,0x27c02268,0x228d0440,0x000043a0,0x00a00040,0x28002268,0x228d0460,0x000043a0, -0x00a00040,0x27002268,0x228d03e0,0x000043a0,0x00a00040,0x28802268,0x228d04a0,0x000043a0, -0x00000020,0x34000004,0x0e001400,0x00000460,0x02000010,0x20002260,0x1e0004d0,0x00010001, -0x00010020,0x34000004,0x0e001400,0x000000b0,0x201c5601,0x002e2c00,0x20145601,0x002e2800, -0x20185601,0x002e2a00,0x20005601,0x002e2600,0x00a00040,0x28802268,0x228d04a0,0x008d45a0, -0x00a00040,0x28402268,0x228d0480,0x008d4580,0x00a00040,0x27802268,0x228d0420,0x008d4520, -0x00a00040,0x27402268,0x228d0400,0x008d4500,0x00a00040,0x27c02268,0x228d0440,0x008d4540, -0x00a00040,0x28002268,0x228d0460,0x008d4560,0x00a00040,0x26c02268,0x228d03c0,0x008d44c0, -0x00a00040,0x27002268,0x228d03e0,0x008d44e0,0x00000020,0x34000004,0x0e001400,0x00000390, -0x02000010,0x20002260,0x1e0004d0,0x00020002,0x00010020,0x34000004,0x0e001400,0x000000f0, -0x00800001,0x62e02288,0x008d04c0,0x00000000,0x00800001,0x62e12288,0x008d04c0,0x00000000, -0x00800001,0x62e22288,0x008d04c0,0x00000000,0x00800001,0x62e32288,0x008d04c0,0x00000000, -0x20005601,0x00172607,0x20005601,0x00172a07,0x20005601,0x00172807,0x20005601,0x00172c07, -0x00a00040,0x27002268,0x228d03e0,0x008d44e0,0x00a00040,0x26c02268,0x228d03c0,0x008d44c0, -0x00a00040,0x28002268,0x228d0460,0x008d4560,0x00a00040,0x27c02268,0x228d0440,0x008d4540, -0x00a00040,0x27402268,0x228d0400,0x008d4500,0x00a00040,0x27802268,0x228d0420,0x008d4520, -0x00a00040,0x28402268,0x228d0480,0x008d4580,0x00a00040,0x28802268,0x228d04a0,0x008d45a0, -0x00000020,0x34000004,0x0e001400,0x00000280,0x02000010,0x20002260,0x1e0004d0,0x00090009, -0x00010020,0x34000004,0x0e001400,0x00000260,0x00800001,0x62e02288,0x008d04c0,0x00000000, -0x00800001,0x62e12288,0x008d04c0,0x00000000,0x00800001,0x62e22288,0x008d04c0,0x00000000, -0x00800001,0x62e32288,0x008d04c0,0x00000000,0x20005601,0x002e2600,0x20145601,0x002e2800, -0x20185601,0x002e2a00,0x201c5601,0x002e2c00,0x00a00040,0x23602268,0x228d04e0,0x008d0300, -0x00a00040,0x23202268,0x228d04c0,0x008d02e0,0x80800040,0x44e01a88,0x22400360,0x00004600, -0x80800040,0x44e11a88,0x22400362,0x00004600,0x80800040,0x44c01a88,0x22400320,0x00004600, -0x80800040,0x44c11a88,0x22400322,0x00004600,0x00a00040,0x23602268,0x228d0520,0x008d0300, -0x00a00040,0x23202268,0x228d0500,0x008d02e0,0x80800040,0x45201a88,0x22400360,0x00004600, -0x80800040,0x45211a88,0x22400362,0x00004600,0x80800040,0x45001a88,0x22400320,0x00004600, -0x80800040,0x45011a88,0x22400322,0x00004600,0x00a00040,0x23602268,0x228d0560,0x008d0300, -0x00a00040,0x23202268,0x228d0540,0x008d02e0,0x80800040,0x45601a88,0x22400360,0x00004600, -0x80800040,0x45611a88,0x22400362,0x00004600,0x80800040,0x45401a88,0x22400320,0x00004600, -0x80800040,0x45411a88,0x22400322,0x00004600,0x00a00040,0x23602268,0x228d05a0,0x008d0300, -0x00a00040,0x23202268,0x228d0580,0x008d02e0,0x80800040,0x45a01a88,0x22400360,0x00004600, -0x80800040,0x45a11a88,0x22400362,0x00004600,0x80800040,0x45801a88,0x22400320,0x00004600, -0x80800040,0x45811a88,0x22400322,0x00004600,0x00a00040,0x27002268,0x228d03e0,0x008d44e0, -0x00a00040,0x26c02268,0x228d03c0,0x008d44c0,0x00a00040,0x27802268,0x228d0420,0x008d4520, -0x00a00040,0x27402268,0x228d0400,0x008d4500,0x00a00040,0x28002268,0x228d0460,0x008d4560, -0x00a00040,0x27c02268,0x228d0440,0x008d4540,0x00a00040,0x28802268,0x228d04a0,0x008d45a0, -0x00a00040,0x28402268,0x228d0480,0x008d4580,0x00800040,0x22e01a68,0x1a4006c0,0x004006c2, -0x00800040,0x26c01a68,0x1a4006c0,0x004046c2,0x00800040,0x23001a68,0x1a400700,0x00400702, -0x00800040,0x26e01a68,0x1a400700,0x00404702,0x00800040,0x23401a68,0x1a400780,0x00400782, -0x00800040,0x23201a68,0x1a400740,0x00400742,0x00800040,0x27201a68,0x1a400780,0x00404782, -0x00800040,0x27001a68,0x1a400740,0x00404742,0x00800040,0x27a01a68,0x1a400880,0x00404882, -0x00800040,0x27801a68,0x1a400840,0x00404842,0x00800040,0x27601a68,0x1a400800,0x00404802, -0x00800040,0x27401a68,0x1a4007c0,0x004047c2,0x00a00008,0x24c01a68,0x1e8d06c0,0x00010001, -0x00a00008,0x25001a68,0x1e8d0700,0x00010001,0x00a00008,0x25801a68,0x1e8d0780,0x00010001, -0x00a00008,0x25401a68,0x1e8d0740,0x00010001,0x00800040,0x23601a68,0x1a4007c0,0x004007c2, -0x00800040,0x23c01a68,0x1a400880,0x00400882,0x00800040,0x23801a68,0x1a400800,0x00400802, -0x00800040,0x23a01a68,0x1a400840,0x00400842,0x00a00001,0x26c01a48,0x008d24c0,0x00000000, -0x00a00001,0x27001a48,0x008d2500,0x00000000,0x00a00001,0x27801a48,0x008d2580,0x00000000, -0x00a00001,0x27401a48,0x008d2540,0x00000000,0x00600040,0x43e01a68,0x1a6002e0,0x006002e4, -0x00600040,0x44001a68,0x1a600320,0x00600324,0x00600040,0x47e01a68,0x1a600320,0x00604324, -0x00600040,0x47c01a68,0x1a6002e0,0x006042e4,0x00600040,0x44201a68,0x1a600360,0x00600364, -0x00600040,0x48001a68,0x1a600360,0x00604364,0x00600040,0x48201a68,0x1a6003a0,0x006043a4, -0x00600040,0x44401a68,0x1a6003a0,0x006003a4,0x00600040,0x43e21a68,0x1a6002e2,0x006002e6, -0x00600040,0x44021a68,0x1a600322,0x00600326,0x00600040,0x47e21a68,0x1a600322,0x00604326, -0x00600040,0x47c21a68,0x1a6002e2,0x006042e6,0x00600040,0x44221a68,0x1a600362,0x00600366, -0x00600040,0x48021a68,0x1a600362,0x00604366,0x00600040,0x48221a68,0x1a6003a2,0x006043a6, -0x00600040,0x44421a68,0x1a6003a2,0x006003a6,0x00800040,0x23401a68,0x1a400780,0x00400782, -0x00800040,0x23201a68,0x1a400740,0x00400742,0x00800040,0x23001a68,0x1a400700,0x00400702, -0x00800040,0x22e01a68,0x1a4006c0,0x004006c2,0x00800040,0x24601a68,0x1a4003e0,0x004003e2, -0x00a00008,0x25c01a68,0x1e8d07c0,0x00010001,0x00a00008,0x26001a68,0x1e8d0800,0x00010001, -0x00800040,0x24801a68,0x1a400420,0x00400422,0x00800040,0x23801a68,0x1a400320,0x00400322, -0x00800040,0x23601a68,0x1a4002e0,0x004002e2,0x00800040,0x28401a68,0x1a4003e0,0x004043e2, -0x00800040,0x28601a68,0x1a400420,0x00404422,0x00a00001,0x27c01a48,0x008d25c0,0x00000000, -0x00a00001,0x28001a48,0x008d2600,0x00000000,0x00800040,0x24a01a68,0x1a400460,0x00400462, -0x00800040,0x28801a68,0x1a400460,0x00404462,0x00800040,0x23a01a48,0x1a400360,0x00400362, -0x00a00008,0x26401a68,0x1e8d0840,0x00010001,0x0080000c,0x24401a28,0x1e8d04a0,0x00010001, -0x00800040,0x23801a68,0x1a400800,0x00400802,0x00800040,0x23601a68,0x1a4007c0,0x004007c2, -0x00a00008,0x26801a68,0x1e8d0880,0x00010001,0x00a00001,0x28401a48,0x008d2640,0x00000000, -0x00800001,0x44c00a48,0x008d2440,0x00000000,0x00800040,0x23c01a48,0x1a400360,0x00400362, -0x00a00001,0x28801a48,0x008d2680,0x00000000,0x00800040,0x24001a48,0x1a400840,0x00400842, -0x00800001,0x24801248,0x004004c0,0x00000000,0x00800040,0x23a01248,0x128d03a0,0x008d03c0, -0x00000041,0x23801208,0x160000dc,0x08a008a0,0x00000001,0x29181608,0x00000000,0x00000000, -0x00800040,0x25001a48,0x128d0880,0x008d0480,0x00800040,0x23a01248,0x128d03a0,0x008d0400, -0x00000040,0x23c00208,0x16000380,0x00800080,0x00800040,0x23a01248,0x128d03a0,0x008d0500, -0x0000000c,0x23e00208,0x160003c0,0x00080008,0x04600002,0x22e01248,0x128d03a0,0x008d03b0, -0x00000041,0x23a01208,0x160000dc,0x03c003c0,0x00600001,0x23001268,0x008d02e0,0x00000000, -0x00000040,0x22e00208,0x160003a0,0x00800080,0x04400002,0x22b01a48,0x1a690300,0x00690308, -0x0000000c,0x291c0208,0x160002e0,0x00080008,0x00400001,0x22c01268,0x006902b0,0x00000000, -0x04200002,0x23201a48,0x1a4502c0,0x004502c4,0x04000002,0x23401248,0x12000320,0x00000322, -0x00200001,0x23601248,0x00000340,0x00000000,0x04000002,0x29541208,0x02000360,0x00000954, -0x04000010,0x20000200,0x02000954,0x000003e0,0x00010020,0x34000004,0x0e001400,0x00000060, -0x04000010,0x20000200,0x02000954,0x0000091c,0x00010020,0x34000004,0x0e001400,0x00000020, -0x00000001,0x29181e28,0x00000000,0x00020002,0x00000020,0x34000004,0x0e001400,0x00000010, -0x00000001,0x29181e28,0x00000000,0x00010001,0x00000001,0x29180a08,0x00000918,0x00000000, -0x00000001,0x62a4028c,0x00000918,0x00000000,0x00000001,0x48ce2288,0x000002a4,0x00000000, -0x00000020,0x34000004,0x0e001400,0x00001cb0,0x02000010,0x20002260,0x1e0008cc,0x00030003, -0x00010020,0x34000004,0x0e001400,0x00001c90,0x00200009,0x27901208,0x16450908,0x00040004, -0x20004d01,0x00001707,0x00000040,0x22000204,0x060002a0,0x02290000,0x00000001,0x22e8060c, -0x00000000,0x000f0003,0x03000010,0x20001260,0x1e00090a,0x00000000,0x00000001,0x47801e88, -0x00000000,0x007f007f,0x00600001,0x27401648,0x00000000,0x7f7f7f7f,0x00000001,0x22e00228, -0x00000790,0x00000000,0x00000001,0x22e40228,0x00000794,0x00000000,0x00000005,0x491b1288, -0x16000916,0x000f000f,0x00000005,0x491a1288,0x16000914,0x000f000f,0x00010001,0x47801e88, -0x00000000,0x00810081,0x01000010,0x20001260,0x1e000908,0x00000000,0x00000005,0x49191288, -0x16000912,0x000f000f,0x00000005,0x49181288,0x16000910,0x000f000f,0x0c600031,0x23003a0c, -0x000002e0,0x00000200,0x00000040,0x22e00228,0x16000790,0x00040004,0x00000001,0x22e40228, -0x00000794,0x00000000,0x00600001,0x27c01648,0x00000000,0x81818181,0x00400001,0x27501648, -0x00000000,0x7f7f7f7f,0x0c600031,0x23403a0c,0x000002e0,0x00000200,0x00000040,0x22e00228, -0x16000790,0x00080008,0x00000001,0x22e40228,0x00000794,0x00000000,0x0c600031,0x23803a0c, -0x000002e0,0x00000200,0x00000040,0x22e00228,0x16000790,0x000c000c,0x00000001,0x22e40228, -0x00000794,0x00000000,0x60204101,0x00192d05,0x60004101,0x00182805,0x0c600031,0x23c03a0c, -0x000002e0,0x00000200,0x60204101,0x00182905,0x60004101,0x00192c05,0x00000001,0x27100208, -0x0000031c,0x00000000,0x00800001,0x27002288,0x00600343,0x00000000,0x60104101,0x001b2c05, -0x60244101,0x001b2d05,0x00000001,0x27140208,0x0000035c,0x00000000,0x60244101,0x001a2905, -0x60104101,0x001a2805,0x60004101,0x001d2e05,0x60204101,0x001c2b05,0x60204101,0x001d2f05, -0x60004101,0x001c2a05,0x00000001,0x27180208,0x0000039c,0x00000000,0x60244101,0x001f2f05, -0x60104101,0x001f2e05,0x00000001,0x271c0208,0x000003dc,0x00000000,0x60104101,0x001e2a05, -0x60244101,0x001e2b05,0x00010020,0x34000004,0x0e001400,0x00000068,0x20004d01,0x00001707, -0x00000040,0x22000204,0x060002a0,0x02290000,0x00000001,0x22e8060c,0x00000000,0x000f0000, -0x00000001,0x22e40228,0x00000794,0x00000000,0x00000040,0x22e00228,0x1e000790,0xffffffff, -0x0c600031,0x23003a0c,0x000002e0,0x00000200,0x00800001,0x27c02288,0x00600300,0x00000000, -0x01000010,0x20001260,0x1e00090a,0x00000000,0x00010020,0x34000004,0x0e001400,0x00000110, -0x20004d01,0x00001707,0x00000040,0x22000204,0x060002a0,0x02190000,0x20086001,0x0f001700, -0x00000040,0x22e40228,0x1e000794,0xffffffff,0x00000001,0x22e00228,0x00000790,0x00000000, -0x00000040,0x22a41228,0x1e00090c,0xffffffff,0x0c600031,0x23003a0c,0x000002e0,0x00000200, -0x01000010,0x20001220,0x0a000908,0x000002a4,0x00800001,0x2740228c,0x008d0300,0x00000000, -0x00010020,0x34000004,0x0e001400,0x00000070,0x20004d01,0x00001707,0x00000040,0x22000204, -0x060002a0,0x02190000,0x20086001,0x07001700,0x00000040,0x22e40228,0x1e000794,0xffffffff, -0x00000040,0x22e00228,0x16000790,0x00100010,0x0c600031,0x23003a0c,0x000002e0,0x00000200, -0x00600001,0x2750228c,0x008d0300,0x00000000,0x00000020,0x34000004,0x0e001400,0x00000010, -0x00600001,0x27502288,0x0000074f,0x00000000,0x01000010,0x20001260,0x1e000908,0x00000000, -0x00010020,0x34000004,0x0e001400,0x00000090,0x01000010,0x20001260,0x1e00090a,0x00000000, -0x00010020,0x34000004,0x0e001400,0x00000070,0x20004d01,0x00001707,0x00000040,0x22000204, -0x060002a0,0x02190000,0x20086001,0x00001700,0x00000040,0x22e40228,0x1e000794,0xffffffff, -0x00000040,0x22e00228,0x1e000790,0xffffffff,0x0c600031,0x23003a0c,0x000002e0,0x00000200, -0x00400001,0x22c0228c,0x00690300,0x00000000,0x00000001,0x47802288,0x000002c0,0x00000000, -0x00400001,0x27d01608,0x00000000,0x00000000,0x00000001,0x47581e88,0x00000000,0x00000000, -0x00200001,0x29501608,0x00000000,0x00000000,0x00600001,0x27902668,0x00000000,0x01234567, -0x00000001,0x275c1608,0x00000000,0x00000000,0x02000010,0x20000200,0x1600075c,0x00000000, -0x00010020,0x34000004,0x0e001400,0x00000038,0x00200001,0x29500208,0x004507c0,0x00000000, -0x60104101,0x003a3e05,0x00000001,0x47582288,0x00000780,0x00000000,0x00000020,0x34000004, -0x0e001400,0x00000118,0x02000010,0x20000200,0x1600075c,0x00010001,0x00010020,0x34000004, -0x0e001400,0x00000040,0x00400001,0x27d00208,0x00690748,0x00000000,0x00000001,0x47582288, -0x00000747,0x00000000,0x00200001,0x29500208,0x00450700,0x00000000,0x00000020,0x34000004, -0x0e001400,0x000000b8,0x02000010,0x20000200,0x1600075c,0x00020002,0x00010020,0x34000004, -0x0e001400,0x00000038,0x00200001,0x29500208,0x004507c8,0x00000000,0x00000001,0x47582288, -0x000007c7,0x00000000,0x60244101,0x00383e05,0x00000020,0x34000004,0x0e001400,0x00000060, -0x02000010,0x20000200,0x1600075c,0x00030003,0x00010020,0x34000004,0x0e001400,0x00000040, -0x00200001,0x27d80208,0x00450750,0x00000000,0x00200001,0x29500208,0x00450708,0x00000000, -0x00200001,0x27d00208,0x00450718,0x00000000,0x00000001,0x47582288,0x00000717,0x00000000, -0x00000040,0x22001240,0x1600075c,0x09180918,0x02000010,0x20002220,0x1e008000,0x00000000, -0x00010020,0x34000004,0x0e001400,0x000000b0,0x00200001,0x22e00208,0x004507d0,0x00000000, -0x00200001,0x22e80208,0x00450950,0x00000000,0x00600040,0x23002248,0x228d02e0,0x008d02e8, -0x00400040,0x23001248,0x12690300,0x00690308,0x00200040,0x23001248,0x12450300,0x00450304, -0x00000040,0x22a41208,0x12000300,0x00000302,0x00000040,0x22c00208,0x160002a4,0x00080008, -0x0000000c,0x23200208,0x160002c0,0x00040004,0x00a00001,0x23402288,0x00000320,0x00000000, -0x00a00001,0x23602288,0x00000320,0x00000000,0x00000020,0x34000004,0x0e001400,0x00000180, -0x00000040,0x22001240,0x1600075c,0x09180918,0x02000010,0x20002220,0x1e008000,0x00010001, -0x00010020,0x34000004,0x0e001400,0x00000090,0x00200001,0x23400208,0x004507d0,0x00000000, -0x00200001,0x23480208,0x00450340,0x00000000,0x00200001,0x23580208,0x00450348,0x00000000, -0x00200001,0x23500208,0x00450348,0x00000000,0x00200001,0x23680208,0x00450348,0x00000000, -0x00200001,0x23600208,0x00450348,0x00000000,0x00200001,0x23700208,0x00450348,0x00000000, -0x00200001,0x23780208,0x00450348,0x00000000,0x00000020,0x34000004,0x0e001400,0x000000c0, -0x00000040,0x22001240,0x1600075c,0x09180918,0x02000010,0x20002220,0x1e008000,0x00020002, -0x00010020,0x34000004,0x0e001400,0x00000090,0x00200001,0x22b00208,0x00450950,0x00000000, -0x00600001,0x23502288,0x000002b2,0x00000000,0x00600001,0x23402288,0x000002b0,0x00000000, -0x00600001,0x23582288,0x000002b3,0x00000000,0x00600001,0x23702288,0x000002b6,0x00000000, -0x00600001,0x23602288,0x000002b4,0x00000000,0x00600001,0x23682288,0x000002b5,0x00000000, -0x00600001,0x23482288,0x000002b1,0x00000000,0x00600001,0x23782288,0x000002b7,0x00000000, -0x00000040,0x22001240,0x1600075c,0x09180918,0x02000010,0x20002220,0x1e008000,0x00030003, -0x00010020,0x34000004,0x0e001400,0x00000108,0x60204101,0x003e1705,0x00800001,0x22f02288, -0x000002ef,0x00000000,0x00800041,0x23002228,0x1e8d02e1,0x00020002,0x00800040,0x23402228, -0x0a8d07d0,0x008d0300,0x00800040,0x23800a28,0x228d0340,0x008d02e2,0x00800040,0x23c00a28, -0x1e8d0380,0x00020002,0x0080000c,0x64000a88,0x1e8d03c0,0x00020002,0x00800001,0x24402288, -0x00600400,0x00000000,0x00600001,0x23502288,0x008d0442,0x00000000,0x00200001,0x23400208, -0x00450440,0x00000000,0x00600001,0x23582288,0x008d0443,0x00000000,0x00600001,0x23702288, -0x008d0446,0x00000000,0x00200001,0x23600208,0x00450444,0x00000000,0x00600001,0x23682288, -0x008d0445,0x00000000,0x00600001,0x23482288,0x008d0441,0x00000000,0x00600001,0x23782288, -0x008d0447,0x00000000,0x00000020,0x34000004,0x0e001400,0x00000a58,0x00000040,0x22001240, -0x1600075c,0x09180918,0x02000010,0x20002220,0x1e008000,0x00040004,0x00010020,0x34000004, -0x0e001400,0x00000130,0x00600040,0x22001240,0x168d0790,0x09500950,0x00600001,0x22e02288, -0x01e08000,0x00000000,0x00000001,0x42e82288,0x00000758,0x00000000,0x00600001,0x22e92288, -0x008d07d0,0x00000000,0x00800041,0x23002228,0x1e8d02e1,0x00020002,0x00800040,0x23402228, -0x0a8d02e0,0x008d0300,0x00800040,0x23800a28,0x228d0340,0x008d02e2,0x00800040,0x23c00a28, -0x1e8d0380,0x00020002,0x0080000c,0x64000a88,0x1e8d03c0,0x00020002,0x00800001,0x24402288, -0x00600400,0x00000000,0x00600001,0x23502288,0x008d0445,0x00000000,0x00600001,0x23402288, -0x008d0447,0x00000000,0x00200001,0x23580208,0x00450444,0x00000000,0x00600001,0x23702288, -0x008d0441,0x00000000,0x00600001,0x23602288,0x008d0443,0x00000000,0x00600001,0x23682288, -0x008d0442,0x00000000,0x00600001,0x23482288,0x008d0446,0x00000000,0x00200001,0x23780208, -0x00450440,0x00000000,0x00000020,0x34000004,0x0e001400,0x000008f8,0x00000040,0x22001240, -0x1600075c,0x09180918,0x02000010,0x20002220,0x1e008000,0x00050005,0x00010020,0x34000004, -0x0e001400,0x00000190,0x00600040,0x22001240,0x168d0790,0x09500950,0x00600001,0x22e02288, -0x01e08000,0x00000000,0x00000001,0x42e82288,0x00000758,0x00000000,0x00600001,0x22e92288, -0x008d07d0,0x00000000,0x00800041,0x23002228,0x1e8d02e1,0x00020002,0x00600040,0x24602228, -0x228d02e8,0x008d07d0,0x00800040,0x23402228,0x0a8d02e0,0x008d0300,0x00600040,0x24800a28, -0x1e8d0460,0x00010001,0x00800040,0x23800a28,0x228d0340,0x008d02e2,0x0060000c,0x64a00a88, -0x1e8d0480,0x00010001,0x00800040,0x23c00a28,0x1e8d0380,0x00020002,0x00600001,0x44c82288, -0x006004a0,0x00000000,0x0080000c,0x64000a88,0x1e8d03c0,0x00020002,0x00800001,0x24402288, -0x00600400,0x00000000,0x00200001,0x24c00208,0x00450440,0x00000000,0x00600001,0x44c92288, -0x008d0448,0x00000000,0x00600001,0x23602288,0x004004c4,0x00000000,0x00600001,0x23702288, -0x004004c2,0x00000000,0x00600001,0x23582288,0x004004c5,0x00000000,0x00600001,0x23402288, -0x004004c8,0x00000000,0x00600001,0x23502288,0x004004c6,0x00000000,0x00600001,0x23482288, -0x004004c7,0x00000000,0x00600001,0x23682288,0x004004c3,0x00000000,0x00600001,0x23782288, -0x004004c1,0x00000000,0x00000020,0x34000004,0x0e001400,0x00000738,0x00000040,0x22001240, -0x1600075c,0x09180918,0x02000010,0x20002220,0x1e008000,0x00080008,0x00010020,0x34000004, -0x0e001400,0x00000168,0x60204101,0x003e1705,0x00800001,0x22f02288,0x000002ef,0x00000000, -0x00600040,0x24602228,0x228d02e0,0x008d02e1,0x00800041,0x23002228,0x1e8d02e1,0x00020002, -0x00600040,0x24800a28,0x1e8d0460,0x00010001,0x00800040,0x23402228,0x0a8d07d0,0x008d0300, -0x0060000c,0x64a00a88,0x1e8d0480,0x00010001,0x00800040,0x23800a28,0x228d0340,0x008d02e2, -0x00600001,0x44c02288,0x006004a0,0x00000000,0x00800040,0x23c00a28,0x1e8d0380,0x00020002, -0x0080000c,0x64000a88,0x1e8d03c0,0x00020002,0x00800001,0x24402288,0x00600400,0x00000000, -0x00200001,0x24d00208,0x00450448,0x00000000,0x00600001,0x44c12288,0x008d0440,0x00000000, -0x00200001,0x23480208,0x00450440,0x00000000,0x00600001,0x23602288,0x004004c4,0x00000000, -0x00600001,0x23702288,0x004004c6,0x00000000,0x00600001,0x23582288,0x004004c3,0x00000000, -0x00600001,0x23402288,0x004004c0,0x00000000,0x00600001,0x23502288,0x004004c2,0x00000000, -0x00600001,0x23682288,0x004004c5,0x00000000,0x00600001,0x23782288,0x004004c7,0x00000000, -0x00000020,0x34000004,0x0e001400,0x000005a0,0x00000040,0x22001240,0x1600075c,0x09180918, -0x02000010,0x20002220,0x1e008000,0x00060006,0x00010020,0x34000004,0x0e001400,0x000001a0, -0x00600040,0x22001240,0x168d0790,0x09500950,0x00600001,0x22e02288,0x01e08000,0x00000000, -0x00000001,0x42e82288,0x00000758,0x00000000,0x00600001,0x22e92288,0x008d07d0,0x00000000, -0x00200001,0x23000208,0x004502e0,0x00000000,0x00800041,0x23202228,0x1e8d02e1,0x00020002, -0x00600040,0x24602228,0x228d0300,0x008d02e1,0x00800040,0x23602228,0x0a8d02e0,0x008d0320, -0x00600040,0x24800a28,0x1e8d0460,0x00010001,0x00800040,0x23a00a28,0x228d0360,0x008d02e2, -0x0060000c,0x64a00a88,0x1e8d0480,0x00010001,0x00800040,0x23e00a28,0x1e8d03a0,0x00020002, -0x00600001,0x44c02288,0x006004a0,0x00000000,0x0080000c,0x64200a88,0x1e8d03e0,0x00020002, -0x00800001,0x23102288,0x00600420,0x00000000,0x00600001,0x44c12288,0x008d0310,0x00000000, -0x00200001,0x24d00208,0x00450318,0x00000000,0x00600001,0x23602288,0x008d04c6,0x00000000, -0x00200001,0x23580208,0x004504c8,0x00000000,0x00600001,0x23702288,0x008d04c2,0x00000000, -0x00200001,0x23680208,0x004504c4,0x00000000,0x00200001,0x23780208,0x004504c0,0x00000000, -0x00600001,0x23402288,0x008d04ce,0x00000000,0x00600001,0x23502288,0x008d04ca,0x00000000, -0x00200001,0x23480208,0x004504cc,0x00000000,0x00000020,0x34000004,0x0e001400,0x000003d0, -0x00000040,0x22001240,0x1600075c,0x09180918,0x02000010,0x20002220,0x1e008000,0x00070007, -0x00010020,0x34000004,0x0e001400,0x000003a0,0x00200001,0x22e00208,0x00450950,0x00000000, -0x00600001,0x22e82288,0x000002e7,0x00000000,0x00600041,0x23602228,0x1e8d02e1,0x00020002, -0x00600040,0x23002228,0x228d0950,0x008d02e1,0x00600040,0x23802228,0x0a8d0950,0x008d0360, -0x00600040,0x23200a28,0x1e8d0300,0x00010001,0x00a00001,0x23602288,0x00000957,0x00000000, -0x00600040,0x23a00a28,0x228d0380,0x008d02e2,0x0060000c,0x63400a88,0x1e8d0320,0x00010001, -0x00600040,0x23c00a28,0x1e8d03a0,0x00020002,0x00600001,0x22b02288,0x00600340,0x00000000, -0x00a00001,0x23402288,0x00000957,0x00000000,0x0060000c,0x63e00a88,0x1e8d03c0,0x00020002, -0x00000001,0x43642288,0x000002b6,0x00000000,0x00000001,0x434a2288,0x000002b2,0x00000000, -0x00000001,0x434c2288,0x000002b3,0x00000000,0x00000001,0x435c2288,0x000002b5,0x00000000, -0x00000001,0x43542288,0x000002b4,0x00000000,0x00000001,0x43482288,0x000002b1,0x00000000, -0x00600001,0x22c02288,0x006003e0,0x00000000,0x00000001,0x435e2288,0x00000364,0x00000000, -0x00000001,0x43442288,0x0000034a,0x00000000,0x00000001,0x43462288,0x0000034c,0x00000000, -0x00000001,0x43562288,0x0000035c,0x00000000,0x00000001,0x434e2288,0x00000354,0x00000000, -0x00000001,0x43402288,0x000002b0,0x00000000,0x00000001,0x43512288,0x000002c2,0x00000000, -0x00000001,0x434d2288,0x000002c3,0x00000000,0x00000001,0x435d2288,0x000002c5,0x00000000, -0x00000001,0x43552288,0x000002c4,0x00000000,0x00000001,0x43652288,0x000002c6,0x00000000, -0x00000001,0x43492288,0x000002c1,0x00000000,0x00000001,0x43422288,0x00000348,0x00000000, -0x00000001,0x434b2288,0x00000351,0x00000000,0x00000001,0x43472288,0x0000034d,0x00000000, -0x00000001,0x43572288,0x0000035d,0x00000000,0x00000001,0x434f2288,0x00000355,0x00000000, -0x00000001,0x435f2288,0x00000365,0x00000000,0x00000001,0x43412288,0x000002c0,0x00000000, -0x00000001,0x43702288,0x0000035e,0x00000000,0x00000001,0x436a2288,0x0000035e,0x00000000, -0x00000001,0x43502288,0x00000344,0x00000000,0x00000001,0x43582288,0x00000346,0x00000000, -0x00000001,0x43522288,0x00000346,0x00000000,0x00000001,0x43622288,0x00000356,0x00000000, -0x00000001,0x43682288,0x00000356,0x00000000,0x00000001,0x435a2288,0x0000034e,0x00000000, -0x00000001,0x43602288,0x0000034e,0x00000000,0x00000001,0x43432288,0x00000349,0x00000000, -0x00000001,0x43452288,0x0000034b,0x00000000,0x00000001,0x43592288,0x00000347,0x00000000, -0x00000001,0x43532288,0x00000347,0x00000000,0x00000001,0x43692288,0x00000357,0x00000000, -0x00000001,0x43632288,0x00000357,0x00000000,0x00000001,0x435b2288,0x0000034f,0x00000000, -0x00000001,0x43612288,0x0000034f,0x00000000,0x00000001,0x43712288,0x0000035f,0x00000000, -0x00000001,0x436b2288,0x0000035f,0x00000000,0x02000010,0x20000200,0x1600075c,0x00000000, -0x00010020,0x34000004,0x0e001400,0x00000050,0x00400001,0x26200208,0x00400360,0x00000000, -0x00400001,0x26000208,0x00400340,0x00000000,0x00400001,0x26300208,0x00400364,0x00000000, -0x00400001,0x26100208,0x00400344,0x00000000,0x00000020,0x34000004,0x0e001400,0x00000140, -0x02000010,0x20000200,0x1600075c,0x00010001,0x00010020,0x34000004,0x0e001400,0x00000050, -0x00400001,0x26600208,0x00400360,0x00000000,0x00400001,0x26400208,0x00400340,0x00000000, -0x00400001,0x26700208,0x00400364,0x00000000,0x00400001,0x26500208,0x00400344,0x00000000, -0x00000020,0x34000004,0x0e001400,0x000000d0,0x02000010,0x20000200,0x1600075c,0x00020002, -0x00010020,0x34000004,0x0e001400,0x00000050,0x00400001,0x26a00208,0x00400360,0x00000000, -0x00400001,0x26800208,0x00400340,0x00000000,0x00400001,0x26b00208,0x00400364,0x00000000, -0x00400001,0x26900208,0x00400344,0x00000000,0x00000020,0x34000004,0x0e001400,0x00000060, -0x02000010,0x20000200,0x1600075c,0x00030003,0x00010020,0x34000004,0x0e001400,0x00000040, -0x00400001,0x26e00208,0x00400360,0x00000000,0x00400001,0x26c00208,0x00400340,0x00000000, -0x00400001,0x26f00208,0x00400364,0x00000000,0x00400001,0x26d00208,0x00400344,0x00000000, -0x00000040,0x275c0208,0x1600075c,0x00010001,0x05000010,0x20000200,0x1600075c,0x00040004, -0x00010020,0x34000004,0x0e001400,0xffffeec0,0x00a00040,0x22e02268,0x228d0500,0x008d4600, -0x00a00040,0x23202268,0x228d0520,0x008d4620,0x00a00040,0x23602268,0x228d0540,0x008d4640, -0x00a00040,0x23a02268,0x228d0560,0x008d4660,0x00800040,0x24e01a68,0x1a4002e0,0x004002e2, -0x00a00040,0x24602268,0x228d05c0,0x008d46c0,0x00a00040,0x23e02268,0x228d0580,0x008d4680, -0x00a00040,0x24a02268,0x228d05e0,0x008d46e0,0x00a00040,0x24202268,0x228d05a0,0x008d46a0, -0x00800040,0x22e01a68,0x1a4002e0,0x004042e2,0x00800040,0x25001a68,0x1a400320,0x00400322, -0x00800040,0x23001a68,0x1a400320,0x00404322,0x00800040,0x25201a68,0x1a400360,0x00400362, -0x00800040,0x25401a68,0x1a4003a0,0x004003a2,0x00800040,0x23401a68,0x1a4003a0,0x004043a2, -0x00800040,0x23201a68,0x1a400360,0x00404362,0x00800040,0x23c01a68,0x1a4004a0,0x004044a2, -0x00800040,0x23a01a68,0x1a400460,0x00404462,0x00800040,0x23801a68,0x1a400420,0x00404422, -0x00800040,0x23601a68,0x1a4003e0,0x004043e2,0x00a00008,0x26c01a68,0x1e8d02e0,0x00010001, -0x00a00008,0x27001a68,0x1e8d0320,0x00010001,0x00a00008,0x27801a68,0x1e8d03a0,0x00010001, -0x00a00008,0x27401a68,0x1e8d0360,0x00010001,0x00800040,0x25601a68,0x1a4003e0,0x004003e2, -0x00800040,0x25c01a68,0x1a4004a0,0x004004a2,0x00800040,0x25801a68,0x1a400420,0x00400422, -0x00800040,0x25a01a68,0x1a400460,0x00400462,0x00a00001,0x22e01a48,0x008d26c0,0x00000000, -0x00a00001,0x23201a48,0x008d2700,0x00000000,0x00a00001,0x23a01a48,0x008d2780,0x00000000, -0x00a00001,0x23601a48,0x008d2740,0x00000000,0x00600040,0x45e01a68,0x1a6004e0,0x006004e4, -0x00600040,0x46001a68,0x1a600520,0x00600524,0x00600040,0x44001a68,0x1a600520,0x00604524, -0x00600040,0x43e01a68,0x1a6004e0,0x006044e4,0x00600040,0x46201a68,0x1a600560,0x00600564, -0x00600040,0x44201a68,0x1a600560,0x00604564,0x00600040,0x44401a68,0x1a6005a0,0x006045a4, -0x00600040,0x46401a68,0x1a6005a0,0x006005a4,0x00600040,0x45e21a68,0x1a6004e2,0x006004e6, -0x00600040,0x46021a68,0x1a600522,0x00600526,0x00600040,0x44021a68,0x1a600522,0x00604526, -0x00600040,0x43e21a68,0x1a6004e2,0x006044e6,0x00600040,0x46221a68,0x1a600562,0x00600566, -0x00600040,0x44221a68,0x1a600562,0x00604566,0x00600040,0x44421a68,0x1a6005a2,0x006045a6, -0x00600040,0x46421a68,0x1a6005a2,0x006005a6,0x00800040,0x25401a68,0x1a4003a0,0x004003a2, -0x00800040,0x25201a68,0x1a400360,0x00400362,0x00800040,0x25001a68,0x1a400320,0x00400322, -0x00800040,0x24e01a68,0x1a4002e0,0x004002e2,0x00800040,0x26601a68,0x1a4005e0,0x004005e2, -0x00a00008,0x27c01a68,0x1e8d03e0,0x00010001,0x00a00008,0x28001a68,0x1e8d0420,0x00010001, -0x00800040,0x26801a68,0x1a400620,0x00400622,0x00800040,0x25801a68,0x1a400520,0x00400522, -0x00800040,0x25601a68,0x1a4004e0,0x004004e2,0x00800040,0x24601a68,0x1a4005e0,0x004045e2, -0x00800040,0x24801a68,0x1a400620,0x00404622,0x00a00001,0x23e01a48,0x008d27c0,0x00000000, -0x00a00001,0x24201a48,0x008d2800,0x00000000,0x00800040,0x26a01a68,0x1a400660,0x00400662, -0x00800040,0x24a01a68,0x1a400660,0x00404662,0x00800040,0x25a01a48,0x1a400560,0x00400562, -0x00a00008,0x28401a68,0x1e8d0460,0x00010001,0x0080000c,0x26401a28,0x1e8d06a0,0x00010001, -0x00800040,0x25801a68,0x1a400420,0x00400422,0x00800040,0x25601a68,0x1a4003e0,0x004003e2, -0x00a00008,0x28801a68,0x1e8d04a0,0x00010001,0x00a00001,0x24601a48,0x008d2840,0x00000000, -0x00800001,0x46c00a48,0x008d2640,0x00000000,0x00800040,0x25c01a48,0x1a400560,0x00400562, -0x00a00001,0x24a01a48,0x008d2880,0x00000000,0x00800040,0x26001a48,0x1a400460,0x00400462, -0x00800001,0x26801248,0x004006c0,0x00000000,0x00800040,0x25a01248,0x128d05a0,0x008d05c0, -0x00000041,0x25801208,0x160000dc,0x08a008a0,0x00200001,0x22b01e08,0x00000000,0x00000000, -0x00800040,0x27001a48,0x128d04a0,0x008d0680,0x00800040,0x25a01248,0x128d05a0,0x008d0600, -0x00000040,0x25c00208,0x16000580,0x00800080,0x00800040,0x25a01248,0x128d05a0,0x008d0700, -0x0000000c,0x22e00208,0x160005c0,0x00080008,0x04600002,0x24e01248,0x128d05a0,0x008d05b0, -0x00600001,0x25001268,0x008d04e0,0x00000000,0x04400002,0x22c01a48,0x1a690500,0x00690508, -0x00400001,0x25201268,0x006902c0,0x00000000,0x04200002,0x22a41a48,0x1a450520,0x00450524, -0x04000002,0x25401248,0x120002a4,0x000002a6,0x00200001,0x25601248,0x00000540,0x00000000, -0x04000002,0x22b41208,0x02000560,0x000002b4,0x04000010,0x20000200,0x020002b4,0x000002e0, -0x00010020,0x34000004,0x0e001400,0x00000020,0x00000001,0x29181608,0x00000000,0x00010001, -0x00000020,0x34000004,0x0e001400,0x00000010,0x00000001,0x29181608,0x00000000,0x00000000, -0x00000001,0x62a4028c,0x00000918,0x00000000,0x00000001,0x48ce2288,0x000002a4,0x00000000, -0x01000010,0x20002260,0x1e0008cf,0x00000000,0x00010020,0x34000004,0x0e001400,0x00000360, -0x02000010,0x20002260,0x1e0008cc,0x00090009,0x00010020,0x34000004,0x0e001400,0x00000160, -0x00000041,0x22a41228,0x160000de,0x06400640,0x00000041,0x22e41228,0x160000de,0x03800380, -0x00000040,0x22c00a28,0x1e0002a4,0x00800080,0x00000040,0x23000a28,0x1e0002e4,0x00800080, -0x0000000c,0x22e00a08,0x1e0002c0,0x00080008,0x0000000c,0x29180a08,0x1e000300,0x00080008, -0x04000010,0x20001200,0x020008fc,0x000002e0,0x00010020,0x34000004,0x0e001400,0x000000a0, -0x04000010,0x20001200,0x020008fc,0x00000918,0x00010020,0x34000004,0x0e001400,0x00000060, -0x04000010,0x20001200,0x020008fc,0x00000918,0x00010020,0x34000004,0x0e001400,0x00000020, -0x00000001,0x29181e28,0x00000000,0x00030003,0x00000020,0x34000004,0x0e001400,0x00000050, -0x00000001,0x29181e28,0x00000000,0x00020002,0x00000020,0x34000004,0x0e001400,0x00000030, -0x00000001,0x29181e28,0x00000000,0x00010001,0x00000020,0x34000004,0x0e001400,0x00000010, -0x00000001,0x29181e28,0x00000000,0x00000000,0x00000001,0x62a40a8c,0x00000918,0x00000000, -0x00000001,0x48ce2288,0x000002a4,0x00000000,0x00000020,0x34000004,0x0e001400,0x000001e0, -0x02000010,0x20002260,0x1e0008cc,0x00060006,0x00010020,0x34000004,0x0e001400,0x00000120, -0x00000041,0x22a41228,0x160000de,0x06400640,0x00000041,0x22e41228,0x160000de,0x03800380, -0x00000040,0x22c00a28,0x1e0002a4,0x00800080,0x00000040,0x23000a28,0x1e0002e4,0x00800080, -0x0000000c,0x22e00a08,0x1e0002c0,0x00080008,0x0000000c,0x29180a08,0x1e000300,0x00080008, -0x04000010,0x20001200,0x020008fc,0x000002e0,0x00010020,0x34000004,0x0e001400,0x00000060, -0x04000010,0x20001200,0x020008fc,0x00000918,0x00010020,0x34000004,0x0e001400,0x00000020, -0x00000001,0x29181e28,0x00000000,0x00020002,0x00000020,0x34000004,0x0e001400,0x00000030, -0x00000001,0x29181e28,0x00000000,0x00010001,0x00000020,0x34000004,0x0e001400,0x00000010, -0x00000001,0x29181e28,0x00000000,0x00000000,0x00000001,0x62a40a8c,0x00000918,0x00000000, -0x00000001,0x48ce2288,0x000002a4,0x00000000,0x00000020,0x34000004,0x0e001400,0x000000a0, -0x00000041,0x22a41228,0x160000de,0x06400640,0x00000040,0x22c00a28,0x1e0002a4,0x00800080, -0x0000000c,0x22e00a08,0x1e0002c0,0x00080008,0x04000010,0x20001200,0x020008fc,0x000002e0, -0x00010020,0x34000004,0x0e001400,0x00000020,0x00000001,0x29181e28,0x00000000,0x00010001, -0x00000020,0x34000004,0x0e001400,0x00000010,0x00000001,0x29181e28,0x00000000,0x00000000, -0x00000001,0x62a40a8c,0x00000918,0x00000000,0x00000001,0x48ce2288,0x000002a4,0x00000000, -0x01000010,0x20002260,0x1e000025,0x00000000,0x00010020,0x34000004,0x0e001400,0x00000b50, -0x01000010,0x20002260,0x1e000034,0x00000000,0x00010020,0x34000004,0x0e001400,0x00000b30, -0x00000001,0x22a41e68,0x00000000,0x00010001,0x03000010,0x20002260,0x1e000037,0x00bf00bf, -0x00000001,0x29501e28,0x00000000,0x00010001,0x00000001,0x29441608,0x00000000,0x00000000, -0x00000001,0x29481e08,0x00000000,0x00000000,0x00010002,0x49581a88,0x1e0002a4,0x00000000, -0x05000010,0x20002260,0x1e000037,0x003f003f,0x00010002,0x49541a88,0x1e0002a4,0x00000000, -0x01000010,0x20002260,0x1e0008c8,0x00000000,0x00010020,0x34000004,0x0e001400,0x00000050, -0x00000040,0x22a80208,0x02000054,0x00000058,0x00000009,0x22a40208,0x1600004c,0x00020002, -0x00000040,0x22c00208,0x020002a8,0x0000005c,0x0c000038,0x291c0208,0x020002a4,0x000002c0, -0x00000020,0x34000004,0x0e001400,0x00000010,0x0c000038,0x291c0208,0x02000048,0x00000050, -0x02000010,0x20002260,0x1e0008cc,0x00090009,0x00010020,0x34000004,0x0e001400,0x00000320, -0x00000040,0x22a41228,0x16000020,0x000f000f,0x00000005,0x22c41228,0x0e00090a,0x0000fffe, -0x00000005,0x22d41228,0x0e000908,0x0000fffe,0x00000040,0x22000204,0x060002c8,0x02484400, -0x00000001,0x49181e88,0x00000000,0x00010001,0x00000001,0x494c1e88,0x00000000,0x00000000, -0x0000000c,0x42c00a48,0x1e0002a4,0x00040004,0x00000040,0x23c00a28,0x1e0002c4,0x00010001, -0x00000041,0x22cc0a28,0x120002c4,0x000002c0,0x00000041,0x23e00a28,0x120003c0,0x000002c0, -0x00000040,0x22e00a28,0x0a0002cc,0x000002d4,0x00000040,0x24000a28,0x0a0003e0,0x000002d4, -0x00000041,0x23000a28,0x1e0002e0,0x00340034,0x00000041,0x22a40a28,0x1e000400,0x00340034, -0x00000001,0x22e01e68,0x00000000,0x00010001,0x00000001,0x23280a0c,0x00000300,0x00000000, -0x00000001,0x24280a0c,0x000002a4,0x00000000,0x0a800031,0x23403a6c,0x00000320,0x00000200, -0x0a800031,0x24403a6c,0x00000420,0x00000200,0x03000010,0x20000200,0x16000354,0x00800080, -0x03110010,0x20000200,0x16000388,0x00800080,0x03110010,0x20000200,0x16000454,0x00800080, -0x03110010,0x20000200,0x16000488,0x00800080,0x00010002,0x42e41a88,0x1e0002e0,0x00000000, -0x04000010,0x20000200,0x16000354,0x04000400,0x04110010,0x20000200,0x16000388,0x04000400, -0x04110010,0x20000200,0x16000454,0x04000400,0x04110010,0x20000200,0x16000488,0x04000400, -0x00010002,0x495c1a88,0x1e0002e0,0x00000000,0x01000010,0x20002260,0x1e0002e4,0x00000000, -0x00010020,0x34000004,0x0e001400,0x00000010,0x00000001,0x49181e88,0x00000000,0x00000000, -0x01000010,0x20002260,0x1e00095c,0x00000000,0x00010020,0x34000004,0x0e001400,0x00000010, -0x00000001,0x494c1e88,0x00000000,0x00010001,0x06000010,0x20002260,0x1e0008c8,0x00090009, -0x00010020,0x34000004,0x0e001400,0x00000010,0x00000040,0x29481a08,0x1a0028d0,0x000028d2, -0x03000010,0x20002260,0x1e0008c8,0x00090009,0x00010020,0x34000004,0x0e001400,0x00000040, -0x06000010,0x20000200,0x1600091c,0x00000000,0x00010020,0x34000004,0x0e001400,0x00000020, -0x0000000c,0x29500228,0x160008f4,0x00020002,0x00000020,0x34000004,0x0e001400,0x00000210, -0x06000010,0x20002260,0x1e0008c8,0x00090009,0x00010020,0x34000004,0x0e001400,0x000001f0, -0x06000010,0x20000200,0x1600091c,0x00000000,0x00010020,0x34000004,0x0e001400,0x000001d0, -0x0000000c,0x29500228,0x160008f0,0x00020002,0x00000020,0x34000004,0x0e001400,0x000001b0, -0x00000040,0x22a41228,0x16000020,0x000f000f,0x00000040,0x22000204,0x060002c8,0x02284300, -0x00000001,0x23a01e68,0x00000000,0x00010001,0x0000000c,0x42c00a48,0x1e0002a4,0x00040004, -0x00000041,0x22e01228,0x120002c0,0x0000090a,0x00000040,0x23000a28,0x120002e0,0x00000908, -0x00000041,0x23200a28,0x1e000300,0x00340034,0x00000001,0x23480a0c,0x00000320,0x00000000, -0x0a800031,0x23603a6c,0x00000340,0x00000200,0x06000010,0x20000200,0x16000374,0x00800080, -0x00010002,0x49181a88,0x1e0003a0,0x00000000,0x03000010,0x20000200,0x16000374,0x04000400, -0x00010002,0x494c1a88,0x1e0003a0,0x00000000,0x01000010,0x20002260,0x1e0008c4,0x00000000, -0x00010020,0x34000004,0x0e001400,0x00000010,0x00000040,0x29481a08,0x1a0028d0,0x000028d2, -0x02000010,0x20002260,0x1e0008c4,0x00000000,0x00010020,0x34000004,0x0e001400,0x00000040, -0x06000010,0x20000200,0x1600091c,0x00000000,0x00010020,0x34000004,0x0e001400,0x00000020, -0x00000001,0x29500228,0x000008f4,0x00000000,0x00000020,0x34000004,0x0e001400,0x00000050, -0x01000010,0x20002260,0x1e0008c4,0x00000000,0x00010020,0x34000004,0x0e001400,0x00000030, -0x06000010,0x20000200,0x1600091c,0x00000000,0x00010020,0x34000004,0x0e001400,0x00000010, -0x00000001,0x29500228,0x000008f0,0x00000000,0x02000010,0x20002260,0x1e000918,0x00010001, -0x00010020,0x34000004,0x0e001400,0x00000040,0x03000010,0x20000200,0x16000948,0x00200020, -0x00010020,0x34000004,0x0e001400,0x00000020,0x00000001,0x29441608,0x00000000,0x00010001, -0x00000020,0x34000004,0x0e001400,0x00000110,0x02000010,0x20002260,0x1e00094c,0x00010001, -0x00010020,0x34000004,0x0e001400,0x00000040,0x03000010,0x20000200,0x16000948,0x00200020, -0x00010020,0x34000004,0x0e001400,0x00000020,0x00000001,0x29441608,0x00000000,0x00030003, -0x00000020,0x34000004,0x0e001400,0x000000b0,0x02000010,0x20002260,0x1e000918,0x00010001, -0x00010020,0x34000004,0x0e001400,0x00000040,0x05000010,0x20000200,0x16000948,0x00800080, -0x00010020,0x34000004,0x0e001400,0x00000020,0x00000001,0x29441608,0x00000000,0x00020002, -0x00000020,0x34000004,0x0e001400,0x00000050,0x02000010,0x20002260,0x1e00094c,0x00010001, -0x00010020,0x34000004,0x0e001400,0x00000030,0x05000010,0x20000200,0x16000948,0x00800080, -0x00010020,0x34000004,0x0e001400,0x00000010,0x00000001,0x29441608,0x00000000,0x00040004, -0x02000010,0x20000200,0x16000944,0x00010001,0x00010020,0x34000004,0x0e001400,0x00000040, -0x02000010,0x20002260,0x1e000954,0x00000000,0x00010020,0x34000004,0x0e001400,0x00000020, -0x00000001,0x49401e88,0x00000000,0x00010001,0x00000020,0x34000004,0x0e001400,0x00000370, -0x02000010,0x20000200,0x16000944,0x00030003,0x00010020,0x34000004,0x0e001400,0x00000040, -0x02000010,0x20002260,0x1e000954,0x00000000,0x00010020,0x34000004,0x0e001400,0x00000020, -0x00000001,0x49401e88,0x00000000,0x00020002,0x00000020,0x34000004,0x0e001400,0x00000310, -0x02000010,0x20000200,0x16000944,0x00020002,0x00010020,0x34000004,0x0e001400,0x00000040, -0x02000010,0x20002260,0x1e000958,0x00000000,0x00010020,0x34000004,0x0e001400,0x00000020, -0x00000001,0x49401e88,0x00000000,0x00060006,0x00000020,0x34000004,0x0e001400,0x000002b0, -0x02000010,0x20000200,0x16000944,0x00040004,0x00010020,0x34000004,0x0e001400,0x00000040, -0x02000010,0x20002260,0x1e000958,0x00000000,0x00010020,0x34000004,0x0e001400,0x00000020, -0x00000001,0x49401e88,0x00000000,0x00070007,0x00000020,0x34000004,0x0e001400,0x00000250, -0x00000041,0x22a40a08,0x1e000950,0x000a000a,0x00000041,0x22a80208,0x1600091c,0x000d000d, -0x06000010,0x20000200,0x020002a4,0x000002a8,0x00010020,0x34000004,0x0e001400,0x00000040, -0x02000010,0x20002260,0x1e000958,0x00000000,0x00010020,0x34000004,0x0e001400,0x00000020, -0x00000001,0x49401e88,0x00000000,0x00060006,0x00000020,0x34000004,0x0e001400,0x000001d0, -0x00000041,0x22a40a08,0x1e000950,0x000a000a,0x00000041,0x22a80208,0x1600091c,0x000b000b, -0x05000010,0x20000200,0x020002a4,0x000002a8,0x00010020,0x34000004,0x0e001400,0x00000040, -0x02000010,0x20002260,0x1e000958,0x00000000,0x00010020,0x34000004,0x0e001400,0x00000020, -0x00000001,0x49401e88,0x00000000,0x00050005,0x00000020,0x34000004,0x0e001400,0x00000150, -0x00000041,0x22a40a08,0x1e000950,0x000a000a,0x00000041,0x22a80208,0x1600091c,0x00090009, -0x05000010,0x20000200,0x020002a4,0x000002a8,0x00010020,0x34000004,0x0e001400,0x00000020, -0x00000001,0x49401e88,0x00000000,0x00000000,0x00000020,0x34000004,0x0e001400,0x000000f0, -0x00000041,0x22a40a08,0x1e000950,0x000a000a,0x00000041,0x22a80208,0x1600091c,0x00070007, -0x05000010,0x20000200,0x020002a4,0x000002a8,0x00010020,0x34000004,0x0e001400,0x00000040, -0x02000010,0x20002260,0x1e000954,0x00000000,0x00010020,0x34000004,0x0e001400,0x00000020, -0x00000001,0x49401e88,0x00000000,0x00040004,0x00000020,0x34000004,0x0e001400,0x00000070, -0x00000041,0x22a40a08,0x1e000950,0x000a000a,0x00000041,0x22a80208,0x1600091c,0x00070007, -0x04000010,0x20000200,0x020002a4,0x000002a8,0x00010020,0x34000004,0x0e001400,0x00000030, -0x02000010,0x20002260,0x1e000954,0x00000000,0x00010020,0x34000004,0x0e001400,0x00000010, -0x00000001,0x49401e88,0x00000000,0x00030003,0x0020000c,0x24d01208,0x16450908,0x00020002, -0x00200040,0x22a41248,0x16450020,0x003f003f,0x00600001,0x22e02648,0x00000000,0x32103210, -0x00000041,0x23641208,0x1600090c,0x00030003,0x00600001,0x22f02648,0x00000000,0x32103210, -0x00000001,0x295c0e28,0x00000000,0x0f0e0b0a,0x00000001,0x29580e28,0x00000000,0x0d0c0908, -0x00200001,0x24c41248,0x006604d0,0x00000000,0x00200008,0x291c1248,0x164502a4,0x00060006, -0x00600001,0x23201208,0x008d02e0,0x00000000,0x00600001,0x23001208,0x008d02e0,0x00000000, -0x00000041,0x22a41208,0x1600090c,0x00020002,0x00600001,0x22e02648,0x00000000,0x32103210, -0x00000001,0x29540e28,0x00000000,0x07060302,0x00200009,0x23401248,0x164504c4,0x00020002, -0x00000041,0x22c01228,0x120004c6,0x0000091c,0x00400040,0x23300208,0x02690330,0x00000364, -0x00400040,0x23100208,0x12690310,0x0000090c,0x602d2140,0x15191905,0x00000001,0x29500e28, -0x00000000,0x05040100,0x20004d01,0x00002007,0x00000041,0x23441228,0x12000342,0x0000090c, -0x00000040,0x24c00a08,0x120002c0,0x000004c4,0x00200040,0x22c01248,0x1245090c,0x00454340, -0x00000040,0x22000204,0x060002d0,0x0228c300,0x00800009,0x23800208,0x168d0300,0x00040004, -0x00600001,0x24202648,0x00000000,0x11110000,0x00000040,0x23600a08,0x12000344,0x00000340, -0x00600001,0x24302648,0x00000000,0x33332222,0x04800010,0x20001260,0x128d02e0,0x000002c0, -0x00800040,0x23c00208,0x168d0380,0x000b000b,0x00800041,0x23002248,0x168d0950,0x00040004, -0x00000009,0x24080208,0x16000360,0x00040004,0x00000001,0x29181608,0x00000000,0x00000000, -0x0a800033,0x0441e078,0x00002402,0x00000000,0x00810001,0x24401608,0x00000000,0x00000000, -0x04800010,0x20001260,0x128d0420,0x000002c2,0x00600040,0x22001240,0x168d0300,0x04400440, -0x00810001,0x24401608,0x00000000,0x00000000,0x00600001,0x23200208,0x01e08000,0x00000000, -0x00600040,0x22001240,0x168d0310,0x04400440,0x00600001,0x23400208,0x01e08000,0x00000000, -0x00600040,0x22e02248,0x22600320,0x00600340,0x00800001,0x24902288,0x00600321,0x00000000, -0x00800001,0x24802288,0x00600320,0x00000000,0x00000001,0x44c81e88,0x00000000,0x00000000, -0x00000001,0x491a1e88,0x00000000,0x00100010,0x00400040,0x22e01248,0x126902e0,0x006902e8, -0x00200040,0x22e01248,0x124502e0,0x004502e4,0x00000040,0x44ca1288,0x120002e0,0x000002e2, -0x00000041,0x22a42228,0x1e0004c8,0x00040004,0x00000001,0x62a80a88,0x000002a4,0x00000000, -0x00000040,0x22001240,0x160002a4,0x04800480,0x00000040,0x22c02228,0x1e0002a8,0x00010001, -0x00000001,0x22c42228,0x00008000,0x00000000,0x00000040,0x22001240,0x160002c0,0x04800480, -0x00000040,0x22e00a28,0x220002c4,0x00008000,0x00000040,0x23000a28,0x220002e0,0x00008001, -0x01000040,0x60000a81,0x22000300,0x00008002,0x00000001,0x23201e68,0x00000000,0x00010001, -0x00000040,0x22001240,0x160002a4,0x04900490,0x00000009,0x43401a88,0x22000320,0x000004c8, -0x02000010,0x20002220,0x1e008000,0x00090009,0x00010002,0x44cc2288,0x1e000340,0x00000000, -0x00010001,0x44cc1e89,0x00000000,0x00000000,0x01000010,0x20002260,0x1e0004cc,0x00000000, -0x00000006,0x491a2288,0x2200091a,0x000004cc,0x00010020,0x34000004,0x0e001400,0x000000f0, -0x00000001,0x44ce1e88,0x00000000,0x00000000,0x00000041,0x22a42228,0x1e0004c8,0x00040004, -0x00000040,0x22c00a28,0x220002a4,0x000004ce,0x00000040,0x22001240,0x160002c0,0x04900490, -0x06000010,0x20002220,0x1e008000,0x00030003,0x00000001,0x22c41e68,0x00000000,0x00010001, -0x00000040,0x22001240,0x160002c0,0x04800480,0x00010002,0x44cc1a88,0x1e0002c4,0x00000000, -0x01000010,0x20002220,0x1e008000,0x00000000,0x00010001,0x44cc1e88,0x00000000,0x00000000, -0x00000040,0x44ce2288,0x1e0004ce,0x00010001,0x00000009,0x22e02228,0x0a0004cc,0x000002c0, -0x05000010,0x20002260,0x1e0004ce,0x00040004,0x00000006,0x49181248,0x0a000918,0x000002e0, -0x00010020,0x34000004,0x0e001400,0xffffff20,0x00000040,0x44c82288,0x1e0004c8,0x00010001, -0x05000010,0x20002260,0x1e0004c8,0x00040004,0x00010020,0x34000004,0x0e001400,0xfffffdc0, -0x00200009,0x22b01208,0x164504c4,0x00020002,0x00200040,0x62c01288,0x02450908,0x004542b0, -0x00200001,0x22e02288,0x006002c0,0x00000000,0x00000041,0x22e42228,0x1e0002e1,0x00040004, -0x00000040,0x23000a28,0x220002e4,0x000002e0,0x00000040,0x22001240,0x16000300,0x09500950, -0x02000001,0x60000a80,0x00000300,0x00000000,0x00000001,0x43202288,0x00008000,0x00000000, -0x00000040,0x22002240,0x16000320,0x04800480,0x00000001,0x44942288,0x00008000,0x00000000, -0x00000001,0x23380e28,0x00000000,0x0b0a0908,0x00000001,0x23340e28,0x00000000,0x07060504, -0x00000001,0x23300e28,0x00000000,0x03020100,0x00000001,0x233c0e28,0x00000000,0x0f0e0d0c, -0x00000001,0x42a41e8c,0x00000000,0x00000000,0x00000009,0x22c40208,0x160004c0,0x00060006, -0x04800010,0x20002261,0x228d0330,0x00000320,0x00810001,0x24802289,0x000002a4,0x00000000, -0x00600040,0x22e02248,0x228d0480,0x008d0488,0x00400040,0x22e01248,0x126902e0,0x006902e8, -0x00200040,0x22e01248,0x124502e0,0x004502e4,0x00000040,0x42c01288,0x120002e0,0x000002e2, -0x00000040,0x23000208,0x220002c4,0x000002c0,0x00000009,0x24900208,0x16000300,0x00060006, -0x00010020,0x34000004,0x0e001400,0x00000120,0x00000040,0x22a40208,0x160004c0,0x00010001, -0x00000041,0x22a81208,0x1200091c,0x0000091e,0x00000001,0x22c01e68,0x00000000,0x00c000c0, -0x00000040,0x22f02228,0x1e0004ca,0xffffffff,0x00000001,0x23200608,0x00000000,0x05000000, -0x00000009,0x23400228,0x160004c0,0x00040004,0x00200001,0x22e81248,0x006604d0,0x00000000, -0x00000001,0x22e00608,0x00000000,0x73b50001,0x01000010,0x20000200,0x020002a4,0x000002a8, -0x00000040,0x22000204,0x060002dc,0x020a0000,0x00000008,0x23680a08,0x1e000340,0x00040004, -0x00010002,0x44cc1a88,0x1e0002c0,0x00000000,0x00000006,0x63000a8c,0x220002f0,0x000004cc, -0x03000010,0x20002260,0x1e0004cc,0x00000000,0x00000001,0x491b2288,0x00000300,0x00000000, -0x00010002,0x22ec0208,0x16000320,0x00000000,0x00000001,0x22e40208,0x00000918,0x00000000, -0x0a400033,0x00017014,0x00002361,0x00000000,0x02000010,0x20002260,0x1e000494,0x00000000, -0x00010020,0x34000004,0x0e001400,0x00000018,0x20004d01,0x00007d07,0x07000031,0x20003a00, -0x06000fa0,0x82000010,0x02000005,0x20002260,0x160008cf,0x00010001,0x00000001,0x44801e88, -0x00000000,0x00000000,0x00800001,0x23801e08,0x00000000,0x00000000,0x00000001,0x24821648, -0x00000000,0x00000000,0x00600001,0x23c01608,0x00000000,0x00000000,0x00010002,0x44842288, -0x22000035,0x00000036,0x01000010,0x20002260,0x1e0008ce,0x00010001,0x00010001,0x44801e88, -0x00000000,0x00010001,0x02000005,0x20002260,0x160008cf,0x00010001,0x00010001,0x44801e88, -0x00000000,0x00010001,0x01000010,0x20002260,0x1e0008ce,0x00000000,0x00010001,0x44801e88, -0x00000000,0x00020002,0x01000010,0x20002260,0x1e0008cd,0x00000000,0x00010020,0x34000004, -0x0e001400,0x00000120,0x01000010,0x20002260,0x1e0008cf,0x00000000,0x00000001,0x43c01e88, -0x00000000,0x00020002,0x00000001,0x43c21e88,0x00000000,0x00000000,0x00010020,0x34000004, -0x0e001400,0x00000080,0x03000010,0x20002260,0x1e0008ce,0x00010001,0x00000001,0x43c11e88, -0x00000000,0x00010001,0x00200001,0x23d41248,0x004508d0,0x00000000,0x00200001,0x24822288, -0x00000940,0x00000000,0x00200001,0x23ce2288,0x000008c4,0x00000000,0x00200001,0x23ca2288, -0x000008ce,0x00000000,0x00010001,0x44801e88,0x00000000,0x00000000,0x00000020,0x34000004, -0x0e001400,0x00000c98,0x00000005,0x42a41288,0x16000910,0x000f000f,0x00200001,0x24822288, -0x00000940,0x00000000,0x00200001,0x23ca2288,0x000008ce,0x00000000,0x00400001,0x23c62288, -0x000002a4,0x00000000,0x00200001,0x23c42288,0x000002a4,0x00000000,0x00000020,0x34000004, -0x0e001400,0x00000c38,0x02000010,0x20002260,0x1e0008cc,0x00060006,0x00010020,0x34000004, -0x0e001400,0x00000100,0x01000010,0x20002260,0x1e0008cf,0x00000000,0x00000001,0x43c01e88, -0x00000000,0x00010001,0x00000001,0x43c21e88,0x00000000,0x00000000,0x00010020,0x34000004, -0x0e001400,0x00000060,0x00000001,0x43c11e88,0x00000000,0x00010001,0x00200001,0x23d41248, -0x004508d0,0x00000000,0x00200001,0x24822288,0x00000940,0x00000000,0x00200001,0x23ce2288, -0x000008c4,0x00000000,0x00200001,0x23ca2288,0x000008ce,0x00000000,0x00000020,0x34000004, -0x0e001400,0x00000b78,0x00000005,0x42a41288,0x16000910,0x000f000f,0x00200001,0x24822288, -0x00000940,0x00000000,0x00200001,0x23ca2288,0x000008ce,0x00000000,0x00400001,0x23c62288, -0x000002a4,0x00000000,0x00200001,0x23c42288,0x000002a4,0x00000000,0x00000020,0x34000004, -0x0e001400,0x00000b18,0x02000010,0x20002260,0x1e0008cc,0x00050005,0x00010020,0x34000004, -0x0e001400,0x000000d0,0x00000001,0x43c01e88,0x00000000,0x00010001,0x01000010,0x20002260, -0x1e0008cf,0x00000000,0x00000001,0x43c22288,0x000003c0,0x00000000,0x00010020,0x34000004, -0x0e001400,0x00000ab8,0x00000001,0x43ca2288,0x000008ce,0x00000000,0x00000001,0x43cf2288, -0x000008c6,0x00000000,0x00200001,0x23dc1248,0x004508d8,0x00000000,0x00000001,0x43ce2288, -0x000008c4,0x00000000,0x00200001,0x24822288,0x00000940,0x00000000,0x00000001,0x43c11e88, -0x00000000,0x00010001,0x00200001,0x23d41248,0x004508d0,0x00000000,0x00000001,0x43cb2288, -0x000003ca,0x00000000,0x00000020,0x34000004,0x0e001400,0x00000a28,0x01000010,0x20002260, -0x1e0008cc,0x00040004,0x00010020,0x34000004,0x0e001400,0x00000948,0x06000010,0x20002260, -0x1e000494,0x00000000,0x00000001,0x44861e88,0x00000000,0x00000000,0x00010020,0x34000004, -0x0e001400,0x00000900,0x02000010,0x20002260,0x1e0008cc,0x00030003,0x00010020,0x34000004, -0x0e001400,0x00000510,0x01000010,0x20002260,0x1e0008cf,0x00000000,0x00010020,0x34000004, -0x0e001400,0x000000c0,0x00000001,0x43c01e88,0x00000000,0x00000000,0x00000040,0x22002240, -0x16000486,0x08c008c0,0x00000001,0x43c11e88,0x00000000,0x00010001,0x00000001,0x43c22288, -0x000003c0,0x00000000,0x00200001,0x23ce2288,0x00008004,0x00000000,0x00000041,0x22a42228, -0x1e000486,0x00020002,0x00000041,0x22c01248,0x160002a4,0x00020002,0x00000040,0x22001240, -0x160002c0,0x08c008c0,0x00200001,0x23d41248,0x00208010,0x00000000,0x00200001,0x24822288, -0x00000940,0x00000000,0x00200001,0x23ca2288,0x000008ce,0x00000000,0x00000020,0x34000004, -0x0e001400,0x00000550,0x02000010,0x20001240,0x12000910,0x00000912,0x00010020,0x34000004, -0x0e001400,0x00000120,0x02000010,0x20001240,0x12000910,0x00000914,0x00010020,0x34000004, -0x0e001400,0x00000100,0x02000010,0x20001240,0x12000914,0x00000916,0x00010020,0x34000004, -0x0e001400,0x000000e0,0x00000040,0x22a41228,0x16000900,0x00100010,0x04000010,0x20000a20, -0x120002a4,0x00000904,0x00010020,0x34000004,0x0e001400,0x000000b0,0x00000040,0x22a41228, -0x16000902,0x00100010,0x04000010,0x20000a20,0x120002a4,0x00000906,0x00010020,0x34000004, -0x0e001400,0x00000080,0x00000005,0x42a41288,0x16000910,0x000f000f,0x00000001,0x43c01e88, -0x00000000,0x00010001,0x00200001,0x23ca2288,0x000008ce,0x00000000,0x00200001,0x24822288, -0x00000940,0x00000000,0x00000001,0x43c21e88,0x00000000,0x00000000,0x00200001,0x23c62288, -0x000002a4,0x00000000,0x00200001,0x23c42288,0x004503c6,0x00000000,0x00000020,0x34000004, -0x0e001400,0x00000410,0x02000010,0x20001240,0x12000910,0x00000912,0x00010020,0x34000004, -0x0e001400,0x00000100,0x02000010,0x20001240,0x12000914,0x00000916,0x00010020,0x34000004, -0x0e001400,0x000000e0,0x00000040,0x22a41228,0x16000900,0x00100010,0x04000010,0x20000a20, -0x120002a4,0x00000904,0x00010020,0x34000004,0x0e001400,0x000000b0,0x00000040,0x22a41228, -0x16000902,0x00100010,0x04000010,0x20000a20,0x120002a4,0x00000906,0x00010020,0x34000004, -0x0e001400,0x00000080,0x00000001,0x43c01e88,0x00000000,0x00010001,0x00000005,0x43c61288, -0x16000910,0x000f000f,0x00000005,0x43c71288,0x16000914,0x000f000f,0x00200001,0x24822288, -0x00000940,0x00000000,0x00200001,0x23ca2288,0x000008ce,0x00000000,0x00000001,0x43c22288, -0x000003c0,0x00000000,0x00200001,0x23c42288,0x000003c6,0x00000000,0x00000020,0x34000004, -0x0e001400,0x000002f0,0x02000010,0x20001240,0x12000910,0x00000914,0x00010020,0x34000004, -0x0e001400,0x00000100,0x02000010,0x20001240,0x12000912,0x00000916,0x00010020,0x34000004, -0x0e001400,0x000000e0,0x00000040,0x22a41228,0x16000900,0x00100010,0x04000010,0x20000a20, -0x120002a4,0x00000904,0x00010020,0x34000004,0x0e001400,0x000000b0,0x00000040,0x22a41228, -0x16000902,0x00100010,0x04000010,0x20000a20,0x120002a4,0x00000906,0x00010020,0x34000004, -0x0e001400,0x00000080,0x00000005,0x43c61288,0x16000910,0x000f000f,0x00000001,0x43c21e88, -0x00000000,0x00020002,0x00000005,0x43c71288,0x16000912,0x000f000f,0x00000001,0x43c01e88, -0x00000000,0x00010001,0x00200001,0x24822288,0x00000940,0x00000000,0x00200001,0x23ca2288, -0x000008ce,0x00000000,0x00200001,0x23c42288,0x000003c6,0x00000000,0x00000020,0x34000004, -0x0e001400,0x000001d0,0x00000041,0x22a42248,0x16000486,0x00020002,0x00000001,0x43c01e88, -0x00000000,0x00000000,0x00000040,0x22001240,0x160002a4,0x09100910,0x00000001,0x43c22288, -0x000003c0,0x00000000,0x00000005,0x42c01288,0x1e008000,0x000f000f,0x00200001,0x23c62288, -0x000002c0,0x00000000,0x00000005,0x42e01288,0x1e008000,0x000f000f,0x00200001,0x24822288, -0x00000940,0x00000000,0x00200001,0x23ca2288,0x000008ce,0x00000000,0x00200001,0x23c42288, -0x000002e0,0x00000000,0x00000020,0x34000004,0x0e001400,0x00000120,0x02000010,0x20002260, -0x1e0008cf,0x00000000,0x00010020,0x34000004,0x0e001400,0x00000100,0x00000040,0x22002240, -0x16000486,0x08c008c0,0x00000001,0x43c01e88,0x00000000,0x00000000,0x00000001,0x43c21e88, -0x00000000,0x00030003,0x00000005,0x42a42288,0x1e008028,0x000f000f,0x00000041,0x22c02248, -0x16000486,0x00020002,0x00200001,0x23c42288,0x000002a4,0x00000000,0x00000040,0x22001240, -0x160002c0,0x09100910,0x00000005,0x43c61288,0x1e008000,0x000f000f,0x0000000c,0x22e01228, -0x1e008000,0x00040004,0x00000005,0x63000a8c,0x1e0002e0,0x000f000f,0x00000001,0x43c72288, -0x00000300,0x00000000,0x0000000c,0x23201228,0x1e008000,0x00080008,0x00000005,0x63c80a88, -0x1e000320,0x000f000f,0x0000000c,0x43c91288,0x1e008000,0x000c000c,0x00200001,0x24822288, -0x00000940,0x00000000,0x00000001,0x23ca1648,0x00000000,0x00000000,0x00000005,0x22a42228, -0x1e0003c0,0x00030003,0x00000009,0x22a82228,0x1e0003c2,0x00040004,0x00000009,0x22c02228, -0x1e0003c1,0x00040004,0x00000009,0x22e42228,0x1e0003c1,0x00050005,0x00000040,0x43aa2288, -0x22000484,0x00000480,0x00200001,0x23881248,0x004503d4,0x00000000,0x00000001,0x43831e88, -0x00000000,0x00000000,0x00000009,0x23602228,0x1e0003cb,0x00020002,0x00000006,0x63800a88, -0x0a0002a4,0x000002a8,0x00000005,0x22a82228,0x1e0003cf,0x00030003,0x00000006,0x22e02228, -0x0a0003c5,0x000002c0,0x00000005,0x22a42228,0x1e0003ce,0x00030003,0x00000009,0x23202228, -0x1e0003aa,0x00040004,0x00000040,0x44862288,0x1e000486,0x00010001,0x00200005,0x43842288, -0x1e4003c6,0x000f000f,0x00000008,0x22e80a08,0x1e000490,0x00040004,0x00000009,0x22c00a28, -0x1e0002a8,0x00040004,0x00000006,0x63000a8c,0x0a0002e0,0x000002e4,0x00000005,0x22e42228, -0x1e0003d1,0x00030003,0x00000006,0x6340228c,0x0a0003aa,0x00000320,0x00000005,0x22e02228, -0x1e0003d0,0x00030003,0x00600001,0x23981648,0x00000000,0x00000000,0x00000001,0x43812288, -0x000003c4,0x00000000,0x00000006,0x63a80a88,0x0a0002a4,0x000002c0,0x00000009,0x22a42228, -0x1e000483,0x00030003,0x00000001,0x43822288,0x00000300,0x00000000,0x00000009,0x23000a28, -0x1e0002e4,0x00040004,0x00000040,0x22000204,0x060002d8,0x020a0300,0x00200001,0x23941248, -0x00450388,0x00000000,0x00200001,0x238c1248,0x00450388,0x00000000,0x00200001,0x23901248, -0x00450388,0x00000000,0x00000006,0x62c00a8c,0x220002a4,0x00000482,0x00000001,0x43ad2288, -0x00000383,0x00000000,0x00000001,0x43af2288,0x00000383,0x00000000,0x00000006,0x63ac0a88, -0x22000360,0x000003ca,0x00200005,0x43852288,0x1e4003c7,0x000f000f,0x00000001,0x43aa2288, -0x00000340,0x00000000,0x00000006,0x63a90a88,0x0a0002e0,0x00000300,0x00000001,0x43ae2288, -0x000002c0,0x00000000,0x05000010,0x20002260,0x22000486,0x00000494,0x00000040,0x24900208, -0x16000490,0x00400040,0x0a800033,0x0001c054,0x000022e2,0x00000000,0x00010020,0x34000004, -0x0e001400,0xfffff700,0x20004d01,0x00007e07,0x07000031,0x20003a00,0x06000fc0,0x82000010, -0x01000010,0x20002260,0x1e0008cf,0x00000000,0x00000001,0x43c01e88,0x00000000,0x00010001, -0x00000001,0x43c21e88,0x00000000,0x00020002,0x00010020,0x34000004,0x0e001400,0x00000080, -0x00000001,0x43ca2288,0x000008ce,0x00000000,0x00000001,0x43cf2288,0x000008c5,0x00000000, -0x00200001,0x23dc1248,0x004508d4,0x00000000,0x00000001,0x43ce2288,0x000008c4,0x00000000, -0x00200001,0x24822288,0x00000940,0x00000000,0x00000001,0x43c11e88,0x00000000,0x00010001, -0x00200001,0x23d41248,0x004508d0,0x00000000,0x00000001,0x43cb2288,0x000003ca,0x00000000, -0x00000005,0x22a42228,0x1e0003c0,0x00030003,0x00000009,0x22a82228,0x1e0003c2,0x00040004, -0x00000009,0x22c02228,0x1e0003c1,0x00040004,0x00000009,0x22e42228,0x1e0003c1,0x00050005, -0x00000040,0x43aa2288,0x22000484,0x00000480,0x00000001,0x43831e88,0x00000000,0x00000000, -0x00000009,0x23602228,0x1e0003cb,0x00020002,0x00200005,0x43842288,0x1e4003c6,0x000f000f, -0x00000006,0x63800a88,0x0a0002a4,0x000002a8,0x00000005,0x22a82228,0x1e0003cf,0x00030003, -0x00000006,0x22e02228,0x0a0003c5,0x000002c0,0x00000005,0x22a42228,0x1e0003ce,0x00030003, -0x00000009,0x23202228,0x1e0003aa,0x00040004,0x00000008,0x22e80a08,0x1e000490,0x00040004, -0x00600001,0x23981648,0x00000000,0x00000000,0x00400001,0x23901648,0x00000000,0x00000000, -0x00000009,0x22c00a28,0x1e0002a8,0x00040004,0x00000006,0x63000a8c,0x0a0002e0,0x000002e4, -0x00000005,0x22e42228,0x1e0003d1,0x00030003,0x00000006,0x6340228c,0x0a0003aa,0x00000320, -0x00000005,0x22e02228,0x1e0003d0,0x00030003,0x00200001,0x238c1248,0x004503dc,0x00000000, -0x00200001,0x23881248,0x004503d4,0x00000000,0x00000006,0x63a80a88,0x0a0002a4,0x000002c0, -0x00000009,0x22a42228,0x1e000483,0x00030003,0x00000001,0x43822288,0x00000300,0x00000000, -0x00000009,0x23000a28,0x1e0002e4,0x00040004,0x00000001,0x43812288,0x000003c4,0x00000000, -0x00000040,0x22000204,0x060002d8,0x020a0300,0x00000001,0x43af2288,0x00000383,0x00000000, -0x00000001,0x43ad2288,0x00000383,0x00000000,0x00000006,0x62c00a8c,0x220002a4,0x00000482, -0x00000006,0x63ac0a88,0x22000360,0x000003ca,0x00200005,0x43852288,0x1e4003c7,0x000f000f, -0x00000001,0x43aa2288,0x00000340,0x00000000,0x00000006,0x63a90a88,0x0a0002e0,0x00000300, -0x00000001,0x43ae2288,0x000002c0,0x00000000,0x0a800033,0x0001c054,0x000022e2,0x00000000, -0x20004d01,0x00007f07,0x07000031,0x20003a00,0x06000fe0,0x82000010,0x2000007d,0x2000000c, -0x2000007d,0x2000000c,0x2000007d,0x2000000c,0x2000007d,0x2000000c,0x2000007d,0x2000000c, -0x00000005,0x206c124c,0x16000004,0x07ff07ff,0x00000005,0x206e124c,0x16000006,0x07ff07ff, -0x00800001,0x20801608,0x00000000,0x00000000,0x00000001,0x20701248,0x0000006c,0x00000000, -0x00000001,0x20721248,0x0000006e,0x00000000,0x00200041,0x20c01228,0x16450070,0x00100010, -0x00200001,0x20d00ae8,0x004500c0,0x00000000,0x00200041,0x20e03ae8,0x3a4500d0,0x00450028, -0x00000001,0x29b83ee8,0x00000000,0x00000000,0x20004b01,0x00004c07,0x00000001,0x29880608, -0x00000000,0x00000000,0x00000001,0x29a03ee8,0x00000000,0x00000000,0x00000001,0x29a41e08, -0x00000000,0x00000000,0x00000001,0x29a83ae8,0x000000e0,0x00000000,0x00000001,0x29ac3ae8, -0x000000e4,0x00000000,0x00000001,0x29b03ae8,0x00000028,0x00000000,0x00000001,0x29b43ae8, -0x0000002c,0x00000000,0x00000001,0x29bc1608,0x00000000,0x00000000,0x00000040,0x22000204, -0x06000060,0x050eb000,0x00000009,0x20c8020c,0x06000068,0x00000008,0x00000040,0x22000004, -0x02000200,0x000000c8,0x02800031,0x21003a48,0x00000980,0x00000200,0x00000001,0x29f83ee8, -0x00000000,0x00000000,0x20004b01,0x004c4e07,0x00000001,0x29e03ee8,0x00000000,0x00000000, -0x00000001,0x29e41e08,0x00000000,0x00010001,0x00000001,0x29e83ae8,0x000000e0,0x00000000, -0x00000001,0x29ec3ae8,0x000000e4,0x00000000,0x00000001,0x29f03ae8,0x00000028,0x00000000, -0x00000001,0x29f43ae8,0x0000002c,0x00000000,0x00000001,0x29fc1608,0x00000000,0x00000000, -0x00000040,0x22000204,0x06000060,0x050eb000,0x00000009,0x20cc020c,0x06000068,0x00000008, -0x00000040,0x22000004,0x02000200,0x000000cc,0x02800031,0x23003a48,0x000009c0,0x00000200, -0x00000001,0x2a383ee8,0x00000000,0x00000000,0x20004b01,0x004e5007,0x00000001,0x2a203ee8, -0x00000000,0x00000000,0x00000001,0x2a241e08,0x00000000,0x00020002,0x00000001,0x2a283ae8, -0x000000e0,0x00000000,0x00000001,0x2a2c3ae8,0x000000e4,0x00000000,0x00000001,0x2a303ae8, -0x00000028,0x00000000,0x00000001,0x2a343ae8,0x0000002c,0x00000000,0x00000001,0x2a3c1608, -0x00000000,0x00000000,0x00000040,0x22000204,0x06000060,0x050eb000,0x00000009,0x20d8020c, -0x06000068,0x00000008,0x00000040,0x22000004,0x02000200,0x000000d8,0x02800031,0x25003a48, -0x00000a00,0x00000200,0x00000001,0x2a783ee8,0x00000000,0x00000000,0x20004b01,0x00505207, -0x00000001,0x2a603ee8,0x00000000,0x00000000,0x00000001,0x2a641e08,0x00000000,0x00030003, -0x00000001,0x2a683ae8,0x000000e0,0x00000000,0x00000001,0x2a6c3ae8,0x000000e4,0x00000000, -0x00000001,0x2a703ae8,0x00000028,0x00000000,0x00000001,0x2a743ae8,0x0000002c,0x00000000, -0x00000001,0x2a7c1608,0x00000000,0x00000000,0x00000040,0x22000204,0x06000060,0x050eb000, -0x00000009,0x20dc020c,0x06000068,0x00000008,0x00000040,0x22000004,0x02000200,0x000000dc, -0x02800031,0x27003a48,0x00000a40,0x00000200,0x00a00001,0x29002288,0x00400181,0x00000000, -0x00a00001,0x29202288,0x004001c1,0x00000000,0x00a00001,0x29402288,0x00400381,0x00000000, -0x00a00001,0x29602288,0x004003c1,0x00000000,0x00000041,0x20741228,0x1600006c,0x00100010, -0x00000041,0x20781228,0x1600006e,0x00100010,0x20004d01,0x00005407,0x00000001,0x2a88060c, -0x00000000,0x0007000f,0x20284001,0x00035400,0x00000001,0x2a84020c,0x00000078,0x00000000, -0x00000040,0x22000204,0x06000064,0x020a8000,0x0c600033,0x00048014,0x00002a84,0x00000000, -0x00a00001,0x29002288,0x00400581,0x00000000,0x00a00001,0x29202288,0x004005c1,0x00000000, -0x00a00001,0x29402288,0x00400781,0x00000000,0x00a00001,0x29602288,0x004007c1,0x00000000, -0x20004d01,0x00005507,0x00000040,0x2aa40a28,0x1e000078,0x00080008,0x00000001,0x2aa8060c, -0x00000000,0x0007000f,0x20284001,0x00035500,0x00000040,0x22000204,0x06000064,0x020a8000, -0x0c600033,0x00048014,0x00002aa4,0x00000000,0x00600001,0x40802288,0x00600201,0x00000000, -0x00600001,0x40902288,0x00600241,0x00000000,0x00600001,0x40812288,0x00600101,0x00000000, -0x00600001,0x40912288,0x00600141,0x00000000,0x00600001,0x40a02288,0x00600401,0x00000000, -0x00600001,0x40b02288,0x00600441,0x00000000,0x00600001,0x40a12288,0x00600301,0x00000000, -0x00600001,0x40b12288,0x00600341,0x00000000,0x00000041,0x207c1228,0x1600006e,0x00080008, -0x20004d01,0x00005607,0x00000001,0x2ac8060c,0x00000000,0x0003000f,0x20284001,0x00035600, -0x00000001,0x2ac4020c,0x0000007c,0x00000000,0x00000040,0x22000204,0x06000064,0x020a8001, -0x0c600033,0x00004014,0x00002ac2,0x00000000,0x00600001,0x40802288,0x00600601,0x00000000, -0x00600001,0x40902288,0x00600641,0x00000000,0x00600001,0x40812288,0x00600501,0x00000000, -0x00600001,0x40912288,0x00600541,0x00000000,0x00600001,0x40a02288,0x00600801,0x00000000, -0x00600001,0x40b02288,0x00600841,0x00000000,0x00600001,0x40a12288,0x00600701,0x00000000, -0x00600001,0x40b12288,0x00600741,0x00000000,0x20004d01,0x00005707,0x00000040,0x2ae40a28, -0x1e00007c,0x00040004,0x00000001,0x2ae8060c,0x00000000,0x0003000f,0x20284001,0x00035700, -0x00000040,0x22000204,0x06000064,0x020a8001,0x0c600033,0x00004014,0x00002ae2,0x00000000, -0x20004d01,0x00007f07,0x07000031,0x20003a00,0x06000fe0,0x82000010,0x2000007d,0x2000000c, -0x00000005,0x20ea124c,0x16000006,0x07ff07ff,0x01000005,0x20e81248,0x16000004,0x07ff07ff, -0x00000001,0x22961e68,0x00000000,0x00810081,0x00600001,0x22602668,0x00000000,0x00000086, -0x00800001,0x21801608,0x00000000,0x00000000,0x00800001,0x21001608,0x00000000,0x00000000, -0x03400010,0x20001261,0x1e0000ea,0x00000000,0x00000009,0x22981208,0x160000ea,0x00040004, -0x00000009,0x22901208,0x160000e8,0x00040004,0x00800001,0x21c01608,0x00000000,0x00000000, -0x00800001,0x22001e68,0x00000000,0x00000000,0x00410002,0x43701a89,0x1e000296,0x007f007f, -0x00800001,0x22201648,0x00000000,0x00000000,0x00800001,0x21401608,0x00000000,0x00000000, -0x00000001,0x40f41e88,0x00000000,0x00000000,0x00200001,0x20f81648,0x00000000,0x7f7f7f7f, -0x00600001,0x22402648,0x00000000,0x75438102,0x00600001,0x22701648,0x00000000,0x7f7f7f7f, -0x00600001,0x22801648,0x00000000,0x81818181,0x0020000c,0x20ec1248,0x16450020,0x00040004, -0x00200001,0x22501a48,0x00450260,0x00000000,0x00000001,0x429c0268,0x00000298,0x00000000, -0x00000001,0x42940268,0x00000290,0x00000000,0x00400001,0x20fc2288,0x00400370,0x00000000, -0x00010020,0x34000004,0x0e001400,0x00000098,0x20004d01,0x00002407,0x00000040,0x22000204, -0x060000e0,0x02390000,0x00000001,0x2488060c,0x00000000,0x00170003,0x00000040,0x24841a28, -0x1e00029c,0xffffffff,0x00000040,0x24801a28,0x1e000294,0xfffcfffc,0x03400010,0x20001260, -0x1e0000ea,0x00000000,0x0c600031,0x22a03a0c,0x00000480,0x00000200,0x00600001,0x22882288, -0x006002c7,0x00000000,0x00600001,0x22802288,0x006002a7,0x00000000,0x00410001,0x20fc2288, -0x000002a3,0x00000000,0x01000010,0x20001260,0x1e0000ea,0x00000000,0x00010020,0x34000004, -0x0e001400,0x000000c0,0x20004d01,0x00002507,0x00000040,0x22000204,0x060000e0,0x02190000, -0x20086001,0x13002500,0x00000040,0x24a41a28,0x1e00029c,0xffffffff,0x00000001,0x24a01a08, -0x00000294,0x00000000,0x0000000c,0x23341208,0x160000ec,0x00020002,0x0c600031,0x23003a0c, -0x000004a0,0x00000200,0x00000040,0x23380208,0x1e000334,0xffffffff,0x05400010,0x20001200, -0x020000e8,0x00000338,0x60004101,0x00181905,0x00000001,0x23300208,0x00000310,0x00000000, -0x60104101,0x00181305,0x00410002,0x44702288,0x22690330,0x0000032f,0x00400001,0x20f82288, -0x00400470,0x00000000,0x01000010,0x20001260,0x1e0000ea,0x00000000,0x00000001,0x40f61e88, -0x00000000,0x00700070,0x00010020,0x34000004,0x0e001400,0x00000030,0x01000010,0x20001260, -0x1e0000e8,0x00000000,0x00010020,0x34000004,0x0e001400,0x00000010,0x00000001,0x40f61e88, -0x00000000,0x00740074,0x01000010,0x20001260,0x1e0000ea,0x00000000,0x00010020,0x34000004, -0x0e001400,0x00000050,0x00000040,0x233c1208,0x160000e8,0x00010001,0x0000000c,0x23401208, -0x160000ec,0x00020002,0x04000010,0x20000200,0x0200033c,0x00000340,0x00010020,0x34000004, -0x0e001400,0x00000010,0x00000006,0x40f62288,0x1e0000f6,0x00080008,0x01000005,0x20002220, -0x1e00002a,0x00020002,0x00010020,0x34000004,0x0e001400,0x00000010,0x00000001,0x40f41e88, -0x00000000,0x00010001,0x01000005,0x20002220,0x1e00002a,0x00040004,0x00010020,0x34000004, -0x0e001400,0x00000010,0x00000006,0x40f42288,0x1e0000f4,0x00020002,0x01000005,0x20002220, -0x1e00002a,0x00080008,0x00010020,0x34000004,0x0e001400,0x00000010,0x00000006,0x40f42288, -0x1e0000f4,0x00040004,0x00000006,0x410e2288,0x1e00010e,0x00080008,0x00600041,0x23501248, -0x168d0220,0x00020002,0x00000001,0x413c2288,0x000000f4,0x00000000,0x00600001,0x21b82288, -0x000900f8,0x00000000,0x00000006,0x41202288,0x1e000120,0x00020002,0x00000005,0x210a1a48, -0x1e00029c,0xfffefffe,0x00400001,0x21a80208,0x00690270,0x00000000,0x00000006,0x410e2288, -0x1e00010e,0x00200020,0x00600040,0x22001240,0x168d0350,0x02400240,0x00000001,0x41a51e88, -0x00000000,0x00010001,0x60004101,0x00140e05,0x00600001,0x21f01648,0x00000000,0x7f7f7f7f, -0x00600001,0x21e01648,0x00000000,0x81818181,0x00000001,0x21081a48,0x00000294,0x00000000, -0x00000001,0x413d2288,0x000000f6,0x00000000,0x00000001,0x41a72288,0x000000fc,0x00000000, -0x00000006,0x410e2288,0x1e00010e,0x00800080,0x00000009,0x23441228,0x1e008200,0x00040004, -0x00000006,0x61d01288,0x0a008000,0x00000344,0x00000009,0x23481228,0x1e008600,0x00040004, -0x00000006,0x61d11288,0x0a008400,0x00000348,0x00000009,0x234c1228,0x1e008a00,0x00040004, -0x00000006,0x6364128c,0x0a008800,0x0000034c,0x00000001,0x41d22288,0x00000364,0x00000000, -0x00000009,0x23601228,0x1e008e00,0x00040004,0x00000006,0x6368128c,0x0a008c00,0x00000360, -0x00000001,0x41d32288,0x00000368,0x00000000,0x20005701,0x000a2807,0x00000040,0x22000204, -0x060000e4,0x10782000,0x20005701,0x000c2a07,0x20005701,0x00082607,0x20005701,0x000e2c07, -0x20004d01,0x00002e07,0x20086001,0x03002e00,0x00000001,0x25c41208,0x000000ea,0x00000000, -0x00000041,0x25c01228,0x160000e8,0x00040004,0x0d600031,0x23803a0c,0x000004c0,0x00000200, -0x00000040,0x22000204,0x060000f0,0x020a8000,0x00000001,0x22001a68,0x0000038c,0x00000000, -0x00200001,0x24601a68,0x00450200,0x00000000,0x0c600033,0x00023014,0x000025c1,0x00000000, -0x0a600031,0x25e03a08,0x06000000,0x0219e000,0x20004d01,0x002f2f07,0x20004d01,0x00007f07, -0x07000031,0x20003a00,0x06000fe0,0x82000010,0x2000007d,0x2000000c,0x2000007d,0x2000000c, -0x00000001,0x22a01e28,0x00000000,0x00000000,0x00000040,0x20e00a28,0x1e0002a0,0x00040004, -0x00000041,0x21021248,0x160002a0,0x00040004,0x00000041,0x21001248,0x160000e0,0x00040004, -0x00000040,0x22021240,0x16000100,0x00200020,0x00000040,0x22001240,0x16000102,0x02c002c0, -0x00000001,0xa0000a08,0x00008200,0x00000000,0x00000040,0x22a00a28,0x1e0002a0,0x00010001, -0x05000010,0x20000a20,0x1e0002a0,0x00140014,0x00010020,0x34000004,0x0e001400,0xffffff70, -0x00800001,0x25a01e08,0x00000000,0x00000000,0x00000001,0x25b81248,0x000002e0,0x00000000, -0x00800001,0x23201e08,0x00000000,0x00000000,0x00800001,0x23e01e08,0x00000000,0x00000000, -0x00800001,0x23601e08,0x00000000,0x00000000,0x01000005,0x20001220,0x160005b8,0x00100010, -0x00800001,0x24201e08,0x00000000,0x00000000,0x00800001,0x24e01e08,0x00000000,0x00000000, -0x00800001,0x24601e08,0x00000000,0x00000000,0x00800001,0x25201e08,0x00000000,0x00000000, -0x00800001,0x25601e08,0x00000000,0x00000000,0x00800001,0x25e01e08,0x00000000,0x00000000, -0x00800001,0x24a01e08,0x00000000,0x00000000,0x00800001,0x23a01e08,0x00000000,0x00000000, -0x00000001,0x22a40208,0x00000330,0x00000000,0x00000001,0x25cc1248,0x000002f6,0x00000000, -0x00000001,0x25c01248,0x000002e6,0x00000000,0x00000001,0x25c61248,0x000002ec,0x00000000, -0x00000001,0x25c21248,0x000002e8,0x00000000,0x00000001,0x25c81248,0x000002ee,0x00000000, -0x00000001,0x25ca1248,0x000002f0,0x00000000,0x00000001,0x25c41248,0x000002ea,0x00000000, -0x00000001,0x25be1248,0x000002e4,0x00000000,0x00000001,0x25ba1248,0x000002e2,0x00000000, -0x20004b01,0x00161907,0x00010020,0x34000004,0x0e001400,0x00000020,0x00000001,0x22a81e28, -0x00000000,0x00000000,0x00000020,0x34000004,0x0e001400,0x00000090,0x01000005,0x20001220, -0x160005b8,0x00200020,0x00010020,0x34000004,0x0e001400,0x00000020,0x00000001,0x22a81e28, -0x00000000,0x00010001,0x00000020,0x34000004,0x0e001400,0x00000050,0x01000005,0x20001220, -0x160005b8,0x00400040,0x00010020,0x34000004,0x0e001400,0x00000020,0x00000001,0x22a81e28, -0x00000000,0x00020002,0x00000020,0x34000004,0x0e001400,0x00000010,0x00000001,0x22a81e28, -0x00000000,0x00030003,0x00000001,0x62ac0a88,0x000002a8,0x00000000,0x00000001,0x65f00a88, -0x000002a8,0x00000000,0x00000005,0x20e00008,0x06001000,0xffffffcf,0x00008006,0x30000200, -0x160000e0,0x00300030,0x00000001,0x210402e8,0x0000033c,0x00000000,0x00000001,0x214402e8, -0x00000330,0x00000000,0x00000001,0x210002e8,0x0000032c,0x00000000,0x00000001,0x212402e8, -0x00000338,0x00000000,0x00000040,0x20e01208,0x160005ba,0x00010001,0x00000001,0x42bd1e88, -0x00000000,0x00320032,0x00000001,0x42bf1e88,0x00000000,0x00730073,0x00000001,0x42bc1e88, -0x00000000,0x001e001e,0x00000041,0x21603ae8,0x3a000144,0x00000104,0x00000041,0x21203ae8, -0x3a000100,0x00000104,0x00000001,0x26241e28,0x00000000,0x00000000,0x05000002,0x22b80208, -0x160000e0,0xffffffff,0x00000001,0x46231e88,0x00000000,0x00780078,0x00000001,0x46221e88, -0x00000000,0x00460046,0x00000001,0x46211e88,0x00000000,0x00320032,0x09000038,0x21803ae8, -0x3a000160,0x00000124,0x09000038,0x21403ae8,0x3a000120,0x00000124,0x00000001,0x46201e88, -0x00000000,0x001e001e,0x00000001,0x42be1e88,0x00000000,0x005a005a,0x00000001,0x45d40248, -0x000002b8,0x00000000,0x00000046,0x21a03ae8,0x00000180,0x00000000,0x00000046,0x21843ae8, -0x00000140,0x00000000,0x00000001,0x22b43a08,0x000001a0,0x00000000,0x00000001,0x23443a08, -0x000001a0,0x00000000,0x00000001,0x23403a08,0x00000184,0x00000000,0x00000001,0x22b03a08, -0x00000184,0x00000000,0x00000040,0x22001240,0x16000624,0x02bc02bc,0x00000001,0x262822e8, -0x00008000,0x00000000,0x0d000038,0x20e00208,0x0600032c,0x00000064,0x02000010,0x20000200, -0x160000e0,0x00000000,0x00010020,0x34000004,0x0e001400,0x00000110,0x0c000038,0x20e00208, -0x0600032c,0x00000064,0x00000040,0x21080a28,0x1e000624,0x00560056,0x00000041,0x21201248, -0x16000108,0x00040004,0x00000001,0x210002e8,0x000000e0,0x00000000,0x00000040,0x22001240, -0x16000120,0x03200320,0x00000041,0x21043ae8,0x3a000628,0x00000100,0x00000001,0xa0003a28, -0x00000104,0x00000000,0x00000040,0x22001240,0x16000624,0x06200620,0x00000001,0x214022e8, -0x00008000,0x00000000,0x00000040,0x21480a28,0x1e000624,0x00480048,0x00000041,0x21443ae8, -0x3a000140,0x00000100,0x00000041,0x21601248,0x16000148,0x00040004,0x00000040,0x22001240, -0x16000160,0x03200320,0x00000001,0xa0003a28,0x00000144,0x00000000,0x00000041,0x20e03ae8, -0x3a000140,0x00000100,0x00000001,0xa0203a28,0x000000e0,0x00000000,0x00000020,0x34000004, -0x0e001400,0x00000120,0x00000001,0x20e002e8,0x0000032c,0x00000000,0x00000040,0x21040a28, -0x1e000624,0x00560056,0x00000041,0x20e43ae8,0x3a000628,0x000000e0,0x00000041,0x21201248, -0x16000104,0x00040004,0x09000038,0x21003ae8,0x3e0000e4,0x42c80000,0x00000040,0x22001240, -0x16000120,0x03200320,0x00000001,0xa0003a28,0x00000100,0x00000000,0x00000040,0x22001240, -0x16000624,0x06200620,0x00000001,0x214022e8,0x00008000,0x00000000,0x00000041,0x21443ae8, -0x3a000140,0x000000e0,0x00000040,0x21640a28,0x1e000624,0x00480048,0x09000038,0x21603ae8, -0x3e000144,0x42c80000,0x00000041,0x21801248,0x16000164,0x00040004,0x00000040,0x22001240, -0x16000180,0x03200320,0x00000001,0xa0003a28,0x00000160,0x00000000,0x00000041,0x21a03ae8, -0x3a000140,0x000000e0,0x09000038,0x21c03ae8,0x3e0001a0,0x42c80000,0x00000001,0xa0203a28, -0x000001c0,0x00000000,0x00000040,0x26240a28,0x1e000624,0x00010001,0x05000010,0x20000a20, -0x1e000624,0x00040004,0x00010020,0x34000004,0x0e001400,0xfffffd50,0x00000001,0x26241e28, -0x00000000,0x00000000,0x00000040,0x20e00a28,0x1e000624,0x00100010,0x00000040,0x22001240, -0x160000e0,0x02f802f8,0x00000001,0x262c2ae8,0x00008000,0x00000000,0x0d000038,0x21000208, -0x06000328,0x00000064,0x02000010,0x20000200,0x16000100,0x00000000,0x00010020,0x34000004, -0x0e001400,0x00000130,0x0c000038,0x20e00208,0x06000328,0x00000064,0x00000040,0x21080a28, -0x1e000624,0x003e003e,0x00000041,0x21201248,0x16000108,0x00040004,0x00000001,0x210002e8, -0x000000e0,0x00000000,0x00000040,0x22001240,0x16000120,0x03200320,0x00000041,0x21043ae8, -0x3a00062c,0x00000100,0x00000001,0xa0003a28,0x00000104,0x00000000,0x00000040,0x21400a28, -0x1e000624,0x00380038,0x00000040,0x22001240,0x16000140,0x02c002c0,0x00000001,0x21602ae8, -0x00008000,0x00000000,0x00000040,0x21840a28,0x1e000624,0x002a002a,0x00000041,0x21803ae8, -0x3a000160,0x00000100,0x00000041,0x21a01248,0x16000184,0x00040004,0x00000040,0x22021240, -0x160001a0,0x03200320,0x00000001,0xa2003a28,0x00000180,0x00000000,0x00000001,0x20e02ae8, -0x00008008,0x00000000,0x00000041,0x21c03ae8,0x3a0000e0,0x00000100,0x00000001,0xa2283a28, -0x000001c0,0x00000000,0x00000020,0x34000004,0x0e001400,0x00000140,0x00000001,0x20e002e8, -0x00000328,0x00000000,0x00000040,0x21040a28,0x1e000624,0x003e003e,0x00000041,0x20e43ae8, -0x3a00062c,0x000000e0,0x00000041,0x21201248,0x16000104,0x00040004,0x09000038,0x21003ae8, -0x3e0000e4,0x42c80000,0x00000040,0x22001240,0x16000120,0x03200320,0x00000001,0xa0003a28, -0x00000100,0x00000000,0x00000040,0x21400a28,0x1e000624,0x00380038,0x00000040,0x22001240, -0x16000140,0x02c002c0,0x00000001,0x21602ae8,0x00008000,0x00000000,0x00000041,0x21803ae8, -0x3a000160,0x000000e0,0x00000040,0x21a40a28,0x1e000624,0x002a002a,0x09000038,0x21a03ae8, -0x3e000180,0x42c80000,0x00000041,0x21c01248,0x160001a4,0x00040004,0x00000040,0x22021240, -0x160001c0,0x03200320,0x00000001,0xa2003a28,0x000001a0,0x00000000,0x00000001,0x20e42ae8, -0x00008008,0x00000000,0x00000041,0x21203ae8,0x3a0000e4,0x000000e0,0x09000038,0x21003ae8, -0x3e000120,0x42c80000,0x00000001,0xa2283a28,0x00000100,0x00000000,0x00000040,0x26240a28, -0x1e000624,0x00010001,0x05000010,0x20000a20,0x1e000624,0x00080008,0x00010020,0x34000004, -0x0e001400,0xfffffd00,0x00000001,0x23480208,0x00000324,0x00000000,0x00000040,0x20e00208, -0x02000348,0x000002b4,0x04000010,0x20000200,0x020000e0,0x00000328,0x00010020,0x34000004, -0x0e001400,0x00000020,0x00000001,0x26301608,0x00000000,0x00000000,0x00000020,0x34000004, -0x0e001400,0x00000070,0x02000010,0x20002260,0x1e0005f0,0x00010001,0x00010020,0x34000004, -0x0e001400,0x00000020,0x00000001,0x26341608,0x00000000,0x00000000,0x00000020,0x34000004, -0x0e001400,0x00000020,0x00000040,0x20e00208,0x02000348,0x000002b4,0x00000040,0x26340208, -0x020000e0,0x00004328,0x00000001,0x26300208,0x00000634,0x00000000,0x00000041,0x20e01228, -0x160005ba,0x00190019,0x00000001,0x214002e8,0x00000338,0x00000000,0x00000001,0x214402e8, -0x0000033c,0x00000000,0x00000041,0x21040208,0x120002b0,0x000005d4,0x00000001,0x24fc1608, -0x00000000,0x00000000,0x00000001,0x239c0208,0x00000348,0x00000000,0x00000001,0x23980208, -0x00000630,0x00000000,0x00000040,0x21000a08,0x1e0000e0,0x012c012c,0x09000038,0x20e03ae8, -0x3a000140,0x00000144,0x00000001,0x25000208,0x000004fc,0x00000000,0x0c000038,0x21200208, -0x02000104,0x00000100,0x00000001,0x23600208,0x000004fc,0x00000000,0x00000001,0x238c0208, -0x000004fc,0x00000000,0x00000001,0x41603a4c,0x000000e0,0x00000000,0x00000041,0x24e40208, -0x16000120,0x00190019,0x00000041,0x23900208,0x16000120,0x012c012c,0x00000001,0x25da1248, -0x00000160,0x00000000,0x00000001,0x23880208,0x000004e4,0x00000000,0x01000005,0x20001220, -0x160005da,0x00010001,0x00010020,0x34000004,0x0e001400,0x00000010,0x00000040,0x25da1248, -0x160005da,0x00010001,0x02000010,0x20000200,0x160002a4,0x00000000,0x0000000c,0x26381228, -0x160005da,0x00010001,0x00010020,0x34000004,0x0e001400,0x00000010,0x00000001,0x25a00a08, -0x00000638,0x00000000,0x00000041,0x25240208,0x020005a0,0x000002b0,0x00000040,0x20e01208, -0x1e0005cc,0xff9cff9c,0x02000010,0x20000200,0x160002a4,0x00000000,0x00000041,0x21000208, -0x020000e0,0x00000524,0x0c000038,0x251c0208,0x06000100,0x00000064,0x00010020,0x34000004, -0x0e001400,0x000000b0,0x06000010,0x20000a20,0x1e000638,0x00000000,0x00000001,0x26241e28, -0x00000000,0x00000000,0x00000001,0x25201608,0x00000000,0x00000000,0x00010020,0x34000004, -0x0e001400,0x00000070,0x00000040,0x20e00a28,0x1e000624,0x00820082,0x00000041,0x21001248, -0x160000e0,0x00040004,0x00000040,0x22001240,0x16000100,0x03200320,0x00000001,0xa0001608, -0x00000000,0x00000000,0x00000040,0x26240a28,0x1e000624,0x00010001,0x05000010,0x20000a20, -0x0a000624,0x00000638,0x00010020,0x34000004,0x0e001400,0xffffff90,0x02000010,0x20002260, -0x1e0002ac,0x00000000,0x00010020,0x34000004,0x0e001400,0x00000030,0x00000041,0x40e00a4c, -0x1e000638,0x00020002,0x00000001,0x25da1248,0x000000e0,0x00000000,0x00000020,0x34000004, -0x0e001400,0x00000030,0x03000010,0x20001260,0x1e0005da,0x001e001e,0x00010020,0x34000004, -0x0e001400,0x00000010,0x00000001,0x25da1648,0x00000000,0x003c003c,0x06000010,0x20000200, -0x160002b8,0x001e001e,0x00010020,0x34000004,0x0e001400,0x00000020,0x01000005,0x20001220, -0x160005da,0x00010001,0x00010020,0x34000004,0x0e001400,0x00000090,0x00000009,0x40e0024c, -0x160002b8,0x00010001,0x00000001,0x25da1248,0x000000e0,0x00000000,0x04000010,0x20001260, -0x1e0005da,0x000c000c,0x00010020,0x34000004,0x0e001400,0x00000050,0x00000001,0x20e01608, -0x00000000,0x000c000c,0x00000001,0x20e41208,0x000005da,0x00000000,0x0c000038,0x21000228, -0x020000e0,0x000000e4,0x00000041,0x41200a4c,0x12000100,0x000005da,0x00000001,0x25da1248, -0x00000120,0x00000000,0x00000041,0x20e01228,0x120005be,0x000005c0,0x00000001,0x21a802e8, -0x0000033c,0x00000000,0x00000001,0x218402e8,0x00000338,0x00000000,0x00000001,0x21a402e8, -0x0000032c,0x00000000,0x00000001,0x24ec1608,0x00000000,0x00000000,0x00000001,0x23800208, -0x000002c4,0x00000000,0x00000001,0x25dc1248,0x000002e4,0x00000000,0x00000041,0x21000a28, -0x1e0000e0,0x00030003,0x02000038,0x20e03ee8,0x00000000,0x41200000,0x00000041,0x21c03ae8, -0x3a0001a4,0x000001a8,0x00000001,0x25e01248,0x000002f4,0x00000000,0x00000001,0x25de1248, -0x000002e6,0x00000000,0x00000001,0x24f40208,0x000004ec,0x00000000,0x0000000c,0x21200a28, -0x1e000100,0x00010001,0x00000001,0x24f00208,0x000004ec,0x00000000,0x00000001,0x24f80208, -0x000004ec,0x00000000,0x00000001,0x21400ae8,0x00000120,0x00000000,0x00000040,0x21603ae8, -0x3a000140,0x00000140,0x09000038,0x21803ae8,0x3e000160,0x40400000,0x00000041,0x21a03ae8, -0x3a000180,0x00000184,0x00000001,0x21803ee8,0x00000000,0x41200000,0x09000038,0x21e03ae8, -0x3a0001a0,0x000001c0,0x02000038,0x22003ae8,0x000001e0,0x00000000,0x09000038,0x21003ae8, -0x3a000200,0x000000e0,0x00000040,0x21203ae8,0x3e000100,0x80000000,0x00000041,0x21403ae8, -0x3e000120,0x3f0f5c28,0x09000038,0x21603ae8,0x3e000140,0x3fe00000,0x00000040,0x22203ae8, -0x3e000160,0x3f9851ec,0x0a000038,0x22403ae8,0x3a000180,0x00000220,0x00000041,0x22603ae8, -0x3e000240,0x3f555555,0x00000040,0x22803ae8,0x3e000260,0x3f000000,0x00000001,0x21a03a28, -0x00000280,0x00000000,0x00000001,0x21c00ae8,0x000001a0,0x00000000,0x00000041,0x21e03ae8, -0x3e0001c0,0x40a00000,0x00000001,0x20e03a28,0x000001e0,0x00000000,0x00000040,0x21000a28, -0x1e0000e0,0xffecffec,0x05000002,0x21200a28,0x1e000100,0x00c800c8,0x04000002,0x263c0a28, -0x1e000120,0x00010001,0x06000010,0x20000a20,0x1e00063c,0x00040004,0x00010020,0x34000004, -0x0e001400,0x00000020,0x00000040,0x26400a28,0x1e00063c,0xfffcfffc,0x00000020,0x34000004, -0x0e001400,0x00000010,0x00000001,0x26400a28,0x0000063c,0x00000000,0x00000001,0x20e01208, -0x000005ba,0x00000000,0x00000041,0x21680208,0x1600033c,0x00140014,0x02000010,0x20002260, -0x1e0002ac,0x00030003,0x0c000038,0x21000228,0x060000e0,0x0000001e,0x0c000038,0x21800208, -0x02000338,0x00000168,0x00000040,0x41200a68,0x1e000100,0xffffffff,0x00000041,0x21a00208, -0x16000180,0x000c000c,0x05000002,0x21401a28,0x1e000120,0x00140014,0x04000002,0x41600a68, -0x1e000140,0x00000000,0x00000001,0x21641a08,0x00000160,0x00000000,0x00000040,0x21c00208, -0x02000164,0x000001a0,0x00000001,0x41600268,0x000001c0,0x00000000,0x00000040,0x21e00a28, -0x1a000640,0x00004160,0x05000002,0x22000a28,0x1e0001e0,0x00c800c8,0x04000002,0x26400a28, -0x1e000200,0x00010001,0x00000040,0x263c0a28,0x1e000640,0x00140014,0x00010020,0x34000004, -0x0e001400,0x00000050,0x00000040,0x20e01228,0x1e0005ca,0xffe0ffe0,0x04000002,0x263c1228, -0x0a0005ca,0x0000063c,0x04000010,0x20000a20,0x0a000640,0x000000e0,0x00010020,0x34000004, -0x0e001400,0x00000010,0x00000040,0x26401228,0x1e0005ca,0xffe0ffe0,0x04000002,0x26401228, -0x0a0005c6,0x00000640,0x00000005,0x21800208,0x06000024,0xff000000,0x00000005,0x21400208, -0x0600002c,0xff000000,0x04000002,0x263c1228,0x0a0005c6,0x0000063c,0x00000005,0x21000a28, -0x0e00002c,0x00ff0000,0x00000001,0x23741608,0x00000000,0x00000000,0x00000001,0x45f31ea8, -0x00000000,0xffffffff,0x05000002,0x26401228,0x0a0005c8,0x00000640,0x0000000c,0x66440288, -0x16000180,0x00180018,0x00000001,0x45f61e88,0x00000000,0x00000000,0x0000000c,0x6160028c, -0x16000140,0x00180018,0x05000002,0x65e91288,0x0a0005c8,0x0000063c,0x0000000c,0x61200a8c, -0x1e000100,0x00100010,0x00000005,0x65fc0a88,0x1e00002c,0x00ff00ff,0x00000001,0x60e00a8c, -0x00000640,0x00000000,0x00000040,0x21a00a28,0x1e000640,0x00060006,0x06000010,0x20002260, -0x1e000644,0x00010001,0x00000001,0x24d41e28,0x00000000,0xffffffff,0x00600001,0x249c1e28, -0x00000000,0xffffffff,0x00200001,0x24cc1e28,0x00000000,0xffffffff,0x00000001,0x24e81608, -0x00000000,0x00010001,0x00000001,0x45eb2288,0x000000e0,0x00000000,0x05000002,0x26400a28, -0x1e0001a0,0x00f000f0,0x00000005,0x20e00a28,0x0e00002c,0x0000ff00,0x00000001,0x25d81648, -0x00000000,0x00000000,0x00400001,0x24bc1e28,0x00000000,0xffffffff,0x00000001,0x237c0208, -0x00000374,0x00000000,0x00000001,0x23780208,0x00000374,0x00000000,0x00000001,0x45e82aa8, -0x000005f3,0x00000000,0x00000001,0x45f82aa8,0x000005f3,0x00000000,0x00000001,0x45f52288, -0x00000644,0x00000000,0x00000001,0x45f22288,0x000005f6,0x00000000,0x00000001,0x45ff2288, -0x00000160,0x00000000,0x00000001,0x45ed2288,0x000005e9,0x00000000,0x00000001,0x45fe2288, -0x00000120,0x00000000,0x00000001,0x45ef2288,0x000005eb,0x00000000,0x00000040,0x263c0a28, -0x1e000640,0x00140014,0x0000000c,0x65fd0a88,0x1e0000e0,0x00080008,0x00010020,0x34000004, -0x0e001400,0x00000330,0x00000041,0x21002228,0x1e0005fc,0x000c000c,0x00000041,0x20e00208, -0x220002b0,0x000005fc,0x00000001,0x21602228,0x000005fd,0x00000000,0x00000041,0x21400208, -0x220002b0,0x000005fd,0x0c000038,0x21040a28,0x0e000100,0x00000040,0x0000000c,0x24d80208, -0x160000e0,0x00060006,0x0c000038,0x20e00a28,0x0a000100,0x00000160,0x0000000c,0x24dc0208, -0x16000140,0x00060006,0x00000040,0x26480a28,0x1e000104,0xfff4fff4,0x00000040,0x26400a28, -0x0a000640,0x00004648,0x00000040,0x263c0a28,0x0a00063c,0x00004648,0x00000040,0x26480a28, -0x1e0000e0,0xfff4fff4,0x00000001,0x61200a8c,0x00000640,0x00000000,0x00000001,0x65ed0a88, -0x0000063c,0x00000000,0x06000010,0x20000a20,0x1e000648,0x000c000c,0x00000001,0x45ef2288, -0x00000120,0x00000000,0x00010020,0x34000004,0x0e001400,0x00000020,0x0000000c,0x20e00a28, -0x1e000648,0x00020002,0x00000040,0x26480a28,0x1e0000e0,0x000c000c,0x06000010,0x20002260, -0x1e000644,0x00020002,0x00000040,0x65f90a88,0x0a000648,0x0000063c,0x00010020,0x34000004, -0x0e001400,0x000001a0,0x00000041,0x21002228,0x1e0005fc,0x000c000c,0x00000001,0x21042228, -0x000005fe,0x00000000,0x00000041,0x20e00208,0x220002b0,0x000005fe,0x0c000038,0x21200a28, -0x0a000100,0x00000104,0x0000000c,0x24e00208,0x160000e0,0x00060006,0x00000040,0x26480a28, -0x1e000120,0xfff4fff4,0x06000010,0x20000a20,0x1e000648,0x000c000c,0x00010020,0x34000004, -0x0e001400,0x00000020,0x0000000c,0x20e00a28,0x1e000648,0x00020002,0x00000040,0x26480a28, -0x1e0000e0,0x000c000c,0x00000040,0x60e00a8c,0x0a000648,0x0000063c,0x06000010,0x20002260, -0x1e000644,0x00030003,0x00000001,0x45fa2288,0x000000e0,0x00000000,0x00010020,0x34000004, -0x0e001400,0x000000c0,0x00000041,0x21002228,0x1e0005fc,0x000c000c,0x00000001,0x21042228, -0x000005ff,0x00000000,0x00000041,0x20e00208,0x220002b0,0x000005ff,0x0c000038,0x21200a28, -0x0a000100,0x00000104,0x0000000c,0x25040208,0x160000e0,0x00060006,0x00000040,0x26480a28, -0x1e000120,0xfff4fff4,0x06000010,0x20000a20,0x1e000648,0x000c000c,0x00010020,0x34000004, -0x0e001400,0x00000020,0x0000000c,0x20e00a28,0x1e000648,0x00020002,0x00000040,0x26480a28, -0x1e0000e0,0x000c000c,0x00000040,0x60e00a8c,0x0a000648,0x0000063c,0x00000001,0x45fb2288, -0x000000e0,0x00000000,0x00000001,0x60e00a8c,0x00000640,0x00000000,0x00000001,0x65e90a88, -0x0000063c,0x00000000,0x00000001,0x45eb2288,0x000000e0,0x00000000,0x00000001,0x250c1608, -0x00000000,0x00000000,0x00000001,0x264c1e28,0x00000000,0x00000000,0x00000001,0x25140208, -0x0000050c,0x00000000,0x00000001,0x25100208,0x0000050c,0x00000000,0x00000001,0x23680208, -0x0000050c,0x00000000,0x00000001,0x23640208,0x0000050c,0x00000000,0x00000001,0x236c0208, -0x0000050c,0x00000000,0x00000001,0x23700208,0x0000050c,0x00000000,0x00000009,0x20e00a28, -0x1e00064c,0x00050005,0x00000009,0x20e40a28,0x1e00064c,0x00070007,0x00000041,0x21001248, -0x160000e0,0x00040004,0x00000040,0x22001240,0x16000100,0x03200320,0x00600001,0x21200208, -0x00208000,0x00000000,0x00600001,0x21400208,0x00208020,0x00000000,0x00600001,0x21600208, -0x00208040,0x00000000,0x00600001,0x21800208,0x00208060,0x00000000,0x00000040,0x264c0a28, -0x1e00064c,0x00010001,0x00000008,0x21a80a08,0x1e0000e4,0x00040004,0x00000040,0x22000204, -0x060000e8,0x020a0400,0x05000010,0x20000a20,0x1e00064c,0x00060006,0x0a800033,0x00009054, -0x000021a4,0x00000000,0x00010020,0x34000004,0x0e001400,0xffffff20,0x0000000c,0x20e01228, -0x16000020,0x00020002,0x0000000c,0x21241228,0x16000022,0x00020002,0x00800001,0x26601e08, -0x00000000,0x00000000,0x00800001,0x26a01e08,0x00000000,0x00000000,0x00800001,0x27201e08, -0x00000000,0x00000000,0x00000040,0x21000a28,0x1e0000e0,0x000f000f,0x00000040,0x21400a28, -0x1e000124,0x000f000f,0x00800001,0x26e01e08,0x00000000,0x00000000,0x00000001,0x26581e28, -0x00000000,0x00000000,0x00000005,0x21200a08,0x1e000100,0xfff0fff0,0x00000005,0x21600a08, -0x1e000140,0xfff0fff0,0x0000000c,0x21640208,0x16000120,0x00020002,0x0600000c,0x26540208, -0x16000160,0x00020002,0x00000009,0x26500208,0x16000164,0x00010001,0x00010020,0x34000004, -0x0e001400,0x000000e8,0x06000010,0x20000200,0x16000650,0x00000000,0x00000001,0x265c1e28, -0x00000000,0x00000000,0x00010020,0x34000004,0x0e001400,0x00000088,0x20004d01,0x00000807, -0x00000001,0x2100020c,0x0000065c,0x00000000,0x00000040,0x265c0a28,0x1e00065c,0x00100010, -0x00000040,0x22000204,0x060000f0,0x020a8000,0x00000001,0x2104020c,0x00000658,0x00000000, -0x00000001,0x2108060c,0x00000000,0x0007001f,0x05000010,0x20000200,0x0200065c,0x00000650, -0x0c600033,0x00033014,0x00002108,0x00000000,0x00010020,0x34000004,0x0e001400,0xffffff78, -0x00000040,0x26580a28,0x1e000658,0x00100010,0x05000010,0x20000200,0x02000658,0x00000654, -0x00010020,0x34000004,0x0e001400,0xffffff18,0x20004d01,0x00007f07,0x07000031,0x20003a00, -0x06000fe0,0x82000010,0x2000007d,0x2000000c,0x2000007d,0x2000000c,0x2000007d,0x2000000c, -0x2000007d,0x2000000c,0x2000007d,0x2000000c,0x2000007d,0x2000000c,0x2000007d,0x2000000c, -0x00000001,0x22a01e28,0x00000000,0x00000000,0x00000040,0x20e00a28,0x1e0002a0,0x00040004, -0x00000041,0x21021248,0x160002a0,0x00040004,0x00000041,0x21001248,0x160000e0,0x00040004, -0x00000040,0x22021240,0x16000100,0x00200020,0x00000040,0x22001240,0x16000102,0x02c002c0, -0x00000001,0xa0000a08,0x00008200,0x00000000,0x00000040,0x22a00a28,0x1e0002a0,0x00010001, -0x05000010,0x20000a20,0x1e0002a0,0x00140014,0x00010020,0x34000004,0x0e001400,0xffffff70, -0x00000001,0x22a41e28,0x00000000,0x00000000,0x00000009,0x20e40a28,0x1e0002a4,0x00070007, -0x00000040,0x22000204,0x060000e8,0x02480400,0x00000009,0x20e00a28,0x1e0002a4,0x00050005, -0x00000008,0x21080a08,0x1e0000e4,0x00040004,0x00000041,0x21a01248,0x160000e0,0x00040004, -0x0a800031,0x21203a6c,0x00000100,0x00000200,0x00000040,0x22001240,0x160001a0,0x03200320, -0x00600001,0xa0000208,0x008d0120,0x00000000,0x00600001,0xa0200208,0x008d0140,0x00000000, -0x00600001,0xa0400208,0x008d0160,0x00000000,0x00600001,0xa0600208,0x008d0180,0x00000000, -0x00000040,0x22a40a28,0x1e0002a4,0x00010001,0x05000010,0x20000a20,0x1e0002a4,0x00060006, -0x00010020,0x34000004,0x0e001400,0xffffff20,0x00000001,0x25b81248,0x000002e0,0x00000000, -0x00000001,0x22a80208,0x00000330,0x00000000,0x00000001,0x25c81248,0x000002ee,0x00000000, -0x00000001,0x25cc1248,0x000002f6,0x00000000,0x00000001,0x25c61248,0x000002ec,0x00000000, -0x00000001,0x25c01248,0x000002e6,0x00000000,0x00000001,0x25c41248,0x000002ea,0x00000000, -0x01000005,0x20001220,0x160005b8,0x00100010,0x00000001,0x25be1248,0x000002e4,0x00000000, -0x00000001,0x25ba1248,0x000002e2,0x00000000,0x00000001,0x25c21248,0x000002e8,0x00000000, -0x00000001,0x25ca1248,0x000002f0,0x00000000,0x20004b01,0x00161907,0x00010020,0x34000004, -0x0e001400,0x00000020,0x00000001,0x22ac1e28,0x00000000,0x00000000,0x00000020,0x34000004, -0x0e001400,0x00000090,0x01000005,0x20001220,0x160005b8,0x00200020,0x00010020,0x34000004, -0x0e001400,0x00000020,0x00000001,0x22ac1e28,0x00000000,0x00010001,0x00000020,0x34000004, -0x0e001400,0x00000050,0x01000005,0x20001220,0x160005b8,0x00400040,0x00010020,0x34000004, -0x0e001400,0x00000020,0x00000001,0x22ac1e28,0x00000000,0x00020002,0x00000020,0x34000004, -0x0e001400,0x00000010,0x00000001,0x22ac1e28,0x00000000,0x00030003,0x00000001,0x62b00a88, -0x000002ac,0x00000000,0x00000001,0x65f00a88,0x000002ac,0x00000000,0x00000005,0x20e00008, -0x06001000,0xffffffcf,0x00008006,0x30000200,0x160000e0,0x00300030,0x00000001,0x212402e8, -0x00000338,0x00000000,0x00000001,0x210402e8,0x0000033c,0x00000000,0x00000001,0x214402e8, -0x00000330,0x00000000,0x00000001,0x210002e8,0x0000032c,0x00000000,0x09000038,0x20e03ae8, -0x3a000124,0x00000104,0x00000041,0x21603ae8,0x3a000144,0x00000104,0x00000041,0x21203ae8, -0x3a000100,0x00000104,0x09000038,0x21803ae8,0x3a000160,0x00000124,0x09000038,0x21403ae8, -0x3a000120,0x00000124,0x00000001,0x41c03a4c,0x000000e0,0x00000000,0x00000001,0x25da1248, -0x000001c0,0x00000000,0x00000046,0x21a03ae8,0x00000180,0x00000000,0x00000046,0x21843ae8, -0x00000140,0x00000000,0x01000005,0x20001220,0x160005da,0x00010001,0x00000001,0x23443a08, -0x000001a0,0x00000000,0x00000001,0x23403a08,0x00000184,0x00000000,0x00000001,0x22b43a08, -0x00000184,0x00000000,0x00000001,0x24e43a08,0x00000184,0x00000000,0x00010020,0x34000004, -0x0e001400,0x00000010,0x00000040,0x25da1248,0x160005da,0x00010001,0x02000010,0x20000200, -0x160002a8,0x00000000,0x0000000c,0x22b81228,0x160005da,0x00010001,0x00010020,0x34000004, -0x0e001400,0x00000010,0x00000001,0x25a00a08,0x000002b8,0x00000000,0x00000041,0x25240208, -0x020005a0,0x000002b4,0x00000040,0x20e01208,0x1e0005cc,0xff9cff9c,0x02000010,0x20000200, -0x160002a8,0x00000000,0x00000041,0x21000208,0x020000e0,0x00000524,0x0c000038,0x251c0208, -0x06000100,0x00000064,0x00010020,0x34000004,0x0e001400,0x000000b0,0x06000010,0x20000a20, -0x1e0002b8,0x00000000,0x00000001,0x25201608,0x00000000,0x00000000,0x00000001,0x22a01e28, -0x00000000,0x00000000,0x00010020,0x34000004,0x0e001400,0x00000070,0x00000040,0x20e00a28, -0x1e0002a0,0x00820082,0x00000041,0x21001248,0x160000e0,0x00040004,0x00000040,0x22001240, -0x16000100,0x03200320,0x00000001,0xa0001608,0x00000000,0x00000000,0x00000040,0x22a00a28, -0x1e0002a0,0x00010001,0x05000010,0x20000a20,0x0a0002a0,0x000002b8,0x00010020,0x34000004, -0x0e001400,0xffffff90,0x02000010,0x20002260,0x1e0002b0,0x00000000,0x00010020,0x34000004, -0x0e001400,0x00000030,0x00000041,0x40e00a4c,0x1e0002b8,0x00020002,0x00000001,0x25da1248, -0x000000e0,0x00000000,0x00000020,0x34000004,0x0e001400,0x00000030,0x03000010,0x20001260, -0x1e0005da,0x001e001e,0x00010020,0x34000004,0x0e001400,0x00000010,0x00000001,0x25da1648, -0x00000000,0x003c003c,0x00000040,0x20e01208,0x160005ba,0x00010001,0x01000010,0x20002260, -0x1e0002b0,0x00030003,0x05000002,0x45d40248,0x160000e0,0xffffffff,0x00010020,0x34000004, -0x0e001400,0x000002d0,0x00000041,0x20e01228,0x120005be,0x000005c0,0x00000001,0x21a802e8, -0x0000033c,0x00000000,0x00000001,0x218402e8,0x00000338,0x00000000,0x00000001,0x21a402e8, -0x0000032c,0x00000000,0x00000041,0x21000a28,0x1e0000e0,0x00030003,0x02000038,0x20e03ee8, -0x00000000,0x41200000,0x00000041,0x21c03ae8,0x3a0001a4,0x000001a8,0x0000000c,0x21200a28, -0x1e000100,0x00010001,0x00000001,0x21400ae8,0x00000120,0x00000000,0x00000040,0x21603ae8, -0x3a000140,0x00000140,0x09000038,0x21803ae8,0x3e000160,0x40400000,0x00000041,0x21a03ae8, -0x3a000180,0x00000184,0x00000001,0x21803ee8,0x00000000,0x41200000,0x09000038,0x21e03ae8, -0x3a0001a0,0x000001c0,0x02000038,0x22003ae8,0x000001e0,0x00000000,0x09000038,0x21003ae8, -0x3a000200,0x000000e0,0x00000040,0x21203ae8,0x3e000100,0x80000000,0x00000041,0x21403ae8, -0x3e000120,0x3f0f5c28,0x09000038,0x21603ae8,0x3e000140,0x3fe00000,0x00000040,0x22203ae8, -0x3e000160,0x3f9851ec,0x0a000038,0x22403ae8,0x3a000180,0x00000220,0x00000041,0x22603ae8, -0x3e000240,0x3f555555,0x00000040,0x22803ae8,0x3e000260,0x3f000000,0x00000001,0x21a03a28, -0x00000280,0x00000000,0x00000001,0x21c00ae8,0x000001a0,0x00000000,0x00000041,0x21e03ae8, -0x3e0001c0,0x40a00000,0x00000001,0x20e03a28,0x000001e0,0x00000000,0x00000040,0x21000a28, -0x1e0000e0,0xffecffec,0x05000002,0x21200a28,0x1e000100,0x00c800c8,0x04000002,0x22bc0a28, -0x1e000120,0x00010001,0x06000010,0x20000a20,0x1e0002bc,0x00040004,0x00010020,0x34000004, -0x0e001400,0x00000020,0x00000040,0x26200a28,0x1e0002bc,0xfffcfffc,0x00000020,0x34000004, -0x0e001400,0x00000010,0x00000001,0x26200a28,0x000002bc,0x00000000,0x00000001,0x20e01208, -0x000005ba,0x00000000,0x0c000038,0x21000228,0x060000e0,0x0000001e,0x00000040,0x41200a68, -0x1e000100,0xffffffff,0x05000002,0x21401a28,0x1e000120,0x00140014,0x04000002,0x41600a68, -0x1e000140,0x00000000,0x00000040,0x21800a28,0x1a000620,0x00004160,0x05000002,0x21a00a28, -0x1e000180,0x00c800c8,0x04000002,0x26200a28,0x1e0001a0,0x00010001,0x00000040,0x22bc0a28, -0x1e000620,0x00140014,0x00000020,0x34000004,0x0e001400,0x00000060,0x06000010,0x20001260, -0x1e0005ca,0x00040004,0x00000001,0x22bc1228,0x000005ca,0x00000000,0x00010020,0x34000004, -0x0e001400,0x00000020,0x00000040,0x26201228,0x1e0005ca,0xfffcfffc,0x00000020,0x34000004, -0x0e001400,0x00000010,0x00000001,0x26201228,0x000005ca,0x00000000,0x04000002,0x26201228, -0x0a0005c6,0x00000620,0x04000002,0x22bc1228,0x0a0005c6,0x000002bc,0x00000001,0x462b1e88, -0x00000000,0x00780078,0x00000001,0x462a1e88,0x00000000,0x00460046,0x00000001,0x46271e88, -0x00000000,0x00730073,0x00000001,0x46291e88,0x00000000,0x00320032,0x00000001,0x46261e88, -0x00000000,0x005a005a,0x05000002,0x60e0128c,0x0a0005c8,0x00000620,0x05000002,0x65ed1288, -0x0a0005c8,0x000002bc,0x00000001,0x46251e88,0x00000000,0x00320032,0x00000001,0x46241e88, -0x00000000,0x001e001e,0x00000001,0x46281e88,0x00000000,0x001e001e,0x00000001,0x22a01e28, -0x00000000,0x00000000,0x00000001,0x45ef2288,0x000000e0,0x00000000,0x00000001,0x45e92288, -0x000005ed,0x00000000,0x00000001,0x45eb2288,0x000005ef,0x00000000,0x00000040,0x22001240, -0x160002a0,0x06240624,0x00000001,0x262c22e8,0x00008000,0x00000000,0x0d000038,0x20e00208, -0x0600032c,0x00000064,0x02000010,0x20000200,0x160000e0,0x00000000,0x00010020,0x34000004, -0x0e001400,0x00000110,0x0c000038,0x20e00208,0x0600032c,0x00000064,0x00000040,0x21080a28, -0x1e0002a0,0x00560056,0x00000041,0x21201248,0x16000108,0x00040004,0x00000001,0x210002e8, -0x000000e0,0x00000000,0x00000040,0x22001240,0x16000120,0x03200320,0x00000041,0x21043ae8, -0x3a00062c,0x00000100,0x00000001,0xa0003a28,0x00000104,0x00000000,0x00000040,0x22001240, -0x160002a0,0x06280628,0x00000001,0x214022e8,0x00008000,0x00000000,0x00000040,0x21480a28, -0x1e0002a0,0x00480048,0x00000041,0x21443ae8,0x3a000140,0x00000100,0x00000041,0x21601248, -0x16000148,0x00040004,0x00000040,0x22001240,0x16000160,0x03200320,0x00000001,0xa0003a28, -0x00000144,0x00000000,0x00000041,0x20e03ae8,0x3a000140,0x00000100,0x00000001,0xa0203a28, -0x000000e0,0x00000000,0x00000020,0x34000004,0x0e001400,0x00000120,0x00000001,0x20e002e8, -0x0000032c,0x00000000,0x00000040,0x21040a28,0x1e0002a0,0x00560056,0x00000041,0x20e43ae8, -0x3a00062c,0x000000e0,0x00000041,0x21201248,0x16000104,0x00040004,0x09000038,0x21003ae8, -0x3e0000e4,0x42c80000,0x00000040,0x22001240,0x16000120,0x03200320,0x00000001,0xa0003a28, -0x00000100,0x00000000,0x00000040,0x22001240,0x160002a0,0x06280628,0x00000001,0x214022e8, -0x00008000,0x00000000,0x00000041,0x21443ae8,0x3a000140,0x000000e0,0x00000040,0x21640a28, -0x1e0002a0,0x00480048,0x09000038,0x21603ae8,0x3e000144,0x42c80000,0x00000041,0x21801248, -0x16000164,0x00040004,0x00000040,0x22001240,0x16000180,0x03200320,0x00000001,0xa0003a28, -0x00000160,0x00000000,0x00000041,0x21a03ae8,0x3a000140,0x000000e0,0x09000038,0x21c03ae8, -0x3e0001a0,0x42c80000,0x00000001,0xa0203a28,0x000001c0,0x00000000,0x00000040,0x22a00a28, -0x1e0002a0,0x00010001,0x05000010,0x20000a20,0x1e0002a0,0x00040004,0x00010020,0x34000004, -0x0e001400,0xfffffd50,0x00000001,0x22a01e28,0x00000000,0x00000000,0x00000040,0x20e00a28, -0x1e0002a0,0x00100010,0x00000040,0x22001240,0x160000e0,0x02f802f8,0x00000001,0x26302ae8, -0x00008000,0x00000000,0x0d000038,0x21000208,0x06000328,0x00000064,0x02000010,0x20000200, -0x16000100,0x00000000,0x00010020,0x34000004,0x0e001400,0x00000130,0x0c000038,0x20e00208, -0x06000328,0x00000064,0x00000040,0x21080a28,0x1e0002a0,0x003e003e,0x00000041,0x21201248, -0x16000108,0x00040004,0x00000001,0x210002e8,0x000000e0,0x00000000,0x00000040,0x22001240, -0x16000120,0x03200320,0x00000041,0x21043ae8,0x3a000630,0x00000100,0x00000001,0xa0003a28, -0x00000104,0x00000000,0x00000040,0x21400a28,0x1e0002a0,0x00380038,0x00000040,0x22001240, -0x16000140,0x02c002c0,0x00000001,0x21602ae8,0x00008000,0x00000000,0x00000040,0x21840a28, -0x1e0002a0,0x002a002a,0x00000041,0x21803ae8,0x3a000160,0x00000100,0x00000041,0x21a01248, -0x16000184,0x00040004,0x00000040,0x22021240,0x160001a0,0x03200320,0x00000001,0xa2003a28, -0x00000180,0x00000000,0x00000001,0x20e02ae8,0x00008008,0x00000000,0x00000041,0x21c03ae8, -0x3a0000e0,0x00000100,0x00000001,0xa2283a28,0x000001c0,0x00000000,0x00000020,0x34000004, -0x0e001400,0x00000140,0x00000001,0x20e002e8,0x00000328,0x00000000,0x00000040,0x21040a28, -0x1e0002a0,0x003e003e,0x00000041,0x20e43ae8,0x3a000630,0x000000e0,0x00000041,0x21201248, -0x16000104,0x00040004,0x09000038,0x21003ae8,0x3e0000e4,0x42c80000,0x00000040,0x22001240, -0x16000120,0x03200320,0x00000001,0xa0003a28,0x00000100,0x00000000,0x00000040,0x21400a28, -0x1e0002a0,0x00380038,0x00000040,0x22001240,0x16000140,0x02c002c0,0x00000001,0x21602ae8, -0x00008000,0x00000000,0x00000041,0x21803ae8,0x3a000160,0x000000e0,0x00000040,0x21a40a28, -0x1e0002a0,0x002a002a,0x09000038,0x21a03ae8,0x3e000180,0x42c80000,0x00000041,0x21c01248, -0x160001a4,0x00040004,0x00000040,0x22021240,0x160001c0,0x03200320,0x00000001,0xa2003a28, -0x000001a0,0x00000000,0x00000001,0x20e42ae8,0x00008008,0x00000000,0x00000041,0x21203ae8, -0x3a0000e4,0x000000e0,0x09000038,0x21003ae8,0x3e000120,0x42c80000,0x00000001,0xa2283a28, -0x00000100,0x00000000,0x00000040,0x22a00a28,0x1e0002a0,0x00010001,0x05000010,0x20000a20, -0x1e0002a0,0x00080008,0x00010020,0x34000004,0x0e001400,0xfffffd00,0x00000001,0x26341e28, -0x00000000,0x00000000,0x00000009,0x20e00a28,0x1e000634,0x00050005,0x00000009,0x20e40a28, -0x1e000634,0x00070007,0x00000041,0x21001248,0x160000e0,0x00040004,0x00000040,0x22001240, -0x16000100,0x03200320,0x00600001,0x21200208,0x00208000,0x00000000,0x00600001,0x21400208, -0x00208020,0x00000000,0x00600001,0x21600208,0x00208040,0x00000000,0x00600001,0x21800208, -0x00208060,0x00000000,0x00000040,0x26340a28,0x1e000634,0x00010001,0x00000008,0x21a80a08, -0x1e0000e4,0x00040004,0x00000040,0x22000204,0x060000e8,0x020a0400,0x05000010,0x20000a20, -0x1e000634,0x00060006,0x0a800033,0x00009054,0x000021a4,0x00000000,0x00010020,0x34000004, -0x0e001400,0xffffff20,0x0000000c,0x20e01228,0x16000020,0x00020002,0x0000000c,0x21241228, -0x16000022,0x00020002,0x00800001,0x26801e08,0x00000000,0x00000000,0x00800001,0x26c01e08, -0x00000000,0x00000000,0x00800001,0x27001e08,0x00000000,0x00000000,0x00000040,0x21000a28, -0x1e0000e0,0x000f000f,0x00000040,0x21400a28,0x1e000124,0x000f000f,0x00800001,0x26401e08, -0x00000000,0x00000000,0x00000001,0x27401e28,0x00000000,0x00000000,0x00000005,0x21200a08, -0x1e000100,0xfff0fff0,0x00000005,0x21600a08,0x1e000140,0xfff0fff0,0x0000000c,0x21640208, -0x16000120,0x00020002,0x0600000c,0x263c0208,0x16000160,0x00020002,0x00000009,0x26380208, -0x16000164,0x00010001,0x00010020,0x34000004,0x0e001400,0x000000e0,0x06000010,0x20000200, -0x16000638,0x00000000,0x00000001,0x27441e28,0x00000000,0x00000000,0x00010020,0x34000004, -0x0e001400,0x00000080,0x20004d01,0x00000807,0x20144001,0x003a0800,0x00000040,0x27440a28, -0x1e000744,0x00100010,0x00000040,0x22000204,0x060000f0,0x020a8000,0x00000001,0x2104020c, -0x00000740,0x00000000,0x00000001,0x2108060c,0x00000000,0x0007001f,0x05000010,0x20000200, -0x02000744,0x00000638,0x0c600033,0x00032014,0x00002108,0x00000000,0x00010020,0x34000004, -0x0e001400,0xffffff80,0x00000040,0x27400a28,0x1e000740,0x00100010,0x05000010,0x20000200, -0x02000740,0x0000063c,0x00010020,0x34000004,0x0e001400,0xffffff20,0x20004d01,0x00007f07, -0x07000031,0x20003a00,0x06000fe0,0x82000010,0x2000007d,0x2000000c,0x2000007d,0x2000000c, -0x00000001,0x21401e28,0x00000000,0x00000000,0x00000040,0x20e00a28,0x1e000140,0x00180018, -0x00000041,0x211a1248,0x16000140,0x00040004,0x00000041,0x21181248,0x160000e0,0x00040004, -0x00000040,0x22021240,0x16000118,0x00200020,0x00000040,0x22001240,0x1600011a,0x07400740, -0x00000001,0xa0000a08,0x00008200,0x00000000,0x00000040,0x21400a28,0x1e000140,0x00010001, -0x05000010,0x20000a20,0x1e000140,0x00110011,0x00010020,0x34000004,0x0e001400,0xffffff70, -0x00000001,0x21c01e28,0x00000000,0x00000000,0x00000009,0x20e40a28,0x1e0001c0,0x00070007, -0x00000040,0x22000204,0x060000e8,0x02480400,0x00000009,0x20e00a28,0x1e0001c0,0x00050005, -0x00000008,0x21280a08,0x1e0000e4,0x00040004,0x00000041,0x21181248,0x160000e0,0x00040004, -0x0a800031,0x21403a6c,0x00000120,0x00000200,0x00000040,0x22001240,0x16000118,0x02400240, -0x00600001,0xa0000208,0x008d0140,0x00000000,0x00600001,0xa0200208,0x008d0160,0x00000000, -0x00600001,0xa0400208,0x008d0180,0x00000000,0x00600001,0xa0600208,0x008d01a0,0x00000000, -0x00000040,0x21c00a28,0x1e0001c0,0x00010001,0x05000010,0x20000a20,0x1e0001c0,0x00060006, -0x00010020,0x34000004,0x0e001400,0xffffff20,0x00000001,0x21c01e28,0x00000000,0x00000000, -0x00000009,0x20e40a28,0x1e0001c0,0x00070007,0x00000040,0x22000204,0x060000ec,0x02480400, -0x00000009,0x20e00a28,0x1e0001c0,0x00050005,0x00000008,0x21280a08,0x1e0000e4,0x00040004, -0x00000041,0x21181248,0x160000e0,0x00040004,0x0a800031,0x21403a6c,0x00000120,0x00000200, -0x00000040,0x22001240,0x16000118,0x05400540,0x00600001,0xa0000208,0x008d0140,0x00000000, -0x00600001,0xa0200208,0x008d0160,0x00000000,0x00600001,0xa0400208,0x008d0180,0x00000000, -0x00600001,0xa0600208,0x008d01a0,0x00000000,0x00000040,0x21c00a28,0x1e0001c0,0x00010001, -0x05000010,0x20000a20,0x1e0001c0,0x00030003,0x00010020,0x34000004,0x0e001400,0xffffff20, -0x02000001,0x4ad422a8,0x00000024,0x00000000,0x00000001,0x2ad80208,0x00000408,0x00000000, -0x00010020,0x34000004,0x0e001400,0x00000020,0x00000001,0x4ad41ea8,0x00000000,0x00020002, -0x00000020,0x34000004,0x0e001400,0x00000010,0x00000001,0x4ad41ea8,0x00000000,0x00000000, -0x00000041,0x20e00208,0x1600025c,0x000a000a,0x0000000c,0x21201208,0x160004fa,0x00010001, -0x0000000c,0x21401208,0x160004fa,0x00020002,0x06000010,0x20002260,0x1e000515,0x00010001, -0x00000001,0x26c80228,0x00000260,0x00000000,0x00000001,0x45142288,0x00000768,0x00000000, -0x00000001,0x4ac02288,0x00000515,0x00000000,0x0c000038,0x21180208,0x02000258,0x000000e0, -0x00000040,0x2adc2228,0x1e00050b,0xffecffec,0x00000001,0x4ac22aa8,0x00000508,0x00000000, -0x00000001,0x2ad01608,0x00000000,0x00000000,0x00000001,0x46cc2288,0x00000516,0x00000000, -0x00000040,0x2ac80228,0x02000280,0x00000120,0x00000040,0x2ac40228,0x02000280,0x00000140, -0x00000001,0x2acc0228,0x00000118,0x00000000,0x00010020,0x34000004,0x0e001400,0x00000090, -0x00000040,0x20e02228,0x1e000514,0x00140014,0x00000001,0x2ac81e28,0x00000000,0x00000000, -0x00000001,0x2ac41e28,0x00000000,0x00000000,0x00000040,0x22001240,0x160000e0,0x05080508, -0x00000041,0x21180208,0x220006c8,0x00008000,0x02000010,0x20002a60,0x1e000ad4,0x00020002, -0x0000000c,0x26c80228,0x16000118,0x00060006,0x00010020,0x34000004,0x0e001400,0x00000010, -0x00000040,0x45092288,0x1e00050b,0x00040004,0x0000000c,0x21201228,0x16000022,0x00020002, -0x0000000c,0x20e01228,0x16000020,0x00020002,0x02000010,0x20001240,0x12000020,0x000004fc, -0x00000001,0x4ad61e88,0x00000000,0x00000000,0x00000040,0x21400a28,0x1e000120,0x000f000f, -0x00000040,0x21180a28,0x1e0000e0,0x000f000f,0x00000005,0x26d40a08,0x1e000140,0xfff0fff0, -0x00000005,0x26d00a08,0x1e000118,0xfff0fff0,0x0000000c,0x21800208,0x160006d4,0x00040004, -0x0000000c,0x21600208,0x160006d0,0x00040004,0x00000009,0x46c00248,0x16000180,0x00020002, -0x00000009,0x46c40248,0x16000160,0x00020002,0x00010020,0x34000004,0x0e001400,0x00000040, -0x02000010,0x20001240,0x12000022,0x000004fe,0x00010020,0x34000004,0x0e001400,0x00000020, -0x00000040,0x240c0208,0x1600040c,0x00010001,0x00000020,0x34000004,0x0e001400,0x00000060, -0x00000001,0x240c1608,0x00000000,0x00000000,0x00000001,0x4ad61e88,0x00000000,0x00010001, -0x00000001,0x24fc1248,0x00000020,0x00000000,0x00000001,0x24fe1248,0x00000022,0x00000000, -0x00000001,0x24140208,0x0000040c,0x00000000,0x00000001,0x24180208,0x0000040c,0x00000000, -0x00000009,0x21181228,0x160006c4,0x00020002,0x00000009,0x21441228,0x160006c0,0x00020002, -0x0000000c,0x20e00208,0x160006d0,0x00020002,0x00800001,0x27c01608,0x00000000,0x00000000, -0x00800001,0x28801608,0x00000000,0x00000000,0x00000040,0x21200a28,0x1e000118,0x000f000f, -0x00000040,0x21600a28,0x1e000144,0x000f000f,0x00000009,0x26d00208,0x160000e0,0x00010001, -0x00800001,0x28001608,0x00000000,0x00000000,0x00800001,0x28401608,0x00000000,0x00000000, -0x0000000c,0x21400a28,0x1e000120,0x00040004,0x0000000c,0x21800a28,0x1e000160,0x00040004, -0x01000005,0x611c0288,0x160006d0,0x000f000f,0x0000000c,0x26d40208,0x160006d4,0x00020002, -0x00000001,0x26c01608,0x00000000,0x00000000,0x00600001,0x27f01e48,0x00000000,0x00030003, -0x00600001,0x27e01e48,0x00000000,0x00020002,0x00600001,0x27d01e48,0x00000000,0x00010001, -0x00600001,0x28801e48,0x00000000,0x000c000c,0x00600001,0x28901e48,0x00000000,0x000d000d, -0x00600001,0x28a01e48,0x00000000,0x000e000e,0x00600001,0x28b01e48,0x00000000,0x000f000f, -0x00600001,0x28001e48,0x00000000,0x00040004,0x00600001,0x28201e48,0x00000000,0x00060006, -0x00600001,0x28301e48,0x00000000,0x00070007,0x00600001,0x28101e48,0x00000000,0x00050005, -0x00600001,0x28401e48,0x00000000,0x00080008,0x00600001,0x28501e48,0x00000000,0x00090009, -0x00600001,0x28601e48,0x00000000,0x000a000a,0x00600001,0x28701e48,0x00000000,0x000b000b, -0x00000041,0x26c40a28,0x0a000140,0x00000180,0x00010020,0x34000004,0x0e001400,0x00000bc0, -0x06000010,0x20000200,0x160006d4,0x00000000,0x00800001,0x2a001608,0x00000000,0x00000000, -0x00800001,0x2a401608,0x00000000,0x00000000,0x00800001,0x2a801608,0x00000000,0x00000000, -0x00800001,0x29c01608,0x00000000,0x00000000,0x00000001,0x26d81608,0x00000000,0x00000000, -0x00000001,0x2a041e48,0x00000000,0x00020002,0x00000001,0x2a021e48,0x00000000,0x00010001, -0x00000001,0x2a141e48,0x00000000,0x00020002,0x00000001,0x2a081e48,0x00000000,0x00040004, -0x00000001,0x2a061e48,0x00000000,0x00030003,0x00000001,0x2a181e48,0x00000000,0x00040004, -0x00000001,0x2a0a1e48,0x00000000,0x00050005,0x00000001,0x2a1a1e48,0x00000000,0x00050005, -0x00000001,0x2a0c1e48,0x00000000,0x00060006,0x00000001,0x2a1c1e48,0x00000000,0x00060006, -0x00000001,0x2a221e48,0x00000000,0x00010001,0x00000001,0x2a0e1e48,0x00000000,0x00070007, -0x00000001,0x2a321e48,0x00000000,0x00010001,0x00000001,0x2a241e48,0x00000000,0x00020002, -0x00000001,0x2a341e48,0x00000000,0x00020002,0x00000001,0x2a261e48,0x00000000,0x00030003, -0x00000001,0x2a361e48,0x00000000,0x00030003,0x00000001,0x2a281e48,0x00000000,0x00040004, -0x00000001,0x2a381e48,0x00000000,0x00040004,0x00000001,0x2a2a1e48,0x00000000,0x00050005, -0x00000001,0x2a3a1e48,0x00000000,0x00050005,0x00000001,0x2a2c1e48,0x00000000,0x00060006, -0x00000001,0x2a3c1e48,0x00000000,0x00060006,0x00000001,0x2a2e1e48,0x00000000,0x00070007, -0x00000001,0x2a3e1e48,0x00000000,0x00070007,0x00000001,0x2a161e48,0x00000000,0x00030003, -0x00000001,0x2a121e48,0x00000000,0x00010001,0x00000001,0x2a1e1e48,0x00000000,0x00070007, -0x00000001,0x2a441e48,0x00000000,0x00020002,0x00000001,0x2a421e48,0x00000000,0x00010001, -0x00000001,0x2a541e48,0x00000000,0x00020002,0x00000001,0x2a481e48,0x00000000,0x00040004, -0x00000001,0x2a461e48,0x00000000,0x00030003,0x00000001,0x2a581e48,0x00000000,0x00040004, -0x00000001,0x2a4a1e48,0x00000000,0x00050005,0x00000001,0x2a5a1e48,0x00000000,0x00050005, -0x00000001,0x2a4c1e48,0x00000000,0x00060006,0x00000001,0x2a5c1e48,0x00000000,0x00060006, -0x00000001,0x2a621e48,0x00000000,0x00010001,0x00000001,0x2a4e1e48,0x00000000,0x00070007, -0x00000001,0x2a721e48,0x00000000,0x00010001,0x00000001,0x2a641e48,0x00000000,0x00020002, -0x00000001,0x2a741e48,0x00000000,0x00020002,0x00000001,0x2a661e48,0x00000000,0x00030003, -0x00000001,0x2a761e48,0x00000000,0x00030003,0x00000001,0x2a681e48,0x00000000,0x00040004, -0x00000001,0x2a781e48,0x00000000,0x00040004,0x00000001,0x2a6a1e48,0x00000000,0x00050005, -0x00000001,0x2a7a1e48,0x00000000,0x00050005,0x00000001,0x2a6c1e48,0x00000000,0x00060006, -0x00000001,0x2a7c1e48,0x00000000,0x00060006,0x00000001,0x2a6e1e48,0x00000000,0x00070007, -0x00000001,0x2a7e1e48,0x00000000,0x00070007,0x00000001,0x2a561e48,0x00000000,0x00030003, -0x00000001,0x2a521e48,0x00000000,0x00010001,0x00000001,0x2a5e1e48,0x00000000,0x00070007, -0x00000001,0x2a841e48,0x00000000,0x00020002,0x00000001,0x2a821e48,0x00000000,0x00010001, -0x00000001,0x2a941e48,0x00000000,0x00020002,0x00000001,0x2a881e48,0x00000000,0x00040004, -0x00000001,0x2a861e48,0x00000000,0x00030003,0x00000001,0x2a981e48,0x00000000,0x00040004, -0x00000001,0x2a8a1e48,0x00000000,0x00050005,0x00000001,0x2a9a1e48,0x00000000,0x00050005, -0x00000001,0x2a8c1e48,0x00000000,0x00060006,0x00000001,0x2a9c1e48,0x00000000,0x00060006, -0x00000001,0x2aa21e48,0x00000000,0x00010001,0x00000001,0x2a8e1e48,0x00000000,0x00070007, -0x00000001,0x2ab21e48,0x00000000,0x00010001,0x00000001,0x2aa41e48,0x00000000,0x00020002, -0x00000001,0x2ab41e48,0x00000000,0x00020002,0x00000001,0x2aa61e48,0x00000000,0x00030003, -0x00000001,0x2ab61e48,0x00000000,0x00030003,0x00000001,0x2aa81e48,0x00000000,0x00040004, -0x00000001,0x2ab81e48,0x00000000,0x00040004,0x00000001,0x2aaa1e48,0x00000000,0x00050005, -0x00000001,0x2aba1e48,0x00000000,0x00050005,0x00000001,0x2aac1e48,0x00000000,0x00060006, -0x00000001,0x2abc1e48,0x00000000,0x00060006,0x00000001,0x2aae1e48,0x00000000,0x00070007, -0x00000001,0x2abe1e48,0x00000000,0x00070007,0x00000001,0x2a961e48,0x00000000,0x00030003, -0x00000001,0x2a921e48,0x00000000,0x00010001,0x00000001,0x2a9e1e48,0x00000000,0x00070007, -0x00000001,0x29c41e48,0x00000000,0x00020002,0x00000001,0x29c21e48,0x00000000,0x00010001, -0x00000001,0x29d41e48,0x00000000,0x00020002,0x00000001,0x29c81e48,0x00000000,0x00040004, -0x00000001,0x29c61e48,0x00000000,0x00030003,0x00000001,0x29d81e48,0x00000000,0x00040004, -0x00000001,0x29ca1e48,0x00000000,0x00050005,0x00000001,0x29da1e48,0x00000000,0x00050005, -0x00000001,0x29cc1e48,0x00000000,0x00060006,0x00000001,0x29dc1e48,0x00000000,0x00060006, -0x00000001,0x29e21e48,0x00000000,0x00010001,0x00000001,0x29ce1e48,0x00000000,0x00070007, -0x00000001,0x29f21e48,0x00000000,0x00010001,0x00000001,0x29e41e48,0x00000000,0x00020002, -0x00000001,0x29f41e48,0x00000000,0x00020002,0x00000001,0x29e61e48,0x00000000,0x00030003, -0x00000001,0x29f61e48,0x00000000,0x00030003,0x00000001,0x29e81e48,0x00000000,0x00040004, -0x00000001,0x29f81e48,0x00000000,0x00040004,0x00000001,0x29ea1e48,0x00000000,0x00050005, -0x00000001,0x29fa1e48,0x00000000,0x00050005,0x00000001,0x29ec1e48,0x00000000,0x00060006, -0x00000001,0x29fc1e48,0x00000000,0x00060006,0x00000001,0x29ee1e48,0x00000000,0x00070007, -0x00000001,0x29fe1e48,0x00000000,0x00070007,0x00000001,0x29d61e48,0x00000000,0x00030003, -0x00000001,0x29d21e48,0x00000000,0x00010001,0x00000001,0x29de1e48,0x00000000,0x00070007, -0x00010020,0x34000004,0x0e001400,0x00000780,0x06000010,0x20000200,0x160006d0,0x00000000, -0x00000001,0x21181608,0x00000000,0x00000000,0x00010020,0x34000004,0x0e001400,0x000003a0, -0x20004d01,0x00000907,0x00000040,0x22000204,0x060000f0,0x02890000,0x00000001,0x2128060c, -0x00000000,0x000f000f,0x00000001,0x21240228,0x000006d8,0x00000000,0x00000001,0x21200228, -0x00000118,0x00000000,0x05800010,0x20001220,0x028d07c0,0x000006d4,0x00800001,0x28c01608, -0x00000000,0x00000000,0x00800001,0x29001608,0x00000000,0x00000000,0x0c800031,0x21403a4c, -0x00000120,0x00000200,0x00800001,0x29401608,0x00000000,0x00000000,0x00800001,0x29801608, -0x00000000,0x00000000,0x00000040,0x20e00208,0x020006d0,0x00004118,0x00810001,0x28c01248, -0x008d0140,0x00000000,0x05800010,0x20001220,0x028d07e0,0x000006d4,0x00810001,0x28e01248, -0x008d0160,0x00000000,0x05800010,0x20001220,0x028d0800,0x000006d4,0x00810001,0x29001248, -0x008d0180,0x00000000,0x05800010,0x20001220,0x028d0820,0x000006d4,0x00810001,0x29201248, -0x008d01a0,0x00000000,0x05800010,0x20001220,0x028d0840,0x000006d4,0x00810001,0x29401248, -0x008d01c0,0x00000000,0x05800010,0x20001220,0x028d0860,0x000006d4,0x00810001,0x29601248, -0x008d01e0,0x00000000,0x05800010,0x20001220,0x028d0880,0x000006d4,0x00810001,0x29801248, -0x008d0200,0x00000000,0x05800010,0x20001220,0x028d08a0,0x000006d4,0x00810001,0x29a01248, -0x008d0220,0x00000000,0x02000010,0x20000200,0x220000e0,0x0000011c,0x00010020,0x34000004, -0x0e001400,0x00000110,0x0000000c,0x20e02228,0x1600011c,0x00010001,0x04800010,0x20001220, -0x0a8d09c0,0x000000e0,0x00810001,0x28c01648,0x00000000,0x00000000,0x04800010,0x20001220, -0x0a8d09e0,0x000000e0,0x00810001,0x28e01648,0x00000000,0x00000000,0x04800010,0x20001220, -0x0a8d0a00,0x000000e0,0x00810001,0x29001648,0x00000000,0x00000000,0x04800010,0x20001220, -0x0a8d0a20,0x000000e0,0x00810001,0x29201648,0x00000000,0x00000000,0x04800010,0x20001220, -0x0a8d0a40,0x000000e0,0x00810001,0x29401648,0x00000000,0x00000000,0x04800010,0x20001220, -0x0a8d0a60,0x000000e0,0x00810001,0x29601648,0x00000000,0x00000000,0x04800010,0x20001220, -0x0a8d0a80,0x000000e0,0x00810001,0x29801648,0x00000000,0x00000000,0x04800010,0x20001220, -0x0a8d0aa0,0x000000e0,0x00810001,0x29a01648,0x00000000,0x00000000,0x00800040,0x21201208, -0x128d08c0,0x008d08e0,0x00800040,0x21601208,0x128d0900,0x008d0920,0x00800040,0x21a01208, -0x128d0940,0x008d0960,0x00800040,0x21e01208,0x128d0980,0x008d09a0,0x00000040,0x21180208, -0x16000118,0x00100010,0x20013640,0x0b0909e7,0x20013640,0x0f0d0be7,0x05000010,0x20000200, -0x02000118,0x000006d0,0x20013640,0x0b0909e7,0x20012b40,0x0a0909e7,0x606d2140,0x090909ad, -0x00200040,0x21200208,0x02450120,0x00450128,0x00000040,0x20e00208,0x02000120,0x00000124, -0x00000040,0x26c00208,0x020006c0,0x000000e0,0x00010020,0x34000004,0x0e001400,0xfffffc60, -0x00000040,0x26d80208,0x160006d8,0x00100010,0x00a00040,0x28401248,0x168d0840,0x00100010, -0x00a00040,0x27c01248,0x168d07c0,0x00100010,0x05000010,0x20000200,0x020006d8,0x000006d4, -0x00a00040,0x28801248,0x168d0880,0x00100010,0x00a00040,0x28001248,0x168d0800,0x00100010, -0x00010020,0x34000004,0x0e001400,0xfffffbc0,0x00000020,0x34000004,0x0e001400,0x00000330, -0x06000010,0x20000200,0x160006d4,0x00000000,0x00000001,0x26d81608,0x00000000,0x00000000, -0x00010020,0x34000004,0x0e001400,0x00000300,0x06000010,0x20000200,0x160006d0,0x00000000, -0x00000001,0x21181608,0x00000000,0x00000000,0x00010020,0x34000004,0x0e001400,0x00000260, -0x20004d01,0x00000907,0x00000040,0x22000204,0x060000f0,0x02890000,0x00000001,0x2128060c, -0x00000000,0x000f000f,0x00000001,0x21240228,0x000006d8,0x00000000,0x00000001,0x21200228, -0x00000118,0x00000000,0x05800010,0x20001220,0x028d07c0,0x000006d4,0x00800001,0x28c01608, -0x00000000,0x00000000,0x00800001,0x29001608,0x00000000,0x00000000,0x0c800031,0x21403a4c, -0x00000120,0x00000200,0x00800001,0x29401608,0x00000000,0x00000000,0x00800001,0x29801608, -0x00000000,0x00000000,0x00000040,0x21180208,0x16000118,0x00100010,0x00810001,0x28c01248, -0x008d0140,0x00000000,0x05800010,0x20001220,0x028d07e0,0x000006d4,0x00810001,0x28e01248, -0x008d0160,0x00000000,0x05800010,0x20001220,0x028d0800,0x000006d4,0x00800040,0x21201208, -0x128d08c0,0x008d08e0,0x00810001,0x29001248,0x008d0180,0x00000000,0x05800010,0x20001220, -0x028d0820,0x000006d4,0x00810001,0x29201248,0x008d01a0,0x00000000,0x05800010,0x20001220, -0x028d0840,0x000006d4,0x00800040,0x21601208,0x128d0900,0x008d0920,0x00810001,0x29401248, -0x008d01c0,0x00000000,0x05800010,0x20001220,0x028d0860,0x000006d4,0x20013640,0x0b0909e7, -0x00810001,0x29601248,0x008d01e0,0x00000000,0x05800010,0x20001220,0x028d0880,0x000006d4, -0x00800040,0x21a01208,0x128d0940,0x008d0960,0x00810001,0x29801248,0x008d0200,0x00000000, -0x05800010,0x20001220,0x028d08a0,0x000006d4,0x00810001,0x29a01248,0x008d0220,0x00000000, -0x05000010,0x20000200,0x02000118,0x000006d0,0x00800040,0x21e01208,0x128d0980,0x008d09a0, -0x20013640,0x0f0d0be7,0x20013640,0x0b0909e7,0x20012b40,0x0a0909e7,0x606d2140,0x090909ad, -0x00200040,0x21200208,0x02450120,0x00450128,0x00000040,0x20e00208,0x02000120,0x00000124, -0x00000040,0x26c00208,0x020006c0,0x000000e0,0x00010020,0x34000004,0x0e001400,0xfffffda0, -0x00000040,0x26d80208,0x160006d8,0x00100010,0x00a00040,0x28401248,0x168d0840,0x00100010, -0x00a00040,0x27c01248,0x168d07c0,0x00100010,0x05000010,0x20000200,0x020006d8,0x000006d4, -0x00a00040,0x28801248,0x168d0880,0x00100010,0x00a00040,0x28001248,0x168d0800,0x00100010, -0x00010020,0x34000004,0x0e001400,0xfffffd00,0x02000010,0x20002a60,0x1e000ad4,0x00000000, -0x00010020,0x34000004,0x0e001400,0x00000010,0x00000041,0x26c40a28,0x1e0006c4,0x00100010, -0x00000040,0x22000204,0x06000110,0x02180000,0x00000001,0x2128160c,0x00000000,0x00000000, -0x00000040,0x20e00208,0x020002a0,0x00000260,0x02000010,0x20002260,0x1e00076d,0x00010001, -0x00000001,0x41922aa8,0x00000518,0x00000000,0x00000001,0x41902aa8,0x00000513,0x00000000, -0x00000040,0x24c80208,0x160004c8,0x00010001,0x00000001,0x22040a28,0x00000268,0x00000000, -0x0a400031,0x21803a0c,0x00000120,0x00000200,0x00000001,0x26d00a28,0x00000248,0x00000000, -0x00000009,0x22000208,0x16000180,0x00030003,0x00000040,0x22a00208,0x020000e0,0x00004200, -0x00000040,0x24c40208,0x020004c4,0x00000200,0x00010020,0x34000004,0x0e001400,0x00000130, -0x01000010,0x20002a60,0x1e000513,0xffffffff,0x00010020,0x34000004,0x0e001400,0x00000080, -0x00000040,0x21182a28,0x1e000513,0x001a001a,0x0000000c,0x20e00208,0x16000200,0x00030003, -0x00000041,0x21201248,0x16000118,0x00040004,0x00000040,0x227c0208,0x0200027c,0x000000e0, -0x00000040,0x22001240,0x16000120,0x02400240,0x0000000c,0x21400208,0x16008000,0x00030003, -0x00000040,0x227c0208,0x0200027c,0x00004140,0x00000001,0xa0000208,0x00000200,0x00000000, -0x02000010,0x20002a60,0x1e000ac2,0x00020002,0x00010020,0x34000004,0x0e001400,0x00000020, -0x00000001,0x22000208,0x000002b0,0x00000000,0x00000020,0x34000004,0x0e001400,0x00000050, -0x02000010,0x20002a60,0x1e000190,0x00020002,0x00010020,0x34000004,0x0e001400,0x00000030, -0x02000010,0x20002a60,0x1e000ad4,0x00000000,0x00010020,0x34000004,0x0e001400,0x00000010, -0x0000000c,0x22000a08,0x1e000200,0x00020002,0x02000010,0x20002260,0x1e00076d,0x00020002, -0x00010020,0x34000004,0x0e001400,0x000001f0,0x01000010,0x20002a60,0x1e000192,0xffffffff, -0x00010020,0x34000004,0x0e001400,0x000000c0,0x00000040,0x21202a28,0x1e000192,0x001a001a, -0x0000000c,0x20e00208,0x16000200,0x00030003,0x0000000c,0x21180208,0x16000420,0x00030003, -0x00000041,0x21401248,0x16000120,0x00040004,0x00000040,0x227c0208,0x0200027c,0x000000e0, -0x00000040,0x22001240,0x16000140,0x02400240,0x00000040,0x227c0208,0x0200027c,0x00004118, -0x00000001,0xa0000208,0x00000200,0x00000000,0x00000040,0x21600208,0x02000204,0x00004200, -0x00000040,0x22040228,0x02000160,0x00000420,0x05000002,0x22040a28,0x0a0006d0,0x00000204, -0x04000002,0x22040a28,0x1e000204,0x00000000,0x02000010,0x20002a60,0x1e000ac2,0x00020002, -0x00010020,0x34000004,0x0e001400,0x00000020,0x00000001,0x22000208,0x000002b0,0x00000000, -0x00000020,0x34000004,0x0e001400,0x000000b0,0x02000010,0x20002a60,0x1e000190,0x00020002, -0x00010020,0x34000004,0x0e001400,0x00000040,0x02000010,0x20002a60,0x1e000ad4,0x00000000, -0x00010020,0x34000004,0x0e001400,0x00000020,0x00000001,0x22000208,0x000002a8,0x00000000, -0x00000020,0x34000004,0x0e001400,0x00000050,0x02000010,0x20002a60,0x1e000192,0x00020002, -0x00010020,0x34000004,0x0e001400,0x00000030,0x02000010,0x20002a60,0x1e000ad4,0x00000000, -0x00010020,0x34000004,0x0e001400,0x00000010,0x0000000c,0x22000a08,0x1e000200,0x00020002, -0x00000001,0x24200208,0x0000041c,0x00000000,0x00000001,0x241c0208,0x00000200,0x00000000, -0x06000010,0x20000a20,0x1e0002b8,0x00000000,0x00000001,0x22080208,0x00000200,0x00000000, -0x00010020,0x34000004,0x0e001400,0x00000070,0x04000010,0x20000200,0x02000200,0x000002b8, -0x00010020,0x34000004,0x0e001400,0x00000020,0x00000040,0x20e00208,0x020002b8,0x00004200, -0x00000040,0x22080208,0x02000200,0x000040e0,0x03000010,0x20000200,0x16000208,0x00000000, -0x00010020,0x34000004,0x0e001400,0x00000010,0x00000001,0x22081608,0x00000000,0x00010001, -0x01000010,0x20002a60,0x1e000ac2,0xffffffff,0x00010020,0x34000004,0x0e001400,0x00001550, -0x00000040,0x20e02a28,0x1e000ac2,0x001a001a,0x00000041,0x21181248,0x160000e0,0x00040004, -0x00000040,0x22001240,0x16000118,0x02400240,0x00000001,0xa0000208,0x00000200,0x00000000, -0x00000040,0x220c2268,0x2200052c,0x00000187,0x04000010,0x20001a40,0x1200020c,0x0000005c, -0x00010020,0x34000004,0x0e001400,0x00000020,0x00000001,0x21101228,0x0000005c,0x00000000, -0x00000020,0x34000004,0x0e001400,0x00000010,0x05000002,0x21101228,0x1a00005e,0x0000020c, -0x03000010,0x20002260,0x1e000ac0,0x00010001,0x00000001,0x420c0a68,0x00000110,0x00000000, -0x00010020,0x34000004,0x0e001400,0x00000210,0x00000040,0x20e00a08,0x1e000ac8,0x00020002, -0x01000010,0x20000200,0x02000ad8,0x000000e0,0x00010020,0x34000004,0x0e001400,0x000001e0, -0x00000040,0x20e00a08,0x1e000ac4,0x00020002,0x01000010,0x20000200,0x02000ad8,0x000000e0, -0x00010020,0x34000004,0x0e001400,0x000001b0,0x00000040,0x20e02a28,0x1e000ac2,0x00010001, -0x00000040,0x22001240,0x160000e0,0x05080508,0x00000040,0x21182228,0x1e008000,0x00050005, -0x06000010,0x20001a20,0x0a00020c,0x00000118,0x00010020,0x34000004,0x0e001400,0x00000070, -0x00000040,0x20e02a28,0x1e000ac2,0x00010001,0x00000040,0x22001240,0x160000e0,0x05080508, -0x00000001,0x44002260,0x00008000,0x00000000,0x00000048,0x21201a28,0x1e00020c,0x00070007, -0x0000000c,0x61180a8c,0x1e000120,0x00030003,0x00000001,0xc0002288,0x00000118,0x00000000, -0x00000020,0x34000004,0x0e001400,0x000000f0,0x00000040,0x20e02a28,0x1e000ac2,0x00010001, -0x00000040,0x22001240,0x160000e0,0x05080508,0x00000040,0x21182228,0x1e008000,0xfffbfffb, -0x04000010,0x20001a20,0x0a00020c,0x00000118,0x00010020,0x34000004,0x0e001400,0x00000070, -0x00000040,0x20e02a28,0x1e000ac2,0x00010001,0x00000040,0x22001240,0x160000e0,0x05080508, -0x00000001,0x44002260,0x00008000,0x00000000,0x00000048,0x21201a28,0x1e00020c,0x00070007, -0x0000000c,0x61180a8c,0x1e000120,0x00030003,0x00000001,0xc0002288,0x00000118,0x00000000, -0x00000020,0x34000004,0x0e001400,0x00000030,0x00000040,0x20e02a28,0x1e000ac2,0x00010001, -0x00000040,0x22001240,0x160000e0,0x05080508,0x00000001,0xc0001a88,0x0000020c,0x00000000, -0x06000010,0x20002260,0x1e000ac0,0x00010001,0x00010020,0x34000004,0x0e001400,0x000007d0, -0x01000010,0x20002a60,0x1e000ad4,0x00020002,0x00010020,0x34000004,0x0e001400,0x000007b0, -0x00000040,0x20e02228,0x1e000768,0x006e006e,0x00000001,0x2ad00a08,0x000006c8,0x00000000, -0x00000041,0x21181248,0x160000e0,0x00040004,0x00000040,0x22001240,0x16000118,0x02400240, -0x00000001,0x26c80228,0x00008000,0x00000000,0x02000010,0x20002260,0x1e000768,0x00000000, -0x00010020,0x34000004,0x0e001400,0x00000230,0x05000010,0x20000200,0x02000ad0,0x000006c8, -0x00010020,0x34000004,0x0e001400,0x000000a0,0x00000009,0x20e00208,0x16000ad0,0x00030003, -0x06000010,0x20002260,0x1e000509,0x000a000a,0x0c000038,0x21180208,0x020000e0,0x000006c8, -0x00000040,0x21200228,0x1e000118,0xfff8fff8,0x05000002,0x2adc0a28,0x1e000120,0x00050005, -0x00010020,0x34000004,0x0e001400,0x00000130,0x00000040,0x40e02268,0x0a000509,0x00004adc, -0x05000002,0x21181a28,0x1e0000e0,0x00ff00ff,0x04000002,0x65090a88,0x1e000118,0x00010001, -0x00000020,0x34000004,0x0e001400,0x000000f0,0x04000010,0x20000200,0x02000ad0,0x000006c8, -0x00010020,0x34000004,0x0e001400,0x000000d0,0x06000010,0x20000200,0x16000ad8,0x000a000a, -0x00010020,0x34000004,0x0e001400,0x000000b0,0x00000041,0x20e00a08,0x1e0006c8,0x000c000c, -0x02000010,0x20002260,0x1e000768,0x00000000,0x0c000038,0x21180208,0x020000e0,0x00000ad0, -0x00000040,0x21200228,0x1e000118,0xfff4fff4,0x05000002,0x2adc0a28,0x1e000120,0x00050005, -0x00010020,0x34000004,0x0e001400,0x00000020,0x05000002,0x20e00a28,0x1e000adc,0x00010001, -0x04000002,0x2adc0a28,0x1e0000e0,0x00000000,0x00000040,0x40e02268,0x0a000509,0x00000adc, -0x05000002,0x21181a28,0x1e0000e0,0x00ff00ff,0x04000002,0x65090a88,0x1e000118,0x00010001, -0x03000010,0x20002260,0x1e000509,0x00000000,0x00010020,0x34000004,0x0e001400,0x00000020, -0x00000001,0x45091e88,0x00000000,0x00010001,0x00000020,0x34000004,0x0e001400,0x00000400, -0x06000010,0x20002260,0x1e000509,0x00d400d4,0x00010020,0x34000004,0x0e001400,0x000003e0, -0x00000001,0x45091e88,0x00000000,0x00d400d4,0x00000020,0x34000004,0x0e001400,0x000003c0, -0x05000010,0x20000200,0x02000ad0,0x000006c8,0x00010020,0x34000004,0x0e001400,0x00000140, -0x00000041,0x20e00208,0x16000ad0,0x000a000a,0x00000040,0x21602228,0x1e000768,0x00100010, -0x0c000038,0x21180208,0x020000e0,0x000006c8,0x00000040,0x22001240,0x16000160,0x05080508, -0x00000040,0x21200228,0x1e000118,0xfff6fff6,0x05000002,0x21400a28,0x1e000120,0x00050005, -0x04000002,0x2adc0a28,0x1e000140,0x00000000,0x06000010,0x20002220,0x0a008000,0x00000adc, -0x00010020,0x34000004,0x0e001400,0x00000070,0x00000040,0x20e02228,0x1e000768,0x00100010, -0x00000040,0x22001240,0x160000e0,0x05080508,0x00000040,0x41182268,0x0a008000,0x00004adc, -0x05000002,0x21201a28,0x1e000118,0x00ff00ff,0x04000002,0x61400a8c,0x1e000120,0x00010001, -0x00000001,0xc0002288,0x00000140,0x00000000,0x00000020,0x34000004,0x0e001400,0x00000100, -0x00000040,0x20e02228,0x1e000768,0x00100010,0x00000040,0x22001240,0x160000e0,0x05080508, -0x00000001,0xc0001e88,0x00000000,0x00020002,0x00000020,0x34000004,0x0e001400,0x000000c0, -0x04000010,0x20000200,0x02000ad0,0x000006c8,0x00010020,0x34000004,0x0e001400,0x000000a0, -0x00000041,0x20e00a08,0x1e0006c8,0x00080008,0x00000040,0x21402228,0x1e000768,0x00100010, -0x0c000038,0x21180208,0x020000e0,0x00000ad0,0x00000040,0x22001240,0x16000140,0x05080508, -0x00000040,0x21200228,0x1e000118,0xfff8fff8,0x05000002,0x2adc0a28,0x1e000120,0x00050005, -0x00000040,0x41602268,0x0a008000,0x00000adc,0x05000002,0x21801a28,0x1e000160,0x00ff00ff, -0x04000002,0x61a00a8c,0x1e000180,0x00010001,0x00000001,0xc0002288,0x000001a0,0x00000000, -0x00000040,0x20e02228,0x1e000768,0x00790079,0x00000041,0x21181248,0x160000e0,0x00040004, -0x00000040,0x22001240,0x16000118,0x02400240,0x00000040,0xa0000208,0x02008000,0x000006c8, -0x00000040,0x21202228,0x1e000768,0x00100010,0x00000041,0x21401248,0x16000120,0x00040004, -0x00000040,0x22001240,0x16000140,0x02400240,0x00000040,0xa0000208,0x02008000,0x00000ad0, -0x06000010,0x20000200,0x16000ad8,0x001e001e,0x00010020,0x34000004,0x0e001400,0x00000100, -0x00000040,0x20e42228,0x1e000768,0x00100010,0x00000040,0x20e02228,0x1e000768,0x00790079, -0x00000041,0x21181248,0x160000e4,0x00040004,0x00000041,0x211a1248,0x160000e0,0x00040004, -0x00000040,0x22021240,0x16000118,0x02400240,0x00000040,0x22001240,0x1600011a,0x02400240, -0x00000040,0x26c80228,0x02008000,0x0000c200,0x00000041,0x21200a28,0x1e0006c8,0x00020002, -0x00000040,0x22001240,0x160000e4,0x05080508,0x0c000038,0x21400a28,0x0a000120,0x00000ad0, -0x04000002,0x21600a28,0x1e000140,0xfffcfffc,0x05000002,0x2adc0a28,0x1e000160,0x00040004, -0x00000040,0x41802268,0x0a008000,0x00000adc,0x05000002,0x21a01a28,0x1e000180,0x00ff00ff, -0x04000002,0x61c00a8c,0x1e0001a0,0x00010001,0x00000001,0xc0002288,0x000001c0,0x00000000, -0x00000040,0x20e02228,0x1e000768,0x00100010,0x00000040,0x22001240,0x160000e0,0x05080508, -0x03000010,0x20002220,0x1e008000,0x00000000,0x00010020,0x34000004,0x0e001400,0x00000040, -0x00000040,0x20e02228,0x1e000768,0x00100010,0x00000040,0x22001240,0x160000e0,0x05080508, -0x00000001,0xc0001e88,0x00000000,0x00010001,0x00000020,0x34000004,0x0e001400,0x00000070, -0x00000040,0x20e02228,0x1e000768,0x00100010,0x00000040,0x22001240,0x160000e0,0x05080508, -0x06000010,0x20002220,0x1e008000,0x00ff00ff,0x00010020,0x34000004,0x0e001400,0x00000030, -0x00000040,0x20e02228,0x1e000768,0x00100010,0x00000040,0x22001240,0x160000e0,0x05080508, -0x00000001,0xc0001e88,0x00000000,0x00ff00ff,0x00000040,0x20e02228,0x1e0006cc,0x006e006e, -0x00000041,0x21181248,0x160000e0,0x00040004,0x00000040,0x22001240,0x16000118,0x02400240, -0x00000001,0xa0000208,0x00000200,0x00000000,0x00000001,0x45121e88,0x00000000,0x00000000, -0x00000020,0x34000004,0x0e001400,0x000008e0,0x0000000c,0x220c1208,0x160004fa,0x00020002, -0x0000000c,0x22101208,0x160004fa,0x00010001,0x06000010,0x20000200,0x1600020c,0x000a000a, -0x00010020,0x34000004,0x0e001400,0x00000030,0x04000010,0x20000a20,0x1e000acc,0x00040004, -0x00010020,0x34000004,0x0e001400,0x00000010,0x00000001,0x220c1608,0x00000000,0x000a000a, -0x00000040,0x20e00a08,0x1e000ac8,0x00020002,0x04000002,0x220c0208,0x1600020c,0x00020002, -0x02000010,0x20000200,0x02000ad8,0x000000e0,0x00010020,0x34000004,0x0e001400,0x00000020, -0x01000010,0x20002260,0x1e00076d,0x00000000,0x00010020,0x34000004,0x0e001400,0x000000a0, -0x00000040,0x20e00a08,0x1e000ac8,0x00030003,0x02000010,0x20000200,0x02000ad8,0x000000e0, -0x00010020,0x34000004,0x0e001400,0x00000020,0x01000010,0x20002260,0x1e00076d,0x00010001, -0x00010020,0x34000004,0x0e001400,0x00000050,0x00000040,0x20e00a08,0x1e000ac8,0x00040004, -0x02000010,0x20000200,0x02000ad8,0x000000e0,0x00010020,0x34000004,0x0e001400,0x000001c0, -0x02000010,0x20002260,0x1e00076d,0x00020002,0x00010020,0x34000004,0x0e001400,0x000001a0, -0x00000041,0x20e00208,0x16000210,0x000a000a,0x00000041,0x20e40208,0x1600020c,0x000e000e, -0x00000041,0x2ad00208,0x02000260,0x0000020c,0x00000040,0x21240208,0x1e0000e0,0xfff6fff6, -0x00000040,0x21180208,0x020000e0,0x000040e4,0x06000010,0x20000200,0x02000200,0x00000ad0, -0x00000041,0x21200208,0x02000118,0x00000260,0x0c000038,0x24040208,0x02000120,0x00000124, -0x00010020,0x34000004,0x0e001400,0x000000b0,0x00000041,0x20e00208,0x16000200,0x00060006, -0x00000040,0x21402a28,0x1e000ac2,0x00010001,0x0c000038,0x21180208,0x020000e0,0x00000ad0, -0x00000040,0x22001240,0x16000140,0x05080508,0x00000040,0x21200228,0x1e000118,0xfffafffa, -0x05000002,0x2adc0a28,0x1e000120,0x00040004,0x00000040,0x41602268,0x0a008000,0x00000adc, -0x05000002,0x21801a28,0x1e000160,0x00ff00ff,0x04000002,0x61a00a8c,0x1e000180,0x00010001, -0x00000001,0xc0002288,0x000001a0,0x00000000,0x00000020,0x34000004,0x0e001400,0x000004f0, -0x04000010,0x20000200,0x02000200,0x00000ad0,0x00010020,0x34000004,0x0e001400,0x000004d0, -0x00000040,0x20e00208,0x02000ad0,0x00004200,0x0c000038,0x21180208,0x020000e0,0x00000210, -0x00000040,0x24040208,0x02000404,0x00000118,0x00000020,0x34000004,0x0e001400,0x00000490, -0x00000040,0x20e00a08,0x1e000ac4,0x00020002,0x02000010,0x20000200,0x02000ad8,0x000000e0, -0x00010020,0x34000004,0x0e001400,0x00000020,0x01000010,0x20002260,0x1e00076d,0x00000000, -0x00010020,0x34000004,0x0e001400,0x000000a0,0x00000040,0x20e00a08,0x1e000ac4,0x00030003, -0x02000010,0x20000200,0x02000ad8,0x000000e0,0x00010020,0x34000004,0x0e001400,0x00000020, -0x01000010,0x20002260,0x1e00076d,0x00010001,0x00010020,0x34000004,0x0e001400,0x00000050, -0x00000040,0x20e00a08,0x1e000ac4,0x00040004,0x02000010,0x20000200,0x02000ad8,0x000000e0, -0x00010020,0x34000004,0x0e001400,0x00000180,0x02000010,0x20002260,0x1e00076d,0x00020002, -0x00010020,0x34000004,0x0e001400,0x00000160,0x0000000c,0x20e00208,0x1600020c,0x00010001, -0x00000041,0x2ad00208,0x02000260,0x000000e0,0x06000010,0x20000200,0x02000200,0x00000ad0, -0x00010020,0x34000004,0x0e001400,0x000000b0,0x00000041,0x20e00208,0x16000200,0x00060006, -0x00000040,0x21402a28,0x1e000ac2,0x00010001,0x0c000038,0x21180208,0x020000e0,0x00000ad0, -0x00000040,0x22001240,0x16000140,0x05080508,0x00000040,0x21200228,0x1e000118,0xfffafffa, -0x05000002,0x2adc0a28,0x1e000120,0x00020002,0x00000040,0x41602268,0x0a008000,0x00000adc, -0x05000002,0x21801a28,0x1e000160,0x00ff00ff,0x04000002,0x61a00a8c,0x1e000180,0x00010001, -0x00000001,0xc0002288,0x000001a0,0x00000000,0x00000020,0x34000004,0x0e001400,0x000002b0, -0x04000010,0x20000200,0x02000200,0x00000ad0,0x00010020,0x34000004,0x0e001400,0x00000290, -0x00000040,0x20e00208,0x02000ad0,0x00004200,0x0000000c,0x20e40208,0x16000210,0x00010001, -0x0c000038,0x21180208,0x020000e0,0x000000e4,0x00000040,0x24040208,0x02000404,0x00000118, -0x00000020,0x34000004,0x0e001400,0x00000240,0x06000010,0x20000200,0x02000200,0x00000404, -0x00010020,0x34000004,0x0e001400,0x000000b0,0x00000041,0x20e00208,0x16000200,0x00060006, -0x00000040,0x21402a28,0x1e000ac2,0x00010001,0x0c000038,0x21180208,0x020000e0,0x00000404, -0x00000040,0x22001240,0x16000140,0x05080508,0x00000040,0x21200228,0x1e000118,0xfffafffa, -0x05000002,0x2adc0a28,0x1e000120,0x00060006,0x00000040,0x41602268,0x0a008000,0x00000adc, -0x05000002,0x21801a28,0x1e000160,0x00ff00ff,0x04000002,0x61a00a8c,0x1e000180,0x00010001, -0x00000001,0xc0002288,0x000001a0,0x00000000,0x00000020,0x34000004,0x0e001400,0x00000170, -0x04000010,0x20000200,0x02000200,0x00000404,0x00010020,0x34000004,0x0e001400,0x00000150, -0x00000009,0x20e00208,0x16000404,0x00030003,0x02000010,0x20002260,0x1e00076d,0x00020002, -0x0c000038,0x21180208,0x020000e0,0x00000200,0x00000040,0x21200228,0x1e000118,0xfff8fff8, -0x05000002,0x2adc0a28,0x1e000120,0x000a000a,0x00010020,0x34000004,0x0e001400,0x00000010, -0x0c000038,0x2adc0a28,0x0e000adc,0x00000003,0x00000040,0x20e02a28,0x1e000ac2,0x00010001, -0x00000040,0x22001240,0x160000e0,0x05080508,0x06000010,0x20002220,0x0a008000,0x00000adc, -0x00010020,0x34000004,0x0e001400,0x00000070,0x00000040,0x20e02a28,0x1e000ac2,0x00010001, -0x00000040,0x22001240,0x160000e0,0x05080508,0x00000040,0x41182268,0x0a008000,0x00004adc, -0x05000002,0x21201a28,0x1e000118,0x00ff00ff,0x04000002,0x61400a8c,0x1e000120,0x00010001, -0x00000001,0xc0002288,0x00000140,0x00000000,0x00000020,0x34000004,0x0e001400,0x00000030, -0x00000040,0x20e02a28,0x1e000ac2,0x00010001,0x00000040,0x22001240,0x160000e0,0x05080508, -0x00000001,0xc0001e88,0x00000000,0x00000000,0x00000040,0x20e00a08,0x1e000ac8,0x00010001, -0x02000010,0x20000200,0x02000ad8,0x000000e0,0x00010020,0x34000004,0x0e001400,0x00000030, -0x00000001,0x45121e88,0x00000000,0x00010001,0x00000041,0x2ad00208,0x02000260,0x0000020c, -0x00000020,0x34000004,0x0e001400,0x00000080,0x00000040,0x20e00a08,0x1e000ac4,0x00010001, -0x02000010,0x20000200,0x02000ad8,0x000000e0,0x00010020,0x34000004,0x0e001400,0x00000030, -0x0000000c,0x20e00208,0x1600020c,0x00010001,0x00000041,0x2ad00208,0x02000260,0x000000e0, -0x00000020,0x34000004,0x0e001400,0x00000020,0x00000001,0x45121e88,0x00000000,0x00000000, -0x00000001,0x2ad00208,0x00000404,0x00000000,0x00000040,0x20e02a28,0x1e000ac2,0x00010001, -0x00000041,0x20e40208,0x160006c0,0x00140014,0x00000040,0x22001240,0x160000e0,0x05080508, -0x0c000038,0x21180208,0x020000e4,0x00000ad0,0x0000000c,0x211c2208,0x1e008000,0x00020002, -0x00000040,0x2adc0228,0x02000118,0x0000011c,0x01000010,0x20002260,0x1e00076e,0x00000000, -0x00010020,0x34000004,0x0e001400,0x00000010,0x00000040,0x22700a28,0x0a000270,0x000046d0, -0x04000040,0x22040228,0x02000204,0x00004200,0x00000040,0x226c0a28,0x1e00026c,0x00010001, -0x00000001,0x220c0a08,0x00000740,0x00000000,0x00000001,0x21100a08,0x00000274,0x00000000, -0x00010020,0x34000004,0x0e001400,0x00000060,0x01000010,0x20002260,0x1e00076e,0x00000000, -0x00000040,0x22040228,0x0200020c,0x00004110,0x00010020,0x34000004,0x0e001400,0x00000010, -0x00000040,0x22040a28,0x0a000204,0x000046d0,0x05000002,0x22040a28,0x0a0006d0,0x00000204, -0x00000020,0x34000004,0x0e001400,0x00000030,0x00000040,0x20e00208,0x0200020c,0x00004270, -0x00000040,0x21180228,0x020000e0,0x00004200,0x05000002,0x22040a28,0x0a000118,0x000006d0, -0x00000001,0x22680a28,0x00000204,0x00000000,0x02000010,0x20002260,0x1e000510,0x00000000, -0x00000040,0x22700228,0x02004204,0x0000020c,0x00000001,0x21101e28,0x00000000,0x00000000, -0x00000001,0x22bc0a28,0x00000268,0x00000000,0x00010020,0x34000004,0x0e001400,0x00000020, -0x00000040,0x20e00a28,0x0a000204,0x00000264,0x00000040,0x21100a28,0x0a0000e0,0x000046d0, -0x00000001,0x22b80a28,0x00000110,0x00000000,0x00000040,0x21202a28,0x1e000ac2,0x001a001a, -0x0000000c,0x21180208,0x16000260,0x00030003,0x0000000c,0x20e00208,0x16000208,0x00030003, -0x00000041,0x21401248,0x16000120,0x00040004,0x00000040,0x22780208,0x02000278,0x00000118, -0x00000040,0x227c0208,0x0200027c,0x000000e0,0x00000040,0x22001240,0x16000140,0x02400240, -0x00000001,0xa0000208,0x00000208,0x00000000,0x00000001,0x20e002e8,0x000002a8,0x00000000, -0x00000001,0x221002e8,0x000002b0,0x00000000,0x00000001,0x20e412e8,0x000004da,0x00000000, -0x00000001,0x211802e8,0x000002ac,0x00000000,0x00000001,0x211c12e8,0x000004dc,0x00000000, -0x00000001,0x212002e8,0x00000258,0x00000000,0x00000001,0x214412e8,0x000004f4,0x00000000, -0x00000001,0x214002e8,0x0000025c,0x00000000,0x0c000038,0x21600a28,0x0e0006d0,0x00000002, -0x0040015b,0x10820000,0x792109c9,0x01c7240e,0x02000010,0x20002260,0x1e000510,0x00000000, -0x00000001,0x45182aa8,0x00000513,0x00000000,0x00000001,0x45132aa8,0x00000508,0x00000000, -0x00000041,0x21403ae8,0x3a000140,0x00000144,0x00000001,0x22081e28,0x00000000,0x00020002, -0x00000001,0x220c1e28,0x00000000,0x00040004,0x0040015b,0x10820000,0xf92109c9,0x02372411, -0x00000001,0x22740a28,0x00000740,0x00000000,0x00000001,0x45082aa8,0x00000ad4,0x00000000, -0x00000041,0x22103ae8,0x3a000210,0x00000120,0x09000038,0x221c3ae8,0x3a000210,0x00000140, -0x00000040,0x22100a28,0x0a000204,0x00004160,0x00010020,0x34000004,0x0e001400,0x00000030, -0x0000000c,0x20e00a28,0x1e000210,0x00020002,0x00000040,0x22100a28,0x0a000210,0x000000e0, -0x00000020,0x34000004,0x0e001400,0x00000050,0x02000010,0x20002260,0x1e000510,0x00010001, -0x00010020,0x34000004,0x0e001400,0x00000030,0x00000040,0x20e00208,0x02000278,0x0000427c, -0x00000009,0x21180228,0x160000e0,0x00030003,0x05000002,0x22100a28,0x0a000118,0x00000210, -0x00000001,0x26c81608,0x00000000,0x00000000,0x00000001,0x26cc1e28,0x00000000,0x00000000, -0x00000001,0x22141608,0x00000000,0x00000000,0x00000041,0x20e02a28,0x1e000ad4,0x00050005, -0x00000040,0x21180a28,0x1e0000e0,0x005f005f,0x00000040,0x21200a28,0x0a000118,0x000006cc, -0x00000041,0x21401248,0x16000120,0x00040004,0x00000040,0x22001240,0x16000140,0x02400240, -0x05000010,0x20000a20,0x1e008000,0x00000000,0x00010020,0x34000004,0x0e001400,0x00000070, -0x00000041,0x20e02a28,0x1e000ad4,0x00050005,0x00000040,0x21180a28,0x1e0000e0,0x005f005f, -0x00000040,0x21200a28,0x0a000118,0x000006cc,0x00000041,0x21401248,0x16000120,0x00040004, -0x00000040,0x22001240,0x16000140,0x02400240,0x00000040,0x26c80208,0x020006c8,0x00008000, -0x00000040,0x22140208,0x16000214,0x00010001,0x00000040,0x26cc0a28,0x1e0006cc,0x00010001, -0x05000010,0x20000a20,0x1e0006cc,0x00050005,0x00010020,0x34000004,0x0e001400,0xfffffef0, -0x06000010,0x20000200,0x16000214,0x00030003,0x00010020,0x34000004,0x0e001400,0x000002f0, -0x00000001,0x26d00608,0x00000000,0xffffffff,0x00000001,0x26d41608,0x00000000,0x00000000, -0x00000001,0x26cc1e28,0x00000000,0x00000000,0x00000041,0x20e02a28,0x1e000ad4,0x00050005, -0x00000040,0x21180a28,0x1e0000e0,0x005f005f,0x00000040,0x21200a28,0x0a000118,0x000006cc, -0x00000041,0x21401248,0x16000120,0x00040004,0x00000040,0x22001240,0x16000140,0x02400240, -0x05000010,0x20000a20,0x1e008000,0x00000000,0x00010020,0x34000004,0x0e001400,0x000001a0, -0x00000041,0x20e02a28,0x1e000ad4,0x00050005,0x00000040,0x21180a28,0x1e0000e0,0x005f005f, -0x00000040,0x21200a28,0x0a000118,0x000006cc,0x00000041,0x21401248,0x16000120,0x00040004, -0x00000040,0x22001240,0x16000140,0x02400240,0x04000010,0x20000200,0x02008000,0x000006d0, -0x00010020,0x34000004,0x0e001400,0x00000060,0x00000041,0x20e02a28,0x1e000ad4,0x00050005, -0x00000040,0x21180a28,0x1e0000e0,0x005f005f,0x00000040,0x21200a28,0x0a000118,0x000006cc, -0x00000041,0x21401248,0x16000120,0x00040004,0x00000040,0x22001240,0x16000140,0x02400240, -0x00000001,0x26d00a08,0x00008000,0x00000000,0x00000041,0x20e02a28,0x1e000ad4,0x00050005, -0x00000040,0x21180a28,0x1e0000e0,0x005f005f,0x00000040,0x21200a28,0x0a000118,0x000006cc, -0x00000041,0x21401248,0x16000120,0x00040004,0x00000040,0x22001240,0x16000140,0x02400240, -0x06000010,0x20000200,0x02008000,0x000006d4,0x00010020,0x34000004,0x0e001400,0x00000060, -0x00000041,0x20e02a28,0x1e000ad4,0x00050005,0x00000040,0x21180a28,0x1e0000e0,0x005f005f, -0x00000040,0x21200a28,0x0a000118,0x000006cc,0x00000041,0x21401248,0x16000120,0x00040004, -0x00000040,0x22001240,0x16000140,0x02400240,0x00000001,0x26d40a08,0x00008000,0x00000000, -0x00000040,0x26cc0a28,0x1e0006cc,0x00010001,0x05000010,0x20000a20,0x1e0006cc,0x00050005, -0x00010020,0x34000004,0x0e001400,0xfffffdc0,0x04000010,0x20000200,0x060006d0,0xffffffff, -0x00010020,0x34000004,0x0e001400,0x00000020,0x00000040,0x26c80208,0x020006c8,0x000046d0, -0x00000040,0x22140208,0x1e000214,0xffffffff,0x06000010,0x20000200,0x160006d4,0x00000000, -0x00010020,0x34000004,0x0e001400,0x00000020,0x00000040,0x26c80208,0x020006c8,0x000046d4, -0x00000040,0x22140208,0x1e000214,0xffffffff,0x06000010,0x20000200,0x16000214,0x00000000, -0x00010020,0x34000004,0x0e001400,0x00000060,0x00000001,0x20e002e8,0x000006c8,0x00000000, -0x00000001,0x20e402e8,0x00000214,0x00000000,0x09000038,0x21183ae8,0x3a0000e0,0x000000e4, -0x00000001,0x21203a08,0x00000118,0x00000000,0x00000040,0x26c80208,0x16000120,0x00010001, -0x00000020,0x34000004,0x0e001400,0x00000120,0x02000010,0x20002a60,0x1e000ad4,0x00000000, -0x00000001,0x26c81608,0x00000000,0x00000000,0x00010020,0x34000004,0x0e001400,0x00000070, -0x00000040,0x20e00208,0x1600029c,0x00680068,0x00000041,0x21181248,0x160000e0,0x00040004, -0x00000040,0x22001240,0x16000118,0x02400240,0x00000041,0x21200a28,0x1e008000,0x00050005, -0x00000001,0x22141608,0x00000000,0x00010001,0x0000000c,0x26c80a08,0x1e000120,0x00020002, -0x00000020,0x34000004,0x0e001400,0x00000080,0x02000010,0x20002a60,0x1e000ad4,0x00010001, -0x00010020,0x34000004,0x0e001400,0x00000060,0x00000040,0x20e00208,0x16000294,0x005e005e, -0x00000041,0x21181248,0x160000e0,0x00040004,0x00000040,0x22001240,0x16000118,0x02400240, -0x00000041,0x21200a28,0x1e008000,0x00050005,0x00000001,0x22141608,0x00000000,0x00010001, -0x0000000c,0x26c80a08,0x1e000120,0x00020002,0x00000001,0x20e002e8,0x000006c8,0x00000000, -0x02000010,0x20002a60,0x1e000ad4,0x00010001,0x04000002,0x26c40a28,0x1e0006c4,0x00010001, -0x09000038,0x21183ae8,0x3e0000e0,0x41a00000,0x0a000038,0x21203ae8,0x3e000118,0x3ecccccd, -0x04000002,0x22183ae8,0x3e000120,0x3dcccccd,0x00000001,0x26c83ae8,0x00000218,0x00000000, -0x00010020,0x34000004,0x0e001400,0x000000b0,0x00000001,0x20e002e8,0x000006c0,0x00000000, -0x00000001,0x20e40ae8,0x000006c4,0x00000000,0x09000038,0x21183ae8,0x3a0000e0,0x000000e4, -0x06000010,0x20003ae0,0x3e000118,0x40400000,0x00010020,0x34000004,0x0e001400,0x000000b0, -0x00000041,0x20e40a28,0x1e0006c4,0x00140014,0x00000001,0x20e002e8,0x000006c0,0x00000000, -0x00000001,0x21180ae8,0x000000e4,0x00000000,0x09000038,0x21203ae8,0x3a0000e0,0x00000118, -0x0a000038,0x22183ae8,0x3e000120,0x3ecccccd,0x00000020,0x34000004,0x0e001400,0x00000050, -0x00000041,0x20e40a28,0x1e0006c4,0x00140014,0x00000001,0x20e002e8,0x000006c0,0x00000000, -0x00000001,0x21180ae8,0x000000e4,0x00000000,0x09000038,0x21203ae8,0x3a0000e0,0x00000118, -0x0a000038,0x22183ae8,0x3e000120,0x3ecccccd,0x04000002,0x22183ae8,0x3e000218,0x3dcccccd, -0x06000010,0x20000200,0x16000ad8,0x000a000a,0x00000041,0x20e03ae8,0x3e000218,0x42c80000, -0x09000038,0x21183ae8,0x3a0000e0,0x000006c8,0x00000001,0x26c83a08,0x00000118,0x00000000, -0x00010020,0x34000004,0x0e001400,0x00000130,0x00000040,0x20e00228,0x1e0006c8,0xff9cff9c, -0x03000010,0x20002260,0x1e000ac0,0x00010001,0x0c000038,0x21180a28,0x0e0000e0,0x00000004, -0x05000002,0x26cc0a28,0x1e000118,0x00090009,0x00010020,0x34000004,0x0e001400,0x000000e0, -0x00000040,0x20e02a28,0x1e000ac2,0x00010001,0x00000040,0x22001240,0x160000e0,0x05080508, -0x04000010,0x20002220,0x0a008000,0x000046cc,0x00010020,0x34000004,0x0e001400,0x00000040, -0x00000040,0x20e02a28,0x1e000ac2,0x00010001,0x00000040,0x22001240,0x160000e0,0x05080508, -0x00000001,0xc0001e88,0x00000000,0x00020002,0x00000020,0x34000004,0x0e001400,0x00000060, -0x00000040,0x20e02a28,0x1e000ac2,0x00010001,0x00000040,0x22001240,0x160000e0,0x05080508, -0x00000040,0x41182268,0x0a008000,0x000006cc,0x05000002,0x21201a28,0x1e000118,0x00ff00ff, -0x04000002,0x61400a8c,0x1e000120,0x00010001,0x00000001,0xc0002288,0x00000140,0x00000000, -0x02000010,0x20002a60,0x1e000ad4,0x00010001,0x00010020,0x34000004,0x0e001400,0x00000050, -0x00000001,0x20e002e8,0x000006c0,0x00000000,0x00000001,0x20e40ae8,0x000006c4,0x00000000, -0x09000038,0x21183ae8,0x3a0000e0,0x000000e4,0x06000010,0x20003ae0,0x3e000118,0x40400000, -0x00010020,0x34000004,0x0e001400,0x00000340,0x00000040,0x20e02a28,0x1e000ad4,0x00150015, -0x00000041,0x21181248,0x160000e0,0x00040004,0x00000040,0x22001240,0x16000118,0x02400240, -0x00000001,0x26cc0208,0x00008000,0x00000000,0x06000010,0x20000200,0x160006c8,0x00b400b4, -0x00010020,0x34000004,0x0e001400,0x00000210,0x01000010,0x20002a60,0x1e000ad4,0x00020002, -0x00010020,0x34000004,0x0e001400,0x000001f0,0x01000010,0x20002a60,0x1e000ad4,0x00010001, -0x00010020,0x34000004,0x0e001400,0x000001d0,0x05000010,0x20003ae0,0x3e000218,0x40800000, -0x00010020,0x34000004,0x0e001400,0x000001b0,0x00000041,0x211c2a28,0x1e000ad4,0x00050005, -0x0000000c,0x20e00208,0x160006c0,0x00030003,0x00000040,0x21200a08,0x1e00011c,0x005f005f, -0x0c000038,0x21180208,0x020000e0,0x000006c4,0x00000040,0x21240208,0x02000120,0x000006cc, -0x00000041,0x21401248,0x16000124,0x00040004,0x00000040,0x22021240,0x16000140,0x02400240, -0x00000001,0xa2000228,0x00000118,0x00000000,0x00000040,0x21600208,0x160006cc,0x00010001, -0x0d000038,0x21800208,0x06000160,0x00000005,0x00000040,0x21a00208,0x02000120,0x00000180, -0x00000041,0x21c01248,0x160001a0,0x00040004,0x00000040,0x22001240,0x160001c0,0x02400240, -0x00000001,0xa0000a28,0x00008200,0x00000000,0x00000040,0x20e00208,0x160006cc,0x00020002, -0x0d000038,0x211c0208,0x060000e0,0x00000005,0x00000040,0x21e00208,0x02000120,0x0000011c, -0x00000041,0x21241248,0x160001e0,0x00040004,0x00000040,0x22001240,0x16000124,0x02400240, -0x00000001,0xa0000228,0x00000118,0x00000000,0x00000040,0x21400208,0x160006cc,0x00030003, -0x0d000038,0x21600208,0x06000140,0x00000005,0x00000040,0x21800208,0x02000120,0x00000160, -0x00000041,0x21a01248,0x16000180,0x00040004,0x00000040,0x22001240,0x160001a0,0x02400240, -0x00000001,0xa0000228,0x00000118,0x00000000,0x00000020,0x34000004,0x0e001400,0x00000070, -0x00000041,0x20e42a28,0x1e000ad4,0x00050005,0x0c000038,0x20e00208,0x020006c0,0x000006c4, -0x00000040,0x21180a08,0x1e0000e4,0x005f005f,0x00000040,0x21200208,0x02000118,0x000006cc, -0x00000041,0x21401248,0x16000120,0x00040004,0x00000040,0x22001240,0x16000140,0x02400240, -0x00000001,0xa0000228,0x000000e0,0x00000000,0x00000040,0x20e00208,0x160006cc,0x00010001, -0x00000040,0x211c2a28,0x1e000ad4,0x00150015,0x0d000038,0x21180208,0x060000e0,0x00000005, -0x00000041,0x21201248,0x1600011c,0x00040004,0x00000040,0x22001240,0x16000120,0x02400240, -0x00000001,0xa0000208,0x00000118,0x00000000,0x00000040,0x20e02a28,0x1e000ad4,0x00010001, -0x00000040,0x22001240,0x160000e0,0x05080508,0x00000001,0x29402268,0x00008000,0x00000000, -0x02000010,0x20002a60,0x1e000ad4,0x00020002,0x00000001,0x26c01628,0x00000000,0x00000000, -0x00010020,0x34000004,0x0e001400,0x00000980,0x06000010,0x20000a20,0x1e00026c,0x00000000, -0x00000001,0x45121e88,0x00000000,0x00010001,0x00010020,0x34000004,0x0e001400,0x00000370, -0x00000001,0x26c01e28,0x00000000,0x00040004,0x00000001,0x26c41e28,0x00000000,0x00030003, -0x00000040,0x20e00a28,0x1e0006c4,0x003e003e,0x0000000c,0x26c00a28,0x1e0006c0,0x00010001, -0x00000041,0x21181248,0x160000e0,0x00040004,0x00000040,0x22001240,0x16000118,0x02400240, -0x04000010,0x20000a20,0x0a008000,0x00000210,0x00010020,0x34000004,0x0e001400,0x00000020, -0x00000040,0x26c40a28,0x0a0006c4,0x000006c0,0x00000020,0x34000004,0x0e001400,0x00000010, -0x00000040,0x26c40a28,0x0a0006c4,0x000046c0,0x03000010,0x20000a20,0x1e0006c0,0x00000000, -0x00010020,0x34000004,0x0e001400,0xffffff50,0x00000040,0x20e00a28,0x1e0006c4,0x003e003e, -0x00000041,0x21181248,0x160000e0,0x00040004,0x00000040,0x22001240,0x16000118,0x02400240, -0x04000010,0x20000a20,0x0a008000,0x00000210,0x00010020,0x34000004,0x0e001400,0x00000010, -0x00000040,0x26c40a28,0x1e0006c4,0x00010001,0x00000040,0x20e00a28,0x1e0006c4,0x003e003e, -0x00000041,0x21181248,0x160000e0,0x00040004,0x00000040,0x22001240,0x16000118,0x02400240, -0x04000010,0x20000a20,0x0a008000,0x00000210,0x00010020,0x34000004,0x0e001400,0x00000010, -0x00000040,0x26c40a28,0x1e0006c4,0x00010001,0x00000001,0x220c0a28,0x000006c4,0x00000000, -0x00000001,0x26c01e28,0x00000000,0x00020002,0x00000001,0x26c41e28,0x00000000,0x00010001, -0x00000040,0x20e00a28,0x1e0006c4,0x00560056,0x0000000c,0x26c00a28,0x1e0006c0,0x00010001, -0x00000041,0x21181248,0x160000e0,0x00040004,0x00000040,0x22001240,0x16000118,0x02400240, -0x00000001,0x21200ae8,0x00008000,0x00000000,0x04000010,0x20003ae0,0x3a000120,0x0000021c, -0x00010020,0x34000004,0x0e001400,0x00000020,0x00000040,0x26c40a28,0x0a0006c4,0x000006c0, -0x00000020,0x34000004,0x0e001400,0x00000010,0x00000040,0x26c40a28,0x0a0006c4,0x000046c0, -0x03000010,0x20000a20,0x1e0006c0,0x00000000,0x00010020,0x34000004,0x0e001400,0xffffff40, -0x00000040,0x20e00a28,0x1e0006c4,0x00560056,0x00000041,0x21181248,0x160000e0,0x00040004, -0x00000040,0x22001240,0x16000118,0x02400240,0x00000001,0x21200ae8,0x00008000,0x00000000, -0x04000010,0x20003ae0,0x3a000120,0x0000021c,0x00010020,0x34000004,0x0e001400,0x00000010, -0x00000040,0x26c40a28,0x1e0006c4,0x00010001,0x00000040,0x20e00a28,0x1e0006c4,0x00560056, -0x00000041,0x21181248,0x160000e0,0x00040004,0x00000040,0x22001240,0x16000118,0x02400240, -0x00000001,0x21200ae8,0x00008000,0x00000000,0x04000010,0x20003ae0,0x3a000120,0x0000021c, -0x00010020,0x34000004,0x0e001400,0x00000010,0x00000040,0x26c40a28,0x1e0006c4,0x00010001, -0x00000001,0x22080a28,0x000006c4,0x00000000,0x06000010,0x20002260,0x1e000ac0,0x00010001, -0x00010020,0x34000004,0x0e001400,0x00000010,0x00000001,0x22081e28,0x00000000,0x00020002, -0x00000041,0x20e00a28,0x1e00020c,0x00050005,0x00000040,0x21180a28,0x1e0000e0,0x00330033, -0x00000040,0x21200a28,0x0a000118,0x00000208,0x00000040,0x22001240,0x16000120,0x05400540, -0x00000040,0x29402268,0x2a00050b,0x00008000,0x06000010,0x20000200,0x16000214,0x00000000, -0x00000001,0x26c01e28,0x00000000,0x00080008,0x00010020,0x34000004,0x0e001400,0x000001c0, -0x00000001,0x22081e28,0x00000000,0x00030003,0x00000001,0x21101e28,0x00000000,0x00040004, -0x00000040,0x20e00a28,0x1e000208,0x001f001f,0x0000000c,0x21100a28,0x1e000110,0x00010001, -0x00000040,0x22001240,0x160000e0,0x05400540,0x04000010,0x20002200,0x02008000,0x000006c8, -0x00010020,0x34000004,0x0e001400,0x00000020,0x00000040,0x22080a28,0x0a000208,0x00000110, -0x00000020,0x34000004,0x0e001400,0x00000010,0x00000040,0x22080a28,0x0a000208,0x00004110, -0x03000010,0x20000a20,0x1e000110,0x00000000,0x00010020,0x34000004,0x0e001400,0xffffff60, -0x00000040,0x20e00a28,0x1e000208,0x001f001f,0x00000040,0x22001240,0x160000e0,0x05400540, -0x04000010,0x20002200,0x02008000,0x000006c8,0x00010020,0x34000004,0x0e001400,0x00000010, -0x00000040,0x22080a28,0x1e000208,0x00010001,0x00000040,0x20e00a28,0x1e000208,0x001f001f, -0x00000040,0x22001240,0x160000e0,0x05400540,0x04000010,0x20002200,0x02008000,0x000006c8, -0x00010020,0x34000004,0x0e001400,0x00000010,0x00000040,0x22080a28,0x1e000208,0x00010001, -0x00000041,0x20e00a28,0x1e00020c,0x00090009,0x00000001,0x26c00a28,0x00000208,0x00000000, -0x00000040,0x21180a28,0x1e0000e0,0x008d008d,0x00000040,0x21200a28,0x0a000118,0x00000208, -0x00000040,0x22001240,0x16000120,0x05400540,0x00000040,0x29401a68,0x2a000940,0x00008000, -0x05000010,0x20000a20,0x1e0006c0,0x00070007,0x00010020,0x34000004,0x0e001400,0x00000350, -0x03000010,0x20000a20,0x1e00020c,0x00010001,0x00000041,0x22083ae8,0x3e000218,0x3e2aaaab, -0x00010020,0x34000004,0x0e001400,0x00000060,0x04000010,0x20003ae0,0x3e000208,0x3f99999a, -0x00010020,0x34000004,0x0e001400,0x00000020,0x00000001,0x22083ee8,0x00000000,0x3f99999a, -0x00000020,0x34000004,0x0e001400,0x000000f0,0x05000002,0x22083ae8,0x3e000208,0x3fd9999a, -0x00000020,0x34000004,0x0e001400,0x000000d0,0x03000010,0x20000a20,0x1e00020c,0x00020002, -0x00010020,0x34000004,0x0e001400,0x00000060,0x04000010,0x20003ae0,0x3e000208,0x3f800000, -0x00010020,0x34000004,0x0e001400,0x00000020,0x00000001,0x22083ee8,0x00000000,0x3f800000, -0x00000020,0x34000004,0x0e001400,0x00000070,0x05000002,0x22083ae8,0x3e000208,0x3fc00000, -0x00000020,0x34000004,0x0e001400,0x00000050,0x04000010,0x20003ae0,0x3e000208,0x3e99999a, -0x00010020,0x34000004,0x0e001400,0x00000020,0x00000001,0x22083ee8,0x00000000,0x3e99999a, -0x00000020,0x34000004,0x0e001400,0x00000010,0x05000002,0x22083ae8,0x3e000208,0x3fa66666, -0x00000001,0x20e022e8,0x0000050f,0x00000000,0x00000040,0x20e43ae8,0x3e004208,0x3f800000, -0x03000010,0x20000a20,0x1e00020c,0x00010001,0x00000041,0x21183ae8,0x3a0000e0,0x000000e4, -0x09000038,0x21203ae8,0x3e000118,0x42fa0000,0x00000040,0x21403ae8,0x3a000120,0x00000208, -0x00000041,0x21603ae8,0x3a000140,0x000000e0,0x00000001,0x49403a68,0x00000160,0x00000000, -0x00010020,0x34000004,0x0e001400,0x00000020,0x00000040,0x29401a68,0x1e000940,0x00060006, -0x00000020,0x34000004,0x0e001400,0x00000070,0x03000010,0x20000a20,0x1e00020c,0x00020002, -0x00010020,0x34000004,0x0e001400,0x00000020,0x00000040,0x29401a68,0x1e000940,0x00040004, -0x00000020,0x34000004,0x0e001400,0x00000030,0x03000010,0x20000a20,0x1e00020c,0x00030003, -0x00010020,0x34000004,0x0e001400,0x00000010,0x00000040,0x29401a68,0x1e000940,0x00020002, -0x05000002,0x20e01a28,0x1e000940,0x00f000f0,0x06000010,0x20002260,0x1e000ac0,0x00010001, -0x04000002,0x49400a68,0x1e0000e0,0x00010001,0x00010020,0x34000004,0x0e001400,0x00000050, -0x00000040,0x20e01a28,0x1e000940,0x00040004,0x04000010,0x20002220,0x0a000509,0x000000e0, -0x00010020,0x34000004,0x0e001400,0x00000060,0x00000040,0x45091a88,0x1e000940,0x00040004, -0x00000020,0x34000004,0x0e001400,0x00000040,0x00000040,0x20e01a28,0x1e000940,0x000c000c, -0x04000010,0x20002220,0x0a000509,0x000000e0,0x00010020,0x34000004,0x0e001400,0x00000010, -0x00000040,0x45091a88,0x1e000940,0x000c000c,0x02000010,0x20002a60,0x1e000ad4,0x00000000, -0x00010020,0x34000004,0x0e001400,0x00000880,0x06000010,0x20002260,0x1e000ac0,0x00010001, -0x00010020,0x34000004,0x0e001400,0x00000070,0x06000010,0x20002260,0x1e000768,0x00000000, -0x00000001,0x29402268,0x00000509,0x00000000,0x00010020,0x34000004,0x0e001400,0x00000070, -0x00000040,0x20e02228,0x1e000768,0x00100010,0x00000040,0x22001240,0x160000e0,0x05080508, -0x00000001,0x29402268,0x00008000,0x00000000,0x00000020,0x34000004,0x0e001400,0x00000030, -0x00000040,0x20e02a28,0x1e000ac2,0x00010001,0x00000040,0x22001240,0x160000e0,0x05080508, -0x00000001,0x29402268,0x00008000,0x00000000,0x06000010,0x20000200,0x16000214,0x00000000, -0x00000001,0x26c01e28,0x00000000,0x00080008,0x00010020,0x34000004,0x0e001400,0x00000420, -0x00000001,0x220c1e28,0x00000000,0x00040004,0x00000001,0x22081e28,0x00000000,0x00030003, -0x00000040,0x20e00a28,0x1e000208,0x002a002a,0x0000000c,0x220c0a28,0x1e00020c,0x00010001, -0x00000041,0x21181248,0x160000e0,0x00040004,0x00000040,0x22001240,0x16000118,0x02400240, -0x04000010,0x20000a20,0x0a008000,0x00000210,0x00010020,0x34000004,0x0e001400,0x00000020, -0x00000040,0x22080a28,0x0a000208,0x0000020c,0x00000020,0x34000004,0x0e001400,0x00000010, -0x00000040,0x22080a28,0x0a000208,0x0000420c,0x03000010,0x20000a20,0x1e00020c,0x00000000, -0x00010020,0x34000004,0x0e001400,0xffffff50,0x00000040,0x20e00a28,0x1e000208,0x002a002a, -0x00000041,0x21181248,0x160000e0,0x00040004,0x00000040,0x22001240,0x16000118,0x02400240, -0x04000010,0x20000a20,0x0a008000,0x00000210,0x00010020,0x34000004,0x0e001400,0x00000010, -0x00000040,0x22080a28,0x1e000208,0x00010001,0x00000040,0x20e00a28,0x1e000208,0x002a002a, -0x00000041,0x21181248,0x160000e0,0x00040004,0x00000040,0x22001240,0x16000118,0x02400240, -0x04000010,0x20000a20,0x0a008000,0x00000210,0x00010020,0x34000004,0x0e001400,0x00000010, -0x00000040,0x22080a28,0x1e000208,0x00010001,0x00000001,0x220c0a28,0x00000208,0x00000000, -0x00000001,0x22101e28,0x00000000,0x00030003,0x00000001,0x21101e28,0x00000000,0x00040004, -0x00000040,0x20e00a28,0x1e000210,0x00270027,0x0000000c,0x21100a28,0x1e000110,0x00010001, -0x00000040,0x22001240,0x160000e0,0x05400540,0x04000010,0x20002200,0x02008000,0x000006c8, -0x00010020,0x34000004,0x0e001400,0x00000020,0x00000040,0x22100a28,0x0a000210,0x00000110, -0x00000020,0x34000004,0x0e001400,0x00000010,0x00000040,0x22100a28,0x0a000210,0x00004110, -0x03000010,0x20000a20,0x1e000110,0x00000000,0x00010020,0x34000004,0x0e001400,0xffffff60, -0x00000040,0x20e00a28,0x1e000210,0x00270027,0x00000040,0x22001240,0x160000e0,0x05400540, -0x04000010,0x20002200,0x02008000,0x000006c8,0x00010020,0x34000004,0x0e001400,0x00000010, -0x00000040,0x22100a28,0x1e000210,0x00010001,0x00000040,0x20e00a28,0x1e000210,0x00270027, -0x00000040,0x22001240,0x160000e0,0x05400540,0x04000010,0x20002200,0x02008000,0x000006c8, -0x00010020,0x34000004,0x0e001400,0x00000010,0x00000040,0x22100a28,0x1e000210,0x00010001, -0x00000041,0x20e00a28,0x1e000208,0x00090009,0x00000001,0x26c00a28,0x00000210,0x00000000, -0x00000040,0x21180a28,0x1e0000e0,0x00de00de,0x00000040,0x21200a28,0x0a000118,0x00000210, -0x00000040,0x22001240,0x16000120,0x05400540,0x00000040,0x29401a68,0x2a000940,0x00008000, -0x00000040,0x29401a68,0x2a000940,0x00008000,0x00000040,0x21102268,0x2a00050b,0x00008000, -0x00000001,0x21400a28,0x00000120,0x00000000,0x04000002,0x21101268,0x1a0004e6,0x00000110, -0x00000040,0x22001240,0x16000140,0x05400540,0x05000002,0x450b1288,0x1a0004e8,0x00000110, -0x00000040,0x21102268,0x2a000511,0x00008000,0x04000002,0x21101268,0x1a0004e6,0x00000110, -0x06000010,0x20001a40,0x12000110,0x000004e8,0x00010020,0x34000004,0x0e001400,0x00000010, -0x00000001,0x21101268,0x000004e8,0x00000000,0x00000001,0x45111a88,0x00000110,0x00000000, -0x04000010,0x20000a20,0x1e0006c0,0x00070007,0x00010020,0x34000004,0x0e001400,0x00000020, -0x02000010,0x20002260,0x1e000ad6,0x00010001,0x00010020,0x34000004,0x0e001400,0x00000330, -0x03000010,0x20000a20,0x1e00020c,0x00010001,0x00000041,0x22083ae8,0x3e000218,0x3e4ccccd, -0x00010020,0x34000004,0x0e001400,0x00000060,0x04000010,0x20003ae0,0x3e000208,0x3f99999a, -0x00010020,0x34000004,0x0e001400,0x00000020,0x00000001,0x22083ee8,0x00000000,0x3f99999a, -0x00000020,0x34000004,0x0e001400,0x000000f0,0x05000002,0x22083ae8,0x3e000208,0x3fd9999a, -0x00000020,0x34000004,0x0e001400,0x000000d0,0x03000010,0x20000a20,0x1e00020c,0x00020002, -0x00010020,0x34000004,0x0e001400,0x00000060,0x04000010,0x20003ae0,0x3e000208,0x3f8ccccd, -0x00010020,0x34000004,0x0e001400,0x00000020,0x00000001,0x22083ee8,0x00000000,0x3f8ccccd, -0x00000020,0x34000004,0x0e001400,0x00000070,0x05000002,0x22083ae8,0x3e000208,0x3fc00000, -0x00000020,0x34000004,0x0e001400,0x00000050,0x04000010,0x20003ae0,0x3e000208,0x3f000000, -0x00010020,0x34000004,0x0e001400,0x00000020,0x00000001,0x22083ee8,0x00000000,0x3f000000, -0x00000020,0x34000004,0x0e001400,0x00000010,0x05000002,0x22083ae8,0x3e000208,0x3fd9999a, -0x00000001,0x20e022e8,0x0000050d,0x00000000,0x00000040,0x20e43ae8,0x3e004208,0x3f800000, -0x06000010,0x20002260,0x1e00050f,0x000a000a,0x00000041,0x21183ae8,0x3a0000e0,0x000000e4, -0x09000038,0x21203ae8,0x3e000118,0x42fa0000,0x00000040,0x22083ae8,0x3a000120,0x00000208, -0x00010020,0x34000004,0x0e001400,0x000000b0,0x06000010,0x20000a20,0x1e00020c,0x00070007, -0x00010020,0x34000004,0x0e001400,0x00000020,0x00000001,0x22083ee8,0x00000000,0x3f59999a, -0x00000020,0x34000004,0x0e001400,0x00000070,0x06000010,0x20000a20,0x1e00020c,0x00060006, -0x00010020,0x34000004,0x0e001400,0x00000020,0x00000001,0x22083ee8,0x00000000,0x3f666666, -0x00000020,0x34000004,0x0e001400,0x00000030,0x05000010,0x20000a20,0x1e00020c,0x00040004, -0x00010020,0x34000004,0x0e001400,0x00000010,0x00000001,0x22083ee8,0x00000000,0x3f733333, -0x00000001,0x20e022e8,0x0000050f,0x00000000,0x00000040,0x21800208,0x1e000ad8,0xffffffff, -0x00000001,0x45121e88,0x00000000,0x00010001,0x00000041,0x21183ae8,0x3a000208,0x000000e0, -0x00000040,0x22800208,0x12000180,0x000044fa,0x00000001,0x41203a68,0x00000118,0x00000000, -0x04000002,0x21401a68,0x1a000120,0x00000940,0x05000002,0x21601a28,0x1e000140,0x00fa00fa, -0x04000002,0x49400a68,0x1e000160,0x00020002,0x00000001,0x450b1a88,0x00000940,0x00000000, -0x00000040,0x45111a88,0x1e000940,0x00040004,0x00000040,0x20e00208,0x1600027c,0x00010001, -0x00000040,0x21200208,0x16000278,0x00010001,0x00000001,0x220c1e28,0x00000000,0x00010001, -0x00000001,0x21101e28,0x00000000,0x00020002,0x00000001,0x211802e8,0x000000e0,0x00000000, -0x00000001,0x214002e8,0x00000120,0x00000000,0x00000041,0x22103ae8,0x3e000118,0x42c80000, -0x09000038,0x22103ae8,0x3a000210,0x00000140,0x00000001,0x22083a28,0x00000210,0x00000000, -0x00000041,0x20e01248,0x1600020c,0x00020002,0x0000000c,0x21100a28,0x1e000110,0x00010001, -0x00000040,0x22001240,0x160000e0,0x05400540,0x04000010,0x20001200,0x02008000,0x00000ad8, -0x00010020,0x34000004,0x0e001400,0x00000020,0x00000040,0x220c0a28,0x0a00020c,0x00000110, -0x00000020,0x34000004,0x0e001400,0x00000010,0x00000040,0x220c0a28,0x0a00020c,0x00004110, -0x03000010,0x20000a20,0x1e000110,0x00000000,0x00010020,0x34000004,0x0e001400,0xffffff60, -0x00000041,0x20e01248,0x1600020c,0x00020002,0x00000040,0x22001240,0x160000e0,0x05400540, -0x04000010,0x20001200,0x02008000,0x00000ad8,0x00010020,0x34000004,0x0e001400,0x00000010, -0x00000040,0x220c0a28,0x1e00020c,0x00010001,0x00000041,0x20e01248,0x1600020c,0x00020002, -0x00000040,0x22001240,0x160000e0,0x05400540,0x04000010,0x20001200,0x02008000,0x00000ad8, -0x00010020,0x34000004,0x0e001400,0x00000010,0x00000040,0x220c0a28,0x1e00020c,0x00010001, -0x00000040,0x20e00a28,0x1e00020c,0x00150015,0x00000040,0x22080a28,0x1e000208,0xff9cff9c, -0x00000040,0x22001240,0x160000e0,0x05400540,0x00000041,0x22080a28,0x2a000208,0x00008000, -0x00000001,0x21182a28,0x00008005,0x00000000,0x00000040,0x2ad80208,0x16000ad8,0x00010001, -0x0c000038,0x21200a28,0x0a000208,0x00000118,0x00000040,0x24080208,0x16000408,0x00010001, -0x0d000038,0x21400208,0x06000ad8,0x000000ff,0x00000040,0x22080a28,0x1e000120,0x00640064, -0x02000010,0x20000200,0x16000140,0x00010001,0x00010020,0x34000004,0x0e001400,0x00000040, -0x06000010,0x20000200,0x16000ad8,0x00ff00ff,0x00010020,0x34000004,0x0e001400,0x00000020, -0x0000000c,0x227c0a08,0x1e00027c,0x00010001,0x0000000c,0x22780a08,0x1e000278,0x00010001, -0x00000001,0x220c1e28,0x00000000,0x00020002,0x00000001,0x21101e28,0x00000000,0x00030003, -0x00000040,0x20e00a28,0x1e00020c,0x00080008,0x0000000c,0x21100a28,0x1e000110,0x00010001, -0x00000040,0x22001240,0x160000e0,0x05400540,0x04000010,0x20002220,0x0a008000,0x00000208, -0x00010020,0x34000004,0x0e001400,0x00000020,0x00000040,0x220c0a28,0x0a00020c,0x00000110, -0x00000020,0x34000004,0x0e001400,0x00000010,0x00000040,0x220c0a28,0x0a00020c,0x00004110, -0x03000010,0x20000a20,0x1e000110,0x00000000,0x00010020,0x34000004,0x0e001400,0xffffff60, -0x00000040,0x20e00a28,0x1e00020c,0x00080008,0x00000040,0x22001240,0x160000e0,0x05400540, -0x04000010,0x20002220,0x0a008000,0x00000208,0x00010020,0x34000004,0x0e001400,0x00000010, -0x00000040,0x220c0a28,0x1e00020c,0x00010001,0x00000040,0x20e00a28,0x1e00020c,0x00080008, -0x00000040,0x22001240,0x160000e0,0x05400540,0x04000010,0x20002220,0x0a008000,0x00000208, -0x00010020,0x34000004,0x0e001400,0x00000010,0x00000040,0x220c0a28,0x1e00020c,0x00010001, -0x02000010,0x20002260,0x1e000768,0x00000000,0x00010020,0x34000004,0x0e001400,0x00000210, -0x00000040,0x20e00a28,0x1e00020c,0x000e000e,0x00000040,0x22001240,0x160000e0,0x05400540, -0x00000041,0x21182a28,0x1e008000,0x00020002,0x00000040,0x49401a68,0x0a000940,0x00000118, -0x06000010,0x20002a20,0x1e008000,0x00000000,0x00010020,0x34000004,0x0e001400,0x00000040, -0x04000010,0x20000a20,0x1e0006c0,0x00070007,0x00010020,0x34000004,0x0e001400,0x00000020, -0x00000040,0x29401a68,0x1e000940,0x00040004,0x00000020,0x34000004,0x0e001400,0x00000170, -0x04000010,0x20000a20,0x1e0006c0,0x00070007,0x00010020,0x34000004,0x0e001400,0x00000150, -0x06000010,0x20000200,0x16000ad8,0x00640064,0x00010020,0x34000004,0x0e001400,0x00000040, -0x04000010,0x20000a20,0x1e000208,0x00620062,0x00010020,0x34000004,0x0e001400,0x00000020, -0x03000010,0x20001a60,0x1e000940,0x00140014,0x00010020,0x34000004,0x0e001400,0x000000c0, -0x06000010,0x20000200,0x16000ad8,0x00c800c8,0x00010020,0x34000004,0x0e001400,0x00000040, -0x04000010,0x20000a20,0x1e000208,0x00600060,0x00010020,0x34000004,0x0e001400,0x00000020, -0x03000010,0x20001a60,0x1e000940,0x000c000c,0x00010020,0x34000004,0x0e001400,0x00000060, -0x06000010,0x20000200,0x16000ad8,0x00c800c8,0x00010020,0x34000004,0x0e001400,0x00000070, -0x04000010,0x20000a20,0x1e000208,0x005a005a,0x00010020,0x34000004,0x0e001400,0x00000050, -0x06000010,0x20001a60,0x1e000940,0x00020002,0x00010020,0x34000004,0x0e001400,0x00000030, -0x06000010,0x20001a60,0x1e000940,0x00040004,0x00010020,0x34000004,0x0e001400,0x00000010, -0x00000040,0x29401a68,0x1e000940,0xfffcfffc,0x06000010,0x20002260,0x1e000ac0,0x00010001, -0x00010020,0x34000004,0x0e001400,0x00000290,0x04000010,0x20000a20,0x1e000208,0x00640064, -0x00000001,0x45162288,0x00000768,0x00000000,0x00010020,0x34000004,0x0e001400,0x00000100, -0x00000040,0x20e00a28,0x1e004208,0x00640064,0x0c000038,0x21180a28,0x0e0000e0,0x00000002, -0x05000002,0x220c0a28,0x1e000118,0x00050005,0x06000010,0x20002220,0x0a000509,0x0000020c, -0x00010020,0x34000004,0x0e001400,0x000001b0,0x00000040,0x40e01a68,0x0a000940,0x0000420c, -0x02000010,0x20002260,0x1e000768,0x00000000,0x05000002,0x21181a28,0x1e0000e0,0x00ff00ff, -0x04000002,0x49400a68,0x1e000118,0x00010001,0x00010020,0x34000004,0x0e001400,0x00000020, -0x00000040,0x65092288,0x0a000509,0x0000420c,0x00000020,0x34000004,0x0e001400,0x00000140, -0x00000040,0x20e02228,0x1e000768,0x00100010,0x00000040,0x22001240,0x160000e0,0x05080508, -0x00000001,0xc0001a88,0x00000940,0x00000000,0x00000020,0x34000004,0x0e001400,0x00000100, -0x00000040,0x20e00a28,0x1e000208,0xff9cff9c,0x02000010,0x20002260,0x1e000768,0x00000000, -0x0c000038,0x21180a28,0x0e0000e0,0x00000002,0x05000002,0x220c0a28,0x1e000118,0x00050005, -0x00000040,0x41201a68,0x0a000940,0x0000020c,0x05000002,0x21401a28,0x1e000120,0x00ff00ff, -0x04000002,0x49400a68,0x1e000140,0x00010001,0x00010020,0x34000004,0x0e001400,0x00000050, -0x0c000038,0x20e00a28,0x0e00020c,0x00000003,0x00000040,0x41182268,0x0a000509,0x000000e0, -0x05000002,0x21201a28,0x1e000118,0x00ff00ff,0x04000002,0x65090a88,0x1e000120,0x00010001, -0x00000020,0x34000004,0x0e001400,0x00000030,0x00000040,0x20e02228,0x1e000768,0x00100010, -0x00000040,0x22001240,0x160000e0,0x05080508,0x00000001,0xc0001a88,0x00000940,0x00000000, -0x02000010,0x20002260,0x1e000768,0x00000000,0x00010020,0x34000004,0x0e001400,0x000003e0, -0x0000000c,0x20e01a28,0x1e000940,0x00050005,0x00000040,0x220c0a28,0x1e0000e0,0x000c000c, -0x00000040,0x49401a68,0x0a000940,0x0000420c,0x00000020,0x34000004,0x0e001400,0x000003a0, -0x00000040,0x20e00a08,0x1e000ac8,0x00020002,0x02000010,0x20000200,0x02000ad8,0x000000e0, -0x00010020,0x34000004,0x0e001400,0x00000190,0x0000000c,0x20e01a28,0x1e000940,0x00020002, -0x0000000c,0x211c1a28,0x1e000940,0x00030003,0x00000040,0x21601a28,0x1e000940,0xffc4ffc4, -0x0000000c,0x21241a28,0x1e000940,0x00040004,0x04000010,0x20001a60,0x1e000940,0x00180018, -0x00000040,0x21180a28,0x1e0000e0,0x000c000c,0x04000002,0x21800a28,0x0a000160,0x00000adc, -0x00000040,0x21200a28,0x0a000118,0x0000011c,0x04000002,0x2adc0a28,0x1e000180,0x00280028, -0x00000040,0x21400a28,0x0a000120,0x00000124,0x05000002,0x220c0a28,0x1e000140,0x003c003c, -0x00010020,0x34000004,0x0e001400,0x00000030,0x0000000c,0x20e01a28,0x1e000940,0x00010001, -0x00000040,0x49401a68,0x0a000940,0x000040e0,0x00000020,0x34000004,0x0e001400,0x00000010, -0x00000040,0x49401a68,0x0a000940,0x0000420c,0x06000010,0x20000a20,0x1e000208,0x00640064, -0x05000002,0x49401a68,0x0a000940,0x00000adc,0x00010020,0x34000004,0x0e001400,0x00000020, -0x00000040,0x20e00a28,0x1e000208,0xff9cff9c,0x00000040,0x49401a68,0x0a000940,0x000000e0, -0x05000002,0x20e01a28,0x1e000940,0x00ff00ff,0x04000002,0x49400a68,0x1e0000e0,0x00010001, -0x00000001,0x45111a88,0x00000940,0x00000000,0x00000020,0x34000004,0x0e001400,0x000001e0, -0x00000040,0x20e00a08,0x1e000ac4,0x00020002,0x02000010,0x20000200,0x02000ad8,0x000000e0, -0x00010020,0x34000004,0x0e001400,0x00000180,0x00000040,0x20e01a28,0x1e000940,0xffd8ffd8, -0x04000010,0x20000a20,0x0a000adc,0x000000e0,0x00010020,0x34000004,0x0e001400,0x00000020, -0x00000040,0x2adc1a28,0x1e000940,0xffd8ffd8,0x00000020,0x34000004,0x0e001400,0x00000010, -0x04000002,0x2adc0a28,0x1e000adc,0x003c003c,0x04000010,0x20001a60,0x1e000940,0x00180018, -0x00010020,0x34000004,0x0e001400,0x00000030,0x0000000c,0x20e01a28,0x1e000940,0x00020002, -0x00000040,0x49401a68,0x0a000940,0x000040e0,0x00000020,0x34000004,0x0e001400,0x00000030, -0x0000000c,0x20e01a28,0x1e000940,0x00020002,0x00000040,0x21180a28,0x1e0000e0,0x00060006, -0x00000040,0x49401a68,0x0a000940,0x00004118,0x06000010,0x20000a20,0x1e000208,0x00640064, -0x05000002,0x49401a68,0x0a000940,0x00000adc,0x00010020,0x34000004,0x0e001400,0x00000020, -0x00000040,0x20e00a28,0x1e000208,0xff9cff9c,0x00000040,0x49401a68,0x0a000940,0x000000e0, -0x00000040,0x20e02228,0x1e000511,0x00100010,0x04000010,0x20001a20,0x0a000940,0x000000e0, -0x00010020,0x34000004,0x0e001400,0x00000050,0x00000001,0x45121e88,0x00000000,0x00010001, -0x00000020,0x34000004,0x0e001400,0x00000030,0x02000010,0x20000200,0x16000ad8,0x00020002, -0x00010020,0x34000004,0x0e001400,0x00000010,0x00000001,0x45111a88,0x00000940,0x00000000, -0x06000010,0x20000a20,0x1e0002b8,0x00000000,0x00010020,0x34000004,0x0e001400,0x00000030, -0x06000010,0x20001a60,0x1e000940,0x00010001,0x00010020,0x34000004,0x0e001400,0x00000010, -0x00000040,0x29401a68,0x1e000940,0xffffffff,0x02000010,0x20002260,0x1e000510,0x00030003, -0x00010020,0x34000004,0x0e001400,0x000000e0,0x00000040,0x20e00a08,0x1e000ac8,0x00020002, -0x01000010,0x20000200,0x02000ad8,0x000000e0,0x00010020,0x34000004,0x0e001400,0x00000070, -0x01000010,0x20002a60,0x1e000ad4,0x00020002,0x00010020,0x34000004,0x0e001400,0x00000050, -0x00000040,0x20e00a08,0x1e000ac4,0x00020002,0x01000010,0x20000200,0x02000ad8,0x000000e0, -0x00010020,0x34000004,0x0e001400,0x00000020,0x04000002,0x29401268,0x1a0004ea,0x00000940, -0x00000020,0x34000004,0x0e001400,0x00000040,0x00000040,0x20e01228,0x1e0004ea,0xffe0ffe0, -0x04000010,0x20001a20,0x0a000940,0x000000e0,0x00010020,0x34000004,0x0e001400,0x00000010, -0x00000040,0x29401268,0x1e0004ea,0xffe0ffe0,0x00000040,0x20e02a28,0x1e000ad4,0x001a001a, -0x00000041,0x21181248,0x160000e0,0x00040004,0x00000040,0x22001240,0x16000118,0x02400240, -0x0000000c,0x22080228,0x16008000,0x00030003,0x00000040,0x21202a28,0x1e000ad4,0x00010001, -0x00000040,0x22001240,0x16000120,0x05080508,0x00000001,0x22102228,0x00008000,0x00000000, -0x02000010,0x20002a60,0x1e000ad4,0x00020002,0x00010020,0x34000004,0x0e001400,0x00000070, -0x02000010,0x20002a60,0x1e000ac2,0x00000000,0x00010020,0x34000004,0x0e001400,0x00000050, -0x06000010,0x20001a60,0x22000940,0x00000509,0x00010020,0x34000004,0x0e001400,0x00000030, -0x00000041,0x20e02228,0x1e000509,0x00030003,0x00000040,0x21181a28,0x0a000940,0x000000e0, -0x0000000c,0x49400a68,0x1e000118,0x00020002,0x04000002,0x29401268,0x1a0004e6,0x00000940, -0x00000001,0x220c1e28,0x00000000,0x00000000,0x00000001,0x21101e28,0x00000000,0x00000000, -0x05000002,0x29401268,0x1a0004e8,0x00000940,0x00000040,0x22001240,0x16000110,0x07600760, -0x00000040,0x40e02aa8,0x2a008000,0x00004760,0x00000040,0x21100a28,0x1e000110,0x00010001, -0x05000002,0x220c2a28,0x0a0000e0,0x0000020c,0x05000010,0x20000a20,0x1e000110,0x00080008, -0x00010020,0x34000004,0x0e001400,0xffffffa0,0x00000040,0x20e00a28,0x1a00020c,0x00000940, -0x04000010,0x20000a20,0x1a0000e0,0x0000005c,0x00010020,0x34000004,0x0e001400,0x00000020, -0x00000040,0x20e01a28,0x0a00005c,0x0000420c,0x00000040,0x49401a68,0x0a000940,0x000000e0, -0x01000010,0x20000a20,0x1e000208,0x00000000,0x00010020,0x34000004,0x0e001400,0x00000100, -0x01000010,0x20000a20,0x1e000210,0x00000000,0x00010020,0x34000004,0x0e001400,0x000000e0, -0x04000002,0x29401a68,0x1e000940,0x00010001,0x00000041,0x20e00a28,0x0a000208,0x00000210, -0x0000000c,0x211c0a28,0x1e000204,0x00030003,0x0000000c,0x21200a28,0x1e0002b8,0x00030003, -0x00000001,0x20e41a28,0x00000940,0x00000000,0x0c000038,0x21180a28,0x0a0000e0,0x000000e4, -0x05000002,0x22040a28,0x0a000118,0x0000011c,0x06000010,0x20000a20,0x0a000120,0x00000204, -0x00010020,0x34000004,0x0e001400,0x00000020,0x0000000c,0x21100a28,0x1e0002b8,0x00030003, -0x00000020,0x34000004,0x0e001400,0x00000010,0x00000001,0x21100a28,0x00000204,0x00000000, -0x00000001,0x22040a28,0x00000110,0x00000000,0x00000020,0x34000004,0x0e001400,0x00000010, -0x0000000c,0x22040a28,0x1e000260,0x00030003,0x00000040,0x20e00a08,0x1e000ac8,0x00020002, -0x01000010,0x20000200,0x02000ad8,0x000000e0,0x00010020,0x34000004,0x0e001400,0x000001a0, -0x01000010,0x20002a60,0x1e000ad4,0x00020002,0x00010020,0x34000004,0x0e001400,0x00000180, -0x01000010,0x20002260,0x1e000512,0x00010001,0x00010020,0x34000004,0x0e001400,0x00000160, -0x00000040,0x20e00a08,0x1e000ac4,0x00020002,0x02000010,0x20000200,0x02000ad8,0x000000e0, -0x00010020,0x34000004,0x0e001400,0x00000080,0x01000010,0x20002260,0x1e000510,0x00000000, -0x00010020,0x34000004,0x0e001400,0x00000030,0x00000040,0x20e00a08,0x1e000acc,0x00090009, -0x00000041,0x21100228,0x02000260,0x000000e0,0x00000020,0x34000004,0x0e001400,0x00000100, -0x00000040,0x20e00a08,0x1e000acc,0x00060006,0x00000041,0x21100228,0x02000260,0x000000e0, -0x00000020,0x34000004,0x0e001400,0x000000d0,0x01000010,0x20002260,0x1e000510,0x00000000, -0x00010020,0x34000004,0x0e001400,0x00000060,0x06000010,0x20000a20,0x1e000acc,0x00030003, -0x00010020,0x34000004,0x0e001400,0x00000020,0x00000009,0x21100228,0x16000ad0,0x00030003, -0x00000020,0x34000004,0x0e001400,0x00000070,0x00000009,0x21100228,0x16000ad0,0x00020002, -0x00000020,0x34000004,0x0e001400,0x00000050,0x0000000c,0x20e00208,0x16000ad0,0x00010001, -0x00000040,0x21100228,0x02000ad0,0x000000e0,0x00000020,0x34000004,0x0e001400,0x00000020, -0x00000040,0x20e00a08,0x1e000acc,0x000a000a,0x00000041,0x21100228,0x02000260,0x000000e0, -0x0000000c,0x21100a28,0x1e000110,0x00030003,0x00000001,0x2148160c,0x00000000,0x000c000c, -0x00000001,0x2168160c,0x00000000,0x00180018,0x00000001,0x2188160c,0x00000000,0x00240024, -0x00000001,0x2128160c,0x00000000,0x00000000,0x00000040,0x22000204,0x06000100,0x02480400, -0x06000010,0x20000a20,0x0a000204,0x00000110,0x0a800031,0x28403a6c,0x00000140,0x00000200, -0x0a800031,0x26c03a6c,0x00000180,0x00000200,0x0a800031,0x27c03a6c,0x00000160,0x00000200, -0x0a800031,0x28c03a6c,0x00000120,0x00000200,0x00010020,0x34000004,0x0e001400,0x00000010, -0x0c000038,0x22040a28,0x0e000110,0x00000002,0x00000040,0x20e00a28,0x0a000110,0x00004204, -0x04000010,0x20000a20,0x1e0000e0,0x01000100,0x00010020,0x34000004,0x0e001400,0x000005a0, -0x00000041,0x20e00a28,0x0a000208,0x00000210,0x00000040,0x20e40a28,0x1e000204,0x00010001, -0x04000010,0x20001a60,0x1e000940,0x00300030,0x0c000038,0x21180a28,0x0a0000e0,0x000000e4, -0x00000040,0x21200a28,0x1a000118,0x00004940,0x0000000c,0x21400a28,0x1e002120,0x00010001, -0x05000002,0x22040a28,0x1e000140,0x003c003c,0x0000000c,0x21800a28,0x1e000204,0x00040004, -0x0000000c,0x21600a28,0x1e000204,0x00050005,0x0000000c,0x21c00a28,0x1e000204,0x00030003, -0x04000002,0x61a00a8c,0x1e000180,0x00040004,0x04000002,0x69180a88,0x1e000160,0x00030003, -0x04000002,0x691c0a88,0x1e0001c0,0x00060006,0x00000001,0x491a2288,0x000001a0,0x00000000, -0x00010020,0x34000004,0x0e001400,0x00000060,0x0000000c,0x20e00a28,0x1e000204,0x00020002, -0x04000002,0x60e40a8c,0x1e0000e0,0x00080008,0x04000002,0x61180a8c,0x1e0000e0,0x00070007, -0x00000001,0x491e2288,0x000000e4,0x00000000,0x00000001,0x489e2288,0x00000118,0x00000000, -0x00000020,0x34000004,0x0e001400,0x00000070,0x0000000c,0x20e00a28,0x1e000204,0x00020002, -0x04000002,0x20e40a28,0x1e0000e0,0x00080008,0x04000002,0x21200a28,0x1e0000e0,0x00070007, -0x05000002,0x61180a8c,0x1e0000e4,0x000c000c,0x05000002,0x61400a8c,0x1e000120,0x000c000c, -0x00000001,0x491e2288,0x00000118,0x00000000,0x00000001,0x489e2288,0x00000140,0x00000000, -0x00000040,0x21202228,0x2200091a,0x0000091c,0x00000040,0x21802228,0x2200091c,0x0000091e, -0x00000040,0x20e02228,0x22000918,0x0000091a,0x06000010,0x20002260,0x1e00076c,0x00010001, -0x00000040,0x491f2288,0x1e00091e,0x00010001,0x0c000038,0x21400a28,0x0e000120,0x00000002, -0x0c000038,0x21a00a28,0x0e000180,0x00000002,0x0c000038,0x21180a28,0x0e0000e0,0x00000002, -0x00000001,0x61600a8c,0x00000140,0x00000000,0x00000001,0x691d0a88,0x000001a0,0x00000000, -0x00000001,0x69190a88,0x00000118,0x00000000,0x00000001,0x491b2288,0x00000160,0x00000000, -0x00010020,0x34000004,0x0e001400,0x00000940,0x0000000c,0x21180a28,0x1e000204,0x00040004, -0x0000000c,0x20e00a28,0x1e000204,0x00050005,0x0000000c,0x21400a28,0x1e000204,0x00030003, -0x00000001,0x481a1e88,0x00000000,0x00030003,0x00000001,0x481c1e88,0x00000000,0x00040004, -0x00000001,0x47181e88,0x00000000,0x00010001,0x00000001,0x48181e88,0x00000000,0x00020002, -0x04000002,0x61200a8c,0x1e000118,0x00040004,0x04000002,0x68980a88,0x1e0000e0,0x00030003, -0x04000002,0x689c0a88,0x1e000140,0x00050005,0x00000001,0x481e1e88,0x00000000,0x00060006, -0x00000040,0x489f2288,0x1e00089e,0x00010001,0x00000001,0x471a2288,0x00000718,0x00000000, -0x00000001,0x471c2288,0x00000818,0x00000000,0x00000001,0x489a2288,0x00000120,0x00000000, -0x00000040,0x21202228,0x22000818,0x0000081a,0x00000040,0x20e02228,0x2200089c,0x0000089e, -0x00000001,0x471e2288,0x00000818,0x00000000,0x00000040,0x481f2288,0x1e00081e,0x00010001, -0x00000040,0x21602228,0x22000898,0x0000089a,0x00000040,0x21a02228,0x2200089a,0x0000089c, -0x0c000038,0x21180a28,0x0e0000e0,0x00000002,0x0c000038,0x21400a28,0x0e000120,0x00000002, -0x00000040,0x21202228,0x22000718,0x0000071a,0x0c000038,0x21800a28,0x0e000160,0x00000002, -0x00000040,0x21602228,0x2200081a,0x0000081c,0x0c000038,0x21c00a28,0x0e0001a0,0x00000002, -0x00000040,0x471f2288,0x1e00071e,0x00010001,0x00000001,0x689d0a88,0x00000118,0x00000000, -0x00000040,0x21182228,0x2200081c,0x0000081e,0x00000001,0x68190a88,0x00000140,0x00000000, -0x0c000038,0x21400a28,0x0e000120,0x00000002,0x00000001,0x68990a88,0x00000180,0x00000000, -0x0c000038,0x21800a28,0x0e000160,0x00000002,0x0c000038,0x21a00a28,0x0e000118,0x00000002, -0x00000001,0x61e00a8c,0x000001c0,0x00000000,0x00000001,0x67190a88,0x00000140,0x00000000, -0x00000001,0x60e00a8c,0x00000180,0x00000000,0x00000040,0x21802228,0x2200071c,0x0000071e, -0x00000001,0x681d0a88,0x000001a0,0x00000000,0x00000001,0x489b2288,0x000001e0,0x00000000, -0x00000001,0x481b2288,0x000000e0,0x00000000,0x00000040,0x20e02228,0x2200071a,0x0000071c, -0x0c000038,0x21a00a28,0x0e000180,0x00000002,0x0c000038,0x21600a28,0x0e0000e0,0x00000002, -0x00000001,0x671d0a88,0x000001a0,0x00000000,0x00000001,0x61180a8c,0x00000160,0x00000000, -0x00000001,0x471b2288,0x00000118,0x00000000,0x00000020,0x34000004,0x0e001400,0x00000630, -0x00000001,0x22081e28,0x00000000,0x00020002,0x00000001,0x22041e28,0x00000000,0x00010001, -0x00000040,0x20e00a28,0x1e000204,0x002f002f,0x00000001,0x41181a88,0x00000940,0x00000000, -0x0000000c,0x22080a28,0x1e000208,0x00010001,0x00000040,0x22001240,0x160000e0,0x05400540, -0x04000010,0x20002220,0x22008000,0x00000118,0x00010020,0x34000004,0x0e001400,0x00000020, -0x00000040,0x22040a28,0x0a000204,0x00000208,0x00000020,0x34000004,0x0e001400,0x00000010, -0x00000040,0x22040a28,0x0a000204,0x00004208,0x03000010,0x20000a20,0x1e000208,0x00000000, -0x00010020,0x34000004,0x0e001400,0xffffff50,0x00000040,0x20e00a28,0x1e000204,0x002f002f, -0x00000001,0x41181a88,0x00000940,0x00000000,0x00000040,0x22001240,0x160000e0,0x05400540, -0x04000010,0x20002220,0x22008000,0x00000118,0x00010020,0x34000004,0x0e001400,0x00000010, -0x00000040,0x22040a28,0x1e000204,0x00010001,0x00000040,0x20e00a28,0x1e000204,0x002f002f, -0x00000001,0x41181a88,0x00000940,0x00000000,0x00000040,0x22001240,0x160000e0,0x05400540, -0x04000010,0x20002220,0x22008000,0x00000118,0x00010020,0x34000004,0x0e001400,0x00000010, -0x00000040,0x22040a28,0x1e000204,0x00010001,0x00000040,0x60e00a8c,0x1e000204,0x00050005, -0x04000010,0x20001a60,0x1e000940,0x00310031,0x00000040,0x691c0a88,0x1e000204,0x00080008, -0x00000001,0x49181e88,0x00000000,0x00030003,0x00000001,0x491a2288,0x000000e0,0x00000000, -0x00010020,0x34000004,0x0e001400,0x00000050,0x00000040,0x61180a8c,0x1e000204,0x00090009, -0x00000040,0x60e00a8c,0x1e000204,0x000a000a,0x00000001,0x489e2288,0x00000118,0x00000000, -0x00000001,0x491e2288,0x000000e0,0x00000000,0x00000020,0x34000004,0x0e001400,0x00000060, -0x00000040,0x21200a28,0x1e000204,0x00090009,0x00000040,0x20e00a28,0x1e000204,0x000a000a, -0x05000002,0x61400a8c,0x1e000120,0x000c000c,0x05000002,0x61180a8c,0x1e0000e0,0x000c000c, -0x00000001,0x489e2288,0x00000140,0x00000000,0x00000001,0x491e2288,0x00000118,0x00000000, -0x00000040,0x21202228,0x2200091a,0x0000091c,0x00000040,0x21802228,0x2200091c,0x0000091e, -0x00000040,0x20e02228,0x22000918,0x0000091a,0x06000010,0x20002260,0x1e00076c,0x00010001, -0x00000040,0x491f2288,0x1e00091e,0x00010001,0x0c000038,0x21400a28,0x0e000120,0x00000002, -0x0c000038,0x21a00a28,0x0e000180,0x00000002,0x0c000038,0x21180a28,0x0e0000e0,0x00000002, -0x00000001,0x61600a8c,0x00000140,0x00000000,0x00000001,0x691d0a88,0x000001a0,0x00000000, -0x00000001,0x69190a88,0x00000118,0x00000000,0x00000001,0x491b2288,0x00000160,0x00000000, -0x00010020,0x34000004,0x0e001400,0x000002c0,0x00000040,0x60e00a8c,0x1e000204,0x00040004, -0x00000001,0x48981e88,0x00000000,0x00030003,0x00000040,0x689c0a88,0x1e000204,0x00070007, -0x00000040,0x681c0a88,0x1e000204,0x00060006,0x00000001,0x471c1e88,0x00000000,0x00040004, -0x00000001,0x471e1e88,0x00000000,0x00060006,0x00000001,0x47181e88,0x00000000,0x00020002, -0x00000001,0x489a2288,0x000000e0,0x00000000,0x00000040,0x60e00a8c,0x1e000204,0x00080008, -0x00000001,0x471a2288,0x00000898,0x00000000,0x00000040,0x21a02228,0x2200089c,0x0000089e, -0x00000040,0x489f2288,0x1e00089e,0x00010001,0x00000001,0x48182288,0x00000898,0x00000000, -0x00000040,0x471f2288,0x1e00071e,0x00010001,0x00000040,0x21402228,0x2200089a,0x0000089c, -0x00000040,0x21182228,0x22000898,0x0000089a,0x00000001,0x481a2288,0x0000089a,0x00000000, -0x00000001,0x481e2288,0x000000e0,0x00000000,0x00000040,0x20e02228,0x22000718,0x0000071a, -0x0c000038,0x21c00a28,0x0e0001a0,0x00000002,0x0c000038,0x21600a28,0x0e000140,0x00000002, -0x0c000038,0x21200a28,0x0e000118,0x00000002,0x00000040,0x21182228,0x2200081a,0x0000081c, -0x00000040,0x481f2288,0x1e00081e,0x00010001,0x00000001,0x689d0a88,0x000001c0,0x00000000, -0x00000001,0x61800a8c,0x00000160,0x00000000,0x00000040,0x21602228,0x2200081c,0x0000081e, -0x00000001,0x68990a88,0x00000120,0x00000000,0x0c000038,0x21200a28,0x0e000118,0x00000002, -0x0c000038,0x21180a28,0x0e0000e0,0x00000002,0x00000001,0x489b2288,0x00000180,0x00000000, -0x0c000038,0x21800a28,0x0e000160,0x00000002,0x00000001,0x48192288,0x00000899,0x00000000, -0x00000001,0x61400a8c,0x00000120,0x00000000,0x00000040,0x21202228,0x2200071a,0x0000071c, -0x00000001,0x67190a88,0x00000118,0x00000000,0x00000001,0x681d0a88,0x00000180,0x00000000, -0x00000040,0x21802228,0x2200071c,0x0000071e,0x00000001,0x481b2288,0x00000140,0x00000000, -0x0c000038,0x21400a28,0x0e000120,0x00000002,0x0c000038,0x21a00a28,0x0e000180,0x00000002, -0x00000001,0x61600a8c,0x00000140,0x00000000,0x00000001,0x671d0a88,0x000001a0,0x00000000, -0x00000001,0x471b2288,0x00000160,0x00000000,0x02000010,0x20002260,0x1e000510,0x00000000, -0x00000001,0x22101e28,0x00000000,0x00000000,0x00000001,0x22140228,0x0000043c,0x00000000, -0x00000001,0x22040228,0x000004c0,0x00000000,0x00010020,0x34000004,0x0e001400,0x00000340, -0x00000040,0x20e00a08,0x1e000204,0x00020002,0x00000041,0x22100228,0x16000260,0x000c000c, -0x04000010,0x20000200,0x02000ad8,0x000000e0,0x00010020,0x34000004,0x0e001400,0x00000060, -0x00000040,0x20e00208,0x16000ad8,0x00800080,0x00000040,0x24400208,0x02000440,0x00000200, -0x00000041,0x21181248,0x160000e0,0x00040004,0x00000040,0x22001240,0x16000118,0x02400240, -0x00000001,0xa0000208,0x00000200,0x00000000,0x00000020,0x34000004,0x0e001400,0x00000150, -0x00000040,0x24400208,0x02000440,0x00004448,0x06000040,0x20000a20,0x1e000204,0xffffffff, -0x00000001,0x22081e28,0x00000000,0x00000000,0x00000040,0x24400208,0x02000440,0x00000200, -0x00010020,0x34000004,0x0e001400,0x000000c0,0x00000040,0x20e00a28,0x1e000208,0x00830083, -0x00000041,0x21181248,0x160000e0,0x00040004,0x00000040,0x22001240,0x16000118,0x02400240, -0x00000001,0x21200208,0x00008000,0x00000000,0x00000040,0x21240a28,0x1e000208,0x00820082, -0x00000041,0x21401248,0x16000124,0x00040004,0x00000040,0x22001240,0x16000140,0x02400240, -0x00000001,0xa0000208,0x00000120,0x00000000,0x00000040,0x22080a28,0x1e000208,0x00010001, -0x00000040,0x21600a28,0x1e000204,0xffffffff,0x05000010,0x20000a20,0x0a000208,0x00000160, -0x00010020,0x34000004,0x0e001400,0xffffff40,0x00000040,0x20e00a28,0x1e000208,0x00820082, -0x00000041,0x21181248,0x160000e0,0x00040004,0x00000040,0x22001240,0x16000118,0x02400240, -0x00000001,0xa0000208,0x00000200,0x00000000,0x00000040,0x20e00a08,0x1e000204,0x00010001, -0x05000010,0x20000200,0x02000ad8,0x000000e0,0x00010020,0x34000004,0x0e001400,0x00000120, -0x00000040,0x22100228,0x02000440,0x00004444,0x03000010,0x20001a60,0x1e000940,0x00040004, -0x00000041,0x20e00a28,0x1e000210,0x00040004,0x0c000038,0x21180a28,0x0a0000e0,0x00000260, -0x04000002,0x21200a28,0x1e000118,0xfffcfffc,0x05000002,0x21100a28,0x1e000120,0x00040004, -0x00010020,0x34000004,0x0e001400,0x00000020,0x05000010,0x20000a20,0x1e000110,0x00000000, -0x00010020,0x34000004,0x0e001400,0x00000010,0x00000040,0x49401a68,0x0a000940,0x00000110, -0x00000040,0x20e00a08,0x0a000214,0x00004210,0x0000000c,0x21180228,0x16000260,0x00010001, -0x00000040,0x22100228,0x020000e0,0x00000448,0x04000010,0x20000a20,0x0a000210,0x00000118, -0x00010020,0x34000004,0x0e001400,0x00000010,0x0000000c,0x22100228,0x16000260,0x00010001, -0x04000002,0x29401268,0x1a0004e6,0x00000940,0x05000002,0x29401268,0x1a0004e8,0x00000940, -0x00000040,0x20e00a08,0x1e000ac8,0x00030003,0x02000010,0x20000200,0x02000ad8,0x000000e0, -0x00010020,0x34000004,0x0e001400,0x00000020,0x0000000c,0x20e01208,0x160004dc,0x00010001, -0x00000040,0x22ac0208,0x020002ac,0x000000e0,0x00000040,0x20e00a08,0x1e000ac8,0x00020002, -0x01000010,0x20000200,0x02000ad8,0x000000e0,0x00010020,0x34000004,0x0e001400,0x000001f0, -0x01000010,0x20002a60,0x1e000ad4,0x00020002,0x00010020,0x34000004,0x0e001400,0x000001d0, -0x01000010,0x20002260,0x1e000512,0x00010001,0x00010020,0x34000004,0x0e001400,0x000001b0, -0x00000040,0x20e00a08,0x1e000ac4,0x00020002,0x02000010,0x20000200,0x02000ad8,0x000000e0, -0x00010020,0x34000004,0x0e001400,0x00000080,0x01000010,0x20002260,0x1e000510,0x00000000, -0x00010020,0x34000004,0x0e001400,0x00000030,0x00000040,0x20e00a08,0x1e000acc,0x00090009, -0x00000041,0x21100208,0x02000260,0x000000e0,0x00000020,0x34000004,0x0e001400,0x00000190, -0x00000040,0x20e00a08,0x1e000acc,0x00060006,0x00000041,0x21100208,0x02000260,0x000000e0, -0x00000020,0x34000004,0x0e001400,0x00000160,0x01000010,0x20002260,0x1e000510,0x00000000, -0x00010020,0x34000004,0x0e001400,0x000000b0,0x06000010,0x20000a20,0x1e000acc,0x00030003, -0x00010020,0x34000004,0x0e001400,0x00000020,0x00000009,0x21100208,0x16000ad0,0x00030003, -0x00000020,0x34000004,0x0e001400,0x00000010,0x00000009,0x21100208,0x16000ad0,0x00020002, -0x06000010,0x20002260,0x1e000ac0,0x00010001,0x00010020,0x34000004,0x0e001400,0x000000d0, -0x02000010,0x20002260,0x1e000768,0x00000000,0x00010020,0x34000004,0x0e001400,0x000000b0, -0x00000040,0x21100208,0x02000110,0x00000110,0x00000020,0x34000004,0x0e001400,0x00000090, -0x0000000c,0x20e00208,0x16000ad0,0x00010001,0x00000040,0x21100208,0x02000ad0,0x000000e0, -0x00000020,0x34000004,0x0e001400,0x00000060,0x00000040,0x20e00a08,0x1e000acc,0x00090009, -0x02000010,0x20002a60,0x1e000ad4,0x00020002,0x00000041,0x21100208,0x02000260,0x000000e0, -0x00010020,0x34000004,0x0e001400,0x00000020,0x00000009,0x20e00208,0x16000260,0x00020002, -0x00000040,0x21100208,0x02000110,0x000000e0,0x02000010,0x20002260,0x1e000510,0x00000000, -0x00010020,0x34000004,0x0e001400,0x00000040,0x00000040,0x20e00a08,0x1e000204,0x00010001, -0x05000010,0x20000200,0x02000ad8,0x000000e0,0x00010020,0x34000004,0x0e001400,0x00000010, -0x00000001,0x21100a08,0x00000210,0x00000000,0x0000000c,0x22040208,0x16000110,0x00080008, -0x00000001,0x42021e88,0x00000000,0x00000000,0x06000010,0x20000200,0x16000204,0x007f007f, -0x00010020,0x34000004,0x0e001400,0x00000020,0x0000000c,0x22040a08,0x1e000204,0x00070007, -0x00000001,0x42021e88,0x00000000,0x00010001,0x00000001,0x21201ae8,0x00000940,0x00000000, -0x00000005,0x20e42228,0x1e000202,0x00010001,0x00000005,0x20e00208,0x16000204,0x3fff3fff, -0x00000001,0x29141608,0x00000000,0x00000000,0x04000010,0x20002260,0x1e00002b,0x00020002, -0x0000000c,0x42001a88,0x1e000940,0x00010001,0x00000001,0x48f61a88,0x00000940,0x00000000, -0x00000041,0x21243ae8,0x3e000120,0x3ecb1d56,0x00000040,0x21443ae8,0x3e000120,0xc2ff0000, -0x00000009,0x21180a08,0x1e0000e4,0x001f001f,0x00000001,0x29200208,0x00000914,0x00000000, -0x00000040,0x21403ae8,0x3e000124,0xc197e502,0x00000041,0x21643ae8,0x3e000144,0x37229ad3, -0x00000041,0x21483ae8,0x3e000144,0x3a047cd2,0x00000006,0x29100208,0x020000e0,0x00000118, -0x00000041,0x21803ae8,0x3a000164,0x00000144,0x0040015b,0x0b020000,0x7920a1c9,0x02972414, -0x0040015b,0x0d020400,0x7920b1c9,0x03072414,0x00000001,0x20e03a28,0x000001a0,0x00000000, -0x00000001,0x42040a68,0x000000e0,0x00000000,0x00010020,0x34000004,0x0e001400,0x000000a0, -0x02000010,0x20002260,0x1e00002b,0x00000000,0x00010020,0x34000004,0x0e001400,0x00000040, -0x05000010,0x20001a60,0x1e000940,0x00280028,0x00010020,0x34000004,0x0e001400,0x00000020, -0x00000001,0x42001a88,0x00000204,0x00000000,0x00000020,0x34000004,0x0e001400,0x00000030, -0x00000001,0x20e01a28,0x00000940,0x00000000,0x0c000038,0x21180a28,0x0e0000e0,0x00000004, -0x00000001,0x62000a88,0x00000118,0x00000000,0x05000002,0x42002288,0x1e000200,0x003f003f, -0x04000010,0x20001a60,0x1e000940,0x00280028,0x00010020,0x34000004,0x0e001400,0x00000030, -0x00000001,0x20e01a28,0x00000940,0x00000000,0x0c000038,0x21180a28,0x0e0000e0,0x00000004, -0x00000001,0x42040a68,0x00000118,0x00000000,0x00000009,0x20e02228,0x1e000200,0x00010001, -0x05000002,0x22041a68,0x1e000204,0x003f003f,0x00000001,0x22081e28,0x00000000,0x00000000, -0x00000006,0x6118228c,0x0a0008ca,0x000000e0,0x00000001,0x48ca2288,0x00000118,0x00000000, -0x00000040,0x20e00a28,0x1e000208,0x00580058,0x00000040,0x22001240,0x160000e0,0x08c008c0, -0x00000040,0x22101a68,0x22000940,0x00008000,0x04000010,0x20001a60,0x1e000210,0x00280028, -0x00010020,0x34000004,0x0e001400,0x00000040,0x00000001,0x20e01a28,0x00000210,0x00000000, -0x0c000038,0x21180a28,0x0e0000e0,0x00000004,0x00000001,0x42100a68,0x00000118,0x00000000, -0x00000020,0x34000004,0x0e001400,0x000000b0,0x00000001,0x20e01ae8,0x00000210,0x00000000, -0x00000041,0x20e43ae8,0x3e0000e0,0x3ecb1d56,0x00000040,0x211c3ae8,0x3e0000e0,0xc2ff0000, -0x00000040,0x21183ae8,0x3e0000e4,0xc197e502,0x00000041,0x21443ae8,0x3e00011c,0x37229ad3, -0x00000041,0x21203ae8,0x3e00011c,0x3a047cd2,0x00000041,0x21603ae8,0x3a000144,0x0000011c, -0x0040015b,0x0a020000,0xf9208dc9,0x02472411,0x0040015b,0x0c020400,0xf920a1c9,0x02c72411, -0x00000001,0x21a03a28,0x00000180,0x00000000,0x00000001,0x42100a68,0x000001a0,0x00000000, -0x05000002,0x22101a68,0x1e000210,0x003f003f,0x00000040,0x20e40a28,0x1e000208,0x00640064, -0x00000040,0x20e01a28,0x1a000210,0x00004204,0x00000040,0x22001240,0x160000e4,0x08c008c0, -0x00000001,0x61180a8c,0x000000e0,0x00000000,0x00000001,0xc0002288,0x00000118,0x00000000, -0x00000040,0x22080a28,0x1e000208,0x00010001,0x05000010,0x20000a20,0x1e000208,0x00080008, -0x00010020,0x34000004,0x0e001400,0xfffffe30,0x00000001,0x292c1608,0x00000000,0x00000000, -0x00000001,0x2128160c,0x00000000,0x00000000,0x00000001,0x49371e88,0x00000000,0x001c001c, -0x00000001,0x49301e88,0x00000000,0x00000000,0x00000001,0x49361e88,0x00000000,0x00180018, -0x00000001,0x49351e88,0x00000000,0x00140014,0x00000001,0x49341e88,0x00000000,0x00100010, -0x00000001,0x49331e88,0x00000000,0x000c000c,0x00000001,0x49321e88,0x00000000,0x00080008, -0x00000001,0x49311e88,0x00000000,0x00040004,0x00000040,0x22000204,0x06000104,0x020a0400, -0x00000001,0x29380208,0x0000092c,0x00000000,0x00000001,0x293c0208,0x0000092c,0x00000000, -0x00000001,0x2148160c,0x00000000,0x00080008,0x00000001,0x2168160c,0x00000000,0x00080008, -0x06000010,0x20002260,0x1e00076c,0x00010001,0x0a800033,0x00046054,0x00002124,0x00000000, -0x00000040,0x22000204,0x06000100,0x02280300,0x0a800031,0x21803a6c,0x00000140,0x00000200, -0x00000040,0x22000204,0x06000104,0x020a0300,0x0a800033,0x0000c054,0x00002162,0x00000000, -0x00010020,0x34000004,0x0e001400,0x00000910,0x00000009,0x20e02228,0x1e000200,0x00010001, -0x00200001,0x28900208,0x00450910,0x00000000,0x00000001,0x22081e28,0x00000000,0x00000000, -0x00000001,0x28a01608,0x00000000,0x00000000,0x00000001,0x48762288,0x000008f6,0x00000000, -0x00000006,0x6118228c,0x0a00084a,0x000000e0,0x00000001,0x484a2288,0x00000118,0x00000000, -0x00000040,0x20e00a28,0x1e000208,0x00580058,0x00000040,0x22001240,0x160000e0,0x08400840, -0x00000040,0x22101a68,0x22000940,0x00008000,0x04000010,0x20001a60,0x1e000210,0x00280028, -0x00010020,0x34000004,0x0e001400,0x00000040,0x00000001,0x20e01a28,0x00000210,0x00000000, -0x0c000038,0x21180a28,0x0e0000e0,0x00000004,0x00000001,0x42100a68,0x00000118,0x00000000, -0x00000020,0x34000004,0x0e001400,0x000000b0,0x00000001,0x20e01ae8,0x00000210,0x00000000, -0x00000041,0x20e43ae8,0x3e0000e0,0x3ecb1d56,0x00000040,0x211c3ae8,0x3e0000e0,0xc2ff0000, -0x00000040,0x21183ae8,0x3e0000e4,0xc197e502,0x00000041,0x21443ae8,0x3e00011c,0x37229ad3, -0x00000041,0x21203ae8,0x3e00011c,0x3a047cd2,0x00000041,0x21603ae8,0x3a000144,0x0000011c, -0x0040015b,0x0a020000,0xf9208dc9,0x02472411,0x0040015b,0x0c020400,0xf920a1c9,0x02c72411, -0x00000001,0x21a03a28,0x00000180,0x00000000,0x00000001,0x42100a68,0x000001a0,0x00000000, -0x05000002,0x22101a68,0x1e000210,0x003f003f,0x00000040,0x20e40a28,0x1e000208,0x00640064, -0x00000040,0x20e01a28,0x1a000210,0x00004204,0x00000040,0x22001240,0x160000e4,0x08400840, -0x00000001,0x61180a8c,0x000000e0,0x00000000,0x00000001,0xc0002288,0x00000118,0x00000000, -0x00000040,0x22080a28,0x1e000208,0x00010001,0x05000010,0x20000a20,0x1e000208,0x00080008, -0x00010020,0x34000004,0x0e001400,0xfffffe30,0x00000001,0x2128160c,0x00000000,0x000c000c, -0x00400001,0x28ac0208,0x0069092c,0x00000000,0x00000001,0x28bc0208,0x0000093c,0x00000000, -0x00000040,0x22000204,0x06000104,0x020a0400,0x00000001,0x2148160c,0x00000000,0x00140014, -0x00000001,0x2168160c,0x00000000,0x00140014,0x06000010,0x20002260,0x1e00076c,0x00020002, -0x0a800033,0x00042054,0x00002124,0x00000000,0x00000040,0x22000204,0x06000100,0x02280300, -0x0a800031,0x21803a6c,0x00000140,0x00000200,0x00000040,0x22000204,0x06000104,0x020a0300, -0x0a800033,0x0000c054,0x00002162,0x00000000,0x00010020,0x34000004,0x0e001400,0x000002f0, -0x00000009,0x20e02228,0x1e000200,0x00010001,0x00200001,0x28100208,0x00450910,0x00000000, -0x00000001,0x22081e28,0x00000000,0x00000000,0x00000001,0x28201608,0x00000000,0x00000000, -0x00000001,0x47f62288,0x000008f6,0x00000000,0x00000006,0x6118228c,0x0a0007ca,0x000000e0, -0x00000001,0x47ca2288,0x00000118,0x00000000,0x00000040,0x20e00a28,0x1e000208,0x00580058, -0x00000040,0x22001240,0x160000e0,0x07c007c0,0x00000040,0x22101a68,0x22000940,0x00008000, -0x04000010,0x20001a60,0x1e000210,0x00280028,0x00010020,0x34000004,0x0e001400,0x00000040, -0x00000001,0x20e01a28,0x00000210,0x00000000,0x0c000038,0x21180a28,0x0e0000e0,0x00000004, -0x00000001,0x42100a68,0x00000118,0x00000000,0x00000020,0x34000004,0x0e001400,0x000000b0, -0x00000001,0x20e01ae8,0x00000210,0x00000000,0x00000041,0x20e43ae8,0x3e0000e0,0x3ecb1d56, -0x00000040,0x211c3ae8,0x3e0000e0,0xc2ff0000,0x00000040,0x21183ae8,0x3e0000e4,0xc197e502, -0x00000041,0x21443ae8,0x3e00011c,0x37229ad3,0x00000041,0x21203ae8,0x3e00011c,0x3a047cd2, -0x00000041,0x21603ae8,0x3a000144,0x0000011c,0x0040015b,0x0a020000,0xf9208dc9,0x02472411, -0x0040015b,0x0c020400,0xf920a1c9,0x02c72411,0x00000001,0x21a03a28,0x00000180,0x00000000, -0x00000001,0x42100a68,0x000001a0,0x00000000,0x05000002,0x22101a68,0x1e000210,0x003f003f, -0x00000040,0x20e40a28,0x1e000208,0x00640064,0x00000040,0x20e01a28,0x1a000210,0x00004204, -0x00000040,0x22001240,0x160000e4,0x07c007c0,0x00000001,0x61180a8c,0x000000e0,0x00000000, -0x00000001,0xc0002288,0x00000118,0x00000000,0x00000040,0x22080a28,0x1e000208,0x00010001, -0x05000010,0x20000a20,0x1e000208,0x00080008,0x00010020,0x34000004,0x0e001400,0xfffffe30, -0x00000001,0x2128160c,0x00000000,0x00180018,0x00000001,0x283c0208,0x0000093c,0x00000000, -0x00400001,0x282c0208,0x0069092c,0x00000000,0x00000040,0x22000204,0x06000104,0x020a0400, -0x00000001,0x2148160c,0x00000000,0x00200020,0x00000001,0x2168160c,0x00000000,0x00200020, -0x0a800033,0x0003e054,0x00002124,0x00000000,0x00000040,0x22000204,0x06000100,0x02280300, -0x0a800031,0x21803a6c,0x00000140,0x00000200,0x00000040,0x22000204,0x06000104,0x020a0300, -0x0a800033,0x0000c054,0x00002162,0x00000000,0x06000010,0x20002260,0x1e00076c,0x00030003, -0x00010020,0x34000004,0x0e001400,0x000002f0,0x00000009,0x20e02228,0x1e000200,0x00010001, -0x00200001,0x27100208,0x00450910,0x00000000,0x00000001,0x22081e28,0x00000000,0x00000000, -0x00000001,0x27201608,0x00000000,0x00000000,0x00000001,0x46f62288,0x000008f6,0x00000000, -0x00000006,0x6118228c,0x0a0006ca,0x000000e0,0x00000001,0x46ca2288,0x00000118,0x00000000, -0x00000040,0x20e00a28,0x1e000208,0x00580058,0x00000040,0x22001240,0x160000e0,0x06c006c0, -0x00000040,0x22101a68,0x22000940,0x00008000,0x04000010,0x20001a60,0x1e000210,0x00280028, -0x00010020,0x34000004,0x0e001400,0x00000040,0x00000001,0x20e01a28,0x00000210,0x00000000, -0x0c000038,0x21180a28,0x0e0000e0,0x00000004,0x00000001,0x42100a68,0x00000118,0x00000000, -0x00000020,0x34000004,0x0e001400,0x000000b0,0x00000001,0x20e01ae8,0x00000210,0x00000000, -0x00000041,0x20e43ae8,0x3e0000e0,0x3ecb1d56,0x00000040,0x211c3ae8,0x3e0000e0,0xc2ff0000, -0x00000040,0x21183ae8,0x3e0000e4,0xc197e502,0x00000041,0x21443ae8,0x3e00011c,0x37229ad3, -0x00000041,0x21203ae8,0x3e00011c,0x3a047cd2,0x00000041,0x21603ae8,0x3a000144,0x0000011c, -0x0040015b,0x0a020000,0xf9208dc9,0x02472411,0x0040015b,0x0c020400,0xf920a1c9,0x02c72411, -0x00000001,0x21a03a28,0x00000180,0x00000000,0x00000001,0x42100a68,0x000001a0,0x00000000, -0x05000002,0x22101a68,0x1e000210,0x003f003f,0x00000040,0x20e40a28,0x1e000208,0x00640064, -0x00000040,0x20e01a28,0x1a000210,0x00004204,0x00000040,0x22001240,0x160000e4,0x06c006c0, -0x00000001,0x61180a8c,0x000000e0,0x00000000,0x00000001,0xc0002288,0x00000118,0x00000000, -0x00000040,0x22080a28,0x1e000208,0x00010001,0x05000010,0x20000a20,0x1e000208,0x00080008, -0x00010020,0x34000004,0x0e001400,0xfffffe30,0x00000001,0x2128160c,0x00000000,0x00240024, -0x00000001,0x273c0208,0x0000093c,0x00000000,0x00400001,0x272c0208,0x0069092c,0x00000000, -0x00000040,0x22000204,0x06000104,0x020a0400,0x00000001,0x2148160c,0x00000000,0x002c002c, -0x00000001,0x2168160c,0x00000000,0x002c002c,0x0a800033,0x00036054,0x00002124,0x00000000, -0x00000040,0x22000204,0x06000100,0x02280300,0x0a800031,0x21803a6c,0x00000140,0x00000200, -0x00000040,0x22000204,0x06000104,0x020a0300,0x0a800033,0x0000c054,0x00002162,0x00000000, -0x00000040,0x20e00a08,0x1e000ac8,0x00030003,0x02000010,0x20000200,0x02000ad8,0x000000e0, -0x00010020,0x34000004,0x0e001400,0x00000020,0x01000010,0x20002260,0x1e00076d,0x00000000, -0x00010020,0x34000004,0x0e001400,0x000000a0,0x00000040,0x20e00a08,0x1e000ac8,0x00040004, -0x02000010,0x20000200,0x02000ad8,0x000000e0,0x00010020,0x34000004,0x0e001400,0x00000020, -0x01000010,0x20002260,0x1e00076d,0x00010001,0x00010020,0x34000004,0x0e001400,0x00000050, -0x00000040,0x20e00a08,0x1e000ac8,0x00050005,0x02000010,0x20000200,0x02000ad8,0x000000e0, -0x00010020,0x34000004,0x0e001400,0x00000040,0x02000010,0x20002260,0x1e00076d,0x00020002, -0x00010020,0x34000004,0x0e001400,0x00000020,0x0000000c,0x20e01208,0x160004fa,0x00010001, -0x00000040,0x22800208,0x02000280,0x000000e0,0x00000040,0x20e00a28,0x1a00020c,0x00000940, -0x04000010,0x20000a20,0x1a0000e0,0x0000005c,0x00010020,0x34000004,0x0e001400,0x00000020, -0x00000040,0x20e01a28,0x0a00005c,0x0000420c,0x00000040,0x49401a68,0x0a000940,0x000000e0, -0x03000010,0x20001a40,0x12000940,0x000004e6,0x00010020,0x34000004,0x0e001400,0x00000020, -0x00000040,0x24180208,0x16000418,0x00010001,0x00000020,0x34000004,0x0e001400,0x00000030, -0x05000010,0x20001a40,0x12000940,0x000004e8,0x00010020,0x34000004,0x0e001400,0x00000010, -0x00000040,0x24140208,0x16000414,0x00010001,0x02000010,0x20001260,0x1e000500,0x00010001, -0x00000001,0x49571e88,0x00000000,0x00020002,0x00000001,0x21d00208,0x00000410,0x00000000, -0x00000001,0x49561e88,0x00000000,0x00050005,0x00000001,0x49531e88,0x00000000,0x00010001, -0x00000001,0x49551e88,0x00000000,0x00050005,0x00000001,0x49521e88,0x00000000,0x00030003, -0x00000001,0x49511e88,0x00000000,0x00040004,0x00000001,0x49501e88,0x00000000,0x00010001, -0x00000001,0x49541e88,0x00000000,0x00010001,0x00400001,0x21c01e08,0x00000000,0x00000000, -0x00010020,0x34000004,0x0e001400,0x00000290,0x05000010,0x20000200,0x1200040c,0x000004fa, -0x00010020,0x34000004,0x0e001400,0x00000270,0x00000001,0x21000228,0x000002a0,0x00000000, -0x06000010,0x20000a20,0x0a000100,0x0000074c,0x00010020,0x34000004,0x0e001400,0x00000020, -0x00000040,0x21d00208,0x1e000410,0xffffffff,0x00000020,0x34000004,0x0e001400,0x00000030, -0x04000010,0x20000a20,0x0a000100,0x00000750,0x00010020,0x34000004,0x0e001400,0x00000010, -0x00000040,0x21d00208,0x16000410,0x00010001,0x05000002,0x21d00208,0x160001d0,0x00030003, -0x00000040,0x22001240,0x160001d0,0x09500950,0x00000041,0x20e01228,0x220004de,0x00008000, -0x00000001,0x21180ae8,0x000000e0,0x00000000,0x00000001,0x211c22e8,0x00008004,0x00000000, -0x09000038,0x21203ae8,0x3a000118,0x0000011c,0x00000001,0x41d43a48,0x00000120,0x00000000, -0x00000041,0x21401228,0x220004e0,0x00008000,0x00000001,0x21600ae8,0x00000140,0x00000000, -0x0000000c,0x21a01228,0x160004de,0x00010001,0x09000038,0x21803ae8,0x3a000160,0x0000011c, -0x04000010,0x20001220,0x0a0001d4,0x000001a0,0x00000001,0x41d83a48,0x00000180,0x00000000, -0x00010020,0x34000004,0x0e001400,0x00000020,0x0000000c,0x21d41248,0x160004de,0x00010001, -0x00000020,0x34000004,0x0e001400,0x00000010,0x05000002,0x21d41248,0x120004de,0x000001d4, -0x0000000c,0x20e01228,0x160004e0,0x00010001,0x04000010,0x20001220,0x0a0001d8,0x000000e0, -0x00010020,0x34000004,0x0e001400,0x00000020,0x0000000c,0x21d81248,0x160004e0,0x00010001, -0x00000020,0x34000004,0x0e001400,0x00000010,0x05000002,0x21d81248,0x120004e0,0x000001d8, -0x00000040,0x21181228,0x160001d8,0x00070007,0x00000040,0x20e01228,0x160001d4,0x00070007, -0x00000001,0x24100208,0x000001d0,0x00000000,0x00000005,0x41d80a48,0x1e000118,0xfff8fff8, -0x00000005,0x41d40a48,0x1e0000e0,0xfff8fff8,0x00000001,0x21c81208,0x000001d8,0x00000000, -0x00000001,0x21c41208,0x000001d4,0x00000000,0x00000020,0x34000004,0x0e001400,0x00000020, -0x00000001,0x21c41208,0x00000020,0x00000000,0x00000001,0x21c81208,0x00000022,0x00000000, -0x01000010,0x20002260,0x1e000512,0x00000000,0x00000001,0x41c01e88,0x00000000,0x00000000, -0x00010020,0x34000004,0x0e001400,0x00000010,0x00000001,0x41c01e88,0x00000000,0x00010001, -0x00000040,0x22000204,0x060000f4,0x020a0000,0x00000001,0x2128160c,0x00000000,0x00000000, -0x04000010,0x20002260,0x1e00002b,0x00020002,0x0000000c,0x420c1aa8,0x1e000940,0x00010001, -0x00000001,0x42001ea8,0x00000000,0x00000000,0x0a400033,0x0000e014,0x00002121,0x00000000, -0x00600001,0x21c01e08,0x00000000,0x00000000,0x00010020,0x34000004,0x0e001400,0x00000130, -0x02000010,0x20002260,0x1e00002b,0x00000000,0x00010020,0x34000004,0x0e001400,0x000000e0, -0x05000010,0x20001a60,0x1e000940,0x00280028,0x00010020,0x34000004,0x0e001400,0x000000c0, -0x00000001,0x20e01ae8,0x00000940,0x00000000,0x00000041,0x20e43ae8,0x3e0000e0,0x3ecb1d56, -0x00000040,0x211c3ae8,0x3e0000e0,0xc2ff0000,0x00000040,0x21183ae8,0x3e0000e4,0xc197e502, -0x00000041,0x21443ae8,0x3e00011c,0x37229ad3,0x00000041,0x21203ae8,0x3e00011c,0x3a047cd2, -0x00000041,0x21603ae8,0x3a000144,0x0000011c,0x0040015b,0x0a020000,0xf9208dc9,0x02472411, -0x0040015b,0x0c020400,0xf920a1c9,0x02c72411,0x00000001,0x21a03a28,0x00000180,0x00000000, -0x00000001,0x620c0aa8,0x000001a0,0x00000000,0x00000020,0x34000004,0x0e001400,0x00000030, -0x00000001,0x20e01a28,0x00000940,0x00000000,0x0c000038,0x21180a28,0x0e0000e0,0x00000004, -0x00000001,0x620c0aa8,0x00000118,0x00000000,0x05000002,0x20e02a28,0x1e00020c,0x003f003f, -0x01000010,0x20002260,0x1e000772,0x00000000,0x00000001,0x41c01a88,0x00000940,0x00000000, -0x04000002,0x620c0aa8,0x1e0000e0,0x00000000,0x00000001,0x41c12a88,0x0000020c,0x00000000, -0x00010020,0x34000004,0x0e001400,0x00000570,0x00000001,0x22041a68,0x00000940,0x00000000, -0x0000000c,0x420c1aa8,0x1e000940,0x00010001,0x00000001,0x22081e28,0x00000000,0x00000000, -0x00000041,0x20e00a28,0x1e000208,0x00200020,0x00000040,0x22000204,0x06000108,0x02180200, -0x02000010,0x20002260,0x1e00076f,0x00000000,0x00000008,0x21280a08,0x1e0000e0,0x00040004, -0x0a600031,0x25403a2c,0x00000120,0x00000200,0x00010020,0x34000004,0x0e001400,0x00000100, -0x00000040,0x22001240,0x16000208,0x07600760,0x00000040,0x21001a28,0x2a000940,0x00008000, -0x00000001,0x42040a68,0x00000100,0x00000000,0x04000010,0x20001a60,0x1a000204,0x0000005c, -0x00010020,0x34000004,0x0e001400,0x00000020,0x00000001,0x21001a68,0x0000005c,0x00000000, -0x00000020,0x34000004,0x0e001400,0x00000060,0x06000010,0x20001a60,0x1a000204,0x0000005e, -0x00010020,0x34000004,0x0e001400,0x00000020,0x00000001,0x21001a68,0x0000005e,0x00000000, -0x00000020,0x34000004,0x0e001400,0x00000010,0x00000001,0x41000a68,0x00000100,0x00000000, -0x00000001,0x21001a68,0x00000100,0x00000000,0x00000001,0x22041a68,0x00000100,0x00000000, -0x0000000c,0x420c1aa8,0x1e000100,0x00010001,0x00000020,0x34000004,0x0e001400,0x00000110, -0x01000010,0x20000a20,0x1e000208,0x00000000,0x00010020,0x34000004,0x0e001400,0x000000f0, -0x00000040,0x22001240,0x16000208,0x07600760,0x00000040,0x21001a28,0x2a000940,0x00008000, -0x00000001,0x42040a68,0x00000100,0x00000000,0x04000010,0x20001a60,0x1a000204,0x0000005c, -0x00010020,0x34000004,0x0e001400,0x00000020,0x00000001,0x21001a68,0x0000005c,0x00000000, -0x00000020,0x34000004,0x0e001400,0x00000060,0x06000010,0x20001a60,0x1a000204,0x0000005e, -0x00010020,0x34000004,0x0e001400,0x00000020,0x00000001,0x21001a68,0x0000005e,0x00000000, -0x00000020,0x34000004,0x0e001400,0x00000010,0x00000001,0x41000a68,0x00000100,0x00000000, -0x00000001,0x21001a68,0x00000100,0x00000000,0x00000001,0x22041a68,0x00000100,0x00000000, -0x0000000c,0x420c1aa8,0x1e000100,0x00010001,0x04000010,0x20002260,0x1e00002b,0x00020002, -0x00010020,0x34000004,0x0e001400,0x00000130,0x02000010,0x20002260,0x1e00002b,0x00000000, -0x00010020,0x34000004,0x0e001400,0x000000e0,0x05000010,0x20001a60,0x1e000204,0x00280028, -0x00010020,0x34000004,0x0e001400,0x000000c0,0x00000001,0x20e01ae8,0x00000204,0x00000000, -0x00000041,0x20e43ae8,0x3e0000e0,0x3ecb1d56,0x00000040,0x211c3ae8,0x3e0000e0,0xc2ff0000, -0x00000040,0x21183ae8,0x3e0000e4,0xc197e502,0x00000041,0x21443ae8,0x3e00011c,0x37229ad3, -0x00000041,0x21203ae8,0x3e00011c,0x3a047cd2,0x00000041,0x21603ae8,0x3a000144,0x0000011c, -0x0040015b,0x0a020000,0xf9208dc9,0x02472411,0x0040015b,0x0c020400,0xf920a1c9,0x02c72411, -0x00000001,0x21a03a28,0x00000180,0x00000000,0x00000001,0x620c0aa8,0x000001a0,0x00000000, -0x00000020,0x34000004,0x0e001400,0x00000030,0x00000001,0x20e01a28,0x00000204,0x00000000, -0x0c000038,0x21180a28,0x0e0000e0,0x00000004,0x00000001,0x620c0aa8,0x00000118,0x00000000, -0x05000002,0x20e02a28,0x1e00020c,0x003f003f,0x02000010,0x20000a20,0x1e000208,0x00000000, -0x04000002,0x21000a28,0x1e0000e0,0x00000000,0x00000001,0x620c0aa8,0x00000100,0x00000000, -0x00010020,0x34000004,0x0e001400,0x00000010,0x00000001,0x62000aa8,0x00000100,0x00000000, -0x04000040,0x42022aa8,0x2a00020c,0x00004200,0x00000005,0x455e2aa8,0x1e000202,0x003f003f, -0x00010020,0x34000004,0x0e001400,0x00000040,0x00000001,0x20e02a68,0x00004202,0x00000000, -0x00000005,0x21181a28,0x1e0000e0,0x003f003f,0x00000006,0x61200aac,0x1e000118,0x00400040, -0x00000001,0x455e2aa8,0x00000120,0x00000000,0x00000040,0x20e00a28,0x1e000208,0x00040004, -0x00000040,0x22001240,0x160000e0,0x01c001c0,0x00000001,0xc0001a88,0x00000204,0x00000000, -0x00000001,0xc0082a88,0x0000020c,0x00000000,0x00000041,0x21180a28,0x1e000208,0x00200020, -0x00000040,0x22080a28,0x1e000208,0x00010001,0x00000040,0x22000204,0x0600010c,0x020a0200, -0x00000008,0x21280a08,0x1e000118,0x00040004,0x05000010,0x20000a20,0x1e000208,0x00080008, -0x0a600033,0x0002a014,0x00002121,0x00000000,0x00010020,0x34000004,0x0e001400,0xfffffac0, -0x00000040,0x29481a28,0x2a000940,0x000000b8,0x00000001,0x2128160c,0x00000000,0x00000000, -0x00000040,0x22000204,0x06000114,0x020a0200,0x00000001,0x49440a68,0x00000948,0x00000000, -0x0a600033,0x0000e014,0x00002121,0x00000000,0x04000010,0x20001a60,0x1a000944,0x0000005c, -0x00010020,0x34000004,0x0e001400,0x00000020,0x00000001,0x29421a68,0x0000005c,0x00000000, -0x00000020,0x34000004,0x0e001400,0x00000060,0x06000010,0x20001a60,0x1a000944,0x0000005e, -0x00010020,0x34000004,0x0e001400,0x00000020,0x00000001,0x29441a68,0x0000005e,0x00000000, -0x00000020,0x34000004,0x0e001400,0x00000010,0x00000001,0x49440a68,0x00000948,0x00000000, -0x00000001,0x29421a68,0x00000944,0x00000000,0x00000041,0x20e01a28,0x1e000942,0x00400040, -0x00000040,0x22000204,0x060000ec,0x02280300,0x00000001,0x21601e68,0x00000000,0x00010001, -0x01000010,0x20002260,0x1e00076f,0x00000000,0x00000001,0x2148160c,0x00000000,0x00080008, -0x00000040,0x21180a28,0x1e0000e0,0x01800180,0x00010002,0x21801a28,0x1e000160,0x00000000, -0x00000008,0x21280a08,0x1e000118,0x00040004,0x01000005,0x20002220,0x0a000025,0x00000180, -0x0a800031,0x25403a6c,0x00000120,0x00000200,0x00000040,0x22000204,0x060000fc,0x020a0300, -0x0a800033,0x0002a054,0x00002142,0x00000000,0x00010020,0x34000004,0x0e001400,0x00000e00, -0x00000040,0x29481a28,0x2a000940,0x00000761,0x00000001,0x49440a68,0x00000948,0x00000000, -0x04000010,0x20001a60,0x1a000944,0x0000005c,0x00010020,0x34000004,0x0e001400,0x00000020, -0x00000001,0x29421a68,0x0000005c,0x00000000,0x00000020,0x34000004,0x0e001400,0x00000060, -0x06000010,0x20001a60,0x1a000944,0x0000005e,0x00010020,0x34000004,0x0e001400,0x00000020, -0x00000001,0x29441a68,0x0000005e,0x00000000,0x00000020,0x34000004,0x0e001400,0x00000010, -0x00000001,0x49440a68,0x00000948,0x00000000,0x00000001,0x29421a68,0x00000944,0x00000000, -0x00000040,0x29481a28,0x2a000942,0x000000b8,0x00000001,0x49440a68,0x00000948,0x00000000, -0x04000010,0x20001a60,0x1a000944,0x0000005c,0x00010020,0x34000004,0x0e001400,0x00000020, -0x00000001,0x29421a68,0x0000005c,0x00000000,0x00000020,0x34000004,0x0e001400,0x00000060, -0x06000010,0x20001a60,0x1a000944,0x0000005e,0x00010020,0x34000004,0x0e001400,0x00000020, -0x00000001,0x29441a68,0x0000005e,0x00000000,0x00000020,0x34000004,0x0e001400,0x00000010, -0x00000001,0x49440a68,0x00000948,0x00000000,0x00000001,0x29421a68,0x00000944,0x00000000, -0x00000041,0x20e01a28,0x1e000942,0x00400040,0x00000040,0x22000204,0x060000ec,0x02280300, -0x00000040,0x29481a28,0x2a000940,0x00000762,0x00000001,0x2148160c,0x00000000,0x000c000c, -0x00000040,0x21180a28,0x1e0000e0,0x01800180,0x00000001,0x49440a68,0x00000948,0x00000000, -0x00000008,0x21280a08,0x1e000118,0x00040004,0x04000010,0x20001a60,0x1a000944,0x0000005c, -0x0a800031,0x25403a6c,0x00000120,0x00000200,0x00000040,0x22000204,0x060000fc,0x020a0300, -0x0a800033,0x0002a054,0x00002142,0x00000000,0x00010020,0x34000004,0x0e001400,0x00000020, -0x00000001,0x29421a68,0x0000005c,0x00000000,0x00000020,0x34000004,0x0e001400,0x00000060, -0x06000010,0x20001a60,0x1a000944,0x0000005e,0x00010020,0x34000004,0x0e001400,0x00000020, -0x00000001,0x29441a68,0x0000005e,0x00000000,0x00000020,0x34000004,0x0e001400,0x00000010, -0x00000001,0x49440a68,0x00000948,0x00000000,0x00000001,0x29421a68,0x00000944,0x00000000, -0x00000040,0x29481a28,0x2a000942,0x000000b8,0x00000001,0x49440a68,0x00000948,0x00000000, -0x04000010,0x20001a60,0x1a000944,0x0000005c,0x00010020,0x34000004,0x0e001400,0x00000020, -0x00000001,0x29421a68,0x0000005c,0x00000000,0x00000020,0x34000004,0x0e001400,0x00000060, -0x06000010,0x20001a60,0x1a000944,0x0000005e,0x00010020,0x34000004,0x0e001400,0x00000020, -0x00000001,0x29441a68,0x0000005e,0x00000000,0x00000020,0x34000004,0x0e001400,0x00000010, -0x00000001,0x49440a68,0x00000948,0x00000000,0x00000001,0x29421a68,0x00000944,0x00000000, -0x00000041,0x20e01a28,0x1e000942,0x00400040,0x00000040,0x22000204,0x060000ec,0x02280300, -0x00000040,0x29481a28,0x2a000940,0x00000763,0x00000001,0x2148160c,0x00000000,0x00100010, -0x00000040,0x21180a28,0x1e0000e0,0x01800180,0x00000001,0x49440a68,0x00000948,0x00000000, -0x00000008,0x21280a08,0x1e000118,0x00040004,0x04000010,0x20001a60,0x1a000944,0x0000005c, -0x0a800031,0x25403a6c,0x00000120,0x00000200,0x00000040,0x22000204,0x060000fc,0x020a0300, -0x0a800033,0x0002a054,0x00002142,0x00000000,0x00010020,0x34000004,0x0e001400,0x00000020, -0x00000001,0x29421a68,0x0000005c,0x00000000,0x00000020,0x34000004,0x0e001400,0x00000060, -0x06000010,0x20001a60,0x1a000944,0x0000005e,0x00010020,0x34000004,0x0e001400,0x00000020, -0x00000001,0x29441a68,0x0000005e,0x00000000,0x00000020,0x34000004,0x0e001400,0x00000010, -0x00000001,0x49440a68,0x00000948,0x00000000,0x00000001,0x29421a68,0x00000944,0x00000000, -0x00000040,0x29481a28,0x2a000942,0x000000b8,0x00000001,0x49440a68,0x00000948,0x00000000, -0x04000010,0x20001a60,0x1a000944,0x0000005c,0x00010020,0x34000004,0x0e001400,0x00000020, -0x00000001,0x29421a68,0x0000005c,0x00000000,0x00000020,0x34000004,0x0e001400,0x00000060, -0x06000010,0x20001a60,0x1a000944,0x0000005e,0x00010020,0x34000004,0x0e001400,0x00000020, -0x00000001,0x29441a68,0x0000005e,0x00000000,0x00000020,0x34000004,0x0e001400,0x00000010, -0x00000001,0x49440a68,0x00000948,0x00000000,0x00000001,0x29421a68,0x00000944,0x00000000, -0x00000041,0x20e01a28,0x1e000942,0x00400040,0x00000040,0x22000204,0x060000ec,0x02280300, -0x00000040,0x29481a28,0x2a000940,0x00000764,0x00000001,0x2148160c,0x00000000,0x00140014, -0x00000040,0x21180a28,0x1e0000e0,0x01800180,0x00000001,0x49440a68,0x00000948,0x00000000, -0x00000008,0x21280a08,0x1e000118,0x00040004,0x04000010,0x20001a60,0x1a000944,0x0000005c, -0x0a800031,0x25403a6c,0x00000120,0x00000200,0x00000040,0x22000204,0x060000fc,0x020a0300, -0x0a800033,0x0002a054,0x00002142,0x00000000,0x00010020,0x34000004,0x0e001400,0x00000020, -0x00000001,0x29421a68,0x0000005c,0x00000000,0x00000020,0x34000004,0x0e001400,0x00000060, -0x06000010,0x20001a60,0x1a000944,0x0000005e,0x00010020,0x34000004,0x0e001400,0x00000020, -0x00000001,0x29441a68,0x0000005e,0x00000000,0x00000020,0x34000004,0x0e001400,0x00000010, -0x00000001,0x49440a68,0x00000948,0x00000000,0x00000001,0x29421a68,0x00000944,0x00000000, -0x00000040,0x29481a28,0x2a000942,0x000000b8,0x00000001,0x49440a68,0x00000948,0x00000000, -0x04000010,0x20001a60,0x1a000944,0x0000005c,0x00010020,0x34000004,0x0e001400,0x00000020, -0x00000001,0x29421a68,0x0000005c,0x00000000,0x00000020,0x34000004,0x0e001400,0x00000060, -0x06000010,0x20001a60,0x1a000944,0x0000005e,0x00010020,0x34000004,0x0e001400,0x00000020, -0x00000001,0x29441a68,0x0000005e,0x00000000,0x00000020,0x34000004,0x0e001400,0x00000010, -0x00000001,0x49440a68,0x00000948,0x00000000,0x00000001,0x29421a68,0x00000944,0x00000000, -0x00000041,0x20e01a28,0x1e000942,0x00400040,0x00000040,0x22000204,0x060000ec,0x02280300, -0x00000040,0x29481a28,0x2a000940,0x00000765,0x00000001,0x2148160c,0x00000000,0x00180018, -0x00000040,0x21180a28,0x1e0000e0,0x01800180,0x00000001,0x49440a68,0x00000948,0x00000000, -0x00000008,0x21280a08,0x1e000118,0x00040004,0x04000010,0x20001a60,0x1a000944,0x0000005c, -0x0a800031,0x25403a6c,0x00000120,0x00000200,0x00000040,0x22000204,0x060000fc,0x020a0300, -0x0a800033,0x0002a054,0x00002142,0x00000000,0x00010020,0x34000004,0x0e001400,0x00000020, -0x00000001,0x29421a68,0x0000005c,0x00000000,0x00000020,0x34000004,0x0e001400,0x00000060, -0x06000010,0x20001a60,0x1a000944,0x0000005e,0x00010020,0x34000004,0x0e001400,0x00000020, -0x00000001,0x29441a68,0x0000005e,0x00000000,0x00000020,0x34000004,0x0e001400,0x00000010, -0x00000001,0x49440a68,0x00000948,0x00000000,0x00000001,0x29421a68,0x00000944,0x00000000, -0x00000040,0x29481a28,0x2a000942,0x000000b8,0x00000001,0x49440a68,0x00000948,0x00000000, -0x04000010,0x20001a60,0x1a000944,0x0000005c,0x00010020,0x34000004,0x0e001400,0x00000020, -0x00000001,0x29421a68,0x0000005c,0x00000000,0x00000020,0x34000004,0x0e001400,0x00000060, -0x06000010,0x20001a60,0x1a000944,0x0000005e,0x00010020,0x34000004,0x0e001400,0x00000020, -0x00000001,0x29441a68,0x0000005e,0x00000000,0x00000020,0x34000004,0x0e001400,0x00000010, -0x00000001,0x49440a68,0x00000948,0x00000000,0x00000001,0x29421a68,0x00000944,0x00000000, -0x00000041,0x20e01a28,0x1e000942,0x00400040,0x00000040,0x22000204,0x060000ec,0x02280300, -0x00000040,0x29481a28,0x2a000940,0x00000766,0x00000001,0x2148160c,0x00000000,0x001c001c, -0x00000040,0x21180a28,0x1e0000e0,0x01800180,0x00000001,0x49440a68,0x00000948,0x00000000, -0x00000008,0x21280a08,0x1e000118,0x00040004,0x04000010,0x20001a60,0x1a000944,0x0000005c, -0x0a800031,0x25403a6c,0x00000120,0x00000200,0x00000040,0x22000204,0x060000fc,0x020a0300, -0x0a800033,0x0002a054,0x00002142,0x00000000,0x00010020,0x34000004,0x0e001400,0x00000020, -0x00000001,0x29421a68,0x0000005c,0x00000000,0x00000020,0x34000004,0x0e001400,0x00000060, -0x06000010,0x20001a60,0x1a000944,0x0000005e,0x00010020,0x34000004,0x0e001400,0x00000020, -0x00000001,0x29441a68,0x0000005e,0x00000000,0x00000020,0x34000004,0x0e001400,0x00000010, -0x00000001,0x49440a68,0x00000948,0x00000000,0x00000001,0x29421a68,0x00000944,0x00000000, -0x00000040,0x29481a28,0x2a000942,0x000000b8,0x00000001,0x49440a68,0x00000948,0x00000000, -0x04000010,0x20001a60,0x1a000944,0x0000005c,0x00010020,0x34000004,0x0e001400,0x00000020, -0x00000001,0x29421a68,0x0000005c,0x00000000,0x00000020,0x34000004,0x0e001400,0x00000060, -0x06000010,0x20001a60,0x1a000944,0x0000005e,0x00010020,0x34000004,0x0e001400,0x00000020, -0x00000001,0x29441a68,0x0000005e,0x00000000,0x00000020,0x34000004,0x0e001400,0x00000010, -0x00000001,0x49440a68,0x00000948,0x00000000,0x00000001,0x29421a68,0x00000944,0x00000000, -0x00000041,0x20e01a28,0x1e000942,0x00400040,0x00000040,0x22000204,0x060000ec,0x02280300, -0x00000040,0x29481a28,0x2a000940,0x00000767,0x00000001,0x2148160c,0x00000000,0x00200020, -0x00000040,0x21180a28,0x1e0000e0,0x01800180,0x00000001,0x49440a68,0x00000948,0x00000000, -0x00000008,0x21280a08,0x1e000118,0x00040004,0x04000010,0x20001a60,0x1a000944,0x0000005c, -0x0a800031,0x25403a6c,0x00000120,0x00000200,0x00000040,0x22000204,0x060000fc,0x020a0300, -0x0a800033,0x0002a054,0x00002142,0x00000000,0x00010020,0x34000004,0x0e001400,0x00000020, -0x00000001,0x29421a68,0x0000005c,0x00000000,0x00000020,0x34000004,0x0e001400,0x00000060, -0x06000010,0x20001a60,0x1a000944,0x0000005e,0x00010020,0x34000004,0x0e001400,0x00000020, -0x00000001,0x29441a68,0x0000005e,0x00000000,0x00000020,0x34000004,0x0e001400,0x00000010, -0x00000001,0x49440a68,0x00000948,0x00000000,0x00000001,0x29421a68,0x00000944,0x00000000, -0x00000040,0x29481a28,0x2a000942,0x000000b8,0x00000001,0x49440a68,0x00000948,0x00000000, -0x04000010,0x20001a60,0x1a000944,0x0000005c,0x00010020,0x34000004,0x0e001400,0x00000020, -0x00000001,0x29421a68,0x0000005c,0x00000000,0x00000020,0x34000004,0x0e001400,0x00000060, -0x06000010,0x20001a60,0x1a000944,0x0000005e,0x00010020,0x34000004,0x0e001400,0x00000020, -0x00000001,0x29441a68,0x0000005e,0x00000000,0x00000020,0x34000004,0x0e001400,0x00000010, -0x00000001,0x49440a68,0x00000948,0x00000000,0x00000001,0x29421a68,0x00000944,0x00000000, -0x00000041,0x20e01a28,0x1e000942,0x00400040,0x00000040,0x22000204,0x060000ec,0x02280300, -0x00000001,0x2148160c,0x00000000,0x00240024,0x00000040,0x21180a28,0x1e0000e0,0x01800180, -0x00000008,0x21280a08,0x1e000118,0x00040004,0x0a800031,0x25403a6c,0x00000120,0x00000200, -0x00000040,0x22000204,0x060000fc,0x020a0300,0x0a800033,0x0002a054,0x00002142,0x00000000, -0x00000001,0x2128160c,0x00000000,0x00000000,0x00000040,0x22000204,0x060000f8,0x02480400, -0x00000001,0x21c8160c,0x00000000,0x00000000,0x00000001,0x21e8160c,0x00000000,0x00280028, -0x00000001,0x2208160c,0x00000000,0x00280028,0x01000010,0x20002260,0x1e000769,0x00000000, -0x0a800031,0x21403a6c,0x00000120,0x00000200,0x00000040,0x22000204,0x060000fc,0x020a0400, -0x00000001,0x41571a88,0x00000940,0x00000000,0x0a800033,0x0000a054,0x000021c4,0x00000000, -0x00000040,0x22000204,0x060000f8,0x02280300,0x0a800031,0x25403a6c,0x000001e0,0x00000200, -0x00000040,0x22000204,0x060000fc,0x020a0300,0x0a800033,0x0002a054,0x00002202,0x00000000, -0x00010020,0x34000004,0x0e001400,0x000003e0,0x00000001,0x2128160c,0x00000000,0x00020002, -0x00000040,0x22000204,0x060000f8,0x02180200,0x02000010,0x20002a60,0x1e000ad4,0x00020002, -0x0a600031,0x20803a0c,0x00000120,0x00000200,0x00010020,0x34000004,0x0e001400,0x00000030, -0x00000001,0x45212288,0x00000520,0x00000000,0x00000001,0x45222288,0x00000521,0x00000000, -0x00000001,0x45232288,0x00000521,0x00000000,0x00000040,0x20e02228,0x1e000774,0x00180018, -0x00000040,0x22001240,0x160000e0,0x05080508,0x00000001,0xc0001a88,0x00000940,0x00000000, -0x00000040,0x21182228,0x1e000775,0x00180018,0x00000040,0x22001240,0x16000118,0x05080508, -0x00000001,0x49442288,0x00008000,0x00000000,0x00000040,0x21202228,0x1e000776,0x00180018, -0x00000040,0x22001240,0x16000120,0x05080508,0x00000001,0x49422288,0x00008000,0x00000000, -0x00000040,0x21402228,0x1e000777,0x00180018,0x00000040,0x22001240,0x16000140,0x05080508, -0x00000001,0x49462288,0x00008000,0x00000000,0x02000010,0x20002a60,0x1e000ac2,0xffffffff, -0x00010020,0x34000004,0x0e001400,0x00000040,0x00000001,0x20801648,0x00000000,0x00000000, -0x00000001,0x20821248,0x00000080,0x00000000,0x00000001,0x20841248,0x00000082,0x00000000, -0x00000020,0x34000004,0x0e001400,0x00000210,0x0000000c,0x40e42288,0x16000944,0x00040004, -0x00000005,0x20e02228,0x1e000944,0x000f000f,0x00000040,0x22000204,0x060000ec,0x02180200, -0x00000041,0x21182228,0x1e0000e4,0x00200020,0x00000041,0x21601248,0x160000e0,0x00020002, -0x00000040,0x21200a28,0x1e000118,0x41804180,0x00000008,0x21480a08,0x1e000120,0x00040004, -0x0a600031,0x20403a0c,0x00000140,0x00000200,0x00000040,0x22001240,0x16000160,0x00400040, -0x00000001,0x20801248,0x00008000,0x00000000,0x0000000c,0x41842288,0x16000942,0x00040004, -0x00000005,0x21802228,0x1e000942,0x000f000f,0x00000040,0x22000204,0x060000ec,0x02180200, -0x00000041,0x21a02228,0x1e000184,0x00200020,0x00000041,0x21181248,0x16000180,0x00020002, -0x00000040,0x21c00a28,0x1e0001a0,0x41804180,0x00000008,0x21e80a08,0x1e0001c0,0x00040004, -0x0a600031,0x20403a0c,0x000001e0,0x00000200,0x00000040,0x22001240,0x16000118,0x00400040, -0x00000001,0x20821248,0x00008000,0x00000000,0x0000000c,0x40e42288,0x16000946,0x00040004, -0x00000005,0x20e02228,0x1e000946,0x000f000f,0x00000040,0x22000204,0x060000ec,0x02180200, -0x00000041,0x21202228,0x1e0000e4,0x00200020,0x00000041,0x21a01248,0x160000e0,0x00020002, -0x00000040,0x21400a28,0x1e000120,0x41804180,0x00000008,0x21680a08,0x1e000140,0x00040004, -0x0a600031,0x20403a0c,0x00000160,0x00000200,0x00000040,0x22001240,0x160001a0,0x00400040, -0x00000001,0x24f21248,0x00008000,0x00000000,0x00000001,0x24ee1248,0x00000080,0x00000000, -0x00000001,0x24f01248,0x00000082,0x00000000,0x00000001,0x20841248,0x000004f2,0x00000000, -0x00000001,0x2128160c,0x00000000,0x00020002,0x00000040,0x22000204,0x060000fc,0x020a0200, -0x0a600033,0x00004014,0x00002121,0x00000000,0x00000001,0x452c1a88,0x00000940,0x00000000, -0x00000001,0x20401e28,0x00000000,0x00000000,0x00000009,0x20e00a28,0x1e000040,0x00050005, -0x00000009,0x20e40a28,0x1e000040,0x00070007,0x00000041,0x21181248,0x160000e0,0x00040004, -0x00000040,0x22001240,0x16000118,0x02400240,0x00600001,0x21200208,0x00208000,0x00000000, -0x00600001,0x21400208,0x00208020,0x00000000,0x00600001,0x21600208,0x00208040,0x00000000, -0x00600001,0x21800208,0x00208060,0x00000000,0x00000040,0x20400a28,0x1e000040,0x00010001, -0x00000008,0x21a80a08,0x1e0000e4,0x00040004,0x00000040,0x22000204,0x060000e8,0x020a0400, -0x05000010,0x20000a20,0x1e000040,0x00060006,0x0a800033,0x00009054,0x000021a4,0x00000000, -0x00010020,0x34000004,0x0e001400,0xffffff20,0x20004d01,0x00007f07,0x07000031,0x20003a00, -0x06000fe0,0x82000010,0x0000007e,0x20000000,0x00000000,0x00000000,0x00000000,0x00000000, -0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, -0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, -0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, -0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000 -}; diff -Nru intel-vaapi-driver-1.7.1/src/gen9_vp9_encoder_kernels.h intel-vaapi-driver-1.7.0/src/gen9_vp9_encoder_kernels.h --- intel-vaapi-driver-1.7.1/src/gen9_vp9_encoder_kernels.h 2016-06-16 00:57:46.000000000 +0000 +++ intel-vaapi-driver-1.7.0/src/gen9_vp9_encoder_kernels.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,35 +0,0 @@ -/* - * Copyright © 2016 Intel Corporation - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the - * "Software"), to deal in the Software without restriction, including - * without limitation the rights to use, copy, modify, merge, publish, - * distribute, sub license, and/or sell copies of the Software, and to - * permit persons to whom the Software is furnished to do so, subject to - * the following conditions: - * - * The above copyright notice and this permission notice (including the - * next paragraph) shall be included in all copies or substantial portions - * of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. - * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR - * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, - * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE - * SOFTWAR - * - * Authors: - * Zhao, Yakui - * - */ - -#ifndef _GEN9_VP9_ENCODER_KERNELS_H -#define _GEN9_VP9_ENCODER_KERNELS_H - -#define AllVP9ENC_SZ 39334 -extern const unsigned int media_vp9_kernels[AllVP9ENC_SZ]; - -#endif diff -Nru intel-vaapi-driver-1.7.1/src/i965_defines.h intel-vaapi-driver-1.7.0/src/i965_defines.h --- intel-vaapi-driver-1.7.1/src/i965_defines.h 2016-06-21 01:35:12.000000000 +0000 +++ intel-vaapi-driver-1.7.0/src/i965_defines.h 2016-03-15 06:40:58.000000000 +0000 @@ -635,8 +635,6 @@ #define I965_SURFACEFORMAT_R16G16B16_SSCALED 0x19E #define I965_SURFACEFORMAT_R16G16B16_USCALED 0x19F -#define I965_SURFACEFORMAT_RAW 0x1FF - #define I965_CULLMODE_BOTH 0 #define I965_CULLMODE_NONE 1 #define I965_CULLMODE_FRONT 2 @@ -920,62 +918,4 @@ #define HCP_CODEC_SELECT_DECODE 0 #define HCP_CODEC_SELECT_ENCODE 1 -/* VDEnc/HuC */ -/* HuC commands */ -#define HUC(command) \ - (3 << 29 | \ - 2 << 27 | \ - 11 << 23 | \ - (command << 16)) - -#define HUC_PIPE_MODE_SELECT HUC(0) -#define HUC_IMEM_STATE HUC(1) -#define HUC_DMEM_STATE HUC(2) -#define HUC_CFG_STATE HUC(3) -#define HUC_VIRTUAL_ADDR_STATE HUC(4) -#define HUC_IND_OBJ_BASE_ADDR_STATE HUC(5) -#define HUC_STREAM_OBJECT HUC(32) -#define HUC_START HUC(33) - -/* HuC registers */ -#define VCS0_HUC_STATUS 0xD000 -#define VCS0_HUC_STATUS2 0xD3B0 - -/* VDEnc commands */ -#define VDENC(opcode, sub_opcode_a, sub_opcode_b) \ - (3 << 29 | \ - 2 << 27 | \ - opcode << 23 | \ - sub_opcode_a << 21 | \ - sub_opcode_b << 16) - -#define VD_PIPELINE_FLUSH VDENC(15, 0, 0) - -#define VDENC_PIPE_MODE_SELECT VDENC(1, 0, 0) -#define VDENC_SRC_SURFACE_STATE VDENC(1, 0, 1) -#define VDENC_REF_SURFACE_STATE VDENC(1, 0, 2) -#define VDENC_DS_REF_SURFACE_STATE VDENC(1, 0, 3) -#define VDENC_PIPE_BUF_ADDR_STATE VDENC(1, 0, 4) -#define VDENC_IMG_STATE VDENC(1, 0, 5) -#define VDENC_CONST_QPT_STATE VDENC(1, 0, 6) -#define VDENC_WALKER_STATE VDENC(1, 0, 7) - -#define VDENC_CODEC_AVC 2 - -#define VDENC_SURFACE_YUV422 0 -#define VDENC_SURFACE_RGBA444 1 -#define VDENC_SURFACE_YUV444 2 -#define VDENC_SURFACE_Y8_UNORM 3 -#define VDENC_SURFACE_PLANAR_420_8 4 -#define VDENC_SURFACE_YCBCR_SWAP_Y 5 -#define VDENC_SURFACE_YCBCR_SWAP_UV 6 -#define VDENC_SURFACE_YCBCR_SWAP_UVY 7 -#define VDENC_SURFACE_P010 8 -#define VDENC_SURFACE_RGBA10 9 -#define VDENC_SURFACE_Y410 10 -#define VDENC_SURFACE_NV21 11 - -#define MFC_BITSTREAM_BYTECOUNT_FRAME_REG 0x128A0 -#define MFC_IMAGE_STATUS_CTRL_REG 0x128B8 - #endif /* _I965_DEFINES_H_ */ diff -Nru intel-vaapi-driver-1.7.1/src/i965_device_info.c intel-vaapi-driver-1.7.0/src/i965_device_info.c --- intel-vaapi-driver-1.7.1/src/i965_device_info.c 2016-06-21 01:35:12.000000000 +0000 +++ intel-vaapi-driver-1.7.0/src/i965_device_info.c 2016-03-15 06:40:58.000000000 +0000 @@ -357,9 +357,6 @@ .has_h264_mvc_encoding = 1, .has_hevc_decoding = 1, .has_hevc_encoding = 1, - .has_lp_h264_encoding = 1, - - .lp_h264_brc_mode = VA_RC_CQP, .num_filters = 5, .filters = { @@ -381,7 +378,7 @@ .max_width = 4096, .max_height = 4096, - .min_linear_wpitch = 128, + .min_linear_wpitch = 64, .min_linear_hpitch = 16, .h264_mvc_dec_profiles = (VA_PROFILE_MASK(H264StereoHigh) | @@ -433,7 +430,7 @@ .max_width = 4096, .max_height = 4096, - .min_linear_wpitch = 128, + .min_linear_wpitch = 64, .min_linear_hpitch = 16, .h264_mvc_dec_profiles = (VA_PROFILE_MASK(H264StereoHigh) | @@ -468,7 +465,6 @@ .has_hevc10_decoding = 1, .has_vp9_decoding = 1, .has_vpp_p010 = 1, - .has_vp9_encoding = 1, .num_filters = 5, .filters = { @@ -606,8 +602,6 @@ .urb_size = 4096, .max_wm_threads = 64, /* per PSD */ - - .is_skylake = 1, }; static const struct intel_device_info bxt_device_info = { diff -Nru intel-vaapi-driver-1.7.1/src/i965_drv_video.c intel-vaapi-driver-1.7.0/src/i965_drv_video.c --- intel-vaapi-driver-1.7.1/src/i965_drv_video.c 2016-06-21 01:35:12.000000000 +0000 +++ intel-vaapi-driver-1.7.0/src/i965_drv_video.c 2016-03-15 06:40:58.000000000 +0000 @@ -48,8 +48,6 @@ #include "i965_decoder.h" #include "i965_encoder.h" -#include "gen9_vp9_encapi.h" - #define CONFIG_ID_OFFSET 0x01000000 #define CONTEXT_ID_OFFSET 0x02000000 #define SURFACE_ID_OFFSET 0x04000000 @@ -69,9 +67,6 @@ #define HAS_H264_ENCODING(ctx) ((ctx)->codec_info->has_h264_encoding && \ (ctx)->intel.has_bsd) -#define HAS_LP_H264_ENCODING(ctx) ((ctx)->codec_info->has_lp_h264_encoding && \ - (ctx)->intel.has_bsd) - #define HAS_VC1_DECODING(ctx) ((ctx)->codec_info->has_vc1_decoding && \ (ctx)->intel.has_bsd) @@ -124,9 +119,6 @@ #define HAS_VPP_P010(ctx) ((ctx)->codec_info->has_vpp_p010 && \ (ctx)->intel.has_bsd) -#define HAS_VP9_ENCODING(ctx) ((ctx)->codec_info->has_vp9_encoding && \ - (ctx)->intel.has_bsd) - static int get_sampling_from_fourcc(unsigned int fourcc); /* Check whether we are rendering to X11 (VA/X11 or VA/GLX API) */ @@ -567,8 +559,7 @@ } if (HAS_H264_DECODING(i965) || - HAS_H264_ENCODING(i965) || - HAS_LP_H264_ENCODING(i965)) { + HAS_H264_ENCODING(i965)) { profile_list[i++] = VAProfileH264ConstrainedBaseline; profile_list[i++] = VAProfileH264Main; profile_list[i++] = VAProfileH264High; @@ -609,8 +600,7 @@ profile_list[i++] = VAProfileHEVCMain10; } - if(HAS_VP9_DECODING_PROFILE(i965, VAProfileVP9Profile0) || - HAS_VP9_ENCODING(i965)) { + if(HAS_VP9_DECODING_PROFILE(i965, VAProfileVP9Profile0)) { profile_list[i++] = VAProfileVP9Profile0; } @@ -673,9 +663,6 @@ if (HAS_H264_ENCODING(i965)) entrypoint_list[n++] = VAEntrypointEncSlice; - if (HAS_LP_H264_ENCODING(i965)) - entrypoint_list[n++] = VAEntrypointEncSliceLP; - break; case VAProfileH264MultiviewHigh: case VAProfileH264StereoHigh: @@ -735,9 +722,6 @@ if(HAS_VP9_DECODING_PROFILE(i965, profile)) entrypoint_list[n++] = VAEntrypointVLD; - if (HAS_VP9_ENCODING(i965) && (profile == VAProfileVP9Profile0)) - entrypoint_list[n++] = VAEntrypointEncSlice; - if(profile == VAProfileVP9Profile0) { if (i965->wrapper_pdrvctx) { VAStatus va_status = VA_STATUS_SUCCESS; @@ -786,8 +770,7 @@ case VAProfileH264Main: case VAProfileH264High: if ((HAS_H264_DECODING(i965) && entrypoint == VAEntrypointVLD) || - (HAS_H264_ENCODING(i965) && entrypoint == VAEntrypointEncSlice) || - (HAS_LP_H264_ENCODING(i965) && entrypoint == VAEntrypointEncSliceLP)) { + (HAS_H264_ENCODING(i965) && entrypoint == VAEntrypointEncSlice)) { va_status = VA_STATUS_SUCCESS; } else { va_status = VA_STATUS_ERROR_UNSUPPORTED_ENTRYPOINT; @@ -863,8 +846,6 @@ case VAProfileVP9Profile2: if ((HAS_VP9_DECODING_PROFILE(i965, profile)) && (entrypoint == VAEntrypointVLD)) va_status = VA_STATUS_SUCCESS; - else if ((HAS_VP9_ENCODING(i965)) && (entrypoint == VAEntrypointEncSlice)) - va_status = VA_STATUS_SUCCESS; else if ((profile == VAProfileVP9Profile0) && i965->wrapper_pdrvctx) va_status = VA_STATUS_SUCCESS; else @@ -959,29 +940,12 @@ if (profile != VAProfileMPEG2Main && profile != VAProfileMPEG2Simple) attrib_list[i].value |= VA_RC_CBR; - - if (profile == VAProfileVP9Profile0) - attrib_list[i].value |= VA_RC_VBR; - break; - } else if (entrypoint == VAEntrypointEncSliceLP) { - struct i965_driver_data * const i965 = i965_driver_data(ctx); - - /* Support low power encoding for H.264 only by now */ - if (profile == VAProfileH264ConstrainedBaseline || - profile == VAProfileH264Main || - profile == VAProfileH264High) - attrib_list[i].value = i965->codec_info->lp_h264_brc_mode; - else - attrib_list[i].value = VA_ATTRIB_NOT_SUPPORTED; - } else - attrib_list[i].value = VA_ATTRIB_NOT_SUPPORTED; - + } break; case VAConfigAttribEncPackedHeaders: - if (entrypoint == VAEntrypointEncSlice || - entrypoint == VAEntrypointEncSliceLP) { + if (entrypoint == VAEntrypointEncSlice) { attrib_list[i].value = VA_ENC_PACKED_HEADER_SEQUENCE | VA_ENC_PACKED_HEADER_PICTURE | VA_ENC_PACKED_HEADER_MISC; if (profile == VAProfileH264ConstrainedBaseline || profile == VAProfileH264Main || @@ -992,8 +956,6 @@ attrib_list[i].value |= (VA_ENC_PACKED_HEADER_RAW_DATA | VA_ENC_PACKED_HEADER_SLICE); } - else if (profile == VAProfileVP9Profile0) - attrib_list[i].value = VA_ENC_PACKED_HEADER_RAW_DATA; break; } else if (entrypoint == VAEntrypointEncPicture) { @@ -1003,23 +965,14 @@ break; case VAConfigAttribEncMaxRefFrames: - if (entrypoint == VAEntrypointEncSlice) + if (entrypoint == VAEntrypointEncSlice) { attrib_list[i].value = (1 << 16) | (1 << 0); - else if (entrypoint == VAEntrypointEncSliceLP) { - /* Don't support B frame for low power mode */ - if (profile == VAProfileH264ConstrainedBaseline || - profile == VAProfileH264Main || - profile == VAProfileH264High) - attrib_list[i].value = (1 << 0); - else - attrib_list[i].value = VA_ATTRIB_NOT_SUPPORTED; + break; } - break; case VAConfigAttribEncQualityRange: - if (entrypoint == VAEntrypointEncSlice || - entrypoint == VAEntrypointEncSliceLP) { + if (entrypoint == VAEntrypointEncSlice) { attrib_list[i].value = 1; if (profile == VAProfileH264ConstrainedBaseline || profile == VAProfileH264Main || @@ -1047,17 +1000,6 @@ attrib_list[i].value = VA_DEC_SLICE_MODE_NORMAL; break; - case VAConfigAttribEncROI: - if ((entrypoint == VAEntrypointEncSliceLP) && - (profile == VAProfileH264ConstrainedBaseline || - profile == VAProfileH264Main || - profile == VAProfileH264High)) - attrib_list[i].value = 3; - else - attrib_list[i].value = 0; - - break; - default: /* Do nothing */ attrib_list[i].value = VA_ATTRIB_NOT_SUPPORTED; @@ -1170,9 +1112,7 @@ } if ((vaStatus == VA_STATUS_SUCCESS) && - (profile == VAProfileVP9Profile0) && - (entrypoint == VAEntrypointVLD) && - !HAS_VP9_DECODING(i965)) { + (profile == VAProfileVP9Profile0)) { if (i965->wrapper_pdrvctx) { VAGenericID wrapper_config; @@ -2060,9 +2000,6 @@ i965_release_buffer_store(&obj_context->codec_state.encode.pic_param); i965_release_buffer_store(&obj_context->codec_state.encode.seq_param); - i965_release_buffer_store(&obj_context->codec_state.encode.q_matrix); - i965_release_buffer_store(&obj_context->codec_state.encode.huffman_table); - for (i = 0; i < obj_context->codec_state.encode.num_slice_params; i++) i965_release_buffer_store(&obj_context->codec_state.encode.slice_params[i]); @@ -2107,7 +2044,6 @@ i965_release_buffer_store(&obj_context->codec_state.encode.packed_header_data_ext[i]); free(obj_context->codec_state.encode.packed_header_data_ext); - i965_release_buffer_store(&obj_context->codec_state.encode.encmb_map); } else { assert(obj_context->codec_state.decode.num_slice_params <= obj_context->codec_state.decode.max_slice_params); assert(obj_context->codec_state.decode.num_slice_datas <= obj_context->codec_state.decode.max_slice_datas); @@ -2201,8 +2137,7 @@ assert(i965->codec_info->proc_hw_context_init); obj_context->hw_context = i965->codec_info->proc_hw_context_init(ctx, obj_config); } else if ((VAEntrypointEncSlice == obj_config->entrypoint) || - (VAEntrypointEncPicture == obj_config->entrypoint) || - (VAEntrypointEncSliceLP == obj_config->entrypoint)) { + (VAEntrypointEncPicture == obj_config->entrypoint)) { /*encode routine only*/ VAConfigAttrib *packed_attrib; obj_context->codec_type = CODEC_ENC; memset(&obj_context->codec_state.encode, 0, sizeof(obj_context->codec_state.encode)); @@ -2233,12 +2168,9 @@ obj_context->codec_state.encode.slice_index = 0; packed_attrib = i965_lookup_config_attribute(obj_config, VAConfigAttribEncPackedHeaders); - if (packed_attrib) { + if (packed_attrib) obj_context->codec_state.encode.packed_header_flag = packed_attrib->value; - if (obj_config->profile == VAProfileVP9Profile0) - obj_context->codec_state.encode.packed_header_flag = - packed_attrib->value & VA_ENC_PACKED_HEADER_RAW_DATA; - } else { + else { /* use the default value. SPS/PPS/RAWDATA is passed from user * while Slice_header data is generated by driver. */ @@ -2246,10 +2178,6 @@ VA_ENC_PACKED_HEADER_SEQUENCE | VA_ENC_PACKED_HEADER_PICTURE | VA_ENC_PACKED_HEADER_RAW_DATA; - - /* it is not used for VP9 */ - if (obj_config->profile == VAProfileVP9Profile0) - obj_context->codec_state.encode.packed_header_flag = 0; } assert(i965->codec_info->enc_hw_context_init); obj_context->hw_context = i965->codec_info->enc_hw_context_init(ctx, obj_config); @@ -2386,7 +2314,6 @@ case VAProcFilterParameterBufferType: case VAHuffmanTableBufferType: case VAProbabilityBufferType: - case VAEncMacroblockMapBufferType: /* Ok */ break; @@ -2413,7 +2340,6 @@ obj_buffer->export_refcount = 0; obj_buffer->buffer_store = NULL; obj_buffer->wrapper_buffer = VA_INVALID_ID; - obj_buffer->context_id = context; buffer_store = calloc(1, sizeof(struct buffer_store)); assert(buffer_store); @@ -2447,7 +2373,6 @@ } else if (type == VASliceDataBufferType || type == VAImageBufferType || type == VAEncCodedBufferType || - type == VAEncMacroblockMapBufferType || type == VAProbabilityBufferType) { /* If the buffer is wrapped, the bo/buffer of buffer_store is bogus. @@ -2479,7 +2404,6 @@ coded_buffer_segment->base.next = NULL; coded_buffer_segment->mapped = 0; coded_buffer_segment->codec = 0; - coded_buffer_segment->status_support = 0; dri_bo_unmap(buffer_store->bo); } else if (data) { dri_bo_subdata(buffer_store->bo, 0, size * num_elements, data); @@ -2570,12 +2494,9 @@ struct i965_driver_data *i965 = i965_driver_data(ctx); struct object_buffer *obj_buffer = BUFFER(buf_id); VAStatus vaStatus = VA_STATUS_ERROR_UNKNOWN; - struct object_context *obj_context; ASSERT_RET(obj_buffer && obj_buffer->buffer_store, VA_STATUS_ERROR_INVALID_BUFFER); - obj_context = CONTEXT(obj_buffer->context_id); - /* When the wrapper_buffer exists, it will wrapper to the * buffer allocated from backend driver. */ @@ -2606,7 +2527,6 @@ ASSERT_RET(obj_buffer->buffer_store->bo->virtual, VA_STATUS_ERROR_OPERATION_FAILED); *pbuf = obj_buffer->buffer_store->bo->virtual; - vaStatus = VA_STATUS_SUCCESS; if (obj_buffer->type == VAEncCodedBufferType) { int i; @@ -2619,89 +2539,69 @@ coded_buffer_segment->base.buf = buffer = (unsigned char *)(obj_buffer->buffer_store->bo->virtual) + I965_CODEDBUFFER_HEADER_SIZE; - if (obj_context && - obj_context->hw_context && - obj_context->hw_context->get_status && - coded_buffer_segment->status_support) { - vaStatus = obj_context->hw_context->get_status(ctx, obj_context->hw_context, coded_buffer_segment); - } else { - - if (coded_buffer_segment->codec == CODEC_VP9) { - - if (obj_context == NULL) - return VA_STATUS_ERROR_ENCODING_ERROR; - - gen9_vp9_get_coded_status(ctx, (char *)coded_buffer_segment, - obj_context->hw_context); - } - else if (coded_buffer_segment->codec == CODEC_H264 || - coded_buffer_segment->codec == CODEC_H264_MVC) { - delimiter0 = H264_DELIMITER0; - delimiter1 = H264_DELIMITER1; - delimiter2 = H264_DELIMITER2; - delimiter3 = H264_DELIMITER3; - delimiter4 = H264_DELIMITER4; - } else if (coded_buffer_segment->codec == CODEC_MPEG2) { - delimiter0 = MPEG2_DELIMITER0; - delimiter1 = MPEG2_DELIMITER1; - delimiter2 = MPEG2_DELIMITER2; - delimiter3 = MPEG2_DELIMITER3; - delimiter4 = MPEG2_DELIMITER4; - } else if(coded_buffer_segment->codec == CODEC_JPEG) { - //In JPEG End of Image (EOI = 0xDDF9) marker can be used for delimiter. - delimiter0 = 0xFF; - delimiter1 = 0xD9; - } else if (coded_buffer_segment->codec == CODEC_HEVC) { - delimiter0 = HEVC_DELIMITER0; - delimiter1 = HEVC_DELIMITER1; - delimiter2 = HEVC_DELIMITER2; - delimiter3 = HEVC_DELIMITER3; - delimiter4 = HEVC_DELIMITER4; - } else if (coded_buffer_segment->codec != CODEC_VP8) { - ASSERT_RET(0, VA_STATUS_ERROR_UNSUPPORTED_PROFILE); - } - - if(coded_buffer_segment->codec == CODEC_VP9) { - /* it is already handled */ - } else - if(coded_buffer_segment->codec == CODEC_JPEG) { - for(i = 0; i < obj_buffer->size_element - header_offset - 1 - 0x1000; i++) { - if( (buffer[i] == 0xFF) && (buffer[i + 1] == 0xD9)) { - break; - } - } - coded_buffer_segment->base.size = i + 2; - } else if (coded_buffer_segment->codec != CODEC_VP8) { - /* vp8 coded buffer size can be told by vp8 internal statistics buffer, - so it don't need to traversal the coded buffer */ - for (i = 0; i < obj_buffer->size_element - header_offset - 3 - 0x1000; i++) { - if ((buffer[i] == delimiter0) && - (buffer[i + 1] == delimiter1) && - (buffer[i + 2] == delimiter2) && - (buffer[i + 3] == delimiter3) && - (buffer[i + 4] == delimiter4)) - break; - } + if (coded_buffer_segment->codec == CODEC_H264 || + coded_buffer_segment->codec == CODEC_H264_MVC) { + delimiter0 = H264_DELIMITER0; + delimiter1 = H264_DELIMITER1; + delimiter2 = H264_DELIMITER2; + delimiter3 = H264_DELIMITER3; + delimiter4 = H264_DELIMITER4; + } else if (coded_buffer_segment->codec == CODEC_MPEG2) { + delimiter0 = MPEG2_DELIMITER0; + delimiter1 = MPEG2_DELIMITER1; + delimiter2 = MPEG2_DELIMITER2; + delimiter3 = MPEG2_DELIMITER3; + delimiter4 = MPEG2_DELIMITER4; + } else if(coded_buffer_segment->codec == CODEC_JPEG) { + //In JPEG End of Image (EOI = 0xDDF9) marker can be used for delimiter. + delimiter0 = 0xFF; + delimiter1 = 0xD9; + } else if (coded_buffer_segment->codec == CODEC_HEVC) { + delimiter0 = HEVC_DELIMITER0; + delimiter1 = HEVC_DELIMITER1; + delimiter2 = HEVC_DELIMITER2; + delimiter3 = HEVC_DELIMITER3; + delimiter4 = HEVC_DELIMITER4; + } else if (coded_buffer_segment->codec != CODEC_VP8) { + ASSERT_RET(0, VA_STATUS_ERROR_UNSUPPORTED_PROFILE); + } - if (i == obj_buffer->size_element - header_offset - 3 - 0x1000) { - coded_buffer_segment->base.status |= VA_CODED_BUF_STATUS_SLICE_OVERFLOW_MASK; + if(coded_buffer_segment->codec == CODEC_JPEG) { + for(i = 0; i < obj_buffer->size_element - header_offset - 1 - 0x1000; i++) { + if( (buffer[i] == 0xFF) && (buffer[i + 1] == 0xD9)) { + break; } - coded_buffer_segment->base.size = i; + } + coded_buffer_segment->base.size = i + 2; + } else if (coded_buffer_segment->codec != CODEC_VP8) { + /* vp8 coded buffer size can be told by vp8 internal statistics buffer, + so it don't need to traversal the coded buffer */ + for (i = 0; i < obj_buffer->size_element - header_offset - 3 - 0x1000; i++) { + if ((buffer[i] == delimiter0) && + (buffer[i + 1] == delimiter1) && + (buffer[i + 2] == delimiter2) && + (buffer[i + 3] == delimiter3) && + (buffer[i + 4] == delimiter4)) + break; } - if (coded_buffer_segment->base.size >= obj_buffer->size_element - header_offset - 0x1000) { + if (i == obj_buffer->size_element - header_offset - 3 - 0x1000) { coded_buffer_segment->base.status |= VA_CODED_BUF_STATUS_SLICE_OVERFLOW_MASK; } + coded_buffer_segment->base.size = i; + } - vaStatus = VA_STATUS_SUCCESS; + if (coded_buffer_segment->base.size >= obj_buffer->size_element - header_offset - 0x1000) { + coded_buffer_segment->base.status |= VA_CODED_BUF_STATUS_SLICE_OVERFLOW_MASK; } coded_buffer_segment->mapped = 1; } else { assert(coded_buffer_segment->base.buf); - vaStatus = VA_STATUS_SUCCESS; } } + + vaStatus = VA_STATUS_SUCCESS; } else if (NULL != obj_buffer->buffer_store->buffer) { *pbuf = obj_buffer->buffer_store->buffer; vaStatus = VA_STATUS_SUCCESS; @@ -2838,14 +2738,6 @@ obj_context->codec_state.encode.num_packed_header_data_ext = 0; obj_context->codec_state.encode.slice_index = 0; obj_context->codec_state.encode.vps_sps_seq_index = 0; - i965_release_buffer_store(&obj_context->codec_state.encode.encmb_map); - - if (obj_config->profile == VAProfileVP9Profile0) { - for (i = 0; i < ARRAY_ELEMS(obj_context->codec_state.encode.misc_param); i++) - i965_release_buffer_store(&obj_context->codec_state.encode.misc_param[i]); - - i965_release_buffer_store(&obj_context->codec_state.encode.seq_param_ext); - } } else { obj_context->codec_state.decode.current_render_target = render_target; i965_release_buffer_store(&obj_context->codec_state.decode.pic_param); @@ -3111,7 +3003,6 @@ /* extended buffer */ DEF_RENDER_ENCODE_SINGLE_BUFFER_FUNC(sequence_parameter_ext, seq_param_ext) DEF_RENDER_ENCODE_SINGLE_BUFFER_FUNC(picture_parameter_ext, pic_param_ext) -DEF_RENDER_ENCODE_SINGLE_BUFFER_FUNC(encmb_map, encmb_map) #define DEF_RENDER_ENCODE_MULTI_BUFFER_FUNC(name, member) DEF_RENDER_MULTI_BUFFER_FUNC(encode, name, member) // DEF_RENDER_ENCODE_MULTI_BUFFER_FUNC(slice_parameter, slice_params) @@ -3285,14 +3176,10 @@ vaStatus = VA_STATUS_ERROR_INVALID_PARAMETER; return vaStatus; } - if (encode->last_packed_header_type == VAEncPackedHeaderRawData || encode->last_packed_header_type == VAEncPackedHeaderSlice) { vaStatus = I965_RENDER_ENCODE_BUFFER(packed_header_data_ext); - if (obj_config->profile == VAProfileVP9Profile0) - break; - /* When the PACKED_SLICE_HEADER flag is passed, it will use * the packed_slice_header as the delimeter to decide how * the packed rawdata is inserted for the given slice. @@ -3387,10 +3274,6 @@ obj_buffer); break; - case VAEncMacroblockMapBufferType: - vaStatus = I965_RENDER_ENCODE_BUFFER(encmb_map); - break; - default: vaStatus = VA_STATUS_ERROR_UNSUPPORTED_BUFFERTYPE; break; @@ -3461,8 +3344,7 @@ if (VAEntrypointVideoProc == obj_config->entrypoint) { vaStatus = i965_proc_render_picture(ctx, context, buffers, num_buffers); } else if ((VAEntrypointEncSlice == obj_config->entrypoint ) || - (VAEntrypointEncPicture == obj_config->entrypoint) || - (VAEntrypointEncSliceLP == obj_config->entrypoint)) { + (VAEntrypointEncPicture == obj_config->entrypoint)) { vaStatus = i965_encoder_render_picture(ctx, context, buffers, num_buffers); } else { vaStatus = i965_decoder_render_picture(ctx, context, buffers, num_buffers); @@ -3485,10 +3367,7 @@ if (obj_context->codec_type == CODEC_PROC) { ASSERT_RET(VAEntrypointVideoProc == obj_config->entrypoint, VA_STATUS_ERROR_UNSUPPORTED_ENTRYPOINT); } else if (obj_context->codec_type == CODEC_ENC) { - ASSERT_RET(((VAEntrypointEncSlice == obj_config->entrypoint) || - (VAEntrypointEncPicture == obj_config->entrypoint) || - (VAEntrypointEncSliceLP == obj_config->entrypoint)), - VA_STATUS_ERROR_UNSUPPORTED_ENTRYPOINT); + ASSERT_RET(((VAEntrypointEncSlice == obj_config->entrypoint) || (VAEntrypointEncPicture == obj_config->entrypoint)), VA_STATUS_ERROR_UNSUPPORTED_ENTRYPOINT); if (obj_context->codec_state.encode.num_packed_header_params_ext != obj_context->codec_state.encode.num_packed_header_data_ext) { @@ -3502,14 +3381,11 @@ if (!(obj_context->codec_state.encode.seq_param || obj_context->codec_state.encode.seq_param_ext) && (VAEntrypointEncPicture != obj_config->entrypoint)) { - /* The seq_param is not mandatory for VP9 encoding */ - if (obj_config->profile != VAProfileVP9Profile0) - return VA_STATUS_ERROR_INVALID_PARAMETER; + return VA_STATUS_ERROR_INVALID_PARAMETER; } if ((obj_context->codec_state.encode.num_slice_params <=0) && (obj_context->codec_state.encode.num_slice_params_ext <=0) && - ((obj_config->profile != VAProfileVP8Version0_3) && - (obj_config->profile != VAProfileVP9Profile0))) { + (obj_config->profile != VAProfileVP8Version0_3)) { return VA_STATUS_ERROR_INVALID_PARAMETER; } @@ -5425,8 +5301,7 @@ IS_GEN8(i965->intel.device_info) || IS_GEN9(i965->intel.device_info)) { if (obj_config->entrypoint == VAEntrypointEncSlice || - obj_config->entrypoint == VAEntrypointVideoProc || - obj_config->entrypoint == VAEntrypointEncSliceLP) { + obj_config->entrypoint == VAEntrypointVideoProc) { switch (attrib_list[i].value.value.i) { case VA_FOURCC_NV12: case VA_FOURCC_I420: @@ -5776,8 +5651,7 @@ i++; } } else if (obj_config->entrypoint == VAEntrypointEncSlice || /* encode */ - obj_config->entrypoint == VAEntrypointVideoProc || - obj_config->entrypoint == VAEntrypointEncSliceLP) { + obj_config->entrypoint == VAEntrypointVideoProc) { /* vpp */ if (obj_config->profile == VAProfileHEVCMain10) { attribs[i].type = VASurfaceAttribPixelFormat; @@ -6481,11 +6355,6 @@ VAStatus va_status = VA_STATUS_SUCCESS; bool driver_loaded = false; - if (HAS_VP9_DECODING(i965)) { - i965->wrapper_pdrvctx = NULL; - return va_status; - } - wrapper_pdrvctx = calloc(1, sizeof(*wrapper_pdrvctx)); vtable = calloc(1, sizeof(*vtable)); diff -Nru intel-vaapi-driver-1.7.1/src/i965_drv_video.h intel-vaapi-driver-1.7.0/src/i965_drv_video.h --- intel-vaapi-driver-1.7.1/src/i965_drv_video.h 2016-06-21 01:35:12.000000000 +0000 +++ intel-vaapi-driver-1.7.0/src/i965_drv_video.h 2016-03-15 06:40:58.000000000 +0000 @@ -47,7 +47,7 @@ #define I965_MAX_PROFILES 20 #define I965_MAX_ENTRYPOINTS 5 -#define I965_MAX_CONFIG_ATTRIBUTES 32 +#define I965_MAX_CONFIG_ATTRIBUTES 10 #define I965_MAX_IMAGE_FORMATS 10 #define I965_MAX_SUBPIC_FORMATS 6 #define I965_MAX_SUBPIC_SUM 4 @@ -73,8 +73,6 @@ #define ENCODER_HIGH_QUALITY ENCODER_DEFAULT_QUALITY #define ENCODER_LOW_QUALITY 2 -#define ENCODER_LP_QUALITY_RANGE 8 - struct i965_surface { struct object_base *base; @@ -159,7 +157,6 @@ struct buffer_store *packed_header_param[5]; struct buffer_store *packed_header_data[5]; struct buffer_store **slice_params_ext; - struct buffer_store *encmb_map; int max_slice_params_ext; int num_slice_params_ext; @@ -234,9 +231,6 @@ union codec_state *codec_state, struct hw_context *hw_context); void (*destroy)(void *); - VAStatus (*get_status)(VADriverContextP ctx, - struct hw_context *hw_context, - void *buffer); struct intel_batchbuffer *batch; }; @@ -315,7 +309,6 @@ VABufferInfo export_state; VAGenericID wrapper_buffer; - VAContextID context_id; }; struct object_image @@ -399,10 +392,6 @@ unsigned int has_hevc10_decoding:1; unsigned int has_vp9_decoding:1; unsigned int has_vpp_p010:1; - unsigned int has_lp_h264_encoding:1; - unsigned int has_vp9_encoding:1; - - unsigned int lp_h264_brc_mode; unsigned int num_filters; struct i965_filter filters[VAProcFilterCount]; @@ -491,7 +480,6 @@ #define CODEC_JPEG 3 #define CODEC_VP8 4 #define CODEC_HEVC 5 -#define CODEC_VP9 6 #define H264_DELIMITER0 0x00 #define H264_DELIMITER1 0x00 @@ -513,17 +501,9 @@ struct i965_coded_buffer_segment { - union { - VACodedBufferSegment base; - unsigned char pad0[64]; /* change the size if sizeof(VACodedBufferSegment) > 64 */ - }; - - unsigned int mapped; - unsigned int codec; - unsigned int status_support; - unsigned int pad1; - - unsigned int codec_private_data[512]; /* Store codec private data, must be 16-bytes aligned */ + VACodedBufferSegment base; + unsigned char mapped; + unsigned char codec; }; #define I965_CODEDBUFFER_HEADER_SIZE ALIGN(sizeof(struct i965_coded_buffer_segment), 0x1000) diff -Nru intel-vaapi-driver-1.7.1/src/i965_encoder.c intel-vaapi-driver-1.7.0/src/i965_encoder.c --- intel-vaapi-driver-1.7.1/src/i965_encoder.c 2016-06-17 01:56:44.000000000 +0000 +++ intel-vaapi-driver-1.7.0/src/i965_encoder.c 2016-03-15 06:40:58.000000000 +0000 @@ -40,9 +40,6 @@ #include "gen6_vme.h" #include "gen6_mfc.h" #include "gen9_mfc.h" -#include "gen9_vdenc.h" - -#include "gen9_vp9_encapi.h" extern Bool gen6_mfc_context_init(VADriverContextP ctx, struct intel_encoder_context *encoder_context); extern Bool gen6_vme_context_init(VADriverContextP ctx, struct intel_encoder_context *encoder_context); @@ -560,76 +557,6 @@ error: return VA_STATUS_ERROR_INVALID_PARAMETER; } - -static VAStatus -intel_encoder_check_vp9_parameter(VADriverContextP ctx, - struct encode_state *encode_state, - struct intel_encoder_context *encoder_context) -{ - struct i965_driver_data *i965 = i965_driver_data(ctx); - VAEncPictureParameterBufferVP9 *pic_param; - struct object_surface *obj_surface; - struct object_buffer *obj_buffer; - int i = 0; - int is_key_frame = 0; - int index; - - if (encode_state->pic_param_ext == NULL || - encode_state->pic_param_ext->buffer == NULL) - return VA_STATUS_ERROR_INVALID_PARAMETER; - - pic_param = (VAEncPictureParameterBufferVP9 *)encode_state->pic_param_ext->buffer; - - obj_surface = SURFACE(pic_param->reconstructed_frame); - - if (!obj_surface) - goto error; - - encode_state->reconstructed_object = obj_surface; - obj_buffer = BUFFER(pic_param->coded_buf); - - if (!obj_buffer || !obj_buffer->buffer_store || !obj_buffer->buffer_store->bo) - goto error; - - encode_state->coded_buf_object = obj_buffer; - - is_key_frame = !pic_param->pic_flags.bits.frame_type; - if (!is_key_frame && !pic_param->pic_flags.bits.intra_only) { - /* slot 0 is for last reference frame */ - index = pic_param->ref_flags.bits.ref_last_idx; - obj_surface = SURFACE(pic_param->reference_frames[index]); - if (obj_surface && obj_surface->bo) - encode_state->reference_objects[i++] = obj_surface; - else - encode_state->reference_objects[i++] = NULL; - - /* slot 1 is for golden reference frame */ - index = pic_param->ref_flags.bits.ref_gf_idx; - obj_surface = SURFACE(pic_param->reference_frames[index]); - if (obj_surface && obj_surface->bo) - encode_state->reference_objects[i++] = obj_surface; - else - encode_state->reference_objects[i++] = NULL; - - /* slot 2 is alt reference frame */ - index = pic_param->ref_flags.bits.ref_arf_idx; - obj_surface = SURFACE(pic_param->reference_frames[index]); - if (obj_surface && obj_surface->bo) - encode_state->reference_objects[i++] = obj_surface; - else - encode_state->reference_objects[i++] = NULL; - } - - for ( ; i < 16; i++) - encode_state->reference_objects[i] = NULL; - - return VA_STATUS_SUCCESS; - -error: - return VA_STATUS_ERROR_INVALID_PARAMETER; -} - - static VAStatus intel_encoder_sanity_check_input(VADriverContextP ctx, VAProfile profile, @@ -683,13 +610,6 @@ vaStatus = intel_encoder_check_yuv_surface(ctx, profile, encode_state, encoder_context); break; } - - case VAProfileVP9Profile0: { - vaStatus = intel_encoder_check_vp9_parameter(ctx, encode_state, encoder_context); - if (vaStatus != VA_STATUS_SUCCESS) - goto out; - break; - } default: vaStatus = VA_STATUS_ERROR_UNSUPPORTED_PROFILE; break; @@ -738,28 +658,10 @@ if (encoder_context->vme_context_destroy && encoder_context->vme_context) encoder_context->vme_context_destroy(encoder_context->vme_context); - if (encoder_context->enc_priv_state) { - free(encoder_context->enc_priv_state); - encoder_context->enc_priv_state = NULL; - } - intel_batchbuffer_free(encoder_context->base.batch); free(encoder_context); } - -static VAStatus -intel_encoder_get_status(VADriverContextP ctx, struct hw_context *hw_context, void *buffer) -{ - struct intel_encoder_context *encoder_context = (struct intel_encoder_context *)hw_context; - struct i965_coded_buffer_segment *coded_buffer_segment = (struct i965_coded_buffer_segment *)buffer; - - if (encoder_context->get_status) - return encoder_context->get_status(ctx, encoder_context, coded_buffer_segment); - - return VA_STATUS_ERROR_UNIMPLEMENTED; -} - typedef Bool (* hw_init_func)(VADriverContextP, struct intel_encoder_context *); static struct hw_context * @@ -775,11 +677,9 @@ assert(encoder_context); encoder_context->base.destroy = intel_encoder_context_destroy; encoder_context->base.run = intel_encoder_end_picture; - encoder_context->base.get_status = intel_encoder_get_status; encoder_context->base.batch = intel_batchbuffer_new(intel, I915_EXEC_RENDER, 0); encoder_context->input_yuv_surface = VA_INVALID_SURFACE; encoder_context->is_tmp_id = 0; - encoder_context->low_power_mode = 0; encoder_context->rate_control_mode = VA_RC_NONE; encoder_context->quality_level = ENCODER_DEFAULT_QUALITY; encoder_context->quality_range = 1; @@ -794,11 +694,7 @@ case VAProfileH264Main: case VAProfileH264High: encoder_context->codec = CODEC_H264; - - if (obj_config->entrypoint == VAEntrypointEncSliceLP) - encoder_context->quality_range = ENCODER_LP_QUALITY_RANGE; - else - encoder_context->quality_range = ENCODER_QUALITY_RANGE; + encoder_context->quality_range = ENCODER_QUALITY_RANGE; break; case VAProfileH264StereoHigh: @@ -818,10 +714,6 @@ encoder_context->codec = CODEC_HEVC; break; - case VAProfileVP9Profile0: - encoder_context->codec = CODEC_VP9; - break; - default: /* Never get here */ assert(0); @@ -842,16 +734,11 @@ } } - if (vme_context_init) { - vme_context_init(ctx, encoder_context); - - if (obj_config->profile != VAProfileJPEGBaseline) { - assert(encoder_context->vme_context); - assert(encoder_context->vme_context_destroy); - assert(encoder_context->vme_pipeline); - } - } else { - encoder_context->low_power_mode = 1; + vme_context_init(ctx, encoder_context); + if(obj_config->profile != VAProfileJPEGBaseline) { + assert(encoder_context->vme_context); + assert(encoder_context->vme_context_destroy); + assert(encoder_context->vme_pipeline); } mfc_context_init(ctx, encoder_context); @@ -890,18 +777,10 @@ struct hw_context * gen9_enc_hw_context_init(VADriverContextP ctx, struct object_config *obj_config) { - if (obj_config->entrypoint == VAEntrypointEncSliceLP) { - return intel_enc_hw_context_init(ctx, obj_config, NULL, gen9_vdenc_context_init); - } else { - if (obj_config->profile == VAProfileHEVCMain) { - return intel_enc_hw_context_init(ctx, obj_config, gen9_vme_context_init, gen9_hcpe_context_init); - } else if (obj_config->profile == VAProfileJPEGBaseline) - return intel_enc_hw_context_init(ctx, obj_config, gen8_vme_context_init, gen8_mfc_context_init); - else if (obj_config->profile == VAProfileVP9Profile0) - return intel_enc_hw_context_init(ctx, obj_config, - gen9_vp9_vme_context_init, - gen9_vp9_pak_context_init); - else - return intel_enc_hw_context_init(ctx, obj_config, gen9_vme_context_init, gen9_mfc_context_init); - } + if (obj_config->profile == VAProfileHEVCMain) { + return intel_enc_hw_context_init(ctx, obj_config, gen9_vme_context_init, gen9_hcpe_context_init); + } else if (obj_config->profile == VAProfileJPEGBaseline) + return intel_enc_hw_context_init(ctx, obj_config, gen8_vme_context_init, gen8_mfc_context_init); + else + return intel_enc_hw_context_init(ctx, obj_config, gen9_vme_context_init, gen9_mfc_context_init); } diff -Nru intel-vaapi-driver-1.7.1/src/i965_encoder.h intel-vaapi-driver-1.7.0/src/i965_encoder.h --- intel-vaapi-driver-1.7.1/src/i965_encoder.h 2016-06-17 01:56:44.000000000 +0000 +++ intel-vaapi-driver-1.7.0/src/i965_encoder.h 2016-03-15 06:40:58.000000000 +0000 @@ -36,36 +36,17 @@ #include "i965_structs.h" #include "i965_drv_video.h" -#define I965_BRC_NONE 0 -#define I965_BRC_CBR 1 -#define I965_BRC_VBR 2 -#define I965_BRC_CQP 3 - -struct intel_roi -{ - short left; - short right; - short top; - short bottom; - - char value; -}; - struct intel_encoder_context { struct hw_context base; int codec; VASurfaceID input_yuv_surface; + int is_tmp_id; unsigned int rate_control_mode; unsigned int quality_level; unsigned int quality_range; void *vme_context; void *mfc_context; - void *enc_priv_state; - - unsigned int is_tmp_id:1; - unsigned int low_power_mode:1; - void (*vme_context_destroy)(void *vme_context); VAStatus (*vme_pipeline)(VADriverContextP ctx, VAProfile profile, @@ -78,10 +59,6 @@ struct intel_encoder_context *encoder_context); void (*mfc_brc_prepare)(struct encode_state *encode_state, struct intel_encoder_context *encoder_context); - - VAStatus (*get_status)(VADriverContextP ctx, - struct intel_encoder_context *encoder_context, - struct i965_coded_buffer_segment *coded_buffer_segment); }; extern struct hw_context * diff -Nru intel-vaapi-driver-1.7.1/src/i965_encoder_utils.c intel-vaapi-driver-1.7.0/src/i965_encoder_utils.c --- intel-vaapi-driver-1.7.1/src/i965_encoder_utils.c 2016-06-16 00:57:46.000000000 +0000 +++ intel-vaapi-driver-1.7.0/src/i965_encoder_utils.c 2016-03-15 06:40:58.000000000 +0000 @@ -1134,56 +1134,3 @@ *header_buffer = (unsigned char *)bs.buffer; return bs.bit_offset; } - -int -intel_avc_find_skipemulcnt(unsigned char *buf, int bits_length) -{ - int i, found; - int leading_zero_cnt, byte_length, zero_byte; - int nal_unit_type; - int skip_cnt = 0; - -#define NAL_UNIT_TYPE_MASK 0x1f -#define HW_MAX_SKIP_LENGTH 15 - - byte_length = ALIGN(bits_length, 32) >> 3; - - - leading_zero_cnt = 0; - found = 0; - for(i = 0; i < byte_length - 4; i++) { - if (((buf[i] == 0) && (buf[i + 1] == 0) && (buf[i + 2] == 1)) || - ((buf[i] == 0) && (buf[i + 1] == 0) && (buf[i + 2] == 0) && (buf[i + 3] == 1))) { - found = 1; - break; - } - leading_zero_cnt++; - } - if (!found) { - /* warning message is complained. But anyway it will be inserted. */ - WARN_ONCE("Invalid packed header data. " - "Can't find the 000001 start_prefix code\n"); - return 0; - } - i = leading_zero_cnt; - - zero_byte = 0; - if (!((buf[i] == 0) && (buf[i + 1] == 0) && (buf[i + 2] == 1))) - zero_byte = 1; - - skip_cnt = leading_zero_cnt + zero_byte + 3; - - /* the unit header byte is accounted */ - nal_unit_type = (buf[skip_cnt]) & NAL_UNIT_TYPE_MASK; - skip_cnt += 1; - - if (nal_unit_type == 14 || nal_unit_type == 20 || nal_unit_type == 21) { - /* more unit header bytes are accounted for MVC/SVC */ - skip_cnt += 3; - } - if (skip_cnt > HW_MAX_SKIP_LENGTH) { - WARN_ONCE("Too many leading zeros are padded for packed data. " - "It is beyond the HW range.!!!\n"); - } - return skip_cnt; -} diff -Nru intel-vaapi-driver-1.7.1/src/i965_encoder_utils.h intel-vaapi-driver-1.7.0/src/i965_encoder_utils.h --- intel-vaapi-driver-1.7.1/src/i965_encoder_utils.h 2016-06-16 00:57:46.000000000 +0000 +++ intel-vaapi-driver-1.7.0/src/i965_encoder_utils.h 2016-03-15 06:40:58.000000000 +0000 @@ -62,7 +62,4 @@ unsigned int dpb_output_delay, unsigned char **sei_buffer); -int -intel_avc_find_skipemulcnt(unsigned char *buf, int bits_length); - #endif /* __I965_ENCODER_UTILS_H__ */ diff -Nru intel-vaapi-driver-1.7.1/src/i965_gpe_utils.c intel-vaapi-driver-1.7.0/src/i965_gpe_utils.c --- intel-vaapi-driver-1.7.1/src/i965_gpe_utils.c 2016-06-21 01:35:12.000000000 +0000 +++ intel-vaapi-driver-1.7.0/src/i965_gpe_utils.c 2016-03-15 06:40:58.000000000 +0000 @@ -734,8 +734,7 @@ memset(ss, 0, sizeof(*ss)); /* ss0 */ - ss->ss6.base_addr = (uint32_t)obj_surface->bo->offset64; - ss->ss7.base_addr_high = (uint32_t)(obj_surface->bo->offset64 >> 32); + ss->ss6.base_addr = obj_surface->bo->offset; /* ss1 */ ss->ss1.cbcr_pixel_offset_v_direction = 2; ss->ss1.width = w - 1; @@ -795,8 +794,7 @@ ss->ss0.surface_type = I965_SURFACE_2D; ss->ss0.surface_format = I965_SURFACEFORMAT_R8_UNORM; /* ss1 */ - ss->ss8.base_addr = (uint32_t)obj_surface->bo->offset64; - ss->ss9.base_addr_high = (uint32_t)(obj_surface->bo->offset64 >> 32); + ss->ss8.base_addr = obj_surface->bo->offset; /* ss2 */ ss->ss2.width = w / 4 - 1; /* in DWORDs for media read & write message */ ss->ss2.height = h - 1; @@ -813,7 +811,6 @@ int w, w_pitch; unsigned int tiling, swizzle; int cbcr_offset; - uint64_t base_offset; dri_bo_get_tiling(obj_surface->bo, &tiling, &swizzle); w = obj_surface->orig_width; @@ -825,9 +822,7 @@ ss->ss0.surface_type = I965_SURFACE_2D; ss->ss0.surface_format = I965_SURFACEFORMAT_R8_UNORM; /* ss1 */ - base_offset = obj_surface->bo->offset64 + cbcr_offset; - ss->ss8.base_addr = (uint32_t) base_offset; - ss->ss9.base_addr_high = (uint32_t) (base_offset >> 32); + ss->ss8.base_addr = obj_surface->bo->offset + cbcr_offset; /* ss2 */ ss->ss2.width = w / 4 - 1; /* in DWORDs for media read & write message */ ss->ss2.height = (obj_surface->height / 2) -1; @@ -906,8 +901,7 @@ /* ss0 */ ss->ss0.surface_type = I965_SURFACE_BUFFER; /* ss1 */ - ss->ss8.base_addr = (uint32_t)buffer_surface->bo->offset64; - ss->ss9.base_addr_high = (uint32_t)(buffer_surface->bo->offset64 >> 32); + ss->ss8.base_addr = buffer_surface->bo->offset; /* ss2 */ ss->ss2.width = ((num_entries - 1) & 0x7f); ss->ss2.height = (((num_entries - 1) >> 7) & 0x3fff); @@ -956,39 +950,38 @@ OUT_BATCH(batch, 0); /*DW4 Surface state base address */ - OUT_RELOC64(batch, gpe_context->surface_state_binding_table.bo, I915_GEM_DOMAIN_INSTRUCTION, 0, BASE_ADDRESS_MODIFY); /* Surface state base address */ + OUT_RELOC(batch, gpe_context->surface_state_binding_table.bo, I915_GEM_DOMAIN_INSTRUCTION, 0, BASE_ADDRESS_MODIFY); /* Surface state base address */ + OUT_BATCH(batch, 0); /*DW6. Dynamic state base address */ if (gpe_context->dynamic_state.bo) - OUT_RELOC64(batch, gpe_context->dynamic_state.bo, + OUT_RELOC(batch, gpe_context->dynamic_state.bo, I915_GEM_DOMAIN_RENDER | I915_GEM_DOMAIN_SAMPLER, 0, BASE_ADDRESS_MODIFY); - else { + else OUT_BATCH(batch, 0 | BASE_ADDRESS_MODIFY); - OUT_BATCH(batch, 0); - } + OUT_BATCH(batch, 0); /*DW8. Indirect Object base address */ if (gpe_context->indirect_state.bo) - OUT_RELOC64(batch, gpe_context->indirect_state.bo, + OUT_RELOC(batch, gpe_context->indirect_state.bo, I915_GEM_DOMAIN_SAMPLER, 0, BASE_ADDRESS_MODIFY); - else { + else OUT_BATCH(batch, 0 | BASE_ADDRESS_MODIFY); - OUT_BATCH(batch, 0); - } + OUT_BATCH(batch, 0); /*DW10. Instruct base address */ if (gpe_context->instruction_state.bo) - OUT_RELOC64(batch, gpe_context->instruction_state.bo, + OUT_RELOC(batch, gpe_context->instruction_state.bo, I915_GEM_DOMAIN_INSTRUCTION, 0, BASE_ADDRESS_MODIFY); - else { + else OUT_BATCH(batch, 0 | BASE_ADDRESS_MODIFY); - OUT_BATCH(batch, 0); - } + + OUT_BATCH(batch, 0); /* DW12. Size limitation */ OUT_BATCH(batch, 0xFFFFF000 | BASE_ADDRESS_MODIFY); //General State Access Upper Bound @@ -1225,40 +1218,38 @@ OUT_BATCH(batch, 0); /*DW4 Surface state base address */ - OUT_RELOC64(batch, gpe_context->surface_state_binding_table.bo, I915_GEM_DOMAIN_INSTRUCTION, 0, BASE_ADDRESS_MODIFY); /* Surface state base address */ + OUT_RELOC(batch, gpe_context->surface_state_binding_table.bo, I915_GEM_DOMAIN_INSTRUCTION, 0, BASE_ADDRESS_MODIFY); /* Surface state base address */ + OUT_BATCH(batch, 0); /*DW6. Dynamic state base address */ if (gpe_context->dynamic_state.bo) - OUT_RELOC64(batch, gpe_context->dynamic_state.bo, + OUT_RELOC(batch, gpe_context->dynamic_state.bo, I915_GEM_DOMAIN_RENDER | I915_GEM_DOMAIN_SAMPLER, - I915_GEM_DOMAIN_RENDER, BASE_ADDRESS_MODIFY); - else { + 0, BASE_ADDRESS_MODIFY); + else OUT_BATCH(batch, 0 | BASE_ADDRESS_MODIFY); - OUT_BATCH(batch, 0); - } + OUT_BATCH(batch, 0); /*DW8. Indirect Object base address */ if (gpe_context->indirect_state.bo) - OUT_RELOC64(batch, gpe_context->indirect_state.bo, + OUT_RELOC(batch, gpe_context->indirect_state.bo, I915_GEM_DOMAIN_SAMPLER, 0, BASE_ADDRESS_MODIFY); - else { + else OUT_BATCH(batch, 0 | BASE_ADDRESS_MODIFY); - OUT_BATCH(batch, 0); - } + OUT_BATCH(batch, 0); /*DW10. Instruct base address */ if (gpe_context->instruction_state.bo) - OUT_RELOC64(batch, gpe_context->instruction_state.bo, + OUT_RELOC(batch, gpe_context->instruction_state.bo, I915_GEM_DOMAIN_INSTRUCTION, 0, BASE_ADDRESS_MODIFY); - else { + else OUT_BATCH(batch, 0 | BASE_ADDRESS_MODIFY); - OUT_BATCH(batch, 0); - } + OUT_BATCH(batch, 0); /* DW12. Size limitation */ OUT_BATCH(batch, 0xFFFFF000 | BASE_ADDRESS_MODIFY); //General State Access Upper Bound @@ -1317,739 +1308,3 @@ GEN9_FORCE_MEDIA_AWAKE_MASK); ADVANCE_BATCH(batch); } - -Bool -i965_allocate_gpe_resource(dri_bufmgr *bufmgr, - struct i965_gpe_resource *res, - int size, - const char *name) -{ - if (!res || !size) - return false; - - res->size = size; - res->bo = dri_bo_alloc(bufmgr, name, res->size, 4096); - res->map = NULL; - - return (res->bo != NULL); -} - -void -i965_object_surface_to_2d_gpe_resource(struct i965_gpe_resource *res, - struct object_surface *obj_surface) -{ - unsigned int swizzle; - - res->type = I965_GPE_RESOURCE_2D; - res->width = obj_surface->orig_width; - res->height = obj_surface->orig_height; - res->pitch = obj_surface->width; - res->size = obj_surface->size; - res->cb_cr_pitch = obj_surface->cb_cr_pitch; - res->x_cb_offset = obj_surface->x_cb_offset; - res->y_cb_offset = obj_surface->y_cb_offset; - res->bo = obj_surface->bo; - res->map = NULL; - - dri_bo_reference(res->bo); - dri_bo_get_tiling(obj_surface->bo, &res->tiling, &swizzle); -} - -void -i965_dri_object_to_buffer_gpe_resource(struct i965_gpe_resource *res, - dri_bo *bo) -{ - unsigned int swizzle; - - res->type = I965_GPE_RESOURCE_BUFFER; - res->width = bo->size; - res->height = 1; - res->pitch = res->width; - res->size = res->pitch * res->width; - res->bo = bo; - res->map = NULL; - - dri_bo_reference(res->bo); - dri_bo_get_tiling(res->bo, &res->tiling, &swizzle); -} - -void -i965_gpe_dri_object_to_2d_gpe_resource(struct i965_gpe_resource *res, - dri_bo *bo, - unsigned int width, - unsigned int height, - unsigned int pitch) -{ - unsigned int swizzle; - - res->type = I965_GPE_RESOURCE_2D; - res->width = width; - res->height = height; - res->pitch = pitch; - res->size = res->pitch * res->width; - res->bo = bo; - res->map = NULL; - - dri_bo_reference(res->bo); - dri_bo_get_tiling(res->bo, &res->tiling, &swizzle); -} - -void -i965_zero_gpe_resource(struct i965_gpe_resource *res) -{ - if (res->bo) { - dri_bo_map(res->bo, 1); - memset(res->bo->virtual, 0, res->size); - dri_bo_unmap(res->bo); - } -} - -void -i965_free_gpe_resource(struct i965_gpe_resource *res) -{ - dri_bo_unreference(res->bo); - res->bo = NULL; - res->map = NULL; -} - -void * -i965_map_gpe_resource(struct i965_gpe_resource *res) -{ - int ret; - - if (res->bo) { - ret = dri_bo_map(res->bo, 1); - - if (ret == 0) - res->map = res->bo->virtual; - else - res->map = NULL; - } else - res->map = NULL; - - return res->map; -} - -void -i965_unmap_gpe_resource(struct i965_gpe_resource *res) -{ - if (res->bo && res->map) - dri_bo_unmap(res->bo); - - res->map = NULL; -} - -void -gen9_gpe_mi_flush_dw(VADriverContextP ctx, - struct intel_batchbuffer *batch, - struct gpe_mi_flush_dw_parameter *params) -{ - int video_pipeline_cache_invalidate = 0; - int post_sync_operation = MI_FLUSH_DW_NOWRITE; - - if (params->video_pipeline_cache_invalidate) - video_pipeline_cache_invalidate = MI_FLUSH_DW_VIDEO_PIPELINE_CACHE_INVALIDATE; - - if (params->bo) - post_sync_operation = MI_FLUSH_DW_WRITE_QWORD; - - __OUT_BATCH(batch, (MI_FLUSH_DW2 | - video_pipeline_cache_invalidate | - post_sync_operation | - (5 - 2))); /* Always use PPGTT */ - - if (params->bo) { - __OUT_RELOC64(batch, - params->bo, - I915_GEM_DOMAIN_RENDER, I915_GEM_DOMAIN_RENDER, - params->offset); - } else { - __OUT_BATCH(batch, 0); - __OUT_BATCH(batch, 0); - } - - __OUT_BATCH(batch, params->dw0); - __OUT_BATCH(batch, params->dw1); -} - -void -gen9_gpe_mi_store_data_imm(VADriverContextP ctx, - struct intel_batchbuffer *batch, - struct gpe_mi_store_data_imm_parameter *params) -{ - if (params->is_qword) { - __OUT_BATCH(batch, MI_STORE_DATA_IMM | - (1 << 21) | - (5 - 2)); /* Always use PPGTT */ - } else { - __OUT_BATCH(batch, MI_STORE_DATA_IMM | (4 - 2)); /* Always use PPGTT */ - } - - __OUT_RELOC64(batch, - params->bo, - I915_GEM_DOMAIN_RENDER, I915_GEM_DOMAIN_RENDER, - params->offset); - __OUT_BATCH(batch, params->dw0); - - if (params->is_qword) - __OUT_BATCH(batch, params->dw1); -} - -void -gen9_gpe_mi_store_register_mem(VADriverContextP ctx, - struct intel_batchbuffer *batch, - struct gpe_mi_store_register_mem_parameter *params) -{ - __OUT_BATCH(batch, (MI_STORE_REGISTER_MEM | (4 - 2))); /* Always use PPGTT */ - __OUT_BATCH(batch, params->mmio_offset); - __OUT_RELOC64(batch, - params->bo, - I915_GEM_DOMAIN_RENDER, I915_GEM_DOMAIN_RENDER, - params->offset); -} - -void -gen9_gpe_mi_load_register_mem(VADriverContextP ctx, - struct intel_batchbuffer *batch, - struct gpe_mi_load_register_mem_parameter *params) -{ - __OUT_BATCH(batch, (MI_LOAD_REGISTER_MEM | (4 - 2))); /* Always use PPGTT */ - __OUT_BATCH(batch, params->mmio_offset); - __OUT_RELOC64(batch, - params->bo, - I915_GEM_DOMAIN_RENDER, I915_GEM_DOMAIN_RENDER, - params->offset); -} - -void -gen9_gpe_mi_load_register_imm(VADriverContextP ctx, - struct intel_batchbuffer *batch, - struct gpe_mi_load_register_imm_parameter *params) -{ - __OUT_BATCH(batch, (MI_LOAD_REGISTER_IMM | (3 - 2))); - __OUT_BATCH(batch, params->mmio_offset); - __OUT_BATCH(batch, params->data); -} - -void -gen9_gpe_mi_load_register_reg(VADriverContextP ctx, - struct intel_batchbuffer *batch, - struct gpe_mi_load_register_reg_parameter *params) -{ - __OUT_BATCH(batch, (MI_LOAD_REGISTER_REG | (3 - 2))); - __OUT_BATCH(batch, params->src_mmio_offset); - __OUT_BATCH(batch, params->dst_mmio_offset); -} - -void -gen9_gpe_mi_math(VADriverContextP ctx, - struct intel_batchbuffer *batch, - struct gpe_mi_math_parameter *params) -{ - __OUT_BATCH(batch, (MI_MATH | (params->num_instructions - 1))); - intel_batchbuffer_data(batch, params->instruction_list, params->num_instructions * 4); -} - -void -gen9_gpe_mi_conditional_batch_buffer_end(VADriverContextP ctx, - struct intel_batchbuffer *batch, - struct gpe_mi_conditional_batch_buffer_end_parameter *params) -{ - int compare_mask_mode_enabled = MI_COMPARE_MASK_MODE_ENANBLED; - - if (params->compare_mask_mode_disabled) - compare_mask_mode_enabled = 0; - - __OUT_BATCH(batch, (MI_CONDITIONAL_BATCH_BUFFER_END | - (1 << 21) | - compare_mask_mode_enabled | - (4 - 2))); /* Always use PPGTT */ - __OUT_BATCH(batch, params->compare_data); - __OUT_RELOC64(batch, - params->bo, - I915_GEM_DOMAIN_RENDER | I915_GEM_DOMAIN_INSTRUCTION, 0, - params->offset); -} - -void -gen9_gpe_mi_batch_buffer_start(VADriverContextP ctx, - struct intel_batchbuffer *batch, - struct gpe_mi_batch_buffer_start_parameter *params) -{ - __OUT_BATCH(batch, (MI_BATCH_BUFFER_START | - (!!params->is_second_level << 22) | - (!params->use_global_gtt << 8) | - (1 << 0))); - __OUT_RELOC64(batch, - params->bo, - I915_GEM_DOMAIN_RENDER | I915_GEM_DOMAIN_INSTRUCTION, 0, - params->offset); -} - -void -gen8_gpe_context_set_dynamic_buffer(VADriverContextP ctx, - struct i965_gpe_context *gpe_context, - struct gpe_dynamic_state_parameter *ds) -{ - if (!ds->bo || !gpe_context) - return; - - dri_bo_unreference(gpe_context->dynamic_state.bo); - gpe_context->dynamic_state.bo = ds->bo; - dri_bo_reference(gpe_context->dynamic_state.bo); - gpe_context->dynamic_state.bo_size = ds->bo_size; - - gpe_context->curbe_offset = ds->curbe_offset; - gpe_context->idrt_offset = ds->idrt_offset; - gpe_context->sampler_offset = ds->sampler_offset; - - return; -} - -void * -gen8p_gpe_context_map_curbe(struct i965_gpe_context *gpe_context) -{ - dri_bo_map(gpe_context->dynamic_state.bo, 1); - - return (char *)gpe_context->dynamic_state.bo->virtual + gpe_context->curbe_offset; -} - -void -gen8p_gpe_context_unmap_curbe(struct i965_gpe_context *gpe_context) -{ - dri_bo_unmap(gpe_context->dynamic_state.bo); -} - -void -gen9_gpe_reset_binding_table(VADriverContextP ctx, - struct i965_gpe_context *gpe_context) -{ - unsigned int *binding_table; - unsigned int binding_table_offset = gpe_context->surface_state_binding_table.binding_table_offset; - int i; - - dri_bo_map(gpe_context->surface_state_binding_table.bo, 1); - binding_table = (unsigned int*)((char *)gpe_context->surface_state_binding_table.bo->virtual + binding_table_offset); - - for (i = 0; i < gpe_context->surface_state_binding_table.max_entries; i++) { - *(binding_table + i) = gpe_context->surface_state_binding_table.surface_state_offset + i * SURFACE_STATE_PADDED_SIZE_GEN9; - } - - dri_bo_unmap(gpe_context->surface_state_binding_table.bo); -} - -void -gen8_gpe_setup_interface_data(VADriverContextP ctx, - struct i965_gpe_context *gpe_context) -{ - struct gen8_interface_descriptor_data *desc; - int i; - dri_bo *bo; - unsigned char *desc_ptr; - - bo = gpe_context->dynamic_state.bo; - dri_bo_map(bo, 1); - assert(bo->virtual); - desc_ptr = (unsigned char *)bo->virtual + gpe_context->idrt_offset; - desc = (struct gen8_interface_descriptor_data *)desc_ptr; - - for (i = 0; i < gpe_context->num_kernels; i++) { - struct i965_kernel *kernel; - - kernel = &gpe_context->kernels[i]; - assert(sizeof(*desc) == 32); - - /*Setup the descritor table*/ - memset(desc, 0, sizeof(*desc)); - desc->desc0.kernel_start_pointer = kernel->kernel_offset >> 6; - desc->desc3.sampler_count = 0; - desc->desc3.sampler_state_pointer = gpe_context->sampler_offset; - desc->desc4.binding_table_entry_count = 0; - desc->desc4.binding_table_pointer = (gpe_context->surface_state_binding_table.binding_table_offset >> 5); - desc->desc5.constant_urb_entry_read_offset = 0; - desc->desc5.constant_urb_entry_read_length = ALIGN(gpe_context->curbe.length, 32) >> 5; // in registers - - desc++; - } - - dri_bo_unmap(bo); -} - -static void -gen9_gpe_set_surface_tiling(struct gen9_surface_state *ss, unsigned int tiling) -{ - switch (tiling) { - case I915_TILING_NONE: - ss->ss0.tiled_surface = 0; - ss->ss0.tile_walk = 0; - break; - case I915_TILING_X: - ss->ss0.tiled_surface = 1; - ss->ss0.tile_walk = I965_TILEWALK_XMAJOR; - break; - case I915_TILING_Y: - ss->ss0.tiled_surface = 1; - ss->ss0.tile_walk = I965_TILEWALK_YMAJOR; - break; - } -} - -static void -gen9_gpe_set_surface2_tiling(struct gen9_surface_state2 *ss, unsigned int tiling) -{ - switch (tiling) { - case I915_TILING_NONE: - ss->ss2.tiled_surface = 0; - ss->ss2.tile_walk = 0; - break; - case I915_TILING_X: - ss->ss2.tiled_surface = 1; - ss->ss2.tile_walk = I965_TILEWALK_XMAJOR; - break; - case I915_TILING_Y: - ss->ss2.tiled_surface = 1; - ss->ss2.tile_walk = I965_TILEWALK_YMAJOR; - break; - } -} - -static void -gen9_gpe_set_2d_surface_state(struct gen9_surface_state *ss, - unsigned int cacheability_control, - unsigned int format, - unsigned int tiling, - unsigned int width, - unsigned int height, - unsigned int pitch, - uint64_t base_offset, - unsigned int y_offset) -{ - memset(ss, 0, sizeof(*ss)); - - /* Always set 1(align 4 mode) */ - ss->ss0.vertical_alignment = 1; - ss->ss0.horizontal_alignment = 1; - - ss->ss0.surface_format = format; - ss->ss0.surface_type = I965_SURFACE_2D; - - ss->ss1.surface_mocs = cacheability_control; - - ss->ss2.width = width - 1; - ss->ss2.height = height - 1; - - ss->ss3.pitch = pitch - 1; - - ss->ss5.y_offset = y_offset; - - ss->ss7.shader_chanel_select_a = HSW_SCS_ALPHA; - ss->ss7.shader_chanel_select_b = HSW_SCS_BLUE; - ss->ss7.shader_chanel_select_g = HSW_SCS_GREEN; - ss->ss7.shader_chanel_select_r = HSW_SCS_RED; - - ss->ss8.base_addr = (uint32_t)base_offset; - ss->ss9.base_addr_high = (uint32_t)(base_offset >> 32); - - gen9_gpe_set_surface_tiling(ss, tiling); -} - -/* This is only for NV12 format */ -static void -gen9_gpe_set_adv_surface_state(struct gen9_surface_state2 *ss, - unsigned int v_direction, - unsigned int cacheability_control, - unsigned int format, - unsigned int tiling, - unsigned int width, - unsigned int height, - unsigned int pitch, - uint64_t base_offset, - unsigned int y_cb_offset) -{ - memset(ss, 0, sizeof(*ss)); - - ss->ss1.cbcr_pixel_offset_v_direction = v_direction; - ss->ss1.width = width - 1; - ss->ss1.height = height - 1; - - ss->ss2.surface_format = format; - ss->ss2.interleave_chroma = 1; - ss->ss2.pitch = pitch - 1; - - ss->ss3.y_offset_for_cb = y_cb_offset; - - ss->ss5.surface_object_mocs = cacheability_control; - - ss->ss6.base_addr = (uint32_t)base_offset; - ss->ss7.base_addr_high = (uint32_t)(base_offset >> 32); - - gen9_gpe_set_surface2_tiling(ss, tiling); -} - -static void -gen9_gpe_set_buffer2_surface_state(struct gen9_surface_state *ss, - unsigned int cacheability_control, - unsigned int format, - unsigned int size, - unsigned int pitch, - uint64_t base_offset) -{ - memset(ss, 0, sizeof(*ss)); - - ss->ss0.surface_format = format; - ss->ss0.surface_type = I965_SURFACE_BUFFER; - - ss->ss1.surface_mocs = cacheability_control; - - ss->ss2.width = (size - 1) & 0x7F; - ss->ss2.height = ((size - 1) & 0x1FFF80) >> 7; - - ss->ss3.depth = ((size - 1) & 0xFE00000) >> 21; - ss->ss3.pitch = pitch - 1; - - ss->ss7.shader_chanel_select_a = HSW_SCS_ALPHA; - ss->ss7.shader_chanel_select_b = HSW_SCS_BLUE; - ss->ss7.shader_chanel_select_g = HSW_SCS_GREEN; - ss->ss7.shader_chanel_select_r = HSW_SCS_RED; - - ss->ss8.base_addr = (uint32_t)base_offset; - ss->ss9.base_addr_high = (uint32_t)(base_offset >> 32); -} - -void -gen9_gpe_context_add_surface(struct i965_gpe_context *gpe_context, - struct i965_gpe_surface *gpe_surface, - int index) -{ - char *buf; - unsigned int tiling, swizzle, width, height, pitch, tile_alignment, y_offset = 0; - unsigned int surface_state_offset = gpe_context->surface_state_binding_table.surface_state_offset + - index * SURFACE_STATE_PADDED_SIZE_GEN9; - unsigned int binding_table_offset = gpe_context->surface_state_binding_table.binding_table_offset + - index * 4; - struct i965_gpe_resource *gpe_resource = gpe_surface->gpe_resource; - - dri_bo_get_tiling(gpe_resource->bo, &tiling, &swizzle); - - dri_bo_map(gpe_context->surface_state_binding_table.bo, 1); - buf = (char *)gpe_context->surface_state_binding_table.bo->virtual; - *((unsigned int *)(buf + binding_table_offset)) = surface_state_offset; - - if (gpe_surface->is_2d_surface && gpe_surface->is_uv_surface) { - unsigned int cbcr_offset; - struct gen9_surface_state *ss = (struct gen9_surface_state *)(buf + surface_state_offset); - - width = gpe_resource->width; - height = gpe_resource->height / 2; - pitch = gpe_resource->pitch; - - if (gpe_surface->is_media_block_rw) - width = (ALIGN(width, 4) >> 2); - - if (tiling == I915_TILING_Y) { - tile_alignment = 32; - } else if (tiling == I915_TILING_X) { - tile_alignment = 8; - } else - tile_alignment = 1; - - y_offset = (gpe_resource->y_cb_offset % tile_alignment); - cbcr_offset = ALIGN_FLOOR(gpe_resource->y_cb_offset, tile_alignment) * pitch; - - gen9_gpe_set_2d_surface_state(ss, - gpe_surface->cacheability_control, - I965_SURFACEFORMAT_R16_UINT, - tiling, - width, height, pitch, - gpe_resource->bo->offset64 + cbcr_offset, - y_offset); - - dri_bo_emit_reloc(gpe_context->surface_state_binding_table.bo, - I915_GEM_DOMAIN_RENDER, I915_GEM_DOMAIN_RENDER, - cbcr_offset, - surface_state_offset + offsetof(struct gen9_surface_state, ss8), - gpe_resource->bo); - } else if (gpe_surface->is_2d_surface) { - struct gen9_surface_state *ss = (struct gen9_surface_state *)(buf + surface_state_offset); - - width = gpe_resource->width; - height = gpe_resource->height; - pitch = gpe_resource->pitch; - - if (gpe_surface->is_media_block_rw) - width = (ALIGN(width, 4) >> 2); - - gen9_gpe_set_2d_surface_state(ss, - gpe_surface->cacheability_control, - gpe_surface->format, - tiling, - width, height, pitch, - gpe_resource->bo->offset64, - y_offset); - - dri_bo_emit_reloc(gpe_context->surface_state_binding_table.bo, - I915_GEM_DOMAIN_RENDER, I915_GEM_DOMAIN_RENDER, - 0, - surface_state_offset + offsetof(struct gen9_surface_state, ss8), - gpe_resource->bo); - } else if (gpe_surface->is_adv_surface) { - struct gen9_surface_state2 *ss = (struct gen9_surface_state2 *)(buf + surface_state_offset); - - width = gpe_resource->width; - height = gpe_resource->height; - pitch = gpe_resource->pitch; - - gen9_gpe_set_adv_surface_state(ss, - gpe_surface->v_direction, - gpe_surface->cacheability_control, - MFX_SURFACE_PLANAR_420_8, - tiling, - width, height, pitch, - gpe_resource->bo->offset64, - gpe_resource->y_cb_offset); - - dri_bo_emit_reloc(gpe_context->surface_state_binding_table.bo, - I915_GEM_DOMAIN_RENDER, I915_GEM_DOMAIN_RENDER, - 0, - surface_state_offset + offsetof(struct gen9_surface_state2, ss6), - gpe_resource->bo); - } else { - struct gen9_surface_state *ss = (struct gen9_surface_state *)(buf + surface_state_offset); - unsigned int format; - - assert(gpe_surface->is_buffer); - - if (gpe_surface->is_raw_buffer) { - format = I965_SURFACEFORMAT_RAW; - pitch = 1; - } else { - format = I965_SURFACEFORMAT_R32_UINT; - pitch = sizeof(unsigned int); - } - - gen9_gpe_set_buffer2_surface_state(ss, - gpe_surface->cacheability_control, - format, - gpe_surface->size, - pitch, - gpe_resource->bo->offset64 + gpe_surface->offset); - - dri_bo_emit_reloc(gpe_context->surface_state_binding_table.bo, - I915_GEM_DOMAIN_RENDER, I915_GEM_DOMAIN_RENDER, - gpe_surface->offset, - surface_state_offset + offsetof(struct gen9_surface_state, ss8), - gpe_resource->bo); - } - - dri_bo_unmap(gpe_context->surface_state_binding_table.bo); -} - -bool -i965_gpe_allocate_2d_resource(dri_bufmgr *bufmgr, - struct i965_gpe_resource *res, - int width, - int height, - int pitch, - const char *name) -{ - int bo_size; - - if (!res) - return false; - - res->type = I965_GPE_RESOURCE_2D; - res->width = width; - res->height = height; - res->pitch = pitch; - - bo_size = ALIGN(height, 16) * pitch; - res->size = bo_size; - - res->bo = dri_bo_alloc(bufmgr, name, res->size, 4096); - res->map = NULL; - - return true; -} - -void -gen8_gpe_media_state_flush(VADriverContextP ctx, - struct i965_gpe_context *gpe_context, - struct intel_batchbuffer *batch) -{ - BEGIN_BATCH(batch, 2); - - OUT_BATCH(batch, CMD_MEDIA_STATE_FLUSH | (2 - 2)); - OUT_BATCH(batch, 0); - - ADVANCE_BATCH(batch); -} - -void -gen8_gpe_media_object(VADriverContextP ctx, - struct i965_gpe_context *gpe_context, - struct intel_batchbuffer *batch, - struct gpe_media_object_parameter *param) -{ - int batch_size, subdata_size; - - batch_size = 6; - subdata_size = 0; - if (param->pinline_data && param->inline_size) { - subdata_size = ALIGN(param->inline_size, 4); - batch_size += subdata_size / 4; - } - BEGIN_BATCH(batch, batch_size); - OUT_BATCH(batch, CMD_MEDIA_OBJECT | (batch_size - 2)); - OUT_BATCH(batch, param->interface_offset); - OUT_BATCH(batch, param->use_scoreboard << 21); - OUT_BATCH(batch, 0); - OUT_BATCH(batch, (param->scoreboard_y << 16 | - param->scoreboard_x)); - OUT_BATCH(batch, param->scoreboard_mask); - - if (subdata_size) - intel_batchbuffer_data(batch, param->pinline_data, subdata_size); - - ADVANCE_BATCH(batch); -} - -void -gen9_gpe_media_object_walker(VADriverContextP ctx, - struct i965_gpe_context *gpe_context, - struct intel_batchbuffer *batch, - struct gpe_media_object_walker_parameter *param) -{ - int walker_length; - - walker_length = 17; - if (param->inline_size) - walker_length += ALIGN(param->inline_size, 4) / 4; - BEGIN_BATCH(batch, walker_length); - OUT_BATCH(batch, CMD_MEDIA_OBJECT_WALKER | (walker_length - 2)); - OUT_BATCH(batch, param->interface_offset); - OUT_BATCH(batch, param->use_scoreboard << 21); - OUT_BATCH(batch, 0); - OUT_BATCH(batch, 0); - OUT_BATCH(batch, (param->group_id_loop_select << 8 | - param->scoreboard_mask)); // DW5 - OUT_BATCH(batch, (param->color_count_minus1 << 24 | - param->middle_loop_extra_steps << 16 | - param->mid_loop_unit_y << 12 | - param->mid_loop_unit_x << 8)); - OUT_BATCH(batch, ((param->global_loop_exec_count & 0x3ff) << 16 | - (param->local_loop_exec_count & 0x3ff))); - OUT_BATCH(batch, param->block_resolution.value); - OUT_BATCH(batch, param->local_start.value); - OUT_BATCH(batch, 0); // DW10 - OUT_BATCH(batch, param->local_outer_loop_stride.value); - OUT_BATCH(batch, param->local_inner_loop_unit.value); - OUT_BATCH(batch, param->global_resolution.value); - OUT_BATCH(batch, param->global_start.value); - OUT_BATCH(batch, param->global_outer_loop_stride.value); - OUT_BATCH(batch, param->global_inner_loop_unit.value); - - if (param->pinline_data && param->inline_size) - intel_batchbuffer_data(batch, param->pinline_data, ALIGN(param->inline_size, 4)); - - ADVANCE_BATCH(batch); -} diff -Nru intel-vaapi-driver-1.7.1/src/i965_gpe_utils.h intel-vaapi-driver-1.7.0/src/i965_gpe_utils.h --- intel-vaapi-driver-1.7.1/src/i965_gpe_utils.h 2016-06-16 00:57:46.000000000 +0000 +++ intel-vaapi-driver-1.7.0/src/i965_gpe_utils.h 2016-03-15 06:40:58.000000000 +0000 @@ -44,43 +44,11 @@ unsigned int pitch; }; -enum { - I965_GPE_RESOURCE_BUFFER = 0, - I965_GPE_RESOURCE_2D -}; - -struct i965_gpe_resource -{ - dri_bo *bo; - char *map; - uint32_t type; - uint32_t width; - uint32_t height; - uint32_t pitch; - uint32_t size; - uint32_t tiling; - uint32_t cb_cr_pitch; - uint32_t x_cb_offset; - uint32_t y_cb_offset; -}; - -struct gpe_dynamic_state_parameter -{ - dri_bo *bo; - int bo_size; - unsigned int curbe_offset; - unsigned int idrt_offset; - unsigned int sampler_offset; -}; - struct i965_gpe_context { struct { dri_bo *bo; unsigned int length; /* in bytes */ - unsigned int max_entries; - unsigned int binding_table_offset; - unsigned int surface_state_offset; } surface_state_binding_table; struct { @@ -164,7 +132,6 @@ } dynamic_state; unsigned int sampler_offset; - int sampler_entries; int sampler_size; unsigned int idrt_offset; int idrt_size; @@ -172,72 +139,6 @@ int curbe_size; }; -struct gpe_mi_flush_dw_parameter -{ - dri_bo *bo; - unsigned int offset; - unsigned int video_pipeline_cache_invalidate; - unsigned int dw0; - unsigned int dw1; -}; - -struct gpe_mi_store_data_imm_parameter -{ - dri_bo *bo; - unsigned int is_qword; - unsigned int offset; - unsigned int dw0; - unsigned int dw1; -}; - -struct gpe_mi_store_register_mem_parameter -{ - dri_bo *bo; - unsigned int offset; - unsigned int mmio_offset; -}; - -struct gpe_mi_load_register_mem_parameter -{ - dri_bo *bo; - unsigned int offset; - unsigned int mmio_offset; -}; - -struct gpe_mi_load_register_imm_parameter -{ - unsigned int data; - unsigned int mmio_offset; -}; - -struct gpe_mi_load_register_reg_parameter -{ - unsigned int src_mmio_offset; - unsigned int dst_mmio_offset; -}; - -struct gpe_mi_math_parameter -{ - unsigned int num_instructions; - unsigned int *instruction_list; -}; - -struct gpe_mi_conditional_batch_buffer_end_parameter -{ - dri_bo *bo; - unsigned int offset; - unsigned int compare_mask_mode_disabled; - unsigned int compare_data; -}; - -struct gpe_mi_batch_buffer_start_parameter -{ - dri_bo *bo; - unsigned int offset; - unsigned int is_second_level; - unsigned int use_global_gtt; -}; - void i965_gpe_context_destroy(struct i965_gpe_context *gpe_context); void i965_gpe_context_init(VADriverContextP ctx, struct i965_gpe_context *gpe_context); @@ -308,10 +209,6 @@ void gen8_gpe_pipeline_setup(VADriverContextP ctx, struct i965_gpe_context *gpe_context, struct intel_batchbuffer *batch); -extern void -gen8_gpe_context_set_dynamic_buffer(VADriverContextP ctx, - struct i965_gpe_context *gpe_context, - struct gpe_dynamic_state_parameter *ds); void gen8_gpe_context_destroy(struct i965_gpe_context *gpe_context); @@ -331,175 +228,4 @@ struct i965_gpe_context *gpe_context, struct intel_batchbuffer *batch); -Bool i965_allocate_gpe_resource(dri_bufmgr *bufmgr, - struct i965_gpe_resource *res, - int size, - const char *name); - -void i965_object_surface_to_2d_gpe_resource(struct i965_gpe_resource *res, - struct object_surface *obj_surface); - -void i965_dri_object_to_buffer_gpe_resource(struct i965_gpe_resource *res, - dri_bo *bo); - -void i965_gpe_dri_object_to_2d_gpe_resource(struct i965_gpe_resource *res, - dri_bo *bo, - unsigned int width, - unsigned int height, - unsigned int pitch); - -void i965_zero_gpe_resource(struct i965_gpe_resource *res); - -void i965_free_gpe_resource(struct i965_gpe_resource *res); - -void *i965_map_gpe_resource(struct i965_gpe_resource *res); - -void i965_unmap_gpe_resource(struct i965_gpe_resource *res); - -void gen9_gpe_mi_flush_dw(VADriverContextP ctx, - struct intel_batchbuffer *batch, - struct gpe_mi_flush_dw_parameter *params); - -void gen9_gpe_mi_store_data_imm(VADriverContextP ctx, - struct intel_batchbuffer *batch, - struct gpe_mi_store_data_imm_parameter *params); - -void gen9_gpe_mi_store_register_mem(VADriverContextP ctx, - struct intel_batchbuffer *batch, - struct gpe_mi_store_register_mem_parameter *params); - -void gen9_gpe_mi_load_register_mem(VADriverContextP ctx, - struct intel_batchbuffer *batch, - struct gpe_mi_load_register_mem_parameter *params); - -void gen9_gpe_mi_load_register_imm(VADriverContextP ctx, - struct intel_batchbuffer *batch, - struct gpe_mi_load_register_imm_parameter *params); - -void gen9_gpe_mi_load_register_reg(VADriverContextP ctx, - struct intel_batchbuffer *batch, - struct gpe_mi_load_register_reg_parameter *params); - -void gen9_gpe_mi_math(VADriverContextP ctx, - struct intel_batchbuffer *batch, - struct gpe_mi_math_parameter *params); - -void gen9_gpe_mi_conditional_batch_buffer_end(VADriverContextP ctx, - struct intel_batchbuffer *batch, - struct gpe_mi_conditional_batch_buffer_end_parameter *params); - -void gen9_gpe_mi_batch_buffer_start(VADriverContextP ctx, - struct intel_batchbuffer *batch, - struct gpe_mi_batch_buffer_start_parameter *params); - - -struct gpe_media_object_parameter -{ - unsigned int use_scoreboard; - unsigned int scoreboard_x; - unsigned int scoreboard_y; - unsigned int scoreboard_mask; - unsigned int interface_offset; - void *pinline_data; - unsigned int inline_size; -}; - -struct i965_gpe_surface -{ - unsigned int is_buffer:1; - unsigned int is_2d_surface:1; - unsigned int is_adv_surface:1; - unsigned int is_uv_surface:1; - unsigned int is_media_block_rw:1; - unsigned int is_raw_buffer:1; - - unsigned int vert_line_stride_offset; - unsigned int vert_line_stride; - unsigned int cacheability_control; - unsigned int format; // 2d surface only - unsigned int v_direction; // adv surface only - unsigned int size; // buffer only - unsigned int offset; // buffer only - - struct i965_gpe_resource *gpe_resource; -}; - -extern void -gen9_gpe_reset_binding_table(VADriverContextP ctx, - struct i965_gpe_context *gpe_context); -extern -void *gen8p_gpe_context_map_curbe(struct i965_gpe_context *gpe_context); - -extern -void gen8p_gpe_context_unmap_curbe(struct i965_gpe_context *gpe_context); - -extern -void gen8_gpe_setup_interface_data(VADriverContextP ctx, - struct i965_gpe_context *gpe_context); -extern void -gen9_gpe_context_add_surface(struct i965_gpe_context *gpe_context, - struct i965_gpe_surface *gpe_surface, - int index); - -extern bool -i965_gpe_allocate_2d_resource(dri_bufmgr *bufmgr, - struct i965_gpe_resource *res, - int width, - int height, - int pitch, - const char *name); - -struct gpe_walker_xy -{ - union { - struct { - unsigned int x:16; - unsigned int y:16; - }; - unsigned int value; - }; -}; - -struct gpe_media_object_walker_parameter -{ - void *pinline_data; - unsigned int inline_size; - unsigned int interface_offset; - unsigned int use_scoreboard; - unsigned int scoreboard_mask; - unsigned int group_id_loop_select; - unsigned int color_count_minus1; - unsigned int mid_loop_unit_x; - unsigned int mid_loop_unit_y; - unsigned int middle_loop_extra_steps; - unsigned int local_loop_exec_count; - unsigned int global_loop_exec_count; - struct gpe_walker_xy block_resolution; - struct gpe_walker_xy local_start; - struct gpe_walker_xy local_end; - struct gpe_walker_xy local_outer_loop_stride; - struct gpe_walker_xy local_inner_loop_unit; - struct gpe_walker_xy global_resolution; - struct gpe_walker_xy global_start; - struct gpe_walker_xy global_outer_loop_stride; - struct gpe_walker_xy global_inner_loop_unit; -}; - -extern void -gen8_gpe_media_object(VADriverContextP ctx, - struct i965_gpe_context *gpe_context, - struct intel_batchbuffer *batch, - struct gpe_media_object_parameter *param); - -extern void -gen8_gpe_media_state_flush(VADriverContextP ctx, - struct i965_gpe_context *gpe_context, - struct intel_batchbuffer *batch); - -extern void -gen9_gpe_media_object_walker(VADriverContextP ctx, - struct i965_gpe_context *gpe_context, - struct intel_batchbuffer *batch, - struct gpe_media_object_walker_parameter *param); - #endif /* _I965_GPE_UTILS_H_ */ diff -Nru intel-vaapi-driver-1.7.1/src/i965_structs.h intel-vaapi-driver-1.7.0/src/i965_structs.h --- intel-vaapi-driver-1.7.1/src/i965_structs.h 2016-06-16 00:57:46.000000000 +0000 +++ intel-vaapi-driver-1.7.0/src/i965_structs.h 2016-03-03 01:38:40.000000000 +0000 @@ -2201,155 +2201,6 @@ struct gen8_sampler_8x8_avs_coefficients coefficients1[15]; }; -struct gen9_sampler_8x8_avs -{ - struct { - unsigned int gain_factor:6; - unsigned int weak_edge_threshold:6; - unsigned int strong_edge_threshold:6; - unsigned int r3x_coefficient:5; - unsigned int r3c_coefficient:5; - unsigned int pad1:4; - } dw0; - - struct { - unsigned int pad0; - } dw1; - - struct { - unsigned int global_noise_estimation:8; - unsigned int non_edge_weight:3; - unsigned int regular_weight:3; - unsigned int strong_edge_weight:3; - unsigned int r5x_coefficient:5; - unsigned int r5cx_coefficient:5; - unsigned int r5c_coefficient:5; - } dw2; - - struct { - unsigned int sin_alpha:8; /* S0.7 */ - unsigned int cos_alpha:8; /* S0.7 */ - unsigned int sat_max:6; - unsigned int hue_max:6; - unsigned int enable_8tap_adaptive_filter:2; - unsigned int ief4_smooth_enable:1; - unsigned int skin_ief_enable:1; - } dw3; - - struct { - unsigned int s3u:11; /* S2.8 */ - unsigned int shuffle_output_write_back:1; - unsigned int diamond_margin:3; - unsigned int vy_std_enable:1; - unsigned int umid:8; - unsigned int vmid:8; - } dw4; - - struct { - unsigned int diamond_dv:7; - unsigned int diamond_th:6; - unsigned int diamond_alpha:8; - unsigned int hs_margin:3; - unsigned int diamond_du:7; - unsigned int skin_detailfilter:1; - } dw5; - - struct { - unsigned int y_point1:8; - unsigned int y_point2:8; - unsigned int y_point3:8; - unsigned int y_point4:8; - } dw6; - - struct { - unsigned int inv_margin_vyl:16; - unsigned int pad0:16; - } dw7; - - struct { - unsigned int inv_margin_vyu:16; - unsigned int p0l:8; - unsigned int p1l:8; - } dw8; - - struct { - unsigned int p2l:8; - unsigned int p3l:8; - unsigned int b0l:8; - unsigned int b1l:8; - } dw9; - - struct { - unsigned int b2l:8; - unsigned int b3l:8; - unsigned int s0l:11; - unsigned int y_slope2:5; - } dw10; - - struct { - unsigned int s1l:11; - unsigned int s2l:11; - unsigned int pad0:10; - } dw11; - - struct { - unsigned int s3l:11; - unsigned int p0u:8; - unsigned int p1u:8; - unsigned int y_slope1:5; - } dw12; - - struct { - unsigned int p2u:8; - unsigned int p3u:8; - unsigned int b0u:8; - unsigned int b1u:8; - } dw13; - - struct { - unsigned int b2u:8; - unsigned int b3u:8; - unsigned int s0u:11; - unsigned int pad0:5; - } dw14; - - struct { - unsigned int s1u:11; - unsigned int s2u:11; - unsigned int pad0:10; - } dw15; - - /* DW16-DW151 for 17 coeff tabls */ - struct gen8_sampler_8x8_avs_coefficients coefficients[17]; - - struct { - unsigned int transition_area_with_8_pixels:3; - unsigned int pad0:1; - unsigned int transition_area_with_4_pixels:3; - unsigned int pad1:1; - unsigned int max_derivative_8_pixels:8; - unsigned int max_derivative_4_pixels:8; - unsigned int default_sharpness_level:8; - } dw152; - - struct { - unsigned int rgb_adaptive:1; - unsigned int adaptive_filter_for_all_channel:1; - unsigned int pad0:19; - unsigned int bypass_y_adaptive_filtering:1; - unsigned int bypass_x_adaptive_filtering:1; - unsigned int pad1:9; - } dw153; - - unsigned int reserved1[6]; - - /* 160-279 for 17..31 avs_coeff */ - struct gen8_sampler_8x8_avs_coefficients extra_coefficients[15]; - - // 280 - 511 (padding to align it to 512 dwords) - unsigned int reserved2[232]; -}; - #define SURFACE_STATE_PADDED_SIZE_0_GEN7 ALIGN(sizeof(struct gen7_surface_state), 32) #define SURFACE_STATE_PADDED_SIZE_1_GEN7 ALIGN(sizeof(struct gen7_surface_state2), 32) #define SURFACE_STATE_PADDED_SIZE_GEN7 MAX(SURFACE_STATE_PADDED_SIZE_0_GEN7, SURFACE_STATE_PADDED_SIZE_1_GEN7) diff -Nru intel-vaapi-driver-1.7.1/src/intel_batchbuffer.h intel-vaapi-driver-1.7.0/src/intel_batchbuffer.h --- intel-vaapi-driver-1.7.1/src/intel_batchbuffer.h 2016-06-16 00:57:46.000000000 +0000 +++ intel-vaapi-driver-1.7.0/src/intel_batchbuffer.h 2016-03-15 06:40:58.000000000 +0000 @@ -110,8 +110,6 @@ __OUT_RELOC(batch, bo, read_domains, write_domain, delta) #define OUT_RELOC64(batch, bo, read_domains, write_domain, delta) \ __OUT_RELOC64(batch, bo, read_domains, write_domain, delta) -#define OUT_BCS_RELOC64(batch, bo, read_domains, write_domain, delta) \ - __OUT_RELOC64(batch, bo, read_domains, write_domain, delta) #define ADVANCE_BATCH(batch) __ADVANCE_BATCH(batch) #define ADVANCE_BLT_BATCH(batch) __ADVANCE_BATCH(batch) diff -Nru intel-vaapi-driver-1.7.1/src/intel_driver.h intel-vaapi-driver-1.7.0/src/intel_driver.h --- intel-vaapi-driver-1.7.1/src/intel_driver.h 2016-06-16 00:57:46.000000000 +0000 +++ intel-vaapi-driver-1.7.0/src/intel_driver.h 2016-03-15 06:40:58.000000000 +0000 @@ -31,26 +31,7 @@ #define MI_FLUSH_STATE_INSTRUCTION_CACHE_INVALIDATE (0x1 << 0) #define MI_FLUSH_DW (CMD_MI | (0x26 << 23) | 0x2) -#define MI_FLUSH_DW2 (CMD_MI | (0x26 << 23) | 0x3) #define MI_FLUSH_DW_VIDEO_PIPELINE_CACHE_INVALIDATE (0x1 << 7) -#define MI_FLUSH_DW_NOWRITE (0 << 14) -#define MI_FLUSH_DW_WRITE_QWORD (1 << 14) -#define MI_FLUSH_DW_WRITE_TIME (3 << 14) - -#define MI_STORE_DATA_IMM (CMD_MI | (0x20 << 23)) - -#define MI_STORE_REGISTER_MEM (CMD_MI | (0x24 << 23)) - -#define MI_LOAD_REGISTER_IMM (CMD_MI | (0x22 << 23)) - -#define MI_LOAD_REGISTER_MEM (CMD_MI | (0x29 << 23)) - -#define MI_LOAD_REGISTER_REG (CMD_MI | (0x2A << 23)) - -#define MI_MATH (CMD_MI | (0x1A << 23)) - -#define MI_CONDITIONAL_BATCH_BUFFER_END (CMD_MI | (0x36 << 23)) -#define MI_COMPARE_MASK_MODE_ENANBLED (1 << 19) #define XY_COLOR_BLT_CMD (CMD_2D | (0x50 << 22) | 0x04) #define XY_COLOR_BLT_WRITE_ALPHA (1 << 21) @@ -92,8 +73,6 @@ #define ARRAY_ELEMS(a) (sizeof(a) / sizeof((a)[0])) #define CLAMP(min, max, a) ((a) < (min) ? (min) : ((a) > (max) ? (max) : (a))) -#define ALIGN_FLOOR(i, n) ((i) & ~((n) - 1)) - #define Bool int #define True 1 #define False 0 @@ -157,7 +136,6 @@ unsigned int is_baytrail : 1; /* gen7 */ unsigned int is_haswell : 1; /* gen7 */ unsigned int is_cherryview : 1; /* gen8 */ - unsigned int is_skylake : 1; /* gen9 */ unsigned int is_broxton : 1; /* gen9 */ unsigned int is_kabylake : 1; /* gen9p5 */ }; @@ -221,10 +199,6 @@ #define IS_GEN9(device_info) (device_info->gen == 9) -#define IS_SKL(device_info) (device_info->is_skylake) - -#define IS_BXT(device_info) (device_info->is_broxton) - #define IS_KBL(device_info) (device_info->is_kabylake) #endif /* _INTEL_DRIVER_H_ */ diff -Nru intel-vaapi-driver-1.7.1/src/intel_media_common.c intel-vaapi-driver-1.7.0/src/intel_media_common.c --- intel-vaapi-driver-1.7.1/src/intel_media_common.c 2016-06-16 00:57:46.000000000 +0000 +++ intel-vaapi-driver-1.7.0/src/intel_media_common.c 2016-03-15 06:40:58.000000000 +0000 @@ -128,36 +128,3 @@ pthread_mutex_unlock(&free_vp9_surface_lock); } - -extern VAStatus -i965_DestroySurfaces(VADriverContextP ctx, - VASurfaceID *surface_list, - int num_surfaces); - -static pthread_mutex_t free_vdenc_avc_surface_lock = PTHREAD_MUTEX_INITIALIZER; - -void -vdenc_free_avc_surface(void **data) -{ - VDEncAvcSurface *avc_surface; - - pthread_mutex_lock(&free_vdenc_avc_surface_lock); - - avc_surface = *data; - - if (!avc_surface) { - pthread_mutex_unlock(&free_vdenc_avc_surface_lock); - return; - } - - if (avc_surface->scaled_4x_surface_obj) { - i965_DestroySurfaces(avc_surface->ctx, &avc_surface->scaled_4x_surface_id, 1); - avc_surface->scaled_4x_surface_id = VA_INVALID_SURFACE; - avc_surface->scaled_4x_surface_obj = NULL; - } - - free(avc_surface); - *data = NULL; - - pthread_mutex_unlock(&free_vdenc_avc_surface_lock); -} diff -Nru intel-vaapi-driver-1.7.1/src/intel_media.h intel-vaapi-driver-1.7.0/src/intel_media.h --- intel-vaapi-driver-1.7.1/src/intel_media.h 2016-06-16 00:57:46.000000000 +0000 +++ intel-vaapi-driver-1.7.0/src/intel_media.h 2016-03-15 06:40:58.000000000 +0000 @@ -68,18 +68,8 @@ dri_bo *motion_vector_temporal_bo; }; -typedef struct vdenc_avc_surface VDEncAvcSurface; -struct vdenc_avc_surface -{ - VADriverContextP ctx; - VASurfaceID scaled_4x_surface_id; - struct object_surface *scaled_4x_surface_obj; -}; - extern void gen_free_hevc_surface(void **data); extern void gen_free_vp9_surface(void **data); -extern void vdenc_free_avc_surface(void **data); - #endif /* INTEL_MEDIA_H */ diff -Nru intel-vaapi-driver-1.7.1/src/intel_version.h intel-vaapi-driver-1.7.0/src/intel_version.h --- intel-vaapi-driver-1.7.1/src/intel_version.h 2016-06-21 02:07:56.000000000 +0000 +++ intel-vaapi-driver-1.7.0/src/intel_version.h 2016-03-15 06:48:57.000000000 +0000 @@ -31,6 +31,6 @@ * The full version identifier of libva-intel-driver, from a git * repository, in string form (suitable for string concatenation). */ -#define INTEL_DRIVER_GIT_VERSION "1.7.1" +#define INTEL_DRIVER_GIT_VERSION "1.7.0" #endif /* INTEL_VERSION_H */ diff -Nru intel-vaapi-driver-1.7.1/src/Makefile.am intel-vaapi-driver-1.7.0/src/Makefile.am --- intel-vaapi-driver-1.7.1/src/Makefile.am 2016-06-17 01:06:24.000000000 +0000 +++ intel-vaapi-driver-1.7.0/src/Makefile.am 2016-03-15 06:40:58.000000000 +0000 @@ -66,7 +66,6 @@ gen9_mfc.c \ gen9_mfc_hevc.c \ gen9_mfd.c \ - gen9_vdenc.c \ gen75_picture_process.c \ gen75_vme.c \ gen75_vpp_gpe.c \ @@ -97,10 +96,6 @@ intel_memman.c \ object_heap.c \ intel_media_common.c \ - vp9_probs.c \ - gen9_vp9_encoder_kernels.c \ - gen9_vp9_const_def.c \ - gen9_vp9_encoder.c \ $(NULL) source_h = \ @@ -115,7 +110,6 @@ gen8_post_processing.h \ gen9_mfd.h \ gen9_mfc.h \ - gen9_vdenc.h \ i965_avc_bsd.h \ i965_avc_hw_scoreboard.h\ i965_avc_ildb.h \ @@ -149,10 +143,6 @@ sysdeps.h \ va_backend_compat.h \ i965_fourcc.h \ - gen9_vp9_encoder.h \ - gen9_vp9_encapi.h \ - gen9_vp9_const_def.h \ - gen9_vp9_encoder_kernels.h \ $(NULL) i965_drv_video_la_LTLIBRARIES = i965_drv_video.la @@ -209,12 +199,9 @@ # Wayland protocol protocol_source_h = wayland-drm-client-protocol.h i965_output_wayland.c: $(protocol_source_h) -%-client-protocol.h : %.xml - $(AM_V_GEN)$(WAYLAND_SCANNER) client-header < $< > $@ +@wayland_scanner_rules@ -EXTRA_DIST += \ - wayland-drm.xml \ - $(NULL) +DIST_SUBDIRS += wayland # Extra clean files so that maintainer-clean removes *everything* MAINTAINERCLEANFILES = Makefile.in config.h.in diff -Nru intel-vaapi-driver-1.7.1/src/Makefile.in intel-vaapi-driver-1.7.0/src/Makefile.in --- intel-vaapi-driver-1.7.1/src/Makefile.in 2016-06-21 02:07:53.000000000 +0000 +++ intel-vaapi-driver-1.7.0/src/Makefile.in 2016-03-15 06:42:44.000000000 +0000 @@ -155,18 +155,17 @@ gen6_mfc_common.c gen6_mfd.c gen6_vme.c gen7_vme.c gen7_mfc.c \ gen7_mfd.c gen75_mfd.c gen75_mfc.c gen8_mfc.c gen8_mfd.c \ gen8_vme.c gen9_vme.c gen9_mfc.c gen9_mfc_hevc.c gen9_mfd.c \ - gen9_vdenc.c gen75_picture_process.c gen75_vme.c \ - gen75_vpp_gpe.c gen75_vpp_vebox.c gen9_post_processing.c \ - i965_avc_bsd.c i965_avc_hw_scoreboard.c i965_avc_ildb.c \ - i965_decoder_utils.c i965_device_info.c i965_drv_video.c \ - i965_encoder.c i965_encoder_utils.c i965_media.c \ - i965_media_h264.c i965_media_mpeg2.c i965_gpe_utils.c \ - i965_post_processing.c i965_yuv_coefs.c gen8_post_processing.c \ - i965_render.c i965_vpp_avs.c gen8_render.c gen9_render.c \ - intel_batchbuffer.c intel_batchbuffer_dump.c intel_driver.c \ - intel_memman.c object_heap.c intel_media_common.c vp9_probs.c \ - gen9_vp9_encoder_kernels.c gen9_vp9_const_def.c \ - gen9_vp9_encoder.c i965_output_dri.c i965_output_wayland.c + gen75_picture_process.c gen75_vme.c gen75_vpp_gpe.c \ + gen75_vpp_vebox.c gen9_post_processing.c i965_avc_bsd.c \ + i965_avc_hw_scoreboard.c i965_avc_ildb.c i965_decoder_utils.c \ + i965_device_info.c i965_drv_video.c i965_encoder.c \ + i965_encoder_utils.c i965_media.c i965_media_h264.c \ + i965_media_mpeg2.c i965_gpe_utils.c i965_post_processing.c \ + i965_yuv_coefs.c gen8_post_processing.c i965_render.c \ + i965_vpp_avs.c gen8_render.c gen9_render.c intel_batchbuffer.c \ + intel_batchbuffer_dump.c intel_driver.c intel_memman.c \ + object_heap.c intel_media_common.c i965_output_dri.c \ + i965_output_wayland.c @USE_X11_TRUE@am__objects_1 = i965_drv_video_la-i965_output_dri.lo @USE_WAYLAND_TRUE@am__objects_2 = \ @USE_WAYLAND_TRUE@ i965_drv_video_la-i965_output_wayland.lo @@ -180,7 +179,7 @@ i965_drv_video_la-gen8_mfd.lo i965_drv_video_la-gen8_vme.lo \ i965_drv_video_la-gen9_vme.lo i965_drv_video_la-gen9_mfc.lo \ i965_drv_video_la-gen9_mfc_hevc.lo \ - i965_drv_video_la-gen9_mfd.lo i965_drv_video_la-gen9_vdenc.lo \ + i965_drv_video_la-gen9_mfd.lo \ i965_drv_video_la-gen75_picture_process.lo \ i965_drv_video_la-gen75_vme.lo \ i965_drv_video_la-gen75_vpp_gpe.lo \ @@ -210,11 +209,7 @@ i965_drv_video_la-intel_driver.lo \ i965_drv_video_la-intel_memman.lo \ i965_drv_video_la-object_heap.lo \ - i965_drv_video_la-intel_media_common.lo \ - i965_drv_video_la-vp9_probs.lo \ - i965_drv_video_la-gen9_vp9_encoder_kernels.lo \ - i965_drv_video_la-gen9_vp9_const_def.lo \ - i965_drv_video_la-gen9_vp9_encoder.lo $(am__objects_1) \ + i965_drv_video_la-intel_media_common.lo $(am__objects_1) \ $(am__objects_2) am_i965_drv_video_la_OBJECTS = $(am__objects_3) i965_drv_video_la_OBJECTS = $(am_i965_drv_video_la_OBJECTS) @@ -278,20 +273,18 @@ am__noinst_HEADERS_DIST = dso_utils.h gen6_mfc.h gen6_mfd.h gen6_vme.h \ gen7_mfd.h gen75_picture_process.h gen75_vpp_gpe.h \ gen75_vpp_vebox.h gen8_post_processing.h gen9_mfd.h gen9_mfc.h \ - gen9_vdenc.h i965_avc_bsd.h i965_avc_hw_scoreboard.h \ - i965_avc_ildb.h i965_decoder.h i965_decoder_utils.h \ - i965_defines.h i965_drv_video.h i965_encoder.h \ - i965_encoder_utils.h i965_media.h i965_media_h264.h \ - i965_media_mpeg2.h i965_mutext.h i965_gpe_utils.h \ - i965_pciids.h i965_post_processing.h i965_render.h \ - i965_structs.h i965_vpp_avs.h i965_yuv_coefs.h \ - intel_batchbuffer.h intel_batchbuffer_dump.h intel_compiler.h \ - intel_driver.h intel_media.h intel_memman.h intel_version.h \ - object_heap.h vp8_probs.h vp9_probs.h sysdeps.h \ - va_backend_compat.h i965_fourcc.h gen9_vp9_encoder.h \ - gen9_vp9_encapi.h gen9_vp9_const_def.h \ - gen9_vp9_encoder_kernels.h i965_output_dri.h \ - i965_output_wayland.h wayland-drm-client-protocol.h + i965_avc_bsd.h i965_avc_hw_scoreboard.h i965_avc_ildb.h \ + i965_decoder.h i965_decoder_utils.h i965_defines.h \ + i965_drv_video.h i965_encoder.h i965_encoder_utils.h \ + i965_media.h i965_media_h264.h i965_media_mpeg2.h \ + i965_mutext.h i965_gpe_utils.h i965_pciids.h \ + i965_post_processing.h i965_render.h i965_structs.h \ + i965_vpp_avs.h i965_yuv_coefs.h intel_batchbuffer.h \ + intel_batchbuffer_dump.h intel_compiler.h intel_driver.h \ + intel_media.h intel_memman.h intel_version.h object_heap.h \ + vp8_probs.h vp9_probs.h sysdeps.h va_backend_compat.h \ + i965_fourcc.h i965_output_dri.h i965_output_wayland.h \ + wayland-drm-client-protocol.h HEADERS = $(noinst_HEADERS) RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive @@ -433,7 +426,10 @@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ -WAYLAND_SCANNER = @WAYLAND_SCANNER@ +WAYLAND_CFLAGS = @WAYLAND_CFLAGS@ +WAYLAND_LIBS = @WAYLAND_LIBS@ +WAYLAND_SCANNER_CFLAGS = @WAYLAND_SCANNER_CFLAGS@ +WAYLAND_SCANNER_LIBS = @WAYLAND_SCANNER_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ @@ -486,10 +482,11 @@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ +wayland_protocoldir = @wayland_protocoldir@ +wayland_scanner = @wayland_scanner@ SUBDIRS = shaders -DIST_SUBDIRS = $(SUBDIRS) -EXTRA_DIST = Android.mk intel_version.h.in $(PKG_VERSION_FILE) \ - wayland-drm.xml $(NULL) +DIST_SUBDIRS = $(SUBDIRS) wayland +EXTRA_DIST = Android.mk intel_version.h.in $(PKG_VERSION_FILE) BUILT_SOURCES = intel_version.h AM_CPPFLAGS = \ -DPTHREADS \ @@ -513,35 +510,32 @@ source_c = dso_utils.c gen6_mfc.c gen6_mfc_common.c gen6_mfd.c \ gen6_vme.c gen7_vme.c gen7_mfc.c gen7_mfd.c gen75_mfd.c \ gen75_mfc.c gen8_mfc.c gen8_mfd.c gen8_vme.c gen9_vme.c \ - gen9_mfc.c gen9_mfc_hevc.c gen9_mfd.c gen9_vdenc.c \ - gen75_picture_process.c gen75_vme.c gen75_vpp_gpe.c \ - gen75_vpp_vebox.c gen9_post_processing.c i965_avc_bsd.c \ - i965_avc_hw_scoreboard.c i965_avc_ildb.c i965_decoder_utils.c \ - i965_device_info.c i965_drv_video.c i965_encoder.c \ - i965_encoder_utils.c i965_media.c i965_media_h264.c \ - i965_media_mpeg2.c i965_gpe_utils.c i965_post_processing.c \ - i965_yuv_coefs.c gen8_post_processing.c i965_render.c \ - i965_vpp_avs.c gen8_render.c gen9_render.c intel_batchbuffer.c \ + gen9_mfc.c gen9_mfc_hevc.c gen9_mfd.c gen75_picture_process.c \ + gen75_vme.c gen75_vpp_gpe.c gen75_vpp_vebox.c \ + gen9_post_processing.c i965_avc_bsd.c i965_avc_hw_scoreboard.c \ + i965_avc_ildb.c i965_decoder_utils.c i965_device_info.c \ + i965_drv_video.c i965_encoder.c i965_encoder_utils.c \ + i965_media.c i965_media_h264.c i965_media_mpeg2.c \ + i965_gpe_utils.c i965_post_processing.c i965_yuv_coefs.c \ + gen8_post_processing.c i965_render.c i965_vpp_avs.c \ + gen8_render.c gen9_render.c intel_batchbuffer.c \ intel_batchbuffer_dump.c intel_driver.c intel_memman.c \ - object_heap.c intel_media_common.c vp9_probs.c \ - gen9_vp9_encoder_kernels.c gen9_vp9_const_def.c \ - gen9_vp9_encoder.c $(NULL) $(am__append_1) $(am__append_3) + object_heap.c intel_media_common.c $(NULL) $(am__append_1) \ + $(am__append_3) source_h = dso_utils.h gen6_mfc.h gen6_mfd.h gen6_vme.h gen7_mfd.h \ gen75_picture_process.h gen75_vpp_gpe.h gen75_vpp_vebox.h \ - gen8_post_processing.h gen9_mfd.h gen9_mfc.h gen9_vdenc.h \ - i965_avc_bsd.h i965_avc_hw_scoreboard.h i965_avc_ildb.h \ - i965_decoder.h i965_decoder_utils.h i965_defines.h \ - i965_drv_video.h i965_encoder.h i965_encoder_utils.h \ - i965_media.h i965_media_h264.h i965_media_mpeg2.h \ - i965_mutext.h i965_gpe_utils.h i965_pciids.h \ - i965_post_processing.h i965_render.h i965_structs.h \ - i965_vpp_avs.h i965_yuv_coefs.h intel_batchbuffer.h \ - intel_batchbuffer_dump.h intel_compiler.h intel_driver.h \ - intel_media.h intel_memman.h intel_version.h object_heap.h \ - vp8_probs.h vp9_probs.h sysdeps.h va_backend_compat.h \ - i965_fourcc.h gen9_vp9_encoder.h gen9_vp9_encapi.h \ - gen9_vp9_const_def.h gen9_vp9_encoder_kernels.h $(NULL) \ - $(am__append_2) $(am__append_4) + gen8_post_processing.h gen9_mfd.h gen9_mfc.h i965_avc_bsd.h \ + i965_avc_hw_scoreboard.h i965_avc_ildb.h i965_decoder.h \ + i965_decoder_utils.h i965_defines.h i965_drv_video.h \ + i965_encoder.h i965_encoder_utils.h i965_media.h \ + i965_media_h264.h i965_media_mpeg2.h i965_mutext.h \ + i965_gpe_utils.h i965_pciids.h i965_post_processing.h \ + i965_render.h i965_structs.h i965_vpp_avs.h i965_yuv_coefs.h \ + intel_batchbuffer.h intel_batchbuffer_dump.h intel_compiler.h \ + intel_driver.h intel_media.h intel_memman.h intel_version.h \ + object_heap.h vp8_probs.h vp9_probs.h sysdeps.h \ + va_backend_compat.h i965_fourcc.h $(NULL) $(am__append_2) \ + $(am__append_4) i965_drv_video_la_LTLIBRARIES = i965_drv_video.la i965_drv_video_ladir = $(LIBVA_DRIVERS_PATH) i965_drv_video_la_CFLAGS = $(driver_cflags) @@ -575,9 +569,9 @@ exit 1;; \ esac; \ done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/Makefile'; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/Makefile'; \ $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --foreign src/Makefile + $(AUTOMAKE) --gnu src/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ @@ -680,11 +674,7 @@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/i965_drv_video_la-gen9_mfd.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/i965_drv_video_la-gen9_post_processing.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/i965_drv_video_la-gen9_render.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/i965_drv_video_la-gen9_vdenc.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/i965_drv_video_la-gen9_vme.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/i965_drv_video_la-gen9_vp9_const_def.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/i965_drv_video_la-gen9_vp9_encoder.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/i965_drv_video_la-gen9_vp9_encoder_kernels.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/i965_drv_video_la-i965_avc_bsd.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/i965_drv_video_la-i965_avc_hw_scoreboard.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/i965_drv_video_la-i965_avc_ildb.Plo@am__quote@ @@ -709,7 +699,6 @@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/i965_drv_video_la-intel_media_common.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/i965_drv_video_la-intel_memman.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/i965_drv_video_la-object_heap.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/i965_drv_video_la-vp9_probs.Plo@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @@ -851,13 +840,6 @@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(i965_drv_video_la_CFLAGS) $(CFLAGS) -c -o i965_drv_video_la-gen9_mfd.lo `test -f 'gen9_mfd.c' || echo '$(srcdir)/'`gen9_mfd.c -i965_drv_video_la-gen9_vdenc.lo: gen9_vdenc.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(i965_drv_video_la_CFLAGS) $(CFLAGS) -MT i965_drv_video_la-gen9_vdenc.lo -MD -MP -MF $(DEPDIR)/i965_drv_video_la-gen9_vdenc.Tpo -c -o i965_drv_video_la-gen9_vdenc.lo `test -f 'gen9_vdenc.c' || echo '$(srcdir)/'`gen9_vdenc.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/i965_drv_video_la-gen9_vdenc.Tpo $(DEPDIR)/i965_drv_video_la-gen9_vdenc.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gen9_vdenc.c' object='i965_drv_video_la-gen9_vdenc.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(i965_drv_video_la_CFLAGS) $(CFLAGS) -c -o i965_drv_video_la-gen9_vdenc.lo `test -f 'gen9_vdenc.c' || echo '$(srcdir)/'`gen9_vdenc.c - i965_drv_video_la-gen75_picture_process.lo: gen75_picture_process.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(i965_drv_video_la_CFLAGS) $(CFLAGS) -MT i965_drv_video_la-gen75_picture_process.lo -MD -MP -MF $(DEPDIR)/i965_drv_video_la-gen75_picture_process.Tpo -c -o i965_drv_video_la-gen75_picture_process.lo `test -f 'gen75_picture_process.c' || echo '$(srcdir)/'`gen75_picture_process.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/i965_drv_video_la-gen75_picture_process.Tpo $(DEPDIR)/i965_drv_video_la-gen75_picture_process.Plo @@ -1068,34 +1050,6 @@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(i965_drv_video_la_CFLAGS) $(CFLAGS) -c -o i965_drv_video_la-intel_media_common.lo `test -f 'intel_media_common.c' || echo '$(srcdir)/'`intel_media_common.c -i965_drv_video_la-vp9_probs.lo: vp9_probs.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(i965_drv_video_la_CFLAGS) $(CFLAGS) -MT i965_drv_video_la-vp9_probs.lo -MD -MP -MF $(DEPDIR)/i965_drv_video_la-vp9_probs.Tpo -c -o i965_drv_video_la-vp9_probs.lo `test -f 'vp9_probs.c' || echo '$(srcdir)/'`vp9_probs.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/i965_drv_video_la-vp9_probs.Tpo $(DEPDIR)/i965_drv_video_la-vp9_probs.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='vp9_probs.c' object='i965_drv_video_la-vp9_probs.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(i965_drv_video_la_CFLAGS) $(CFLAGS) -c -o i965_drv_video_la-vp9_probs.lo `test -f 'vp9_probs.c' || echo '$(srcdir)/'`vp9_probs.c - -i965_drv_video_la-gen9_vp9_encoder_kernels.lo: gen9_vp9_encoder_kernels.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(i965_drv_video_la_CFLAGS) $(CFLAGS) -MT i965_drv_video_la-gen9_vp9_encoder_kernels.lo -MD -MP -MF $(DEPDIR)/i965_drv_video_la-gen9_vp9_encoder_kernels.Tpo -c -o i965_drv_video_la-gen9_vp9_encoder_kernels.lo `test -f 'gen9_vp9_encoder_kernels.c' || echo '$(srcdir)/'`gen9_vp9_encoder_kernels.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/i965_drv_video_la-gen9_vp9_encoder_kernels.Tpo $(DEPDIR)/i965_drv_video_la-gen9_vp9_encoder_kernels.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gen9_vp9_encoder_kernels.c' object='i965_drv_video_la-gen9_vp9_encoder_kernels.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(i965_drv_video_la_CFLAGS) $(CFLAGS) -c -o i965_drv_video_la-gen9_vp9_encoder_kernels.lo `test -f 'gen9_vp9_encoder_kernels.c' || echo '$(srcdir)/'`gen9_vp9_encoder_kernels.c - -i965_drv_video_la-gen9_vp9_const_def.lo: gen9_vp9_const_def.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(i965_drv_video_la_CFLAGS) $(CFLAGS) -MT i965_drv_video_la-gen9_vp9_const_def.lo -MD -MP -MF $(DEPDIR)/i965_drv_video_la-gen9_vp9_const_def.Tpo -c -o i965_drv_video_la-gen9_vp9_const_def.lo `test -f 'gen9_vp9_const_def.c' || echo '$(srcdir)/'`gen9_vp9_const_def.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/i965_drv_video_la-gen9_vp9_const_def.Tpo $(DEPDIR)/i965_drv_video_la-gen9_vp9_const_def.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gen9_vp9_const_def.c' object='i965_drv_video_la-gen9_vp9_const_def.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(i965_drv_video_la_CFLAGS) $(CFLAGS) -c -o i965_drv_video_la-gen9_vp9_const_def.lo `test -f 'gen9_vp9_const_def.c' || echo '$(srcdir)/'`gen9_vp9_const_def.c - -i965_drv_video_la-gen9_vp9_encoder.lo: gen9_vp9_encoder.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(i965_drv_video_la_CFLAGS) $(CFLAGS) -MT i965_drv_video_la-gen9_vp9_encoder.lo -MD -MP -MF $(DEPDIR)/i965_drv_video_la-gen9_vp9_encoder.Tpo -c -o i965_drv_video_la-gen9_vp9_encoder.lo `test -f 'gen9_vp9_encoder.c' || echo '$(srcdir)/'`gen9_vp9_encoder.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/i965_drv_video_la-gen9_vp9_encoder.Tpo $(DEPDIR)/i965_drv_video_la-gen9_vp9_encoder.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gen9_vp9_encoder.c' object='i965_drv_video_la-gen9_vp9_encoder.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(i965_drv_video_la_CFLAGS) $(CFLAGS) -c -o i965_drv_video_la-gen9_vp9_encoder.lo `test -f 'gen9_vp9_encoder.c' || echo '$(srcdir)/'`gen9_vp9_encoder.c - i965_drv_video_la-i965_output_dri.lo: i965_output_dri.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(i965_drv_video_la_CFLAGS) $(CFLAGS) -MT i965_drv_video_la-i965_output_dri.lo -MD -MP -MF $(DEPDIR)/i965_drv_video_la-i965_output_dri.Tpo -c -o i965_drv_video_la-i965_output_dri.lo `test -f 'i965_output_dri.c' || echo '$(srcdir)/'`i965_output_dri.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/i965_drv_video_la-i965_output_dri.Tpo $(DEPDIR)/i965_drv_video_la-i965_output_dri.Plo @@ -1424,8 +1378,7 @@ $(PKG_VERSION_FILE): $(NEW_VERSION_FILE) @cp -f $< $@ i965_output_wayland.c: $(protocol_source_h) -%-client-protocol.h : %.xml - $(AM_V_GEN)$(WAYLAND_SCANNER) client-header < $< > $@ +@wayland_scanner_rules@ # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. diff -Nru intel-vaapi-driver-1.7.1/src/shaders/h264/ildb/Makefile.in intel-vaapi-driver-1.7.0/src/shaders/h264/ildb/Makefile.in --- intel-vaapi-driver-1.7.1/src/shaders/h264/ildb/Makefile.in 2016-06-21 02:07:53.000000000 +0000 +++ intel-vaapi-driver-1.7.0/src/shaders/h264/ildb/Makefile.in 2016-03-15 06:42:44.000000000 +0000 @@ -194,7 +194,10 @@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ -WAYLAND_SCANNER = @WAYLAND_SCANNER@ +WAYLAND_CFLAGS = @WAYLAND_CFLAGS@ +WAYLAND_LIBS = @WAYLAND_LIBS@ +WAYLAND_SCANNER_CFLAGS = @WAYLAND_SCANNER_CFLAGS@ +WAYLAND_SCANNER_LIBS = @WAYLAND_SCANNER_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ @@ -247,6 +250,8 @@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ +wayland_protocoldir = @wayland_protocoldir@ +wayland_scanner = @wayland_scanner@ INTEL_ILDB_INC = \ AVC_ILDB.inc \ Child_Undefs.inc \ @@ -358,9 +363,9 @@ exit 1;; \ esac; \ done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/shaders/h264/ildb/Makefile'; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/shaders/h264/ildb/Makefile'; \ $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --foreign src/shaders/h264/ildb/Makefile + $(AUTOMAKE) --gnu src/shaders/h264/ildb/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ diff -Nru intel-vaapi-driver-1.7.1/src/shaders/h264/Makefile.in intel-vaapi-driver-1.7.0/src/shaders/h264/Makefile.in --- intel-vaapi-driver-1.7.1/src/shaders/h264/Makefile.in 2016-06-21 02:07:53.000000000 +0000 +++ intel-vaapi-driver-1.7.0/src/shaders/h264/Makefile.in 2016-03-15 06:42:44.000000000 +0000 @@ -254,7 +254,10 @@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ -WAYLAND_SCANNER = @WAYLAND_SCANNER@ +WAYLAND_CFLAGS = @WAYLAND_CFLAGS@ +WAYLAND_LIBS = @WAYLAND_LIBS@ +WAYLAND_SCANNER_CFLAGS = @WAYLAND_SCANNER_CFLAGS@ +WAYLAND_SCANNER_LIBS = @WAYLAND_SCANNER_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ @@ -307,6 +310,8 @@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ +wayland_protocoldir = @wayland_protocoldir@ +wayland_scanner = @wayland_scanner@ SUBDIRS = ildb mc # Extra clean files so that maintainer-clean removes *everything* @@ -323,9 +328,9 @@ exit 1;; \ esac; \ done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/shaders/h264/Makefile'; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/shaders/h264/Makefile'; \ $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --foreign src/shaders/h264/Makefile + $(AUTOMAKE) --gnu src/shaders/h264/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ diff -Nru intel-vaapi-driver-1.7.1/src/shaders/h264/mc/Makefile.in intel-vaapi-driver-1.7.0/src/shaders/h264/mc/Makefile.in --- intel-vaapi-driver-1.7.1/src/shaders/h264/mc/Makefile.in 2016-06-21 02:07:53.000000000 +0000 +++ intel-vaapi-driver-1.7.0/src/shaders/h264/mc/Makefile.in 2016-03-15 06:42:44.000000000 +0000 @@ -195,7 +195,10 @@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ -WAYLAND_SCANNER = @WAYLAND_SCANNER@ +WAYLAND_CFLAGS = @WAYLAND_CFLAGS@ +WAYLAND_LIBS = @WAYLAND_LIBS@ +WAYLAND_SCANNER_CFLAGS = @WAYLAND_SCANNER_CFLAGS@ +WAYLAND_SCANNER_LIBS = @WAYLAND_SCANNER_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ @@ -248,6 +251,8 @@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ +wayland_protocoldir = @wayland_protocoldir@ +wayland_scanner = @wayland_scanner@ INTEL_G4I = INTEL_G4A = null.g4a INTEL_G4B = null.g4b @@ -444,9 +449,9 @@ exit 1;; \ esac; \ done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/shaders/h264/mc/Makefile'; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/shaders/h264/mc/Makefile'; \ $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --foreign src/shaders/h264/mc/Makefile + $(AUTOMAKE) --gnu src/shaders/h264/mc/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ diff -Nru intel-vaapi-driver-1.7.1/src/shaders/Makefile.in intel-vaapi-driver-1.7.0/src/shaders/Makefile.in --- intel-vaapi-driver-1.7.1/src/shaders/Makefile.in 2016-06-21 02:07:53.000000000 +0000 +++ intel-vaapi-driver-1.7.0/src/shaders/Makefile.in 2016-03-15 06:42:44.000000000 +0000 @@ -254,7 +254,10 @@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ -WAYLAND_SCANNER = @WAYLAND_SCANNER@ +WAYLAND_CFLAGS = @WAYLAND_CFLAGS@ +WAYLAND_LIBS = @WAYLAND_LIBS@ +WAYLAND_SCANNER_CFLAGS = @WAYLAND_SCANNER_CFLAGS@ +WAYLAND_SCANNER_LIBS = @WAYLAND_SCANNER_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ @@ -307,6 +310,8 @@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ +wayland_protocoldir = @wayland_protocoldir@ +wayland_scanner = @wayland_scanner@ SUBDIRS = h264 mpeg2 render post_processing vme utils EXTRA_DIST = gpp.py @@ -324,9 +329,9 @@ exit 1;; \ esac; \ done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/shaders/Makefile'; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/shaders/Makefile'; \ $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --foreign src/shaders/Makefile + $(AUTOMAKE) --gnu src/shaders/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ diff -Nru intel-vaapi-driver-1.7.1/src/shaders/mpeg2/Makefile.in intel-vaapi-driver-1.7.0/src/shaders/mpeg2/Makefile.in --- intel-vaapi-driver-1.7.1/src/shaders/mpeg2/Makefile.in 2016-06-21 02:07:53.000000000 +0000 +++ intel-vaapi-driver-1.7.0/src/shaders/mpeg2/Makefile.in 2016-03-15 06:42:44.000000000 +0000 @@ -254,7 +254,10 @@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ -WAYLAND_SCANNER = @WAYLAND_SCANNER@ +WAYLAND_CFLAGS = @WAYLAND_CFLAGS@ +WAYLAND_LIBS = @WAYLAND_LIBS@ +WAYLAND_SCANNER_CFLAGS = @WAYLAND_SCANNER_CFLAGS@ +WAYLAND_SCANNER_LIBS = @WAYLAND_SCANNER_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ @@ -307,6 +310,8 @@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ +wayland_protocoldir = @wayland_protocoldir@ +wayland_scanner = @wayland_scanner@ SUBDIRS = vld # Extra clean files so that maintainer-clean removes *everything* @@ -323,9 +328,9 @@ exit 1;; \ esac; \ done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/shaders/mpeg2/Makefile'; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/shaders/mpeg2/Makefile'; \ $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --foreign src/shaders/mpeg2/Makefile + $(AUTOMAKE) --gnu src/shaders/mpeg2/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ diff -Nru intel-vaapi-driver-1.7.1/src/shaders/mpeg2/vld/Makefile.in intel-vaapi-driver-1.7.0/src/shaders/mpeg2/vld/Makefile.in --- intel-vaapi-driver-1.7.1/src/shaders/mpeg2/vld/Makefile.in 2016-06-21 02:07:53.000000000 +0000 +++ intel-vaapi-driver-1.7.0/src/shaders/mpeg2/vld/Makefile.in 2016-03-15 06:42:44.000000000 +0000 @@ -195,7 +195,10 @@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ -WAYLAND_SCANNER = @WAYLAND_SCANNER@ +WAYLAND_CFLAGS = @WAYLAND_CFLAGS@ +WAYLAND_LIBS = @WAYLAND_LIBS@ +WAYLAND_SCANNER_CFLAGS = @WAYLAND_SCANNER_CFLAGS@ +WAYLAND_SCANNER_LIBS = @WAYLAND_SCANNER_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ @@ -248,6 +251,8 @@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ +wayland_protocoldir = @wayland_protocoldir@ +wayland_scanner = @wayland_scanner@ INTEL_G4I = \ addidct.g4i \ do_iq_intra.g4i \ @@ -364,9 +369,9 @@ exit 1;; \ esac; \ done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/shaders/mpeg2/vld/Makefile'; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/shaders/mpeg2/vld/Makefile'; \ $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --foreign src/shaders/mpeg2/vld/Makefile + $(AUTOMAKE) --gnu src/shaders/mpeg2/vld/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ diff -Nru intel-vaapi-driver-1.7.1/src/shaders/post_processing/gen5_6/Makefile.in intel-vaapi-driver-1.7.0/src/shaders/post_processing/gen5_6/Makefile.in --- intel-vaapi-driver-1.7.1/src/shaders/post_processing/gen5_6/Makefile.in 2016-06-21 02:07:53.000000000 +0000 +++ intel-vaapi-driver-1.7.0/src/shaders/post_processing/gen5_6/Makefile.in 2016-03-15 06:42:44.000000000 +0000 @@ -195,7 +195,10 @@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ -WAYLAND_SCANNER = @WAYLAND_SCANNER@ +WAYLAND_CFLAGS = @WAYLAND_CFLAGS@ +WAYLAND_LIBS = @WAYLAND_LIBS@ +WAYLAND_SCANNER_CFLAGS = @WAYLAND_SCANNER_CFLAGS@ +WAYLAND_SCANNER_LIBS = @WAYLAND_SCANNER_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ @@ -248,6 +251,8 @@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ +wayland_protocoldir = @wayland_protocoldir@ +wayland_scanner = @wayland_scanner@ INTEL_G4I = INTEL_G4A = null.g4a INTEL_G4B = null.g4b @@ -407,9 +412,9 @@ exit 1;; \ esac; \ done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/shaders/post_processing/gen5_6/Makefile'; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/shaders/post_processing/gen5_6/Makefile'; \ $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --foreign src/shaders/post_processing/gen5_6/Makefile + $(AUTOMAKE) --gnu src/shaders/post_processing/gen5_6/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ diff -Nru intel-vaapi-driver-1.7.1/src/shaders/post_processing/gen7/avs.g75b intel-vaapi-driver-1.7.0/src/shaders/post_processing/gen7/avs.g75b --- intel-vaapi-driver-1.7.1/src/shaders/post_processing/gen7/avs.g75b 2016-06-16 00:57:56.000000000 +0000 +++ intel-vaapi-driver-1.7.0/src/shaders/post_processing/gen7/avs.g75b 2016-03-15 06:43:01.000000000 +0000 @@ -532,36 +532,86 @@ { 0x80800040, 0xa4202d29, 0x00b18420, 0x00800080 }, { 0x80800040, 0xa4402d29, 0x00b18440, 0x00800080 }, { 0x80800040, 0xa4602d29, 0x00b18460, 0x00800080 }, - { 0x80600040, 0xc8002d29, 0x00ae8800, 0x00800080 }, - { 0x80600040, 0xc8402d29, 0x00ae8840, 0x00800080 }, - { 0x80600040, 0xc0002d29, 0x00ae8000, 0x00800080 }, - { 0x80600040, 0xc0402d29, 0x00ae8040, 0x00800080 }, + { 0x00600008, 0x45c03d29, 0x00ae8800, 0x00010001 }, + { 0x00600008, 0x45e03d29, 0x00ae8820, 0x00010001 }, + { 0x00600008, 0x46003d29, 0x00ae8840, 0x00010001 }, + { 0x00600008, 0x46203d29, 0x00ae8860, 0x00010001 }, + { 0x00600040, 0x45c02529, 0x00ae05c0, 0x00ae05e0 }, + { 0x80600040, 0xc8002d29, 0x00ae05c0, 0x00800080 }, + { 0x00600040, 0x46002529, 0x00ae0600, 0x00ae0620 }, + { 0x80600040, 0xc8402d29, 0x00ae0600, 0x00800080 }, + { 0x00600008, 0x46403d29, 0x00ae8000, 0x00010001 }, + { 0x00600008, 0x46603d29, 0x00ae8020, 0x00010001 }, + { 0x00600008, 0x46803d29, 0x00ae8040, 0x00010001 }, + { 0x00600008, 0x46a03d29, 0x00ae8060, 0x00010001 }, + { 0x00600040, 0x46402529, 0x00ae0640, 0x00ae0660 }, + { 0x80600040, 0xc0002d29, 0x00ae0640, 0x00800080 }, + { 0x00600040, 0x46802529, 0x00ae0680, 0x00ae06a0 }, + { 0x80600040, 0xc0402d29, 0x00ae0680, 0x00800080 }, { 0x00400040, 0x22002da8, 0x006902c0, 0x04000400 }, { 0x80800040, 0xb4002d29, 0x00b19400, 0x00800080 }, { 0x80800040, 0xb4202d29, 0x00b19420, 0x00800080 }, { 0x80800040, 0xb4402d29, 0x00b19440, 0x00800080 }, { 0x80800040, 0xb4602d29, 0x00b19460, 0x00800080 }, - { 0x80600040, 0xd8002d29, 0x00ae9800, 0x00800080 }, - { 0x80600040, 0xd8402d29, 0x00ae9840, 0x00800080 }, - { 0x80600040, 0xd0002d29, 0x00ae9000, 0x00800080 }, - { 0x80600040, 0xd0402d29, 0x00ae9040, 0x00800080 }, + { 0x00600008, 0x45c03d29, 0x00ae9800, 0x00010001 }, + { 0x00600008, 0x45e03d29, 0x00ae9820, 0x00010001 }, + { 0x00600008, 0x46003d29, 0x00ae9840, 0x00010001 }, + { 0x00600008, 0x46203d29, 0x00ae9860, 0x00010001 }, + { 0x00600040, 0x45c02529, 0x00ae05c0, 0x00ae05e0 }, + { 0x80600040, 0xd8002d29, 0x00ae05c0, 0x00800080 }, + { 0x00600040, 0x46002529, 0x00ae0600, 0x00ae0620 }, + { 0x80600040, 0xd8402d29, 0x00ae0600, 0x00800080 }, + { 0x00600008, 0x46403d29, 0x00ae9000, 0x00010001 }, + { 0x00600008, 0x46603d29, 0x00ae9020, 0x00010001 }, + { 0x00600008, 0x46803d29, 0x00ae9040, 0x00010001 }, + { 0x00600008, 0x46a03d29, 0x00ae9060, 0x00010001 }, + { 0x00600040, 0x46402529, 0x00ae0640, 0x00ae0660 }, + { 0x80600040, 0xd0002d29, 0x00ae0640, 0x00800080 }, + { 0x00600040, 0x46802529, 0x00ae0680, 0x00ae06a0 }, + { 0x80600040, 0xd0402d29, 0x00ae0680, 0x00800080 }, { 0x00400040, 0x22082da8, 0x006902c0, 0x06000600 }, { 0x80800040, 0xa4002d29, 0x00b18400, 0x00800080 }, { 0x80800040, 0xa4202d29, 0x00b18420, 0x00800080 }, { 0x80800040, 0xa4402d29, 0x00b18440, 0x00800080 }, { 0x80800040, 0xa4602d29, 0x00b18460, 0x00800080 }, - { 0x80600040, 0xc8002d29, 0x00ae8800, 0x00800080 }, - { 0x80600040, 0xc8402d29, 0x00ae8840, 0x00800080 }, - { 0x80600040, 0xc0002d29, 0x00ae8000, 0x00800080 }, - { 0x80600040, 0xc0402d29, 0x00ae8040, 0x00800080 }, + { 0x00600008, 0x45c03d29, 0x00ae8800, 0x00010001 }, + { 0x00600008, 0x45e03d29, 0x00ae8820, 0x00010001 }, + { 0x00600008, 0x46003d29, 0x00ae8840, 0x00010001 }, + { 0x00600008, 0x46203d29, 0x00ae8860, 0x00010001 }, + { 0x00600040, 0x45c02529, 0x00ae05c0, 0x00ae05e0 }, + { 0x80600040, 0xc8002d29, 0x00ae05c0, 0x00800080 }, + { 0x00600040, 0x46002529, 0x00ae0600, 0x00ae0620 }, + { 0x80600040, 0xc8402d29, 0x00ae0600, 0x00800080 }, + { 0x00600008, 0x46403d29, 0x00ae8000, 0x00010001 }, + { 0x00600008, 0x46603d29, 0x00ae8020, 0x00010001 }, + { 0x00600008, 0x46803d29, 0x00ae8040, 0x00010001 }, + { 0x00600008, 0x46a03d29, 0x00ae8060, 0x00010001 }, + { 0x00600040, 0x46402529, 0x00ae0640, 0x00ae0660 }, + { 0x80600040, 0xc0002d29, 0x00ae0640, 0x00800080 }, + { 0x00600040, 0x46802529, 0x00ae0680, 0x00ae06a0 }, + { 0x80600040, 0xc0402d29, 0x00ae0680, 0x00800080 }, + { 0x00400040, 0x22002da8, 0x006902c0, 0x04000400 }, { 0x80800040, 0xb4002d29, 0x00b19400, 0x00800080 }, { 0x80800040, 0xb4202d29, 0x00b19420, 0x00800080 }, { 0x80800040, 0xb4402d29, 0x00b19440, 0x00800080 }, { 0x80800040, 0xb4602d29, 0x00b19460, 0x00800080 }, - { 0x80600040, 0xd8002d29, 0x00ae9800, 0x00800080 }, - { 0x80600040, 0xd8402d29, 0x00ae9840, 0x00800080 }, - { 0x80600040, 0xd0002d29, 0x00ae9000, 0x00800080 }, - { 0x80600040, 0xd0402d29, 0x00ae9040, 0x00800080 }, + { 0x00600008, 0x45c03d29, 0x00ae9800, 0x00010001 }, + { 0x00600008, 0x45e03d29, 0x00ae9820, 0x00010001 }, + { 0x00600008, 0x46003d29, 0x00ae9840, 0x00010001 }, + { 0x00600008, 0x46203d29, 0x00ae9860, 0x00010001 }, + { 0x00600040, 0x45c02529, 0x00ae05c0, 0x00ae05e0 }, + { 0x80600040, 0xd8002d29, 0x00ae05c0, 0x00800080 }, + { 0x00600040, 0x46002529, 0x00ae0600, 0x00ae0620 }, + { 0x80600040, 0xd8402d29, 0x00ae0600, 0x00800080 }, + { 0x00600008, 0x46403d29, 0x00ae9000, 0x00010001 }, + { 0x00600008, 0x46603d29, 0x00ae9020, 0x00010001 }, + { 0x00600008, 0x46803d29, 0x00ae9040, 0x00010001 }, + { 0x00600008, 0x46a03d29, 0x00ae9060, 0x00010001 }, + { 0x00600040, 0x46402529, 0x00ae0640, 0x00ae0660 }, + { 0x80600040, 0xd0002d29, 0x00ae0640, 0x00800080 }, + { 0x00600040, 0x46802529, 0x00ae0680, 0x00ae06a0 }, + { 0x80600040, 0xd0402d29, 0x00ae0680, 0x00800080 }, + { 0x00400040, 0x22082da8, 0x006902c0, 0x06000600 }, { 0x00400040, 0x22002da8, 0x006902c0, 0x00000000 }, { 0x00400040, 0x22082da8, 0x006902c0, 0x02000200 }, { 0x00800401, 0x23a00231, 0x00d28401, 0x00000000 }, diff -Nru intel-vaapi-driver-1.7.1/src/shaders/post_processing/gen7/avs.g7b intel-vaapi-driver-1.7.0/src/shaders/post_processing/gen7/avs.g7b --- intel-vaapi-driver-1.7.1/src/shaders/post_processing/gen7/avs.g7b 2016-06-16 00:57:56.000000000 +0000 +++ intel-vaapi-driver-1.7.0/src/shaders/post_processing/gen7/avs.g7b 2016-03-15 06:43:01.000000000 +0000 @@ -532,36 +532,86 @@ { 0x80800040, 0xa4202d29, 0x00b18420, 0x00800080 }, { 0x80800040, 0xa4402d29, 0x00b18440, 0x00800080 }, { 0x80800040, 0xa4602d29, 0x00b18460, 0x00800080 }, - { 0x80600040, 0xc8002d29, 0x00ae8800, 0x00800080 }, - { 0x80600040, 0xc8402d29, 0x00ae8840, 0x00800080 }, - { 0x80600040, 0xc0002d29, 0x00ae8000, 0x00800080 }, - { 0x80600040, 0xc0402d29, 0x00ae8040, 0x00800080 }, + { 0x00600008, 0x45c03d29, 0x00ae8800, 0x00010001 }, + { 0x00600008, 0x45e03d29, 0x00ae8820, 0x00010001 }, + { 0x00600008, 0x46003d29, 0x00ae8840, 0x00010001 }, + { 0x00600008, 0x46203d29, 0x00ae8860, 0x00010001 }, + { 0x00600040, 0x45c02529, 0x00ae05c0, 0x00ae05e0 }, + { 0x80600040, 0xc8002d29, 0x00ae05c0, 0x00800080 }, + { 0x00600040, 0x46002529, 0x00ae0600, 0x00ae0620 }, + { 0x80600040, 0xc8402d29, 0x00ae0600, 0x00800080 }, + { 0x00600008, 0x46403d29, 0x00ae8000, 0x00010001 }, + { 0x00600008, 0x46603d29, 0x00ae8020, 0x00010001 }, + { 0x00600008, 0x46803d29, 0x00ae8040, 0x00010001 }, + { 0x00600008, 0x46a03d29, 0x00ae8060, 0x00010001 }, + { 0x00600040, 0x46402529, 0x00ae0640, 0x00ae0660 }, + { 0x80600040, 0xc0002d29, 0x00ae0640, 0x00800080 }, + { 0x00600040, 0x46802529, 0x00ae0680, 0x00ae06a0 }, + { 0x80600040, 0xc0402d29, 0x00ae0680, 0x00800080 }, { 0x00400040, 0x22002da8, 0x006902c0, 0x04000400 }, { 0x80800040, 0xb4002d29, 0x00b19400, 0x00800080 }, { 0x80800040, 0xb4202d29, 0x00b19420, 0x00800080 }, { 0x80800040, 0xb4402d29, 0x00b19440, 0x00800080 }, { 0x80800040, 0xb4602d29, 0x00b19460, 0x00800080 }, - { 0x80600040, 0xd8002d29, 0x00ae9800, 0x00800080 }, - { 0x80600040, 0xd8402d29, 0x00ae9840, 0x00800080 }, - { 0x80600040, 0xd0002d29, 0x00ae9000, 0x00800080 }, - { 0x80600040, 0xd0402d29, 0x00ae9040, 0x00800080 }, + { 0x00600008, 0x45c03d29, 0x00ae9800, 0x00010001 }, + { 0x00600008, 0x45e03d29, 0x00ae9820, 0x00010001 }, + { 0x00600008, 0x46003d29, 0x00ae9840, 0x00010001 }, + { 0x00600008, 0x46203d29, 0x00ae9860, 0x00010001 }, + { 0x00600040, 0x45c02529, 0x00ae05c0, 0x00ae05e0 }, + { 0x80600040, 0xd8002d29, 0x00ae05c0, 0x00800080 }, + { 0x00600040, 0x46002529, 0x00ae0600, 0x00ae0620 }, + { 0x80600040, 0xd8402d29, 0x00ae0600, 0x00800080 }, + { 0x00600008, 0x46403d29, 0x00ae9000, 0x00010001 }, + { 0x00600008, 0x46603d29, 0x00ae9020, 0x00010001 }, + { 0x00600008, 0x46803d29, 0x00ae9040, 0x00010001 }, + { 0x00600008, 0x46a03d29, 0x00ae9060, 0x00010001 }, + { 0x00600040, 0x46402529, 0x00ae0640, 0x00ae0660 }, + { 0x80600040, 0xd0002d29, 0x00ae0640, 0x00800080 }, + { 0x00600040, 0x46802529, 0x00ae0680, 0x00ae06a0 }, + { 0x80600040, 0xd0402d29, 0x00ae0680, 0x00800080 }, { 0x00400040, 0x22082da8, 0x006902c0, 0x06000600 }, { 0x80800040, 0xa4002d29, 0x00b18400, 0x00800080 }, { 0x80800040, 0xa4202d29, 0x00b18420, 0x00800080 }, { 0x80800040, 0xa4402d29, 0x00b18440, 0x00800080 }, { 0x80800040, 0xa4602d29, 0x00b18460, 0x00800080 }, - { 0x80600040, 0xc8002d29, 0x00ae8800, 0x00800080 }, - { 0x80600040, 0xc8402d29, 0x00ae8840, 0x00800080 }, - { 0x80600040, 0xc0002d29, 0x00ae8000, 0x00800080 }, - { 0x80600040, 0xc0402d29, 0x00ae8040, 0x00800080 }, + { 0x00600008, 0x45c03d29, 0x00ae8800, 0x00010001 }, + { 0x00600008, 0x45e03d29, 0x00ae8820, 0x00010001 }, + { 0x00600008, 0x46003d29, 0x00ae8840, 0x00010001 }, + { 0x00600008, 0x46203d29, 0x00ae8860, 0x00010001 }, + { 0x00600040, 0x45c02529, 0x00ae05c0, 0x00ae05e0 }, + { 0x80600040, 0xc8002d29, 0x00ae05c0, 0x00800080 }, + { 0x00600040, 0x46002529, 0x00ae0600, 0x00ae0620 }, + { 0x80600040, 0xc8402d29, 0x00ae0600, 0x00800080 }, + { 0x00600008, 0x46403d29, 0x00ae8000, 0x00010001 }, + { 0x00600008, 0x46603d29, 0x00ae8020, 0x00010001 }, + { 0x00600008, 0x46803d29, 0x00ae8040, 0x00010001 }, + { 0x00600008, 0x46a03d29, 0x00ae8060, 0x00010001 }, + { 0x00600040, 0x46402529, 0x00ae0640, 0x00ae0660 }, + { 0x80600040, 0xc0002d29, 0x00ae0640, 0x00800080 }, + { 0x00600040, 0x46802529, 0x00ae0680, 0x00ae06a0 }, + { 0x80600040, 0xc0402d29, 0x00ae0680, 0x00800080 }, + { 0x00400040, 0x22002da8, 0x006902c0, 0x04000400 }, { 0x80800040, 0xb4002d29, 0x00b19400, 0x00800080 }, { 0x80800040, 0xb4202d29, 0x00b19420, 0x00800080 }, { 0x80800040, 0xb4402d29, 0x00b19440, 0x00800080 }, { 0x80800040, 0xb4602d29, 0x00b19460, 0x00800080 }, - { 0x80600040, 0xd8002d29, 0x00ae9800, 0x00800080 }, - { 0x80600040, 0xd8402d29, 0x00ae9840, 0x00800080 }, - { 0x80600040, 0xd0002d29, 0x00ae9000, 0x00800080 }, - { 0x80600040, 0xd0402d29, 0x00ae9040, 0x00800080 }, + { 0x00600008, 0x45c03d29, 0x00ae9800, 0x00010001 }, + { 0x00600008, 0x45e03d29, 0x00ae9820, 0x00010001 }, + { 0x00600008, 0x46003d29, 0x00ae9840, 0x00010001 }, + { 0x00600008, 0x46203d29, 0x00ae9860, 0x00010001 }, + { 0x00600040, 0x45c02529, 0x00ae05c0, 0x00ae05e0 }, + { 0x80600040, 0xd8002d29, 0x00ae05c0, 0x00800080 }, + { 0x00600040, 0x46002529, 0x00ae0600, 0x00ae0620 }, + { 0x80600040, 0xd8402d29, 0x00ae0600, 0x00800080 }, + { 0x00600008, 0x46403d29, 0x00ae9000, 0x00010001 }, + { 0x00600008, 0x46603d29, 0x00ae9020, 0x00010001 }, + { 0x00600008, 0x46803d29, 0x00ae9040, 0x00010001 }, + { 0x00600008, 0x46a03d29, 0x00ae9060, 0x00010001 }, + { 0x00600040, 0x46402529, 0x00ae0640, 0x00ae0660 }, + { 0x80600040, 0xd0002d29, 0x00ae0640, 0x00800080 }, + { 0x00600040, 0x46802529, 0x00ae0680, 0x00ae06a0 }, + { 0x80600040, 0xd0402d29, 0x00ae0680, 0x00800080 }, + { 0x00400040, 0x22082da8, 0x006902c0, 0x06000600 }, { 0x00400040, 0x22002da8, 0x006902c0, 0x00000000 }, { 0x00400040, 0x22082da8, 0x006902c0, 0x02000200 }, { 0x00800401, 0x23a00231, 0x00d28401, 0x00000000 }, diff -Nru intel-vaapi-driver-1.7.1/src/shaders/post_processing/gen7/Makefile.in intel-vaapi-driver-1.7.0/src/shaders/post_processing/gen7/Makefile.in --- intel-vaapi-driver-1.7.1/src/shaders/post_processing/gen7/Makefile.in 2016-06-21 02:07:53.000000000 +0000 +++ intel-vaapi-driver-1.7.0/src/shaders/post_processing/gen7/Makefile.in 2016-03-15 06:42:44.000000000 +0000 @@ -195,7 +195,10 @@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ -WAYLAND_SCANNER = @WAYLAND_SCANNER@ +WAYLAND_CFLAGS = @WAYLAND_CFLAGS@ +WAYLAND_LIBS = @WAYLAND_LIBS@ +WAYLAND_SCANNER_CFLAGS = @WAYLAND_SCANNER_CFLAGS@ +WAYLAND_SCANNER_LIBS = @WAYLAND_SCANNER_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ @@ -248,6 +251,8 @@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ +wayland_protocoldir = @wayland_protocoldir@ +wayland_scanner = @wayland_scanner@ INTEL_PP_G7B = \ avs.g7b \ dndi.g7b \ @@ -347,9 +352,9 @@ exit 1;; \ esac; \ done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/shaders/post_processing/gen7/Makefile'; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/shaders/post_processing/gen7/Makefile'; \ $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --foreign src/shaders/post_processing/gen7/Makefile + $(AUTOMAKE) --gnu src/shaders/post_processing/gen7/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ diff -Nru intel-vaapi-driver-1.7.1/src/shaders/post_processing/gen7/pa_to_pl2.g75b intel-vaapi-driver-1.7.0/src/shaders/post_processing/gen7/pa_to_pl2.g75b --- intel-vaapi-driver-1.7.1/src/shaders/post_processing/gen7/pa_to_pl2.g75b 2016-06-16 00:57:56.000000000 +0000 +++ intel-vaapi-driver-1.7.0/src/shaders/post_processing/gen7/pa_to_pl2.g75b 2016-03-15 06:43:01.000000000 +0000 @@ -512,36 +512,86 @@ { 0x80800040, 0xa4202d29, 0x00b18420, 0x00800080 }, { 0x80800040, 0xa4402d29, 0x00b18440, 0x00800080 }, { 0x80800040, 0xa4602d29, 0x00b18460, 0x00800080 }, - { 0x80600040, 0xc8002d29, 0x00ae8800, 0x00800080 }, - { 0x80600040, 0xc8402d29, 0x00ae8840, 0x00800080 }, - { 0x80600040, 0xc0002d29, 0x00ae8000, 0x00800080 }, - { 0x80600040, 0xc0402d29, 0x00ae8040, 0x00800080 }, + { 0x00600008, 0x45c03d29, 0x00ae8800, 0x00010001 }, + { 0x00600008, 0x45e03d29, 0x00ae8820, 0x00010001 }, + { 0x00600008, 0x46003d29, 0x00ae8840, 0x00010001 }, + { 0x00600008, 0x46203d29, 0x00ae8860, 0x00010001 }, + { 0x00600040, 0x45c02529, 0x00ae05c0, 0x00ae05e0 }, + { 0x80600040, 0xc8002d29, 0x00ae05c0, 0x00800080 }, + { 0x00600040, 0x46002529, 0x00ae0600, 0x00ae0620 }, + { 0x80600040, 0xc8402d29, 0x00ae0600, 0x00800080 }, + { 0x00600008, 0x46403d29, 0x00ae8000, 0x00010001 }, + { 0x00600008, 0x46603d29, 0x00ae8020, 0x00010001 }, + { 0x00600008, 0x46803d29, 0x00ae8040, 0x00010001 }, + { 0x00600008, 0x46a03d29, 0x00ae8060, 0x00010001 }, + { 0x00600040, 0x46402529, 0x00ae0640, 0x00ae0660 }, + { 0x80600040, 0xc0002d29, 0x00ae0640, 0x00800080 }, + { 0x00600040, 0x46802529, 0x00ae0680, 0x00ae06a0 }, + { 0x80600040, 0xc0402d29, 0x00ae0680, 0x00800080 }, { 0x00400040, 0x22002da8, 0x006902c0, 0x04000400 }, { 0x80800040, 0xb4002d29, 0x00b19400, 0x00800080 }, { 0x80800040, 0xb4202d29, 0x00b19420, 0x00800080 }, { 0x80800040, 0xb4402d29, 0x00b19440, 0x00800080 }, { 0x80800040, 0xb4602d29, 0x00b19460, 0x00800080 }, - { 0x80600040, 0xd8002d29, 0x00ae9800, 0x00800080 }, - { 0x80600040, 0xd8402d29, 0x00ae9840, 0x00800080 }, - { 0x80600040, 0xd0002d29, 0x00ae9000, 0x00800080 }, - { 0x80600040, 0xd0402d29, 0x00ae9040, 0x00800080 }, + { 0x00600008, 0x45c03d29, 0x00ae9800, 0x00010001 }, + { 0x00600008, 0x45e03d29, 0x00ae9820, 0x00010001 }, + { 0x00600008, 0x46003d29, 0x00ae9840, 0x00010001 }, + { 0x00600008, 0x46203d29, 0x00ae9860, 0x00010001 }, + { 0x00600040, 0x45c02529, 0x00ae05c0, 0x00ae05e0 }, + { 0x80600040, 0xd8002d29, 0x00ae05c0, 0x00800080 }, + { 0x00600040, 0x46002529, 0x00ae0600, 0x00ae0620 }, + { 0x80600040, 0xd8402d29, 0x00ae0600, 0x00800080 }, + { 0x00600008, 0x46403d29, 0x00ae9000, 0x00010001 }, + { 0x00600008, 0x46603d29, 0x00ae9020, 0x00010001 }, + { 0x00600008, 0x46803d29, 0x00ae9040, 0x00010001 }, + { 0x00600008, 0x46a03d29, 0x00ae9060, 0x00010001 }, + { 0x00600040, 0x46402529, 0x00ae0640, 0x00ae0660 }, + { 0x80600040, 0xd0002d29, 0x00ae0640, 0x00800080 }, + { 0x00600040, 0x46802529, 0x00ae0680, 0x00ae06a0 }, + { 0x80600040, 0xd0402d29, 0x00ae0680, 0x00800080 }, { 0x00400040, 0x22082da8, 0x006902c0, 0x06000600 }, { 0x80800040, 0xa4002d29, 0x00b18400, 0x00800080 }, { 0x80800040, 0xa4202d29, 0x00b18420, 0x00800080 }, { 0x80800040, 0xa4402d29, 0x00b18440, 0x00800080 }, { 0x80800040, 0xa4602d29, 0x00b18460, 0x00800080 }, - { 0x80600040, 0xc8002d29, 0x00ae8800, 0x00800080 }, - { 0x80600040, 0xc8402d29, 0x00ae8840, 0x00800080 }, - { 0x80600040, 0xc0002d29, 0x00ae8000, 0x00800080 }, - { 0x80600040, 0xc0402d29, 0x00ae8040, 0x00800080 }, + { 0x00600008, 0x45c03d29, 0x00ae8800, 0x00010001 }, + { 0x00600008, 0x45e03d29, 0x00ae8820, 0x00010001 }, + { 0x00600008, 0x46003d29, 0x00ae8840, 0x00010001 }, + { 0x00600008, 0x46203d29, 0x00ae8860, 0x00010001 }, + { 0x00600040, 0x45c02529, 0x00ae05c0, 0x00ae05e0 }, + { 0x80600040, 0xc8002d29, 0x00ae05c0, 0x00800080 }, + { 0x00600040, 0x46002529, 0x00ae0600, 0x00ae0620 }, + { 0x80600040, 0xc8402d29, 0x00ae0600, 0x00800080 }, + { 0x00600008, 0x46403d29, 0x00ae8000, 0x00010001 }, + { 0x00600008, 0x46603d29, 0x00ae8020, 0x00010001 }, + { 0x00600008, 0x46803d29, 0x00ae8040, 0x00010001 }, + { 0x00600008, 0x46a03d29, 0x00ae8060, 0x00010001 }, + { 0x00600040, 0x46402529, 0x00ae0640, 0x00ae0660 }, + { 0x80600040, 0xc0002d29, 0x00ae0640, 0x00800080 }, + { 0x00600040, 0x46802529, 0x00ae0680, 0x00ae06a0 }, + { 0x80600040, 0xc0402d29, 0x00ae0680, 0x00800080 }, + { 0x00400040, 0x22002da8, 0x006902c0, 0x04000400 }, { 0x80800040, 0xb4002d29, 0x00b19400, 0x00800080 }, { 0x80800040, 0xb4202d29, 0x00b19420, 0x00800080 }, { 0x80800040, 0xb4402d29, 0x00b19440, 0x00800080 }, { 0x80800040, 0xb4602d29, 0x00b19460, 0x00800080 }, - { 0x80600040, 0xd8002d29, 0x00ae9800, 0x00800080 }, - { 0x80600040, 0xd8402d29, 0x00ae9840, 0x00800080 }, - { 0x80600040, 0xd0002d29, 0x00ae9000, 0x00800080 }, - { 0x80600040, 0xd0402d29, 0x00ae9040, 0x00800080 }, + { 0x00600008, 0x45c03d29, 0x00ae9800, 0x00010001 }, + { 0x00600008, 0x45e03d29, 0x00ae9820, 0x00010001 }, + { 0x00600008, 0x46003d29, 0x00ae9840, 0x00010001 }, + { 0x00600008, 0x46203d29, 0x00ae9860, 0x00010001 }, + { 0x00600040, 0x45c02529, 0x00ae05c0, 0x00ae05e0 }, + { 0x80600040, 0xd8002d29, 0x00ae05c0, 0x00800080 }, + { 0x00600040, 0x46002529, 0x00ae0600, 0x00ae0620 }, + { 0x80600040, 0xd8402d29, 0x00ae0600, 0x00800080 }, + { 0x00600008, 0x46403d29, 0x00ae9000, 0x00010001 }, + { 0x00600008, 0x46603d29, 0x00ae9020, 0x00010001 }, + { 0x00600008, 0x46803d29, 0x00ae9040, 0x00010001 }, + { 0x00600008, 0x46a03d29, 0x00ae9060, 0x00010001 }, + { 0x00600040, 0x46402529, 0x00ae0640, 0x00ae0660 }, + { 0x80600040, 0xd0002d29, 0x00ae0640, 0x00800080 }, + { 0x00600040, 0x46802529, 0x00ae0680, 0x00ae06a0 }, + { 0x80600040, 0xd0402d29, 0x00ae0680, 0x00800080 }, + { 0x00400040, 0x22082da8, 0x006902c0, 0x06000600 }, { 0x00400040, 0x22002da8, 0x006902c0, 0x00000000 }, { 0x00400040, 0x22082da8, 0x006902c0, 0x02000200 }, { 0x00800401, 0x23a00231, 0x00d28401, 0x00000000 }, diff -Nru intel-vaapi-driver-1.7.1/src/shaders/post_processing/gen7/pa_to_pl2.g7b intel-vaapi-driver-1.7.0/src/shaders/post_processing/gen7/pa_to_pl2.g7b --- intel-vaapi-driver-1.7.1/src/shaders/post_processing/gen7/pa_to_pl2.g7b 2016-06-16 00:57:56.000000000 +0000 +++ intel-vaapi-driver-1.7.0/src/shaders/post_processing/gen7/pa_to_pl2.g7b 2016-03-15 06:43:01.000000000 +0000 @@ -512,36 +512,86 @@ { 0x80800040, 0xa4202d29, 0x00b18420, 0x00800080 }, { 0x80800040, 0xa4402d29, 0x00b18440, 0x00800080 }, { 0x80800040, 0xa4602d29, 0x00b18460, 0x00800080 }, - { 0x80600040, 0xc8002d29, 0x00ae8800, 0x00800080 }, - { 0x80600040, 0xc8402d29, 0x00ae8840, 0x00800080 }, - { 0x80600040, 0xc0002d29, 0x00ae8000, 0x00800080 }, - { 0x80600040, 0xc0402d29, 0x00ae8040, 0x00800080 }, + { 0x00600008, 0x45c03d29, 0x00ae8800, 0x00010001 }, + { 0x00600008, 0x45e03d29, 0x00ae8820, 0x00010001 }, + { 0x00600008, 0x46003d29, 0x00ae8840, 0x00010001 }, + { 0x00600008, 0x46203d29, 0x00ae8860, 0x00010001 }, + { 0x00600040, 0x45c02529, 0x00ae05c0, 0x00ae05e0 }, + { 0x80600040, 0xc8002d29, 0x00ae05c0, 0x00800080 }, + { 0x00600040, 0x46002529, 0x00ae0600, 0x00ae0620 }, + { 0x80600040, 0xc8402d29, 0x00ae0600, 0x00800080 }, + { 0x00600008, 0x46403d29, 0x00ae8000, 0x00010001 }, + { 0x00600008, 0x46603d29, 0x00ae8020, 0x00010001 }, + { 0x00600008, 0x46803d29, 0x00ae8040, 0x00010001 }, + { 0x00600008, 0x46a03d29, 0x00ae8060, 0x00010001 }, + { 0x00600040, 0x46402529, 0x00ae0640, 0x00ae0660 }, + { 0x80600040, 0xc0002d29, 0x00ae0640, 0x00800080 }, + { 0x00600040, 0x46802529, 0x00ae0680, 0x00ae06a0 }, + { 0x80600040, 0xc0402d29, 0x00ae0680, 0x00800080 }, { 0x00400040, 0x22002da8, 0x006902c0, 0x04000400 }, { 0x80800040, 0xb4002d29, 0x00b19400, 0x00800080 }, { 0x80800040, 0xb4202d29, 0x00b19420, 0x00800080 }, { 0x80800040, 0xb4402d29, 0x00b19440, 0x00800080 }, { 0x80800040, 0xb4602d29, 0x00b19460, 0x00800080 }, - { 0x80600040, 0xd8002d29, 0x00ae9800, 0x00800080 }, - { 0x80600040, 0xd8402d29, 0x00ae9840, 0x00800080 }, - { 0x80600040, 0xd0002d29, 0x00ae9000, 0x00800080 }, - { 0x80600040, 0xd0402d29, 0x00ae9040, 0x00800080 }, + { 0x00600008, 0x45c03d29, 0x00ae9800, 0x00010001 }, + { 0x00600008, 0x45e03d29, 0x00ae9820, 0x00010001 }, + { 0x00600008, 0x46003d29, 0x00ae9840, 0x00010001 }, + { 0x00600008, 0x46203d29, 0x00ae9860, 0x00010001 }, + { 0x00600040, 0x45c02529, 0x00ae05c0, 0x00ae05e0 }, + { 0x80600040, 0xd8002d29, 0x00ae05c0, 0x00800080 }, + { 0x00600040, 0x46002529, 0x00ae0600, 0x00ae0620 }, + { 0x80600040, 0xd8402d29, 0x00ae0600, 0x00800080 }, + { 0x00600008, 0x46403d29, 0x00ae9000, 0x00010001 }, + { 0x00600008, 0x46603d29, 0x00ae9020, 0x00010001 }, + { 0x00600008, 0x46803d29, 0x00ae9040, 0x00010001 }, + { 0x00600008, 0x46a03d29, 0x00ae9060, 0x00010001 }, + { 0x00600040, 0x46402529, 0x00ae0640, 0x00ae0660 }, + { 0x80600040, 0xd0002d29, 0x00ae0640, 0x00800080 }, + { 0x00600040, 0x46802529, 0x00ae0680, 0x00ae06a0 }, + { 0x80600040, 0xd0402d29, 0x00ae0680, 0x00800080 }, { 0x00400040, 0x22082da8, 0x006902c0, 0x06000600 }, { 0x80800040, 0xa4002d29, 0x00b18400, 0x00800080 }, { 0x80800040, 0xa4202d29, 0x00b18420, 0x00800080 }, { 0x80800040, 0xa4402d29, 0x00b18440, 0x00800080 }, { 0x80800040, 0xa4602d29, 0x00b18460, 0x00800080 }, - { 0x80600040, 0xc8002d29, 0x00ae8800, 0x00800080 }, - { 0x80600040, 0xc8402d29, 0x00ae8840, 0x00800080 }, - { 0x80600040, 0xc0002d29, 0x00ae8000, 0x00800080 }, - { 0x80600040, 0xc0402d29, 0x00ae8040, 0x00800080 }, + { 0x00600008, 0x45c03d29, 0x00ae8800, 0x00010001 }, + { 0x00600008, 0x45e03d29, 0x00ae8820, 0x00010001 }, + { 0x00600008, 0x46003d29, 0x00ae8840, 0x00010001 }, + { 0x00600008, 0x46203d29, 0x00ae8860, 0x00010001 }, + { 0x00600040, 0x45c02529, 0x00ae05c0, 0x00ae05e0 }, + { 0x80600040, 0xc8002d29, 0x00ae05c0, 0x00800080 }, + { 0x00600040, 0x46002529, 0x00ae0600, 0x00ae0620 }, + { 0x80600040, 0xc8402d29, 0x00ae0600, 0x00800080 }, + { 0x00600008, 0x46403d29, 0x00ae8000, 0x00010001 }, + { 0x00600008, 0x46603d29, 0x00ae8020, 0x00010001 }, + { 0x00600008, 0x46803d29, 0x00ae8040, 0x00010001 }, + { 0x00600008, 0x46a03d29, 0x00ae8060, 0x00010001 }, + { 0x00600040, 0x46402529, 0x00ae0640, 0x00ae0660 }, + { 0x80600040, 0xc0002d29, 0x00ae0640, 0x00800080 }, + { 0x00600040, 0x46802529, 0x00ae0680, 0x00ae06a0 }, + { 0x80600040, 0xc0402d29, 0x00ae0680, 0x00800080 }, + { 0x00400040, 0x22002da8, 0x006902c0, 0x04000400 }, { 0x80800040, 0xb4002d29, 0x00b19400, 0x00800080 }, { 0x80800040, 0xb4202d29, 0x00b19420, 0x00800080 }, { 0x80800040, 0xb4402d29, 0x00b19440, 0x00800080 }, { 0x80800040, 0xb4602d29, 0x00b19460, 0x00800080 }, - { 0x80600040, 0xd8002d29, 0x00ae9800, 0x00800080 }, - { 0x80600040, 0xd8402d29, 0x00ae9840, 0x00800080 }, - { 0x80600040, 0xd0002d29, 0x00ae9000, 0x00800080 }, - { 0x80600040, 0xd0402d29, 0x00ae9040, 0x00800080 }, + { 0x00600008, 0x45c03d29, 0x00ae9800, 0x00010001 }, + { 0x00600008, 0x45e03d29, 0x00ae9820, 0x00010001 }, + { 0x00600008, 0x46003d29, 0x00ae9840, 0x00010001 }, + { 0x00600008, 0x46203d29, 0x00ae9860, 0x00010001 }, + { 0x00600040, 0x45c02529, 0x00ae05c0, 0x00ae05e0 }, + { 0x80600040, 0xd8002d29, 0x00ae05c0, 0x00800080 }, + { 0x00600040, 0x46002529, 0x00ae0600, 0x00ae0620 }, + { 0x80600040, 0xd8402d29, 0x00ae0600, 0x00800080 }, + { 0x00600008, 0x46403d29, 0x00ae9000, 0x00010001 }, + { 0x00600008, 0x46603d29, 0x00ae9020, 0x00010001 }, + { 0x00600008, 0x46803d29, 0x00ae9040, 0x00010001 }, + { 0x00600008, 0x46a03d29, 0x00ae9060, 0x00010001 }, + { 0x00600040, 0x46402529, 0x00ae0640, 0x00ae0660 }, + { 0x80600040, 0xd0002d29, 0x00ae0640, 0x00800080 }, + { 0x00600040, 0x46802529, 0x00ae0680, 0x00ae06a0 }, + { 0x80600040, 0xd0402d29, 0x00ae0680, 0x00800080 }, + { 0x00400040, 0x22082da8, 0x006902c0, 0x06000600 }, { 0x00400040, 0x22002da8, 0x006902c0, 0x00000000 }, { 0x00400040, 0x22082da8, 0x006902c0, 0x02000200 }, { 0x00800401, 0x23a00231, 0x00d28401, 0x00000000 }, diff -Nru intel-vaapi-driver-1.7.1/src/shaders/post_processing/gen7/pl2_to_pl2.g75b intel-vaapi-driver-1.7.0/src/shaders/post_processing/gen7/pl2_to_pl2.g75b --- intel-vaapi-driver-1.7.1/src/shaders/post_processing/gen7/pl2_to_pl2.g75b 2016-06-16 00:57:56.000000000 +0000 +++ intel-vaapi-driver-1.7.0/src/shaders/post_processing/gen7/pl2_to_pl2.g75b 2016-03-15 06:43:01.000000000 +0000 @@ -532,36 +532,86 @@ { 0x80800040, 0xa4202d29, 0x00b18420, 0x00800080 }, { 0x80800040, 0xa4402d29, 0x00b18440, 0x00800080 }, { 0x80800040, 0xa4602d29, 0x00b18460, 0x00800080 }, - { 0x80600040, 0xc8002d29, 0x00ae8800, 0x00800080 }, - { 0x80600040, 0xc8402d29, 0x00ae8840, 0x00800080 }, - { 0x80600040, 0xc0002d29, 0x00ae8000, 0x00800080 }, - { 0x80600040, 0xc0402d29, 0x00ae8040, 0x00800080 }, + { 0x00600008, 0x45c03d29, 0x00ae8800, 0x00010001 }, + { 0x00600008, 0x45e03d29, 0x00ae8820, 0x00010001 }, + { 0x00600008, 0x46003d29, 0x00ae8840, 0x00010001 }, + { 0x00600008, 0x46203d29, 0x00ae8860, 0x00010001 }, + { 0x00600040, 0x45c02529, 0x00ae05c0, 0x00ae05e0 }, + { 0x80600040, 0xc8002d29, 0x00ae05c0, 0x00800080 }, + { 0x00600040, 0x46002529, 0x00ae0600, 0x00ae0620 }, + { 0x80600040, 0xc8402d29, 0x00ae0600, 0x00800080 }, + { 0x00600008, 0x46403d29, 0x00ae8000, 0x00010001 }, + { 0x00600008, 0x46603d29, 0x00ae8020, 0x00010001 }, + { 0x00600008, 0x46803d29, 0x00ae8040, 0x00010001 }, + { 0x00600008, 0x46a03d29, 0x00ae8060, 0x00010001 }, + { 0x00600040, 0x46402529, 0x00ae0640, 0x00ae0660 }, + { 0x80600040, 0xc0002d29, 0x00ae0640, 0x00800080 }, + { 0x00600040, 0x46802529, 0x00ae0680, 0x00ae06a0 }, + { 0x80600040, 0xc0402d29, 0x00ae0680, 0x00800080 }, { 0x00400040, 0x22002da8, 0x006902c0, 0x04000400 }, { 0x80800040, 0xb4002d29, 0x00b19400, 0x00800080 }, { 0x80800040, 0xb4202d29, 0x00b19420, 0x00800080 }, { 0x80800040, 0xb4402d29, 0x00b19440, 0x00800080 }, { 0x80800040, 0xb4602d29, 0x00b19460, 0x00800080 }, - { 0x80600040, 0xd8002d29, 0x00ae9800, 0x00800080 }, - { 0x80600040, 0xd8402d29, 0x00ae9840, 0x00800080 }, - { 0x80600040, 0xd0002d29, 0x00ae9000, 0x00800080 }, - { 0x80600040, 0xd0402d29, 0x00ae9040, 0x00800080 }, + { 0x00600008, 0x45c03d29, 0x00ae9800, 0x00010001 }, + { 0x00600008, 0x45e03d29, 0x00ae9820, 0x00010001 }, + { 0x00600008, 0x46003d29, 0x00ae9840, 0x00010001 }, + { 0x00600008, 0x46203d29, 0x00ae9860, 0x00010001 }, + { 0x00600040, 0x45c02529, 0x00ae05c0, 0x00ae05e0 }, + { 0x80600040, 0xd8002d29, 0x00ae05c0, 0x00800080 }, + { 0x00600040, 0x46002529, 0x00ae0600, 0x00ae0620 }, + { 0x80600040, 0xd8402d29, 0x00ae0600, 0x00800080 }, + { 0x00600008, 0x46403d29, 0x00ae9000, 0x00010001 }, + { 0x00600008, 0x46603d29, 0x00ae9020, 0x00010001 }, + { 0x00600008, 0x46803d29, 0x00ae9040, 0x00010001 }, + { 0x00600008, 0x46a03d29, 0x00ae9060, 0x00010001 }, + { 0x00600040, 0x46402529, 0x00ae0640, 0x00ae0660 }, + { 0x80600040, 0xd0002d29, 0x00ae0640, 0x00800080 }, + { 0x00600040, 0x46802529, 0x00ae0680, 0x00ae06a0 }, + { 0x80600040, 0xd0402d29, 0x00ae0680, 0x00800080 }, { 0x00400040, 0x22082da8, 0x006902c0, 0x06000600 }, { 0x80800040, 0xa4002d29, 0x00b18400, 0x00800080 }, { 0x80800040, 0xa4202d29, 0x00b18420, 0x00800080 }, { 0x80800040, 0xa4402d29, 0x00b18440, 0x00800080 }, { 0x80800040, 0xa4602d29, 0x00b18460, 0x00800080 }, - { 0x80600040, 0xc8002d29, 0x00ae8800, 0x00800080 }, - { 0x80600040, 0xc8402d29, 0x00ae8840, 0x00800080 }, - { 0x80600040, 0xc0002d29, 0x00ae8000, 0x00800080 }, - { 0x80600040, 0xc0402d29, 0x00ae8040, 0x00800080 }, + { 0x00600008, 0x45c03d29, 0x00ae8800, 0x00010001 }, + { 0x00600008, 0x45e03d29, 0x00ae8820, 0x00010001 }, + { 0x00600008, 0x46003d29, 0x00ae8840, 0x00010001 }, + { 0x00600008, 0x46203d29, 0x00ae8860, 0x00010001 }, + { 0x00600040, 0x45c02529, 0x00ae05c0, 0x00ae05e0 }, + { 0x80600040, 0xc8002d29, 0x00ae05c0, 0x00800080 }, + { 0x00600040, 0x46002529, 0x00ae0600, 0x00ae0620 }, + { 0x80600040, 0xc8402d29, 0x00ae0600, 0x00800080 }, + { 0x00600008, 0x46403d29, 0x00ae8000, 0x00010001 }, + { 0x00600008, 0x46603d29, 0x00ae8020, 0x00010001 }, + { 0x00600008, 0x46803d29, 0x00ae8040, 0x00010001 }, + { 0x00600008, 0x46a03d29, 0x00ae8060, 0x00010001 }, + { 0x00600040, 0x46402529, 0x00ae0640, 0x00ae0660 }, + { 0x80600040, 0xc0002d29, 0x00ae0640, 0x00800080 }, + { 0x00600040, 0x46802529, 0x00ae0680, 0x00ae06a0 }, + { 0x80600040, 0xc0402d29, 0x00ae0680, 0x00800080 }, + { 0x00400040, 0x22002da8, 0x006902c0, 0x04000400 }, { 0x80800040, 0xb4002d29, 0x00b19400, 0x00800080 }, { 0x80800040, 0xb4202d29, 0x00b19420, 0x00800080 }, { 0x80800040, 0xb4402d29, 0x00b19440, 0x00800080 }, { 0x80800040, 0xb4602d29, 0x00b19460, 0x00800080 }, - { 0x80600040, 0xd8002d29, 0x00ae9800, 0x00800080 }, - { 0x80600040, 0xd8402d29, 0x00ae9840, 0x00800080 }, - { 0x80600040, 0xd0002d29, 0x00ae9000, 0x00800080 }, - { 0x80600040, 0xd0402d29, 0x00ae9040, 0x00800080 }, + { 0x00600008, 0x45c03d29, 0x00ae9800, 0x00010001 }, + { 0x00600008, 0x45e03d29, 0x00ae9820, 0x00010001 }, + { 0x00600008, 0x46003d29, 0x00ae9840, 0x00010001 }, + { 0x00600008, 0x46203d29, 0x00ae9860, 0x00010001 }, + { 0x00600040, 0x45c02529, 0x00ae05c0, 0x00ae05e0 }, + { 0x80600040, 0xd8002d29, 0x00ae05c0, 0x00800080 }, + { 0x00600040, 0x46002529, 0x00ae0600, 0x00ae0620 }, + { 0x80600040, 0xd8402d29, 0x00ae0600, 0x00800080 }, + { 0x00600008, 0x46403d29, 0x00ae9000, 0x00010001 }, + { 0x00600008, 0x46603d29, 0x00ae9020, 0x00010001 }, + { 0x00600008, 0x46803d29, 0x00ae9040, 0x00010001 }, + { 0x00600008, 0x46a03d29, 0x00ae9060, 0x00010001 }, + { 0x00600040, 0x46402529, 0x00ae0640, 0x00ae0660 }, + { 0x80600040, 0xd0002d29, 0x00ae0640, 0x00800080 }, + { 0x00600040, 0x46802529, 0x00ae0680, 0x00ae06a0 }, + { 0x80600040, 0xd0402d29, 0x00ae0680, 0x00800080 }, + { 0x00400040, 0x22082da8, 0x006902c0, 0x06000600 }, { 0x00400040, 0x22002da8, 0x006902c0, 0x00000000 }, { 0x00400040, 0x22082da8, 0x006902c0, 0x02000200 }, { 0x00800401, 0x23a00231, 0x00d28401, 0x00000000 }, diff -Nru intel-vaapi-driver-1.7.1/src/shaders/post_processing/gen7/pl2_to_pl2.g7b intel-vaapi-driver-1.7.0/src/shaders/post_processing/gen7/pl2_to_pl2.g7b --- intel-vaapi-driver-1.7.1/src/shaders/post_processing/gen7/pl2_to_pl2.g7b 2016-06-16 00:57:56.000000000 +0000 +++ intel-vaapi-driver-1.7.0/src/shaders/post_processing/gen7/pl2_to_pl2.g7b 2016-03-15 06:43:01.000000000 +0000 @@ -532,36 +532,86 @@ { 0x80800040, 0xa4202d29, 0x00b18420, 0x00800080 }, { 0x80800040, 0xa4402d29, 0x00b18440, 0x00800080 }, { 0x80800040, 0xa4602d29, 0x00b18460, 0x00800080 }, - { 0x80600040, 0xc8002d29, 0x00ae8800, 0x00800080 }, - { 0x80600040, 0xc8402d29, 0x00ae8840, 0x00800080 }, - { 0x80600040, 0xc0002d29, 0x00ae8000, 0x00800080 }, - { 0x80600040, 0xc0402d29, 0x00ae8040, 0x00800080 }, + { 0x00600008, 0x45c03d29, 0x00ae8800, 0x00010001 }, + { 0x00600008, 0x45e03d29, 0x00ae8820, 0x00010001 }, + { 0x00600008, 0x46003d29, 0x00ae8840, 0x00010001 }, + { 0x00600008, 0x46203d29, 0x00ae8860, 0x00010001 }, + { 0x00600040, 0x45c02529, 0x00ae05c0, 0x00ae05e0 }, + { 0x80600040, 0xc8002d29, 0x00ae05c0, 0x00800080 }, + { 0x00600040, 0x46002529, 0x00ae0600, 0x00ae0620 }, + { 0x80600040, 0xc8402d29, 0x00ae0600, 0x00800080 }, + { 0x00600008, 0x46403d29, 0x00ae8000, 0x00010001 }, + { 0x00600008, 0x46603d29, 0x00ae8020, 0x00010001 }, + { 0x00600008, 0x46803d29, 0x00ae8040, 0x00010001 }, + { 0x00600008, 0x46a03d29, 0x00ae8060, 0x00010001 }, + { 0x00600040, 0x46402529, 0x00ae0640, 0x00ae0660 }, + { 0x80600040, 0xc0002d29, 0x00ae0640, 0x00800080 }, + { 0x00600040, 0x46802529, 0x00ae0680, 0x00ae06a0 }, + { 0x80600040, 0xc0402d29, 0x00ae0680, 0x00800080 }, { 0x00400040, 0x22002da8, 0x006902c0, 0x04000400 }, { 0x80800040, 0xb4002d29, 0x00b19400, 0x00800080 }, { 0x80800040, 0xb4202d29, 0x00b19420, 0x00800080 }, { 0x80800040, 0xb4402d29, 0x00b19440, 0x00800080 }, { 0x80800040, 0xb4602d29, 0x00b19460, 0x00800080 }, - { 0x80600040, 0xd8002d29, 0x00ae9800, 0x00800080 }, - { 0x80600040, 0xd8402d29, 0x00ae9840, 0x00800080 }, - { 0x80600040, 0xd0002d29, 0x00ae9000, 0x00800080 }, - { 0x80600040, 0xd0402d29, 0x00ae9040, 0x00800080 }, + { 0x00600008, 0x45c03d29, 0x00ae9800, 0x00010001 }, + { 0x00600008, 0x45e03d29, 0x00ae9820, 0x00010001 }, + { 0x00600008, 0x46003d29, 0x00ae9840, 0x00010001 }, + { 0x00600008, 0x46203d29, 0x00ae9860, 0x00010001 }, + { 0x00600040, 0x45c02529, 0x00ae05c0, 0x00ae05e0 }, + { 0x80600040, 0xd8002d29, 0x00ae05c0, 0x00800080 }, + { 0x00600040, 0x46002529, 0x00ae0600, 0x00ae0620 }, + { 0x80600040, 0xd8402d29, 0x00ae0600, 0x00800080 }, + { 0x00600008, 0x46403d29, 0x00ae9000, 0x00010001 }, + { 0x00600008, 0x46603d29, 0x00ae9020, 0x00010001 }, + { 0x00600008, 0x46803d29, 0x00ae9040, 0x00010001 }, + { 0x00600008, 0x46a03d29, 0x00ae9060, 0x00010001 }, + { 0x00600040, 0x46402529, 0x00ae0640, 0x00ae0660 }, + { 0x80600040, 0xd0002d29, 0x00ae0640, 0x00800080 }, + { 0x00600040, 0x46802529, 0x00ae0680, 0x00ae06a0 }, + { 0x80600040, 0xd0402d29, 0x00ae0680, 0x00800080 }, { 0x00400040, 0x22082da8, 0x006902c0, 0x06000600 }, { 0x80800040, 0xa4002d29, 0x00b18400, 0x00800080 }, { 0x80800040, 0xa4202d29, 0x00b18420, 0x00800080 }, { 0x80800040, 0xa4402d29, 0x00b18440, 0x00800080 }, { 0x80800040, 0xa4602d29, 0x00b18460, 0x00800080 }, - { 0x80600040, 0xc8002d29, 0x00ae8800, 0x00800080 }, - { 0x80600040, 0xc8402d29, 0x00ae8840, 0x00800080 }, - { 0x80600040, 0xc0002d29, 0x00ae8000, 0x00800080 }, - { 0x80600040, 0xc0402d29, 0x00ae8040, 0x00800080 }, + { 0x00600008, 0x45c03d29, 0x00ae8800, 0x00010001 }, + { 0x00600008, 0x45e03d29, 0x00ae8820, 0x00010001 }, + { 0x00600008, 0x46003d29, 0x00ae8840, 0x00010001 }, + { 0x00600008, 0x46203d29, 0x00ae8860, 0x00010001 }, + { 0x00600040, 0x45c02529, 0x00ae05c0, 0x00ae05e0 }, + { 0x80600040, 0xc8002d29, 0x00ae05c0, 0x00800080 }, + { 0x00600040, 0x46002529, 0x00ae0600, 0x00ae0620 }, + { 0x80600040, 0xc8402d29, 0x00ae0600, 0x00800080 }, + { 0x00600008, 0x46403d29, 0x00ae8000, 0x00010001 }, + { 0x00600008, 0x46603d29, 0x00ae8020, 0x00010001 }, + { 0x00600008, 0x46803d29, 0x00ae8040, 0x00010001 }, + { 0x00600008, 0x46a03d29, 0x00ae8060, 0x00010001 }, + { 0x00600040, 0x46402529, 0x00ae0640, 0x00ae0660 }, + { 0x80600040, 0xc0002d29, 0x00ae0640, 0x00800080 }, + { 0x00600040, 0x46802529, 0x00ae0680, 0x00ae06a0 }, + { 0x80600040, 0xc0402d29, 0x00ae0680, 0x00800080 }, + { 0x00400040, 0x22002da8, 0x006902c0, 0x04000400 }, { 0x80800040, 0xb4002d29, 0x00b19400, 0x00800080 }, { 0x80800040, 0xb4202d29, 0x00b19420, 0x00800080 }, { 0x80800040, 0xb4402d29, 0x00b19440, 0x00800080 }, { 0x80800040, 0xb4602d29, 0x00b19460, 0x00800080 }, - { 0x80600040, 0xd8002d29, 0x00ae9800, 0x00800080 }, - { 0x80600040, 0xd8402d29, 0x00ae9840, 0x00800080 }, - { 0x80600040, 0xd0002d29, 0x00ae9000, 0x00800080 }, - { 0x80600040, 0xd0402d29, 0x00ae9040, 0x00800080 }, + { 0x00600008, 0x45c03d29, 0x00ae9800, 0x00010001 }, + { 0x00600008, 0x45e03d29, 0x00ae9820, 0x00010001 }, + { 0x00600008, 0x46003d29, 0x00ae9840, 0x00010001 }, + { 0x00600008, 0x46203d29, 0x00ae9860, 0x00010001 }, + { 0x00600040, 0x45c02529, 0x00ae05c0, 0x00ae05e0 }, + { 0x80600040, 0xd8002d29, 0x00ae05c0, 0x00800080 }, + { 0x00600040, 0x46002529, 0x00ae0600, 0x00ae0620 }, + { 0x80600040, 0xd8402d29, 0x00ae0600, 0x00800080 }, + { 0x00600008, 0x46403d29, 0x00ae9000, 0x00010001 }, + { 0x00600008, 0x46603d29, 0x00ae9020, 0x00010001 }, + { 0x00600008, 0x46803d29, 0x00ae9040, 0x00010001 }, + { 0x00600008, 0x46a03d29, 0x00ae9060, 0x00010001 }, + { 0x00600040, 0x46402529, 0x00ae0640, 0x00ae0660 }, + { 0x80600040, 0xd0002d29, 0x00ae0640, 0x00800080 }, + { 0x00600040, 0x46802529, 0x00ae0680, 0x00ae06a0 }, + { 0x80600040, 0xd0402d29, 0x00ae0680, 0x00800080 }, + { 0x00400040, 0x22082da8, 0x006902c0, 0x06000600 }, { 0x00400040, 0x22002da8, 0x006902c0, 0x00000000 }, { 0x00400040, 0x22082da8, 0x006902c0, 0x02000200 }, { 0x00800401, 0x23a00231, 0x00d28401, 0x00000000 }, diff -Nru intel-vaapi-driver-1.7.1/src/shaders/post_processing/gen7/pl3_to_pl2.g75b intel-vaapi-driver-1.7.0/src/shaders/post_processing/gen7/pl3_to_pl2.g75b --- intel-vaapi-driver-1.7.1/src/shaders/post_processing/gen7/pl3_to_pl2.g75b 2016-06-16 00:57:56.000000000 +0000 +++ intel-vaapi-driver-1.7.0/src/shaders/post_processing/gen7/pl3_to_pl2.g75b 2016-03-15 06:43:01.000000000 +0000 @@ -544,36 +544,86 @@ { 0x80800040, 0xa4202d29, 0x00b18420, 0x00800080 }, { 0x80800040, 0xa4402d29, 0x00b18440, 0x00800080 }, { 0x80800040, 0xa4602d29, 0x00b18460, 0x00800080 }, - { 0x80600040, 0xc8002d29, 0x00ae8800, 0x00800080 }, - { 0x80600040, 0xc8402d29, 0x00ae8840, 0x00800080 }, - { 0x80600040, 0xc0002d29, 0x00ae8000, 0x00800080 }, - { 0x80600040, 0xc0402d29, 0x00ae8040, 0x00800080 }, + { 0x00600008, 0x45c03d29, 0x00ae8800, 0x00010001 }, + { 0x00600008, 0x45e03d29, 0x00ae8820, 0x00010001 }, + { 0x00600008, 0x46003d29, 0x00ae8840, 0x00010001 }, + { 0x00600008, 0x46203d29, 0x00ae8860, 0x00010001 }, + { 0x00600040, 0x45c02529, 0x00ae05c0, 0x00ae05e0 }, + { 0x80600040, 0xc8002d29, 0x00ae05c0, 0x00800080 }, + { 0x00600040, 0x46002529, 0x00ae0600, 0x00ae0620 }, + { 0x80600040, 0xc8402d29, 0x00ae0600, 0x00800080 }, + { 0x00600008, 0x46403d29, 0x00ae8000, 0x00010001 }, + { 0x00600008, 0x46603d29, 0x00ae8020, 0x00010001 }, + { 0x00600008, 0x46803d29, 0x00ae8040, 0x00010001 }, + { 0x00600008, 0x46a03d29, 0x00ae8060, 0x00010001 }, + { 0x00600040, 0x46402529, 0x00ae0640, 0x00ae0660 }, + { 0x80600040, 0xc0002d29, 0x00ae0640, 0x00800080 }, + { 0x00600040, 0x46802529, 0x00ae0680, 0x00ae06a0 }, + { 0x80600040, 0xc0402d29, 0x00ae0680, 0x00800080 }, { 0x00400040, 0x22002da8, 0x006902c0, 0x04000400 }, { 0x80800040, 0xb4002d29, 0x00b19400, 0x00800080 }, { 0x80800040, 0xb4202d29, 0x00b19420, 0x00800080 }, { 0x80800040, 0xb4402d29, 0x00b19440, 0x00800080 }, { 0x80800040, 0xb4602d29, 0x00b19460, 0x00800080 }, - { 0x80600040, 0xd8002d29, 0x00ae9800, 0x00800080 }, - { 0x80600040, 0xd8402d29, 0x00ae9840, 0x00800080 }, - { 0x80600040, 0xd0002d29, 0x00ae9000, 0x00800080 }, - { 0x80600040, 0xd0402d29, 0x00ae9040, 0x00800080 }, + { 0x00600008, 0x45c03d29, 0x00ae9800, 0x00010001 }, + { 0x00600008, 0x45e03d29, 0x00ae9820, 0x00010001 }, + { 0x00600008, 0x46003d29, 0x00ae9840, 0x00010001 }, + { 0x00600008, 0x46203d29, 0x00ae9860, 0x00010001 }, + { 0x00600040, 0x45c02529, 0x00ae05c0, 0x00ae05e0 }, + { 0x80600040, 0xd8002d29, 0x00ae05c0, 0x00800080 }, + { 0x00600040, 0x46002529, 0x00ae0600, 0x00ae0620 }, + { 0x80600040, 0xd8402d29, 0x00ae0600, 0x00800080 }, + { 0x00600008, 0x46403d29, 0x00ae9000, 0x00010001 }, + { 0x00600008, 0x46603d29, 0x00ae9020, 0x00010001 }, + { 0x00600008, 0x46803d29, 0x00ae9040, 0x00010001 }, + { 0x00600008, 0x46a03d29, 0x00ae9060, 0x00010001 }, + { 0x00600040, 0x46402529, 0x00ae0640, 0x00ae0660 }, + { 0x80600040, 0xd0002d29, 0x00ae0640, 0x00800080 }, + { 0x00600040, 0x46802529, 0x00ae0680, 0x00ae06a0 }, + { 0x80600040, 0xd0402d29, 0x00ae0680, 0x00800080 }, { 0x00400040, 0x22082da8, 0x006902c0, 0x06000600 }, { 0x80800040, 0xa4002d29, 0x00b18400, 0x00800080 }, { 0x80800040, 0xa4202d29, 0x00b18420, 0x00800080 }, { 0x80800040, 0xa4402d29, 0x00b18440, 0x00800080 }, { 0x80800040, 0xa4602d29, 0x00b18460, 0x00800080 }, - { 0x80600040, 0xc8002d29, 0x00ae8800, 0x00800080 }, - { 0x80600040, 0xc8402d29, 0x00ae8840, 0x00800080 }, - { 0x80600040, 0xc0002d29, 0x00ae8000, 0x00800080 }, - { 0x80600040, 0xc0402d29, 0x00ae8040, 0x00800080 }, + { 0x00600008, 0x45c03d29, 0x00ae8800, 0x00010001 }, + { 0x00600008, 0x45e03d29, 0x00ae8820, 0x00010001 }, + { 0x00600008, 0x46003d29, 0x00ae8840, 0x00010001 }, + { 0x00600008, 0x46203d29, 0x00ae8860, 0x00010001 }, + { 0x00600040, 0x45c02529, 0x00ae05c0, 0x00ae05e0 }, + { 0x80600040, 0xc8002d29, 0x00ae05c0, 0x00800080 }, + { 0x00600040, 0x46002529, 0x00ae0600, 0x00ae0620 }, + { 0x80600040, 0xc8402d29, 0x00ae0600, 0x00800080 }, + { 0x00600008, 0x46403d29, 0x00ae8000, 0x00010001 }, + { 0x00600008, 0x46603d29, 0x00ae8020, 0x00010001 }, + { 0x00600008, 0x46803d29, 0x00ae8040, 0x00010001 }, + { 0x00600008, 0x46a03d29, 0x00ae8060, 0x00010001 }, + { 0x00600040, 0x46402529, 0x00ae0640, 0x00ae0660 }, + { 0x80600040, 0xc0002d29, 0x00ae0640, 0x00800080 }, + { 0x00600040, 0x46802529, 0x00ae0680, 0x00ae06a0 }, + { 0x80600040, 0xc0402d29, 0x00ae0680, 0x00800080 }, + { 0x00400040, 0x22002da8, 0x006902c0, 0x04000400 }, { 0x80800040, 0xb4002d29, 0x00b19400, 0x00800080 }, { 0x80800040, 0xb4202d29, 0x00b19420, 0x00800080 }, { 0x80800040, 0xb4402d29, 0x00b19440, 0x00800080 }, { 0x80800040, 0xb4602d29, 0x00b19460, 0x00800080 }, - { 0x80600040, 0xd8002d29, 0x00ae9800, 0x00800080 }, - { 0x80600040, 0xd8402d29, 0x00ae9840, 0x00800080 }, - { 0x80600040, 0xd0002d29, 0x00ae9000, 0x00800080 }, - { 0x80600040, 0xd0402d29, 0x00ae9040, 0x00800080 }, + { 0x00600008, 0x45c03d29, 0x00ae9800, 0x00010001 }, + { 0x00600008, 0x45e03d29, 0x00ae9820, 0x00010001 }, + { 0x00600008, 0x46003d29, 0x00ae9840, 0x00010001 }, + { 0x00600008, 0x46203d29, 0x00ae9860, 0x00010001 }, + { 0x00600040, 0x45c02529, 0x00ae05c0, 0x00ae05e0 }, + { 0x80600040, 0xd8002d29, 0x00ae05c0, 0x00800080 }, + { 0x00600040, 0x46002529, 0x00ae0600, 0x00ae0620 }, + { 0x80600040, 0xd8402d29, 0x00ae0600, 0x00800080 }, + { 0x00600008, 0x46403d29, 0x00ae9000, 0x00010001 }, + { 0x00600008, 0x46603d29, 0x00ae9020, 0x00010001 }, + { 0x00600008, 0x46803d29, 0x00ae9040, 0x00010001 }, + { 0x00600008, 0x46a03d29, 0x00ae9060, 0x00010001 }, + { 0x00600040, 0x46402529, 0x00ae0640, 0x00ae0660 }, + { 0x80600040, 0xd0002d29, 0x00ae0640, 0x00800080 }, + { 0x00600040, 0x46802529, 0x00ae0680, 0x00ae06a0 }, + { 0x80600040, 0xd0402d29, 0x00ae0680, 0x00800080 }, + { 0x00400040, 0x22082da8, 0x006902c0, 0x06000600 }, { 0x00400040, 0x22002da8, 0x006902c0, 0x00000000 }, { 0x00400040, 0x22082da8, 0x006902c0, 0x02000200 }, { 0x00800401, 0x23a00231, 0x00d28401, 0x00000000 }, diff -Nru intel-vaapi-driver-1.7.1/src/shaders/post_processing/gen7/pl3_to_pl2.g7b intel-vaapi-driver-1.7.0/src/shaders/post_processing/gen7/pl3_to_pl2.g7b --- intel-vaapi-driver-1.7.1/src/shaders/post_processing/gen7/pl3_to_pl2.g7b 2016-06-16 00:57:56.000000000 +0000 +++ intel-vaapi-driver-1.7.0/src/shaders/post_processing/gen7/pl3_to_pl2.g7b 2016-03-15 06:43:01.000000000 +0000 @@ -544,36 +544,86 @@ { 0x80800040, 0xa4202d29, 0x00b18420, 0x00800080 }, { 0x80800040, 0xa4402d29, 0x00b18440, 0x00800080 }, { 0x80800040, 0xa4602d29, 0x00b18460, 0x00800080 }, - { 0x80600040, 0xc8002d29, 0x00ae8800, 0x00800080 }, - { 0x80600040, 0xc8402d29, 0x00ae8840, 0x00800080 }, - { 0x80600040, 0xc0002d29, 0x00ae8000, 0x00800080 }, - { 0x80600040, 0xc0402d29, 0x00ae8040, 0x00800080 }, + { 0x00600008, 0x45c03d29, 0x00ae8800, 0x00010001 }, + { 0x00600008, 0x45e03d29, 0x00ae8820, 0x00010001 }, + { 0x00600008, 0x46003d29, 0x00ae8840, 0x00010001 }, + { 0x00600008, 0x46203d29, 0x00ae8860, 0x00010001 }, + { 0x00600040, 0x45c02529, 0x00ae05c0, 0x00ae05e0 }, + { 0x80600040, 0xc8002d29, 0x00ae05c0, 0x00800080 }, + { 0x00600040, 0x46002529, 0x00ae0600, 0x00ae0620 }, + { 0x80600040, 0xc8402d29, 0x00ae0600, 0x00800080 }, + { 0x00600008, 0x46403d29, 0x00ae8000, 0x00010001 }, + { 0x00600008, 0x46603d29, 0x00ae8020, 0x00010001 }, + { 0x00600008, 0x46803d29, 0x00ae8040, 0x00010001 }, + { 0x00600008, 0x46a03d29, 0x00ae8060, 0x00010001 }, + { 0x00600040, 0x46402529, 0x00ae0640, 0x00ae0660 }, + { 0x80600040, 0xc0002d29, 0x00ae0640, 0x00800080 }, + { 0x00600040, 0x46802529, 0x00ae0680, 0x00ae06a0 }, + { 0x80600040, 0xc0402d29, 0x00ae0680, 0x00800080 }, { 0x00400040, 0x22002da8, 0x006902c0, 0x04000400 }, { 0x80800040, 0xb4002d29, 0x00b19400, 0x00800080 }, { 0x80800040, 0xb4202d29, 0x00b19420, 0x00800080 }, { 0x80800040, 0xb4402d29, 0x00b19440, 0x00800080 }, { 0x80800040, 0xb4602d29, 0x00b19460, 0x00800080 }, - { 0x80600040, 0xd8002d29, 0x00ae9800, 0x00800080 }, - { 0x80600040, 0xd8402d29, 0x00ae9840, 0x00800080 }, - { 0x80600040, 0xd0002d29, 0x00ae9000, 0x00800080 }, - { 0x80600040, 0xd0402d29, 0x00ae9040, 0x00800080 }, + { 0x00600008, 0x45c03d29, 0x00ae9800, 0x00010001 }, + { 0x00600008, 0x45e03d29, 0x00ae9820, 0x00010001 }, + { 0x00600008, 0x46003d29, 0x00ae9840, 0x00010001 }, + { 0x00600008, 0x46203d29, 0x00ae9860, 0x00010001 }, + { 0x00600040, 0x45c02529, 0x00ae05c0, 0x00ae05e0 }, + { 0x80600040, 0xd8002d29, 0x00ae05c0, 0x00800080 }, + { 0x00600040, 0x46002529, 0x00ae0600, 0x00ae0620 }, + { 0x80600040, 0xd8402d29, 0x00ae0600, 0x00800080 }, + { 0x00600008, 0x46403d29, 0x00ae9000, 0x00010001 }, + { 0x00600008, 0x46603d29, 0x00ae9020, 0x00010001 }, + { 0x00600008, 0x46803d29, 0x00ae9040, 0x00010001 }, + { 0x00600008, 0x46a03d29, 0x00ae9060, 0x00010001 }, + { 0x00600040, 0x46402529, 0x00ae0640, 0x00ae0660 }, + { 0x80600040, 0xd0002d29, 0x00ae0640, 0x00800080 }, + { 0x00600040, 0x46802529, 0x00ae0680, 0x00ae06a0 }, + { 0x80600040, 0xd0402d29, 0x00ae0680, 0x00800080 }, { 0x00400040, 0x22082da8, 0x006902c0, 0x06000600 }, { 0x80800040, 0xa4002d29, 0x00b18400, 0x00800080 }, { 0x80800040, 0xa4202d29, 0x00b18420, 0x00800080 }, { 0x80800040, 0xa4402d29, 0x00b18440, 0x00800080 }, { 0x80800040, 0xa4602d29, 0x00b18460, 0x00800080 }, - { 0x80600040, 0xc8002d29, 0x00ae8800, 0x00800080 }, - { 0x80600040, 0xc8402d29, 0x00ae8840, 0x00800080 }, - { 0x80600040, 0xc0002d29, 0x00ae8000, 0x00800080 }, - { 0x80600040, 0xc0402d29, 0x00ae8040, 0x00800080 }, + { 0x00600008, 0x45c03d29, 0x00ae8800, 0x00010001 }, + { 0x00600008, 0x45e03d29, 0x00ae8820, 0x00010001 }, + { 0x00600008, 0x46003d29, 0x00ae8840, 0x00010001 }, + { 0x00600008, 0x46203d29, 0x00ae8860, 0x00010001 }, + { 0x00600040, 0x45c02529, 0x00ae05c0, 0x00ae05e0 }, + { 0x80600040, 0xc8002d29, 0x00ae05c0, 0x00800080 }, + { 0x00600040, 0x46002529, 0x00ae0600, 0x00ae0620 }, + { 0x80600040, 0xc8402d29, 0x00ae0600, 0x00800080 }, + { 0x00600008, 0x46403d29, 0x00ae8000, 0x00010001 }, + { 0x00600008, 0x46603d29, 0x00ae8020, 0x00010001 }, + { 0x00600008, 0x46803d29, 0x00ae8040, 0x00010001 }, + { 0x00600008, 0x46a03d29, 0x00ae8060, 0x00010001 }, + { 0x00600040, 0x46402529, 0x00ae0640, 0x00ae0660 }, + { 0x80600040, 0xc0002d29, 0x00ae0640, 0x00800080 }, + { 0x00600040, 0x46802529, 0x00ae0680, 0x00ae06a0 }, + { 0x80600040, 0xc0402d29, 0x00ae0680, 0x00800080 }, + { 0x00400040, 0x22002da8, 0x006902c0, 0x04000400 }, { 0x80800040, 0xb4002d29, 0x00b19400, 0x00800080 }, { 0x80800040, 0xb4202d29, 0x00b19420, 0x00800080 }, { 0x80800040, 0xb4402d29, 0x00b19440, 0x00800080 }, { 0x80800040, 0xb4602d29, 0x00b19460, 0x00800080 }, - { 0x80600040, 0xd8002d29, 0x00ae9800, 0x00800080 }, - { 0x80600040, 0xd8402d29, 0x00ae9840, 0x00800080 }, - { 0x80600040, 0xd0002d29, 0x00ae9000, 0x00800080 }, - { 0x80600040, 0xd0402d29, 0x00ae9040, 0x00800080 }, + { 0x00600008, 0x45c03d29, 0x00ae9800, 0x00010001 }, + { 0x00600008, 0x45e03d29, 0x00ae9820, 0x00010001 }, + { 0x00600008, 0x46003d29, 0x00ae9840, 0x00010001 }, + { 0x00600008, 0x46203d29, 0x00ae9860, 0x00010001 }, + { 0x00600040, 0x45c02529, 0x00ae05c0, 0x00ae05e0 }, + { 0x80600040, 0xd8002d29, 0x00ae05c0, 0x00800080 }, + { 0x00600040, 0x46002529, 0x00ae0600, 0x00ae0620 }, + { 0x80600040, 0xd8402d29, 0x00ae0600, 0x00800080 }, + { 0x00600008, 0x46403d29, 0x00ae9000, 0x00010001 }, + { 0x00600008, 0x46603d29, 0x00ae9020, 0x00010001 }, + { 0x00600008, 0x46803d29, 0x00ae9040, 0x00010001 }, + { 0x00600008, 0x46a03d29, 0x00ae9060, 0x00010001 }, + { 0x00600040, 0x46402529, 0x00ae0640, 0x00ae0660 }, + { 0x80600040, 0xd0002d29, 0x00ae0640, 0x00800080 }, + { 0x00600040, 0x46802529, 0x00ae0680, 0x00ae06a0 }, + { 0x80600040, 0xd0402d29, 0x00ae0680, 0x00800080 }, + { 0x00400040, 0x22082da8, 0x006902c0, 0x06000600 }, { 0x00400040, 0x22002da8, 0x006902c0, 0x00000000 }, { 0x00400040, 0x22082da8, 0x006902c0, 0x02000200 }, { 0x00800401, 0x23a00231, 0x00d28401, 0x00000000 }, diff -Nru intel-vaapi-driver-1.7.1/src/shaders/post_processing/gen7/rgbx_to_nv12.g75b intel-vaapi-driver-1.7.0/src/shaders/post_processing/gen7/rgbx_to_nv12.g75b --- intel-vaapi-driver-1.7.1/src/shaders/post_processing/gen7/rgbx_to_nv12.g75b 2016-06-16 00:57:56.000000000 +0000 +++ intel-vaapi-driver-1.7.0/src/shaders/post_processing/gen7/rgbx_to_nv12.g75b 2016-03-15 06:43:01.000000000 +0000 @@ -937,36 +937,86 @@ { 0x80800040, 0xa4202d29, 0x00b18420, 0x00800080 }, { 0x80800040, 0xa4402d29, 0x00b18440, 0x00800080 }, { 0x80800040, 0xa4602d29, 0x00b18460, 0x00800080 }, - { 0x80600040, 0xc8002d29, 0x00ae8800, 0x00800080 }, - { 0x80600040, 0xc8402d29, 0x00ae8840, 0x00800080 }, - { 0x80600040, 0xc0002d29, 0x00ae8000, 0x00800080 }, - { 0x80600040, 0xc0402d29, 0x00ae8040, 0x00800080 }, + { 0x00600008, 0x45c03d29, 0x00ae8800, 0x00010001 }, + { 0x00600008, 0x45e03d29, 0x00ae8820, 0x00010001 }, + { 0x00600008, 0x46003d29, 0x00ae8840, 0x00010001 }, + { 0x00600008, 0x46203d29, 0x00ae8860, 0x00010001 }, + { 0x00600040, 0x45c02529, 0x00ae05c0, 0x00ae05e0 }, + { 0x80600040, 0xc8002d29, 0x00ae05c0, 0x00800080 }, + { 0x00600040, 0x46002529, 0x00ae0600, 0x00ae0620 }, + { 0x80600040, 0xc8402d29, 0x00ae0600, 0x00800080 }, + { 0x00600008, 0x46403d29, 0x00ae8000, 0x00010001 }, + { 0x00600008, 0x46603d29, 0x00ae8020, 0x00010001 }, + { 0x00600008, 0x46803d29, 0x00ae8040, 0x00010001 }, + { 0x00600008, 0x46a03d29, 0x00ae8060, 0x00010001 }, + { 0x00600040, 0x46402529, 0x00ae0640, 0x00ae0660 }, + { 0x80600040, 0xc0002d29, 0x00ae0640, 0x00800080 }, + { 0x00600040, 0x46802529, 0x00ae0680, 0x00ae06a0 }, + { 0x80600040, 0xc0402d29, 0x00ae0680, 0x00800080 }, { 0x00400040, 0x22002da8, 0x006902c0, 0x04000400 }, { 0x80800040, 0xb4002d29, 0x00b19400, 0x00800080 }, { 0x80800040, 0xb4202d29, 0x00b19420, 0x00800080 }, { 0x80800040, 0xb4402d29, 0x00b19440, 0x00800080 }, { 0x80800040, 0xb4602d29, 0x00b19460, 0x00800080 }, - { 0x80600040, 0xd8002d29, 0x00ae9800, 0x00800080 }, - { 0x80600040, 0xd8402d29, 0x00ae9840, 0x00800080 }, - { 0x80600040, 0xd0002d29, 0x00ae9000, 0x00800080 }, - { 0x80600040, 0xd0402d29, 0x00ae9040, 0x00800080 }, + { 0x00600008, 0x45c03d29, 0x00ae9800, 0x00010001 }, + { 0x00600008, 0x45e03d29, 0x00ae9820, 0x00010001 }, + { 0x00600008, 0x46003d29, 0x00ae9840, 0x00010001 }, + { 0x00600008, 0x46203d29, 0x00ae9860, 0x00010001 }, + { 0x00600040, 0x45c02529, 0x00ae05c0, 0x00ae05e0 }, + { 0x80600040, 0xd8002d29, 0x00ae05c0, 0x00800080 }, + { 0x00600040, 0x46002529, 0x00ae0600, 0x00ae0620 }, + { 0x80600040, 0xd8402d29, 0x00ae0600, 0x00800080 }, + { 0x00600008, 0x46403d29, 0x00ae9000, 0x00010001 }, + { 0x00600008, 0x46603d29, 0x00ae9020, 0x00010001 }, + { 0x00600008, 0x46803d29, 0x00ae9040, 0x00010001 }, + { 0x00600008, 0x46a03d29, 0x00ae9060, 0x00010001 }, + { 0x00600040, 0x46402529, 0x00ae0640, 0x00ae0660 }, + { 0x80600040, 0xd0002d29, 0x00ae0640, 0x00800080 }, + { 0x00600040, 0x46802529, 0x00ae0680, 0x00ae06a0 }, + { 0x80600040, 0xd0402d29, 0x00ae0680, 0x00800080 }, { 0x00400040, 0x22082da8, 0x006902c0, 0x06000600 }, { 0x80800040, 0xa4002d29, 0x00b18400, 0x00800080 }, { 0x80800040, 0xa4202d29, 0x00b18420, 0x00800080 }, { 0x80800040, 0xa4402d29, 0x00b18440, 0x00800080 }, { 0x80800040, 0xa4602d29, 0x00b18460, 0x00800080 }, - { 0x80600040, 0xc8002d29, 0x00ae8800, 0x00800080 }, - { 0x80600040, 0xc8402d29, 0x00ae8840, 0x00800080 }, - { 0x80600040, 0xc0002d29, 0x00ae8000, 0x00800080 }, - { 0x80600040, 0xc0402d29, 0x00ae8040, 0x00800080 }, + { 0x00600008, 0x45c03d29, 0x00ae8800, 0x00010001 }, + { 0x00600008, 0x45e03d29, 0x00ae8820, 0x00010001 }, + { 0x00600008, 0x46003d29, 0x00ae8840, 0x00010001 }, + { 0x00600008, 0x46203d29, 0x00ae8860, 0x00010001 }, + { 0x00600040, 0x45c02529, 0x00ae05c0, 0x00ae05e0 }, + { 0x80600040, 0xc8002d29, 0x00ae05c0, 0x00800080 }, + { 0x00600040, 0x46002529, 0x00ae0600, 0x00ae0620 }, + { 0x80600040, 0xc8402d29, 0x00ae0600, 0x00800080 }, + { 0x00600008, 0x46403d29, 0x00ae8000, 0x00010001 }, + { 0x00600008, 0x46603d29, 0x00ae8020, 0x00010001 }, + { 0x00600008, 0x46803d29, 0x00ae8040, 0x00010001 }, + { 0x00600008, 0x46a03d29, 0x00ae8060, 0x00010001 }, + { 0x00600040, 0x46402529, 0x00ae0640, 0x00ae0660 }, + { 0x80600040, 0xc0002d29, 0x00ae0640, 0x00800080 }, + { 0x00600040, 0x46802529, 0x00ae0680, 0x00ae06a0 }, + { 0x80600040, 0xc0402d29, 0x00ae0680, 0x00800080 }, + { 0x00400040, 0x22002da8, 0x006902c0, 0x04000400 }, { 0x80800040, 0xb4002d29, 0x00b19400, 0x00800080 }, { 0x80800040, 0xb4202d29, 0x00b19420, 0x00800080 }, { 0x80800040, 0xb4402d29, 0x00b19440, 0x00800080 }, { 0x80800040, 0xb4602d29, 0x00b19460, 0x00800080 }, - { 0x80600040, 0xd8002d29, 0x00ae9800, 0x00800080 }, - { 0x80600040, 0xd8402d29, 0x00ae9840, 0x00800080 }, - { 0x80600040, 0xd0002d29, 0x00ae9000, 0x00800080 }, - { 0x80600040, 0xd0402d29, 0x00ae9040, 0x00800080 }, + { 0x00600008, 0x45c03d29, 0x00ae9800, 0x00010001 }, + { 0x00600008, 0x45e03d29, 0x00ae9820, 0x00010001 }, + { 0x00600008, 0x46003d29, 0x00ae9840, 0x00010001 }, + { 0x00600008, 0x46203d29, 0x00ae9860, 0x00010001 }, + { 0x00600040, 0x45c02529, 0x00ae05c0, 0x00ae05e0 }, + { 0x80600040, 0xd8002d29, 0x00ae05c0, 0x00800080 }, + { 0x00600040, 0x46002529, 0x00ae0600, 0x00ae0620 }, + { 0x80600040, 0xd8402d29, 0x00ae0600, 0x00800080 }, + { 0x00600008, 0x46403d29, 0x00ae9000, 0x00010001 }, + { 0x00600008, 0x46603d29, 0x00ae9020, 0x00010001 }, + { 0x00600008, 0x46803d29, 0x00ae9040, 0x00010001 }, + { 0x00600008, 0x46a03d29, 0x00ae9060, 0x00010001 }, + { 0x00600040, 0x46402529, 0x00ae0640, 0x00ae0660 }, + { 0x80600040, 0xd0002d29, 0x00ae0640, 0x00800080 }, + { 0x00600040, 0x46802529, 0x00ae0680, 0x00ae06a0 }, + { 0x80600040, 0xd0402d29, 0x00ae0680, 0x00800080 }, + { 0x00400040, 0x22082da8, 0x006902c0, 0x06000600 }, { 0x00400040, 0x22002da8, 0x006902c0, 0x00000000 }, { 0x00400040, 0x22082da8, 0x006902c0, 0x02000200 }, { 0x00800401, 0x23a00231, 0x00d28401, 0x00000000 }, diff -Nru intel-vaapi-driver-1.7.1/src/shaders/post_processing/gen7/rgbx_to_nv12.g7b intel-vaapi-driver-1.7.0/src/shaders/post_processing/gen7/rgbx_to_nv12.g7b --- intel-vaapi-driver-1.7.1/src/shaders/post_processing/gen7/rgbx_to_nv12.g7b 2016-06-16 00:57:56.000000000 +0000 +++ intel-vaapi-driver-1.7.0/src/shaders/post_processing/gen7/rgbx_to_nv12.g7b 2016-03-15 06:43:01.000000000 +0000 @@ -937,36 +937,86 @@ { 0x80800040, 0xa4202d29, 0x00b18420, 0x00800080 }, { 0x80800040, 0xa4402d29, 0x00b18440, 0x00800080 }, { 0x80800040, 0xa4602d29, 0x00b18460, 0x00800080 }, - { 0x80600040, 0xc8002d29, 0x00ae8800, 0x00800080 }, - { 0x80600040, 0xc8402d29, 0x00ae8840, 0x00800080 }, - { 0x80600040, 0xc0002d29, 0x00ae8000, 0x00800080 }, - { 0x80600040, 0xc0402d29, 0x00ae8040, 0x00800080 }, + { 0x00600008, 0x45c03d29, 0x00ae8800, 0x00010001 }, + { 0x00600008, 0x45e03d29, 0x00ae8820, 0x00010001 }, + { 0x00600008, 0x46003d29, 0x00ae8840, 0x00010001 }, + { 0x00600008, 0x46203d29, 0x00ae8860, 0x00010001 }, + { 0x00600040, 0x45c02529, 0x00ae05c0, 0x00ae05e0 }, + { 0x80600040, 0xc8002d29, 0x00ae05c0, 0x00800080 }, + { 0x00600040, 0x46002529, 0x00ae0600, 0x00ae0620 }, + { 0x80600040, 0xc8402d29, 0x00ae0600, 0x00800080 }, + { 0x00600008, 0x46403d29, 0x00ae8000, 0x00010001 }, + { 0x00600008, 0x46603d29, 0x00ae8020, 0x00010001 }, + { 0x00600008, 0x46803d29, 0x00ae8040, 0x00010001 }, + { 0x00600008, 0x46a03d29, 0x00ae8060, 0x00010001 }, + { 0x00600040, 0x46402529, 0x00ae0640, 0x00ae0660 }, + { 0x80600040, 0xc0002d29, 0x00ae0640, 0x00800080 }, + { 0x00600040, 0x46802529, 0x00ae0680, 0x00ae06a0 }, + { 0x80600040, 0xc0402d29, 0x00ae0680, 0x00800080 }, { 0x00400040, 0x22002da8, 0x006902c0, 0x04000400 }, { 0x80800040, 0xb4002d29, 0x00b19400, 0x00800080 }, { 0x80800040, 0xb4202d29, 0x00b19420, 0x00800080 }, { 0x80800040, 0xb4402d29, 0x00b19440, 0x00800080 }, { 0x80800040, 0xb4602d29, 0x00b19460, 0x00800080 }, - { 0x80600040, 0xd8002d29, 0x00ae9800, 0x00800080 }, - { 0x80600040, 0xd8402d29, 0x00ae9840, 0x00800080 }, - { 0x80600040, 0xd0002d29, 0x00ae9000, 0x00800080 }, - { 0x80600040, 0xd0402d29, 0x00ae9040, 0x00800080 }, + { 0x00600008, 0x45c03d29, 0x00ae9800, 0x00010001 }, + { 0x00600008, 0x45e03d29, 0x00ae9820, 0x00010001 }, + { 0x00600008, 0x46003d29, 0x00ae9840, 0x00010001 }, + { 0x00600008, 0x46203d29, 0x00ae9860, 0x00010001 }, + { 0x00600040, 0x45c02529, 0x00ae05c0, 0x00ae05e0 }, + { 0x80600040, 0xd8002d29, 0x00ae05c0, 0x00800080 }, + { 0x00600040, 0x46002529, 0x00ae0600, 0x00ae0620 }, + { 0x80600040, 0xd8402d29, 0x00ae0600, 0x00800080 }, + { 0x00600008, 0x46403d29, 0x00ae9000, 0x00010001 }, + { 0x00600008, 0x46603d29, 0x00ae9020, 0x00010001 }, + { 0x00600008, 0x46803d29, 0x00ae9040, 0x00010001 }, + { 0x00600008, 0x46a03d29, 0x00ae9060, 0x00010001 }, + { 0x00600040, 0x46402529, 0x00ae0640, 0x00ae0660 }, + { 0x80600040, 0xd0002d29, 0x00ae0640, 0x00800080 }, + { 0x00600040, 0x46802529, 0x00ae0680, 0x00ae06a0 }, + { 0x80600040, 0xd0402d29, 0x00ae0680, 0x00800080 }, { 0x00400040, 0x22082da8, 0x006902c0, 0x06000600 }, { 0x80800040, 0xa4002d29, 0x00b18400, 0x00800080 }, { 0x80800040, 0xa4202d29, 0x00b18420, 0x00800080 }, { 0x80800040, 0xa4402d29, 0x00b18440, 0x00800080 }, { 0x80800040, 0xa4602d29, 0x00b18460, 0x00800080 }, - { 0x80600040, 0xc8002d29, 0x00ae8800, 0x00800080 }, - { 0x80600040, 0xc8402d29, 0x00ae8840, 0x00800080 }, - { 0x80600040, 0xc0002d29, 0x00ae8000, 0x00800080 }, - { 0x80600040, 0xc0402d29, 0x00ae8040, 0x00800080 }, + { 0x00600008, 0x45c03d29, 0x00ae8800, 0x00010001 }, + { 0x00600008, 0x45e03d29, 0x00ae8820, 0x00010001 }, + { 0x00600008, 0x46003d29, 0x00ae8840, 0x00010001 }, + { 0x00600008, 0x46203d29, 0x00ae8860, 0x00010001 }, + { 0x00600040, 0x45c02529, 0x00ae05c0, 0x00ae05e0 }, + { 0x80600040, 0xc8002d29, 0x00ae05c0, 0x00800080 }, + { 0x00600040, 0x46002529, 0x00ae0600, 0x00ae0620 }, + { 0x80600040, 0xc8402d29, 0x00ae0600, 0x00800080 }, + { 0x00600008, 0x46403d29, 0x00ae8000, 0x00010001 }, + { 0x00600008, 0x46603d29, 0x00ae8020, 0x00010001 }, + { 0x00600008, 0x46803d29, 0x00ae8040, 0x00010001 }, + { 0x00600008, 0x46a03d29, 0x00ae8060, 0x00010001 }, + { 0x00600040, 0x46402529, 0x00ae0640, 0x00ae0660 }, + { 0x80600040, 0xc0002d29, 0x00ae0640, 0x00800080 }, + { 0x00600040, 0x46802529, 0x00ae0680, 0x00ae06a0 }, + { 0x80600040, 0xc0402d29, 0x00ae0680, 0x00800080 }, + { 0x00400040, 0x22002da8, 0x006902c0, 0x04000400 }, { 0x80800040, 0xb4002d29, 0x00b19400, 0x00800080 }, { 0x80800040, 0xb4202d29, 0x00b19420, 0x00800080 }, { 0x80800040, 0xb4402d29, 0x00b19440, 0x00800080 }, { 0x80800040, 0xb4602d29, 0x00b19460, 0x00800080 }, - { 0x80600040, 0xd8002d29, 0x00ae9800, 0x00800080 }, - { 0x80600040, 0xd8402d29, 0x00ae9840, 0x00800080 }, - { 0x80600040, 0xd0002d29, 0x00ae9000, 0x00800080 }, - { 0x80600040, 0xd0402d29, 0x00ae9040, 0x00800080 }, + { 0x00600008, 0x45c03d29, 0x00ae9800, 0x00010001 }, + { 0x00600008, 0x45e03d29, 0x00ae9820, 0x00010001 }, + { 0x00600008, 0x46003d29, 0x00ae9840, 0x00010001 }, + { 0x00600008, 0x46203d29, 0x00ae9860, 0x00010001 }, + { 0x00600040, 0x45c02529, 0x00ae05c0, 0x00ae05e0 }, + { 0x80600040, 0xd8002d29, 0x00ae05c0, 0x00800080 }, + { 0x00600040, 0x46002529, 0x00ae0600, 0x00ae0620 }, + { 0x80600040, 0xd8402d29, 0x00ae0600, 0x00800080 }, + { 0x00600008, 0x46403d29, 0x00ae9000, 0x00010001 }, + { 0x00600008, 0x46603d29, 0x00ae9020, 0x00010001 }, + { 0x00600008, 0x46803d29, 0x00ae9040, 0x00010001 }, + { 0x00600008, 0x46a03d29, 0x00ae9060, 0x00010001 }, + { 0x00600040, 0x46402529, 0x00ae0640, 0x00ae0660 }, + { 0x80600040, 0xd0002d29, 0x00ae0640, 0x00800080 }, + { 0x00600040, 0x46802529, 0x00ae0680, 0x00ae06a0 }, + { 0x80600040, 0xd0402d29, 0x00ae0680, 0x00800080 }, + { 0x00400040, 0x22082da8, 0x006902c0, 0x06000600 }, { 0x00400040, 0x22002da8, 0x006902c0, 0x00000000 }, { 0x00400040, 0x22082da8, 0x006902c0, 0x02000200 }, { 0x00800401, 0x23a00231, 0x00d28401, 0x00000000 }, diff -Nru intel-vaapi-driver-1.7.1/src/shaders/post_processing/gen7/Save_AVS_NV12.g4a intel-vaapi-driver-1.7.0/src/shaders/post_processing/gen7/Save_AVS_NV12.g4a --- intel-vaapi-driver-1.7.1/src/shaders/post_processing/gen7/Save_AVS_NV12.g4a 2016-06-16 00:57:46.000000000 +0000 +++ intel-vaapi-driver-1.7.0/src/shaders/post_processing/gen7/Save_AVS_NV12.g4a 2016-03-11 04:38:17.000000000 +0000 @@ -460,12 +460,29 @@ add.sat (16) r[a0.1,96]<1>:uw r[a0.1,96]<16;16,1>:uw 0x0080:uw // U Averaging and Rounding, 8x2 top part - add.sat (8) r[a0.2,0]<2>:uw r[a0.2,0]<16;8,2>:uw 0x0080:uw - add.sat (8) r[a0.2,64]<2>:uw r[a0.2,64]<16;8,2>:uw 0x0080:uw + shr (8) uwBUFFER_5(0,0)<2> r[a0.2,0]<16;8,2>:uw 1:w + shr (8) uwBUFFER_5(1,0)<2> r[a0.2,32]<16;8,2>:uw 1:w + shr (8) uwBUFFER_5(2,0)<2> r[a0.2,64]<16;8,2>:uw 1:w + shr (8) uwBUFFER_5(3,0)<2> r[a0.2,96]<16;8,2>:uw 1:w + + add (8) uwBUFFER_5(0,0)<2> uwBUFFER_5(0,0)<16;8,2> uwBUFFER_5(1,0)<16;8,2> + add.sat (8) r[a0.2,0]<2>:uw uwBUFFER_5(0,0)<16;8,2> 0x0080:uw + + add (8) uwBUFFER_5(2,0)<2> uwBUFFER_5(2,0)<16;8,2> uwBUFFER_5(3,0)<16;8,2> + add.sat (8) r[a0.2,64]<2>:uw uwBUFFER_5(2,0)<16;8,2> 0x0080:uw + // V Averaging and Rounding, 8x2 top part - add.sat (8) r[a0.0,0]<2>:uw r[a0.0,0]<16;8,2>:uw 0x0080:uw - add.sat (8) r[a0.0,64]<2>:uw r[a0.0,64]<16;8,2>:uw 0x0080:uw - + shr (8) uwBUFFER_5(4,0)<2> r[a0.0,0]<16;8,2>:uw 1:w + shr (8) uwBUFFER_5(5,0)<2> r[a0.0,32]<16;8,2>:uw 1:w + shr (8) uwBUFFER_5(6,0)<2> r[a0.0,64]<16;8,2>:uw 1:w + shr (8) uwBUFFER_5(7,0)<2> r[a0.0,96]<16;8,2>:uw 1:w + + add (8) uwBUFFER_5(4,0)<2> uwBUFFER_5(4,0)<16;8,2> uwBUFFER_5(5,0)<16;8,2> + add.sat (8) r[a0.0,0]<2>:uw uwBUFFER_5(4,0)<16;8,2> 0x0080:uw + + add (8) uwBUFFER_5(6,0)<2> uwBUFFER_5(6,0)<16;8,2> uwBUFFER_5(7,0)<16;8,2> + add.sat (8) r[a0.0,64]<2>:uw uwBUFFER_5(6,0)<16;8,2> 0x0080:uw + add (4) a0.0:uw r22.0<4;4,1>:w 1024:uw //Update Buffer 2 pointers //Y Rounding, 16x4 bottom part @@ -475,14 +492,30 @@ add.sat (16) r[a0.5,96]<1>:uw r[a0.5,96]<16;16,1>:uw 0x0080:uw // U Averaging and Rounding, 8x2 bottom part - add.sat (8) r[a0.6,0]<2>:uw r[a0.6,0]<16;8,2>:uw 0x0080:uw - add.sat (8) r[a0.6,64]<2>:uw r[a0.6,64]<16;8,2>:uw 0x0080:uw + shr (8) uwBUFFER_5(0,0)<2> r[a0.6,0]<16;8,2>:uw 1:w + shr (8) uwBUFFER_5(1,0)<2> r[a0.6,32]<16;8,2>:uw 1:w + shr (8) uwBUFFER_5(2,0)<2> r[a0.6,64]<16;8,2>:uw 1:w + shr (8) uwBUFFER_5(3,0)<2> r[a0.6,96]<16;8,2>:uw 1:w + + add (8) uwBUFFER_5(0,0)<2> uwBUFFER_5(0,0)<16;8,2> uwBUFFER_5(1,0)<16;8,2> + add.sat (8) r[a0.6,0]<2>:uw uwBUFFER_5(0,0)<16;8,2> 0x0080:uw + + add (8) uwBUFFER_5(2,0)<2> uwBUFFER_5(2,0)<16;8,2> uwBUFFER_5(3,0)<16;8,2> + add.sat (8) r[a0.6,64]<2>:uw uwBUFFER_5(2,0)<16;8,2> 0x0080:uw + // V Averaging and Rounding, 8x2 bottom part - add.sat (8) r[a0.4,0]<2>:uw r[a0.4,0]<16;8,2>:uw 0x0080:uw - add.sat (8) r[a0.4,64]<2>:uw r[a0.4,64]<16;8,2>:uw 0x0080:uw - + shr (8) uwBUFFER_5(4,0)<2> r[a0.4,0]<16;8,2>:uw 1:w + shr (8) uwBUFFER_5(5,0)<2> r[a0.4,32]<16;8,2>:uw 1:w + shr (8) uwBUFFER_5(6,0)<2> r[a0.4,64]<16;8,2>:uw 1:w + shr (8) uwBUFFER_5(7,0)<2> r[a0.4,96]<16;8,2>:uw 1:w + + add (8) uwBUFFER_5(4,0)<2> uwBUFFER_5(4,0)<16;8,2> uwBUFFER_5(5,0)<16;8,2> + add.sat (8) r[a0.4,0]<2>:uw uwBUFFER_5(4,0)<16;8,2> 0x0080:uw + + add (8) uwBUFFER_5(6,0)<2> uwBUFFER_5(6,0)<16;8,2> uwBUFFER_5(7,0)<16;8,2> + add.sat (8) r[a0.4,64]<2>:uw uwBUFFER_5(6,0)<16;8,2> 0x0080:uw + add (4) a0.4:uw r22.0<4;4,1>:w 1536:uw //Update Buffer 3 pointers - //Y Rounding 16x4 top part add.sat (16) r[a0.1,0]<1>:uw r[a0.1,0]<16;16,1>:uw 0x0080:uw add.sat (16) r[a0.1,32]<1>:uw r[a0.1,32]<16;16,1>:uw 0x0080:uw @@ -490,12 +523,31 @@ add.sat (16) r[a0.1,96]<1>:uw r[a0.1,96]<16;16,1>:uw 0x0080:uw // U Averaging and Rounding, 8x2 top part - add.sat (8) r[a0.2,0]<2>:uw r[a0.2,0]<16;8,2>:uw 0x0080:uw - add.sat (8) r[a0.2,64]<2>:uw r[a0.2,64]<16;8,2>:uw 0x0080:uw + shr (8) uwBUFFER_5(0,0)<2> r[a0.2,0]<16;8,2>:uw 1:w + shr (8) uwBUFFER_5(1,0)<2> r[a0.2,32]<16;8,2>:uw 1:w + shr (8) uwBUFFER_5(2,0)<2> r[a0.2,64]<16;8,2>:uw 1:w + shr (8) uwBUFFER_5(3,0)<2> r[a0.2,96]<16;8,2>:uw 1:w + + add (8) uwBUFFER_5(0,0)<2> uwBUFFER_5(0,0)<16;8,2> uwBUFFER_5(1,0)<16;8,2> + add.sat (8) r[a0.2,0]<2>:uw uwBUFFER_5(0,0)<16;8,2> 0x0080:uw + + add (8) uwBUFFER_5(2,0)<2> uwBUFFER_5(2,0)<16;8,2> uwBUFFER_5(3,0)<16;8,2> + add.sat (8) r[a0.2,64]<2>:uw uwBUFFER_5(2,0)<16;8,2> 0x0080:uw + // V Averaging and Rounding, 8x2 top part - add.sat (8) r[a0.0,0]<2>:uw r[a0.0,0]<16;8,2>:uw 0x0080:uw - add.sat (8) r[a0.0,64]<2>:uw r[a0.0,64]<16;8,2>:uw 0x0080:uw - + shr (8) uwBUFFER_5(4,0)<2> r[a0.0,0]<16;8,2>:uw 1:w + shr (8) uwBUFFER_5(5,0)<2> r[a0.0,32]<16;8,2>:uw 1:w + shr (8) uwBUFFER_5(6,0)<2> r[a0.0,64]<16;8,2>:uw 1:w + shr (8) uwBUFFER_5(7,0)<2> r[a0.0,96]<16;8,2>:uw 1:w + + add (8) uwBUFFER_5(4,0)<2> uwBUFFER_5(4,0)<16;8,2> uwBUFFER_5(5,0)<16;8,2> + add.sat (8) r[a0.0,0]<2>:uw uwBUFFER_5(4,0)<16;8,2> 0x0080:uw + + add (8) uwBUFFER_5(6,0)<2> uwBUFFER_5(6,0)<16;8,2> uwBUFFER_5(7,0)<16;8,2> + add.sat (8) r[a0.0,64]<2>:uw uwBUFFER_5(6,0)<16;8,2> 0x0080:uw + + add (4) a0.0:uw r22.0<4;4,1>:w 1024:uw //Update Buffer 2 pointers + //Y Rounding, 16x4 bottom part add.sat (16) r[a0.5,0]<1>:uw r[a0.5,0]<16;16,1>:uw 0x0080:uw add.sat (16) r[a0.5,32]<1>:uw r[a0.5,32]<16;16,1>:uw 0x0080:uw @@ -503,12 +555,30 @@ add.sat (16) r[a0.5,96]<1>:uw r[a0.5,96]<16;16,1>:uw 0x0080:uw // U Averaging and Rounding, 8x2 bottom part - add.sat (8) r[a0.6,0]<2>:uw r[a0.6,0]<16;8,2>:uw 0x0080:uw - add.sat (8) r[a0.6,64]<2>:uw r[a0.6,64]<16;8,2>:uw 0x0080:uw + shr (8) uwBUFFER_5(0,0)<2> r[a0.6,0]<16;8,2>:uw 1:w + shr (8) uwBUFFER_5(1,0)<2> r[a0.6,32]<16;8,2>:uw 1:w + shr (8) uwBUFFER_5(2,0)<2> r[a0.6,64]<16;8,2>:uw 1:w + shr (8) uwBUFFER_5(3,0)<2> r[a0.6,96]<16;8,2>:uw 1:w + + add (8) uwBUFFER_5(0,0)<2> uwBUFFER_5(0,0)<16;8,2> uwBUFFER_5(1,0)<16;8,2> + add.sat (8) r[a0.6,0]<2>:uw uwBUFFER_5(0,0)<16;8,2> 0x0080:uw + + add (8) uwBUFFER_5(2,0)<2> uwBUFFER_5(2,0)<16;8,2> uwBUFFER_5(3,0)<16;8,2> + add.sat (8) r[a0.6,64]<2>:uw uwBUFFER_5(2,0)<16;8,2> 0x0080:uw + // V Averaging and Rounding, 8x2 bottom part - add.sat (8) r[a0.4,0]<2>:uw r[a0.4,0]<16;8,2>:uw 0x0080:uw - add.sat (8) r[a0.4,64]<2>:uw r[a0.4,64]<16;8,2>:uw 0x0080:uw - + shr (8) uwBUFFER_5(4,0)<2> r[a0.4,0]<16;8,2>:uw 1:w + shr (8) uwBUFFER_5(5,0)<2> r[a0.4,32]<16;8,2>:uw 1:w + shr (8) uwBUFFER_5(6,0)<2> r[a0.4,64]<16;8,2>:uw 1:w + shr (8) uwBUFFER_5(7,0)<2> r[a0.4,96]<16;8,2>:uw 1:w + + add (8) uwBUFFER_5(4,0)<2> uwBUFFER_5(4,0)<16;8,2> uwBUFFER_5(5,0)<16;8,2> + add.sat (8) r[a0.4,0]<2>:uw uwBUFFER_5(4,0)<16;8,2> 0x0080:uw + + add (8) uwBUFFER_5(6,0)<2> uwBUFFER_5(6,0)<16;8,2> uwBUFFER_5(7,0)<16;8,2> + add.sat (8) r[a0.4,64]<2>:uw uwBUFFER_5(6,0)<16;8,2> 0x0080:uw + + add (4) a0.4:uw r22.0<4;4,1>:w 1536:uw //Update Buffer 3 pointers // restore pBUF_CHNL_TOP_8x4 and pBUF_CHNL_BOT_8x4 registers add (4) a0.0:uw r22.0<4;4,1>:w 0:uw add (4) a0.4:uw r22.0<4;4,1>:w 512:uw diff -Nru intel-vaapi-driver-1.7.1/src/shaders/post_processing/gen75/Makefile.in intel-vaapi-driver-1.7.0/src/shaders/post_processing/gen75/Makefile.in --- intel-vaapi-driver-1.7.1/src/shaders/post_processing/gen75/Makefile.in 2016-06-21 02:07:53.000000000 +0000 +++ intel-vaapi-driver-1.7.0/src/shaders/post_processing/gen75/Makefile.in 2016-03-15 06:42:44.000000000 +0000 @@ -194,7 +194,10 @@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ -WAYLAND_SCANNER = @WAYLAND_SCANNER@ +WAYLAND_CFLAGS = @WAYLAND_CFLAGS@ +WAYLAND_LIBS = @WAYLAND_LIBS@ +WAYLAND_SCANNER_CFLAGS = @WAYLAND_SCANNER_CFLAGS@ +WAYLAND_SCANNER_LIBS = @WAYLAND_SCANNER_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ @@ -247,6 +250,8 @@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ +wayland_protocoldir = @wayland_protocoldir@ +wayland_scanner = @wayland_scanner@ INTEL_PP_PRE_G75B = \ sharpening_h_blur.g75b \ sharpening_unmask.g75b \ @@ -268,9 +273,9 @@ exit 1;; \ esac; \ done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/shaders/post_processing/gen75/Makefile'; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/shaders/post_processing/gen75/Makefile'; \ $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --foreign src/shaders/post_processing/gen75/Makefile + $(AUTOMAKE) --gnu src/shaders/post_processing/gen75/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ diff -Nru intel-vaapi-driver-1.7.1/src/shaders/post_processing/gen8/Makefile.in intel-vaapi-driver-1.7.0/src/shaders/post_processing/gen8/Makefile.in --- intel-vaapi-driver-1.7.1/src/shaders/post_processing/gen8/Makefile.in 2016-06-21 02:07:53.000000000 +0000 +++ intel-vaapi-driver-1.7.0/src/shaders/post_processing/gen8/Makefile.in 2016-03-15 06:42:45.000000000 +0000 @@ -195,7 +195,10 @@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ -WAYLAND_SCANNER = @WAYLAND_SCANNER@ +WAYLAND_CFLAGS = @WAYLAND_CFLAGS@ +WAYLAND_LIBS = @WAYLAND_LIBS@ +WAYLAND_SCANNER_CFLAGS = @WAYLAND_SCANNER_CFLAGS@ +WAYLAND_SCANNER_LIBS = @WAYLAND_SCANNER_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ @@ -248,6 +251,8 @@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ +wayland_protocoldir = @wayland_protocoldir@ +wayland_scanner = @wayland_scanner@ INTEL_PP_G8B = \ pl2_to_pl2.g8b \ pl2_to_pl3.g8b \ @@ -322,9 +327,9 @@ exit 1;; \ esac; \ done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/shaders/post_processing/gen8/Makefile'; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/shaders/post_processing/gen8/Makefile'; \ $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --foreign src/shaders/post_processing/gen8/Makefile + $(AUTOMAKE) --gnu src/shaders/post_processing/gen8/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ diff -Nru intel-vaapi-driver-1.7.1/src/shaders/post_processing/gen8/pa_to_pl2.g8b intel-vaapi-driver-1.7.0/src/shaders/post_processing/gen8/pa_to_pl2.g8b --- intel-vaapi-driver-1.7.1/src/shaders/post_processing/gen8/pa_to_pl2.g8b 2016-06-16 00:57:56.000000000 +0000 +++ intel-vaapi-driver-1.7.0/src/shaders/post_processing/gen8/pa_to_pl2.g8b 2016-03-11 04:42:47.000000000 +0000 @@ -114,36 +114,86 @@ { 0x80800040, 0xa2201248, 0x16b18220, 0x00800080 }, { 0x80800040, 0xa2401248, 0x16b18240, 0x00800080 }, { 0x80800040, 0xa2601248, 0x16b18260, 0x00800080 }, - { 0x80600040, 0xc4001248, 0x16ae8400, 0x00800080 }, - { 0x80600040, 0xc4401248, 0x16ae8440, 0x00800080 }, - { 0x80600040, 0xc0001248, 0x16ae8000, 0x00800080 }, - { 0x80600040, 0xc0401248, 0x16ae8040, 0x00800080 }, + { 0x00600008, 0x45c01248, 0x1eae8400, 0x00010001 }, + { 0x00600008, 0x45e01248, 0x1eae8420, 0x00010001 }, + { 0x00600008, 0x46001248, 0x1eae8440, 0x00010001 }, + { 0x00600008, 0x46201248, 0x1eae8460, 0x00010001 }, + { 0x00600040, 0x45c01248, 0x12ae05c0, 0x00ae05e0 }, + { 0x80600040, 0xc4001248, 0x16ae05c0, 0x00800080 }, + { 0x00600040, 0x46001248, 0x12ae0600, 0x00ae0620 }, + { 0x80600040, 0xc4401248, 0x16ae0600, 0x00800080 }, + { 0x00600008, 0x46401248, 0x1eae8000, 0x00010001 }, + { 0x00600008, 0x46601248, 0x1eae8020, 0x00010001 }, + { 0x00600008, 0x46801248, 0x1eae8040, 0x00010001 }, + { 0x00600008, 0x46a01248, 0x1eae8060, 0x00010001 }, + { 0x00600040, 0x46401248, 0x12ae0640, 0x00ae0660 }, + { 0x80600040, 0xc0001248, 0x16ae0640, 0x00800080 }, + { 0x00600040, 0x46801248, 0x12ae0680, 0x00ae06a0 }, + { 0x80600040, 0xc0401248, 0x16ae0680, 0x00800080 }, { 0x00400040, 0x22001a40, 0x166902c0, 0x04000400 }, { 0x80800040, 0xaa001248, 0x16b18a00, 0x00800080 }, { 0x80800040, 0xaa201248, 0x16b18a20, 0x00800080 }, { 0x80800040, 0xaa401248, 0x16b18a40, 0x00800080 }, { 0x80800040, 0xaa601248, 0x16b18a60, 0x00800080 }, - { 0x80600040, 0xcc001248, 0x16ae8c00, 0x00800080 }, - { 0x80600040, 0xcc401248, 0x16ae8c40, 0x00800080 }, - { 0x80600040, 0xc8001248, 0x16ae8800, 0x00800080 }, - { 0x80600040, 0xc8401248, 0x16ae8840, 0x00800080 }, + { 0x00600008, 0x45c01248, 0x1eae8c00, 0x00010001 }, + { 0x00600008, 0x45e01248, 0x1eae8c20, 0x00010001 }, + { 0x00600008, 0x46001248, 0x1eae8c40, 0x00010001 }, + { 0x00600008, 0x46201248, 0x1eae8c60, 0x00010001 }, + { 0x00600040, 0x45c01248, 0x12ae05c0, 0x00ae05e0 }, + { 0x80600040, 0xcc001248, 0x16ae05c0, 0x00800080 }, + { 0x00600040, 0x46001248, 0x12ae0600, 0x00ae0620 }, + { 0x80600040, 0xcc401248, 0x16ae0600, 0x00800080 }, + { 0x00600008, 0x46401248, 0x1eae8800, 0x00010001 }, + { 0x00600008, 0x46601248, 0x1eae8820, 0x00010001 }, + { 0x00600008, 0x46801248, 0x1eae8840, 0x00010001 }, + { 0x00600008, 0x46a01248, 0x1eae8860, 0x00010001 }, + { 0x00600040, 0x46401248, 0x12ae0640, 0x00ae0660 }, + { 0x80600040, 0xc8001248, 0x16ae0640, 0x00800080 }, + { 0x00600040, 0x46801248, 0x12ae0680, 0x00ae06a0 }, + { 0x80600040, 0xc8401248, 0x16ae0680, 0x00800080 }, { 0x00400040, 0x22081a40, 0x166902c0, 0x06000600 }, { 0x80800040, 0xa2001248, 0x16b18200, 0x00800080 }, { 0x80800040, 0xa2201248, 0x16b18220, 0x00800080 }, { 0x80800040, 0xa2401248, 0x16b18240, 0x00800080 }, { 0x80800040, 0xa2601248, 0x16b18260, 0x00800080 }, - { 0x80600040, 0xc4001248, 0x16ae8400, 0x00800080 }, - { 0x80600040, 0xc4401248, 0x16ae8440, 0x00800080 }, - { 0x80600040, 0xc0001248, 0x16ae8000, 0x00800080 }, - { 0x80600040, 0xc0401248, 0x16ae8040, 0x00800080 }, + { 0x00600008, 0x45c01248, 0x1eae8400, 0x00010001 }, + { 0x00600008, 0x45e01248, 0x1eae8420, 0x00010001 }, + { 0x00600008, 0x46001248, 0x1eae8440, 0x00010001 }, + { 0x00600008, 0x46201248, 0x1eae8460, 0x00010001 }, + { 0x00600040, 0x45c01248, 0x12ae05c0, 0x00ae05e0 }, + { 0x80600040, 0xc4001248, 0x16ae05c0, 0x00800080 }, + { 0x00600040, 0x46001248, 0x12ae0600, 0x00ae0620 }, + { 0x80600040, 0xc4401248, 0x16ae0600, 0x00800080 }, + { 0x00600008, 0x46401248, 0x1eae8000, 0x00010001 }, + { 0x00600008, 0x46601248, 0x1eae8020, 0x00010001 }, + { 0x00600008, 0x46801248, 0x1eae8040, 0x00010001 }, + { 0x00600008, 0x46a01248, 0x1eae8060, 0x00010001 }, + { 0x00600040, 0x46401248, 0x12ae0640, 0x00ae0660 }, + { 0x80600040, 0xc0001248, 0x16ae0640, 0x00800080 }, + { 0x00600040, 0x46801248, 0x12ae0680, 0x00ae06a0 }, + { 0x80600040, 0xc0401248, 0x16ae0680, 0x00800080 }, + { 0x00400040, 0x22001a40, 0x166902c0, 0x04000400 }, { 0x80800040, 0xaa001248, 0x16b18a00, 0x00800080 }, { 0x80800040, 0xaa201248, 0x16b18a20, 0x00800080 }, { 0x80800040, 0xaa401248, 0x16b18a40, 0x00800080 }, { 0x80800040, 0xaa601248, 0x16b18a60, 0x00800080 }, - { 0x80600040, 0xcc001248, 0x16ae8c00, 0x00800080 }, - { 0x80600040, 0xcc401248, 0x16ae8c40, 0x00800080 }, - { 0x80600040, 0xc8001248, 0x16ae8800, 0x00800080 }, - { 0x80600040, 0xc8401248, 0x16ae8840, 0x00800080 }, + { 0x00600008, 0x45c01248, 0x1eae8c00, 0x00010001 }, + { 0x00600008, 0x45e01248, 0x1eae8c20, 0x00010001 }, + { 0x00600008, 0x46001248, 0x1eae8c40, 0x00010001 }, + { 0x00600008, 0x46201248, 0x1eae8c60, 0x00010001 }, + { 0x00600040, 0x45c01248, 0x12ae05c0, 0x00ae05e0 }, + { 0x80600040, 0xcc001248, 0x16ae05c0, 0x00800080 }, + { 0x00600040, 0x46001248, 0x12ae0600, 0x00ae0620 }, + { 0x80600040, 0xcc401248, 0x16ae0600, 0x00800080 }, + { 0x00600008, 0x46401248, 0x1eae8800, 0x00010001 }, + { 0x00600008, 0x46601248, 0x1eae8820, 0x00010001 }, + { 0x00600008, 0x46801248, 0x1eae8840, 0x00010001 }, + { 0x00600008, 0x46a01248, 0x1eae8860, 0x00010001 }, + { 0x00600040, 0x46401248, 0x12ae0640, 0x00ae0660 }, + { 0x80600040, 0xc8001248, 0x16ae0640, 0x00800080 }, + { 0x00600040, 0x46801248, 0x12ae0680, 0x00ae06a0 }, + { 0x80600040, 0xc8401248, 0x16ae0680, 0x00800080 }, + { 0x00400040, 0x22081a40, 0x166902c0, 0x06000600 }, { 0x00400040, 0x22001a40, 0x166902c0, 0x00000000 }, { 0x00400040, 0x22081a40, 0x166902c0, 0x02000200 }, { 0x00800201, 0x23a02288, 0x00d28201, 0x00000000 }, diff -Nru intel-vaapi-driver-1.7.1/src/shaders/post_processing/gen8/pl2_to_pl2.g8b intel-vaapi-driver-1.7.0/src/shaders/post_processing/gen8/pl2_to_pl2.g8b --- intel-vaapi-driver-1.7.1/src/shaders/post_processing/gen8/pl2_to_pl2.g8b 2016-06-16 00:57:56.000000000 +0000 +++ intel-vaapi-driver-1.7.0/src/shaders/post_processing/gen8/pl2_to_pl2.g8b 2016-03-11 04:42:46.000000000 +0000 @@ -122,36 +122,86 @@ { 0x80800040, 0xa2201248, 0x16b18220, 0x00800080 }, { 0x80800040, 0xa2401248, 0x16b18240, 0x00800080 }, { 0x80800040, 0xa2601248, 0x16b18260, 0x00800080 }, - { 0x80600040, 0xc4001248, 0x16ae8400, 0x00800080 }, - { 0x80600040, 0xc4401248, 0x16ae8440, 0x00800080 }, - { 0x80600040, 0xc0001248, 0x16ae8000, 0x00800080 }, - { 0x80600040, 0xc0401248, 0x16ae8040, 0x00800080 }, + { 0x00600008, 0x45c01248, 0x1eae8400, 0x00010001 }, + { 0x00600008, 0x45e01248, 0x1eae8420, 0x00010001 }, + { 0x00600008, 0x46001248, 0x1eae8440, 0x00010001 }, + { 0x00600008, 0x46201248, 0x1eae8460, 0x00010001 }, + { 0x00600040, 0x45c01248, 0x12ae05c0, 0x00ae05e0 }, + { 0x80600040, 0xc4001248, 0x16ae05c0, 0x00800080 }, + { 0x00600040, 0x46001248, 0x12ae0600, 0x00ae0620 }, + { 0x80600040, 0xc4401248, 0x16ae0600, 0x00800080 }, + { 0x00600008, 0x46401248, 0x1eae8000, 0x00010001 }, + { 0x00600008, 0x46601248, 0x1eae8020, 0x00010001 }, + { 0x00600008, 0x46801248, 0x1eae8040, 0x00010001 }, + { 0x00600008, 0x46a01248, 0x1eae8060, 0x00010001 }, + { 0x00600040, 0x46401248, 0x12ae0640, 0x00ae0660 }, + { 0x80600040, 0xc0001248, 0x16ae0640, 0x00800080 }, + { 0x00600040, 0x46801248, 0x12ae0680, 0x00ae06a0 }, + { 0x80600040, 0xc0401248, 0x16ae0680, 0x00800080 }, { 0x00400040, 0x22001a40, 0x166902c0, 0x04000400 }, { 0x80800040, 0xaa001248, 0x16b18a00, 0x00800080 }, { 0x80800040, 0xaa201248, 0x16b18a20, 0x00800080 }, { 0x80800040, 0xaa401248, 0x16b18a40, 0x00800080 }, { 0x80800040, 0xaa601248, 0x16b18a60, 0x00800080 }, - { 0x80600040, 0xcc001248, 0x16ae8c00, 0x00800080 }, - { 0x80600040, 0xcc401248, 0x16ae8c40, 0x00800080 }, - { 0x80600040, 0xc8001248, 0x16ae8800, 0x00800080 }, - { 0x80600040, 0xc8401248, 0x16ae8840, 0x00800080 }, + { 0x00600008, 0x45c01248, 0x1eae8c00, 0x00010001 }, + { 0x00600008, 0x45e01248, 0x1eae8c20, 0x00010001 }, + { 0x00600008, 0x46001248, 0x1eae8c40, 0x00010001 }, + { 0x00600008, 0x46201248, 0x1eae8c60, 0x00010001 }, + { 0x00600040, 0x45c01248, 0x12ae05c0, 0x00ae05e0 }, + { 0x80600040, 0xcc001248, 0x16ae05c0, 0x00800080 }, + { 0x00600040, 0x46001248, 0x12ae0600, 0x00ae0620 }, + { 0x80600040, 0xcc401248, 0x16ae0600, 0x00800080 }, + { 0x00600008, 0x46401248, 0x1eae8800, 0x00010001 }, + { 0x00600008, 0x46601248, 0x1eae8820, 0x00010001 }, + { 0x00600008, 0x46801248, 0x1eae8840, 0x00010001 }, + { 0x00600008, 0x46a01248, 0x1eae8860, 0x00010001 }, + { 0x00600040, 0x46401248, 0x12ae0640, 0x00ae0660 }, + { 0x80600040, 0xc8001248, 0x16ae0640, 0x00800080 }, + { 0x00600040, 0x46801248, 0x12ae0680, 0x00ae06a0 }, + { 0x80600040, 0xc8401248, 0x16ae0680, 0x00800080 }, { 0x00400040, 0x22081a40, 0x166902c0, 0x06000600 }, { 0x80800040, 0xa2001248, 0x16b18200, 0x00800080 }, { 0x80800040, 0xa2201248, 0x16b18220, 0x00800080 }, { 0x80800040, 0xa2401248, 0x16b18240, 0x00800080 }, { 0x80800040, 0xa2601248, 0x16b18260, 0x00800080 }, - { 0x80600040, 0xc4001248, 0x16ae8400, 0x00800080 }, - { 0x80600040, 0xc4401248, 0x16ae8440, 0x00800080 }, - { 0x80600040, 0xc0001248, 0x16ae8000, 0x00800080 }, - { 0x80600040, 0xc0401248, 0x16ae8040, 0x00800080 }, + { 0x00600008, 0x45c01248, 0x1eae8400, 0x00010001 }, + { 0x00600008, 0x45e01248, 0x1eae8420, 0x00010001 }, + { 0x00600008, 0x46001248, 0x1eae8440, 0x00010001 }, + { 0x00600008, 0x46201248, 0x1eae8460, 0x00010001 }, + { 0x00600040, 0x45c01248, 0x12ae05c0, 0x00ae05e0 }, + { 0x80600040, 0xc4001248, 0x16ae05c0, 0x00800080 }, + { 0x00600040, 0x46001248, 0x12ae0600, 0x00ae0620 }, + { 0x80600040, 0xc4401248, 0x16ae0600, 0x00800080 }, + { 0x00600008, 0x46401248, 0x1eae8000, 0x00010001 }, + { 0x00600008, 0x46601248, 0x1eae8020, 0x00010001 }, + { 0x00600008, 0x46801248, 0x1eae8040, 0x00010001 }, + { 0x00600008, 0x46a01248, 0x1eae8060, 0x00010001 }, + { 0x00600040, 0x46401248, 0x12ae0640, 0x00ae0660 }, + { 0x80600040, 0xc0001248, 0x16ae0640, 0x00800080 }, + { 0x00600040, 0x46801248, 0x12ae0680, 0x00ae06a0 }, + { 0x80600040, 0xc0401248, 0x16ae0680, 0x00800080 }, + { 0x00400040, 0x22001a40, 0x166902c0, 0x04000400 }, { 0x80800040, 0xaa001248, 0x16b18a00, 0x00800080 }, { 0x80800040, 0xaa201248, 0x16b18a20, 0x00800080 }, { 0x80800040, 0xaa401248, 0x16b18a40, 0x00800080 }, { 0x80800040, 0xaa601248, 0x16b18a60, 0x00800080 }, - { 0x80600040, 0xcc001248, 0x16ae8c00, 0x00800080 }, - { 0x80600040, 0xcc401248, 0x16ae8c40, 0x00800080 }, - { 0x80600040, 0xc8001248, 0x16ae8800, 0x00800080 }, - { 0x80600040, 0xc8401248, 0x16ae8840, 0x00800080 }, + { 0x00600008, 0x45c01248, 0x1eae8c00, 0x00010001 }, + { 0x00600008, 0x45e01248, 0x1eae8c20, 0x00010001 }, + { 0x00600008, 0x46001248, 0x1eae8c40, 0x00010001 }, + { 0x00600008, 0x46201248, 0x1eae8c60, 0x00010001 }, + { 0x00600040, 0x45c01248, 0x12ae05c0, 0x00ae05e0 }, + { 0x80600040, 0xcc001248, 0x16ae05c0, 0x00800080 }, + { 0x00600040, 0x46001248, 0x12ae0600, 0x00ae0620 }, + { 0x80600040, 0xcc401248, 0x16ae0600, 0x00800080 }, + { 0x00600008, 0x46401248, 0x1eae8800, 0x00010001 }, + { 0x00600008, 0x46601248, 0x1eae8820, 0x00010001 }, + { 0x00600008, 0x46801248, 0x1eae8840, 0x00010001 }, + { 0x00600008, 0x46a01248, 0x1eae8860, 0x00010001 }, + { 0x00600040, 0x46401248, 0x12ae0640, 0x00ae0660 }, + { 0x80600040, 0xc8001248, 0x16ae0640, 0x00800080 }, + { 0x00600040, 0x46801248, 0x12ae0680, 0x00ae06a0 }, + { 0x80600040, 0xc8401248, 0x16ae0680, 0x00800080 }, + { 0x00400040, 0x22081a40, 0x166902c0, 0x06000600 }, { 0x00400040, 0x22001a40, 0x166902c0, 0x00000000 }, { 0x00400040, 0x22081a40, 0x166902c0, 0x02000200 }, { 0x00800201, 0x23a02288, 0x00d28201, 0x00000000 }, diff -Nru intel-vaapi-driver-1.7.1/src/shaders/post_processing/gen8/pl3_to_pl2.g8b intel-vaapi-driver-1.7.0/src/shaders/post_processing/gen8/pl3_to_pl2.g8b --- intel-vaapi-driver-1.7.1/src/shaders/post_processing/gen8/pl3_to_pl2.g8b 2016-06-16 00:57:56.000000000 +0000 +++ intel-vaapi-driver-1.7.0/src/shaders/post_processing/gen8/pl3_to_pl2.g8b 2016-03-11 04:42:46.000000000 +0000 @@ -138,36 +138,86 @@ { 0x80800040, 0xa2201248, 0x16b18220, 0x00800080 }, { 0x80800040, 0xa2401248, 0x16b18240, 0x00800080 }, { 0x80800040, 0xa2601248, 0x16b18260, 0x00800080 }, - { 0x80600040, 0xc4001248, 0x16ae8400, 0x00800080 }, - { 0x80600040, 0xc4401248, 0x16ae8440, 0x00800080 }, - { 0x80600040, 0xc0001248, 0x16ae8000, 0x00800080 }, - { 0x80600040, 0xc0401248, 0x16ae8040, 0x00800080 }, + { 0x00600008, 0x45c01248, 0x1eae8400, 0x00010001 }, + { 0x00600008, 0x45e01248, 0x1eae8420, 0x00010001 }, + { 0x00600008, 0x46001248, 0x1eae8440, 0x00010001 }, + { 0x00600008, 0x46201248, 0x1eae8460, 0x00010001 }, + { 0x00600040, 0x45c01248, 0x12ae05c0, 0x00ae05e0 }, + { 0x80600040, 0xc4001248, 0x16ae05c0, 0x00800080 }, + { 0x00600040, 0x46001248, 0x12ae0600, 0x00ae0620 }, + { 0x80600040, 0xc4401248, 0x16ae0600, 0x00800080 }, + { 0x00600008, 0x46401248, 0x1eae8000, 0x00010001 }, + { 0x00600008, 0x46601248, 0x1eae8020, 0x00010001 }, + { 0x00600008, 0x46801248, 0x1eae8040, 0x00010001 }, + { 0x00600008, 0x46a01248, 0x1eae8060, 0x00010001 }, + { 0x00600040, 0x46401248, 0x12ae0640, 0x00ae0660 }, + { 0x80600040, 0xc0001248, 0x16ae0640, 0x00800080 }, + { 0x00600040, 0x46801248, 0x12ae0680, 0x00ae06a0 }, + { 0x80600040, 0xc0401248, 0x16ae0680, 0x00800080 }, { 0x00400040, 0x22001a40, 0x166902c0, 0x04000400 }, { 0x80800040, 0xaa001248, 0x16b18a00, 0x00800080 }, { 0x80800040, 0xaa201248, 0x16b18a20, 0x00800080 }, { 0x80800040, 0xaa401248, 0x16b18a40, 0x00800080 }, { 0x80800040, 0xaa601248, 0x16b18a60, 0x00800080 }, - { 0x80600040, 0xcc001248, 0x16ae8c00, 0x00800080 }, - { 0x80600040, 0xcc401248, 0x16ae8c40, 0x00800080 }, - { 0x80600040, 0xc8001248, 0x16ae8800, 0x00800080 }, - { 0x80600040, 0xc8401248, 0x16ae8840, 0x00800080 }, + { 0x00600008, 0x45c01248, 0x1eae8c00, 0x00010001 }, + { 0x00600008, 0x45e01248, 0x1eae8c20, 0x00010001 }, + { 0x00600008, 0x46001248, 0x1eae8c40, 0x00010001 }, + { 0x00600008, 0x46201248, 0x1eae8c60, 0x00010001 }, + { 0x00600040, 0x45c01248, 0x12ae05c0, 0x00ae05e0 }, + { 0x80600040, 0xcc001248, 0x16ae05c0, 0x00800080 }, + { 0x00600040, 0x46001248, 0x12ae0600, 0x00ae0620 }, + { 0x80600040, 0xcc401248, 0x16ae0600, 0x00800080 }, + { 0x00600008, 0x46401248, 0x1eae8800, 0x00010001 }, + { 0x00600008, 0x46601248, 0x1eae8820, 0x00010001 }, + { 0x00600008, 0x46801248, 0x1eae8840, 0x00010001 }, + { 0x00600008, 0x46a01248, 0x1eae8860, 0x00010001 }, + { 0x00600040, 0x46401248, 0x12ae0640, 0x00ae0660 }, + { 0x80600040, 0xc8001248, 0x16ae0640, 0x00800080 }, + { 0x00600040, 0x46801248, 0x12ae0680, 0x00ae06a0 }, + { 0x80600040, 0xc8401248, 0x16ae0680, 0x00800080 }, { 0x00400040, 0x22081a40, 0x166902c0, 0x06000600 }, { 0x80800040, 0xa2001248, 0x16b18200, 0x00800080 }, { 0x80800040, 0xa2201248, 0x16b18220, 0x00800080 }, { 0x80800040, 0xa2401248, 0x16b18240, 0x00800080 }, { 0x80800040, 0xa2601248, 0x16b18260, 0x00800080 }, - { 0x80600040, 0xc4001248, 0x16ae8400, 0x00800080 }, - { 0x80600040, 0xc4401248, 0x16ae8440, 0x00800080 }, - { 0x80600040, 0xc0001248, 0x16ae8000, 0x00800080 }, - { 0x80600040, 0xc0401248, 0x16ae8040, 0x00800080 }, + { 0x00600008, 0x45c01248, 0x1eae8400, 0x00010001 }, + { 0x00600008, 0x45e01248, 0x1eae8420, 0x00010001 }, + { 0x00600008, 0x46001248, 0x1eae8440, 0x00010001 }, + { 0x00600008, 0x46201248, 0x1eae8460, 0x00010001 }, + { 0x00600040, 0x45c01248, 0x12ae05c0, 0x00ae05e0 }, + { 0x80600040, 0xc4001248, 0x16ae05c0, 0x00800080 }, + { 0x00600040, 0x46001248, 0x12ae0600, 0x00ae0620 }, + { 0x80600040, 0xc4401248, 0x16ae0600, 0x00800080 }, + { 0x00600008, 0x46401248, 0x1eae8000, 0x00010001 }, + { 0x00600008, 0x46601248, 0x1eae8020, 0x00010001 }, + { 0x00600008, 0x46801248, 0x1eae8040, 0x00010001 }, + { 0x00600008, 0x46a01248, 0x1eae8060, 0x00010001 }, + { 0x00600040, 0x46401248, 0x12ae0640, 0x00ae0660 }, + { 0x80600040, 0xc0001248, 0x16ae0640, 0x00800080 }, + { 0x00600040, 0x46801248, 0x12ae0680, 0x00ae06a0 }, + { 0x80600040, 0xc0401248, 0x16ae0680, 0x00800080 }, + { 0x00400040, 0x22001a40, 0x166902c0, 0x04000400 }, { 0x80800040, 0xaa001248, 0x16b18a00, 0x00800080 }, { 0x80800040, 0xaa201248, 0x16b18a20, 0x00800080 }, { 0x80800040, 0xaa401248, 0x16b18a40, 0x00800080 }, { 0x80800040, 0xaa601248, 0x16b18a60, 0x00800080 }, - { 0x80600040, 0xcc001248, 0x16ae8c00, 0x00800080 }, - { 0x80600040, 0xcc401248, 0x16ae8c40, 0x00800080 }, - { 0x80600040, 0xc8001248, 0x16ae8800, 0x00800080 }, - { 0x80600040, 0xc8401248, 0x16ae8840, 0x00800080 }, + { 0x00600008, 0x45c01248, 0x1eae8c00, 0x00010001 }, + { 0x00600008, 0x45e01248, 0x1eae8c20, 0x00010001 }, + { 0x00600008, 0x46001248, 0x1eae8c40, 0x00010001 }, + { 0x00600008, 0x46201248, 0x1eae8c60, 0x00010001 }, + { 0x00600040, 0x45c01248, 0x12ae05c0, 0x00ae05e0 }, + { 0x80600040, 0xcc001248, 0x16ae05c0, 0x00800080 }, + { 0x00600040, 0x46001248, 0x12ae0600, 0x00ae0620 }, + { 0x80600040, 0xcc401248, 0x16ae0600, 0x00800080 }, + { 0x00600008, 0x46401248, 0x1eae8800, 0x00010001 }, + { 0x00600008, 0x46601248, 0x1eae8820, 0x00010001 }, + { 0x00600008, 0x46801248, 0x1eae8840, 0x00010001 }, + { 0x00600008, 0x46a01248, 0x1eae8860, 0x00010001 }, + { 0x00600040, 0x46401248, 0x12ae0640, 0x00ae0660 }, + { 0x80600040, 0xc8001248, 0x16ae0640, 0x00800080 }, + { 0x00600040, 0x46801248, 0x12ae0680, 0x00ae06a0 }, + { 0x80600040, 0xc8401248, 0x16ae0680, 0x00800080 }, + { 0x00400040, 0x22081a40, 0x166902c0, 0x06000600 }, { 0x00400040, 0x22001a40, 0x166902c0, 0x00000000 }, { 0x00400040, 0x22081a40, 0x166902c0, 0x02000200 }, { 0x00800201, 0x23a02288, 0x00d28201, 0x00000000 }, diff -Nru intel-vaapi-driver-1.7.1/src/shaders/post_processing/gen8/rgbx_to_nv12.g8b intel-vaapi-driver-1.7.0/src/shaders/post_processing/gen8/rgbx_to_nv12.g8b --- intel-vaapi-driver-1.7.1/src/shaders/post_processing/gen8/rgbx_to_nv12.g8b 2016-06-16 00:57:56.000000000 +0000 +++ intel-vaapi-driver-1.7.0/src/shaders/post_processing/gen8/rgbx_to_nv12.g8b 2016-03-11 04:42:46.000000000 +0000 @@ -539,36 +539,86 @@ { 0x80800040, 0xa2201248, 0x16b18220, 0x00800080 }, { 0x80800040, 0xa2401248, 0x16b18240, 0x00800080 }, { 0x80800040, 0xa2601248, 0x16b18260, 0x00800080 }, - { 0x80600040, 0xc4001248, 0x16ae8400, 0x00800080 }, - { 0x80600040, 0xc4401248, 0x16ae8440, 0x00800080 }, - { 0x80600040, 0xc0001248, 0x16ae8000, 0x00800080 }, - { 0x80600040, 0xc0401248, 0x16ae8040, 0x00800080 }, + { 0x00600008, 0x45c01248, 0x1eae8400, 0x00010001 }, + { 0x00600008, 0x45e01248, 0x1eae8420, 0x00010001 }, + { 0x00600008, 0x46001248, 0x1eae8440, 0x00010001 }, + { 0x00600008, 0x46201248, 0x1eae8460, 0x00010001 }, + { 0x00600040, 0x45c01248, 0x12ae05c0, 0x00ae05e0 }, + { 0x80600040, 0xc4001248, 0x16ae05c0, 0x00800080 }, + { 0x00600040, 0x46001248, 0x12ae0600, 0x00ae0620 }, + { 0x80600040, 0xc4401248, 0x16ae0600, 0x00800080 }, + { 0x00600008, 0x46401248, 0x1eae8000, 0x00010001 }, + { 0x00600008, 0x46601248, 0x1eae8020, 0x00010001 }, + { 0x00600008, 0x46801248, 0x1eae8040, 0x00010001 }, + { 0x00600008, 0x46a01248, 0x1eae8060, 0x00010001 }, + { 0x00600040, 0x46401248, 0x12ae0640, 0x00ae0660 }, + { 0x80600040, 0xc0001248, 0x16ae0640, 0x00800080 }, + { 0x00600040, 0x46801248, 0x12ae0680, 0x00ae06a0 }, + { 0x80600040, 0xc0401248, 0x16ae0680, 0x00800080 }, { 0x00400040, 0x22001a40, 0x166902c0, 0x04000400 }, { 0x80800040, 0xaa001248, 0x16b18a00, 0x00800080 }, { 0x80800040, 0xaa201248, 0x16b18a20, 0x00800080 }, { 0x80800040, 0xaa401248, 0x16b18a40, 0x00800080 }, { 0x80800040, 0xaa601248, 0x16b18a60, 0x00800080 }, - { 0x80600040, 0xcc001248, 0x16ae8c00, 0x00800080 }, - { 0x80600040, 0xcc401248, 0x16ae8c40, 0x00800080 }, - { 0x80600040, 0xc8001248, 0x16ae8800, 0x00800080 }, - { 0x80600040, 0xc8401248, 0x16ae8840, 0x00800080 }, + { 0x00600008, 0x45c01248, 0x1eae8c00, 0x00010001 }, + { 0x00600008, 0x45e01248, 0x1eae8c20, 0x00010001 }, + { 0x00600008, 0x46001248, 0x1eae8c40, 0x00010001 }, + { 0x00600008, 0x46201248, 0x1eae8c60, 0x00010001 }, + { 0x00600040, 0x45c01248, 0x12ae05c0, 0x00ae05e0 }, + { 0x80600040, 0xcc001248, 0x16ae05c0, 0x00800080 }, + { 0x00600040, 0x46001248, 0x12ae0600, 0x00ae0620 }, + { 0x80600040, 0xcc401248, 0x16ae0600, 0x00800080 }, + { 0x00600008, 0x46401248, 0x1eae8800, 0x00010001 }, + { 0x00600008, 0x46601248, 0x1eae8820, 0x00010001 }, + { 0x00600008, 0x46801248, 0x1eae8840, 0x00010001 }, + { 0x00600008, 0x46a01248, 0x1eae8860, 0x00010001 }, + { 0x00600040, 0x46401248, 0x12ae0640, 0x00ae0660 }, + { 0x80600040, 0xc8001248, 0x16ae0640, 0x00800080 }, + { 0x00600040, 0x46801248, 0x12ae0680, 0x00ae06a0 }, + { 0x80600040, 0xc8401248, 0x16ae0680, 0x00800080 }, { 0x00400040, 0x22081a40, 0x166902c0, 0x06000600 }, { 0x80800040, 0xa2001248, 0x16b18200, 0x00800080 }, { 0x80800040, 0xa2201248, 0x16b18220, 0x00800080 }, { 0x80800040, 0xa2401248, 0x16b18240, 0x00800080 }, { 0x80800040, 0xa2601248, 0x16b18260, 0x00800080 }, - { 0x80600040, 0xc4001248, 0x16ae8400, 0x00800080 }, - { 0x80600040, 0xc4401248, 0x16ae8440, 0x00800080 }, - { 0x80600040, 0xc0001248, 0x16ae8000, 0x00800080 }, - { 0x80600040, 0xc0401248, 0x16ae8040, 0x00800080 }, + { 0x00600008, 0x45c01248, 0x1eae8400, 0x00010001 }, + { 0x00600008, 0x45e01248, 0x1eae8420, 0x00010001 }, + { 0x00600008, 0x46001248, 0x1eae8440, 0x00010001 }, + { 0x00600008, 0x46201248, 0x1eae8460, 0x00010001 }, + { 0x00600040, 0x45c01248, 0x12ae05c0, 0x00ae05e0 }, + { 0x80600040, 0xc4001248, 0x16ae05c0, 0x00800080 }, + { 0x00600040, 0x46001248, 0x12ae0600, 0x00ae0620 }, + { 0x80600040, 0xc4401248, 0x16ae0600, 0x00800080 }, + { 0x00600008, 0x46401248, 0x1eae8000, 0x00010001 }, + { 0x00600008, 0x46601248, 0x1eae8020, 0x00010001 }, + { 0x00600008, 0x46801248, 0x1eae8040, 0x00010001 }, + { 0x00600008, 0x46a01248, 0x1eae8060, 0x00010001 }, + { 0x00600040, 0x46401248, 0x12ae0640, 0x00ae0660 }, + { 0x80600040, 0xc0001248, 0x16ae0640, 0x00800080 }, + { 0x00600040, 0x46801248, 0x12ae0680, 0x00ae06a0 }, + { 0x80600040, 0xc0401248, 0x16ae0680, 0x00800080 }, + { 0x00400040, 0x22001a40, 0x166902c0, 0x04000400 }, { 0x80800040, 0xaa001248, 0x16b18a00, 0x00800080 }, { 0x80800040, 0xaa201248, 0x16b18a20, 0x00800080 }, { 0x80800040, 0xaa401248, 0x16b18a40, 0x00800080 }, { 0x80800040, 0xaa601248, 0x16b18a60, 0x00800080 }, - { 0x80600040, 0xcc001248, 0x16ae8c00, 0x00800080 }, - { 0x80600040, 0xcc401248, 0x16ae8c40, 0x00800080 }, - { 0x80600040, 0xc8001248, 0x16ae8800, 0x00800080 }, - { 0x80600040, 0xc8401248, 0x16ae8840, 0x00800080 }, + { 0x00600008, 0x45c01248, 0x1eae8c00, 0x00010001 }, + { 0x00600008, 0x45e01248, 0x1eae8c20, 0x00010001 }, + { 0x00600008, 0x46001248, 0x1eae8c40, 0x00010001 }, + { 0x00600008, 0x46201248, 0x1eae8c60, 0x00010001 }, + { 0x00600040, 0x45c01248, 0x12ae05c0, 0x00ae05e0 }, + { 0x80600040, 0xcc001248, 0x16ae05c0, 0x00800080 }, + { 0x00600040, 0x46001248, 0x12ae0600, 0x00ae0620 }, + { 0x80600040, 0xcc401248, 0x16ae0600, 0x00800080 }, + { 0x00600008, 0x46401248, 0x1eae8800, 0x00010001 }, + { 0x00600008, 0x46601248, 0x1eae8820, 0x00010001 }, + { 0x00600008, 0x46801248, 0x1eae8840, 0x00010001 }, + { 0x00600008, 0x46a01248, 0x1eae8860, 0x00010001 }, + { 0x00600040, 0x46401248, 0x12ae0640, 0x00ae0660 }, + { 0x80600040, 0xc8001248, 0x16ae0640, 0x00800080 }, + { 0x00600040, 0x46801248, 0x12ae0680, 0x00ae06a0 }, + { 0x80600040, 0xc8401248, 0x16ae0680, 0x00800080 }, + { 0x00400040, 0x22081a40, 0x166902c0, 0x06000600 }, { 0x00400040, 0x22001a40, 0x166902c0, 0x00000000 }, { 0x00400040, 0x22081a40, 0x166902c0, 0x02000200 }, { 0x00800201, 0x23a02288, 0x00d28201, 0x00000000 }, diff -Nru intel-vaapi-driver-1.7.1/src/shaders/post_processing/gen8/Save_AVS_NV12.g8a intel-vaapi-driver-1.7.0/src/shaders/post_processing/gen8/Save_AVS_NV12.g8a --- intel-vaapi-driver-1.7.1/src/shaders/post_processing/gen8/Save_AVS_NV12.g8a 2016-06-16 00:57:46.000000000 +0000 +++ intel-vaapi-driver-1.7.0/src/shaders/post_processing/gen8/Save_AVS_NV12.g8a 2016-03-11 04:38:17.000000000 +0000 @@ -438,12 +438,28 @@ add.sat (16) r[a0.1,96]<1>:uw r[a0.1,96]<16;16,1>:uw 0x0080:uw // U Averaging and Rounding, 8x2 top part - add.sat (8) r[a0.2,0]<2>:uw r[a0.2,0]<16;8,2>:uw 0x0080:uw - add.sat (8) r[a0.2,64]<2>:uw r[a0.2,64]<16;8,2>:uw 0x0080:uw + shr (8) uwBUFFER_5(0,0)<2> r[a0.2,0]<16;8,2>:uw 1:w + shr (8) uwBUFFER_5(1,0)<2> r[a0.2,32]<16;8,2>:uw 1:w + shr (8) uwBUFFER_5(2,0)<2> r[a0.2,64]<16;8,2>:uw 1:w + shr (8) uwBUFFER_5(3,0)<2> r[a0.2,96]<16;8,2>:uw 1:w + + add (8) uwBUFFER_5(0,0)<2> uwBUFFER_5(0,0)<16;8,2> uwBUFFER_5(1,0)<16;8,2> + add.sat (8) r[a0.2,0]<2>:uw uwBUFFER_5(0,0)<16;8,2> 0x0080:uw + + add (8) uwBUFFER_5(2,0)<2> uwBUFFER_5(2,0)<16;8,2> uwBUFFER_5(3,0)<16;8,2> + add.sat (8) r[a0.2,64]<2>:uw uwBUFFER_5(2,0)<16;8,2> 0x0080:uw // V Averaging and Rounding, 8x2 top part - add.sat (8) r[a0.0,0]<2>:uw r[a0.0,0]<16;8,2>:uw 0x0080:uw - add.sat (8) r[a0.0,64]<2>:uw r[a0.0,64]<16;8,2>:uw 0x0080:uw + shr (8) uwBUFFER_5(4,0)<2> r[a0.0,0]<16;8,2>:uw 1:w + shr (8) uwBUFFER_5(5,0)<2> r[a0.0,32]<16;8,2>:uw 1:w + shr (8) uwBUFFER_5(6,0)<2> r[a0.0,64]<16;8,2>:uw 1:w + shr (8) uwBUFFER_5(7,0)<2> r[a0.0,96]<16;8,2>:uw 1:w + + add (8) uwBUFFER_5(4,0)<2> uwBUFFER_5(4,0)<16;8,2> uwBUFFER_5(5,0)<16;8,2> + add.sat (8) r[a0.0,0]<2>:uw uwBUFFER_5(4,0)<16;8,2> 0x0080:uw + + add (8) uwBUFFER_5(6,0)<2> uwBUFFER_5(6,0)<16;8,2> uwBUFFER_5(7,0)<16;8,2> + add.sat (8) r[a0.0,64]<2>:uw uwBUFFER_5(6,0)<16;8,2> 0x0080:uw add (4) a0.0<1>:uw r22.0<4;4,1>:w 1024:uw //Update Buffer 2 pointers @@ -454,15 +470,30 @@ add.sat (16) r[a0.5,96]<1>:uw r[a0.5,96]<16;16,1>:uw 0x0080:uw // U Averaging and Rounding, 8x2 bottom part - add.sat (8) r[a0.6,0]<2>:uw r[a0.6,0]<16;8,2>:uw 0x0080:uw - add.sat (8) r[a0.6,64]<2>:uw r[a0.6,64]<16;8,2>:uw 0x0080:uw + shr (8) uwBUFFER_5(0,0)<2> r[a0.6,0]<16;8,2>:uw 1:w + shr (8) uwBUFFER_5(1,0)<2> r[a0.6,32]<16;8,2>:uw 1:w + shr (8) uwBUFFER_5(2,0)<2> r[a0.6,64]<16;8,2>:uw 1:w + shr (8) uwBUFFER_5(3,0)<2> r[a0.6,96]<16;8,2>:uw 1:w + + add (8) uwBUFFER_5(0,0)<2> uwBUFFER_5(0,0)<16;8,2> uwBUFFER_5(1,0)<16;8,2> + add.sat (8) r[a0.6,0]<2>:uw uwBUFFER_5(0,0)<16;8,2> 0x0080:uw + + add (8) uwBUFFER_5(2,0)<2> uwBUFFER_5(2,0)<16;8,2> uwBUFFER_5(3,0)<16;8,2> + add.sat (8) r[a0.6,64]<2>:uw uwBUFFER_5(2,0)<16;8,2> 0x0080:uw // V Averaging and Rounding, 8x2 bottom part - add.sat (8) r[a0.4,0]<2>:uw r[a0.4,0]<16;8,2>:uw 0x0080:uw - add.sat (8) r[a0.4,64]<2>:uw r[a0.4,64]<16;8,2>:uw 0x0080:uw + shr (8) uwBUFFER_5(4,0)<2> r[a0.4,0]<16;8,2>:uw 1:w + shr (8) uwBUFFER_5(5,0)<2> r[a0.4,32]<16;8,2>:uw 1:w + shr (8) uwBUFFER_5(6,0)<2> r[a0.4,64]<16;8,2>:uw 1:w + shr (8) uwBUFFER_5(7,0)<2> r[a0.4,96]<16;8,2>:uw 1:w - add (4) a0.4<1>:uw r22.0<4;4,1>:w 1536:uw //Update Buffer 3 pointers + add (8) uwBUFFER_5(4,0)<2> uwBUFFER_5(4,0)<16;8,2> uwBUFFER_5(5,0)<16;8,2> + add.sat (8) r[a0.4,0]<2>:uw uwBUFFER_5(4,0)<16;8,2> 0x0080:uw + + add (8) uwBUFFER_5(6,0)<2> uwBUFFER_5(6,0)<16;8,2> uwBUFFER_5(7,0)<16;8,2> + add.sat (8) r[a0.4,64]<2>:uw uwBUFFER_5(6,0)<16;8,2> 0x0080:uw + add (4) a0.4<1>:uw r22.0<4;4,1>:w 1536:uw //Update Buffer 3 pointers //Y Rounding 16x4 top part add.sat (16) r[a0.1,0]<1>:uw r[a0.1,0]<16;16,1>:uw 0x0080:uw add.sat (16) r[a0.1,32]<1>:uw r[a0.1,32]<16;16,1>:uw 0x0080:uw @@ -470,12 +501,30 @@ add.sat (16) r[a0.1,96]<1>:uw r[a0.1,96]<16;16,1>:uw 0x0080:uw // U Averaging and Rounding, 8x2 top part - add.sat (8) r[a0.2,0]<2>:uw r[a0.2,0]<16;8,2>:uw 0x0080:uw - add.sat (8) r[a0.2,64]<2>:uw r[a0.2,64]<16;8,2>:uw 0x0080:uw + shr (8) uwBUFFER_5(0,0)<2> r[a0.2,0]<16;8,2>:uw 1:w + shr (8) uwBUFFER_5(1,0)<2> r[a0.2,32]<16;8,2>:uw 1:w + shr (8) uwBUFFER_5(2,0)<2> r[a0.2,64]<16;8,2>:uw 1:w + shr (8) uwBUFFER_5(3,0)<2> r[a0.2,96]<16;8,2>:uw 1:w + + add (8) uwBUFFER_5(0,0)<2> uwBUFFER_5(0,0)<16;8,2> uwBUFFER_5(1,0)<16;8,2> + add.sat (8) r[a0.2,0]<2>:uw uwBUFFER_5(0,0)<16;8,2> 0x0080:uw + + add (8) uwBUFFER_5(2,0)<2> uwBUFFER_5(2,0)<16;8,2> uwBUFFER_5(3,0)<16;8,2> + add.sat (8) r[a0.2,64]<2>:uw uwBUFFER_5(2,0)<16;8,2> 0x0080:uw // V Averaging and Rounding, 8x2 top part - add.sat (8) r[a0.0,0]<2>:uw r[a0.0,0]<16;8,2>:uw 0x0080:uw - add.sat (8) r[a0.0,64]<2>:uw r[a0.0,64]<16;8,2>:uw 0x0080:uw + shr (8) uwBUFFER_5(4,0)<2> r[a0.0,0]<16;8,2>:uw 1:w + shr (8) uwBUFFER_5(5,0)<2> r[a0.0,32]<16;8,2>:uw 1:w + shr (8) uwBUFFER_5(6,0)<2> r[a0.0,64]<16;8,2>:uw 1:w + shr (8) uwBUFFER_5(7,0)<2> r[a0.0,96]<16;8,2>:uw 1:w + + add (8) uwBUFFER_5(4,0)<2> uwBUFFER_5(4,0)<16;8,2> uwBUFFER_5(5,0)<16;8,2> + add.sat (8) r[a0.0,0]<2>:uw uwBUFFER_5(4,0)<16;8,2> 0x0080:uw + + add (8) uwBUFFER_5(6,0)<2> uwBUFFER_5(6,0)<16;8,2> uwBUFFER_5(7,0)<16;8,2> + add.sat (8) r[a0.0,64]<2>:uw uwBUFFER_5(6,0)<16;8,2> 0x0080:uw + + add (4) a0.0<1>:uw r22.0<4;4,1>:w 1024:uw //Update Buffer 2 pointers //Y Rounding, 16x4 bottom part add.sat (16) r[a0.5,0]<1>:uw r[a0.5,0]<16;16,1>:uw 0x0080:uw @@ -484,13 +533,30 @@ add.sat (16) r[a0.5,96]<1>:uw r[a0.5,96]<16;16,1>:uw 0x0080:uw // U Averaging and Rounding, 8x2 bottom part - add.sat (8) r[a0.6,0]<2>:uw r[a0.6,0]<16;8,2>:uw 0x0080:uw - add.sat (8) r[a0.6,64]<2>:uw r[a0.6,64]<16;8,2>:uw 0x0080:uw + shr (8) uwBUFFER_5(0,0)<2> r[a0.6,0]<16;8,2>:uw 1:w + shr (8) uwBUFFER_5(1,0)<2> r[a0.6,32]<16;8,2>:uw 1:w + shr (8) uwBUFFER_5(2,0)<2> r[a0.6,64]<16;8,2>:uw 1:w + shr (8) uwBUFFER_5(3,0)<2> r[a0.6,96]<16;8,2>:uw 1:w + + add (8) uwBUFFER_5(0,0)<2> uwBUFFER_5(0,0)<16;8,2> uwBUFFER_5(1,0)<16;8,2> + add.sat (8) r[a0.6,0]<2>:uw uwBUFFER_5(0,0)<16;8,2> 0x0080:uw + + add (8) uwBUFFER_5(2,0)<2> uwBUFFER_5(2,0)<16;8,2> uwBUFFER_5(3,0)<16;8,2> + add.sat (8) r[a0.6,64]<2>:uw uwBUFFER_5(2,0)<16;8,2> 0x0080:uw // V Averaging and Rounding, 8x2 bottom part - add.sat (8) r[a0.4,0]<2>:uw r[a0.4,0]<16;8,2>:uw 0x0080:uw - add.sat (8) r[a0.4,64]<2>:uw r[a0.4,64]<16;8,2>:uw 0x0080:uw + shr (8) uwBUFFER_5(4,0)<2> r[a0.4,0]<16;8,2>:uw 1:w + shr (8) uwBUFFER_5(5,0)<2> r[a0.4,32]<16;8,2>:uw 1:w + shr (8) uwBUFFER_5(6,0)<2> r[a0.4,64]<16;8,2>:uw 1:w + shr (8) uwBUFFER_5(7,0)<2> r[a0.4,96]<16;8,2>:uw 1:w + + add (8) uwBUFFER_5(4,0)<2> uwBUFFER_5(4,0)<16;8,2> uwBUFFER_5(5,0)<16;8,2> + add.sat (8) r[a0.4,0]<2>:uw uwBUFFER_5(4,0)<16;8,2> 0x0080:uw + add (8) uwBUFFER_5(6,0)<2> uwBUFFER_5(6,0)<16;8,2> uwBUFFER_5(7,0)<16;8,2> + add.sat (8) r[a0.4,64]<2>:uw uwBUFFER_5(6,0)<16;8,2> 0x0080:uw + + add (4) a0.4<1>:uw r22.0<4;4,1>:w 1536:uw //Update Buffer 3 pointers // restore pBUF_CHNL_TOP_8x4 and pBUF_CHNL_BOT_8x4 registers add (4) a0.0<1>:uw r22.0<4;4,1>:w 0:uw add (4) a0.4<1>:uw r22.0<4;4,1>:w 512:uw diff -Nru intel-vaapi-driver-1.7.1/src/shaders/post_processing/gen9/Makefile.in intel-vaapi-driver-1.7.0/src/shaders/post_processing/gen9/Makefile.in --- intel-vaapi-driver-1.7.1/src/shaders/post_processing/gen9/Makefile.in 2016-06-21 02:07:53.000000000 +0000 +++ intel-vaapi-driver-1.7.0/src/shaders/post_processing/gen9/Makefile.in 2016-03-15 06:42:45.000000000 +0000 @@ -195,7 +195,10 @@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ -WAYLAND_SCANNER = @WAYLAND_SCANNER@ +WAYLAND_CFLAGS = @WAYLAND_CFLAGS@ +WAYLAND_LIBS = @WAYLAND_LIBS@ +WAYLAND_SCANNER_CFLAGS = @WAYLAND_SCANNER_CFLAGS@ +WAYLAND_SCANNER_LIBS = @WAYLAND_SCANNER_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ @@ -248,6 +251,8 @@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ +wayland_protocoldir = @wayland_protocoldir@ +wayland_scanner = @wayland_scanner@ SRCDIR = $(top_srcdir)/src/shaders/post_processing/gen8 INTEL_PP_G9B = \ pl2_to_pl2.g9b \ @@ -317,9 +322,9 @@ exit 1;; \ esac; \ done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/shaders/post_processing/gen9/Makefile'; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/shaders/post_processing/gen9/Makefile'; \ $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --foreign src/shaders/post_processing/gen9/Makefile + $(AUTOMAKE) --gnu src/shaders/post_processing/gen9/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ diff -Nru intel-vaapi-driver-1.7.1/src/shaders/post_processing/gen9/pa_to_pl2.g9b intel-vaapi-driver-1.7.0/src/shaders/post_processing/gen9/pa_to_pl2.g9b --- intel-vaapi-driver-1.7.1/src/shaders/post_processing/gen9/pa_to_pl2.g9b 2016-06-16 00:57:56.000000000 +0000 +++ intel-vaapi-driver-1.7.0/src/shaders/post_processing/gen9/pa_to_pl2.g9b 2016-03-15 06:43:02.000000000 +0000 @@ -114,36 +114,86 @@ { 0x80800040, 0xa2201248, 0x16b18220, 0x00800080 }, { 0x80800040, 0xa2401248, 0x16b18240, 0x00800080 }, { 0x80800040, 0xa2601248, 0x16b18260, 0x00800080 }, - { 0x80600040, 0xc4001248, 0x16ae8400, 0x00800080 }, - { 0x80600040, 0xc4401248, 0x16ae8440, 0x00800080 }, - { 0x80600040, 0xc0001248, 0x16ae8000, 0x00800080 }, - { 0x80600040, 0xc0401248, 0x16ae8040, 0x00800080 }, + { 0x00600008, 0x45c01248, 0x1eae8400, 0x00010001 }, + { 0x00600008, 0x45e01248, 0x1eae8420, 0x00010001 }, + { 0x00600008, 0x46001248, 0x1eae8440, 0x00010001 }, + { 0x00600008, 0x46201248, 0x1eae8460, 0x00010001 }, + { 0x00600040, 0x45c01248, 0x12ae05c0, 0x00ae05e0 }, + { 0x80600040, 0xc4001248, 0x16ae05c0, 0x00800080 }, + { 0x00600040, 0x46001248, 0x12ae0600, 0x00ae0620 }, + { 0x80600040, 0xc4401248, 0x16ae0600, 0x00800080 }, + { 0x00600008, 0x46401248, 0x1eae8000, 0x00010001 }, + { 0x00600008, 0x46601248, 0x1eae8020, 0x00010001 }, + { 0x00600008, 0x46801248, 0x1eae8040, 0x00010001 }, + { 0x00600008, 0x46a01248, 0x1eae8060, 0x00010001 }, + { 0x00600040, 0x46401248, 0x12ae0640, 0x00ae0660 }, + { 0x80600040, 0xc0001248, 0x16ae0640, 0x00800080 }, + { 0x00600040, 0x46801248, 0x12ae0680, 0x00ae06a0 }, + { 0x80600040, 0xc0401248, 0x16ae0680, 0x00800080 }, { 0x00400040, 0x22001a40, 0x166902c0, 0x04000400 }, { 0x80800040, 0xaa001248, 0x16b18a00, 0x00800080 }, { 0x80800040, 0xaa201248, 0x16b18a20, 0x00800080 }, { 0x80800040, 0xaa401248, 0x16b18a40, 0x00800080 }, { 0x80800040, 0xaa601248, 0x16b18a60, 0x00800080 }, - { 0x80600040, 0xcc001248, 0x16ae8c00, 0x00800080 }, - { 0x80600040, 0xcc401248, 0x16ae8c40, 0x00800080 }, - { 0x80600040, 0xc8001248, 0x16ae8800, 0x00800080 }, - { 0x80600040, 0xc8401248, 0x16ae8840, 0x00800080 }, + { 0x00600008, 0x45c01248, 0x1eae8c00, 0x00010001 }, + { 0x00600008, 0x45e01248, 0x1eae8c20, 0x00010001 }, + { 0x00600008, 0x46001248, 0x1eae8c40, 0x00010001 }, + { 0x00600008, 0x46201248, 0x1eae8c60, 0x00010001 }, + { 0x00600040, 0x45c01248, 0x12ae05c0, 0x00ae05e0 }, + { 0x80600040, 0xcc001248, 0x16ae05c0, 0x00800080 }, + { 0x00600040, 0x46001248, 0x12ae0600, 0x00ae0620 }, + { 0x80600040, 0xcc401248, 0x16ae0600, 0x00800080 }, + { 0x00600008, 0x46401248, 0x1eae8800, 0x00010001 }, + { 0x00600008, 0x46601248, 0x1eae8820, 0x00010001 }, + { 0x00600008, 0x46801248, 0x1eae8840, 0x00010001 }, + { 0x00600008, 0x46a01248, 0x1eae8860, 0x00010001 }, + { 0x00600040, 0x46401248, 0x12ae0640, 0x00ae0660 }, + { 0x80600040, 0xc8001248, 0x16ae0640, 0x00800080 }, + { 0x00600040, 0x46801248, 0x12ae0680, 0x00ae06a0 }, + { 0x80600040, 0xc8401248, 0x16ae0680, 0x00800080 }, { 0x00400040, 0x22081a40, 0x166902c0, 0x06000600 }, { 0x80800040, 0xa2001248, 0x16b18200, 0x00800080 }, { 0x80800040, 0xa2201248, 0x16b18220, 0x00800080 }, { 0x80800040, 0xa2401248, 0x16b18240, 0x00800080 }, { 0x80800040, 0xa2601248, 0x16b18260, 0x00800080 }, - { 0x80600040, 0xc4001248, 0x16ae8400, 0x00800080 }, - { 0x80600040, 0xc4401248, 0x16ae8440, 0x00800080 }, - { 0x80600040, 0xc0001248, 0x16ae8000, 0x00800080 }, - { 0x80600040, 0xc0401248, 0x16ae8040, 0x00800080 }, + { 0x00600008, 0x45c01248, 0x1eae8400, 0x00010001 }, + { 0x00600008, 0x45e01248, 0x1eae8420, 0x00010001 }, + { 0x00600008, 0x46001248, 0x1eae8440, 0x00010001 }, + { 0x00600008, 0x46201248, 0x1eae8460, 0x00010001 }, + { 0x00600040, 0x45c01248, 0x12ae05c0, 0x00ae05e0 }, + { 0x80600040, 0xc4001248, 0x16ae05c0, 0x00800080 }, + { 0x00600040, 0x46001248, 0x12ae0600, 0x00ae0620 }, + { 0x80600040, 0xc4401248, 0x16ae0600, 0x00800080 }, + { 0x00600008, 0x46401248, 0x1eae8000, 0x00010001 }, + { 0x00600008, 0x46601248, 0x1eae8020, 0x00010001 }, + { 0x00600008, 0x46801248, 0x1eae8040, 0x00010001 }, + { 0x00600008, 0x46a01248, 0x1eae8060, 0x00010001 }, + { 0x00600040, 0x46401248, 0x12ae0640, 0x00ae0660 }, + { 0x80600040, 0xc0001248, 0x16ae0640, 0x00800080 }, + { 0x00600040, 0x46801248, 0x12ae0680, 0x00ae06a0 }, + { 0x80600040, 0xc0401248, 0x16ae0680, 0x00800080 }, + { 0x00400040, 0x22001a40, 0x166902c0, 0x04000400 }, { 0x80800040, 0xaa001248, 0x16b18a00, 0x00800080 }, { 0x80800040, 0xaa201248, 0x16b18a20, 0x00800080 }, { 0x80800040, 0xaa401248, 0x16b18a40, 0x00800080 }, { 0x80800040, 0xaa601248, 0x16b18a60, 0x00800080 }, - { 0x80600040, 0xcc001248, 0x16ae8c00, 0x00800080 }, - { 0x80600040, 0xcc401248, 0x16ae8c40, 0x00800080 }, - { 0x80600040, 0xc8001248, 0x16ae8800, 0x00800080 }, - { 0x80600040, 0xc8401248, 0x16ae8840, 0x00800080 }, + { 0x00600008, 0x45c01248, 0x1eae8c00, 0x00010001 }, + { 0x00600008, 0x45e01248, 0x1eae8c20, 0x00010001 }, + { 0x00600008, 0x46001248, 0x1eae8c40, 0x00010001 }, + { 0x00600008, 0x46201248, 0x1eae8c60, 0x00010001 }, + { 0x00600040, 0x45c01248, 0x12ae05c0, 0x00ae05e0 }, + { 0x80600040, 0xcc001248, 0x16ae05c0, 0x00800080 }, + { 0x00600040, 0x46001248, 0x12ae0600, 0x00ae0620 }, + { 0x80600040, 0xcc401248, 0x16ae0600, 0x00800080 }, + { 0x00600008, 0x46401248, 0x1eae8800, 0x00010001 }, + { 0x00600008, 0x46601248, 0x1eae8820, 0x00010001 }, + { 0x00600008, 0x46801248, 0x1eae8840, 0x00010001 }, + { 0x00600008, 0x46a01248, 0x1eae8860, 0x00010001 }, + { 0x00600040, 0x46401248, 0x12ae0640, 0x00ae0660 }, + { 0x80600040, 0xc8001248, 0x16ae0640, 0x00800080 }, + { 0x00600040, 0x46801248, 0x12ae0680, 0x00ae06a0 }, + { 0x80600040, 0xc8401248, 0x16ae0680, 0x00800080 }, + { 0x00400040, 0x22081a40, 0x166902c0, 0x06000600 }, { 0x00400040, 0x22001a40, 0x166902c0, 0x00000000 }, { 0x00400040, 0x22081a40, 0x166902c0, 0x02000200 }, { 0x00800201, 0x23a02288, 0x00d28201, 0x00000000 }, diff -Nru intel-vaapi-driver-1.7.1/src/shaders/post_processing/gen9/pl2_to_pl2.g9b intel-vaapi-driver-1.7.0/src/shaders/post_processing/gen9/pl2_to_pl2.g9b --- intel-vaapi-driver-1.7.1/src/shaders/post_processing/gen9/pl2_to_pl2.g9b 2016-06-16 00:57:56.000000000 +0000 +++ intel-vaapi-driver-1.7.0/src/shaders/post_processing/gen9/pl2_to_pl2.g9b 2016-03-15 06:43:02.000000000 +0000 @@ -122,36 +122,86 @@ { 0x80800040, 0xa2201248, 0x16b18220, 0x00800080 }, { 0x80800040, 0xa2401248, 0x16b18240, 0x00800080 }, { 0x80800040, 0xa2601248, 0x16b18260, 0x00800080 }, - { 0x80600040, 0xc4001248, 0x16ae8400, 0x00800080 }, - { 0x80600040, 0xc4401248, 0x16ae8440, 0x00800080 }, - { 0x80600040, 0xc0001248, 0x16ae8000, 0x00800080 }, - { 0x80600040, 0xc0401248, 0x16ae8040, 0x00800080 }, + { 0x00600008, 0x45c01248, 0x1eae8400, 0x00010001 }, + { 0x00600008, 0x45e01248, 0x1eae8420, 0x00010001 }, + { 0x00600008, 0x46001248, 0x1eae8440, 0x00010001 }, + { 0x00600008, 0x46201248, 0x1eae8460, 0x00010001 }, + { 0x00600040, 0x45c01248, 0x12ae05c0, 0x00ae05e0 }, + { 0x80600040, 0xc4001248, 0x16ae05c0, 0x00800080 }, + { 0x00600040, 0x46001248, 0x12ae0600, 0x00ae0620 }, + { 0x80600040, 0xc4401248, 0x16ae0600, 0x00800080 }, + { 0x00600008, 0x46401248, 0x1eae8000, 0x00010001 }, + { 0x00600008, 0x46601248, 0x1eae8020, 0x00010001 }, + { 0x00600008, 0x46801248, 0x1eae8040, 0x00010001 }, + { 0x00600008, 0x46a01248, 0x1eae8060, 0x00010001 }, + { 0x00600040, 0x46401248, 0x12ae0640, 0x00ae0660 }, + { 0x80600040, 0xc0001248, 0x16ae0640, 0x00800080 }, + { 0x00600040, 0x46801248, 0x12ae0680, 0x00ae06a0 }, + { 0x80600040, 0xc0401248, 0x16ae0680, 0x00800080 }, { 0x00400040, 0x22001a40, 0x166902c0, 0x04000400 }, { 0x80800040, 0xaa001248, 0x16b18a00, 0x00800080 }, { 0x80800040, 0xaa201248, 0x16b18a20, 0x00800080 }, { 0x80800040, 0xaa401248, 0x16b18a40, 0x00800080 }, { 0x80800040, 0xaa601248, 0x16b18a60, 0x00800080 }, - { 0x80600040, 0xcc001248, 0x16ae8c00, 0x00800080 }, - { 0x80600040, 0xcc401248, 0x16ae8c40, 0x00800080 }, - { 0x80600040, 0xc8001248, 0x16ae8800, 0x00800080 }, - { 0x80600040, 0xc8401248, 0x16ae8840, 0x00800080 }, + { 0x00600008, 0x45c01248, 0x1eae8c00, 0x00010001 }, + { 0x00600008, 0x45e01248, 0x1eae8c20, 0x00010001 }, + { 0x00600008, 0x46001248, 0x1eae8c40, 0x00010001 }, + { 0x00600008, 0x46201248, 0x1eae8c60, 0x00010001 }, + { 0x00600040, 0x45c01248, 0x12ae05c0, 0x00ae05e0 }, + { 0x80600040, 0xcc001248, 0x16ae05c0, 0x00800080 }, + { 0x00600040, 0x46001248, 0x12ae0600, 0x00ae0620 }, + { 0x80600040, 0xcc401248, 0x16ae0600, 0x00800080 }, + { 0x00600008, 0x46401248, 0x1eae8800, 0x00010001 }, + { 0x00600008, 0x46601248, 0x1eae8820, 0x00010001 }, + { 0x00600008, 0x46801248, 0x1eae8840, 0x00010001 }, + { 0x00600008, 0x46a01248, 0x1eae8860, 0x00010001 }, + { 0x00600040, 0x46401248, 0x12ae0640, 0x00ae0660 }, + { 0x80600040, 0xc8001248, 0x16ae0640, 0x00800080 }, + { 0x00600040, 0x46801248, 0x12ae0680, 0x00ae06a0 }, + { 0x80600040, 0xc8401248, 0x16ae0680, 0x00800080 }, { 0x00400040, 0x22081a40, 0x166902c0, 0x06000600 }, { 0x80800040, 0xa2001248, 0x16b18200, 0x00800080 }, { 0x80800040, 0xa2201248, 0x16b18220, 0x00800080 }, { 0x80800040, 0xa2401248, 0x16b18240, 0x00800080 }, { 0x80800040, 0xa2601248, 0x16b18260, 0x00800080 }, - { 0x80600040, 0xc4001248, 0x16ae8400, 0x00800080 }, - { 0x80600040, 0xc4401248, 0x16ae8440, 0x00800080 }, - { 0x80600040, 0xc0001248, 0x16ae8000, 0x00800080 }, - { 0x80600040, 0xc0401248, 0x16ae8040, 0x00800080 }, + { 0x00600008, 0x45c01248, 0x1eae8400, 0x00010001 }, + { 0x00600008, 0x45e01248, 0x1eae8420, 0x00010001 }, + { 0x00600008, 0x46001248, 0x1eae8440, 0x00010001 }, + { 0x00600008, 0x46201248, 0x1eae8460, 0x00010001 }, + { 0x00600040, 0x45c01248, 0x12ae05c0, 0x00ae05e0 }, + { 0x80600040, 0xc4001248, 0x16ae05c0, 0x00800080 }, + { 0x00600040, 0x46001248, 0x12ae0600, 0x00ae0620 }, + { 0x80600040, 0xc4401248, 0x16ae0600, 0x00800080 }, + { 0x00600008, 0x46401248, 0x1eae8000, 0x00010001 }, + { 0x00600008, 0x46601248, 0x1eae8020, 0x00010001 }, + { 0x00600008, 0x46801248, 0x1eae8040, 0x00010001 }, + { 0x00600008, 0x46a01248, 0x1eae8060, 0x00010001 }, + { 0x00600040, 0x46401248, 0x12ae0640, 0x00ae0660 }, + { 0x80600040, 0xc0001248, 0x16ae0640, 0x00800080 }, + { 0x00600040, 0x46801248, 0x12ae0680, 0x00ae06a0 }, + { 0x80600040, 0xc0401248, 0x16ae0680, 0x00800080 }, + { 0x00400040, 0x22001a40, 0x166902c0, 0x04000400 }, { 0x80800040, 0xaa001248, 0x16b18a00, 0x00800080 }, { 0x80800040, 0xaa201248, 0x16b18a20, 0x00800080 }, { 0x80800040, 0xaa401248, 0x16b18a40, 0x00800080 }, { 0x80800040, 0xaa601248, 0x16b18a60, 0x00800080 }, - { 0x80600040, 0xcc001248, 0x16ae8c00, 0x00800080 }, - { 0x80600040, 0xcc401248, 0x16ae8c40, 0x00800080 }, - { 0x80600040, 0xc8001248, 0x16ae8800, 0x00800080 }, - { 0x80600040, 0xc8401248, 0x16ae8840, 0x00800080 }, + { 0x00600008, 0x45c01248, 0x1eae8c00, 0x00010001 }, + { 0x00600008, 0x45e01248, 0x1eae8c20, 0x00010001 }, + { 0x00600008, 0x46001248, 0x1eae8c40, 0x00010001 }, + { 0x00600008, 0x46201248, 0x1eae8c60, 0x00010001 }, + { 0x00600040, 0x45c01248, 0x12ae05c0, 0x00ae05e0 }, + { 0x80600040, 0xcc001248, 0x16ae05c0, 0x00800080 }, + { 0x00600040, 0x46001248, 0x12ae0600, 0x00ae0620 }, + { 0x80600040, 0xcc401248, 0x16ae0600, 0x00800080 }, + { 0x00600008, 0x46401248, 0x1eae8800, 0x00010001 }, + { 0x00600008, 0x46601248, 0x1eae8820, 0x00010001 }, + { 0x00600008, 0x46801248, 0x1eae8840, 0x00010001 }, + { 0x00600008, 0x46a01248, 0x1eae8860, 0x00010001 }, + { 0x00600040, 0x46401248, 0x12ae0640, 0x00ae0660 }, + { 0x80600040, 0xc8001248, 0x16ae0640, 0x00800080 }, + { 0x00600040, 0x46801248, 0x12ae0680, 0x00ae06a0 }, + { 0x80600040, 0xc8401248, 0x16ae0680, 0x00800080 }, + { 0x00400040, 0x22081a40, 0x166902c0, 0x06000600 }, { 0x00400040, 0x22001a40, 0x166902c0, 0x00000000 }, { 0x00400040, 0x22081a40, 0x166902c0, 0x02000200 }, { 0x00800201, 0x23a02288, 0x00d28201, 0x00000000 }, diff -Nru intel-vaapi-driver-1.7.1/src/shaders/post_processing/gen9/pl3_to_pl2.g9b intel-vaapi-driver-1.7.0/src/shaders/post_processing/gen9/pl3_to_pl2.g9b --- intel-vaapi-driver-1.7.1/src/shaders/post_processing/gen9/pl3_to_pl2.g9b 2016-06-16 00:57:56.000000000 +0000 +++ intel-vaapi-driver-1.7.0/src/shaders/post_processing/gen9/pl3_to_pl2.g9b 2016-03-15 06:43:02.000000000 +0000 @@ -138,36 +138,86 @@ { 0x80800040, 0xa2201248, 0x16b18220, 0x00800080 }, { 0x80800040, 0xa2401248, 0x16b18240, 0x00800080 }, { 0x80800040, 0xa2601248, 0x16b18260, 0x00800080 }, - { 0x80600040, 0xc4001248, 0x16ae8400, 0x00800080 }, - { 0x80600040, 0xc4401248, 0x16ae8440, 0x00800080 }, - { 0x80600040, 0xc0001248, 0x16ae8000, 0x00800080 }, - { 0x80600040, 0xc0401248, 0x16ae8040, 0x00800080 }, + { 0x00600008, 0x45c01248, 0x1eae8400, 0x00010001 }, + { 0x00600008, 0x45e01248, 0x1eae8420, 0x00010001 }, + { 0x00600008, 0x46001248, 0x1eae8440, 0x00010001 }, + { 0x00600008, 0x46201248, 0x1eae8460, 0x00010001 }, + { 0x00600040, 0x45c01248, 0x12ae05c0, 0x00ae05e0 }, + { 0x80600040, 0xc4001248, 0x16ae05c0, 0x00800080 }, + { 0x00600040, 0x46001248, 0x12ae0600, 0x00ae0620 }, + { 0x80600040, 0xc4401248, 0x16ae0600, 0x00800080 }, + { 0x00600008, 0x46401248, 0x1eae8000, 0x00010001 }, + { 0x00600008, 0x46601248, 0x1eae8020, 0x00010001 }, + { 0x00600008, 0x46801248, 0x1eae8040, 0x00010001 }, + { 0x00600008, 0x46a01248, 0x1eae8060, 0x00010001 }, + { 0x00600040, 0x46401248, 0x12ae0640, 0x00ae0660 }, + { 0x80600040, 0xc0001248, 0x16ae0640, 0x00800080 }, + { 0x00600040, 0x46801248, 0x12ae0680, 0x00ae06a0 }, + { 0x80600040, 0xc0401248, 0x16ae0680, 0x00800080 }, { 0x00400040, 0x22001a40, 0x166902c0, 0x04000400 }, { 0x80800040, 0xaa001248, 0x16b18a00, 0x00800080 }, { 0x80800040, 0xaa201248, 0x16b18a20, 0x00800080 }, { 0x80800040, 0xaa401248, 0x16b18a40, 0x00800080 }, { 0x80800040, 0xaa601248, 0x16b18a60, 0x00800080 }, - { 0x80600040, 0xcc001248, 0x16ae8c00, 0x00800080 }, - { 0x80600040, 0xcc401248, 0x16ae8c40, 0x00800080 }, - { 0x80600040, 0xc8001248, 0x16ae8800, 0x00800080 }, - { 0x80600040, 0xc8401248, 0x16ae8840, 0x00800080 }, + { 0x00600008, 0x45c01248, 0x1eae8c00, 0x00010001 }, + { 0x00600008, 0x45e01248, 0x1eae8c20, 0x00010001 }, + { 0x00600008, 0x46001248, 0x1eae8c40, 0x00010001 }, + { 0x00600008, 0x46201248, 0x1eae8c60, 0x00010001 }, + { 0x00600040, 0x45c01248, 0x12ae05c0, 0x00ae05e0 }, + { 0x80600040, 0xcc001248, 0x16ae05c0, 0x00800080 }, + { 0x00600040, 0x46001248, 0x12ae0600, 0x00ae0620 }, + { 0x80600040, 0xcc401248, 0x16ae0600, 0x00800080 }, + { 0x00600008, 0x46401248, 0x1eae8800, 0x00010001 }, + { 0x00600008, 0x46601248, 0x1eae8820, 0x00010001 }, + { 0x00600008, 0x46801248, 0x1eae8840, 0x00010001 }, + { 0x00600008, 0x46a01248, 0x1eae8860, 0x00010001 }, + { 0x00600040, 0x46401248, 0x12ae0640, 0x00ae0660 }, + { 0x80600040, 0xc8001248, 0x16ae0640, 0x00800080 }, + { 0x00600040, 0x46801248, 0x12ae0680, 0x00ae06a0 }, + { 0x80600040, 0xc8401248, 0x16ae0680, 0x00800080 }, { 0x00400040, 0x22081a40, 0x166902c0, 0x06000600 }, { 0x80800040, 0xa2001248, 0x16b18200, 0x00800080 }, { 0x80800040, 0xa2201248, 0x16b18220, 0x00800080 }, { 0x80800040, 0xa2401248, 0x16b18240, 0x00800080 }, { 0x80800040, 0xa2601248, 0x16b18260, 0x00800080 }, - { 0x80600040, 0xc4001248, 0x16ae8400, 0x00800080 }, - { 0x80600040, 0xc4401248, 0x16ae8440, 0x00800080 }, - { 0x80600040, 0xc0001248, 0x16ae8000, 0x00800080 }, - { 0x80600040, 0xc0401248, 0x16ae8040, 0x00800080 }, + { 0x00600008, 0x45c01248, 0x1eae8400, 0x00010001 }, + { 0x00600008, 0x45e01248, 0x1eae8420, 0x00010001 }, + { 0x00600008, 0x46001248, 0x1eae8440, 0x00010001 }, + { 0x00600008, 0x46201248, 0x1eae8460, 0x00010001 }, + { 0x00600040, 0x45c01248, 0x12ae05c0, 0x00ae05e0 }, + { 0x80600040, 0xc4001248, 0x16ae05c0, 0x00800080 }, + { 0x00600040, 0x46001248, 0x12ae0600, 0x00ae0620 }, + { 0x80600040, 0xc4401248, 0x16ae0600, 0x00800080 }, + { 0x00600008, 0x46401248, 0x1eae8000, 0x00010001 }, + { 0x00600008, 0x46601248, 0x1eae8020, 0x00010001 }, + { 0x00600008, 0x46801248, 0x1eae8040, 0x00010001 }, + { 0x00600008, 0x46a01248, 0x1eae8060, 0x00010001 }, + { 0x00600040, 0x46401248, 0x12ae0640, 0x00ae0660 }, + { 0x80600040, 0xc0001248, 0x16ae0640, 0x00800080 }, + { 0x00600040, 0x46801248, 0x12ae0680, 0x00ae06a0 }, + { 0x80600040, 0xc0401248, 0x16ae0680, 0x00800080 }, + { 0x00400040, 0x22001a40, 0x166902c0, 0x04000400 }, { 0x80800040, 0xaa001248, 0x16b18a00, 0x00800080 }, { 0x80800040, 0xaa201248, 0x16b18a20, 0x00800080 }, { 0x80800040, 0xaa401248, 0x16b18a40, 0x00800080 }, { 0x80800040, 0xaa601248, 0x16b18a60, 0x00800080 }, - { 0x80600040, 0xcc001248, 0x16ae8c00, 0x00800080 }, - { 0x80600040, 0xcc401248, 0x16ae8c40, 0x00800080 }, - { 0x80600040, 0xc8001248, 0x16ae8800, 0x00800080 }, - { 0x80600040, 0xc8401248, 0x16ae8840, 0x00800080 }, + { 0x00600008, 0x45c01248, 0x1eae8c00, 0x00010001 }, + { 0x00600008, 0x45e01248, 0x1eae8c20, 0x00010001 }, + { 0x00600008, 0x46001248, 0x1eae8c40, 0x00010001 }, + { 0x00600008, 0x46201248, 0x1eae8c60, 0x00010001 }, + { 0x00600040, 0x45c01248, 0x12ae05c0, 0x00ae05e0 }, + { 0x80600040, 0xcc001248, 0x16ae05c0, 0x00800080 }, + { 0x00600040, 0x46001248, 0x12ae0600, 0x00ae0620 }, + { 0x80600040, 0xcc401248, 0x16ae0600, 0x00800080 }, + { 0x00600008, 0x46401248, 0x1eae8800, 0x00010001 }, + { 0x00600008, 0x46601248, 0x1eae8820, 0x00010001 }, + { 0x00600008, 0x46801248, 0x1eae8840, 0x00010001 }, + { 0x00600008, 0x46a01248, 0x1eae8860, 0x00010001 }, + { 0x00600040, 0x46401248, 0x12ae0640, 0x00ae0660 }, + { 0x80600040, 0xc8001248, 0x16ae0640, 0x00800080 }, + { 0x00600040, 0x46801248, 0x12ae0680, 0x00ae06a0 }, + { 0x80600040, 0xc8401248, 0x16ae0680, 0x00800080 }, + { 0x00400040, 0x22081a40, 0x166902c0, 0x06000600 }, { 0x00400040, 0x22001a40, 0x166902c0, 0x00000000 }, { 0x00400040, 0x22081a40, 0x166902c0, 0x02000200 }, { 0x00800201, 0x23a02288, 0x00d28201, 0x00000000 }, diff -Nru intel-vaapi-driver-1.7.1/src/shaders/post_processing/gen9/rgbx_to_nv12.g9b intel-vaapi-driver-1.7.0/src/shaders/post_processing/gen9/rgbx_to_nv12.g9b --- intel-vaapi-driver-1.7.1/src/shaders/post_processing/gen9/rgbx_to_nv12.g9b 2016-06-16 00:57:56.000000000 +0000 +++ intel-vaapi-driver-1.7.0/src/shaders/post_processing/gen9/rgbx_to_nv12.g9b 2016-03-15 06:43:02.000000000 +0000 @@ -539,36 +539,86 @@ { 0x80800040, 0xa2201248, 0x16b18220, 0x00800080 }, { 0x80800040, 0xa2401248, 0x16b18240, 0x00800080 }, { 0x80800040, 0xa2601248, 0x16b18260, 0x00800080 }, - { 0x80600040, 0xc4001248, 0x16ae8400, 0x00800080 }, - { 0x80600040, 0xc4401248, 0x16ae8440, 0x00800080 }, - { 0x80600040, 0xc0001248, 0x16ae8000, 0x00800080 }, - { 0x80600040, 0xc0401248, 0x16ae8040, 0x00800080 }, + { 0x00600008, 0x45c01248, 0x1eae8400, 0x00010001 }, + { 0x00600008, 0x45e01248, 0x1eae8420, 0x00010001 }, + { 0x00600008, 0x46001248, 0x1eae8440, 0x00010001 }, + { 0x00600008, 0x46201248, 0x1eae8460, 0x00010001 }, + { 0x00600040, 0x45c01248, 0x12ae05c0, 0x00ae05e0 }, + { 0x80600040, 0xc4001248, 0x16ae05c0, 0x00800080 }, + { 0x00600040, 0x46001248, 0x12ae0600, 0x00ae0620 }, + { 0x80600040, 0xc4401248, 0x16ae0600, 0x00800080 }, + { 0x00600008, 0x46401248, 0x1eae8000, 0x00010001 }, + { 0x00600008, 0x46601248, 0x1eae8020, 0x00010001 }, + { 0x00600008, 0x46801248, 0x1eae8040, 0x00010001 }, + { 0x00600008, 0x46a01248, 0x1eae8060, 0x00010001 }, + { 0x00600040, 0x46401248, 0x12ae0640, 0x00ae0660 }, + { 0x80600040, 0xc0001248, 0x16ae0640, 0x00800080 }, + { 0x00600040, 0x46801248, 0x12ae0680, 0x00ae06a0 }, + { 0x80600040, 0xc0401248, 0x16ae0680, 0x00800080 }, { 0x00400040, 0x22001a40, 0x166902c0, 0x04000400 }, { 0x80800040, 0xaa001248, 0x16b18a00, 0x00800080 }, { 0x80800040, 0xaa201248, 0x16b18a20, 0x00800080 }, { 0x80800040, 0xaa401248, 0x16b18a40, 0x00800080 }, { 0x80800040, 0xaa601248, 0x16b18a60, 0x00800080 }, - { 0x80600040, 0xcc001248, 0x16ae8c00, 0x00800080 }, - { 0x80600040, 0xcc401248, 0x16ae8c40, 0x00800080 }, - { 0x80600040, 0xc8001248, 0x16ae8800, 0x00800080 }, - { 0x80600040, 0xc8401248, 0x16ae8840, 0x00800080 }, + { 0x00600008, 0x45c01248, 0x1eae8c00, 0x00010001 }, + { 0x00600008, 0x45e01248, 0x1eae8c20, 0x00010001 }, + { 0x00600008, 0x46001248, 0x1eae8c40, 0x00010001 }, + { 0x00600008, 0x46201248, 0x1eae8c60, 0x00010001 }, + { 0x00600040, 0x45c01248, 0x12ae05c0, 0x00ae05e0 }, + { 0x80600040, 0xcc001248, 0x16ae05c0, 0x00800080 }, + { 0x00600040, 0x46001248, 0x12ae0600, 0x00ae0620 }, + { 0x80600040, 0xcc401248, 0x16ae0600, 0x00800080 }, + { 0x00600008, 0x46401248, 0x1eae8800, 0x00010001 }, + { 0x00600008, 0x46601248, 0x1eae8820, 0x00010001 }, + { 0x00600008, 0x46801248, 0x1eae8840, 0x00010001 }, + { 0x00600008, 0x46a01248, 0x1eae8860, 0x00010001 }, + { 0x00600040, 0x46401248, 0x12ae0640, 0x00ae0660 }, + { 0x80600040, 0xc8001248, 0x16ae0640, 0x00800080 }, + { 0x00600040, 0x46801248, 0x12ae0680, 0x00ae06a0 }, + { 0x80600040, 0xc8401248, 0x16ae0680, 0x00800080 }, { 0x00400040, 0x22081a40, 0x166902c0, 0x06000600 }, { 0x80800040, 0xa2001248, 0x16b18200, 0x00800080 }, { 0x80800040, 0xa2201248, 0x16b18220, 0x00800080 }, { 0x80800040, 0xa2401248, 0x16b18240, 0x00800080 }, { 0x80800040, 0xa2601248, 0x16b18260, 0x00800080 }, - { 0x80600040, 0xc4001248, 0x16ae8400, 0x00800080 }, - { 0x80600040, 0xc4401248, 0x16ae8440, 0x00800080 }, - { 0x80600040, 0xc0001248, 0x16ae8000, 0x00800080 }, - { 0x80600040, 0xc0401248, 0x16ae8040, 0x00800080 }, + { 0x00600008, 0x45c01248, 0x1eae8400, 0x00010001 }, + { 0x00600008, 0x45e01248, 0x1eae8420, 0x00010001 }, + { 0x00600008, 0x46001248, 0x1eae8440, 0x00010001 }, + { 0x00600008, 0x46201248, 0x1eae8460, 0x00010001 }, + { 0x00600040, 0x45c01248, 0x12ae05c0, 0x00ae05e0 }, + { 0x80600040, 0xc4001248, 0x16ae05c0, 0x00800080 }, + { 0x00600040, 0x46001248, 0x12ae0600, 0x00ae0620 }, + { 0x80600040, 0xc4401248, 0x16ae0600, 0x00800080 }, + { 0x00600008, 0x46401248, 0x1eae8000, 0x00010001 }, + { 0x00600008, 0x46601248, 0x1eae8020, 0x00010001 }, + { 0x00600008, 0x46801248, 0x1eae8040, 0x00010001 }, + { 0x00600008, 0x46a01248, 0x1eae8060, 0x00010001 }, + { 0x00600040, 0x46401248, 0x12ae0640, 0x00ae0660 }, + { 0x80600040, 0xc0001248, 0x16ae0640, 0x00800080 }, + { 0x00600040, 0x46801248, 0x12ae0680, 0x00ae06a0 }, + { 0x80600040, 0xc0401248, 0x16ae0680, 0x00800080 }, + { 0x00400040, 0x22001a40, 0x166902c0, 0x04000400 }, { 0x80800040, 0xaa001248, 0x16b18a00, 0x00800080 }, { 0x80800040, 0xaa201248, 0x16b18a20, 0x00800080 }, { 0x80800040, 0xaa401248, 0x16b18a40, 0x00800080 }, { 0x80800040, 0xaa601248, 0x16b18a60, 0x00800080 }, - { 0x80600040, 0xcc001248, 0x16ae8c00, 0x00800080 }, - { 0x80600040, 0xcc401248, 0x16ae8c40, 0x00800080 }, - { 0x80600040, 0xc8001248, 0x16ae8800, 0x00800080 }, - { 0x80600040, 0xc8401248, 0x16ae8840, 0x00800080 }, + { 0x00600008, 0x45c01248, 0x1eae8c00, 0x00010001 }, + { 0x00600008, 0x45e01248, 0x1eae8c20, 0x00010001 }, + { 0x00600008, 0x46001248, 0x1eae8c40, 0x00010001 }, + { 0x00600008, 0x46201248, 0x1eae8c60, 0x00010001 }, + { 0x00600040, 0x45c01248, 0x12ae05c0, 0x00ae05e0 }, + { 0x80600040, 0xcc001248, 0x16ae05c0, 0x00800080 }, + { 0x00600040, 0x46001248, 0x12ae0600, 0x00ae0620 }, + { 0x80600040, 0xcc401248, 0x16ae0600, 0x00800080 }, + { 0x00600008, 0x46401248, 0x1eae8800, 0x00010001 }, + { 0x00600008, 0x46601248, 0x1eae8820, 0x00010001 }, + { 0x00600008, 0x46801248, 0x1eae8840, 0x00010001 }, + { 0x00600008, 0x46a01248, 0x1eae8860, 0x00010001 }, + { 0x00600040, 0x46401248, 0x12ae0640, 0x00ae0660 }, + { 0x80600040, 0xc8001248, 0x16ae0640, 0x00800080 }, + { 0x00600040, 0x46801248, 0x12ae0680, 0x00ae06a0 }, + { 0x80600040, 0xc8401248, 0x16ae0680, 0x00800080 }, + { 0x00400040, 0x22081a40, 0x166902c0, 0x06000600 }, { 0x00400040, 0x22001a40, 0x166902c0, 0x00000000 }, { 0x00400040, 0x22081a40, 0x166902c0, 0x02000200 }, { 0x00800201, 0x23a02288, 0x00d28201, 0x00000000 }, diff -Nru intel-vaapi-driver-1.7.1/src/shaders/post_processing/Makefile.in intel-vaapi-driver-1.7.0/src/shaders/post_processing/Makefile.in --- intel-vaapi-driver-1.7.1/src/shaders/post_processing/Makefile.in 2016-06-21 02:07:53.000000000 +0000 +++ intel-vaapi-driver-1.7.0/src/shaders/post_processing/Makefile.in 2016-03-15 06:42:44.000000000 +0000 @@ -254,7 +254,10 @@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ -WAYLAND_SCANNER = @WAYLAND_SCANNER@ +WAYLAND_CFLAGS = @WAYLAND_CFLAGS@ +WAYLAND_LIBS = @WAYLAND_LIBS@ +WAYLAND_SCANNER_CFLAGS = @WAYLAND_SCANNER_CFLAGS@ +WAYLAND_SCANNER_LIBS = @WAYLAND_SCANNER_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ @@ -307,6 +310,8 @@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ +wayland_protocoldir = @wayland_protocoldir@ +wayland_scanner = @wayland_scanner@ SUBDIRS = gen5_6 gen7 gen75 gen8 gen9 # Extra clean files so that maintainer-clean removes *everything* @@ -323,9 +328,9 @@ exit 1;; \ esac; \ done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/shaders/post_processing/Makefile'; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/shaders/post_processing/Makefile'; \ $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --foreign src/shaders/post_processing/Makefile + $(AUTOMAKE) --gnu src/shaders/post_processing/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ diff -Nru intel-vaapi-driver-1.7.1/src/shaders/render/Makefile.in intel-vaapi-driver-1.7.0/src/shaders/render/Makefile.in --- intel-vaapi-driver-1.7.1/src/shaders/render/Makefile.in 2016-06-21 02:07:53.000000000 +0000 +++ intel-vaapi-driver-1.7.0/src/shaders/render/Makefile.in 2016-03-15 06:42:45.000000000 +0000 @@ -198,7 +198,10 @@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ -WAYLAND_SCANNER = @WAYLAND_SCANNER@ +WAYLAND_CFLAGS = @WAYLAND_CFLAGS@ +WAYLAND_LIBS = @WAYLAND_LIBS@ +WAYLAND_SCANNER_CFLAGS = @WAYLAND_SCANNER_CFLAGS@ +WAYLAND_SCANNER_LIBS = @WAYLAND_SCANNER_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ @@ -251,6 +254,8 @@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ +wayland_protocoldir = @wayland_protocoldir@ +wayland_scanner = @wayland_scanner@ INTEL_G4I = \ exa_wm.g4i \ exa_wm_affine.g4i \ @@ -413,9 +418,9 @@ exit 1;; \ esac; \ done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/shaders/render/Makefile'; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/shaders/render/Makefile'; \ $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --foreign src/shaders/render/Makefile + $(AUTOMAKE) --gnu src/shaders/render/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ diff -Nru intel-vaapi-driver-1.7.1/src/shaders/utils/Makefile.in intel-vaapi-driver-1.7.0/src/shaders/utils/Makefile.in --- intel-vaapi-driver-1.7.1/src/shaders/utils/Makefile.in 2016-06-21 02:07:53.000000000 +0000 +++ intel-vaapi-driver-1.7.0/src/shaders/utils/Makefile.in 2016-03-15 06:42:45.000000000 +0000 @@ -196,7 +196,10 @@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ -WAYLAND_SCANNER = @WAYLAND_SCANNER@ +WAYLAND_CFLAGS = @WAYLAND_CFLAGS@ +WAYLAND_LIBS = @WAYLAND_LIBS@ +WAYLAND_SCANNER_CFLAGS = @WAYLAND_SCANNER_CFLAGS@ +WAYLAND_SCANNER_LIBS = @WAYLAND_SCANNER_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ @@ -249,6 +252,8 @@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ +wayland_protocoldir = @wayland_protocoldir@ +wayland_scanner = @wayland_scanner@ MFC_CORE = \ end_thread.asm \ mfc_batchbuffer_head.asm \ @@ -314,9 +319,9 @@ exit 1;; \ esac; \ done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/shaders/utils/Makefile'; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/shaders/utils/Makefile'; \ $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --foreign src/shaders/utils/Makefile + $(AUTOMAKE) --gnu src/shaders/utils/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ diff -Nru intel-vaapi-driver-1.7.1/src/shaders/vme/Makefile.in intel-vaapi-driver-1.7.0/src/shaders/vme/Makefile.in --- intel-vaapi-driver-1.7.1/src/shaders/vme/Makefile.in 2016-06-21 02:07:53.000000000 +0000 +++ intel-vaapi-driver-1.7.0/src/shaders/vme/Makefile.in 2016-03-15 06:42:45.000000000 +0000 @@ -196,7 +196,10 @@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ -WAYLAND_SCANNER = @WAYLAND_SCANNER@ +WAYLAND_CFLAGS = @WAYLAND_CFLAGS@ +WAYLAND_LIBS = @WAYLAND_LIBS@ +WAYLAND_SCANNER_CFLAGS = @WAYLAND_SCANNER_CFLAGS@ +WAYLAND_SCANNER_LIBS = @WAYLAND_SCANNER_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ @@ -249,6 +252,8 @@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ +wayland_protocoldir = @wayland_protocoldir@ +wayland_scanner = @wayland_scanner@ VME_CORE = batchbuffer.asm intra_frame.asm inter_frame.asm VME7_CORE = batchbuffer.asm intra_frame_ivb.asm inter_frame_ivb.asm inter_bframe_ivb.asm mpeg2_inter_ivb.asm VME75_CORE = batchbuffer.asm intra_frame_haswell.asm inter_frame_haswell.asm inter_bframe_haswell.asm mpeg2_inter_haswell.asm @@ -316,9 +321,9 @@ exit 1;; \ esac; \ done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/shaders/vme/Makefile'; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/shaders/vme/Makefile'; \ $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --foreign src/shaders/vme/Makefile + $(AUTOMAKE) --gnu src/shaders/vme/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ diff -Nru intel-vaapi-driver-1.7.1/src/.VERSION.pkg intel-vaapi-driver-1.7.0/src/.VERSION.pkg --- intel-vaapi-driver-1.7.1/src/.VERSION.pkg 2016-06-21 02:07:56.000000000 +0000 +++ intel-vaapi-driver-1.7.0/src/.VERSION.pkg 2016-03-15 07:32:27.000000000 +0000 @@ -1 +1 @@ -1.7.1 +1.7.0 diff -Nru intel-vaapi-driver-1.7.1/src/vp9_probs.c intel-vaapi-driver-1.7.0/src/vp9_probs.c --- intel-vaapi-driver-1.7.1/src/vp9_probs.c 2016-06-16 00:57:46.000000000 +0000 +++ intel-vaapi-driver-1.7.0/src/vp9_probs.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,1106 +0,0 @@ -/* - * Copyright © 2016 Intel Corporation - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the - * "Software"), to deal in the Software without restriction, including - * without limitation the rights to use, copy, modify, merge, publish, - * distribute, sub license, and/or sell copies of the Software, and to - * permit persons to whom the Software is furnished to do so, subject to - * the following conditions: - * - * The above copyright notice and this permission notice (including the - * next paragraph) shall be included in all copies or substantial portions - * of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. - * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR - * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, - * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE - * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * - * Authors: - * Zhao Yakui - */ -/* - * This file defines some vp9 probability tables, and - * they are ported from libvpx (https://github.com/webmproject/libvpx/). - * The original copyright and licence statement as below. - */ - -/* - * Copyright (c) 2010 The WebM project authors. All Rights Reserved. - * - * Use of this source code is governed by a BSD-style license - * that can be found in the LICENSE file in the root of the source - * tree. An additional intellectual property rights grant can be found - * in the file PATENTS. All contributing project authors may - * be found in the AUTHORS file in the root of the source tree. - */ -#include -#include -#include -#include "vp9_probs.h" -#include "i965_drv_video.h" -#include - -struct tx_probs default_tx_probs = { - { { 100 }, - { 66 } }, - - { { 20, 152 }, - { 15, 101 } }, - - { { 3, 136, 37 }, - { 5, 52, 13 } }, -}; - -vp9_prob default_skip_probs[SKIP_CONTEXTS] = { - 192, 128, 64 -}; - -vp9_prob default_inter_mode_probs[INTER_MODE_CONTEXTS] - [INTER_MODES - 1] = { - {2, 173, 34}, // 0 = both zero mv - {7, 145, 85}, // 1 = one zero mv + one a predicted mv - {7, 166, 63}, // 2 = two predicted mvs - {7, 94, 66}, // 3 = one predicted/zero and one new mv - {8, 64, 46}, // 4 = two new mvs - {17, 81, 31}, // 5 = one intra neighbour + x - {25, 29, 30}, // 6 = two intra neighbours -}; - -vp9_prob default_switchable_interp_prob[SWITCHABLE_FILTER_CONTEXTS][SWITCHABLE_FILTERS - 1] = { - { 235, 162, }, - { 36, 255, }, - { 34, 3, }, - { 149, 144, }, -}; - -vp9_prob default_intra_inter_p[INTRA_INTER_CONTEXTS] = { - 9, 102, 187, 225 -}; - -vp9_prob default_comp_inter_p[COMP_INTER_CONTEXTS] = { - 239, 183, 119, 96, 41 -}; - -vp9_prob default_single_ref_p[REF_CONTEXTS][2] = { - { 33, 16 }, - { 77, 74 }, - { 142, 142 }, - { 172, 170 }, - { 238, 247 } -}; - -vp9_prob default_comp_ref_p[REF_CONTEXTS] = { - 50, 126, 123, 221, 226 -}; - -vp9_prob vp9_kf_uv_mode_prob[INTRA_MODES][INTRA_MODES - 1] = { - { 144, 11, 54, 157, 195, 130, 46, 58, 108 }, // y = dc - { 118, 15, 123, 148, 131, 101, 44, 93, 131 }, // y = v - { 113, 12, 23, 188, 226, 142, 26, 32, 125 }, // y = h - { 120, 11, 50, 123, 163, 135, 64, 77, 103 }, // y = d45 - { 113, 9, 36, 155, 111, 157, 32, 44, 161 }, // y = d135 - { 116, 9, 55, 176, 76, 96, 37, 61, 149 }, // y = d117 - { 115, 9, 28, 141, 161, 167, 21, 25, 193 }, // y = d153 - { 120, 12, 32, 145, 195, 142, 32, 38, 86 }, // y = d207 - { 116, 12, 64, 120, 140, 125, 49, 115, 121 }, // y = d63 - { 102, 19, 66, 162, 182, 122, 35, 59, 128 } // y = tm -}; - -vp9_prob default_if_y_probs[BLOCK_SIZE_GROUPS][INTRA_MODES - 1] = { - { 65, 32, 18, 144, 162, 194, 41, 51, 98 }, // block_size < 8x8 - { 132, 68, 18, 165, 217, 196, 45, 40, 78 }, // block_size < 16x16 - { 173, 80, 19, 176, 240, 193, 64, 35, 46 }, // block_size < 32x32 - { 221, 135, 38, 194, 248, 121, 96, 85, 29 } // block_size >= 32x32 -}; - -vp9_prob default_if_uv_probs[INTRA_MODES][INTRA_MODES - 1] = { - { 120, 7, 76, 176, 208, 126, 28, 54, 103 }, // y = dc - { 48, 12, 154, 155, 139, 90, 34, 117, 119 }, // y = v - { 67, 6, 25, 204, 243, 158, 13, 21, 96 }, // y = h - { 97, 5, 44, 131, 176, 139, 48, 68, 97 }, // y = d45 - { 83, 5, 42, 156, 111, 152, 26, 49, 152 }, // y = d135 - { 80, 5, 58, 178, 74, 83, 33, 62, 145 }, // y = d117 - { 86, 5, 32, 154, 192, 168, 14, 22, 163 }, // y = d153 - { 85, 5, 32, 156, 216, 148, 19, 29, 73 }, // y = d207 - { 77, 7, 64, 116, 132, 122, 37, 126, 120 }, // y = d63 - { 101, 21, 107, 181, 192, 103, 19, 67, 125 } // y = tm -}; - -vp9_prob default_seg_tree_probs[SEG_TREE_PROBS] = { - 255, 255, 255, 255, 255, 255, 255 -}; - -vp9_prob default_seg_pred_probs[PREDICTION_PROBS] = { - 255, 255, 255 -}; - -vp9_prob vp9_kf_partition_probs[PARTITION_CONTEXTS] - [PARTITION_TYPES - 1] = { - // 8x8 -> 4x4 - { 158, 97, 94 }, // a/l both not split - { 93, 24, 99 }, // a split, l not split - { 85, 119, 44 }, // l split, a not split - { 62, 59, 67 }, // a/l both split - // 16x16 -> 8x8 - { 149, 53, 53 }, // a/l both not split - { 94, 20, 48 }, // a split, l not split - { 83, 53, 24 }, // l split, a not split - { 52, 18, 18 }, // a/l both split - // 32x32 -> 16x16 - { 150, 40, 39 }, // a/l both not split - { 78, 12, 26 }, // a split, l not split - { 67, 33, 11 }, // l split, a not split - { 24, 7, 5 }, // a/l both split - // 64x64 -> 32x32 - { 174, 35, 49 }, // a/l both not split - { 68, 11, 27 }, // a split, l not split - { 57, 15, 9 }, // l split, a not split - { 12, 3, 3 }, // a/l both split -}; - -vp9_prob default_partition_probs[PARTITION_CONTEXTS] - [PARTITION_TYPES - 1] = { - // 8x8 -> 4x4 - { 199, 122, 141 }, // a/l both not split - { 147, 63, 159 }, // a split, l not split - { 148, 133, 118 }, // l split, a not split - { 121, 104, 114 }, // a/l both split - // 16x16 -> 8x8 - { 174, 73, 87 }, // a/l both not split - { 92, 41, 83 }, // a split, l not split - { 82, 99, 50 }, // l split, a not split - { 53, 39, 39 }, // a/l both split - // 32x32 -> 16x16 - { 177, 58, 59 }, // a/l both not split - { 68, 26, 63 }, // a split, l not split - { 52, 79, 25 }, // l split, a not split - { 17, 14, 12 }, // a/l both split - // 64x64 -> 32x32 - { 222, 34, 30 }, // a/l both not split - { 72, 16, 44 }, // a split, l not split - { 58, 32, 12 }, // l split, a not split - { 10, 7, 6 }, // a/l both split -}; - -//Rearranged the values for better usage -nmv_context default_nmv_context = { - {32, 64, 96}, - { - { // Vertical component - 128, // sign - {224, 144, 192, 168, 192, 176, 192, 198, 198, 245}, // class - {216}, // class0 - {136, 140, 148, 160, 176, 192, 224, 234, 234, 240}, // bits - }, - { // Horizontal component - 128, // sign - {216, 128, 176, 160, 176, 176, 192, 198, 198, 208}, // class - {208}, // class0 - {136, 140, 148, 160, 176, 192, 224, 234, 234, 240}, // bits - } - }, - {{128, 128, 64}, {96, 112, 64}}, // class0_fp0 - {64, 96, 64}, // fp0 - {{128, 128, 64}, {96, 112, 64}}, // class0_fp1 - {64, 96, 64}, // fp1 - {160, 128}, // class0_hp bit - {160, 128} // hp - -}; - -//Rearranged the coeff probs for better usage -vp9_prob default_coef_probs_4x4[COEFF_PROB_SIZE][COEFF_PROB_NUM] = { - // Y plane - Intra - // Band 0 - { 195, 29, 183 }, { 84, 49, 136 }, { 8, 42, 71 }, - // Band 1 - { 31, 107, 169 }, { 35, 99, 159 }, { 17, 82, 140 }, - { 8, 66, 114 }, { 2, 44, 76 }, { 1, 19, 32 }, - // Band 2 - { 40, 132, 201 }, { 29, 114, 187 }, { 13, 91, 157 }, - { 7, 75, 127 }, { 3, 58, 95 }, { 1, 28, 47 }, - // Band 3 - { 69, 142, 221 }, { 42, 122, 201 }, { 15, 91, 159 }, - { 6, 67, 121 }, { 1, 42, 77 }, { 1, 17, 31 }, - // Band 4 - { 102, 148, 228 }, { 67, 117, 204 }, { 17, 82, 154 }, - { 6, 59, 114 }, { 2, 39, 75 }, { 1, 15, 29 }, - // Band 5 - { 156, 57, 233 }, { 119, 57, 212 }, { 58, 48, 163 }, - { 29, 40, 124 }, { 12, 30, 81 }, { 3, 12, 31 }, - - // Y plane - Inter - // Band 0 - { 191, 107, 226 }, { 124, 117, 204 }, { 25, 99, 155 }, - // Band 1 - { 29, 148, 210 }, { 37, 126, 194 }, { 8, 93, 157 }, - { 2, 68, 118 }, { 1, 39, 69 }, { 1, 17, 33 }, - // Band 2 - { 41, 151, 213 }, { 27, 123, 193 }, { 3, 82, 144 }, - { 1, 58, 105 }, { 1, 32, 60 }, { 1, 13, 26 }, - // Band 3 - { 59, 159, 220 }, { 23, 126, 198 }, { 4, 88, 151 }, - { 1, 66, 114 }, { 1, 38, 71 }, { 1, 18, 34 }, - // Band 4 - { 114, 136, 232 }, { 51, 114, 207 }, { 11, 83, 155 }, - { 3, 56, 105 }, { 1, 33, 65 }, { 1, 17, 34 }, - // Band 5 - { 149, 65, 234 }, { 121, 57, 215 }, { 61, 49, 166 }, - { 28, 36, 114 }, { 12, 25, 76 }, { 3, 16, 42 }, - - // UV plane - Intra - // Band 0 - { 214, 49, 220 }, { 132, 63, 188 }, { 42, 65, 137 }, - // Band 1 - { 85, 137, 221 }, { 104, 131, 216 }, { 49, 111, 192 }, - { 21, 87, 155 }, { 2, 49, 87 }, { 1, 16, 28 }, - // Band 2 - { 89, 163, 230 }, { 90, 137, 220 }, { 29, 100, 183 }, - { 10, 70, 135 }, { 2, 42, 81 }, { 1, 17, 33 }, - // Band 3 - { 108, 167, 237 }, { 55, 133, 222 }, { 15, 97, 179 }, - { 4, 72, 135 }, { 1, 45, 85 }, { 1, 19, 38 }, - // Band 4 - { 124, 146, 240 }, { 66, 124, 224 }, { 17, 88, 175 }, - { 4, 58, 122 }, { 1, 36, 75 }, { 1, 18, 37 }, - // Band 5 - { 141, 79, 241 }, { 126, 70, 227 }, { 66, 58, 182 }, - { 30, 44, 136 }, { 12, 34, 96 }, { 2, 20, 47 }, - - // UV plane - Inter - // Band 0 - { 229, 99, 249 }, { 143, 111, 235 }, { 46, 109, 192 }, - // Band 1 - { 82, 158, 236 }, { 94, 146, 224 }, { 25, 117, 191 }, - { 9, 87, 149 }, { 3, 56, 99 }, { 1, 33, 57 }, - // Band 2 - { 83, 167, 237 }, { 68, 145, 222 }, { 10, 103, 177 }, - { 2, 72, 131 }, { 1, 41, 79 }, { 1, 20, 39 }, - // Band 3 - { 99, 167, 239 }, { 47, 141, 224 }, { 10, 104, 178 }, - { 2, 73, 133 }, { 1, 44, 85 }, { 1, 22, 47 }, - // Band 4 - { 127, 145, 243 }, { 71, 129, 228 }, { 17, 93, 177 }, - { 3, 61, 124 }, { 1, 41, 84 }, { 1, 21, 52 }, - // Band 5 - { 157, 78, 244 }, { 140, 72, 231 }, { 69, 58, 184 }, - { 31, 44, 137 }, { 14, 38, 105 }, { 8, 23, 61 } -}; - -vp9_prob default_coef_probs_8x8[COEFF_PROB_SIZE][COEFF_PROB_NUM] = { - // Y plane - Intra - // Band 0 - { 125, 34, 187 }, { 52, 41, 133 }, { 6, 31, 56 }, - // Band 1 - { 37, 109, 153 }, { 51, 102, 147 }, { 23, 87, 128 }, - { 8, 67, 101 }, { 1, 41, 63 }, { 1, 19, 29 }, - // Band 2 - { 31, 154, 185 }, { 17, 127, 175 }, { 6, 96, 145 }, - { 2, 73, 114 }, { 1, 51, 82 }, { 1, 28, 45 }, - // Band 3 - { 23, 163, 200 }, { 10, 131, 185 }, { 2, 93, 148 }, - { 1, 67, 111 }, { 1, 41, 69 }, { 1, 14, 24 }, - // Band 4 - { 29, 176, 217 }, { 12, 145, 201 }, { 3, 101, 156 }, - { 1, 69, 111 }, { 1, 39, 63 }, { 1, 14, 23 }, - // Band 5 - { 57, 192, 233 }, { 25, 154, 215 }, { 6, 109, 167 }, - { 3, 78, 118 }, { 1, 48, 69 }, { 1, 21, 29 }, - - // Y plane - Inter - // Band 0 - { 202, 105, 245 }, { 108, 106, 216 }, { 18, 90, 144 }, - // Band 1 - { 33, 172, 219 }, { 64, 149, 206 }, { 14, 117, 177 }, - { 5, 90, 141 }, { 2, 61, 95 }, { 1, 37, 57 }, - // Band 2 - { 33, 179, 220 }, { 11, 140, 198 }, { 1, 89, 148 }, - { 1, 60, 104 }, { 1, 33, 57 }, { 1, 12, 21 }, - // Band 3 - { 30, 181, 221 }, { 8, 141, 198 }, { 1, 87, 145 }, - { 1, 58, 100 }, { 1, 31, 55 }, { 1, 12, 20 }, - // Band 4 - { 32, 186, 224 }, { 7, 142, 198 }, { 1, 86, 143 }, - { 1, 58, 100 }, { 1, 31, 55 }, { 1, 12, 22 }, - // Band 5 - { 57, 192, 227 }, { 20, 143, 204 }, { 3, 96, 154 }, - { 1, 68, 112 }, { 1, 42, 69 }, { 1, 19, 32 }, - - // UV plane - Intra - // Band 0 - { 212, 35, 215 }, { 113, 47, 169 }, { 29, 48, 105 }, - // Band 1 - { 74, 129, 203 }, { 106, 120, 203 }, { 49, 107, 178 }, - { 19, 84, 144 }, { 4, 50, 84 }, { 1, 15, 25 }, - // Band 2 - { 71, 172, 217 }, { 44, 141, 209 }, { 15, 102, 173 }, - { 6, 76, 133 }, { 2, 51, 89 }, { 1, 24, 42 }, - // Band 3 - { 64, 185, 231 }, { 31, 148, 216 }, { 8, 103, 175 }, - { 3, 74, 131 }, { 1, 46, 81 }, { 1, 18, 30 }, - // Band 4 - { 65, 196, 235 }, { 25, 157, 221 }, { 5, 105, 174 }, - { 1, 67, 120 }, { 1, 38, 69 }, { 1, 15, 30 }, - // Band 5 - { 65, 204, 238 }, { 30, 156, 224 }, { 7, 107, 177 }, - { 2, 70, 124 }, { 1, 42, 73 }, { 1, 18, 34 }, - - // UV Plane - Inter - // Band 0 - { 225, 86, 251 }, { 144, 104, 235 }, { 42, 99, 181 }, - // Band 1 - { 85, 175, 239 }, { 112, 165, 229 }, { 29, 136, 200 }, - { 12, 103, 162 }, { 6, 77, 123 }, { 2, 53, 84 }, - // Band 2 - { 75, 183, 239 }, { 30, 155, 221 }, { 3, 106, 171 }, - { 1, 74, 128 }, { 1, 44, 76 }, { 1, 17, 28 }, - // Band 3 - { 73, 185, 240 }, { 27, 159, 222 }, { 2, 107, 172 }, - { 1, 75, 127 }, { 1, 42, 73 }, { 1, 17, 29 }, - // Band 4 - { 62, 190, 238 }, { 21, 159, 222 }, { 2, 107, 172 }, - { 1, 72, 122 }, { 1, 40, 71 }, { 1, 18, 32 }, - // Band 5 - { 61, 199, 240 }, { 27, 161, 226 }, { 4, 113, 180 }, - { 1, 76, 129 }, { 1, 46, 80 }, { 1, 23, 41 } -}; - -vp9_prob default_coef_probs_16x16[COEFF_PROB_SIZE][COEFF_PROB_NUM] = { - // Y plane - Intra - // Band 0 - { 7, 27, 153 }, { 5, 30, 95 }, { 1, 16, 30 }, - // Band 1 - { 50, 75, 127 }, { 57, 75, 124 }, { 27, 67, 108 }, - { 10, 54, 86 }, { 1, 33, 52 }, { 1, 12, 18 }, - // Band 2 - { 43, 125, 151 }, { 26, 108, 148 }, { 7, 83, 122 }, - { 2, 59, 89 }, { 1, 38, 60 }, { 1, 17, 27 }, - // Band 3 - { 23, 144, 163 }, { 13, 112, 154 }, { 2, 75, 117 }, - { 1, 50, 81 }, { 1, 31, 51 }, { 1, 14, 23 }, - // Band 4 - { 18, 162, 185 }, { 6, 123, 171 }, { 1, 78, 125 }, - { 1, 51, 86 }, { 1, 31, 54 }, { 1, 14, 23 }, - // Band 5 - { 15, 199, 227 }, { 3, 150, 204 }, { 1, 91, 146 }, - { 1, 55, 95 }, { 1, 30, 53 }, { 1, 11, 20 }, - - // Y plane - Inter - // Band 0 - { 19, 55, 240 }, { 19, 59, 196 }, { 3, 52, 105 }, - // Band 1 - { 41, 166, 207 }, { 104, 153, 199 }, { 31, 123, 181 }, - { 14, 101, 152 }, { 5, 72, 106 }, { 1, 36, 52 }, - // Band 2 - { 35, 176, 211 }, { 12, 131, 190 }, { 2, 88, 144 }, - { 1, 60, 101 }, { 1, 36, 60 }, { 1, 16, 28 }, - // Band 3 - { 28, 183, 213 }, { 8, 134, 191 }, { 1, 86, 142 }, - { 1, 56, 96 }, { 1, 30, 53 }, { 1, 12, 20 }, - // Band 4 - { 20, 190, 215 }, { 4, 135, 192 }, { 1, 84, 139 }, - { 1, 53, 91 }, { 1, 28, 49 }, { 1, 11, 20 }, - // Band 5 - { 13, 196, 216 }, { 2, 137, 192 }, { 1, 86, 143 }, - { 1, 57, 99 }, { 1, 32, 56 }, { 1, 13, 24 }, - - // UV plane - Intra - // Band 0 - { 211, 29, 217 }, { 96, 47, 156 }, { 22, 43, 87 }, - // Band 1 - { 78, 120, 193 }, { 111, 116, 186 }, { 46, 102, 164 }, - { 15, 80, 128 }, { 2, 49, 76 }, { 1, 18, 28 }, - // Band 2 - { 71, 161, 203 }, { 42, 132, 192 }, { 10, 98, 150 }, - { 3, 69, 109 }, { 1, 44, 70 }, { 1, 18, 29 }, - // Band 3 - { 57, 186, 211 }, { 30, 140, 196 }, { 4, 93, 146 }, - { 1, 62, 102 }, { 1, 38, 65 }, { 1, 16, 27 }, - // Band 4 - { 47, 199, 217 }, { 14, 145, 196 }, { 1, 88, 142 }, - { 1, 57, 98 }, { 1, 36, 62 }, { 1, 15, 26 }, - // Band 5 - { 26, 219, 229 }, { 5, 155, 207 }, { 1, 94, 151 }, - { 1, 60, 104 }, { 1, 36, 62 }, { 1, 16, 28 }, - - // UV plane - Inter - // Band 0 - { 233, 29, 248 }, { 146, 47, 220 }, { 43, 52, 140 }, - // Band 1 - { 100, 163, 232 }, { 179, 161, 222 }, { 63, 142, 204 }, - { 37, 113, 174 }, { 26, 89, 137 }, { 18, 68, 97 }, - // Band 2 - { 85, 181, 230 }, { 32, 146, 209 }, { 7, 100, 164 }, - { 3, 71, 121 }, { 1, 45, 77 }, { 1, 18, 30 }, - // Band 3 - { 65, 187, 230 }, { 20, 148, 207 }, { 2, 97, 159 }, - { 1, 68, 116 }, { 1, 40, 70 }, { 1, 14, 29 }, - // Band 4 - { 40, 194, 227 }, { 8, 147, 204 }, { 1, 94, 155 }, - { 1, 65, 112 }, { 1, 39, 66 }, { 1, 14, 26 }, - // Band 5 - { 16, 208, 228 }, { 3, 151, 207 }, { 1, 98, 160 }, - { 1, 67, 117 }, { 1, 41, 74 }, { 1, 17, 31 } -}; - -vp9_prob default_coef_probs_32x32[COEFF_PROB_SIZE][COEFF_PROB_NUM] = { - // Y plane - Intra - // Band 0 - { 17, 38, 140 }, { 7, 34, 80 }, { 1, 17, 29 }, - // Band 1 - { 37, 75, 128 }, { 41, 76, 128 }, { 26, 66, 116 }, - { 12, 52, 94 }, { 2, 32, 55 }, { 1, 10, 16 }, - // Band 2 - { 50, 127, 154 }, { 37, 109, 152 }, { 16, 82, 121 }, - { 5, 59, 85 }, { 1, 35, 54 }, { 1, 13, 20 }, - //Band 3 - { 40, 142, 167 }, { 17, 110, 157 }, { 2, 71, 112 }, - { 1, 44, 72 }, { 1, 27, 45 }, { 1, 11, 17 }, - // Band 4 - { 30, 175, 188 }, { 9, 124, 169 }, { 1, 74, 116 }, - { 1, 48, 78 }, { 1, 30, 49 }, { 1, 11, 18 }, - // Band 5 - { 10, 222, 223 }, { 2, 150, 194 }, { 1, 83, 128 }, - { 1, 48, 79 }, { 1, 27, 45 }, { 1, 11, 17 }, - - // Y plane - Inter - // Band 0 - { 36, 41, 235 }, { 29, 36, 193 }, { 10, 27, 111 }, - // Band 1 - { 85, 165, 222 }, { 177, 162, 215 }, { 110, 135, 195 }, - { 57, 113, 168 }, { 23, 83, 120 }, { 10, 49, 61 }, - // Band 2 - { 85, 190, 223 }, { 36, 139, 200 }, { 5, 90, 146 }, - { 1, 60, 103 }, { 1, 38, 65 }, { 1, 18, 30 }, - // Band 3 - { 72, 202, 223 }, { 23, 141, 199 }, { 2, 86, 140 }, - { 1, 56, 97 }, { 1, 36, 61 }, { 1, 16, 27 }, - // Band 4 - { 55, 218, 225 }, { 13, 145, 200 }, { 1, 86, 141 }, - { 1, 57, 99 }, { 1, 35, 61 }, { 1, 13, 22 }, - // Band 5 - { 15, 235, 212 }, { 1, 132, 184 }, { 1, 84, 139 }, - { 1, 57, 97 }, { 1, 34, 56 }, { 1, 14, 23 }, - - // UV plane - Intra - // Band 0 - { 181, 21, 201 }, { 61, 37, 123 }, { 10, 38, 71 }, - // Band 1 - { 47, 106, 172 }, { 95, 104, 173 }, { 42, 93, 159 }, - { 18, 77, 131 }, { 4, 50, 81 }, { 1, 17, 23 }, - // Band 2 - { 62, 147, 199 }, { 44, 130, 189 }, { 28, 102, 154 }, - { 18, 75, 115 }, { 2, 44, 65 }, { 1, 12, 19 }, - // Band 3 - { 55, 153, 210 }, { 24, 130, 194 }, { 3, 93, 146 }, - { 1, 61, 97 }, { 1, 31, 50 }, { 1, 10, 16 }, - // Band 4 - { 49, 186, 223 }, { 17, 148, 204 }, { 1, 96, 142 }, - { 1, 53, 83 }, { 1, 26, 44 }, { 1, 11, 17 }, - // Band 5 - { 13, 217, 212 }, { 2, 136, 180 }, { 1, 78, 124 }, - { 1, 50, 83 }, { 1, 29, 49 }, { 1, 14, 23 }, - - // UV plane - Inter - // Band 0 - { 197, 13, 247 }, { 82, 17, 222 }, { 25, 17, 162 }, - // Band 1 - { 126, 186, 247 }, { 234, 191, 243 }, { 176, 177, 234 }, - { 104, 158, 220 }, { 66, 128, 186 }, { 55, 90, 137 }, - // Band 2 - { 111, 197, 242 }, { 46, 158, 219 }, { 9, 104, 171 }, - { 2, 65, 125 }, { 1, 44, 80 }, { 1, 17, 91 }, - // Band 3 - { 104, 208, 245 }, { 39, 168, 224 }, { 3, 109, 162 }, - { 1, 79, 124 }, { 1, 50, 102 }, { 1, 43, 102 }, - // Band 4 - { 84, 220, 246 }, { 31, 177, 231 }, { 2, 115, 180 }, - { 1, 79, 134 }, { 1, 55, 77 }, { 1, 60, 79 }, - // Band 5 - { 43, 243, 240 }, { 8, 180, 217 }, { 1, 115, 166 }, - { 1, 84, 121 }, { 1, 51, 67 }, { 1, 16, 6 } - -}; - -#define FC_INTRA_OFFSET 0 -#define FC_INTRA_SIZE 1664 - -#define FC_INTER_OFFSET 1664 -#define FC_INTER_SIZE 384 - -#define FC_SKIP_OFFSET 1664 -#define FC_SKIP_SIZE 3 - -void intel_init_default_vp9_probs(FRAME_CONTEXT *frame_context) -{ - if (!frame_context) - return; - - frame_context->tx_probs = default_tx_probs; - //dummy 52 - memcpy(frame_context->coeff_probs4x4, default_coef_probs_4x4, - sizeof(default_coef_probs_4x4)); - memcpy(frame_context->coeff_probs8x8, default_coef_probs_8x8, - sizeof(default_coef_probs_8x8)); - memcpy(frame_context->coeff_probs16x16, default_coef_probs_16x16, - sizeof(default_coef_probs_16x16)); - memcpy(frame_context->coeff_probs32x32, default_coef_probs_32x32, - sizeof(default_coef_probs_16x16)); - //dummy 16 - memcpy(frame_context->skip_probs, default_skip_probs, - sizeof(default_skip_probs)); - memcpy(frame_context->inter_mode_probs, default_inter_mode_probs, - sizeof(default_inter_mode_probs)); - memcpy(frame_context->switchable_interp_prob, - default_switchable_interp_prob, - sizeof(default_switchable_interp_prob)); - memcpy(frame_context->intra_inter_prob, default_intra_inter_p, - sizeof(default_intra_inter_p)); - memcpy(frame_context->comp_inter_prob, default_comp_inter_p, - sizeof(default_comp_inter_p)); - memcpy(frame_context->single_ref_prob, default_single_ref_p, - sizeof(default_single_ref_p)); - memcpy(frame_context->comp_ref_prob, default_comp_ref_p, - sizeof(default_comp_ref_p)); - memcpy(frame_context->y_mode_prob, default_if_y_probs, - sizeof(default_if_y_probs)); - memcpy(frame_context->partition_prob, default_partition_probs, - sizeof(default_partition_probs)); - frame_context->nmvc = default_nmv_context; - //dummy 47 - memcpy(frame_context->uv_mode_prob, default_if_uv_probs, - sizeof(default_if_uv_probs)); - memcpy(frame_context->seg_tree_probs, default_seg_tree_probs, - sizeof(default_seg_tree_probs)); - memcpy(frame_context->seg_pred_probs, default_seg_pred_probs, - sizeof(default_seg_pred_probs)); - return; -} - - -void intel_vp9_copy_frame_context(FRAME_CONTEXT *dst, - FRAME_CONTEXT *src, - bool inter_flag) -{ - unsigned char *fc_dst, *fc_src; - - if (!dst || !src) - return; - - fc_dst = (unsigned char *)dst; - fc_src = (unsigned char *)src; - /* update the prob related with tx_mode/tx_coeff */ - memcpy(fc_dst + FC_INTRA_OFFSET, fc_src + FC_INTRA_OFFSET, FC_INTRA_SIZE); - - if (inter_flag) { - /* update the prob related with inter-frame */ - memcpy(fc_dst + FC_INTER_OFFSET, fc_src + FC_INTER_OFFSET, FC_INTER_SIZE); - } else { - memcpy(fc_dst + FC_SKIP_OFFSET, fc_src + FC_SKIP_OFFSET, FC_SKIP_SIZE); - } -} - -void intel_update_intra_frame_context(FRAME_CONTEXT *frame_context) -{ - if (!frame_context) - return; - - memcpy(frame_context->partition_prob, vp9_kf_partition_probs, - sizeof(vp9_kf_partition_probs)); - - memcpy(frame_context->uv_mode_prob, vp9_kf_uv_mode_prob, - sizeof(vp9_kf_uv_mode_prob)); - -} - -struct vp9_write_bit_buffer { - uint8_t *bit_buffer; - int bit_offset; -}; - -static -void vp9_wb_write_bit(struct vp9_write_bit_buffer *wb, int bit) -{ - const int off = wb->bit_offset; - const int p = off / 8; - const int q = 7 - off % 8; - if (q == 7) { - wb->bit_buffer[p] = bit << q; - } else { - wb->bit_buffer[p] &= ~(1 << q); - wb->bit_buffer[p] |= bit << q; - } - wb->bit_offset = off + 1; -} - -static -void vp9_wb_write_literal(struct vp9_write_bit_buffer *wb, int data, int bits) -{ - int bit; - for (bit = bits - 1; bit >= 0; bit--) - vp9_wb_write_bit(wb, (data >> bit) & 1); -} - -static -void write_bitdepth_colorspace_sampling(int codec_profile, - struct vp9_write_bit_buffer *wb) -{ - int profile = VAProfileVP9Profile0; - profile = profile + 0; - - if (codec_profile >= (VAProfileVP9Profile0 + 2)) { - /* the bit-depth will be added for VP9Profile2/3 */ - /* this will be added later */ - } - - /* Add the default color-space */ - vp9_wb_write_literal(wb, 0, 3); - vp9_wb_write_bit(wb, 0); // 0: [16, 235] (i.e. xvYCC), 1: [0, 255] - - /* the sampling_x/y will be added for VP9Profile1/2/3 later */ -} - -#define MAX_TILE_WIDTH_B64 64 -#define MIN_TILE_WIDTH_B64 4 - -static int get_min_log2_tile_cols(const int sb_cols) { - int min_log2 = 0; - - while ((MAX_TILE_WIDTH_B64 << min_log2) < sb_cols) - ++min_log2; - - return min_log2; -} - -static int get_max_log2_tile_cols(const int sb_cols) { - int max_log2 = 1; - - while ((sb_cols >> max_log2) >= MIN_TILE_WIDTH_B64) - ++max_log2; - - return max_log2 - 1; -} - - -bool intel_write_uncompressed_header(struct encode_state *encode_state, - int codec_profile, - char *header_data, - int *header_length, - vp9_header_bitoffset *header_bitoffset) -{ -#define VP9_SYNC_CODE_0 0x49 -#define VP9_SYNC_CODE_1 0x83 -#define VP9_SYNC_CODE_2 0x42 - -#define VP9_FRAME_MARKER 0x2 - -#define REFS_PER_FRAME 3 - -#define REF_FRAMES_LOG2 3 -#define REF_FRAMES (1 << REF_FRAMES_LOG2) - -#define VP9_KEY_FRAME 0 - - VAEncPictureParameterBufferVP9 *pic_param; - VAEncMiscParameterTypeVP9PerSegmantParam *seg_param = NULL; - struct vp9_write_bit_buffer *wb, vp9_wb; - - if (!encode_state->pic_param_ext || !encode_state->pic_param_ext->buffer) - return false; - - if (!header_data || !header_bitoffset || !header_length) - return false; - - memset(header_bitoffset, 0, sizeof(vp9_header_bitoffset)); - - pic_param = (VAEncPictureParameterBufferVP9 *)encode_state->pic_param_ext->buffer; - - if (encode_state->q_matrix) - seg_param = (VAEncMiscParameterTypeVP9PerSegmantParam *) encode_state->q_matrix->buffer; - - vp9_wb.bit_buffer = (uint8_t *)header_data; - vp9_wb.bit_offset = 0; - wb = &vp9_wb; - vp9_wb_write_literal(wb, VP9_FRAME_MARKER, 2); - - if (codec_profile == VAProfileVP9Profile0) { - vp9_wb_write_literal(wb, 0, 2); - } else { - /* Other VP9Profile1/2/3 will be added later */ - } - - vp9_wb_write_bit(wb, 0); // show_existing_frame - vp9_wb_write_bit(wb, pic_param->pic_flags.bits.frame_type); - vp9_wb_write_bit(wb, pic_param->pic_flags.bits.show_frame); - vp9_wb_write_bit(wb, pic_param->pic_flags.bits.error_resilient_mode); - - if (pic_param->pic_flags.bits.frame_type == VP9_KEY_FRAME) { - vp9_wb_write_literal(wb, VP9_SYNC_CODE_0, 8); - vp9_wb_write_literal(wb, VP9_SYNC_CODE_1, 8); - vp9_wb_write_literal(wb, VP9_SYNC_CODE_2, 8); - - write_bitdepth_colorspace_sampling(codec_profile, wb); - - /* write the encoded frame size */ - vp9_wb_write_literal(wb, pic_param->frame_width_dst - 1, 16); - vp9_wb_write_literal(wb, pic_param->frame_height_dst - 1, 16); - /* write display size */ - if ((pic_param->frame_width_dst != pic_param->frame_width_src) || - (pic_param->frame_height_dst != pic_param->frame_height_src)) { - vp9_wb_write_bit(wb, 1); - vp9_wb_write_literal(wb, pic_param->frame_width_src - 1, 16); - vp9_wb_write_literal(wb, pic_param->frame_height_src - 1, 16); - } else - vp9_wb_write_bit(wb, 0); - } else { - /* for the non-Key frame */ - if (!pic_param->pic_flags.bits.show_frame) - vp9_wb_write_bit(wb, pic_param->pic_flags.bits.intra_only); - - if (!pic_param->pic_flags.bits.error_resilient_mode) - vp9_wb_write_literal(wb, pic_param->pic_flags.bits.reset_frame_context, 2); - - if (pic_param->pic_flags.bits.intra_only) { - vp9_wb_write_literal(wb, VP9_SYNC_CODE_0, 8); - vp9_wb_write_literal(wb, VP9_SYNC_CODE_1, 8); - vp9_wb_write_literal(wb, VP9_SYNC_CODE_2, 8); - - /* Add the bit_depth for VP9Profile1/2/3 */ - /* write the refreshed_frame_flags */ - vp9_wb_write_literal(wb, pic_param->refresh_frame_flags, REF_FRAMES); - /* write the encoded frame size */ - vp9_wb_write_literal(wb, pic_param->frame_width_dst - 1, 16); - vp9_wb_write_literal(wb, pic_param->frame_height_dst - 1, 16); - /* write display size */ - if ((pic_param->frame_width_dst != pic_param->frame_width_src) || - (pic_param->frame_height_dst != pic_param->frame_height_src)) { - vp9_wb_write_bit(wb, 1); - vp9_wb_write_literal(wb, pic_param->frame_width_src - 1, 16); - vp9_wb_write_literal(wb, pic_param->frame_height_src - 1, 16); - } else - vp9_wb_write_bit(wb, 0); - - } else { - /* The refresh_frame_map is for the next frame so that it can select Last/Godlen/Alt ref_index */ - /* - if ((pic_param->ref_flags.bits.ref_frame_ctrl_l0) & (1 << 0)) - refresh_flags = 1 << pic_param->ref_flags.bits.ref_last_idx; - if ((pic_param->ref_flags.bits.ref_frame_ctrl_l0) & (1 << 0)) - refresh_flags = 1 << pic_param->ref_flags.bits.ref_last_idx; - if ((pic_param->ref_flags.bits.ref_frame_ctrl_l0) & (1 << 0)) - refresh_flags = 1 << pic_param->ref_flags.bits.ref_last_idx; - */ - vp9_wb_write_literal(wb, pic_param->refresh_frame_flags, REF_FRAMES); - - vp9_wb_write_literal(wb, pic_param->ref_flags.bits.ref_last_idx, REF_FRAMES_LOG2); - vp9_wb_write_bit(wb, pic_param->ref_flags.bits.ref_last_sign_bias); - vp9_wb_write_literal(wb, pic_param->ref_flags.bits.ref_gf_idx, REF_FRAMES_LOG2); - vp9_wb_write_bit(wb, pic_param->ref_flags.bits.ref_gf_sign_bias); - vp9_wb_write_literal(wb, pic_param->ref_flags.bits.ref_arf_idx, REF_FRAMES_LOG2); - vp9_wb_write_bit(wb, pic_param->ref_flags.bits.ref_arf_sign_bias); - - /* write three bits with zero so that it can parse width/height directly */ - vp9_wb_write_literal(wb, 0, 3); - vp9_wb_write_literal(wb, pic_param->frame_width_dst - 1, 16); - vp9_wb_write_literal(wb, pic_param->frame_height_dst - 1, 16); - - /* write display size */ - if ((pic_param->frame_width_dst != pic_param->frame_width_src) || - (pic_param->frame_height_dst != pic_param->frame_height_src)) { - - vp9_wb_write_bit(wb, 1); - vp9_wb_write_literal(wb, pic_param->frame_width_src - 1, 16); - vp9_wb_write_literal(wb, pic_param->frame_height_src - 1, 16); - } else - vp9_wb_write_bit(wb, 0); - - vp9_wb_write_bit(wb, pic_param->pic_flags.bits.allow_high_precision_mv); - -#define SWITCHABLE_FILTER 4 -#define FILTER_MASK 3 - - if (pic_param->pic_flags.bits.mcomp_filter_type == SWITCHABLE_FILTER) - vp9_wb_write_bit(wb, 1); - else { - const int filter_to_literal[4] = { 1, 0, 2, 3 }; - uint8_t filter_flag = pic_param->pic_flags.bits.mcomp_filter_type; - filter_flag = filter_flag & FILTER_MASK; - vp9_wb_write_bit(wb, 0); - vp9_wb_write_literal(wb, filter_to_literal[filter_flag], 2); - } - } - } - - /* write refresh_frame_context/paralle frame_decoding */ - if (!pic_param->pic_flags.bits.error_resilient_mode) { - vp9_wb_write_bit(wb, pic_param->pic_flags.bits.refresh_frame_context); - vp9_wb_write_bit(wb, pic_param->pic_flags.bits.frame_parallel_decoding_mode); - } - - vp9_wb_write_literal(wb, pic_param->pic_flags.bits.frame_context_idx, 2); - - /* write loop filter */ - header_bitoffset->bit_offset_lf_level = wb->bit_offset; - vp9_wb_write_literal(wb, pic_param->filter_level, 6); - vp9_wb_write_literal(wb, pic_param->sharpness_level, 3); - - { - int i, mode_flag; - - vp9_wb_write_bit(wb, 1); - vp9_wb_write_bit(wb, 1); - header_bitoffset->bit_offset_ref_lf_delta = wb->bit_offset; - for (i = 0; i < 4; i++) { - /* - * This check is skipped to prepare the bit_offset_lf_ref - if (pic_param->ref_lf_delta[i] == 0) { - vp9_wb_write_bit(wb, 0); - continue; - } - */ - - vp9_wb_write_bit(wb, 1); - mode_flag = pic_param->ref_lf_delta[i]; - if (mode_flag >=0) { - vp9_wb_write_literal(wb, mode_flag & (0x3F), 6); - vp9_wb_write_bit(wb, 0); - } else { - mode_flag = -mode_flag; - vp9_wb_write_literal(wb, mode_flag & (0x3F), 6); - vp9_wb_write_bit(wb, 1); - } - } - - header_bitoffset->bit_offset_mode_lf_delta = wb->bit_offset; - for (i = 0; i < 2; i++) { - /* - * This check is skipped to prepare the bit_offset_lf_ref - if (pic_param->mode_lf_delta[i] == 0) { - vp9_wb_write_bit(wb, 0); - continue; - } - */ - vp9_wb_write_bit(wb, 1); - mode_flag = pic_param->mode_lf_delta[i]; - if (mode_flag >=0) { - vp9_wb_write_literal(wb, mode_flag & (0x3F), 6); - vp9_wb_write_bit(wb, 0); - } else { - mode_flag = -mode_flag; - vp9_wb_write_literal(wb, mode_flag & (0x3F), 6); - vp9_wb_write_bit(wb, 1); - } - } - } - - /* write basic quantizer */ - header_bitoffset->bit_offset_qindex = wb->bit_offset; - vp9_wb_write_literal(wb, pic_param->luma_ac_qindex, 8); - if (pic_param->luma_dc_qindex_delta) { - int delta_q = pic_param->luma_dc_qindex_delta; - vp9_wb_write_bit(wb, 1); - vp9_wb_write_literal(wb, abs(delta_q), 4); - vp9_wb_write_bit(wb, delta_q < 0); - } else - vp9_wb_write_bit(wb, 0); - - if (pic_param->chroma_dc_qindex_delta) { - int delta_q = pic_param->chroma_dc_qindex_delta; - vp9_wb_write_bit(wb, 1); - vp9_wb_write_literal(wb, abs(delta_q), 4); - vp9_wb_write_bit(wb, delta_q < 0); - } else - vp9_wb_write_bit(wb, 0); - - if (pic_param->chroma_ac_qindex_delta) { - int delta_q = pic_param->chroma_ac_qindex_delta; - vp9_wb_write_bit(wb, 1); - vp9_wb_write_literal(wb, abs(delta_q), 4); - vp9_wb_write_bit(wb, delta_q < 0); - } else - vp9_wb_write_bit(wb, 0); - - vp9_wb_write_bit(wb, pic_param->pic_flags.bits.segmentation_enabled); - if (pic_param->pic_flags.bits.segmentation_enabled) { - int i; - -#define VP9_MAX_PROB 255 - vp9_wb_write_bit(wb, pic_param->pic_flags.bits.segmentation_update_map); - if (pic_param->pic_flags.bits.segmentation_update_map) { - - header_bitoffset->bit_offset_segmentation = wb->bit_offset; - /* write the seg_tree_probs */ - /* segment_tree_probs/segment_pred_probs are not passed. - * So the hard-coded prob is writen - */ - for (i = 0; i < 7; i++) { - vp9_wb_write_bit(wb, 1); - vp9_wb_write_literal(wb, VP9_MAX_PROB, 8); - } - - vp9_wb_write_bit(wb, pic_param->pic_flags.bits.segmentation_temporal_update); - if (pic_param->pic_flags.bits.segmentation_temporal_update) { - for (i = 0; i < 3; i++) { - vp9_wb_write_bit(wb, 1); - vp9_wb_write_literal(wb, VP9_MAX_PROB, 8); - } - } - } - - /* write the segment_data info */ - if (seg_param == NULL) { - vp9_wb_write_bit(wb, 0); - } else { - VAEncSegParamVP9 *seg_data; - int seg_delta; - - /* update_data */ - vp9_wb_write_bit(wb, 1); - /* abs_delta should be zero */ - vp9_wb_write_bit(wb, 0); - for (i = 0; i < 8; i++) { - seg_data = &seg_param->seg_data[i]; - - /* The segment qindex delta */ - /* This check is skipped */ - /* if (seg_data->segment_qindex_delta != 0) */ - if (1) { - vp9_wb_write_bit(wb, 1); - seg_delta = seg_data->segment_qindex_delta; - vp9_wb_write_literal(wb, abs(seg_delta), 8); - vp9_wb_write_bit(wb, seg_delta < 0); - } else - vp9_wb_write_bit(wb, 0); - - /* The segment lf delta */ - /* if (seg_data->segment_lf_level_delta != 0) */ - if (1) { - vp9_wb_write_bit(wb, 1); - seg_delta = seg_data->segment_lf_level_delta; - vp9_wb_write_literal(wb, abs(seg_delta), 6); - vp9_wb_write_bit(wb, seg_delta < 0); - } else - vp9_wb_write_bit(wb, 0); - - /* segment reference flag */ - vp9_wb_write_bit(wb, seg_data->seg_flags.bits.segment_reference_enabled); - if (seg_data->seg_flags.bits.segment_reference_enabled) - { - vp9_wb_write_literal(wb, seg_data->seg_flags.bits.segment_reference, 2); - } - - /* segment skip flag */ - vp9_wb_write_bit(wb, seg_data->seg_flags.bits.segment_reference_skipped); - } - } - } - - /* write tile info */ - { - int sb_cols = (pic_param->frame_width_dst + 63) / 64; - int min_log2_tile_cols, max_log2_tile_cols; - int col_data; - - /* write tile column info */ - min_log2_tile_cols = get_min_log2_tile_cols(sb_cols); - max_log2_tile_cols = get_max_log2_tile_cols(sb_cols); - - col_data = pic_param->log2_tile_columns - min_log2_tile_cols; - while(col_data--) { - vp9_wb_write_bit(wb, 1); - } - if (pic_param->log2_tile_columns < max_log2_tile_cols) - vp9_wb_write_bit(wb, 0); - - /* write tile row info */ - vp9_wb_write_bit(wb, pic_param->log2_tile_rows); - if (pic_param->log2_tile_rows) - vp9_wb_write_bit(wb, (pic_param->log2_tile_rows != 1)); - } - - /* get the bit_offset of the first partition size */ - header_bitoffset->bit_offset_first_partition_size = wb->bit_offset; - - /* reserve the space for writing the first partitions ize */ - vp9_wb_write_literal(wb, 0, 16); - - *header_length = (wb->bit_offset + 7) / 8; - - return true; -} - -const unsigned short vp9_quant_dc[256] = { - 4, 8, 8, 9, 10, 11, 12, 12, - 13, 14, 15, 16, 17, 18, 19, 19, - 20, 21, 22, 23, 24, 25, 26, 26, - 27, 28, 29, 30, 31, 32, 32, 33, - 34, 35, 36, 37, 38, 38, 39, 40, - 41, 42, 43, 43, 44, 45, 46, 47, - 48, 48, 49, 50, 51, 52, 53, 53, - 54, 55, 56, 57, 57, 58, 59, 60, - 61, 62, 62, 63, 64, 65, 66, 66, - 67, 68, 69, 70, 70, 71, 72, 73, - 74, 74, 75, 76, 77, 78, 78, 79, - 80, 81, 81, 82, 83, 84, 85, 85, - 87, 88, 90, 92, 93, 95, 96, 98, - 99, 101, 102, 104, 105, 107, 108, 110, - 111, 113, 114, 116, 117, 118, 120, 121, - 123, 125, 127, 129, 131, 134, 136, 138, - 140, 142, 144, 146, 148, 150, 152, 154, - 156, 158, 161, 164, 166, 169, 172, 174, - 177, 180, 182, 185, 187, 190, 192, 195, - 199, 202, 205, 208, 211, 214, 217, 220, - 223, 226, 230, 233, 237, 240, 243, 247, - 250, 253, 257, 261, 265, 269, 272, 276, - 280, 284, 288, 292, 296, 300, 304, 309, - 313, 317, 322, 326, 330, 335, 340, 344, - 349, 354, 359, 364, 369, 374, 379, 384, - 389, 395, 400, 406, 411, 417, 423, 429, - 435, 441, 447, 454, 461, 467, 475, 482, - 489, 497, 505, 513, 522, 530, 539, 549, - 559, 569, 579, 590, 602, 614, 626, 640, - 654, 668, 684, 700, 717, 736, 755, 775, - 796, 819, 843, 869, 896, 925, 955, 988, - 1022, 1058, 1098, 1139, 1184, 1232, 1282, 1336, -}; - -const unsigned short vp9_quant_ac[256] = { - 4, 8, 9, 10, 11, 12, 13, 14, - 15, 16, 17, 18, 19, 20, 21, 22, - 23, 24, 25, 26, 27, 28, 29, 30, - 31, 32, 33, 34, 35, 36, 37, 38, - 39, 40, 41, 42, 43, 44, 45, 46, - 47, 48, 49, 50, 51, 52, 53, 54, - 55, 56, 57, 58, 59, 60, 61, 62, - 63, 64, 65, 66, 67, 68, 69, 70, - 71, 72, 73, 74, 75, 76, 77, 78, - 79, 80, 81, 82, 83, 84, 85, 86, - 87, 88, 89, 90, 91, 92, 93, 94, - 95, 96, 97, 98, 99, 100, 101, 102, - 104, 106, 108, 110, 112, 114, 116, 118, - 120, 122, 124, 126, 128, 130, 132, 134, - 136, 138, 140, 142, 144, 146, 148, 150, - 152, 155, 158, 161, 164, 167, 170, 173, - 176, 179, 182, 185, 188, 191, 194, 197, - 200, 203, 207, 211, 215, 219, 223, 227, - 231, 235, 239, 243, 247, 251, 255, 260, - 265, 270, 275, 280, 285, 290, 295, 300, - 305, 311, 317, 323, 329, 335, 341, 347, - 353, 359, 366, 373, 380, 387, 394, 401, - 408, 416, 424, 432, 440, 448, 456, 465, - 474, 483, 492, 501, 510, 520, 530, 540, - 550, 560, 571, 582, 593, 604, 615, 627, - 639, 651, 663, 676, 689, 702, 715, 729, - 743, 757, 771, 786, 801, 816, 832, 848, - 864, 881, 898, 915, 933, 951, 969, 988, - 1007, 1026, 1046, 1066, 1087, 1108, 1129, 1151, - 1173, 1196, 1219, 1243, 1267, 1292, 1317, 1343, - 1369, 1396, 1423, 1451, 1479, 1508, 1537, 1567, - 1597, 1628, 1660, 1692, 1725, 1759, 1793, 1828, -}; diff -Nru intel-vaapi-driver-1.7.1/src/vp9_probs.h intel-vaapi-driver-1.7.0/src/vp9_probs.h --- intel-vaapi-driver-1.7.1/src/vp9_probs.h 2016-06-16 00:57:46.000000000 +0000 +++ intel-vaapi-driver-1.7.0/src/vp9_probs.h 2016-03-11 04:38:17.000000000 +0000 @@ -41,8 +41,6 @@ #ifndef VP9_PROBS_H #define VP9_PROBS_H -#include - #define TX_SIZE_CONTEXTS 2 #define TX_SIZES 4 #define PLANE_TYPES 2 @@ -157,93 +155,486 @@ } FRAME_CONTEXT; -extern struct tx_probs default_tx_probs; - -extern vp9_prob default_skip_probs[SKIP_CONTEXTS]; - -extern vp9_prob default_inter_mode_probs[INTER_MODE_CONTEXTS] - [INTER_MODES - 1]; - -extern vp9_prob default_switchable_interp_prob[SWITCHABLE_FILTER_CONTEXTS] - [SWITCHABLE_FILTERS - 1]; +static const struct tx_probs default_tx_probs = { + { { 100 }, + { 66 } }, -extern vp9_prob default_intra_inter_p[INTRA_INTER_CONTEXTS]; + { { 20, 152 }, + { 15, 101 } }, -extern vp9_prob default_comp_inter_p[COMP_INTER_CONTEXTS]; - -extern vp9_prob default_single_ref_p[REF_CONTEXTS][2]; - -extern vp9_prob default_comp_ref_p[REF_CONTEXTS]; + { { 3, 136, 37 }, + { 5, 52, 13 } }, +}; -extern vp9_prob vp9_kf_uv_mode_prob[INTRA_MODES][INTRA_MODES - 1]; +static const vp9_prob default_skip_probs[SKIP_CONTEXTS] = { + 192, 128, 64 +}; -extern vp9_prob default_if_y_probs[BLOCK_SIZE_GROUPS][INTRA_MODES - 1]; +static const vp9_prob default_inter_mode_probs[INTER_MODE_CONTEXTS] + [INTER_MODES - 1] = { + {2, 173, 34}, // 0 = both zero mv + {7, 145, 85}, // 1 = one zero mv + one a predicted mv + {7, 166, 63}, // 2 = two predicted mvs + {7, 94, 66}, // 3 = one predicted/zero and one new mv + {8, 64, 46}, // 4 = two new mvs + {17, 81, 31}, // 5 = one intra neighbour + x + {25, 29, 30}, // 6 = two intra neighbours +}; -extern vp9_prob default_if_uv_probs[INTRA_MODES][INTRA_MODES - 1]; +static const vp9_prob default_switchable_interp_prob[SWITCHABLE_FILTER_CONTEXTS][SWITCHABLE_FILTERS - 1] = { + { 235, 162, }, + { 36, 255, }, + { 34, 3, }, + { 149, 144, }, +}; -extern vp9_prob default_seg_tree_probs[SEG_TREE_PROBS]; +static const vp9_prob default_intra_inter_p[INTRA_INTER_CONTEXTS] = { + 9, 102, 187, 225 +}; -extern vp9_prob default_seg_pred_probs[PREDICTION_PROBS]; +static const vp9_prob default_comp_inter_p[COMP_INTER_CONTEXTS] = { + 239, 183, 119, 96, 41 +}; -extern vp9_prob vp9_kf_partition_probs[PARTITION_CONTEXTS] - [PARTITION_TYPES - 1]; +static const vp9_prob default_single_ref_p[REF_CONTEXTS][2] = { + { 33, 16 }, + { 77, 74 }, + { 142, 142 }, + { 172, 170 }, + { 238, 247 } +}; -extern vp9_prob default_partition_probs[PARTITION_CONTEXTS] - [PARTITION_TYPES - 1]; +static const vp9_prob default_comp_ref_p[REF_CONTEXTS] = { + 50, 126, 123, 221, 226 +}; -extern nmv_context default_nmv_context; +const vp9_prob vp9_kf_uv_mode_prob[INTRA_MODES][INTRA_MODES - 1] = { + { 144, 11, 54, 157, 195, 130, 46, 58, 108 }, // y = dc + { 118, 15, 123, 148, 131, 101, 44, 93, 131 }, // y = v + { 113, 12, 23, 188, 226, 142, 26, 32, 125 }, // y = h + { 120, 11, 50, 123, 163, 135, 64, 77, 103 }, // y = d45 + { 113, 9, 36, 155, 111, 157, 32, 44, 161 }, // y = d135 + { 116, 9, 55, 176, 76, 96, 37, 61, 149 }, // y = d117 + { 115, 9, 28, 141, 161, 167, 21, 25, 193 }, // y = d153 + { 120, 12, 32, 145, 195, 142, 32, 38, 86 }, // y = d207 + { 116, 12, 64, 120, 140, 125, 49, 115, 121 }, // y = d63 + { 102, 19, 66, 162, 182, 122, 35, 59, 128 } // y = tm +}; -extern vp9_prob default_coef_probs_4x4[COEFF_PROB_SIZE][COEFF_PROB_NUM]; +static const vp9_prob default_if_y_probs[BLOCK_SIZE_GROUPS][INTRA_MODES - 1] = { + { 65, 32, 18, 144, 162, 194, 41, 51, 98 }, // block_size < 8x8 + { 132, 68, 18, 165, 217, 196, 45, 40, 78 }, // block_size < 16x16 + { 173, 80, 19, 176, 240, 193, 64, 35, 46 }, // block_size < 32x32 + { 221, 135, 38, 194, 248, 121, 96, 85, 29 } // block_size >= 32x32 +}; -extern vp9_prob default_coef_probs_8x8[COEFF_PROB_SIZE][COEFF_PROB_NUM]; +static const vp9_prob default_if_uv_probs[INTRA_MODES][INTRA_MODES - 1] = { + { 120, 7, 76, 176, 208, 126, 28, 54, 103 }, // y = dc + { 48, 12, 154, 155, 139, 90, 34, 117, 119 }, // y = v + { 67, 6, 25, 204, 243, 158, 13, 21, 96 }, // y = h + { 97, 5, 44, 131, 176, 139, 48, 68, 97 }, // y = d45 + { 83, 5, 42, 156, 111, 152, 26, 49, 152 }, // y = d135 + { 80, 5, 58, 178, 74, 83, 33, 62, 145 }, // y = d117 + { 86, 5, 32, 154, 192, 168, 14, 22, 163 }, // y = d153 + { 85, 5, 32, 156, 216, 148, 19, 29, 73 }, // y = d207 + { 77, 7, 64, 116, 132, 122, 37, 126, 120 }, // y = d63 + { 101, 21, 107, 181, 192, 103, 19, 67, 125 } // y = tm +}; -extern vp9_prob default_coef_probs_16x16[COEFF_PROB_SIZE][COEFF_PROB_NUM]; +static const vp9_prob default_seg_tree_probs[SEG_TREE_PROBS] = { + 255, 255, 255, 255, 255, 255, 255 +}; -extern vp9_prob default_coef_probs_32x32[COEFF_PROB_SIZE][COEFF_PROB_NUM]; +static const vp9_prob default_seg_pred_probs[PREDICTION_PROBS] = { + 255, 255, 255 +}; -extern void intel_init_default_vp9_probs(FRAME_CONTEXT *frame_context); +const vp9_prob vp9_kf_partition_probs[PARTITION_CONTEXTS] + [PARTITION_TYPES - 1] = { + // 8x8 -> 4x4 + { 158, 97, 94 }, // a/l both not split + { 93, 24, 99 }, // a split, l not split + { 85, 119, 44 }, // l split, a not split + { 62, 59, 67 }, // a/l both split + // 16x16 -> 8x8 + { 149, 53, 53 }, // a/l both not split + { 94, 20, 48 }, // a split, l not split + { 83, 53, 24 }, // l split, a not split + { 52, 18, 18 }, // a/l both split + // 32x32 -> 16x16 + { 150, 40, 39 }, // a/l both not split + { 78, 12, 26 }, // a split, l not split + { 67, 33, 11 }, // l split, a not split + { 24, 7, 5 }, // a/l both split + // 64x64 -> 32x32 + { 174, 35, 49 }, // a/l both not split + { 68, 11, 27 }, // a split, l not split + { 57, 15, 9 }, // l split, a not split + { 12, 3, 3 }, // a/l both split +}; -extern void intel_vp9_copy_frame_context(FRAME_CONTEXT *dst, - FRAME_CONTEXT *src, - bool inter_flag); +static const vp9_prob default_partition_probs[PARTITION_CONTEXTS] + [PARTITION_TYPES - 1] = { + // 8x8 -> 4x4 + { 199, 122, 141 }, // a/l both not split + { 147, 63, 159 }, // a split, l not split + { 148, 133, 118 }, // l split, a not split + { 121, 104, 114 }, // a/l both split + // 16x16 -> 8x8 + { 174, 73, 87 }, // a/l both not split + { 92, 41, 83 }, // a split, l not split + { 82, 99, 50 }, // l split, a not split + { 53, 39, 39 }, // a/l both split + // 32x32 -> 16x16 + { 177, 58, 59 }, // a/l both not split + { 68, 26, 63 }, // a split, l not split + { 52, 79, 25 }, // l split, a not split + { 17, 14, 12 }, // a/l both split + // 64x64 -> 32x32 + { 222, 34, 30 }, // a/l both not split + { 72, 16, 44 }, // a split, l not split + { 58, 32, 12 }, // l split, a not split + { 10, 7, 6 }, // a/l both split +}; -extern void intel_update_intra_frame_context(FRAME_CONTEXT *frame_context); +//Rearranged the values for better usage +static const nmv_context default_nmv_context = { + {32, 64, 96}, + { + { // Vertical component + 128, // sign + {224, 144, 192, 168, 192, 176, 192, 198, 198, 245}, // class + {216}, // class0 + {136, 140, 148, 160, 176, 192, 224, 234, 234, 240}, // bits + }, + { // Horizontal component + 128, // sign + {216, 128, 176, 160, 176, 176, 192, 198, 198, 208}, // class + {208}, // class0 + {136, 140, 148, 160, 176, 192, 224, 234, 234, 240}, // bits + } + }, + {{128, 128, 64}, {96, 112, 64}}, // class0_fp0 + {64, 96, 64}, // fp0 + {{128, 128, 64}, {96, 112, 64}}, // class0_fp1 + {64, 96, 64}, // fp1 + {160, 128}, // class0_hp bit + {160, 128} // hp +}; -typedef struct _vp9_header_bitoffset_ { - unsigned int bit_offset_ref_lf_delta; - unsigned int bit_offset_mode_lf_delta; - unsigned int bit_offset_lf_level; - unsigned int bit_offset_qindex; - unsigned int bit_offset_first_partition_size; - unsigned int bit_offset_segmentation; - unsigned int bit_size_segmentation; -} vp9_header_bitoffset; +//Rearranged the coeff probs for better usage +static const vp9_prob default_coef_probs_4x4[COEFF_PROB_SIZE][COEFF_PROB_NUM] = { + // Y plane - Intra + // Band 0 + { 195, 29, 183 }, { 84, 49, 136 }, { 8, 42, 71 }, + // Band 1 + { 31, 107, 169 }, { 35, 99, 159 }, { 17, 82, 140 }, + { 8, 66, 114 }, { 2, 44, 76 }, { 1, 19, 32 }, + // Band 2 + { 40, 132, 201 }, { 29, 114, 187 }, { 13, 91, 157 }, + { 7, 75, 127 }, { 3, 58, 95 }, { 1, 28, 47 }, + // Band 3 + { 69, 142, 221 }, { 42, 122, 201 }, { 15, 91, 159 }, + { 6, 67, 121 }, { 1, 42, 77 }, { 1, 17, 31 }, + // Band 4 + { 102, 148, 228 }, { 67, 117, 204 }, { 17, 82, 154 }, + { 6, 59, 114 }, { 2, 39, 75 }, { 1, 15, 29 }, + // Band 5 + { 156, 57, 233 }, { 119, 57, 212 }, { 58, 48, 163 }, + { 29, 40, 124 }, { 12, 30, 81 }, { 3, 12, 31 }, + + // Y plane - Inter + // Band 0 + { 191, 107, 226 }, { 124, 117, 204 }, { 25, 99, 155 }, + // Band 1 + { 29, 148, 210 }, { 37, 126, 194 }, { 8, 93, 157 }, + { 2, 68, 118 }, { 1, 39, 69 }, { 1, 17, 33 }, + // Band 2 + { 41, 151, 213 }, { 27, 123, 193 }, { 3, 82, 144 }, + { 1, 58, 105 }, { 1, 32, 60 }, { 1, 13, 26 }, + // Band 3 + { 59, 159, 220 }, { 23, 126, 198 }, { 4, 88, 151 }, + { 1, 66, 114 }, { 1, 38, 71 }, { 1, 18, 34 }, + // Band 4 + { 114, 136, 232 }, { 51, 114, 207 }, { 11, 83, 155 }, + { 3, 56, 105 }, { 1, 33, 65 }, { 1, 17, 34 }, + // Band 5 + { 149, 65, 234 }, { 121, 57, 215 }, { 61, 49, 166 }, + { 28, 36, 114 }, { 12, 25, 76 }, { 3, 16, 42 }, + + // UV plane - Intra + // Band 0 + { 214, 49, 220 }, { 132, 63, 188 }, { 42, 65, 137 }, + // Band 1 + { 85, 137, 221 }, { 104, 131, 216 }, { 49, 111, 192 }, + { 21, 87, 155 }, { 2, 49, 87 }, { 1, 16, 28 }, + // Band 2 + { 89, 163, 230 }, { 90, 137, 220 }, { 29, 100, 183 }, + { 10, 70, 135 }, { 2, 42, 81 }, { 1, 17, 33 }, + // Band 3 + { 108, 167, 237 }, { 55, 133, 222 }, { 15, 97, 179 }, + { 4, 72, 135 }, { 1, 45, 85 }, { 1, 19, 38 }, + // Band 4 + { 124, 146, 240 }, { 66, 124, 224 }, { 17, 88, 175 }, + { 4, 58, 122 }, { 1, 36, 75 }, { 1, 18, 37 }, + // Band 5 + { 141, 79, 241 }, { 126, 70, 227 }, { 66, 58, 182 }, + { 30, 44, 136 }, { 12, 34, 96 }, { 2, 20, 47 }, + + // UV plane - Inter + // Band 0 + { 229, 99, 249 }, { 143, 111, 235 }, { 46, 109, 192 }, + // Band 1 + { 82, 158, 236 }, { 94, 146, 224 }, { 25, 117, 191 }, + { 9, 87, 149 }, { 3, 56, 99 }, { 1, 33, 57 }, + // Band 2 + { 83, 167, 237 }, { 68, 145, 222 }, { 10, 103, 177 }, + { 2, 72, 131 }, { 1, 41, 79 }, { 1, 20, 39 }, + // Band 3 + { 99, 167, 239 }, { 47, 141, 224 }, { 10, 104, 178 }, + { 2, 73, 133 }, { 1, 44, 85 }, { 1, 22, 47 }, + // Band 4 + { 127, 145, 243 }, { 71, 129, 228 }, { 17, 93, 177 }, + { 3, 61, 124 }, { 1, 41, 84 }, { 1, 21, 52 }, + // Band 5 + { 157, 78, 244 }, { 140, 72, 231 }, { 69, 58, 184 }, + { 31, 44, 137 }, { 14, 38, 105 }, { 8, 23, 61 } +}; -struct encode_state; -extern bool intel_write_uncompressed_header(struct encode_state *encode_state, - int codec_profile, - char *header_data, - int *header_length, - vp9_header_bitoffset *header_bitoffset); +static const vp9_prob default_coef_probs_8x8[COEFF_PROB_SIZE][COEFF_PROB_NUM] = { + // Y plane - Intra + // Band 0 + { 125, 34, 187 }, { 52, 41, 133 }, { 6, 31, 56 }, + // Band 1 + { 37, 109, 153 }, { 51, 102, 147 }, { 23, 87, 128 }, + { 8, 67, 101 }, { 1, 41, 63 }, { 1, 19, 29 }, + // Band 2 + { 31, 154, 185 }, { 17, 127, 175 }, { 6, 96, 145 }, + { 2, 73, 114 }, { 1, 51, 82 }, { 1, 28, 45 }, + // Band 3 + { 23, 163, 200 }, { 10, 131, 185 }, { 2, 93, 148 }, + { 1, 67, 111 }, { 1, 41, 69 }, { 1, 14, 24 }, + // Band 4 + { 29, 176, 217 }, { 12, 145, 201 }, { 3, 101, 156 }, + { 1, 69, 111 }, { 1, 39, 63 }, { 1, 14, 23 }, + // Band 5 + { 57, 192, 233 }, { 25, 154, 215 }, { 6, 109, 167 }, + { 3, 78, 118 }, { 1, 48, 69 }, { 1, 21, 29 }, + + // Y plane - Inter + // Band 0 + { 202, 105, 245 }, { 108, 106, 216 }, { 18, 90, 144 }, + // Band 1 + { 33, 172, 219 }, { 64, 149, 206 }, { 14, 117, 177 }, + { 5, 90, 141 }, { 2, 61, 95 }, { 1, 37, 57 }, + // Band 2 + { 33, 179, 220 }, { 11, 140, 198 }, { 1, 89, 148 }, + { 1, 60, 104 }, { 1, 33, 57 }, { 1, 12, 21 }, + // Band 3 + { 30, 181, 221 }, { 8, 141, 198 }, { 1, 87, 145 }, + { 1, 58, 100 }, { 1, 31, 55 }, { 1, 12, 20 }, + // Band 4 + { 32, 186, 224 }, { 7, 142, 198 }, { 1, 86, 143 }, + { 1, 58, 100 }, { 1, 31, 55 }, { 1, 12, 22 }, + // Band 5 + { 57, 192, 227 }, { 20, 143, 204 }, { 3, 96, 154 }, + { 1, 68, 112 }, { 1, 42, 69 }, { 1, 19, 32 }, + + // UV plane - Intra + // Band 0 + { 212, 35, 215 }, { 113, 47, 169 }, { 29, 48, 105 }, + // Band 1 + { 74, 129, 203 }, { 106, 120, 203 }, { 49, 107, 178 }, + { 19, 84, 144 }, { 4, 50, 84 }, { 1, 15, 25 }, + // Band 2 + { 71, 172, 217 }, { 44, 141, 209 }, { 15, 102, 173 }, + { 6, 76, 133 }, { 2, 51, 89 }, { 1, 24, 42 }, + // Band 3 + { 64, 185, 231 }, { 31, 148, 216 }, { 8, 103, 175 }, + { 3, 74, 131 }, { 1, 46, 81 }, { 1, 18, 30 }, + // Band 4 + { 65, 196, 235 }, { 25, 157, 221 }, { 5, 105, 174 }, + { 1, 67, 120 }, { 1, 38, 69 }, { 1, 15, 30 }, + // Band 5 + { 65, 204, 238 }, { 30, 156, 224 }, { 7, 107, 177 }, + { 2, 70, 124 }, { 1, 42, 73 }, { 1, 18, 34 }, + + // UV Plane - Inter + // Band 0 + { 225, 86, 251 }, { 144, 104, 235 }, { 42, 99, 181 }, + // Band 1 + { 85, 175, 239 }, { 112, 165, 229 }, { 29, 136, 200 }, + { 12, 103, 162 }, { 6, 77, 123 }, { 2, 53, 84 }, + // Band 2 + { 75, 183, 239 }, { 30, 155, 221 }, { 3, 106, 171 }, + { 1, 74, 128 }, { 1, 44, 76 }, { 1, 17, 28 }, + // Band 3 + { 73, 185, 240 }, { 27, 159, 222 }, { 2, 107, 172 }, + { 1, 75, 127 }, { 1, 42, 73 }, { 1, 17, 29 }, + // Band 4 + { 62, 190, 238 }, { 21, 159, 222 }, { 2, 107, 172 }, + { 1, 72, 122 }, { 1, 40, 71 }, { 1, 18, 32 }, + // Band 5 + { 61, 199, 240 }, { 27, 161, 226 }, { 4, 113, 180 }, + { 1, 76, 129 }, { 1, 46, 80 }, { 1, 23, 41 } +}; -typedef enum { - ONLY_4X4 = 0, // only 4x4 transform used - ALLOW_8X8 = 1, // allow block transform size up to 8x8 - ALLOW_16X16 = 2, // allow block transform size up to 16x16 - ALLOW_32X32 = 3, // allow block transform size up to 32x32 - TX_MODE_SELECT = 4, // transform specified for each block - TX_MODES = 5, -} TX_MODE; +static const vp9_prob default_coef_probs_16x16[COEFF_PROB_SIZE][COEFF_PROB_NUM] = { + // Y plane - Intra + // Band 0 + { 7, 27, 153 }, { 5, 30, 95 }, { 1, 16, 30 }, + // Band 1 + { 50, 75, 127 }, { 57, 75, 124 }, { 27, 67, 108 }, + { 10, 54, 86 }, { 1, 33, 52 }, { 1, 12, 18 }, + // Band 2 + { 43, 125, 151 }, { 26, 108, 148 }, { 7, 83, 122 }, + { 2, 59, 89 }, { 1, 38, 60 }, { 1, 17, 27 }, + // Band 3 + { 23, 144, 163 }, { 13, 112, 154 }, { 2, 75, 117 }, + { 1, 50, 81 }, { 1, 31, 51 }, { 1, 14, 23 }, + // Band 4 + { 18, 162, 185 }, { 6, 123, 171 }, { 1, 78, 125 }, + { 1, 51, 86 }, { 1, 31, 54 }, { 1, 14, 23 }, + // Band 5 + { 15, 199, 227 }, { 3, 150, 204 }, { 1, 91, 146 }, + { 1, 55, 95 }, { 1, 30, 53 }, { 1, 11, 20 }, + + // Y plane - Inter + // Band 0 + { 19, 55, 240 }, { 19, 59, 196 }, { 3, 52, 105 }, + // Band 1 + { 41, 166, 207 }, { 104, 153, 199 }, { 31, 123, 181 }, + { 14, 101, 152 }, { 5, 72, 106 }, { 1, 36, 52 }, + // Band 2 + { 35, 176, 211 }, { 12, 131, 190 }, { 2, 88, 144 }, + { 1, 60, 101 }, { 1, 36, 60 }, { 1, 16, 28 }, + // Band 3 + { 28, 183, 213 }, { 8, 134, 191 }, { 1, 86, 142 }, + { 1, 56, 96 }, { 1, 30, 53 }, { 1, 12, 20 }, + // Band 4 + { 20, 190, 215 }, { 4, 135, 192 }, { 1, 84, 139 }, + { 1, 53, 91 }, { 1, 28, 49 }, { 1, 11, 20 }, + // Band 5 + { 13, 196, 216 }, { 2, 137, 192 }, { 1, 86, 143 }, + { 1, 57, 99 }, { 1, 32, 56 }, { 1, 13, 24 }, + + // UV plane - Intra + // Band 0 + { 211, 29, 217 }, { 96, 47, 156 }, { 22, 43, 87 }, + // Band 1 + { 78, 120, 193 }, { 111, 116, 186 }, { 46, 102, 164 }, + { 15, 80, 128 }, { 2, 49, 76 }, { 1, 18, 28 }, + // Band 2 + { 71, 161, 203 }, { 42, 132, 192 }, { 10, 98, 150 }, + { 3, 69, 109 }, { 1, 44, 70 }, { 1, 18, 29 }, + // Band 3 + { 57, 186, 211 }, { 30, 140, 196 }, { 4, 93, 146 }, + { 1, 62, 102 }, { 1, 38, 65 }, { 1, 16, 27 }, + // Band 4 + { 47, 199, 217 }, { 14, 145, 196 }, { 1, 88, 142 }, + { 1, 57, 98 }, { 1, 36, 62 }, { 1, 15, 26 }, + // Band 5 + { 26, 219, 229 }, { 5, 155, 207 }, { 1, 94, 151 }, + { 1, 60, 104 }, { 1, 36, 62 }, { 1, 16, 28 }, + + // UV plane - Inter + // Band 0 + { 233, 29, 248 }, { 146, 47, 220 }, { 43, 52, 140 }, + // Band 1 + { 100, 163, 232 }, { 179, 161, 222 }, { 63, 142, 204 }, + { 37, 113, 174 }, { 26, 89, 137 }, { 18, 68, 97 }, + // Band 2 + { 85, 181, 230 }, { 32, 146, 209 }, { 7, 100, 164 }, + { 3, 71, 121 }, { 1, 45, 77 }, { 1, 18, 30 }, + // Band 3 + { 65, 187, 230 }, { 20, 148, 207 }, { 2, 97, 159 }, + { 1, 68, 116 }, { 1, 40, 70 }, { 1, 14, 29 }, + // Band 4 + { 40, 194, 227 }, { 8, 147, 204 }, { 1, 94, 155 }, + { 1, 65, 112 }, { 1, 39, 66 }, { 1, 14, 26 }, + // Band 5 + { 16, 208, 228 }, { 3, 151, 207 }, { 1, 98, 160 }, + { 1, 67, 117 }, { 1, 41, 74 }, { 1, 17, 31 } +}; -typedef enum { - SINGLE_REFERENCE = 0, - COMPOUND_REFERENCE = 1, - REFERENCE_MODE_SELECT = 2, - REFERENCE_MODES = 3, -} REFERENCE_MODE; +static const vp9_prob default_coef_probs_32x32[COEFF_PROB_SIZE][COEFF_PROB_NUM] = { + // Y plane - Intra + // Band 0 + { 17, 38, 140 }, { 7, 34, 80 }, { 1, 17, 29 }, + // Band 1 + { 37, 75, 128 }, { 41, 76, 128 }, { 26, 66, 116 }, + { 12, 52, 94 }, { 2, 32, 55 }, { 1, 10, 16 }, + // Band 2 + { 50, 127, 154 }, { 37, 109, 152 }, { 16, 82, 121 }, + { 5, 59, 85 }, { 1, 35, 54 }, { 1, 13, 20 }, + //Band 3 + { 40, 142, 167 }, { 17, 110, 157 }, { 2, 71, 112 }, + { 1, 44, 72 }, { 1, 27, 45 }, { 1, 11, 17 }, + // Band 4 + { 30, 175, 188 }, { 9, 124, 169 }, { 1, 74, 116 }, + { 1, 48, 78 }, { 1, 30, 49 }, { 1, 11, 18 }, + // Band 5 + { 10, 222, 223 }, { 2, 150, 194 }, { 1, 83, 128 }, + { 1, 48, 79 }, { 1, 27, 45 }, { 1, 11, 17 }, + + // Y plane - Inter + // Band 0 + { 36, 41, 235 }, { 29, 36, 193 }, { 10, 27, 111 }, + // Band 1 + { 85, 165, 222 }, { 177, 162, 215 }, { 110, 135, 195 }, + { 57, 113, 168 }, { 23, 83, 120 }, { 10, 49, 61 }, + // Band 2 + { 85, 190, 223 }, { 36, 139, 200 }, { 5, 90, 146 }, + { 1, 60, 103 }, { 1, 38, 65 }, { 1, 18, 30 }, + // Band 3 + { 72, 202, 223 }, { 23, 141, 199 }, { 2, 86, 140 }, + { 1, 56, 97 }, { 1, 36, 61 }, { 1, 16, 27 }, + // Band 4 + { 55, 218, 225 }, { 13, 145, 200 }, { 1, 86, 141 }, + { 1, 57, 99 }, { 1, 35, 61 }, { 1, 13, 22 }, + // Band 5 + { 15, 235, 212 }, { 1, 132, 184 }, { 1, 84, 139 }, + { 1, 57, 97 }, { 1, 34, 56 }, { 1, 14, 23 }, + + // UV plane - Intra + // Band 0 + { 181, 21, 201 }, { 61, 37, 123 }, { 10, 38, 71 }, + // Band 1 + { 47, 106, 172 }, { 95, 104, 173 }, { 42, 93, 159 }, + { 18, 77, 131 }, { 4, 50, 81 }, { 1, 17, 23 }, + // Band 2 + { 62, 147, 199 }, { 44, 130, 189 }, { 28, 102, 154 }, + { 18, 75, 115 }, { 2, 44, 65 }, { 1, 12, 19 }, + // Band 3 + { 55, 153, 210 }, { 24, 130, 194 }, { 3, 93, 146 }, + { 1, 61, 97 }, { 1, 31, 50 }, { 1, 10, 16 }, + // Band 4 + { 49, 186, 223 }, { 17, 148, 204 }, { 1, 96, 142 }, + { 1, 53, 83 }, { 1, 26, 44 }, { 1, 11, 17 }, + // Band 5 + { 13, 217, 212 }, { 2, 136, 180 }, { 1, 78, 124 }, + { 1, 50, 83 }, { 1, 29, 49 }, { 1, 14, 23 }, + + // UV plane - Inter + // Band 0 + { 197, 13, 247 }, { 82, 17, 222 }, { 25, 17, 162 }, + // Band 1 + { 126, 186, 247 }, { 234, 191, 243 }, { 176, 177, 234 }, + { 104, 158, 220 }, { 66, 128, 186 }, { 55, 90, 137 }, + // Band 2 + { 111, 197, 242 }, { 46, 158, 219 }, { 9, 104, 171 }, + { 2, 65, 125 }, { 1, 44, 80 }, { 1, 17, 91 }, + // Band 3 + { 104, 208, 245 }, { 39, 168, 224 }, { 3, 109, 162 }, + { 1, 79, 124 }, { 1, 50, 102 }, { 1, 43, 102 }, + // Band 4 + { 84, 220, 246 }, { 31, 177, 231 }, { 2, 115, 180 }, + { 1, 79, 134 }, { 1, 55, 77 }, { 1, 60, 79 }, + // Band 5 + { 43, 243, 240 }, { 8, 180, 217 }, { 1, 115, 166 }, + { 1, 84, 121 }, { 1, 51, 67 }, { 1, 16, 6 } -extern const unsigned short vp9_quant_dc[256]; -extern const unsigned short vp9_quant_ac[256]; +}; #endif /*VP9_PROBS_H */ diff -Nru intel-vaapi-driver-1.7.1/src/wayland/Makefile.am intel-vaapi-driver-1.7.0/src/wayland/Makefile.am --- intel-vaapi-driver-1.7.1/src/wayland/Makefile.am 1970-01-01 00:00:00.000000000 +0000 +++ intel-vaapi-driver-1.7.0/src/wayland/Makefile.am 2016-02-22 04:30:34.000000000 +0000 @@ -0,0 +1,28 @@ +# Copyright (C) 2012 Intel Corporation. All Rights Reserved. +# +# Permission is hereby granted, free of charge, to any person obtaining a +# copy of this software and associated documentation files (the +# "Software"), to deal in the Software without restriction, including +# without limitation the rights to use, copy, modify, merge, publish, +# distribute, sub license, and/or sell copies of the Software, and to +# permit persons to whom the Software is furnished to do so, subject to +# the following conditions: +# +# The above copyright notice and this permission notice (including the +# next paragraph) shall be included in all copies or substantial portions +# of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. +# IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR +# ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +# TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +EXTRA_DIST = \ + wayland-drm.xml \ + $(NULL) + +# Extra clean files so that maintainer-clean removes *everything* +MAINTAINERCLEANFILES = Makefile.in diff -Nru intel-vaapi-driver-1.7.1/src/wayland/Makefile.in intel-vaapi-driver-1.7.0/src/wayland/Makefile.in --- intel-vaapi-driver-1.7.1/src/wayland/Makefile.in 1970-01-01 00:00:00.000000000 +0000 +++ intel-vaapi-driver-1.7.0/src/wayland/Makefile.in 2016-03-15 06:42:45.000000000 +0000 @@ -0,0 +1,478 @@ +# Makefile.in generated by automake 1.14.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +# Copyright (C) 2012 Intel Corporation. All Rights Reserved. +# +# Permission is hereby granted, free of charge, to any person obtaining a +# copy of this software and associated documentation files (the +# "Software"), to deal in the Software without restriction, including +# without limitation the rights to use, copy, modify, merge, publish, +# distribute, sub license, and/or sell copies of the Software, and to +# permit persons to whom the Software is furnished to do so, subject to +# the following conditions: +# +# The above copyright notice and this permission notice (including the +# next paragraph) shall be included in all copies or substantial portions +# of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. +# IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR +# ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +# TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +VPATH = @srcdir@ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = src/wayland +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/src/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +SOURCES = +DIST_SOURCES = +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DRM_CFLAGS = @DRM_CFLAGS@ +DRM_LIBS = @DRM_LIBS@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGL_CFLAGS = @EGL_CFLAGS@ +EGL_LIBS = @EGL_LIBS@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GEN4ASM = @GEN4ASM@ +GEN4ASM_CFLAGS = @GEN4ASM_CFLAGS@ +GEN4ASM_LIBS = @GEN4ASM_LIBS@ +GIT = @GIT@ +GREP = @GREP@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +INTEL_DRIVER_LT_LDFLAGS = @INTEL_DRIVER_LT_LDFLAGS@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBDRM_VERSION = @LIBDRM_VERSION@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIBVA_DEPS_CFLAGS = @LIBVA_DEPS_CFLAGS@ +LIBVA_DEPS_LIBS = @LIBVA_DEPS_LIBS@ +LIBVA_DRIVERS_PATH = @LIBVA_DRIVERS_PATH@ +LIBVA_DRM_DEPS_CFLAGS = @LIBVA_DRM_DEPS_CFLAGS@ +LIBVA_DRM_DEPS_LIBS = @LIBVA_DRM_DEPS_LIBS@ +LIBVA_PACKAGE_VERSION = @LIBVA_PACKAGE_VERSION@ +LIBVA_WAYLAND_DEPS_CFLAGS = @LIBVA_WAYLAND_DEPS_CFLAGS@ +LIBVA_WAYLAND_DEPS_LIBS = @LIBVA_WAYLAND_DEPS_LIBS@ +LIBVA_X11_DEPS_CFLAGS = @LIBVA_X11_DEPS_CFLAGS@ +LIBVA_X11_DEPS_LIBS = @LIBVA_X11_DEPS_LIBS@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +PYTHON2 = @PYTHON2@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +VERSION = @VERSION@ +WAYLAND_CFLAGS = @WAYLAND_CFLAGS@ +WAYLAND_LIBS = @WAYLAND_LIBS@ +WAYLAND_SCANNER_CFLAGS = @WAYLAND_SCANNER_CFLAGS@ +WAYLAND_SCANNER_LIBS = @WAYLAND_SCANNER_LIBS@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +wayland_protocoldir = @wayland_protocoldir@ +wayland_scanner = @wayland_scanner@ +EXTRA_DIST = \ + wayland-drm.xml \ + $(NULL) + + +# Extra clean files so that maintainer-clean removes *everything* +MAINTAINERCLEANFILES = Makefile.in +all: all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/wayland/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu src/wayland/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +tags TAGS: + +ctags CTAGS: + +cscope cscopelist: + + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile +installdirs: +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." + -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) +clean: clean-am + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: + +.MAKE: install-am install-strip + +.PHONY: all all-am check check-am clean clean-generic clean-libtool \ + cscopelist-am ctags-am distclean distclean-generic \ + distclean-libtool distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags-am uninstall uninstall-am + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff -Nru intel-vaapi-driver-1.7.1/src/wayland/wayland-drm.xml intel-vaapi-driver-1.7.0/src/wayland/wayland-drm.xml --- intel-vaapi-driver-1.7.1/src/wayland/wayland-drm.xml 1970-01-01 00:00:00.000000000 +0000 +++ intel-vaapi-driver-1.7.0/src/wayland/wayland-drm.xml 2016-02-22 04:30:34.000000000 +0000 @@ -0,0 +1,155 @@ + + + + + Copyright © 2008-2011 Kristian Høgsberg + Copyright © 2010-2011 Intel Corporation + + Permission to use, copy, modify, distribute, and sell this + software and its documentation for any purpose is hereby granted + without fee, provided that\n 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 + the copyright holders not be used in advertising or publicity + pertaining to distribution of the software without specific, + written prior permission. The copyright holders make no + representations about the suitability of this software for any + purpose. It is provided "as is" without express or implied + warranty. + + THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS + SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS, IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY + SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN + AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF + THIS SOFTWARE. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -Nru intel-vaapi-driver-1.7.1/src/wayland-drm.xml intel-vaapi-driver-1.7.0/src/wayland-drm.xml --- intel-vaapi-driver-1.7.1/src/wayland-drm.xml 2016-06-17 01:06:24.000000000 +0000 +++ intel-vaapi-driver-1.7.0/src/wayland-drm.xml 1970-01-01 00:00:00.000000000 +0000 @@ -1,155 +0,0 @@ - - - - - Copyright © 2008-2011 Kristian Høgsberg - Copyright © 2010-2011 Intel Corporation - - Permission to use, copy, modify, distribute, and sell this - software and its documentation for any purpose is hereby granted - without fee, provided that\n 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 - the copyright holders not be used in advertising or publicity - pertaining to distribution of the software without specific, - written prior permission. The copyright holders make no - representations about the suitability of this software for any - purpose. It is provided "as is" without express or implied - warranty. - - THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS - SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND - FITNESS, IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY - SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN - AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, - ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF - THIS SOFTWARE. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -