diff -Nru gtksourceview3-3.12.1/aclocal.m4 gtksourceview3-3.14.4/aclocal.m4 --- gtksourceview3-3.12.1/aclocal.m4 2014-04-14 20:10:37.000000000 +0000 +++ gtksourceview3-3.14.4/aclocal.m4 2015-04-04 12:42:50.000000000 +0000 @@ -1,4 +1,4 @@ -# generated automatically by aclocal 1.13.4 -*- Autoconf -*- +# generated automatically by aclocal 1.14.1 -*- Autoconf -*- # Copyright (C) 1996-2013 Free Software Foundation, Inc. @@ -20,1968 +20,2142 @@ 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'.])]) -# 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. - -# 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.13' -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.13.4], [], - [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], []) +# nls.m4 serial 5 (gettext-0.18) +dnl Copyright (C) 1995-2003, 2005-2006, 2008-2014 Free Software Foundation, +dnl Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. +dnl +dnl This file can can be used in projects which are not available under +dnl the GNU General Public License or the GNU Library General Public +dnl License but which still want to provide support for the GNU gettext +dnl functionality. +dnl Please note that the actual code of the GNU gettext library is covered +dnl by the GNU Library General Public License, and the rest of the GNU +dnl gettext package package is covered by the GNU General Public License. +dnl They are *not* in the public domain. -# 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.13.4])dnl -m4_ifndef([AC_AUTOCONF_VERSION], - [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl -_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) +dnl Authors: +dnl Ulrich Drepper , 1995-2000. +dnl Bruno Haible , 2000-2003. -# AM_AUX_DIR_EXPAND -*- Autoconf -*- +AC_PREREQ([2.50]) -# 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_DEFUN([AM_NLS], +[ + AC_MSG_CHECKING([whether NLS is requested]) + dnl Default is enabled NLS + AC_ARG_ENABLE([nls], + [ --disable-nls do not use Native Language Support], + USE_NLS=$enableval, USE_NLS=yes) + AC_MSG_RESULT([$USE_NLS]) + AC_SUBST([USE_NLS]) +]) -# 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. +# pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*- +# serial 1 (pkg-config-0.24) +# +# Copyright © 2004 Scott James Remnant . # -# $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 +# 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. # -# 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. +# 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. # -# 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 this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # -# 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. +# 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. -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` -]) +# 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_CONDITIONAL -*- Autoconf -*- +if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then + AC_PATH_TOOL([PKG_CONFIG], [pkg-config]) +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 -# Copyright (C) 1997-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_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='#' +# _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 - $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])]) + _pkg_short_errors_supported=no +fi[]dnl +])# _PKG_SHORT_ERRORS_SUPPORTED -# Copyright (C) 1999-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. +# +# 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 +pkg_failed=no +AC_MSG_CHECKING([for $1]) -# 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... +_PKG_CONFIG([$1][_CFLAGS], [cflags], [$2]) +_PKG_CONFIG([$1][_LIBS], [libs], [$2]) +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.]) -# _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 +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_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=]) + m4_default([$4], [AC_MSG_ERROR( +[Package requirements ($2) were not met: -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 +$$1_PKG_ERRORS - 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]) +Consider adjusting the PKG_CONFIG_PATH environment variable if you +installed software in a non-standard prefix. - 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 +_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. - # 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 +_PKG_TEXT - cd .. - rm -rf conftest.dir +To get pkg-config, see .])[]dnl + ]) else - am_cv_$1_dependencies_compiler_type=none -fi -]) -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]) -]) + $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS + $1[]_LIBS=$pkg_cv_[]$1[]_LIBS + AC_MSG_RESULT([yes]) + $3 +fi[]dnl +])# PKG_CHECK_MODULES -# 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 -]) +# PKG_INSTALLDIR(DIRECTORY) +# ------------------------- +# Substitutes the variable pkgconfigdir as the location where a module +# should install pkg-config .pc files. By default the directory is +# $libdir/pkgconfig, but the default can be changed by passing +# DIRECTORY. The user can override through the --with-pkgconfigdir +# parameter. +AC_DEFUN([PKG_INSTALLDIR], +[m4_pushdef([pkg_default], [m4_default([$1], ['${libdir}/pkgconfig'])]) +m4_pushdef([pkg_description], + [pkg-config installation directory @<:@]pkg_default[@:>@]) +AC_ARG_WITH([pkgconfigdir], + [AS_HELP_STRING([--with-pkgconfigdir], pkg_description)],, + [with_pkgconfigdir=]pkg_default) +AC_SUBST([pkgconfigdir], [$with_pkgconfigdir]) +m4_popdef([pkg_default]) +m4_popdef([pkg_description]) +]) dnl PKG_INSTALLDIR -# 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 -]) +# PKG_NOARCH_INSTALLDIR(DIRECTORY) +# ------------------------- +# Substitutes the variable noarch_pkgconfigdir as the location where a +# module should install arch-independent pkg-config .pc files. By +# default the directory is $datadir/pkgconfig, but the default can be +# changed by passing DIRECTORY. The user can override through the +# --with-noarch-pkgconfigdir parameter. +AC_DEFUN([PKG_NOARCH_INSTALLDIR], +[m4_pushdef([pkg_default], [m4_default([$1], ['${datadir}/pkgconfig'])]) +m4_pushdef([pkg_description], + [pkg-config arch-independent installation directory @<:@]pkg_default[@:>@]) +AC_ARG_WITH([noarch-pkgconfigdir], + [AS_HELP_STRING([--with-noarch-pkgconfigdir], pkg_description)],, + [with_noarch_pkgconfigdir=]pkg_default) +AC_SUBST([noarch_pkgconfigdir], [$with_noarch_pkgconfigdir]) +m4_popdef([pkg_default]) +m4_popdef([pkg_description]) +]) dnl PKG_NOARCH_INSTALLDIR -# Generate code to set up dependency tracking. -*- Autoconf -*- -# Copyright (C) 1999-2013 Free Software Foundation, Inc. +# PKG_CHECK_VAR(VARIABLE, MODULE, CONFIG-VARIABLE, +# [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) +# ------------------------------------------- +# Retrieves the value of the pkg-config variable for the given module. +AC_DEFUN([PKG_CHECK_VAR], +[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl +AC_ARG_VAR([$1], [value of $3 for $2, overriding pkg-config])dnl + +_PKG_CONFIG([$1], [variable="][$3]["], [$2]) +AS_VAR_COPY([$1], [pkg_cv_][$1]) + +AS_VAR_IF([$1], [""], [$5], [$4])dnl +])# PKG_CHECK_VAR + +# SYNOPSIS # -# 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. +# AX_CODE_COVERAGE() +# +# DESCRIPTION +# +# Defines CODE_COVERAGE_CFLAGS and CODE_COVERAGE_LDFLAGS which should be +# included in the CFLAGS and LIBS/LDFLAGS variables of every build target +# (program or library) which should be built with code coverage support. +# Also defines CODE_COVERAGE_RULES which should be substituted in your +# Makefile; and $enable_code_coverage which can be used in subsequent +# configure output. CODE_COVERAGE_ENABLED is defined and substituted, and +# corresponds to the value of the --enable-code-coverage option, which +# defaults to being disabled. +# +# Note that all optimisation flags in CFLAGS must be disabled when code +# coverage is enabled. +# +# Usage example: +# configure.ac: +# AX_CODE_COVERAGE +# +# Makefile.am: +# @CODE_COVERAGE_RULES@ +# my_program_LIBS = … $(CODE_COVERAGE_LDFLAGS) … +# my_program_CFLAGS = … $(CODE_COVERAGE_CFLAGS) … +# +# This results in a “check-code-coverage” rule being added to any Makefile.am +# which includes “@CODE_COVERAGE_RULES@” (assuming the module has been +# configured with --enable-code-coverage). Running `make check-code-coverage` +# in that directory will run the module’s test suite (`make check`) and build +# a code coverage report detailing the code which was touched, then print the +# URI for the report. +# +# LICENSE +# +# Copyright © 2012, 2014 Philip Withnall +# Copyright © 2012 Xan Lopez +# Copyright © 2012 Christian Persch +# Copyright © 2012 Paolo Borelli +# Copyright © 2012 Dan Winship +# +# Derived from Makefile.decl in GLib, originally licenced under LGPLv2.1+. +# This file is licenced under LGPLv2.1+. +#serial 1 -# _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 - +AC_DEFUN([AX_CODE_COVERAGE],[ + dnl Check for --enable-code-coverage + AC_MSG_CHECKING([whether to build with code coverage support]) + AC_ARG_ENABLE([code-coverage], AS_HELP_STRING([--enable-code-coverage], [Whether to enable code coverage support]),, enable_code_coverage=no) + AM_CONDITIONAL([CODE_COVERAGE_ENABLED], [test x$enable_code_coverage = xyes]) + AC_SUBST([CODE_COVERAGE_ENABLED], [$enable_code_coverage]) + AC_MSG_RESULT($enable_code_coverage) -# 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"]) -]) + AS_IF([ test "$enable_code_coverage" = "yes" ], [ + dnl Check if gcc is being used + AS_IF([ test "$GCC" = "no" ], [ + AC_MSG_ERROR([not compiling with gcc, which is required for gcov code coverage]) + ]) -# Do all the work for Automake. -*- Autoconf -*- + # List of supported lcov versions. + lcov_version_list="1.6 1.7 1.8 1.9 1.10 1.11" -# 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. + AC_CHECK_PROG([LCOV], [lcov], [lcov]) + AC_CHECK_PROG([GENHTML], [genhtml], [genhtml]) -# 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. + AS_IF([ test "$LCOV" ], [ + AC_CACHE_CHECK([for lcov version], ax_cv_lcov_version, [ + ax_cv_lcov_version=invalid + lcov_version=`$LCOV -v 2>/dev/null | $SED -e 's/^.* //'` + for lcov_check_version in $lcov_version_list; do + if test "$lcov_version" = "$lcov_check_version"; then + ax_cv_lcov_version="$lcov_check_version (ok)" + fi + done + ]) + ], [ + lcov_msg="To enable code coverage reporting you must have one of the following lcov versions installed: $lcov_version_list" + AC_MSG_ERROR([$lcov_msg]) + ]) -# 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 + case $ax_cv_lcov_version in + ""|invalid[)] + lcov_msg="You must have one of the following versions of lcov: $lcov_version_list (found: $lcov_version)." + AC_MSG_ERROR([$lcov_msg]) + LCOV="exit 0;" + ;; + esac -# 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]) + AS_IF([ test -z "$GENHTML" ], [ + AC_MSG_ERROR([Could not find genhtml from the lcov package]) + ]) -# 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 + dnl Build the code coverage flags + CODE_COVERAGE_CFLAGS="-O0 -g -fprofile-arcs -ftest-coverage" + CODE_COVERAGE_LDFLAGS="-lgcov" -_AM_IF_OPTION([no-define],, -[AC_DEFINE_UNQUOTED([PACKAGE], ["$PACKAGE"], [Name of package]) - AC_DEFINE_UNQUOTED([VERSION], ["$VERSION"], [Version number of package])])dnl + AC_SUBST([CODE_COVERAGE_CFLAGS]) + AC_SUBST([CODE_COVERAGE_LDFLAGS]) + ]) -# 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 -]) +CODE_COVERAGE_RULES=' +# Code coverage +# +# Optional: +# - CODE_COVERAGE_DIRECTORY: Top-level directory for code coverage reporting. +# (Default: $(top_builddir)) +# - CODE_COVERAGE_OUTPUT_FILE: Filename and path for the .info file generated +# by lcov for code coverage. (Default: +# $(PACKAGE_NAME)-$(PACKAGE_VERSION)-coverage.info) +# - CODE_COVERAGE_OUTPUT_DIRECTORY: Directory for generated code coverage +# reports to be created. (Default: +# $(PACKAGE_NAME)-$(PACKAGE_VERSION)-coverage) +# - CODE_COVERAGE_LCOV_OPTIONS: Extra options to pass to the lcov instance. +# (Default: empty) +# - CODE_COVERAGE_GENHTML_OPTIONS: Extra options to pass to the genhtml +# instance. (Default: empty) +# - CODE_COVERAGE_IGNORE_PATTERN: Extra glob pattern of files to ignore +# +# The generated report will be titled using the $(PACKAGE_NAME) and +# $(PACKAGE_VERSION). In order to add the current git hash to the title, +# use the git-version-gen script, available online. -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])]) +# Optional variables +CODE_COVERAGE_DIRECTORY ?= $(top_builddir) +CODE_COVERAGE_OUTPUT_FILE ?= $(PACKAGE_NAME)-$(PACKAGE_VERSION)-coverage.info +CODE_COVERAGE_OUTPUT_DIRECTORY ?= $(PACKAGE_NAME)-$(PACKAGE_VERSION)-coverage +CODE_COVERAGE_LCOV_OPTIONS ?= +CODE_COVERAGE_GENHTML_OPTIONS ?= +CODE_COVERAGE_IGNORE_PATTERN ?= +code_coverage_quiet = $(code_coverage_quiet_$(V)) +code_coverage_quiet_ = $(code_coverage_quiet_$(AM_DEFAULT_VERBOSITY)) +code_coverage_quiet_0 = --quiet -# 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. +# Use recursive makes in order to ignore errors during check +check-code-coverage: +ifeq ($(CODE_COVERAGE_ENABLED),yes) + -$(MAKE) $(AM_MAKEFLAGS) -k check + $(MAKE) $(AM_MAKEFLAGS) code-coverage-capture +else + @echo "Need to reconfigure with --enable-code-coverage" +endif -# 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]) - -# 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])]) - -# 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=. +# Capture code coverage data +code-coverage-capture: code-coverage-capture-hook +ifeq ($(CODE_COVERAGE_ENABLED),yes) + $(LCOV) $(code_coverage_quiet) --directory $(CODE_COVERAGE_DIRECTORY) --capture --output-file "$(CODE_COVERAGE_OUTPUT_FILE).tmp" --test-name "$(PACKAGE_NAME)-$(PACKAGE_VERSION)" --no-checksum --compat-libtool $(CODE_COVERAGE_LCOV_OPTIONS) + $(LCOV) $(code_coverage_quiet) --directory $(CODE_COVERAGE_DIRECTORY) --remove "$(CODE_COVERAGE_OUTPUT_FILE).tmp" "/tmp/*" $(CODE_COVERAGE_IGNORE_PATTERN) --output-file "$(CODE_COVERAGE_OUTPUT_FILE)" + -@rm -f $(CODE_COVERAGE_OUTPUT_FILE).tmp + LANG=C $(GENHTML) $(code_coverage_quiet) --prefix $(CODE_COVERAGE_DIRECTORY) --output-directory "$(CODE_COVERAGE_OUTPUT_DIRECTORY)" --title "$(PACKAGE_NAME)-$(PACKAGE_VERSION) Code Coverage" --legend --show-details "$(CODE_COVERAGE_OUTPUT_FILE)" $(CODE_COVERAGE_GENHTML_OPTIONS) + @echo "file://$(abs_builddir)/$(CODE_COVERAGE_OUTPUT_DIRECTORY)/index.html" else - am__leading_dot=_ -fi -rmdir .tst 2>/dev/null -AC_SUBST([am__leading_dot])]) + @echo "Need to reconfigure with --enable-code-coverage" +endif -# Add --enable-maintainer-mode option to configure. -*- Autoconf -*- -# From Jim Meyering +# Hook rule executed before code-coverage-capture, overridable by the user +code-coverage-capture-hook: -# 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. +ifeq ($(CODE_COVERAGE_ENABLED),yes) +clean: code-coverage-clean +code-coverage-clean: + -$(LCOV) --directory $(top_builddir) -z + -rm -rf $(CODE_COVERAGE_OUTPUT_FILE) $(CODE_COVERAGE_OUTPUT_FILE).tmp $(CODE_COVERAGE_OUTPUT_DIRECTORY) + -find . -name "*.gcda" -o -name "*.gcov" -delete +endif -# AM_MAINTAINER_MODE([DEFAULT-MODE]) -# ---------------------------------- -# Control maintainer-specific portions of Makefiles. -# Default is to disable them, unless 'enable' is passed literally. -# For symmetry, 'disable' may be passed as well. Anyway, the user -# can override the default with the --enable/--disable switch. -AC_DEFUN([AM_MAINTAINER_MODE], -[m4_case(m4_default([$1], [disable]), - [enable], [m4_define([am_maintainer_other], [disable])], - [disable], [m4_define([am_maintainer_other], [enable])], - [m4_define([am_maintainer_other], [enable]) - m4_warn([syntax], [unexpected argument to AM@&t@_MAINTAINER_MODE: $1])]) -AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) - dnl maintainer-mode's default is 'disable' unless 'enable' is passed - AC_ARG_ENABLE([maintainer-mode], - [AS_HELP_STRING([--]am_maintainer_other[-maintainer-mode], - am_maintainer_other[ make rules and dependencies not useful - (and sometimes confusing) to the casual installer])], - [USE_MAINTAINER_MODE=$enableval], - [USE_MAINTAINER_MODE=]m4_if(am_maintainer_other, [enable], [no], [yes])) - AC_MSG_RESULT([$USE_MAINTAINER_MODE]) - AM_CONDITIONAL([MAINTAINER_MODE], [test $USE_MAINTAINER_MODE = yes]) - MAINT=$MAINTAINER_MODE_TRUE - AC_SUBST([MAINT])dnl -] -) +GITIGNOREFILES ?= +GITIGNOREFILES += $(CODE_COVERAGE_OUTPUT_FILE) $(CODE_COVERAGE_OUTPUT_DIRECTORY) -# Check to see how 'make' treats includes. -*- Autoconf -*- +DISTCHECK_CONFIGURE_FLAGS ?= +DISTCHECK_CONFIGURE_FLAGS += --disable-code-coverage -# 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. +.PHONY: check-code-coverage code-coverage-capture code-coverage-capture-hook code-coverage-clean +' -# 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 + AC_SUBST([CODE_COVERAGE_RULES]) + m4_ifdef([_AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE([CODE_COVERAGE_RULES])]) ]) -# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- +dnl GNOME_CODE_COVERAGE +dnl +dnl Defines CODE_COVERAGE_CFLAGS and CODE_COVERAGE_LDFLAGS which should be +dnl included in the CFLAGS and LIBS/LDFLAGS variables of every build target +dnl (program or library) which should be built with code coverage support. +dnl Also defines GNOME_CODE_COVERAGE_RULES which should be substituted in your +dnl Makefile; and $enable_code_coverage which can be used in subsequent +dnl configure output. +dnl +dnl Note that all optimisation flags in CFLAGS must be disabled when code +dnl coverage is enabled. +dnl +dnl Derived from Makefile.decl in GLib, originally licenced under LGPLv2.1+. +dnl This file is licenced under LGPLv2.1+. +dnl +dnl Usage example: +dnl configure.ac: +dnl GNOME_CODE_COVERAGE +dnl +dnl Makefile.am: +dnl @GNOME_CODE_COVERAGE_RULES@ +dnl my_program_LIBS = … $(CODE_COVERAGE_LDFLAGS) … +dnl my_program_CFLAGS = … $(CODE_COVERAGE_CFLAGS) … +dnl +dnl This results in a “check-code-coverage” rule being added to any Makefile.am +dnl which includes “@GNOME_CODE_COVERAGE_RULES@” (assuming the module has been +dnl configured with --enable-code-coverage). Running `make check-code-coverage` +dnl in that directory will run the module’s test suite (`make check`) and build +dnl a code coverage report detailing the code which was touched, then print the +dnl URI for the report. -# 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. +AU_DEFUN([GNOME_CODE_COVERAGE],[ + AX_CODE_COVERAGE + GNOME_CODE_COVERAGE_RULES=$CODE_COVERAGE_RULES -# 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)]) + AC_SUBST([GNOME_CODE_COVERAGE_RULES]) + m4_ifdef([_AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE([GNOME_CODE_COVERAGE_RULES])]) +], +[[$0: This macro is deprecated. You should use AX_CODE_COVERAGE instead and +replace uses of GNOME_CODE_COVERAGE_RULES with CODE_COVERAGE_RULES. +See: http://www.gnu.org/software/autoconf-archive/ax_code_coverage.html#ax_code_coverage]]) -# 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 -]) +# gnome-compiler-flags.m4 +# +# serial 4 +# -# Helper functions for option handling. -*- Autoconf -*- +dnl GNOME_COMPILE_WARNINGS +dnl Turn on many useful compiler warnings and substitute the result into +dnl WARN_CFLAGS +dnl For now, only works on GCC +dnl Pass the default value of the --enable-compile-warnings configure option as +dnl the first argument to the macro, defaulting to 'yes'. +dnl Additional warning/error flags can be passed as an optional second argument. +dnl +dnl For example: GNOME_COMPILE_WARNINGS([maximum],[-Werror=some-flag -Wfoobar]) +AU_DEFUN([GNOME_COMPILE_WARNINGS],[ + dnl ****************************** + dnl More compiler warnings + 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_ARG_ENABLE(compile-warnings, + AS_HELP_STRING([--enable-compile-warnings=@<:@no/minimum/yes/maximum/error@:>@], + [Turn on compiler warnings]),, + [enable_compile_warnings="m4_default([$1],[yes])"]) -# _AM_MANGLE_OPTION(NAME) -# ----------------------- -AC_DEFUN([_AM_MANGLE_OPTION], -[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])]) + if test "x$GCC" != xyes; then + enable_compile_warnings=no + fi -# _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])]) + warning_flags= + realsave_CFLAGS="$CFLAGS" -# _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)])]) + dnl These are warning flags that aren't marked as fatal. Can be + dnl overridden on a per-project basis with -Wno-foo. + base_warn_flags=" \ + -Wall \ + -Wstrict-prototypes \ + -Wnested-externs \ + " -# _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])]) + dnl These compiler flags typically indicate very broken or suspicious + dnl code. Some of them such as implicit-function-declaration are + dnl just not default because gcc compiles a lot of legacy code. + dnl We choose to make this set into explicit errors. + base_error_flags=" \ + -Werror=missing-prototypes \ + -Werror=implicit-function-declaration \ + -Werror=pointer-arith \ + -Werror=init-self \ + -Werror=format-security \ + -Werror=format=2 \ + -Werror=missing-include-dirs \ + -Werror=return-type \ + " -# 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 Additional warning or error flags provided by the module author to + dnl allow stricter standards to be imposed on a per-module basis. + dnl The author can pass -W or -Werror flags here as they see fit. + additional_flags="m4_default([$2],[])" -# 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); }]) + case "$enable_compile_warnings" in + no) + warning_flags="-w" + ;; + minimum) + warning_flags="-Wall" + ;; + yes|maximum|error) + warning_flags="$base_warn_flags $base_error_flags $additional_flags" + ;; + *) + AC_MSG_ERROR(Unknown argument '$enable_compile_warnings' to --enable-compile-warnings) + ;; + esac -# Check to make sure that the build environment is sane. -*- Autoconf -*- + if test "$enable_compile_warnings" = "error" ; then + warning_flags="$warning_flags -Werror" + fi -# 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. + dnl Check whether GCC supports the warning options + for option in $warning_flags; do + save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS $option" + AC_MSG_CHECKING([whether gcc understands $option]) + AC_TRY_COMPILE([], [], + has_option=yes, + has_option=no,) + CFLAGS="$save_CFLAGS" + AC_MSG_RESULT([$has_option]) + if test $has_option = yes; then + tested_warning_flags="$tested_warning_flags $option" + fi + unset has_option + unset save_CFLAGS + done + unset option + CFLAGS="$realsave_CFLAGS" + AC_MSG_CHECKING(what warning flags to pass to the C compiler) + AC_MSG_RESULT($tested_warning_flags) -# 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 + AC_ARG_ENABLE(iso-c, + AS_HELP_STRING([--enable-iso-c], + [Try to warn if code is not ISO C ]),, + [enable_iso_c=no]) -# 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 + AC_MSG_CHECKING(what language compliance flags to pass to the C compiler) + complCFLAGS= + if test "x$enable_iso_c" != "xno"; then + if test "x$GCC" = "xyes"; then + case " $CFLAGS " in + *[\ \ ]-ansi[\ \ ]*) ;; + *) complCFLAGS="$complCFLAGS -ansi" ;; + esac + case " $CFLAGS " in + *[\ \ ]-pedantic[\ \ ]*) ;; + *) complCFLAGS="$complCFLAGS -pedantic" ;; + esac + fi + fi + AC_MSG_RESULT($complCFLAGS) - # 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 + WARN_CFLAGS="$tested_warning_flags $complCFLAGS" + AC_SUBST(WARN_CFLAGS) +], +[[$0: This macro is deprecated. You should use AX_COMPILER_FLAGS instead and +eliminate use of --enable-iso-c. +See: http://www.gnu.org/software/autoconf-archive/ax_compiler_flags.html#ax_compiler_flags]]) + +dnl For C++, do basically the same thing. + +AU_DEFUN([GNOME_CXX_WARNINGS],[ + AC_ARG_ENABLE(cxx-warnings, + AS_HELP_STRING([--enable-cxx-warnings=@<:@no/minimum/yes@:>@] + [Turn on compiler warnings.]),, + [enable_cxx_warnings="m4_default([$1],[minimum])"]) + + AC_MSG_CHECKING(what warning flags to pass to the C++ compiler) + warnCXXFLAGS= + if test "x$GXX" != xyes; then + enable_cxx_warnings=no + fi + if test "x$enable_cxx_warnings" != "xno"; then + if test "x$GXX" = "xyes"; then + case " $CXXFLAGS " in + *[\ \ ]-Wall[\ \ ]*) ;; + *) warnCXXFLAGS="-Wall -Wno-unused" ;; + esac + + ## -W is not all that useful. And it cannot be controlled + ## with individual -Wno-xxx flags, unlike -Wall + if test "x$enable_cxx_warnings" = "xyes"; then + warnCXXFLAGS="$warnCXXFLAGS -Wshadow -Woverloaded-virtual" + fi + fi + fi + AC_MSG_RESULT($warnCXXFLAGS) + + AC_ARG_ENABLE(iso-cxx, + AS_HELP_STRING([--enable-iso-cxx], + [Try to warn if code is not ISO C++ ]),, + [enable_iso_cxx=no]) + + AC_MSG_CHECKING(what language compliance flags to pass to the C++ compiler) + complCXXFLAGS= + if test "x$enable_iso_cxx" != "xno"; then + if test "x$GXX" = "xyes"; then + case " $CXXFLAGS " in + *[\ \ ]-ansi[\ \ ]*) ;; + *) complCXXFLAGS="$complCXXFLAGS -ansi" ;; + esac + + case " $CXXFLAGS " in + *[\ \ ]-pedantic[\ \ ]*) ;; + *) complCXXFLAGS="$complCXXFLAGS -pedantic" ;; + esac 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 -]) + AC_MSG_RESULT($complCXXFLAGS) -# 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. + WARN_CXXFLAGS="$CXXFLAGS $warnCXXFLAGS $complCXXFLAGS" + AC_SUBST(WARN_CXXFLAGS) +], +[[$0: This macro is deprecated. You should use AX_COMPILER_FLAGS instead and +eliminate use of --enable-iso-cxx. +See: http://www.gnu.org/software/autoconf-archive/ax_compiler_flags.html#ax_compiler_flags]]) -# 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 -]) - -# 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_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])]) - -# 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. - -# _AM_SUBST_NOTMAKE(VARIABLE) -# --------------------------- -# Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in. -# This macro is traced by Automake. -AC_DEFUN([_AM_SUBST_NOTMAKE]) +# Configure paths for GTK+ +# Owen Taylor 1997-2001 -# AM_SUBST_NOTMAKE(VARIABLE) -# -------------------------- -# Public sister of _AM_SUBST_NOTMAKE. -AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)]) +dnl AM_PATH_GTK_3_0([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND [, MODULES]]]]) +dnl Test for GTK+, and define GTK_CFLAGS and GTK_LIBS, if gthread is specified in MODULES, +dnl pass to pkg-config +dnl +AC_DEFUN([AM_PATH_GTK_3_0], +[m4_warn([obsolete], [AM_PATH_GTK_3_0 is deprecated, use PKG_CHECK_MODULES([GTK], [gtk+-3.0]) instead]) +dnl Get the cflags and libraries from pkg-config +dnl +AC_ARG_ENABLE(gtktest, [ --disable-gtktest do not try to compile and run a test GTK+ program], + , enable_gtktest=yes) + min_gtk_version=ifelse([$1], [], [3.0.0], [$1]) -# Check how to create a tarball. -*- Autoconf -*- + pkg_config_args="gtk+-3.0 >= $min_gtk_version" + for module in . $4 + do + case "$module" in + gthread) + pkg_config_args="$pkg_config_args gthread-2.0" + ;; + esac + done -# 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. + no_gtk="" -# _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_PATH_PROG(PKG_CONFIG, pkg-config, no) -# 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' + if test x$PKG_CONFIG != xno ; then + if $PKG_CONFIG --atleast-pkgconfig-version 0.7 ; then + : + else + echo "*** pkg-config too old; version 0.7 or better required." + no_gtk=yes + PKG_CONFIG=no + fi + else + no_gtk=yes + fi -m4_if([$1], [v7], - [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'], + AC_MSG_CHECKING(for GTK+ - version >= $min_gtk_version) - [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], + if test x$PKG_CONFIG != xno ; then + ## don't try to run the test against uninstalled libtool libs + if $PKG_CONFIG --uninstalled $pkg_config_args; then + echo "Will use uninstalled version of GTK+ found in PKG_CONFIG_PATH" + enable_gtktest=no + fi - [pax], - [], + if $PKG_CONFIG $pkg_config_args; then + : + else + no_gtk=yes + fi + fi - [m4_fatal([Unknown tar format])]) + if test x"$no_gtk" = x ; then + GTK_CFLAGS=`$PKG_CONFIG $pkg_config_args --cflags` + GTK_LIBS=`$PKG_CONFIG $pkg_config_args --libs` + gtk_config_major_version=`$PKG_CONFIG --modversion gtk+-3.0 | \ + sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'` + gtk_config_minor_version=`$PKG_CONFIG --modversion gtk+-3.0 | \ + sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'` + gtk_config_micro_version=`$PKG_CONFIG --modversion gtk+-3.0 | \ + sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'` + if test "x$enable_gtktest" = "xyes" ; then + ac_save_CFLAGS="$CFLAGS" + ac_save_LIBS="$LIBS" + CFLAGS="$CFLAGS $GTK_CFLAGS" + LIBS="$GTK_LIBS $LIBS" +dnl +dnl Now check if the installed GTK+ is sufficiently new. (Also sanity +dnl checks the results of pkg-config to some extent) +dnl + rm -f conf.gtktest + AC_TRY_RUN([ +#include +#include +#include - AC_MSG_CHECKING([how to create a $1 tar archive]) +int +main () +{ + int major, minor, micro; + char *tmp_version; - # 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} + fclose (fopen ("conf.gtktest", "w")); - 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 + /* HP/UX 9 (%@#!) writes to sscanf strings */ + tmp_version = g_strdup("$min_gtk_version"); + if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, µ) != 3) { + printf("%s, bad version string\n", "$min_gtk_version"); + exit(1); + } - # 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 + if ((gtk_major_version != $gtk_config_major_version) || + (gtk_minor_version != $gtk_config_minor_version) || + (gtk_micro_version != $gtk_config_micro_version)) + { + printf("\n*** 'pkg-config --modversion gtk+-3.0' returned %d.%d.%d, but GTK+ (%d.%d.%d)\n", + $gtk_config_major_version, $gtk_config_minor_version, $gtk_config_micro_version, + gtk_major_version, gtk_minor_version, gtk_micro_version); + printf ("*** was found! If pkg-config was correct, then it is best\n"); + printf ("*** to remove the old version of GTK+. You may also be able to fix the error\n"); + printf("*** by modifying your LD_LIBRARY_PATH enviroment variable, or by editing\n"); + printf("*** /etc/ld.so.conf. Make sure you have run ldconfig if that is\n"); + printf("*** required on your system.\n"); + printf("*** If pkg-config was wrong, set the environment variable PKG_CONFIG_PATH\n"); + printf("*** to point to the correct configuration files\n"); + } + else if ((gtk_major_version != GTK_MAJOR_VERSION) || + (gtk_minor_version != GTK_MINOR_VERSION) || + (gtk_micro_version != GTK_MICRO_VERSION)) + { + printf("*** GTK+ header files (version %d.%d.%d) do not match\n", + GTK_MAJOR_VERSION, GTK_MINOR_VERSION, GTK_MICRO_VERSION); + printf("*** library (version %d.%d.%d)\n", + gtk_major_version, gtk_minor_version, gtk_micro_version); + } + else + { + if ((gtk_major_version > major) || + ((gtk_major_version == major) && (gtk_minor_version > minor)) || + ((gtk_major_version == major) && (gtk_minor_version == minor) && (gtk_micro_version >= micro))) + { + return 0; + } + else + { + printf("\n*** An old version of GTK+ (%d.%d.%d) was found.\n", + gtk_major_version, gtk_minor_version, gtk_micro_version); + printf("*** You need a version of GTK+ newer than %d.%d.%d. The latest version of\n", + major, minor, micro); + printf("*** GTK+ is always available from ftp://ftp.gtk.org.\n"); + printf("***\n"); + printf("*** If you have already installed a sufficiently new version, this error\n"); + printf("*** probably means that the wrong copy of the pkg-config shell script is\n"); + printf("*** being found. The easiest way to fix this is to remove the old version\n"); + printf("*** of GTK+, but you can also set the PKG_CONFIG environment to point to the\n"); + printf("*** correct copy of pkg-config. (In this case, you will have to\n"); + printf("*** modify your LD_LIBRARY_PATH enviroment variable, or edit /etc/ld.so.conf\n"); + printf("*** so that the correct libraries are found at run-time))\n"); + } + } + return 1; +} +],, no_gtk=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"]) + CFLAGS="$ac_save_CFLAGS" + LIBS="$ac_save_LIBS" + fi + fi + if test "x$no_gtk" = x ; then + AC_MSG_RESULT(yes (version $gtk_config_major_version.$gtk_config_minor_version.$gtk_config_micro_version)) + ifelse([$2], , :, [$2]) + else + AC_MSG_RESULT(no) + if test "$PKG_CONFIG" = "no" ; then + echo "*** A new enough version of pkg-config was not found." + echo "*** See http://pkgconfig.sourceforge.net" + else + if test -f conf.gtktest ; then + : + else + echo "*** Could not run GTK+ test program, checking why..." + ac_save_CFLAGS="$CFLAGS" + ac_save_LIBS="$LIBS" + CFLAGS="$CFLAGS $GTK_CFLAGS" + LIBS="$LIBS $GTK_LIBS" + AC_TRY_LINK([ +#include +#include +], [ return ((gtk_major_version) || (gtk_minor_version) || (gtk_micro_version)); ], + [ echo "*** The test program compiled, but did not run. This usually means" + echo "*** that the run-time linker is not finding GTK+ or finding the wrong" + echo "*** version of GTK+. If it is not finding GTK+, you'll need to set your" + echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point" + echo "*** to the installed location Also, make sure you have run ldconfig if that" + echo "*** is required on your system" + echo "***" + echo "*** If you have an old version installed, it is best to remove it, although" + echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH" ], + [ echo "*** The test program failed to compile or link. See the file config.log for the" + echo "*** exact error that occured. This usually means GTK+ is incorrectly installed."]) + CFLAGS="$ac_save_CFLAGS" + LIBS="$ac_save_LIBS" + fi + fi + GTK_CFLAGS="" + GTK_LIBS="" + ifelse([$3], , :, [$3]) + fi + AC_SUBST(GTK_CFLAGS) + AC_SUBST(GTK_LIBS) + rm -f conf.gtktest +]) - # 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 +dnl GTK_CHECK_BACKEND(BACKEND-NAME [, MINIMUM-VERSION [, ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]]) +dnl Tests for BACKEND-NAME in the GTK targets list +dnl +AC_DEFUN([GTK_CHECK_BACKEND], +[m4_warn([obsolete], [GTK_CHECK_BACKEND is deprecated, use PKG_CHECK_MODULES([GTK_X11], [gtk+-x11-3.0]) or similar instead]) + pkg_config_args=ifelse([$1],,gtk+-3.0, gtk+-$1-3.0) + min_gtk_version=ifelse([$2],,3.0.0,$2) + pkg_config_args="$pkg_config_args >= $min_gtk_version" - AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool]) - AC_MSG_RESULT([$am_cv_prog_tar_$1])]) + AC_PATH_PROG(PKG_CONFIG, [pkg-config], [AC_MSG_ERROR([No pkg-config found])]) -AC_SUBST([am__tar]) -AC_SUBST([am__untar]) -]) # _AM_PROG_TAR + if $PKG_CONFIG $pkg_config_args ; then + target_found=yes + else + target_found=no + fi -# nls.m4 serial 5 (gettext-0.18) -dnl Copyright (C) 1995-2003, 2005-2006, 2008-2013 Free Software Foundation, -dnl Inc. -dnl This file is free software; the Free Software Foundation -dnl gives unlimited permission to copy and/or distribute it, -dnl with or without modifications, as long as this notice is preserved. -dnl -dnl This file can can be used in projects which are not available under -dnl the GNU General Public License or the GNU Library General Public -dnl License but which still want to provide support for the GNU gettext -dnl functionality. -dnl Please note that the actual code of the GNU gettext library is covered -dnl by the GNU Library General Public License, and the rest of the GNU -dnl gettext package package is covered by the GNU General Public License. -dnl They are *not* in the public domain. + if test "x$target_found" = "xno"; then + ifelse([$4],,[AC_MSG_ERROR([Backend $backend not found.])],[$4]) + else + ifelse([$3],,[:],[$3]) + fi +]) -dnl Authors: -dnl Ulrich Drepper , 1995-2000. -dnl Bruno Haible , 2000-2003. +dnl -*- mode: autoconf -*- +dnl Copyright 2009 Johan Dahlin +dnl +dnl This file is free software; the author(s) gives unlimited +dnl permission to copy and/or distribute it, with or without +dnl modifications, as long as this notice is preserved. +dnl -AC_PREREQ([2.50]) +# serial 1 -AC_DEFUN([AM_NLS], +m4_define([_GOBJECT_INTROSPECTION_CHECK_INTERNAL], [ - AC_MSG_CHECKING([whether NLS is requested]) - dnl Default is enabled NLS - AC_ARG_ENABLE([nls], - [ --disable-nls do not use Native Language Support], - USE_NLS=$enableval, USE_NLS=yes) - AC_MSG_RESULT([$USE_NLS]) - AC_SUBST([USE_NLS]) -]) + AC_BEFORE([AC_PROG_LIBTOOL],[$0])dnl setup libtool first + AC_BEFORE([AM_PROG_LIBTOOL],[$0])dnl setup libtool first + AC_BEFORE([LT_INIT],[$0])dnl setup libtool first -# 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. + dnl enable/disable introspection + m4_if([$2], [require], + [dnl + enable_introspection=yes + ],[dnl + AC_ARG_ENABLE(introspection, + AS_HELP_STRING([--enable-introspection[=@<:@no/auto/yes@:>@]], + [Enable introspection for this build]),, + [enable_introspection=auto]) + ])dnl -# 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]) + AC_MSG_CHECKING([for gobject-introspection]) -if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then - AC_PATH_TOOL([PKG_CONFIG], [pkg-config]) -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 + dnl presence/version checking + AS_CASE([$enable_introspection], + [no], [dnl + found_introspection="no (disabled, use --enable-introspection to enable)" + ],dnl + [yes],[dnl + PKG_CHECK_EXISTS([gobject-introspection-1.0],, + AC_MSG_ERROR([gobject-introspection-1.0 is not installed])) + PKG_CHECK_EXISTS([gobject-introspection-1.0 >= $1], + found_introspection=yes, + AC_MSG_ERROR([You need to have gobject-introspection >= $1 installed to build AC_PACKAGE_NAME])) + ],dnl + [auto],[dnl + PKG_CHECK_EXISTS([gobject-introspection-1.0 >= $1], found_introspection=yes, found_introspection=no) + dnl Canonicalize enable_introspection + enable_introspection=$found_introspection + ],dnl + [dnl + AC_MSG_ERROR([invalid argument passed to --enable-introspection, should be one of @<:@no/auto/yes@:>@]) + ])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. + AC_MSG_RESULT([$found_introspection]) + + INTROSPECTION_SCANNER= + INTROSPECTION_COMPILER= + INTROSPECTION_GENERATE= + INTROSPECTION_GIRDIR= + INTROSPECTION_TYPELIBDIR= + if test "x$found_introspection" = "xyes"; then + INTROSPECTION_SCANNER=`$PKG_CONFIG --variable=g_ir_scanner gobject-introspection-1.0` + INTROSPECTION_COMPILER=`$PKG_CONFIG --variable=g_ir_compiler gobject-introspection-1.0` + INTROSPECTION_GENERATE=`$PKG_CONFIG --variable=g_ir_generate gobject-introspection-1.0` + INTROSPECTION_GIRDIR=`$PKG_CONFIG --variable=girdir gobject-introspection-1.0` + INTROSPECTION_TYPELIBDIR="$($PKG_CONFIG --variable=typelibdir gobject-introspection-1.0)" + INTROSPECTION_CFLAGS=`$PKG_CONFIG --cflags gobject-introspection-1.0` + INTROSPECTION_LIBS=`$PKG_CONFIG --libs gobject-introspection-1.0` + INTROSPECTION_MAKEFILE=`$PKG_CONFIG --variable=datadir gobject-introspection-1.0`/gobject-introspection-1.0/Makefile.introspection + fi + AC_SUBST(INTROSPECTION_SCANNER) + AC_SUBST(INTROSPECTION_COMPILER) + AC_SUBST(INTROSPECTION_GENERATE) + AC_SUBST(INTROSPECTION_GIRDIR) + AC_SUBST(INTROSPECTION_TYPELIBDIR) + AC_SUBST(INTROSPECTION_CFLAGS) + AC_SUBST(INTROSPECTION_LIBS) + AC_SUBST(INTROSPECTION_MAKEFILE) + + AM_CONDITIONAL(HAVE_INTROSPECTION, test "x$found_introspection" = "xyes") +]) + + +dnl Usage: +dnl GOBJECT_INTROSPECTION_CHECK([minimum-g-i-version]) + +AC_DEFUN([GOBJECT_INTROSPECTION_CHECK], +[ + _GOBJECT_INTROSPECTION_CHECK_INTERNAL([$1]) +]) + +dnl Usage: +dnl GOBJECT_INTROSPECTION_REQUIRE([minimum-g-i-version]) + + +AC_DEFUN([GOBJECT_INTROSPECTION_REQUIRE], +[ + _GOBJECT_INTROSPECTION_CHECK_INTERNAL([$1], [require]) +]) + +# Copyright (C) 2002-2013 Free Software Foundation, Inc. # -# 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]) +# 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. -# _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_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 +]) -# _PKG_SHORT_ERRORS_SUPPORTED +# _AM_AUTOCONF_VERSION(VERSION) # ----------------------------- -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 +# 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]))]) -# PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND], -# [ACTION-IF-NOT-FOUND]) +# 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. + +# 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/../..'. # -# 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 +# 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 # -# -------------------------------------------------------------- -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 +# 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. +# +# 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. +# +# 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. -pkg_failed=no -AC_MSG_CHECKING([for $1]) +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` +]) -_PKG_CONFIG([$1][_CFLAGS], [cflags], [$2]) -_PKG_CONFIG([$1][_LIBS], [libs], [$2]) +# AM_CONDITIONAL -*- Autoconf -*- -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.]) +# 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. -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 +# 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])]) - m4_default([$4], [AC_MSG_ERROR( -[Package requirements ($2) were not met: +# 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. -$$1_PKG_ERRORS -Consider adjusting the PKG_CONFIG_PATH environment variable if you -installed software in a non-standard prefix. +# 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... -_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. -_PKG_TEXT - -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 +# _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=]) -# PKG_INSTALLDIR(DIRECTORY) -# ------------------------- -# Substitutes the variable pkgconfigdir as the location where a module -# should install pkg-config .pc files. By default the directory is -# $libdir/pkgconfig, but the default can be changed by passing -# DIRECTORY. The user can override through the --with-pkgconfigdir -# parameter. -AC_DEFUN([PKG_INSTALLDIR], -[m4_pushdef([pkg_default], [m4_default([$1], ['${libdir}/pkgconfig'])]) -m4_pushdef([pkg_description], - [pkg-config installation directory @<:@]pkg_default[@:>@]) -AC_ARG_WITH([pkgconfigdir], - [AS_HELP_STRING([--with-pkgconfigdir], pkg_description)],, - [with_pkgconfigdir=]pkg_default) -AC_SUBST([pkgconfigdir], [$with_pkgconfigdir]) -m4_popdef([pkg_default]) -m4_popdef([pkg_description]) -]) dnl PKG_INSTALLDIR +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 + 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]) -# PKG_NOARCH_INSTALLDIR(DIRECTORY) -# ------------------------- -# Substitutes the variable noarch_pkgconfigdir as the location where a -# module should install arch-independent pkg-config .pc files. By -# default the directory is $datadir/pkgconfig, but the default can be -# changed by passing DIRECTORY. The user can override through the -# --with-noarch-pkgconfigdir parameter. -AC_DEFUN([PKG_NOARCH_INSTALLDIR], -[m4_pushdef([pkg_default], [m4_default([$1], ['${datadir}/pkgconfig'])]) -m4_pushdef([pkg_description], - [pkg-config arch-independent installation directory @<:@]pkg_default[@:>@]) -AC_ARG_WITH([noarch-pkgconfigdir], - [AS_HELP_STRING([--with-noarch-pkgconfigdir], pkg_description)],, - [with_noarch_pkgconfigdir=]pkg_default) -AC_SUBST([noarch_pkgconfigdir], [$with_noarch_pkgconfigdir]) -m4_popdef([pkg_default]) -m4_popdef([pkg_description]) -]) dnl PKG_NOARCH_INSTALLDIR + 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 -dnl GNOME_CODE_COVERAGE -dnl -dnl Defines CODE_COVERAGE_CFLAGS and CODE_COVERAGE_LDFLAGS which should be -dnl included in the CFLAGS and LIBS/LDFLAGS variables of every build target -dnl (program or library) which should be built with code coverage support. -dnl Also defines GNOME_CODE_COVERAGE_RULES which should be substituted in your -dnl Makefile; and $enable_code_coverage which can be used in subsequent -dnl configure output. -dnl -dnl Note that all optimisation flags in CFLAGS must be disabled when code -dnl coverage is enabled. -dnl -dnl Derived from Makefile.decl in GLib, originally licenced under LGPLv2.1+. -dnl This file is licenced under LGPLv2.1+. -dnl -dnl Usage example: -dnl configure.ac: -dnl GNOME_CODE_COVERAGE -dnl -dnl Makefile.am: -dnl @GNOME_CODE_COVERAGE_RULES@ -dnl my_program_LIBS = … $(CODE_COVERAGE_LDFLAGS) … -dnl my_program_CFLAGS = … $(CODE_COVERAGE_CFLAGS) … -dnl -dnl This results in a “check-code-coverage” rule being added to any Makefile.am -dnl which includes “@GNOME_CODE_COVERAGE_RULES@” (assuming the module has been -dnl configured with --enable-code-coverage). Running `make check-code-coverage` -dnl in that directory will run the module’s test suite (`make check`) and build -dnl a code coverage report detailing the code which was touched, then print the -dnl URI for the report. + # 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 -AC_DEFUN([GNOME_CODE_COVERAGE],[ - dnl Check for --enable-code-coverage - AC_MSG_CHECKING([whether to build with code coverage support]) - AC_ARG_ENABLE([code-coverage], AS_HELP_STRING([--enable-code-coverage], [Whether to enable code coverage support]),, enable_code_coverage=no) - AM_CONDITIONAL([CODE_COVERAGE_ENABLED], [test x$enable_code_coverage = xyes]) - AC_SUBST([CODE_COVERAGE_ENABLED], [$enable_code_coverage]) - AC_MSG_RESULT($enable_code_coverage) + cd .. + rm -rf conftest.dir +else + am_cv_$1_dependencies_compiler_type=none +fi +]) +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]) +]) - AS_IF([ test "$enable_code_coverage" = "yes" ], [ - dnl Check if gcc is being used - AS_IF([ test "$GCC" = "no" ], [ - AC_MSG_ERROR([not compiling with gcc, which is required for gcov code coverage]) - ]) - # List of supported lcov versions. - lcov_version_list="1.6 1.7 1.8 1.9 1.10" +# 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 +]) - AC_CHECK_PROG([LCOV], [lcov], [lcov]) - AC_CHECK_PROG([GENHTML], [genhtml], [genhtml]) - AS_IF([ test "$LCOV" ], [ - AC_CACHE_CHECK([for lcov version], gnome_cv_lcov_version, [ - gnome_cv_lcov_version=invalid - lcov_version=`$LCOV -v 2>/dev/null | $SED -e 's/^.* //'` - for lcov_check_version in $lcov_version_list; do - if test "$lcov_version" = "$lcov_check_version"; then - gnome_cv_lcov_version="$lcov_check_version (ok)" - fi - done - ]) - ], [ - lcov_msg="To enable code coverage reporting you must have one of the following lcov versions installed: $lcov_version_list" - AC_MSG_ERROR([$lcov_msg]) - ]) +# 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 +]) - case $gnome_cv_lcov_version in - ""|invalid[)] - lcov_msg="You must have one of the following versions of lcov: $lcov_version_list (found: $lcov_version)." - AC_MSG_ERROR([$lcov_msg]) - LCOV="exit 0;" - ;; - esac +# Generate code to set up dependency tracking. -*- Autoconf -*- - AS_IF([ test -z "$GENHTML" ], [ - AC_MSG_ERROR([Could not find genhtml from the lcov package]) - ]) - - dnl Build the code coverage flags - CODE_COVERAGE_CFLAGS="-O0 -g -fprofile-arcs -ftest-coverage" - CODE_COVERAGE_LDFLAGS="-lgcov" - - AC_SUBST([CODE_COVERAGE_CFLAGS]) - AC_SUBST([CODE_COVERAGE_LDFLAGS]) - ]) - -GNOME_CODE_COVERAGE_RULES=' -# Code coverage -# -# Optional: -# - CODE_COVERAGE_DIRECTORY: Top-level directory for code coverage reporting. -# (Default: $(top_builddir)) -# - CODE_COVERAGE_OUTPUT_FILE: Filename and path for the .info file generated -# by lcov for code coverage. (Default: -# $(PACKAGE_NAME)-$(PACKAGE_VERSION)-coverage.info) -# - CODE_COVERAGE_OUTPUT_DIRECTORY: Directory for generated code coverage -# reports to be created. (Default: -# $(PACKAGE_NAME)-$(PACKAGE_VERSION)-coverage) -# - CODE_COVERAGE_LCOV_OPTIONS: Extra options to pass to the lcov instance. -# (Default: empty) -# - CODE_COVERAGE_GENHTML_OPTIONS: Extra options to pass to the genhtml -# instance. (Default: empty) -# - CODE_COVERAGE_IGNORE_PATTERN: Extra glob pattern of files to ignore +# Copyright (C) 1999-2013 Free Software Foundation, Inc. # -# The generated report will be titled using the $(PACKAGE_NAME) and -# $(PACKAGE_VERSION). In order to add the current git hash to the title, -# use the git-version-gen script, available online. - -# Optional variables -CODE_COVERAGE_DIRECTORY ?= $(top_builddir) -CODE_COVERAGE_OUTPUT_FILE ?= $(PACKAGE_NAME)-$(PACKAGE_VERSION)-coverage.info -CODE_COVERAGE_OUTPUT_DIRECTORY ?= $(PACKAGE_NAME)-$(PACKAGE_VERSION)-coverage -CODE_COVERAGE_LCOV_OPTIONS ?= -CODE_COVERAGE_GENHTML_OPTIONS ?= -CODE_COVERAGE_IGNORE_PATTERN ?= - -code_coverage_quiet = $(code_coverage_quiet_$(V)) -code_coverage_quiet_ = $(code_coverage_quiet_$(AM_DEFAULT_VERBOSITY)) -code_coverage_quiet_0 = --quiet - -# Use recursive makes in order to ignore errors during check -check-code-coverage: -ifeq ($(CODE_COVERAGE_ENABLED),yes) - -$(MAKE) $(AM_MAKEFLAGS) -k check - $(MAKE) $(AM_MAKEFLAGS) code-coverage-capture -else - @echo "Need to reconfigure with --enable-code-coverage" -endif - -# Capture code coverage data -code-coverage-capture: code-coverage-capture-hook -ifeq ($(CODE_COVERAGE_ENABLED),yes) - $(LCOV) $(code_coverage_quiet) --directory $(CODE_COVERAGE_DIRECTORY) --capture --output-file "$(CODE_COVERAGE_OUTPUT_FILE).tmp" --test-name "$(PACKAGE_NAME)-$(PACKAGE_VERSION)" --no-checksum --compat-libtool $(CODE_COVERAGE_LCOV_OPTIONS) - $(LCOV) $(code_coverage_quiet) --directory $(CODE_COVERAGE_DIRECTORY) --remove "$(CODE_COVERAGE_OUTPUT_FILE).tmp" "/tmp/*" $(CODE_COVERAGE_IGNORE_PATTERN) --output-file "$(CODE_COVERAGE_OUTPUT_FILE)" - -@rm -f $(CODE_COVERAGE_OUTPUT_FILE).tmp - LANG=C $(GENHTML) $(code_coverage_quiet) --prefix $(CODE_COVERAGE_DIRECTORY) --output-directory "$(CODE_COVERAGE_OUTPUT_DIRECTORY)" --title "$(PACKAGE_NAME)-$(PACKAGE_VERSION) Code Coverage" --legend --show-details "$(CODE_COVERAGE_OUTPUT_FILE)" $(CODE_COVERAGE_GENHTML_OPTIONS) - @echo "file://$(abs_builddir)/$(CODE_COVERAGE_OUTPUT_DIRECTORY)/index.html" -else - @echo "Need to reconfigure with --enable-code-coverage" -endif - -# Hook rule executed before code-coverage-capture, overridable by the user -code-coverage-capture-hook: - -ifeq ($(CODE_COVERAGE_ENABLED),yes) -clean: code-coverage-clean -code-coverage-clean: - -$(LCOV) --directory $(top_builddir) -z - -rm -rf $(CODE_COVERAGE_OUTPUT_FILE) $(CODE_COVERAGE_OUTPUT_FILE).tmp $(CODE_COVERAGE_OUTPUT_DIRECTORY) - -find . -name "*.gcda" -o -name "*.gcov" -delete -endif +# 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. -GITIGNOREFILES ?= -GITIGNOREFILES += $(CODE_COVERAGE_OUTPUT_FILE) $(CODE_COVERAGE_OUTPUT_DIRECTORY) -DISTCHECK_CONFIGURE_FLAGS ?= -DISTCHECK_CONFIGURE_FLAGS += --disable-code-coverage +# _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 -.PHONY: check-code-coverage code-coverage-capture code-coverage-capture-hook code-coverage-clean -' - AC_SUBST([GNOME_CODE_COVERAGE_RULES]) - m4_ifdef([_AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE([GNOME_CODE_COVERAGE_RULES])]) +# 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"]) ]) -# gnome-compiler-flags.m4 -# -# serial 2 +# 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. -dnl GNOME_COMPILE_WARNINGS -dnl Turn on many useful compiler warnings and substitute the result into -dnl WARN_CFLAGS -dnl For now, only works on GCC -dnl Pass the default value of the --enable-compile-warnings configure option as -dnl the first argument to the macro, defaulting to 'yes'. -dnl Additional warning/error flags can be passed as an optional second argument. -dnl -dnl For example: GNOME_COMPILE_WARNINGS([maximum],[-Werror=some-flag -Wfoobar]) -AC_DEFUN([GNOME_COMPILE_WARNINGS],[ - dnl ****************************** - dnl More compiler warnings - dnl ****************************** +# 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. - AC_ARG_ENABLE(compile-warnings, - AS_HELP_STRING([--enable-compile-warnings=@<:@no/minimum/yes/maximum/error@:>@], - [Turn on compiler warnings]),, - [enable_compile_warnings="m4_default([$1],[yes])"]) +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 +]) - if test "x$GCC" != xyes; then - enable_compile_warnings=no - fi +# 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 - warning_flags= - realsave_CFLAGS="$CFLAGS" +# 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]) - dnl These are warning flags that aren't marked as fatal. Can be - dnl overridden on a per-project basis with -Wno-foo. - base_warn_flags=" \ - -Wall \ - -Wstrict-prototypes \ - -Wnested-externs \ - " +# 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 - dnl These compiler flags typically indicate very broken or suspicious - dnl code. Some of them such as implicit-function-declaration are - dnl just not default because gcc compiles a lot of legacy code. - dnl We choose to make this set into explicit errors. - base_error_flags=" \ - -Werror=missing-prototypes \ - -Werror=implicit-function-declaration \ - -Werror=pointer-arith \ - -Werror=init-self \ - -Werror=format-security \ - -Werror=format=2 \ - -Werror=missing-include-dirs \ - " +_AM_IF_OPTION([no-define],, +[AC_DEFINE_UNQUOTED([PACKAGE], ["$PACKAGE"], [Name of package]) + AC_DEFINE_UNQUOTED([VERSION], ["$VERSION"], [Version number of package])])dnl - dnl Additional warning or error flags provided by the module author to - dnl allow stricter standards to be imposed on a per-module basis. - dnl The author can pass -W or -Werror flags here as they see fit. - additional_flags="m4_default([$2],[])" - - case "$enable_compile_warnings" in - no) - warning_flags= - ;; - minimum) - warning_flags="-Wall" - ;; - yes|maximum|error) - warning_flags="$base_warn_flags $base_error_flags $additional_flags" - ;; - *) - AC_MSG_ERROR(Unknown argument '$enable_compile_warnings' to --enable-compile-warnings) - ;; - esac - - if test "$enable_compile_warnings" = "error" ; then - warning_flags="$warning_flags -Werror" - fi - - dnl Check whether GCC supports the warning options - for option in $warning_flags; do - save_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS $option" - AC_MSG_CHECKING([whether gcc understands $option]) - AC_TRY_COMPILE([], [], - has_option=yes, - has_option=no,) - CFLAGS="$save_CFLAGS" - AC_MSG_RESULT([$has_option]) - if test $has_option = yes; then - tested_warning_flags="$tested_warning_flags $option" - fi - unset has_option - unset save_CFLAGS - done - unset option - CFLAGS="$realsave_CFLAGS" - AC_MSG_CHECKING(what warning flags to pass to the C compiler) - AC_MSG_RESULT($tested_warning_flags) - - AC_ARG_ENABLE(iso-c, - AS_HELP_STRING([--enable-iso-c], - [Try to warn if code is not ISO C ]),, - [enable_iso_c=no]) - - AC_MSG_CHECKING(what language compliance flags to pass to the C compiler) - complCFLAGS= - if test "x$enable_iso_c" != "xno"; then - if test "x$GCC" = "xyes"; then - case " $CFLAGS " in - *[\ \ ]-ansi[\ \ ]*) ;; - *) complCFLAGS="$complCFLAGS -ansi" ;; - esac - case " $CFLAGS " in - *[\ \ ]-pedantic[\ \ ]*) ;; - *) complCFLAGS="$complCFLAGS -pedantic" ;; - esac - fi - fi - AC_MSG_RESULT($complCFLAGS) - - WARN_CFLAGS="$tested_warning_flags $complCFLAGS" - AC_SUBST(WARN_CFLAGS) +# 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 -dnl For C++, do basically the same thing. +# 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! + +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. -AC_DEFUN([GNOME_CXX_WARNINGS],[ - AC_ARG_ENABLE(cxx-warnings, - AS_HELP_STRING([--enable-cxx-warnings=@<:@no/minimum/yes@:>@] - [Turn on compiler warnings.]),, - [enable_cxx_warnings="m4_default([$1],[minimum])"]) +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. - AC_MSG_CHECKING(what warning flags to pass to the C++ compiler) - warnCXXFLAGS= - if test "x$GXX" != xyes; then - enable_cxx_warnings=no - fi - if test "x$enable_cxx_warnings" != "xno"; then - if test "x$GXX" = "xyes"; then - case " $CXXFLAGS " in - *[\ \ ]-Wall[\ \ ]*) ;; - *) warnCXXFLAGS="-Wall -Wno-unused" ;; - esac +You can download and install GNU coreutils to get an 'rm' implementation +that behaves properly: . - ## -W is not all that useful. And it cannot be controlled - ## with individual -Wno-xxx flags, unlike -Wall - if test "x$enable_cxx_warnings" = "xyes"; then - warnCXXFLAGS="$warnCXXFLAGS -Wshadow -Woverloaded-virtual" - fi - fi +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. + +END + AC_MSG_ERROR([Your 'rm' program is bad, sorry.]) fi - AC_MSG_RESULT($warnCXXFLAGS) +fi]) - AC_ARG_ENABLE(iso-cxx, - AS_HELP_STRING([--enable-iso-cxx], - [Try to warn if code is not ISO C++ ]),, - [enable_iso_cxx=no]) +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])]) - AC_MSG_CHECKING(what language compliance flags to pass to the C++ compiler) - complCXXFLAGS= - if test "x$enable_iso_cxx" != "xno"; then - if test "x$GXX" = "xyes"; then - case " $CXXFLAGS " in - *[\ \ ]-ansi[\ \ ]*) ;; - *) complCXXFLAGS="$complCXXFLAGS -ansi" ;; - esac +# 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. - case " $CXXFLAGS " in - *[\ \ ]-pedantic[\ \ ]*) ;; - *) complCXXFLAGS="$complCXXFLAGS -pedantic" ;; - esac - fi - fi - AC_MSG_RESULT($complCXXFLAGS) +# 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]) - WARN_CXXFLAGS="$CXXFLAGS $warnCXXFLAGS $complCXXFLAGS" - AC_SUBST(WARN_CXXFLAGS) -]) +# 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. -# Configure paths for GTK+ -# Owen Taylor 1997-2001 +# 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])]) -dnl AM_PATH_GTK_3_0([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND [, MODULES]]]]) -dnl Test for GTK+, and define GTK_CFLAGS and GTK_LIBS, if gthread is specified in MODULES, -dnl pass to pkg-config -dnl -AC_DEFUN([AM_PATH_GTK_3_0], -[dnl -dnl Get the cflags and libraries from pkg-config -dnl -AC_ARG_ENABLE(gtktest, [ --disable-gtktest do not try to compile and run a test GTK+ program], - , enable_gtktest=yes) +# 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. - pkg_config_args=gtk+-3.0 - for module in . $4 - do - case "$module" in - gthread) - pkg_config_args="$pkg_config_args gthread-2.0" - ;; - esac - done +# 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])]) - no_gtk="" +# Add --enable-maintainer-mode option to configure. -*- Autoconf -*- +# From Jim Meyering - AC_PATH_PROG(PKG_CONFIG, pkg-config, no) +# 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. - if test x$PKG_CONFIG != xno ; then - if $PKG_CONFIG --atleast-pkgconfig-version 0.7 ; then - : - else - echo "*** pkg-config too old; version 0.7 or better required." - no_gtk=yes - PKG_CONFIG=no - fi - else - no_gtk=yes - fi +# AM_MAINTAINER_MODE([DEFAULT-MODE]) +# ---------------------------------- +# Control maintainer-specific portions of Makefiles. +# Default is to disable them, unless 'enable' is passed literally. +# For symmetry, 'disable' may be passed as well. Anyway, the user +# can override the default with the --enable/--disable switch. +AC_DEFUN([AM_MAINTAINER_MODE], +[m4_case(m4_default([$1], [disable]), + [enable], [m4_define([am_maintainer_other], [disable])], + [disable], [m4_define([am_maintainer_other], [enable])], + [m4_define([am_maintainer_other], [enable]) + m4_warn([syntax], [unexpected argument to AM@&t@_MAINTAINER_MODE: $1])]) +AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) + dnl maintainer-mode's default is 'disable' unless 'enable' is passed + AC_ARG_ENABLE([maintainer-mode], + [AS_HELP_STRING([--]am_maintainer_other[-maintainer-mode], + am_maintainer_other[ make rules and dependencies not useful + (and sometimes confusing) to the casual installer])], + [USE_MAINTAINER_MODE=$enableval], + [USE_MAINTAINER_MODE=]m4_if(am_maintainer_other, [enable], [no], [yes])) + AC_MSG_RESULT([$USE_MAINTAINER_MODE]) + AM_CONDITIONAL([MAINTAINER_MODE], [test $USE_MAINTAINER_MODE = yes]) + MAINT=$MAINTAINER_MODE_TRUE + AC_SUBST([MAINT])dnl +] +) - min_gtk_version=ifelse([$1], ,3.0.0,$1) - AC_MSG_CHECKING(for GTK+ - version >= $min_gtk_version) +# Check to see how 'make' treats includes. -*- Autoconf -*- - if test x$PKG_CONFIG != xno ; then - ## don't try to run the test against uninstalled libtool libs - if $PKG_CONFIG --uninstalled $pkg_config_args; then - echo "Will use uninstalled version of GTK+ found in PKG_CONFIG_PATH" - enable_gtktest=no - fi +# 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. - if $PKG_CONFIG --atleast-version $min_gtk_version $pkg_config_args; then - : +# 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 -*- + +# 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. + +# 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)]) + +# 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 -*- + +# 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_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)])]) + +# _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. + +# _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 - no_gtk=yes + am_cv_prog_cc_c_o=no + break fi - 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])]) - if test x"$no_gtk" = x ; then - GTK_CFLAGS=`$PKG_CONFIG $pkg_config_args --cflags` - GTK_LIBS=`$PKG_CONFIG $pkg_config_args --libs` - gtk_config_major_version=`$PKG_CONFIG --modversion gtk+-3.0 | \ - sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'` - gtk_config_minor_version=`$PKG_CONFIG --modversion gtk+-3.0 | \ - sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'` - gtk_config_micro_version=`$PKG_CONFIG --modversion gtk+-3.0 | \ - sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'` - if test "x$enable_gtktest" = "xyes" ; then - ac_save_CFLAGS="$CFLAGS" - ac_save_LIBS="$LIBS" - CFLAGS="$CFLAGS $GTK_CFLAGS" - LIBS="$GTK_LIBS $LIBS" -dnl -dnl Now check if the installed GTK+ is sufficiently new. (Also sanity -dnl checks the results of pkg-config to some extent) -dnl - rm -f conf.gtktest - AC_TRY_RUN([ -#include -#include -#include +# For backward compatibility. +AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])]) -int -main () -{ - int major, minor, micro; - char *tmp_version; +# 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. - fclose (fopen ("conf.gtktest", "w")); +# 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); }]) - /* HP/UX 9 (%@#!) writes to sscanf strings */ - tmp_version = g_strdup("$min_gtk_version"); - if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, µ) != 3) { - printf("%s, bad version string\n", "$min_gtk_version"); - exit(1); - } +# Check to make sure that the build environment is sane. -*- Autoconf -*- - if ((gtk_major_version != $gtk_config_major_version) || - (gtk_minor_version != $gtk_config_minor_version) || - (gtk_micro_version != $gtk_config_micro_version)) - { - printf("\n*** 'pkg-config --modversion gtk+-3.0' returned %d.%d.%d, but GTK+ (%d.%d.%d)\n", - $gtk_config_major_version, $gtk_config_minor_version, $gtk_config_micro_version, - gtk_major_version, gtk_minor_version, gtk_micro_version); - printf ("*** was found! If pkg-config was correct, then it is best\n"); - printf ("*** to remove the old version of GTK+. You may also be able to fix the error\n"); - printf("*** by modifying your LD_LIBRARY_PATH enviroment variable, or by editing\n"); - printf("*** /etc/ld.so.conf. Make sure you have run ldconfig if that is\n"); - printf("*** required on your system.\n"); - printf("*** If pkg-config was wrong, set the environment variable PKG_CONFIG_PATH\n"); - printf("*** to point to the correct configuration files\n"); - } - else if ((gtk_major_version != GTK_MAJOR_VERSION) || - (gtk_minor_version != GTK_MINOR_VERSION) || - (gtk_micro_version != GTK_MICRO_VERSION)) - { - printf("*** GTK+ header files (version %d.%d.%d) do not match\n", - GTK_MAJOR_VERSION, GTK_MINOR_VERSION, GTK_MICRO_VERSION); - printf("*** library (version %d.%d.%d)\n", - gtk_major_version, gtk_minor_version, gtk_micro_version); - } - else - { - if ((gtk_major_version > major) || - ((gtk_major_version == major) && (gtk_minor_version > minor)) || - ((gtk_major_version == major) && (gtk_minor_version == minor) && (gtk_micro_version >= micro))) - { - return 0; - } - else - { - printf("\n*** An old version of GTK+ (%d.%d.%d) was found.\n", - gtk_major_version, gtk_minor_version, gtk_micro_version); - printf("*** You need a version of GTK+ newer than %d.%d.%d. The latest version of\n", - major, minor, micro); - printf("*** GTK+ is always available from ftp://ftp.gtk.org.\n"); - printf("***\n"); - printf("*** If you have already installed a sufficiently new version, this error\n"); - printf("*** probably means that the wrong copy of the pkg-config shell script is\n"); - printf("*** being found. The easiest way to fix this is to remove the old version\n"); - printf("*** of GTK+, but you can also set the PKG_CONFIG environment to point to the\n"); - printf("*** correct copy of pkg-config. (In this case, you will have to\n"); - printf("*** modify your LD_LIBRARY_PATH enviroment variable, or edit /etc/ld.so.conf\n"); - printf("*** so that the correct libraries are found at run-time))\n"); - } - } - return 1; -} -],, no_gtk=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"]) - CFLAGS="$ac_save_CFLAGS" - LIBS="$ac_save_LIBS" +# 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. + +# 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 - fi - if test "x$no_gtk" = x ; then - AC_MSG_RESULT(yes (version $gtk_config_major_version.$gtk_config_minor_version.$gtk_config_micro_version)) - ifelse([$2], , :, [$2]) - else - AC_MSG_RESULT(no) - if test "$PKG_CONFIG" = "no" ; then - echo "*** A new enough version of pkg-config was not found." - echo "*** See http://pkgconfig.sourceforge.net" - else - if test -f conf.gtktest ; then - : - else - echo "*** Could not run GTK+ test program, checking why..." - ac_save_CFLAGS="$CFLAGS" - ac_save_LIBS="$LIBS" - CFLAGS="$CFLAGS $GTK_CFLAGS" - LIBS="$LIBS $GTK_LIBS" - AC_TRY_LINK([ -#include -#include -], [ return ((gtk_major_version) || (gtk_minor_version) || (gtk_micro_version)); ], - [ echo "*** The test program compiled, but did not run. This usually means" - echo "*** that the run-time linker is not finding GTK+ or finding the wrong" - echo "*** version of GTK+. If it is not finding GTK+, you'll need to set your" - echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point" - echo "*** to the installed location Also, make sure you have run ldconfig if that" - echo "*** is required on your system" - echo "***" - echo "*** If you have an old version installed, it is best to remove it, although" - echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH" ], - [ echo "*** The test program failed to compile or link. See the file config.log for the" - echo "*** exact error that occured. This usually means GTK+ is incorrectly installed."]) - CFLAGS="$ac_save_CFLAGS" - LIBS="$ac_save_LIBS" - fi + if test "$[*]" != "X $srcdir/configure conftest.file" \ + && test "$[*]" != "X conftest.file $srcdir/configure"; then + + # 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 - GTK_CFLAGS="" - GTK_LIBS="" - ifelse([$3], , :, [$3]) - fi - AC_SUBST(GTK_CFLAGS) - AC_SUBST(GTK_LIBS) - rm -f conf.gtktest + 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 +]) + +# 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. + +# 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 +]) + +# 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 GTK_CHECK_BACKEND(BACKEND-NAME [, MINIMUM-VERSION [, ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]]) -dnl Tests for BACKEND-NAME in the GTK targets list -dnl -AC_DEFUN([GTK_CHECK_BACKEND], -[ - pkg_config_args=ifelse([$1],,gtk+-3.0, gtk+-$1-3.0) - min_gtk_version=ifelse([$2],,3.0.0,$2) +# 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])]) - AC_PATH_PROG(PKG_CONFIG, [pkg-config], [AC_MSG_ERROR([No pkg-config found])]) +# 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. - if $PKG_CONFIG --atleast-version $min_gtk_version $pkg_config_args ; then - target_found=yes - else - target_found=no - 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]) - if test "x$target_found" = "xno"; then - ifelse([$4],,[AC_MSG_ERROR([Backend $backend not found.])],[$4]) - else - ifelse([$3],,[:],[$3]) - fi -]) +# AM_SUBST_NOTMAKE(VARIABLE) +# -------------------------- +# Public sister of _AM_SUBST_NOTMAKE. +AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)]) -dnl -*- mode: autoconf -*- -dnl Copyright 2009 Johan Dahlin -dnl -dnl This file is free software; the author(s) gives unlimited -dnl permission to copy and/or distribute it, with or without -dnl modifications, as long as this notice is preserved. -dnl +# Check how to create a tarball. -*- Autoconf -*- -# serial 1 +# 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. -m4_define([_GOBJECT_INTROSPECTION_CHECK_INTERNAL], -[ - AC_BEFORE([AC_PROG_LIBTOOL],[$0])dnl setup libtool first - AC_BEFORE([AM_PROG_LIBTOOL],[$0])dnl setup libtool first - AC_BEFORE([LT_INIT],[$0])dnl setup libtool first +# _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}']) - dnl enable/disable introspection - m4_if([$2], [require], - [dnl - enable_introspection=yes - ],[dnl - AC_ARG_ENABLE(introspection, - AS_HELP_STRING([--enable-introspection[=@<:@no/auto/yes@:>@]], - [Enable introspection for this build]),, - [enable_introspection=auto]) - ])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' - AC_MSG_CHECKING([for gobject-introspection]) +m4_if([$1], [v7], + [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'], - dnl presence/version checking - AS_CASE([$enable_introspection], - [no], [dnl - found_introspection="no (disabled, use --enable-introspection to enable)" - ],dnl - [yes],[dnl - PKG_CHECK_EXISTS([gobject-introspection-1.0],, - AC_MSG_ERROR([gobject-introspection-1.0 is not installed])) - PKG_CHECK_EXISTS([gobject-introspection-1.0 >= $1], - found_introspection=yes, - AC_MSG_ERROR([You need to have gobject-introspection >= $1 installed to build AC_PACKAGE_NAME])) - ],dnl - [auto],[dnl - PKG_CHECK_EXISTS([gobject-introspection-1.0 >= $1], found_introspection=yes, found_introspection=no) - dnl Canonicalize enable_introspection - enable_introspection=$found_introspection - ],dnl - [dnl - AC_MSG_ERROR([invalid argument passed to --enable-introspection, should be one of @<:@no/auto/yes@:>@]) - ])dnl + [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], - AC_MSG_RESULT([$found_introspection]) + [pax], + [], - INTROSPECTION_SCANNER= - INTROSPECTION_COMPILER= - INTROSPECTION_GENERATE= - INTROSPECTION_GIRDIR= - INTROSPECTION_TYPELIBDIR= - if test "x$found_introspection" = "xyes"; then - INTROSPECTION_SCANNER=`$PKG_CONFIG --variable=g_ir_scanner gobject-introspection-1.0` - INTROSPECTION_COMPILER=`$PKG_CONFIG --variable=g_ir_compiler gobject-introspection-1.0` - INTROSPECTION_GENERATE=`$PKG_CONFIG --variable=g_ir_generate gobject-introspection-1.0` - INTROSPECTION_GIRDIR=`$PKG_CONFIG --variable=girdir gobject-introspection-1.0` - INTROSPECTION_TYPELIBDIR="$($PKG_CONFIG --variable=typelibdir gobject-introspection-1.0)" - INTROSPECTION_CFLAGS=`$PKG_CONFIG --cflags gobject-introspection-1.0` - INTROSPECTION_LIBS=`$PKG_CONFIG --libs gobject-introspection-1.0` - INTROSPECTION_MAKEFILE=`$PKG_CONFIG --variable=datadir gobject-introspection-1.0`/gobject-introspection-1.0/Makefile.introspection - fi - AC_SUBST(INTROSPECTION_SCANNER) - AC_SUBST(INTROSPECTION_COMPILER) - AC_SUBST(INTROSPECTION_GENERATE) - AC_SUBST(INTROSPECTION_GIRDIR) - AC_SUBST(INTROSPECTION_TYPELIBDIR) - AC_SUBST(INTROSPECTION_CFLAGS) - AC_SUBST(INTROSPECTION_LIBS) - AC_SUBST(INTROSPECTION_MAKEFILE) + [m4_fatal([Unknown tar format])]) - AM_CONDITIONAL(HAVE_INTROSPECTION, test "x$found_introspection" = "xyes") -]) + 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} -dnl Usage: -dnl GOBJECT_INTROSPECTION_CHECK([minimum-g-i-version]) + 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 -AC_DEFUN([GOBJECT_INTROSPECTION_CHECK], -[ - _GOBJECT_INTROSPECTION_CHECK_INTERNAL([$1]) -]) + # 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 -dnl Usage: -dnl GOBJECT_INTROSPECTION_REQUIRE([minimum-g-i-version]) + # 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 + 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([GOBJECT_INTROSPECTION_REQUIRE], -[ - _GOBJECT_INTROSPECTION_CHECK_INTERNAL([$1], [require]) -]) +AC_SUBST([am__tar]) +AC_SUBST([am__untar]) +]) # _AM_PROG_TAR m4_include([m4/gtk-doc.m4]) m4_include([m4/intltool.m4]) @@ -1990,3 +2164,4 @@ m4_include([m4/ltsugar.m4]) m4_include([m4/ltversion.m4]) m4_include([m4/lt~obsolete.m4]) +m4_include([m4/vapigen.m4]) diff -Nru gtksourceview3-3.12.1/compile gtksourceview3-3.14.4/compile --- gtksourceview3-3.12.1/compile 1970-01-01 00:00:00.000000000 +0000 +++ gtksourceview3-3.14.4/compile 2015-04-04 12:42:52.000000000 +0000 @@ -0,0 +1,347 @@ +#! /bin/sh +# Wrapper for compilers which do not understand '-c -o'. + +scriptversion=2012-10-14.11; # UTC + +# Copyright (C) 1999-2013 Free Software Foundation, Inc. +# Written by Tom Tromey . +# +# 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, or (at your option) +# any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# 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. + +# This file is maintained in Automake, please report +# bugs to or send patches to +# . + +nl=' +' + +# We need space, tab and new line, in precisely that order. Quoting is +# there to prevent tools from complaining about whitespace usage. +IFS=" "" $nl" + +file_conv= + +# func_file_conv build_file lazy +# Convert a $build file to $host form and store it in $file +# Currently only supports Windows hosts. If the determined conversion +# type is listed in (the comma separated) LAZY, no conversion will +# take place. +func_file_conv () +{ + file=$1 + case $file in + / | /[!/]*) # absolute file, and not a UNC file + if test -z "$file_conv"; then + # lazily determine how to convert abs files + case `uname -s` in + MINGW*) + file_conv=mingw + ;; + CYGWIN*) + file_conv=cygwin + ;; + *) + file_conv=wine + ;; + esac + fi + case $file_conv/,$2, in + *,$file_conv,*) + ;; + mingw/*) + file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'` + ;; + cygwin/*) + file=`cygpath -m "$file" || echo "$file"` + ;; + wine/*) + file=`winepath -w "$file" || echo "$file"` + ;; + esac + ;; + esac +} + +# func_cl_dashL linkdir +# Make cl look for libraries in LINKDIR +func_cl_dashL () +{ + func_file_conv "$1" + if test -z "$lib_path"; then + lib_path=$file + else + lib_path="$lib_path;$file" + fi + linker_opts="$linker_opts -LIBPATH:$file" +} + +# func_cl_dashl library +# Do a library search-path lookup for cl +func_cl_dashl () +{ + lib=$1 + found=no + save_IFS=$IFS + IFS=';' + for dir in $lib_path $LIB + do + IFS=$save_IFS + if $shared && test -f "$dir/$lib.dll.lib"; then + found=yes + lib=$dir/$lib.dll.lib + break + fi + if test -f "$dir/$lib.lib"; then + found=yes + lib=$dir/$lib.lib + break + fi + if test -f "$dir/lib$lib.a"; then + found=yes + lib=$dir/lib$lib.a + break + fi + done + IFS=$save_IFS + + if test "$found" != yes; then + lib=$lib.lib + fi +} + +# func_cl_wrapper cl arg... +# Adjust compile command to suit cl +func_cl_wrapper () +{ + # Assume a capable shell + lib_path= + shared=: + linker_opts= + for arg + do + if test -n "$eat"; then + eat= + else + case $1 in + -o) + # configure might choose to run compile as 'compile cc -o foo foo.c'. + eat=1 + case $2 in + *.o | *.[oO][bB][jJ]) + func_file_conv "$2" + set x "$@" -Fo"$file" + shift + ;; + *) + func_file_conv "$2" + set x "$@" -Fe"$file" + shift + ;; + esac + ;; + -I) + eat=1 + func_file_conv "$2" mingw + set x "$@" -I"$file" + shift + ;; + -I*) + func_file_conv "${1#-I}" mingw + set x "$@" -I"$file" + shift + ;; + -l) + eat=1 + func_cl_dashl "$2" + set x "$@" "$lib" + shift + ;; + -l*) + func_cl_dashl "${1#-l}" + set x "$@" "$lib" + shift + ;; + -L) + eat=1 + func_cl_dashL "$2" + ;; + -L*) + func_cl_dashL "${1#-L}" + ;; + -static) + shared=false + ;; + -Wl,*) + arg=${1#-Wl,} + save_ifs="$IFS"; IFS=',' + for flag in $arg; do + IFS="$save_ifs" + linker_opts="$linker_opts $flag" + done + IFS="$save_ifs" + ;; + -Xlinker) + eat=1 + linker_opts="$linker_opts $2" + ;; + -*) + set x "$@" "$1" + shift + ;; + *.cc | *.CC | *.cxx | *.CXX | *.[cC]++) + func_file_conv "$1" + set x "$@" -Tp"$file" + shift + ;; + *.c | *.cpp | *.CPP | *.lib | *.LIB | *.Lib | *.OBJ | *.obj | *.[oO]) + func_file_conv "$1" mingw + set x "$@" "$file" + shift + ;; + *) + set x "$@" "$1" + shift + ;; + esac + fi + shift + done + if test -n "$linker_opts"; then + linker_opts="-link$linker_opts" + fi + exec "$@" $linker_opts + exit 1 +} + +eat= + +case $1 in + '') + echo "$0: No command. Try '$0 --help' for more information." 1>&2 + exit 1; + ;; + -h | --h*) + cat <<\EOF +Usage: compile [--help] [--version] PROGRAM [ARGS] + +Wrapper for compilers which do not understand '-c -o'. +Remove '-o dest.o' from ARGS, run PROGRAM with the remaining +arguments, and rename the output as expected. + +If you are trying to build a whole package this is not the +right script to run: please start by reading the file 'INSTALL'. + +Report bugs to . +EOF + exit $? + ;; + -v | --v*) + echo "compile $scriptversion" + exit $? + ;; + cl | *[/\\]cl | cl.exe | *[/\\]cl.exe ) + func_cl_wrapper "$@" # Doesn't return... + ;; +esac + +ofile= +cfile= + +for arg +do + if test -n "$eat"; then + eat= + else + case $1 in + -o) + # configure might choose to run compile as 'compile cc -o foo foo.c'. + # So we strip '-o arg' only if arg is an object. + eat=1 + case $2 in + *.o | *.obj) + ofile=$2 + ;; + *) + set x "$@" -o "$2" + shift + ;; + esac + ;; + *.c) + cfile=$1 + set x "$@" "$1" + shift + ;; + *) + set x "$@" "$1" + shift + ;; + esac + fi + shift +done + +if test -z "$ofile" || test -z "$cfile"; then + # If no '-o' option was seen then we might have been invoked from a + # pattern rule where we don't need one. That is ok -- this is a + # normal compilation that the losing compiler can handle. If no + # '.c' file was seen then we are probably linking. That is also + # ok. + exec "$@" +fi + +# Name of file we expect compiler to create. +cofile=`echo "$cfile" | sed 's|^.*[\\/]||; s|^[a-zA-Z]:||; s/\.c$/.o/'` + +# Create the lock directory. +# Note: use '[/\\:.-]' here to ensure that we don't use the same name +# that we are using for the .o file. Also, base the name on the expected +# object file name, since that is what matters with a parallel build. +lockdir=`echo "$cofile" | sed -e 's|[/\\:.-]|_|g'`.d +while true; do + if mkdir "$lockdir" >/dev/null 2>&1; then + break + fi + sleep 1 +done +# FIXME: race condition here if user kills between mkdir and trap. +trap "rmdir '$lockdir'; exit 1" 1 2 15 + +# Run the compile. +"$@" +ret=$? + +if test -f "$cofile"; then + test "$cofile" = "$ofile" || mv "$cofile" "$ofile" +elif test -f "${cofile}bj"; then + test "${cofile}bj" = "$ofile" || mv "${cofile}bj" "$ofile" +fi + +rmdir "$lockdir" +exit $ret + +# Local Variables: +# mode: shell-script +# sh-indentation: 2 +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-time-zone: "UTC" +# time-stamp-end: "; # UTC" +# End: diff -Nru gtksourceview3-3.12.1/config.guess gtksourceview3-3.14.4/config.guess --- gtksourceview3-3.12.1/config.guess 2014-04-14 20:10:38.000000000 +0000 +++ gtksourceview3-3.14.4/config.guess 2015-04-04 12:42:52.000000000 +0000 @@ -1,8 +1,8 @@ #! /bin/sh # Attempt to guess a canonical system name. -# Copyright 1992-2013 Free Software Foundation, Inc. +# Copyright 1992-2014 Free Software Foundation, Inc. -timestamp='2013-06-10' +timestamp='2014-03-23' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by @@ -50,7 +50,7 @@ GNU config.guess ($timestamp) Originally written by Per Bothner. -Copyright 1992-2013 Free Software Foundation, Inc. +Copyright 1992-2014 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." @@ -149,7 +149,7 @@ LIBC=gnu #endif EOF - eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'` + eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC' | sed 's, ,,g'` ;; esac @@ -826,7 +826,7 @@ *:MINGW*:*) echo ${UNAME_MACHINE}-pc-mingw32 exit ;; - i*:MSYS*:*) + *:MSYS*:*) echo ${UNAME_MACHINE}-pc-msys exit ;; i*:windows32*:*) @@ -969,10 +969,10 @@ eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'` test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; } ;; - or1k:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + openrisc*:Linux:*:*) + echo or1k-unknown-linux-${LIBC} exit ;; - or32:Linux:*:*) + or32:Linux:*:* | or1k*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; padre:Linux:*:*) @@ -1260,16 +1260,26 @@ if test "$UNAME_PROCESSOR" = unknown ; then UNAME_PROCESSOR=powerpc fi - if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then - if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ - (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ - grep IS_64BIT_ARCH >/dev/null - then - case $UNAME_PROCESSOR in - i386) UNAME_PROCESSOR=x86_64 ;; - powerpc) UNAME_PROCESSOR=powerpc64 ;; - esac + if test `echo "$UNAME_RELEASE" | sed -e 's/\..*//'` -le 10 ; then + if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then + if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ + (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_64BIT_ARCH >/dev/null + then + case $UNAME_PROCESSOR in + i386) UNAME_PROCESSOR=x86_64 ;; + powerpc) UNAME_PROCESSOR=powerpc64 ;; + esac + fi fi + elif test "$UNAME_PROCESSOR" = i386 ; then + # Avoid executing cc on OS X 10.9, as it ships with a stub + # that puts up a graphical alert prompting to install + # developer tools. Any system running Mac OS X 10.7 or + # later (Darwin 11 and later) is required to have a 64-bit + # processor. This is not true of the ARM version of Darwin + # that Apple uses in portable devices. + UNAME_PROCESSOR=x86_64 fi echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} exit ;; @@ -1361,154 +1371,6 @@ exit ;; esac -eval $set_cc_for_build -cat >$dummy.c < -# include -#endif -main () -{ -#if defined (sony) -#if defined (MIPSEB) - /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, - I don't know.... */ - printf ("mips-sony-bsd\n"); exit (0); -#else -#include - printf ("m68k-sony-newsos%s\n", -#ifdef NEWSOS4 - "4" -#else - "" -#endif - ); exit (0); -#endif -#endif - -#if defined (__arm) && defined (__acorn) && defined (__unix) - printf ("arm-acorn-riscix\n"); exit (0); -#endif - -#if defined (hp300) && !defined (hpux) - printf ("m68k-hp-bsd\n"); exit (0); -#endif - -#if defined (NeXT) -#if !defined (__ARCHITECTURE__) -#define __ARCHITECTURE__ "m68k" -#endif - int version; - version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; - if (version < 4) - printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); - else - printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); - exit (0); -#endif - -#if defined (MULTIMAX) || defined (n16) -#if defined (UMAXV) - printf ("ns32k-encore-sysv\n"); exit (0); -#else -#if defined (CMU) - printf ("ns32k-encore-mach\n"); exit (0); -#else - printf ("ns32k-encore-bsd\n"); exit (0); -#endif -#endif -#endif - -#if defined (__386BSD__) - printf ("i386-pc-bsd\n"); exit (0); -#endif - -#if defined (sequent) -#if defined (i386) - printf ("i386-sequent-dynix\n"); exit (0); -#endif -#if defined (ns32000) - printf ("ns32k-sequent-dynix\n"); exit (0); -#endif -#endif - -#if defined (_SEQUENT_) - struct utsname un; - - uname(&un); - - if (strncmp(un.version, "V2", 2) == 0) { - printf ("i386-sequent-ptx2\n"); exit (0); - } - if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ - printf ("i386-sequent-ptx1\n"); exit (0); - } - printf ("i386-sequent-ptx\n"); exit (0); - -#endif - -#if defined (vax) -# if !defined (ultrix) -# include -# if defined (BSD) -# if BSD == 43 - printf ("vax-dec-bsd4.3\n"); exit (0); -# else -# if BSD == 199006 - printf ("vax-dec-bsd4.3reno\n"); exit (0); -# else - printf ("vax-dec-bsd\n"); exit (0); -# endif -# endif -# else - printf ("vax-dec-bsd\n"); exit (0); -# endif -# else - printf ("vax-dec-ultrix\n"); exit (0); -# endif -#endif - -#if defined (alliant) && defined (i860) - printf ("i860-alliant-bsd\n"); exit (0); -#endif - - exit (1); -} -EOF - -$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` && - { echo "$SYSTEM_NAME"; exit; } - -# Apollos put the system type in the environment. - -test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; } - -# Convex versions that predate uname can use getsysinfo(1) - -if [ -x /usr/convex/getsysinfo ] -then - case `getsysinfo -f cpu_type` in - c1*) - echo c1-convex-bsd - exit ;; - c2*) - if getsysinfo -f scalar_acc - then echo c32-convex-bsd - else echo c2-convex-bsd - fi - exit ;; - c34*) - echo c34-convex-bsd - exit ;; - c38*) - echo c38-convex-bsd - exit ;; - c4*) - echo c4-convex-bsd - exit ;; - esac -fi - cat >&2 <. # @@ -591,8 +591,8 @@ # Identity of this package. PACKAGE_NAME='gtksourceview' PACKAGE_TARNAME='gtksourceview' -PACKAGE_VERSION='3.12.1' -PACKAGE_STRING='gtksourceview 3.12.1' +PACKAGE_VERSION='3.14.4' +PACKAGE_STRING='gtksourceview 3.14.4' PACKAGE_BUGREPORT='http://bugzilla.gnome.org/enter_bug.cgi?product=gtksourceview' PACKAGE_URL='https://wiki.gnome.org/Projects/GtkSourceView' @@ -638,7 +638,13 @@ LTLIBOBJS LIBOBJS ABS_TOP_SRCDIR +ENABLE_VAPIGEN_FALSE +ENABLE_VAPIGEN_TRUE +VAPIGEN_MAKEFILE +VAPIGEN_VAPIDIR +VAPIGEN GNOME_CODE_COVERAGE_RULES +CODE_COVERAGE_RULES CODE_COVERAGE_LDFLAGS CODE_COVERAGE_CFLAGS GENHTML @@ -723,8 +729,6 @@ GLADE_CFLAGS GLADE_CATALOG_FALSE GLADE_CATALOG_TRUE -GTK_MAC_LIBS -GTK_MAC_CFLAGS OS_OSX_FALSE OS_OSX_TRUE ENABLE_PROVIDERS_FALSE @@ -738,7 +742,6 @@ WARN_CFLAGS GLIB_COMPILE_RESOURCES GLIB_MKENUMS -GLIB_GENMARSHAL LIBXML_REQUIRED_VERSION GTK_REQUIRED_VERSION CPP @@ -883,6 +886,7 @@ enable_installed_tests enable_introspection enable_code_coverage +enable_vala ' ac_precious_vars='build_alias host_alias @@ -898,8 +902,6 @@ PKG_CONFIG_LIBDIR DEP_CFLAGS DEP_LIBS -GTK_MAC_CFLAGS -GTK_MAC_LIBS GLADE_CFLAGS GLADE_LIBS GTKDOC_DEPS_CFLAGS @@ -1444,7 +1446,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 gtksourceview 3.12.1 to adapt to many kinds of systems. +\`configure' configures gtksourceview 3.14.4 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1514,7 +1516,7 @@ if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of gtksourceview 3.12.1:";; + short | recursive ) echo "Configuration of gtksourceview 3.14.4:";; esac cat <<\_ACEOF @@ -1552,6 +1554,8 @@ --enable-introspection=[no/auto/yes] Enable introspection for this build --enable-code-coverage Whether to enable code coverage support + --enable-vala=[no/auto/yes] + build Vala bindings [default=auto] Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] @@ -1579,10 +1583,6 @@ path overriding pkg-config's built-in search path DEP_CFLAGS C compiler flags for DEP, overriding pkg-config DEP_LIBS linker flags for DEP, overriding pkg-config - GTK_MAC_CFLAGS - C compiler flags for GTK_MAC, overriding pkg-config - GTK_MAC_LIBS - linker flags for GTK_MAC, overriding pkg-config GLADE_CFLAGS C compiler flags for GLADE, overriding pkg-config GLADE_LIBS linker flags for GLADE, overriding pkg-config @@ -1658,7 +1658,7 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -gtksourceview configure 3.12.1 +gtksourceview configure 3.14.4 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -2027,7 +2027,7 @@ This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by gtksourceview $as_me 3.12.1, which was +It was created by gtksourceview $as_me 3.14.4, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -2393,9 +2393,9 @@ # # (From the book Autotools, by John Calcote) -GSV_LT_CURRENT=3 +GSV_LT_CURRENT=4 GSV_LT_REVISION=0 -GSV_LT_AGE=2 +GSV_LT_AGE=3 GSV_LT_VERSION="$GSV_LT_CURRENT:$GSV_LT_REVISION:$GSV_LT_AGE" @@ -2404,7 +2404,7 @@ -am__api_version='1.13' +am__api_version='1.14' ac_aux_dir= for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do @@ -2919,7 +2919,7 @@ # Define the identity of the package. PACKAGE='gtksourceview' - VERSION='3.12.1' + VERSION='3.14.4' cat >>confdefs.h <<_ACEOF @@ -3086,6 +3086,47 @@ +# 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! + +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. + +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. + +END + as_fn_error $? "Your 'rm' program is bad, sorry." "$LINENO" 5 + fi +fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable maintainer-specific portions of Makefiles" >&5 $as_echo_n "checking whether to enable maintainer-specific portions of Makefiles... " >&6; } @@ -3939,6 +3980,65 @@ ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC understands -c and -o together" >&5 +$as_echo_n "checking whether $CC understands -c and -o together... " >&6; } +if ${am_cv_prog_cc_c_o+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF + # 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 { echo "$as_me:$LINENO: $CC -c conftest.$ac_ext -o conftest2.$ac_objext" >&5 + ($CC -c conftest.$ac_ext -o conftest2.$ac_objext) >&5 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } \ + && 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 +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5 +$as_echo "$am_cv_prog_cc_c_o" >&6; } +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_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + DEPDIR="${am__leading_dot}deps" ac_config_commands="$ac_config_commands depfiles" @@ -11742,55 +11842,15 @@ # Dependencies -GLIB_REQUIRED_VERSION=2.37.3 -GTK_REQUIRED_VERSION=3.11.0 +GLIB_REQUIRED_VERSION=2.38 +GTK_REQUIRED_VERSION=3.13.7 LIBXML_REQUIRED_VERSION=2.6.0 GLADE_UI_REQUIRED=3.9 -# Pull glib-genmarshal & co. -# Extract the first word of "glib-genmarshal", so it can be a program name with args. -set dummy glib-genmarshal; 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_GLIB_GENMARSHAL+:} false; then : - $as_echo_n "(cached) " >&6 -else - case $GLIB_GENMARSHAL in - [\\/]* | ?:[\\/]*) - ac_cv_path_GLIB_GENMARSHAL="$GLIB_GENMARSHAL" # 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_GLIB_GENMARSHAL="$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 -GLIB_GENMARSHAL=$ac_cv_path_GLIB_GENMARSHAL -if test -n "$GLIB_GENMARSHAL"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GLIB_GENMARSHAL" >&5 -$as_echo "$GLIB_GENMARSHAL" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - +# Pull glib-mkenums & co. # Extract the first word of "glib-mkenums", so it can be a program name with args. set dummy glib-mkenums; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 @@ -11904,13 +11964,14 @@ -Werror=format-security \ -Werror=format=2 \ -Werror=missing-include-dirs \ + -Werror=return-type \ " additional_flags="" case "$enable_compile_warnings" in no) - warning_flags= + warning_flags="-w" ;; minimum) warning_flags="-Wall" @@ -12294,6 +12355,7 @@ pkg_config_args=gtk+-quartz-3.0 min_gtk_version=3.0.0 + pkg_config_args="$pkg_config_args >= $min_gtk_version" # Extract the first word of "pkg-config", so it can be a program name with args. set dummy pkg-config; ac_word=$2 @@ -12337,7 +12399,7 @@ - if $PKG_CONFIG --atleast-version $min_gtk_version $pkg_config_args ; then + if $PKG_CONFIG $pkg_config_args ; then target_found=yes else target_found=no @@ -12364,98 +12426,6 @@ $as_echo "#define OS_OSX 1" >>confdefs.h - - -pkg_failed=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GTK_MAC" >&5 -$as_echo_n "checking for GTK_MAC... " >&6; } - -if test -n "$GTK_MAC_CFLAGS"; then - pkg_cv_GTK_MAC_CFLAGS="$GTK_MAC_CFLAGS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk-mac-integration >= 2.0.0\""; } >&5 - ($PKG_CONFIG --exists --print-errors "gtk-mac-integration >= 2.0.0") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_GTK_MAC_CFLAGS=`$PKG_CONFIG --cflags "gtk-mac-integration >= 2.0.0" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi -if test -n "$GTK_MAC_LIBS"; then - pkg_cv_GTK_MAC_LIBS="$GTK_MAC_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk-mac-integration >= 2.0.0\""; } >&5 - ($PKG_CONFIG --exists --print-errors "gtk-mac-integration >= 2.0.0") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_GTK_MAC_LIBS=`$PKG_CONFIG --libs "gtk-mac-integration >= 2.0.0" 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 - GTK_MAC_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "gtk-mac-integration >= 2.0.0" 2>&1` - else - GTK_MAC_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "gtk-mac-integration >= 2.0.0" 2>&1` - fi - # Put the nasty error message in config.log where it belongs - echo "$GTK_MAC_PKG_ERRORS" >&5 - - as_fn_error $? "Package requirements (gtk-mac-integration >= 2.0.0) were not met: - -$GTK_MAC_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 GTK_MAC_CFLAGS -and GTK_MAC_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 GTK_MAC_CFLAGS -and GTK_MAC_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 - GTK_MAC_CFLAGS=$pkg_cv_GTK_MAC_CFLAGS - GTK_MAC_LIBS=$pkg_cv_GTK_MAC_LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -fi fi # Check for Glade3 @@ -13600,20 +13570,20 @@ as_fn_error $? "gobject-introspection-1.0 is not installed" "$LINENO" 5 fi if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gobject-introspection-1.0 >= 0.9.0\""; } >&5 - ($PKG_CONFIG --exists --print-errors "gobject-introspection-1.0 >= 0.9.0") 2>&5 + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gobject-introspection-1.0 >= 1.42.0\""; } >&5 + ($PKG_CONFIG --exists --print-errors "gobject-introspection-1.0 >= 1.42.0") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then found_introspection=yes else - as_fn_error $? "You need to have gobject-introspection >= 0.9.0 installed to build gtksourceview" "$LINENO" 5 + as_fn_error $? "You need to have gobject-introspection >= 1.42.0 installed to build gtksourceview" "$LINENO" 5 fi ;; #( auto) : if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gobject-introspection-1.0 >= 0.9.0\""; } >&5 - ($PKG_CONFIG --exists --print-errors "gobject-introspection-1.0 >= 0.9.0") 2>&5 + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gobject-introspection-1.0 >= 1.42.0\""; } >&5 + ($PKG_CONFIG --exists --print-errors "gobject-introspection-1.0 >= 1.42.0") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then @@ -13667,6 +13637,7 @@ # Code coverage + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build with code coverage support" >&5 $as_echo_n "checking whether to build with code coverage support... " >&6; } # Check whether --enable-code-coverage was given. @@ -13698,7 +13669,7 @@ fi # List of supported lcov versions. - lcov_version_list="1.6 1.7 1.8 1.9 1.10" + lcov_version_list="1.6 1.7 1.8 1.9 1.10 1.11" # Extract the first word of "lcov", so it can be a program name with args. set dummy lcov; ac_word=$2 @@ -13779,21 +13750,21 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for lcov version" >&5 $as_echo_n "checking for lcov version... " >&6; } -if ${gnome_cv_lcov_version+:} false; then : +if ${ax_cv_lcov_version+:} false; then : $as_echo_n "(cached) " >&6 else - gnome_cv_lcov_version=invalid + ax_cv_lcov_version=invalid lcov_version=`$LCOV -v 2>/dev/null | $SED -e 's/^.* //'` for lcov_check_version in $lcov_version_list; do if test "$lcov_version" = "$lcov_check_version"; then - gnome_cv_lcov_version="$lcov_check_version (ok)" + ax_cv_lcov_version="$lcov_check_version (ok)" fi done fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gnome_cv_lcov_version" >&5 -$as_echo "$gnome_cv_lcov_version" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_lcov_version" >&5 +$as_echo "$ax_cv_lcov_version" >&6; } else @@ -13802,7 +13773,7 @@ fi - case $gnome_cv_lcov_version in + case $ax_cv_lcov_version in ""|invalid) lcov_msg="You must have one of the following versions of lcov: $lcov_version_list (found: $lcov_version)." as_fn_error $? "$lcov_msg" "$LINENO" 5 @@ -13824,7 +13795,7 @@ fi -GNOME_CODE_COVERAGE_RULES=' +CODE_COVERAGE_RULES=' # Code coverage # # Optional: @@ -13902,6 +13873,271 @@ + GNOME_CODE_COVERAGE_RULES=$CODE_COVERAGE_RULES + + + + + +# Vala + + if test "x" != "xyes"; then : + + + +fi + + # Check whether --enable-vala was given. +if test "${enable_vala+set}" = set; then : + enableval=$enable_vala; +else + + if test "x" = "x"; then : + + enable_vala=auto + +else + + enable_vala= + +fi + +fi + + + case $enable_vala in #( + no) : + enable_vala=no ;; #( + yes) : + + if test "x" != "xyes" -a "x$found_introspection" != "xyes"; then : + + as_fn_error $? "Vala bindings require GObject Introspection" "$LINENO" 5 + +fi + ;; #( + auto) : + + if test "x" != "xyes" -a "x$found_introspection" != "xyes"; then : + + enable_vala=no + +fi + ;; #( + *) : + + as_fn_error $? "Invalid argument passed to --enable-vala, should be one of [no/auto/yes]" "$LINENO" 5 + ;; +esac + + if test "x" = "x"; then : + + vapigen_pkg_name=vapigen + +else + + vapigen_pkg_name=vapigen- + +fi + if test "x" = "x"; then : + + vapigen_pkg="$vapigen_pkg_name" + +else + + vapigen_pkg="$vapigen_pkg_name >= " + +fi + + + + + + + + +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_PKG_CONFIG+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $PKG_CONFIG in + [\\/]* | ?:[\\/]*) + 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 $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_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 +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 + + 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 +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 + + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$vapigen_pkg\""; } >&5 + ($PKG_CONFIG --exists --print-errors "$vapigen_pkg") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + + if test "$enable_vala" = "auto"; then : + + enable_vala=yes + +fi + +else + + case $enable_vala in #( + yes) : + + as_fn_error $? "$vapigen_pkg not found" "$LINENO" 5 + ;; #( + auto) : + + enable_vala=no + ;; #( + *) : + ;; +esac + +fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for vapigen" >&5 +$as_echo_n "checking for vapigen... " >&6; } + + case $enable_vala in #( + yes) : + + VAPIGEN=`$PKG_CONFIG --variable=vapigen $vapigen_pkg_name` + VAPIGEN_MAKEFILE=`$PKG_CONFIG --variable=datadir $vapigen_pkg_name`/vala/Makefile.vapigen + if test "x" = "x"; then : + + VAPIGEN_VAPIDIR=`$PKG_CONFIG --variable=vapidir $vapigen_pkg_name` + +else + + VAPIGEN_VAPIDIR=`$PKG_CONFIG --variable=vapidir_versioned $vapigen_pkg_name` + +fi + ;; #( + *) : + ;; +esac + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_vala" >&5 +$as_echo "$enable_vala" >&6; } + + + + + + if test "x$enable_vala" = "xyes"; then + ENABLE_VAPIGEN_TRUE= + ENABLE_VAPIGEN_FALSE='#' +else + ENABLE_VAPIGEN_TRUE='#' + ENABLE_VAPIGEN_FALSE= +fi + + # test-widget uses this to find lang files and gtksourcebuffer.c ABS_TOP_SRCDIR=`cd $srcdir && pwd` @@ -14100,6 +14336,10 @@ as_fn_error $? "conditional \"CODE_COVERAGE_ENABLED\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi +if test -z "${ENABLE_VAPIGEN_TRUE}" && test -z "${ENABLE_VAPIGEN_FALSE}"; then + as_fn_error $? "conditional \"ENABLE_VAPIGEN\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi : "${CONFIG_STATUS=./config.status}" ac_write_fail=0 @@ -14497,7 +14737,7 @@ # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by gtksourceview $as_me 3.12.1, which was +This file was extended by gtksourceview $as_me 3.14.4, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -14564,7 +14804,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -gtksourceview config.status 3.12.1 +gtksourceview config.status 3.14.4 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" @@ -16376,4 +16616,5 @@ Completion Providers: ${enable_providers} Glade Catalog: ${glade_catalog} GObject introspection: ${found_introspection} + Vala: ${enable_vala} " diff -Nru gtksourceview3-3.12.1/configure.ac gtksourceview3-3.14.4/configure.ac --- gtksourceview3-3.12.1/configure.ac 2014-04-14 16:02:42.000000000 +0000 +++ gtksourceview3-3.14.4/configure.ac 2015-04-04 12:06:57.000000000 +0000 @@ -3,8 +3,8 @@ AC_PREREQ(2.64) m4_define(gtksourceview_major_version, 3) -m4_define(gtksourceview_minor_version, 12) -m4_define(gtksourceview_micro_version, 1) +m4_define(gtksourceview_minor_version, 14) +m4_define(gtksourceview_micro_version, 4) m4_define(gtksourceview_version, gtksourceview_major_version.gtksourceview_minor_version.gtksourceview_micro_version) AC_INIT([gtksourceview], @@ -30,9 +30,9 @@ # # (From the book Autotools, by John Calcote) -GSV_LT_CURRENT=3 +GSV_LT_CURRENT=4 GSV_LT_REVISION=0 -GSV_LT_AGE=2 +GSV_LT_AGE=3 GSV_LT_VERSION="$GSV_LT_CURRENT:$GSV_LT_REVISION:$GSV_LT_AGE" AC_SUBST(GSV_LT_VERSION) @@ -57,16 +57,15 @@ AC_CHECK_HEADERS([unistd.h]) # Dependencies -GLIB_REQUIRED_VERSION=2.37.3 -GTK_REQUIRED_VERSION=3.11.0 +GLIB_REQUIRED_VERSION=2.38 +GTK_REQUIRED_VERSION=3.13.7 LIBXML_REQUIRED_VERSION=2.6.0 GLADE_UI_REQUIRED=3.9 AC_SUBST(GTK_REQUIRED_VERSION) AC_SUBST(LIBXML_REQUIRED_VERSION) -# Pull glib-genmarshal & co. -AC_PATH_PROG(GLIB_GENMARSHAL, glib-genmarshal) +# Pull glib-mkenums & co. AC_PATH_PROG(GLIB_MKENUMS, glib-mkenums) AC_PATH_PROG(GLIB_COMPILE_RESOURCES, glib-compile-resources) @@ -114,8 +113,6 @@ if test "$os_osx" = "yes"; then AC_DEFINE([OS_OSX], [1], [Defined if os is Mac OSX]) - - PKG_CHECK_MODULES(GTK_MAC, gtk-mac-integration >= 2.0.0) fi # Check for Glade3 @@ -163,11 +160,14 @@ AC_SUBST(GDK_PIXBUF_PREFIX) # Introspection -GOBJECT_INTROSPECTION_CHECK([0.9.0]) +GOBJECT_INTROSPECTION_CHECK([1.42.0]) # Code coverage GNOME_CODE_COVERAGE +# Vala +VAPIGEN_CHECK + # test-widget uses this to find lang files and gtksourcebuffer.c ABS_TOP_SRCDIR=`cd $srcdir && pwd` AC_SUBST(ABS_TOP_SRCDIR) @@ -203,4 +203,5 @@ Completion Providers: ${enable_providers} Glade Catalog: ${glade_catalog} GObject introspection: ${found_introspection} + Vala: ${enable_vala} " diff -Nru gtksourceview3-3.12.1/COPYING gtksourceview3-3.14.4/COPYING --- gtksourceview3-3.12.1/COPYING 2014-04-14 14:59:54.000000000 +0000 +++ gtksourceview3-3.14.4/COPYING 2015-02-15 20:04:28.000000000 +0000 @@ -1,221 +1,397 @@ - GNU GENERAL PUBLIC LICENSE - Version 2, June 1991 + GNU LESSER GENERAL PUBLIC LICENSE + Version 2.1, February 1999 - Copyright (C) 1989, 1991 Free Software Foundation, Inc. - 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + Copyright (C) 1991, 1999 Free Software Foundation, Inc. + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. +[This is the first released version of the Lesser GPL. It also counts + as the successor of the GNU Library Public License, version 2, hence + the version number 2.1.] + Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public -License is intended to guarantee your freedom to share and change free -software--to make sure the software is free for all its users. This -General Public License applies to most of the Free Software -Foundation's software and to any other program whose authors commit to -using it. (Some other Free Software Foundation software is covered by -the GNU Library General Public License instead.) You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -this service if you wish), that you receive source code or can get it -if you want it, that you can change the software or use pieces of it -in new free programs; and that you know you can do these things. +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Lesser General Public License, applies to some +specially designated software packages--typically libraries--of the +Free Software Foundation and other authors who decide to use it. You +can use it too, but we suggest you first think carefully about whether +this license or the ordinary General Public License is the better +strategy to use in any particular case, based on the explanations below. + + When we speak of free software, we are referring to freedom of use, +not price. Our General Public Licenses are designed to make sure that +you have the freedom to distribute copies of free software (and charge +for this service if you wish); that you receive source code or can get +it if you want it; that you can change the software and use pieces of +it in new free programs; and that you are informed that you can do +these things. To protect your rights, we need to make restrictions that forbid -anyone to deny you these rights or to ask you to surrender the rights. -These restrictions translate to certain responsibilities for you if you -distribute copies of the software, or if you modify it. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must give the recipients all the rights that -you have. You must make sure that they, too, receive or can get the -source code. And you must show them these terms so they know their -rights. - - We protect your rights with two steps: (1) copyright the software, and -(2) offer you this license which gives you legal permission to copy, -distribute and/or modify the software. - - Also, for each author's protection and ours, we want to make certain -that everyone understands that there is no warranty for this free -software. If the software is modified by someone else and passed on, we -want its recipients to know that what they have is not the original, so -that any problems introduced by others will not reflect on the original -authors' reputations. - - Finally, any free program is threatened constantly by software -patents. We wish to avoid the danger that redistributors of a free -program will individually obtain patent licenses, in effect making the -program proprietary. To prevent this, we have made it clear that any -patent must be licensed for everyone's free use or not licensed at all. +distributors to deny you these rights or to ask you to surrender these +rights. These restrictions translate to certain responsibilities for +you if you distribute copies of the library or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link other code with the library, you must provide +complete object files to the recipients, so that they can relink them +with the library after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + We protect your rights with a two-step method: (1) we copyright the +library, and (2) we offer you this license, which gives you legal +permission to copy, distribute and/or modify the library. + + To protect each distributor, we want to make it very clear that +there is no warranty for the free library. Also, if the library is +modified by someone else and passed on, the recipients should know +that what they have is not the original version, so that the original +author's reputation will not be affected by problems that might be +introduced by others. + + Finally, software patents pose a constant threat to the existence of +any free program. We wish to make sure that a company cannot +effectively restrict the users of a free program by obtaining a +restrictive license from a patent holder. Therefore, we insist that +any patent license obtained for a version of the library must be +consistent with the full freedom of use specified in this license. + + Most GNU software, including some libraries, is covered by the +ordinary GNU General Public License. This license, the GNU Lesser +General Public License, applies to certain designated libraries, and +is quite different from the ordinary General Public License. We use +this license for certain libraries in order to permit linking those +libraries into non-free programs. + + When a program is linked with a library, whether statically or using +a shared library, the combination of the two is legally speaking a +combined work, a derivative of the original library. The ordinary +General Public License therefore permits such linking only if the +entire combination fits its criteria of freedom. The Lesser General +Public License permits more lax criteria for linking other code with +the library. + + We call this license the "Lesser" General Public License because it +does Less to protect the user's freedom than the ordinary General +Public License. It also provides other free software developers Less +of an advantage over competing non-free programs. These disadvantages +are the reason we use the ordinary General Public License for many +libraries. However, the Lesser license provides advantages in certain +special circumstances. + + For example, on rare occasions, there may be a special need to +encourage the widest possible use of a certain library, so that it becomes +a de-facto standard. To achieve this, non-free programs must be +allowed to use the library. A more frequent case is that a free +library does the same job as widely used non-free libraries. In this +case, there is little to gain by limiting the free library to free +software only, so we use the Lesser General Public License. + + In other cases, permission to use a particular library in non-free +programs enables a greater number of people to use a large body of +free software. For example, permission to use the GNU C Library in +non-free programs enables many more people to use the whole GNU +operating system, as well as its variant, the GNU/Linux operating +system. + + Although the Lesser General Public License is Less protective of the +users' freedom, it does ensure that the user of a program that is +linked with the Library has the freedom and the wherewithal to run +that program using a modified version of the Library. The precise terms and conditions for copying, distribution and -modification follow. +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, whereas the latter must +be combined with the library in order to run. - GNU GENERAL PUBLIC LICENSE + GNU LESSER GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - 0. This License applies to any program or other work which contains -a notice placed by the copyright holder saying it may be distributed -under the terms of this General Public License. The "Program", below, -refers to any such program or work, and a "work based on the Program" -means either the Program or any derivative work under copyright law: -that is to say, a work containing the Program or a portion of it, -either verbatim or with modifications and/or translated into another -language. (Hereinafter, translation is included without limitation in -the term "modification".) Each licensee is addressed as "you". + 0. This License Agreement applies to any software library or other +program which contains a notice placed by the copyright holder or +other authorized party saying it may be distributed under the terms of +this Lesser General Public License (also called "this License"). +Each licensee is addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation +and installation of the library. -Activities other than copying, distribution and modification are not + Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of -running the Program is not restricted, and the output from the Program -is covered only if its contents constitute a work based on the -Program (independent of having been made by running the Program). -Whether that is true depends on what the Program does. - - 1. You may copy and distribute verbatim copies of the Program's -source code as you receive it, in any medium, provided that you -conspicuously and appropriately publish on each copy an appropriate -copyright notice and disclaimer of warranty; keep intact all the -notices that refer to this License and to the absence of any warranty; -and give any other recipients of the Program a copy of this License -along with the Program. - -You may charge a fee for the physical act of transferring a copy, and -you may at your option offer warranty protection in exchange for a fee. - - 2. You may modify your copy or copies of the Program or any portion -of it, thus forming a work based on the Program, and copy and +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: - a) You must cause the modified files to carry prominent notices + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices stating that you changed the files and the date of any change. - b) You must cause any work that you distribute or publish, that in - whole or in part contains or is derived from the Program or any - part thereof, to be licensed as a whole at no charge to all third - parties under the terms of this License. - - c) If the modified program normally reads commands interactively - when run, you must cause it, when started running for such - interactive use in the most ordinary way, to print or display an - announcement including an appropriate copyright notice and a - notice that there is no warranty (or else, saying that you provide - a warranty) and that users may redistribute the program under - these conditions, and telling the user how to view a copy of this - License. (Exception: if the Program itself is interactive but - does not normally print such an announcement, your work based on - the Program is not required to print an announcement.) - + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Program, +identifiable sections of that work are not derived from the Library, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based -on the Program, the distribution of the whole must be on the terms of +on the Library, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote it. +entire whole, and thus to each and every part regardless of who wrote +it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or -collective works based on the Program. +collective works based on the Library. -In addition, mere aggregation of another work not based on the Program -with the Program (or with a work based on the Program) on a volume of +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. - 3. You may copy and distribute the Program (or a work based on it, -under Section 2) in object code or executable form under the terms of -Sections 1 and 2 above provided that you also do one of the following: - - a) Accompany it with the complete corresponding machine-readable - source code, which must be distributed under the terms of Sections - 1 and 2 above on a medium customarily used for software interchange; or, - - b) Accompany it with a written offer, valid for at least three - years, to give any third party, for a charge no more than your - cost of physically performing source distribution, a complete - machine-readable copy of the corresponding source code, to be - distributed under the terms of Sections 1 and 2 above on a medium - customarily used for software interchange; or, - - c) Accompany it with the information you received as to the offer - to distribute corresponding source code. (This alternative is - allowed only for noncommercial distribution and only if you - received the program in object code or executable form with such - an offer, in accord with Subsection b above.) - -The source code for a work means the preferred form of the work for -making modifications to it. For an executable work, complete source -code means all the source code for all modules it contains, plus any -associated interface definition files, plus the scripts used to -control compilation and installation of the executable. However, as a -special exception, the source code distributed need not include -anything that is normally distributed (in either source or binary -form) with the major components (compiler, kernel, and so on) of the -operating system on which the executable runs, unless that component -itself accompanies the executable. - -If distribution of executable or object code is made by offering -access to copy from a designated place, then offering equivalent -access to copy the source code from the same place counts as -distribution of the source code, even though third parties are not + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. - 4. You may not copy, modify, sublicense, or distribute the Program -except as expressly provided under this License. Any attempt -otherwise to copy, modify, sublicense or distribute the Program is -void, and will automatically terminate your rights under this License. -However, parties who have received copies, or rights, from you under -this License will not have their licenses terminated so long as such -parties remain in full compliance. + 6. As an exception to the Sections above, you may also combine or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (1) uses at run time a + copy of the library already present on the user's computer system, + rather than copying library functions into the executable, and (2) + will operate properly with a modified version of the library, if + the user installs one, as long as the modified version is + interface-compatible with the version that the work was made with. + + c) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + d) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + e) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the materials to be distributed need not include anything that is +normally distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. - 5. You are not required to accept this License, since you have not + 9. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or -distribute the Program or its derivative works. These actions are +distribute the Library or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Program (or any work based on the -Program), you indicate your acceptance of this License to do so, and +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying -the Program or works based on it. +the Library or works based on it. - 6. Each time you redistribute the Program (or any work based on the -Program), the recipient automatically receives a license from the -original licensor to copy, distribute or modify the Program subject to -these terms and conditions. You may not impose any further + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties to +You are not responsible for enforcing compliance by third parties with this License. - - 7. If, as a consequence of a court judgment or allegation of patent + + 11. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you -may not distribute the Program at all. For example, if a patent -license would not permit royalty-free redistribution of the Program by +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Program. +refrain entirely from distribution of the Library. -If any portion of this section is held invalid or unenforceable under -any particular circumstance, the balance of the section is intended to -apply and the section as a whole is intended to apply in other -circumstances. +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply, +and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system, which is +integrity of the free software distribution system which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that @@ -225,116 +401,104 @@ This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. - - 8. If the distribution and/or use of the Program is restricted in + + 12. If the distribution and/or use of the Library is restricted in certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Program under this License -may add an explicit geographical distribution limitation excluding -those countries, so that distribution is permitted only in or among -countries not thus excluded. In such case, this License incorporates -the limitation as if written in the body of this License. - - 9. The Free Software Foundation may publish revised and/or new versions -of the General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - -Each version is given a distinguishing version number. If the Program -specifies a version number of this License which applies to it and "any -later version", you have the option of following the terms and conditions -either of that version or of any later version published by the Free -Software Foundation. If the Program does not specify a version number of -this License, you may choose any version ever published by the Free Software -Foundation. - - 10. If you wish to incorporate parts of the Program into other free -programs whose distribution conditions are different, write to the author -to ask for permission. For software which is copyrighted by the Free -Software Foundation, write to the Free Software Foundation; we sometimes -make exceptions for this. Our decision will be guided by the two goals -of preserving the free status of all derivatives of our free software and -of promoting the sharing and reuse of software generally. +original copyright holder who places the Library under this License may add +an explicit geographical distribution limitation excluding those countries, +so that distribution is permitted only in or among countries not thus +excluded. In such case, this License incorporates the limitation as if +written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Lesser General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. NO WARRANTY - 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY -FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN -OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES -PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED -OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS -TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE -PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, -REPAIR OR CORRECTION. - - 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR -REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, -INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING -OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED -TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY -YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER -PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE -POSSIBILITY OF SUCH DAMAGES. + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. END OF TERMS AND CONDITIONS - How to Apply These Terms to Your New Programs + How to Apply These Terms to Your New Libraries - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -convey the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. + If you develop a new library, and you want it to be of the greatest +possible use to the public, we recommend making it free software that +everyone can redistribute and change. You can do so by permitting +redistribution under these terms (or, alternatively, under the terms of the +ordinary General Public License). + + To apply these terms, attach the following notices to the library. It is +safest to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least the +"copyright" line and a pointer to where the full notice is found. - + Copyright (C) - 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 library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. - This program is distributed in the hope that it will be useful, + This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Also add information on how to contact you by electronic and paper mail. -If the program is interactive, make it output a short notice like this -when it starts in an interactive mode: - - Gnomovision version 69, Copyright (C) year name of author - Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, the commands you use may -be called something other than `show w' and `show c'; they could even be -mouse-clicks or menu items--whatever suits your program. - You should also get your employer (if you work as a programmer) or your -school, if any, to sign a "copyright disclaimer" for the program, if +school, if any, to sign a "copyright disclaimer" for the library, if necessary. Here is a sample; alter the names: - Yoyodyne, Inc., hereby disclaims all copyright interest in the program - `Gnomovision' (which makes passes at compilers) written by James Hacker. + Yoyodyne, Inc., hereby disclaims all copyright interest in the + library `Frob' (a library for tweaking knobs) written by James Random Hacker. - , 1 April 1989 + , 1 April 1990 Ty Coon, President of Vice -This General Public License does not permit incorporating your program into -proprietary programs. If your program is a subroutine library, you may -consider it more useful to permit linking proprietary applications with the -library. If this is what you want to do, use the GNU Library General -Public License instead of this License. +That's all there is to it! + + diff -Nru gtksourceview3-3.12.1/COPYING.lib gtksourceview3-3.14.4/COPYING.lib --- gtksourceview3-3.12.1/COPYING.lib 2014-04-14 14:59:54.000000000 +0000 +++ gtksourceview3-3.14.4/COPYING.lib 1970-01-01 00:00:00.000000000 +0000 @@ -1,504 +0,0 @@ - GNU LESSER GENERAL PUBLIC LICENSE - Version 2.1, February 1999 - - Copyright (C) 1991, 1999 Free Software Foundation, Inc. - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - -[This is the first released version of the Lesser GPL. It also counts - as the successor of the GNU Library Public License, version 2, hence - the version number 2.1.] - - Preamble - - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -Licenses are intended to guarantee your freedom to share and change -free software--to make sure the software is free for all its users. - - This license, the Lesser General Public License, applies to some -specially designated software packages--typically libraries--of the -Free Software Foundation and other authors who decide to use it. You -can use it too, but we suggest you first think carefully about whether -this license or the ordinary General Public License is the better -strategy to use in any particular case, based on the explanations below. - - When we speak of free software, we are referring to freedom of use, -not price. Our General Public Licenses are designed to make sure that -you have the freedom to distribute copies of free software (and charge -for this service if you wish); that you receive source code or can get -it if you want it; that you can change the software and use pieces of -it in new free programs; and that you are informed that you can do -these things. - - To protect your rights, we need to make restrictions that forbid -distributors to deny you these rights or to ask you to surrender these -rights. These restrictions translate to certain responsibilities for -you if you distribute copies of the library or if you modify it. - - For example, if you distribute copies of the library, whether gratis -or for a fee, you must give the recipients all the rights that we gave -you. You must make sure that they, too, receive or can get the source -code. If you link other code with the library, you must provide -complete object files to the recipients, so that they can relink them -with the library after making changes to the library and recompiling -it. And you must show them these terms so they know their rights. - - We protect your rights with a two-step method: (1) we copyright the -library, and (2) we offer you this license, which gives you legal -permission to copy, distribute and/or modify the library. - - To protect each distributor, we want to make it very clear that -there is no warranty for the free library. Also, if the library is -modified by someone else and passed on, the recipients should know -that what they have is not the original version, so that the original -author's reputation will not be affected by problems that might be -introduced by others. - - Finally, software patents pose a constant threat to the existence of -any free program. We wish to make sure that a company cannot -effectively restrict the users of a free program by obtaining a -restrictive license from a patent holder. Therefore, we insist that -any patent license obtained for a version of the library must be -consistent with the full freedom of use specified in this license. - - Most GNU software, including some libraries, is covered by the -ordinary GNU General Public License. This license, the GNU Lesser -General Public License, applies to certain designated libraries, and -is quite different from the ordinary General Public License. We use -this license for certain libraries in order to permit linking those -libraries into non-free programs. - - When a program is linked with a library, whether statically or using -a shared library, the combination of the two is legally speaking a -combined work, a derivative of the original library. The ordinary -General Public License therefore permits such linking only if the -entire combination fits its criteria of freedom. The Lesser General -Public License permits more lax criteria for linking other code with -the library. - - We call this license the "Lesser" General Public License because it -does Less to protect the user's freedom than the ordinary General -Public License. It also provides other free software developers Less -of an advantage over competing non-free programs. These disadvantages -are the reason we use the ordinary General Public License for many -libraries. However, the Lesser license provides advantages in certain -special circumstances. - - For example, on rare occasions, there may be a special need to -encourage the widest possible use of a certain library, so that it becomes -a de-facto standard. To achieve this, non-free programs must be -allowed to use the library. A more frequent case is that a free -library does the same job as widely used non-free libraries. In this -case, there is little to gain by limiting the free library to free -software only, so we use the Lesser General Public License. - - In other cases, permission to use a particular library in non-free -programs enables a greater number of people to use a large body of -free software. For example, permission to use the GNU C Library in -non-free programs enables many more people to use the whole GNU -operating system, as well as its variant, the GNU/Linux operating -system. - - Although the Lesser General Public License is Less protective of the -users' freedom, it does ensure that the user of a program that is -linked with the Library has the freedom and the wherewithal to run -that program using a modified version of the Library. - - The precise terms and conditions for copying, distribution and -modification follow. Pay close attention to the difference between a -"work based on the library" and a "work that uses the library". The -former contains code derived from the library, whereas the latter must -be combined with the library in order to run. - - GNU LESSER GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License Agreement applies to any software library or other -program which contains a notice placed by the copyright holder or -other authorized party saying it may be distributed under the terms of -this Lesser General Public License (also called "this License"). -Each licensee is addressed as "you". - - A "library" means a collection of software functions and/or data -prepared so as to be conveniently linked with application programs -(which use some of those functions and data) to form executables. - - The "Library", below, refers to any such software library or work -which has been distributed under these terms. A "work based on the -Library" means either the Library or any derivative work under -copyright law: that is to say, a work containing the Library or a -portion of it, either verbatim or with modifications and/or translated -straightforwardly into another language. (Hereinafter, translation is -included without limitation in the term "modification".) - - "Source code" for a work means the preferred form of the work for -making modifications to it. For a library, complete source code means -all the source code for all modules it contains, plus any associated -interface definition files, plus the scripts used to control compilation -and installation of the library. - - Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running a program using the Library is not restricted, and output from -such a program is covered only if its contents constitute a work based -on the Library (independent of the use of the Library in a tool for -writing it). Whether that is true depends on what the Library does -and what the program that uses the Library does. - - 1. You may copy and distribute verbatim copies of the Library's -complete source code as you receive it, in any medium, provided that -you conspicuously and appropriately publish on each copy an -appropriate copyright notice and disclaimer of warranty; keep intact -all the notices that refer to this License and to the absence of any -warranty; and distribute a copy of this License along with the -Library. - - You may charge a fee for the physical act of transferring a copy, -and you may at your option offer warranty protection in exchange for a -fee. - - 2. You may modify your copy or copies of the Library or any portion -of it, thus forming a work based on the Library, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: - - a) The modified work must itself be a software library. - - b) You must cause the files modified to carry prominent notices - stating that you changed the files and the date of any change. - - c) You must cause the whole of the work to be licensed at no - charge to all third parties under the terms of this License. - - d) If a facility in the modified Library refers to a function or a - table of data to be supplied by an application program that uses - the facility, other than as an argument passed when the facility - is invoked, then you must make a good faith effort to ensure that, - in the event an application does not supply such function or - table, the facility still operates, and performs whatever part of - its purpose remains meaningful. - - (For example, a function in a library to compute square roots has - a purpose that is entirely well-defined independent of the - application. Therefore, Subsection 2d requires that any - application-supplied function or table used by this function must - be optional: if the application does not supply it, the square - root function must still compute square roots.) - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Library, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Library, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote -it. - -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Library. - -In addition, mere aggregation of another work not based on the Library -with the Library (or with a work based on the Library) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - - 3. You may opt to apply the terms of the ordinary GNU General Public -License instead of this License to a given copy of the Library. To do -this, you must alter all the notices that refer to this License, so -that they refer to the ordinary GNU General Public License, version 2, -instead of to this License. (If a newer version than version 2 of the -ordinary GNU General Public License has appeared, then you can specify -that version instead if you wish.) Do not make any other change in -these notices. - - Once this change is made in a given copy, it is irreversible for -that copy, so the ordinary GNU General Public License applies to all -subsequent copies and derivative works made from that copy. - - This option is useful when you wish to copy part of the code of -the Library into a program that is not a library. - - 4. You may copy and distribute the Library (or a portion or -derivative of it, under Section 2) in object code or executable form -under the terms of Sections 1 and 2 above provided that you accompany -it with the complete corresponding machine-readable source code, which -must be distributed under the terms of Sections 1 and 2 above on a -medium customarily used for software interchange. - - If distribution of object code is made by offering access to copy -from a designated place, then offering equivalent access to copy the -source code from the same place satisfies the requirement to -distribute the source code, even though third parties are not -compelled to copy the source along with the object code. - - 5. A program that contains no derivative of any portion of the -Library, but is designed to work with the Library by being compiled or -linked with it, is called a "work that uses the Library". Such a -work, in isolation, is not a derivative work of the Library, and -therefore falls outside the scope of this License. - - However, linking a "work that uses the Library" with the Library -creates an executable that is a derivative of the Library (because it -contains portions of the Library), rather than a "work that uses the -library". The executable is therefore covered by this License. -Section 6 states terms for distribution of such executables. - - When a "work that uses the Library" uses material from a header file -that is part of the Library, the object code for the work may be a -derivative work of the Library even though the source code is not. -Whether this is true is especially significant if the work can be -linked without the Library, or if the work is itself a library. The -threshold for this to be true is not precisely defined by law. - - If such an object file uses only numerical parameters, data -structure layouts and accessors, and small macros and small inline -functions (ten lines or less in length), then the use of the object -file is unrestricted, regardless of whether it is legally a derivative -work. (Executables containing this object code plus portions of the -Library will still fall under Section 6.) - - Otherwise, if the work is a derivative of the Library, you may -distribute the object code for the work under the terms of Section 6. -Any executables containing that work also fall under Section 6, -whether or not they are linked directly with the Library itself. - - 6. As an exception to the Sections above, you may also combine or -link a "work that uses the Library" with the Library to produce a -work containing portions of the Library, and distribute that work -under terms of your choice, provided that the terms permit -modification of the work for the customer's own use and reverse -engineering for debugging such modifications. - - You must give prominent notice with each copy of the work that the -Library is used in it and that the Library and its use are covered by -this License. You must supply a copy of this License. If the work -during execution displays copyright notices, you must include the -copyright notice for the Library among them, as well as a reference -directing the user to the copy of this License. Also, you must do one -of these things: - - a) Accompany the work with the complete corresponding - machine-readable source code for the Library including whatever - changes were used in the work (which must be distributed under - Sections 1 and 2 above); and, if the work is an executable linked - with the Library, with the complete machine-readable "work that - uses the Library", as object code and/or source code, so that the - user can modify the Library and then relink to produce a modified - executable containing the modified Library. (It is understood - that the user who changes the contents of definitions files in the - Library will not necessarily be able to recompile the application - to use the modified definitions.) - - b) Use a suitable shared library mechanism for linking with the - Library. A suitable mechanism is one that (1) uses at run time a - copy of the library already present on the user's computer system, - rather than copying library functions into the executable, and (2) - will operate properly with a modified version of the library, if - the user installs one, as long as the modified version is - interface-compatible with the version that the work was made with. - - c) Accompany the work with a written offer, valid for at - least three years, to give the same user the materials - specified in Subsection 6a, above, for a charge no more - than the cost of performing this distribution. - - d) If distribution of the work is made by offering access to copy - from a designated place, offer equivalent access to copy the above - specified materials from the same place. - - e) Verify that the user has already received a copy of these - materials or that you have already sent this user a copy. - - For an executable, the required form of the "work that uses the -Library" must include any data and utility programs needed for -reproducing the executable from it. However, as a special exception, -the materials to be distributed need not include anything that is -normally distributed (in either source or binary form) with the major -components (compiler, kernel, and so on) of the operating system on -which the executable runs, unless that component itself accompanies -the executable. - - It may happen that this requirement contradicts the license -restrictions of other proprietary libraries that do not normally -accompany the operating system. Such a contradiction means you cannot -use both them and the Library together in an executable that you -distribute. - - 7. You may place library facilities that are a work based on the -Library side-by-side in a single library together with other library -facilities not covered by this License, and distribute such a combined -library, provided that the separate distribution of the work based on -the Library and of the other library facilities is otherwise -permitted, and provided that you do these two things: - - a) Accompany the combined library with a copy of the same work - based on the Library, uncombined with any other library - facilities. This must be distributed under the terms of the - Sections above. - - b) Give prominent notice with the combined library of the fact - that part of it is a work based on the Library, and explaining - where to find the accompanying uncombined form of the same work. - - 8. You may not copy, modify, sublicense, link with, or distribute -the Library except as expressly provided under this License. Any -attempt otherwise to copy, modify, sublicense, link with, or -distribute the Library is void, and will automatically terminate your -rights under this License. However, parties who have received copies, -or rights, from you under this License will not have their licenses -terminated so long as such parties remain in full compliance. - - 9. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Library or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Library (or any work based on the -Library), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Library or works based on it. - - 10. Each time you redistribute the Library (or any work based on the -Library), the recipient automatically receives a license from the -original licensor to copy, distribute, link with or modify the Library -subject to these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties with -this License. - - 11. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Library at all. For example, if a patent -license would not permit royalty-free redistribution of the Library by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Library. - -If any portion of this section is held invalid or unenforceable under any -particular circumstance, the balance of the section is intended to apply, -and the section as a whole is intended to apply in other circumstances. - -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. - -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - - 12. If the distribution and/or use of the Library is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Library under this License may add -an explicit geographical distribution limitation excluding those countries, -so that distribution is permitted only in or among countries not thus -excluded. In such case, this License incorporates the limitation as if -written in the body of this License. - - 13. The Free Software Foundation may publish revised and/or new -versions of the Lesser General Public License from time to time. -Such new versions will be similar in spirit to the present version, -but may differ in detail to address new problems or concerns. - -Each version is given a distinguishing version number. If the Library -specifies a version number of this License which applies to it and -"any later version", you have the option of following the terms and -conditions either of that version or of any later version published by -the Free Software Foundation. If the Library does not specify a -license version number, you may choose any version ever published by -the Free Software Foundation. - - 14. If you wish to incorporate parts of the Library into other free -programs whose distribution conditions are incompatible with these, -write to the author to ask for permission. For software which is -copyrighted by the Free Software Foundation, write to the Free -Software Foundation; we sometimes make exceptions for this. Our -decision will be guided by the two goals of preserving the free status -of all derivatives of our free software and of promoting the sharing -and reuse of software generally. - - NO WARRANTY - - 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO -WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. -EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR -OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY -KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE -LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME -THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - - 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN -WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY -AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU -FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR -CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE -LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING -RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A -FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF -SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGES. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Libraries - - If you develop a new library, and you want it to be of the greatest -possible use to the public, we recommend making it free software that -everyone can redistribute and change. You can do so by permitting -redistribution under these terms (or, alternatively, under the terms of the -ordinary General Public License). - - To apply these terms, attach the following notices to the library. It is -safest to attach them to the start of each source file to most effectively -convey the exclusion of warranty; and each file should have at least the -"copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - -Also add information on how to contact you by electronic and paper mail. - -You should also get your employer (if you work as a programmer) or your -school, if any, to sign a "copyright disclaimer" for the library, if -necessary. Here is a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the - library `Frob' (a library for tweaking knobs) written by James Random Hacker. - - , 1 April 1990 - Ty Coon, President of Vice - -That's all there is to it! - - diff -Nru gtksourceview3-3.12.1/data/glade/Makefile.in gtksourceview3-3.14.4/data/glade/Makefile.in --- gtksourceview3-3.12.1/data/glade/Makefile.in 2014-04-14 20:10:39.000000000 +0000 +++ gtksourceview3-3.14.4/data/glade/Makefile.in 2015-04-04 12:42:52.000000000 +0000 @@ -1,4 +1,4 @@ -# Makefile.in generated by automake 1.13.4 from Makefile.am. +# Makefile.in generated by automake 1.14.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. @@ -85,7 +85,7 @@ $(top_srcdir)/m4/intltool.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ - $(top_srcdir)/configure.ac + $(top_srcdir)/m4/vapigen.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d @@ -183,7 +183,6 @@ GLADE_CFLAGS = @GLADE_CFLAGS@ GLADE_LIBS = @GLADE_LIBS@ GLIB_COMPILE_RESOURCES = @GLIB_COMPILE_RESOURCES@ -GLIB_GENMARSHAL = @GLIB_GENMARSHAL@ GLIB_MKENUMS = @GLIB_MKENUMS@ GLIB_PREFIX = @GLIB_PREFIX@ GMSGFMT = @GMSGFMT@ @@ -195,8 +194,6 @@ GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@ GTKDOC_MKPDF = @GTKDOC_MKPDF@ GTKDOC_REBASE = @GTKDOC_REBASE@ -GTK_MAC_CFLAGS = @GTK_MAC_CFLAGS@ -GTK_MAC_LIBS = @GTK_MAC_LIBS@ GTK_PREFIX = @GTK_PREFIX@ GTK_REQUIRED_VERSION = @GTK_REQUIRED_VERSION@ HTML_DIR = @HTML_DIR@ @@ -261,6 +258,9 @@ SHELL = @SHELL@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ +VAPIGEN = @VAPIGEN@ +VAPIGEN_MAKEFILE = @VAPIGEN_MAKEFILE@ +VAPIGEN_VAPIDIR = @VAPIGEN_VAPIDIR@ VERSION = @VERSION@ WARN_CFLAGS = @WARN_CFLAGS@ XGETTEXT = @XGETTEXT@ diff -Nru gtksourceview3-3.12.1/data/language-specs/automake.lang gtksourceview3-3.14.4/data/language-specs/automake.lang --- gtksourceview3-3.12.1/data/language-specs/automake.lang 2014-04-14 16:02:42.000000000 +0000 +++ gtksourceview3-3.14.4/data/language-specs/automake.lang 2015-02-15 20:04:28.000000000 +0000 @@ -147,7 +147,8 @@ (?:OMIT|TAGS)_DEPENDENCIES| (?:DIST_)?SUBDIRS| SUFFIXES| - TESTS(?:_ENVIRONMENT)?| + (?:AM_)?TESTS_ENVIRONMENT| + TESTS| TEXI2(?:DVI|PDF)| TEXINFO_TEX| VALAC diff -Nru gtksourceview3-3.12.1/data/language-specs/css.lang gtksourceview3-3.14.4/data/language-specs/css.lang --- gtksourceview3-3.12.1/data/language-specs/css.lang 2014-04-14 16:02:42.000000000 +0000 +++ gtksourceview3-3.14.4/data/language-specs/css.lang 2015-02-15 20:04:28.000000000 +0000 @@ -168,6 +168,8 @@ background-repeat background border-bottom-color + border-bottom-left-radius + border-bottom-right-radius border-bottom-style border-bottom-width border-bottom @@ -177,6 +179,7 @@ border-left-style border-left-width border-left + border-radius border-right-color border-right-style border-right-width @@ -184,6 +187,8 @@ border-spacing border-style border-top-color + border-top-left-radius + border-top-right-radius border-top-style border-top-width border-top @@ -298,6 +303,7 @@ block bolder bold + both bottom capitalize center-left diff -Nru gtksourceview3-3.12.1/data/language-specs/d.lang gtksourceview3-3.14.4/data/language-specs/d.lang --- gtksourceview3-3.12.1/data/language-specs/d.lang 2014-04-14 16:02:42.000000000 +0000 +++ gtksourceview3-3.14.4/data/language-specs/d.lang 2015-02-15 20:04:28.000000000 +0000 @@ -25,7 +25,7 @@ D Language specification Reference: - http://www.digitalmars.com/d/lex.html + http://dlang.org/type.html --> @@ -146,6 +146,7 @@ private protected public + ref return scope super @@ -162,6 +163,7 @@ with + lazy pure nothrow @@ -190,8 +192,10 @@ long module package + ptrdiff_t real short + size_t struct template typedef @@ -213,15 +217,24 @@ __gshared + __traits + __vector + __parameters shared + string + dstring + wstring immutable #line + __DATE__ __FILE__ + __FUNCTION__ __LINE__ - __DATE__ + __MODULE__ + __PRETTY_FUNCTION__ __TIME__ __TIMESTAMP__ __VENDOR__ diff -Nru gtksourceview3-3.12.1/data/language-specs/fortran.lang gtksourceview3-3.14.4/data/language-specs/fortran.lang --- gtksourceview3-3.12.1/data/language-specs/fortran.lang 2014-04-14 16:02:42.000000000 +0000 +++ gtksourceview3-3.14.4/data/language-specs/fortran.lang 2015-04-04 12:06:57.000000000 +0000 @@ -25,27 +25,99 @@ text/x-fortran - *.f;*.f90;*.f95;*.for + *.f;*.f90;*.f95;*.for;*.F;*.F90 ! + + + Hi there! + + diff -Nru gtksourceview3-3.12.1/tests/syntax-highlighting/file.ijm gtksourceview3-3.14.4/tests/syntax-highlighting/file.ijm --- gtksourceview3-3.12.1/tests/syntax-highlighting/file.ijm 1970-01-01 00:00:00.000000000 +0000 +++ gtksourceview3-3.14.4/tests/syntax-highlighting/file.ijm 2015-02-15 20:04:28.000000000 +0000 @@ -0,0 +1,11 @@ +// line comment +var variable = "string\n with \t escaped\"characters"; +macro "new macro" { + NotGlobalVar = 5 +6; + result = getPixel(0, 0); + run("8-bit"); +} +function NewFunction() { + /* + multiline comment*/ +} diff -Nru gtksourceview3-3.12.1/tests/syntax-highlighting/file.impl gtksourceview3-3.14.4/tests/syntax-highlighting/file.impl --- gtksourceview3-3.12.1/tests/syntax-highlighting/file.impl 1970-01-01 00:00:00.000000000 +0000 +++ gtksourceview3-3.14.4/tests/syntax-highlighting/file.impl 2015-02-15 20:04:28.000000000 +0000 @@ -0,0 +1,11 @@ +-- Opal test +IMPLEMENTATION LeapYear + +IMPORT Nat COMPLETELY + +DEF leapYear(year) == + IF (year % ("400"!) = 0) THEN true + IF (year % ("400"!) |= 0) and (year % 100 = 0) THEN false + IF (year % 100 |= 0) and (year % 4 = 0) THEN true + IF (year % 4 |= 0) THEN false + FI diff -Nru gtksourceview3-3.12.1/tests/syntax-highlighting/file.ini gtksourceview3-3.14.4/tests/syntax-highlighting/file.ini --- gtksourceview3-3.12.1/tests/syntax-highlighting/file.ini 1970-01-01 00:00:00.000000000 +0000 +++ gtksourceview3-3.14.4/tests/syntax-highlighting/file.ini 2015-02-15 20:04:28.000000000 +0000 @@ -0,0 +1,11 @@ +[module] +type=Python +file=simple.py +version=1.0 +[plugin] +id=APlugin +_name=A Plugin +_description=A plugin +author=Some Guy +; this is a plugin version, can be anything +version=3.1415926 diff -Nru gtksourceview3-3.12.1/tests/syntax-highlighting/file.json gtksourceview3-3.14.4/tests/syntax-highlighting/file.json --- gtksourceview3-3.12.1/tests/syntax-highlighting/file.json 1970-01-01 00:00:00.000000000 +0000 +++ gtksourceview3-3.14.4/tests/syntax-highlighting/file.json 2015-02-15 20:04:28.000000000 +0000 @@ -0,0 +1,12 @@ +{ + "hi": -1.1e1, "b": 2, + "abc": "hi", + "dce": [ + 1.2, 2e10, -3, + 1, 2, + "string" + ], + "fgh": { + "a": 1 + } +} diff -Nru gtksourceview3-3.12.1/tests/syntax-highlighting/file.la gtksourceview3-3.14.4/tests/syntax-highlighting/file.la --- gtksourceview3-3.12.1/tests/syntax-highlighting/file.la 1970-01-01 00:00:00.000000000 +0000 +++ gtksourceview3-3.14.4/tests/syntax-highlighting/file.la 2015-02-15 20:04:28.000000000 +0000 @@ -0,0 +1,36 @@ +# moo.la - a libtool library file +# Generated by ltmain.sh - GNU libtool 1.5.22 Debian 1.5.22-4 (1.1220.2.365 2005/12/18 22:14:06) +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# The name that we can dlopen(3). +dlname='moo.so' + +# Names of this library. +library_names='moo.so moo.so moo.so' + +# The name of the static archive. +old_library='' + +# Libraries that this one depends upon. +dependency_libs=' -L/usr/local/gtk/lib /home/muntyan/projects/gtk/build/moo/moo/libmoo.la -lutil /usr/local/gtk/lib/libgtk-x11-2.0.la -lXext -lXinerama -lXrandr -lXcursor -lXfixes /usr/local/gtk/lib/libgdk-x11-2.0.la -latk-1.0 /usr/local/gtk/lib/libgdk_pixbuf-2.0.la /usr/local/gtk/lib/libpangocairo-1.0.la /usr/local/gtk/lib/libpangoft2-1.0.la /usr/local/gtk/lib/libpango-1.0.la /usr/local/gtk/lib/libcairo.la -lfreetype -lz -lfontconfig -lpng12 -lXrender -lX11 -lm /usr/local/gtk/lib/libgobject-2.0.la /usr/local/gtk/lib/libgmodule-2.0.la -ldl /usr/local/gtk/lib/libgthread-2.0.la -lpthread /usr/local/gtk/lib/libglib-2.0.la -lrt -lpcre /usr/lib/gcc/i486-linux-gnu/4.1.2/../../..//libfam.la -lrpcsvc /usr/lib/gcc/i486-linux-gnu/4.1.2/../../..//libxml2.la -L/usr/lib/python2.4 -lpython2.4 ' + +# Version information for moo. +current=0 +age=0 +revision=0 + +# Is this an already installed library? +installed=no + +# Should we warn about portability when linking against -modules? +shouldnotlink=yes + +# Files to dlopen/dlpreopen +dlopen='' +dlpreopen='' + +# Directory that this library needs to be installed in: +libdir='/usr/local/gtk/lib/python2.4/site-packages' +relink_command="(cd /home/muntyan/projects/gtk/build/moo/moo; /bin/sh ../libtool --tag=CC --mode=relink gcc -g -L/usr/local/gtk/lib -o moo.la -rpath /usr/local/gtk/lib/python2.4/site-packages -no-undefined -module -avoid-version -export-symbols-regex initmoo moopython/libmoomod.la libmoo.la -lutil -L/usr/local/gtk/lib -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lm -lpangocairo-1.0 -lpango-1.0 -lcairo -lgobject-2.0 -lgmodule-2.0 -ldl -lglib-2.0 -pthread -L/usr/local/gtk/lib -lgthread-2.0 -lglib-2.0 -lpcre -lfam -lxml2 -L/usr/lib/python2.4 -lpython2.4 @inst_prefix_dir@)" diff -Nru gtksourceview3-3.12.1/tests/syntax-highlighting/file.ll gtksourceview3-3.14.4/tests/syntax-highlighting/file.ll --- gtksourceview3-3.12.1/tests/syntax-highlighting/file.ll 1970-01-01 00:00:00.000000000 +0000 +++ gtksourceview3-3.14.4/tests/syntax-highlighting/file.ll 2015-02-15 20:04:28.000000000 +0000 @@ -0,0 +1,18 @@ +; LLVM intermediate representation +; Run with: llc file.ll && gcc file.s && ./a.out + +@str = internal constant [4 x i8] c"%d\0A\00" + +declare i32 @printf(i8*, ...) + +define i32 @main() { + ; Print a secret number on the screen + %1 = select i1 true, float 0x402ABD70A0000000, float 0xC0FFEE0000000000 + %2 = fpext float %1 to double + %3 = fmul double %2, 1.000000e+02 + %4 = fptoui double %3 to i32 + %5 = add i32 %4, 1 + ; Call printf + call i32 (i8*, ...)* @printf(i8* getelementptr inbounds ([4 x i8]* @str, i32 0, i32 0), i32 %5) + ret i32 0 +} diff -Nru gtksourceview3-3.12.1/tests/syntax-highlighting/file.m gtksourceview3-3.14.4/tests/syntax-highlighting/file.m --- gtksourceview3-3.12.1/tests/syntax-highlighting/file.m 1970-01-01 00:00:00.000000000 +0000 +++ gtksourceview3-3.14.4/tests/syntax-highlighting/file.m 2015-02-15 20:04:28.000000000 +0000 @@ -0,0 +1,21 @@ +#import +#import +@interface Lalala : Object +- (BOOL) sayHello; +@end + +@implementation Lalala : Object +- (BOOL) sayHello +{ + printf ("Hello there!\n"); + return YES; +} +@end + +int main (void) +{ + Lalala *obj = [[Lalala alloc] init]; + [obj sayHello]; + [obj free]; + return 0; +} diff -Nru gtksourceview3-3.12.1/tests/syntax-highlighting/file.m4 gtksourceview3-3.14.4/tests/syntax-highlighting/file.m4 --- gtksourceview3-3.12.1/tests/syntax-highlighting/file.m4 1970-01-01 00:00:00.000000000 +0000 +++ gtksourceview3-3.14.4/tests/syntax-highlighting/file.m4 2015-02-15 20:04:28.000000000 +0000 @@ -0,0 +1,4 @@ +dnl an m4 file +AC_DEFINE([foo],[echo "Hi there!"]) +AC_CHECK_FUNC([foo],[yes=yes],[yes=no]) +foo() diff -Nru gtksourceview3-3.12.1/tests/syntax-highlighting/file.octave gtksourceview3-3.14.4/tests/syntax-highlighting/file.octave --- gtksourceview3-3.12.1/tests/syntax-highlighting/file.octave 1970-01-01 00:00:00.000000000 +0000 +++ gtksourceview3-3.14.4/tests/syntax-highlighting/file.octave 2015-02-15 20:04:28.000000000 +0000 @@ -0,0 +1,3 @@ +% gtk-source-lang: octave +% -*- octave -*- +No idea what syntax is diff -Nru gtksourceview3-3.12.1/tests/syntax-highlighting/file.ooc gtksourceview3-3.14.4/tests/syntax-highlighting/file.ooc --- gtksourceview3-3.12.1/tests/syntax-highlighting/file.ooc 1970-01-01 00:00:00.000000000 +0000 +++ gtksourceview3-3.14.4/tests/syntax-highlighting/file.ooc 2015-02-15 20:04:28.000000000 +0000 @@ -0,0 +1,10 @@ +import structs/[ArrayList, LinkedList], io/FileReader +include stdarg, memory, string +use sdl, gtk +pi := const 3.14 +Int: cover from int { + toString: func -> String { "%d" format() } +} +Dog: class extends Animal { + barf: func { ("woof! " * 2) println() } +} diff -Nru gtksourceview3-3.12.1/tests/syntax-highlighting/file.pc gtksourceview3-3.14.4/tests/syntax-highlighting/file.pc --- gtksourceview3-3.12.1/tests/syntax-highlighting/file.pc 1970-01-01 00:00:00.000000000 +0000 +++ gtksourceview3-3.14.4/tests/syntax-highlighting/file.pc 2015-02-15 20:04:28.000000000 +0000 @@ -0,0 +1,14 @@ +# A comment +prefix=/usr +exec_prefix= +libdir=/lib +includedir=/include + +Name: cairo +Description: Multi-platform 2D graphics library +Version: 1.4.10 + +Requires.private: freetype2 >= 8.0.2 fontconfig libpng12 xrender >= 0.6 x11 +Libs: -L -lcairo +Libs.private: -lz -lm +Cflags: -I/cairo diff -Nru gtksourceview3-3.12.1/tests/syntax-highlighting/file.pl gtksourceview3-3.14.4/tests/syntax-highlighting/file.pl --- gtksourceview3-3.12.1/tests/syntax-highlighting/file.pl 1970-01-01 00:00:00.000000000 +0000 +++ gtksourceview3-3.14.4/tests/syntax-highlighting/file.pl 2015-02-15 20:04:28.000000000 +0000 @@ -0,0 +1,110 @@ +#!/usr/bin/perl -- # -*- Perl -*- +# +# : collateindex.pl,v 1.10 2004/10/24 17:05:41 petere78 Exp $ + +print OUT "\n\n" if ; + + = {}; # the last indexterm we processed + = 1; # this is the first one + = ""; # we're not in a group yet + = ""; # we've not put anything out yet +@seealsos = (); # See also stack. + +# Termcount is > 0 iff some entries were skipped. + || print STDERR " entries ignored...\n"; + +&end_entry(); + +print OUT "\n" if ; +print OUT "\n"; + +close (OUT); + + || print STDERR "Done.\n"; + +sub same { + my() = shift; + my() = shift; + + my() = ->{'psortas'} || ->{'primary'}; + my() = ->{'ssortas'} || ->{'secondary'}; + my() = ->{'tsortas'} || ->{'tertiary'}; + + my() = ->{'psortas'} || ->{'primary'}; + my() = ->{'ssortas'} || ->{'secondary'}; + my() = ->{'tsortas'} || ->{'tertiary'}; + + my(); + + =~ s/^\s*//; =~ s/\s*$//; = uc(); + =~ s/^\s*//; =~ s/\s*$//; = uc(); + =~ s/^\s*//; =~ s/\s*$//; = uc(); + =~ s/^\s*//; =~ s/\s*$//; = uc(); + =~ s/^\s*//; =~ s/\s*$//; = uc(); + =~ s/^\s*//; =~ s/\s*$//; = uc(); + +# print "[]=[]\n"; +# print "[]=[]\n"; +# print "[]=[]\n"; + + # Two index terms are the same if: + # 1. the primary, secondary, and tertiary entries are the same + # (or have the same SORTAS) + # AND + # 2. They occur in the same titled section + # AND + # 3. They point to the same place + # + # Notes: Scope is used to suppress some entries, but can't be used + # for comparing duplicates. + # Interpretation of "the same place" depends on whether or + # not is true. + + = (( eq ) + && ( eq ) + && ( eq ) + && (->{'title'} eq ->{'title'}) + && (->{'href'} eq ->{'href'})); + + # If we're linking to points, they're only the same if they link + # to exactly the same spot. + = && (->{'hrefpoint'} eq ->{'hrefpoint'}) + if ; + + if () { + warn ": duplicated index entry found: \n"; + } + + ; +} + +sub tsame { + # Unlike same(), tsame only compares a single term + my() = shift; + my() = shift; + my() = shift; + my() = substr(, 0, 1) . "sortas"; + my(, ); + + = ->{} || ->{}; + = ->{} || ->{}; + + =~ s/^\s*//; =~ s/\s*$//; = uc(); + =~ s/^\s*//; =~ s/\s*$//; = uc(); + + return eq ; +} + +=head1 EXAMPLE +B B<-o> F F +=head1 EXIT STATUS +=over 5 +=item B<0> +Success +=item B<1> +Failure +=back +=head1 AUTHOR +Norm Walsh Endw@nwalsh.comE +Minor updates by Adam Di Carlo Eadam@onshore.comE and Peter Eisentraut Epeter_e@gmx.netE +=cut diff -Nru gtksourceview3-3.12.1/tests/syntax-highlighting/file.po gtksourceview3-3.14.4/tests/syntax-highlighting/file.po --- gtksourceview3-3.12.1/tests/syntax-highlighting/file.po 1970-01-01 00:00:00.000000000 +0000 +++ gtksourceview3-3.14.4/tests/syntax-highlighting/file.po 2015-02-15 20:04:28.000000000 +0000 @@ -0,0 +1,24 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2006-12-17 09:49-0600\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../medit/medit.desktop.in.h:1 +msgid "Text editor" +msgstr "" + +#: ../medit/medit.desktop.in.h:2 +msgid "medit" +msgstr "" diff -Nru gtksourceview3-3.12.1/tests/syntax-highlighting/file.prg gtksourceview3-3.14.4/tests/syntax-highlighting/file.prg --- gtksourceview3-3.12.1/tests/syntax-highlighting/file.prg 1970-01-01 00:00:00.000000000 +0000 +++ gtksourceview3-3.14.4/tests/syntax-highlighting/file.prg 2015-02-15 20:04:28.000000000 +0000 @@ -0,0 +1,28 @@ +import "mod_say" +import "mod_rand" +import "mod_screen" +import "mod_video" +import "mod_map" +import "mod_key" + +// Bouncing box example +process main() +private + int vx=5, vy=5; + +begin + set_mode(640, 480, 16, MODE_WINDOW); + graph = map_new(20, 20, 16); + map_clear(0, graph, rgb(255, 0, 0)); + x = 320; y = 240; + while(! key(_esc)) + if(x > 630 || x < 10) + vx = -vx; + end; + if(y > 470 || y < 10) + vy = -vy; + end; + x += vx; y += vy; // Move the box + frame; + end; +end; diff -Nru gtksourceview3-3.12.1/tests/syntax-highlighting/file.prolog gtksourceview3-3.14.4/tests/syntax-highlighting/file.prolog --- gtksourceview3-3.12.1/tests/syntax-highlighting/file.prolog 1970-01-01 00:00:00.000000000 +0000 +++ gtksourceview3-3.14.4/tests/syntax-highlighting/file.prolog 2015-02-15 20:04:28.000000000 +0000 @@ -0,0 +1,3 @@ +conc([],X,X). +conc([Car|Cdr], X, [Car|ConcatCdr]):- + conc(Cdr, X, ConcatCdr). diff -Nru gtksourceview3-3.12.1/tests/syntax-highlighting/file.py gtksourceview3-3.14.4/tests/syntax-highlighting/file.py --- gtksourceview3-3.12.1/tests/syntax-highlighting/file.py 1970-01-01 00:00:00.000000000 +0000 +++ gtksourceview3-3.14.4/tests/syntax-highlighting/file.py 2015-02-15 20:04:28.000000000 +0000 @@ -0,0 +1,9 @@ +import sys +from sys import * +class Hello(object): + def __init__(self): + object.__init__(self) + def hello(self): + print >> sys.stderr, "Hi there!" + None, True, False +Hello().hello() diff -Nru gtksourceview3-3.12.1/tests/syntax-highlighting/file.Rnw gtksourceview3-3.14.4/tests/syntax-highlighting/file.Rnw --- gtksourceview3-3.12.1/tests/syntax-highlighting/file.Rnw 1970-01-01 00:00:00.000000000 +0000 +++ gtksourceview3-3.14.4/tests/syntax-highlighting/file.Rnw 2015-02-15 20:04:28.000000000 +0000 @@ -0,0 +1,15 @@ +\documentclass{article} +\begin{document} +Hi there! +<>= + # Say hello + hello <- setClass("hello", slots = c(a="character", b="character")) + sayHi <- hello(a="Hello", b="World") + paste(sayHi@a, sayHi@b) + rm(hello) + + hello <- list() + hello <- sayHi@a +@ +Hi again! +\end{document} diff -Nru gtksourceview3-3.12.1/tests/syntax-highlighting/file.rq gtksourceview3-3.14.4/tests/syntax-highlighting/file.rq --- gtksourceview3-3.12.1/tests/syntax-highlighting/file.rq 1970-01-01 00:00:00.000000000 +0000 +++ gtksourceview3-3.14.4/tests/syntax-highlighting/file.rq 2015-02-15 20:04:28.000000000 +0000 @@ -0,0 +1,9 @@ +# Positive test: product of type promotion within the xsd:decimal type tree. + +PREFIX t: +PREFIX rdf: +PREFIX xsd: +ASK + WHERE { t:double1 rdf:value ?l . + t:float1 rdf:value ?r . + FILTER ( datatype(?l + ?r) = xsd:double ) } diff -Nru gtksourceview3-3.12.1/tests/syntax-highlighting/file.sci gtksourceview3-3.14.4/tests/syntax-highlighting/file.sci --- gtksourceview3-3.12.1/tests/syntax-highlighting/file.sci 1970-01-01 00:00:00.000000000 +0000 +++ gtksourceview3-3.14.4/tests/syntax-highlighting/file.sci 2015-02-15 20:04:28.000000000 +0000 @@ -0,0 +1,14 @@ +// A comment with whites and tabulations +// Scilab editor: http://www.scilab.org/ + +function [a, b] = myfunction(d, e, f) + a = 2.71828 + %pi + f($, :); + b = cos(a) + cosh(a); + if d == e then + b = 10 - e.field; + else + b = " test " + home + return + end + myvar = 1.23e-45; +endfunction diff -Nru gtksourceview3-3.12.1/tests/syntax-highlighting/file.sh gtksourceview3-3.14.4/tests/syntax-highlighting/file.sh --- gtksourceview3-3.12.1/tests/syntax-highlighting/file.sh 1970-01-01 00:00:00.000000000 +0000 +++ gtksourceview3-3.14.4/tests/syntax-highlighting/file.sh 2015-02-15 20:04:28.000000000 +0000 @@ -0,0 +1,2 @@ +#!/bin/bash +echo "Hi there!" diff -Nru gtksourceview3-3.12.1/tests/syntax-highlighting/file.spec gtksourceview3-3.14.4/tests/syntax-highlighting/file.spec --- gtksourceview3-3.12.1/tests/syntax-highlighting/file.spec 1970-01-01 00:00:00.000000000 +0000 +++ gtksourceview3-3.14.4/tests/syntax-highlighting/file.spec 2015-02-15 20:04:28.000000000 +0000 @@ -0,0 +1,105 @@ +# +# gtksourceview.spec +# + +%define api_version 1.0 +%define lib_major 0 +%define lib_name %mklibname %{name}- %{api_version} %{lib_major} + +Summary: Source code viewing library +Name: gtksourceview +Version: 1.7.2 +Release: %mkrel 1 +License: GPL +Group: Editors +URL: http://people.ecsc.co.uk/~matt/downloads/rpms/gtksourceview/ +Source0: ftp://ftp.gnome.org/pub/GNOME/sources/%{name}/%{name}-%{version}.tar.bz2 +BuildRoot: %{_tmppath}/%{name}-%{version} +BuildRequires: libgtk+2-devel >= 2.3.0 +BuildRequires: libgnome-vfs2-devel >= 2.2.0 +BuildRequires: libgnomeprintui-devel >= 2.7.0 +BuildRequires: perl-XML-Parser +Conflicts: gtksourceview-sharp <= 0.5-3mdk + +%description +GtkSourceview is a library that adds syntax highlighting, +line numbers, and other programming-editor features. +GtkSourceView specializes these features for a code editor. + +%package -n %{lib_name} +Summary: Source code viewing library +Group: Editors +Requires: %{name} >= %{version}-%{release} +Provides: lib%{name} = %{version}-%{release} +Provides: libgtksourceview0 = %{version}-%{release} +Obsoletes: libgtksourceview0 +Provides: libgtksourceview1.0 = %{version}-%{release} +Obsoletes: libgtksourceview1.0 + +%description -n %{lib_name} +GtkSourceview is a library that adds syntax highlighting, +line numbers, and other programming-editor features. +GtkSourceView specializes these features for a code editor. + +%package -n %{lib_name}-devel +Summary: Libraries and include files for GtkSourceView +Group: Development/GNOME and GTK+ +Requires: %{lib_name} = %{version} +Provides: %{name}-devel = %{version}-%{release} +Provides: lib%{name}-devel = %{version}-%{release} +Provides: lib%{name}-%{api_version}-devel = %{version}-%{release} +Provides: libgtksourceview0-devel = %{version}-%{release} +Obsoletes: libgtksourceview0-devel +Provides: libgtksourceview1.0-devel = %{version}-%{release} +Obsoletes: libgtksourceview1.0-devel + +%description -n %{lib_name}-devel +GtkSourceView development files + + +%prep +%setup -q + +%build + +%configure2_5x + +%make + +%install +rm -rf %{buildroot} + +%makeinstall_std + +%{find_lang} %{name}-%{api_version} + +%post -n %{lib_name} -p /sbin/ldconfig + +%postun -n %{lib_name} -p /sbin/ldconfig + +%clean +rm -rf %{buildroot} + +%files -f %{name}-%{api_version}.lang +%defattr(-,root,root) +%doc AUTHORS ChangeLog NEWS README TODO +%{_datadir}/gtksourceview-%{api_version} + +%files -n %{lib_name} +%defattr(-,root,root) +%{_libdir}/*.so.* + +%files -n %{lib_name}-devel +%defattr(-,root,root) +%doc %{_datadir}/gtk-doc/html/gtksourceview +%{_libdir}/*.so +%attr(644,root,root) %{_libdir}/*.la +%{_includedir}/* +%{_libdir}/pkgconfig/* + +%changelog +* Tue Aug 08 2006 Götz Waschk 1.7.2-1mdv2007.0 +- New release 1.7.2 + +* Tue Jul 25 2006 Götz Waschk 1.7.1-1mdk +- New release 1.7.1 diff -Nru gtksourceview3-3.12.1/tests/syntax-highlighting/file.svh gtksourceview3-3.14.4/tests/syntax-highlighting/file.svh --- gtksourceview3-3.12.1/tests/syntax-highlighting/file.svh 1970-01-01 00:00:00.000000000 +0000 +++ gtksourceview3-3.14.4/tests/syntax-highlighting/file.svh 2015-02-15 20:04:28.000000000 +0000 @@ -0,0 +1,46 @@ +class my_class extends some_class; + + // This is a comment. + /* This is also a comment, but it containts keywords: bit string, etc */ + + // Some types. + string my_string = "This is a string"; + bit [3:0] my_bits = 4'b0z1x; + integer my_integer = 32'h0z2ab43x; + real my_real = 1.2124155e-123; + shortreal my_shortreal = -0.1111e1; + int my_int = 53152462; + + extern function bit + my_function( + int unsigned something); + +endclass : my_class + +function bit + my_class::my_function( + int unsigned something); + + /* Display a string. + * + * This is a slightly awkward string as it has + * special characters and line continuations. + */ + ("Display a string that continues over multiple lines and contains special characters: \n \t \" \'"); + + // Use a system task. + my_int = (my_bits); + + // (); // Commenting a system task. + // my_function(); // Commenting a function. + +endfunction my_function + +program test(); + + my_class c; + + c = new(); + c.my_function(3); + +endprogram : test diff -Nru gtksourceview3-3.12.1/tests/syntax-highlighting/file.t2t gtksourceview3-3.14.4/tests/syntax-highlighting/file.t2t --- gtksourceview3-3.12.1/tests/syntax-highlighting/file.t2t 1970-01-01 00:00:00.000000000 +0000 +++ gtksourceview3-3.14.4/tests/syntax-highlighting/file.t2t 2015-02-15 20:04:28.000000000 +0000 @@ -0,0 +1,8 @@ +! gtk-source-lang: t2t + +%!include ``something`` +% Comment +``verbatim`` //italic// +``` +verbatim block +``` diff -Nru gtksourceview3-3.12.1/tests/syntax-highlighting/file.testv1 gtksourceview3-3.14.4/tests/syntax-highlighting/file.testv1 --- gtksourceview3-3.12.1/tests/syntax-highlighting/file.testv1 1970-01-01 00:00:00.000000000 +0000 +++ gtksourceview3-3.14.4/tests/syntax-highlighting/file.testv1 2015-02-15 20:04:28.000000000 +0000 @@ -0,0 +1,9 @@ +// gtk-source-lang: testv1 +// comment +/* comment! */ +"A string" +'And a string too' +bambom - keyword, Others +bumbam - keyword, Others2 +kwkw - keyword, Keyword +Numbers: 0.1 1234 0233 diff -Nru gtksourceview3-3.12.1/tests/syntax-highlighting/file.tex gtksourceview3-3.14.4/tests/syntax-highlighting/file.tex --- gtksourceview3-3.12.1/tests/syntax-highlighting/file.tex 1970-01-01 00:00:00.000000000 +0000 +++ gtksourceview3-3.14.4/tests/syntax-highlighting/file.tex 2015-02-15 20:04:28.000000000 +0000 @@ -0,0 +1,4 @@ +\documentclass{article} +\begin{document} +Hi there! +\end{document} diff -Nru gtksourceview3-3.12.1/tests/syntax-highlighting/file.texi gtksourceview3-3.14.4/tests/syntax-highlighting/file.texi --- gtksourceview3-3.12.1/tests/syntax-highlighting/file.texi 1970-01-01 00:00:00.000000000 +0000 +++ gtksourceview3-3.14.4/tests/syntax-highlighting/file.texi 2015-02-15 20:04:28.000000000 +0000 @@ -0,0 +1,51 @@ +\input texinfo +@setfilename manual +@settitle manual + +@titlepage +@title manual + +@c The following two commands start the copyright page. +@page +@vskip 0pt plus 1filll +@insertcopying +@end titlepage + +@c Output the table of contents at the beginning. +@contents + +@ifnottex +@node Top +@top manual +@insertcopying +@end ifnottex + +@menu +* MooScript:: MooScript - builtin scripting language. +* Index:: Index. +@end menu + +@node MooScript +@chapter MooScript + +@cindex chapter, first + +This is the first chapter. +@cindex index entry, another + +Here is a numbered list. + +@enumerate +@item +This is the first item. + +@item +This is the second item. +@end enumerate + +@node Index +@unnumbered Index + +@printindex cp + +@bye diff -Nru gtksourceview3-3.12.1/tests/syntax-highlighting/file.xml gtksourceview3-3.14.4/tests/syntax-highlighting/file.xml --- gtksourceview3-3.12.1/tests/syntax-highlighting/file.xml 1970-01-01 00:00:00.000000000 +0000 +++ gtksourceview3-3.14.4/tests/syntax-highlighting/file.xml 2015-02-15 20:04:28.000000000 +0000 @@ -0,0 +1,4 @@ + + + momomomo + diff -Nru gtksourceview3-3.12.1/tests/syntax-highlighting/file.y gtksourceview3-3.14.4/tests/syntax-highlighting/file.y --- gtksourceview3-3.12.1/tests/syntax-highlighting/file.y 1970-01-01 00:00:00.000000000 +0000 +++ gtksourceview3-3.14.4/tests/syntax-highlighting/file.y 2015-04-04 12:06:57.000000000 +0000 @@ -0,0 +1,58 @@ +%{ +#include +#define FOO_BAR(x,y) printf ("x, y") +%} + +%name-prefix="foolala" +%error-verbose +%lex-param {FooLaLa *lala} +%parse-param {FooLaLa *lala} +/* %expect 1 */ + +%union { + int ival; + const char *str; +} + +%token ATOKEN +%token ATOKEN2 + +%type program stmt +%type if_stmt + +%token IF THEN ELSE ELIF FI +%token WHILE DO OD FOR IN +%token CONTINUE BREAK RETURN +%token EQ NEQ LE GE +%token AND OR NOT +%token UMINUS +%token TWODOTS + +%left '-' '+' +%left '*' '/' +%left '%' +%left EQ NEQ '<' '>' GE LE +%left OR +%left AND +%left NOT +%left '#' +%left UMINUS + +%% + +script: program { _ms_parser_set_top_node (parser, $1); } +; + +program: stmt_or_error { $$ = node_list_add (parser, NULL, $1); } + | program stmt_or_error { $$ = node_list_add (parser, MS_NODE_LIST ($1), $2); } +; + +stmt_or_error: + error ';' { $$ = NULL; } + | stmt ';' { $$ = ; } +; + +variable: IDENTIFIER { $$ = node_var (parser, $1); } +; + +%% diff -Nru gtksourceview3-3.12.1/tests/syntax-highlighting/gtkrc gtksourceview3-3.14.4/tests/syntax-highlighting/gtkrc --- gtksourceview3-3.12.1/tests/syntax-highlighting/gtkrc 1970-01-01 00:00:00.000000000 +0000 +++ gtksourceview3-3.14.4/tests/syntax-highlighting/gtkrc 2015-02-15 20:04:28.000000000 +0000 @@ -0,0 +1,9 @@ +# -- THEME AUTO-WRITTEN DO NOT EDIT +include "/usr/share/themes/Clearlooks/gtk-2.0/gtkrc" +style "user-font" +{ + font_name="Tahoma 11" +} +widget_class "*" style "user-font" +include "/home/muntyan/.gtkrc-2.0.mine" +# -- THEME AUTO-WRITTEN DO NOT EDIT diff -Nru gtksourceview3-3.12.1/tests/syntax-highlighting/Makefile gtksourceview3-3.14.4/tests/syntax-highlighting/Makefile --- gtksourceview3-3.12.1/tests/syntax-highlighting/Makefile 1970-01-01 00:00:00.000000000 +0000 +++ gtksourceview3-3.14.4/tests/syntax-highlighting/Makefile 2015-02-15 20:04:28.000000000 +0000 @@ -0,0 +1,4 @@ +all: foo bar +foo: hello ; $(MAKE) bar +bar: + echo "Hello world!" diff -Nru gtksourceview3-3.12.1/tests/syntax-highlighting/Makefile.am gtksourceview3-3.14.4/tests/syntax-highlighting/Makefile.am --- gtksourceview3-3.12.1/tests/syntax-highlighting/Makefile.am 1970-01-01 00:00:00.000000000 +0000 +++ gtksourceview3-3.14.4/tests/syntax-highlighting/Makefile.am 2015-02-15 20:04:28.000000000 +0000 @@ -0,0 +1,23 @@ +ACLOCAL_AMFLAGS = -I m4 + +EXTRA_DIST += README.W32 + +if HAVE_DOXYGEN + DOXYDIR = docs +endif + +doc_DATA = AUTHORS ChangeLog COPYING INSTALL NEWS README + +bin_PROGRAMS = jupiter +jupiter_SOURCES = main.c +jupiter_CPPFLAGS = -I$(top_srcdir)/common +jupiter_LDADD = ../common/libjupcommon.a + +check_SCRIPTS = greptest.sh +TESTS = $(check_SCRIPTS) + +greptest.sh: + echo './jupiter | grep "Hello from .*jupiter!"' > greptest.sh + chmod +x greptest.sh + +CLEANFILES = greptest.sh diff -Nru gtksourceview3-3.12.1/tests/syntax-highlighting/README gtksourceview3-3.14.4/tests/syntax-highlighting/README --- gtksourceview3-3.12.1/tests/syntax-highlighting/README 1970-01-01 00:00:00.000000000 +0000 +++ gtksourceview3-3.14.4/tests/syntax-highlighting/README 2015-02-15 20:04:28.000000000 +0000 @@ -0,0 +1,5 @@ +This directory contains test files for the syntax highlighting. +Open them to see if something broke. Kind of smoke test. + +If possible the file name should be "file.". +But there are exceptions: ChangeLog, Makefile, Makefile.am, etc. diff -Nru gtksourceview3-3.12.1/tests/test-buffer.c gtksourceview3-3.14.4/tests/test-buffer.c --- gtksourceview3-3.12.1/tests/test-buffer.c 2014-04-14 16:02:42.000000000 +0000 +++ gtksourceview3-3.14.4/tests/test-buffer.c 2015-04-04 12:06:57.000000000 +0000 @@ -43,8 +43,8 @@ static void test_get_buffer (void) { - GtkWidget* view; - GtkSourceBuffer* buffer; + GtkWidget *view; + GtkSourceBuffer *buffer; view = gtk_source_view_new (); @@ -113,20 +113,32 @@ static void do_test_change_case (GtkSourceBuffer *buffer, - GtkSourceChangeCaseType case_type, - const char *text, - const char *expected) + GtkSourceChangeCaseType case_type, + const gchar *text, + const gchar *expected) { - GtkTextIter start, end; - char *changed; + GtkTextIter start; + GtkTextIter end; + gchar *changed; + gchar *changed_normalized; + gchar *expected_normalized; gtk_text_buffer_set_text (GTK_TEXT_BUFFER (buffer), text, -1); + gtk_text_buffer_get_bounds (GTK_TEXT_BUFFER (buffer), &start, &end); gtk_source_buffer_change_case (buffer, case_type, &start, &end); + gtk_text_buffer_get_bounds (GTK_TEXT_BUFFER (buffer), &start, &end); changed = gtk_text_buffer_get_text (GTK_TEXT_BUFFER (buffer), &start, &end, TRUE); - g_assert_cmpstr (changed, ==, expected); + + changed_normalized = g_utf8_normalize (changed, -1, G_NORMALIZE_DEFAULT); + expected_normalized = g_utf8_normalize (expected, -1, G_NORMALIZE_DEFAULT); + + g_assert_cmpstr (changed_normalized, ==, expected_normalized); + g_free (changed); + g_free (changed_normalized); + g_free (expected_normalized); } static void @@ -141,6 +153,24 @@ do_test_change_case (buffer, GTK_SOURCE_CHANGE_CASE_TOGGLE, "some TEXT", "SOME text"); do_test_change_case (buffer, GTK_SOURCE_CHANGE_CASE_TITLE, "some TEXT", "Some Text"); + /* https://bugzilla.gnome.org/show_bug.cgi?id=416390 */ + do_test_change_case (buffer, GTK_SOURCE_CHANGE_CASE_LOWER, "T̈OME", "ẗome"); + do_test_change_case (buffer, GTK_SOURCE_CHANGE_CASE_UPPER, "ẗome", "T̈OME"); + do_test_change_case (buffer, GTK_SOURCE_CHANGE_CASE_TOGGLE, "ẗome", "T̈OME"); + do_test_change_case (buffer, GTK_SOURCE_CHANGE_CASE_TOGGLE, "T̈OME", "ẗome"); + do_test_change_case (buffer, GTK_SOURCE_CHANGE_CASE_TITLE, "ẗome", "T̈ome"); + + /* test g_unichar_totitle */ + do_test_change_case (buffer, GTK_SOURCE_CHANGE_CASE_LOWER, "\307\261adzíki", "\307\263adzíki"); + do_test_change_case (buffer, GTK_SOURCE_CHANGE_CASE_LOWER, "\307\262adzíki", "\307\263adzíki"); + do_test_change_case (buffer, GTK_SOURCE_CHANGE_CASE_LOWER, "\307\263adzíki", "\307\263adzíki"); + do_test_change_case (buffer, GTK_SOURCE_CHANGE_CASE_UPPER, "\307\263adzíki", "\307\261ADZÍKI"); + do_test_change_case (buffer, GTK_SOURCE_CHANGE_CASE_UPPER, "\307\262adzíki", "\307\261ADZÍKI"); + do_test_change_case (buffer, GTK_SOURCE_CHANGE_CASE_TOGGLE, "\307\263adzíki", "\307\261ADZÍKI"); + do_test_change_case (buffer, GTK_SOURCE_CHANGE_CASE_TITLE, "\307\263adzíki", "\307\262adzíki"); + do_test_change_case (buffer, GTK_SOURCE_CHANGE_CASE_TITLE, "\307\261ADZÍKI", "\307\262adzíki"); + do_test_change_case (buffer, GTK_SOURCE_CHANGE_CASE_TITLE, "\307\262ADZÍKI", "\307\262adzíki"); + g_object_unref (buffer); } diff -Nru gtksourceview3-3.12.1/tests/test-buffer-input-stream.c gtksourceview3-3.14.4/tests/test-buffer-input-stream.c --- gtksourceview3-3.12.1/tests/test-buffer-input-stream.c 1970-01-01 00:00:00.000000000 +0000 +++ gtksourceview3-3.14.4/tests/test-buffer-input-stream.c 2015-02-15 20:04:28.000000000 +0000 @@ -0,0 +1,154 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8; coding: utf-8 -*- */ +/* test-buffer-input-stream.c + * This file is part of GtkSourceView + * + * Copyright (C) 2010 - Ignacio Casal Quinteiro + * + * GtkSourceView is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * GtkSourceView is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include +#include +#include +#include +#include "gtksourceview/gtksourcebufferinputstream.h" + +static void +test_consecutive_read (const gchar *inbuf, + const gchar *outbuf, + GtkSourceNewlineType type, + gsize read_chunk_len) +{ + GtkTextBuffer *buf; + GtkSourceBufferInputStream *in; + gsize outlen; + gssize n, r; + GError *err = NULL; + gchar *b; + gboolean close; + + buf = gtk_text_buffer_new (NULL); + gtk_text_buffer_set_text (buf, inbuf, -1); + + b = g_malloc (200); + in = _gtk_source_buffer_input_stream_new (buf, type, TRUE); + + outlen = strlen (outbuf); + n = 0; + + do + { + r = g_input_stream_read (G_INPUT_STREAM (in), b + n, read_chunk_len, NULL, &err); + g_assert_cmpint (r, >=, 0); + g_assert_no_error (err); + + n += r; + } while (r != 0); + + g_assert_cmpint (n, ==, outlen); + + b[n] = '\0'; + + g_assert_cmpstr (b, ==, outbuf); + + close = g_input_stream_close (G_INPUT_STREAM (in), NULL, &err); + g_assert (close); + g_assert_no_error (err); + + g_object_unref (buf); + g_object_unref (in); + g_free (b); +} + +static void +test_empty (void) +{ + /* empty file should not have a trailing newline */ + test_consecutive_read ("", "", GTK_SOURCE_NEWLINE_TYPE_CR_LF, 10); +} + +static void +test_consecutive_cut_char (void) +{ + /* first \n is read then fo and then is added \r but not \n */ + test_consecutive_read ("\nfo\nbar\n\nblah\n", "\r\nfo\r\nbar\r\n\r\nblah\r\n\r\n", GTK_SOURCE_NEWLINE_TYPE_CR_LF, 8); + test_consecutive_read ("\nfo\nbar\n\nblah", "\r\nfo\r\nbar\r\n\r\nblah\r\n", GTK_SOURCE_NEWLINE_TYPE_CR_LF, 8); +} + +static void +test_consecutive_big_read (void) +{ + test_consecutive_read ("\nfo\nbar\n\nblah\n", "\rfo\rbar\r\rblah\r\r", GTK_SOURCE_NEWLINE_TYPE_CR, 200); + test_consecutive_read ("\nfo\nbar\n\nblah", "\rfo\rbar\r\rblah\r", GTK_SOURCE_NEWLINE_TYPE_CR, 200); + + test_consecutive_read ("\rfo\rbar\r\rblah\r", "\nfo\nbar\n\nblah\n\n", GTK_SOURCE_NEWLINE_TYPE_LF, 200); + test_consecutive_read ("\rfo\rbar\r\rblah", "\nfo\nbar\n\nblah\n", GTK_SOURCE_NEWLINE_TYPE_LF, 200); + + test_consecutive_read ("\r\nfo\r\nbar\r\n\r\nblah\r\n", "\nfo\nbar\n\nblah\n\n", GTK_SOURCE_NEWLINE_TYPE_LF, 200); + test_consecutive_read ("\r\nfo\r\nbar\r\n\r\nblah", "\nfo\nbar\n\nblah\n", GTK_SOURCE_NEWLINE_TYPE_LF, 200); + + test_consecutive_read ("\nfo\nbar\n\nblah\n", "\r\nfo\r\nbar\r\n\r\nblah\r\n\r\n", GTK_SOURCE_NEWLINE_TYPE_CR_LF, 200); + test_consecutive_read ("\nfo\nbar\n\nblah", "\r\nfo\r\nbar\r\n\r\nblah\r\n", GTK_SOURCE_NEWLINE_TYPE_CR_LF, 200); +} + +static void +test_consecutive_middle_read (void) +{ + test_consecutive_read ("\nfo\nbar\n\nblah\n", "\rfo\rbar\r\rblah\r\r", GTK_SOURCE_NEWLINE_TYPE_CR, 6); + test_consecutive_read ("\nfo\nbar\n\nblah", "\rfo\rbar\r\rblah\r", GTK_SOURCE_NEWLINE_TYPE_CR, 6); + + test_consecutive_read ("\rfo\rbar\r\rblah\r", "\nfo\nbar\n\nblah\n\n", GTK_SOURCE_NEWLINE_TYPE_LF, 6); + test_consecutive_read ("\rfo\rbar\r\rblah", "\nfo\nbar\n\nblah\n", GTK_SOURCE_NEWLINE_TYPE_LF, 6); + + test_consecutive_read ("\r\nfo\r\nbar\r\n\r\nblah\r\n", "\nfo\nbar\n\nblah\n\n", GTK_SOURCE_NEWLINE_TYPE_LF, 6); + test_consecutive_read ("\r\nfo\r\nbar\r\n\r\nblah", "\nfo\nbar\n\nblah\n", GTK_SOURCE_NEWLINE_TYPE_LF, 6); + + test_consecutive_read ("\nfo\nbar\n\nblah\n", "\r\nfo\r\nbar\r\n\r\nblah\r\n\r\n", GTK_SOURCE_NEWLINE_TYPE_CR_LF, 6); + test_consecutive_read ("\nfo\nbar\n\nblah", "\r\nfo\r\nbar\r\n\r\nblah\r\n", GTK_SOURCE_NEWLINE_TYPE_CR_LF, 6); +} + +static void +test_consecutive_multibyte_cut (void) +{ + test_consecutive_read ("hello\nhello\xe6\x96\x87\nworld\n", "hello\rhello\xe6\x96\x87\rworld\r\r", GTK_SOURCE_NEWLINE_TYPE_CR, 6); + test_consecutive_read ("hello\rhello\xe6\x96\x87\rworld\r", "hello\rhello\xe6\x96\x87\rworld\r\r", GTK_SOURCE_NEWLINE_TYPE_CR, 6); + test_consecutive_read ("hello\nhello\xe6\x96\x87\nworld\n", "hello\nhello\xe6\x96\x87\nworld\n\n", GTK_SOURCE_NEWLINE_TYPE_LF, 6); +} + +static void +test_consecutive_multibyte_big_read (void) +{ + test_consecutive_read ("hello\nhello\xe6\x96\x87\nworld\n", "hello\rhello\xe6\x96\x87\rworld\r\r", GTK_SOURCE_NEWLINE_TYPE_CR, 200); + test_consecutive_read ("hello\rhello\xe6\x96\x87\rworld\r", "hello\rhello\xe6\x96\x87\rworld\r\r", GTK_SOURCE_NEWLINE_TYPE_CR, 200); + test_consecutive_read ("hello\nhello\xe6\x96\x87\nworld\n", "hello\nhello\xe6\x96\x87\nworld\n\n", GTK_SOURCE_NEWLINE_TYPE_LF, 200); +} + +gint +main (gint argc, + gchar *argv[]) +{ + g_test_init (&argc, &argv, NULL); + + g_test_add_func ("/buffer-input-stream/empty", test_empty); + + g_test_add_func ("/buffer-input-stream/consecutive_cut_char", test_consecutive_cut_char); + g_test_add_func ("/buffer-input-stream/consecutive_big_read", test_consecutive_big_read); + g_test_add_func ("/buffer-input-stream/consecutive_middle_read", test_consecutive_middle_read); + + g_test_add_func ("/buffer-input-stream/consecutive_multibyte_cut", test_consecutive_multibyte_cut); + g_test_add_func ("/buffer-input-stream/consecutive_multibyte_big_read", test_consecutive_multibyte_big_read); + + return g_test_run (); +} diff -Nru gtksourceview3-3.12.1/tests/test-buffer-output-stream.c gtksourceview3-3.14.4/tests/test-buffer-output-stream.c --- gtksourceview3-3.12.1/tests/test-buffer-output-stream.c 1970-01-01 00:00:00.000000000 +0000 +++ gtksourceview3-3.14.4/tests/test-buffer-output-stream.c 2015-02-15 20:04:28.000000000 +0000 @@ -0,0 +1,425 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8; coding: utf-8 -*- */ +/* test-buffer-output-stream.c + * This file is part of GtkSourceView + * + * Copyright (C) 2010 - Ignacio Casal Quinteiro + * Copyright (C) 2014 - Sébastien Wilmet + * + * GtkSourceView is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * GtkSourceView is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include +#include +#include +#include +#include +#include "gtksourceview/gtksourcebufferoutputstream.h" + +static void +test_consecutive_write (const gchar *inbuf, + const gchar *outbuf, + gsize write_chunk_len, + GtkSourceNewlineType newline_type) +{ + GtkSourceBuffer *source_buffer; + GtkSourceBufferOutputStream *out; + gsize len; + gssize n, w; + GError *err = NULL; + gchar *b; + GtkSourceNewlineType type; + GSList *encodings = NULL; + + source_buffer = gtk_source_buffer_new (NULL); + encodings = g_slist_prepend (encodings, (gpointer)gtk_source_encoding_get_utf8 ()); + out = gtk_source_buffer_output_stream_new (source_buffer, encodings, TRUE); + + n = 0; + + do + { + len = MIN (write_chunk_len, strlen (inbuf + n)); + w = g_output_stream_write (G_OUTPUT_STREAM (out), inbuf + n, len, NULL, &err); + g_assert_cmpint (w, >=, 0); + g_assert_no_error (err); + + n += w; + } while (w != 0); + + g_output_stream_flush (G_OUTPUT_STREAM (out), NULL, &err); + + g_assert_no_error (err); + + type = gtk_source_buffer_output_stream_detect_newline_type (out); + g_assert (type == newline_type); + + g_output_stream_close (G_OUTPUT_STREAM (out), NULL, &err); + g_assert_no_error (err); + + g_object_get (G_OBJECT (source_buffer), "text", &b, NULL); + + g_assert_cmpstr (outbuf, ==, b); + g_free (b); + + g_assert (gtk_text_buffer_get_modified (GTK_TEXT_BUFFER (source_buffer)) == FALSE); + + g_object_unref (source_buffer); + g_object_unref (out); +} + +static void +test_empty (void) +{ + test_consecutive_write ("", "", 10, GTK_SOURCE_NEWLINE_TYPE_DEFAULT); + test_consecutive_write ("\r\n", "", 10, GTK_SOURCE_NEWLINE_TYPE_CR_LF); + test_consecutive_write ("\r", "", 10, GTK_SOURCE_NEWLINE_TYPE_CR); + test_consecutive_write ("\n", "", 10, GTK_SOURCE_NEWLINE_TYPE_LF); +} + +static void +test_consecutive (void) +{ + test_consecutive_write ("hello\nhow\nare\nyou", "hello\nhow\nare\nyou", 2, + GTK_SOURCE_NEWLINE_TYPE_LF); + test_consecutive_write ("hello\rhow\rare\ryou", "hello\rhow\rare\ryou", 2, + GTK_SOURCE_NEWLINE_TYPE_CR); + test_consecutive_write ("hello\r\nhow\r\nare\r\nyou", "hello\r\nhow\r\nare\r\nyou", 2, + GTK_SOURCE_NEWLINE_TYPE_CR_LF); +} + +static void +test_consecutive_tnewline (void) +{ + test_consecutive_write ("hello\nhow\nare\nyou\n", "hello\nhow\nare\nyou", 2, + GTK_SOURCE_NEWLINE_TYPE_LF); + test_consecutive_write ("hello\rhow\rare\ryou\r", "hello\rhow\rare\ryou", 2, + GTK_SOURCE_NEWLINE_TYPE_CR); + test_consecutive_write ("hello\r\nhow\r\nare\r\nyou\r\n", "hello\r\nhow\r\nare\r\nyou", 2, + GTK_SOURCE_NEWLINE_TYPE_CR_LF); +} + +static void +test_big_char (void) +{ + test_consecutive_write ("\343\203\200\343\203\200", "\343\203\200\343\203\200", 2, + GTK_SOURCE_NEWLINE_TYPE_LF); +} + +static void +test_boundary (void) +{ + GtkSourceBuffer *source_buffer; + GtkSourceBufferOutputStream *out; + gint line_count; + GError *err = NULL; + GSList *encodings = NULL; + + source_buffer = gtk_source_buffer_new (NULL); + encodings = g_slist_prepend (encodings, (gpointer)gtk_source_encoding_get_utf8 ()); + out = gtk_source_buffer_output_stream_new (source_buffer, encodings, TRUE); + + g_output_stream_write (G_OUTPUT_STREAM (out), "\r", 1, NULL, NULL); + g_output_stream_write (G_OUTPUT_STREAM (out), "\n", 1, NULL, NULL); + + g_output_stream_flush (G_OUTPUT_STREAM (out), NULL, &err); + g_assert_no_error (err); + + line_count = gtk_text_buffer_get_line_count (GTK_TEXT_BUFFER (source_buffer)); + + g_assert_cmpint (line_count, ==, 2); + + g_output_stream_close (G_OUTPUT_STREAM (out), NULL, &err); + g_assert_no_error (err); + + g_object_unref (source_buffer); + g_object_unref (out); +} + +#if 0 +static void +test_invalid_utf8 (void) +{ + test_consecutive_write ("foobar\n\xef\xbf\xbe", "foobar\n\\EF\\BF\\BE", 10, + GTK_SOURCE_NEWLINE_TYPE_LF); + test_consecutive_write ("foobar\n\xef\xbf\xbezzzzzz\n", "foobar\n\\EF\\BF\\BEzzzzzz", 10, + GTK_SOURCE_NEWLINE_TYPE_LF); + test_consecutive_write ("\xef\xbf\xbezzzzzz\n", "\\EF\\BF\\BEzzzzzz", 10, + GTK_SOURCE_NEWLINE_TYPE_LF); +} +#endif + +/* SMART CONVERSION */ + +#define TEXT_TO_CONVERT "this is some text to make the tests" +#define TEXT_TO_GUESS "hello \xe6\x96\x87 world" + +static gchar * +get_encoded_text (const gchar *text, + gsize nread, + const GtkSourceEncoding *to, + const GtkSourceEncoding *from, + gsize *bytes_written_aux, + gboolean care_about_error) +{ + GCharsetConverter *converter; + gchar *out, *out_aux; + gsize bytes_read, bytes_read_aux; + gsize bytes_written; + GConverterResult res; + GError *err; + + converter = g_charset_converter_new (gtk_source_encoding_get_charset (to), + gtk_source_encoding_get_charset (from), + NULL); + + out = g_malloc (200); + out_aux = g_malloc (200); + err = NULL; + bytes_read_aux = 0; + *bytes_written_aux = 0; + + if (nread == -1) + { + nread = strlen (text); + } + + do + { + res = g_converter_convert (G_CONVERTER (converter), + text + bytes_read_aux, + nread, + out_aux, + 200, + G_CONVERTER_INPUT_AT_END, + &bytes_read, + &bytes_written, + &err); + memcpy (out + *bytes_written_aux, out_aux, bytes_written); + bytes_read_aux += bytes_read; + *bytes_written_aux += bytes_written; + nread -= bytes_read; + } while (res != G_CONVERTER_FINISHED && res != G_CONVERTER_ERROR); + + if (care_about_error) + { + g_assert_no_error (err); + } + else if (err) + { + g_printf ("** You don't care, but there was an error: %s", err->message); + return NULL; + } + + out[*bytes_written_aux] = '\0'; + + if (!g_utf8_validate (out, *bytes_written_aux, NULL) && !care_about_error) + { + if (!care_about_error) + { + return NULL; + } + else + { + g_assert_not_reached (); + } + } + + return out; +} + +static gchar * +do_test (const gchar *inbuf, + const gchar *enc, + GSList *encodings, + gsize len, + gsize write_chunk_len, + const GtkSourceEncoding **guessed) +{ + GtkSourceBuffer *source_buffer; + GtkSourceBufferOutputStream *out; + GError *err = NULL; + GtkTextIter start, end; + gchar *text; + gsize to_write; + gssize n, w; + + if (enc != NULL) + { + encodings = NULL; + encodings = g_slist_prepend (encodings, (gpointer)gtk_source_encoding_get_from_charset (enc)); + } + + source_buffer = gtk_source_buffer_new (NULL); + out = gtk_source_buffer_output_stream_new (source_buffer, encodings, TRUE); + + n = 0; + + do + { + to_write = MIN (len, write_chunk_len); + w = g_output_stream_write (G_OUTPUT_STREAM (out), inbuf + n, to_write, NULL, &err); + g_assert_cmpint (w, >=, 0); + g_assert_no_error (err); + + len -= w; + n += w; + } while (len != 0); + + g_output_stream_flush (G_OUTPUT_STREAM (out), NULL, &err); + g_assert_no_error (err); + + g_output_stream_close (G_OUTPUT_STREAM (out), NULL, &err); + g_assert_no_error (err); + + if (guessed != NULL) + { + *guessed = gtk_source_buffer_output_stream_get_guessed (out); + } + + gtk_text_buffer_get_bounds (GTK_TEXT_BUFFER (source_buffer), &start, &end); + text = gtk_text_buffer_get_text (GTK_TEXT_BUFFER (source_buffer), + &start, + &end, + FALSE); + + g_object_unref (source_buffer); + g_object_unref (out); + + return text; +} + +static void +test_utf8_utf8 (void) +{ + gchar *aux; + + aux = do_test (TEXT_TO_CONVERT, "UTF-8", NULL, strlen (TEXT_TO_CONVERT), strlen (TEXT_TO_CONVERT), NULL); + g_assert_cmpstr (aux, ==, TEXT_TO_CONVERT); + g_free (aux); + + aux = do_test ("foobar\xc3\xa8\xc3\xa8\xc3\xa8zzzzzz", "UTF-8", NULL, 18, 18, NULL); + g_assert_cmpstr (aux, ==, "foobar\xc3\xa8\xc3\xa8\xc3\xa8zzzzzz"); + g_free (aux); + + /* small chunk */ + aux = do_test ("foobar\xc3\xa8\xc3\xa8\xc3\xa8zzzzzz", "UTF-8", NULL, 18, 2, NULL); + g_assert_cmpstr (aux, ==, "foobar\xc3\xa8\xc3\xa8\xc3\xa8zzzzzz"); + g_free (aux); +} + +static void +test_empty_conversion (void) +{ + const GtkSourceEncoding *guessed; + gchar *out; + GSList *encodings = NULL; + + /* testing the case of an empty file and list of encodings with no + utf-8. In this case, the smart converter cannot determine the right + encoding (because there is no input), but should still default to + utf-8 for the detection */ + encodings = g_slist_prepend (encodings, (gpointer)gtk_source_encoding_get_from_charset ("UTF-16")); + encodings = g_slist_prepend (encodings, (gpointer)gtk_source_encoding_get_from_charset ("ISO-8859-15")); + + out = do_test ("", NULL, encodings, 0, 0, &guessed); + + g_assert_cmpstr (out, ==, ""); + g_free (out); + + g_assert (guessed == gtk_source_encoding_get_utf8 ()); +} + +static void +test_guessed (void) +{ + GSList *encs = NULL; + gchar *aux, *aux2, *fail; + gsize aux_len, fail_len; + const GtkSourceEncoding *guessed; + + aux = get_encoded_text (TEXT_TO_GUESS, -1, + gtk_source_encoding_get_from_charset ("UTF-16"), + gtk_source_encoding_get_from_charset ("UTF-8"), + &aux_len, + TRUE); + + fail = get_encoded_text (aux, aux_len, + gtk_source_encoding_get_from_charset ("UTF-8"), + gtk_source_encoding_get_from_charset ("ISO-8859-15"), + &fail_len, + FALSE); + + g_assert (fail == NULL); + + /* ISO-8859-15 should fail */ + encs = g_slist_append (encs, (gpointer)gtk_source_encoding_get_from_charset ("ISO-8859-15")); + encs = g_slist_append (encs, (gpointer)gtk_source_encoding_get_from_charset ("UTF-16")); + + aux2 = do_test (aux, NULL, encs, aux_len, aux_len, &guessed); + g_free (aux); + g_free (aux2); + + g_assert (guessed == gtk_source_encoding_get_from_charset ("UTF-16")); +} + +static void +test_utf16_utf8 (void) +{ + gchar *text, *aux; + gsize aux_len; + + text = get_encoded_text ("\xe2\xb4\xb2", -1, + gtk_source_encoding_get_from_charset ("UTF-16"), + gtk_source_encoding_get_from_charset ("UTF-8"), + &aux_len, + TRUE); + + aux = do_test (text, "UTF-16", NULL, aux_len, aux_len, NULL); + g_assert_cmpstr (aux, ==, "\xe2\xb4\xb2"); + g_free (aux); + + aux = do_test (text, "UTF-16", NULL, aux_len, 1, NULL); + g_assert_cmpstr (aux, ==, "\xe2\xb4\xb2"); + g_free (aux); +} + +gint +main (gint argc, + gchar *argv[]) +{ + g_test_init (&argc, &argv, NULL); + + g_test_add_func ("/buffer-output-stream/empty", test_empty); + + g_test_add_func ("/buffer-output-stream/consecutive", test_consecutive); + g_test_add_func ("/buffer-output-stream/consecutive_tnewline", test_consecutive_tnewline); + g_test_add_func ("/buffer-output-stream/big-char", test_big_char); + g_test_add_func ("/buffer-output-stream/test-boundary", test_boundary); + + + /* This broke after https://bugzilla.gnome.org/show_bug.cgi?id=694669 We + * need to revisit the test to pick something that is actually invalid + * utf8. + */ +#if 0 + g_test_add_func ("/buffer-output-stream/test-invalid-utf8", test_invalid_utf8); +#endif + g_test_add_func ("/buffer-output-stream/smart conversion: utf8-utf8", test_utf8_utf8); + g_test_add_func ("/buffer-output-stream/smart conversion: empty", test_empty_conversion); + g_test_add_func ("/buffer-output-stream/smart conversion: guessed", test_guessed); + g_test_add_func ("/buffer-output-stream/smart conversion: utf16-utf8", test_utf16_utf8); + + return g_test_run (); +} diff -Nru gtksourceview3-3.12.1/tests/test-completion.c gtksourceview3-3.14.4/tests/test-completion.c --- gtksourceview3-3.12.1/tests/test-completion.c 2014-04-14 16:02:42.000000000 +0000 +++ gtksourceview3-3.14.4/tests/test-completion.c 2015-04-04 12:06:57.000000000 +0000 @@ -349,6 +349,7 @@ GtkCheckButton *enable_random_provider; GtkSpinButton *nb_fixed_proposals; GtkSpinButton *nb_random_proposals; + PangoFontDescription *font_desc; builder = gtk_builder_new (); @@ -375,6 +376,13 @@ completion = gtk_source_view_get_completion (source_view); + font_desc = pango_font_description_from_string ("monospace"); + if (font_desc != NULL) + { + gtk_widget_override_font (GTK_WIDGET (source_view), font_desc); + pango_font_description_free (font_desc); + } + g_signal_connect (window, "destroy", G_CALLBACK (gtk_main_quit), diff -Nru gtksourceview3-3.12.1/tests/test-completion-resources.c gtksourceview3-3.14.4/tests/test-completion-resources.c --- gtksourceview3-3.12.1/tests/test-completion-resources.c 2014-04-14 20:11:01.000000000 +0000 +++ gtksourceview3-3.14.4/tests/test-completion-resources.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,1585 +0,0 @@ -#include - -#if defined (__ELF__) && ( __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 6)) -# define SECTION __attribute__ ((section (".gresource.test_completion"), aligned (8))) -#else -# define SECTION -#endif - -static const SECTION union { const guint8 data[11616]; const double alignment; void * const ptr;} test_completion_resource_data = { { - 0x47, 0x56, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x18, 0x00, 0x00, 0x00, 0xe4, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x28, 0x07, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x4b, 0x50, 0x90, 0x0b, - 0x02, 0x00, 0x00, 0x00, 0xe4, 0x00, 0x00, 0x00, - 0x04, 0x00, 0x4c, 0x00, 0xe8, 0x00, 0x00, 0x00, - 0xec, 0x00, 0x00, 0x00, 0xd3, 0xdf, 0xbb, 0x9b, - 0x04, 0x00, 0x00, 0x00, 0xec, 0x00, 0x00, 0x00, - 0x06, 0x00, 0x4c, 0x00, 0xf4, 0x00, 0x00, 0x00, - 0xf8, 0x00, 0x00, 0x00, 0xd4, 0xb5, 0x02, 0x00, - 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x00, 0x00, - 0x01, 0x00, 0x4c, 0x00, 0xfc, 0x00, 0x00, 0x00, - 0x00, 0x01, 0x00, 0x00, 0x13, 0x01, 0x7c, 0x3c, - 0x05, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, - 0x12, 0x00, 0x76, 0x00, 0x18, 0x01, 0x00, 0x00, - 0x3a, 0x2d, 0x00, 0x00, 0x31, 0xdf, 0xaf, 0x07, - 0x06, 0x00, 0x00, 0x00, 0x3a, 0x2d, 0x00, 0x00, - 0x0e, 0x00, 0x4c, 0x00, 0x48, 0x2d, 0x00, 0x00, - 0x4c, 0x2d, 0x00, 0x00, 0x60, 0x32, 0x99, 0xc0, - 0x01, 0x00, 0x00, 0x00, 0x4c, 0x2d, 0x00, 0x00, - 0x03, 0x00, 0x4c, 0x00, 0x50, 0x2d, 0x00, 0x00, - 0x54, 0x2d, 0x00, 0x00, 0xb0, 0xb7, 0x24, 0x30, - 0x00, 0x00, 0x00, 0x00, 0x54, 0x2d, 0x00, 0x00, - 0x06, 0x00, 0x4c, 0x00, 0x5c, 0x2d, 0x00, 0x00, - 0x60, 0x2d, 0x00, 0x00, 0x6f, 0x72, 0x67, 0x2f, - 0x06, 0x00, 0x00, 0x00, 0x74, 0x65, 0x73, 0x74, - 0x73, 0x2f, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, - 0x2f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x74, 0x65, 0x73, 0x74, 0x2d, 0x63, 0x6f, 0x6d, - 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x2e, - 0x75, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x12, 0x2c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x3c, 0x3f, 0x78, 0x6d, 0x6c, 0x20, 0x76, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x3d, 0x22, 0x31, - 0x2e, 0x30, 0x22, 0x20, 0x65, 0x6e, 0x63, 0x6f, - 0x64, 0x69, 0x6e, 0x67, 0x3d, 0x22, 0x55, 0x54, - 0x46, 0x2d, 0x38, 0x22, 0x3f, 0x3e, 0x0a, 0x3c, - 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, - 0x65, 0x3e, 0x3c, 0x21, 0x2d, 0x2d, 0x20, 0x69, - 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, - 0x2d, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, - 0x73, 0x20, 0x67, 0x74, 0x6b, 0x2b, 0x20, 0x33, - 0x2e, 0x30, 0x20, 0x2d, 0x2d, 0x3e, 0x3c, 0x21, - 0x2d, 0x2d, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x72, - 0x66, 0x61, 0x63, 0x65, 0x2d, 0x72, 0x65, 0x71, - 0x75, 0x69, 0x72, 0x65, 0x73, 0x20, 0x67, 0x74, - 0x6b, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x76, - 0x69, 0x65, 0x77, 0x20, 0x33, 0x2e, 0x30, 0x20, - 0x2d, 0x2d, 0x3e, 0x3c, 0x6f, 0x62, 0x6a, 0x65, - 0x63, 0x74, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, - 0x3d, 0x22, 0x47, 0x74, 0x6b, 0x41, 0x64, 0x6a, - 0x75, 0x73, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x22, - 0x20, 0x69, 0x64, 0x3d, 0x22, 0x61, 0x64, 0x6a, - 0x75, 0x73, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x31, - 0x22, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, - 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, - 0x3d, 0x22, 0x75, 0x70, 0x70, 0x65, 0x72, 0x22, - 0x3e, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x3c, - 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, - 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, - 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, - 0x3d, 0x22, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, - 0x3e, 0x33, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, - 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, - 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, - 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x73, 0x74, 0x65, - 0x70, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x22, 0x3e, 0x31, 0x3c, 0x2f, - 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, - 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, - 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, - 0x22, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x6e, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, - 0x3e, 0x31, 0x30, 0x3c, 0x2f, 0x70, 0x72, 0x6f, - 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x2f, - 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x3e, 0x3c, - 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x20, 0x63, - 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x47, 0x74, - 0x6b, 0x41, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x6d, - 0x65, 0x6e, 0x74, 0x22, 0x20, 0x69, 0x64, 0x3d, - 0x22, 0x61, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x6d, - 0x65, 0x6e, 0x74, 0x32, 0x22, 0x3e, 0x3c, 0x70, - 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, - 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x75, 0x70, - 0x70, 0x65, 0x72, 0x22, 0x3e, 0x31, 0x30, 0x30, - 0x30, 0x30, 0x30, 0x3c, 0x2f, 0x70, 0x72, 0x6f, - 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, - 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, - 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x22, 0x3e, 0x31, 0x30, 0x3c, - 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, - 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, - 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, - 0x3d, 0x22, 0x73, 0x74, 0x65, 0x70, 0x5f, 0x69, - 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x22, 0x3e, 0x31, 0x3c, 0x2f, 0x70, 0x72, 0x6f, - 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, - 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, - 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x70, 0x61, - 0x67, 0x65, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x3e, 0x31, 0x30, - 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, - 0x74, 0x79, 0x3e, 0x3c, 0x2f, 0x6f, 0x62, 0x6a, - 0x65, 0x63, 0x74, 0x3e, 0x3c, 0x6f, 0x62, 0x6a, - 0x65, 0x63, 0x74, 0x20, 0x63, 0x6c, 0x61, 0x73, - 0x73, 0x3d, 0x22, 0x47, 0x74, 0x6b, 0x57, 0x69, - 0x6e, 0x64, 0x6f, 0x77, 0x22, 0x20, 0x69, 0x64, - 0x3d, 0x22, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, - 0x22, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, - 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, - 0x3d, 0x22, 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, - 0x65, 0x22, 0x3e, 0x54, 0x72, 0x75, 0x65, 0x3c, - 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, - 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, - 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, - 0x3d, 0x22, 0x63, 0x61, 0x6e, 0x5f, 0x66, 0x6f, - 0x63, 0x75, 0x73, 0x22, 0x3e, 0x46, 0x61, 0x6c, - 0x73, 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, - 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x63, 0x68, - 0x69, 0x6c, 0x64, 0x3e, 0x3c, 0x6f, 0x62, 0x6a, - 0x65, 0x63, 0x74, 0x20, 0x63, 0x6c, 0x61, 0x73, - 0x73, 0x3d, 0x22, 0x47, 0x74, 0x6b, 0x47, 0x72, - 0x69, 0x64, 0x22, 0x20, 0x69, 0x64, 0x3d, 0x22, - 0x67, 0x72, 0x69, 0x64, 0x31, 0x22, 0x3e, 0x3c, - 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, - 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x76, - 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x22, 0x3e, - 0x54, 0x72, 0x75, 0x65, 0x3c, 0x2f, 0x70, 0x72, - 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, - 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, - 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x63, - 0x61, 0x6e, 0x5f, 0x66, 0x6f, 0x63, 0x75, 0x73, - 0x22, 0x3e, 0x46, 0x61, 0x6c, 0x73, 0x65, 0x3c, - 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, - 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, - 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, - 0x3d, 0x22, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, - 0x5f, 0x77, 0x69, 0x64, 0x74, 0x68, 0x22, 0x3e, - 0x36, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, - 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, - 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, - 0x6d, 0x65, 0x3d, 0x22, 0x63, 0x6f, 0x6c, 0x75, - 0x6d, 0x6e, 0x5f, 0x73, 0x70, 0x61, 0x63, 0x69, - 0x6e, 0x67, 0x22, 0x3e, 0x31, 0x30, 0x3c, 0x2f, - 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, - 0x3e, 0x3c, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x3e, - 0x3c, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x20, - 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x47, - 0x74, 0x6b, 0x47, 0x72, 0x69, 0x64, 0x22, 0x20, - 0x69, 0x64, 0x3d, 0x22, 0x67, 0x72, 0x69, 0x64, - 0x32, 0x22, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, - 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, - 0x65, 0x3d, 0x22, 0x76, 0x69, 0x73, 0x69, 0x62, - 0x6c, 0x65, 0x22, 0x3e, 0x54, 0x72, 0x75, 0x65, - 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, - 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, - 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, - 0x65, 0x3d, 0x22, 0x63, 0x61, 0x6e, 0x5f, 0x66, - 0x6f, 0x63, 0x75, 0x73, 0x22, 0x3e, 0x46, 0x61, - 0x6c, 0x73, 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, - 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, - 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, - 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x72, 0x6f, - 0x77, 0x5f, 0x73, 0x70, 0x61, 0x63, 0x69, 0x6e, - 0x67, 0x22, 0x3e, 0x35, 0x3c, 0x2f, 0x70, 0x72, - 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, - 0x63, 0x68, 0x69, 0x6c, 0x64, 0x3e, 0x3c, 0x6f, - 0x62, 0x6a, 0x65, 0x63, 0x74, 0x20, 0x63, 0x6c, - 0x61, 0x73, 0x73, 0x3d, 0x22, 0x47, 0x74, 0x6b, - 0x47, 0x72, 0x69, 0x64, 0x22, 0x20, 0x69, 0x64, - 0x3d, 0x22, 0x67, 0x72, 0x69, 0x64, 0x33, 0x22, - 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, - 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, - 0x22, 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, - 0x22, 0x3e, 0x54, 0x72, 0x75, 0x65, 0x3c, 0x2f, - 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, - 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, - 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, - 0x22, 0x63, 0x61, 0x6e, 0x5f, 0x66, 0x6f, 0x63, - 0x75, 0x73, 0x22, 0x3e, 0x46, 0x61, 0x6c, 0x73, - 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, - 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, - 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, - 0x6d, 0x65, 0x3d, 0x22, 0x6d, 0x61, 0x72, 0x67, - 0x69, 0x6e, 0x5f, 0x6c, 0x65, 0x66, 0x74, 0x22, - 0x3e, 0x31, 0x30, 0x3c, 0x2f, 0x70, 0x72, 0x6f, - 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x63, - 0x68, 0x69, 0x6c, 0x64, 0x3e, 0x3c, 0x6f, 0x62, - 0x6a, 0x65, 0x63, 0x74, 0x20, 0x63, 0x6c, 0x61, - 0x73, 0x73, 0x3d, 0x22, 0x47, 0x74, 0x6b, 0x43, - 0x68, 0x65, 0x63, 0x6b, 0x42, 0x75, 0x74, 0x74, - 0x6f, 0x6e, 0x22, 0x20, 0x69, 0x64, 0x3d, 0x22, - 0x63, 0x68, 0x65, 0x63, 0x6b, 0x62, 0x75, 0x74, - 0x74, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x6d, 0x65, - 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x66, - 0x6f, 0x5f, 0x76, 0x69, 0x73, 0x69, 0x62, 0x69, - 0x6c, 0x69, 0x74, 0x79, 0x22, 0x3e, 0x3c, 0x70, - 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, - 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x6c, 0x61, - 0x62, 0x65, 0x6c, 0x22, 0x3e, 0x52, 0x65, 0x6d, - 0x65, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x69, 0x6e, - 0x66, 0x6f, 0x20, 0x76, 0x69, 0x73, 0x69, 0x62, - 0x69, 0x6c, 0x69, 0x74, 0x79, 0x3c, 0x2f, 0x70, - 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, - 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, - 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, - 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x22, - 0x3e, 0x54, 0x72, 0x75, 0x65, 0x3c, 0x2f, 0x70, - 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, - 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, - 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, - 0x63, 0x61, 0x6e, 0x5f, 0x66, 0x6f, 0x63, 0x75, - 0x73, 0x22, 0x3e, 0x54, 0x72, 0x75, 0x65, 0x3c, - 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, - 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, - 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, - 0x3d, 0x22, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, - 0x65, 0x73, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, - 0x6c, 0x74, 0x22, 0x3e, 0x46, 0x61, 0x6c, 0x73, - 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, - 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, - 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, - 0x6d, 0x65, 0x3d, 0x22, 0x78, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x22, 0x3e, 0x30, 0x3c, 0x2f, 0x70, - 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, - 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, - 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, - 0x64, 0x72, 0x61, 0x77, 0x5f, 0x69, 0x6e, 0x64, - 0x69, 0x63, 0x61, 0x74, 0x6f, 0x72, 0x22, 0x3e, - 0x54, 0x72, 0x75, 0x65, 0x3c, 0x2f, 0x70, 0x72, - 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, - 0x2f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x3e, - 0x3c, 0x70, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, - 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, - 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, - 0x22, 0x6c, 0x65, 0x66, 0x74, 0x5f, 0x61, 0x74, - 0x74, 0x61, 0x63, 0x68, 0x22, 0x3e, 0x30, 0x3c, - 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, - 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, - 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, - 0x3d, 0x22, 0x74, 0x6f, 0x70, 0x5f, 0x61, 0x74, - 0x74, 0x61, 0x63, 0x68, 0x22, 0x3e, 0x30, 0x3c, - 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, - 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, - 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, - 0x3d, 0x22, 0x77, 0x69, 0x64, 0x74, 0x68, 0x22, - 0x3e, 0x31, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, - 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, - 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, - 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x68, 0x65, 0x69, - 0x67, 0x68, 0x74, 0x22, 0x3e, 0x31, 0x3c, 0x2f, - 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, - 0x3e, 0x3c, 0x2f, 0x70, 0x61, 0x63, 0x6b, 0x69, - 0x6e, 0x67, 0x3e, 0x3c, 0x2f, 0x63, 0x68, 0x69, - 0x6c, 0x64, 0x3e, 0x3c, 0x63, 0x68, 0x69, 0x6c, - 0x64, 0x3e, 0x3c, 0x6f, 0x62, 0x6a, 0x65, 0x63, - 0x74, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, - 0x22, 0x47, 0x74, 0x6b, 0x43, 0x68, 0x65, 0x63, - 0x6b, 0x42, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x22, - 0x20, 0x69, 0x64, 0x3d, 0x22, 0x63, 0x68, 0x65, - 0x63, 0x6b, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, - 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x5f, - 0x6f, 0x6e, 0x5f, 0x73, 0x68, 0x6f, 0x77, 0x22, - 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, - 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, - 0x22, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, 0x3e, - 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x20, 0x66, - 0x69, 0x72, 0x73, 0x74, 0x20, 0x6f, 0x6e, 0x20, - 0x73, 0x68, 0x6f, 0x77, 0x3c, 0x2f, 0x70, 0x72, - 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, - 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, - 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x76, - 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x22, 0x3e, - 0x54, 0x72, 0x75, 0x65, 0x3c, 0x2f, 0x70, 0x72, - 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, - 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, - 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x63, - 0x61, 0x6e, 0x5f, 0x66, 0x6f, 0x63, 0x75, 0x73, - 0x22, 0x3e, 0x54, 0x72, 0x75, 0x65, 0x3c, 0x2f, - 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, - 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, - 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, - 0x22, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, - 0x73, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, - 0x74, 0x22, 0x3e, 0x46, 0x61, 0x6c, 0x73, 0x65, - 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, - 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, - 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, - 0x65, 0x3d, 0x22, 0x78, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x22, 0x3e, 0x30, 0x3c, 0x2f, 0x70, 0x72, - 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, - 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, - 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x64, - 0x72, 0x61, 0x77, 0x5f, 0x69, 0x6e, 0x64, 0x69, - 0x63, 0x61, 0x74, 0x6f, 0x72, 0x22, 0x3e, 0x54, - 0x72, 0x75, 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, - 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x2f, - 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x3e, 0x3c, - 0x70, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x3e, - 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, - 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, - 0x6c, 0x65, 0x66, 0x74, 0x5f, 0x61, 0x74, 0x74, - 0x61, 0x63, 0x68, 0x22, 0x3e, 0x30, 0x3c, 0x2f, - 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, - 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, - 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, - 0x22, 0x74, 0x6f, 0x70, 0x5f, 0x61, 0x74, 0x74, - 0x61, 0x63, 0x68, 0x22, 0x3e, 0x31, 0x3c, 0x2f, - 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, - 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, - 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, - 0x22, 0x77, 0x69, 0x64, 0x74, 0x68, 0x22, 0x3e, - 0x31, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, - 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, - 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, - 0x6d, 0x65, 0x3d, 0x22, 0x68, 0x65, 0x69, 0x67, - 0x68, 0x74, 0x22, 0x3e, 0x31, 0x3c, 0x2f, 0x70, - 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, - 0x3c, 0x2f, 0x70, 0x61, 0x63, 0x6b, 0x69, 0x6e, - 0x67, 0x3e, 0x3c, 0x2f, 0x63, 0x68, 0x69, 0x6c, - 0x64, 0x3e, 0x3c, 0x63, 0x68, 0x69, 0x6c, 0x64, - 0x3e, 0x3c, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, - 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, - 0x47, 0x74, 0x6b, 0x43, 0x68, 0x65, 0x63, 0x6b, - 0x42, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x22, 0x20, - 0x69, 0x64, 0x3d, 0x22, 0x63, 0x68, 0x65, 0x63, - 0x6b, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x5f, - 0x73, 0x68, 0x6f, 0x77, 0x5f, 0x68, 0x65, 0x61, - 0x64, 0x65, 0x72, 0x73, 0x22, 0x3e, 0x3c, 0x70, - 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, - 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x6c, 0x61, - 0x62, 0x65, 0x6c, 0x22, 0x3e, 0x53, 0x68, 0x6f, - 0x77, 0x20, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, - 0x73, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, - 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, - 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, - 0x6d, 0x65, 0x3d, 0x22, 0x76, 0x69, 0x73, 0x69, - 0x62, 0x6c, 0x65, 0x22, 0x3e, 0x54, 0x72, 0x75, - 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, - 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, - 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, - 0x6d, 0x65, 0x3d, 0x22, 0x63, 0x61, 0x6e, 0x5f, - 0x66, 0x6f, 0x63, 0x75, 0x73, 0x22, 0x3e, 0x54, - 0x72, 0x75, 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, - 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, - 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, - 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x72, 0x65, - 0x63, 0x65, 0x69, 0x76, 0x65, 0x73, 0x5f, 0x64, - 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x22, 0x3e, - 0x46, 0x61, 0x6c, 0x73, 0x65, 0x3c, 0x2f, 0x70, - 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, - 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, - 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, - 0x78, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x22, 0x3e, - 0x30, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, - 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, - 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, - 0x6d, 0x65, 0x3d, 0x22, 0x64, 0x72, 0x61, 0x77, - 0x5f, 0x69, 0x6e, 0x64, 0x69, 0x63, 0x61, 0x74, - 0x6f, 0x72, 0x22, 0x3e, 0x54, 0x72, 0x75, 0x65, - 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, - 0x74, 0x79, 0x3e, 0x3c, 0x2f, 0x6f, 0x62, 0x6a, - 0x65, 0x63, 0x74, 0x3e, 0x3c, 0x70, 0x61, 0x63, - 0x6b, 0x69, 0x6e, 0x67, 0x3e, 0x3c, 0x70, 0x72, - 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, - 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x6c, 0x65, 0x66, - 0x74, 0x5f, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, - 0x22, 0x3e, 0x30, 0x3c, 0x2f, 0x70, 0x72, 0x6f, - 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, - 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, - 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x74, 0x6f, - 0x70, 0x5f, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, - 0x22, 0x3e, 0x32, 0x3c, 0x2f, 0x70, 0x72, 0x6f, - 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, - 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, - 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x77, 0x69, - 0x64, 0x74, 0x68, 0x22, 0x3e, 0x31, 0x3c, 0x2f, - 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, - 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, - 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, - 0x22, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x22, - 0x3e, 0x31, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, - 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x2f, 0x70, - 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x3e, 0x3c, - 0x2f, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x3e, 0x3c, - 0x63, 0x68, 0x69, 0x6c, 0x64, 0x3e, 0x3c, 0x6f, - 0x62, 0x6a, 0x65, 0x63, 0x74, 0x20, 0x63, 0x6c, - 0x61, 0x73, 0x73, 0x3d, 0x22, 0x47, 0x74, 0x6b, - 0x43, 0x68, 0x65, 0x63, 0x6b, 0x42, 0x75, 0x74, - 0x74, 0x6f, 0x6e, 0x22, 0x20, 0x69, 0x64, 0x3d, - 0x22, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x62, 0x75, - 0x74, 0x74, 0x6f, 0x6e, 0x5f, 0x73, 0x68, 0x6f, - 0x77, 0x5f, 0x69, 0x63, 0x6f, 0x6e, 0x73, 0x22, - 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, - 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, - 0x22, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, 0x3e, - 0x53, 0x68, 0x6f, 0x77, 0x20, 0x69, 0x63, 0x6f, - 0x6e, 0x73, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, - 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, - 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, - 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x76, 0x69, 0x73, - 0x69, 0x62, 0x6c, 0x65, 0x22, 0x3e, 0x54, 0x72, - 0x75, 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, - 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, - 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, - 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x63, 0x61, 0x6e, - 0x5f, 0x66, 0x6f, 0x63, 0x75, 0x73, 0x22, 0x3e, - 0x54, 0x72, 0x75, 0x65, 0x3c, 0x2f, 0x70, 0x72, - 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, - 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, - 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x72, - 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x73, 0x5f, - 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x22, - 0x3e, 0x46, 0x61, 0x6c, 0x73, 0x65, 0x3c, 0x2f, - 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, - 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, - 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, - 0x22, 0x78, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x22, - 0x3e, 0x30, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, - 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, - 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, - 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x64, 0x72, 0x61, - 0x77, 0x5f, 0x69, 0x6e, 0x64, 0x69, 0x63, 0x61, - 0x74, 0x6f, 0x72, 0x22, 0x3e, 0x54, 0x72, 0x75, - 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, - 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x2f, 0x6f, 0x62, - 0x6a, 0x65, 0x63, 0x74, 0x3e, 0x3c, 0x70, 0x61, - 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x3e, 0x3c, 0x70, - 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, - 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x6c, 0x65, - 0x66, 0x74, 0x5f, 0x61, 0x74, 0x74, 0x61, 0x63, - 0x68, 0x22, 0x3e, 0x30, 0x3c, 0x2f, 0x70, 0x72, - 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, - 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, - 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x74, - 0x6f, 0x70, 0x5f, 0x61, 0x74, 0x74, 0x61, 0x63, - 0x68, 0x22, 0x3e, 0x33, 0x3c, 0x2f, 0x70, 0x72, - 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, - 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, - 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x77, - 0x69, 0x64, 0x74, 0x68, 0x22, 0x3e, 0x31, 0x3c, - 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, - 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, - 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, - 0x3d, 0x22, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, - 0x22, 0x3e, 0x31, 0x3c, 0x2f, 0x70, 0x72, 0x6f, - 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x2f, - 0x70, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x3e, - 0x3c, 0x2f, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x3e, - 0x3c, 0x2f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, - 0x3e, 0x3c, 0x70, 0x61, 0x63, 0x6b, 0x69, 0x6e, - 0x67, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, - 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, - 0x3d, 0x22, 0x6c, 0x65, 0x66, 0x74, 0x5f, 0x61, - 0x74, 0x74, 0x61, 0x63, 0x68, 0x22, 0x3e, 0x30, - 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, - 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, - 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, - 0x65, 0x3d, 0x22, 0x74, 0x6f, 0x70, 0x5f, 0x61, - 0x74, 0x74, 0x61, 0x63, 0x68, 0x22, 0x3e, 0x31, - 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, - 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, - 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, - 0x65, 0x3d, 0x22, 0x77, 0x69, 0x64, 0x74, 0x68, - 0x22, 0x3e, 0x31, 0x3c, 0x2f, 0x70, 0x72, 0x6f, - 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, - 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, - 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x68, 0x65, - 0x69, 0x67, 0x68, 0x74, 0x22, 0x3e, 0x31, 0x3c, - 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, - 0x79, 0x3e, 0x3c, 0x2f, 0x70, 0x61, 0x63, 0x6b, - 0x69, 0x6e, 0x67, 0x3e, 0x3c, 0x2f, 0x63, 0x68, - 0x69, 0x6c, 0x64, 0x3e, 0x3c, 0x63, 0x68, 0x69, - 0x6c, 0x64, 0x3e, 0x3c, 0x6f, 0x62, 0x6a, 0x65, - 0x63, 0x74, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, - 0x3d, 0x22, 0x47, 0x74, 0x6b, 0x4c, 0x61, 0x62, - 0x65, 0x6c, 0x22, 0x20, 0x69, 0x64, 0x3d, 0x22, - 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x32, 0x22, 0x3e, - 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, - 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, - 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x22, - 0x3e, 0x54, 0x72, 0x75, 0x65, 0x3c, 0x2f, 0x70, - 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, - 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, - 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, - 0x63, 0x61, 0x6e, 0x5f, 0x66, 0x6f, 0x63, 0x75, - 0x73, 0x22, 0x3e, 0x46, 0x61, 0x6c, 0x73, 0x65, - 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, - 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, - 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, - 0x65, 0x3d, 0x22, 0x78, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x22, 0x3e, 0x30, 0x3c, 0x2f, 0x70, 0x72, - 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, - 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, - 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x6c, - 0x61, 0x62, 0x65, 0x6c, 0x22, 0x3e, 0x50, 0x72, - 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x73, 0x3c, - 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, - 0x79, 0x3e, 0x3c, 0x61, 0x74, 0x74, 0x72, 0x69, - 0x62, 0x75, 0x74, 0x65, 0x73, 0x3e, 0x3c, 0x61, - 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, - 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x77, - 0x65, 0x69, 0x67, 0x68, 0x74, 0x22, 0x20, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x3d, 0x22, 0x62, 0x6f, - 0x6c, 0x64, 0x22, 0x2f, 0x3e, 0x3c, 0x2f, 0x61, - 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, - 0x73, 0x3e, 0x3c, 0x2f, 0x6f, 0x62, 0x6a, 0x65, - 0x63, 0x74, 0x3e, 0x3c, 0x70, 0x61, 0x63, 0x6b, - 0x69, 0x6e, 0x67, 0x3e, 0x3c, 0x70, 0x72, 0x6f, - 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, - 0x6d, 0x65, 0x3d, 0x22, 0x6c, 0x65, 0x66, 0x74, - 0x5f, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x22, - 0x3e, 0x30, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, - 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, - 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, - 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x74, 0x6f, 0x70, - 0x5f, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x22, - 0x3e, 0x32, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, - 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, - 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, - 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x77, 0x69, 0x64, - 0x74, 0x68, 0x22, 0x3e, 0x31, 0x3c, 0x2f, 0x70, - 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, - 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, - 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, - 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x22, 0x3e, - 0x31, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, - 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x2f, 0x70, 0x61, - 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x3e, 0x3c, 0x2f, - 0x63, 0x68, 0x69, 0x6c, 0x64, 0x3e, 0x3c, 0x63, - 0x68, 0x69, 0x6c, 0x64, 0x3e, 0x3c, 0x6f, 0x62, - 0x6a, 0x65, 0x63, 0x74, 0x20, 0x63, 0x6c, 0x61, - 0x73, 0x73, 0x3d, 0x22, 0x47, 0x74, 0x6b, 0x4c, - 0x61, 0x62, 0x65, 0x6c, 0x22, 0x20, 0x69, 0x64, - 0x3d, 0x22, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x31, - 0x22, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, - 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, - 0x3d, 0x22, 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, - 0x65, 0x22, 0x3e, 0x54, 0x72, 0x75, 0x65, 0x3c, - 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, - 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, - 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, - 0x3d, 0x22, 0x63, 0x61, 0x6e, 0x5f, 0x66, 0x6f, - 0x63, 0x75, 0x73, 0x22, 0x3e, 0x46, 0x61, 0x6c, - 0x73, 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, - 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, - 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, - 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x78, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x22, 0x3e, 0x30, 0x3c, 0x2f, - 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, - 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, - 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, - 0x22, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, 0x3e, - 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x20, - 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x3c, - 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, - 0x79, 0x3e, 0x3c, 0x61, 0x74, 0x74, 0x72, 0x69, - 0x62, 0x75, 0x74, 0x65, 0x73, 0x3e, 0x3c, 0x61, - 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, - 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x77, - 0x65, 0x69, 0x67, 0x68, 0x74, 0x22, 0x20, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x3d, 0x22, 0x62, 0x6f, - 0x6c, 0x64, 0x22, 0x2f, 0x3e, 0x3c, 0x2f, 0x61, - 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, - 0x73, 0x3e, 0x3c, 0x2f, 0x6f, 0x62, 0x6a, 0x65, - 0x63, 0x74, 0x3e, 0x3c, 0x70, 0x61, 0x63, 0x6b, - 0x69, 0x6e, 0x67, 0x3e, 0x3c, 0x70, 0x72, 0x6f, - 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, - 0x6d, 0x65, 0x3d, 0x22, 0x6c, 0x65, 0x66, 0x74, - 0x5f, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x22, - 0x3e, 0x30, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, - 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, - 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, - 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x74, 0x6f, 0x70, - 0x5f, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x22, - 0x3e, 0x30, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, - 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, - 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, - 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x77, 0x69, 0x64, - 0x74, 0x68, 0x22, 0x3e, 0x31, 0x3c, 0x2f, 0x70, - 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, - 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, - 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, - 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x22, 0x3e, - 0x31, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, - 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x2f, 0x70, 0x61, - 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x3e, 0x3c, 0x2f, - 0x63, 0x68, 0x69, 0x6c, 0x64, 0x3e, 0x3c, 0x63, - 0x68, 0x69, 0x6c, 0x64, 0x3e, 0x3c, 0x6f, 0x62, - 0x6a, 0x65, 0x63, 0x74, 0x20, 0x63, 0x6c, 0x61, - 0x73, 0x73, 0x3d, 0x22, 0x47, 0x74, 0x6b, 0x47, - 0x72, 0x69, 0x64, 0x22, 0x20, 0x69, 0x64, 0x3d, - 0x22, 0x67, 0x72, 0x69, 0x64, 0x34, 0x22, 0x3e, - 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, - 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, - 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x22, - 0x3e, 0x54, 0x72, 0x75, 0x65, 0x3c, 0x2f, 0x70, - 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, - 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, - 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, - 0x63, 0x61, 0x6e, 0x5f, 0x66, 0x6f, 0x63, 0x75, - 0x73, 0x22, 0x3e, 0x46, 0x61, 0x6c, 0x73, 0x65, - 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, - 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, - 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, - 0x65, 0x3d, 0x22, 0x6d, 0x61, 0x72, 0x67, 0x69, - 0x6e, 0x5f, 0x6c, 0x65, 0x66, 0x74, 0x22, 0x3e, - 0x31, 0x30, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, - 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x63, 0x68, - 0x69, 0x6c, 0x64, 0x3e, 0x3c, 0x6f, 0x62, 0x6a, - 0x65, 0x63, 0x74, 0x20, 0x63, 0x6c, 0x61, 0x73, - 0x73, 0x3d, 0x22, 0x47, 0x74, 0x6b, 0x43, 0x68, - 0x65, 0x63, 0x6b, 0x42, 0x75, 0x74, 0x74, 0x6f, - 0x6e, 0x22, 0x20, 0x69, 0x64, 0x3d, 0x22, 0x63, - 0x68, 0x65, 0x63, 0x6b, 0x62, 0x75, 0x74, 0x74, - 0x6f, 0x6e, 0x5f, 0x77, 0x6f, 0x72, 0x64, 0x5f, - 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, - 0x22, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, - 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, - 0x3d, 0x22, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, - 0x3e, 0x57, 0x6f, 0x72, 0x64, 0x20, 0x70, 0x72, - 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x3c, 0x2f, - 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, - 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, - 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, - 0x22, 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, - 0x22, 0x3e, 0x54, 0x72, 0x75, 0x65, 0x3c, 0x2f, - 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, - 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, - 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, - 0x22, 0x63, 0x61, 0x6e, 0x5f, 0x66, 0x6f, 0x63, - 0x75, 0x73, 0x22, 0x3e, 0x54, 0x72, 0x75, 0x65, - 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, - 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, - 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, - 0x65, 0x3d, 0x22, 0x72, 0x65, 0x63, 0x65, 0x69, - 0x76, 0x65, 0x73, 0x5f, 0x64, 0x65, 0x66, 0x61, - 0x75, 0x6c, 0x74, 0x22, 0x3e, 0x46, 0x61, 0x6c, - 0x73, 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, - 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, - 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, - 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x78, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x22, 0x3e, 0x30, 0x3c, 0x2f, - 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, - 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, - 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, - 0x22, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x22, - 0x3e, 0x54, 0x72, 0x75, 0x65, 0x3c, 0x2f, 0x70, - 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, - 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, - 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, - 0x64, 0x72, 0x61, 0x77, 0x5f, 0x69, 0x6e, 0x64, - 0x69, 0x63, 0x61, 0x74, 0x6f, 0x72, 0x22, 0x3e, - 0x54, 0x72, 0x75, 0x65, 0x3c, 0x2f, 0x70, 0x72, - 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, - 0x2f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x3e, - 0x3c, 0x70, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, - 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, - 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, - 0x22, 0x6c, 0x65, 0x66, 0x74, 0x5f, 0x61, 0x74, - 0x74, 0x61, 0x63, 0x68, 0x22, 0x3e, 0x30, 0x3c, - 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, - 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, - 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, - 0x3d, 0x22, 0x74, 0x6f, 0x70, 0x5f, 0x61, 0x74, - 0x74, 0x61, 0x63, 0x68, 0x22, 0x3e, 0x30, 0x3c, - 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, - 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, - 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, - 0x3d, 0x22, 0x77, 0x69, 0x64, 0x74, 0x68, 0x22, - 0x3e, 0x31, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, - 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, - 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, - 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x68, 0x65, 0x69, - 0x67, 0x68, 0x74, 0x22, 0x3e, 0x31, 0x3c, 0x2f, - 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, - 0x3e, 0x3c, 0x2f, 0x70, 0x61, 0x63, 0x6b, 0x69, - 0x6e, 0x67, 0x3e, 0x3c, 0x2f, 0x63, 0x68, 0x69, - 0x6c, 0x64, 0x3e, 0x3c, 0x63, 0x68, 0x69, 0x6c, - 0x64, 0x3e, 0x3c, 0x6f, 0x62, 0x6a, 0x65, 0x63, - 0x74, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, - 0x22, 0x47, 0x74, 0x6b, 0x43, 0x68, 0x65, 0x63, - 0x6b, 0x42, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x22, - 0x20, 0x69, 0x64, 0x3d, 0x22, 0x63, 0x68, 0x65, - 0x63, 0x6b, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, - 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x5f, 0x70, - 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, - 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, - 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, - 0x22, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, 0x3e, - 0x46, 0x69, 0x78, 0x65, 0x64, 0x20, 0x70, 0x72, - 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x3c, 0x2f, - 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, - 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, - 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, - 0x22, 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, - 0x22, 0x3e, 0x54, 0x72, 0x75, 0x65, 0x3c, 0x2f, - 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, - 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, - 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, - 0x22, 0x63, 0x61, 0x6e, 0x5f, 0x66, 0x6f, 0x63, - 0x75, 0x73, 0x22, 0x3e, 0x54, 0x72, 0x75, 0x65, - 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, - 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, - 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, - 0x65, 0x3d, 0x22, 0x72, 0x65, 0x63, 0x65, 0x69, - 0x76, 0x65, 0x73, 0x5f, 0x64, 0x65, 0x66, 0x61, - 0x75, 0x6c, 0x74, 0x22, 0x3e, 0x46, 0x61, 0x6c, - 0x73, 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, - 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, - 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, - 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x78, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x22, 0x3e, 0x30, 0x3c, 0x2f, - 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, - 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, - 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, - 0x22, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x22, - 0x3e, 0x54, 0x72, 0x75, 0x65, 0x3c, 0x2f, 0x70, - 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, - 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, - 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, - 0x64, 0x72, 0x61, 0x77, 0x5f, 0x69, 0x6e, 0x64, - 0x69, 0x63, 0x61, 0x74, 0x6f, 0x72, 0x22, 0x3e, - 0x54, 0x72, 0x75, 0x65, 0x3c, 0x2f, 0x70, 0x72, - 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, - 0x2f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x3e, - 0x3c, 0x70, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, - 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, - 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, - 0x22, 0x6c, 0x65, 0x66, 0x74, 0x5f, 0x61, 0x74, - 0x74, 0x61, 0x63, 0x68, 0x22, 0x3e, 0x30, 0x3c, - 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, - 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, - 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, - 0x3d, 0x22, 0x74, 0x6f, 0x70, 0x5f, 0x61, 0x74, - 0x74, 0x61, 0x63, 0x68, 0x22, 0x3e, 0x31, 0x3c, - 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, - 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, - 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, - 0x3d, 0x22, 0x77, 0x69, 0x64, 0x74, 0x68, 0x22, - 0x3e, 0x31, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, - 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, - 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, - 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x68, 0x65, 0x69, - 0x67, 0x68, 0x74, 0x22, 0x3e, 0x31, 0x3c, 0x2f, - 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, - 0x3e, 0x3c, 0x2f, 0x70, 0x61, 0x63, 0x6b, 0x69, - 0x6e, 0x67, 0x3e, 0x3c, 0x2f, 0x63, 0x68, 0x69, - 0x6c, 0x64, 0x3e, 0x3c, 0x63, 0x68, 0x69, 0x6c, - 0x64, 0x3e, 0x3c, 0x6f, 0x62, 0x6a, 0x65, 0x63, - 0x74, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, - 0x22, 0x47, 0x74, 0x6b, 0x43, 0x68, 0x65, 0x63, - 0x6b, 0x42, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x22, - 0x20, 0x69, 0x64, 0x3d, 0x22, 0x63, 0x68, 0x65, - 0x63, 0x6b, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, - 0x5f, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x5f, - 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, - 0x22, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, - 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, - 0x3d, 0x22, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, - 0x3e, 0x52, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x20, - 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, - 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, - 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, - 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, - 0x65, 0x3d, 0x22, 0x76, 0x69, 0x73, 0x69, 0x62, - 0x6c, 0x65, 0x22, 0x3e, 0x54, 0x72, 0x75, 0x65, - 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, - 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, - 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, - 0x65, 0x3d, 0x22, 0x63, 0x61, 0x6e, 0x5f, 0x66, - 0x6f, 0x63, 0x75, 0x73, 0x22, 0x3e, 0x54, 0x72, - 0x75, 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, - 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, - 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, - 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x72, 0x65, 0x63, - 0x65, 0x69, 0x76, 0x65, 0x73, 0x5f, 0x64, 0x65, - 0x66, 0x61, 0x75, 0x6c, 0x74, 0x22, 0x3e, 0x46, - 0x61, 0x6c, 0x73, 0x65, 0x3c, 0x2f, 0x70, 0x72, - 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, - 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, - 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x78, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x22, 0x3e, 0x30, - 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, - 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, - 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, - 0x65, 0x3d, 0x22, 0x61, 0x63, 0x74, 0x69, 0x76, - 0x65, 0x22, 0x3e, 0x54, 0x72, 0x75, 0x65, 0x3c, - 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, - 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, - 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, - 0x3d, 0x22, 0x64, 0x72, 0x61, 0x77, 0x5f, 0x69, - 0x6e, 0x64, 0x69, 0x63, 0x61, 0x74, 0x6f, 0x72, - 0x22, 0x3e, 0x54, 0x72, 0x75, 0x65, 0x3c, 0x2f, - 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, - 0x3e, 0x3c, 0x2f, 0x6f, 0x62, 0x6a, 0x65, 0x63, - 0x74, 0x3e, 0x3c, 0x70, 0x61, 0x63, 0x6b, 0x69, - 0x6e, 0x67, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, - 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, - 0x65, 0x3d, 0x22, 0x6c, 0x65, 0x66, 0x74, 0x5f, - 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x22, 0x3e, - 0x30, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, - 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, - 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, - 0x6d, 0x65, 0x3d, 0x22, 0x74, 0x6f, 0x70, 0x5f, - 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x22, 0x3e, - 0x32, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, - 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, - 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, - 0x6d, 0x65, 0x3d, 0x22, 0x77, 0x69, 0x64, 0x74, - 0x68, 0x22, 0x3e, 0x31, 0x3c, 0x2f, 0x70, 0x72, - 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, - 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, - 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x68, - 0x65, 0x69, 0x67, 0x68, 0x74, 0x22, 0x3e, 0x31, - 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, - 0x74, 0x79, 0x3e, 0x3c, 0x2f, 0x70, 0x61, 0x63, - 0x6b, 0x69, 0x6e, 0x67, 0x3e, 0x3c, 0x2f, 0x63, - 0x68, 0x69, 0x6c, 0x64, 0x3e, 0x3c, 0x2f, 0x6f, - 0x62, 0x6a, 0x65, 0x63, 0x74, 0x3e, 0x3c, 0x70, - 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x3e, 0x3c, - 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, - 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x6c, - 0x65, 0x66, 0x74, 0x5f, 0x61, 0x74, 0x74, 0x61, - 0x63, 0x68, 0x22, 0x3e, 0x30, 0x3c, 0x2f, 0x70, - 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, - 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, - 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, - 0x74, 0x6f, 0x70, 0x5f, 0x61, 0x74, 0x74, 0x61, - 0x63, 0x68, 0x22, 0x3e, 0x33, 0x3c, 0x2f, 0x70, - 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, - 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, - 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, - 0x77, 0x69, 0x64, 0x74, 0x68, 0x22, 0x3e, 0x31, - 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, - 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, - 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, - 0x65, 0x3d, 0x22, 0x68, 0x65, 0x69, 0x67, 0x68, - 0x74, 0x22, 0x3e, 0x31, 0x3c, 0x2f, 0x70, 0x72, - 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, - 0x2f, 0x70, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, - 0x3e, 0x3c, 0x2f, 0x63, 0x68, 0x69, 0x6c, 0x64, - 0x3e, 0x3c, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x3e, - 0x3c, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x20, - 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x47, - 0x74, 0x6b, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x22, - 0x20, 0x69, 0x64, 0x3d, 0x22, 0x6c, 0x61, 0x62, - 0x65, 0x6c, 0x33, 0x22, 0x3e, 0x3c, 0x70, 0x72, - 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, - 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x76, 0x69, 0x73, - 0x69, 0x62, 0x6c, 0x65, 0x22, 0x3e, 0x54, 0x72, - 0x75, 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, - 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, - 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, - 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x63, 0x61, 0x6e, - 0x5f, 0x66, 0x6f, 0x63, 0x75, 0x73, 0x22, 0x3e, - 0x46, 0x61, 0x6c, 0x73, 0x65, 0x3c, 0x2f, 0x70, - 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, - 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, - 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, - 0x78, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x22, 0x3e, - 0x30, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, - 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, - 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, - 0x6d, 0x65, 0x3d, 0x22, 0x6c, 0x61, 0x62, 0x65, - 0x6c, 0x22, 0x3e, 0x46, 0x69, 0x78, 0x65, 0x64, - 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, - 0x72, 0x20, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, - 0x61, 0x6c, 0x73, 0x3c, 0x2f, 0x70, 0x72, 0x6f, - 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x61, - 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, - 0x73, 0x3e, 0x3c, 0x61, 0x74, 0x74, 0x72, 0x69, - 0x62, 0x75, 0x74, 0x65, 0x20, 0x6e, 0x61, 0x6d, - 0x65, 0x3d, 0x22, 0x77, 0x65, 0x69, 0x67, 0x68, - 0x74, 0x22, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x3d, 0x22, 0x62, 0x6f, 0x6c, 0x64, 0x22, 0x2f, - 0x3e, 0x3c, 0x2f, 0x61, 0x74, 0x74, 0x72, 0x69, - 0x62, 0x75, 0x74, 0x65, 0x73, 0x3e, 0x3c, 0x2f, - 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x3e, 0x3c, - 0x70, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x3e, - 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, - 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, - 0x6c, 0x65, 0x66, 0x74, 0x5f, 0x61, 0x74, 0x74, - 0x61, 0x63, 0x68, 0x22, 0x3e, 0x30, 0x3c, 0x2f, - 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, - 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, - 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, - 0x22, 0x74, 0x6f, 0x70, 0x5f, 0x61, 0x74, 0x74, - 0x61, 0x63, 0x68, 0x22, 0x3e, 0x34, 0x3c, 0x2f, - 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, - 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, - 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, - 0x22, 0x77, 0x69, 0x64, 0x74, 0x68, 0x22, 0x3e, - 0x31, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, - 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, - 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, - 0x6d, 0x65, 0x3d, 0x22, 0x68, 0x65, 0x69, 0x67, - 0x68, 0x74, 0x22, 0x3e, 0x31, 0x3c, 0x2f, 0x70, - 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, - 0x3c, 0x2f, 0x70, 0x61, 0x63, 0x6b, 0x69, 0x6e, - 0x67, 0x3e, 0x3c, 0x2f, 0x63, 0x68, 0x69, 0x6c, - 0x64, 0x3e, 0x3c, 0x63, 0x68, 0x69, 0x6c, 0x64, - 0x3e, 0x3c, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, - 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, - 0x47, 0x74, 0x6b, 0x47, 0x72, 0x69, 0x64, 0x22, - 0x20, 0x69, 0x64, 0x3d, 0x22, 0x67, 0x72, 0x69, - 0x64, 0x35, 0x22, 0x3e, 0x3c, 0x70, 0x72, 0x6f, - 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, - 0x6d, 0x65, 0x3d, 0x22, 0x76, 0x69, 0x73, 0x69, - 0x62, 0x6c, 0x65, 0x22, 0x3e, 0x54, 0x72, 0x75, - 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, - 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, - 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, - 0x6d, 0x65, 0x3d, 0x22, 0x63, 0x61, 0x6e, 0x5f, - 0x66, 0x6f, 0x63, 0x75, 0x73, 0x22, 0x3e, 0x46, - 0x61, 0x6c, 0x73, 0x65, 0x3c, 0x2f, 0x70, 0x72, - 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, - 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, - 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x6d, - 0x61, 0x72, 0x67, 0x69, 0x6e, 0x5f, 0x6c, 0x65, - 0x66, 0x74, 0x22, 0x3e, 0x31, 0x30, 0x3c, 0x2f, - 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, - 0x3e, 0x3c, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x3e, - 0x3c, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x20, - 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x47, - 0x74, 0x6b, 0x47, 0x72, 0x69, 0x64, 0x22, 0x20, - 0x69, 0x64, 0x3d, 0x22, 0x67, 0x72, 0x69, 0x64, - 0x36, 0x22, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, - 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, - 0x65, 0x3d, 0x22, 0x76, 0x69, 0x73, 0x69, 0x62, - 0x6c, 0x65, 0x22, 0x3e, 0x54, 0x72, 0x75, 0x65, - 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, - 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, - 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, - 0x65, 0x3d, 0x22, 0x63, 0x61, 0x6e, 0x5f, 0x66, - 0x6f, 0x63, 0x75, 0x73, 0x22, 0x3e, 0x46, 0x61, - 0x6c, 0x73, 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, - 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, - 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, - 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x63, 0x6f, - 0x6c, 0x75, 0x6d, 0x6e, 0x5f, 0x73, 0x70, 0x61, - 0x63, 0x69, 0x6e, 0x67, 0x22, 0x3e, 0x35, 0x3c, - 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, - 0x79, 0x3e, 0x3c, 0x63, 0x68, 0x69, 0x6c, 0x64, - 0x3e, 0x3c, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, - 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, - 0x47, 0x74, 0x6b, 0x4c, 0x61, 0x62, 0x65, 0x6c, - 0x22, 0x20, 0x69, 0x64, 0x3d, 0x22, 0x6c, 0x61, - 0x62, 0x65, 0x6c, 0x34, 0x22, 0x3e, 0x3c, 0x70, - 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, - 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x76, 0x69, - 0x73, 0x69, 0x62, 0x6c, 0x65, 0x22, 0x3e, 0x54, - 0x72, 0x75, 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, - 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, - 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, - 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x63, 0x61, - 0x6e, 0x5f, 0x66, 0x6f, 0x63, 0x75, 0x73, 0x22, - 0x3e, 0x46, 0x61, 0x6c, 0x73, 0x65, 0x3c, 0x2f, - 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, - 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, - 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, - 0x22, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, 0x3e, - 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, - 0x66, 0x20, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, - 0x61, 0x6c, 0x73, 0x3a, 0x3c, 0x2f, 0x70, 0x72, - 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, - 0x2f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x3e, - 0x3c, 0x70, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, - 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, - 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, - 0x22, 0x6c, 0x65, 0x66, 0x74, 0x5f, 0x61, 0x74, - 0x74, 0x61, 0x63, 0x68, 0x22, 0x3e, 0x30, 0x3c, - 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, - 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, - 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, - 0x3d, 0x22, 0x74, 0x6f, 0x70, 0x5f, 0x61, 0x74, - 0x74, 0x61, 0x63, 0x68, 0x22, 0x3e, 0x30, 0x3c, - 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, - 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, - 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, - 0x3d, 0x22, 0x77, 0x69, 0x64, 0x74, 0x68, 0x22, - 0x3e, 0x31, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, - 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, - 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, - 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x68, 0x65, 0x69, - 0x67, 0x68, 0x74, 0x22, 0x3e, 0x31, 0x3c, 0x2f, - 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, - 0x3e, 0x3c, 0x2f, 0x70, 0x61, 0x63, 0x6b, 0x69, - 0x6e, 0x67, 0x3e, 0x3c, 0x2f, 0x63, 0x68, 0x69, - 0x6c, 0x64, 0x3e, 0x3c, 0x63, 0x68, 0x69, 0x6c, - 0x64, 0x3e, 0x3c, 0x6f, 0x62, 0x6a, 0x65, 0x63, - 0x74, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, - 0x22, 0x47, 0x74, 0x6b, 0x53, 0x70, 0x69, 0x6e, - 0x42, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x22, 0x20, - 0x69, 0x64, 0x3d, 0x22, 0x73, 0x70, 0x69, 0x6e, - 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x5f, 0x6e, - 0x62, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x5f, - 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, - 0x73, 0x22, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, - 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, - 0x65, 0x3d, 0x22, 0x76, 0x69, 0x73, 0x69, 0x62, - 0x6c, 0x65, 0x22, 0x3e, 0x54, 0x72, 0x75, 0x65, - 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, - 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, - 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, - 0x65, 0x3d, 0x22, 0x63, 0x61, 0x6e, 0x5f, 0x66, - 0x6f, 0x63, 0x75, 0x73, 0x22, 0x3e, 0x54, 0x72, - 0x75, 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, - 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, - 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, - 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x74, 0x65, 0x78, - 0x74, 0x22, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, - 0x6c, 0x61, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x3d, - 0x22, 0x79, 0x65, 0x73, 0x22, 0x3e, 0x33, 0x3c, - 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, - 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, - 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, - 0x3d, 0x22, 0x61, 0x64, 0x6a, 0x75, 0x73, 0x74, - 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x3e, 0x61, 0x64, - 0x6a, 0x75, 0x73, 0x74, 0x6d, 0x65, 0x6e, 0x74, - 0x31, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, - 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, - 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, - 0x6d, 0x65, 0x3d, 0x22, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x22, 0x3e, 0x33, 0x3c, 0x2f, 0x70, 0x72, - 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, - 0x2f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x3e, - 0x3c, 0x70, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, - 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, - 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, - 0x22, 0x6c, 0x65, 0x66, 0x74, 0x5f, 0x61, 0x74, - 0x74, 0x61, 0x63, 0x68, 0x22, 0x3e, 0x31, 0x3c, - 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, - 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, - 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, - 0x3d, 0x22, 0x74, 0x6f, 0x70, 0x5f, 0x61, 0x74, - 0x74, 0x61, 0x63, 0x68, 0x22, 0x3e, 0x30, 0x3c, - 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, - 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, - 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, - 0x3d, 0x22, 0x77, 0x69, 0x64, 0x74, 0x68, 0x22, - 0x3e, 0x31, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, - 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, - 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, - 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x68, 0x65, 0x69, - 0x67, 0x68, 0x74, 0x22, 0x3e, 0x31, 0x3c, 0x2f, - 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, - 0x3e, 0x3c, 0x2f, 0x70, 0x61, 0x63, 0x6b, 0x69, - 0x6e, 0x67, 0x3e, 0x3c, 0x2f, 0x63, 0x68, 0x69, - 0x6c, 0x64, 0x3e, 0x3c, 0x2f, 0x6f, 0x62, 0x6a, - 0x65, 0x63, 0x74, 0x3e, 0x3c, 0x70, 0x61, 0x63, - 0x6b, 0x69, 0x6e, 0x67, 0x3e, 0x3c, 0x70, 0x72, - 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, - 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x6c, 0x65, 0x66, - 0x74, 0x5f, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, - 0x22, 0x3e, 0x30, 0x3c, 0x2f, 0x70, 0x72, 0x6f, - 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, - 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, - 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x74, 0x6f, - 0x70, 0x5f, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, - 0x22, 0x3e, 0x30, 0x3c, 0x2f, 0x70, 0x72, 0x6f, - 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, - 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, - 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x77, 0x69, - 0x64, 0x74, 0x68, 0x22, 0x3e, 0x31, 0x3c, 0x2f, - 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, - 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, - 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, - 0x22, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x22, - 0x3e, 0x31, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, - 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x2f, 0x70, - 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x3e, 0x3c, - 0x2f, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x3e, 0x3c, - 0x2f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x3e, - 0x3c, 0x70, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, - 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, - 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, - 0x22, 0x6c, 0x65, 0x66, 0x74, 0x5f, 0x61, 0x74, - 0x74, 0x61, 0x63, 0x68, 0x22, 0x3e, 0x30, 0x3c, - 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, - 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, - 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, - 0x3d, 0x22, 0x74, 0x6f, 0x70, 0x5f, 0x61, 0x74, - 0x74, 0x61, 0x63, 0x68, 0x22, 0x3e, 0x35, 0x3c, - 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, - 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, - 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, - 0x3d, 0x22, 0x77, 0x69, 0x64, 0x74, 0x68, 0x22, - 0x3e, 0x31, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, - 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, - 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, - 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x68, 0x65, 0x69, - 0x67, 0x68, 0x74, 0x22, 0x3e, 0x31, 0x3c, 0x2f, - 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, - 0x3e, 0x3c, 0x2f, 0x70, 0x61, 0x63, 0x6b, 0x69, - 0x6e, 0x67, 0x3e, 0x3c, 0x2f, 0x63, 0x68, 0x69, - 0x6c, 0x64, 0x3e, 0x3c, 0x63, 0x68, 0x69, 0x6c, - 0x64, 0x3e, 0x3c, 0x6f, 0x62, 0x6a, 0x65, 0x63, - 0x74, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, - 0x22, 0x47, 0x74, 0x6b, 0x4c, 0x61, 0x62, 0x65, - 0x6c, 0x22, 0x20, 0x69, 0x64, 0x3d, 0x22, 0x6c, - 0x61, 0x62, 0x65, 0x6c, 0x35, 0x22, 0x3e, 0x3c, - 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, - 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x76, - 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x22, 0x3e, - 0x54, 0x72, 0x75, 0x65, 0x3c, 0x2f, 0x70, 0x72, - 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, - 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, - 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x63, - 0x61, 0x6e, 0x5f, 0x66, 0x6f, 0x63, 0x75, 0x73, - 0x22, 0x3e, 0x46, 0x61, 0x6c, 0x73, 0x65, 0x3c, - 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, - 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, - 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, - 0x3d, 0x22, 0x78, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x22, 0x3e, 0x30, 0x3c, 0x2f, 0x70, 0x72, 0x6f, - 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, - 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, - 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x6c, 0x61, - 0x62, 0x65, 0x6c, 0x22, 0x3e, 0x52, 0x61, 0x6e, - 0x64, 0x6f, 0x6d, 0x20, 0x70, 0x72, 0x6f, 0x76, - 0x69, 0x64, 0x65, 0x72, 0x20, 0x70, 0x72, 0x6f, - 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x73, 0x3c, 0x2f, - 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, - 0x3e, 0x3c, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, - 0x75, 0x74, 0x65, 0x73, 0x3e, 0x3c, 0x61, 0x74, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, - 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x77, 0x65, - 0x69, 0x67, 0x68, 0x74, 0x22, 0x20, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x3d, 0x22, 0x62, 0x6f, 0x6c, - 0x64, 0x22, 0x2f, 0x3e, 0x3c, 0x2f, 0x61, 0x74, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, - 0x3e, 0x3c, 0x2f, 0x6f, 0x62, 0x6a, 0x65, 0x63, - 0x74, 0x3e, 0x3c, 0x70, 0x61, 0x63, 0x6b, 0x69, - 0x6e, 0x67, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, - 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, - 0x65, 0x3d, 0x22, 0x6c, 0x65, 0x66, 0x74, 0x5f, - 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x22, 0x3e, - 0x30, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, - 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, - 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, - 0x6d, 0x65, 0x3d, 0x22, 0x74, 0x6f, 0x70, 0x5f, - 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x22, 0x3e, - 0x36, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, - 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, - 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, - 0x6d, 0x65, 0x3d, 0x22, 0x77, 0x69, 0x64, 0x74, - 0x68, 0x22, 0x3e, 0x31, 0x3c, 0x2f, 0x70, 0x72, - 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, - 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, - 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x68, - 0x65, 0x69, 0x67, 0x68, 0x74, 0x22, 0x3e, 0x31, - 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, - 0x74, 0x79, 0x3e, 0x3c, 0x2f, 0x70, 0x61, 0x63, - 0x6b, 0x69, 0x6e, 0x67, 0x3e, 0x3c, 0x2f, 0x63, - 0x68, 0x69, 0x6c, 0x64, 0x3e, 0x3c, 0x63, 0x68, - 0x69, 0x6c, 0x64, 0x3e, 0x3c, 0x6f, 0x62, 0x6a, - 0x65, 0x63, 0x74, 0x20, 0x63, 0x6c, 0x61, 0x73, - 0x73, 0x3d, 0x22, 0x47, 0x74, 0x6b, 0x47, 0x72, - 0x69, 0x64, 0x22, 0x20, 0x69, 0x64, 0x3d, 0x22, - 0x67, 0x72, 0x69, 0x64, 0x37, 0x22, 0x3e, 0x3c, - 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, - 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x76, - 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x22, 0x3e, - 0x54, 0x72, 0x75, 0x65, 0x3c, 0x2f, 0x70, 0x72, - 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, - 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, - 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x63, - 0x61, 0x6e, 0x5f, 0x66, 0x6f, 0x63, 0x75, 0x73, - 0x22, 0x3e, 0x46, 0x61, 0x6c, 0x73, 0x65, 0x3c, - 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, - 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, - 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, - 0x3d, 0x22, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, - 0x5f, 0x6c, 0x65, 0x66, 0x74, 0x22, 0x3e, 0x31, - 0x30, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, - 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, - 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, - 0x6d, 0x65, 0x3d, 0x22, 0x63, 0x6f, 0x6c, 0x75, - 0x6d, 0x6e, 0x5f, 0x73, 0x70, 0x61, 0x63, 0x69, - 0x6e, 0x67, 0x22, 0x3e, 0x35, 0x3c, 0x2f, 0x70, - 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, - 0x3c, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x3e, 0x3c, - 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x20, 0x63, - 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x47, 0x74, - 0x6b, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x22, 0x20, - 0x69, 0x64, 0x3d, 0x22, 0x6c, 0x61, 0x62, 0x65, - 0x6c, 0x36, 0x22, 0x3e, 0x3c, 0x70, 0x72, 0x6f, - 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, - 0x6d, 0x65, 0x3d, 0x22, 0x76, 0x69, 0x73, 0x69, - 0x62, 0x6c, 0x65, 0x22, 0x3e, 0x54, 0x72, 0x75, - 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, - 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, - 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, - 0x6d, 0x65, 0x3d, 0x22, 0x63, 0x61, 0x6e, 0x5f, - 0x66, 0x6f, 0x63, 0x75, 0x73, 0x22, 0x3e, 0x46, - 0x61, 0x6c, 0x73, 0x65, 0x3c, 0x2f, 0x70, 0x72, - 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, - 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, - 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x6c, - 0x61, 0x62, 0x65, 0x6c, 0x22, 0x3e, 0x4d, 0x61, - 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x20, 0x6f, 0x66, 0x20, 0x70, 0x72, 0x6f, 0x70, - 0x6f, 0x73, 0x61, 0x6c, 0x73, 0x3a, 0x3c, 0x2f, - 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, - 0x3e, 0x3c, 0x2f, 0x6f, 0x62, 0x6a, 0x65, 0x63, - 0x74, 0x3e, 0x3c, 0x70, 0x61, 0x63, 0x6b, 0x69, - 0x6e, 0x67, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, - 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, - 0x65, 0x3d, 0x22, 0x6c, 0x65, 0x66, 0x74, 0x5f, - 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x22, 0x3e, - 0x30, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, - 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, - 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, - 0x6d, 0x65, 0x3d, 0x22, 0x74, 0x6f, 0x70, 0x5f, - 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x22, 0x3e, - 0x30, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, - 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, - 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, - 0x6d, 0x65, 0x3d, 0x22, 0x77, 0x69, 0x64, 0x74, - 0x68, 0x22, 0x3e, 0x31, 0x3c, 0x2f, 0x70, 0x72, - 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, - 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, - 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x68, - 0x65, 0x69, 0x67, 0x68, 0x74, 0x22, 0x3e, 0x31, - 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, - 0x74, 0x79, 0x3e, 0x3c, 0x2f, 0x70, 0x61, 0x63, - 0x6b, 0x69, 0x6e, 0x67, 0x3e, 0x3c, 0x2f, 0x63, - 0x68, 0x69, 0x6c, 0x64, 0x3e, 0x3c, 0x63, 0x68, - 0x69, 0x6c, 0x64, 0x3e, 0x3c, 0x6f, 0x62, 0x6a, - 0x65, 0x63, 0x74, 0x20, 0x63, 0x6c, 0x61, 0x73, - 0x73, 0x3d, 0x22, 0x47, 0x74, 0x6b, 0x53, 0x70, - 0x69, 0x6e, 0x42, 0x75, 0x74, 0x74, 0x6f, 0x6e, - 0x22, 0x20, 0x69, 0x64, 0x3d, 0x22, 0x73, 0x70, - 0x69, 0x6e, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, - 0x5f, 0x6e, 0x62, 0x5f, 0x72, 0x61, 0x6e, 0x64, - 0x6f, 0x6d, 0x5f, 0x70, 0x72, 0x6f, 0x70, 0x6f, - 0x73, 0x61, 0x6c, 0x73, 0x22, 0x3e, 0x3c, 0x70, - 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, - 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x76, 0x69, - 0x73, 0x69, 0x62, 0x6c, 0x65, 0x22, 0x3e, 0x54, - 0x72, 0x75, 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, - 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, - 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, - 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x63, 0x61, - 0x6e, 0x5f, 0x66, 0x6f, 0x63, 0x75, 0x73, 0x22, - 0x3e, 0x54, 0x72, 0x75, 0x65, 0x3c, 0x2f, 0x70, - 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, - 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, - 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, - 0x61, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x6d, 0x65, - 0x6e, 0x74, 0x22, 0x3e, 0x61, 0x64, 0x6a, 0x75, - 0x73, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x32, 0x3c, - 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, - 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, - 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, - 0x3d, 0x22, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, - 0x3e, 0x31, 0x30, 0x3c, 0x2f, 0x70, 0x72, 0x6f, - 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x2f, - 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x3e, 0x3c, - 0x70, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x3e, - 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, - 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, - 0x6c, 0x65, 0x66, 0x74, 0x5f, 0x61, 0x74, 0x74, - 0x61, 0x63, 0x68, 0x22, 0x3e, 0x31, 0x3c, 0x2f, - 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, - 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, - 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, - 0x22, 0x74, 0x6f, 0x70, 0x5f, 0x61, 0x74, 0x74, - 0x61, 0x63, 0x68, 0x22, 0x3e, 0x30, 0x3c, 0x2f, - 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, - 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, - 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, - 0x22, 0x77, 0x69, 0x64, 0x74, 0x68, 0x22, 0x3e, - 0x31, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, - 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, - 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, - 0x6d, 0x65, 0x3d, 0x22, 0x68, 0x65, 0x69, 0x67, - 0x68, 0x74, 0x22, 0x3e, 0x31, 0x3c, 0x2f, 0x70, - 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, - 0x3c, 0x2f, 0x70, 0x61, 0x63, 0x6b, 0x69, 0x6e, - 0x67, 0x3e, 0x3c, 0x2f, 0x63, 0x68, 0x69, 0x6c, - 0x64, 0x3e, 0x3c, 0x2f, 0x6f, 0x62, 0x6a, 0x65, - 0x63, 0x74, 0x3e, 0x3c, 0x70, 0x61, 0x63, 0x6b, - 0x69, 0x6e, 0x67, 0x3e, 0x3c, 0x70, 0x72, 0x6f, - 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, - 0x6d, 0x65, 0x3d, 0x22, 0x6c, 0x65, 0x66, 0x74, - 0x5f, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x22, - 0x3e, 0x30, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, - 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, - 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, - 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x74, 0x6f, 0x70, - 0x5f, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x22, - 0x3e, 0x37, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, - 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, - 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, - 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x77, 0x69, 0x64, - 0x74, 0x68, 0x22, 0x3e, 0x31, 0x3c, 0x2f, 0x70, - 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, - 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, - 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, - 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x22, 0x3e, - 0x31, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, - 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x2f, 0x70, 0x61, - 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x3e, 0x3c, 0x2f, - 0x63, 0x68, 0x69, 0x6c, 0x64, 0x3e, 0x3c, 0x2f, - 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x3e, 0x3c, - 0x70, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x3e, - 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, - 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, - 0x6c, 0x65, 0x66, 0x74, 0x5f, 0x61, 0x74, 0x74, - 0x61, 0x63, 0x68, 0x22, 0x3e, 0x30, 0x3c, 0x2f, - 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, - 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, - 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, - 0x22, 0x74, 0x6f, 0x70, 0x5f, 0x61, 0x74, 0x74, - 0x61, 0x63, 0x68, 0x22, 0x3e, 0x30, 0x3c, 0x2f, - 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, - 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, - 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, - 0x22, 0x77, 0x69, 0x64, 0x74, 0x68, 0x22, 0x3e, - 0x31, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, - 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, - 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, - 0x6d, 0x65, 0x3d, 0x22, 0x68, 0x65, 0x69, 0x67, - 0x68, 0x74, 0x22, 0x3e, 0x31, 0x3c, 0x2f, 0x70, - 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, - 0x3c, 0x2f, 0x70, 0x61, 0x63, 0x6b, 0x69, 0x6e, - 0x67, 0x3e, 0x3c, 0x2f, 0x63, 0x68, 0x69, 0x6c, - 0x64, 0x3e, 0x3c, 0x63, 0x68, 0x69, 0x6c, 0x64, - 0x3e, 0x3c, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, - 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, - 0x47, 0x74, 0x6b, 0x53, 0x63, 0x72, 0x6f, 0x6c, - 0x6c, 0x65, 0x64, 0x57, 0x69, 0x6e, 0x64, 0x6f, - 0x77, 0x22, 0x20, 0x69, 0x64, 0x3d, 0x22, 0x73, - 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x64, 0x77, - 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x31, 0x22, 0x3e, - 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, - 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, - 0x77, 0x69, 0x64, 0x74, 0x68, 0x5f, 0x72, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x3e, 0x36, - 0x30, 0x30, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, - 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, - 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, - 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x76, 0x69, 0x73, - 0x69, 0x62, 0x6c, 0x65, 0x22, 0x3e, 0x54, 0x72, - 0x75, 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, - 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, - 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, - 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x63, 0x61, 0x6e, - 0x5f, 0x66, 0x6f, 0x63, 0x75, 0x73, 0x22, 0x3e, - 0x54, 0x72, 0x75, 0x65, 0x3c, 0x2f, 0x70, 0x72, - 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, - 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, - 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x73, - 0x68, 0x61, 0x64, 0x6f, 0x77, 0x5f, 0x74, 0x79, - 0x70, 0x65, 0x22, 0x3e, 0x69, 0x6e, 0x3c, 0x2f, - 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, - 0x3e, 0x3c, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x3e, - 0x3c, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x20, - 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x47, - 0x74, 0x6b, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x56, 0x69, 0x65, 0x77, 0x22, 0x20, 0x69, 0x64, - 0x3d, 0x22, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x5f, 0x76, 0x69, 0x65, 0x77, 0x22, 0x3e, 0x3c, - 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, - 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x76, - 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x22, 0x3e, - 0x54, 0x72, 0x75, 0x65, 0x3c, 0x2f, 0x70, 0x72, - 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, - 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, - 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x63, - 0x61, 0x6e, 0x5f, 0x66, 0x6f, 0x63, 0x75, 0x73, - 0x22, 0x3e, 0x54, 0x72, 0x75, 0x65, 0x3c, 0x2f, - 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, - 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, - 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, - 0x22, 0x68, 0x65, 0x78, 0x70, 0x61, 0x6e, 0x64, - 0x22, 0x3e, 0x54, 0x72, 0x75, 0x65, 0x3c, 0x2f, - 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, - 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, - 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, - 0x22, 0x76, 0x65, 0x78, 0x70, 0x61, 0x6e, 0x64, - 0x22, 0x3e, 0x54, 0x72, 0x75, 0x65, 0x3c, 0x2f, - 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, - 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, - 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, - 0x22, 0x6c, 0x65, 0x66, 0x74, 0x5f, 0x6d, 0x61, - 0x72, 0x67, 0x69, 0x6e, 0x22, 0x3e, 0x32, 0x3c, - 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, - 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, - 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, - 0x3d, 0x22, 0x72, 0x69, 0x67, 0x68, 0x74, 0x5f, - 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x22, 0x3e, - 0x32, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, - 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, - 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, - 0x6d, 0x65, 0x3d, 0x22, 0x74, 0x61, 0x62, 0x5f, - 0x77, 0x69, 0x64, 0x74, 0x68, 0x22, 0x3e, 0x34, - 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, - 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, - 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, - 0x65, 0x3d, 0x22, 0x61, 0x75, 0x74, 0x6f, 0x5f, - 0x69, 0x6e, 0x64, 0x65, 0x6e, 0x74, 0x22, 0x3e, - 0x54, 0x72, 0x75, 0x65, 0x3c, 0x2f, 0x70, 0x72, - 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, - 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, - 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x69, - 0x6e, 0x64, 0x65, 0x6e, 0x74, 0x5f, 0x6f, 0x6e, - 0x5f, 0x74, 0x61, 0x62, 0x22, 0x3e, 0x46, 0x61, - 0x6c, 0x73, 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, - 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x2f, - 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x3e, 0x3c, - 0x2f, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x3e, 0x3c, - 0x2f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x3e, - 0x3c, 0x70, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, - 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, - 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, - 0x22, 0x6c, 0x65, 0x66, 0x74, 0x5f, 0x61, 0x74, - 0x74, 0x61, 0x63, 0x68, 0x22, 0x3e, 0x31, 0x3c, - 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, - 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, - 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, - 0x3d, 0x22, 0x74, 0x6f, 0x70, 0x5f, 0x61, 0x74, - 0x74, 0x61, 0x63, 0x68, 0x22, 0x3e, 0x30, 0x3c, - 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, - 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, - 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, - 0x3d, 0x22, 0x77, 0x69, 0x64, 0x74, 0x68, 0x22, - 0x3e, 0x31, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, - 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, - 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, - 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x68, 0x65, 0x69, - 0x67, 0x68, 0x74, 0x22, 0x3e, 0x31, 0x3c, 0x2f, - 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, - 0x3e, 0x3c, 0x2f, 0x70, 0x61, 0x63, 0x6b, 0x69, - 0x6e, 0x67, 0x3e, 0x3c, 0x2f, 0x63, 0x68, 0x69, - 0x6c, 0x64, 0x3e, 0x3c, 0x2f, 0x6f, 0x62, 0x6a, - 0x65, 0x63, 0x74, 0x3e, 0x3c, 0x2f, 0x63, 0x68, - 0x69, 0x6c, 0x64, 0x3e, 0x3c, 0x2f, 0x6f, 0x62, - 0x6a, 0x65, 0x63, 0x74, 0x3e, 0x3c, 0x2f, 0x69, - 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, - 0x3e, 0x0a, 0x00, 0x00, 0x28, 0x75, 0x75, 0x61, - 0x79, 0x29, 0x67, 0x74, 0x6b, 0x73, 0x6f, 0x75, - 0x72, 0x63, 0x65, 0x76, 0x69, 0x65, 0x77, 0x2f, - 0x01, 0x00, 0x00, 0x00, 0x75, 0x69, 0x2f, 0x00, - 0x03, 0x00, 0x00, 0x00, 0x67, 0x6e, 0x6f, 0x6d, - 0x65, 0x2f, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00 -} }; - -static GStaticResource static_resource = { test_completion_resource_data.data, sizeof (test_completion_resource_data.data), NULL, NULL, NULL }; -extern GResource *test_completion_get_resource (void); -GResource *test_completion_get_resource (void) -{ - return g_static_resource_get_resource (&static_resource); -} -/* - If G_HAS_CONSTRUCTORS is true then the compiler support *both* constructors and - destructors, in a sane way, including e.g. on library unload. If not you're on - your own. - - Some compilers need #pragma to handle this, which does not work with macros, - so the way you need to use this is (for constructors): - - #ifdef G_DEFINE_CONSTRUCTOR_NEEDS_PRAGMA - #pragma G_DEFINE_CONSTRUCTOR_PRAGMA_ARGS(my_constructor) - #endif - G_DEFINE_CONSTRUCTOR(my_constructor) - static void my_constructor(void) { - ... - } - -*/ - -#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 7) - -#define G_HAS_CONSTRUCTORS 1 - -#define G_DEFINE_CONSTRUCTOR(_func) static void __attribute__((constructor)) _func (void); -#define G_DEFINE_DESTRUCTOR(_func) static void __attribute__((destructor)) _func (void); - -#elif defined (_MSC_VER) && (_MSC_VER >= 1500) -/* Visual studio 2008 and later has _Pragma */ - -#define G_HAS_CONSTRUCTORS 1 - -#define G_DEFINE_CONSTRUCTOR(_func) \ - static void _func(void); \ - static int _func ## _wrapper(void) { _func(); return 0; } \ - __pragma(section(".CRT$XCU",read)) \ - __declspec(allocate(".CRT$XCU")) static int (* _array ## _func)(void) = _func ## _wrapper; - -#define G_DEFINE_DESTRUCTOR(_func) \ - static void _func(void); \ - static int _func ## _constructor(void) { atexit (_func); return 0; } \ - __pragma(section(".CRT$XCU",read)) \ - __declspec(allocate(".CRT$XCU")) static int (* _array ## _func)(void) = _func ## _constructor; - -#elif defined (_MSC_VER) - -#define G_HAS_CONSTRUCTORS 1 - -/* Pre Visual studio 2008 must use #pragma section */ -#define G_DEFINE_CONSTRUCTOR_NEEDS_PRAGMA 1 -#define G_DEFINE_DESTRUCTOR_NEEDS_PRAGMA 1 - -#define G_DEFINE_CONSTRUCTOR_PRAGMA_ARGS(_func) \ - section(".CRT$XCU",read) -#define G_DEFINE_CONSTRUCTOR(_func) \ - static void _func(void); \ - static int _func ## _wrapper(void) { _func(); return 0; } \ - __declspec(allocate(".CRT$XCU")) static int (*p)(void) = _func ## _wrapper; - -#define G_DEFINE_DESTRUCTOR_PRAGMA_ARGS(_func) \ - section(".CRT$XCU",read) -#define G_DEFINE_DESTRUCTOR(_func) \ - static void _func(void); \ - static int _func ## _constructor(void) { atexit (_func); return 0; } \ - __declspec(allocate(".CRT$XCU")) static int (* _array ## _func)(void) = _func ## _constructor; - -#elif defined(__SUNPRO_C) - -/* This is not tested, but i believe it should work, based on: - * http://opensource.apple.com/source/OpenSSL098/OpenSSL098-35/src/fips/fips_premain.c - */ - -#define G_HAS_CONSTRUCTORS 1 - -#define G_DEFINE_CONSTRUCTOR_NEEDS_PRAGMA 1 -#define G_DEFINE_DESTRUCTOR_NEEDS_PRAGMA 1 - -#define G_DEFINE_CONSTRUCTOR_PRAGMA_ARGS(_func) \ - init(_func) -#define G_DEFINE_CONSTRUCTOR(_func) \ - static void _func(void); - -#define G_DEFINE_DESTRUCTOR_PRAGMA_ARGS(_func) \ - fini(_func) -#define G_DEFINE_DESTRUCTOR(_func) \ - static void _func(void); - -#else - -/* constructors not supported for this compiler */ - -#endif - - -#ifdef G_HAS_CONSTRUCTORS - -#ifdef G_DEFINE_CONSTRUCTOR_NEEDS_PRAGMA -#pragma G_DEFINE_CONSTRUCTOR_PRAGMA_ARGS(resource_constructor) -#endif -G_DEFINE_CONSTRUCTOR(resource_constructor) -#ifdef G_DEFINE_DESTRUCTOR_NEEDS_PRAGMA -#pragma G_DEFINE_DESTRUCTOR_PRAGMA_ARGS(resource_destructor) -#endif -G_DEFINE_DESTRUCTOR(resource_destructor) - -#else -#warning "Constructor not supported on this compiler, linking in resources will not work" -#endif - -static void resource_constructor (void) -{ - g_static_resource_init (&static_resource); -} - -static void resource_destructor (void) -{ - g_static_resource_fini (&static_resource); -} diff -Nru gtksourceview3-3.12.1/tests/test-completion.ui gtksourceview3-3.14.4/tests/test-completion.ui --- gtksourceview3-3.12.1/tests/test-completion.ui 2014-04-14 15:09:33.000000000 +0000 +++ gtksourceview3-3.14.4/tests/test-completion.ui 2015-04-04 12:06:57.000000000 +0000 @@ -32,14 +32,13 @@ True False - 10 + 10 Remember info visibility True True False - 0 True @@ -55,7 +54,6 @@ True True False - 0 True @@ -71,7 +69,6 @@ True True False - 0 True @@ -87,7 +84,6 @@ True True False - 0 True @@ -109,7 +105,7 @@ True False - 0 + start Providers @@ -126,7 +122,7 @@ True False - 0 + start General options @@ -143,14 +139,13 @@ True False - 10 + 10 Word provider True True False - 0 True True @@ -167,7 +162,6 @@ True True False - 0 True True @@ -184,7 +178,6 @@ True True False - 0 True True @@ -207,7 +200,7 @@ True False - 0 + start Fixed provider proposals @@ -224,7 +217,7 @@ True False - 10 + 10 True @@ -278,7 +271,7 @@ True False - 0 + start Random provider proposals @@ -295,7 +288,7 @@ True False - 10 + 10 5 @@ -357,6 +350,16 @@ 4 True False + + + True + + + 3 + + + + diff -Nru gtksourceview3-3.12.1/tests/test-encoding.c gtksourceview3-3.14.4/tests/test-encoding.c --- gtksourceview3-3.12.1/tests/test-encoding.c 1970-01-01 00:00:00.000000000 +0000 +++ gtksourceview3-3.14.4/tests/test-encoding.c 2015-02-15 20:04:28.000000000 +0000 @@ -0,0 +1,68 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8; coding: utf-8 -*- */ +/* test-encoding.c + * This file is part of GtkSourceView + * + * Copyright (C) 2014 - Sébastien Wilmet + * + * GtkSourceView is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * GtkSourceView is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include +#include "gtksourceview/gtksourceencoding-private.h" + +static void +test_remove_duplicates (void) +{ + GSList *list = NULL; + const GtkSourceEncoding *utf8; + const GtkSourceEncoding *iso; + + utf8 = gtk_source_encoding_get_utf8 (); + iso = gtk_source_encoding_get_from_charset ("ISO-8859-15"); + + /* Before: [UTF-8, ISO-8859-15, UTF-8] */ + list = g_slist_prepend (list, (gpointer) utf8); + list = g_slist_prepend (list, (gpointer) iso); + list = g_slist_prepend (list, (gpointer) utf8); + + /* After: [UTF-8, ISO-8859-15] */ + list = _gtk_source_encoding_remove_duplicates (list, GTK_SOURCE_ENCODING_DUPLICATES_KEEP_FIRST); + + g_assert_cmpint (2, ==, g_slist_length (list)); + g_assert (list->data == utf8); + g_assert (list->next->data == iso); + + /* Before: [UTF-8, ISO-8859-15, UTF-8] */ + list = g_slist_append (list, (gpointer) utf8); + + /* After: [ISO-8859-15, UTF-8] */ + list = _gtk_source_encoding_remove_duplicates (list, GTK_SOURCE_ENCODING_DUPLICATES_KEEP_LAST); + + g_assert_cmpint (2, ==, g_slist_length (list)); + g_assert (list->data == iso); + g_assert (list->next->data == utf8); + + g_slist_free (list); +} + +int +main (int argc, char **argv) +{ + gtk_test_init (&argc, &argv); + + g_test_add_func ("/Encoding/remove_duplicates", test_remove_duplicates); + + return g_test_run (); +} diff -Nru gtksourceview3-3.12.1/tests/test-file-loader.c gtksourceview3-3.14.4/tests/test-file-loader.c --- gtksourceview3-3.12.1/tests/test-file-loader.c 1970-01-01 00:00:00.000000000 +0000 +++ gtksourceview3-3.14.4/tests/test-file-loader.c 2015-02-15 20:04:28.000000000 +0000 @@ -0,0 +1,237 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8; coding: utf-8 -*- */ +/* test-file-loader.c + * This file is part of GtkSourceView + * + * Copyright (C) 2010 - Jesse van den Kieboom + * Copyright (C) 2014 - Sébastien Wilmet + * + * GtkSourceView is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * GtkSourceView is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include +#include + +typedef struct +{ + const gchar *expected_buffer_contents; + gint newline_type; +} LoaderTestData; + +static void +delete_file (GFile *location) +{ + if (g_file_query_exists (location, NULL)) + { + GError *error = NULL; + + g_file_delete (location, NULL, &error); + g_assert_no_error (error); + } +} + +static void +load_file_cb (GtkSourceFileLoader *loader, + GAsyncResult *result, + LoaderTestData *data) +{ + GError *error = NULL; + + gtk_source_file_loader_load_finish (loader, result, &error); + g_assert_no_error (error); + + if (data->expected_buffer_contents != NULL) + { + GtkSourceBuffer *buffer; + GtkTextIter start; + GtkTextIter end; + gchar *buffer_contents; + + buffer = gtk_source_file_loader_get_buffer (loader); + + gtk_text_buffer_get_bounds (GTK_TEXT_BUFFER (buffer), &start, &end); + buffer_contents = gtk_text_iter_get_slice (&start, &end); + + g_assert_cmpstr (buffer_contents, ==, data->expected_buffer_contents); + + g_free (buffer_contents); + } + + if (data->newline_type != -1) + { + g_assert_cmpint (gtk_source_file_loader_get_newline_type (loader), + ==, + data->newline_type); + } + + /* finished */ + gtk_main_quit (); +} + +static void +test_loader (const gchar *filename, + const gchar *contents, + const gchar *expected_buffer_contents, + gint newline_type) +{ + GFile *location; + GtkSourceBuffer *buffer; + GtkSourceFile *file; + GtkSourceFileLoader *loader; + GSList *candidate_encodings; + LoaderTestData *data; + GError *error = NULL; + + g_file_set_contents (filename, contents, -1, &error); + g_assert_no_error (error); + + location = g_file_new_for_path (filename); + buffer = gtk_source_buffer_new (NULL); + file = gtk_source_file_new (); + gtk_source_file_set_location (file, location); + loader = gtk_source_file_loader_new (buffer, file); + + candidate_encodings = g_slist_prepend (NULL, (gpointer) gtk_source_encoding_get_utf8 ()); + gtk_source_file_loader_set_candidate_encodings (loader, candidate_encodings); + + data = g_slice_new (LoaderTestData); + data->expected_buffer_contents = expected_buffer_contents; + data->newline_type = newline_type; + + gtk_source_file_loader_load_async (loader, + G_PRIORITY_DEFAULT, + NULL, NULL, NULL, NULL, + (GAsyncReadyCallback) load_file_cb, + data); + + gtk_main (); + + g_slice_free (LoaderTestData, data); + delete_file (location); + g_object_unref (location); + g_object_unref (buffer); + g_object_unref (file); + g_object_unref (loader); + g_slist_free (candidate_encodings); +} + +static void +test_end_line_stripping (void) +{ + test_loader ("file-loader.txt", + "hello world\n", + "hello world", + -1); + + test_loader ("file-loader.txt", + "hello world", + "hello world", + -1); + + test_loader ("file-loader.txt", + "\nhello world", + "\nhello world", + -1); + + test_loader ("file-loader.txt", + "\nhello world\n", + "\nhello world", + -1); + + test_loader ("file-loader.txt", + "hello world\n\n", + "hello world\n", + -1); + + test_loader ("file-loader.txt", + "hello world\r\n", + "hello world", + -1); + + test_loader ("file-loader.txt", + "hello world\r\n\r\n", + "hello world\r\n", + -1); + + test_loader ("file-loader.txt", + "\n", + "", + -1); + + test_loader ("file-loader.txt", + "\r\n", + "", + -1); + + test_loader ("file-loader.txt", + "\n\n", + "\n", + -1); + + test_loader ("file-loader.txt", + "\r\n\r\n", + "\r\n", + -1); +} + +static void +test_end_new_line_detection (void) +{ + test_loader ("file-loader.txt", + "hello world\n", + NULL, + GTK_SOURCE_NEWLINE_TYPE_LF); + + test_loader ("file-loader.txt", + "hello world\r\n", + NULL, + GTK_SOURCE_NEWLINE_TYPE_CR_LF); + + test_loader ("file-loader.txt", + "hello world\r", + NULL, + GTK_SOURCE_NEWLINE_TYPE_CR); +} + +static void +test_begin_new_line_detection (void) +{ + test_loader ("file-loader.txt", + "\nhello world", + NULL, + GTK_SOURCE_NEWLINE_TYPE_LF); + + test_loader ("file-loader.txt", + "\r\nhello world", + NULL, + GTK_SOURCE_NEWLINE_TYPE_CR_LF); + + test_loader ("file-loader.txt", + "\rhello world", + NULL, + GTK_SOURCE_NEWLINE_TYPE_CR); +} + +gint +main (gint argc, + gchar *argv[]) +{ + g_test_init (&argc, &argv, NULL); + + g_test_add_func ("/file-loader/end-line-stripping", test_end_line_stripping); + g_test_add_func ("/file-loader/end-new-line-detection", test_end_new_line_detection); + g_test_add_func ("/file-loader/begin-new-line-detection", test_begin_new_line_detection); + + return g_test_run (); +} diff -Nru gtksourceview3-3.12.1/tests/test-file-saver.c gtksourceview3-3.14.4/tests/test-file-saver.c --- gtksourceview3-3.12.1/tests/test-file-saver.c 1970-01-01 00:00:00.000000000 +0000 +++ gtksourceview3-3.14.4/tests/test-file-saver.c 2015-04-04 12:06:57.000000000 +0000 @@ -0,0 +1,760 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8; coding: utf-8 -*- */ +/* test-file-saver.c + * This file is part of GtkSourceView + * + * Copyright (C) 2010 - Jesse van den Kieboom + * Copyright (C) 2014 - Sébastien Wilmet + * + * GtkSourceView is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * GtkSourceView is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include +#include +#include +#include +#include +#include + +#define ENABLE_REMOTE_TESTS FALSE + +/* linux/bsd has it. others such as Solaris, do not */ +#ifndef ACCESSPERMS +#define ACCESSPERMS (S_IRWXU|S_IRWXG|S_IRWXO) +#endif + +#define DEFAULT_LOCAL_URI "/tmp/gtksourceview-file-saver-test.txt" +#define DEFAULT_REMOTE_URI "sftp://localhost/tmp/gtksourceview-file-saver-test.txt" +#define DEFAULT_CONTENT "hello world!" +#define DEFAULT_CONTENT_RESULT "hello world!\n" + +#define UNOWNED_LOCAL_DIRECTORY "/tmp/gtksourceview-file-saver-unowned" +#define UNOWNED_LOCAL_URI "/tmp/gtksourceview-file-saver-unowned/gtksourceview-file-saver-test.txt" + +#define UNOWNED_REMOTE_DIRECTORY "sftp://localhost/tmp/gtksourceview-file-saver-unowned" +#define UNOWNED_REMOTE_URI "sftp://localhost/tmp/gtksourceview-file-saver-unowned/gtksourceview-file-saver-test.txt" + +#define UNOWNED_GROUP_LOCAL_URI "/tmp/gtksourceview-file-saver-unowned-group.txt" +#define UNOWNED_GROUP_REMOTE_URI "sftp://localhost/tmp/gtksourceview-file-saver-unowned-group.txt" + +typedef struct _SaverTestData SaverTestData; +typedef void (*SavedCallback) (SaverTestData *data); + +struct _SaverTestData +{ + GtkSourceFileSaver *saver; + GFile *location; + const gchar *expected_file_contents; + SavedCallback saved_callback; + gpointer userdata; + + guint file_existed : 1; +}; + +static const gchar * +read_file (GFile *location) +{ + /* TODO use g_file_load_contents() */ + GError *error = NULL; + static gchar buffer[4096]; + gsize read; + + GInputStream *stream = G_INPUT_STREAM (g_file_read (location, NULL, &error)); + + g_assert_no_error (error); + + g_input_stream_read_all (stream, buffer, sizeof (buffer) - 1, &read, NULL, &error); + g_assert_no_error (error); + + buffer[read] = '\0'; + + g_input_stream_close (stream, NULL, NULL); + + g_object_unref (stream); + + return buffer; +} + +static void +save_file_cb (GtkSourceFileSaver *saver, + GAsyncResult *result, + SaverTestData *data) +{ + GError *error = NULL; + + gtk_source_file_saver_save_finish (saver, result, &error); + + g_assert_no_error (error); + + g_assert_cmpstr (data->expected_file_contents, ==, read_file (data->location)); + + if (data->saved_callback != NULL) + { + data->saved_callback (data); + } + + if (!data->file_existed) + { + g_file_delete (data->location, NULL, NULL); + } + + /* finished */ + gtk_main_quit (); +} + +static void +save_file (SaverTestData *data) +{ + data->file_existed = g_file_query_exists (data->location, NULL); + + gtk_source_file_saver_save_async (data->saver, + G_PRIORITY_DEFAULT, + NULL, NULL, NULL, NULL, + (GAsyncReadyCallback) save_file_cb, + data); +} + +static void +mount_cb (GFile *location, + GAsyncResult *result, + SaverTestData *data) +{ + GError *error = NULL; + + g_file_mount_enclosing_volume_finish (location, result, &error); + + if (error != NULL && error->code == G_IO_ERROR_ALREADY_MOUNTED) + { + g_error_free (error); + } + else + { + g_assert_no_error (error); + } + + save_file (data); +} + +static void +check_mounted (SaverTestData *data) +{ + GMountOperation *mount_operation; + + if (g_file_is_native (data->location)) + { + save_file (data); + return; + } + + mount_operation = gtk_mount_operation_new (NULL); + + g_file_mount_enclosing_volume (data->location, + G_MOUNT_MOUNT_NONE, + mount_operation, + NULL, + (GAsyncReadyCallback) mount_cb, + data); + + g_object_unref (mount_operation); +} + +static void +test_saver (const gchar *filename_or_uri, + const gchar *buffer_contents, + const gchar *expected_file_contents, + GtkSourceNewlineType newline_type, + SavedCallback saved_callback, + gpointer userdata) +{ + GFile *location; + GtkSourceBuffer *buffer; + GtkSourceFile *file; + GtkSourceFileSaver *saver; + SaverTestData *data; + + location = g_file_new_for_commandline_arg (filename_or_uri); + + buffer = gtk_source_buffer_new (NULL); + gtk_text_buffer_set_text (GTK_TEXT_BUFFER (buffer), buffer_contents, -1); + + file = gtk_source_file_new (); + saver = gtk_source_file_saver_new_with_target (buffer, file, location); + + gtk_source_file_saver_set_newline_type (saver, newline_type); + gtk_source_file_saver_set_encoding (saver, gtk_source_encoding_get_utf8 ()); + + data = g_slice_new (SaverTestData); + data->saver = saver; + data->location = location; + data->expected_file_contents = expected_file_contents; + data->saved_callback = saved_callback; + data->userdata = userdata; + + check_mounted (data); + gtk_main (); + + g_object_unref (location); + g_object_unref (buffer); + g_object_unref (file); + g_object_unref (saver); + g_slice_free (SaverTestData, data); +} + +typedef struct +{ + GtkSourceNewlineType type; + const gchar *text; + const gchar *result; +} NewLineTestData; + +static NewLineTestData newline_test_data[] = { + {GTK_SOURCE_NEWLINE_TYPE_LF, "\nhello\nworld", "\nhello\nworld\n"}, + {GTK_SOURCE_NEWLINE_TYPE_LF, "\nhello\nworld\n", "\nhello\nworld\n\n"}, + {GTK_SOURCE_NEWLINE_TYPE_LF, "\nhello\nworld\n\n", "\nhello\nworld\n\n\n"}, + {GTK_SOURCE_NEWLINE_TYPE_LF, "\r\nhello\r\nworld", "\nhello\nworld\n"}, + {GTK_SOURCE_NEWLINE_TYPE_LF, "\r\nhello\r\nworld\r\n", "\nhello\nworld\n\n"}, + {GTK_SOURCE_NEWLINE_TYPE_LF, "\rhello\rworld", "\nhello\nworld\n"}, + {GTK_SOURCE_NEWLINE_TYPE_LF, "\rhello\rworld\r", "\nhello\nworld\n\n"}, + {GTK_SOURCE_NEWLINE_TYPE_LF, "\nhello\r\nworld", "\nhello\nworld\n"}, + {GTK_SOURCE_NEWLINE_TYPE_LF, "\nhello\r\nworld\r", "\nhello\nworld\n\n"}, + + {GTK_SOURCE_NEWLINE_TYPE_CR_LF, "\nhello\nworld", "\r\nhello\r\nworld\r\n"}, + {GTK_SOURCE_NEWLINE_TYPE_CR_LF, "\nhello\nworld\n", "\r\nhello\r\nworld\r\n\r\n"}, + {GTK_SOURCE_NEWLINE_TYPE_CR_LF, "\nhello\nworld\n\n", "\r\nhello\r\nworld\r\n\r\n\r\n"}, + {GTK_SOURCE_NEWLINE_TYPE_CR_LF, "\r\nhello\r\nworld", "\r\nhello\r\nworld\r\n"}, + {GTK_SOURCE_NEWLINE_TYPE_CR_LF, "\r\nhello\r\nworld\r\n", "\r\nhello\r\nworld\r\n\r\n"}, + {GTK_SOURCE_NEWLINE_TYPE_CR_LF, "\rhello\rworld", "\r\nhello\r\nworld\r\n"}, + {GTK_SOURCE_NEWLINE_TYPE_CR_LF, "\rhello\rworld\r", "\r\nhello\r\nworld\r\n\r\n"}, + {GTK_SOURCE_NEWLINE_TYPE_CR_LF, "\nhello\r\nworld", "\r\nhello\r\nworld\r\n"}, + {GTK_SOURCE_NEWLINE_TYPE_CR_LF, "\nhello\r\nworld\r", "\r\nhello\r\nworld\r\n\r\n"}, + + {GTK_SOURCE_NEWLINE_TYPE_CR, "\nhello\nworld", "\rhello\rworld\r"}, + {GTK_SOURCE_NEWLINE_TYPE_CR, "\nhello\nworld\n", "\rhello\rworld\r\r"}, + {GTK_SOURCE_NEWLINE_TYPE_CR, "\nhello\nworld\n\n", "\rhello\rworld\r\r\r"}, + {GTK_SOURCE_NEWLINE_TYPE_CR, "\r\nhello\r\nworld", "\rhello\rworld\r"}, + {GTK_SOURCE_NEWLINE_TYPE_CR, "\r\nhello\r\nworld\r\n", "\rhello\rworld\r\r"}, + {GTK_SOURCE_NEWLINE_TYPE_CR, "\rhello\rworld", "\rhello\rworld\r"}, + {GTK_SOURCE_NEWLINE_TYPE_CR, "\rhello\rworld\r", "\rhello\rworld\r\r"}, + {GTK_SOURCE_NEWLINE_TYPE_CR, "\nhello\r\nworld", "\rhello\rworld\r"}, + {GTK_SOURCE_NEWLINE_TYPE_CR, "\nhello\r\nworld\r", "\rhello\rworld\r\r"} +}; + +static void +test_new_line (const gchar *filename) +{ + gint i; + gint num = sizeof (newline_test_data) / sizeof (NewLineTestData); + + for (i = 0; i < num; ++i) + { + NewLineTestData *nt = &(newline_test_data[i]); + + test_saver (filename, + nt->text, + nt->result, + nt->type, + NULL, + NULL); + } +} + +static void +test_local_newline (void) +{ + test_new_line (DEFAULT_LOCAL_URI); +} + +static void +test_local (void) +{ + test_saver (DEFAULT_LOCAL_URI, + "hello world", + "hello world\n", + GTK_SOURCE_NEWLINE_TYPE_LF, + NULL, + NULL); + + test_saver (DEFAULT_LOCAL_URI, + "hello world\r\n", + "hello world\n\n", + GTK_SOURCE_NEWLINE_TYPE_LF, + NULL, + NULL); + + test_saver (DEFAULT_LOCAL_URI, + "hello world\n", + "hello world\n\n", + GTK_SOURCE_NEWLINE_TYPE_LF, + NULL, + NULL); +} + +static void +test_remote_newline (void) +{ + test_new_line (DEFAULT_REMOTE_URI); +} + +static void +test_remote (void) +{ + test_saver (DEFAULT_REMOTE_URI, + "hello world", + "hello world\n", + GTK_SOURCE_NEWLINE_TYPE_LF, + NULL, + NULL); + + test_saver (DEFAULT_REMOTE_URI, + "hello world\r\n", + "hello world\n\n", + GTK_SOURCE_NEWLINE_TYPE_LF, + NULL, + NULL); + + test_saver (DEFAULT_REMOTE_URI, + "hello world\n", + "hello world\n\n", + GTK_SOURCE_NEWLINE_TYPE_LF, + NULL, + NULL); +} + +#ifndef G_OS_WIN32 +static void +check_permissions (GFile *location, + guint permissions) +{ + GError *error = NULL; + GFileInfo *info; + + info = g_file_query_info (location, + G_FILE_ATTRIBUTE_UNIX_MODE, + G_FILE_QUERY_INFO_NONE, + NULL, + &error); + + g_assert_no_error (error); + + g_assert_cmpint (permissions, + ==, + g_file_info_get_attribute_uint32 (info, G_FILE_ATTRIBUTE_UNIX_MODE) & ACCESSPERMS); + + g_object_unref (info); +} + +static void +check_permissions_saved (SaverTestData *data) +{ + guint permissions = (guint)GPOINTER_TO_INT (data->userdata); + + check_permissions (data->location, permissions); +} + +static void +test_permissions (const gchar *uri, + guint permissions) +{ + GError *error = NULL; + GFile *location = g_file_new_for_commandline_arg (uri); + GFileOutputStream *stream; + GFileInfo *info; + guint mode; + + g_file_delete (location, NULL, NULL); + stream = g_file_create (location, 0, NULL, &error); + + g_assert_no_error (error); + + g_output_stream_close (G_OUTPUT_STREAM (stream), NULL, NULL); + g_object_unref (stream); + + info = g_file_query_info (location, + G_FILE_ATTRIBUTE_UNIX_MODE, + G_FILE_QUERY_INFO_NONE, + NULL, + &error); + + g_assert_no_error (error); + + mode = g_file_info_get_attribute_uint32 (info, G_FILE_ATTRIBUTE_UNIX_MODE); + g_object_unref (info); + + g_file_set_attribute_uint32 (location, + G_FILE_ATTRIBUTE_UNIX_MODE, + (mode & ~ACCESSPERMS) | permissions, + G_FILE_QUERY_INFO_NONE, + NULL, + &error); + g_assert_no_error (error); + + check_permissions (location, permissions); + + test_saver (uri, + DEFAULT_CONTENT, + DEFAULT_CONTENT_RESULT, + GTK_SOURCE_NEWLINE_TYPE_LF, + check_permissions_saved, + GINT_TO_POINTER ((gint)permissions)); + + g_file_delete (location, NULL, NULL); + g_object_unref (location); +} + +static void +test_local_permissions (void) +{ + test_permissions (DEFAULT_LOCAL_URI, 0600); + test_permissions (DEFAULT_LOCAL_URI, 0660); + test_permissions (DEFAULT_LOCAL_URI, 0666); + test_permissions (DEFAULT_LOCAL_URI, 0760); +} +#endif + +static void +test_local_unowned_directory (void) +{ + test_saver (UNOWNED_LOCAL_URI, + DEFAULT_CONTENT, + DEFAULT_CONTENT_RESULT, + GTK_SOURCE_NEWLINE_TYPE_LF, + NULL, + NULL); +} + +static void +test_remote_unowned_directory (void) +{ + test_saver (UNOWNED_REMOTE_URI, + DEFAULT_CONTENT, + DEFAULT_CONTENT_RESULT, + GTK_SOURCE_NEWLINE_TYPE_LF, + NULL, + NULL); +} + +#ifndef G_OS_WIN32 +static void +test_remote_permissions (void) +{ + test_permissions (DEFAULT_REMOTE_URI, 0600); + test_permissions (DEFAULT_REMOTE_URI, 0660); + test_permissions (DEFAULT_REMOTE_URI, 0666); + test_permissions (DEFAULT_REMOTE_URI, 0760); +} + +static void +test_unowned_group_permissions (SaverTestData *data) +{ + GError *error = NULL; + const gchar *group; + guint32 mode; + + GFileInfo *info = g_file_query_info (data->location, + G_FILE_ATTRIBUTE_OWNER_GROUP "," + G_FILE_ATTRIBUTE_UNIX_MODE, + G_FILE_QUERY_INFO_NONE, + NULL, + &error); + + g_assert_no_error (error); + + group = g_file_info_get_attribute_string (info, G_FILE_ATTRIBUTE_OWNER_GROUP); + g_assert_cmpstr (group, ==, "root"); + + mode = g_file_info_get_attribute_uint32 (info, G_FILE_ATTRIBUTE_UNIX_MODE); + + g_assert_cmpint (mode & ACCESSPERMS, ==, 0660); + + g_object_unref (info); +} + +static void +test_unowned_group (const gchar *uri) +{ + test_saver (uri, + DEFAULT_CONTENT, + DEFAULT_CONTENT_RESULT, + GTK_SOURCE_NEWLINE_TYPE_LF, + test_unowned_group_permissions, + NULL); +} + +static void +test_local_unowned_group (void) +{ + test_unowned_group (UNOWNED_GROUP_LOCAL_URI); +} + +#if 0 +static void +test_remote_unowned_group (void) +{ + test_unowned_group (UNOWNED_GROUP_REMOTE_URI); +} +#endif + +#endif + +static gboolean +check_unowned_directory (void) +{ + GFile *unowned = g_file_new_for_path (UNOWNED_LOCAL_DIRECTORY); + GFile *unowned_file; + GFileInfo *info; + GError *error = NULL; + + g_printf ("*** Checking for unowned directory test... "); + + info = g_file_query_info (unowned, + G_FILE_ATTRIBUTE_ACCESS_CAN_WRITE, + G_FILE_QUERY_INFO_NONE, + NULL, + &error); + + if (error) + { + g_object_unref (unowned); + g_printf ("NO: directory does not exist\n"); + + g_error_free (error); + return FALSE; + } + + if (g_file_info_get_attribute_boolean (info, G_FILE_ATTRIBUTE_ACCESS_CAN_WRITE)) + { + g_object_unref (unowned); + + g_printf ("NO: directory is writable\n"); + g_object_unref (info); + return FALSE; + } + + g_object_unref (info); + g_object_unref (unowned); + + unowned_file = g_file_new_for_commandline_arg (UNOWNED_LOCAL_URI); + + info = g_file_query_info (unowned_file, + G_FILE_ATTRIBUTE_ACCESS_CAN_WRITE, + G_FILE_QUERY_INFO_NONE, + NULL, + &error); + + if (error) + { + g_object_unref (unowned_file); + g_error_free (error); + + g_printf ("NO: file does not exist\n"); + return FALSE; + } + + if (!g_file_info_get_attribute_boolean (info, G_FILE_ATTRIBUTE_ACCESS_CAN_WRITE)) + { + g_object_unref (unowned_file); + + g_printf ("NO: file is not writable\n"); + g_object_unref (info); + return FALSE; + } + + g_object_unref (info); + g_object_unref (unowned_file); + + g_printf ("YES\n"); + return TRUE; +} + +static gboolean +check_unowned_group (void) +{ + GFile *unowned = g_file_new_for_path (UNOWNED_GROUP_LOCAL_URI); + GFileInfo *info; + GError *error = NULL; + + g_printf ("*** Checking for unowned group test... "); + + info = g_file_query_info (unowned, + G_FILE_ATTRIBUTE_ACCESS_CAN_WRITE "," + G_FILE_ATTRIBUTE_OWNER_GROUP "," + G_FILE_ATTRIBUTE_UNIX_MODE, + G_FILE_QUERY_INFO_NONE, + NULL, + &error); + + if (error) + { + g_object_unref (unowned); + g_printf ("NO: file does not exist\n"); + + g_error_free (error); + return FALSE; + } + + if (!g_file_info_get_attribute_boolean (info, G_FILE_ATTRIBUTE_ACCESS_CAN_WRITE)) + { + g_object_unref (unowned); + + g_printf ("NO: file is not writable\n"); + g_object_unref (info); + return FALSE; + } + + if (g_strcmp0 (g_file_info_get_attribute_string (info, G_FILE_ATTRIBUTE_OWNER_GROUP), + "root") != 0) + { + g_object_unref (unowned); + + g_printf ("NO: group is not root (%s)\n", g_file_info_get_attribute_string (info, G_FILE_ATTRIBUTE_OWNER_GROUP)); + g_object_unref (info); + return FALSE; + } + +#ifndef G_OS_WIN32 + if ((g_file_info_get_attribute_uint32 (info, G_FILE_ATTRIBUTE_UNIX_MODE) & ACCESSPERMS) != 0660) + { + g_object_unref (unowned); + + g_printf ("NO: file has wrong permissions\n"); + g_object_unref (info); + return FALSE; + } +#endif + + g_object_unref (info); + g_object_unref (unowned); + + g_printf ("YES\n"); + return TRUE; +} + +static void +all_tests (void) +{ + gboolean have_unowned; + gboolean have_unowned_group; + + g_printf ("\n***\n"); + have_unowned = check_unowned_directory (); + have_unowned_group = check_unowned_group (); + g_printf ("***\n\n"); + + g_test_trap_subprocess ("/file-saver/subprocess/local", + 0, + G_TEST_SUBPROCESS_INHERIT_STDERR); + g_test_trap_assert_passed (); + + g_test_trap_subprocess ("/file-saver/subprocess/local-new-line", + 0, + G_TEST_SUBPROCESS_INHERIT_STDERR); + g_test_trap_assert_passed (); + + if (have_unowned) + { + g_test_trap_subprocess ("/file-saver/subprocess/local-unowned-directory", + 0, + G_TEST_SUBPROCESS_INHERIT_STDERR); + g_test_trap_assert_passed (); + } + + if (ENABLE_REMOTE_TESTS) + { + g_test_trap_subprocess ("/file-saver/subprocess/remote", + 0, + G_TEST_SUBPROCESS_INHERIT_STDERR); + g_test_trap_assert_passed (); + + g_test_trap_subprocess ("/file-saver/subprocess/remote-new-line", + 0, + G_TEST_SUBPROCESS_INHERIT_STDERR); + g_test_trap_assert_passed (); + + if (have_unowned) + { + g_test_trap_subprocess ("/file-saver/subprocess/remote-unowned-directory", + 0, + G_TEST_SUBPROCESS_INHERIT_STDERR); + g_test_trap_assert_passed (); + } + + /* + if (have_unowned_group) + { + g_test_trap_subprocess ("/file-saver/subprocess/remote-unowned-group", + 0, + G_TEST_SUBPROCESS_INHERIT_STDERR); + g_test_trap_assert_passed (); + } + */ + } + +#ifndef G_OS_WIN32 + g_test_trap_subprocess ("/file-saver/subprocess/local-permissions", + 0, + G_TEST_SUBPROCESS_INHERIT_STDERR); + g_test_trap_assert_passed (); + + if (have_unowned_group) + { + g_test_trap_subprocess ("/file-saver/subprocess/local-unowned-group", + 0, + G_TEST_SUBPROCESS_INHERIT_STDERR); + g_test_trap_assert_passed (); + } + + if (ENABLE_REMOTE_TESTS) + { + g_test_trap_subprocess ("/file-saver/subprocess/remote-permissions", + 0, + G_TEST_SUBPROCESS_INHERIT_STDERR); + g_test_trap_assert_passed (); + } +#endif +} + +gint +main (gint argc, + gchar *argv[]) +{ + gtk_test_init (&argc, &argv); + + g_test_add_func ("/file-saver", all_tests); + + g_test_add_func ("/file-saver/subprocess/local", test_local); + g_test_add_func ("/file-saver/subprocess/local-new-line", test_local_newline); + g_test_add_func ("/file-saver/subprocess/local-unowned-directory", test_local_unowned_directory); + + if (ENABLE_REMOTE_TESTS) + { + g_test_add_func ("/file-saver/subprocess/remote", test_remote); + g_test_add_func ("/file-saver/subprocess/remote-new-line", test_remote_newline); + g_test_add_func ("/file-saver/subprocess/remote-unowned-directory", test_remote_unowned_directory); + + /* FIXME: there is a bug in gvfs sftp which doesn't pass this test */ + /* g_test_add_func ("/file-saver/subprocess/remote-unowned-group", test_remote_unowned_group); */ + } + +#ifndef G_OS_WIN32 + g_test_add_func ("/file-saver/subprocess/local-permissions", test_local_permissions); + g_test_add_func ("/file-saver/subprocess/local-unowned-group", test_local_unowned_group); + + if (ENABLE_REMOTE_TESTS) + { + g_test_add_func ("/file-saver/subprocess/remote-permissions", test_remote_permissions); + } +#endif + + return g_test_run (); +} diff -Nru gtksourceview3-3.12.1/tests/test-search.c gtksourceview3-3.14.4/tests/test-search.c --- gtksourceview3-3.12.1/tests/test-search.c 2014-04-14 16:02:42.000000000 +0000 +++ gtksourceview3-3.14.4/tests/test-search.c 2015-04-04 12:06:57.000000000 +0000 @@ -71,6 +71,7 @@ GtkSourceLanguage *language; GtkTextIter iter; + /* In a realistic application you would use GtkSourceFile of course. */ if (!g_file_get_contents (filename, &contents, NULL, &error)) { g_error ("Impossible to load file: %s", error->message); diff -Nru gtksourceview3-3.12.1/tests/test-search-context.c gtksourceview3-3.14.4/tests/test-search-context.c --- gtksourceview3-3.12.1/tests/test-search-context.c 2014-04-14 15:09:33.000000000 +0000 +++ gtksourceview3-3.14.4/tests/test-search-context.c 2015-03-05 15:12:42.000000000 +0000 @@ -2,7 +2,7 @@ * test-search-context.c * This file is part of GtkSourceView * - * Copyright (C) 2013 - Sébastien Wilmet + * Copyright (C) 2013, 2015 - Sébastien Wilmet * * GtkSourceView is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -41,6 +41,35 @@ gboolean forward, gboolean start_check); +/* If we are running from the source dir (e.g. during make check) + * we override the path to read from the data dir. + */ +static void +init_style_scheme_manager (void) +{ + gchar *dir; + + dir = g_build_filename (TOP_SRCDIR, "data", "styles", NULL); + + if (g_file_test (dir, G_FILE_TEST_IS_DIR)) + { + GtkSourceStyleSchemeManager *manager; + gchar **dirs; + + manager = gtk_source_style_scheme_manager_get_default (); + + dirs = g_new0 (gchar *, 2); + dirs[0] = dir; + + gtk_source_style_scheme_manager_set_search_path (manager, dirs); + g_strfreev (dirs); + } + else + { + g_free (dir); + } +} + static void flush_queue (void) { @@ -965,7 +994,10 @@ GtkTextIter iter; GtkTextIter match_start; GtkTextIter match_end; + GtkTextIter start; + GtkTextIter end; gint offset; + gchar *content; gtk_text_buffer_set_text (text_buffer, "1234\n12345\n1234", -1); @@ -990,16 +1022,73 @@ offset = gtk_text_iter_get_offset (&match_end); g_assert_cmpint (offset, ==, 15); + /* Test replace, see https://bugzilla.gnome.org/show_bug.cgi?id=740810 */ + + gtk_text_buffer_set_text (text_buffer, "&aa", -1); + gtk_source_search_settings_set_search_text (settings, "aa"); + flush_queue (); + + gtk_text_buffer_get_iter_at_offset (text_buffer, &match_start, 1); + gtk_text_buffer_get_end_iter (text_buffer, &match_end); + gtk_source_search_context_replace (context, &match_start, &match_end, "bb", -1, NULL); + + gtk_text_buffer_get_start_iter (text_buffer, &start); + gtk_text_buffer_get_end_iter (text_buffer, &end); + content = gtk_text_iter_get_visible_text (&start, &end); + g_assert_cmpstr (content, ==, "&bb"); + g_free (content); + + /* Test replace multi-byte character */ + + gtk_text_buffer_set_text (text_buffer, "–aa", -1); + gtk_source_search_settings_set_search_text (settings, "aa"); + flush_queue (); + + gtk_text_buffer_get_iter_at_offset (text_buffer, &match_start, 1); + gtk_text_buffer_get_end_iter (text_buffer, &match_end); + gtk_source_search_context_replace (context, &match_start, &match_end, "bb", -1, NULL); + + gtk_text_buffer_get_start_iter (text_buffer, &start); + gtk_text_buffer_get_end_iter (text_buffer, &end); + content = gtk_text_iter_get_visible_text (&start, &end); + g_assert_cmpstr (content, ==, "–bb"); + g_free (content); + g_object_unref (source_buffer); g_object_unref (settings); g_object_unref (context); } +static void +test_destroy_buffer_during_search (void) +{ + GtkSourceBuffer *source_buffer = gtk_source_buffer_new (NULL); + GtkTextBuffer *text_buffer = GTK_TEXT_BUFFER (source_buffer); + GtkSourceSearchSettings *settings = gtk_source_search_settings_new (); + GtkSourceSearchContext *context = gtk_source_search_context_new (source_buffer, settings); + + gtk_text_buffer_set_text (text_buffer, "y", -1); + gtk_source_search_settings_set_search_text (settings, "y"); + + /* Destroy buffer during search. */ + g_object_unref (source_buffer); + flush_queue (); + + /* Test also a new search when buffer already destroyed. */ + gtk_source_search_settings_set_search_text (settings, "x"); + flush_queue (); + + g_object_unref (settings); + g_object_unref (context); +} + int main (int argc, char **argv) { gtk_test_init (&argc, &argv); + init_style_scheme_manager (); + g_test_add_func ("/Search/occurrences-count/simple", test_occurrences_count_simple); g_test_add_func ("/Search/occurrences-count/with-insert", test_occurrences_count_with_insert); g_test_add_func ("/Search/occurrences-count/with-delete", test_occurrences_count_with_delete); @@ -1019,6 +1108,7 @@ g_test_add_func ("/Search/replace", test_replace_all); g_test_add_func ("/Search/regex", test_regex); g_test_add_func ("/Search/regex-at-word-boundaries", test_regex_at_word_boundaries); + g_test_add_func ("/Search/destroy-buffer-during-search", test_destroy_buffer_during_search); return g_test_run (); } diff -Nru gtksourceview3-3.12.1/tests/test-search-resources.c gtksourceview3-3.14.4/tests/test-search-resources.c --- gtksourceview3-3.12.1/tests/test-search-resources.c 2014-04-14 20:11:01.000000000 +0000 +++ gtksourceview3-3.14.4/tests/test-search-resources.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,1596 +0,0 @@ -#include - -#if defined (__ELF__) && ( __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 6)) -# define SECTION __attribute__ ((section (".gresource.test_search"), aligned (8))) -#else -# define SECTION -#endif - -static const SECTION union { const guint8 data[11704]; const double alignment; void * const ptr;} test_search_resource_data = { { - 0x47, 0x56, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x18, 0x00, 0x00, 0x00, 0xe4, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x28, 0x07, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, - 0x05, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x4b, 0x50, 0x90, 0x0b, - 0x02, 0x00, 0x00, 0x00, 0xe4, 0x00, 0x00, 0x00, - 0x04, 0x00, 0x4c, 0x00, 0xe8, 0x00, 0x00, 0x00, - 0xec, 0x00, 0x00, 0x00, 0xd3, 0xdf, 0xbb, 0x9b, - 0x03, 0x00, 0x00, 0x00, 0xec, 0x00, 0x00, 0x00, - 0x06, 0x00, 0x4c, 0x00, 0xf4, 0x00, 0x00, 0x00, - 0xf8, 0x00, 0x00, 0x00, 0xd4, 0xb5, 0x02, 0x00, - 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x00, 0x00, - 0x01, 0x00, 0x4c, 0x00, 0xfc, 0x00, 0x00, 0x00, - 0x00, 0x01, 0x00, 0x00, 0x31, 0xdf, 0xaf, 0x07, - 0x06, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, - 0x0e, 0x00, 0x4c, 0x00, 0x10, 0x01, 0x00, 0x00, - 0x14, 0x01, 0x00, 0x00, 0x60, 0x32, 0x99, 0xc0, - 0x01, 0x00, 0x00, 0x00, 0x14, 0x01, 0x00, 0x00, - 0x03, 0x00, 0x4c, 0x00, 0x18, 0x01, 0x00, 0x00, - 0x1c, 0x01, 0x00, 0x00, 0x8f, 0x7f, 0x31, 0x97, - 0x04, 0x00, 0x00, 0x00, 0x1c, 0x01, 0x00, 0x00, - 0x0e, 0x00, 0x76, 0x00, 0x30, 0x01, 0x00, 0x00, - 0xae, 0x2d, 0x00, 0x00, 0xb0, 0xb7, 0x24, 0x30, - 0x00, 0x00, 0x00, 0x00, 0xae, 0x2d, 0x00, 0x00, - 0x06, 0x00, 0x4c, 0x00, 0xb4, 0x2d, 0x00, 0x00, - 0xb8, 0x2d, 0x00, 0x00, 0x6f, 0x72, 0x67, 0x2f, - 0x06, 0x00, 0x00, 0x00, 0x74, 0x65, 0x73, 0x74, - 0x73, 0x2f, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, - 0x2f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x67, 0x74, 0x6b, 0x73, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x76, 0x69, 0x65, 0x77, 0x2f, 0x00, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x75, 0x69, 0x2f, 0x00, - 0x05, 0x00, 0x00, 0x00, 0x74, 0x65, 0x73, 0x74, - 0x2d, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x2e, - 0x75, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x6e, 0x2c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x3c, 0x3f, 0x78, 0x6d, 0x6c, 0x20, 0x76, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x3d, 0x22, 0x31, - 0x2e, 0x30, 0x22, 0x20, 0x65, 0x6e, 0x63, 0x6f, - 0x64, 0x69, 0x6e, 0x67, 0x3d, 0x22, 0x55, 0x54, - 0x46, 0x2d, 0x38, 0x22, 0x3f, 0x3e, 0x0a, 0x3c, - 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, - 0x65, 0x3e, 0x3c, 0x21, 0x2d, 0x2d, 0x20, 0x69, - 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, - 0x2d, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, - 0x73, 0x20, 0x67, 0x74, 0x6b, 0x2b, 0x20, 0x33, - 0x2e, 0x31, 0x30, 0x20, 0x2d, 0x2d, 0x3e, 0x3c, - 0x21, 0x2d, 0x2d, 0x20, 0x69, 0x6e, 0x74, 0x65, - 0x72, 0x66, 0x61, 0x63, 0x65, 0x2d, 0x72, 0x65, - 0x71, 0x75, 0x69, 0x72, 0x65, 0x73, 0x20, 0x67, - 0x74, 0x6b, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x76, 0x69, 0x65, 0x77, 0x20, 0x33, 0x2e, 0x30, - 0x20, 0x2d, 0x2d, 0x3e, 0x3c, 0x6f, 0x62, 0x6a, - 0x65, 0x63, 0x74, 0x20, 0x63, 0x6c, 0x61, 0x73, - 0x73, 0x3d, 0x22, 0x47, 0x74, 0x6b, 0x49, 0x6d, - 0x61, 0x67, 0x65, 0x22, 0x20, 0x69, 0x64, 0x3d, - 0x22, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x31, 0x22, - 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, - 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, - 0x22, 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, - 0x22, 0x3e, 0x54, 0x72, 0x75, 0x65, 0x3c, 0x2f, - 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, - 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, - 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, - 0x22, 0x63, 0x61, 0x6e, 0x5f, 0x66, 0x6f, 0x63, - 0x75, 0x73, 0x22, 0x3e, 0x46, 0x61, 0x6c, 0x73, - 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, - 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, - 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, - 0x6d, 0x65, 0x3d, 0x22, 0x73, 0x74, 0x6f, 0x63, - 0x6b, 0x22, 0x3e, 0x67, 0x74, 0x6b, 0x2d, 0x67, - 0x6f, 0x2d, 0x75, 0x70, 0x3c, 0x2f, 0x70, 0x72, - 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, - 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, - 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x69, - 0x63, 0x6f, 0x6e, 0x5f, 0x73, 0x69, 0x7a, 0x65, - 0x22, 0x3e, 0x31, 0x3c, 0x2f, 0x70, 0x72, 0x6f, - 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x2f, - 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x3e, 0x3c, - 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x20, 0x63, - 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x47, 0x74, - 0x6b, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x22, 0x20, - 0x69, 0x64, 0x3d, 0x22, 0x69, 0x6d, 0x61, 0x67, - 0x65, 0x32, 0x22, 0x3e, 0x3c, 0x70, 0x72, 0x6f, - 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, - 0x6d, 0x65, 0x3d, 0x22, 0x76, 0x69, 0x73, 0x69, - 0x62, 0x6c, 0x65, 0x22, 0x3e, 0x54, 0x72, 0x75, - 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, - 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, - 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, - 0x6d, 0x65, 0x3d, 0x22, 0x63, 0x61, 0x6e, 0x5f, - 0x66, 0x6f, 0x63, 0x75, 0x73, 0x22, 0x3e, 0x46, - 0x61, 0x6c, 0x73, 0x65, 0x3c, 0x2f, 0x70, 0x72, - 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, - 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, - 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x73, - 0x74, 0x6f, 0x63, 0x6b, 0x22, 0x3e, 0x67, 0x74, - 0x6b, 0x2d, 0x67, 0x6f, 0x2d, 0x64, 0x6f, 0x77, - 0x6e, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, - 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, - 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, - 0x6d, 0x65, 0x3d, 0x22, 0x69, 0x63, 0x6f, 0x6e, - 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x22, 0x3e, 0x31, - 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, - 0x74, 0x79, 0x3e, 0x3c, 0x2f, 0x6f, 0x62, 0x6a, - 0x65, 0x63, 0x74, 0x3e, 0x3c, 0x6f, 0x62, 0x6a, - 0x65, 0x63, 0x74, 0x20, 0x63, 0x6c, 0x61, 0x73, - 0x73, 0x3d, 0x22, 0x47, 0x74, 0x6b, 0x49, 0x6d, - 0x61, 0x67, 0x65, 0x22, 0x20, 0x69, 0x64, 0x3d, - 0x22, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x33, 0x22, - 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, - 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, - 0x22, 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, - 0x22, 0x3e, 0x54, 0x72, 0x75, 0x65, 0x3c, 0x2f, - 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, - 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, - 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, - 0x22, 0x63, 0x61, 0x6e, 0x5f, 0x66, 0x6f, 0x63, - 0x75, 0x73, 0x22, 0x3e, 0x46, 0x61, 0x6c, 0x73, - 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, - 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, - 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, - 0x6d, 0x65, 0x3d, 0x22, 0x73, 0x74, 0x6f, 0x63, - 0x6b, 0x22, 0x3e, 0x67, 0x74, 0x6b, 0x2d, 0x66, - 0x69, 0x6e, 0x64, 0x2d, 0x61, 0x6e, 0x64, 0x2d, - 0x72, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x3c, - 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, - 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, - 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, - 0x3d, 0x22, 0x69, 0x63, 0x6f, 0x6e, 0x5f, 0x73, - 0x69, 0x7a, 0x65, 0x22, 0x3e, 0x31, 0x3c, 0x2f, - 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, - 0x3e, 0x3c, 0x2f, 0x6f, 0x62, 0x6a, 0x65, 0x63, - 0x74, 0x3e, 0x3c, 0x6f, 0x62, 0x6a, 0x65, 0x63, - 0x74, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, - 0x22, 0x47, 0x74, 0x6b, 0x49, 0x6d, 0x61, 0x67, - 0x65, 0x22, 0x20, 0x69, 0x64, 0x3d, 0x22, 0x69, - 0x6d, 0x61, 0x67, 0x65, 0x34, 0x22, 0x3e, 0x3c, - 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, - 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x76, - 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x22, 0x3e, - 0x54, 0x72, 0x75, 0x65, 0x3c, 0x2f, 0x70, 0x72, - 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, - 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, - 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x63, - 0x61, 0x6e, 0x5f, 0x66, 0x6f, 0x63, 0x75, 0x73, - 0x22, 0x3e, 0x46, 0x61, 0x6c, 0x73, 0x65, 0x3c, - 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, - 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, - 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, - 0x3d, 0x22, 0x73, 0x74, 0x6f, 0x63, 0x6b, 0x22, - 0x3e, 0x67, 0x74, 0x6b, 0x2d, 0x66, 0x69, 0x6e, - 0x64, 0x2d, 0x61, 0x6e, 0x64, 0x2d, 0x72, 0x65, - 0x70, 0x6c, 0x61, 0x63, 0x65, 0x3c, 0x2f, 0x70, - 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, - 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, - 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, - 0x69, 0x63, 0x6f, 0x6e, 0x5f, 0x73, 0x69, 0x7a, - 0x65, 0x22, 0x3e, 0x31, 0x3c, 0x2f, 0x70, 0x72, - 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, - 0x2f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x3e, - 0x3c, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, - 0x65, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, - 0x22, 0x54, 0x65, 0x73, 0x74, 0x53, 0x65, 0x61, - 0x72, 0x63, 0x68, 0x22, 0x20, 0x70, 0x61, 0x72, - 0x65, 0x6e, 0x74, 0x3d, 0x22, 0x47, 0x74, 0x6b, - 0x47, 0x72, 0x69, 0x64, 0x22, 0x3e, 0x3c, 0x70, - 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, - 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x76, 0x69, - 0x73, 0x69, 0x62, 0x6c, 0x65, 0x22, 0x3e, 0x54, - 0x72, 0x75, 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, - 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, - 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, - 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x63, 0x61, - 0x6e, 0x5f, 0x66, 0x6f, 0x63, 0x75, 0x73, 0x22, - 0x3e, 0x46, 0x61, 0x6c, 0x73, 0x65, 0x3c, 0x2f, - 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, - 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, - 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, - 0x22, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, - 0x77, 0x69, 0x64, 0x74, 0x68, 0x22, 0x3e, 0x36, - 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, - 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, - 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, - 0x65, 0x3d, 0x22, 0x72, 0x6f, 0x77, 0x5f, 0x73, - 0x70, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x22, 0x3e, - 0x36, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, - 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x63, 0x68, 0x69, - 0x6c, 0x64, 0x3e, 0x3c, 0x6f, 0x62, 0x6a, 0x65, - 0x63, 0x74, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, - 0x3d, 0x22, 0x47, 0x74, 0x6b, 0x53, 0x63, 0x72, - 0x6f, 0x6c, 0x6c, 0x65, 0x64, 0x57, 0x69, 0x6e, - 0x64, 0x6f, 0x77, 0x22, 0x20, 0x69, 0x64, 0x3d, - 0x22, 0x73, 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x65, - 0x64, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x31, - 0x22, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, - 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, - 0x3d, 0x22, 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, - 0x65, 0x22, 0x3e, 0x54, 0x72, 0x75, 0x65, 0x3c, - 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, - 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, - 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, - 0x3d, 0x22, 0x63, 0x61, 0x6e, 0x5f, 0x66, 0x6f, - 0x63, 0x75, 0x73, 0x22, 0x3e, 0x54, 0x72, 0x75, - 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, - 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, - 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, - 0x6d, 0x65, 0x3d, 0x22, 0x73, 0x68, 0x61, 0x64, - 0x6f, 0x77, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, - 0x3e, 0x69, 0x6e, 0x3c, 0x2f, 0x70, 0x72, 0x6f, - 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x63, - 0x68, 0x69, 0x6c, 0x64, 0x3e, 0x3c, 0x6f, 0x62, - 0x6a, 0x65, 0x63, 0x74, 0x20, 0x63, 0x6c, 0x61, - 0x73, 0x73, 0x3d, 0x22, 0x47, 0x74, 0x6b, 0x53, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x56, 0x69, 0x65, - 0x77, 0x22, 0x20, 0x69, 0x64, 0x3d, 0x22, 0x73, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x76, 0x69, - 0x65, 0x77, 0x22, 0x3e, 0x3c, 0x70, 0x72, 0x6f, - 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, - 0x6d, 0x65, 0x3d, 0x22, 0x76, 0x69, 0x73, 0x69, - 0x62, 0x6c, 0x65, 0x22, 0x3e, 0x54, 0x72, 0x75, - 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, - 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, - 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, - 0x6d, 0x65, 0x3d, 0x22, 0x63, 0x61, 0x6e, 0x5f, - 0x66, 0x6f, 0x63, 0x75, 0x73, 0x22, 0x3e, 0x54, - 0x72, 0x75, 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, - 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, - 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, - 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x68, 0x61, - 0x73, 0x5f, 0x74, 0x6f, 0x6f, 0x6c, 0x74, 0x69, - 0x70, 0x22, 0x3e, 0x54, 0x72, 0x75, 0x65, 0x3c, - 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, - 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, - 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, - 0x3d, 0x22, 0x68, 0x65, 0x78, 0x70, 0x61, 0x6e, - 0x64, 0x22, 0x3e, 0x54, 0x72, 0x75, 0x65, 0x3c, - 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, - 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, - 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, - 0x3d, 0x22, 0x76, 0x65, 0x78, 0x70, 0x61, 0x6e, - 0x64, 0x22, 0x3e, 0x54, 0x72, 0x75, 0x65, 0x3c, - 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, - 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, - 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, - 0x3d, 0x22, 0x6c, 0x65, 0x66, 0x74, 0x5f, 0x6d, - 0x61, 0x72, 0x67, 0x69, 0x6e, 0x22, 0x3e, 0x32, - 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, - 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, - 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, - 0x65, 0x3d, 0x22, 0x72, 0x69, 0x67, 0x68, 0x74, - 0x5f, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x22, - 0x3e, 0x32, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, - 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x2f, 0x6f, - 0x62, 0x6a, 0x65, 0x63, 0x74, 0x3e, 0x3c, 0x2f, - 0x63, 0x68, 0x69, 0x6c, 0x64, 0x3e, 0x3c, 0x2f, - 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x3e, 0x3c, - 0x70, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x3e, - 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, - 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, - 0x6c, 0x65, 0x66, 0x74, 0x5f, 0x61, 0x74, 0x74, - 0x61, 0x63, 0x68, 0x22, 0x3e, 0x30, 0x3c, 0x2f, - 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, - 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, - 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, - 0x22, 0x74, 0x6f, 0x70, 0x5f, 0x61, 0x74, 0x74, - 0x61, 0x63, 0x68, 0x22, 0x3e, 0x30, 0x3c, 0x2f, - 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, - 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, - 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, - 0x22, 0x77, 0x69, 0x64, 0x74, 0x68, 0x22, 0x3e, - 0x31, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, - 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, - 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, - 0x6d, 0x65, 0x3d, 0x22, 0x68, 0x65, 0x69, 0x67, - 0x68, 0x74, 0x22, 0x3e, 0x31, 0x3c, 0x2f, 0x70, - 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, - 0x3c, 0x2f, 0x70, 0x61, 0x63, 0x6b, 0x69, 0x6e, - 0x67, 0x3e, 0x3c, 0x2f, 0x63, 0x68, 0x69, 0x6c, - 0x64, 0x3e, 0x3c, 0x63, 0x68, 0x69, 0x6c, 0x64, - 0x3e, 0x3c, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, - 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, - 0x47, 0x74, 0x6b, 0x47, 0x72, 0x69, 0x64, 0x22, - 0x20, 0x69, 0x64, 0x3d, 0x22, 0x67, 0x72, 0x69, - 0x64, 0x32, 0x22, 0x3e, 0x3c, 0x70, 0x72, 0x6f, - 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, - 0x6d, 0x65, 0x3d, 0x22, 0x76, 0x69, 0x73, 0x69, - 0x62, 0x6c, 0x65, 0x22, 0x3e, 0x54, 0x72, 0x75, - 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, - 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, - 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, - 0x6d, 0x65, 0x3d, 0x22, 0x63, 0x61, 0x6e, 0x5f, - 0x66, 0x6f, 0x63, 0x75, 0x73, 0x22, 0x3e, 0x46, - 0x61, 0x6c, 0x73, 0x65, 0x3c, 0x2f, 0x70, 0x72, - 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, - 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, - 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x72, - 0x6f, 0x77, 0x5f, 0x73, 0x70, 0x61, 0x63, 0x69, - 0x6e, 0x67, 0x22, 0x3e, 0x36, 0x3c, 0x2f, 0x70, - 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, - 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, - 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, - 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x5f, 0x73, - 0x70, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x22, 0x3e, - 0x36, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, - 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x63, 0x68, 0x69, - 0x6c, 0x64, 0x3e, 0x3c, 0x6f, 0x62, 0x6a, 0x65, - 0x63, 0x74, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, - 0x3d, 0x22, 0x47, 0x74, 0x6b, 0x4c, 0x61, 0x62, - 0x65, 0x6c, 0x22, 0x20, 0x69, 0x64, 0x3d, 0x22, - 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x31, 0x22, 0x3e, - 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, - 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, - 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x22, - 0x3e, 0x54, 0x72, 0x75, 0x65, 0x3c, 0x2f, 0x70, - 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, - 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, - 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, - 0x63, 0x61, 0x6e, 0x5f, 0x66, 0x6f, 0x63, 0x75, - 0x73, 0x22, 0x3e, 0x46, 0x61, 0x6c, 0x73, 0x65, - 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, - 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, - 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, - 0x65, 0x3d, 0x22, 0x68, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x22, 0x3e, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, - 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, - 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, - 0x65, 0x3d, 0x22, 0x78, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x22, 0x3e, 0x30, 0x3c, 0x2f, 0x70, 0x72, - 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, - 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, - 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x6c, - 0x61, 0x62, 0x65, 0x6c, 0x22, 0x3e, 0x53, 0x65, - 0x61, 0x72, 0x63, 0x68, 0x3a, 0x3c, 0x2f, 0x70, - 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, - 0x3c, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, - 0x74, 0x65, 0x73, 0x3e, 0x3c, 0x61, 0x74, 0x74, - 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x6e, - 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x77, 0x65, 0x69, - 0x67, 0x68, 0x74, 0x22, 0x20, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x3d, 0x22, 0x62, 0x6f, 0x6c, 0x64, - 0x22, 0x2f, 0x3e, 0x3c, 0x2f, 0x61, 0x74, 0x74, - 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x3e, - 0x3c, 0x2f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, - 0x3e, 0x3c, 0x70, 0x61, 0x63, 0x6b, 0x69, 0x6e, - 0x67, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, - 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, - 0x3d, 0x22, 0x6c, 0x65, 0x66, 0x74, 0x5f, 0x61, - 0x74, 0x74, 0x61, 0x63, 0x68, 0x22, 0x3e, 0x30, - 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, - 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, - 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, - 0x65, 0x3d, 0x22, 0x74, 0x6f, 0x70, 0x5f, 0x61, - 0x74, 0x74, 0x61, 0x63, 0x68, 0x22, 0x3e, 0x31, - 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, - 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, - 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, - 0x65, 0x3d, 0x22, 0x77, 0x69, 0x64, 0x74, 0x68, - 0x22, 0x3e, 0x31, 0x3c, 0x2f, 0x70, 0x72, 0x6f, - 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, - 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, - 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x68, 0x65, - 0x69, 0x67, 0x68, 0x74, 0x22, 0x3e, 0x31, 0x3c, - 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, - 0x79, 0x3e, 0x3c, 0x2f, 0x70, 0x61, 0x63, 0x6b, - 0x69, 0x6e, 0x67, 0x3e, 0x3c, 0x2f, 0x63, 0x68, - 0x69, 0x6c, 0x64, 0x3e, 0x3c, 0x63, 0x68, 0x69, - 0x6c, 0x64, 0x3e, 0x3c, 0x6f, 0x62, 0x6a, 0x65, - 0x63, 0x74, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, - 0x3d, 0x22, 0x47, 0x74, 0x6b, 0x53, 0x65, 0x61, - 0x72, 0x63, 0x68, 0x45, 0x6e, 0x74, 0x72, 0x79, - 0x22, 0x20, 0x69, 0x64, 0x3d, 0x22, 0x73, 0x65, - 0x61, 0x72, 0x63, 0x68, 0x5f, 0x65, 0x6e, 0x74, - 0x72, 0x79, 0x22, 0x3e, 0x3c, 0x70, 0x72, 0x6f, - 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, - 0x6d, 0x65, 0x3d, 0x22, 0x77, 0x69, 0x64, 0x74, - 0x68, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x22, 0x3e, 0x33, 0x30, 0x30, 0x3c, 0x2f, - 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, - 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, - 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, - 0x22, 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, - 0x22, 0x3e, 0x54, 0x72, 0x75, 0x65, 0x3c, 0x2f, - 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, - 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, - 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, - 0x22, 0x63, 0x61, 0x6e, 0x5f, 0x66, 0x6f, 0x63, - 0x75, 0x73, 0x22, 0x3e, 0x54, 0x72, 0x75, 0x65, - 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, - 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, - 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, - 0x65, 0x3d, 0x22, 0x68, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x22, 0x3e, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, - 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, - 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, - 0x65, 0x3d, 0x22, 0x70, 0x72, 0x69, 0x6d, 0x61, - 0x72, 0x79, 0x5f, 0x69, 0x63, 0x6f, 0x6e, 0x5f, - 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3e, 0x65, 0x64, - 0x69, 0x74, 0x2d, 0x66, 0x69, 0x6e, 0x64, 0x2d, - 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x69, 0x63, - 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, - 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, - 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, - 0x65, 0x3d, 0x22, 0x70, 0x72, 0x69, 0x6d, 0x61, - 0x72, 0x79, 0x5f, 0x69, 0x63, 0x6f, 0x6e, 0x5f, - 0x61, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x61, - 0x62, 0x6c, 0x65, 0x22, 0x3e, 0x46, 0x61, 0x6c, - 0x73, 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, - 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, - 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, - 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x70, 0x72, 0x69, - 0x6d, 0x61, 0x72, 0x79, 0x5f, 0x69, 0x63, 0x6f, - 0x6e, 0x5f, 0x73, 0x65, 0x6e, 0x73, 0x69, 0x74, - 0x69, 0x76, 0x65, 0x22, 0x3e, 0x46, 0x61, 0x6c, - 0x73, 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, - 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x73, 0x69, - 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x6e, 0x61, 0x6d, - 0x65, 0x3d, 0x22, 0x63, 0x68, 0x61, 0x6e, 0x67, - 0x65, 0x64, 0x22, 0x20, 0x68, 0x61, 0x6e, 0x64, - 0x6c, 0x65, 0x72, 0x3d, 0x22, 0x73, 0x65, 0x61, - 0x72, 0x63, 0x68, 0x5f, 0x65, 0x6e, 0x74, 0x72, - 0x79, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, - 0x64, 0x5f, 0x63, 0x62, 0x22, 0x20, 0x6f, 0x62, - 0x6a, 0x65, 0x63, 0x74, 0x3d, 0x22, 0x54, 0x65, - 0x73, 0x74, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, - 0x22, 0x20, 0x73, 0x77, 0x61, 0x70, 0x70, 0x65, - 0x64, 0x3d, 0x22, 0x79, 0x65, 0x73, 0x22, 0x2f, - 0x3e, 0x3c, 0x2f, 0x6f, 0x62, 0x6a, 0x65, 0x63, - 0x74, 0x3e, 0x3c, 0x70, 0x61, 0x63, 0x6b, 0x69, - 0x6e, 0x67, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, - 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, - 0x65, 0x3d, 0x22, 0x6c, 0x65, 0x66, 0x74, 0x5f, - 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x22, 0x3e, - 0x31, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, - 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, - 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, - 0x6d, 0x65, 0x3d, 0x22, 0x74, 0x6f, 0x70, 0x5f, - 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x22, 0x3e, - 0x31, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, - 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, - 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, - 0x6d, 0x65, 0x3d, 0x22, 0x77, 0x69, 0x64, 0x74, - 0x68, 0x22, 0x3e, 0x31, 0x3c, 0x2f, 0x70, 0x72, - 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, - 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, - 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x68, - 0x65, 0x69, 0x67, 0x68, 0x74, 0x22, 0x3e, 0x31, - 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, - 0x74, 0x79, 0x3e, 0x3c, 0x2f, 0x70, 0x61, 0x63, - 0x6b, 0x69, 0x6e, 0x67, 0x3e, 0x3c, 0x2f, 0x63, - 0x68, 0x69, 0x6c, 0x64, 0x3e, 0x3c, 0x63, 0x68, - 0x69, 0x6c, 0x64, 0x3e, 0x3c, 0x6f, 0x62, 0x6a, - 0x65, 0x63, 0x74, 0x20, 0x63, 0x6c, 0x61, 0x73, - 0x73, 0x3d, 0x22, 0x47, 0x74, 0x6b, 0x4c, 0x61, - 0x62, 0x65, 0x6c, 0x22, 0x20, 0x69, 0x64, 0x3d, - 0x22, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x5f, 0x6f, - 0x63, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, - 0x65, 0x73, 0x22, 0x3e, 0x3c, 0x70, 0x72, 0x6f, - 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, - 0x6d, 0x65, 0x3d, 0x22, 0x76, 0x69, 0x73, 0x69, - 0x62, 0x6c, 0x65, 0x22, 0x3e, 0x54, 0x72, 0x75, - 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, - 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, - 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, - 0x6d, 0x65, 0x3d, 0x22, 0x63, 0x61, 0x6e, 0x5f, - 0x66, 0x6f, 0x63, 0x75, 0x73, 0x22, 0x3e, 0x46, - 0x61, 0x6c, 0x73, 0x65, 0x3c, 0x2f, 0x70, 0x72, - 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, - 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, - 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x68, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x22, 0x3e, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x3c, 0x2f, 0x70, 0x72, - 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, - 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, - 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x6c, - 0x61, 0x62, 0x65, 0x6c, 0x22, 0x3e, 0x30, 0x20, - 0x6f, 0x63, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, - 0x63, 0x65, 0x73, 0x3c, 0x2f, 0x70, 0x72, 0x6f, - 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x2f, - 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x3e, 0x3c, - 0x70, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x3e, - 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, - 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, - 0x6c, 0x65, 0x66, 0x74, 0x5f, 0x61, 0x74, 0x74, - 0x61, 0x63, 0x68, 0x22, 0x3e, 0x34, 0x3c, 0x2f, - 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, - 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, - 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, - 0x22, 0x74, 0x6f, 0x70, 0x5f, 0x61, 0x74, 0x74, - 0x61, 0x63, 0x68, 0x22, 0x3e, 0x31, 0x3c, 0x2f, - 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, - 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, - 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, - 0x22, 0x77, 0x69, 0x64, 0x74, 0x68, 0x22, 0x3e, - 0x31, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, - 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, - 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, - 0x6d, 0x65, 0x3d, 0x22, 0x68, 0x65, 0x69, 0x67, - 0x68, 0x74, 0x22, 0x3e, 0x31, 0x3c, 0x2f, 0x70, - 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, - 0x3c, 0x2f, 0x70, 0x61, 0x63, 0x6b, 0x69, 0x6e, - 0x67, 0x3e, 0x3c, 0x2f, 0x63, 0x68, 0x69, 0x6c, - 0x64, 0x3e, 0x3c, 0x63, 0x68, 0x69, 0x6c, 0x64, - 0x3e, 0x3c, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, - 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, - 0x47, 0x74, 0x6b, 0x42, 0x75, 0x74, 0x74, 0x6f, - 0x6e, 0x22, 0x20, 0x69, 0x64, 0x3d, 0x22, 0x62, - 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x5f, 0x70, 0x72, - 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x22, 0x3e, - 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, - 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, - 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x22, - 0x3e, 0x54, 0x72, 0x75, 0x65, 0x3c, 0x2f, 0x70, - 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, - 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, - 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, - 0x63, 0x61, 0x6e, 0x5f, 0x66, 0x6f, 0x63, 0x75, - 0x73, 0x22, 0x3e, 0x54, 0x72, 0x75, 0x65, 0x3c, - 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, - 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, - 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, - 0x3d, 0x22, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, - 0x65, 0x73, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, - 0x6c, 0x74, 0x22, 0x3e, 0x54, 0x72, 0x75, 0x65, - 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, - 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, - 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, - 0x65, 0x3d, 0x22, 0x68, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x22, 0x3e, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, - 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, - 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, - 0x65, 0x3d, 0x22, 0x69, 0x6d, 0x61, 0x67, 0x65, - 0x22, 0x3e, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x31, - 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, - 0x74, 0x79, 0x3e, 0x3c, 0x73, 0x69, 0x67, 0x6e, - 0x61, 0x6c, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, - 0x22, 0x63, 0x6c, 0x69, 0x63, 0x6b, 0x65, 0x64, - 0x22, 0x20, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, - 0x72, 0x3d, 0x22, 0x62, 0x75, 0x74, 0x74, 0x6f, - 0x6e, 0x5f, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, - 0x75, 0x73, 0x5f, 0x63, 0x6c, 0x69, 0x63, 0x6b, - 0x65, 0x64, 0x5f, 0x63, 0x62, 0x22, 0x20, 0x6f, - 0x62, 0x6a, 0x65, 0x63, 0x74, 0x3d, 0x22, 0x54, - 0x65, 0x73, 0x74, 0x53, 0x65, 0x61, 0x72, 0x63, - 0x68, 0x22, 0x20, 0x73, 0x77, 0x61, 0x70, 0x70, - 0x65, 0x64, 0x3d, 0x22, 0x79, 0x65, 0x73, 0x22, - 0x2f, 0x3e, 0x3c, 0x2f, 0x6f, 0x62, 0x6a, 0x65, - 0x63, 0x74, 0x3e, 0x3c, 0x70, 0x61, 0x63, 0x6b, - 0x69, 0x6e, 0x67, 0x3e, 0x3c, 0x70, 0x72, 0x6f, - 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, - 0x6d, 0x65, 0x3d, 0x22, 0x6c, 0x65, 0x66, 0x74, - 0x5f, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x22, - 0x3e, 0x32, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, - 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, - 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, - 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x74, 0x6f, 0x70, - 0x5f, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x22, - 0x3e, 0x31, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, - 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, - 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, - 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x77, 0x69, 0x64, - 0x74, 0x68, 0x22, 0x3e, 0x31, 0x3c, 0x2f, 0x70, - 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, - 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, - 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, - 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x22, 0x3e, - 0x31, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, - 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x2f, 0x70, 0x61, - 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x3e, 0x3c, 0x2f, - 0x63, 0x68, 0x69, 0x6c, 0x64, 0x3e, 0x3c, 0x63, - 0x68, 0x69, 0x6c, 0x64, 0x3e, 0x3c, 0x6f, 0x62, - 0x6a, 0x65, 0x63, 0x74, 0x20, 0x63, 0x6c, 0x61, - 0x73, 0x73, 0x3d, 0x22, 0x47, 0x74, 0x6b, 0x42, - 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x22, 0x20, 0x69, - 0x64, 0x3d, 0x22, 0x62, 0x75, 0x74, 0x74, 0x6f, - 0x6e, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x22, 0x3e, - 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, - 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, - 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x22, - 0x3e, 0x54, 0x72, 0x75, 0x65, 0x3c, 0x2f, 0x70, - 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, - 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, - 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, - 0x63, 0x61, 0x6e, 0x5f, 0x66, 0x6f, 0x63, 0x75, - 0x73, 0x22, 0x3e, 0x54, 0x72, 0x75, 0x65, 0x3c, - 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, - 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, - 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, - 0x3d, 0x22, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, - 0x65, 0x73, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, - 0x6c, 0x74, 0x22, 0x3e, 0x54, 0x72, 0x75, 0x65, - 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, - 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, - 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, - 0x65, 0x3d, 0x22, 0x68, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x22, 0x3e, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, - 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, - 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, - 0x65, 0x3d, 0x22, 0x69, 0x6d, 0x61, 0x67, 0x65, - 0x22, 0x3e, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x32, - 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, - 0x74, 0x79, 0x3e, 0x3c, 0x73, 0x69, 0x67, 0x6e, - 0x61, 0x6c, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, - 0x22, 0x63, 0x6c, 0x69, 0x63, 0x6b, 0x65, 0x64, - 0x22, 0x20, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, - 0x72, 0x3d, 0x22, 0x62, 0x75, 0x74, 0x74, 0x6f, - 0x6e, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x63, - 0x6c, 0x69, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x63, - 0x62, 0x22, 0x20, 0x6f, 0x62, 0x6a, 0x65, 0x63, - 0x74, 0x3d, 0x22, 0x54, 0x65, 0x73, 0x74, 0x53, - 0x65, 0x61, 0x72, 0x63, 0x68, 0x22, 0x20, 0x73, - 0x77, 0x61, 0x70, 0x70, 0x65, 0x64, 0x3d, 0x22, - 0x79, 0x65, 0x73, 0x22, 0x2f, 0x3e, 0x3c, 0x2f, - 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x3e, 0x3c, - 0x70, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x3e, - 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, - 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, - 0x6c, 0x65, 0x66, 0x74, 0x5f, 0x61, 0x74, 0x74, - 0x61, 0x63, 0x68, 0x22, 0x3e, 0x33, 0x3c, 0x2f, - 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, - 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, - 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, - 0x22, 0x74, 0x6f, 0x70, 0x5f, 0x61, 0x74, 0x74, - 0x61, 0x63, 0x68, 0x22, 0x3e, 0x31, 0x3c, 0x2f, - 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, - 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, - 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, - 0x22, 0x77, 0x69, 0x64, 0x74, 0x68, 0x22, 0x3e, - 0x31, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, - 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, - 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, - 0x6d, 0x65, 0x3d, 0x22, 0x68, 0x65, 0x69, 0x67, - 0x68, 0x74, 0x22, 0x3e, 0x31, 0x3c, 0x2f, 0x70, - 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, - 0x3c, 0x2f, 0x70, 0x61, 0x63, 0x6b, 0x69, 0x6e, - 0x67, 0x3e, 0x3c, 0x2f, 0x63, 0x68, 0x69, 0x6c, - 0x64, 0x3e, 0x3c, 0x63, 0x68, 0x69, 0x6c, 0x64, - 0x3e, 0x3c, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, - 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, - 0x47, 0x74, 0x6b, 0x4c, 0x61, 0x62, 0x65, 0x6c, - 0x22, 0x20, 0x69, 0x64, 0x3d, 0x22, 0x6c, 0x61, - 0x62, 0x65, 0x6c, 0x5f, 0x72, 0x65, 0x67, 0x65, - 0x78, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x22, - 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, - 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, - 0x22, 0x63, 0x61, 0x6e, 0x5f, 0x66, 0x6f, 0x63, - 0x75, 0x73, 0x22, 0x3e, 0x46, 0x61, 0x6c, 0x73, - 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, - 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, - 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, - 0x6d, 0x65, 0x3d, 0x22, 0x68, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x22, 0x3e, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, - 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, - 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, - 0x6d, 0x65, 0x3d, 0x22, 0x78, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x22, 0x3e, 0x30, 0x3c, 0x2f, 0x70, - 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, - 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, - 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, - 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, 0x3e, 0x52, - 0x65, 0x67, 0x65, 0x78, 0x20, 0x73, 0x65, 0x61, - 0x72, 0x63, 0x68, 0x20, 0x65, 0x72, 0x72, 0x6f, - 0x72, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, - 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, - 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, - 0x6d, 0x65, 0x3d, 0x22, 0x77, 0x72, 0x61, 0x70, - 0x22, 0x3e, 0x54, 0x72, 0x75, 0x65, 0x3c, 0x2f, - 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, - 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, - 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, - 0x22, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x61, - 0x62, 0x6c, 0x65, 0x22, 0x3e, 0x54, 0x72, 0x75, - 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, - 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, - 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, - 0x6d, 0x65, 0x3d, 0x22, 0x6d, 0x61, 0x78, 0x5f, - 0x77, 0x69, 0x64, 0x74, 0x68, 0x5f, 0x63, 0x68, - 0x61, 0x72, 0x73, 0x22, 0x3e, 0x37, 0x32, 0x3c, - 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, - 0x79, 0x3e, 0x3c, 0x61, 0x74, 0x74, 0x72, 0x69, - 0x62, 0x75, 0x74, 0x65, 0x73, 0x3e, 0x3c, 0x61, - 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, - 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x66, - 0x6f, 0x72, 0x65, 0x67, 0x72, 0x6f, 0x75, 0x6e, - 0x64, 0x22, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x3d, 0x22, 0x23, 0x63, 0x63, 0x63, 0x63, 0x30, - 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x22, - 0x2f, 0x3e, 0x3c, 0x2f, 0x61, 0x74, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x3e, 0x3c, - 0x2f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x3e, - 0x3c, 0x70, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, - 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, - 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, - 0x22, 0x6c, 0x65, 0x66, 0x74, 0x5f, 0x61, 0x74, - 0x74, 0x61, 0x63, 0x68, 0x22, 0x3e, 0x31, 0x3c, - 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, - 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, - 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, - 0x3d, 0x22, 0x74, 0x6f, 0x70, 0x5f, 0x61, 0x74, - 0x74, 0x61, 0x63, 0x68, 0x22, 0x3e, 0x30, 0x3c, - 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, - 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, - 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, - 0x3d, 0x22, 0x77, 0x69, 0x64, 0x74, 0x68, 0x22, - 0x3e, 0x34, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, - 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, - 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, - 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x68, 0x65, 0x69, - 0x67, 0x68, 0x74, 0x22, 0x3e, 0x31, 0x3c, 0x2f, - 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, - 0x3e, 0x3c, 0x2f, 0x70, 0x61, 0x63, 0x6b, 0x69, - 0x6e, 0x67, 0x3e, 0x3c, 0x2f, 0x63, 0x68, 0x69, - 0x6c, 0x64, 0x3e, 0x3c, 0x63, 0x68, 0x69, 0x6c, - 0x64, 0x3e, 0x3c, 0x70, 0x6c, 0x61, 0x63, 0x65, - 0x68, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x2f, 0x3e, - 0x3c, 0x2f, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x3e, - 0x3c, 0x2f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, - 0x3e, 0x3c, 0x70, 0x61, 0x63, 0x6b, 0x69, 0x6e, - 0x67, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, - 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, - 0x3d, 0x22, 0x6c, 0x65, 0x66, 0x74, 0x5f, 0x61, - 0x74, 0x74, 0x61, 0x63, 0x68, 0x22, 0x3e, 0x30, - 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, - 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, - 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, - 0x65, 0x3d, 0x22, 0x74, 0x6f, 0x70, 0x5f, 0x61, - 0x74, 0x74, 0x61, 0x63, 0x68, 0x22, 0x3e, 0x31, - 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, - 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, - 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, - 0x65, 0x3d, 0x22, 0x77, 0x69, 0x64, 0x74, 0x68, - 0x22, 0x3e, 0x31, 0x3c, 0x2f, 0x70, 0x72, 0x6f, - 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, - 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, - 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x68, 0x65, - 0x69, 0x67, 0x68, 0x74, 0x22, 0x3e, 0x31, 0x3c, - 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, - 0x79, 0x3e, 0x3c, 0x2f, 0x70, 0x61, 0x63, 0x6b, - 0x69, 0x6e, 0x67, 0x3e, 0x3c, 0x2f, 0x63, 0x68, - 0x69, 0x6c, 0x64, 0x3e, 0x3c, 0x63, 0x68, 0x69, - 0x6c, 0x64, 0x3e, 0x3c, 0x6f, 0x62, 0x6a, 0x65, - 0x63, 0x74, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, - 0x3d, 0x22, 0x47, 0x74, 0x6b, 0x47, 0x72, 0x69, - 0x64, 0x22, 0x20, 0x69, 0x64, 0x3d, 0x22, 0x67, - 0x72, 0x69, 0x64, 0x33, 0x22, 0x3e, 0x3c, 0x70, - 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, - 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x76, 0x69, - 0x73, 0x69, 0x62, 0x6c, 0x65, 0x22, 0x3e, 0x54, - 0x72, 0x75, 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, - 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, - 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, - 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x63, 0x61, - 0x6e, 0x5f, 0x66, 0x6f, 0x63, 0x75, 0x73, 0x22, - 0x3e, 0x46, 0x61, 0x6c, 0x73, 0x65, 0x3c, 0x2f, - 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, - 0x3e, 0x3c, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x3e, - 0x3c, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x20, - 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x47, - 0x74, 0x6b, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x42, - 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x22, 0x20, 0x69, - 0x64, 0x3d, 0x22, 0x63, 0x68, 0x65, 0x63, 0x6b, - 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x5f, 0x6d, - 0x61, 0x74, 0x63, 0x68, 0x5f, 0x63, 0x61, 0x73, - 0x65, 0x22, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, - 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, - 0x65, 0x3d, 0x22, 0x6c, 0x61, 0x62, 0x65, 0x6c, - 0x22, 0x3e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x20, - 0x63, 0x61, 0x73, 0x65, 0x3c, 0x2f, 0x70, 0x72, - 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, - 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, - 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x76, - 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x22, 0x3e, - 0x54, 0x72, 0x75, 0x65, 0x3c, 0x2f, 0x70, 0x72, - 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, - 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, - 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x63, - 0x61, 0x6e, 0x5f, 0x66, 0x6f, 0x63, 0x75, 0x73, - 0x22, 0x3e, 0x54, 0x72, 0x75, 0x65, 0x3c, 0x2f, - 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, - 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, - 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, - 0x22, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, - 0x73, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, - 0x74, 0x22, 0x3e, 0x46, 0x61, 0x6c, 0x73, 0x65, - 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, - 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, - 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, - 0x65, 0x3d, 0x22, 0x78, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x22, 0x3e, 0x30, 0x3c, 0x2f, 0x70, 0x72, - 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, - 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, - 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x64, - 0x72, 0x61, 0x77, 0x5f, 0x69, 0x6e, 0x64, 0x69, - 0x63, 0x61, 0x74, 0x6f, 0x72, 0x22, 0x3e, 0x54, - 0x72, 0x75, 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, - 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x73, - 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x6e, 0x61, - 0x6d, 0x65, 0x3d, 0x22, 0x74, 0x6f, 0x67, 0x67, - 0x6c, 0x65, 0x64, 0x22, 0x20, 0x68, 0x61, 0x6e, - 0x64, 0x6c, 0x65, 0x72, 0x3d, 0x22, 0x6d, 0x61, - 0x74, 0x63, 0x68, 0x5f, 0x63, 0x61, 0x73, 0x65, - 0x5f, 0x74, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x64, - 0x5f, 0x63, 0x62, 0x22, 0x20, 0x6f, 0x62, 0x6a, - 0x65, 0x63, 0x74, 0x3d, 0x22, 0x54, 0x65, 0x73, - 0x74, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x22, - 0x20, 0x73, 0x77, 0x61, 0x70, 0x70, 0x65, 0x64, - 0x3d, 0x22, 0x79, 0x65, 0x73, 0x22, 0x2f, 0x3e, - 0x3c, 0x2f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, - 0x3e, 0x3c, 0x70, 0x61, 0x63, 0x6b, 0x69, 0x6e, - 0x67, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, - 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, - 0x3d, 0x22, 0x6c, 0x65, 0x66, 0x74, 0x5f, 0x61, - 0x74, 0x74, 0x61, 0x63, 0x68, 0x22, 0x3e, 0x30, - 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, - 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, - 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, - 0x65, 0x3d, 0x22, 0x74, 0x6f, 0x70, 0x5f, 0x61, - 0x74, 0x74, 0x61, 0x63, 0x68, 0x22, 0x3e, 0x31, - 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, - 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, - 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, - 0x65, 0x3d, 0x22, 0x77, 0x69, 0x64, 0x74, 0x68, - 0x22, 0x3e, 0x31, 0x3c, 0x2f, 0x70, 0x72, 0x6f, - 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, - 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, - 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x68, 0x65, - 0x69, 0x67, 0x68, 0x74, 0x22, 0x3e, 0x31, 0x3c, - 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, - 0x79, 0x3e, 0x3c, 0x2f, 0x70, 0x61, 0x63, 0x6b, - 0x69, 0x6e, 0x67, 0x3e, 0x3c, 0x2f, 0x63, 0x68, - 0x69, 0x6c, 0x64, 0x3e, 0x3c, 0x63, 0x68, 0x69, - 0x6c, 0x64, 0x3e, 0x3c, 0x6f, 0x62, 0x6a, 0x65, - 0x63, 0x74, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, - 0x3d, 0x22, 0x47, 0x74, 0x6b, 0x43, 0x68, 0x65, - 0x63, 0x6b, 0x42, 0x75, 0x74, 0x74, 0x6f, 0x6e, - 0x22, 0x20, 0x69, 0x64, 0x3d, 0x22, 0x63, 0x68, - 0x65, 0x63, 0x6b, 0x62, 0x75, 0x74, 0x74, 0x6f, - 0x6e, 0x5f, 0x61, 0x74, 0x5f, 0x77, 0x6f, 0x72, - 0x64, 0x5f, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x61, - 0x72, 0x69, 0x65, 0x73, 0x22, 0x3e, 0x3c, 0x70, - 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, - 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x6c, 0x61, - 0x62, 0x65, 0x6c, 0x22, 0x3e, 0x41, 0x74, 0x20, - 0x77, 0x6f, 0x72, 0x64, 0x20, 0x62, 0x6f, 0x75, - 0x6e, 0x64, 0x61, 0x72, 0x69, 0x65, 0x73, 0x3c, - 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, - 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, - 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, - 0x3d, 0x22, 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, - 0x65, 0x22, 0x3e, 0x54, 0x72, 0x75, 0x65, 0x3c, - 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, - 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, - 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, - 0x3d, 0x22, 0x63, 0x61, 0x6e, 0x5f, 0x66, 0x6f, - 0x63, 0x75, 0x73, 0x22, 0x3e, 0x54, 0x72, 0x75, - 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, - 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, - 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, - 0x6d, 0x65, 0x3d, 0x22, 0x72, 0x65, 0x63, 0x65, - 0x69, 0x76, 0x65, 0x73, 0x5f, 0x64, 0x65, 0x66, - 0x61, 0x75, 0x6c, 0x74, 0x22, 0x3e, 0x46, 0x61, - 0x6c, 0x73, 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, - 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, - 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, - 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x78, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x22, 0x3e, 0x30, 0x3c, - 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, - 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, - 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, - 0x3d, 0x22, 0x64, 0x72, 0x61, 0x77, 0x5f, 0x69, - 0x6e, 0x64, 0x69, 0x63, 0x61, 0x74, 0x6f, 0x72, - 0x22, 0x3e, 0x54, 0x72, 0x75, 0x65, 0x3c, 0x2f, - 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, - 0x3e, 0x3c, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, - 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x74, - 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x64, 0x22, 0x20, - 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x72, 0x3d, - 0x22, 0x61, 0x74, 0x5f, 0x77, 0x6f, 0x72, 0x64, - 0x5f, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x72, - 0x69, 0x65, 0x73, 0x5f, 0x74, 0x6f, 0x67, 0x67, - 0x6c, 0x65, 0x64, 0x5f, 0x63, 0x62, 0x22, 0x20, - 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x3d, 0x22, - 0x54, 0x65, 0x73, 0x74, 0x53, 0x65, 0x61, 0x72, - 0x63, 0x68, 0x22, 0x20, 0x73, 0x77, 0x61, 0x70, - 0x70, 0x65, 0x64, 0x3d, 0x22, 0x79, 0x65, 0x73, - 0x22, 0x2f, 0x3e, 0x3c, 0x2f, 0x6f, 0x62, 0x6a, - 0x65, 0x63, 0x74, 0x3e, 0x3c, 0x70, 0x61, 0x63, - 0x6b, 0x69, 0x6e, 0x67, 0x3e, 0x3c, 0x70, 0x72, - 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, - 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x6c, 0x65, 0x66, - 0x74, 0x5f, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, - 0x22, 0x3e, 0x30, 0x3c, 0x2f, 0x70, 0x72, 0x6f, - 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, - 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, - 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x74, 0x6f, - 0x70, 0x5f, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, - 0x22, 0x3e, 0x32, 0x3c, 0x2f, 0x70, 0x72, 0x6f, - 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, - 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, - 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x77, 0x69, - 0x64, 0x74, 0x68, 0x22, 0x3e, 0x31, 0x3c, 0x2f, - 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, - 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, - 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, - 0x22, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x22, - 0x3e, 0x31, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, - 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x2f, 0x70, - 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x3e, 0x3c, - 0x2f, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x3e, 0x3c, - 0x63, 0x68, 0x69, 0x6c, 0x64, 0x3e, 0x3c, 0x6f, - 0x62, 0x6a, 0x65, 0x63, 0x74, 0x20, 0x63, 0x6c, - 0x61, 0x73, 0x73, 0x3d, 0x22, 0x47, 0x74, 0x6b, - 0x43, 0x68, 0x65, 0x63, 0x6b, 0x42, 0x75, 0x74, - 0x74, 0x6f, 0x6e, 0x22, 0x20, 0x69, 0x64, 0x3d, - 0x22, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x62, 0x75, - 0x74, 0x74, 0x6f, 0x6e, 0x5f, 0x77, 0x72, 0x61, - 0x70, 0x5f, 0x61, 0x72, 0x6f, 0x75, 0x6e, 0x64, - 0x22, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, - 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, - 0x3d, 0x22, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, - 0x3e, 0x57, 0x72, 0x61, 0x70, 0x20, 0x61, 0x72, - 0x6f, 0x75, 0x6e, 0x64, 0x3c, 0x2f, 0x70, 0x72, - 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, - 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, - 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x76, - 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x22, 0x3e, - 0x54, 0x72, 0x75, 0x65, 0x3c, 0x2f, 0x70, 0x72, - 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, - 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, - 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x63, - 0x61, 0x6e, 0x5f, 0x66, 0x6f, 0x63, 0x75, 0x73, - 0x22, 0x3e, 0x54, 0x72, 0x75, 0x65, 0x3c, 0x2f, - 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, - 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, - 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, - 0x22, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, - 0x73, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, - 0x74, 0x22, 0x3e, 0x46, 0x61, 0x6c, 0x73, 0x65, - 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, - 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, - 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, - 0x65, 0x3d, 0x22, 0x78, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x22, 0x3e, 0x30, 0x3c, 0x2f, 0x70, 0x72, - 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, - 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, - 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x64, - 0x72, 0x61, 0x77, 0x5f, 0x69, 0x6e, 0x64, 0x69, - 0x63, 0x61, 0x74, 0x6f, 0x72, 0x22, 0x3e, 0x54, - 0x72, 0x75, 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, - 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x73, - 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x6e, 0x61, - 0x6d, 0x65, 0x3d, 0x22, 0x74, 0x6f, 0x67, 0x67, - 0x6c, 0x65, 0x64, 0x22, 0x20, 0x68, 0x61, 0x6e, - 0x64, 0x6c, 0x65, 0x72, 0x3d, 0x22, 0x77, 0x72, - 0x61, 0x70, 0x5f, 0x61, 0x72, 0x6f, 0x75, 0x6e, - 0x64, 0x5f, 0x74, 0x6f, 0x67, 0x67, 0x6c, 0x65, - 0x64, 0x5f, 0x63, 0x62, 0x22, 0x20, 0x6f, 0x62, - 0x6a, 0x65, 0x63, 0x74, 0x3d, 0x22, 0x54, 0x65, - 0x73, 0x74, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, - 0x22, 0x20, 0x73, 0x77, 0x61, 0x70, 0x70, 0x65, - 0x64, 0x3d, 0x22, 0x79, 0x65, 0x73, 0x22, 0x2f, - 0x3e, 0x3c, 0x2f, 0x6f, 0x62, 0x6a, 0x65, 0x63, - 0x74, 0x3e, 0x3c, 0x70, 0x61, 0x63, 0x6b, 0x69, - 0x6e, 0x67, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, - 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, - 0x65, 0x3d, 0x22, 0x6c, 0x65, 0x66, 0x74, 0x5f, - 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x22, 0x3e, - 0x30, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, - 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, - 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, - 0x6d, 0x65, 0x3d, 0x22, 0x74, 0x6f, 0x70, 0x5f, - 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x22, 0x3e, - 0x33, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, - 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, - 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, - 0x6d, 0x65, 0x3d, 0x22, 0x77, 0x69, 0x64, 0x74, - 0x68, 0x22, 0x3e, 0x31, 0x3c, 0x2f, 0x70, 0x72, - 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, - 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, - 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x68, - 0x65, 0x69, 0x67, 0x68, 0x74, 0x22, 0x3e, 0x31, - 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, - 0x74, 0x79, 0x3e, 0x3c, 0x2f, 0x70, 0x61, 0x63, - 0x6b, 0x69, 0x6e, 0x67, 0x3e, 0x3c, 0x2f, 0x63, - 0x68, 0x69, 0x6c, 0x64, 0x3e, 0x3c, 0x63, 0x68, - 0x69, 0x6c, 0x64, 0x3e, 0x3c, 0x6f, 0x62, 0x6a, - 0x65, 0x63, 0x74, 0x20, 0x63, 0x6c, 0x61, 0x73, - 0x73, 0x3d, 0x22, 0x47, 0x74, 0x6b, 0x43, 0x68, - 0x65, 0x63, 0x6b, 0x42, 0x75, 0x74, 0x74, 0x6f, - 0x6e, 0x22, 0x20, 0x69, 0x64, 0x3d, 0x22, 0x63, - 0x68, 0x65, 0x63, 0x6b, 0x62, 0x75, 0x74, 0x74, - 0x6f, 0x6e, 0x5f, 0x68, 0x69, 0x67, 0x68, 0x6c, - 0x69, 0x67, 0x68, 0x74, 0x22, 0x3e, 0x3c, 0x70, - 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, - 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x6c, 0x61, - 0x62, 0x65, 0x6c, 0x22, 0x3e, 0x48, 0x69, 0x67, - 0x68, 0x6c, 0x69, 0x67, 0x68, 0x74, 0x20, 0x73, - 0x65, 0x61, 0x72, 0x63, 0x68, 0x20, 0x6f, 0x63, - 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x65, - 0x73, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, - 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, - 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, - 0x6d, 0x65, 0x3d, 0x22, 0x76, 0x69, 0x73, 0x69, - 0x62, 0x6c, 0x65, 0x22, 0x3e, 0x54, 0x72, 0x75, - 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, - 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, - 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, - 0x6d, 0x65, 0x3d, 0x22, 0x63, 0x61, 0x6e, 0x5f, - 0x66, 0x6f, 0x63, 0x75, 0x73, 0x22, 0x3e, 0x54, - 0x72, 0x75, 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, - 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, - 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, - 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x72, 0x65, - 0x63, 0x65, 0x69, 0x76, 0x65, 0x73, 0x5f, 0x64, - 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x22, 0x3e, - 0x46, 0x61, 0x6c, 0x73, 0x65, 0x3c, 0x2f, 0x70, - 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, - 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, - 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, - 0x78, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x22, 0x3e, - 0x30, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, - 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, - 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, - 0x6d, 0x65, 0x3d, 0x22, 0x61, 0x63, 0x74, 0x69, - 0x76, 0x65, 0x22, 0x3e, 0x54, 0x72, 0x75, 0x65, - 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, - 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, - 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, - 0x65, 0x3d, 0x22, 0x64, 0x72, 0x61, 0x77, 0x5f, - 0x69, 0x6e, 0x64, 0x69, 0x63, 0x61, 0x74, 0x6f, - 0x72, 0x22, 0x3e, 0x54, 0x72, 0x75, 0x65, 0x3c, - 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, - 0x79, 0x3e, 0x3c, 0x73, 0x69, 0x67, 0x6e, 0x61, - 0x6c, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, - 0x74, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x64, 0x22, - 0x20, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x72, - 0x3d, 0x22, 0x68, 0x69, 0x67, 0x68, 0x6c, 0x69, - 0x67, 0x68, 0x74, 0x5f, 0x74, 0x6f, 0x67, 0x67, - 0x6c, 0x65, 0x64, 0x5f, 0x63, 0x62, 0x22, 0x20, - 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x3d, 0x22, - 0x54, 0x65, 0x73, 0x74, 0x53, 0x65, 0x61, 0x72, - 0x63, 0x68, 0x22, 0x20, 0x73, 0x77, 0x61, 0x70, - 0x70, 0x65, 0x64, 0x3d, 0x22, 0x79, 0x65, 0x73, - 0x22, 0x2f, 0x3e, 0x3c, 0x2f, 0x6f, 0x62, 0x6a, - 0x65, 0x63, 0x74, 0x3e, 0x3c, 0x70, 0x61, 0x63, - 0x6b, 0x69, 0x6e, 0x67, 0x3e, 0x3c, 0x70, 0x72, - 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, - 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x6c, 0x65, 0x66, - 0x74, 0x5f, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, - 0x22, 0x3e, 0x30, 0x3c, 0x2f, 0x70, 0x72, 0x6f, - 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, - 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, - 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x74, 0x6f, - 0x70, 0x5f, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, - 0x22, 0x3e, 0x30, 0x3c, 0x2f, 0x70, 0x72, 0x6f, - 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, - 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, - 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x77, 0x69, - 0x64, 0x74, 0x68, 0x22, 0x3e, 0x31, 0x3c, 0x2f, - 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, - 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, - 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, - 0x22, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x22, - 0x3e, 0x31, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, - 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x2f, 0x70, - 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x3e, 0x3c, - 0x2f, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x3e, 0x3c, - 0x63, 0x68, 0x69, 0x6c, 0x64, 0x3e, 0x3c, 0x6f, - 0x62, 0x6a, 0x65, 0x63, 0x74, 0x20, 0x63, 0x6c, - 0x61, 0x73, 0x73, 0x3d, 0x22, 0x47, 0x74, 0x6b, - 0x43, 0x68, 0x65, 0x63, 0x6b, 0x42, 0x75, 0x74, - 0x74, 0x6f, 0x6e, 0x22, 0x20, 0x69, 0x64, 0x3d, - 0x22, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x62, 0x75, - 0x74, 0x74, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x67, - 0x65, 0x78, 0x22, 0x3e, 0x3c, 0x70, 0x72, 0x6f, - 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, - 0x6d, 0x65, 0x3d, 0x22, 0x6c, 0x61, 0x62, 0x65, - 0x6c, 0x22, 0x3e, 0x52, 0x65, 0x67, 0x65, 0x78, - 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, - 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, - 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, - 0x65, 0x3d, 0x22, 0x76, 0x69, 0x73, 0x69, 0x62, - 0x6c, 0x65, 0x22, 0x3e, 0x54, 0x72, 0x75, 0x65, - 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, - 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, - 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, - 0x65, 0x3d, 0x22, 0x63, 0x61, 0x6e, 0x5f, 0x66, - 0x6f, 0x63, 0x75, 0x73, 0x22, 0x3e, 0x54, 0x72, - 0x75, 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, - 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, - 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, - 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x72, 0x65, 0x63, - 0x65, 0x69, 0x76, 0x65, 0x73, 0x5f, 0x64, 0x65, - 0x66, 0x61, 0x75, 0x6c, 0x74, 0x22, 0x3e, 0x46, - 0x61, 0x6c, 0x73, 0x65, 0x3c, 0x2f, 0x70, 0x72, - 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, - 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, - 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x78, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x22, 0x3e, 0x30, - 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, - 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, - 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, - 0x65, 0x3d, 0x22, 0x64, 0x72, 0x61, 0x77, 0x5f, - 0x69, 0x6e, 0x64, 0x69, 0x63, 0x61, 0x74, 0x6f, - 0x72, 0x22, 0x3e, 0x54, 0x72, 0x75, 0x65, 0x3c, - 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, - 0x79, 0x3e, 0x3c, 0x73, 0x69, 0x67, 0x6e, 0x61, - 0x6c, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, - 0x74, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x64, 0x22, - 0x20, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x72, - 0x3d, 0x22, 0x72, 0x65, 0x67, 0x65, 0x78, 0x5f, - 0x74, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x64, 0x5f, - 0x63, 0x62, 0x22, 0x20, 0x6f, 0x62, 0x6a, 0x65, - 0x63, 0x74, 0x3d, 0x22, 0x54, 0x65, 0x73, 0x74, - 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x22, 0x20, - 0x73, 0x77, 0x61, 0x70, 0x70, 0x65, 0x64, 0x3d, - 0x22, 0x79, 0x65, 0x73, 0x22, 0x2f, 0x3e, 0x3c, - 0x2f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x3e, - 0x3c, 0x70, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, - 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, - 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, - 0x22, 0x6c, 0x65, 0x66, 0x74, 0x5f, 0x61, 0x74, - 0x74, 0x61, 0x63, 0x68, 0x22, 0x3e, 0x30, 0x3c, - 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, - 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, - 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, - 0x3d, 0x22, 0x74, 0x6f, 0x70, 0x5f, 0x61, 0x74, - 0x74, 0x61, 0x63, 0x68, 0x22, 0x3e, 0x34, 0x3c, - 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, - 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, - 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, - 0x3d, 0x22, 0x77, 0x69, 0x64, 0x74, 0x68, 0x22, - 0x3e, 0x31, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, - 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, - 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, - 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x68, 0x65, 0x69, - 0x67, 0x68, 0x74, 0x22, 0x3e, 0x31, 0x3c, 0x2f, - 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, - 0x3e, 0x3c, 0x2f, 0x70, 0x61, 0x63, 0x6b, 0x69, - 0x6e, 0x67, 0x3e, 0x3c, 0x2f, 0x63, 0x68, 0x69, - 0x6c, 0x64, 0x3e, 0x3c, 0x2f, 0x6f, 0x62, 0x6a, - 0x65, 0x63, 0x74, 0x3e, 0x3c, 0x70, 0x61, 0x63, - 0x6b, 0x69, 0x6e, 0x67, 0x3e, 0x3c, 0x70, 0x72, - 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, - 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x6c, 0x65, 0x66, - 0x74, 0x5f, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, - 0x22, 0x3e, 0x30, 0x3c, 0x2f, 0x70, 0x72, 0x6f, - 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, - 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, - 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x74, 0x6f, - 0x70, 0x5f, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, - 0x22, 0x3e, 0x32, 0x3c, 0x2f, 0x70, 0x72, 0x6f, - 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, - 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, - 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x77, 0x69, - 0x64, 0x74, 0x68, 0x22, 0x3e, 0x31, 0x3c, 0x2f, - 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, - 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, - 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, - 0x22, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x22, - 0x3e, 0x31, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, - 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x2f, 0x70, - 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x3e, 0x3c, - 0x2f, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x3e, 0x3c, - 0x63, 0x68, 0x69, 0x6c, 0x64, 0x3e, 0x3c, 0x6f, - 0x62, 0x6a, 0x65, 0x63, 0x74, 0x20, 0x63, 0x6c, - 0x61, 0x73, 0x73, 0x3d, 0x22, 0x47, 0x74, 0x6b, - 0x47, 0x72, 0x69, 0x64, 0x22, 0x20, 0x69, 0x64, - 0x3d, 0x22, 0x67, 0x72, 0x69, 0x64, 0x34, 0x22, - 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, - 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, - 0x22, 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, - 0x22, 0x3e, 0x54, 0x72, 0x75, 0x65, 0x3c, 0x2f, - 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, - 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, - 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, - 0x22, 0x63, 0x61, 0x6e, 0x5f, 0x66, 0x6f, 0x63, - 0x75, 0x73, 0x22, 0x3e, 0x46, 0x61, 0x6c, 0x73, - 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, - 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, - 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, - 0x6d, 0x65, 0x3d, 0x22, 0x63, 0x6f, 0x6c, 0x75, - 0x6d, 0x6e, 0x5f, 0x73, 0x70, 0x61, 0x63, 0x69, - 0x6e, 0x67, 0x22, 0x3e, 0x36, 0x3c, 0x2f, 0x70, - 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, - 0x3c, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x3e, 0x3c, - 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x20, 0x63, - 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x47, 0x74, - 0x6b, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x22, 0x20, - 0x69, 0x64, 0x3d, 0x22, 0x6c, 0x61, 0x62, 0x65, - 0x6c, 0x32, 0x22, 0x3e, 0x3c, 0x70, 0x72, 0x6f, - 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, - 0x6d, 0x65, 0x3d, 0x22, 0x76, 0x69, 0x73, 0x69, - 0x62, 0x6c, 0x65, 0x22, 0x3e, 0x54, 0x72, 0x75, - 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, - 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, - 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, - 0x6d, 0x65, 0x3d, 0x22, 0x63, 0x61, 0x6e, 0x5f, - 0x66, 0x6f, 0x63, 0x75, 0x73, 0x22, 0x3e, 0x46, - 0x61, 0x6c, 0x73, 0x65, 0x3c, 0x2f, 0x70, 0x72, - 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, - 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, - 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x78, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x22, 0x3e, 0x30, - 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, - 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, - 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, - 0x65, 0x3d, 0x22, 0x6c, 0x61, 0x62, 0x65, 0x6c, - 0x22, 0x3e, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x63, - 0x65, 0x3a, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, - 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x61, 0x74, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, - 0x3e, 0x3c, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, - 0x75, 0x74, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, - 0x3d, 0x22, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, - 0x22, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3d, - 0x22, 0x62, 0x6f, 0x6c, 0x64, 0x22, 0x2f, 0x3e, - 0x3c, 0x2f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, - 0x75, 0x74, 0x65, 0x73, 0x3e, 0x3c, 0x2f, 0x6f, - 0x62, 0x6a, 0x65, 0x63, 0x74, 0x3e, 0x3c, 0x70, - 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x3e, 0x3c, - 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, - 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x6c, - 0x65, 0x66, 0x74, 0x5f, 0x61, 0x74, 0x74, 0x61, - 0x63, 0x68, 0x22, 0x3e, 0x30, 0x3c, 0x2f, 0x70, - 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, - 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, - 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, - 0x74, 0x6f, 0x70, 0x5f, 0x61, 0x74, 0x74, 0x61, - 0x63, 0x68, 0x22, 0x3e, 0x30, 0x3c, 0x2f, 0x70, - 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, - 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, - 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, - 0x77, 0x69, 0x64, 0x74, 0x68, 0x22, 0x3e, 0x31, - 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, - 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, - 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, - 0x65, 0x3d, 0x22, 0x68, 0x65, 0x69, 0x67, 0x68, - 0x74, 0x22, 0x3e, 0x31, 0x3c, 0x2f, 0x70, 0x72, - 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, - 0x2f, 0x70, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, - 0x3e, 0x3c, 0x2f, 0x63, 0x68, 0x69, 0x6c, 0x64, - 0x3e, 0x3c, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x3e, - 0x3c, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x20, - 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x47, - 0x74, 0x6b, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x22, - 0x20, 0x69, 0x64, 0x3d, 0x22, 0x72, 0x65, 0x70, - 0x6c, 0x61, 0x63, 0x65, 0x5f, 0x65, 0x6e, 0x74, - 0x72, 0x79, 0x22, 0x3e, 0x3c, 0x70, 0x72, 0x6f, - 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, - 0x6d, 0x65, 0x3d, 0x22, 0x77, 0x69, 0x64, 0x74, - 0x68, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x22, 0x3e, 0x33, 0x30, 0x30, 0x3c, 0x2f, - 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, - 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, - 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, - 0x22, 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, - 0x22, 0x3e, 0x54, 0x72, 0x75, 0x65, 0x3c, 0x2f, - 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, - 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, - 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, - 0x22, 0x63, 0x61, 0x6e, 0x5f, 0x66, 0x6f, 0x63, - 0x75, 0x73, 0x22, 0x3e, 0x54, 0x72, 0x75, 0x65, - 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, - 0x74, 0x79, 0x3e, 0x3c, 0x2f, 0x6f, 0x62, 0x6a, - 0x65, 0x63, 0x74, 0x3e, 0x3c, 0x70, 0x61, 0x63, - 0x6b, 0x69, 0x6e, 0x67, 0x3e, 0x3c, 0x70, 0x72, - 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, - 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x6c, 0x65, 0x66, - 0x74, 0x5f, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, - 0x22, 0x3e, 0x31, 0x3c, 0x2f, 0x70, 0x72, 0x6f, - 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, - 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, - 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x74, 0x6f, - 0x70, 0x5f, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, - 0x22, 0x3e, 0x30, 0x3c, 0x2f, 0x70, 0x72, 0x6f, - 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, - 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, - 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x77, 0x69, - 0x64, 0x74, 0x68, 0x22, 0x3e, 0x31, 0x3c, 0x2f, - 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, - 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, - 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, - 0x22, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x22, - 0x3e, 0x31, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, - 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x2f, 0x70, - 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x3e, 0x3c, - 0x2f, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x3e, 0x3c, - 0x63, 0x68, 0x69, 0x6c, 0x64, 0x3e, 0x3c, 0x6f, - 0x62, 0x6a, 0x65, 0x63, 0x74, 0x20, 0x63, 0x6c, - 0x61, 0x73, 0x73, 0x3d, 0x22, 0x47, 0x74, 0x6b, - 0x42, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x22, 0x20, - 0x69, 0x64, 0x3d, 0x22, 0x62, 0x75, 0x74, 0x74, - 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x61, - 0x63, 0x65, 0x22, 0x3e, 0x3c, 0x70, 0x72, 0x6f, - 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, - 0x6d, 0x65, 0x3d, 0x22, 0x76, 0x69, 0x73, 0x69, - 0x62, 0x6c, 0x65, 0x22, 0x3e, 0x54, 0x72, 0x75, - 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, - 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, - 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, - 0x6d, 0x65, 0x3d, 0x22, 0x63, 0x61, 0x6e, 0x5f, - 0x66, 0x6f, 0x63, 0x75, 0x73, 0x22, 0x3e, 0x54, - 0x72, 0x75, 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, - 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, - 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, - 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x72, 0x65, - 0x63, 0x65, 0x69, 0x76, 0x65, 0x73, 0x5f, 0x64, - 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x22, 0x3e, - 0x54, 0x72, 0x75, 0x65, 0x3c, 0x2f, 0x70, 0x72, - 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, - 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, - 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x69, - 0x6d, 0x61, 0x67, 0x65, 0x22, 0x3e, 0x69, 0x6d, - 0x61, 0x67, 0x65, 0x33, 0x3c, 0x2f, 0x70, 0x72, - 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, - 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x6e, - 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x63, 0x6c, 0x69, - 0x63, 0x6b, 0x65, 0x64, 0x22, 0x20, 0x68, 0x61, - 0x6e, 0x64, 0x6c, 0x65, 0x72, 0x3d, 0x22, 0x62, - 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x5f, 0x72, 0x65, - 0x70, 0x6c, 0x61, 0x63, 0x65, 0x5f, 0x63, 0x6c, - 0x69, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x63, 0x62, - 0x22, 0x20, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, - 0x3d, 0x22, 0x54, 0x65, 0x73, 0x74, 0x53, 0x65, - 0x61, 0x72, 0x63, 0x68, 0x22, 0x20, 0x73, 0x77, - 0x61, 0x70, 0x70, 0x65, 0x64, 0x3d, 0x22, 0x79, - 0x65, 0x73, 0x22, 0x2f, 0x3e, 0x3c, 0x2f, 0x6f, - 0x62, 0x6a, 0x65, 0x63, 0x74, 0x3e, 0x3c, 0x70, - 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x3e, 0x3c, - 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, - 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x6c, - 0x65, 0x66, 0x74, 0x5f, 0x61, 0x74, 0x74, 0x61, - 0x63, 0x68, 0x22, 0x3e, 0x32, 0x3c, 0x2f, 0x70, - 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, - 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, - 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, - 0x74, 0x6f, 0x70, 0x5f, 0x61, 0x74, 0x74, 0x61, - 0x63, 0x68, 0x22, 0x3e, 0x30, 0x3c, 0x2f, 0x70, - 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, - 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, - 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, - 0x77, 0x69, 0x64, 0x74, 0x68, 0x22, 0x3e, 0x31, - 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, - 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, - 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, - 0x65, 0x3d, 0x22, 0x68, 0x65, 0x69, 0x67, 0x68, - 0x74, 0x22, 0x3e, 0x31, 0x3c, 0x2f, 0x70, 0x72, - 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, - 0x2f, 0x70, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, - 0x3e, 0x3c, 0x2f, 0x63, 0x68, 0x69, 0x6c, 0x64, - 0x3e, 0x3c, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x3e, - 0x3c, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x20, - 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x47, - 0x74, 0x6b, 0x42, 0x75, 0x74, 0x74, 0x6f, 0x6e, - 0x22, 0x20, 0x69, 0x64, 0x3d, 0x22, 0x62, 0x75, - 0x74, 0x74, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x70, - 0x6c, 0x61, 0x63, 0x65, 0x5f, 0x61, 0x6c, 0x6c, - 0x22, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, - 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, - 0x3d, 0x22, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, - 0x3e, 0x41, 0x6c, 0x6c, 0x3c, 0x2f, 0x70, 0x72, - 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, - 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, - 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x76, - 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x22, 0x3e, - 0x54, 0x72, 0x75, 0x65, 0x3c, 0x2f, 0x70, 0x72, - 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, - 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, - 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x63, - 0x61, 0x6e, 0x5f, 0x66, 0x6f, 0x63, 0x75, 0x73, - 0x22, 0x3e, 0x54, 0x72, 0x75, 0x65, 0x3c, 0x2f, - 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, - 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, - 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, - 0x22, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, - 0x73, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, - 0x74, 0x22, 0x3e, 0x54, 0x72, 0x75, 0x65, 0x3c, - 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, - 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, - 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, - 0x3d, 0x22, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x22, - 0x3e, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x34, 0x3c, - 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, - 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, - 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, - 0x3d, 0x22, 0x61, 0x6c, 0x77, 0x61, 0x79, 0x73, - 0x5f, 0x73, 0x68, 0x6f, 0x77, 0x5f, 0x69, 0x6d, - 0x61, 0x67, 0x65, 0x22, 0x3e, 0x54, 0x72, 0x75, - 0x65, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, - 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x73, 0x69, 0x67, - 0x6e, 0x61, 0x6c, 0x20, 0x6e, 0x61, 0x6d, 0x65, - 0x3d, 0x22, 0x63, 0x6c, 0x69, 0x63, 0x6b, 0x65, - 0x64, 0x22, 0x20, 0x68, 0x61, 0x6e, 0x64, 0x6c, - 0x65, 0x72, 0x3d, 0x22, 0x62, 0x75, 0x74, 0x74, - 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x61, - 0x63, 0x65, 0x5f, 0x61, 0x6c, 0x6c, 0x5f, 0x63, - 0x6c, 0x69, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x63, - 0x62, 0x22, 0x20, 0x6f, 0x62, 0x6a, 0x65, 0x63, - 0x74, 0x3d, 0x22, 0x54, 0x65, 0x73, 0x74, 0x53, - 0x65, 0x61, 0x72, 0x63, 0x68, 0x22, 0x20, 0x73, - 0x77, 0x61, 0x70, 0x70, 0x65, 0x64, 0x3d, 0x22, - 0x79, 0x65, 0x73, 0x22, 0x2f, 0x3e, 0x3c, 0x2f, - 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x3e, 0x3c, - 0x70, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x3e, - 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, - 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, - 0x6c, 0x65, 0x66, 0x74, 0x5f, 0x61, 0x74, 0x74, - 0x61, 0x63, 0x68, 0x22, 0x3e, 0x33, 0x3c, 0x2f, - 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, - 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, - 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, - 0x22, 0x74, 0x6f, 0x70, 0x5f, 0x61, 0x74, 0x74, - 0x61, 0x63, 0x68, 0x22, 0x3e, 0x30, 0x3c, 0x2f, - 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, - 0x3e, 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, - 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, - 0x22, 0x77, 0x69, 0x64, 0x74, 0x68, 0x22, 0x3e, - 0x31, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, - 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, 0x6f, - 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, - 0x6d, 0x65, 0x3d, 0x22, 0x68, 0x65, 0x69, 0x67, - 0x68, 0x74, 0x22, 0x3e, 0x31, 0x3c, 0x2f, 0x70, - 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, - 0x3c, 0x2f, 0x70, 0x61, 0x63, 0x6b, 0x69, 0x6e, - 0x67, 0x3e, 0x3c, 0x2f, 0x63, 0x68, 0x69, 0x6c, - 0x64, 0x3e, 0x3c, 0x2f, 0x6f, 0x62, 0x6a, 0x65, - 0x63, 0x74, 0x3e, 0x3c, 0x70, 0x61, 0x63, 0x6b, - 0x69, 0x6e, 0x67, 0x3e, 0x3c, 0x70, 0x72, 0x6f, - 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, 0x61, - 0x6d, 0x65, 0x3d, 0x22, 0x6c, 0x65, 0x66, 0x74, - 0x5f, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x22, - 0x3e, 0x30, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, - 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, - 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, - 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x74, 0x6f, 0x70, - 0x5f, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x22, - 0x3e, 0x33, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, - 0x65, 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x70, 0x72, - 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, 0x6e, - 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x77, 0x69, 0x64, - 0x74, 0x68, 0x22, 0x3e, 0x31, 0x3c, 0x2f, 0x70, - 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3e, - 0x3c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, - 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, - 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x22, 0x3e, - 0x31, 0x3c, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, - 0x72, 0x74, 0x79, 0x3e, 0x3c, 0x2f, 0x70, 0x61, - 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x3e, 0x3c, 0x2f, - 0x63, 0x68, 0x69, 0x6c, 0x64, 0x3e, 0x3c, 0x2f, - 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, - 0x3e, 0x3c, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, - 0x66, 0x61, 0x63, 0x65, 0x3e, 0x0a, 0x00, 0x00, - 0x28, 0x75, 0x75, 0x61, 0x79, 0x29, 0x67, 0x6e, - 0x6f, 0x6d, 0x65, 0x2f, 0x03, 0x00, 0x00, 0x00 -} }; - -static GStaticResource static_resource = { test_search_resource_data.data, sizeof (test_search_resource_data.data), NULL, NULL, NULL }; -extern GResource *test_search_get_resource (void); -GResource *test_search_get_resource (void) -{ - return g_static_resource_get_resource (&static_resource); -} -/* - If G_HAS_CONSTRUCTORS is true then the compiler support *both* constructors and - destructors, in a sane way, including e.g. on library unload. If not you're on - your own. - - Some compilers need #pragma to handle this, which does not work with macros, - so the way you need to use this is (for constructors): - - #ifdef G_DEFINE_CONSTRUCTOR_NEEDS_PRAGMA - #pragma G_DEFINE_CONSTRUCTOR_PRAGMA_ARGS(my_constructor) - #endif - G_DEFINE_CONSTRUCTOR(my_constructor) - static void my_constructor(void) { - ... - } - -*/ - -#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 7) - -#define G_HAS_CONSTRUCTORS 1 - -#define G_DEFINE_CONSTRUCTOR(_func) static void __attribute__((constructor)) _func (void); -#define G_DEFINE_DESTRUCTOR(_func) static void __attribute__((destructor)) _func (void); - -#elif defined (_MSC_VER) && (_MSC_VER >= 1500) -/* Visual studio 2008 and later has _Pragma */ - -#define G_HAS_CONSTRUCTORS 1 - -#define G_DEFINE_CONSTRUCTOR(_func) \ - static void _func(void); \ - static int _func ## _wrapper(void) { _func(); return 0; } \ - __pragma(section(".CRT$XCU",read)) \ - __declspec(allocate(".CRT$XCU")) static int (* _array ## _func)(void) = _func ## _wrapper; - -#define G_DEFINE_DESTRUCTOR(_func) \ - static void _func(void); \ - static int _func ## _constructor(void) { atexit (_func); return 0; } \ - __pragma(section(".CRT$XCU",read)) \ - __declspec(allocate(".CRT$XCU")) static int (* _array ## _func)(void) = _func ## _constructor; - -#elif defined (_MSC_VER) - -#define G_HAS_CONSTRUCTORS 1 - -/* Pre Visual studio 2008 must use #pragma section */ -#define G_DEFINE_CONSTRUCTOR_NEEDS_PRAGMA 1 -#define G_DEFINE_DESTRUCTOR_NEEDS_PRAGMA 1 - -#define G_DEFINE_CONSTRUCTOR_PRAGMA_ARGS(_func) \ - section(".CRT$XCU",read) -#define G_DEFINE_CONSTRUCTOR(_func) \ - static void _func(void); \ - static int _func ## _wrapper(void) { _func(); return 0; } \ - __declspec(allocate(".CRT$XCU")) static int (*p)(void) = _func ## _wrapper; - -#define G_DEFINE_DESTRUCTOR_PRAGMA_ARGS(_func) \ - section(".CRT$XCU",read) -#define G_DEFINE_DESTRUCTOR(_func) \ - static void _func(void); \ - static int _func ## _constructor(void) { atexit (_func); return 0; } \ - __declspec(allocate(".CRT$XCU")) static int (* _array ## _func)(void) = _func ## _constructor; - -#elif defined(__SUNPRO_C) - -/* This is not tested, but i believe it should work, based on: - * http://opensource.apple.com/source/OpenSSL098/OpenSSL098-35/src/fips/fips_premain.c - */ - -#define G_HAS_CONSTRUCTORS 1 - -#define G_DEFINE_CONSTRUCTOR_NEEDS_PRAGMA 1 -#define G_DEFINE_DESTRUCTOR_NEEDS_PRAGMA 1 - -#define G_DEFINE_CONSTRUCTOR_PRAGMA_ARGS(_func) \ - init(_func) -#define G_DEFINE_CONSTRUCTOR(_func) \ - static void _func(void); - -#define G_DEFINE_DESTRUCTOR_PRAGMA_ARGS(_func) \ - fini(_func) -#define G_DEFINE_DESTRUCTOR(_func) \ - static void _func(void); - -#else - -/* constructors not supported for this compiler */ - -#endif - - -#ifdef G_HAS_CONSTRUCTORS - -#ifdef G_DEFINE_CONSTRUCTOR_NEEDS_PRAGMA -#pragma G_DEFINE_CONSTRUCTOR_PRAGMA_ARGS(resource_constructor) -#endif -G_DEFINE_CONSTRUCTOR(resource_constructor) -#ifdef G_DEFINE_DESTRUCTOR_NEEDS_PRAGMA -#pragma G_DEFINE_DESTRUCTOR_PRAGMA_ARGS(resource_destructor) -#endif -G_DEFINE_DESTRUCTOR(resource_destructor) - -#else -#warning "Constructor not supported on this compiler, linking in resources will not work" -#endif - -static void resource_constructor (void) -{ - g_static_resource_init (&static_resource); -} - -static void resource_destructor (void) -{ - g_static_resource_fini (&static_resource); -} diff -Nru gtksourceview3-3.12.1/tests/test-search.ui gtksourceview3-3.14.4/tests/test-search.ui --- gtksourceview3-3.12.1/tests/test-search.ui 2014-04-14 15:09:33.000000000 +0000 +++ gtksourceview3-3.14.4/tests/test-search.ui 2015-04-04 12:06:57.000000000 +0000 @@ -5,25 +5,25 @@ True False - gtk-go-up + go-up 1 True False - gtk-go-down + go-down 1 True False - gtk-find-and-replace + edit-find-replace 1 True False - gtk-find-and-replace + edit-find-replace 1