--- /dev/null
+<dl>
+ <dt>Øyvind Kolås <em>pippin at gimp.org</em></dt>
+ <dd>Original author.</dd>
+ <dt>Sven Neumann <em>sven at gimp.org</em></dt>
+ <dd>Build sanity and optimizations.</dd>
+ <dt>Michael Natterer <em>mitch at gimp.org</em></dt>
+ <dd>Build sanity.</dd>
+ <dt>Kevin Cozens <em>kcozens at cvs.gnome.org</em></dt>
+ <dd>Build sanity.</dd>
+ <dt>Tim Mooney</dt>
+ <dd>Portability fixes.</dd>
+ <dt>Michael Schumacher <em>schumaml at cvs.gnome.org</em></dt>
+ <dd>win32 support for dynamic extensions.</dd>
+ <dd>Portability fixes.</dd>
+ <dt>Jan Heller <em>jheller at svn.gnome.org</em></dt>
+ <dd>Optimizations, refactoring and documentation.</dd>
+ <dt>Mukund Sivaraman <em>muks at mukund.org</em></dt>
+ <dd><em>Sparse</em> fixes and sanity.</dd>
+ <dt><em>dmacks at netspace.org</em></dt>
+ <dd>Build sanity</dd>
+ <dt>Sam Hocevar</dt>
+ <dd>Build sanity.</dd>
+ <dt>Zhang Junbo</dt>
+ <dd>Frequency domain color model.</dd>
+ <dt>Martin Nordholts</dt>
+ <dd>Optimizations and API overhaul.</dd>
+ <dt>Gary V. Vaughan</dt>
+ <dd>Multiplatform build support.</dd>
+ <dt>Stanislav Brabec</dt>
+ <dd>Portability patch.</dd>
+ <dt>Hubert Figuiere</dt>
+ <dd>C++ friendliness patch.</dd>
+ <dt>Danny Robson</dt>
+ <dd>Code cleanups.</dd>
+ <dt>Fryderyk Dziarmagowski <em>freetz at gmx.net</em></dt>
+ <dd>Code cleanups.</dd>
+ <dt>Daniel Paredes García <em>danipga at gmail.com</em></dt>
+ <dd>Initial work to make babl threadsafe</dd>
+ <dt>Rupert Weber <em>gimp at leguanease.org</em></dt>
+ <dd>Documentation and other improvements</dd>
+ <dt>Jehan <em>jehan at girinstud.io</em></dt>
+ <dd>win32 portabilitiy</dd>
+ <dt>Sven Claussner</dt>
+ <dd>Update DOAP file</dd>
+ <dt>Alexander Larsson</dt>
+ <dd>Math optimizations</dd>
+ <dt>Nils Philippsen</dt>
+ <dd>code cleanups</dd>
+ <dt>Simon Budig</dt>
+ <dd>cleanups</dd>
+
+ <dt>Micheal Muré</dd>
+ <dd>portability fixes</dd>
+
+ <dt>Maxime Nicco</dt>
+ <dl>HSV color model extension</dl>
+ <dt>Teo Mazars</dt>
+ <dd>Color spaces/models in extensions</dd>
+ <dt>Daniel Sabo</dt>
+ <dd>Dead code elimination, general cleanups, </dd>
+ <dt>Michael Henning</dt>
+ <dd>Conversion fixes</dd>
+ <dt>Elle Stone</dt>
+ <dd>Verification and improvements to accuracy of color space
+ conversions.</dd>
+ <dt>Thomas Manni</dt>
+ <dd>CIE related fixups</dd?
+ <dt>Roman Lebedev</dt>
+ <dd>Stability/crasher fixes</dd>
+ <dt>Jon Nordby</dt>
+ <dd>Portability, Stability and more</dd>
+ <dt>Massimo Valentini</dt>
+ <dd>stability fixes</dd>
+</dl>
--- /dev/null
+ GNU LESSER GENERAL PUBLIC LICENSE
+ Version 3, 29 June 2007
+
+ Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+
+ This version of the GNU Lesser General Public License incorporates
+the terms and conditions of version 3 of the GNU General Public
+License, supplemented by the additional permissions listed below.
+
+ 0. Additional Definitions.
+
+ As used herein, "this License" refers to version 3 of the GNU Lesser
+General Public License, and the "GNU GPL" refers to version 3 of the GNU
+General Public License.
+
+ "The Library" refers to a covered work governed by this License,
+other than an Application or a Combined Work as defined below.
+
+ An "Application" is any work that makes use of an interface provided
+by the Library, but which is not otherwise based on the Library.
+Defining a subclass of a class defined by the Library is deemed a mode
+of using an interface provided by the Library.
+
+ A "Combined Work" is a work produced by combining or linking an
+Application with the Library. The particular version of the Library
+with which the Combined Work was made is also called the "Linked
+Version".
+
+ The "Minimal Corresponding Source" for a Combined Work means the
+Corresponding Source for the Combined Work, excluding any source code
+for portions of the Combined Work that, considered in isolation, are
+based on the Application, and not on the Linked Version.
+
+ The "Corresponding Application Code" for a Combined Work means the
+object code and/or source code for the Application, including any data
+and utility programs needed for reproducing the Combined Work from the
+Application, but excluding the System Libraries of the Combined Work.
+
+ 1. Exception to Section 3 of the GNU GPL.
+
+ You may convey a covered work under sections 3 and 4 of this License
+without being bound by section 3 of the GNU GPL.
+
+ 2. Conveying Modified Versions.
+
+ If you modify a copy of the Library, and, in your modifications, a
+facility refers to a function or data to be supplied by an Application
+that uses the facility (other than as an argument passed when the
+facility is invoked), then you may convey a copy of the modified
+version:
+
+ a) under this License, provided that you make a good faith effort to
+ ensure that, in the event an Application does not supply the
+ function or data, the facility still operates, and performs
+ whatever part of its purpose remains meaningful, or
+
+ b) under the GNU GPL, with none of the additional permissions of
+ this License applicable to that copy.
+
+ 3. Object Code Incorporating Material from Library Header Files.
+
+ The object code form of an Application may incorporate material from
+a header file that is part of the Library. You may convey such object
+code under terms of your choice, provided that, if the incorporated
+material is not limited to numerical parameters, data structure
+layouts and accessors, or small macros, inline functions and templates
+(ten or fewer lines in length), you do both of the following:
+
+ a) Give prominent notice with each copy of the object code that the
+ Library is used in it and that the Library and its use are
+ covered by this License.
+
+ b) Accompany the object code with a copy of the GNU GPL and this license
+ document.
+
+ 4. Combined Works.
+
+ You may convey a Combined Work under terms of your choice that,
+taken together, effectively do not restrict modification of the
+portions of the Library contained in the Combined Work and reverse
+engineering for debugging such modifications, if you also do each of
+the following:
+
+ a) Give prominent notice with each copy of the Combined Work that
+ the Library is used in it and that the Library and its use are
+ covered by this License.
+
+ b) Accompany the Combined Work with a copy of the GNU GPL and this license
+ document.
+
+ c) For a Combined Work that displays copyright notices during
+ execution, include the copyright notice for the Library among
+ these notices, as well as a reference directing the user to the
+ copies of the GNU GPL and this license document.
+
+ d) Do one of the following:
+
+ 0) Convey the Minimal Corresponding Source under the terms of this
+ License, and the Corresponding Application Code in a form
+ suitable for, and under terms that permit, the user to
+ recombine or relink the Application with a modified version of
+ the Linked Version to produce a modified Combined Work, in the
+ manner specified by section 6 of the GNU GPL for conveying
+ Corresponding Source.
+
+ 1) Use a suitable shared library mechanism for linking with the
+ Library. A suitable mechanism is one that (a) uses at run time
+ a copy of the Library already present on the user's computer
+ system, and (b) will operate properly with a modified version
+ of the Library that is interface-compatible with the Linked
+ Version.
+
+ e) Provide Installation Information, but only if you would otherwise
+ be required to provide such information under section 6 of the
+ GNU GPL, and only to the extent that such information is
+ necessary to install and execute a modified version of the
+ Combined Work produced by recombining or relinking the
+ Application with a modified version of the Linked Version. (If
+ you use option 4d0, the Installation Information must accompany
+ the Minimal Corresponding Source and Corresponding Application
+ Code. If you use option 4d1, you must provide the Installation
+ Information in the manner specified by section 6 of the GNU GPL
+ for conveying Corresponding Source.)
+
+ 5. Combined Libraries.
+
+ 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 that are not Applications and are not covered by this
+License, and convey such a combined library under terms of your
+choice, if you do both of the following:
+
+ a) Accompany the combined library with a copy of the same work based
+ on the Library, uncombined with any other library facilities,
+ conveyed under the terms of this License.
+
+ b) Give prominent notice with the combined library that part of it
+ is a work based on the Library, and explaining where to find the
+ accompanying uncombined form of the same work.
+
+ 6. Revised Versions of the GNU Lesser General Public License.
+
+ The Free Software Foundation may publish revised and/or new versions
+of the GNU 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 as you received it specifies that a certain numbered version
+of the GNU Lesser General Public License "or any later version"
+applies to it, you have the option of following the terms and
+conditions either of that published version or of any later version
+published by the Free Software Foundation. If the Library as you
+received it does not specify a version number of the GNU Lesser
+General Public License, you may choose any version of the GNU Lesser
+General Public License ever published by the Free Software Foundation.
+
+ If the Library as you received it specifies that a proxy can decide
+whether future versions of the GNU Lesser General Public License shall
+apply, that proxy's public statement of acceptance of any version is
+permanent authorization for you to choose that version for the
+Library.
--- /dev/null
+
+babl 0.1.18
+
+ Dynamic; any to any, pixel format conversion library.
+
+-----------------------------------------------------------------------
+
+Installation instructions:
+--------------------------
+
+From a released version the following is the expected method of
+installation (or a variation on this theme):
+
+ ------------------------------------------------------------
+ foo$ wget ftp://ftp.gtk.org/pub/babl/0.1/babl-0.1.18.tar.bz2
+ foo$ tar jxf babl-0.1.18.tar.gz
+ foo$ cd babl-0.1.18
+ foo/babl-0.1.18$ ./configure && make && sudo make install
+ ------------------------------------------------------------
+
+
--- /dev/null
+
+babl @BABL_VERSION@
+
+ Dynamic; any to any, pixel format conversion library.
+
+-----------------------------------------------------------------------
+
+Installation instructions:
+--------------------------
+
+From a released version the following is the expected method of
+installation (or a variation on this theme):
+
+ ------------------------------------------------------------
+ foo$ wget ftp://ftp.gtk.org/pub/babl/0.1/babl-@BABL_VERSION@.tar.bz2
+ foo$ tar jxf babl-@BABL_VERSION@.tar.gz
+ foo$ cd babl-@BABL_VERSION@
+ foo/babl-@BABL_VERSION@$ ./configure && make && sudo make install
+ ------------------------------------------------------------
+
+
--- /dev/null
+ACLOCAL_AMFLAGS = -I m4 ${ACLOCAL_FLAGS}
+
+SUBDIRS = \
+ babl \
+ extensions \
+ tests \
+ tools
+
+if ENABLE_DOCS
+SUBDIRS+= docs
+endif
+
+pkgconfigdir = $(libdir)/pkgconfig
+pkgconfig_DATA = babl.pc
+
+built_dist_files = README
+
+EXTRA_DIST = \
+ $(built_dist_files) \
+ AUTHORS \
+ COPYING \
+ INSTALL \
+ NEWS \
+ TODO \
+ autogen.sh \
+ babl.pc.in
+
+DISTCLEANFILES = \
+ $(built_dist_files) \
+ babl.pc
+
+.PHONY: snapshot
+
+
+if HAVE_W3M
+README: all docs/index.html
+ $(W3M) -cols 72 -dump docs/index.html > $@
+else
+README:
+ @echo "*** w3m must be available in order to make dist"
+ @false
+endif
+
+snapshot:
+ $(MAKE) dist distdir=$(PACKAGE)-`date +"%Y%m%d"`
+snapcheck:
+ $(MAKE) distcheck distdir=$(PACKAGE)-`date +"%Y%m%d"`
+
+distclean-local:
+ if test $(srcdir) = .; then :; else \
+ rm -f $(BUILT_EXTRA_DIST); \
+ fi
+
--- /dev/null
+# Makefile.in generated by automake 1.15 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
+
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+VPATH = @srcdir@
+am__is_gnu_make = { \
+ if test -z '$(MAKELEVEL)'; then \
+ false; \
+ elif test -n '$(MAKE_HOST)'; then \
+ true; \
+ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+ true; \
+ else \
+ false; \
+ fi; \
+}
+am__make_running_with_option = \
+ case $${target_option-} in \
+ ?) ;; \
+ *) echo "am__make_running_with_option: internal error: invalid" \
+ "target option '$${target_option-}' specified" >&2; \
+ exit 1;; \
+ esac; \
+ has_opt=no; \
+ sane_makeflags=$$MAKEFLAGS; \
+ if $(am__is_gnu_make); then \
+ sane_makeflags=$$MFLAGS; \
+ else \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ bs=\\; \
+ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
+ esac; \
+ fi; \
+ skip_next=no; \
+ strip_trailopt () \
+ { \
+ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+ }; \
+ for flg in $$sane_makeflags; do \
+ test $$skip_next = yes && { skip_next=no; continue; }; \
+ case $$flg in \
+ *=*|--*) continue;; \
+ -*I) strip_trailopt 'I'; skip_next=yes;; \
+ -*I?*) strip_trailopt 'I';; \
+ -*O) strip_trailopt 'O'; skip_next=yes;; \
+ -*O?*) strip_trailopt 'O';; \
+ -*l) strip_trailopt 'l'; skip_next=yes;; \
+ -*l?*) strip_trailopt 'l';; \
+ -[dEDm]) skip_next=yes;; \
+ -[JT]) skip_next=yes;; \
+ esac; \
+ case $$flg in \
+ *$$target_option*) has_opt=yes; break;; \
+ esac; \
+ done; \
+ test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+target_triplet = @target@
+@ENABLE_DOCS_TRUE@am__append_1 = docs
+subdir = .
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(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)/acinclude.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(top_srcdir)/configure \
+ $(am__configure_deps) $(am__DIST_COMMON)
+am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
+ configure.lineno config.status.lineno
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = config.h
+CONFIG_CLEAN_FILES = babl.pc INSTALL
+CONFIG_CLEAN_VPATH_FILES =
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo " GEN " $@;
+am__v_GEN_1 =
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 =
+SOURCES =
+DIST_SOURCES =
+RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \
+ ctags-recursive dvi-recursive html-recursive info-recursive \
+ install-data-recursive install-dvi-recursive \
+ install-exec-recursive install-html-recursive \
+ install-info-recursive install-pdf-recursive \
+ install-ps-recursive install-recursive installcheck-recursive \
+ installdirs-recursive pdf-recursive ps-recursive \
+ tags-recursive uninstall-recursive
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+ if (++n[$$2] == $(am__install_max)) \
+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+ END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+ test -z "$$files" \
+ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+ $(am__cd) "$$dir" && rm -f $$files; }; \
+ }
+am__installdirs = "$(DESTDIR)$(pkgconfigdir)"
+DATA = $(pkgconfig_DATA)
+RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
+ distclean-recursive maintainer-clean-recursive
+am__recursive_targets = \
+ $(RECURSIVE_TARGETS) \
+ $(RECURSIVE_CLEAN_TARGETS) \
+ $(am__extra_recursive_targets)
+AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
+ cscope distdir dist dist-all distcheck
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) \
+ $(LISP)config.h.in
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates. Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+ BEGIN { nonempty = 0; } \
+ { items[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique. This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+ list='$(am__tagged_files)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | $(am__uniquify_input)`
+ETAGS = etags
+CTAGS = ctags
+CSCOPE = cscope
+DIST_SUBDIRS = babl extensions tests tools docs
+am__DIST_COMMON = $(srcdir)/INSTALL.in $(srcdir)/Makefile.in \
+ $(srcdir)/babl.pc.in $(srcdir)/config.h.in AUTHORS COPYING \
+ NEWS README TODO compile config.guess config.sub install-sh \
+ ltmain.sh missing
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+distdir = $(PACKAGE)-$(VERSION)
+top_distdir = $(distdir)
+am__remove_distdir = \
+ if test -d "$(distdir)"; then \
+ find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \
+ && rm -rf "$(distdir)" \
+ || { sleep 5 && rm -rf "$(distdir)"; }; \
+ else :; fi
+am__post_remove_distdir = $(am__remove_distdir)
+am__relativize = \
+ dir0=`pwd`; \
+ sed_first='s,^\([^/]*\)/.*$$,\1,'; \
+ sed_rest='s,^[^/]*/*,,'; \
+ sed_last='s,^.*/\([^/]*\)$$,\1,'; \
+ sed_butlast='s,/*[^/]*$$,,'; \
+ while test -n "$$dir1"; do \
+ first=`echo "$$dir1" | sed -e "$$sed_first"`; \
+ if test "$$first" != "."; then \
+ if test "$$first" = ".."; then \
+ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
+ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
+ else \
+ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
+ if test "$$first2" = "$$first"; then \
+ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
+ else \
+ dir2="../$$dir2"; \
+ fi; \
+ dir0="$$dir0"/"$$first"; \
+ fi; \
+ fi; \
+ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
+ done; \
+ reldir="$$dir2"
+GZIP_ENV = --best
+DIST_ARCHIVES = $(distdir).tar.bz2
+DIST_TARGETS = dist-bzip2
+distuninstallcheck_listfiles = find . -type f -print
+am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \
+ | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$'
+distcleancheck_listfiles = find . -type f -print
+ACLOCAL = @ACLOCAL@
+ALTIVEC_EXTRA_CFLAGS = @ALTIVEC_EXTRA_CFLAGS@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AR = @AR@
+AS = @AS@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+BABL_API_VERSION = @BABL_API_VERSION@
+BABL_BINARY_AGE = @BABL_BINARY_AGE@
+BABL_CURRENT_MINUS_AGE = @BABL_CURRENT_MINUS_AGE@
+BABL_INTERFACE_AGE = @BABL_INTERFACE_AGE@
+BABL_LIBRARY_VERSION = @BABL_LIBRARY_VERSION@
+BABL_MAJOR_VERSION = @BABL_MAJOR_VERSION@
+BABL_MICRO_VERSION = @BABL_MICRO_VERSION@
+BABL_MINOR_VERSION = @BABL_MINOR_VERSION@
+BABL_REAL_VERSION = @BABL_REAL_VERSION@
+BABL_RELEASE = @BABL_RELEASE@
+BABL_UNSTABLE = @BABL_UNSTABLE@
+BABL_VERSION = @BABL_VERSION@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DIR_SEP = @DIR_SEP@
+DLLTOOL = @DLLTOOL@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+F16C_EXTRA_CFLAGS = @F16C_EXTRA_CFLAGS@
+FGREP = @FGREP@
+GREP = @GREP@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
+MATH_LIB = @MATH_LIB@
+MKDIR_P = @MKDIR_P@
+MMX_EXTRA_CFLAGS = @MMX_EXTRA_CFLAGS@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEP = @PATH_SEP@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+RANLIB = @RANLIB@
+RSVG = @RSVG@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SHREXT = @SHREXT@
+SSE2_EXTRA_CFLAGS = @SSE2_EXTRA_CFLAGS@
+SSE4_1_EXTRA_CFLAGS = @SSE4_1_EXTRA_CFLAGS@
+SSE_EXTRA_CFLAGS = @SSE_EXTRA_CFLAGS@
+STRIP = @STRIP@
+THREAD_LIB = @THREAD_LIB@
+VERSION = @VERSION@
+W3M = @W3M@
+WEBSITE_HOST = @WEBSITE_HOST@
+WEBSITE_LOCATION = @WEBSITE_LOCATION@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target = @target@
+target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+ACLOCAL_AMFLAGS = -I m4 ${ACLOCAL_FLAGS}
+SUBDIRS = babl extensions tests tools $(am__append_1)
+pkgconfigdir = $(libdir)/pkgconfig
+pkgconfig_DATA = babl.pc
+built_dist_files = README
+EXTRA_DIST = \
+ $(built_dist_files) \
+ AUTHORS \
+ COPYING \
+ INSTALL \
+ NEWS \
+ TODO \
+ autogen.sh \
+ babl.pc.in
+
+DISTCLEANFILES = \
+ $(built_dist_files) \
+ babl.pc
+
+all: config.h
+ $(MAKE) $(AM_MAKEFLAGS) all-recursive
+
+.SUFFIXES:
+am--refresh: Makefile
+ @:
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ echo ' cd $(srcdir) && $(AUTOMAKE) --foreign'; \
+ $(am__cd) $(srcdir) && $(AUTOMAKE) --foreign \
+ && exit 0; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --foreign Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ echo ' $(SHELL) ./config.status'; \
+ $(SHELL) ./config.status;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ $(SHELL) ./config.status --recheck
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+ $(am__cd) $(srcdir) && $(AUTOCONF)
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+ $(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
+$(am__aclocal_m4_deps):
+
+config.h: stamp-h1
+ @test -f $@ || rm -f stamp-h1
+ @test -f $@ || $(MAKE) $(AM_MAKEFLAGS) stamp-h1
+
+stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status
+ @rm -f stamp-h1
+ cd $(top_builddir) && $(SHELL) ./config.status config.h
+$(srcdir)/config.h.in: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+ ($(am__cd) $(top_srcdir) && $(AUTOHEADER))
+ rm -f stamp-h1
+ touch $@
+
+distclean-hdr:
+ -rm -f config.h stamp-h1
+babl.pc: $(top_builddir)/config.status $(srcdir)/babl.pc.in
+ cd $(top_builddir) && $(SHELL) ./config.status $@
+INSTALL: $(top_builddir)/config.status $(srcdir)/INSTALL.in
+ cd $(top_builddir) && $(SHELL) ./config.status $@
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+
+distclean-libtool:
+ -rm -f libtool config.lt
+install-pkgconfigDATA: $(pkgconfig_DATA)
+ @$(NORMAL_INSTALL)
+ @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(pkgconfigdir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(pkgconfigdir)" || exit 1; \
+ fi; \
+ for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(pkgconfigdir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(pkgconfigdir)" || exit $$?; \
+ done
+
+uninstall-pkgconfigDATA:
+ @$(NORMAL_UNINSTALL)
+ @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ dir='$(DESTDIR)$(pkgconfigdir)'; $(am__uninstall_files_from_dir)
+
+# This directory's subdirectories are mostly independent; you can cd
+# into them and run 'make' without going through this Makefile.
+# To change the values of 'make' variables: instead of editing Makefiles,
+# (1) if the variable is set in 'config.status', edit 'config.status'
+# (which will cause the Makefiles to be regenerated when you run 'make');
+# (2) otherwise, pass the desired values on the 'make' command line.
+$(am__recursive_targets):
+ @fail=; \
+ if $(am__make_keepgoing); then \
+ failcom='fail=yes'; \
+ else \
+ failcom='exit 1'; \
+ fi; \
+ dot_seen=no; \
+ target=`echo $@ | sed s/-recursive//`; \
+ case "$@" in \
+ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+ *) list='$(SUBDIRS)' ;; \
+ esac; \
+ for subdir in $$list; do \
+ echo "Making $$target in $$subdir"; \
+ if test "$$subdir" = "."; then \
+ dot_seen=yes; \
+ local_target="$$target-am"; \
+ else \
+ local_target="$$target"; \
+ fi; \
+ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ || eval $$failcom; \
+ done; \
+ if test "$$dot_seen" = "no"; then \
+ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
+ fi; test -z "$$fail"
+
+ID: $(am__tagged_files)
+ $(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-recursive
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ set x; \
+ here=`pwd`; \
+ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
+ include_option=--etags-include; \
+ empty_fix=.; \
+ else \
+ include_option=--include; \
+ empty_fix=; \
+ fi; \
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
+ test ! -f $$subdir/TAGS || \
+ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
+ fi; \
+ done; \
+ $(am__define_uniq_tagged_files); \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
+ fi
+ctags: ctags-recursive
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ $(am__define_uniq_tagged_files); \
+ test -z "$(CTAGS_ARGS)$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
+cscope: cscope.files
+ test ! -s cscope.files \
+ || $(CSCOPE) -b -q $(AM_CSCOPEFLAGS) $(CSCOPEFLAGS) -i cscope.files $(CSCOPE_ARGS)
+clean-cscope:
+ -rm -f cscope.files
+cscope.files: clean-cscope cscopelist
+cscopelist: cscopelist-recursive
+
+cscopelist-am: $(am__tagged_files)
+ list='$(am__tagged_files)'; \
+ case "$(srcdir)" in \
+ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+ *) sdir=$(subdir)/$(srcdir) ;; \
+ esac; \
+ for i in $$list; do \
+ if test -f "$$i"; then \
+ echo "$(subdir)/$$i"; \
+ else \
+ echo "$$sdir/$$i"; \
+ fi; \
+ done >> $(top_builddir)/cscope.files
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+ -rm -f cscope.out cscope.in.out cscope.po.out cscope.files
+
+distdir: $(DISTFILES)
+ $(am__remove_distdir)
+ test -d "$(distdir)" || mkdir "$(distdir)"
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+ @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
+ $(am__make_dryrun) \
+ || test -d "$(distdir)/$$subdir" \
+ || $(MKDIR_P) "$(distdir)/$$subdir" \
+ || exit 1; \
+ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
+ $(am__relativize); \
+ new_distdir=$$reldir; \
+ dir1=$$subdir; dir2="$(top_distdir)"; \
+ $(am__relativize); \
+ new_top_distdir=$$reldir; \
+ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
+ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
+ ($(am__cd) $$subdir && \
+ $(MAKE) $(AM_MAKEFLAGS) \
+ top_distdir="$$new_top_distdir" \
+ distdir="$$new_distdir" \
+ am__remove_distdir=: \
+ am__skip_length_check=: \
+ am__skip_mode_fix=: \
+ distdir) \
+ || exit 1; \
+ fi; \
+ done
+ -test -n "$(am__skip_mode_fix)" \
+ || find "$(distdir)" -type d ! -perm -755 \
+ -exec chmod u+rwx,go+rx {} \; -o \
+ ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
+ ! -type d ! -perm -400 -exec chmod a+r {} \; -o \
+ ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \
+ || chmod -R a+r "$(distdir)"
+dist-gzip: distdir
+ tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
+ $(am__post_remove_distdir)
+dist-bzip2: distdir
+ tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2
+ $(am__post_remove_distdir)
+
+dist-lzip: distdir
+ tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz
+ $(am__post_remove_distdir)
+
+dist-xz: distdir
+ tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz
+ $(am__post_remove_distdir)
+
+dist-tarZ: distdir
+ @echo WARNING: "Support for distribution archives compressed with" \
+ "legacy program 'compress' is deprecated." >&2
+ @echo WARNING: "It will be removed altogether in Automake 2.0" >&2
+ tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
+ $(am__post_remove_distdir)
+
+dist-shar: distdir
+ @echo WARNING: "Support for shar distribution archives is" \
+ "deprecated." >&2
+ @echo WARNING: "It will be removed altogether in Automake 2.0" >&2
+ shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
+ $(am__post_remove_distdir)
+
+dist-zip: distdir
+ -rm -f $(distdir).zip
+ zip -rq $(distdir).zip $(distdir)
+ $(am__post_remove_distdir)
+
+dist dist-all:
+ $(MAKE) $(AM_MAKEFLAGS) $(DIST_TARGETS) am__post_remove_distdir='@:'
+ $(am__post_remove_distdir)
+
+# This target untars the dist file and tries a VPATH configuration. Then
+# it guarantees that the distribution is self-contained by making another
+# tarfile.
+distcheck: dist
+ case '$(DIST_ARCHIVES)' in \
+ *.tar.gz*) \
+ GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\
+ *.tar.bz2*) \
+ bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\
+ *.tar.lz*) \
+ lzip -dc $(distdir).tar.lz | $(am__untar) ;;\
+ *.tar.xz*) \
+ xz -dc $(distdir).tar.xz | $(am__untar) ;;\
+ *.tar.Z*) \
+ uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
+ *.shar.gz*) \
+ GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\
+ *.zip*) \
+ unzip $(distdir).zip ;;\
+ esac
+ chmod -R a-w $(distdir)
+ chmod u+w $(distdir)
+ mkdir $(distdir)/_build $(distdir)/_build/sub $(distdir)/_inst
+ chmod a-w $(distdir)
+ test -d $(distdir)/_build || exit 0; \
+ dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
+ && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
+ && am__cwd=`pwd` \
+ && $(am__cd) $(distdir)/_build/sub \
+ && ../../configure \
+ $(AM_DISTCHECK_CONFIGURE_FLAGS) \
+ $(DISTCHECK_CONFIGURE_FLAGS) \
+ --srcdir=../.. --prefix="$$dc_install_base" \
+ && $(MAKE) $(AM_MAKEFLAGS) \
+ && $(MAKE) $(AM_MAKEFLAGS) dvi \
+ && $(MAKE) $(AM_MAKEFLAGS) check \
+ && $(MAKE) $(AM_MAKEFLAGS) install \
+ && $(MAKE) $(AM_MAKEFLAGS) installcheck \
+ && $(MAKE) $(AM_MAKEFLAGS) uninstall \
+ && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \
+ distuninstallcheck \
+ && chmod -R a-w "$$dc_install_base" \
+ && ({ \
+ (cd ../.. && umask 077 && mkdir "$$dc_destdir") \
+ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \
+ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \
+ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \
+ distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \
+ } || { rm -rf "$$dc_destdir"; exit 1; }) \
+ && rm -rf "$$dc_destdir" \
+ && $(MAKE) $(AM_MAKEFLAGS) dist \
+ && rm -rf $(DIST_ARCHIVES) \
+ && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \
+ && cd "$$am__cwd" \
+ || exit 1
+ $(am__post_remove_distdir)
+ @(echo "$(distdir) archives ready for distribution: "; \
+ list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
+ sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x'
+distuninstallcheck:
+ @test -n '$(distuninstallcheck_dir)' || { \
+ echo 'ERROR: trying to run $@ with an empty' \
+ '$$(distuninstallcheck_dir)' >&2; \
+ exit 1; \
+ }; \
+ $(am__cd) '$(distuninstallcheck_dir)' || { \
+ echo 'ERROR: cannot chdir into $(distuninstallcheck_dir)' >&2; \
+ exit 1; \
+ }; \
+ test `$(am__distuninstallcheck_listfiles) | wc -l` -eq 0 \
+ || { echo "ERROR: files left after uninstall:" ; \
+ if test -n "$(DESTDIR)"; then \
+ echo " (check DESTDIR support)"; \
+ fi ; \
+ $(distuninstallcheck_listfiles) ; \
+ exit 1; } >&2
+distcleancheck: distclean
+ @if test '$(srcdir)' = . ; then \
+ echo "ERROR: distcleancheck can only run from a VPATH build" ; \
+ exit 1 ; \
+ fi
+ @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \
+ || { echo "ERROR: files left in build directory after distclean:" ; \
+ $(distcleancheck_listfiles) ; \
+ exit 1; } >&2
+check-am: all-am
+check: check-recursive
+all-am: Makefile $(DATA) config.h
+installdirs: installdirs-recursive
+installdirs-am:
+ for dir in "$(DESTDIR)$(pkgconfigdir)"; do \
+ test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+ done
+install: install-recursive
+install-exec: install-exec-recursive
+install-data: install-data-recursive
+uninstall: uninstall-recursive
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-recursive
+install-strip:
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+ -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-recursive
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-recursive
+ -rm -f $(am__CONFIG_DISTCLEAN_FILES)
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-hdr \
+ distclean-libtool distclean-local distclean-tags
+
+dvi: dvi-recursive
+
+dvi-am:
+
+html: html-recursive
+
+html-am:
+
+info: info-recursive
+
+info-am:
+
+install-data-am: install-pkgconfigDATA
+
+install-dvi: install-dvi-recursive
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-recursive
+
+install-html-am:
+
+install-info: install-info-recursive
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-recursive
+
+install-pdf-am:
+
+install-ps: install-ps-recursive
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-recursive
+ -rm -f $(am__CONFIG_DISTCLEAN_FILES)
+ -rm -rf $(top_srcdir)/autom4te.cache
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-recursive
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-recursive
+
+pdf-am:
+
+ps: ps-recursive
+
+ps-am:
+
+uninstall-am: uninstall-pkgconfigDATA
+
+.MAKE: $(am__recursive_targets) all install-am install-strip
+
+.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am \
+ am--refresh check check-am clean clean-cscope clean-generic \
+ clean-libtool cscope cscopelist-am ctags ctags-am dist \
+ dist-all dist-bzip2 dist-gzip dist-lzip dist-shar dist-tarZ \
+ dist-xz dist-zip distcheck distclean distclean-generic \
+ distclean-hdr distclean-libtool distclean-local distclean-tags \
+ distcleancheck distdir distuninstallcheck dvi dvi-am html \
+ html-am info info-am install install-am install-data \
+ install-data-am install-dvi install-dvi-am install-exec \
+ install-exec-am install-html install-html-am install-info \
+ install-info-am install-man install-pdf install-pdf-am \
+ install-pkgconfigDATA install-ps install-ps-am install-strip \
+ installcheck installcheck-am installdirs installdirs-am \
+ maintainer-clean maintainer-clean-generic mostlyclean \
+ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+ tags tags-am uninstall uninstall-am uninstall-pkgconfigDATA
+
+.PRECIOUS: Makefile
+
+
+.PHONY: snapshot
+
+@HAVE_W3M_TRUE@README: all docs/index.html
+@HAVE_W3M_TRUE@ $(W3M) -cols 72 -dump docs/index.html > $@
+@HAVE_W3M_FALSE@README:
+@HAVE_W3M_FALSE@ @echo "*** w3m must be available in order to make dist"
+@HAVE_W3M_FALSE@ @false
+
+snapshot:
+ $(MAKE) dist distdir=$(PACKAGE)-`date +"%Y%m%d"`
+snapcheck:
+ $(MAKE) distcheck distdir=$(PACKAGE)-`date +"%Y%m%d"`
+
+distclean-local:
+ if test $(srcdir) = .; then :; else \
+ rm -f $(BUILT_EXTRA_DIST); \
+ fi
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
--- /dev/null
+ <dl><dt><!--
+The NEWS file in the babl source tree is the source location for
+the news section both in the README and the webpage.
+
+
+ -->
+2016-06-13 babl-0.1.18 </dt><dd>
+Bugfix: take alpha threshold in consideration when processing floats in SSE2.
+ </dd><dt>
+2016-02-12 babl-0.1.16 </dt><dd>
+Improvements to half float reference, SIMD, and fast-paths, and CIE float fast
+paths; cleanups of fast path extensions.
+ </dd><dt>
+2015-11-19 babl-0.1.14 </dt><dd>
+sRGB precision tuning, stability fixes, locale fix for setting error tolerance.
+ </dd><dt>
+2015-02-03 babl-0.1.12 </dt><dd>
+optimizations for floating point conversions, HSV and HSL color models,
+removal of dead code, fixed CIE Lab conversions.
+ </dd><dt>
+2012-03-30 babl-0.1.10 </dt><dd>
+LUT based speedups for gamma correction / uncorrection.
+ </dd><dt>
+2012-03-30 babl-0.1.8 </dt><dd>
+Added support for indexed/pallette based formats, constified API.
+ </dd><dt>
+2011-11-18 babl-0.1.6 </dt><dd>
+Build improvements, remove blatantly wrong conversions from extensions,
+made it possible to distinguish format_n formats from others, improvements
+to vala/gobject introspection support.
+
+ </dd><dt>
+2011-01-20 babl-0.1.4 </dt><dd>
+Improved cross platform build ability, added code to handle n-component formats,
+remove extraenous runtime profiling that impacted performance.
+
+ </dd><dt>
+2010-01-15 babl-0.1.2 </dt><dd>
+Made babl mostly threadsafe (sufficient for GIMP/GEGLs needs). Streamlined core functionality, reducing number of function calls and removing overeager instrumentation.
+ </dd><dt>
+2009-05-20 babl-0.1.0 </dt><dd>
+Support for RGBA representation in the frequency domain,
+un-pre-multiply close-to-zero alpha values to complete black instead
+of slightly brighter than black, add a BABL_ALPHA_THRESHOLD constant
+to the API, do a complete overhaul of the babl API and do some
+changes to increase portability of the library.
+ </dd><dt>
+2008-06-12 babl-0.0.22 </dt><dd>
+Speed improvements due to: coalesced hashing, early bail out upon creation of
+duplicate formats, caching of non existing paths. Large amounts of the core has
+also been reviewed and refactored. Improved conversion coverage in the matrix.
+ </dd><dt>
+2008-02-27 babl-0.0.20 </dt><dd>
+Builds on OSX
+Check <0.0 and >1.0 values conversions for accuracy as well.
+
+ </dd></dl>
+
+<!--
+ </dd><dt>
+2007-12-30 babl-0.0.18 </dt><dd>
+Constified use of babl formats.
+
+ </dd><dt>
+2007-11-25 babl-0.0.16 </dt><dd>
+Reduced constant overhead for linear conversions.
+Misc build environment cleanups.
+
+ </dd><dt>
+2007-01-07 babl-0.0.14 </dt><dd>
+Cache values parsed from BABL_foo environment variables.
+ </dd><dt>
+2007-01-07 babl-0.0.12 </dt><dd>
+Speedups for GEGL
+Build environment fixes.
+ </dd><dt>
+2006-xx-xx babl-0.0.10 </dt><dd>
+Build environment fixes.
+
+ </dd><dt>
+2006-12-29 babl-0.0.8 </dt><dd>
+Made code adhere more strictly to C standard.
+Set the BABL_PATH based on build prefix
+
+ </dd><dt>
+2006-10-09 babl-0.0.6 </dt><dd>
+Build environment fixes.
+Fixed timing code for picking correct conversions.
+
+ </dd><dt>
+2006-08-31 babl-0.0.4 </dt><dd>
+Build environment fixes
+Reduced used/exposed API.
+Added GEGL speedup extension.
+ </dd><dt>
+2005-0x-xx babl-0.0.2 <em>Green fish release</em> </dt><dd>
+
+Initial release.
+
+ </dd><dt>
+2005-08-xx babl-0.0.1 </dt><dd>
+
+Development release of babl, minimal working configuration for
+RGB, CMYK and YCbCr for 8bit 16bit float and double. Emphasis is on
+precision and clarity of code not speed.
+
+ </dd></dl>
+
+-->
--- /dev/null
+Babl-0.1.18
+
+Contents
+
+ • Babl
+ • Features
+ • Download
+ • Documentation
+ • Usage
+ • Vocabulary
+ • Shortcut Coverage
+ • Environment
+ • Extending
+ • Directory Overview
+ • Todo
+ • Copyright
+ • Authors
+
+
+babl is a dynamic, any to any, pixel format translation library.
+
+It allows converting between different methods of storing pixels known
+as pixel formats that have with different bitdepths and other data
+representations, color models and component permutations.
+
+A vocabulary to formulate new pixel formats from existing primitives is
+provided as well as the framework to add new color models and data
+types.
+
+Features
+
+ • Fast.
+ • Accurate.
+ • Stable, small API.
+ • Self profiling and optimizing.
+ • ANSI C, works on win32, linux and mac, 32bit and 64bit systems.
+ • Extendable with new formats, color models, components and
+ datatypes.
+ • Reference 64bit floating point conversions for datatypes and color
+ models.
+
+GEGL through GeglBuffer provides tiled buffers with on disk storage as
+well as linear buffers with accessor functions for efficient data
+access transparently using babl fishes for translation to the desired
+pixel formats.
+
+Download
+
+The latest versioned development version of babl can be found in ftp://
+ftp.gtk.org/pub/babl/.
+
+Babl uses git. The main repository is hosted by GNOME. It can be
+browsed online and cloned with:
+
+git clone git://git.gnome.org/babl
+
+The following is a list of the major changes that have gone into each
+babl release. If there are significant improvements to babl when a GEGL
+release is done a babl release is most often put out just prior to the
+GEGL release.
+
+2016-06-13 babl-0.1.18
+ Bugfix: take alpha threshold in consideration when processing
+ floats in SSE2.
+2016-02-12 babl-0.1.16
+ Improvements to half float reference, SIMD, and fast-paths, and CIE
+ float fast paths; cleanups of fast path extensions.
+2015-11-19 babl-0.1.14
+ sRGB precision tuning, stability fixes, locale fix for setting
+ error tolerance.
+2015-02-03 babl-0.1.12
+ optimizations for floating point conversions, HSV and HSL color
+ models, removal of dead code, fixed CIE Lab conversions.
+2012-03-30 babl-0.1.10
+ LUT based speedups for gamma correction / uncorrection.
+2012-03-30 babl-0.1.8
+ Added support for indexed/pallette based formats, constified API.
+2011-11-18 babl-0.1.6
+ Build improvements, remove blatantly wrong conversions from
+ extensions, made it possible to distinguish format_n formats from
+ others, improvements to vala/gobject introspection support.
+2011-01-20 babl-0.1.4
+ Improved cross platform build ability, added code to handle
+ n-component formats, remove extraenous runtime profiling that
+ impacted performance.
+2010-01-15 babl-0.1.2
+ Made babl mostly threadsafe (sufficient for GIMP/GEGLs needs).
+ Streamlined core functionality, reducing number of function calls
+ and removing overeager instrumentation.
+2009-05-20 babl-0.1.0
+ Support for RGBA representation in the frequency domain,
+ un-pre-multiply close-to-zero alpha values to complete black
+ instead of slightly brighter than black, add a BABL_ALPHA_THRESHOLD
+ constant to the API, do a complete overhaul of the babl API and do
+ some changes to increase portability of the library.
+2008-06-12 babl-0.0.22
+ Speed improvements due to: coalesced hashing, early bail out upon
+ creation of duplicate formats, caching of non existing paths. Large
+ amounts of the core has also been reviewed and refactored. Improved
+ conversion coverage in the matrix.
+2008-02-27 babl-0.0.20
+ Builds on OSX Check <0.0 and >1.0 values conversions for accuracy
+ as well.
+
+For more news see git log.
+
+Documentation
+
+When using BablFishes to do your conversions, you request a fish to
+convert between two formats, and an optimal fish to babls capability is
+provided that you can use to do your conversions. Babl also provides
+the capability to describe new formats based on a vocabulary of user
+registered color models and data types.
+
+Babl provides a base vocabulary in BablBase and some extensions that
+are thought to be generally useful.
+
+When performing further extensions to the vocabulary of babl, the
+internal consistency is governed by reference conversions that operate
+on double (64 bit floating point values). The only color model created
+during BablCore bootstrap is RGBA (linear light RGB, 0.0 - 1.0, with a
+linear 0.0 - 1.0 opacity channel) backed by the double datatype.
+Defined similarily to scRGB using 64bit floating point.
+
+If babls conversion isn't fast enough, you can provide your own
+conversion shortcut between two formats. The registered shortcut might
+also be used by babl as an intermediate conversion when constructing
+BablFishes for other conversions.
+
+Babl extensions are shared objects. If you have already developed some
+fast conversion functions, wrapping them as babl extensions should not
+take much time and will speed up babl for other users as well.
+
+Usage
+
+babl_process (babl_fish (source_format, destination_format),
+ source_buffer, destination_buffer,
+ pixel_count);
+
+The processing operation that babl performs is copying including
+conversions if needed between linear buffers containing the same count
+of pixels, with different pixel formats.
+
+int width = 123, height = 581, pixel_count = width * height;
+
+const Babl *srgb = babl_format ("R'G'B' u8");
+const Babl *lab = babl_format ("CIE Lab float");
+const Babl *srgb_to_lab_fish = babl_fish (srgb, lab);
+
+float *lab_buffer;
+unsigned char *srgb_buffer;
+
+babl_init ();
+
+srgb_buffer = malloc (pixel_count * babl_format_get_bytes_per_pixel (srgb));
+lab_buffer = malloc (pixel_count * 3 * sizeof (float));
+
+...... load data into srgb_buffer .......
+
+babl_process (srgb_to_lab_fish, srgb_buffer, lab_buffer, pixel_count);
+
+...... do operation in lab space ........
+
+babl_process (babl_fish(lab, srgb),
+ lab_buffer, srgb_buffer, pixel_count);
+
+/* the data has now been transformed back to srgb data */
+
+If the existing pixel formats are not sufficient for your conversion
+needs, new ones can be created on the fly. The constructor will provide
+the prior created one if duplicates are registered.
+
+const Babl *format = babl_format_new (babl_model ("R'G'B'"),
+ babl_type ("u16"),
+ babl_component ("B'"),
+ babl_component ("G'"),
+ babl_component ("R'"),
+ NULL);
+
+Vocabulary
+
+
++-
+Data types
+double
+
+bits
+ 64
+bytes
+ 8
+
+u15
+
+bits
+ 16
+bytes
+ 2
+
+half
+
+bits
+ 16
+bytes
+ 2
+
+float
+
+bits
+ 32
+bytes
+ 4
+
+u8
+
+bits
+ 8
+bytes
+ 1
+
+u8-luma
+
+bits
+ 8
+bytes
+ 1
+
+u8-chroma
+
+bits
+ 8
+bytes
+ 1
+
+u16
+
+bits
+ 16
+bytes
+ 2
+
+u32
+
+bits
+ 32
+bytes
+ 4
+
+CIE u8 L
+
+bits
+ 8
+bytes
+ 1
+
+CIE u8 ab
+
+bits
+ 8
+bytes
+ 1
+
+CIE u16 L
+
+bits
+ 16
+bytes
+ 2
+
+CIE u16 ab
+
+bits
+ 16
+bytes
+ 2
+
+Color models
+RGBA
+
+components
+
+ R
+ G
+ B
+ A
+
+RGB
+
+components
+
+ R
+ G
+ B
+
+RaGaBaA
+
+components
+
+ Ra
+ Ga
+ Ba
+ A
+
+R'G'B'
+
+components
+
+ R'
+ G'
+ B'
+
+R'G'B'A
+
+components
+
+ R'
+ G'
+ B'
+ A
+
+R'aG'aB'aA
+
+components
+
+ R'a
+ G'a
+ B'a
+ A
+
+Y
+
+components
+
+ Y
+
+YA
+
+components
+
+ Y
+ A
+
+YaA
+
+components
+
+ Ya
+ A
+
+Y'
+
+components
+
+ Y'
+
+Y'A
+
+components
+
+ Y'
+ A
+
+Y'aA
+
+components
+
+ Y'a
+ A
+
+Y'CbCr
+
+components
+
+ Y'
+ Cb
+ Cr
+
+Y'CbCrA
+
+components
+
+ Y'
+ Cb
+ Cr
+ A
+
+HSLA
+
+components
+
+ hue
+ saturation
+ lightness
+ alpha
+
+HSL
+
+components
+
+ hue
+ saturation
+ lightness
+
+HSVA
+
+components
+
+ hue
+ saturation
+ value
+ alpha
+
+HSV
+
+components
+
+ hue
+ saturation
+ value
+
+Y'CbCr709
+
+components
+
+ Y'
+ Cb
+ Cr
+
+Y'CbCrA709
+
+components
+
+ Y'
+ Cb
+ Cr
+ alpha
+
+CMYK
+
+components
+
+ cyan
+ magenta
+ yellow
+ key
+
+CMY
+
+components
+
+ cyan
+ magenta
+ yellow
+
+CIE Lab
+
+components
+
+ CIE L
+ CIE a
+ CIE b
+
+CIE Lab alpha
+
+components
+
+ CIE L
+ CIE a
+ CIE b
+ A
+
+CIE LCH(ab)
+
+components
+
+ CIE L
+ CIE C(ab)
+ CIE H(ab)
+
+CIE LCH(ab) alpha
+
+components
+
+ CIE L
+ CIE C(ab)
+ CIE H(ab)
+ A
+
+Pixel formats
+RGBA double
+
+bytes/pixel
+ 32
+model
+ RGBA
+components
+
+ double R
+ double G
+ double B
+ double A
+
+RGB double
+
+bytes/pixel
+ 24
+model
+ RGB
+components
+
+ double R
+ double G
+ double B
+
+RaGaBaA double
+
+bytes/pixel
+ 32
+model
+ RaGaBaA
+components
+
+ double Ra
+ double Ga
+ double Ba
+ double A
+
+R'G'B' double
+
+bytes/pixel
+ 24
+model
+ R'G'B'
+components
+
+ double R'
+ double G'
+ double B'
+
+R'G'B'A double
+
+bytes/pixel
+ 32
+model
+ R'G'B'A
+components
+
+ double R'
+ double G'
+ double B'
+ double A
+
+R'aG'aB'aA double
+
+bytes/pixel
+ 32
+model
+ R'aG'aB'aA
+components
+
+ double R'a
+ double G'a
+ double B'a
+ double A
+
+R'G'B' u8
+
+bytes/pixel
+ 3
+model
+ R'G'B'
+components
+
+ u8 R'
+ u8 G'
+ u8 B'
+
+R'G'B'A u8
+
+bytes/pixel
+ 4
+model
+ R'G'B'A
+components
+
+ u8 R'
+ u8 G'
+ u8 B'
+ u8 A
+
+RGBA float
+
+bytes/pixel
+ 16
+model
+ RGBA
+components
+
+ float R
+ float G
+ float B
+ float A
+
+RGB float
+
+bytes/pixel
+ 12
+model
+ RGB
+components
+
+ float R
+ float G
+ float B
+
+RGB half
+
+bytes/pixel
+ 6
+model
+ RGB
+components
+
+ half R
+ half G
+ half B
+
+RGBA half
+
+bytes/pixel
+ 8
+model
+ RGBA
+components
+
+ half R
+ half G
+ half B
+ half A
+
+RaGaBaA half
+
+bytes/pixel
+ 8
+model
+ RaGaBaA
+components
+
+ half Ra
+ half Ga
+ half Ba
+ half A
+
+R'G'B' half
+
+bytes/pixel
+ 6
+model
+ R'G'B'
+components
+
+ half R'
+ half G'
+ half B'
+
+R'G'B'A half
+
+bytes/pixel
+ 8
+model
+ R'G'B'A
+components
+
+ half R'
+ half G'
+ half B'
+ half A
+
+R'aG'aB'aA half
+
+bytes/pixel
+ 8
+model
+ R'aG'aB'aA
+components
+
+ half R'a
+ half G'a
+ half B'a
+ half A
+
+RGB u15
+
+bytes/pixel
+ 6
+model
+ RGB
+components
+
+ u15 R
+ u15 G
+ u15 B
+
+RGBA u15
+
+bytes/pixel
+ 8
+model
+ RGBA
+components
+
+ u15 R
+ u15 G
+ u15 B
+ u15 A
+
+RaGaBaA u15
+
+bytes/pixel
+ 8
+model
+ RaGaBaA
+components
+
+ u15 Ra
+ u15 Ga
+ u15 Ba
+ u15 A
+
+R'G'B' u15
+
+bytes/pixel
+ 6
+model
+ R'G'B'
+components
+
+ u15 R'
+ u15 G'
+ u15 B'
+
+R'G'B'A u15
+
+bytes/pixel
+ 8
+model
+ R'G'B'A
+components
+
+ u15 R'
+ u15 G'
+ u15 B'
+ u15 A
+
+R'aG'aB'aA u15
+
+bytes/pixel
+ 8
+model
+ R'aG'aB'aA
+components
+
+ u15 R'a
+ u15 G'a
+ u15 B'a
+ u15 A
+
+RGB u32
+
+bytes/pixel
+ 12
+model
+ RGB
+components
+
+ u32 R
+ u32 G
+ u32 B
+
+RGBA u32
+
+bytes/pixel
+ 16
+model
+ RGBA
+components
+
+ u32 R
+ u32 G
+ u32 B
+ u32 A
+
+RaGaBaA u32
+
+bytes/pixel
+ 16
+model
+ RaGaBaA
+components
+
+ u32 Ra
+ u32 Ga
+ u32 Ba
+ u32 A
+
+R'G'B' u32
+
+bytes/pixel
+ 12
+model
+ R'G'B'
+components
+
+ u32 R'
+ u32 G'
+ u32 B'
+
+R'G'B'A u32
+
+bytes/pixel
+ 16
+model
+ R'G'B'A
+components
+
+ u32 R'
+ u32 G'
+ u32 B'
+ u32 A
+
+R'aG'aB'aA u32
+
+bytes/pixel
+ 16
+model
+ R'aG'aB'aA
+components
+
+ u32 R'a
+ u32 G'a
+ u32 B'a
+ u32 A
+
+Y double
+
+bytes/pixel
+ 8
+model
+ Y
+components
+
+ double Y
+
+YA double
+
+bytes/pixel
+ 16
+model
+ YA
+components
+
+ double Y
+ double A
+
+YaA double
+
+bytes/pixel
+ 16
+model
+ YaA
+components
+
+ double Ya
+ double A
+
+Y' double
+
+bytes/pixel
+ 8
+model
+ Y'
+components
+
+ double Y'
+
+Y'A double
+
+bytes/pixel
+ 16
+model
+ Y'A
+components
+
+ double Y'
+ double A
+
+Y'aA double
+
+bytes/pixel
+ 16
+model
+ Y'aA
+components
+
+ double Y'a
+ double A
+
+YA half
+
+bytes/pixel
+ 4
+model
+ YA
+components
+
+ half Y
+ half A
+
+YaA half
+
+bytes/pixel
+ 4
+model
+ YaA
+components
+
+ half Ya
+ half A
+
+Y half
+
+bytes/pixel
+ 2
+model
+ Y
+components
+
+ half Y
+
+Y'A half
+
+bytes/pixel
+ 4
+model
+ Y'A
+components
+
+ half Y'
+ half A
+
+Y'aA half
+
+bytes/pixel
+ 4
+model
+ Y'aA
+components
+
+ half Y'a
+ half A
+
+Y' half
+
+bytes/pixel
+ 2
+model
+ Y'
+components
+
+ half Y'
+
+YA u15
+
+bytes/pixel
+ 4
+model
+ YA
+components
+
+ u15 Y
+ u15 A
+
+YaA u15
+
+bytes/pixel
+ 4
+model
+ YaA
+components
+
+ u15 Ya
+ u15 A
+
+Y u15
+
+bytes/pixel
+ 2
+model
+ Y
+components
+
+ u15 Y
+
+Y'A u15
+
+bytes/pixel
+ 4
+model
+ Y'A
+components
+
+ u15 Y'
+ u15 A
+
+Y'aA u15
+
+bytes/pixel
+ 4
+model
+ Y'aA
+components
+
+ u15 Y'a
+ u15 A
+
+Y' u15
+
+bytes/pixel
+ 2
+model
+ Y'
+components
+
+ u15 Y'
+
+YA u32
+
+bytes/pixel
+ 8
+model
+ YA
+components
+
+ u32 Y
+ u32 A
+
+YaA u32
+
+bytes/pixel
+ 8
+model
+ YaA
+components
+
+ u32 Ya
+ u32 A
+
+Y u32
+
+bytes/pixel
+ 4
+model
+ Y
+components
+
+ u32 Y
+
+Y'A u32
+
+bytes/pixel
+ 8
+model
+ Y'A
+components
+
+ u32 Y'
+ u32 A
+
+Y'aA u32
+
+bytes/pixel
+ 8
+model
+ Y'aA
+components
+
+ u32 Y'a
+ u32 A
+
+Y' u32
+
+bytes/pixel
+ 4
+model
+ Y'
+components
+
+ u32 Y'
+
+Y'CbCr double
+
+bytes/pixel
+ 24
+model
+ Y'CbCr
+components
+
+ double Y'
+ double Cb
+ double Cr
+
+Y'CbCrA double
+
+bytes/pixel
+ 32
+model
+ Y'CbCrA
+components
+
+ double Y'
+ double Cb
+ double Cr
+ double A
+
+Y'CbCr u8
+
+bytes/pixel
+ 3
+model
+ Y'CbCr
+components
+
+ u8-luma Y'
+ u8-chroma Cb
+ u8-chroma Cr
+
+R'G'B'A float
+
+bytes/pixel
+ 16
+model
+ R'G'B'A
+components
+
+ float R'
+ float G'
+ float B'
+ float A
+
+R'G'B'A u16
+
+bytes/pixel
+ 8
+model
+ R'G'B'A
+components
+
+ u16 R'
+ u16 G'
+ u16 B'
+ u16 A
+
+R'aG'aB'aA float
+
+bytes/pixel
+ 16
+model
+ R'aG'aB'aA
+components
+
+ float R'a
+ float G'a
+ float B'a
+ float A
+
+R'aG'aB'aA u16
+
+bytes/pixel
+ 8
+model
+ R'aG'aB'aA
+components
+
+ u16 R'a
+ u16 G'a
+ u16 B'a
+ u16 A
+
+R'aG'aB'aA u8
+
+bytes/pixel
+ 4
+model
+ R'aG'aB'aA
+components
+
+ u8 R'a
+ u8 G'a
+ u8 B'a
+ u8 A
+
+R'G'B' float
+
+bytes/pixel
+ 12
+model
+ R'G'B'
+components
+
+ float R'
+ float G'
+ float B'
+
+R'G'B' u16
+
+bytes/pixel
+ 6
+model
+ R'G'B'
+components
+
+ u16 R'
+ u16 G'
+ u16 B'
+
+Y'A float
+
+bytes/pixel
+ 8
+model
+ Y'A
+components
+
+ float Y'
+ float A
+
+Y'aA float
+
+bytes/pixel
+ 8
+model
+ Y'aA
+components
+
+ float Y'a
+ float A
+
+Y' float
+
+bytes/pixel
+ 4
+model
+ Y'
+components
+
+ float Y'
+
+Y'A u16
+
+bytes/pixel
+ 4
+model
+ Y'A
+components
+
+ u16 Y'
+ u16 A
+
+Y'aA u16
+
+bytes/pixel
+ 4
+model
+ Y'aA
+components
+
+ u16 Y'a
+ u16 A
+
+Y' u16
+
+bytes/pixel
+ 2
+model
+ Y'
+components
+
+ u16 Y'
+
+Y'A u8
+
+bytes/pixel
+ 2
+model
+ Y'A
+components
+
+ u8 Y'
+ u8 A
+
+Y'aA u8
+
+bytes/pixel
+ 2
+model
+ Y'aA
+components
+
+ u8 Y'a
+ u8 A
+
+Y' u8
+
+bytes/pixel
+ 1
+model
+ Y'
+components
+
+ u8 Y'
+
+Y'CbCr float
+
+bytes/pixel
+ 12
+model
+ Y'CbCr
+components
+
+ float Y'
+ float Cb
+ float Cr
+
+Y'CbCrA float
+
+bytes/pixel
+ 16
+model
+ Y'CbCrA
+components
+
+ float Y'
+ float Cb
+ float Cr
+ float A
+
+RGBA u16
+
+bytes/pixel
+ 8
+model
+ RGBA
+components
+
+ u16 R
+ u16 G
+ u16 B
+ u16 A
+
+RGBA u8
+
+bytes/pixel
+ 4
+model
+ RGBA
+components
+
+ u8 R
+ u8 G
+ u8 B
+ u8 A
+
+RaGaBaA float
+
+bytes/pixel
+ 16
+model
+ RaGaBaA
+components
+
+ float Ra
+ float Ga
+ float Ba
+ float A
+
+RaGaBaA u16
+
+bytes/pixel
+ 8
+model
+ RaGaBaA
+components
+
+ u16 Ra
+ u16 Ga
+ u16 Ba
+ u16 A
+
+RaGaBaA u8
+
+bytes/pixel
+ 4
+model
+ RaGaBaA
+components
+
+ u8 Ra
+ u8 Ga
+ u8 Ba
+ u8 A
+
+RGB u16
+
+bytes/pixel
+ 6
+model
+ RGB
+components
+
+ u16 R
+ u16 G
+ u16 B
+
+RGB u8
+
+bytes/pixel
+ 3
+model
+ RGB
+components
+
+ u8 R
+ u8 G
+ u8 B
+
+YA float
+
+bytes/pixel
+ 8
+model
+ YA
+components
+
+ float Y
+ float A
+
+YaA float
+
+bytes/pixel
+ 8
+model
+ YaA
+components
+
+ float Ya
+ float A
+
+Y float
+
+bytes/pixel
+ 4
+model
+ Y
+components
+
+ float Y
+
+YA u16
+
+bytes/pixel
+ 4
+model
+ YA
+components
+
+ u16 Y
+ u16 A
+
+YaA u16
+
+bytes/pixel
+ 4
+model
+ YaA
+components
+
+ u16 Ya
+ u16 A
+
+Y u16
+
+bytes/pixel
+ 2
+model
+ Y
+components
+
+ u16 Y
+
+YA u8
+
+bytes/pixel
+ 2
+model
+ YA
+components
+
+ u8 Y
+ u8 A
+
+YaA u8
+
+bytes/pixel
+ 2
+model
+ YaA
+components
+
+ u8 Ya
+ u8 A
+
+Y u8
+
+bytes/pixel
+ 1
+model
+ Y
+components
+
+ u8 Y
+
+HSLA double
+
+bytes/pixel
+ 32
+model
+ HSLA
+components
+
+ double hue
+ double saturation
+ double lightness
+ double alpha
+
+HSL double
+
+bytes/pixel
+ 24
+model
+ HSL
+components
+
+ double hue
+ double saturation
+ double lightness
+
+HSLA float
+
+bytes/pixel
+ 16
+model
+ HSLA
+components
+
+ float hue
+ float saturation
+ float lightness
+ float alpha
+
+HSL float
+
+bytes/pixel
+ 12
+model
+ HSL
+components
+
+ float hue
+ float saturation
+ float lightness
+
+HSVA double
+
+bytes/pixel
+ 32
+model
+ HSVA
+components
+
+ double hue
+ double saturation
+ double value
+ double alpha
+
+HSV double
+
+bytes/pixel
+ 24
+model
+ HSV
+components
+
+ double hue
+ double saturation
+ double value
+
+HSVA float
+
+bytes/pixel
+ 16
+model
+ HSVA
+components
+
+ float hue
+ float saturation
+ float value
+ float alpha
+
+HSV float
+
+bytes/pixel
+ 12
+model
+ HSV
+components
+
+ float hue
+ float saturation
+ float value
+
+Y'CbCr709 double
+
+bytes/pixel
+ 24
+model
+ Y'CbCr709
+components
+
+ double Y'
+ double Cb
+ double Cr
+
+Y'CbCrA709 double
+
+bytes/pixel
+ 32
+model
+ Y'CbCrA709
+components
+
+ double Y'
+ double Cb
+ double Cr
+ double alpha
+
+Y'CbCrA709 float
+
+bytes/pixel
+ 16
+model
+ Y'CbCrA709
+components
+
+ float Y'
+ float Cb
+ float Cr
+ float alpha
+
+Y'CbCr709 float
+
+bytes/pixel
+ 12
+model
+ Y'CbCr709
+components
+
+ float Y'
+ float Cb
+ float Cr
+
+CMYK double
+
+bytes/pixel
+ 32
+model
+ CMYK
+components
+
+ double cyan
+ double magenta
+ double yellow
+ double key
+
+CMY double
+
+bytes/pixel
+ 24
+model
+ CMY
+components
+
+ double cyan
+ double magenta
+ double yellow
+
+CMYK float
+
+bytes/pixel
+ 16
+model
+ CMYK
+components
+
+ float cyan
+ float magenta
+ float yellow
+ float key
+
+CMY float
+
+bytes/pixel
+ 12
+model
+ CMY
+components
+
+ float cyan
+ float magenta
+ float yellow
+
+CMYK u8
+
+bytes/pixel
+ 4
+model
+ CMYK
+components
+
+ u8 cyan
+ u8 magenta
+ u8 yellow
+ u8 key
+
+B'aG'aR'aA u8
+
+bytes/pixel
+ 4
+model
+ R'aG'aB'aA
+components
+
+ u8 B'a
+ u8 G'a
+ u8 R'a
+ u8 A
+
+cairo-ARGB32
+
+bytes/pixel
+ 4
+model
+ R'aG'aB'aA
+components
+
+ u8 B'a
+ u8 G'a
+ u8 R'a
+ u8 A
+
+cairo-RGB24
+
+bytes/pixel
+ 4
+model
+ R'G'B'
+components
+
+ u8 B'
+ u8 G'
+ u8 R'
+ u8 PAD
+
+cairo-A8
+
+bytes/pixel
+ 1
+model
+ YA
+components
+
+ u8 A
+
+CIE Lab double
+
+bytes/pixel
+ 24
+model
+ CIE Lab
+components
+
+ double CIE L
+ double CIE a
+ double CIE b
+
+CIE Lab alpha double
+
+bytes/pixel
+ 32
+model
+ CIE Lab alpha
+components
+
+ double CIE L
+ double CIE a
+ double CIE b
+ double A
+
+CIE LCH(ab) double
+
+bytes/pixel
+ 24
+model
+ CIE LCH(ab)
+components
+
+ double CIE L
+ double CIE C(ab)
+ double CIE H(ab)
+
+CIE LCH(ab) alpha double
+
+bytes/pixel
+ 32
+model
+ CIE LCH(ab) alpha
+components
+
+ double CIE L
+ double CIE C(ab)
+ double CIE H(ab)
+ double A
+
+CIE Lab float
+
+bytes/pixel
+ 12
+model
+ CIE Lab
+components
+
+ float CIE L
+ float CIE a
+ float CIE b
+
+CIE Lab alpha float
+
+bytes/pixel
+ 16
+model
+ CIE Lab alpha
+components
+
+ float CIE L
+ float CIE a
+ float CIE b
+ float A
+
+CIE L alpha float
+
+bytes/pixel
+ 8
+model
+ CIE Lab alpha
+components
+
+ float CIE L
+ float A
+
+CIE Lab u8
+
+bytes/pixel
+ 3
+model
+ CIE Lab
+components
+
+ CIE u8 L CIE L
+ CIE u8 ab CIE a
+ CIE u8 ab CIE b
+
+CIE Lab u16
+
+bytes/pixel
+ 6
+model
+ CIE Lab
+components
+
+ CIE u16 L CIE L
+ CIE u16 ab CIE a
+ CIE u16 ab CIE b
+
+CIE LCH(ab) float
+
+bytes/pixel
+ 12
+model
+ CIE LCH(ab)
+components
+
+ float CIE L
+ float CIE C(ab)
+ float CIE H(ab)
+
+CIE LCH(ab) alpha float
+
+bytes/pixel
+ 16
+model
+ CIE LCH(ab) alpha
+components
+
+ float CIE L
+ float CIE C(ab)
+ float CIE H(ab)
+ float A
+
+Shortcut Coverage
+
+The diagram shown below visualizes the coverage of current shortcut
+conversions. Dots indicate a direct conversion is provided for, the
+height of the bar indicates the number of conversions steps needed in a
+chain of conversions. A DHTML version is also available.
+
+
+ ▂·▃▂·▁▂▁ ▃▂ ·· ·▂ ▂▃ ▃ ·· ▁▂▂▃▃▂▃▂▃▂▃ ▃▂ ▃ ▁▁▁▂▂▂▂▁▂▁▂▃▂▂▃▂·· ·· ·· ·· ▃▃ ····▂▁▂ ── 0 RGBA double
+ ── 1 RGB double
+ ── 2 RaGaBaA double
+ ── 3 R'G'B' double
+▂ ▃▂▁▁▂▃▂ ▂▁ ▃▃ ▃▃ ▃ ▃▃ ·▁▁▂▂▁▂▃ ▃ ▃ ▃ ▂▂▂▃▃▃▃▂▃▂▃ ▃▃ ▃▃▃ ▃▃ ▃▃ ▃▃ ▃▂ ▃▃▃▃▃▂▃ ── 4 R'G'B'A double
+· ▂▃▁▂▃▂ ▃ ▁▁ ▁▃ ▃ ▁▁ ▂▃ ▃ ▃ ▃ ▃ ▃ ▂▂▂▃▃▃▃▂▃▃▃ ▃▃ ▃▁▁ ▁▁ ▁▁ ▁▁ ▂ ▁▁▁▁▃▂▃ ── 5 R'aG'aB'aA double
+▁ ▁ ···▁▁ ▁▁ ▂▂ ▂▂ ▂▃ ▃ ▂▂ ▁▁▁▁···▂▃▂▃ ▃▂ ▃ ▁▁·▁▂▁▁▁▂▁▂▃▂▂▃▂▂▂ ▂▂ ▂▂ ▂▂ ▁· ▂▂▂▂▁▁▂ ── 6 R'G'B' u8
+▁ ▁▂ ·▁▂▁ ▂▁ ▂▂ ▂▂ ▂▃ ▃ ▂▂ ··▁▂▂▁▁▂▃▂▃ ▃▂ ▃ ▁▁▁▂▂▁▂▁▂▁▂▃▂▂ ▂▂▂ ▂▂ ▂▂ ▂▂ ▃· ▂▂▂▂▂▁▂ ── 7 R'G'B'A u8
+· ▁▁▂ ·▁· ▂▁ ▁▁ ▁▁ ▁▂ ▂ ▁▁ ·▁▁▂▂▁▂▁▂▁▂▃▂▂▃▂ ···▁▁▁▁·▁·▁▂▁▁▂▁▁▁ ▁▁ ▁▁ ▁▁ ▃▂ ▁▁▁▁▁·▁ ── 8 RGBA float
+▁ ▂▂▁▂ ·▁ ▁▂ ▂▂ ▂▂ ▂▃ ▃ ▂▂ ▁▂▁▂▂·▁▂▃▂▃ ▃▃ ▃ ▁▁·▁▁··▁▂▁▃▃▂▂▃▂▂▂ ▂▂ ▂▂ ▂▂ ▃▂ ▂▂▂▂·▁▂ ── 9 RGB float
+▂ ▃▃▂▃▁ ▂ ▂▃ ▃▃ ▃▃ ▃ ▃▃ ▂▃▂▃▃▁▂▃ ▃ ▃ ▃ ▂▂▁▂▂ ▁▃▃▂▃ ▃▃ ▃▃▃ ▃▃ ▃▃ ▃▃ ▃▃ ▃▃▃▃▁▂▃ ──10 RGB half
+▁ ▂▂▃▂·▁ ▃▂ ▂▂ ▂▂ ▂▃ ▃ ▂▂ ▁▂▂▃▃▂▃▂▃▂▃ ▃▃ ▃ ▁▁▁▂▂▂▂▁▂▁▂▃▂▂▃▂▂▂ ▂▂ ▂▂ ▂▂ ▃▃ ▂▂▂▂▂▁▂ ──11 RGBA half
+ ──12 RaGaBaA half
+▃ ▂ ▁▂▂▁▂▃ ▂ ▁▂▁▂▂· ▃▃▂▃▃▂▂▃ ▃ ▃ ▃▂ ▂▃ ──13 R'G'B' half
+▂ ▁▃▂▁▁▂▃▂ ▃▃ ▃▃ ▃ ▃▃ ·▁▁▂▂▁▂▃ ▃ ▃ ▃ ▂▂▂▃▃▃▃▂▃▂▃ ▃▃ ▃▃▃ ▃▃ ▃▃ ▃▃ ▃▂ ▃▃▃▃▃▂▃ ──14 R'G'B'A half
+ ──15 R'aG'aB'aA half
+ ──16 RGB u15
+ ──17 RGBA u15
+ ──18 RaGaBaA u15
+ ──19 R'G'B' u15
+ ──20 R'G'B'A u15
+ ──21 R'aG'aB'aA u15
+ ──22 RGB u32
+ ──23 RGBA u32
+ ──24 RaGaBaA u32
+ ──25 R'G'B' u32
+ ──26 R'G'B'A u32
+ ──27 R'aG'aB'aA u32
+· ▃▁▂▃▁▂▃▂ ▃ ▁ ▁▃ ▁▁ ▂▃▃▃▃▃ ▃ ▃ ▃ ▃ ▂▂▂▃▃▃▃▂▃ ▃ ▃ ▁▁ ▁▁ ▁▁ ▁▁ ▂ ▁▁▁▁▃▂▃ ──28 Y double
+· ▃▁▂▃▁▂▃▂ ▃ ▁ ▃ ▁▁ ▂▃▃▃▃▃ ▃ ▃ ▃ ▃ ▂▂▂▃▃▃▃ ▃▂ ▃▃ ▃▁▁ ▁▁ ▁▁ ▁▁ ▂ ▁▁▁▁▃▂▃ ──29 YA double
+ ──30 YaA double
+ ──31 Y' double
+ ──32 Y'A double
+· ▃▁▂▃▁▂▃▂ ▃ ▁▁ ▃ ▃ ▁▁ ▂▃▃▃▃▃ ▃ ▃ ▃ ▃ ▂▂▂▃▃▃▃▂▃▂▃ ▃▃ ▃▁▁ ▁▁ ▁▁ ▁▁ ▂ ▁▁▁▁▃▂▃ ──33 Y'aA double
+▂ ▃▃▃▃▁▂▃▂ ▃ ▃ ▂▂ ▃ ▃▃ ▂▃▃▃▃▃ ▁▂▂▂▃▃▂▃▃ ▂▂▂▃▃▃▃·▁▁ ▂▂▁▂▂▃▃ ▃▃ ▃▃ ▃▃ ▃ ▃▃▃▃▃▂▁ ──34 YA half
+ ──35 YaA half
+▃ ▃▃▂▁▂▃ ▃ ▂ ▃ ▂ ▃ ▃ ▃▂▃▂▂▁▃▃▂▃▃▂ ▃▃▂▃▃▂▂▁▁·▂▂ ▂▂▁ ▃▂ ▂▃▂ ──36 Y half
+▃ ▂ ▃▂▂▃ ▃ ▃▂ ▂ ▂ ▁▂▂▃▃▂▃·▁▁ ▃▂▁▂▂ ▃▃▃ ▃▁▂▂▂▃▃▂▃▃ ▃ ▃▂ ──37 Y'A half
+ ──38 Y'aA half
+ ▃ ▂▃▃▂▃ ▂▃ ▃ ▂▂ ▂▃▂▃▃▁▂▁▁·▂▂▁▂▂▁ ▃ ▃▃▂▂▁▃▃▂▃▃▂ ▃▃ ▃ ▃ ──39 Y' half
+ ──40 YA u15
+ ──41 YaA u15
+ ──42 Y u15
+ ──43 Y'A u15
+ ──44 Y'aA u15
+ ──45 Y' u15
+ ──46 YA u32
+ ──47 YaA u32
+ ──48 Y u32
+ ──49 Y'A u32
+ ──50 Y'aA u32
+ ──51 Y' u32
+· ▃▁▂▃▁▂▃▂ ▃ ▁▁ ▁▃ ▃ ▁ ▂▃▃▃▃▃ ▃ ▃ ▃ ▃ ▂▂▂▃▃▃▃▂▃▂▃ ▃▃ ▃▁▁ ▁▁ ▁▁ ▁▁ ▂ ▁▁▁▁▃▂▃ ──52 Y'CbCr double
+· ▃▁▂▃▁▂▃▂ ▃ ▁▁ ▁▃ ▃ ▂▃▃▃▃▃ ▃ ▃ ▃ ▃ ▂▂▂▃▃▃▃▂▃▂▃ ▃▃ ▃▁▁ ▁▁ ▁▁ ▁▁ ▂ ▁▁▁▁▃▂▃ ──53 Y'CbCrA double
+ ──54 Y'CbCr u8
+▁ ·▂▁··▁▂▁ ▁· ▂▂ ▃▂ ▂▃ ▃ ▂▂ ··▁▁·▁▂▃▂▃ ▃▂ ▃ ▁▁▁▂▂▂▂▁▂▁▂▃▂▂▃▂▂▂ ▂▂ ▂▂ ▂▂ ▂▁ ▂▂▂▂▂▁▂ ──55 R'G'B'A float
+▂ ▁▃▂▁▁▂▃▂ ▂▁ ▃▃ ▃▃ ▃ ▃▃ ·▁▁▁▁▃ ▃ ▃ ▃ ▂▂▂▃▃▂▃▂▃▂▃ ▃▃ ▃▃▃ ▃▃ ▃▃ ▃▃ ▃▂ ▃▃▃▃▃▂▃ ──56 R'G'B'A u16
+▂ ▁ ▂▁▁▂▃▂ ▂▁ ▃▃ ▃▃ ▃ ▃▃ · ··▁▂▃ ▃ ▃ ▃ ▂▂▂▃▃▃▃▂▃▂▃ ▃▃ ▃▃▃ ▃▃ ▃▃ ▃▃ ▁▂ ▃▃▃▃▃▂▃ ──57 R'aG'aB'aA float
+▃ ▂ ▃▂▂▃▃▃ ▃▂ ▃▃ ▃▃ ▃ ▃▃ ▁▂ ·▂▂▃ ▃ ▃ ▃ ▃▃▃▃▃▃▃▃▃▃▃ ▃▃ ▃▃▃ ▃▃ ▃▃ ▃▃ ▁▃ ▃▃▃▃▃▃▃ ──58 R'aG'aB'aA u16
+▃ ▂ ▂▃ ▃ ▃▂ ▁▂· ▂▂ ▃▃▃ ▃▃▃▃ ▃ ▃ · ▃ ──59 R'aG'aB'aA u8
+▂ ▁▃·▁▁·▁▂ ·▁ ▃▃ ▃▃ ▃ ▃▃ ·▁·▁ ·▃ ▃ ▃ ▃ ▂▂▁▂▂▁▁▂▃▂▃ ▃▃ ▃▃▃ ▃▃ ▃▃ ▃▃ ▂▁ ▃▃▃▃▁▂▃ ──60 R'G'B' float
+▃ ▂ ·▁▂▁▂▃ ▁▂ ▁▂▁▂▁ ▃▃▂▃▃▃▂▃ ▃ ▃ ▃▁ ▂▃ ──61 R'G'B' u16
+▂ ▁▃▂▁▁▂▃▂ ▂▁ ▃▃ ▃▁ ▂· ▁ ▃▃ ·▁▁▂▂▁ ···▂▁·▁▁ ▂▂▂▃▃▃▃·▁▁▁▂▂▁▂▂▃▃ ▃▃ ▃▃ ▃▃ ▃▃ ▃▃▃▃▃▂▁ ──62 Y'A float
+▃ ▂ ▃▂▂▃ ▃ ▃▂ ▂ ▃▁ ▂ ▁▂·▁▁▂▃ ▁▁▁▂▁·▂ ▃▃▃ ▃▁▂▂▂▃▃▂▃▃ ▂▃ ▃▂ ──63 Y'aA float
+▃ ▂ ▁▂▂▁▂▃ ▁▂ ▂ ▁▁ · ▁▂▁▂▂·▁· ▁▁·▁▁· ▃▃▂▃▃▂▂▁▁·▂▂▁▂▂▁ ▃▂ ▂▃▂ ──64 Y' float
+▃ ▂ ▃▃▂▃ ▃ ▃▂ ▃▂ ▃▁ ▂ ▁▂▂▃▃▂▂·▂ ▃▂·▃▃ ▃▃▃ ▃▃▃▁▂▂▂▃▃▂▃▃ ▃▃ ▃▂ ──65 Y'A u16
+ ▃ ▃▃ ▃ ▂ ▃ ▂▃▁▂▂▃ ▁·▂ ▃▂▁▃ ▃ ▃ ▃ ──66 Y'aA u16
+ ▃ ▃▃▃▂▃ ▂▃ ▃ ▂▂ ▁ ▂▃▂▃▃▁▃▁▁·▂ ▃▃· ▃ ▃▃▂▂▁▃▃▂▃▃▂ ▂▃ ▃ ▃ ──67 Y' u16
+▁ ▂▂▃▂·▂▂▁ ▃▂ ▂▂ ▃▁ ▂▁ ▂ ▂▃ ▁▃▂▃▃▂▂·▁▁·▃ ▂▂ ▁▁▁▂▂▁▃·▁▁▁▂▂▁▂▂▂▂ ▂▂ ▂▂ ▂▂ ▃▃ ▃▂▂▂▃▂▁ ──68 Y'A u8
+ ▃ ▃ ▃ ▃ ▂ ▃ ▂▃▁▂▂▃ ▁·▂▂·▃ ▃▃▃ ▃ ▃ ──69 Y'aA u8
+▁ ▃▂▂▃·▁▂▁ ▂▃ ▂▂ ▂▂ ▁▂ ▁ ▂▂ ▂▃▂▃▃▁▃▁▁·▃▃·▂ ▁▁▁▂▂▁▂▁▁·▂▂▁▂▂▁▂▂ ▂▂ ▂▂ ▂▂ ▃▃ ▂▂▂▂▂▁▂ ──70 Y' u8
+▃ ▂ ▁▂▂▁▂▃ ▁▂ ▁▂▁▂▂·▁ ▃▃▂▃▃▂▂▃ ▃ ▃ ▃▂ ▂▃ ──71 Y'CbCr float
+▂ ▁▃▂▁▁▂▃▂ ▂▁ ▃▃ ▃▃ ▃ ▃ ·▁▁▂▂▁▂▃ ▃ ▃ ▃ ▂▂▂▃▃▃▃▂▃▂▃ ▃▃ ▃▃▃ ▃▃ ▃▃ ▃▃ ▃▂ ▃▃▃▃▃▂▃ ──72 Y'CbCrA float
+▁ ▂▂▃▂·▁▂▁ ▃▂ ▂▂ ▂▂ ▂▃ ▃ ▂▂ ▁▂▂▃▃▂▂▂▃▂▃ ▃▃ ▃ ▁·▁▂▁▂▁▂▁▂▃▂▂▃▂▂▂ ▂▂ ▂▂ ▂▂ ▃▃ ▂▂▂▂▂▁▂ ──73 RGBA u16
+▁ ▂▂▃▂·▁▂▁ ▃▂ ▂▂ ▂▂ ▂▃ ▃ ▂▂ ▁▂▂▃▃▂▂▂▃▂▃ ▃▂ ▃ ·▁▁▁·▁▂▂▂▃▂▂▃▂▂▂ ▂▂ ▂▂ ▂▂ ▃▃ ▂▂▂▂▂▁▂ ──74 RGBA u8
+▁ ▂▂▃▂·▁▂▁ ▃▂ ▂▂ ▂▂ ▂▃ ▃ ▂▂ ▁▂▂▃▃▂▃▂▃▂▃ ▃▂ ▃ ▁ ··▂▂▁▂▁▂▃▂▂▃▂▂▂ ▂▂ ▂▂ ▂▂ ▃▃ ▂▂▂▂▂▁▂ ──75 RaGaBaA float
+▂ ▃▃▂▃▁▂▃▂ ▃ ▃▃ ▃▃ ▃ ▃▃ ▂▃▃▃▃▃▃▃ ▃ ▃ ▃ ▂▂ ·▂▃▂▃▂▃ ▃▃ ▃▃▃ ▃▃ ▃▃ ▃▃ ▃▂ ▃▃▃▃▃▂▃ ──76 RaGaBaA u16
+▂ ▃▃▂▃▁▂▃▂ ▃ ▃▃ ▃▃ ▃ ▃▃ ▂▃▃▃▃▃▃▃ ▃ ▃ ▃ ▂ · ▂ ▂▃▂▃ ▃▃ ▃▃▃ ▃▃ ▃▃ ▃▃ ▃▂ ▃▃▃▃▃▂▃ ──77 RaGaBaA u8
+▂ ▃▃▂▃▁·▁▂ ▂▃ ▃▃ ▃▃ ▃ ▃▃ ▂▃▂▃▃▁▃▃ ▃ ▃ ▃ ▂▁▁▂ ·▂▃▂▃ ▃▃ ▃▃▃ ▃▃ ▃▃ ▃▃ ▃▃ ▃▃▃▃▁▂▃ ──78 RGB u16
+▁ ▂▃▂▂··▁▁ ▂▂ ▂▂ ▂▂ ▂▃ ▃ ▂▃ ▁▂▂▃▃▁▂▂▃▂▃ ▃▃ ▃ ▁··▁· ▁▂▁▂▃▂▃▃▂▂▃ ▂▂ ▂▂ ▂▂ ▃▃ ▃▃▃▃▁▁▂ ──79 RGB u8
+▁ ▂▂▃▂·▁▂▁ ▃▂ ▂ ▃· ▁▁ ▂ ▂▂ ▁▂▂▃▃▂▃·▁▁▁▃▂▁▂▂ ▁▁▁▂▂▂ ···▁▁·▁▁▂▂ ▂▂ ▂▂ ▂▂ ▃▃ ▂▂▂▂▂▁· ──80 YA float
+▂ ▃▃▃▃▁▂▃▂ ▃ ▃▃ ▃▃ ▃ ▃▃ ▂▃▃▃▃▃ ▃▃▃▂▃▃▂▃▃ ▂▂·▁▁▃▃ ▂▁·▂▁·▂▃▃ ▃▃ ▃▃ ▃▃ ▃▂ ▃▃▃▃▃▂▃ ──81 YaA float
+▂ ▃▃▂▃▁·▁▂ ▂▃ ▃ ▃▁ ·▂ ▁ ▃▃ ▂▃▂▃▃▁▂▁▁·▂▂▁▂▃▁ ▂▂▁▂▂▁▁· ▁▁·▁▁·▃▃ ▃▃ ▃▃ ▃▃ ▃▃ ▃▃▃▃▁▂▁ ──82 Y float
+▂ ▃▃▃▃▁▂▃▂ ▃ ▃▃ ▃▁ ▂▂ ▃ ▃▃ ▂▃▃▃▃▃▃▁▃▂▂▃▃▂▃▃ ▂▂▂▃▃▂▃·▁ ▂▂·▂▃▃▃ ▃▃ ▃▃ ▃▃ ▃▃▃▃▃▂▁ ──83 YA u16
+▃ ▃ ▂▃ ▃ ▃ ▃ ▂▃▃ ▂▃▃▃ ▃ ▃▃▁▂▂▃▃▃·▃ ▁▃ ▃ ▃▂ ──84 YaA u16
+▃ ▃ ▂▁▂▃ ▃ ▂ ▁▃ ▂ ▃ ▃ ▂▃▂▂▁▃▃▂▃▃▂ ▃▂▂▃▃▃▃▁▁·▂ ▃▃· ▂▃▂ ──85 Y u16
+▁ ▃▂▃▃·▂▂▁ ▃▃ ▂▂ ▂▁ ▂▂ ▃ ▂▂ ▂▃▃▃▃▃▃▁▂▂▂▃▃▂▃▃ ▂▁▁▂▂▃▃·▁▁·▂ ▂▂▂▂ ▃▂ ▂▃ ▂▂ ▃▃ ▂▃▂▃▃▂▁ ──86 YA u8
+▃ ▃ ▂▃ ▃ ▂ ▃▃ ▃ ▂▃▃ ▂▃▃▃ ▃ ▃ ▁▂▂▃ ▁·▂ · ▃ ▃▂ ──87 YaA u8
+▁ ▂▂▃▂·▁▂▁ ▃▂ ▂ ▂▂ ▁▃ ▂ ▂▂ ▃▂▃▃▃▂▃▂▂▁▃▃▂▃▃▂ ▂▁▁▃▂▃▂▁▁·▃▂·▂ ▂▂ ▂▂ ▂▂ ▂▂ ▃▃ ▂▂▂▂▂▁▂ ──88 Y u8
+· ▃▁▂▃▁▂▃▂ ▃ ▁▁ ▁▃ ▃ ▁▁ ▂▃▃▃▃▃ ▃ ▃ ▃ ▃ ▂▂▂▃▃▃▃▂▃▃▃ ▃▃ ▁ ▁▁ ▁▁ ▁▁ ▂ ▁▁▁▁▃▂▃ ──89 HSLA double
+· ▃▁▂▃▁▂▃▂ ▃ ▁▁ ▁▃ ▃ ▁▁ ▂▃▃▃▃▃ ▃ ▃ ▃ ▃ ▂▂▂▃▃▃▃▃▃▃▃ ▃▃ ▃ ▁▁ ▁▁ ▁▁ ▂ ▁▁▁▁▃▂▃ ──90 HSL double
+ ──91 HSLA float
+ ──92 HSL float
+· ▃▁▂▃▁▂▃▂ ▃ ▁▁ ▁▃ ▃ ▁▁ ▂▃▃▃▃▃ ▃ ▃ ▃ ▃ ▂▂▂▃▃▃▃▂▃▂▃ ▃▃ ▃▁▁ ▁ ▁▁ ▁▁ ▂ ▁▁▁▁▃▂▃ ──93 HSVA double
+· ▃▁▂▃▁▂▃▂ ▃ ▁▁ ▁▃ ▃ ▁▁ ▂▃▃▃▃▃ ▃ ▃ ▃ ▃ ▂▂▂▃▃▃▃▂▃▂▃ ▃▃ ▃▁▁ ▁▁ ▁▁ ▂ ▁▁▁▁▃▂▃ ──94 HSV double
+ ──95 HSVA float
+ ──96 HSV float
+· ▃▁▂▃▁▂▃▂ ▃ ▁▁ ▁▃ ▃ ▁▁ ▂▃▃▃▃▃ ▃ ▃ ▃ ▃ ▂▂▂▃▃▃▃▃▃▂▃ ▃▃ ▃▁▁ ▁▁ ▁ ▁▁ ▂ ▁▁▁▁▃▂▃ ──97 Y'CbCr709 double
+· ▃▁▂▃▁▂▃▂ ▃ ▁▁ ▁▃ ▃ ▁▁ ▂▃▃▃▃▃ ▃ ▃ ▃ ▃ ▂▂▂▃▃▃▃▂▃▃▃ ▃▃ ▃▁▁ ▁▁ ▁▁ ▂ ▁▁▁▁▃▂▃ ──98 Y'CbCrA709 double
+ ──99 Y'CbCrA709 float
+ ──100 Y'CbCr709 float
+· ▃▁▂▃▁▂▃▂ ▃ ▁▁ ▁▃ ▃ ▁▁ ▂▃▃▃▃▃ ▃ ▃ ▃ ▃ ▂▂▂▃▃▃▃▂▃▂▃ ▃▃ ▃▁▁ ▁▁ ▁▁ ▁ ▂ ▁▁▁▁▃▂▃ ──101 CMYK double
+· ▃▁▂▃▁▂▃▂ ▃ ▁▁ ▁▃ ▃ ▁▁ ▂▃▃▃▃▃ ▃ ▃ ▃ ▃ ▂▂▂▃▃▃▃▂▃▂▃ ▃▃ ▃▁▁ ▁▁ ▁▁ ▂ ▁▁▁▁▃▂▃ ──102 CMY double
+ ──103 CMYK float
+ ──104 CMY float
+ ──105 CMYK u8
+ ──106 B'aG'aR'aA u8
+ ──107 cairo-ARGB32
+ ──108 cairo-RGB24
+ ──109 cairo-A8
+· ▃▁▂▃▁▂▃▂ ▃ ▁▁ ▁▃ ▃ ▁▁ ▂▃▃▃▃▃ ▃ ▃ ▃ ▃ ▂▂▂▃▃▃▃▂▃▂▃ ▃▃ ▃▁▁ ▁▁ ▁▁ ▁▁ ▂ ▁▁▁ ▂▃ ──110 CIE Lab double
+· ▃▁▂▃▁▂▃▂ ▃ ▁▁ ▁▃ ▃ ▁▁ ▂▃▃▃▃▃ ▃ ▃ ▃ ▃ ▂▂▂▃▃▃▃▂▃▂▃ ▃▃ ▃▁▁ ▁▁ ▁▁ ▁▁ ▂ ▁▁▃ ──111 CIE Lab alpha double
+· ▃▁▂▃▁▂▃▂ ▃ ▁▁ ▁▃ ▃ ▁▁ ▂▃▃▃▃▃ ▃ ▃ ▃ ▃ ▂▂▂▃▃▃▃▃▃▂▃ ▃▃ ▃▁▁ ▁▁ ▁▁ ▁▁ ▂ ▁ ▁▃▂▃ ──112 CIE LCH(ab) double
+· ▃▁▂▃▁▂▃▂ ▃ ▁▁ ▁▃ ▃ ▁▁ ▂▃▃▃▃▃ ▃ ▃ ▃ ▃ ▂▂▂▃▃▃▃▂▃▂▃ ▃▃ ▃▁▁ ▁▁ ▁▁ ▁▁ ▂ ▁▁ ▃▂▃ ──113 CIE LCH(ab) alpha double
+▂ ▃▃▂▃▁·▁▂ ▂▃ ▃▃ ▃▃ ▃ ▃▃ ▂▃▂▃▃▁▂▃ ▃ ▃ ▃ ▂▂▁▂▂▁▁▂▃▂▃ ▃▃ ▃▃▃ ▃▃ ▃▃ ▃▃ ▃▃ ▃▃ ▂▃ ──114 CIE Lab float
+▁ ▂▂▃▂·▁▂▁ ▃▂ ▂▂ ▂▂ ▂▃ ▃ ▂▂ ▁▂▂▃▃▂▃▂▃▂▃ ▃▂ ▃ ▁▁▁▂▂▂▂▁▂▁▂▃▂▂▃▂▂▂ ▂▂ ▂▂ ▂▂ ▃▃ ▂ ▂▂ ──115 CIE Lab alpha float
+ ──116 CIE L alpha float
+ ──117 CIE Lab u8
+ ──118 CIE Lab u16
+ ──119 CIE LCH(ab) float
+ ──120 CIE LCH(ab) alpha float
+|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
+||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||111111111111111111111
+||||||||||111111111122222222223333333333444444444455555555556666666666777777777788888888889999999999000000000011111111112
+0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
+total length: 11519
+total cost : 20679660
+
+Environment
+
+If the environment variable BABL_STATS is set containting a html pixel
+format conversion usage matrix will be written to /tmp/babl-stats.html.
+This allows figuring out which conversions is taking up time during
+processing, and what shortcuts extensions might be created or improved
+to make babl do it's job faster.
+
+Through the environment variable BABL_TOLERANCE you can control a speed
+/performance trade off that by default is set very low (0.000001)
+values in the range 0.01-0.1 can provide reasonable preview performance
+by allowing lower numerical accuracy
+
+.
+
+Extending
+
+For samples of how the current internal API specification of data
+types, color models, and conversions look in the extensions/ directory.
+The tables in this HTML file is directly generated based on the data
+registered by BablCore (double and RGBA), BablBase (core datatypes, and
+RGB models), extensions (CIE Lab, naive CMYK, various shortcut
+conversions).
+
+Directory Overview
+
+babl-dist-root
+ │
+ ├──babl the babl core
+ │ └──base reference implementations for RGB and Grayscale Color Models,
+ │ 8bit 16bit, and 32bit and 64bit floating point.
+ ├──extensions CIE-Lab color model as well as a naive-CMYK color model.
+ │ also contains a random cribbage of old conversion optimized
+ │ code from gggl. Finding more exsisting conversions in third
+ │ part libraries (hermes, lcms?, liboil?) could improve the
+ │ speed of babl.
+ ├──tests tests used to keep babl sane during development.
+ └──docs Documentation/webpage for babl (the document you are reading
+ originated there.
+
+TODO
+
+ • Support for conversions between formats that have higher
+ dimensionality than RGBA. (arbitrary meaningless components)
+ • Support for datatypes that are not a multiple of 8bit.
+ • dithering
+ • dynamic data attached to format, or internal handling of icc
+ through a registered set of profiles
+ • Stocastic runtime profiling with running average of the peformance
+ for conversions, to avoid problems incurred if other cpu intense is
+ happening when babl tests a conversions.
+
+Copyright
+
+Babl 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 3 of the License, or (at your
+option) any later version.
+
+Authors
+
+Øyvind Kolås pippin at gimp.org
+ Original author.
+Sven Neumann sven at gimp.org
+ Build sanity and optimizations.
+Michael Natterer mitch at gimp.org
+ Build sanity.
+Kevin Cozens kcozens at cvs.gnome.org
+ Build sanity.
+Tim Mooney
+ Portability fixes.
+Michael Schumacher schumaml at cvs.gnome.org
+ win32 support for dynamic extensions.
+ Portability fixes.
+Jan Heller jheller at svn.gnome.org
+ Optimizations, refactoring and documentation.
+Mukund Sivaraman muks at mukund.org
+ Sparse fixes and sanity.
+dmacks at netspace.org
+ Build sanity
+Sam Hocevar
+ Build sanity.
+Zhang Junbo
+ Frequency domain color model.
+Martin Nordholts
+ Optimizations and API overhaul.
+Gary V. Vaughan
+ Multiplatform build support.
+Stanislav Brabec
+ Portability patch.
+Hubert Figuiere
+ C++ friendliness patch.
+Danny Robson
+ Code cleanups.
+Fryderyk Dziarmagowski freetz at gmx.net
+ Code cleanups.
+Daniel Paredes García danipga at gmail.com
+ Initial work to make babl threadsafe
+Rupert Weber gimp at leguanease.org
+ Documentation and other improvements
+Jehan jehan at girinstud.io
+ win32 portabilitiy
+Sven Claussner
+ Update DOAP file
+Alexander Larsson
+ Math optimizations
+Nils Philippsen
+ code cleanups
+Simon Budig
+ cleanups
+Micheal Muré
+ portability fixes
+Maxime Nicco
+
+ HSV color model extension
+
+Teo Mazars
+ Color spaces/models in extensions
+Daniel Sabo
+ Dead code elimination, general cleanups,
+Michael Henning
+ Conversion fixes
+Elle Stone
+ Verification and improvements to accuracy of color space
+ conversions.
+Thomas Manni
+ CIE related fixupsRoman Lebedev
+ Stability/crasher fixes
+Jon Nordby
+ Portability, Stability and more
+Massimo Valentini
+ stability fixes
+
+/babl-0.1.18
--- /dev/null
+<h2>TODO</h2>
+
+<ul>
+ <li>Support for conversions between formats that have higher dimensionality than RGBA. (arbitrary meaningless components)</li>
+ <li>Support for datatypes that are not a multiple of 8bit.</li>
+ <li>dithering</li>
+ <li>dynamic data attached to format, or internal handling of icc through
+ a registered set of profiles</li>
+ <li>
+ Stocastic runtime profiling with running average of the peformance for
+ conversions, to avoid problems incurred if other cpu intense is happening
+ when babl tests a conversions. </li>
+</ul>
--- /dev/null
+dnl BABL_DETECT_CFLAGS(RESULT, FLAGSET)
+dnl Detect if the compiler supports a set of flags
+
+AC_DEFUN([BABL_DETECT_CFLAGS],
+[
+ $1=
+ for flag in $2; do
+ if test -z "[$]$1"; then
+ $1_save_CFLAGS="$CFLAGS"
+ CFLAGS="$CFLAGS $flag"
+ AC_MSG_CHECKING([whether [$]CC understands [$]flag])
+ AC_TRY_COMPILE([], [], [$1_works=yes], [$1_works=no])
+ AC_MSG_RESULT([$]$1_works)
+ CFLAGS="[$]$1_save_CFLAGS"
+ if test "x[$]$1_works" = "xyes"; then
+ $1="$flag"
+ fi
+ fi
+ done
+])
+
+
+# BABL_VARIADIC_MACROS
+# --------------------
+# check for flavours of variadic macros
+AC_DEFUN([BABL_VARIADIC_MACROS],
+[AC_BEFORE([$0], [AC_PROG_CXX])
+AC_REQUIRE([AC_PROG_CPP])
+AC_CACHE_CHECK([for GNUC variadic macros],
+ [babl_cv_prog_gnuc_variadic_macros],
+ [# gcc-2.95.x supports both gnu style and ISO varargs, but if -ansi
+ # is passed ISO vararg support is turned off, and there is no work
+ # around to turn it on, so we unconditionally turn it off.
+ { echo '#if __GNUC__ == 2 && __GNUC_MINOR__ == 95'
+ echo ' yes '
+ echo '#endif'; } > conftest.c
+ if ${CPP} conftest.c | grep yes > /dev/null; then
+ babl_cv_prog_c_variadic_macros=no
+ babl_cv_prog_cxx_variadic_macros=no
+ fi
+ AC_TRY_COMPILE([],[int a(int p1, int p2, int p3);
+#define call_a(params...) a(1,params)
+call_a(2,3);
+ ],
+ babl_cv_prog_gnuc_variadic_macros=yes,
+ babl_cv_prog_gnuc_variadic_macros=no)
+])
+if test x$babl_cv_prog_gnuc_variadic_macros = xyes; then
+ AC_DEFINE(BABL_GNUC_VARIADIC_MACROS, 1, [Define if the C pre-processor supports GNU style variadic macros])
+fi
+
+AC_CACHE_CHECK([for ISO C99 variadic macros in C],
+ [babl_cv_prog_c_variadic_macros],
+ [AC_TRY_COMPILE([],[int a(int p1, int p2, int p3);
+#define call_a(...) a(1,__VA_ARGS__)
+call_a(2,3);
+ ],
+ babl_cv_prog_c_variadic_macros=yes,
+ babl_cv_prog_c_variadic_macros=no)
+])
+if test x$babl_cv_prog_c_variadic_macros = xyes ; then
+ AC_DEFINE(BABL_ISO_VARIADIC_MACROS, 1, [Define if the C pre-processor supports variadic macros])
+fi
+
+AC_PROVIDE_IFELSE([AC_PROG_CXX],
+ [AC_CACHE_CHECK([for ISO C99 variadic macros in C++],
+ [babl_cv_prog_cxx_variadic_macros],
+ [AC_LANG_PUSH(C++)
+ AC_TRY_COMPILE([],[int a(int p1, int p2, int p3);
+#define call_a(...) a(1,__VA_ARGS__)
+call_a(2,3);
+ ],
+ babl_cv_prog_cxx_variadic_macros=yes,
+ babl_cv_prog_cxx_variadic_macros=no)
+ AC_LANG_POP])],
+ [# No C++ compiler
+ babl_cv_prog_cxx_variadic_macros=no])
+if test x$babl_cv_prog_cxx_variadic_macros = xyes ; then
+ AC_DEFINE(BABL_ISO_CXX_VARIADIC_MACROS, 1, [Define if the C++ pre-processor supports variadic macros])
+fi
+])
+
--- /dev/null
+# generated automatically by aclocal 1.15 -*- Autoconf -*-
+
+# Copyright (C) 1996-2014 Free Software Foundation, Inc.
+
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])])
+m4_ifndef([AC_AUTOCONF_VERSION],
+ [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
+m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.69],,
+[m4_warning([this file was generated for autoconf 2.69.
+You have another version of autoconf. It may work, but is not guaranteed to.
+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-2014 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.15'
+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.15], [],
+ [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
+])
+
+# _AM_AUTOCONF_VERSION(VERSION)
+# -----------------------------
+# aclocal traces this macro to find the Autoconf version.
+# This is a private macro too. Using m4_define simplifies
+# the logic in aclocal, which can simply ignore this definition.
+m4_define([_AM_AUTOCONF_VERSION], [])
+
+# AM_SET_CURRENT_AUTOMAKE_VERSION
+# -------------------------------
+# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
+# This function is AC_REQUIREd by AM_INIT_AUTOMAKE.
+AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
+[AM_AUTOMAKE_VERSION([1.15])dnl
+m4_ifndef([AC_AUTOCONF_VERSION],
+ [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
+_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
+
+# AM_AUX_DIR_EXPAND -*- Autoconf -*-
+
+# Copyright (C) 2001-2014 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/../..'.
+#
+# Of course, Automake must honor this variable whenever it calls a
+# tool from the auxiliary directory. The problem is that $srcdir (and
+# therefore $ac_aux_dir as well) can be either absolute or relative,
+# depending on how configure is run. This is pretty annoying, since
+# it makes $ac_aux_dir quite unusable in subdirectories: in the top
+# source directory, any form will work fine, but in subdirectories a
+# relative path needs to be adjusted first.
+#
+# $ac_aux_dir/missing
+# fails when called from a subdirectory if $ac_aux_dir is relative
+# $top_srcdir/$ac_aux_dir/missing
+# fails if $ac_aux_dir is absolute,
+# fails when called from a subdirectory in a VPATH build with
+# a relative $ac_aux_dir
+#
+# The reason of the latter failure is that $top_srcdir and $ac_aux_dir
+# are both prefixed by $srcdir. In an in-source build this is usually
+# harmless because $srcdir is '.', but things will broke when you
+# start a VPATH build or use an absolute $srcdir.
+#
+# 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.
+
+AC_DEFUN([AM_AUX_DIR_EXPAND],
+[AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl
+# Expand $ac_aux_dir to an absolute path.
+am_aux_dir=`cd "$ac_aux_dir" && pwd`
+])
+
+# AM_CONDITIONAL -*- Autoconf -*-
+
+# Copyright (C) 1997-2014 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_CONDITIONAL(NAME, SHELL-CONDITION)
+# -------------------------------------
+# Define a conditional.
+AC_DEFUN([AM_CONDITIONAL],
+[AC_PREREQ([2.52])dnl
+ m4_if([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])],
+ [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl
+AC_SUBST([$1_TRUE])dnl
+AC_SUBST([$1_FALSE])dnl
+_AM_SUBST_NOTMAKE([$1_TRUE])dnl
+_AM_SUBST_NOTMAKE([$1_FALSE])dnl
+m4_define([_AM_COND_VALUE_$1], [$2])dnl
+if $2; then
+ $1_TRUE=
+ $1_FALSE='#'
+else
+ $1_TRUE='#'
+ $1_FALSE=
+fi
+AC_CONFIG_COMMANDS_PRE(
+[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then
+ AC_MSG_ERROR([[conditional "$1" was never defined.
+Usually this means the macro was only invoked conditionally.]])
+fi])])
+
+# Copyright (C) 1999-2014 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.
+
+
+# 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...
+
+
+# _AM_DEPENDENCIES(NAME)
+# ----------------------
+# See how the compiler implements dependency checking.
+# NAME is "CC", "CXX", "OBJC", "OBJCXX", "UPC", or "GJC".
+# We try a few techniques and use that to set a single cache variable.
+#
+# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was
+# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular
+# dependency, and given that the user is not expected to run this macro,
+# just rely on AC_PROG_CC.
+AC_DEFUN([_AM_DEPENDENCIES],
+[AC_REQUIRE([AM_SET_DEPDIR])dnl
+AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl
+AC_REQUIRE([AM_MAKE_INCLUDE])dnl
+AC_REQUIRE([AM_DEP_TRACK])dnl
+
+m4_if([$1], [CC], [depcc="$CC" am_compiler_list=],
+ [$1], [CXX], [depcc="$CXX" am_compiler_list=],
+ [$1], [OBJC], [depcc="$OBJC" am_compiler_list='gcc3 gcc'],
+ [$1], [OBJCXX], [depcc="$OBJCXX" am_compiler_list='gcc3 gcc'],
+ [$1], [UPC], [depcc="$UPC" am_compiler_list=],
+ [$1], [GCJ], [depcc="$GCJ" am_compiler_list='gcc3 gcc'],
+ [depcc="$$1" am_compiler_list=])
+
+AC_CACHE_CHECK([dependency style of $depcc],
+ [am_cv_$1_dependencies_compiler_type],
+[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
+ # We make a subdir and do the tests there. Otherwise we can end up
+ # making bogus files that we don't know about and never remove. For
+ # instance it was reported that on HP-UX the gcc test will end up
+ # making a dummy file named 'D' -- because '-MD' means "put the output
+ # in D".
+ rm -rf conftest.dir
+ mkdir conftest.dir
+ # Copy depcomp to subdir because otherwise we won't find it if we're
+ # using a relative directory.
+ cp "$am_depcomp" conftest.dir
+ cd conftest.dir
+ # We will build objects and dependencies in a subdirectory because
+ # it helps to detect inapplicable dependency modes. For instance
+ # both Tru64's cc and ICC support -MD to output dependencies as a
+ # side effect of compilation, but ICC will put the dependencies in
+ # the current directory while Tru64 will put them in the object
+ # directory.
+ mkdir sub
+
+ am_cv_$1_dependencies_compiler_type=none
+ if test "$am_compiler_list" = ""; then
+ am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp`
+ fi
+ am__universal=false
+ m4_case([$1], [CC],
+ [case " $depcc " in #(
+ *\ -arch\ *\ -arch\ *) am__universal=true ;;
+ esac],
+ [CXX],
+ [case " $depcc " in #(
+ *\ -arch\ *\ -arch\ *) am__universal=true ;;
+ esac])
+
+ for depmode in $am_compiler_list; do
+ # Setup a source with many dependencies, because some compilers
+ # like to wrap large dependency lists on column 80 (with \), and
+ # we should not choose a depcomp mode which is confused by this.
+ #
+ # We need to recreate these files for each test, as the compiler may
+ # overwrite some of them when testing with obscure command lines.
+ # This happens at least with the AIX C compiler.
+ : > sub/conftest.c
+ for i in 1 2 3 4 5 6; do
+ echo '#include "conftst'$i'.h"' >> sub/conftest.c
+ # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with
+ # Solaris 10 /bin/sh.
+ echo '/* dummy */' > sub/conftst$i.h
+ done
+ echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
+
+ # We check with '-c' and '-o' for the sake of the "dashmstdout"
+ # mode. It turns out that the SunPro C++ compiler does not properly
+ # handle '-M -o', and we need to detect this. Also, some Intel
+ # versions had trouble with output in subdirs.
+ am__obj=sub/conftest.${OBJEXT-o}
+ am__minus_obj="-o $am__obj"
+ case $depmode in
+ gcc)
+ # This depmode causes a compiler race in universal mode.
+ test "$am__universal" = false || continue
+ ;;
+ nosideeffect)
+ # After this tag, mechanisms are not by side-effect, so they'll
+ # only be used when explicitly requested.
+ if test "x$enable_dependency_tracking" = xyes; then
+ continue
+ else
+ break
+ fi
+ ;;
+ msvc7 | msvc7msys | msvisualcpp | msvcmsys)
+ # This compiler won't grok '-c -o', but also, the minuso test has
+ # not run yet. These depmodes are late enough in the game, and
+ # so weak that their functioning should not be impacted.
+ am__obj=conftest.${OBJEXT-o}
+ am__minus_obj=
+ ;;
+ none) break ;;
+ esac
+ if depmode=$depmode \
+ source=sub/conftest.c object=$am__obj \
+ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
+ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
+ >/dev/null 2>conftest.err &&
+ grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
+ grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
+ grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
+ ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
+ # icc doesn't choke on unknown options, it will just issue warnings
+ # or remarks (even with -Werror). So we grep stderr for any message
+ # that says an option was ignored or not supported.
+ # When given -MP, icc 7.0 and 7.1 complain thusly:
+ # icc: Command line warning: ignoring option '-M'; no argument required
+ # The diagnosis changed in icc 8.0:
+ # icc: Command line remark: option '-MP' not supported
+ if (grep 'ignoring option' conftest.err ||
+ grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
+ am_cv_$1_dependencies_compiler_type=$depmode
+ break
+ fi
+ fi
+ done
+
+ cd ..
+ rm -rf conftest.dir
+else
+ am_cv_$1_dependencies_compiler_type=none
+fi
+])
+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])
+])
+
+
+# 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
+])
+
+
+# AM_DEP_TRACK
+# ------------
+AC_DEFUN([AM_DEP_TRACK],
+[AC_ARG_ENABLE([dependency-tracking], [dnl
+AS_HELP_STRING(
+ [--enable-dependency-tracking],
+ [do not reject slow dependency extractors])
+AS_HELP_STRING(
+ [--disable-dependency-tracking],
+ [speeds up one-time build])])
+if test "x$enable_dependency_tracking" != xno; then
+ am_depcomp="$ac_aux_dir/depcomp"
+ AMDEPBACKSLASH='\'
+ am__nodep='_no'
+fi
+AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno])
+AC_SUBST([AMDEPBACKSLASH])dnl
+_AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl
+AC_SUBST([am__nodep])dnl
+_AM_SUBST_NOTMAKE([am__nodep])dnl
+])
+
+# Generate code to set up dependency tracking. -*- Autoconf -*-
+
+# Copyright (C) 1999-2014 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_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
+
+
+# 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"])
+])
+
+# Do all the work for Automake. -*- Autoconf -*-
+
+# Copyright (C) 1996-2014 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This macro actually does too much. Some checks are only needed if
+# your package does certain things. But this isn't really a big deal.
+
+dnl Redefine AC_PROG_CC to automatically invoke _AM_PROG_CC_C_O.
+m4_define([AC_PROG_CC],
+m4_defn([AC_PROG_CC])
+[_AM_PROG_CC_C_O
+])
+
+# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE])
+# AM_INIT_AUTOMAKE([OPTIONS])
+# -----------------------------------------------
+# The call with PACKAGE and VERSION arguments is the old style
+# call (pre autoconf-2.50), which is being phased out. PACKAGE
+# and VERSION should now be passed to AC_INIT and removed from
+# the call to AM_INIT_AUTOMAKE.
+# We support both call styles for the transition. After
+# the next Automake release, Autoconf can make the AC_INIT
+# arguments mandatory, and then we can depend on a new Autoconf
+# release and drop the old call support.
+AC_DEFUN([AM_INIT_AUTOMAKE],
+[AC_PREREQ([2.65])dnl
+dnl Autoconf wants to disallow AM_ names. We explicitly allow
+dnl the ones we care about.
+m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl
+AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl
+AC_REQUIRE([AC_PROG_INSTALL])dnl
+if test "`cd $srcdir && pwd`" != "`pwd`"; then
+ # Use -I$(srcdir) only when $(srcdir) != ., so that make's output
+ # is not polluted with repeated "-I."
+ AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl
+ # test to see if srcdir already configured
+ if test -f $srcdir/config.status; then
+ AC_MSG_ERROR([source directory already configured; run "make distclean" there first])
+ fi
+fi
+
+# test whether we have cygpath
+if test -z "$CYGPATH_W"; then
+ if (cygpath --version) >/dev/null 2>/dev/null; then
+ CYGPATH_W='cygpath -w'
+ else
+ CYGPATH_W=echo
+ fi
+fi
+AC_SUBST([CYGPATH_W])
+
+# Define the identity of the package.
+dnl Distinguish between old-style and new-style calls.
+m4_ifval([$2],
+[AC_DIAGNOSE([obsolete],
+ [$0: two- and three-arguments forms are deprecated.])
+m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl
+ AC_SUBST([PACKAGE], [$1])dnl
+ AC_SUBST([VERSION], [$2])],
+[_AM_SET_OPTIONS([$1])dnl
+dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT.
+m4_if(
+ m4_ifdef([AC_PACKAGE_NAME], [ok]):m4_ifdef([AC_PACKAGE_VERSION], [ok]),
+ [ok:ok],,
+ [m4_fatal([AC_INIT should be called with package and version arguments])])dnl
+ AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl
+ AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl
+
+_AM_IF_OPTION([no-define],,
+[AC_DEFINE_UNQUOTED([PACKAGE], ["$PACKAGE"], [Name of package])
+ AC_DEFINE_UNQUOTED([VERSION], ["$VERSION"], [Version number of package])])dnl
+
+# 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:
+# <http://lists.gnu.org/archive/html/automake/2012-07/msg00001.html>
+# <http://lists.gnu.org/archive/html/automake/2012-07/msg00014.html>
+AC_SUBST([mkdir_p], ['$(MKDIR_P)'])
+# We need awk for the "check" target (and possibly the TAP driver). The
+# system "awk" is bad on some platforms.
+AC_REQUIRE([AC_PROG_AWK])dnl
+AC_REQUIRE([AC_PROG_MAKE_SET])dnl
+AC_REQUIRE([AM_SET_LEADING_DOT])dnl
+_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])],
+ [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])],
+ [_AM_PROG_TAR([v7])])])
+_AM_IF_OPTION([no-dependencies],,
+[AC_PROVIDE_IFELSE([AC_PROG_CC],
+ [_AM_DEPENDENCIES([CC])],
+ [m4_define([AC_PROG_CC],
+ m4_defn([AC_PROG_CC])[_AM_DEPENDENCIES([CC])])])dnl
+AC_PROVIDE_IFELSE([AC_PROG_CXX],
+ [_AM_DEPENDENCIES([CXX])],
+ [m4_define([AC_PROG_CXX],
+ m4_defn([AC_PROG_CXX])[_AM_DEPENDENCIES([CXX])])])dnl
+AC_PROVIDE_IFELSE([AC_PROG_OBJC],
+ [_AM_DEPENDENCIES([OBJC])],
+ [m4_define([AC_PROG_OBJC],
+ m4_defn([AC_PROG_OBJC])[_AM_DEPENDENCIES([OBJC])])])dnl
+AC_PROVIDE_IFELSE([AC_PROG_OBJCXX],
+ [_AM_DEPENDENCIES([OBJCXX])],
+ [m4_define([AC_PROG_OBJCXX],
+ m4_defn([AC_PROG_OBJCXX])[_AM_DEPENDENCIES([OBJCXX])])])dnl
+])
+AC_REQUIRE([AM_SILENT_RULES])dnl
+dnl The testsuite driver may need to know about EXEEXT, so add the
+dnl 'am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This
+dnl macro is hooked onto _AC_COMPILER_EXEEXT early, see below.
+AC_CONFIG_COMMANDS_PRE(dnl
+[m4_provide_if([_AM_COMPILER_EXEEXT],
+ [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl
+
+# POSIX will say in a future version that running "rm -f" with no argument
+# is OK; and we want to be able to make that assumption in our Makefile
+# recipes. So use an aggressive probe to check that the usage we want is
+# actually supported "in the wild" to an acceptable degree.
+# See automake bug#10828.
+# To make any issue more visible, cause the running configure to be aborted
+# by default if the 'rm' program in use doesn't match our expectations; the
+# user can still override this though.
+if rm -f && rm -fr && rm -rf; then : OK; else
+ cat >&2 <<'END'
+Oops!
+
+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: <http://austingroupbugs.net/view.php?id=542>
+
+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: <http://www.gnu.org/software/coreutils/>.
+
+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
+fi
+dnl The trailing newline in this macro's definition is deliberate, for
+dnl backward compatibility and to allow trailing 'dnl'-style comments
+dnl after the AM_INIT_AUTOMAKE invocation. See automake bug#16841.
+])
+
+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])])
+
+# When config.status generates a header, we must update the stamp-h file.
+# This file resides in the same directory as the config header
+# that is generated. The stamp files are numbered to have different names.
+
+# Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the
+# loop where config.status creates the headers, so we can generate
+# our stamp files there.
+AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK],
+[# Compute $1's index in $config_headers.
+_am_arg=$1
+_am_stamp_count=1
+for _am_header in $config_headers :; do
+ case $_am_header in
+ $_am_arg | $_am_arg:* )
+ break ;;
+ * )
+ _am_stamp_count=`expr $_am_stamp_count + 1` ;;
+ esac
+done
+echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count])
+
+# Copyright (C) 2001-2014 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+set}" != 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-2014 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# Check whether the underlying file-system supports filenames
+# with a leading dot. For instance MS-DOS doesn't.
+AC_DEFUN([AM_SET_LEADING_DOT],
+[rm -rf .tst 2>/dev/null
+mkdir .tst 2>/dev/null
+if test -d .tst; then
+ am__leading_dot=.
+else
+ am__leading_dot=_
+fi
+rmdir .tst 2>/dev/null
+AC_SUBST([am__leading_dot])])
+
+# Add --enable-maintainer-mode option to configure. -*- Autoconf -*-
+# From Jim Meyering
+
+# Copyright (C) 1996-2014 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_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
+]
+)
+
+# Check to see how 'make' treats includes. -*- Autoconf -*-
+
+# Copyright (C) 2001-2014 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_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-2014 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-2014 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-2014 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
+ am_cv_prog_cc_c_o=no
+ break
+ fi
+ done
+ rm -f core conftest*
+ unset am_i])
+if test "$am_cv_prog_cc_c_o" != yes; then
+ # Losing compiler, so override with the script.
+ # FIXME: It is wrong to rewrite CC.
+ # But if we don't then we get into trouble of one sort or another.
+ # A longer-term fix would be to have automake use am__CC in this case,
+ # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)"
+ CC="$am_aux_dir/compile $CC"
+fi
+AC_LANG_POP([C])])
+
+# For backward compatibility.
+AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])])
+
+# Copyright (C) 2001-2014 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_RUN_LOG(COMMAND)
+# -------------------
+# Run COMMAND, save the exit status in ac_status, and log it.
+# (This has been adapted from Autoconf's _AC_RUN_LOG macro.)
+AC_DEFUN([AM_RUN_LOG],
+[{ echo "$as_me:$LINENO: $1" >&AS_MESSAGE_LOG_FD
+ ($1) >&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
+ (exit $ac_status); }])
+
+# Check to make sure that the build environment is sane. -*- Autoconf -*-
+
+# Copyright (C) 1996-2014 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
+ 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
+ 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-2014 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-2014 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-2014 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])
+
+# AM_SUBST_NOTMAKE(VARIABLE)
+# --------------------------
+# Public sister of _AM_SUBST_NOTMAKE.
+AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)])
+
+# Check how to create a tarball. -*- Autoconf -*-
+
+# Copyright (C) 2004-2014 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_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}'])
+
+# 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'
+
+m4_if([$1], [v7],
+ [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'],
+
+ [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],
+
+ [pax],
+ [],
+
+ [m4_fatal([Unknown tar format])])
+
+ 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}
+
+ for _am_tool in $_am_tools; do
+ case $_am_tool in
+ gnutar)
+ for _am_tar in tar gnutar gtar; do
+ AM_RUN_LOG([$_am_tar --version]) && break
+ done
+ am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"'
+ am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"'
+ am__untar="$_am_tar -xf -"
+ ;;
+ plaintar)
+ # Must skip GNU tar: if it does not support --format= it doesn't create
+ # ustar tarball either.
+ (tar --version) >/dev/null 2>&1 && continue
+ am__tar='tar chf - "$$tardir"'
+ am__tar_='tar chf - "$tardir"'
+ am__untar='tar xf -'
+ ;;
+ pax)
+ am__tar='pax -L -x $1 -w "$$tardir"'
+ am__tar_='pax -L -x $1 -w "$tardir"'
+ am__untar='pax -r'
+ ;;
+ cpio)
+ am__tar='find "$$tardir" -print | cpio -o -H $1 -L'
+ am__tar_='find "$tardir" -print | cpio -o -H $1 -L'
+ am__untar='cpio -i -H $1 -d'
+ ;;
+ none)
+ am__tar=false
+ am__tar_=false
+ am__untar=false
+ ;;
+ esac
+
+ # If the value was cached, stop now. We just wanted to have am__tar
+ # and am__untar set.
+ test -n "${am_cv_prog_tar_$1}" && break
+
+ # tar/untar a dummy directory, and stop if the command works.
+ rm -rf conftest.dir
+ mkdir conftest.dir
+ echo GrepMe > conftest.dir/file
+ AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar])
+ rm -rf conftest.dir
+ if test -s conftest.tar; then
+ AM_RUN_LOG([$am__untar <conftest.tar])
+ AM_RUN_LOG([cat conftest.dir/file])
+ grep GrepMe conftest.dir/file >/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_SUBST([am__tar])
+AC_SUBST([am__untar])
+]) # _AM_PROG_TAR
+
+m4_include([m4/libtool.m4])
+m4_include([m4/ltoptions.m4])
+m4_include([m4/ltsugar.m4])
+m4_include([m4/ltversion.m4])
+m4_include([m4/lt~obsolete.m4])
+m4_include([acinclude.m4])
--- /dev/null
+#!/bin/sh
+
+# This script does all the magic calls to automake/autoconf and
+# friends that are needed to configure a cvs checkout. As described in
+# the file HACKING you need a couple of extra tools to run this script
+# successfully.
+#
+# If you are compiling from a released tarball you don't need these
+# tools and you shouldn't use this script. Just call ./configure
+# directly.
+
+test -n "$srcdir" || srcdir=`dirname "$0"`
+test -n "$srcdir" || srcdir=.
+
+ORIGDIR=`pwd`
+cd $srcdir
+
+AUTORECONF=`which autoreconf`
+if test -z $AUTORECONF; then
+ echo "*** No autoreconf found, please intall it ***"
+ exit 1
+fi
+
+autoreconf --force --install --verbose
+
+cd $ORIGDIR
+test -n "$NOCONFIGURE" || "$srcdir/configure" "$@"
--- /dev/null
+prefix=@prefix@
+exec_prefix=@exec_prefix@
+libdir=@libdir@
+includedir=@includedir@
+
+Name: babl
+Description: Dynamic, any to any, pixel format conversion library
+Version: @BABL_REAL_VERSION@
+Cflags: -I${includedir}/@PACKAGE_NAME@-@BABL_API_VERSION@
+Libs: -L${libdir} -l@PACKAGE_NAME@-@BABL_API_VERSION@
+Libs.private: @MATH_LIB@ @THREAD_LIB@
--- /dev/null
+## Source directory
+
+if PLATFORM_WIN32
+no_undefined = -no-undefined
+endif
+
+SUBDIRS = base
+
+c_sources = \
+ babl.c \
+ babl-component.c \
+ babl-conversion.c \
+ babl-core.c \
+ babl-db.c \
+ babl-extension.c \
+ babl-fish-path.c \
+ babl-fish-reference.c \
+ babl-fish-simple.c \
+ babl-fish-stats.c \
+ babl-fish.c \
+ babl-format.c \
+ babl-hash-table.c \
+ babl-image.c \
+ babl-internal.c \
+ babl-introspect.c \
+ babl-list.c \
+ babl-memory.c \
+ babl-model.c \
+ babl-mutex.c \
+ babl-palette.c \
+ babl-ref-pixels.c \
+ babl-sampling.c \
+ babl-sanity.c \
+ babl-type.c \
+ babl-util.c \
+ babl-cpuaccel.c \
+ babl-version.c
+
+h_sources = \
+ babl.h \
+ babl-class.h \
+ babl-classes.h \
+ babl-component.h \
+ babl-conversion.h \
+ babl-cpuaccel.h \
+ babl-db.h \
+ babl-extension.h \
+ babl-fish.h \
+ babl-format.h \
+ babl-hash-table.h \
+ babl-ids.h \
+ babl-image.h \
+ babl-internal.h \
+ babl-introspect.h \
+ babl-list.h \
+ babl-macros.h \
+ babl-memory.h \
+ babl-model.h \
+ babl-mutex.h \
+ babl-ref-pixels.h \
+ babl-sampling.h \
+ babl-type.h \
+ babl-types.h \
+ babl-util.h
+
+library_includedir=$(includedir)/babl-$(BABL_API_VERSION)/babl
+libinc_hdrs = \
+ babl-introspect.h \
+ babl-macros.h \
+ babl-types.h \
+ babl.h
+libinc_generated_hdrs = \
+ babl-version.h
+library_include_HEADERS = \
+ $(libinc_hdrs) $(libinc_generated_hdrs)
+
+AM_CPPFLAGS = \
+ -DLIBDIR=\""$(libdir)"\" \
+ -I$(top_srcdir) \
+ -I$(top_srcdir)/babl/base
+
+lib_LTLIBRARIES= libbabl-@BABL_API_VERSION@.la
+libbabl_@BABL_API_VERSION@_la_SOURCES= $(h_sources) $(c_sources)
+libbabl_@BABL_API_VERSION@_la_LIBADD=\
+ base/libbase.la \
+ @LTLIBOBJS@
+
+libbabl_@BABL_API_VERSION@_la_LDFLAGS= \
+ ${no_undefined} $(MATH_LIB) $(THREAD_LIB) \
+ -version-info $(BABL_LIBRARY_VERSION)
+
+EXTRA_DIST = babl-ref-pixels.inc
+# CLEANFILES =
--- /dev/null
+# Makefile.in generated by automake 1.15 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
+
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+
+VPATH = @srcdir@
+am__is_gnu_make = { \
+ if test -z '$(MAKELEVEL)'; then \
+ false; \
+ elif test -n '$(MAKE_HOST)'; then \
+ true; \
+ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+ true; \
+ else \
+ false; \
+ fi; \
+}
+am__make_running_with_option = \
+ case $${target_option-} in \
+ ?) ;; \
+ *) echo "am__make_running_with_option: internal error: invalid" \
+ "target option '$${target_option-}' specified" >&2; \
+ exit 1;; \
+ esac; \
+ has_opt=no; \
+ sane_makeflags=$$MAKEFLAGS; \
+ if $(am__is_gnu_make); then \
+ sane_makeflags=$$MFLAGS; \
+ else \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ bs=\\; \
+ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
+ esac; \
+ fi; \
+ skip_next=no; \
+ strip_trailopt () \
+ { \
+ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+ }; \
+ for flg in $$sane_makeflags; do \
+ test $$skip_next = yes && { skip_next=no; continue; }; \
+ case $$flg in \
+ *=*|--*) continue;; \
+ -*I) strip_trailopt 'I'; skip_next=yes;; \
+ -*I?*) strip_trailopt 'I';; \
+ -*O) strip_trailopt 'O'; skip_next=yes;; \
+ -*O?*) strip_trailopt 'O';; \
+ -*l) strip_trailopt 'l'; skip_next=yes;; \
+ -*l?*) strip_trailopt 'l';; \
+ -[dEDm]) skip_next=yes;; \
+ -[JT]) skip_next=yes;; \
+ esac; \
+ case $$flg in \
+ *$$target_option*) has_opt=yes; break;; \
+ esac; \
+ done; \
+ test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+target_triplet = @target@
+subdir = babl
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(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)/acinclude.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(library_include_HEADERS) \
+ $(am__DIST_COMMON)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES = babl-version.h
+CONFIG_CLEAN_VPATH_FILES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+ if (++n[$$2] == $(am__install_max)) \
+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+ END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+ test -z "$$files" \
+ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+ $(am__cd) "$$dir" && rm -f $$files; }; \
+ }
+am__installdirs = "$(DESTDIR)$(libdir)" \
+ "$(DESTDIR)$(library_includedir)"
+LTLIBRARIES = $(lib_LTLIBRARIES)
+libbabl_@BABL_API_VERSION@_la_DEPENDENCIES = base/libbase.la \
+ @LTLIBOBJS@ $(am__empty)
+am__objects_1 =
+am__objects_2 = babl.lo babl-component.lo babl-conversion.lo \
+ babl-core.lo babl-db.lo babl-extension.lo babl-fish-path.lo \
+ babl-fish-reference.lo babl-fish-simple.lo babl-fish-stats.lo \
+ babl-fish.lo babl-format.lo babl-hash-table.lo babl-image.lo \
+ babl-internal.lo babl-introspect.lo babl-list.lo \
+ babl-memory.lo babl-model.lo babl-mutex.lo babl-palette.lo \
+ babl-ref-pixels.lo babl-sampling.lo babl-sanity.lo \
+ babl-type.lo babl-util.lo babl-cpuaccel.lo babl-version.lo
+am_libbabl_@BABL_API_VERSION@_la_OBJECTS = $(am__objects_1) \
+ $(am__objects_2)
+libbabl_@BABL_API_VERSION@_la_OBJECTS = \
+ $(am_libbabl_@BABL_API_VERSION@_la_OBJECTS)
+AM_V_lt = $(am__v_lt_@AM_V@)
+am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
+am__v_lt_0 = --silent
+am__v_lt_1 =
+libbabl_@BABL_API_VERSION@_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
+ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
+ $(AM_CFLAGS) $(CFLAGS) \
+ $(libbabl_@BABL_API_VERSION@_la_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo " GEN " $@;
+am__v_GEN_1 =
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 =
+DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
+depcomp = $(SHELL) $(top_srcdir)/depcomp
+am__depfiles_maybe = depfiles
+am__mv = mv -f
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
+ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
+ $(AM_CFLAGS) $(CFLAGS)
+AM_V_CC = $(am__v_CC_@AM_V@)
+am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
+am__v_CC_0 = @echo " CC " $@;
+am__v_CC_1 =
+CCLD = $(CC)
+LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+ $(AM_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_CCLD = $(am__v_CCLD_@AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
+am__v_CCLD_0 = @echo " CCLD " $@;
+am__v_CCLD_1 =
+SOURCES = $(libbabl_@BABL_API_VERSION@_la_SOURCES)
+DIST_SOURCES = $(libbabl_@BABL_API_VERSION@_la_SOURCES)
+RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \
+ ctags-recursive dvi-recursive html-recursive info-recursive \
+ install-data-recursive install-dvi-recursive \
+ install-exec-recursive install-html-recursive \
+ install-info-recursive install-pdf-recursive \
+ install-ps-recursive install-recursive installcheck-recursive \
+ installdirs-recursive pdf-recursive ps-recursive \
+ tags-recursive uninstall-recursive
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
+HEADERS = $(library_include_HEADERS)
+RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
+ distclean-recursive maintainer-clean-recursive
+am__recursive_targets = \
+ $(RECURSIVE_TARGETS) \
+ $(RECURSIVE_CLEAN_TARGETS) \
+ $(am__extra_recursive_targets)
+AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
+ distdir
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates. Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+ BEGIN { nonempty = 0; } \
+ { items[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique. This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+ list='$(am__tagged_files)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | $(am__uniquify_input)`
+ETAGS = etags
+CTAGS = ctags
+DIST_SUBDIRS = $(SUBDIRS)
+am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/babl-version.h.in \
+ $(top_srcdir)/depcomp gettimeofday.c
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+am__relativize = \
+ dir0=`pwd`; \
+ sed_first='s,^\([^/]*\)/.*$$,\1,'; \
+ sed_rest='s,^[^/]*/*,,'; \
+ sed_last='s,^.*/\([^/]*\)$$,\1,'; \
+ sed_butlast='s,/*[^/]*$$,,'; \
+ while test -n "$$dir1"; do \
+ first=`echo "$$dir1" | sed -e "$$sed_first"`; \
+ if test "$$first" != "."; then \
+ if test "$$first" = ".."; then \
+ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
+ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
+ else \
+ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
+ if test "$$first2" = "$$first"; then \
+ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
+ else \
+ dir2="../$$dir2"; \
+ fi; \
+ dir0="$$dir0"/"$$first"; \
+ fi; \
+ fi; \
+ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
+ done; \
+ reldir="$$dir2"
+ACLOCAL = @ACLOCAL@
+ALTIVEC_EXTRA_CFLAGS = @ALTIVEC_EXTRA_CFLAGS@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AR = @AR@
+AS = @AS@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+BABL_API_VERSION = @BABL_API_VERSION@
+BABL_BINARY_AGE = @BABL_BINARY_AGE@
+BABL_CURRENT_MINUS_AGE = @BABL_CURRENT_MINUS_AGE@
+BABL_INTERFACE_AGE = @BABL_INTERFACE_AGE@
+BABL_LIBRARY_VERSION = @BABL_LIBRARY_VERSION@
+BABL_MAJOR_VERSION = @BABL_MAJOR_VERSION@
+BABL_MICRO_VERSION = @BABL_MICRO_VERSION@
+BABL_MINOR_VERSION = @BABL_MINOR_VERSION@
+BABL_REAL_VERSION = @BABL_REAL_VERSION@
+BABL_RELEASE = @BABL_RELEASE@
+BABL_UNSTABLE = @BABL_UNSTABLE@
+BABL_VERSION = @BABL_VERSION@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DIR_SEP = @DIR_SEP@
+DLLTOOL = @DLLTOOL@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+F16C_EXTRA_CFLAGS = @F16C_EXTRA_CFLAGS@
+FGREP = @FGREP@
+GREP = @GREP@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
+MATH_LIB = @MATH_LIB@
+MKDIR_P = @MKDIR_P@
+MMX_EXTRA_CFLAGS = @MMX_EXTRA_CFLAGS@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEP = @PATH_SEP@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+RANLIB = @RANLIB@
+RSVG = @RSVG@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SHREXT = @SHREXT@
+SSE2_EXTRA_CFLAGS = @SSE2_EXTRA_CFLAGS@
+SSE4_1_EXTRA_CFLAGS = @SSE4_1_EXTRA_CFLAGS@
+SSE_EXTRA_CFLAGS = @SSE_EXTRA_CFLAGS@
+STRIP = @STRIP@
+THREAD_LIB = @THREAD_LIB@
+VERSION = @VERSION@
+W3M = @W3M@
+WEBSITE_HOST = @WEBSITE_HOST@
+WEBSITE_LOCATION = @WEBSITE_LOCATION@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target = @target@
+target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+@PLATFORM_WIN32_TRUE@no_undefined = -no-undefined
+SUBDIRS = base
+c_sources = \
+ babl.c \
+ babl-component.c \
+ babl-conversion.c \
+ babl-core.c \
+ babl-db.c \
+ babl-extension.c \
+ babl-fish-path.c \
+ babl-fish-reference.c \
+ babl-fish-simple.c \
+ babl-fish-stats.c \
+ babl-fish.c \
+ babl-format.c \
+ babl-hash-table.c \
+ babl-image.c \
+ babl-internal.c \
+ babl-introspect.c \
+ babl-list.c \
+ babl-memory.c \
+ babl-model.c \
+ babl-mutex.c \
+ babl-palette.c \
+ babl-ref-pixels.c \
+ babl-sampling.c \
+ babl-sanity.c \
+ babl-type.c \
+ babl-util.c \
+ babl-cpuaccel.c \
+ babl-version.c
+
+h_sources = \
+ babl.h \
+ babl-class.h \
+ babl-classes.h \
+ babl-component.h \
+ babl-conversion.h \
+ babl-cpuaccel.h \
+ babl-db.h \
+ babl-extension.h \
+ babl-fish.h \
+ babl-format.h \
+ babl-hash-table.h \
+ babl-ids.h \
+ babl-image.h \
+ babl-internal.h \
+ babl-introspect.h \
+ babl-list.h \
+ babl-macros.h \
+ babl-memory.h \
+ babl-model.h \
+ babl-mutex.h \
+ babl-ref-pixels.h \
+ babl-sampling.h \
+ babl-type.h \
+ babl-types.h \
+ babl-util.h
+
+library_includedir = $(includedir)/babl-$(BABL_API_VERSION)/babl
+libinc_hdrs = \
+ babl-introspect.h \
+ babl-macros.h \
+ babl-types.h \
+ babl.h
+
+libinc_generated_hdrs = \
+ babl-version.h
+
+library_include_HEADERS = \
+ $(libinc_hdrs) $(libinc_generated_hdrs)
+
+AM_CPPFLAGS = \
+ -DLIBDIR=\""$(libdir)"\" \
+ -I$(top_srcdir) \
+ -I$(top_srcdir)/babl/base
+
+lib_LTLIBRARIES = libbabl-@BABL_API_VERSION@.la
+libbabl_@BABL_API_VERSION@_la_SOURCES = $(h_sources) $(c_sources)
+libbabl_@BABL_API_VERSION@_la_LIBADD = \
+ base/libbase.la \
+ @LTLIBOBJS@
+
+libbabl_@BABL_API_VERSION@_la_LDFLAGS = \
+ ${no_undefined} $(MATH_LIB) $(THREAD_LIB) \
+ -version-info $(BABL_LIBRARY_VERSION)
+
+EXTRA_DIST = babl-ref-pixels.inc
+all: all-recursive
+
+.SUFFIXES:
+.SUFFIXES: .c .lo .o .obj
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign babl/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --foreign babl/Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+babl-version.h: $(top_builddir)/config.status $(srcdir)/babl-version.h.in
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
+
+install-libLTLIBRARIES: $(lib_LTLIBRARIES)
+ @$(NORMAL_INSTALL)
+ @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \
+ list2=; for p in $$list; do \
+ if test -f $$p; then \
+ list2="$$list2 $$p"; \
+ else :; fi; \
+ done; \
+ test -z "$$list2" || { \
+ echo " $(MKDIR_P) '$(DESTDIR)$(libdir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(libdir)" || exit 1; \
+ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \
+ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \
+ }
+
+uninstall-libLTLIBRARIES:
+ @$(NORMAL_UNINSTALL)
+ @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \
+ for p in $$list; do \
+ $(am__strip_dir) \
+ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \
+ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \
+ done
+
+clean-libLTLIBRARIES:
+ -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES)
+ @list='$(lib_LTLIBRARIES)'; \
+ locs=`for p in $$list; do echo $$p; done | \
+ sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+ sort -u`; \
+ test -z "$$locs" || { \
+ echo rm -f $${locs}; \
+ rm -f $${locs}; \
+ }
+
+libbabl-@BABL_API_VERSION@.la: $(libbabl_@BABL_API_VERSION@_la_OBJECTS) $(libbabl_@BABL_API_VERSION@_la_DEPENDENCIES) $(EXTRA_libbabl_@BABL_API_VERSION@_la_DEPENDENCIES)
+ $(AM_V_CCLD)$(libbabl_@BABL_API_VERSION@_la_LINK) -rpath $(libdir) $(libbabl_@BABL_API_VERSION@_la_OBJECTS) $(libbabl_@BABL_API_VERSION@_la_LIBADD) $(LIBS)
+
+mostlyclean-compile:
+ -rm -f *.$(OBJEXT)
+
+distclean-compile:
+ -rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/gettimeofday.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/babl-component.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/babl-conversion.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/babl-core.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/babl-cpuaccel.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/babl-db.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/babl-extension.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/babl-fish-path.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/babl-fish-reference.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/babl-fish-simple.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/babl-fish-stats.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/babl-fish.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/babl-format.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/babl-hash-table.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/babl-image.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/babl-internal.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/babl-introspect.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/babl-list.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/babl-memory.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/babl-model.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/babl-mutex.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/babl-palette.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/babl-ref-pixels.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/babl-sampling.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/babl-sanity.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/babl-type.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/babl-util.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/babl-version.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/babl.Plo@am__quote@
+
+.c.o:
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $<
+
+.c.obj:
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+
+.c.lo:
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+install-library_includeHEADERS: $(library_include_HEADERS)
+ @$(NORMAL_INSTALL)
+ @list='$(library_include_HEADERS)'; test -n "$(library_includedir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(library_includedir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(library_includedir)" || exit 1; \
+ fi; \
+ for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(library_includedir)'"; \
+ $(INSTALL_HEADER) $$files "$(DESTDIR)$(library_includedir)" || exit $$?; \
+ done
+
+uninstall-library_includeHEADERS:
+ @$(NORMAL_UNINSTALL)
+ @list='$(library_include_HEADERS)'; test -n "$(library_includedir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ dir='$(DESTDIR)$(library_includedir)'; $(am__uninstall_files_from_dir)
+
+# This directory's subdirectories are mostly independent; you can cd
+# into them and run 'make' without going through this Makefile.
+# To change the values of 'make' variables: instead of editing Makefiles,
+# (1) if the variable is set in 'config.status', edit 'config.status'
+# (which will cause the Makefiles to be regenerated when you run 'make');
+# (2) otherwise, pass the desired values on the 'make' command line.
+$(am__recursive_targets):
+ @fail=; \
+ if $(am__make_keepgoing); then \
+ failcom='fail=yes'; \
+ else \
+ failcom='exit 1'; \
+ fi; \
+ dot_seen=no; \
+ target=`echo $@ | sed s/-recursive//`; \
+ case "$@" in \
+ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+ *) list='$(SUBDIRS)' ;; \
+ esac; \
+ for subdir in $$list; do \
+ echo "Making $$target in $$subdir"; \
+ if test "$$subdir" = "."; then \
+ dot_seen=yes; \
+ local_target="$$target-am"; \
+ else \
+ local_target="$$target"; \
+ fi; \
+ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ || eval $$failcom; \
+ done; \
+ if test "$$dot_seen" = "no"; then \
+ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
+ fi; test -z "$$fail"
+
+ID: $(am__tagged_files)
+ $(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-recursive
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ set x; \
+ here=`pwd`; \
+ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
+ include_option=--etags-include; \
+ empty_fix=.; \
+ else \
+ include_option=--include; \
+ empty_fix=; \
+ fi; \
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
+ test ! -f $$subdir/TAGS || \
+ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
+ fi; \
+ done; \
+ $(am__define_uniq_tagged_files); \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
+ fi
+ctags: ctags-recursive
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ $(am__define_uniq_tagged_files); \
+ test -z "$(CTAGS_ARGS)$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-recursive
+
+cscopelist-am: $(am__tagged_files)
+ list='$(am__tagged_files)'; \
+ case "$(srcdir)" in \
+ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+ *) sdir=$(subdir)/$(srcdir) ;; \
+ esac; \
+ for i in $$list; do \
+ if test -f "$$i"; then \
+ echo "$(subdir)/$$i"; \
+ else \
+ echo "$$sdir/$$i"; \
+ fi; \
+ done >> $(top_builddir)/cscope.files
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+ @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
+ $(am__make_dryrun) \
+ || test -d "$(distdir)/$$subdir" \
+ || $(MKDIR_P) "$(distdir)/$$subdir" \
+ || exit 1; \
+ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
+ $(am__relativize); \
+ new_distdir=$$reldir; \
+ dir1=$$subdir; dir2="$(top_distdir)"; \
+ $(am__relativize); \
+ new_top_distdir=$$reldir; \
+ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
+ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
+ ($(am__cd) $$subdir && \
+ $(MAKE) $(AM_MAKEFLAGS) \
+ top_distdir="$$new_top_distdir" \
+ distdir="$$new_distdir" \
+ am__remove_distdir=: \
+ am__skip_length_check=: \
+ am__skip_mode_fix=: \
+ distdir) \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-recursive
+all-am: Makefile $(LTLIBRARIES) $(HEADERS)
+installdirs: installdirs-recursive
+installdirs-am:
+ for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(library_includedir)"; do \
+ test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+ done
+install: install-recursive
+install-exec: install-exec-recursive
+install-data: install-data-recursive
+uninstall: uninstall-recursive
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-recursive
+install-strip:
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-recursive
+
+clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \
+ mostlyclean-am
+
+distclean: distclean-recursive
+ -rm -rf $(DEPDIR) ./$(DEPDIR)
+ -rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+ distclean-tags
+
+dvi: dvi-recursive
+
+dvi-am:
+
+html: html-recursive
+
+html-am:
+
+info: info-recursive
+
+info-am:
+
+install-data-am: install-library_includeHEADERS
+
+install-dvi: install-dvi-recursive
+
+install-dvi-am:
+
+install-exec-am: install-libLTLIBRARIES
+
+install-html: install-html-recursive
+
+install-html-am:
+
+install-info: install-info-recursive
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-recursive
+
+install-pdf-am:
+
+install-ps: install-ps-recursive
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-recursive
+ -rm -rf $(DEPDIR) ./$(DEPDIR)
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-recursive
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+ mostlyclean-libtool
+
+pdf: pdf-recursive
+
+pdf-am:
+
+ps: ps-recursive
+
+ps-am:
+
+uninstall-am: uninstall-libLTLIBRARIES \
+ uninstall-library_includeHEADERS
+
+.MAKE: $(am__recursive_targets) install-am install-strip
+
+.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \
+ check-am clean clean-generic clean-libLTLIBRARIES \
+ clean-libtool cscopelist-am ctags ctags-am distclean \
+ distclean-compile distclean-generic distclean-libtool \
+ distclean-tags distdir dvi dvi-am html html-am info info-am \
+ install install-am install-data install-data-am install-dvi \
+ install-dvi-am install-exec install-exec-am install-html \
+ install-html-am install-info install-info-am \
+ install-libLTLIBRARIES install-library_includeHEADERS \
+ install-man install-pdf install-pdf-am install-ps \
+ install-ps-am install-strip installcheck installcheck-am \
+ installdirs installdirs-am maintainer-clean \
+ maintainer-clean-generic mostlyclean mostlyclean-compile \
+ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+ tags tags-am uninstall uninstall-am uninstall-libLTLIBRARIES \
+ uninstall-library_includeHEADERS
+
+.PRECIOUS: Makefile
+
+# CLEANFILES =
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
--- /dev/null
+/* babl - dynamically extendable universal pixel conversion library.
+ * Copyright (C) 2005-2008, Øyvind Kolås and others.
+ *
+ * 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 3 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, see
+ * <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef _BABL_CLASS_H
+#define _BABL_CLASS_H
+
+#include "babl.h"
+
+
+typedef struct _BablList BablList;
+
+typedef int BablClassType;
+
+typedef int (*BablEachFunction) (Babl *entry,
+ void *data);
+
+/* All Classes in babl have common functionality like the ability
+ * to be iterated over, common functionality is defined through these
+ * macros.
+ */
+#define BABL_CLASS_DECLARE(klass) \
+ \
+BablDb * babl_##klass##_db (void); \
+const Babl * babl_##klass##_from_id (int id); \
+void babl_##klass##_class_for_each (BablEachFunction each_fun, \
+ void *user_data)
+
+/* common header for any item inserted into database, the actual
+ * implementation of babl-instance is in babl-internal
+ */
+typedef struct
+{
+ BablClassType class_type;
+ int id; /*< a numerical id, look at 'babl-ids.h' for the reserved
+ ones */
+ void *creator;
+ char *name; /*< the name this type exists under */
+} BablInstance;
+
+
+#endif
--- /dev/null
+/* babl - dynamically extendable universal pixel conversion library.
+ * Copyright (C) 2005-2008, Øyvind Kolås and others.
+ *
+ * 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 3 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, see
+ * <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef _BABL_CLASSES_H
+#define _BABL_CLASSES_H
+
+#include "babl-class.h"
+#include "babl-db.h"
+
+/* magic number used at the start of all babl objects, used to do
+ * differentiation in polymorphic functions. (as well as manual type
+ * check assertions).
+ */
+#define BABL_MAGIC 0xbab100
+
+/* class types */
+enum {
+ BABL_INSTANCE = BABL_MAGIC,
+ BABL_TYPE,
+ BABL_TYPE_INTEGER,
+ BABL_TYPE_FLOAT,
+ BABL_SAMPLING,
+ BABL_COMPONENT,
+ BABL_MODEL,
+ BABL_FORMAT,
+
+ BABL_CONVERSION,
+ BABL_CONVERSION_LINEAR,
+ BABL_CONVERSION_PLANE,
+ BABL_CONVERSION_PLANAR,
+
+ BABL_FISH,
+ BABL_FISH_REFERENCE,
+ BABL_FISH_SIMPLE,
+ BABL_FISH_PATH,
+ BABL_IMAGE,
+
+ BABL_EXTENSION,
+
+ BABL_SKY
+};
+
+#include "babl-type.h"
+#include "babl-sampling.h"
+#include "babl-component.h"
+#include "babl-model.h"
+#include "babl-format.h"
+#include "babl-image.h"
+#include "babl-conversion.h"
+#include "babl-fish.h"
+#include "babl-extension.h"
+
+
+/* This union can be used for convenient access to any field without
+ * the need to cast if the variable already is of the type Babl*
+ */
+typedef union _Babl
+{
+ BablClassType class_type;
+ BablInstance instance;
+ BablType type;
+ BablSampling sampling;
+ BablComponent component;
+ BablModel model;
+ BablFormat format;
+ BablConversion conversion;
+ BablImage image;
+ BablFish fish;
+ BablFishReference fish_reference;
+ BablFishSimple fish_simple;
+ BablFishPath fish_path;
+ BablExtension extension;
+} _Babl;
+
+
+#endif
--- /dev/null
+/* babl - dynamically extendable universal pixel conversion library.
+ * Copyright (C) 2005, Øyvind Kolås.
+ *
+ * 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 3 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, see
+ * <http://www.gnu.org/licenses/>.
+ */
+
+#include "config.h"
+#define NEEDS_BABL_DB
+#include "babl-internal.h"
+#include "babl-db.h"
+#include <string.h>
+
+#include <stdarg.h>
+
+static Babl *
+component_new (const char *name,
+ int id,
+ int luma,
+ int chroma,
+ int alpha)
+{
+ Babl *babl;
+
+ babl = babl_malloc (sizeof (BablComponent) + strlen (name) + 1);
+ babl->instance.name = (char *) babl + sizeof (BablComponent);
+ strcpy (babl->instance.name, name);
+
+ babl->class_type = BABL_COMPONENT;
+ babl->instance.id = id;
+ babl->component.luma = luma;
+ babl->component.chroma = chroma;
+ babl->component.alpha = alpha;
+ return babl;
+}
+
+
+static int
+is_component_duplicate (Babl *babl, int luma, int chroma, int alpha)
+{
+ if (babl->component.luma != luma ||
+ babl->component.chroma != chroma ||
+ babl->component.alpha != alpha)
+ return 0;
+
+ return 1;
+}
+
+
+const Babl *
+babl_component_new (void *first_arg,
+ ...)
+{
+ va_list varg;
+ Babl *babl;
+ int id = 0;
+ int luma = 0;
+ int chroma = 0;
+ int alpha = 0;
+ const char *name = first_arg;
+ const char *arg;
+
+ va_start (varg, first_arg);
+
+ while (1)
+ {
+ arg = va_arg (varg, char *);
+ if (!arg)
+ break;
+
+ /* first, we assume arguments to be strings */
+ if (!strcmp (arg, "id"))
+ {
+ id = va_arg (varg, int);
+ }
+
+ else if (!strcmp (arg, "luma"))
+ {
+ luma = 1;
+ }
+
+ else if (!strcmp (arg, "chroma"))
+ {
+ chroma = 1;
+ }
+
+ else if (!strcmp (arg, "alpha"))
+ {
+ alpha = 1;
+ }
+
+ /* if we didn't point to a known string, we assume argument to be babl */
+ else if (BABL_IS_BABL (arg))
+ {
+#ifdef BABL_LOG
+ Babl *babl = (Babl *) arg;
+ babl_log ("%s unexpected", babl_class_name (babl->class_type));
+#endif
+ }
+
+ else
+ {
+ babl_fatal ("unhandled argument '%s' for component '%s'", arg, name);
+ }
+ }
+
+ va_end (varg);
+
+ babl = babl_db_exist (db, id, name);
+ if (id && !babl && babl_db_exist (db, 0, name))
+ babl_fatal ("Trying to reregister BablComponent '%s' with different id!",
+ name);
+
+ if (babl)
+ {
+ /* There is an instance already registered by the required id/name,
+ * returning the preexistent one instead if it doesn't differ.
+ */
+ if (!is_component_duplicate (babl, luma, chroma, alpha))
+ babl_fatal ("BablComponent '%s' already registered "
+ "with different attributes!", name);
+ return babl;
+ }
+
+ babl = component_new (name, id, luma, chroma, alpha);
+
+ /* Since there is not an already registered instance by the required
+ * id/name, inserting newly created class into database.
+ */
+ babl_db_insert (db, babl);
+ return babl;
+}
+
+BABL_CLASS_IMPLEMENT (component)
--- /dev/null
+/* babl - dynamically extendable universal pixel conversion library.
+ * Copyright (C) 2005-2008, Øyvind Kolås and others.
+ *
+ * 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 3 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, see
+ * <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef _BABL_COMPONENT_H
+#define _BABL_COMPONENT_H
+
+
+/****************************************************************/
+/* BablComponent */
+BABL_CLASS_DECLARE (component);
+
+
+typedef struct
+{
+ BablInstance instance;
+ int luma;
+ int chroma;
+ int alpha;
+} BablComponent;
+
+#endif
--- /dev/null
+/* babl - dynamically extendable universal pixel conversion library.
+ * Copyright (C) 2005, Øyvind Kolås.
+ *
+ * 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 3 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, see
+ * <http://www.gnu.org/licenses/>.
+ */
+
+
+#include "config.h"
+#include <string.h>
+#include <stdarg.h>
+#include <math.h>
+#define NEEDS_BABL_DB
+#include "babl-internal.h"
+#include "babl-db.h"
+#include "babl-ref-pixels.h"
+
+static Babl *
+conversion_new (const char *name,
+ int id,
+ Babl *source,
+ Babl *destination,
+ BablFuncLinear linear,
+ BablFuncPlane plane,
+ BablFuncPlanar planar,
+ void *user_data)
+{
+ Babl *babl = NULL;
+
+ babl_assert (source->class_type ==
+ destination->class_type);
+
+ babl = babl_malloc (sizeof (BablConversion) + strlen (name) + 1);
+ babl->instance.name = (char *) babl + sizeof (BablConversion);
+ strcpy (babl->instance.name, name);
+
+ if (linear)
+ {
+ babl->class_type = BABL_CONVERSION_LINEAR;
+ babl->conversion.function.linear = linear;
+ }
+ else if (plane)
+ {
+ babl->class_type = BABL_CONVERSION_PLANE;
+ babl->conversion.function.plane = plane;
+ }
+ else if (planar)
+ {
+ babl->class_type = BABL_CONVERSION_PLANAR;
+ babl->conversion.function.planar = planar;
+ }
+ switch (source->class_type)
+ {
+ case BABL_TYPE:
+ if (linear) /* maybe linear could take a special argument, passed as an
+ additional key/value pair in the constructor. To cast it
+ as a generic N-element conversion, thus making it applicable
+ to being generic for any within model conversion of plain
+ buffers.
+ */
+ {
+ babl_fatal ("linear conversions not supported for %s",
+ babl_class_name (source->class_type));
+ }
+ else if (planar)
+ {
+ babl_fatal ("planar conversions not supported for %s",
+ babl_class_name (source->class_type));
+ }
+ break;
+
+ case BABL_MODEL:
+ if (plane)
+ {
+ babl_fatal ("plane conversions not supported for %s",
+ babl_class_name (source->class_type));
+ }
+ break;
+
+ case BABL_FORMAT:
+ break;
+
+ default:
+ babl_fatal ("%s unexpected", babl_class_name (babl->class_type));
+ break;
+ }
+
+ babl->instance.id = id;
+ babl->conversion.source = source;
+ babl->conversion.destination = destination;
+ babl->conversion.error = -1.0;
+ babl->conversion.cost = 69L;
+
+ babl->conversion.pixels = 0;
+ babl->conversion.processings = 0;
+
+ babl->conversion.data = user_data;
+
+ if (babl->class_type == BABL_CONVERSION_LINEAR &&
+ BABL (babl->conversion.source)->class_type == BABL_MODEL)
+ {
+ const Babl *src_format = NULL;
+ const Babl *dst_format = NULL;
+ if (BABL (babl->conversion.source) == babl_model_from_id (BABL_RGBA))
+ {
+ src_format = babl_format_from_id (BABL_RGBA_DOUBLE);
+ dst_format = babl_format_with_model_as_type (
+ BABL (babl->conversion.destination),
+ babl_type_from_id (BABL_DOUBLE));
+ }
+ else if (BABL (babl->conversion.destination) == babl_model_from_id (BABL_RGBA))
+ {
+ src_format = babl_format_with_model_as_type (
+ BABL (babl->conversion.source),
+ babl_type_from_id (BABL_DOUBLE));
+ dst_format = babl_format_from_id (BABL_RGBA_DOUBLE);
+ }
+ else
+ {
+ babl_fatal ("neither source nor destination model is RGBA (requirement might be temporary)");
+ }
+ babl_conversion_new (
+ src_format,
+ dst_format,
+ "linear", linear,
+ "data", user_data,
+ NULL);
+ babl->conversion.error = 0.0;
+ }
+
+ return babl;
+}
+
+static char buf[512] = "";
+static int collisions = 0;
+static char *
+create_name (Babl *source, Babl *destination, int type)
+{
+ if (babl_extender ())
+ {
+ snprintf (buf, 512 - 1, "%s %i: %s%s to %s",
+ BABL (babl_extender ())->instance.name,
+ collisions,
+ type == BABL_CONVERSION_LINEAR ? "" :
+ type == BABL_CONVERSION_PLANE ? "plane " :
+ type == BABL_CONVERSION_PLANAR ? "planar " : "Eeeek! ",
+ source->instance.name,
+ destination->instance.name);
+ buf[511] = '\0';
+ }
+ else
+ {
+ snprintf (buf, 512 - 1, "%s %s to %s",
+ type == BABL_CONVERSION_LINEAR ? "" :
+ type == BABL_CONVERSION_PLANE ? "plane " :
+ type == BABL_CONVERSION_PLANAR ? "planar " : "Eeeek! ",
+ source->instance.name,
+ destination->instance.name);
+ buf[511] = '\0';
+ }
+ return buf;
+}
+
+const Babl *
+babl_conversion_new (const void *first_arg,
+ ...)
+{
+ va_list varg;
+ Babl *babl;
+
+ int id = 0;
+ BablFuncLinear linear = NULL;
+ BablFuncPlane plane = NULL;
+ BablFuncPlanar planar = NULL;
+ int type = 0;
+ int got_func = 0;
+ const char *arg = first_arg;
+ void *user_data= NULL;
+
+ Babl *source;
+ Babl *destination;
+
+ char *name;
+
+ va_start (varg, first_arg);
+ source = (Babl *) arg;
+ destination = va_arg (varg, Babl *);
+ arg = va_arg (varg, char *);
+
+ assert (BABL_IS_BABL (source));
+ assert (BABL_IS_BABL (destination));
+
+
+ while (arg)
+ {
+ if (!strcmp (arg, "id"))
+ {
+ id = va_arg (varg, int);
+ }
+
+ else if (!strcmp (arg, "data"))
+ {
+ user_data = va_arg (varg, void*);
+ }
+
+ else if (!strcmp (arg, "linear"))
+ {
+ if (got_func++)
+ {
+ babl_fatal ("already got a conversion func\n");
+ }
+ linear = va_arg (varg, BablFuncLinear);
+ }
+
+ else if (!strcmp (arg, "plane"))
+ {
+ if (got_func++)
+ {
+ babl_fatal ("already got a conversion func\n");
+ }
+ plane = va_arg (varg, BablFuncPlane);
+ }
+
+ else if (!strcmp (arg, "planar"))
+ {
+ if (got_func++)
+ {
+ babl_fatal ("already got a conversion func\n");
+ }
+ planar = va_arg (varg, BablFuncPlanar);
+ }
+
+ else
+ {
+ babl_fatal ("unhandled argument '%s'", arg);
+ }
+
+ arg = va_arg (varg, char *);
+ }
+
+ va_end (varg);
+
+ assert (source);
+ assert (destination);
+
+ if (linear)
+ {
+ type = BABL_CONVERSION_LINEAR;
+ }
+ else if (plane)
+ {
+ type = BABL_CONVERSION_PLANE;
+ }
+ else if (planar)
+ {
+ type = BABL_CONVERSION_PLANAR;
+ }
+
+ collisions = 0;
+ name = create_name (source, destination, type);
+
+ babl = babl_db_exist (db, id, name);
+ while (babl)
+ {
+ /* we allow multiple conversions to be registered per extender, each
+ of them ending up with their own unique name
+ */
+ collisions++;
+ name = create_name (source, destination, type);
+ babl = babl_db_exist (db, id, name);
+ }
+
+ babl = conversion_new (name, id, source, destination, linear, plane, planar,
+ user_data);
+
+ /* Since there is not an already registered instance by the required
+ * id/name, inserting newly created class into database.
+ */
+ babl_db_insert (db, babl);
+ if (!source->type.from_list)
+ source->type.from_list = babl_list_init_with_size (BABL_CONVERSIONS);
+ babl_list_insert_last (source->type.from_list, babl);
+ return babl;
+}
+
+static long
+babl_conversion_linear_process (BablConversion *conversion,
+ const void *source,
+ void *destination,
+ long n)
+{
+ return conversion->function.linear (source, destination, n, conversion->data);
+}
+
+static long
+babl_conversion_plane_process (BablConversion *conversion,
+ const void *source,
+ void *destination,
+ int src_pitch,
+ int dst_pitch,
+ long n)
+{
+ return conversion->function.plane (source, destination,
+ src_pitch, dst_pitch,
+ n,
+ conversion->data);
+}
+
+static long
+babl_conversion_planar_process (BablConversion *conversion,
+ BablImage *source,
+ BablImage *destination,
+ long n)
+{
+#ifdef USE_ALLOCA
+ const char **src_data = alloca (sizeof (void *) * source->components);
+ char **dst_data = alloca (sizeof (void *) * destination->components);
+#else
+ const char *src_data[BABL_MAX_COMPONENTS];
+ char *dst_data[BABL_MAX_COMPONENTS];
+#endif
+
+ memcpy (src_data, source->data, sizeof (void *) * source->components);
+ memcpy (dst_data, destination->data, sizeof (void *) * destination->components);
+
+ return conversion->function.planar (source->components,
+ src_data,
+ source->pitch,
+ destination->components,
+ dst_data,
+ destination->pitch,
+ n,
+ conversion->data);
+}
+
+long
+babl_conversion_process (const Babl *babl,
+ const char *source,
+ char *destination,
+ long n)
+{
+ BablConversion *conversion = (BablConversion *) babl;
+
+ babl_assert (BABL_IS_BABL (conversion));
+
+ switch (BABL (conversion)->class_type)
+ {
+ case BABL_CONVERSION_PLANE:
+ {
+ const void *src_data = NULL;
+ void *dst_data = NULL;
+ int src_pitch = 0;
+ int dst_pitch = 0;
+
+ if (BABL_IS_BABL (source))
+ {
+ BablImage *img;
+
+ img = (BablImage *) source;
+ src_data = img->data[0];
+ src_pitch = img->pitch[0];
+ }
+ if (BABL_IS_BABL (destination))
+ {
+ BablImage *img = (BablImage *) destination;
+
+ dst_data = img->data[0];
+ dst_pitch = img->pitch[0];
+ }
+
+ if (!src_data)
+ src_data = source;
+ if (!src_pitch)
+ src_pitch = BABL (conversion->source)->type.bits / 8;
+ if (!dst_data)
+ dst_data = destination;
+ if (!dst_pitch)
+ dst_pitch = BABL (conversion->destination)->type.bits / 8;
+
+ babl_conversion_plane_process (conversion,
+ src_data, dst_data,
+ src_pitch, dst_pitch,
+ n);
+ }
+ break;
+
+ case BABL_CONVERSION_PLANAR:
+ babl_assert (BABL_IS_BABL (source));
+ babl_assert (BABL_IS_BABL (destination));
+
+ babl_conversion_planar_process (conversion,
+ (BablImage *) source,
+ (BablImage *) destination,
+ n);
+ break;
+
+ case BABL_CONVERSION_LINEAR:
+ /* the assertions relied on a babl_malloc structure
+ *
+ * babl_assert (!BABL_IS_BABL (source));
+ babl_assert (!BABL_IS_BABL (destination));*/
+
+ babl_conversion_linear_process (conversion,
+ source,
+ destination,
+ n);
+ break;
+
+ default:
+ babl_log ("args=(%s, %p, %p, %li) unhandled conversion type: %s",
+ conversion->instance.name, source, destination, n,
+ babl_class_name (conversion->instance.class_type));
+ return 0;
+ break;
+ }
+
+ conversion->processings++;
+ conversion->pixels += n;
+ return n;
+}
+
+long
+babl_conversion_cost (BablConversion *conversion)
+{
+ if (!conversion)
+ return 100000000L;
+ if (conversion->error == -1.0)
+ babl_conversion_error (conversion);
+ return conversion->cost;
+}
+
+double
+babl_conversion_error (BablConversion *conversion)
+{
+ Babl *fmt_source;
+ Babl *fmt_destination;
+
+ const Babl *fmt_rgba_double = babl_format_new (babl_model ("RGBA"),
+ babl_type ("double"),
+ babl_component ("R"),
+ babl_component ("G"),
+ babl_component ("B"),
+ babl_component ("A"),
+ NULL);
+
+ double error = 0.0;
+ long ticks_start = 0;
+ long ticks_end = 0;
+
+ const int test_pixels = babl_get_num_conversion_test_pixels ();
+ const double *test = babl_get_conversion_test_pixels ();
+
+ void *source;
+ void *destination;
+ double *destination_rgba_double;
+ void *ref_destination;
+ double *ref_destination_rgba_double;
+
+ Babl *fish_rgba_to_source;
+ Babl *fish_reference;
+ Babl *fish_destination_to_rgba;
+
+ if (!conversion)
+ return 0.0;
+
+ if (conversion->error != -1.0) /* double conversion against a set value should work */
+ {
+ return conversion->error;
+ }
+
+ fmt_source = BABL (conversion->source);
+ fmt_destination = BABL (conversion->destination);
+
+ fish_rgba_to_source = babl_fish_reference (fmt_rgba_double, fmt_source);
+ fish_reference = babl_fish_reference (fmt_source, fmt_destination);
+ fish_destination_to_rgba = babl_fish_reference (fmt_destination, fmt_rgba_double);
+
+ if (fmt_source == fmt_destination)
+ {
+ conversion->error = 0.0;
+ return 0.0;
+ }
+
+ if (!(fmt_source->instance.id != BABL_RGBA &&
+ fmt_destination->instance.id != BABL_RGBA &&
+ fmt_source->instance.id != BABL_DOUBLE &&
+ fmt_destination->instance.id != BABL_DOUBLE &&
+ fmt_source->class_type == BABL_FORMAT &&
+ fmt_destination->class_type == BABL_FORMAT))
+ {
+ conversion->error = 0.000042;
+ }
+
+ source = babl_calloc (test_pixels, fmt_source->format.bytes_per_pixel);
+ destination = babl_calloc (test_pixels, fmt_destination->format.bytes_per_pixel);
+ ref_destination = babl_calloc (test_pixels, fmt_destination->format.bytes_per_pixel);
+ destination_rgba_double = babl_calloc (test_pixels, fmt_rgba_double->format.bytes_per_pixel);
+ ref_destination_rgba_double = babl_calloc (test_pixels, fmt_rgba_double->format.bytes_per_pixel);
+
+ babl_process (fish_rgba_to_source,
+ test, source, test_pixels);
+
+ ticks_start = babl_ticks ();
+ babl_process (babl_fish_simple (conversion),
+ source, destination, test_pixels);
+ ticks_end = babl_ticks ();
+
+ babl_process (fish_reference,
+ source, ref_destination, test_pixels);
+
+ babl_process (fish_destination_to_rgba,
+ ref_destination, ref_destination_rgba_double, test_pixels);
+ babl_process (fish_destination_to_rgba,
+ destination, destination_rgba_double, test_pixels);
+
+ error = babl_rel_avg_error (destination_rgba_double,
+ ref_destination_rgba_double,
+ test_pixels * 4);
+
+ fish_rgba_to_source->fish.processings--;
+ fish_reference->fish.processings--;
+ fish_destination_to_rgba->fish.processings -= 2;
+
+ fish_rgba_to_source->fish.pixels -= test_pixels;
+ fish_reference->fish.pixels -= test_pixels;
+ fish_destination_to_rgba->fish.pixels -= 2 * test_pixels;
+
+ babl_free (source);
+ babl_free (destination);
+ babl_free (destination_rgba_double);
+ babl_free (ref_destination);
+ babl_free (ref_destination_rgba_double);
+
+ conversion->error = error;
+ conversion->cost = babl_process_cost (ticks_start, ticks_end);
+
+ return error;
+}
+
+BABL_CLASS_IMPLEMENT (conversion)
--- /dev/null
+/* babl - dynamically extendable universal pixel conversion library.
+ * Copyright (C) 2005-2008, Øyvind Kolås and others.
+ *
+ * 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 3 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, see
+ * <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef _BABL_CONVERSION_H
+#define _BABL_CONVERSION_H
+
+BABL_CLASS_DECLARE (conversion);
+
+const Babl * babl_conversion (const char *name);
+
+/* Signature of functions registered for reference type
+ * conversions,
+ */
+typedef long (*BablFuncPlane) (const char *src,
+ char *dst,
+ int src_pitch,
+ int dst_pitch,
+ long n,
+ void *user_data);
+
+
+typedef struct
+BablConversion {
+ BablInstance instance;
+ const Babl *source;
+ const Babl *destination;
+ long cost;
+ double error;
+ union
+ {
+ BablFuncLinear linear;
+ BablFuncPlane plane;
+ BablFuncPlanar planar;
+ } function;
+ void *data; /* user data */
+ int processings;
+ long pixels;
+} BablConversion;
+
+#endif
--- /dev/null
+/* babl - dynamically extendable universal pixel conversion library.
+
+ * 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 3 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, see
+ * <http://www.gnu.org/licenses/>.
+ */
+
+#include "config.h"
+#include <string.h>
+#include "babl-internal.h"
+#include "babl-ids.h"
+#include "util.h"
+
+static long
+convert_double_double (char *src,
+ char *dst,
+ int src_pitch,
+ int dst_pitch,
+ long n)
+{
+ if (src_pitch == 64 &&
+ dst_pitch == 64)
+ {
+ memcpy (dst, src, n / 8);
+ return n;
+ }
+
+ while (n--)
+ {
+ (*(double *) dst) = (*(double *) src);
+ dst += dst_pitch;
+ src += src_pitch;
+ }
+ return n;
+}
+
+/*
+ static long
+ copy_strip_1 (int src_bands,
+ char **src,
+ int *src_pitch,
+ int dst_bands,
+ char **dst,
+ int *dst_pitch,
+ long n)
+ {
+ BABL_PLANAR_SANITY
+ while (n--)
+ {
+ int i;
+
+ for (i=0;i<dst_bands;i++)
+ {
+ double foo;
+ if (i<src_bands)
+ foo = *(double *) src[i];
+ else
+ foo = 1.0;
+ *(double*)dst[i] = foo;
+ }
+
+ BABL_PLANAR_STEP
+ }
+ return n;
+ }
+
+
+ */
+static long
+rgba_to_rgba (char *src,
+ char *dst,
+ long n)
+{
+ memcpy (dst, src, n * sizeof (double) * 4);
+ return n;
+}
+void
+babl_core_init (void)
+{
+ babl_type_new (
+ "double",
+ "id", BABL_DOUBLE,
+ "bits", 64,
+ NULL);
+
+ babl_component_new (
+ "R",
+ "id", BABL_RED,
+ "luma",
+ "chroma",
+ NULL);
+
+ babl_component_new (
+ "G",
+ "id", BABL_GREEN,
+ "luma",
+ "chroma",
+ NULL);
+
+ babl_component_new (
+ "B",
+ "id", BABL_BLUE,
+ "luma",
+ "chroma",
+ NULL);
+
+ babl_component_new (
+ "A",
+ "id", BABL_ALPHA,
+ "alpha",
+ NULL);
+
+ babl_component_new (
+ "PAD",
+ "id", BABL_PADDING,
+ NULL);
+
+ babl_model_new (
+ "id", BABL_RGBA,
+ babl_component_from_id (BABL_RED),
+ babl_component_from_id (BABL_GREEN),
+ babl_component_from_id (BABL_BLUE),
+ babl_component_from_id (BABL_ALPHA),
+ NULL);
+
+ /*
+ babl_conversion_new (
+ babl_model_from_id (BABL_RGBA),
+ babl_model_from_id (BABL_RGBA),
+ "planar", copy_strip_1,
+ NULL
+ );
+ */
+
+ babl_conversion_new (
+ babl_type_from_id (BABL_DOUBLE),
+ babl_type_from_id (BABL_DOUBLE),
+ "plane", convert_double_double,
+ NULL
+ );
+
+ babl_conversion_new (
+ babl_model_from_id (BABL_RGBA),
+ babl_model_from_id (BABL_RGBA),
+ "linear", rgba_to_rgba,
+ NULL
+ );
+}
--- /dev/null
+/* babl - dynamically extendable universal pixel conversion library.
+ * Copyright (C) 2005-2008, Øyvind Kolås and others.
+ *
+ * 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 3 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, see
+ * <http://www.gnu.org/licenses/>.
+ */
+
+/*
+ * x86 bits Copyright (C) Manish Singh <yosh@gimp.org>
+ */
+
+/*
+ * PPC CPU acceleration detection was taken from DirectFB but seems to be
+ * originating from mpeg2dec with the following copyright:
+ *
+ * Copyright (C) 1999-2001 Aaron Holtzman <aholtzma@ess.engr.uvic.ca>
+ */
+
+#include "config.h"
+#include <string.h>
+#include <signal.h>
+#include <setjmp.h>
+
+#include "babl-cpuaccel.h"
+
+typedef unsigned int gboolean;
+typedef unsigned int guint32;
+typedef int gint;
+typedef char gchar;
+typedef size_t gsize;
+#define TRUE 1
+#define FALSE 0
+#define G_GNUC_CONST
+
+static BablCpuAccelFlags cpu_accel (void) G_GNUC_CONST;
+
+static gboolean use_cpu_accel = TRUE;
+
+
+/**
+ * babl_cpu_accel_get_support:
+ *
+ * Query for CPU acceleration support.
+ *
+ * Return value: #BablCpuAccelFlags as supported by the CPU.
+ */
+BablCpuAccelFlags
+babl_cpu_accel_get_support (void)
+{
+ return use_cpu_accel ? cpu_accel () : BABL_CPU_ACCEL_NONE;
+}
+
+/**
+ * babl_cpu_accel_set_use:
+ * @use: whether to use CPU acceleration features or not
+ *
+ * This function is for internal use only.
+ */
+void
+babl_cpu_accel_set_use (gboolean use)
+{
+ use_cpu_accel = use ? TRUE : FALSE;
+}
+
+
+#if defined(ARCH_X86) && defined(USE_MMX) && defined(__GNUC__)
+
+#define HAVE_ACCEL 1
+
+
+typedef enum
+{
+ ARCH_X86_VENDOR_NONE,
+ ARCH_X86_VENDOR_INTEL,
+ ARCH_X86_VENDOR_AMD,
+ ARCH_X86_VENDOR_CENTAUR,
+ ARCH_X86_VENDOR_CYRIX,
+ ARCH_X86_VENDOR_NSC,
+ ARCH_X86_VENDOR_TRANSMETA,
+ ARCH_X86_VENDOR_NEXGEN,
+ ARCH_X86_VENDOR_RISE,
+ ARCH_X86_VENDOR_UMC,
+ ARCH_X86_VENDOR_SIS,
+ ARCH_X86_VENDOR_UNKNOWN = 0xff
+} X86Vendor;
+
+enum
+{
+ ARCH_X86_INTEL_FEATURE_MMX = 1 << 23,
+ ARCH_X86_INTEL_FEATURE_XMM = 1 << 25,
+ ARCH_X86_INTEL_FEATURE_XMM2 = 1 << 26,
+
+ ARCH_X86_AMD_FEATURE_MMXEXT = 1 << 22,
+ ARCH_X86_AMD_FEATURE_3DNOW = 1 << 31,
+
+ ARCH_X86_CENTAUR_FEATURE_MMX = 1 << 23,
+ ARCH_X86_CENTAUR_FEATURE_MMXEXT = 1 << 24,
+ ARCH_X86_CENTAUR_FEATURE_3DNOW = 1 << 31,
+
+ ARCH_X86_CYRIX_FEATURE_MMX = 1 << 23,
+ ARCH_X86_CYRIX_FEATURE_MMXEXT = 1 << 24
+};
+
+enum
+{
+ ARCH_X86_INTEL_FEATURE_PNI = 1 << 0,
+ ARCH_X86_INTEL_FEATURE_SSSE3 = 1 << 9,
+ ARCH_X86_INTEL_FEATURE_SSE4_1 = 1 << 19,
+ ARCH_X86_INTEL_FEATURE_SSE4_2 = 1 << 20,
+ ARCH_X86_INTEL_FEATURE_AVX = 1 << 28,
+ ARCH_X86_INTEL_FEATURE_F16C = 1 << 29,
+};
+
+#if !defined(ARCH_X86_64) && (defined(PIC) || defined(__PIC__))
+#define cpuid(op,eax,ebx,ecx,edx) \
+ __asm__ ("movl %%ebx, %%esi\n\t" \
+ "cpuid\n\t" \
+ "xchgl %%ebx,%%esi" \
+ : "=a" (eax), \
+ "=S" (ebx), \
+ "=c" (ecx), \
+ "=d" (edx) \
+ : "0" (op))
+#else
+#define cpuid(op,eax,ebx,ecx,edx) \
+ __asm__ ("cpuid" \
+ : "=a" (eax), \
+ "=b" (ebx), \
+ "=c" (ecx), \
+ "=d" (edx) \
+ : "0" (op))
+#endif
+
+
+static X86Vendor
+arch_get_vendor (void)
+{
+ guint32 eax, ebx, ecx, edx;
+ guint32 intid[4];
+ char *id = (char *) intid;
+
+#ifndef ARCH_X86_64
+ /* Only need to check this on ia32 */
+ __asm__ ("pushfl\n\t"
+ "pushfl\n\t"
+ "popl %0\n\t"
+ "movl %0,%1\n\t"
+ "xorl $0x200000,%0\n\t"
+ "pushl %0\n\t"
+ "popfl\n\t"
+ "pushfl\n\t"
+ "popl %0\n\t"
+ "popfl"
+ : "=a" (eax),
+ "=c" (ecx)
+ :
+ : "cc");
+
+ if (eax == ecx)
+ return ARCH_X86_VENDOR_NONE;
+#endif
+
+ cpuid (0, eax, ebx, ecx, edx);
+
+ if (eax == 0)
+ return ARCH_X86_VENDOR_NONE;
+
+ intid[0] = ebx;
+ intid[1] = edx;
+ intid[2] = ecx;
+
+ id[12] = '\0';
+
+#ifdef ARCH_X86_64
+ if (strcmp (id, "AuthenticAMD") == 0)
+ return ARCH_X86_VENDOR_AMD;
+ else if (strcmp (id, "GenuineIntel") == 0)
+ return ARCH_X86_VENDOR_INTEL;
+#else
+ if (strcmp (id, "GenuineIntel") == 0)
+ return ARCH_X86_VENDOR_INTEL;
+ else if (strcmp (id, "AuthenticAMD") == 0)
+ return ARCH_X86_VENDOR_AMD;
+ else if (strcmp (id, "CentaurHauls") == 0)
+ return ARCH_X86_VENDOR_CENTAUR;
+ else if (strcmp (id, "CyrixInstead") == 0)
+ return ARCH_X86_VENDOR_CYRIX;
+ else if (strcmp (id, "Geode by NSC") == 0)
+ return ARCH_X86_VENDOR_NSC;
+ else if (strcmp (id, "GenuineTMx86") == 0 ||
+ strcmp (id, "TransmetaCPU") == 0)
+ return ARCH_X86_VENDOR_TRANSMETA;
+ else if (strcmp (id, "NexGenDriven") == 0)
+ return ARCH_X86_VENDOR_NEXGEN;
+ else if (strcmp (id, "RiseRiseRise") == 0)
+ return ARCH_X86_VENDOR_RISE;
+ else if (strcmp (id, "UMC UMC UMC ") == 0)
+ return ARCH_X86_VENDOR_UMC;
+ else if (strcmp (id, "SiS SiS SiS ") == 0)
+ return ARCH_X86_VENDOR_SIS;
+#endif
+
+ return ARCH_X86_VENDOR_UNKNOWN;
+}
+
+static guint32
+arch_accel_intel (void)
+{
+ guint32 caps = 0;
+
+#ifdef USE_MMX
+ {
+ guint32 eax, ebx, ecx, edx;
+
+ cpuid (1, eax, ebx, ecx, edx);
+
+ if ((edx & ARCH_X86_INTEL_FEATURE_MMX) == 0)
+ return 0;
+
+ caps = BABL_CPU_ACCEL_X86_MMX;
+
+#ifdef USE_SSE
+ if (edx & ARCH_X86_INTEL_FEATURE_XMM)
+ caps |= BABL_CPU_ACCEL_X86_SSE | BABL_CPU_ACCEL_X86_MMXEXT;
+
+ if (edx & ARCH_X86_INTEL_FEATURE_XMM2)
+ caps |= BABL_CPU_ACCEL_X86_SSE2;
+
+ if (ecx & ARCH_X86_INTEL_FEATURE_PNI)
+ caps |= BABL_CPU_ACCEL_X86_SSE3;
+
+ if (ecx & ARCH_X86_INTEL_FEATURE_SSSE3)
+ caps |= BABL_CPU_ACCEL_X86_SSSE3;
+
+ if (ecx & ARCH_X86_INTEL_FEATURE_SSE4_1)
+ caps |= BABL_CPU_ACCEL_X86_SSE4_1;
+
+ if (ecx & ARCH_X86_INTEL_FEATURE_F16C)
+ caps |= BABL_CPU_ACCEL_X86_F16C;
+#endif /* USE_SSE */
+ }
+#endif /* USE_MMX */
+
+ return caps;
+}
+
+static guint32
+arch_accel_amd (void)
+{
+ guint32 caps;
+
+ caps = arch_accel_intel ();
+
+#ifdef USE_MMX
+ {
+ guint32 eax, ebx, ecx, edx;
+
+ cpuid (0x80000000, eax, ebx, ecx, edx);
+
+ if (eax < 0x80000001)
+ return caps;
+
+#ifdef USE_SSE
+ cpuid (0x80000001, eax, ebx, ecx, edx);
+
+ if (edx & ARCH_X86_AMD_FEATURE_3DNOW)
+ caps |= BABL_CPU_ACCEL_X86_3DNOW;
+
+ if (edx & ARCH_X86_AMD_FEATURE_MMXEXT)
+ caps |= BABL_CPU_ACCEL_X86_MMXEXT;
+#endif /* USE_SSE */
+ }
+#endif /* USE_MMX */
+
+ return caps;
+}
+
+static guint32
+arch_accel_centaur (void)
+{
+ guint32 caps;
+
+ caps = arch_accel_intel ();
+
+#ifdef USE_MMX
+ {
+ guint32 eax, ebx, ecx, edx;
+
+ cpuid (0x80000000, eax, ebx, ecx, edx);
+
+ if (eax < 0x80000001)
+ return caps;
+
+ cpuid (0x80000001, eax, ebx, ecx, edx);
+
+ if (edx & ARCH_X86_CENTAUR_FEATURE_MMX)
+ caps |= BABL_CPU_ACCEL_X86_MMX;
+
+#ifdef USE_SSE
+ if (edx & ARCH_X86_CENTAUR_FEATURE_3DNOW)
+ caps |= BABL_CPU_ACCEL_X86_3DNOW;
+
+ if (edx & ARCH_X86_CENTAUR_FEATURE_MMXEXT)
+ caps |= BABL_CPU_ACCEL_X86_MMXEXT;
+#endif /* USE_SSE */
+ }
+#endif /* USE_MMX */
+
+ return caps;
+}
+
+static guint32
+arch_accel_cyrix (void)
+{
+ guint32 caps;
+
+ caps = arch_accel_intel ();
+
+#ifdef USE_MMX
+ {
+ guint32 eax, ebx, ecx, edx;
+
+ cpuid (0, eax, ebx, ecx, edx);
+
+ if (eax != 2)
+ return caps;
+
+ cpuid (0x80000001, eax, ebx, ecx, edx);
+
+ if (edx & ARCH_X86_CYRIX_FEATURE_MMX)
+ caps |= BABL_CPU_ACCEL_X86_MMX;
+
+#ifdef USE_SSE
+ if (edx & ARCH_X86_CYRIX_FEATURE_MMXEXT)
+ caps |= BABL_CPU_ACCEL_X86_MMXEXT;
+#endif /* USE_SSE */
+ }
+#endif /* USE_MMX */
+
+ return caps;
+}
+
+#ifdef USE_SSE
+static jmp_buf sigill_return;
+
+static void
+sigill_handler (gint n)
+{
+ longjmp (sigill_return, 1);
+}
+
+static gboolean
+arch_accel_sse_os_support (void)
+{
+ if (setjmp (sigill_return))
+ {
+ return FALSE;
+ }
+ else
+ {
+ signal (SIGILL, sigill_handler);
+ __asm__ __volatile__ ("xorps %xmm0, %xmm0");
+ signal (SIGILL, SIG_DFL);
+ }
+
+ return TRUE;
+}
+#endif /* USE_SSE */
+
+static guint32
+arch_accel (void)
+{
+ guint32 caps;
+ X86Vendor vendor;
+
+ vendor = arch_get_vendor ();
+
+ switch (vendor)
+ {
+ case ARCH_X86_VENDOR_NONE:
+ caps = 0;
+ break;
+
+ case ARCH_X86_VENDOR_AMD:
+ caps = arch_accel_amd ();
+ break;
+
+ case ARCH_X86_VENDOR_CENTAUR:
+ caps = arch_accel_centaur ();
+ break;
+
+ case ARCH_X86_VENDOR_CYRIX:
+ case ARCH_X86_VENDOR_NSC:
+ caps = arch_accel_cyrix ();
+ break;
+
+ /* check for what Intel speced, even if UNKNOWN */
+ default:
+ caps = arch_accel_intel ();
+ break;
+ }
+
+#ifdef USE_SSE
+ if ((caps & BABL_CPU_ACCEL_X86_SSE) && !arch_accel_sse_os_support ())
+ caps &= ~(BABL_CPU_ACCEL_X86_SSE |
+ BABL_CPU_ACCEL_X86_SSE2 |
+ BABL_CPU_ACCEL_X86_SSE3 |
+ BABL_CPU_ACCEL_X86_SSSE3 |
+ BABL_CPU_ACCEL_X86_SSE4_1);
+#endif
+
+ return caps;
+}
+
+#endif /* ARCH_X86 && USE_MMX && __GNUC__ */
+
+
+#if defined(ARCH_PPC) && defined (USE_ALTIVEC)
+
+#if defined(HAVE_ALTIVEC_SYSCTL)
+
+#include <sys/sysctl.h>
+
+#define HAVE_ACCEL 1
+
+static guint32
+arch_accel (void)
+{
+ gint sels[2] = { CTL_HW, HW_VECTORUNIT };
+ gboolean has_vu = FALSE;
+ gsize length = sizeof(has_vu);
+ gint err;
+
+ err = sysctl (sels, 2, &has_vu, &length, NULL, 0);
+
+ if (err == 0 && has_vu)
+ return BABL_CPU_ACCEL_PPC_ALTIVEC;
+
+ return 0;
+}
+
+#elif defined(__GNUC__)
+
+#define HAVE_ACCEL 1
+
+static sigjmp_buf jmpbuf;
+static volatile sig_atomic_t canjump = 0;
+
+static void
+sigill_handler (gint sig)
+{
+ if (!canjump)
+ {
+ signal (sig, SIG_DFL);
+ raise (sig);
+ }
+
+ canjump = 0;
+ siglongjmp (jmpbuf, 1);
+}
+
+static guint32
+arch_accel (void)
+{
+ signal (SIGILL, sigill_handler);
+
+ if (sigsetjmp (jmpbuf, 1))
+ {
+ signal (SIGILL, SIG_DFL);
+ return 0;
+ }
+
+ canjump = 1;
+
+ asm volatile ("mtspr 256, %0\n\t"
+ "vand %%v0, %%v0, %%v0"
+ :
+ : "r" (-1));
+
+ signal (SIGILL, SIG_DFL);
+
+ return BABL_CPU_ACCEL_PPC_ALTIVEC;
+}
+#endif /* __GNUC__ */
+
+#endif /* ARCH_PPC && USE_ALTIVEC */
+
+
+static BablCpuAccelFlags
+cpu_accel (void)
+{
+#ifdef HAVE_ACCEL
+ static guint32 accel = ~0U;
+
+ if (accel != ~0U)
+ return accel;
+
+ accel = arch_accel ();
+
+#if defined(ARCH_X86_64)
+ accel |= BABL_CPU_ACCEL_X86_64;
+#endif
+
+ return (BablCpuAccelFlags) accel;
+
+#else /* !HAVE_ACCEL */
+ return BABL_CPU_ACCEL_NONE;
+#endif
+}
--- /dev/null
+/* babl - dynamically extendable universal pixel conversion library.
+ * Copyright (C) 2005-2008, Øyvind Kolås and others.
+ *
+ * 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 3 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, see
+ * <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef _BABL_CPU_ACCEL_H
+#define _BABL_CPU_ACCEL_H
+
+typedef enum
+{
+ BABL_CPU_ACCEL_NONE = 0x0,
+
+ /* x86 accelerations */
+ BABL_CPU_ACCEL_X86_MMX = 0x01000000,
+ BABL_CPU_ACCEL_X86_3DNOW = 0x40000000,
+ BABL_CPU_ACCEL_X86_MMXEXT = 0x20000000,
+ BABL_CPU_ACCEL_X86_SSE = 0x10000000,
+ BABL_CPU_ACCEL_X86_SSE2 = 0x08000000,
+ BABL_CPU_ACCEL_X86_SSE3 = 0x02000000,
+ BABL_CPU_ACCEL_X86_SSSE3 = 0x00800000,
+ BABL_CPU_ACCEL_X86_SSE4_1 = 0x00400000,
+ /* BABL_CPU_ACCEL_X86_SSE4_2 = 0x00200000, */
+ /* BABL_CPU_ACCEL_X86_AVX = 0x00080000, */
+ BABL_CPU_ACCEL_X86_F16C = 0x00040000,
+
+ /* powerpc accelerations */
+ BABL_CPU_ACCEL_PPC_ALTIVEC = 0x04000000,
+ BABL_CPU_ACCEL_X86_64 = 0x00100000
+} BablCpuAccelFlags;
+
+
+BablCpuAccelFlags babl_cpu_accel_get_support (void);
+void babl_cpu_accel_set_use (unsigned int use);
+
+
+#endif /* _BABL_CPU_ACCEL_H */
--- /dev/null
+/* babl - dynamically extendable universal pixel conversion library.
+ * Copyright (C) 2005, Øyvind Kolås.
+ *
+ * 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 3 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, see
+ * <http://www.gnu.org/licenses/>.
+ */
+
+/* Reimplementation of database code using redundant hash tables
+ * for faster searching by id/name and using list for fast item enumeration.
+ * Copyright (C) 2008, Jan Heller
+ */
+
+#define _BABL_DB_C
+
+#include "config.h"
+#include <string.h>
+#include "babl-internal.h"
+
+static int
+db_find_by_name (Babl *item, void *data)
+{
+ if (!strcmp (item->instance.name, (char *) data))
+ return 1;
+ return 0;
+}
+
+static int
+db_find_by_id (Babl *item, void *data)
+{
+ if (item->instance.id == *((int *) data))
+ return 1;
+ return 0;
+}
+
+static int
+db_hash_by_name (BablHashTable *htab, Babl *item)
+{
+ return babl_hash_by_str (htab, item->instance.name);
+}
+
+static int
+db_hash_by_id (BablHashTable *htab, Babl *item)
+{
+ return babl_hash_by_int (htab, item->instance.id);
+}
+
+static int
+each_free (Babl *data,
+ void *foo)
+{
+ babl_free (data);
+ return 0;
+}
+
+static int
+babl_db_destroy (void *data)
+{
+ BablDb *db = data;
+ babl_assert (db);
+
+ babl_db_each (db, each_free, NULL);
+ babl_mutex_destroy (db->mutex);
+ babl_free (db->name_hash);
+ babl_free (db->id_hash);
+ babl_free (db->babl_list);
+ return 0;
+}
+
+BablDb *
+babl_db_init (void)
+{
+ BablDb *db = babl_calloc (sizeof (BablDb), 1);
+ babl_set_destructor (db, babl_db_destroy);
+
+ db->name_hash = babl_hash_table_init (db_hash_by_name, db_find_by_name);
+ db->id_hash = babl_hash_table_init (db_hash_by_id, db_find_by_id);
+ db->babl_list = babl_list_init_with_size (512);
+ db->mutex = babl_mutex_new ();
+
+ return db;
+}
+
+
+Babl *
+babl_db_find (BablDb *db,
+ const char *name)
+{
+ return babl_hash_table_find (db->name_hash, babl_hash_by_str (db->name_hash, name),
+ NULL, (void *) name);
+}
+
+int
+babl_db_count (BablDb *db)
+{
+ return db->babl_list->count;
+}
+
+Babl *
+babl_db_insert (BablDb *db,
+ Babl *item)
+{
+ babl_mutex_lock (db->mutex);
+ if (item->instance.id)
+ babl_hash_table_insert (db->id_hash, item);
+ babl_hash_table_insert (db->name_hash, item);
+ babl_list_insert_last (db->babl_list, item);
+
+ /* this point all registered items pass through, a nice
+ * place to brand them with where the item came from. */
+ item->instance.creator = babl_extender ();
+ babl_mutex_unlock (db->mutex);
+ return item;
+}
+
+void
+babl_db_each (BablDb *db,
+ BablEachFunction each_fun,
+ void *user_data)
+{
+ babl_list_each (db->babl_list, each_fun, user_data);
+}
+
+
+Babl *
+babl_db_exist (BablDb *db,
+ int id,
+ const char *name)
+{
+ Babl *ret;
+ if (id)
+ ret = babl_hash_table_find (db->id_hash, babl_hash_by_int (db->id_hash, id), NULL, &id);
+ else
+ ret = babl_hash_table_find (db->name_hash, babl_hash_by_str (db->name_hash, name), NULL, (void *) name);
+ return ret;
+}
+
+Babl *
+babl_db_exist_by_id (BablDb *db,
+ int id)
+{
+ Babl *ret;
+ ret = babl_hash_table_find (db->id_hash, babl_hash_by_int (db->id_hash, id), NULL, &id);
+ return ret;
+}
+
+Babl *
+babl_db_exist_by_name (BablDb *db,
+ const char *name)
+{
+ Babl *ret;
+ ret = babl_hash_table_find (db->name_hash, babl_hash_by_str (db->name_hash, name),
+ NULL, (void *) name);
+ return ret;
+}
--- /dev/null
+/* babl - dynamically extendable universal pixel conversion library.
+ * Copyright (C) 2005, Øyvind Kolås.
+ *
+ * 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 3 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, see
+ * <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef _BABL_DB_H
+#define _BABL_DB_H
+
+#ifndef _BABL_H
+#error babl-db.h is only to be included after babl.h
+#endif
+
+#include "babl-list.h"
+#include "babl-hash-table.h"
+#include "babl-memory.h"
+#include "babl-mutex.h"
+
+typedef struct _BablDb BablDb;
+
+typedef struct _BablDb
+{
+ BablHashTable *name_hash;
+ BablHashTable *id_hash;
+ BablList *babl_list;
+ BablMutex *mutex;
+} _BablDb;
+
+#ifdef NEEDS_BABL_DB
+static BablDb *db = NULL;
+#endif /* NEEDS_BABL_DB */
+
+BablDb *
+babl_db_init (void);
+
+void
+babl_db_each (BablDb *db,
+ BablEachFunction each_fun,
+ void *user_data);
+
+int
+babl_db_count (BablDb *db);
+
+Babl *
+babl_db_insert (BablDb *db,
+ Babl *entry);
+
+Babl *
+babl_db_exist (BablDb *db,
+ int id,
+ const char *name);
+
+Babl *
+babl_db_exist_by_name (BablDb *db,
+ const char *name);
+Babl *
+babl_db_exist_by_id (BablDb *db,
+ int id);
+
+Babl *
+babl_db_find (BablDb *db,
+ const char *name);
+
+#endif
--- /dev/null
+/* babl - dynamically extendable universal pixel conversion library.
+ * Copyright (C) 2005, Øyvind Kolås.
+ *
+ * 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 3 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, see
+ * <http://www.gnu.org/licenses/>.
+ */
+
+#define BABL_DYNAMIC_EXTENSIONS
+
+#include "config.h"
+
+
+#ifdef BABL_DYNAMIC_EXTENSIONS
+/* must be defined before inclusion of babl-internal.h */
+#undef BABL_INIT_HOOK
+#define BABL_INIT_HOOK init_hook (); dynamic_init_hook ();
+#endif
+
+#define NEEDS_BABL_DB
+#include "babl-internal.h"
+#include "babl-db.h"
+#include "babl-base.h"
+#include <string.h>
+#include <stdarg.h>
+
+static Babl *babl_extension_current_extender = NULL;
+
+Babl *
+babl_extender (void)
+{
+ if (babl_extension_current_extender)
+ return babl_extension_current_extender;
+ return NULL;
+}
+
+void
+babl_set_extender (Babl *new_extender)
+{
+ babl_extension_current_extender = new_extender;
+}
+
+static int
+babl_extension_destroy (void *data);
+
+static Babl *
+extension_new (const char *path,
+ void *dl_handle,
+ void (*destroy)(void))
+{
+ Babl *babl;
+
+ babl = babl_malloc (sizeof (BablExtension) + strlen (path) + 1);
+ babl_set_destructor (babl, babl_extension_destroy);
+ babl->instance.name = (char *) babl + sizeof (BablExtension);
+ strcpy (babl->instance.name, path);
+ babl->instance.id = 0;
+ babl->class_type = BABL_EXTENSION;
+ babl->extension.dl_handle = dl_handle;
+ babl->extension.destroy = destroy;
+
+ return babl;
+}
+
+static Babl *babl_quiet = NULL;
+
+Babl *
+babl_extension_quiet_log (void)
+{
+ if (babl_quiet)
+ return babl_quiet;
+ babl_quiet = extension_new ("", NULL, NULL);
+ return babl_quiet;
+}
+
+Babl *
+babl_extension_base (void)
+{
+ Babl *babl;
+ void *dl_handle = NULL;
+
+ void (*destroy)(void) = NULL;
+
+ if (!db)
+ {
+ babl_extension_quiet_log ();
+ babl_set_extender (NULL);
+ db = babl_db_init ();
+ }
+ babl = extension_new ("BablBase",
+ dl_handle,
+ destroy);
+ babl_set_extender (babl);
+
+ {
+ Babl *ret = babl_db_insert (db, babl);
+ if (ret != babl)
+ babl_free (babl);
+ else
+ babl_base_init ();
+ babl = ret;
+ }
+ babl_set_extender (NULL);
+ return babl;
+}
+
+void babl_extension_deinit (void)
+{
+ babl_free (babl_quiet);
+ babl_quiet = NULL;
+}
+
+#ifdef BABL_DYNAMIC_EXTENSIONS
+
+#include <dirent.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <unistd.h>
+
+#ifdef HAVE_DLFCN_H
+#ifndef WIN32
+
+#include <dlfcn.h>
+#define HLIB void *
+
+#endif /* WIN32 */
+#elif HAVE_DL_H
+
+
+#include <dl.h>
+#include <errno.h>
+#if !defined(DYNAMIC_PATH)
+# define DYNAMIC_PATH 0
+#endif
+#if !defined(BIND_RESTRICTED)
+# define BIND_RESTRICTED 0
+#endif
+#define RTLD_NOW (BIND_IMMEDIATE|BIND_NONFATAL|DYNAMIC_PATH)
+#define HLIB shl_t
+#define dlopen(path, flags) shl_load (path, flags, 0L)
+#define dlclose(handle) shl_unload (handle)
+#define dlerror() strerror (errno)
+static void *dlsym (HLIB handle, const char *name) {
+ void *address = 0;
+ shl_findsym(&handle, name, TYPE_UNDEFINED, &address);
+ return address;
+}
+
+#endif
+
+#ifndef RTLD_NOW
+#define RTLD_NOW 0
+#endif
+
+#ifdef WIN32
+#define WIN32_LEAN_AND_MEAN
+#include <windows.h>
+#define HLIB HINSTANCE
+
+#define dlopen(a, b) LoadLibrary (a)
+#define dlsym(l, s) GetProcAddress (l, s)
+#define dlclose(l) FreeLibrary (l)
+#define dlerror() GetLastError ()
+#endif
+
+typedef int (*BablExtensionInitFunc) (void);
+typedef void (*BablExtensionDestroyFunc)(void);
+
+
+static Babl *
+load_failed (Babl *babl)
+{
+ if (babl)
+ {
+ babl_free (babl);
+ }
+ babl_set_extender (NULL);
+ return NULL;
+}
+
+static Babl *
+babl_extension_load (const char *path)
+{
+ Babl *babl = NULL;
+ /* do the actual loading thing */
+ HLIB dl_handle = NULL;
+
+ BablExtensionInitFunc init = NULL;
+ BablExtensionDestroyFunc destroy = NULL;
+
+ dl_handle = dlopen (path, RTLD_NOW);
+ if (!dl_handle)
+ {
+ babl_log ("dlopen() failed:\n\t%s", dlerror ());
+ return load_failed (babl);
+ }
+ init = (BablExtensionInitFunc) dlsym (dl_handle, "init");
+ if (!init)
+ {
+ babl_log ("\n\tint babl_extension_init() function not found in extension '%s'", path);
+ dlclose (dl_handle);
+ return load_failed (babl);
+ }
+
+ destroy = (BablExtensionDestroyFunc) dlsym (dl_handle, "destroy");
+ babl = extension_new (path,
+ dl_handle,
+ destroy);
+
+ babl_set_extender (babl);
+ if (init ())
+ {
+ babl_log ("babl_extension_init() in extension '%s' failed (return!=0)", path);
+ dlclose (dl_handle);
+ return load_failed (babl);
+ }
+
+ babl_db_insert (db, babl);
+ if (babl == babl_db_exist_by_name (db, path))
+ {
+ babl_set_extender (NULL);
+ return babl;
+ }
+ else
+ {
+ return load_failed (babl);
+ }
+}
+
+static void
+babl_extension_load_dir (const char *base_path)
+{
+ DIR *dir;
+
+ if ((dir = opendir (base_path)))
+ {
+ struct dirent *dentry;
+
+ while ((dentry = readdir (dir)) != NULL)
+ {
+ if (dentry->d_name[0] != '.')
+ {
+ char *path = NULL;
+ char *extension;
+
+ path = babl_strcat (path, base_path);
+ path = babl_strcat (path, BABL_DIR_SEPARATOR);
+ path = babl_strcat (path, dentry->d_name);
+
+ if ((extension = strrchr (dentry->d_name, '.')) != NULL &&
+ !strcmp (extension, SHREXT))
+ {
+ babl_extension_load (path);
+ }
+
+ babl_free (path);
+ }
+ }
+ closedir (dir);
+ }
+}
+
+static char *
+expand_path (char *path)
+{
+ char *src;
+ char *dst;
+
+ dst = NULL;
+
+ src = path;
+
+ while (*src)
+ {
+ char *home;
+ switch (*src)
+ {
+ case '~':
+ home = getenv ("HOME");
+ if (NULL != home)
+ dst = babl_strcat (dst, home);
+ break;
+
+ default:
+ {
+ char tmp[2] = "?";
+ tmp[0] = *src;
+ dst = babl_strcat (dst, tmp);
+ }
+ }
+ src++;
+ }
+ return dst;
+}
+
+
+/* parse the provided colon seperated list of paths to search
+ */
+void
+babl_extension_load_dir_list (const char *dir_list)
+{
+ int eos = 0;
+ const char *src;
+ char *path, *dst;
+
+
+ path = babl_strdup (dir_list);
+ src = dir_list;
+ dst = path;
+
+ while (!eos)
+ {
+ switch (*src)
+ {
+ case '\0':
+ eos = 1;
+ /* don't break here, the path needs to be processed */
+
+ case BABL_PATH_SEPARATOR:
+ {
+ char *expanded_path = expand_path (path);
+ if (expanded_path) {
+ babl_extension_load_dir (expanded_path);
+ babl_free (expanded_path);
+ }
+ }
+ dst = path;
+ src++;
+ *dst = '\0';
+ break;
+
+ default:
+ *(dst++) = *(src++);
+ *dst = '\0';
+ break;
+ }
+ }
+ babl_free (path);
+}
+
+#endif
+
+
+static int
+babl_extension_destroy (void *data)
+{
+ Babl *babl = data;
+ if (babl->extension.destroy)
+ babl->extension.destroy ();
+ if (babl->extension.dl_handle)
+ dlclose (babl->extension.dl_handle);
+ return 0;
+}
+
+BABL_CLASS_IMPLEMENT (extension)
--- /dev/null
+/* babl - dynamically extendable universal pixel conversion library.
+ * Copyright (C) 2005-2008, Øyvind Kolås and others.
+ *
+ * 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 3 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, see
+ * <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef _BABL_EXTENSION_H
+#define _BABL_EXTENSION_H
+
+
+/****************************************************************/
+/* BablExtension */
+BABL_CLASS_DECLARE (extension);
+/*
+ * BablExtension objects are only used internally in babl.
+ */
+
+const Babl * babl_extension (const char *name);
+void babl_extension_load_dir_list (const char *dir_list);
+
+typedef struct
+{
+ BablInstance instance; /* path to .so / .dll is stored in instance name */
+ void *dl_handle;
+ void (*destroy) (void);
+} BablExtension;
+
+#endif
--- /dev/null
+/* babl - dynamically extendable universal pixel fish library.
+ * Copyright (C) 2005, Øyvind Kolås.
+ *
+ * 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 3 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, see
+ * <http://www.gnu.org/licenses/>.
+ */
+
+#include "config.h"
+#include <math.h>
+#include "babl-internal.h"
+#include "babl-ref-pixels.h"
+
+#define BABL_LEGAL_ERROR 0.000001
+#define BABL_MAX_COST_VALUE 2000000
+#define BABL_HARD_MAX_PATH_LENGTH 8
+#define BABL_MAX_NAME_LEN 1024
+
+#ifndef MIN
+#define MIN(a, b) (((a) > (b)) ? (b) : (a))
+#endif
+
+#define NUM_TEST_PIXELS (babl_get_num_path_test_pixels ())
+#define MAX_BUFFER_SIZE 1024 /* XXX: reasonable size for this should be profiled */
+
+
+int babl_in_fish_path = 0;
+
+typedef struct _FishPathInstrumentation
+{
+ const Babl *fmt_rgba_double;
+ int num_test_pixels;
+ void *source;
+ void *destination;
+ void *ref_destination;
+ double *destination_rgba_double;
+ double *ref_destination_rgba_double;
+ const Babl *fish_rgba_to_source;
+ const Babl *fish_reference;
+ const Babl *fish_destination_to_rgba;
+ double reference_cost;
+ int init_instrumentation_done;
+} FishPathInstrumentation;
+
+typedef struct PathContext {
+ Babl *fish_path;
+ Babl *to_format;
+ BablList *current_path;
+} PathContext;
+
+static void
+init_path_instrumentation (FishPathInstrumentation *fpi,
+ Babl *fmt_source,
+ Babl *fmt_destination);
+
+static void
+destroy_path_instrumentation (FishPathInstrumentation *fpi);
+
+static void
+get_path_instrumentation (FishPathInstrumentation *fpi,
+ BablList *path,
+ double *path_cost,
+ double *ref_cost,
+ double *path_error);
+
+
+static long
+process_conversion_path (BablList *path,
+ const void *source_buffer,
+ int source_bpp,
+ void *destination_buffer,
+ int dest_bpp,
+ long n);
+
+static void
+get_conversion_path (PathContext *pc,
+ Babl *current_format,
+ int current_length,
+ int max_length);
+
+static char *
+create_name (char *buf,
+ const Babl *source,
+ const Babl *destination,
+ int is_reference);
+
+static double legal_error (void);
+
+static int max_path_length (void);
+
+
+static double legal_error (void)
+{
+ static double error = 0.0;
+ const char *env;
+
+ if (error != 0.0)
+ return error;
+
+ env = getenv ("BABL_TOLERANCE");
+ if (env && env[0] != '\0')
+ error = babl_parse_double (env);
+ else
+ error = BABL_LEGAL_ERROR;
+ return error;
+}
+
+static int max_path_length (void)
+{
+ static int max_length = 0;
+ const char *env;
+
+ if (max_length != 0)
+ return max_length;
+
+ env = getenv ("BABL_PATH_LENGTH");
+ if (env)
+ max_length = atoi (env);
+ else
+ max_length = 4;
+ if (max_length > BABL_HARD_MAX_PATH_LENGTH)
+ max_length = BABL_HARD_MAX_PATH_LENGTH;
+ else if (max_length <= 0)
+ max_length = 1;
+ return max_length;
+}
+
+
+/* The task of BablFishPath construction is to compute
+ * the shortest path in a graph where formats are the vertices
+ * and conversions are the edges. However, there is an additional
+ * constraint to the shortest path, that limits conversion error
+ * introduced by such a path to be less than BABL_TOLERANCE. This
+ * prohibits usage of any reasonable shortest path construction
+ * algorithm such as Dijkstra's algorithm. The shortest path is
+ * constructed by enumerating all available paths that are less
+ * than BABL_PATH_LENGTH long, computing their costs and
+ * conversion errors and backtracking. The backtracking is
+ * implemented by recursive function get_conversion_path ().
+ */
+
+
+static void
+get_conversion_path (PathContext *pc,
+ Babl *current_format,
+ int current_length,
+ int max_length)
+{
+ if (current_length > max_length)
+ {
+ /* We have reached the maximum recursion
+ * depth, let's bail out */
+ return;
+ }
+ else if ((current_length > 0) && (current_format == pc->to_format))
+ {
+ /* We have found a candidate path, let's
+ * see about it's properties */
+ double path_cost = 0.0;
+ double ref_cost = 0.0;
+ double path_error = 1.0;
+ int i;
+
+ for (i = 0; i < babl_list_size (pc->current_path); i++)
+ {
+ path_error *= (1.0 + babl_conversion_error ((BablConversion *) pc->current_path->items[i]));
+ }
+
+ if (path_error - 1.0 <= legal_error ()) /* check this before the next;
+ which does a more accurate
+ measurement of the error */
+ {
+ FishPathInstrumentation fpi;
+ memset (&fpi, 0, sizeof (fpi));
+
+ fpi.source = (Babl*) babl_list_get_first (pc->current_path)->conversion.source;
+ fpi.destination = pc->to_format;
+
+ get_path_instrumentation (&fpi, pc->current_path, &path_cost, &ref_cost, &path_error);
+
+ if ((path_cost < ref_cost) && /* do not use paths that took longer to compute than reference */
+ (path_cost < pc->fish_path->fish_path.cost) &&
+ (path_error <= legal_error ()))
+ {
+ /* We have found the best path so far,
+ * let's copy it into our new fish */
+ pc->fish_path->fish_path.cost = path_cost;
+ pc->fish_path->fish.error = path_error;
+ babl_list_copy (pc->current_path,
+ pc->fish_path->fish_path.conversion_list);
+ }
+
+ destroy_path_instrumentation (&fpi);
+ }
+ }
+ else
+ {
+ /*
+ * Bummer, we have to search deeper...
+ */
+ BablList *list;
+ int i;
+
+
+ list = current_format->format.from_list;
+ if (list)
+ {
+ /* Mark the current format in conversion path as visited */
+ current_format->format.visited = 1;
+
+ /* Iterate through unvisited formats from the current format ...*/
+ for (i = 0; i < babl_list_size (list); i++)
+ {
+ Babl *next_conversion = BABL (list->items[i]);
+ Babl *next_format = BABL (next_conversion->conversion.destination);
+ if (!next_format->format.visited)
+ {
+ /* next_format is not in the current path, we can pay a visit */
+ babl_list_insert_last (pc->current_path, next_conversion);
+ get_conversion_path (pc, next_format, current_length + 1, max_length);
+ babl_list_remove_last (pc->current_path);
+ }
+ }
+
+ /* Remove the current format from current path */
+ current_format->format.visited = 0;
+ }
+ }
+}
+
+static char *
+create_name (char *buf,
+ const Babl *source,
+ const Babl *destination,
+ int is_reference)
+{
+ /* fish names are intentionally kept short */
+ snprintf (buf, BABL_MAX_NAME_LEN, "%s %p %p", "",
+ source, destination);
+ return buf;
+}
+
+static int
+babl_fish_path_destroy (void *data)
+{
+ Babl *babl=data;
+ if (babl->fish_path.conversion_list)
+ babl_free (babl->fish_path.conversion_list);
+ babl->fish_path.conversion_list = NULL;
+ return 0;
+}
+
+Babl *
+babl_fish_path (const Babl *source,
+ const Babl *destination)
+{
+ Babl *babl = NULL;
+ char name[BABL_MAX_NAME_LEN];
+
+ create_name (name, source, destination, 1);
+ babl = babl_db_exist_by_name (babl_fish_db (), name);
+ if (babl)
+ {
+ /* There is an instance already registered by the required name,
+ * returning the preexistent one instead.
+ */
+ return babl;
+ }
+
+ babl = babl_calloc (1, sizeof (BablFishPath) +
+ strlen (name) + 1);
+ babl_set_destructor (babl, babl_fish_path_destroy);
+
+ babl->class_type = BABL_FISH_PATH;
+ babl->instance.id = babl_fish_get_id (source, destination);
+ babl->instance.name = ((char *) babl) + sizeof (BablFishPath);
+ strcpy (babl->instance.name, name);
+ babl->fish.source = source;
+ babl->fish.destination = destination;
+ babl->fish.processings = 0;
+ babl->fish.pixels = 0;
+ babl->fish.error = BABL_MAX_COST_VALUE;
+ babl->fish_path.cost = BABL_MAX_COST_VALUE;
+ babl->fish_path.loss = BABL_MAX_COST_VALUE;
+ babl->fish_path.conversion_list = babl_list_init_with_size (BABL_HARD_MAX_PATH_LENGTH);
+
+ {
+ PathContext pc;
+ pc.current_path = babl_list_init_with_size (BABL_HARD_MAX_PATH_LENGTH);
+ pc.fish_path = babl;
+ pc.to_format = (Babl *) destination;
+
+ babl_mutex_lock (babl_format_mutex);
+ /* we hold a global lock whilerunning get_conversion_path since
+ * it depends on keeping the various format.visited members in
+ * a consistent state, this code path is not performance critical
+ * since created fishes are cached.
+ */
+ babl_in_fish_path++;
+
+ get_conversion_path (&pc, (Babl *) source, 0, max_path_length ());
+
+ babl_in_fish_path--;
+ babl_mutex_unlock (babl_format_mutex);
+ babl_free (pc.current_path);
+ }
+
+ if (babl_list_size (babl->fish_path.conversion_list) == 0)
+ {
+ babl_free (babl);
+ return NULL;
+ }
+
+ /* Since there is not an already registered instance by the required
+ * name, inserting newly created class into database.
+ */
+ babl_db_insert (babl_fish_db (), babl);
+ return babl;
+}
+
+static long
+babl_fish_path_process (Babl *babl,
+ const void *source,
+ void *destination,
+ long n)
+{
+ const Babl *babl_source = babl->fish.source;
+ const Babl *babl_dest = babl->fish.destination;
+ int source_bpp = 0;
+ int dest_bpp = 0;
+
+ switch (babl_source->instance.class_type)
+ {
+ case BABL_FORMAT:
+ source_bpp = babl_source->format.bytes_per_pixel;
+ break;
+ case BABL_TYPE:
+ source_bpp = babl_source->type.bits / 8;
+ break;
+ default:
+ babl_log ("=eeek{%i}\n", babl_source->instance.class_type - BABL_MAGIC);
+ }
+
+ switch (babl_dest->instance.class_type)
+ {
+ case BABL_FORMAT:
+ dest_bpp = babl_dest->format.bytes_per_pixel;
+ break;
+ case BABL_TYPE:
+ dest_bpp = babl_dest->type.bits / 8;
+ break;
+ default:
+ babl_log ("-eeek{%i}\n", babl_dest->instance.class_type - BABL_MAGIC);
+ }
+
+ return process_conversion_path (babl->fish_path.conversion_list,
+ source,
+ source_bpp,
+ destination,
+ dest_bpp,
+ n);
+
+}
+
+static long
+babl_fish_process (Babl *babl,
+ const void *source,
+ void *destination,
+ long n)
+{
+ long ret = 0;
+
+ switch (babl->class_type)
+ {
+ case BABL_FISH_REFERENCE:
+ if (babl->fish.source == babl->fish.destination)
+ { /* XXX: we're assuming linear buffers */
+ memcpy (destination, source, n * babl->fish.source->format.bytes_per_pixel);
+ ret = n;
+ }
+ else
+ {
+ ret = babl_fish_reference_process (babl, source, destination, n);
+ }
+ break;
+
+ case BABL_FISH_SIMPLE:
+ if (BABL (babl->fish_simple.conversion)->class_type == BABL_CONVERSION_LINEAR)
+ {
+ ret = babl_conversion_process (BABL (babl->fish_simple.conversion),
+ source, destination, n);
+ }
+ else
+ {
+ babl_fatal ("Cannot use a simple fish to process without a linear conversion");
+ }
+ break;
+
+ case BABL_FISH_PATH:
+ ret = babl_fish_path_process (babl, source, destination, n);
+ break;
+
+ default:
+ babl_log ("NYI");
+ ret = -1;
+ break;
+ }
+
+ return ret;
+}
+
+long
+babl_process (const Babl *cbabl,
+ const void *source,
+ void *destination,
+ long n)
+{
+ Babl *babl = (Babl*)cbabl;
+ babl_assert (babl);
+ babl_assert (source);
+ babl_assert (destination);
+ babl_assert (BABL_IS_BABL (babl));
+ if (n == 0)
+ return 0;
+ babl_assert (n > 0);
+
+ /* first check if it is a fish since that is our fast path */
+ if (babl->class_type >= BABL_FISH &&
+ babl->class_type <= BABL_FISH_PATH)
+ {
+ babl->fish.processings++;
+ babl->fish.pixels +=
+ babl_fish_process (babl, source, destination, n);
+ return n;
+ }
+
+ /* matches all conversion classes */
+ if (babl->class_type >= BABL_CONVERSION &&
+ babl->class_type <= BABL_CONVERSION_PLANAR)
+ return babl_conversion_process (babl, source, destination, n);
+
+ babl_fatal ("eek");
+ return -1;
+}
+
+#include <stdint.h>
+
+#define BABL_ALIGN 16
+static void inline *align_16 (unsigned char *ret)
+{
+ int offset = BABL_ALIGN - ((uintptr_t) ret) % BABL_ALIGN;
+ ret = ret + offset;
+ return ret;
+}
+
+static long
+process_conversion_path (BablList *path,
+ const void *source_buffer,
+ int source_bpp,
+ void *destination_buffer,
+ int dest_bpp,
+ long n)
+{
+ int conversions = babl_list_size (path);
+
+ if (conversions == 1)
+ {
+ babl_conversion_process (BABL (babl_list_get_first (path)),
+ source_buffer,
+ destination_buffer,
+ n);
+ }
+ else
+ {
+ long j;
+
+ void *temp_buffer = align_16 (alloca (MIN(n, MAX_BUFFER_SIZE) * sizeof (double) * 5 + 16));
+ void *temp_buffer2 = NULL;
+
+ if (conversions > 2)
+ {
+ /* We'll need one more auxiliary buffer */
+ temp_buffer2 = align_16 (alloca (MIN(n, MAX_BUFFER_SIZE) * sizeof (double) * 5 + 16));
+ }
+
+
+
+
+ for (j = 0; j < n; j+= MAX_BUFFER_SIZE)
+ {
+ long c = MIN (n - j, MAX_BUFFER_SIZE);
+ int i;
+
+ /* this is where the loop unrolling should happen */
+ void *aux1_buffer = temp_buffer;
+ void *aux2_buffer = NULL;
+ void *swap_buffer = NULL;
+ aux2_buffer = temp_buffer2;
+
+ /* The first conversion goes from source_buffer to aux1_buffer */
+ babl_conversion_process (babl_list_get_first (path),
+ (void*)(((unsigned char*)source_buffer) + (j * source_bpp)),
+ aux1_buffer,
+ c);
+
+ /* Process, if any, conversions between the first and the last
+ * conversion in the path, in a loop */
+ for (i = 1; i < conversions - 1; i++)
+ {
+ babl_conversion_process (path->items[i],
+ aux1_buffer,
+ aux2_buffer,
+ c);
+ /* Swap the auxiliary buffers */
+ swap_buffer = aux1_buffer;
+ aux1_buffer = aux2_buffer;
+ aux2_buffer = swap_buffer;
+ }
+
+ /* The last conversion goes from aux1_buffer to destination_buffer */
+ babl_conversion_process (babl_list_get_last (path),
+ aux1_buffer,
+ (void*)((unsigned char*)destination_buffer + (j * dest_bpp)),
+ c);
+ }
+ }
+
+ return n;
+}
+
+static void
+init_path_instrumentation (FishPathInstrumentation *fpi,
+ Babl *fmt_source,
+ Babl *fmt_destination)
+{
+ long ticks_start = 0;
+ long ticks_end = 0;
+
+ const double *test_pixels = babl_get_path_test_pixels ();
+
+ if (!fpi->fmt_rgba_double)
+ {
+ fpi->fmt_rgba_double = babl_format_new (
+ babl_model ("RGBA"),
+ babl_type ("double"),
+ babl_component ("R"),
+ babl_component ("G"),
+ babl_component ("B"),
+ babl_component ("A"),
+ NULL);
+ }
+
+ fpi->num_test_pixels = babl_get_num_path_test_pixels ();
+
+ fpi->fish_rgba_to_source = babl_fish_reference (fpi->fmt_rgba_double,
+ fmt_source);
+ fpi->fish_reference = babl_fish_reference (fmt_source,
+ fmt_destination);
+ fpi->fish_destination_to_rgba = babl_fish_reference (fmt_destination,
+ fpi->fmt_rgba_double);
+
+ fpi->source = babl_calloc (fpi->num_test_pixels,
+ fmt_source->format.bytes_per_pixel);
+ fpi->destination = babl_calloc (fpi->num_test_pixels,
+ fmt_destination->format.bytes_per_pixel);
+ fpi->ref_destination = babl_calloc (fpi->num_test_pixels,
+ fmt_destination->format.bytes_per_pixel);
+ fpi->destination_rgba_double = babl_calloc (fpi->num_test_pixels,
+ fpi->fmt_rgba_double->format.bytes_per_pixel);
+ fpi->ref_destination_rgba_double = babl_calloc (fpi->num_test_pixels,
+ fpi->fmt_rgba_double->format.bytes_per_pixel);
+
+ /* create sourcebuffer from testbuffer in the correct format */
+ babl_process (fpi->fish_rgba_to_source,
+ test_pixels, fpi->source, fpi->num_test_pixels);
+
+ /* calculate the reference buffer of how it should be */
+ ticks_start = babl_ticks ();
+ babl_process (fpi->fish_reference,
+ fpi->source, fpi->ref_destination, fpi->num_test_pixels);
+ ticks_end = babl_ticks ();
+ fpi->reference_cost = babl_process_cost (ticks_start, ticks_end);
+
+ /* transform the reference destination buffer to RGBA */
+ babl_process (fpi->fish_destination_to_rgba,
+ fpi->ref_destination, fpi->ref_destination_rgba_double, fpi->num_test_pixels);
+}
+
+static void
+destroy_path_instrumentation (FishPathInstrumentation *fpi)
+{
+ if (fpi->init_instrumentation_done)
+ {
+ babl_free (fpi->source);
+ babl_free (fpi->destination);
+ babl_free (fpi->destination_rgba_double);
+ babl_free (fpi->ref_destination);
+ babl_free (fpi->ref_destination_rgba_double);
+
+ /* nulify the flag for potential new search */
+ fpi->init_instrumentation_done = 0;
+ }
+}
+
+static void
+get_path_instrumentation (FishPathInstrumentation *fpi,
+ BablList *path,
+ double *path_cost,
+ double *ref_cost,
+ double *path_error)
+{
+ long ticks_start = 0;
+ long ticks_end = 0;
+
+ Babl *babl_source = fpi->source;
+ Babl *babl_destination = fpi->destination;
+
+ int source_bpp = 0;
+ int dest_bpp = 0;
+
+ switch (babl_source->instance.class_type)
+ {
+ case BABL_FORMAT:
+ source_bpp = babl_source->format.bytes_per_pixel;
+ break;
+ case BABL_TYPE:
+ source_bpp = babl_source->type.bits / 8;
+ break;
+ default:
+ babl_log ("=eeek{%i}\n", babl_source->instance.class_type - BABL_MAGIC);
+ }
+
+ switch (babl_destination->instance.class_type)
+ {
+ case BABL_FORMAT:
+ dest_bpp = babl_destination->format.bytes_per_pixel;
+ break;
+ case BABL_TYPE:
+ dest_bpp = babl_destination->type.bits / 8;
+ break;
+ default:
+ babl_log ("-eeek{%i}\n", babl_destination->instance.class_type - BABL_MAGIC);
+ }
+
+ if (!fpi->init_instrumentation_done)
+ {
+ /* this initialization can be done only once since the
+ * source and destination formats do not change during
+ * the search */
+ init_path_instrumentation (fpi, babl_source, babl_destination);
+ fpi->init_instrumentation_done = 1;
+ }
+
+ /* calculate this path's view of what the result should be */
+ ticks_start = babl_ticks ();
+ process_conversion_path (path, fpi->source, source_bpp, fpi->destination, dest_bpp, fpi->num_test_pixels);
+ ticks_end = babl_ticks ();
+ *path_cost = babl_process_cost (ticks_start, ticks_end);
+
+ /* transform the reference and the actual destination buffers to RGBA
+ * for comparison with each other
+ */
+ babl_process (fpi->fish_destination_to_rgba,
+ fpi->destination, fpi->destination_rgba_double, fpi->num_test_pixels);
+
+ *path_error = babl_rel_avg_error (fpi->destination_rgba_double,
+ fpi->ref_destination_rgba_double,
+ fpi->num_test_pixels * 4);
+
+#if 0
+ fpi->fish_rgba_to_source->fish.processings--;
+ fpi->fish_reference->fish.processings--;
+ fpi->fish_destination_to_rgba->fish.processings -= 2;
+
+ fpi->fish_rgba_to_source->fish.pixels -= fpi->num_test_pixels;
+ fpi->fish_reference->fish.pixels -= fpi->num_test_pixels;
+ fpi->fish_destination_to_rgba->fish.pixels -= 2 * fpi->num_test_pixels;
+#endif
+
+ *ref_cost = fpi->reference_cost;
+}
--- /dev/null
+/* babl - dynamically extendable universal pixel fish library.
+ * Copyright (C) 2005, Øyvind Kolås.
+ *
+ * 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 3 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, see
+ * <http://www.gnu.org/licenses/>.
+ */
+
+#include "config.h"
+#include "babl-internal.h"
+
+static Babl *
+assert_conversion_find (const void *source,
+ const void *destination)
+{
+ Babl *ret = babl_conversion_find (source, destination);
+
+ if (!ret)
+ babl_fatal ("failed, aborting");
+ return ret;
+}
+
+static char *
+create_name (const Babl *source,
+ const Babl *destination,
+ int is_reference)
+{
+ static char buf[1024];
+
+ /* fish names are intentionally kept short */
+ snprintf (buf, 1024, "%s %p %p",
+ is_reference ? "ref "
+ : "",
+ source, destination);
+ return buf;
+}
+
+
+Babl *
+babl_fish_reference (const Babl *source,
+ const Babl *destination)
+{
+ Babl *babl = NULL;
+ char *name = create_name (source, destination, 1);
+
+ babl = babl_db_exist_by_name (babl_fish_db (), name);
+ if (babl)
+ {
+ /* There is an instance already registered by the required name,
+ * returning the preexistent one instead.
+ */
+ return babl;
+ }
+
+ babl_assert (BABL_IS_BABL (source));
+ babl_assert (BABL_IS_BABL (destination));
+
+ babl_assert (source->class_type == BABL_FORMAT);
+ babl_assert (destination->class_type == BABL_FORMAT);
+
+ babl = babl_malloc (sizeof (BablFishReference) +
+ strlen (name) + 1);
+ babl->class_type = BABL_FISH_REFERENCE;
+ babl->instance.id = babl_fish_get_id (source, destination);
+ babl->instance.name = ((char *) babl) + sizeof (BablFishReference);
+ strcpy (babl->instance.name, name);
+ babl->fish.source = source;
+ babl->fish.destination = destination;
+
+ babl->fish.processings = 0;
+ babl->fish.pixels = 0;
+ babl->fish.error = 0.0; /* assuming the provided reference conversions for types
+ and models are as exact as possible
+ */
+
+ /* Since there is not an already registered instance by the required
+ * name, inserting newly created class into database.
+ */
+ babl_db_insert (babl_fish_db (), babl);
+ return babl;
+}
+
+
+static void
+convert_to_double (BablFormat *source_fmt,
+ const char *source_buf,
+ char *source_double_buf,
+ int n)
+{
+ int i;
+
+ BablImage *src_img;
+ BablImage *dst_img;
+
+ src_img = (BablImage *) babl_image_new (
+ babl_component_from_id (BABL_LUMINANCE), NULL, 1, 0, NULL);
+ dst_img = (BablImage *) babl_image_new (
+ babl_component_from_id (BABL_LUMINANCE), NULL, 1, 0, NULL);
+
+ dst_img->type[0] = (BablType *) babl_type_from_id (BABL_DOUBLE);
+ dst_img->pitch[0] =
+ (dst_img->type[0]->bits / 8) * source_fmt->model->components;
+ dst_img->stride[0] = 0;
+
+
+ src_img->data[0] = (char *)source_buf;
+ src_img->type[0] = (BablType *) babl_type_from_id (BABL_DOUBLE);
+ src_img->pitch[0] = source_fmt->bytes_per_pixel;
+ src_img->stride[0] = 0;
+
+ /* i is source position */
+ for (i = 0; i < source_fmt->components; i++)
+ {
+ int j;
+
+ src_img->type[0] = source_fmt->type[i];
+ /* j is source position */
+ for (j = 0; j < source_fmt->model->components; j++)
+ {
+ if (source_fmt->component[i] ==
+ source_fmt->model->component[j])
+ {
+ dst_img->data[0] =
+ source_double_buf + (dst_img->type[0]->bits / 8) * j;
+
+ babl_process (assert_conversion_find (src_img->type[0],
+ dst_img->type[0]),
+ src_img, dst_img, n);
+ break;
+ }
+ }
+
+ src_img->data[0] += src_img->type[0]->bits / 8;
+ }
+ babl_free (src_img);
+ babl_free (dst_img);
+}
+
+
+static void
+convert_from_double (BablFormat *destination_fmt,
+ char *destination_double_buf,
+ char *destination_buf,
+ int n)
+{
+ int i;
+
+ BablImage *src_img;
+ BablImage *dst_img;
+
+ src_img = (BablImage *) babl_image_new (
+ babl_component_from_id (BABL_LUMINANCE), NULL, 1, 0, NULL);
+ dst_img = (BablImage *) babl_image_new (
+ babl_component_from_id (BABL_LUMINANCE), NULL, 1, 0, NULL);
+
+ src_img->type[0] = (BablType *) babl_type_from_id (BABL_DOUBLE);
+ src_img->pitch[0] = (src_img->type[0]->bits / 8) * destination_fmt->model->components;
+ src_img->stride[0] = 0;
+
+ dst_img->data[0] = destination_buf;
+ dst_img->type[0] = (BablType *) babl_type_from_id (BABL_DOUBLE);
+ dst_img->pitch[0] = destination_fmt->bytes_per_pixel;
+ dst_img->stride[0] = 0;
+
+ for (i = 0; i < destination_fmt->components; i++)
+ {
+ int j;
+
+ dst_img->type[0] = destination_fmt->type[i];
+
+ for (j = 0; j < destination_fmt->model->components; j++)
+ {
+ if (destination_fmt->component[i] ==
+ destination_fmt->model->component[j])
+ {
+ src_img->data[0] =
+ destination_double_buf + (src_img->type[0]->bits / 8) * j;
+
+ babl_process (assert_conversion_find (src_img->type[0],
+ dst_img->type[0]),
+ src_img, dst_img, n);
+ break;
+ }
+ }
+
+ dst_img->data[0] += dst_img->type[0]->bits / 8;
+ }
+ babl_free (src_img);
+ babl_free (dst_img);
+}
+
+
+static void
+ncomponent_convert_to_double (BablFormat *source_fmt,
+ char *source_buf,
+ char *source_double_buf,
+ int n)
+{
+ BablImage *src_img;
+ BablImage *dst_img;
+
+ src_img = (BablImage *) babl_image_new (
+ babl_component_from_id (BABL_LUMINANCE), NULL, 1, 0, NULL);
+ dst_img = (BablImage *) babl_image_new (
+ babl_component_from_id (BABL_LUMINANCE), NULL, 1, 0, NULL);
+
+ dst_img->type[0] = (BablType *) babl_type_from_id (BABL_DOUBLE);
+ dst_img->pitch[0] = (dst_img->type[0]->bits / 8);
+ dst_img->stride[0] = 0;
+
+ src_img->data[0] = source_buf;
+ src_img->type[0] = source_fmt->type[0];
+ src_img->pitch[0] = source_fmt->type[0]->bits / 8;
+ src_img->stride[0] = 0;
+
+ dst_img->data[0] = source_double_buf;
+
+ babl_process (
+ assert_conversion_find (src_img->type[0], dst_img->type[0]),
+ src_img, dst_img,
+ n * source_fmt->components);
+ babl_free (src_img);
+ babl_free (dst_img);
+}
+
+static void
+ncomponent_convert_from_double (BablFormat *destination_fmt,
+ char *destination_double_buf,
+ char *destination_buf,
+ int n)
+{
+ BablImage *src_img;
+ BablImage *dst_img;
+
+ src_img = (BablImage *) babl_image_new (
+ babl_component_from_id (BABL_LUMINANCE), NULL, 1, 0, NULL);
+ dst_img = (BablImage *) babl_image_new (
+ babl_component_from_id (BABL_LUMINANCE), NULL, 1, 0, NULL);
+
+ src_img->type[0] = (BablType *) babl_type_from_id (BABL_DOUBLE);
+ src_img->pitch[0] = (src_img->type[0]->bits / 8);
+ src_img->stride[0] = 0;
+
+ dst_img->data[0] = destination_buf;
+ dst_img->type[0] = (BablType *) babl_type_from_id (BABL_DOUBLE);
+ dst_img->pitch[0] = destination_fmt->type[0]->bits/8;
+ dst_img->stride[0] = 0;
+
+ dst_img->type[0] = destination_fmt->type[0];
+ src_img->data[0] = destination_double_buf;
+
+ babl_process (
+ assert_conversion_find (src_img->type[0], dst_img->type[0]),
+ src_img, dst_img,
+ n * destination_fmt->components);
+
+ dst_img->data[0] += dst_img->type[0]->bits / 8;
+ babl_free (src_img);
+ babl_free (dst_img);
+}
+
+
+static int
+process_to_n_component (const Babl *babl,
+ const char *source,
+ char *destination,
+ long n)
+{
+ void *double_buf;
+#ifndef MAX
+#define MAX(a, b) ((a) > (b) ? (a) : (b))
+#endif
+ int components = MAX(BABL (babl->fish.source)->format.model->components,
+ BABL (babl->fish.source)->format.components);
+ components = MAX(components, BABL (babl->fish.destination)->format.components);
+ components = MAX(components, BABL (babl->fish.destination)->model.components);
+
+ double_buf = babl_malloc (sizeof (double) * n * components);
+ memset (double_buf, 0,sizeof (double) * n * components);
+
+ {
+ ncomponent_convert_to_double (
+ (BablFormat *) BABL (babl->fish.source),
+ (char *) source,
+ double_buf,
+ n
+ );
+
+ ncomponent_convert_from_double (
+ (BablFormat *) BABL (babl->fish.destination),
+ double_buf,
+ (char *) destination,
+ n
+ );
+ }
+
+ babl_free (double_buf);
+ return 0;
+}
+
+
+static int
+process_same_model (const Babl *babl,
+ const char *source,
+ char *destination,
+ long n)
+{
+ void *double_buf;
+#define MAX(a, b) ((a) > (b) ? (a) : (b))
+
+ double_buf = babl_malloc (sizeof (double) * n *
+ MAX (BABL (babl->fish.source)->format.model->components,
+ BABL (babl->fish.source)->format.components));
+#undef MAX
+
+ if ((BABL (babl->fish.source)->format.components ==
+ BABL (babl->fish.destination)->format.components)
+ && (BABL (babl->fish.source)->format.model->components !=
+ BABL (babl->fish.source)->format.components))
+ {
+ ncomponent_convert_to_double (
+ (BablFormat *) BABL (babl->fish.source),
+ (char *) source,
+ double_buf,
+ n
+ );
+
+ ncomponent_convert_from_double (
+ (BablFormat *) BABL (babl->fish.destination),
+ double_buf,
+ (char *) destination,
+ n
+ );
+ }
+ else
+ {
+ convert_to_double (
+ (BablFormat *) BABL (babl->fish.source),
+ (char *) source,
+ double_buf,
+ n
+ );
+
+ convert_from_double (
+ (BablFormat *) BABL (babl->fish.destination),
+ double_buf,
+ (char *) destination,
+ n
+ );
+ }
+ babl_free (double_buf);
+ return 0;
+}
+
+long
+babl_fish_reference_process (const Babl *babl,
+ const char *source,
+ char *destination,
+ long n)
+{
+ void *source_double_buf;
+ void *rgba_double_buf;
+ void *destination_double_buf;
+ Babl *source_image;
+ Babl *rgba_image;
+ Babl *destination_image;
+
+
+ if (BABL (babl->fish.source)->format.model ==
+ BABL (babl->fish.destination)->format.model)
+ return process_same_model (babl, source, destination, n);
+
+ if (babl_format_is_format_n (BABL (babl->fish.destination)))
+ {
+ return process_to_n_component (babl, source, destination, n);
+ }
+
+
+
+ source_double_buf = babl_malloc (sizeof (double) * n *
+ BABL (babl->fish.source)->format.model->components);
+ rgba_double_buf = babl_malloc (sizeof (double) * n * 4);
+ destination_double_buf = babl_malloc (sizeof (double) * n *
+ BABL (babl->fish.destination)->format.model->components);
+
+ source_image = babl_image_from_linear (
+ source_double_buf, BABL (BABL ((babl->fish.source))->format.model));
+ rgba_image = babl_image_from_linear (
+ rgba_double_buf, babl_model_from_id (BABL_RGBA));
+ destination_image = babl_image_from_linear (
+ destination_double_buf, BABL (BABL ((babl->fish.destination))->format.model));
+
+ convert_to_double (
+ (BablFormat *) BABL (babl->fish.source),
+ source,
+ source_double_buf,
+ n
+ );
+
+ {
+ Babl *conv =
+ assert_conversion_find (
+ BABL (babl->fish.source)->format.model,
+ babl_model_from_id (BABL_RGBA)
+ );
+ if (conv->class_type == BABL_CONVERSION_PLANAR)
+ {
+ babl_process (
+ conv,
+ source_image, rgba_image,
+ n);
+ }
+ else if (conv->class_type == BABL_CONVERSION_LINEAR)
+ {
+ babl_process (
+ conv,
+ source_double_buf, rgba_double_buf,
+ n);
+ }
+ else babl_fatal ("oops");
+ }
+
+ {
+ Babl *conv =
+ assert_conversion_find (
+ babl_model_from_id (BABL_RGBA),
+ BABL (babl->fish.destination)->format.model);
+ if (conv->class_type == BABL_CONVERSION_PLANAR)
+ {
+ babl_process (
+ conv,
+ rgba_image, destination_image,
+ n);
+ }
+ else if (conv->class_type == BABL_CONVERSION_LINEAR)
+ {
+ babl_process (
+ conv,
+ rgba_double_buf, destination_double_buf,
+ n);
+ }
+ else babl_fatal ("oops");
+ }
+
+ convert_from_double (
+ (BablFormat *) BABL (babl->fish.destination),
+ destination_double_buf,
+ destination,
+ n
+ );
+
+ babl_free (source_image);
+ babl_free (rgba_image);
+ babl_free (destination_image);
+
+ babl_free (destination_double_buf);
+ babl_free (rgba_double_buf);
+ babl_free (source_double_buf);
+ return n;
+}
+
--- /dev/null
+/* babl - dynamically extendable universal pixel fish library.
+ * Copyright (C) 2005, Øyvind Kolås.
+ *
+ * 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 3 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, see
+ * <http://www.gnu.org/licenses/>.
+ */
+
+#include "config.h"
+#include "babl-internal.h"
+
+static char *
+create_name (BablConversion *conversion)
+{
+ return conversion->instance.name;
+}
+
+Babl *
+babl_fish_simple (BablConversion *conversion)
+{
+ Babl *babl = NULL;
+ char *name;
+
+ babl_assert (BABL_IS_BABL (conversion));
+
+ name = create_name (conversion);
+ babl = babl_db_exist_by_name (babl_fish_db (), name);
+ if (babl)
+ {
+ /* There is an instance already registered by the required name,
+ * returning the preexistent one instead.
+ */
+ return babl;
+ }
+
+ babl = babl_malloc (sizeof (BablFishSimple) +
+ strlen (name) + 1);
+ babl->class_type = BABL_FISH_SIMPLE;
+ babl->instance.id = babl_fish_get_id (conversion->source, conversion->destination);
+ babl->instance.name = ((char *) babl) + sizeof (BablFishSimple);
+ strcpy (babl->instance.name, name);
+ babl->fish.source = conversion->source;
+ babl->fish.destination = conversion->destination;
+
+ babl->fish.processings = 0;
+ babl->fish.pixels = 0;
+ babl->fish_simple.conversion = conversion;
+ babl->fish.error = 0.0;/* babl fish simple should only be used by bablfish
+ reference, and babl fish reference only requests clean
+ conversions */
+
+ /* Since there is not an already registered instance by the required
+ * name, inserting newly created class into database.
+ */
+ babl_db_insert (babl_fish_db (), babl);
+ return babl;
+}
--- /dev/null
+/* babl - dynamically extendable universal pixel fish library.
+ * Copyright (C) 2005, Øyvind Kolås.
+ *
+ * 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 3 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, see
+ * <http://www.gnu.org/licenses/>.
+ */
+
+#include "config.h"
+#include "babl-internal.h"
+
+static FILE *output_file = NULL;
+static int qux = 0;
+
+static char *utf8_bar[] = { " ", "·", "▁", "▂", "▃", "▄", "▅", "▆", "▇", "█" };
+/*
+static char *utf8_bar[]= {"!","▁","▃","▅","▇","█","!","!","!"};
+static char *utf8_bar[]={"·", "█", "▇", "▆", "▅", "▄", "▃", "▂", "▁", };
+static char *utf8_bar[]={" ","1","2","3","4","5","6","7","8"};
+*/
+
+static double sum_pixels = 0.0;
+
+static int
+table_destination_sum_each (Babl *babl,
+ void *userdata)
+{
+ const Babl *source = userdata;
+ const Babl *destination = babl;
+
+ if (source != destination)
+ {
+ const Babl *fish = babl_fish (source, destination);
+ babl_assert (fish);
+ sum_pixels += fish->fish.pixels;
+ }
+ return 0;
+}
+
+static int
+table_source_sum_each (Babl *babl,
+ void *userdata)
+{
+ babl_format_class_for_each (table_destination_sum_each, babl);
+ return 0;
+}
+
+static void
+table_sum_processings_calc (void)
+{
+ sum_pixels = 0;
+ babl_format_class_for_each (table_source_sum_each, NULL);
+}
+
+#define LIMIT 0.03
+
+static int
+table_destination_each (Babl *babl,
+ void *userdata)
+{
+ Babl *source = userdata;
+ Babl *destination = babl;
+
+ qux++;
+ if (qux % babl_formats_count () == qux / babl_formats_count ())
+ fprintf (output_file, "<td class='cell'> </td>");
+ else
+ {
+ const Babl *fish = babl_fish (source, destination);
+
+ babl_assert (fish);
+
+
+ switch (fish->class_type)
+ {
+ case BABL_FISH_PATH:
+
+ fprintf (output_file, "<td class='cell'%s><a href='javascript:o()'>%s",
+ fish->fish.pixels / sum_pixels > LIMIT ? " style='background-color: #69f'" : "",
+ utf8_bar[babl_list_size (fish->fish_path.conversion_list)]);
+
+ {
+ int i;
+ fprintf (output_file, "<div class='tooltip'>");
+ fprintf (output_file, "<h3><span class='g'>path</span> %s <span class='g'>to</span> %s</h3>", source->instance.name, destination->instance.name);
+ if (fish->fish.processings > 0)
+ {
+ fprintf (output_file, "<span class='g'>Processings:</span>%i<br/>", fish->fish.processings);
+ fprintf (output_file, "<span class='g'>Pixels:</span>%li<br/>", fish->fish.pixels);
+ }
+ fprintf (output_file, "<table>\n");
+
+ fprintf (output_file, "<tr>");
+ fprintf (output_file, "<td><em>conversion</em></td>");
+ fprintf (output_file, "<td style='text-align:right'><em>cost</em></td>");
+ fprintf (output_file, "<td style='text-align:right'><em>error</em></td>");
+ fprintf (output_file, "</tr>");
+
+ for (i = 0; i < babl_list_size (fish->fish_path.conversion_list); i++)
+ {
+ fprintf (output_file, "<tr>");
+ fprintf (output_file, "<td>%s</td>", BABL (fish->fish_path.conversion_list->items[i])->instance.name);
+ fprintf (output_file, "<td class='r'>%li</td>",
+ babl_conversion_cost (&BABL (fish->fish_path.conversion_list->items[i])->conversion));
+ fprintf (output_file, "<td class='r'>%e</td>",
+ babl_conversion_error (&BABL (fish->fish_path.conversion_list->items[i])->conversion));
+ fprintf (output_file, "</tr>");
+ }
+
+ fprintf (output_file, "<tr>");
+ fprintf (output_file, "<td><em>total</em></td>");
+ fprintf (output_file, "<td class='r'><em>%3.0f</em></td>", fish->fish_path.cost);
+ fprintf (output_file, "<td class='r'><em>%e</em></td>", fish->fish.error);
+ fprintf (output_file, "</tr>");
+ fprintf (output_file, "</table>");
+ fprintf (output_file, "</div>");
+ }
+ fprintf (output_file, "</a></td>\n");
+ break;
+
+ case BABL_FISH_REFERENCE:
+ fprintf (output_file, "<td class='cell'%s><a href='javascript:o()'> ",
+ fish->fish.pixels / sum_pixels > LIMIT ? " style='background-color: #f99'" : "");
+ fprintf (output_file, "<div class='tooltip'>");
+ fprintf (output_file, "<h3><span class='g'>Reference</span> %s <span class='g'>to</span> %s</h3>", source->instance.name, destination->instance.name);
+
+ if (fish->fish.processings > 1)
+ {
+ fprintf (output_file, "<span class='g'>Processings:</span>%i<br/>", fish->fish.processings);
+ fprintf (output_file, "<span class='g'>Pixels:</span>%li<br/>", fish->fish.pixels);
+ }
+ fprintf (output_file, "</div>");
+ fprintf (output_file, "</a></td>\n");
+ break;
+
+ case BABL_FISH_SIMPLE:
+ fprintf (output_file, "<td class='cell'%s><a href='javascript:o()'>·",
+ fish->fish.pixels / sum_pixels > LIMIT ? " style='background-color: #69f'" : "");
+ fprintf (output_file, "<div class='tooltip'>");
+ fprintf (output_file, "<h3><span class='g'>Simple</span> %s <span class='g'>to</span> %s</h3>", source->instance.name, destination->instance.name);
+
+
+ fprintf (output_file, "%s<br/>", BABL (fish->fish_simple.conversion)->instance.name);
+ fprintf (output_file, "<span class='g'>cost:</span> %li<br/>", babl_conversion_cost ((fish->fish_simple.conversion)));
+ fprintf (output_file, "<span class='g'>error:</span> %e<br/>", babl_conversion_error ((fish->fish_simple.conversion)));
+
+ if (fish->fish.processings > 0)
+ {
+ fprintf (output_file, "<span class='g'>Processings:</span>%i<br/>", fish->fish.processings);
+ fprintf (output_file, "<span class='g'>Pixels:</span>%li<br/>", fish->fish.pixels);
+ }
+ fprintf (output_file, "</div>");
+ fprintf (output_file, "</a></td>\n");
+ break;
+
+ default:
+ babl_fatal ("Unknown fish type");
+ break;
+ }
+ }
+ return 0;
+}
+
+static int source_no = 0;
+
+
+
+static int
+table_source_each (Babl *babl,
+ void *userdata)
+{
+ char expanded_name[512];
+ const char *s;
+ char *d;
+
+ s = babl->instance.name;
+ d = &expanded_name[0];
+
+ while (*s)
+ {
+ switch (*s)
+ {
+ case ' ':
+ *(d++) = '&';
+ *(d++) = 'n';
+ *(d++) = 'b';
+ *(d++) = 's';
+ *(d++) = 'p';
+ *(d++) = ';';
+ *(d) = '\0';
+ s++;
+ break;
+
+ default:
+ *(d++) = *(s++);
+ *(d) = '\0';
+ break;
+ }
+ }
+
+ fprintf (output_file, "<tr>");
+ fprintf (output_file, "<td class='format_name'><a href='javascript:o();'>%s", expanded_name);
+ {
+ int i;
+
+ fprintf (output_file, "<div class='tooltip' id='format_%p'>", babl);
+ fprintf (output_file, "<h3>%s</h3>", babl->instance.name);
+
+ fprintf (output_file, "<dl>");
+ fprintf (output_file, "<dt>bytes/pixel</dt><dd>%i</dd>", babl->format.bytes_per_pixel);
+ fprintf (output_file, "<dt>model</dt><dd>%s</dd>", BABL (babl->format.model)->instance.name);
+ fprintf (output_file, "<dt>loss</dt><dd>%f</dd>", babl_format_loss (babl));
+ fprintf (output_file, "<dt>planar</dt><dd>%d</dd>", babl->format.planar);
+ fprintf (output_file, "<dt>components</dt><dd><table class='nopad'>");
+
+ for (i = 0; i < babl->format.components; i++)
+ {
+ fprintf (output_file, "<tr><td class='type'>%s</td><td class='component'>%s</td></tr>",
+ BABL (babl->format.type[i])->instance.name,
+ BABL (babl->format.component[i])->instance.name);
+ }
+ fprintf (output_file, "</table></dd></dl>");
+
+ fprintf (output_file, "</div>\n");
+ }
+
+ fprintf (output_file, "</a></td>");
+ babl_format_class_for_each (table_destination_each, babl);
+ fprintf (output_file, "</tr>\n");
+ source_no++;
+ return 0;
+}
+
+/* copied from babl-fish-path.c */
+#define BABL_LEGAL_ERROR 0.000001
+static double legal_error (void)
+{
+ static double error = 0.0;
+ const char *env;
+
+ if (error != 0.0)
+ return error;
+
+ env = getenv ("BABL_TOLERANCE");
+ if (env && env[0] != '\0')
+ error = babl_parse_double (env);
+ else
+ error = BABL_LEGAL_ERROR;
+ return error;
+}
+
+static int
+each_conv (Babl *babl,
+ void *data)
+{
+ double error, cost;
+
+ if (BABL (babl->conversion.source)->class_type != BABL_FORMAT)
+ return 0;
+
+ error = babl_conversion_error (&babl->conversion);
+ cost = babl_conversion_cost (&babl->conversion);
+
+ if (error > legal_error ())
+ {
+ fprintf (output_file, "<dt style='background-color: #fcc;'>%s</dt>", babl->instance.name);
+ fprintf (output_file, "<dd style='background-color: #fcc;'>");
+ }
+ else
+ {
+ fprintf (output_file, "<dt>%s</dt><dd>", babl->instance.name);
+ }
+ fprintf (output_file, "<em>error:</em> %f <em>cost:</em> %4.0f <em>processings:</em> %i <em>pixels:</em> %li", error, cost,
+ babl->conversion.processings, babl->conversion.pixels);
+ fprintf (output_file, "</dd>");
+
+ return 0;
+}
+
+static void
+conversions (void)
+{
+ fprintf (output_file, "<h2>Conversions</h2><dl>\n");
+ babl_conversion_class_for_each (each_conv, NULL);
+ fprintf (output_file, "</dl>\n");
+}
+
+
+
+void
+babl_fish_stats (FILE *file)
+{
+ output_file = file;
+
+ table_sum_processings_calc ();
+ fprintf (output_file,
+ "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n"
+ "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n"
+ "<html>\n"
+ "<head>\n"
+ "<title>BablFishPath introspection</title>\n"
+ "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">\n"
+ "<style type='text/css'>"
+ " body {"
+ " font-family: sans;"
+ " margin-left: 1em;"
+ " }"
+ " .cell {"
+ " overflow : none;"
+ " height: 1em;"
+ " font-family: monospace;"
+ " border: 1px solid #eee;"
+ " padding: 0;"
+ " margin : 0;"
+ "}"
+ ".cell>a {"
+ " text-decoration: none;"
+ " color: black;"
+ " cursor: help;"
+ "}"
+ "div.tooltip {"
+ " border: 0.2em solid black;"
+ " padding-top: 1em;"
+ " padding-right: 2em;"
+ " display: none;"
+ " padding-left: 2em;"
+ " padding-bottom: 3em;"
+ " background-color: white;"
+ " background-repeat: no-repeat;"
+ " background-image: url(graphics/babl-48x48.png);"
+ " background-position: bottom right;"
+ " color: black;"
+ "}"
+ " .cell>a:hover {"
+ " background-color: black;"
+ " color: white;"
+ "}"
+ " .format_name {"
+ " height: 1em;"
+ " background-color: #eee;"
+ " padding-right: 0.5em;"
+ " padding-left: 0.5em;"
+ " border-bottom: 1px solid #fff;"
+ "}"
+ " .format_name>a {"
+ " text-decoration: none;"
+ " color: blue;"
+ " cursor: help;"
+ " }"
+ " .format_name>a:hover {"
+ " background-color: blue;"
+ " color: white;"
+ " }"
+
+ "a:hover>div.tooltip {"
+ " display: block;"
+ " position: fixed;"
+ " bottom: 0;"
+ " right: 0;"
+ "}"
+
+ "td.component {"
+ " background-color: #060;"
+ " padding-left: 0.5em;"
+ " padding-top: 0.1em;"
+ " padding-bottom: 0.1em;"
+ " overflow: hidden;"
+ " width: 4em;"
+ " color: white;"
+ " border: 1px solid white;"
+ "}"
+ "td.type {"
+ " background-color: #006;"
+ " padding-left: 0.5em;"
+ " padding-top: 0.1em;"
+ " padding-bottom: 0.1em;"
+ " overflow: hidden;"
+ " width: 4em;"
+ " color: white;"
+ " border: 1px solid white;"
+ "}"
+ ".g {"
+ " color: gray;"
+ "}"
+ ".r {"
+ " text-align: right;"
+ "}"
+
+ "</style>"
+
+ "<script type='text/javascript'>"
+ "var tick_count=0;"
+ "function o ()"
+ "{"
+ " tick_count++;"
+ " if (tick_count == 11)"
+ " alert(\"«The mind is it's own place,\\nand in itself can make a heaven of hell;\\na hell of heaven.»\\n--Milton\");"
+ " else if (tick_count == 42)"
+ " alert(\"«So long and thanks for all the fish.»\\n--Adams\");"
+ "}"
+ "</script>"
+
+
+ "</head>\n");
+
+ fprintf (output_file, "<body>\n");
+
+ fprintf (output_file, "<h1>BablFishPath introspection</h1>");
+ fprintf (output_file, "<p>Instrumentation and pathlengths.</p>");
+
+ fprintf (output_file, "<table cellspacing='0'><tr><td>Source format</td><td colspan='32'>Destination formats</td></tr>\n");
+
+ babl_format_class_for_each (table_source_each, NULL);
+
+ fprintf (output_file, "</table>");
+
+ fprintf (output_file, "<div style='height:20em'></div>\n");
+
+ conversions ();
+
+ fprintf (output_file, "</body></html>\n");
+}
+
--- /dev/null
+/* babl - dynamically extendable universal pixel fish library.
+ * Copyright (C) 2005, Øyvind Kolås.
+ *
+ * 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 3 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, see
+ * <http://www.gnu.org/licenses/>.
+ */
+
+#include "config.h"
+#define NEEDS_BABL_DB
+#include "babl-internal.h"
+#include "babl-db.h"
+#include <stddef.h>
+#include <string.h>
+#include <stdarg.h>
+
+typedef struct _BablFindFish BablFindFish;
+
+typedef struct _BablFindFish
+{
+ Babl *fish_path;
+ Babl *fish_ref;
+ Babl *fish_fish;
+ int fishes;
+ const Babl *source;
+ const Babl *destination;
+} _BablFishFish;
+
+
+static int
+match_conversion (Babl *conversion,
+ void *inout);
+
+static int
+find_fish_path (Babl *item,
+ void *data);
+
+static int
+find_memcpy_fish (Babl *item,
+ void *data);
+
+static int
+find_fish_path (Babl *item,
+ void *data)
+{
+ BablFindFish *ffish = (BablFindFish *) data;
+ if ((item->fish.source == ffish->source) &&
+ (item->fish.destination == ffish->destination))
+ {
+ if (item->instance.class_type == BABL_FISH_REFERENCE)
+ {
+ ffish->fish_ref = item;
+ ffish->fishes++;
+ }
+ else if (item->instance.class_type == BABL_FISH_PATH)
+ {
+ ffish->fish_path = item;
+ ffish->fishes++;
+ }
+ else if (item->instance.class_type == BABL_FISH)
+ {
+ ffish->fish_fish = item;
+ ffish->fishes++;
+ }
+ if (ffish->fishes == 3)
+ return 1;
+ }
+
+ return 0;
+}
+
+static int
+find_memcpy_fish (Babl *item,
+ void *data)
+{
+ BablFindFish *ffish = (BablFindFish *) data;
+ if ((item->fish.source == ffish->source) &&
+ (item->fish.destination == ffish->destination))
+ {
+ if ((item->fish.source == item->fish.destination) &&
+ (item->instance.class_type == BABL_FISH_REFERENCE))
+ {
+ ffish->fish_ref = item;
+ return 1;
+ }
+ }
+
+ return 0;
+}
+
+static int
+match_conversion (Babl *conversion,
+ void *inout)
+{
+ void **data = inout;
+
+ if ((Babl *) conversion->conversion.destination == (Babl *) *data)
+ {
+ *data = (void *) conversion;
+ return 1;
+ }
+ return 0;
+}
+
+Babl *
+babl_conversion_find (const void *source,
+ const void *destination)
+{
+ void *data = (void*)destination;
+
+ babl_list_each (BABL (source)->type.from_list, match_conversion, &data);
+ if (data == (void*)destination) /* didn't change */
+ return NULL;
+ return data;
+}
+
+int
+babl_fish_get_id (const Babl *source,
+ const Babl *destination)
+{
+ /* value of 'id' will be used as argument for hash function,
+ * substraction serves as simple combination of
+ * source/destination values. */
+ ptrdiff_t id = source - destination;
+ /* instances with id 0 won't be inserted into database */
+ if (id == 0)
+ id = 1;
+ return id;
+}
+
+const Babl *
+babl_fish (const void *source,
+ const void *destination)
+{
+ const Babl *source_format = NULL;
+ const Babl *destination_format = NULL;
+
+ babl_assert (source);
+ babl_assert (destination);
+
+ if (BABL_IS_BABL (source))
+ source_format = source;
+
+ if (!source_format)
+ source_format = babl_format ((char *) source);
+
+ if (!source_format)
+ {
+ babl_log ("args=(%p, %p) source format invalid", source, destination);
+ return NULL;
+ }
+
+ if (BABL_IS_BABL (destination))
+ destination_format = destination;
+
+ if (!destination_format)
+ destination_format = babl_format ((char *) destination);
+
+ if (!destination_format)
+ {
+ babl_log ("args=(%p, %p) destination format invalid", source, destination);
+ return NULL;
+ }
+
+ {
+ int hashval;
+ BablHashTable *id_htable;
+ BablFindFish ffish = {(Babl *) NULL,
+ (Babl *) NULL,
+ (Babl *) NULL,
+ 0,
+ (Babl *) NULL,
+ (Babl *) NULL};
+
+ /* some vendor compilers can't compile non-constant elements of
+ * compound struct initializers
+ */
+ ffish.source = source_format;
+ ffish.destination = destination_format;
+
+ id_htable = (babl_fish_db ())->id_hash;
+ hashval = babl_hash_by_int (id_htable, babl_fish_get_id (source_format, destination_format));
+
+ if (source_format == destination_format)
+ {
+ /* In the case of equal source and destination formats
+ * we will search through the fish database for reference fish
+ * to handle the memcpy */
+ babl_hash_table_find (id_htable, hashval, find_memcpy_fish, (void *) &ffish);
+ }
+ else
+ {
+ /* In the case of different source and destination formats
+ * we will search through the fish database for appropriate fish path
+ * to handle the conversion. In the case that preexistent
+ * fish path is found, we'll return it. In the case BABL_FISH
+ * instance with the same source/destination is found, we'll
+ * return reference fish.
+ * In the case neither fish path nor BABL_FISH path are found,
+ * we'll try to construct new fish path for requested
+ * source/destination. In the case new fish path is found, we'll
+ * return it, otherwise we'll create dummy BABL_FISH instance and
+ * insert it into the fish database to indicate non-existent fish
+ * path.
+ */
+ babl_hash_table_find (id_htable, hashval, find_fish_path, (void *) &ffish);
+
+ if (ffish.fish_path)
+ {
+ /* we have found suitable fish path in the database */
+ return ffish.fish_path;
+ }
+ if (!ffish.fish_fish)
+ {
+ /* we haven't tried to search for suitable path yet */
+ Babl *fish_path = babl_fish_path (source_format, destination_format);
+
+ if (fish_path)
+ {
+ return fish_path;
+ }
+ else
+ {
+ /* there isn't a suitable path for requested formats,
+ * let's create a dummy BABL_FISH instance and insert
+ * it into the fish database to indicate that such path
+ * does not exist.
+ */
+ char *name = "X"; /* name does not matter */
+ Babl *fish = babl_calloc (1, sizeof (BablFish) + strlen (name) + 1);
+
+ fish->class_type = BABL_FISH;
+ fish->instance.id = babl_fish_get_id (source_format, destination_format);
+ fish->instance.name = ((char *) fish) + sizeof (BablFish);
+ strcpy (fish->instance.name, name);
+ fish->fish.source = source_format;
+ fish->fish.destination = destination_format;
+ babl_db_insert (babl_fish_db (), fish);
+ }
+ }
+ }
+
+ if (ffish.fish_ref)
+ {
+ /* we have already found suitable reference fish */
+ return ffish.fish_ref;
+ }
+ else
+ {
+ /* we have to create new reference fish */
+ return babl_fish_reference (source_format, destination_format);
+ }
+ }
+}
+
+BABL_CLASS_MINIMAL_IMPLEMENT (fish);
--- /dev/null
+/* babl - dynamically extendable universal pixel conversion library.
+ * Copyright (C) 2005-2008, Øyvind Kolås and others.
+ *
+ * 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 3 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, see
+ * <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef _BABL_FISH_H
+#define _BABL_FISH_H
+
+
+/****************************************************************/
+/* BablFish */
+BABL_CLASS_DECLARE (fish);
+
+/* BablFish, common base class for various fishes.
+ */
+typedef struct
+{
+ BablInstance instance;
+ const Babl *source;
+ const Babl *destination;
+
+ double error; /* the amount of noise introduced by the fish */
+
+ /* instrumentation */
+ int processings; /* number of times the fish has been used */
+ long pixels; /* number of pixels translates */
+ long usecs; /* usecs spent within this fish */
+} BablFish;
+
+/* BablFishSimple is the simplest type of fish, wrapping a single
+ * conversion function, (note this might not be the optimal chosen
+ * conversion even if it exists)
+ *
+ * TODO: exterminate
+ */
+typedef struct
+{
+ BablFish fish;
+ BablConversion *conversion;
+} BablFishSimple;
+
+
+/* BablFishPath is a combination of registered conversions, both
+ * from the reference types / model conversions, and optimized format to
+ * format conversion.
+ *
+ * This is the most advanced scheduled species of fish, some future
+ * version of babl might even be evovling path fishes in a background
+ * thread, based on the fish instrumentation. For this to work in a future
+ * version transmogrification between the fish classes would be used.
+ */
+typedef struct
+{
+ BablFish fish;
+ double cost; /* number of ticks *10 + chain_length */
+ double loss; /* error introduced */
+ BablList *conversion_list;
+} BablFishPath;
+
+/* BablFishReference
+ *
+ * A BablFishReference is not intended to be fast, thus the algorithm
+ * encoded can use a multi stage approach, based on the knowledge babl
+ * has encoded in the pixel formats.
+ *
+ * One of the contributions that would be welcome are new fish factories.
+ *
+ * TODO:
+ * * make optimal use of a single allocation containing enough space
+ * for the maximum amount of memory needed in two adjecant buffers
+ * at any time.
+ */
+typedef struct
+{
+ BablFish fish;
+} BablFishReference;
+
+#endif
--- /dev/null
+/* babl - dynamically extendable universal pixel conversion library.
+ * Copyright (C) 2005, Øyvind Kolås.
+ *
+ * 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 3 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, see
+ * <http://www.gnu.org/licenses/>.
+ */
+
+#include "config.h"
+#include <string.h>
+#include <stdarg.h>
+#include <math.h>
+
+#define NEEDS_BABL_DB
+#include "babl-internal.h"
+#include "babl-db.h"
+#include "babl-ref-pixels.h"
+
+static int babl_format_destruct (void *babl)
+{
+ BablFormat *format = babl;
+ if (format->image_template != NULL)
+ {
+ babl_set_destructor (format->image_template, NULL);
+ /* with no destructor set, the circular reference is no problem */
+ babl_free (format->image_template);
+ format->image_template = NULL;
+ }
+ if (format->from_list)
+ babl_free (format->from_list);
+ return 0;
+}
+
+static Babl *
+format_new (const char *name,
+ int id,
+ int planar,
+ int components,
+ BablModel *model,
+ BablComponent **component,
+ BablSampling **sampling,
+ const BablType **type)
+{
+ Babl *babl;
+
+ /* i is destination position */
+ int i, j, component_found = 0;
+ for (i = 0; i < model->components; i++)
+ {
+ for (j = 0; j < components; j++)
+ {
+ if (component[j] == model->component[i])
+ {
+ component_found = 1;
+ break;
+ }
+ }
+ if (!component_found)
+ {
+ component_found = 0;
+#if 0 /* since babl does the right thing, let it happen */
+ babl_fatal("matching source component for %s in model %s not found",
+ model->component[i]->instance.name, model->instance.name);
+#endif
+ }
+ }
+
+ /* allocate all memory in one chunk */
+ babl = babl_malloc (sizeof (BablFormat) +
+ strlen (name) + 1 +
+ sizeof (BablComponent *) * (components) +
+ sizeof (BablSampling *) * (components) +
+ sizeof (BablType *) * (components) +
+ sizeof (int) * (components) +
+ sizeof (int) * (components));
+ babl_set_destructor (babl, babl_format_destruct);
+
+ babl->format.from_list = NULL;
+ babl->format.component = (void *) (((char *) babl) + sizeof (BablFormat));
+ babl->format.type = (void *) (((char *) babl->format.component) + sizeof (BablComponent *) * (components));
+ babl->format.sampling = (void *) (((char *) babl->format.type) + sizeof (BablType *) * (components));
+ babl->instance.name = ((char *) babl->format.sampling) + sizeof (BablSampling *) * (components);
+
+ babl->class_type = BABL_FORMAT;
+ babl->instance.id = id;
+
+ strcpy (babl->instance.name, name);
+
+ babl->format.model = model;
+ babl->format.components = components;
+
+ memcpy (babl->format.component, component, sizeof (BablComponent *) * components);
+ memcpy (babl->format.type, type, sizeof (BablType *) * components);
+ memcpy (babl->format.sampling, sampling, sizeof (BablSampling *) * components);
+
+ babl->format.planar = planar;
+
+ babl->format.bytes_per_pixel = 0;
+ {
+ int i;
+ for (i = 0; i < components; i++)
+ babl->format.bytes_per_pixel += type[i]->bits / 8;
+ }
+
+ babl->format.loss = -1.0;
+ babl->format.visited = 0;
+ babl->format.image_template = NULL;
+ babl->format.format_n = 0;
+ babl->format.palette = 0;
+
+ return babl;
+}
+
+
+static char *
+create_name (const BablModel *model,
+ int components,
+ BablComponent **component,
+ const BablType **type)
+{
+ char buf[512] = "";
+ char *p = &buf[0];
+ int i;
+ int same_types = 1;
+ const BablType**t = type;
+ const BablType *first_type = *type;
+ BablComponent **c1 = component;
+ BablComponent **c2 = model->component;
+
+
+ sprintf (p, "%s ", model->instance.name);
+ p += strlen (model->instance.name) + 1;
+
+ i = components;
+ while (i--)
+ {
+ if (first_type != *t)
+ {
+ same_types = 0;
+ break;
+ }
+ t++;
+ }
+
+ if (same_types &&
+ components != model->components)
+ same_types = 0;
+
+ i = components;
+ while (same_types && i--)
+ {
+ if (*c1 != *c2)
+ {
+ same_types = 0;
+ break;
+ }
+ c1++;
+ c2++;
+ }
+
+
+ if (same_types)
+ {
+ sprintf (p, "%s", first_type->instance.name);
+ return babl_strdup (buf);
+ }
+
+ i = components;
+
+ while (i--)
+ {
+ sprintf (p, "(%s as %s) ",
+ (*component)->instance.name,
+ (*type)->instance.name);
+ p += strlen ((*component)->instance.name) +
+ strlen ((*type)->instance.name) + strlen ("( as ) ");
+ component++;
+ type++;
+ }
+ return babl_strdup (buf);
+}
+
+
+static char *
+ncomponents_create_name (const Babl *type,
+ int components)
+{
+ char buf[512];
+ sprintf (buf, "%s[%i] ", type->instance.name, components);
+ return babl_strdup (buf);
+}
+
+static void
+babl_format_set_is_format_n (Babl *format)
+{
+ if (format->class_type == BABL_FORMAT)
+ {
+ format->format.format_n = 1;
+ }
+}
+
+const Babl *
+babl_format_n (const Babl *btype,
+ int components)
+{
+ int i;
+ Babl *babl;
+ int id = 0;
+ int planar = 0;
+ BablModel *model = (BablModel *)babl_model ("Y");
+ BablComponent *component [components];
+ BablSampling *sampling [components];
+ const BablType *type [components];
+ char *name = NULL;
+
+ for (i = 0; i<components; i++)
+ {
+ component[i] = model->component[0];
+ type[i] = &btype->type;
+ sampling[i] = (BablSampling *) babl_sampling (1, 1);
+ }
+
+ name = ncomponents_create_name (btype, components);
+ babl = babl_db_exist (db, id, name);
+ if (babl)
+ {
+ /* There is an instance already registered by the required id/name,
+ * returning the preexistent one instead.
+ */
+ babl_free (name);
+ return babl;
+ }
+
+ babl = format_new (name,
+ id,
+ planar, components, model,
+ component, sampling, type);
+
+ babl_format_set_is_format_n (babl);
+
+ babl_db_insert (db, babl);
+ babl_free (name);
+ return babl;
+}
+
+int
+babl_format_is_format_n (const Babl *format)
+{
+ if (format->class_type == BABL_FORMAT)
+ {
+ return format->format.format_n;
+ }
+
+ return 0;
+}
+
+
+static int
+is_format_duplicate (Babl *babl,
+ int planar,
+ int components,
+ BablModel *model,
+ BablComponent **component,
+ BablSampling **sampling,
+ const BablType **type)
+{
+ int i;
+
+ if (babl->format.planar != planar ||
+ babl->format.components != components ||
+ babl->format.model != model)
+ return 0;
+
+ for (i = 0; i < components; i++)
+ {
+ if (babl->format.component[i] != component[i] ||
+ babl->format.sampling[i] != sampling[i] ||
+ babl->format.type[i] != type[i])
+ return 0;
+ }
+ return 1;
+}
+
+const Babl *
+babl_format_new (const void *first_arg,
+ ...)
+{
+ va_list varg;
+ Babl *babl;
+ int id = 0;
+ int planar = 0;
+ int components = 0;
+ BablModel *model = NULL;
+ BablComponent *component [BABL_MAX_COMPONENTS];
+ BablSampling *sampling [BABL_MAX_COMPONENTS];
+ const BablType*type [BABL_MAX_COMPONENTS];
+
+ BablSampling *current_sampling = (BablSampling *) babl_sampling (1, 1);
+ BablType *current_type = (BablType *) babl_type_from_id (BABL_DOUBLE);
+ char *name = NULL;
+ const void *arg = first_arg;
+
+ va_start (varg, first_arg);
+
+ while (1)
+ {
+ /* first, we assume arguments to be strings */
+ if (!strcmp (arg, "id"))
+ {
+ id = va_arg (varg, int);
+ }
+
+ else if (!strcmp (arg, "name"))
+ {
+ name = babl_strdup (va_arg (varg, char *));
+ }
+
+ else if (!strcmp (arg, "packed"))
+ {
+ planar = 0;
+ }
+
+ else if (!strcmp (arg, "planar"))
+ {
+ planar = 1;
+ }
+
+ /* if we didn't point to a known string, we assume argument to be babl */
+ else if (BABL_IS_BABL (arg))
+ {
+ Babl *babl = (Babl *) arg;
+
+ switch (babl->class_type)
+ {
+ case BABL_TYPE:
+ case BABL_TYPE_FLOAT:
+ case BABL_TYPE_INTEGER:
+ current_type = (BablType *) babl;
+ break;
+
+ case BABL_COMPONENT:
+ if (!model)
+ {
+ babl_fatal ("no model specified before component %s",
+ babl->instance.name);
+ }
+ component [components] = (BablComponent *) babl;
+ type [components] = current_type;
+ sampling [components] = current_sampling;
+ components++;
+
+ if (components >= BABL_MAX_COMPONENTS)
+ {
+ babl_fatal ("maximum number of components (%i) exceeded for %s",
+ BABL_MAX_COMPONENTS, name);
+ }
+ break;
+
+ case BABL_SAMPLING:
+ current_sampling = (BablSampling *) arg;
+ break;
+
+ case BABL_MODEL:
+ if (model)
+ {
+ babl_log ("args=(%s): model %s already requested",
+ babl->instance.name, model->instance.name);
+ }
+ model = (BablModel *) arg;
+ break;
+
+ case BABL_INSTANCE:
+ case BABL_FORMAT:
+ case BABL_CONVERSION:
+ case BABL_CONVERSION_LINEAR:
+ case BABL_CONVERSION_PLANE:
+ case BABL_CONVERSION_PLANAR:
+ case BABL_FISH:
+ case BABL_FISH_REFERENCE:
+ case BABL_FISH_SIMPLE:
+ case BABL_FISH_PATH:
+ case BABL_IMAGE:
+ case BABL_EXTENSION:
+ babl_log ("%s unexpected",
+ babl_class_name (babl->class_type));
+ break;
+
+ case BABL_SKY: /* shut up compiler */
+ break;
+ }
+ }
+
+ else
+ {
+ babl_fatal ("unhandled argument '%s' for format '%s'", arg, name);
+ }
+
+ arg = va_arg (varg, char *);
+ if (!arg)
+ break;
+ }
+
+ va_end (varg);
+
+ if (!name)
+ name = create_name (model, components, component, type);
+
+ if (!model)
+ {
+ babl_log ("no model specified for format '%s'", name);
+ babl_free(name);
+ return NULL;
+ }
+
+ if (!components)
+ {
+ babl_log ("no components specified for format '%s'", name);
+ babl_free(name);
+ return NULL;
+ }
+
+ babl = babl_db_exist (db, id, name);
+ if (id && !babl && babl_db_exist (db, 0, name))
+ babl_fatal ("Trying to reregister BablFormat '%s' with different id!", name);
+
+ if (babl)
+ {
+ /* There is an instance already registered by the required id/name,
+ * returning the preexistent one instead if it doesn't differ.
+ */
+ if (!is_format_duplicate (babl, planar, components, model,
+ component, sampling, type))
+ babl_fatal ("BablFormat '%s' already registered "
+ "with different content!", name);
+
+ babl_free (name);
+ return babl;
+ }
+
+ babl = format_new (name,
+ id,
+ planar, components, model,
+ component, sampling, type);
+
+ babl_db_insert (db, babl);
+ babl_free (name);
+ return babl;
+}
+
+int
+babl_formats_count (void)
+{
+ return babl_db_count (db);
+}
+
+int
+babl_format_has_alpha (const Babl *format)
+{
+ int n = babl_format_get_n_components (format);
+ int i;
+
+ for (i = 0; i < n; i++)
+ {
+ if (format->format.component[i]->alpha)
+ {
+ return 1;
+ }
+ }
+
+ return 0;
+}
+
+int
+babl_format_get_bytes_per_pixel (const Babl *format)
+{
+ if (format->class_type == BABL_FORMAT)
+ {
+ return format->format.bytes_per_pixel;
+ }
+
+ return 0;
+}
+
+int
+babl_format_get_n_components (const Babl *format)
+{
+ if (format->class_type == BABL_FORMAT)
+ {
+ return format->format.components;
+ }
+
+ return 0;
+}
+
+const Babl *
+babl_format_get_type (const Babl *format,
+ int component_index)
+{
+ if (format->class_type == BABL_FORMAT &&
+ component_index >= 0 &&
+ component_index < format->format.components)
+ {
+ return (Babl *)format->format.type[component_index];
+ }
+
+ return NULL;
+}
+
+const Babl *
+babl_format_with_model_as_type (const Babl *model,
+ const Babl *type)
+{
+ BablComponent *component[10];
+ int i;
+
+ for (i = 0; i < model->model.components; i++)
+ {
+ component[i] = model->model.component[i];
+ }
+ component[i] = NULL;
+
+ return babl_format_new (
+ model,
+ type,
+ component[0],
+ component[1],
+ component[2],
+ component[3],
+ component[4],
+ component[5],
+ component[6],
+ component[7],
+ component[8],
+ component[9],
+ NULL
+ );
+}
+
+double
+babl_format_loss (const Babl *babl)
+{
+ double loss = 0.0;
+ void *original;
+ double *clipped;
+ void *destination;
+ double *transformed;
+
+ const Babl *ref_fmt;
+ const Babl *fmt;
+ Babl *fish_to;
+ Babl *fish_from;
+
+ const double *test = babl_get_format_test_pixels ();
+ const int test_pixels = babl_get_num_format_test_pixels ();
+
+ ref_fmt = babl_format_new (
+ babl_model ("RGBA"),
+ babl_type ("double"),
+ babl_component ("R"),
+ babl_component ("G"),
+ babl_component ("B"),
+ babl_component ("A"),
+ NULL);
+
+ if (babl->format.loss != -1.0)
+ return babl->format.loss;
+
+ fmt = babl;
+ fish_to = babl_fish_reference (ref_fmt, fmt);
+ fish_from = babl_fish_reference (fmt, ref_fmt);
+
+ original = babl_calloc (test_pixels, fmt->format.bytes_per_pixel);
+ clipped = babl_calloc (test_pixels, ref_fmt->format.bytes_per_pixel);
+ destination = babl_calloc (test_pixels, fmt->format.bytes_per_pixel);
+ transformed = babl_calloc (test_pixels, ref_fmt->format.bytes_per_pixel);
+
+ babl_process (fish_to, test, original, test_pixels);
+ babl_process (fish_from, original, clipped, test_pixels);
+ babl_process (fish_to, clipped, destination, test_pixels);
+ babl_process (fish_from, destination, transformed, test_pixels);
+
+ loss = babl_rel_avg_error (clipped, test, test_pixels * 4);
+
+ fish_to->fish.processings -= 2;
+ fish_from->fish.processings -= 2;
+ fish_to->fish.pixels -= test_pixels * 2;
+ fish_from->fish.pixels -= test_pixels * 2;
+
+ babl_free (original);
+ babl_free (clipped);
+ babl_free (destination);
+ babl_free (transformed);
+
+ ((Babl*)babl)->format.loss = loss;
+ return loss;
+}
+
+
+void *
+babl_get_user_data (const Babl *babl)
+{
+ switch (babl->instance.class_type)
+ {
+ case BABL_MODEL:
+ return babl->model.data;
+ case BABL_FORMAT:
+ return babl->format.model->data;
+ default:
+ babl_fatal ("babl_get_user_data called on non-model/format");
+ }
+ babl_fatal ("eeeek");
+ return NULL;
+}
+
+void
+babl_set_user_data (const Babl *cbabl, void *data)
+{
+ Babl *babl = (Babl*) cbabl;
+ switch (cbabl->instance.class_type)
+ {
+ case BABL_MODEL:
+ babl->model.data = data;
+ break;
+ case BABL_FORMAT:
+ babl->format.model->data = data;
+ break;
+ default:
+ babl_fatal ("babl_set_user_data called on non-model/format");
+ }
+}
+
+const Babl *
+babl_format_get_model (const Babl *format)
+{
+ if (format->class_type == BABL_FORMAT)
+ {
+ return (Babl*)format->format.model;
+ }
+ return NULL;
+}
+
+BABL_CLASS_IMPLEMENT (format)
+
+
--- /dev/null
+/* babl - dynamically extendable universal pixel conversion library.
+ * Copyright (C) 2005-2008, Øyvind Kolås and others.
+ *
+ * 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 3 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, see
+ * <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef _BABL_FORMAT_H
+#define _BABL_FORMAT_H
+
+BABL_CLASS_DECLARE (format);
+
+typedef struct
+{
+ BablInstance instance;
+ BablList *from_list;
+ int components;
+ BablComponent **component;
+ BablType **type;
+ void *model_data;
+ void *image_template; /* image template for use with
+ linear (non-planer) images */
+
+ BablSampling **sampling;
+ BablModel *model;
+ int bytes_per_pixel;
+ int planar;
+ double loss; /*< average relative error when converting
+ from and to RGBA double */
+ int visited; /* for convenience in code while searching
+ for conversion paths */
+ int format_n; /* whether the format is a format_n type or not */
+ int palette;
+} BablFormat;
+
+#endif
--- /dev/null
+/* babl - dynamically extendable universal pixel conversion library.
+ * Copyright (C) 2005, Øyvind Kolås.
+ *
+ * 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 3 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, see
+ * <http://www.gnu.org/licenses/>.
+ */
+
+/* Implementation of hash table data structure based on coalesced hashing.
+ * Copyright (C) 2008, Jan Heller
+ */
+
+#include "config.h"
+#include "babl-internal.h"
+
+#define BABL_HASH_TABLE_INITIAL_MASK 0x1FF /* 511 */
+
+/* static functions declarations */
+static inline int
+hash_insert (BablHashTable *htab,
+ Babl *item);
+
+static void
+hash_rehash (BablHashTable *htab);
+
+
+int
+babl_hash_by_str (BablHashTable *htab,
+ const char *str)
+{
+ int hash = 0;
+
+ while (*str)
+ {
+ hash += *str++;
+ hash += (hash << 10);
+ hash ^= (hash >> 6);
+ }
+ hash += (hash << 3);
+ hash ^= (hash >> 11);
+ hash += (hash << 15);
+
+ return (hash & htab->mask);
+}
+
+int
+babl_hash_by_int (BablHashTable *htab,
+ int id)
+{
+ int hash = 0;
+ int i;
+
+ for (i = 0; i < sizeof (int); i++)
+ {
+ hash += id & 0xFF;
+ hash += (hash << 10);
+ hash ^= (hash >> 6);
+ id >>= 8;
+ }
+ hash += (hash << 3);
+ hash ^= (hash >> 11);
+ hash += (hash << 15);
+
+ return (hash & htab->mask);
+}
+
+static inline int
+hash_insert (BablHashTable *htab,
+ Babl *item)
+{
+ int hash = htab->hash_func(htab, item);
+
+ if (htab->data_table[hash] == NULL)
+ {
+ /* create new chain */
+ htab->data_table[hash] = item;
+ }
+ else
+ {
+ int it, oit, cursor = 0;
+
+ while ((cursor < (htab->mask + 1)) && (htab->data_table[cursor] != NULL))
+ ++cursor;
+
+ htab->data_table[cursor] = item;
+
+ for (oit = hash, it = htab->chain_table[oit]; it != -1; oit = it, it = htab->chain_table[oit])
+ ;
+ htab->chain_table[oit] = cursor;
+ }
+
+ htab->count++;
+ return 0;
+}
+
+static void
+hash_rehash (BablHashTable *htab)
+{
+ Babl *item;
+ int i;
+ BablHashTable *nhtab = babl_calloc (sizeof (BablHashTable), 1);
+
+ nhtab->data_table = NULL;
+ nhtab->chain_table = NULL;
+ nhtab->mask = (htab->mask << 1) + 1;
+ nhtab->count = 0;
+ nhtab->hash_func = htab->hash_func;
+ nhtab->find_func = htab->find_func;
+ if (nhtab->mask)
+ {
+ nhtab->data_table = babl_calloc (sizeof (BablInstance *), babl_hash_table_size(nhtab));
+ nhtab->chain_table = babl_malloc (sizeof (int) * babl_hash_table_size(nhtab));
+ memset (nhtab->chain_table, -1, sizeof (int) * babl_hash_table_size(nhtab));
+ }
+
+ for (i = 0; i < babl_hash_table_size (htab); i++)
+ {
+ item = htab->data_table[i];
+ babl_hash_table_insert (nhtab, item);
+ }
+
+ htab->mask = nhtab->mask;
+ babl_free (htab->data_table);
+ babl_free (htab->chain_table);
+ htab->data_table = nhtab->data_table;
+ htab->chain_table = nhtab->chain_table;
+ babl_free (nhtab);
+}
+
+int
+babl_hash_table_size (BablHashTable *htab)
+{
+ return htab->mask + 1;
+}
+
+
+static int
+babl_hash_table_destroy (void *data)
+{
+ BablHashTable *htab = data;
+ babl_free (htab->data_table);
+ babl_free (htab->chain_table);
+ return 0;
+}
+
+
+BablHashTable *
+babl_hash_table_init (BablHashValFunction hfunc,
+ BablHashFindFunction ffunc)
+{
+ BablHashTable *htab;
+
+ babl_assert(hfunc);
+ babl_assert(ffunc);
+
+ htab = babl_calloc (sizeof (BablHashTable), 1);
+ babl_set_destructor (htab, babl_hash_table_destroy);
+
+ htab->data_table = NULL;
+ htab->chain_table = NULL;
+ htab->mask = BABL_HASH_TABLE_INITIAL_MASK;
+ htab->count = 0;
+ htab->hash_func = hfunc;
+ htab->find_func = ffunc;
+ if (htab->mask)
+ {
+ htab->data_table = babl_calloc (sizeof (BablInstance *), babl_hash_table_size(htab));
+ htab->chain_table = babl_malloc (sizeof (int) * babl_hash_table_size(htab));
+ memset (htab->chain_table, -1, sizeof (int) * babl_hash_table_size(htab));
+ }
+
+ return htab;
+}
+
+int
+babl_hash_table_insert (BablHashTable *htab,
+ Babl *item)
+{
+ babl_assert (htab);
+ babl_assert (BABL_IS_BABL(item));
+
+ if (babl_hash_table_size (htab) < htab->count + 1)
+ hash_rehash (htab);
+ return hash_insert (htab, item);
+}
+
+Babl *
+babl_hash_table_find (BablHashTable *htab,
+ int hash,
+ BablHashFindFunction find_func,
+ void *data)
+{
+ int it;
+ Babl *item;
+
+ babl_assert (htab);
+
+ it = hash;
+ item = htab->data_table[it];
+
+ if (!item)
+ return NULL;
+
+ for (;;)
+ {
+ if (find_func)
+ {
+ if (find_func (item, data))
+ return item;
+ }
+ else if (htab->find_func (item, data))
+ return item;
+ it = htab->chain_table[it];
+ if (it == -1)
+ break;
+ item = htab->data_table[it];
+ }
+
+ return NULL;
+}
+
--- /dev/null
+/* babl - dynamically extendable universal pixel conversion library.
+ * Copyright (C) 2005, Øyvind Kolås.
+ *
+ * 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 3 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, see
+ * <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef _BABL_HASH_TABLE_H
+#define _BABL_HASH_TABLE_H
+
+#ifndef _BABL_H
+#error babl-hash-table.h is only to be included after babl.h
+#endif
+
+
+typedef struct _BablHashTable BablHashTable;
+
+typedef int (*BablHashValFunction) (BablHashTable *htab, Babl *item);
+typedef int (*BablHashFindFunction) (Babl *item, void *data);
+
+typedef struct _BablHashTable
+{
+ Babl **data_table;
+ int *chain_table;
+ int mask;
+ int count;
+ BablHashValFunction hash_func;
+ BablHashFindFunction find_func;
+} _BablHashTable;
+
+
+BablHashTable *
+babl_hash_table_init (BablHashValFunction hfunc,
+ BablHashFindFunction ffunc);
+
+int
+babl_hash_by_str (BablHashTable *htab,
+ const char *str);
+
+int
+babl_hash_by_int (BablHashTable *htab,
+ int id);
+
+int
+babl_hash_table_size (BablHashTable *htab);
+
+int
+babl_hash_table_insert (BablHashTable *htab,
+ Babl *item);
+
+Babl *
+babl_hash_table_find (BablHashTable *htab,
+ int hash,
+ BablHashFindFunction find_func,
+ void *data);
+
+#endif
--- /dev/null
+/* babl - dynamically extendable universal pixel conversion library.
+ * Copyright (C) 2005, Øyvind Kolås.
+ *
+ * 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 3 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, see
+ * <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef _BABL_IDS_H
+#define _BABL_IDS_H
+
+enum {
+ BABL_UNDEFINED = 0,
+ BABL_TYPE_BASE = 100,
+ BABL_U8,
+ BABL_U16,
+ BABL_U32,
+ BABL_HALF,
+ BABL_FLOAT,
+ BABL_DOUBLE,
+ BABL_HALF_FLOAT,
+
+ BABL_U8_LUMA,
+ BABL_U8_CHROMA,
+ BABL_U16_CIE_L,
+ BABL_U16_CIE_AB,
+ BABL_U8_CIE_L,
+ BABL_U8_CIE_AB,
+ BABL_TYPE_LAST_INTERNAL,
+
+ BABL_MODEL_BASE = 1000,
+ BABL_GRAY,
+ BABL_GRAY_ALPHA,
+ BABL_GRAY_ALPHA_PREMULTIPLIED,
+ BABL_RGB,
+ BABL_RGBA,
+ BABL_RGBA_PREMULTIPLIED,
+ BABL_GRAY_GAMMA_2_2,
+ BABL_GRAY_GAMMA_2_2_ALPHA,
+ BABL_GRAY_GAMMA_2_2_ALPHA_PREMULTIPLIED,
+ BABL_RGB_GAMMA_2_2,
+ BABL_RGBA_GAMMA_2_2,
+ BABL_RGBA_GAMMA_2_2_PREMULTIPLIED,
+ BABL_YCBCR,
+ BABL_YCBCR_ALPHA,
+ BABL_CIE_LAB,
+ BABL_CIE_LAB_ALPHA,
+ BABL_MODEL_LAST_INTERNAL,
+
+ BABL_COMPONENT_BASE = 10000,
+ BABL_LUMINANCE,
+ BABL_LUMINANCE_MUL_ALPHA,
+ BABL_RED,
+ BABL_GREEN,
+ BABL_BLUE,
+ BABL_ALPHA,
+ BABL_RED_MUL_ALPHA,
+ BABL_GREEN_MUL_ALPHA,
+ BABL_BLUE_MUL_ALPHA,
+ BABL_LUMA,
+ BABL_LUMA_MUL_ALPHA,
+ BABL_RED_GAMMA_2_2,
+ BABL_GREEN_GAMMA_2_2,
+ BABL_BLUE_GAMMA_2_2,
+ BABL_RED_GAMMA_2_2_MUL_ALPHA,
+ BABL_GREEN_GAMMA_2_2_MUL_ALPHA,
+ BABL_BLUE_GAMMA_2_2_MUL_ALPHA,
+
+
+ BABL_X,
+ BABL_Y,
+ BABL_Z,
+ BABL_CIE_L,
+ BABL_CIE_A,
+ BABL_CIE_B,
+ BABL_CB,
+ BABL_CR,
+ BABL_PADDING,
+ BABL_COMPONENT_LAST_INTERNAL,
+
+ BABL_FORMAT_BASE = 100000,
+ BABL_SRGB,
+ BABL_SRGBA,
+ BABL_RGB_HALF,
+ BABL_RGBA_HALF,
+ BABL_RGB_FLOAT,
+ BABL_RGBA_FLOAT,
+ BABL_RGBA_DOUBLE,
+ BABL_LAB_FLOAT,
+ BABL_LAB_U16,
+ BABL_LAB_U8,
+ BABL_RGB_U8,
+ BABL_RGBA_U8,
+ BABL_RGBA_U16,
+ BABL_CMYK_HALF,
+ BABL_CMYK_FLOAT,
+ BABL_CMYK_ALPHA_FLOAT,
+ BABL_CMYK_ALPHA_HALF,
+ BABL_YCBCR411,
+ BABL_YCBCR422,
+ BABL_YCBCR420,
+ BABL_FORMAT_LAST_INTERNAL,
+
+ BABL_PIXEL_USER_BASE
+};
+
+
+#endif
+
+
+
--- /dev/null
+/* babl - dynamically extendable universal pixel conversion library.
+ * Copyright (C) 2005, Øyvind Kolås.
+ *
+ * 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 3 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, see
+ * <http://www.gnu.org/licenses/>.
+ */
+
+#include "config.h"
+#include <string.h>
+#include <stdarg.h>
+
+#include "babl-internal.h"
+
+static int babl_image_destruct (void *babl)
+{
+ BablFormat *format = BABL (babl)->image.format;
+ if (format && format->image_template == NULL)
+ {
+ format->image_template = babl;
+ return -1; /* this should avoid freeing images created for formats,. */
+ }
+ return 0;
+}
+
+static Babl *
+image_new (BablFormat *format,
+ BablModel *model,
+ int components,
+ BablComponent **component,
+ BablSampling **sampling,
+ BablType **type,
+ char **data,
+ int *pitch,
+ int *stride)
+{
+ Babl *babl;
+
+ /* allocate all memory in one chunk */
+ babl = babl_malloc (sizeof (BablImage) +
+ sizeof (BablComponent*) * (components) +
+ sizeof (BablSampling*) * (components) +
+ sizeof (BablType*) * (components) +
+ sizeof (void*) * (components) +
+ sizeof (int) * (components) +
+ sizeof (int) * (components));
+ babl_set_destructor (babl, babl_image_destruct);
+ babl->image.component = (void*)(((char *)babl) + sizeof (BablImage));
+ babl->image.sampling = (void*)(((char *)babl->image.component) + sizeof (BablComponent*) * (components));
+ babl->image.type = (void*)(((char *)babl->image.sampling) + sizeof (BablSampling*) * (components));
+ babl->image.data = (void*)(((char *)babl->image.type) + sizeof (BablType*) * (components));
+ babl->image.pitch = (void*)(((char *)babl->image.data) + sizeof (void*) * (components));
+ babl->image.stride = (void*)(((char *)babl->image.pitch) + sizeof (int) * (components));
+
+ babl->class_type = BABL_IMAGE;
+ babl->instance.id = 0;
+ babl->instance.name = "slaritbartfast";
+ babl->image.format = format;
+ babl->image.model = model;
+ babl->image.components = components;
+
+ memcpy (babl->image.component, component, components * sizeof (void *));
+ memcpy (babl->image.type, type, components * sizeof (void *));
+ memcpy (babl->image.data, data, components * sizeof (void *));
+ memcpy (babl->image.pitch, pitch, components * sizeof (int));
+ memcpy (babl->image.stride, stride, components * sizeof (int));
+
+ return babl;
+}
+
+Babl *
+babl_image_from_linear (char *buffer,
+ const Babl *cformat)
+{
+ Babl *format = (Babl*) cformat;
+ Babl *babl;
+ BablModel *model = NULL;
+ int components = 0;
+ int i;
+ BablComponent *component [BABL_MAX_COMPONENTS];
+ BablSampling *sampling [BABL_MAX_COMPONENTS];
+ BablType *type [BABL_MAX_COMPONENTS];
+ char *data [BABL_MAX_COMPONENTS];
+ int pitch [BABL_MAX_COMPONENTS];
+ int stride [BABL_MAX_COMPONENTS];
+
+ int offset = 0;
+ int calc_pitch = 0;
+
+ babl_assert (format);
+ babl_assert (format->class_type == BABL_FORMAT ||
+ format->class_type == BABL_MODEL);
+
+ switch (format->class_type)
+ {
+ case BABL_FORMAT:
+ components = format->format.components;
+ if (format->format.image_template != NULL) /* single item cache for speeding
+ up subsequent use of linear buffers
+ for subsequent accesses
+ */
+ {
+ babl = format->format.image_template;
+ format->format.image_template = NULL;
+ for (i = 0; i < components; i++)
+ {
+ babl->image.data[i] = buffer + offset;
+ offset += (format->format.type[i]->bits / 8);
+ }
+ return babl;
+ }
+ model = (BablModel *) format->format.model;
+
+ memcpy (component, format->format.component, sizeof (Babl *) * components);
+ memcpy (sampling, format->format.sampling, sizeof (Babl *) * components);
+ memcpy (type, format->format.type, sizeof (Babl *) * components);
+
+ for (i = 0; i < components; i++)
+ {
+ calc_pitch += (type[i]->bits / 8);
+ }
+ for (i = 0; i < components; i++)
+ {
+ pitch[i] = calc_pitch;
+ stride[i] = 0;
+ data[i] = buffer + offset;
+ offset += (type[i]->bits / 8);
+ }
+ break;
+
+ case BABL_MODEL:
+ model = (BablModel *) format;
+ components = format->format.components;
+ for (i = 0; i < components; i++)
+ {
+ calc_pitch += (64 / 8); /*< known to be double when we create from model */
+ }
+ memcpy (component, model->component, sizeof (Babl *) * components);
+ for (i = 0; i < components; i++)
+ {
+ sampling[i] = (BablSampling *) babl_sampling (1, 1);
+ type[i] = (BablType *) babl_type_from_id (BABL_DOUBLE);
+ pitch[i] = calc_pitch;
+ stride[i] = 0;
+ data[i] = buffer + offset;
+ offset += (type[i]->bits / 8);
+ }
+ break;
+
+ default:
+ babl_log ("Eeeek!");
+ break;
+ }
+
+ babl = image_new (
+ ((void*)format!=(void*)model)?(BablFormat*)format:NULL,
+ model, components,
+ component, sampling, type, data, pitch, stride);
+ return babl;
+}
+
+Babl *
+babl_image_new (const void *first,
+ ...)
+{
+ va_list varg;
+ Babl *babl;
+ int components = 0;
+ BablFormat *format = NULL;
+ BablModel *model = NULL;
+ BablComponent *component [BABL_MAX_COMPONENTS];
+ BablSampling *sampling [BABL_MAX_COMPONENTS];
+ BablType *type [BABL_MAX_COMPONENTS];
+ char *data [BABL_MAX_COMPONENTS];
+ int pitch [BABL_MAX_COMPONENTS];
+ int stride [BABL_MAX_COMPONENTS];
+
+ const char *arg = first;
+
+ va_start (varg, first);
+
+ while (1)
+ {
+ BablComponent *new_component = NULL;
+ if (!arg)
+ break;
+
+ if (BABL_IS_BABL (arg))
+ {
+ Babl *babl = (Babl *) arg;
+
+ if (babl->class_type == BABL_COMPONENT)
+ {
+ new_component = (BablComponent *) babl;
+ }
+ else
+ {
+ babl_log ("%s unexpected", babl_class_name (babl->class_type));
+ va_end (varg);
+ return NULL;
+ }
+ }
+ else
+ {
+ new_component = (BablComponent *) babl_component (arg);
+ }
+
+ /* FIXME: add error checking */
+ component [components] = new_component;
+ sampling [components] = NULL;
+ type [components] = NULL;
+ data [components] = va_arg (varg, void *);
+ pitch [components] = va_arg (varg, int);
+ stride [components] = va_arg (varg, int);
+ components++;
+
+ if (components >= BABL_MAX_COMPONENTS)
+ {
+ babl_log ("maximum number of components (%i) exceeded", BABL_MAX_COMPONENTS);
+ }
+
+ arg = va_arg (varg, char *);
+ }
+
+ va_end (varg);
+
+
+ babl = image_new (format, model, components, component, sampling, type, data, pitch, stride);
+ return babl;
+}
--- /dev/null
+/* babl - dynamically extendable universal pixel conversion library.
+ * Copyright (C) 2005-2008, Øyvind Kolås and others.
+ *
+ * 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 3 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, see
+ * <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef _BABL_IMAGE_H
+#define _BABL_IMAGE_H
+
+
+/****************************************************************/
+/* BablImage */
+BABL_CLASS_DECLARE (image);
+/*
+ * Babl images can be used for planar buffers instead of linear buffers for
+ * babl_process(), BablImages are still experimental, for now BablImages can be
+ * passed to babl_process, two different babl_process() functions will be
+ * needed for this since the polymorphism cannot be trusted to work on linear
+ * buffers that originate outside babl's control.
+ *
+ * Babl * babl_image_new (BablComponent *component1,
+ * void *data,
+ * int pitch,
+ * int stride,
+ * [BablComponent *component1,
+ * void *data,
+ * int pitch,
+ * int stride,
+ * ...]
+ * NULL);
+ */
+Babl * babl_image_new (const void *first_component,
+ ...) BABL_ARG_NULL_TERMINATED;
+
+typedef struct
+{
+ BablInstance instance;
+ BablFormat *format; /*< (if known) */
+ BablModel *model; /*< (always known) */
+ int components;
+ BablComponent **component;
+ BablType **type;
+ BablSampling **sampling;
+ char **data;
+ int *pitch;
+ int *stride;
+} BablImage;
+
+#endif
--- /dev/null
+/* babl - dynamically extendable universal pixel conversion library.
+ * Copyright (C) 2005, Øyvind Kolås.
+ *
+ * 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 3 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, see
+ * <http://www.gnu.org/licenses/>.
+ */
+
+#include "config.h"
+#include <stdlib.h>
+#include "babl-internal.h"
+
+static const char *class_names[] =
+{
+ "BablInstance",
+ "BablType",
+ "BablTypeInteger",
+ "BablTypeFloat",
+ "BablSampling",
+ "BablComponent",
+ "BablModel",
+ "BablFormat",
+ "BablConversion",
+ "BablConversionLinear",
+ "BablConversionPlane",
+ "BablConversionPlanar",
+ "BablFish",
+ "BablFishReference",
+ "BablFishSimple",
+ "BablFishPath",
+ "BablImage",
+ "BablExtenstion",
+ "BablSky"
+};
+
+const char *
+babl_class_name (BablClassType klass)
+{
+ return class_names[klass - BABL_INSTANCE];
+}
+
+/* global variable, indicating whether name lookups
+ * are frowned upon or not (they are frowned upon within BablBase,
+ * since that leads to more strings than neccesary in the library.)
+ */
+int babl_hmpf_on_name_lookups = 0;
+
+#include <sys/types.h>
+#include <unistd.h>
+
+int
+babl_backtrack (void)
+{
+ char buf[512];
+
+ sprintf (buf, "echo bt>/tmp/babl.gdb;"
+ "gdb -q --batch -x /tmp/babl.gdb --pid=%i | grep 'in ''babl_die' -A40", getpid ());
+ return system (buf);
+}
+
+void
+babl_die (void)
+{
+ babl_backtrack ();
+ exit (-1);
+}
+
+
+BablMutex *babl_format_mutex;
+#if BABL_DEBUG_MEM
+BablMutex *babl_debug_mutex;
+#endif
+
+void
+babl_internal_init (void)
+{
+ babl_set_malloc (malloc);
+ babl_set_free (free);
+ babl_format_mutex = babl_mutex_new ();
+#if BABL_DEBUG_MEM
+ babl_debug_mutex = babl_mutex_new ();
+#endif
+}
+
+void
+babl_internal_destroy (void)
+{
+ babl_mutex_destroy (babl_format_mutex);
+#if BABL_DEBUG_MEM
+ babl_mutex_destroy (babl_debug_mutex);
+#endif
+}
+
+
+const char *
+babl_get_name (const Babl *babl)
+{
+ babl_assert (BABL_IS_BABL (babl));
+ return babl->instance.name;
+}
--- /dev/null
+/* babl - dynamically extendable universal pixel conversion library.
+ * Copyright (C) 2005, Øyvind Kolås.
+ *
+ * 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 3 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, see
+ * <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef _BABL_INTERNAL_H
+#define _BABL_INTERNAL_H
+
+#ifndef BABL_LIBRARY
+#error "config.h must be included prior to babl-internal.h"
+#endif
+
+#ifdef _BABL_H
+#error babl-internal.h included after babl.h
+#endif
+
+#define BABL_MAX_COMPONENTS 32
+#define BABL_CONVERSIONS 5
+
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+#include <math.h>
+#include "assert.h"
+
+#undef _BABL_INTERNAL_H
+#include "babl.h"
+#define _BABL_INTERNAL_H
+
+#include "babl-classes.h"
+#include "babl-introspect.h"
+#include "babl-class.h"
+#include "babl-list.h"
+#include "babl-hash-table.h"
+#include "babl-db.h"
+#include "babl-ids.h"
+#include "babl-util.h"
+#include "babl-memory.h"
+#include "babl-mutex.h"
+#include "babl-cpuaccel.h"
+
+/* fallback to floor function when rint is not around */
+#ifndef HAVE_RINT
+# define rint(f) (floor (((double) (f)) + 0.5))
+#endif
+
+
+
+Babl * babl_conversion_find (const void *source,
+ const void *destination);
+double babl_conversion_error (BablConversion *conversion);
+long babl_conversion_cost (BablConversion *conversion);
+long babl_conversion_process (const Babl *conversion,
+ const char *source,
+ char *destination,
+ long n);
+
+Babl * babl_extension_base (void);
+
+Babl * babl_extender (void);
+void babl_set_extender (Babl *new_extender);
+
+Babl * babl_extension_quiet_log (void);
+void babl_extension_deinit (void);
+
+long babl_fish_reference_process (const Babl *babl,
+ const char *source,
+ char *destination,
+ long n);
+
+Babl * babl_fish_reference (const Babl *source,
+ const Babl *destination);
+Babl * babl_fish_simple (BablConversion *conversion);
+void babl_fish_stats (FILE *file);
+Babl * babl_fish_path (const Babl *source,
+ const Babl *destination);
+
+int babl_fish_get_id (const Babl *source,
+ const Babl *destination);
+
+double babl_format_loss (const Babl *babl);
+Babl * babl_image_from_linear (char *buffer,
+ const Babl *format);
+Babl * babl_image_double_from_image (const Babl *source);
+
+double babl_model_is_symmetric (const Babl *babl);
+void babl_die (void);
+int babl_sanity (void);
+
+void babl_core_init (void);
+const Babl *babl_format_with_model_as_type (const Babl *model,
+ const Babl *type);
+int babl_formats_count (void); /* should maybe be templated? */
+int babl_type_is_symmetric (const Babl *babl);
+
+/**** LOGGER ****/
+#include <stdarg.h>
+
+int babl_backtrack (void);
+
+static inline void
+real_babl_log_va(const char *file,
+ int line,
+ const char *function,
+ const char *fmt,
+ va_list varg)
+{
+ Babl *extender = babl_extender();
+
+ if (extender != babl_extension_quiet_log())
+ {
+ if (babl_extender())
+ fprintf (stdout, "When loading %s:\n\t", babl_extender()->instance.name);
+
+ fprintf (stdout, "%s:%i %s()\n\t", file, line, function);
+ }
+
+ vfprintf (stdout, fmt, varg);
+
+ fprintf (stdout, "\n");
+ fflush (NULL);
+ return;
+}
+
+static inline void
+real_babl_log (const char *file,
+ int line,
+ const char *function,
+ const char *fmt, ...)
+{
+ va_list varg;
+
+ va_start (varg, fmt);
+ real_babl_log_va(file, line, function, fmt, varg);
+ va_end (varg);
+}
+
+/* Provide a string identifying the current function, non-concatenatable */
+#ifndef G_STRFUNC
+#if defined (__GNUC__)
+# define G_STRFUNC ((const char*) (__PRETTY_FUNCTION__))
+#elif defined (G_HAVE_ISO_VARARGS)
+# define G_STRFUNC ((const char*) (__func__))
+#else
+# define G_STRFUNC ((const char*) ("???"))
+#endif
+#endif
+
+#if defined(__cplusplus) && defined(BABL_ISO_CXX_VARIADIC_MACROS)
+# define BABL_ISO_VARIADIC_MACROS 1
+#endif
+
+#if defined(BABL_ISO_VARIADIC_MACROS)
+
+#define babl_log(...) \
+ real_babl_log(__FILE__, __LINE__, G_STRFUNC, __VA_ARGS__)
+
+#define babl_fatal(...) do{ \
+ real_babl_log(__FILE__, __LINE__, G_STRFUNC, __VA_ARGS__); \
+ babl_die();} \
+while(0)
+
+#elif defined(BABL_GNUC_VARIADIC_MACROS)
+
+#define babl_log(args...) \
+ real_babl_log(__FILE__, __LINE__, G_STRFUNC, args)
+
+#define babl_fatal(args...) do{ \
+ real_babl_log(__FILE__, __LINE__, G_STRFUNC, args); \
+ babl_die();} \
+while(0)
+
+#else
+
+static inline void
+babl_log (const char *format, ...)
+{
+ va_list args;
+ va_start (args, format);
+ real_babl_log_va (__FILE__, __LINE__, G_STRFUNC, format, args);
+ va_end (args);
+}
+static inline void
+babl_fatal (const char *format, ...)
+{
+ va_list args;
+ va_start (args, format);
+ real_babl_log_va (__FILE__, __LINE__, G_STRFUNC, format, args);
+ va_end (args);
+ babl_die();
+}
+
+#endif
+
+
+#define babl_assert(expr) do{ \
+ if(!(expr)) \
+ { \
+ real_babl_log(__FILE__, __LINE__, G_STRFUNC, "Eeeeek! Assertion failed: `" #expr "`"); \
+ assert(expr); \
+ } \
+}while(0)
+/***** LOGGER (end)**/
+
+#define BABL_CLASS_TYPE_IS_VALID(klass_type) \
+ ( ((klass_type)>=BABL_INSTANCE ) && ((klass_type)<=BABL_SKY) ?1:0 )
+
+#define BABL_IS_BABL(obj) \
+(NULL==(obj)?0 \
+ :BABL_CLASS_TYPE_IS_VALID(((Babl*)(obj))->class_type) \
+)
+
+extern int babl_hmpf_on_name_lookups;
+extern int babl_in_fish_path;
+extern BablMutex *babl_format_mutex;
+
+#define BABL_DEBUG_MEM 0
+#if BABL_DEBUG_MEM
+extern BablMutex *babl_debug_mutex;
+#endif
+
+const char *babl_class_name (BablClassType klass);
+void babl_internal_init (void);
+void babl_internal_destroy (void);
+
+
+/* this template is expanded in the files including babl-internal.h,
+ * generating code, the declarations for these functions are found in
+ * the BABL_CLASS expansions done in babl.h as well, thus babl.h needs
+ * to be kept in sync with the C files.
+ */
+
+#define BABL_CLASS_MINIMAL_IMPLEMENT(klass) \
+ \
+BablDb * \
+babl_##klass##_db (void) \
+{ \
+ if (!db) \
+ db=babl_db_init (); \
+ return db; \
+} \
+ \
+void \
+babl_##klass##_class_for_each (BablEachFunction each_fun, \
+ void *user_data) \
+{ \
+ babl_db_each (db, each_fun, user_data); \
+} \
+
+#define BABL_CLASS_IMPLEMENT(klass) \
+BABL_CLASS_MINIMAL_IMPLEMENT(klass) \
+ \
+const Babl * \
+babl_##klass (const char *name) \
+{ \
+ Babl *babl; \
+ \
+ if (babl_hmpf_on_name_lookups) \
+ { \
+ babl_log ("%s(\"%s\"): hmpf!", G_STRFUNC, name); \
+ } \
+ babl = babl_db_exist_by_name (db, name); \
+ \
+ if (!babl) \
+ { \
+ babl_fatal ("%s(\"%s\"): not found", G_STRFUNC, name); \
+ } \
+ return babl; \
+} \
+ \
+const Babl * \
+babl_##klass##_from_id (int id) \
+{ \
+ Babl *babl; \
+ babl = babl_db_exist_by_id (db, id); \
+ if (!babl) \
+ { \
+ babl_fatal ("%s(%i): not found", G_STRFUNC, id); \
+ } \
+ return babl; \
+} \
+
+#define BABL(obj) ((Babl*)(obj))
+
+static inline double babl_parse_double (const char *str)
+{
+ double result = 0;
+ if (!str)
+ return 0.0;
+ result = atoi (str);
+ if (strchr (str, '.'))
+ {
+ char *p = strchr (str, '.') + 1;
+ double d = 10;
+ for (;*p && *p >= '0' && *p <= '9';p++, d *= 10)
+ {
+ if (result >= 0)
+ result += (*p - '0') / d;
+ else
+ result -= (*p - '0') / d;
+ }
+ }
+ return result;
+}
+
+
+#endif
--- /dev/null
+/* babl - dynamically extendable universal pixel conversion library.
+ * Copyright (C) 2005, Øyvind Kolås.
+ *
+ * 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 3 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, see
+ * <http://www.gnu.org/licenses/>.
+ */
+
+#include "config.h"
+#include "babl-internal.h" /* for babl_log */
+
+#define BABL_LOG
+
+#ifdef BABL_LOG
+
+static void sampling_introspect (Babl *babl);
+static void model_introspect (Babl *babl);
+static void type_introspect (Babl *babl);
+static void format_introspect (Babl *babl);
+
+static int each_introspect (Babl *babl,
+ void *user_data);
+#endif
+
+void
+babl_introspect (Babl *babl)
+{
+#ifdef BABL_LOG
+ Babl *extender_backup = babl_extender ();
+
+ babl_set_extender (babl_extension_quiet_log ());
+
+ if (babl)
+ {
+ each_introspect (babl, NULL);
+ return;
+ }
+ babl_log ("Introspection report");
+ babl_log ("====================================================");
+
+ babl_log ("");
+ babl_log ("Data Types:");
+ babl_type_class_for_each (each_introspect, NULL);
+ babl_log ("");
+ babl_log ("Sampling (chroma subsampling) factors:");
+ babl_sampling_class_for_each (each_introspect, NULL);
+ babl_log ("");
+ babl_log ("Components:");
+ babl_component_class_for_each (each_introspect, NULL);
+ babl_log ("");
+ babl_log ("Models (of components):");
+ babl_model_class_for_each (each_introspect, NULL);
+ babl_log ("");
+ babl_log ("Pixel formats:");
+ babl_format_class_for_each (each_introspect, NULL);
+ babl_log ("");
+ babl_log ("conversions:");
+ babl_conversion_class_for_each (each_introspect, NULL);
+ babl_log ("");
+ babl_log ("extensions:");
+ babl_extension_class_for_each (each_introspect, NULL);
+ babl_log ("");
+ babl_log ("fishes");
+ babl_fish_class_for_each (each_introspect, NULL);
+ babl_log ("");
+
+ babl_set_extender (extender_backup);
+#endif
+}
+
+#ifdef BABL_LOG
+
+static void
+item_conversions_introspect (Babl *babl)
+{
+ int i;
+ BablList *list;
+
+ list = babl->type.from_list;
+ if (list)
+ {
+ babl_log ("\t\tconversions from %s: %i",
+ babl->instance.name, babl_list_size (list));
+
+ for (i = 0; i < babl_list_size (list); i++)
+ babl_log ("\t\t\t'%s'", BABL (list->items[i])->instance.name);
+ }
+}
+
+static void
+model_introspect (Babl *babl)
+{
+ int i;
+
+ babl_log ("\t\tcomponents=%i", babl->model.components);
+
+ for (i = 0; i < babl->model.components; i++)
+ {
+ babl_log ("\t\tindex[%i] = \"%s\"", i,
+ BABL (babl->model.component[i])->instance.name);
+ }
+}
+
+static void
+type_introspect (Babl *babl)
+{
+ babl_log ("\t\tbits=%i", babl->type.bits);
+}
+
+
+static void
+sampling_introspect (Babl *babl)
+{
+ babl_log ("\t\thorizontal = %i",
+ babl->sampling.horizontal);
+ babl_log ("\t\tvertical = %i",
+ babl->sampling.vertical);
+}
+
+
+static void
+format_introspect (Babl *babl)
+{
+ int i;
+
+ babl_log ("\t\tmodel=\"%s\"", babl->format.model->instance.name);
+ babl_log ("\t\tplanar=%i", babl->format.planar);
+ babl_log ("\t\tcomponents=%i", babl->format.components);
+
+ for (i = 0; i < babl->format.components; i++)
+ {
+ babl_log ("\t\tband[%i] type=\"%s\" sampling=\"%s\" component=\"%s\"",
+ i, babl->format.type[i]->instance.name,
+ babl->format.sampling[i]->instance.name,
+ babl->format.component[i]->instance.name);
+ }
+}
+
+static void
+conversion_introspect (Babl *babl)
+{
+ babl_log ("\t\tprocessings:%i pixels:%li",
+ babl->conversion.processings, babl->conversion.pixels);
+ if (BABL (babl->conversion.source)->class_type == BABL_FORMAT)
+ {
+ babl_log ("\t\terror: %f", babl_conversion_error (&babl->conversion));
+ }
+}
+
+static void
+fish_introspect (Babl *babl)
+{
+ babl_log ("\t\tprocessings:%i pixels:%li",
+ babl->fish.processings, babl->fish.pixels);
+}
+
+static void
+fish_path_introspect (Babl *babl)
+{
+ babl_log ("\t\tcost:%f error:%.12f",
+ babl->fish_path.cost, babl->fish.error);
+
+ babl_list_each(babl->fish_path.conversion_list, each_introspect, NULL);
+}
+
+static int
+each_introspect (Babl *babl,
+ void *user_data)
+{
+ babl_log ("\t\"%s\"\t%i\t%s",
+ babl->instance.name,
+ babl->instance.id,
+ babl_class_name (babl->class_type));
+ switch (babl->class_type)
+ {
+ case BABL_TYPE:
+ type_introspect (babl);
+ item_conversions_introspect (babl);
+ break;
+
+ case BABL_COMPONENT:
+ break;
+
+ case BABL_MODEL:
+ model_introspect (babl);
+ item_conversions_introspect (babl);
+ break;
+
+ case BABL_FORMAT:
+ format_introspect (babl);
+ item_conversions_introspect (babl);
+ break;
+
+ case BABL_SAMPLING:
+ sampling_introspect (babl);
+ item_conversions_introspect (babl);
+ break;
+
+ case BABL_CONVERSION:
+ case BABL_CONVERSION_PLANE:
+ case BABL_CONVERSION_PLANAR:
+ case BABL_CONVERSION_LINEAR:
+ conversion_introspect (babl);
+ break;
+
+ case BABL_FISH:
+ case BABL_FISH_REFERENCE:
+ case BABL_FISH_SIMPLE:
+ fish_introspect (babl);
+ break;
+
+ case BABL_FISH_PATH:
+ fish_path_introspect (babl);
+ break;
+
+ default:
+ break;
+ }
+ return 0;
+}
+#endif
--- /dev/null
+/* babl - dynamically extendable universal pixel conversion library.
+ * Copyright (C) 2005-2008, Øyvind Kolås and others.
+ *
+ * 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 3 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, see
+ * <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef _BABL_INTROSPECT_H
+#define _BABL_INTROSPECT_H
+
+
+void babl_introspect (Babl *babl); /* introspect a given BablObject */
+
+
+#endif
--- /dev/null
+/* babl - dynamically extendable universal pixel conversion library.
+ * Copyright (C) 2005, Øyvind Kolås.
+ *
+ * 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 3 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, see
+ * <http://www.gnu.org/licenses/>.
+ */
+
+/* Implementation of list data structure.
+ * Copyright (C) 2008, Jan Heller
+ */
+
+#include "config.h"
+#include "babl-internal.h"
+
+#define BABL_LIST_INITIAL_SIZE 0x7F
+
+BablList *
+babl_list_init (void)
+{
+ return babl_list_init_with_size (BABL_LIST_INITIAL_SIZE);
+}
+
+static int
+babl_list_destroy (void *data)
+{
+ BablList *list = data;
+ babl_free (list->items);
+ return 0;
+}
+
+BablList *
+babl_list_init_with_size (int initial_size)
+{
+ BablList *list = babl_calloc (sizeof (BablList), 1);
+
+ babl_set_destructor (list, babl_list_destroy);
+
+ if (initial_size == 0)
+ initial_size = 1;
+ list->size = initial_size;
+ list->count = 0;
+ list->items = NULL;
+ if (list->size)
+ {
+ list->items = babl_calloc (sizeof (BablInstance *), list->size);
+ }
+
+ return list;
+}
+
+void
+babl_list_insert_last (BablList *list,
+ Babl *item)
+{
+ babl_assert(list);
+ babl_assert(BABL_IS_BABL(item));
+
+ if (list->size < list->count + 1)
+ {
+ Babl **new_items;
+
+ new_items = babl_realloc (list->items, (list->size * 2) * sizeof (BablInstance *));
+ babl_assert (new_items);
+ list->items = new_items;
+ memset (list->items + list->size, 0, list->size * sizeof (BablInstance *));
+ list->size *= 2;
+ }
+ list->items[list->count++] = item;
+}
+
+void
+babl_list_remove_last (BablList *list)
+{
+ babl_assert (list);
+ babl_assert (list->count > 0);
+
+ list->count--;
+}
+
+void
+babl_list_copy (BablList *from,
+ BablList *to)
+{
+ babl_assert (from);
+ babl_assert (to);
+
+ if (to->size < from->count)
+ {
+ Babl **new_items;
+
+ new_items = babl_realloc (to->items, from->count * sizeof (BablInstance *));
+ babl_assert (new_items);
+ to->items = new_items;
+ to->size = from->count;
+ }
+
+ memcpy (to->items, from->items, from->count * sizeof (BablInstance *));
+ to->count = from->count;
+}
+
+void
+babl_list_each (BablList *list,
+ BablEachFunction each_fun,
+ void *user_data)
+{
+ int i;
+
+ babl_assert(list);
+ babl_assert(each_fun);
+
+ for (i = 0; i < list->count; i++)
+ {
+ if (list->items[i])
+ {
+ if (each_fun ((Babl *) list->items[i], user_data))
+ break;
+ }
+ }
+}
+
--- /dev/null
+/* babl - dynamically extendable universal pixel conversion library.
+ * Copyright (C) 2005, Øyvind Kolås.
+ *
+ * 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 3 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, see
+ * <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef _BABL_LIST_H
+#define _BABL_LIST_H
+
+#ifndef _BABL_H
+#error babl-list.h is only to be included after babl.h
+#endif
+
+struct _BablList
+{
+ int count;
+ int size;
+ Babl **items;
+};
+
+BablList *
+babl_list_init (void);
+
+BablList *
+babl_list_init_with_size (int initial_size);
+
+int
+babl_list_size (BablList *list);
+
+void
+babl_list_insert_last (BablList *list,
+ Babl *item);
+
+void
+babl_list_remove_last (BablList *list);
+
+#define babl_list_get_n(list,n) (list->items[(n)])
+#define babl_list_get_first(list) (babl_list_get_n(list,0))
+#define babl_list_size(list) (list->count)
+#define babl_list_get_last(list) (babl_list_get_n(list, babl_list_size(list)-1))
+
+void
+babl_list_copy (BablList *from,
+ BablList *to);
+
+void
+babl_list_each (BablList *list,
+ BablEachFunction each_fun,
+ void *user_data);
+
+
+#endif
--- /dev/null
+/* babl - dynamically extendable universal pixel conversion library.
+ * Copyright (C) 2005-2008, Øyvind Kolås and others.
+ *
+ * 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 3 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, see
+ * <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef _BABL_MACROS_H
+#define _BABL_MACROS_H
+
+#if !defined(BABL_INSIDE_BABL_H) && !defined(BABL_IS_BEING_COMPILED)
+#error "babl-version.h must not be included directly, include babl.h instead."
+#endif
+
+
+#if __GNUC__ >= 4
+#define BABL_ARG_NULL_TERMINATED __attribute__((__sentinel__))
+#else
+#define BABL_ARG_NULL_TERMINATED
+#endif
+
+#endif
--- /dev/null
+/* babl - dynamically extendable universal pixel conversion library.
+ * Copyright (C) 2005, Øyvind Kolås.
+ *
+ * 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 3 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, see
+ * <http://www.gnu.org/licenses/>.
+ */
+
+#include "config.h"
+#include <stdint.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+#include "babl-internal.h"
+
+static BablMallocFunc malloc_f = malloc;
+static BablFreeFunc free_f = free;
+
+static void *first_malloc_used = NULL;
+static void *first_free_used = NULL;
+
+void
+babl_set_malloc (BablMallocFunc malloc_function)
+{
+ malloc_f = malloc_function;
+}
+
+void
+babl_set_free (BablFreeFunc free_function)
+{
+ free_f = free_function;
+}
+
+static char *signature = "babl-memory";
+static char *freed = "So long and thanks for all the fish.";
+
+typedef struct
+{
+ char *signature;
+ size_t size;
+ int (*destructor)(void *ptr);
+} BablAllocInfo;
+
+#define BABL_ALIGN 16
+#define BABL_ALLOC (sizeof (BablAllocInfo) + sizeof (void *))
+#define BAI(ptr) ((BablAllocInfo *) *((void **) ptr - 1))
+#define IS_BAI(ptr) (BAI (ptr)->signature == signature)
+
+#if BABL_DEBUG_MEM
+
+/* runtime statistics: */
+static int mallocs = 0;
+static int frees = 0;
+static int strdups = 0;
+static int reallocs = 0;
+static int callocs = 0;
+static int dups = 0;
+
+static const char *
+mem_stats (void)
+{
+ static char buf[128];
+
+ sprintf (buf, "mallocs:%i callocs:%i strdups:%i dups:%i allocs:%i frees:%i reallocs:%i\t|",
+ mallocs, callocs, strdups, dups, mallocs + callocs + strdups + dups, frees, reallocs);
+ return buf;
+}
+
+#endif
+
+static void
+functions_sanity (void)
+{
+ if (first_malloc_used != malloc_f ||
+ first_free_used != free_f)
+ {
+ static int displayed = 0;
+
+ if (first_malloc_used == NULL)
+ {
+ first_malloc_used = malloc_f;
+ first_free_used = free_f;
+ }
+ else if (!displayed)
+ {
+ fprintf (stderr, "HMM....\nSomething strange is happening,\n%s function pointer changing between invocations in babl.\n",
+ first_malloc_used == malloc_f ? "free" :
+ (first_free_used == free_f ? "malloc" : "malloc and free"));
+ displayed = 1;
+ }
+ }
+}
+
+/* Allocate /size/ bytes of memory
+ *
+ * contents of memory undefined.
+ */
+void *
+babl_malloc (size_t size)
+{
+ char *ret;
+ int offset;
+
+ babl_assert (size);
+
+ functions_sanity ();
+ ret = malloc_f (BABL_ALLOC + BABL_ALIGN + size);
+ if (!ret)
+ babl_fatal ("args=(%i): failed", size);
+
+ offset = BABL_ALIGN - ((uintptr_t) ret + BABL_ALLOC) % BABL_ALIGN;
+ ret = ret + BABL_ALLOC + offset;
+
+ *((void **) ret - 1) = ret - BABL_ALLOC - offset;
+ BAI (ret)->signature = signature;
+ BAI (ret)->size = size;
+ BAI (ret)->destructor = NULL;
+#if BABL_DEBUG_MEM
+ babl_mutex_lock (babl_debug_mutex);
+ mallocs++;
+ babl_mutex_unlock (babl_debug_mutex);
+#endif
+ return (void *) (ret);
+}
+
+/* set a callback to be called when the segment is freed.
+ */
+void
+babl_set_destructor (void *ptr,
+ int (*destructor)(void *ptr))
+{
+ babl_assert (IS_BAI (ptr));
+ BAI(ptr)->destructor = destructor;
+}
+
+/* Create a duplicate allocation of the same size, note
+ * that the exact location of the allocation needs to be
+ * passed.
+ */
+void *
+babl_dup (void *ptr)
+{
+ void *ret;
+
+ babl_assert (IS_BAI (ptr));
+
+ ret = babl_malloc (BAI (ptr)->size);
+ memcpy (ret, ptr, BAI (ptr)->size);
+
+#if BABL_DEBUG_MEM
+ babl_mutex_lock (babl_debug_mutex);
+ dups++;
+ mallocs--;
+ babl_mutex_unlock (babl_debug_mutex);
+#endif
+ return NULL;
+}
+
+/* Free memory allocated by a babl function (note: babl_free
+ * will complain if memory not allocated by babl is passed.)
+ *
+ * Note: the function is made variadic to be a legal callback
+ * function in some circumstances.
+ */
+void
+babl_free (void *ptr,
+ ...)
+{
+ functions_sanity ();
+ if (!ptr)
+ return;
+ if (!IS_BAI (ptr))
+ {
+ #define IS_BAI(ptr) (BAI (ptr)->signature == signature)
+ if (freed)
+ babl_fatal ("\nbabl:double free detected\n------------------------");
+ babl_fatal ("memory not allocated by babl allocator");
+ }
+
+ if (BAI (ptr)->destructor)
+ if (BAI (ptr)->destructor (ptr))
+ return; /* bail out on non 0 return from destructor */
+
+ BAI (ptr)->signature = freed;
+ free_f (BAI (ptr));
+#if BABL_DEBUG_MEM
+ babl_mutex_lock (babl_debug_mutex);
+ frees++;
+ babl_mutex_unlock (babl_debug_mutex);
+#endif
+}
+
+/* reallocate allocation to be in size instead, contents of
+ * common allocated memory between old and new size is preserved.
+ */
+void *
+babl_realloc (void *ptr,
+ size_t size)
+{
+ void *ret = NULL;
+
+ if (!ptr)
+ {
+ return babl_malloc (size);
+ }
+
+ babl_assert (IS_BAI (ptr));
+
+ if (size == 0)
+ {
+ babl_free (ptr);
+ return NULL;
+ }
+ if (babl_sizeof (ptr) >= size)
+ {
+ return ptr;
+ }
+ else if (babl_sizeof (ptr) < size)
+ {
+#ifdef USE_REALLOC_CLEAR
+ /* not needed yet by babl, if aviodable, preferred, since
+ * it has performance hits where it isn't wanted, a special
+ * function might be better when needd.
+ */
+ ret = babl_calloc (size, 1);
+#else
+ ret = babl_malloc (size);
+#endif
+ memcpy (ret, ptr, babl_sizeof (ptr));
+ BAI (ret)->destructor = BAI (ptr)->destructor;
+ BAI (ptr)->destructor = NULL;
+ babl_free (ptr);
+#if BABL_DEBUG_MEM
+ babl_mutex_lock (babl_debug_mutex);
+ reallocs++;
+ babl_mutex_unlock (babl_debug_mutex);
+#endif
+ return ret;
+ }
+
+ if (!ret)
+ babl_fatal ("args=(%p, %i): failed", ptr, size);
+
+ return NULL;
+}
+
+/* allocate nmemb*size bytes and set it to all zeros. */
+void *
+babl_calloc (size_t nmemb,
+ size_t size)
+{
+ void *ret = babl_malloc (nmemb * size);
+
+ if (!ret)
+ babl_fatal ("args=(%i, %i): failed", nmemb, size);
+
+ memset (ret, 0, nmemb * size);
+
+#if BABL_DEBUG_MEM
+ babl_mutex_lock (babl_debug_mutex);
+ callocs++;
+ mallocs--;
+ babl_mutex_unlock (babl_debug_mutex);
+#endif
+ return ret;
+}
+
+/* Returns the size of an allocation.
+ */
+size_t
+babl_sizeof (void *ptr)
+{
+ babl_assert (IS_BAI (ptr));
+ return BAI (ptr)->size;
+}
+
+/* duplicate allocation needed for a string, and
+ * copy string contents, string is zero terminated.
+ */
+char *
+babl_strdup (const char *s)
+{
+ char *ret;
+
+ ret = babl_malloc (strlen (s) + 1);
+ if (!ret)
+ babl_log ("args=(%s): failed", s);
+ strcpy (ret, s);
+
+#if BABL_DEBUG_MEM
+ babl_mutex_lock (babl_debug_mutex);
+ strdups++;
+ mallocs--;
+ babl_mutex_unlock (babl_debug_mutex);
+#endif
+ return ret;
+}
+
+/* append string to babl allocated string dest, the returned
+ * string is the new canonical position with src added to dest
+ * if the dest allocation needed to be resized. Passing NULL
+ * causes a new allocation (thus babl-memory sees NULL as the empty
+ * string).
+ */
+char *
+babl_strcat (char *dest,
+ const char *src)
+{
+ char *ret;
+ int src_len;
+ int dst_len;
+
+ if (NULL == src)
+ return dest;
+
+ src_len = strlen (src);
+ if (!dest)
+ {
+ ret = babl_malloc (src_len + 1);
+ strcpy (ret, src);
+ return ret;
+ }
+ babl_assert (IS_BAI (dest));
+ dst_len = strlen (dest);
+
+ ret = dest;
+
+ if (babl_sizeof (dest) < src_len + dst_len + 1)
+ {
+ size_t new_size = babl_sizeof (dest);
+ while (new_size < src_len + dst_len + 1)
+ new_size *= 2;
+ ret = babl_realloc (dest, new_size);
+ }
+
+ strcpy (&ret[dst_len], src);
+ return ret;
+}
+
+#if BABL_DEBUG_MEM
+/* performs a sanity check on memory, (checks if number of
+ * allocations and frees on babl memory evens out to zero).
+ */
+int
+babl_memory_sanity (void)
+{
+ if (frees != mallocs + strdups + callocs)
+ {
+ babl_log ("memory usage does not add up!\n"
+ "%s\n"
+ "\tbalance: %i-%i=%i\n",
+ mem_stats (), (strdups + mallocs + callocs), frees, (strdups + mallocs + callocs) - frees);
+ return -1;
+ }
+ return 0;
+}
+#endif
--- /dev/null
+/* babl - dynamically extendable universal pixel conversion library.
+ * Copyright (C) 2005, Øyvind Kolås.
+ *
+ * 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 3 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, see
+ * <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef _BABL_MEMORY_H
+#define _BABL_MEMORY_H
+
+
+typedef void * (* BablMallocFunc) (size_t size);
+typedef void (* BablFreeFunc) (void *ptr);
+
+
+void babl_set_malloc (BablMallocFunc malloc_function);
+void babl_set_free (BablFreeFunc free_function);
+int babl_memory_sanity (void);
+
+void * babl_malloc (size_t size);
+void babl_set_destructor (void *ptr,
+ int (*destructor)(void *ptr));
+
+void babl_free (void *ptr,
+ ...);
+void * babl_calloc (size_t nmemb,
+ size_t size);
+void * babl_realloc (void *ptr,
+ size_t size);
+
+size_t babl_sizeof (void *ptr);
+void * babl_dup (void *ptr);
+
+char * babl_strdup (const char *s);
+char * babl_strcat (char *dest,
+ const char *src);
+
+#endif
--- /dev/null
+/* babl - dynamically extendable universal pixel conversion library.
+ * Copyright (C) 2005, Øyvind Kolås.
+ *
+ * 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 3 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, see
+ * <http://www.gnu.org/licenses/>.
+ */
+
+#include "config.h"
+#include <string.h>
+#include <stdarg.h>
+#include <math.h>
+#define NEEDS_BABL_DB
+#include "babl-internal.h"
+#include "babl-db.h"
+#include "babl-ref-pixels.h"
+
+static const Babl *construct_double_format (const Babl *model);
+
+static int
+babl_model_destroy (void *data)
+{
+ Babl *babl = data;
+ if (babl->model.from_list)
+ babl_free (babl->model.from_list);
+ return 0;
+}
+
+static char *
+babl_model_create_name (int components,
+ BablComponent **component)
+{
+ char *p = NULL;
+
+ while (components--)
+ {
+ p = babl_strcat(p, (*component)->instance.name);
+ component++;
+ }
+
+ return p;
+}
+
+static Babl *
+model_new (const char *name,
+ int id,
+ int components,
+ BablComponent **component)
+{
+ Babl *babl;
+
+ babl = babl_malloc (sizeof (BablModel) +
+ sizeof (BablComponent *) * (components) +
+ strlen (name) + 1);
+ babl_set_destructor (babl, babl_model_destroy);
+ babl->model.component = (void *) (((char *) babl) + sizeof (BablModel));
+ babl->instance.name = (void *) (((char *) babl->model.component) + sizeof (BablComponent *) * (components));
+
+ babl->class_type = BABL_MODEL;
+ babl->instance.id = id;
+ babl->model.components = components;
+ strcpy (babl->instance.name, name);
+ memcpy (babl->model.component, component, sizeof (BablComponent *) * components);
+
+ babl->model.from_list = NULL;
+ return babl;
+}
+
+static int
+is_model_duplicate (Babl *babl, int components, BablComponent **component)
+{
+ int i;
+
+ if (babl->model.components != components)
+ return 0;
+
+ for (i = 0; i < components; i++)
+ {
+ if (babl->model.component[i] != component[i])
+ return 0;
+ }
+
+ return 1;
+}
+
+
+const Babl *
+babl_model_new (void *first_argument,
+ ...)
+{
+ va_list varg;
+ Babl *babl = NULL;
+ int id = 0;
+ int components = 0;
+ const char *arg = first_argument;
+ const char *assigned_name = NULL;
+ char *name = NULL;
+ BablComponent *component [BABL_MAX_COMPONENTS];
+
+ va_start (varg, first_argument);
+
+ while (1)
+ {
+ /* first, we assume arguments to be strings */
+ if (!strcmp (arg, "id"))
+ {
+ id = va_arg (varg, int);
+ }
+
+ else if (!strcmp (arg, "name"))
+ {
+ assigned_name = va_arg (varg, char *);
+ }
+
+ /* if we didn't point to a known string, we assume argument to be babl */
+ else if (BABL_IS_BABL (arg))
+ {
+ Babl *bablc = (Babl *) arg;
+
+ switch (bablc->class_type)
+ {
+ case BABL_COMPONENT:
+ if (components >= BABL_MAX_COMPONENTS)
+ {
+ babl_log ("maximum number of components (%i) exceeded for %s",
+ BABL_MAX_COMPONENTS,
+ assigned_name ? assigned_name : "(unnamed)");
+ }
+ component [components++] = (BablComponent *) bablc;
+ break;
+
+ case BABL_MODEL:
+ babl_log ("submodels not handled yet");
+ break;
+
+ case BABL_TYPE:
+ case BABL_TYPE_INTEGER:
+ case BABL_TYPE_FLOAT:
+ case BABL_SAMPLING:
+ case BABL_INSTANCE:
+ case BABL_FORMAT:
+
+
+ case BABL_CONVERSION:
+ case BABL_CONVERSION_LINEAR:
+ case BABL_CONVERSION_PLANE:
+ case BABL_CONVERSION_PLANAR:
+ case BABL_FISH:
+ case BABL_FISH_SIMPLE:
+ case BABL_FISH_REFERENCE:
+ case BABL_FISH_PATH:
+ case BABL_IMAGE:
+ case BABL_EXTENSION:
+ babl_log ("%s unexpected", babl_class_name (bablc->class_type));
+ break;
+
+ case BABL_SKY: /* shut up compiler */
+ break;
+ }
+ }
+
+ else
+ {
+ babl_fatal ("unhandled argument '%s' for babl_model '%s'",
+ arg, assigned_name ? assigned_name : "(unnamed)");
+ }
+
+ arg = va_arg (varg, char *);
+ if (!arg)
+ break;
+ }
+
+ va_end (varg);
+
+ if (assigned_name)
+ name = babl_strdup(assigned_name);
+ else
+ name = babl_model_create_name (components, component);
+
+ if (!components)
+ {
+ babl_log("no components specified for model '%s'", name);
+ goto out;
+ }
+
+ babl = babl_db_exist (db, id, name);
+ if (id && !babl && babl_db_exist (db, 0, name))
+ babl_fatal ("Trying to reregister BablModel '%s' with different id!", name);
+
+ if (! babl)
+ {
+ babl = model_new (name, id, components, component);
+ babl_db_insert (db, babl);
+ construct_double_format (babl);
+ }
+ else
+ {
+ if (!is_model_duplicate (babl, components, component))
+ babl_fatal ("BablModel '%s' already registered "
+ "with different components!", name);
+ }
+
+ out:
+ babl_free (name);
+
+ return babl;
+}
+
+
+#define TOLERANCE 0.001
+
+static const Babl *reference_format (void)
+{
+ static const Babl *self = NULL;
+
+ if (!self)
+ self = babl_format_new (
+ babl_model ("RGBA"),
+ babl_type ("double"),
+ babl_component ("R"),
+ babl_component ("G"),
+ babl_component ("B"),
+ babl_component ("A"),
+ NULL);
+ return self;
+}
+
+static const Babl *construct_double_format (const Babl *model)
+{
+ const void *argument[44 + 1];
+ int args = 0;
+ int i;
+
+ if (model == babl_model_from_id (BABL_RGBA))
+ {
+ argument[args++] = "id";
+ argument[args++] = (void*) BABL_RGBA_DOUBLE;
+ }
+ argument[args++] = model;
+ argument[args++] = babl_type_from_id (BABL_DOUBLE);
+
+ for (i = 0; i < model->model.components; i++)
+ {
+ argument[args++] = model->model.component[i];
+ }
+ argument[args++] = NULL;
+
+#define o(argno) argument[argno],
+ return babl_format_new (o (0) o (1) o (2) o (3)
+ o (4) o (5) o (6) o (7)
+ o (8) o (9) o (10) o (11)
+ o (12) o (13) o (14) o (15)
+ o (16) o (17) o (18) o (19)
+ o (20) o (21) o (22) o (23)
+ o (24) o (25) o (26) o (27)
+ o (28) o (29) o (30) o (31)
+ o (32) o (33) o (34) o (35)
+ o (36) o (37) o (38) o (39)
+ o (40) o (41) o (42) NULL);
+#undef o
+}
+
+double
+babl_model_is_symmetric (const Babl *cbabl)
+{
+ Babl *babl = (Babl*)cbabl;
+ void *original;
+ double *clipped;
+ void *destination;
+ double *transformed;
+ int symmetric = 1;
+
+ const Babl *ref_fmt;
+ const Babl *fmt;
+ Babl *fish_to;
+ Babl *fish_from;
+
+ const int test_pixels = babl_get_num_model_test_pixels ();
+ const double *test = babl_get_model_test_pixels ();
+
+ ref_fmt = reference_format ();
+ fmt = construct_double_format (babl);
+ fish_to = babl_fish_reference (ref_fmt, fmt);
+ fish_from = babl_fish_reference (fmt, ref_fmt);
+
+ original = babl_calloc (1, 64 / 8 * babl->model.components * test_pixels);
+ clipped = babl_calloc (1, 64 / 8 * 4 * test_pixels);
+ destination = babl_calloc (1, 64 / 8 * babl->model.components * test_pixels);
+ transformed = babl_calloc (1, 64 / 8 * 4 * test_pixels);
+
+ babl_process (fish_to, test, original, test_pixels);
+ babl_process (fish_from, original, clipped, test_pixels);
+ babl_process (fish_to, clipped, destination, test_pixels);
+ babl_process (fish_from, destination, transformed, test_pixels);
+
+ fish_to->fish.processings -= 2;
+ fish_from->fish.processings -= 2;
+ fish_to->fish.pixels -= test_pixels * 2;
+ fish_from->fish.pixels -= test_pixels * 2;
+
+ {
+ int i;
+ int log = 0;
+
+ for (i = 0; i < test_pixels; i++)
+ {
+ int j;
+ for (j = 0; j < 4; j++)
+ if (fabs (clipped[i *4 + j] - transformed[i * 4 + j]) > TOLERANCE)
+ {
+ if (!log)
+ log = 1;
+ symmetric = 0;
+ }
+ if (log && log < 5)
+ {
+ babl_log ("%s", babl->instance.name);
+ babl_log ("\ttest: %2.3f %2.3f %2.3f %2.3f", test [i *4 + 0],
+ test [i * 4 + 1],
+ test [i * 4 + 2],
+ test [i * 4 + 3]);
+ babl_log ("\tclipped: %2.3f %2.3f %2.3f %2.3f", clipped [i *4 + 0],
+ clipped [i * 4 + 1],
+ clipped [i * 4 + 2],
+ clipped [i * 4 + 3]);
+ babl_log ("\ttrnsfrmd: %2.3f %2.3f %2.3f %2.3f", transformed [i *4 + 0],
+ transformed [i * 4 + 1],
+ transformed [i * 4 + 2],
+ transformed [i * 4 + 3]);
+ log++;
+ }
+ }
+ }
+
+ babl_free (original);
+ babl_free (clipped);
+ babl_free (destination);
+ babl_free (transformed);
+ return symmetric;
+}
+
+BABL_CLASS_IMPLEMENT (model)
--- /dev/null
+/* babl - dynamically extendable universal pixel conversion library.
+ * Copyright (C) 2005-2008, Øyvind Kolås and others.
+ *
+ * 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 3 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, see
+ * <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef _BABL_MODEL_H
+#define _BABL_MODEL_H
+
+BABL_CLASS_DECLARE (model);
+
+typedef struct
+{
+ BablInstance instance;
+ BablList *from_list;
+ int components;
+ BablComponent **component;
+ BablType **type; /*< must be doubles,
+ used here for convenience in code */
+ void *data; /* used for palette */
+} BablModel;
+
+#endif
--- /dev/null
+/* babl - dynamically extendable universal pixel conversion library.
+ * Copyright (C) 2009, Øyvind Kolås.
+ *
+ * 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 3 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, see
+ * <http://www.gnu.org/licenses/>.
+ */
+
+#include "config.h"
+#include "babl-mutex.h"
+
+#include <stdlib.h>
+
+#ifndef _WIN32
+
+static const pthread_mutexattr_t *
+get_mutex_attr (void)
+{
+ static pthread_mutexattr_t mutexattr;
+ static int initialized = 0;
+
+ if (!initialized)
+ {
+ /* On some platforms, this will keep an allocation till process
+ termination, but it isn't a growing leak. */
+ pthread_mutexattr_init (&mutexattr);
+ pthread_mutexattr_settype (&mutexattr, PTHREAD_MUTEX_RECURSIVE);
+ initialized = 1;
+ }
+
+ return &mutexattr;
+}
+
+#endif
+
+BablMutex *
+babl_mutex_new (void)
+{
+ BablMutex *mutex = malloc (sizeof (BablMutex));
+#ifdef _WIN32
+ InitializeCriticalSection (mutex);
+#else
+ pthread_mutex_init (mutex, get_mutex_attr ());
+#endif
+ return mutex;
+}
+
+void
+babl_mutex_destroy (BablMutex *mutex)
+{
+#ifdef _WIN32
+ DeleteCriticalSection (mutex);
+#else
+ pthread_mutex_destroy(mutex);
+#endif
+ free (mutex);
+}
+
+void
+babl_mutex_lock (BablMutex *mutex)
+{
+#ifdef _WIN32
+ EnterCriticalSection (mutex);
+#else
+ pthread_mutex_lock (mutex);
+#endif
+}
+
+void
+babl_mutex_unlock (BablMutex *mutex)
+{
+#ifdef _WIN32
+ LeaveCriticalSection (mutex);
+#else
+ pthread_mutex_unlock (mutex);
+#endif
+}
--- /dev/null
+/* babl - dynamically extendable universal pixel conversion library.
+ * Copyright (C) 2009, Øyvind Kolås.
+ *
+ * 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 3 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, see
+ * <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef _BABL_MUTEX_H
+#define _BABL_MUTEX_H
+
+#ifndef _WIN32
+#define __GNU_SOURCE 1
+#include <pthread.h>
+#else
+#include <windows.h>
+#endif
+
+#ifdef _WIN32
+ typedef CRITICAL_SECTION BablMutex;
+#else
+ typedef pthread_mutex_t BablMutex;
+#endif
+
+BablMutex* babl_mutex_new (void);
+void babl_mutex_destroy (BablMutex *mutex);
+void babl_mutex_lock (BablMutex *mutex);
+void babl_mutex_unlock (BablMutex *mutex);
+
+#endif
--- /dev/null
+/* babl - dynamically extendable universal pixel conversion library.
+ * Copyright (C) 2012, Øyvind Kolås.
+ *
+ * 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 3 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, see
+ * <http://www.gnu.org/licenses/>.
+ */
+
+#include <stdlib.h>
+#include <string.h>
+#include <stdio.h>
+#include <limits.h>
+#include <assert.h>
+#include "config.h"
+#include "babl-internal.h"
+#include "babl.h"
+#include "babl-memory.h"
+
+#define HASH_TABLE_SIZE 1111
+
+/* A default palette, containing standard ANSI / EGA colors
+ *
+ */
+static unsigned char defpal_data[4*16] =
+{
+0 ,0 ,0 ,255,
+127,0 ,0 ,255,
+0 ,127,0 ,255,
+127,127,0 ,255,
+0 ,0 ,127,255,
+127,0 ,127,255,
+0 ,127,127,255,
+127,127,127,255,
+63 ,63 ,63 ,255,
+255,0 ,0 ,255,
+0 ,255,0 ,255,
+255,255,0 ,255,
+0 ,0 ,255,255,
+255,0 ,255,255,
+0 ,255,255,255,
+255,255,255,255,
+};
+static double defpal_double[4*8*16];
+
+
+typedef struct BablPalette
+{
+ int count; /* number of palette entries */
+ const Babl *format;/* the pixel format the palette is stored in */
+ unsigned char *data; /* one linear segment of all the pixels representing the palette, in order */
+ double *data_double;
+ unsigned char *data_u8;
+ int hash[HASH_TABLE_SIZE];
+ unsigned int hashpx[HASH_TABLE_SIZE];
+} BablPalette;
+
+static void
+babl_palette_reset_hash (BablPalette *pal)
+{
+ int i;
+ for (i = 0; i < HASH_TABLE_SIZE; i++)
+ {
+ pal->hashpx[i] = ((255 << 16) | (255 << 8) | 255) + 11; /* non existant pixel */
+ pal->hash[i] = -1;
+ }
+}
+
+static int
+babl_palette_lookup (BablPalette *pal, int r, int g, int b, int a)
+{
+ unsigned int pixel = (r << 16) | (g << 8) | b;
+ int hash_index = pixel % HASH_TABLE_SIZE;
+ int idx = pal->hash[hash_index];
+
+ if (idx >= 0 &&
+ pal->hashpx[hash_index] == pixel)
+ {
+ return idx;
+ }
+ else
+ {
+ int best_idx = 0;
+ int best_diff = INT_MAX;
+
+ for (idx = 0; idx < pal->count; idx++)
+ {
+ unsigned char *palpx = pal->data_u8 + idx * 4;
+ int pr = palpx[0];
+ int pg = palpx[1];
+ int pb = palpx[2];
+
+ int diff = (r - pr) * (r - pr) +
+ (g - pg) * (g - pg) +
+ (b - pb) * (b - pb);
+ if (diff < best_diff)
+ {
+ best_diff = diff;
+ best_idx = idx;
+ }
+ }
+ pal->hash[hash_index] = best_idx;
+ pal->hashpx[hash_index] = pixel;
+ return best_idx;
+ }
+ return 0;
+}
+
+static BablPalette *make_pal (const Babl *format, const void *data, int count)
+{
+ BablPalette *pal = NULL;
+ int bpp = babl_format_get_bytes_per_pixel (format);
+
+ pal = babl_malloc (sizeof (BablPalette));
+ pal->count = count;
+ pal->format = format;
+ pal->data = babl_malloc (bpp * count);
+ pal->data_double = babl_malloc (4 * sizeof(double) * count);
+ pal->data_u8 = babl_malloc (4 * sizeof(char) * count);
+ memcpy (pal->data, data, bpp * count);
+
+ babl_process (babl_fish (format, babl_format ("RGBA double")),
+ data, pal->data_double, count);
+ babl_process (babl_fish (format, babl_format ("RGBA u8")),
+ data, pal->data_u8, count);
+
+ babl_palette_reset_hash (pal);
+
+ return pal;
+}
+
+static void babl_palette_free (BablPalette *pal)
+{
+ babl_free (pal->data);
+ babl_free (pal->data_double);
+ babl_free (pal->data_u8);
+ babl_free (pal);
+}
+
+static BablPalette *default_palette (void)
+{
+ static BablPalette pal;
+ static int inited = 0;
+ if (inited)
+ return &pal;
+ memset (&pal, 0, sizeof (pal));
+ inited = 1;
+ pal.count = 16;
+ pal.format = babl_format ("RGBA u8"); /* dynamically generated, so
+ the default palette can
+ not be fully static.
+ */
+ pal.data = defpal_data;
+ pal.data_double = defpal_double;
+ pal.data_u8 = defpal_data;
+
+ babl_process (babl_fish (pal.format, babl_format ("RGBA double")),
+ pal.data, pal.data_double, pal.count);
+
+ babl_palette_reset_hash (&pal);
+ return &pal;
+}
+
+static long
+rgba_to_pal (char *src,
+ char *dst,
+ long n,
+ void *dst_model_data)
+{
+ BablPalette **palptr = dst_model_data;
+ BablPalette *pal = *palptr;
+ while (n--)
+ {
+ int idx;
+
+ int best_idx = 0;
+ double best_diff = 100000;
+ double *srcf;
+
+ srcf = ((double *) src);
+
+ for (idx = 0; idx<pal->count; idx++)
+ {
+ double diff;
+ double *palpx = ((double *)pal->data_double) + idx * 4;
+
+ diff = (palpx[0] - srcf[0]) * (palpx[0] - srcf[0]) +
+ (palpx[1] - srcf[1]) * (palpx[1] - srcf[1]) +
+ (palpx[2] - srcf[2]) * (palpx[2] - srcf[2]);
+ if (diff <= best_diff)
+ {
+ best_diff = diff;
+ best_idx = idx;
+ }
+ }
+
+ ((double *) dst)[0] = best_idx / 255.5;
+
+ src += sizeof (double) * 4;
+ dst += sizeof (double) * 1;
+ }
+ return n;
+}
+
+static long
+rgba_to_pala (char *src,
+ char *dst,
+ long n,
+ void *dst_model_data)
+{
+ BablPalette **palptr = dst_model_data;
+ BablPalette *pal = *palptr;
+
+ assert(pal);
+ while (n--)
+ {
+ int idx;
+
+ int best_idx = 0;
+ double best_diff = 100000;
+ double *srcf;
+ double alpha;
+
+ srcf = ((double *) src);
+ alpha = srcf[3];
+
+ for (idx = 0; idx<pal->count; idx++)
+ {
+ double diff;
+ double *palpx = ((double *)pal->data_double) + idx * 4;
+
+ diff = (palpx[0] - srcf[0]) * (palpx[0] - srcf[0]) +
+ (palpx[1] - srcf[1]) * (palpx[1] - srcf[1]) +
+ (palpx[2] - srcf[2]) * (palpx[2] - srcf[2]);
+ if (diff <= best_diff)
+ {
+ best_diff = diff;
+ best_idx = idx;
+ }
+ }
+
+ ((double *) dst)[0] = best_idx / 255.5;
+ ((double *) dst)[1] = alpha;
+
+ src += sizeof (double) * 4;
+ dst += sizeof (double) * 2;
+ }
+ return n;
+}
+
+static long
+pal_to_rgba (char *src,
+ char *dst,
+ long n,
+ void *src_model_data)
+{
+ BablPalette **palptr = src_model_data;
+ BablPalette *pal = *palptr;
+ assert(pal);
+ while (n--)
+ {
+ int idx = (((double *) src)[0]) * 255.5;
+ double *palpx;
+
+ if (idx < 0) idx = 0;
+ if (idx >= pal->count) idx = pal->count-1;
+
+ palpx = ((double *)pal->data_double) + idx * 4;
+ memcpy (dst, palpx, sizeof(double)*4);
+
+ src += sizeof (double) * 1;
+ dst += sizeof (double) * 4;
+ }
+ return n;
+}
+
+static long
+pala_to_rgba (char *src,
+ char *dst,
+ long n,
+ void *src_model_data)
+{
+ BablPalette **palptr = src_model_data;
+ BablPalette *pal = *palptr;
+
+ assert(pal);
+ while (n--)
+ {
+ int idx = (((double *) src)[0]) * 255.5;
+ double alpha = (((double *) src)[1]);
+ double *palpx;
+
+ if (idx < 0) idx = 0;
+ if (idx >= pal->count) idx = pal->count-1;
+
+ palpx = ((double *)pal->data_double) + idx * 4;
+ memcpy (dst, palpx, sizeof(double)*4);
+
+ ((double *)dst)[3] *= alpha;
+
+ src += sizeof (double) * 2;
+ dst += sizeof (double) * 4;
+ }
+ return n;
+}
+
+static long
+rgba_u8_to_pal (unsigned char *src,
+ unsigned char *dst,
+ long n,
+ void *src_model_data)
+{
+ BablPalette **palptr = src_model_data;
+ BablPalette *pal;
+ assert (palptr);
+ pal = *palptr;
+ assert(pal);
+ while (n--)
+ {
+ dst[0] = babl_palette_lookup (pal, src[0], src[1], src[2], src[3]);
+
+ src += sizeof (char) * 4;
+ dst += sizeof (char) * 1;
+ }
+
+ return n;
+}
+
+static long
+rgba_u8_to_pal_a (char *src,
+ char *dst,
+ long n,
+ void *src_model_data)
+{
+ BablPalette **palptr = src_model_data;
+ BablPalette *pal;
+ assert (palptr);
+ pal = *palptr;
+ assert(pal);
+ while (n--)
+ {
+ dst[0] = babl_palette_lookup (pal, src[0], src[1], src[2], src[3]);
+ dst[1] = src[3];
+
+ src += sizeof (char) * 4;
+ dst += sizeof (char) * 2;
+ }
+ return n;
+}
+
+static long
+pal_u8_to_rgba_u8 (char *src,
+ char *dst,
+ long n,
+ void *src_model_data)
+{
+ BablPalette **palptr = src_model_data;
+ BablPalette *pal;
+ assert (palptr);
+ pal = *palptr;
+ assert(pal);
+ while (n--)
+ {
+ int idx = (((unsigned char *) src)[0]);
+ unsigned char *palpx;
+
+ if (idx < 0) idx = 0;
+ if (idx >= pal->count) idx = pal->count-1;
+
+ palpx = ((unsigned char*)pal->data_u8) + idx * 4;
+ memcpy (dst, palpx, sizeof(char)*4);
+
+ src += sizeof (char) * 1;
+ dst += sizeof (char) * 4;
+ }
+ return n;
+}
+
+static long
+pala_u8_to_rgba_u8 (char *src,
+ char *dst,
+ long n,
+ void *src_model_data)
+{
+ BablPalette **palptr = src_model_data;
+ BablPalette *pal;
+ assert (palptr);
+ pal = *palptr;
+ assert(pal);
+ while (n--)
+ {
+ int idx = (((unsigned char *) src)[0]);
+ unsigned char *palpx;
+
+ if (idx < 0) idx = 0;
+ if (idx >= pal->count) idx = pal->count-1;
+
+ palpx = ((unsigned char*)pal->data_u8) + idx * 4;
+ memcpy (dst, palpx, sizeof(char)*4);
+ dst[3] = (dst[3] * src[1]) >> 8;
+
+ src += sizeof (char) * 2;
+ dst += sizeof (char) * 4;
+ }
+ return n;
+}
+
+
+#include "base/util.h"
+
+static inline long
+conv_pal8_pala8 (unsigned char *src, unsigned char *dst, long samples)
+{
+ long n = samples;
+
+ while (n--)
+ {
+ dst[0] = src[0];
+ dst[1] = 255;
+ src += 1;
+ dst += 2;
+ }
+ return samples;
+}
+
+static inline long
+conv_pala8_pal8 (unsigned char *src, unsigned char *dst, long samples)
+{
+ long n = samples;
+
+ while (n--)
+ {
+ dst[0] = src[0];
+ src += 2;
+ dst += 1;
+ }
+ return samples;
+}
+
+int
+babl_format_is_palette (const Babl *format)
+{
+ if (format->class_type == BABL_FORMAT)
+ return format->format.palette;
+ return 0;
+}
+
+/* should return the BablModel, permitting to fetch
+ * other formats out of it?
+ */
+const Babl *babl_new_palette (const char *name,
+ const Babl **format_u8,
+ const Babl **format_u8_with_alpha)
+{
+ const Babl *model;
+ const Babl *model_no_alpha;
+ Babl *f_pal_u8;
+ Babl *f_pal_a_u8;
+ const Babl *component;
+ const Babl *alpha;
+ BablPalette **palptr;
+
+ char cname[64];
+
+ if (!name)
+ {
+ static int cnt = 0;
+ sprintf (cname, "_babl-int-%i", cnt++);
+ name = cname;
+ }
+ else
+ {
+ strcpy (cname, name);
+ name = cname;
+
+ if ((model = babl_db_exist_by_name (babl_model_db (), name)))
+ {
+ cname[0] = ')';
+ if (format_u8)
+ *format_u8 = babl_db_exist_by_name (babl_format_db (), name);
+ cname[0] = '\\';
+ if (format_u8_with_alpha)
+ *format_u8_with_alpha = babl_db_exist_by_name (babl_format_db (), name);
+ return model;
+ }
+ }
+
+ /* re-registering is a no-op */
+ component = babl_component_new (
+ "I",
+ "luma",
+ "chroma",
+ NULL);
+ alpha = babl_component ("A");
+
+ model = babl_model_new ("name", name, component, alpha, NULL);
+ palptr = malloc (sizeof (void*));
+ *palptr = default_palette ();;
+ cname[0] = 'v';
+ model_no_alpha = babl_model_new ("name", name, component, NULL);
+ cname[0] = '\\';
+ f_pal_a_u8 = (void*) babl_format_new ("name", name, model,
+ babl_type ("u8"),
+ component, alpha, NULL);
+ cname[0] = ')';
+ f_pal_u8 = (void*) babl_format_new ("name", name, model_no_alpha,
+ babl_type ("u8"),
+ component, NULL);
+
+ f_pal_a_u8->format.palette = 1;
+ f_pal_u8->format.palette = 1;
+
+ babl_conversion_new (
+ model,
+ babl_model ("RGBA"),
+ "linear", pala_to_rgba,
+ "data", palptr,
+ NULL
+ );
+
+ babl_conversion_new (
+ babl_model ("RGBA"),
+ model,
+ "linear", rgba_to_pala,
+ "data", palptr,
+ NULL
+ );
+
+ babl_conversion_new (
+ model_no_alpha,
+ babl_model ("RGBA"),
+ "linear", pal_to_rgba,
+ "data", palptr,
+ NULL
+ );
+ babl_conversion_new (
+ babl_model ("RGBA"),
+ model_no_alpha,
+ "linear", rgba_to_pal,
+ "data", palptr,
+ NULL
+ );
+
+ babl_conversion_new (
+ f_pal_u8,
+ f_pal_a_u8,
+ "linear", conv_pal8_pala8,
+ NULL
+ );
+
+ babl_conversion_new (
+ f_pal_a_u8,
+ f_pal_u8,
+ "linear", conv_pala8_pal8,
+ NULL
+ );
+
+
+ babl_conversion_new (
+ f_pal_u8,
+ babl_format ("RGBA u8"),
+ "linear", pal_u8_to_rgba_u8,
+ "data", palptr,
+ NULL);
+
+
+ babl_conversion_new (
+ f_pal_a_u8,
+ babl_format ("RGBA u8"),
+ "linear", pala_u8_to_rgba_u8,
+ "data", palptr,
+ NULL);
+
+ babl_conversion_new (
+ babl_format ("RGBA u8"),
+ f_pal_a_u8,
+ "linear", rgba_u8_to_pal_a,
+ "data", palptr,
+ NULL);
+ babl_conversion_new (
+ babl_format ("RGBA u8"),
+ f_pal_u8,
+ "linear", rgba_u8_to_pal,
+ "data", palptr,
+ NULL);
+
+ babl_set_user_data (model, palptr);
+ babl_set_user_data (model_no_alpha, palptr);
+
+ if (format_u8)
+ *format_u8 = f_pal_u8;
+ if (format_u8_with_alpha)
+ *format_u8_with_alpha = f_pal_a_u8;
+ babl_sanity ();
+ return model;
+}
+
+void
+babl_palette_set_palette (const Babl *babl,
+ const Babl *format,
+ void *data,
+ int count)
+{
+ BablPalette **palptr = babl_get_user_data (babl);
+ babl_palette_reset (babl);
+ *palptr = make_pal (format, data, count);
+}
+
+void
+babl_palette_reset (const Babl *babl)
+{
+ BablPalette **palptr = babl_get_user_data (babl);
+ if (*palptr != default_palette ())
+ {
+ babl_palette_free (*palptr);
+ }
+ *palptr = default_palette ();
+}
--- /dev/null
+/* babl - dynamically extendable universal pixel conversion library.
+ * Copyright (C) 2005 Øyvind Kolås
+ * 2013 Daniel Sabo
+ *
+ * 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 3 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, see
+ * <http://www.gnu.org/licenses/>.
+ */
+
+#include "babl-ref-pixels.h"
+#include "babl-ref-pixels.inc"
+
+int
+babl_get_num_path_test_pixels (void)
+{
+ return babl_num_path_test_pixels;
+}
+
+int
+babl_get_num_conversion_test_pixels (void)
+{
+ return babl_num_conversion_test_pixels;
+}
+
+int
+babl_get_num_format_test_pixels (void)
+{
+ return babl_num_format_test_pixels;
+}
+
+int
+babl_get_num_model_test_pixels (void)
+{
+ return babl_num_model_test_pixels;
+}
+
+int
+babl_get_num_type_test_pixels (void)
+{
+ return babl_num_type_test_pixels;
+}
+
+const double *
+babl_get_path_test_pixels (void)
+{
+ return babl_path_test_pixels;
+}
+
+const double *
+babl_get_conversion_test_pixels (void)
+{
+ return babl_conversion_test_pixels;
+}
+
+const double *
+babl_get_format_test_pixels (void)
+{
+ return babl_format_test_pixels;
+}
+
+const double *
+babl_get_model_test_pixels (void)
+{
+ return babl_model_test_pixels;
+}
+
+const double *
+babl_get_type_test_pixels (void)
+{
+ return babl_type_test_pixels;
+}
--- /dev/null
+/* babl - dynamically extendable universal pixel conversion library.
+ * Copyright (C) 2005-2008, Øyvind Kolås and others.
+ *
+ * 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 3 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, see
+ * <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef _BABL_REF_PIXELS_H
+#define _BABL_REF_PIXELS_H
+
+int babl_get_num_path_test_pixels (void);
+int babl_get_num_conversion_test_pixels (void);
+int babl_get_num_format_test_pixels (void);
+int babl_get_num_model_test_pixels (void);
+int babl_get_num_type_test_pixels (void);
+
+const double *babl_get_path_test_pixels (void);
+const double *babl_get_conversion_test_pixels (void);
+const double *babl_get_format_test_pixels (void);
+const double *babl_get_model_test_pixels (void);
+const double *babl_get_type_test_pixels (void);
+
+#endif /* _BABL_REF_PIXELS_H */
\ No newline at end of file
--- /dev/null
+/* babl - dynamically extendable universal pixel conversion library.
+ * Copyright (C) 2005 Øyvind Kolås
+ * 2013 Daniel Sabo
+ *
+ * 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 3 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, see
+ * <http://www.gnu.org/licenses/>.
+ */
+
+/* THIS IS A GENERATED FILE - DO NOT EDIT */
+
+static const int babl_num_path_test_pixels = 3072;
+
+static const double babl_path_test_pixels[12288] = {
+0x1.87326f630e64ep-4, 0x1.d98b8203b317p-1, 0x1.80c353a70186ap-1, 0x1.8b30cef31661ap-1,
+0x1.ed4afa3bda95fp-1, 0x1.5b6f8b7eb6df1p-1, 0x1.a149bf2b42938p-2, 0x1.a42310c348462p-4,
+0x1.076180960ec3p-1, 0x1.70fdcafae1fb9p-2, 0x1.b56661636acccp-4, 0x1.e920a48bd2415p-1,
+0x1.6d6c669adad8dp-1, 0x1.db6bd983b6d7bp-3, 0x1.fcd15da3f9a2cp-4, 0x1.0228b6ca04517p-2,
+0x1.ef3cee63de79ep-1, 0x1.8dfaef231bf5ep-2, 0x1.5ee3acfebdc76p-1, 0x1.668783d6cd0fp-1,
+0x1.205f038640bep-1, 0x1.f9fa8d2ff3f52p-1, 0x1.20a64bea414c9p-1, 0x1.ee5b3f63dcb68p-2,
+0x1.2c44ab0a58895p-1, 0x1.927c053324f81p-3, 0x1.98d196cf31a33p-1, 0x1.4635fc0e8c6cp-1,
+0x1.7e5e224afcbc4p-1, 0x1.1a3f9972347f3p-3, 0x1.c6f50c538dea2p-3, 0x1.af4470375e88ep-1,
+0x1.00db42e201b68p-4, 0x1.f28096bfe5013p-1, 0x1.3a753f2674ea8p-1, 0x1.accc52835998ap-6,
+0x1.4df0223a9be04p-1, 0x1.6343d782c687bp-6, 0x1.07ab12b20f562p-3, 0x1.55468b42aa8d1p-3,
+0x1.873208730e641p-2, 0x1.e25e4373c4bc8p-3, 0x1.f3923ac3e7247p-4, 0x1.882b56831056bp-4,
+0x1.dee50e7bbdca2p-2, 0x1.f831cc33f063ap-3, 0x1.64338c6ac8672p-2, 0x1.bd5eeb3b7abddp-2,
+0x1.4509ea9e8a13dp-1, 0x1.0fd733421fae6p-5, 0x1.14dbe5c229b7dp-3, 0x1.95a3b8832b477p-3,
+0x1.5f000c02be002p-6, 0x1.65dd455acbba9p-1, 0x1.5c968dd2b92d2p-1, 0x1.373cab6a6e795p-1,
+0x1.ca7c46ab94f89p-1, 0x1.ead04943d5a09p-2, 0x1.f5ca9de3eb954p-3, 0x1.48da68f291b4dp-1,
+0x1.3bf80afe77f01p-1, 0x1.de5fd51bbcbfbp-2, 0x1.f03db24be07b6p-2, 0x1.5c13735eb826ep-1,
+0x1.c361029386c2p-2, 0x1.94a0c24329418p-4, 0x1.6979d5f2d2f3bp-1, 0x1.7d051c22fa0a4p-4,
+0x1.ed71b823dae37p-4, 0x1.ab649aa356c93p-1, 0x1.09e48caa13c92p-2, 0x1.01473b3e028e7p-1,
+0x1.1fe15be23fc2bp-4, 0x1.86c91b5b0d923p-2, 0x1.324ca60e64995p-1, 0x1.136eb2ba26dd6p-1,
+0x1.417100ba82e2p-1, 0x1.e4666c47c8ccep-1, 0x1.f21e2857e43c5p-1, 0x1.0cf5d6aa19ebbp-2,
+0x1.f563df7beac7cp-1, 0x1.baa90e2375522p-4, 0x1.d7c7b2ebaf8f6p-2, 0x1.6f7f6002defecp-11,
+0x1.9d32671f3a64dp-1, 0x1.21e99d1243d34p-3, 0x1.37988b466f311p-1, 0x1.67aeadc6cf5d6p-1,
+0x1.3de28be67bc51p-1, 0x1.b50b32bf6a166p-1, 0x1.61122d6ac2246p-2, 0x1.e76a5b93ced4bp-3,
+0x1.48763a9290ec7p-2, 0x1.a8a7efdb514fep-1, 0x1.d5ee0a43abdc1p-1, 0x1.85eb9e970bd74p-1,
+0x1.db3c0827b6781p-1, 0x1.3f67e0327ecfcp-1, 0x1.b58c421b6b188p-1, 0x1.8ea3f2831d47ep-5,
+0x1.d598f5a3ab31fp-2, 0x1.d3f44363a7e88p-4, 0x1.1a317a6a3462fp-1, 0x1.0ec8a64e1d915p-1,
+0x1.fbc62c33f78c6p-2, 0x1.31f881d263f1p-3, 0x1.11bac82223759p-4, 0x1.faa0b683f5417p-4,
+0x1.872465c30e48dp-4, 0x1.455815828ab03p-5, 0x1.8b9e044b173c1p-2, 0x1.324361826486cp-4,
+0x1.2eaa8c725d552p-3, 0x1.b1b2db9b6365bp-1, 0x1.352260626a44cp-4, 0x1.e8dd0a3fd1ba1p-1,
+0x1.fa2d42dff45a8p-1, 0x1.5e3cd752bc79bp-1, 0x1.508bb802a1177p-1, 0x1.380fcec6701fap-1,
+0x1.13480a0e26901p-1, 0x1.14ceb802299d7p-9, 0x1.b1ea65ab63d4dp-1, 0x1.b78327576f065p-1,
+0x1.a9bcbe9353798p-1, 0x1.87d86feb0fb0ep-1, 0x1.3d6ec5ea7add9p-1, 0x1.84f8c6b709f19p-1,
+0x1.8e80a0331d014p-2, 0x1.e5f61003cbec2p-2, 0x1.9de305e33bc61p-1, 0x1.b20ccaef64199p-1,
+0x1.2d79906e5af32p-1, 0x1.70290092e052p-2, 0x1.81aae2730355cp-2, 0x1.5ae53422b5ca7p-4,
+0x1.0492a0be09254p-1, 0x1.c61994838c333p-2, 0x1.aac2f5535585fp-3, 0x1.35772d7a6aee6p-1,
+0x1.eec49733dd893p-2, 0x1.307fbf7a60ff8p-1, 0x1.5bbf99aab77f3p-1, 0x1.430ceeba8619ep-1,
+0x1.c465362388ca7p-2, 0x1.8263e5b704c7dp-1, 0x1.2be9f8f657d3fp-1, 0x1.b8bfbbe3717f7p-2,
+0x1.c1417a0b8282fp-2, 0x1.f1d6c3d3e3ad8p-3, 0x1.46facb428df59p-5, 0x1.f3e8c713e7d19p-1,
+0x1.f629feb3ec54p-3, 0x1.c65a125f8cb42p-1, 0x1.ab6bee6b56d7ep-1, 0x1.3a39f2027473ep-4,
+0x1.4e3282469c65p-1, 0x1.d1b568a3a36adp-2, 0x1.ac4004f758801p-1, 0x1.572d25c2ae5a5p-5,
+0x1.dbd5bc57b7ab8p-1, 0x1.4a230ad694461p-1, 0x1.c77f9d4b8eff4p-1, 0x1.094f4cc2129eap-1,
+0x1.1bc58e02378b2p-8, 0x1.10aa1d0a21544p-2, 0x1.34abf34a6957ep-1, 0x1.06ca2bde0d945p-1,
+0x1.6b61d8c6d6c3bp-1, 0x1.9f5cb09f3eb96p-1, 0x1.e20acaa3c4159p-4, 0x1.8b10917316212p-3,
+0x1.9fb8e0333f71cp-2, 0x1.9800f2ff3001ep-1, 0x1.a5d113174ba22p-1, 0x1.b20f0b2b641e1p-1,
+0x1.1a64d8b634c9bp-1, 0x1.a376181346ec3p-2, 0x1.1cddd23239bbap-2, 0x1.fb0595bbf60b3p-1,
+0x1.4e30bd029c618p-1, 0x1.45bd2b9a8b7a5p-2, 0x1.eeee5ccfdddccp-1, 0x1.cbbb3caf97768p-1,
+0x1.a4e2a0a349c54p-3, 0x1.9a5a4b3734b49p-1, 0x1.f3027aefe604fp-1, 0x1.b76b2a6f6ed65p-1,
+0x1.0669ff0a0cd4p-2, 0x1.9f427fe73e85p-1, 0x1.ccddfccf99bcp-1, 0x1.7c2aef62f855ep-3,
+0x1.d2cb1573a5963p-2, 0x1.945d9a1728bb3p-1, 0x1.685a089ed0b41p-1, 0x1.d73a2bb3ae745p-2,
+0x1.cb2a898396551p-5, 0x1.3a0bf7ca7417fp-2, 0x1.f26741b7e4ce8p-1, 0x1.8814815f1029p-1,
+0x1.e3156403c62adp-4, 0x1.7544d842ea89bp-4, 0x1.ead8a5bfd5b15p-1, 0x1.0c3f1c9a187e4p-1,
+0x1.c6a98e078d532p-1, 0x1.90a9b8d321537p-1, 0x1.7c9c4f8af938ap-2, 0x1.c21ccd738439ap-2,
+0x1.8993137313262p-3, 0x1.4cbd10de997a2p-1, 0x1.b827f8eb704ffp-2, 0x1.b09581df612bp-1,
+0x1.ef9ba6afdf375p-1, 0x1.9604b2832c096p-2, 0x1.7c50be8af8a18p-1, 0x1.63513b52c6a27p-3,
+0x1.957291d32ae52p-3, 0x1.6f53397adea67p-1, 0x1.03f7944207ef3p-5, 0x1.d12347f3a2469p-2,
+0x1.0e95b95e1d2b7p-1, 0x1.dd1d7613ba3afp-1, 0x1.479c5fd68f38cp-1, 0x1.f7fb4417eff69p-1,
+0x1.717b1026e2f62p-1, 0x1.5fecd0e2bfd9ap-2, 0x1.c730b3db8e616p-2, 0x1.8e2db8c31c5b7p-1,
+0x1.4cfc645699f8dp-1, 0x1.abff374357fe7p-2, 0x1.16423a1e2c847p-1, 0x1.895f10d712be2p-1,
+0x1.04a836aa09507p-1, 0x1.011adfda0235cp-1, 0x1.2b3c5ae25678bp-2, 0x1.96a389632d471p-2,
+0x1.2389315a47126p-2, 0x1.53ec5536a7d8bp-1, 0x1.ac602b6b58c05p-1, 0x1.e852bb13d0a57p-2,
+0x1.4152cc2282a5ap-2, 0x1.10e84fba21d0ap-2, 0x1.497dbeca92fb8p-2, 0x1.208a197a41143p-2,
+0x1.5376811ea6edp-1, 0x1.087cef6210f9ep-4, 0x1.d232b72ba4657p-2, 0x1.b8d3259371a65p-1,
+0x1.9062d76720c5bp-1, 0x1.f2b1a9b3e5635p-2, 0x1.42c9931a85932p-2, 0x1.3df121827be24p-2,
+0x1.acec95d359d93p-2, 0x1.e9012963d2025p-1, 0x1.2de7a9b25bcf5p-2, 0x1.1fc56c323f8aep-3,
+0x1.31ef23a263de4p-2, 0x1.7a8c2ec6f5186p-1, 0x1.d61f13cfac3e2p-1, 0x1.e5f3f627cbe7fp-1,
+0x1.422f29a2845e5p-3, 0x1.d8c29bdbb1853p-2, 0x1.6f5306fadea61p-1, 0x1.55340112aa68p-1,
+0x1.ed7c2dc7daf86p-1, 0x1.3c4d1a02789a3p-7, 0x1.042e2e02085c6p-4, 0x1.fd0319c3fa063p-3,
+0x1.58dd899eb1bb1p-1, 0x1.cce5f12f99cbep-1, 0x1.736a23fae6d44p-1, 0x1.f986efb3f30dep-1,
+0x1.55686422aad0dp-3, 0x1.829035c305207p-5, 0x1.1397f8da272ffp-2, 0x1.a8d09a2b51a13p-1,
+0x1.c9c50a63938a1p-4, 0x1.72e55802e5cabp-1, 0x1.61a3bfbac3478p-1, 0x1.c99b78b39336fp-1,
+0x1.b0f8b36361f16p-3, 0x1.8444a20308894p-8, 0x1.a25025d344a05p-3, 0x1.42b477c28568fp-1,
+0x1.ec09b2a7d8136p-1, 0x1.ff0fbc9bfe1f8p-2, 0x1.8aa5d2d3154bap-1, 0x1.0a0288ea14051p-2,
+0x1.e8503443d0a07p-3, 0x1.60c4e69ec189dp-1, 0x1.abd4ea6357a9dp-3, 0x1.953faef32a7f6p-2,
+0x1.3498d2226931ap-3, 0x1.da484197b4908p-1, 0x1.fd3d88c3fa7b1p-5, 0x1.d5131283aa262p-4,
+0x1.df3975ffbe72fp-1, 0x1.0166793202ccfp-3, 0x1.73c65182e78cap-2, 0x1.3816ff9e702ep-1,
+0x1.a7f1ef034fe3ep-6, 0x1.6a6a65e2d4d4dp-4, 0x1.319def4e633bep-1, 0x1.8a66a21314cd4p-3,
+0x1.15d940622bb28p-3, 0x1.bb69ebbb76d3dp-1, 0x1.6d485582da90bp-6, 0x1.fabbc593f5779p-3,
+0x1.2e4f43be5c9e8p-1, 0x1.6d0e0266da1cp-1, 0x1.2129a86242535p-3, 0x1.9a8d7097351aep-1,
+0x1.70168baee02d1p-1, 0x1.61bce71ac379dp-2, 0x1.ba83d0b37507ap-2, 0x1.5c203e52b8408p-1,
+0x1.b06651db60ccap-1, 0x1.9f9eeca33f3dep-3, 0x1.e12182cbc243p-1, 0x1.53d2f742a7a5fp-4,
+0x1.c8aca1c791594p-1, 0x1.305af58260b5fp-3, 0x1.ea346ccbd468ep-2, 0x1.5d2d6502ba5adp-5,
+0x1.32f7f7a265effp-4, 0x1.14ee0ef229dc2p-1, 0x1.41d4e28283a9cp-3, 0x1.661d3d02cc3a8p-7,
+0x1.5547ad3eaa8f6p-1, 0x1.0a58616214b0cp-1, 0x1.3daf74927b5efp-1, 0x1.62873cbac50e8p-1,
+0x1.37a5ae1e6f4b6p-1, 0x1.bd358f737a6b2p-3, 0x1.c520e53f8a41dp-1, 0x1.7d1bfe3afa38p-1,
+0x1.55ba7ca2ab75p-4, 0x1.d08b27eba1165p-1, 0x1.fbcaef9ff795ep-1, 0x1.59069352b20d2p-1,
+0x1.3d992a4e7b325p-1, 0x1.105566d220aadp-3, 0x1.e72807d3ce501p-2, 0x1.5b5f6bf2b6bedp-2,
+0x1.e9e79a83d3cf3p-2, 0x1.d0d5ec43a1abep-1, 0x1.39fe898273fd1p-6, 0x1.4ab43e3295688p-2,
+0x1.c5ed3b438bda7p-4, 0x1.eaf17717d5e2fp-1, 0x1.9fa8fc0b3f52p-2, 0x1.6a492c02d4926p-9,
+0x1.b841a3a370834p-4, 0x1.c4eeb46b89dd7p-1, 0x1.73d1f7c2e7a3fp-5, 0x1.759ccdb2eb39ap-3,
+0x1.b3b986b367731p-2, 0x1.9ec960733d92cp-3, 0x1.8bfea18317fd4p-3, 0x1.792384a2f2471p-4,
+0x1.720ab982e4157p-1, 0x1.a0af1cf3415e4p-1, 0x1.91abad4f23576p-1, 0x1.5360cf3aa6c1ap-2,
+0x1.ff901983ff203p-6, 0x1.56cc928aad992p-1, 0x1.36632ea26cc66p-4, 0x1.d59e8303ab3dp-4,
+0x1.2757ba724eaf7p-1, 0x1.14baaba229755p-4, 0x1.93ba63b72774cp-1, 0x1.93c3930327872p-3,
+0x1.9ab2bca335658p-3, 0x1.0e9ccf3a1d39ap-2, 0x1.12a09aba25413p-1, 0x1.5ba07c6eb741p-1,
+0x1.60914f72c122ap-3, 0x1.1c708f0638e12p-1, 0x1.f5370803ea6e1p-10, 0x1.21c3f68a4387fp-2,
+0x1.0762061a0ec41p-1, 0x1.a19e3313433c6p-2, 0x1.249888e249311p-2, 0x1.3e6a3a927cd47p-1,
+0x1.2b7b9be256f73p-2, 0x1.5312c7e2a6259p-2, 0x1.9bd16dff37a2ep-1, 0x1.6f9a914adf352p-1,
+0x1.113bbc0e22778p-1, 0x1.fed1165ffda23p-1, 0x1.9ebf01e33d7ep-1, 0x1.068ceb1a0d19dp-2,
+0x1.9f80334f3f006p-1, 0x1.306aaf2e60d56p-1, 0x1.2cf6dd2e59edcp-1, 0x1.af7cb41b5ef97p-1,
+0x1.0e6e83721cddp-2, 0x1.53c34302a7868p-1, 0x1.ea30847bd4611p-1, 0x1.ae8efc2b5d1ep-1,
+0x1.765a9876ecb53p-1, 0x1.7deae82efbd5dp-1, 0x1.37fe0e826ffc2p-5, 0x1.dd0747a3ba0e9p-1,
+0x1.4e53f2029ca7ep-7, 0x1.26207ba64c40fp-1, 0x1.38a7c40e714f9p-1, 0x1.75768e92eaed2p-3,
+0x1.0a442aa214885p-3, 0x1.39a25f927344cp-1, 0x1.dc7f3dd3b8fe8p-2, 0x1.49f310c693e62p-1,
+0x1.4e2f23829c5e4p-6, 0x1.808be35f0117cp-1, 0x1.10ba96aa21753p-2, 0x1.405e8e1a80bd2p-2,
+0x1.50aa3a62a1547p-4, 0x1.2175ca8242eb9p-4, 0x1.f93b0b03f2761p-6, 0x1.3b51035a76a2p-1,
+0x1.17fe7d622ffdp-4, 0x1.ae88da3b5d11bp-1, 0x1.be9778eb7d2efp-1, 0x1.c28002fb85p-1,
+0x1.bde712cb7bce2p-2, 0x1.d71cac2bae396p-2, 0x1.71fcb712e3f97p-1, 0x1.662acb1ecc559p-1,
+0x1.fa8cc8a3f5199p-4, 0x1.5c2d3b8ab85a7p-1, 0x1.14b9c74a29739p-1, 0x1.b5ac318f6b586p-1,
+0x1.b430477368609p-2, 0x1.2839a83250735p-1, 0x1.92b3792f2566fp-1, 0x1.bea2e7037d45dp-2,
+0x1.39688f5272d12p-3, 0x1.96b67a732d6cfp-2, 0x1.3caf172a795e3p-1, 0x1.21d65d0243accp-2,
+0x1.3f6732027ece6p-7, 0x1.5775b082aeeb6p-4, 0x1.dade3f47b5bc8p-1, 0x1.ede2bc83dbc58p-6,
+0x1.ab7a996f56f53p-1, 0x1.8cee2a6319dc5p-3, 0x1.5f3cb9eabe797p-2, 0x1.d58fe0bbab1fcp-1,
+0x1.0ed487d21da91p-2, 0x1.7ed06a9afda0dp-2, 0x1.10e0e41621c1dp-1, 0x1.54d4272aa9a85p-2,
+0x1.b7c43e136f888p-3, 0x1.9ef0b9fb3de17p-2, 0x1.b3a85a336750bp-3, 0x1.4ce498ea99c93p-1,
+0x1.bb06b313760d6p-1, 0x1.dee6cd9fbdcdap-1, 0x1.661ec812cc3d9p-2, 0x1.fa584c27f4b0ap-1,
+0x1.3b14092676281p-1, 0x1.c7c92b538f925p-1, 0x1.b0047db36009p-1, 0x1.52c2cdc2a585ap-5,
+0x1.e005a703c00b5p-2, 0x1.42b7f6de856ffp-1, 0x1.e8fb40c3d1f68p-2, 0x1.3e5cf75a7cb9fp-1,
+0x1.c266828384cdp-6, 0x1.8965bc4312cb8p-4, 0x1.cf4825db9e905p-1, 0x1.310d0e02621a2p-5,
+0x1.706db662e0db7p-3, 0x1.aa26651f544cdp-1, 0x1.13ff362227fe7p-4, 0x1.e581c203cb038p-7,
+0x1.ac3df683587bfp-6, 0x1.a43c877348791p-2, 0x1.dd25e7c3ba4bdp-1, 0x1.2998673a5330dp-2,
+0x1.91867907230cfp-1, 0x1.dc0d97abb81b3p-2, 0x1.3f3647327e6c9p-1, 0x1.ff77888bfeef1p-1,
+0x1.bd7f28d37afe5p-1, 0x1.ac205dbf5840cp-1, 0x1.4c5c217698b84p-1, 0x1.7885dbe2f10bbp-1,
+0x1.8b072b5b160e5p-1, 0x1.ff6b857ffed71p-1, 0x1.72de280ae5bc5p-1, 0x1.8c3668fb186cdp-2,
+0x1.c734b0cf8e696p-1, 0x1.22e2a5ba45c55p-1, 0x1.b68ec2bb6d1d8p-2, 0x1.6e6f089adcde1p-2,
+0x1.966a72632cd4ep-3, 0x1.cfc501bf9f8ap-1, 0x1.f5947ba7eb28fp-1, 0x1.ceb742b39d6e8p-3,
+0x1.e3728803c6e51p-10, 0x1.c4dca17f89b94p-1, 0x1.0d7d431a1afa8p-2, 0x1.74349b72e8693p-3,
+0x1.6f03069ade061p-1, 0x1.527d10aaa4fa2p-2, 0x1.928cb79325197p-3, 0x1.7c64f64ef8c9fp-1,
+0x1.7b5ccc0ef6b9ap-1, 0x1.072456a20e48bp-3, 0x1.13129e8226254p-5, 0x1.0ce3451619c69p-1,
+0x1.2fcfe17e5f9fcp-1, 0x1.5067711aa0ceep-1, 0x1.0c5acd9e18b5ap-1, 0x1.da9e14a3b53c3p-2,
+0x1.f90f9dabf21f4p-2, 0x1.62dbbc42c5b78p-3, 0x1.975398c32ea73p-3, 0x1.0f1df45a1e3bfp-2,
+0x1.6089d232c113ap-3, 0x1.d8b30e3bb1662p-1, 0x1.4daa2eae9b546p-1, 0x1.f5725583eae4bp-5,
+0x1.f72b67ebee56dp-2, 0x1.478c80428f19p-4, 0x1.ad1d53535a3aap-2, 0x1.6130508ec260ap-1,
+0x1.f8b691c7f16d2p-1, 0x1.98464a9b308c9p-2, 0x1.d4de213ba9bc4p-1, 0x1.f9a84b0bf3509p-1,
+0x1.21ff8d9a43ff2p-2, 0x1.6e730b22dce61p-3, 0x1.5ad5c792b5ab9p-3, 0x1.66b20002cd64p-16,
+0x1.04db4b1e09b69p-1, 0x1.76b13f9aed628p-2, 0x1.7c67c3b6f8cf8p-1, 0x1.00702e5200e06p-2,
+0x1.fa436aebf486dp-2, 0x1.8d98ed9f1b31ep-1, 0x1.8d1b5c3f1a36cp-1, 0x1.678cb782cf197p-4,
+0x1.bc00bd7378018p-2, 0x1.32ec53ba65d8ap-2, 0x1.1a40a14234814p-1, 0x1.da882d8fb5106p-1,
+0x1.e45a31dbc8b46p-2, 0x1.80158777002b1p-1, 0x1.885c9ef310b94p-3, 0x1.4a4f8d7e949f2p-1,
+0x1.58c895aeb1913p-1, 0x1.afc1566b5f82bp-1, 0x1.69a6b2d6d34d6p-1, 0x1.51792682a2f25p-3,
+0x1.d8b2e673b165dp-1, 0x1.00d571f201aaep-3, 0x1.b58e9a2f6b1d3p-1, 0x1.d1697837a2d2fp-1,
+0x1.0c5881ce18b1p-1, 0x1.8a6cbb6b14d97p-1, 0x1.cb11c33f96238p-1, 0x1.9d58489b3ab09p-1,
+0x1.e6097e33cc13p-1, 0x1.0e39a9021c735p-4, 0x1.9d5b15ff3ab63p-1, 0x1.d5c9929bab932p-2,
+0x1.ba3fa9db747f5p-2, 0x1.19c2d9b23385bp-1, 0x1.6b1ce076d639cp-1, 0x1.da418a63b4831p-1,
+0x1.4eb78ea29d6f2p-2, 0x1.f070796be0e0fp-2, 0x1.ccc855039990bp-7, 0x1.855c260b0ab85p-1,
+0x1.91ae6693235cdp-1, 0x1.2173c29642e78p-1, 0x1.5fe45396bfc8ap-1, 0x1.07b6fefa0f6ep-2,
+0x1.4312941286253p-2, 0x1.c1fb7b5383f6fp-1, 0x1.ce2b0cfb9c562p-1, 0x1.fa51dfbbf4a3cp-1,
+0x1.71bcd1bae379ap-1, 0x1.37d1bfd26fa38p-1, 0x1.3ac0a56275815p-3, 0x1.4a6fb82a94df7p-1,
+0x1.78071c4ef00e4p-1, 0x1.0fb0e2021f61cp-7, 0x1.1bd9305e37b26p-1, 0x1.08bf3c32117e8p-2,
+0x1.8eab7ef31d57p-1, 0x1.cdd5e7339babdp-2, 0x1.0dbf35821b7e7p-4, 0x1.74b4fd22e96ap-1,
+0x1.08b228be11645p-1, 0x1.bf12fcb37e26p-1, 0x1.7e6719b2fcce3p-3, 0x1.e5d1fdabcba4p-1,
+0x1.b1abacc363576p-2, 0x1.cab6a6e3956d5p-1, 0x1.c013880f80271p-1, 0x1.80319db300634p-1,
+0x1.85ddc72b0bbb9p-2, 0x1.c746a9638e8d5p-1, 0x1.058dc3ba0b1b8p-1, 0x1.52752892a4ea5p-3,
+0x1.d174d7eba2e9bp-2, 0x1.95c85d432b90cp-3, 0x1.b0f1934b61e32p-2, 0x1.8a43b60314877p-1,
+0x1.3b6c950276d93p-4, 0x1.4d47ad3a9a8f6p-2, 0x1.849595bb092b3p-1, 0x1.992a645f3254dp-1,
+0x1.de75966fbceb3p-1, 0x1.d345bf13a68b8p-1, 0x1.c734390b8e687p-2, 0x1.567cb2beacf96p-1,
+0x1.d784829baf09p-1, 0x1.ff734ce7fee6ap-1, 0x1.dadc50d7b5b8ap-1, 0x1.6630018acc6p-1,
+0x1.ccbc80fb9979p-2, 0x1.fc94378bf9287p-1, 0x1.b5c9fd536b94p-2, 0x1.ef10693bde20dp-1,
+0x1.bba7343b774e7p-1, 0x1.3a7ec51674fd9p-1, 0x1.d4e266e7a9c4dp-1, 0x1.28fa153251f43p-2,
+0x1.05356bfa0a6adp-1, 0x1.94f5eef329ebep-1, 0x1.4aea84c295d51p-5, 0x1.c8244f8f9048ap-1,
+0x1.5c3c9852b8793p-1, 0x1.1a3c6c063478ep-1, 0x1.cc199b4398333p-5, 0x1.13dc111227b82p-3,
+0x1.7fae8356ff5dp-1, 0x1.ea74c6b3d4e99p-2, 0x1.cf3aba479e757p-1, 0x1.a71c15fb4e383p-1,
+0x1.9bde39f737bc7p-1, 0x1.53d04ffea7a0ap-1, 0x1.40467a56808cfp-1, 0x1.7a53d066f4a7ap-1,
+0x1.27160f124e2c2p-1, 0x1.1f04b6c23e097p-4, 0x1.a1a1064343421p-2, 0x1.fd352353fa6a4p-2,
+0x1.1a9f1de2353e4p-4, 0x1.5759a7eaaeb35p-2, 0x1.932a4cd32654ap-3, 0x1.09b2243e13645p-1,
+0x1.508216faa1043p-2, 0x1.3faf91de7f5f2p-1, 0x1.f1851aebe30a3p-2, 0x1.8fa0fed31f42p-3,
+0x1.e8b95bd3d172bp-3, 0x1.9b49e8b33693dp-2, 0x1.f0ca94a3e1953p-2, 0x1.7f63c2eefec78p-1,
+0x1.8a6b8d2314d72p-3, 0x1.0d13f29e1a27ep-1, 0x1.4788127a8f102p-1, 0x1.bed77b9b7daefp-1,
+0x1.3a82f5027505fp-4, 0x1.6449ac2ec8936p-1, 0x1.e73ff003ce7fep-8, 0x1.a6fee1fb4dfdcp-1,
+0x1.66103e12cc208p-3, 0x1.d3093a27a6127p-1, 0x1.4e1af7f29c35fp-1, 0x1.f562497feac49p-1,
+0x1.26d98a264db31p-1, 0x1.1cc2e48a3985dp-2, 0x1.6fb619e2df6c3p-1, 0x1.37be64d26f7cdp-3,
+0x1.6484123ac9082p-2, 0x1.021a74020434fp-3, 0x1.4c8a2ade99145p-1, 0x1.ab2bd9bb5657bp-2,
+0x1.d866e1ebb0cdcp-2, 0x1.b154be1362a98p-1, 0x1.df48111bbe902p-1, 0x1.94747c7728e9p-1,
+0x1.e2089fe3c4114p-2, 0x1.b0153d1b602a8p-2, 0x1.f85cbc2bf0b98p-1, 0x1.6b32a6e6d6655p-1,
+0x1.a5af92eb4b5f2p-1, 0x1.e1840cf3c3082p-2, 0x1.d52cd3a3aa59ap-2, 0x1.094ec602129d9p-6,
+0x1.fdd5f917fbabfp-1, 0x1.90f3e24321e7cp-4, 0x1.c721f1cf8e43ep-1, 0x1.2932bdc252658p-4,
+0x1.9668287b2cd05p-1, 0x1.caf071af95e0ep-1, 0x1.cc2539b3984a7p-1, 0x1.efec37ffdfd87p-1,
+0x1.9df9abd33bf35p-1, 0x1.1a4031a234806p-1, 0x1.e54e817bca9dp-1, 0x1.89a66beb134cdp-2,
+0x1.a8a1a3e751434p-1, 0x1.55049b5aaa093p-1, 0x1.12c2cf2a2585ap-1, 0x1.6b8eb402d71d7p-3,
+0x1.958b385b2b167p-1, 0x1.7d33e822fa67dp-3, 0x1.307999de60f33p-1, 0x1.037d52a206faap-2,
+0x1.0a1b81821437p-5, 0x1.0fc1aaf61f835p-1, 0x1.63325c42c664cp-5, 0x1.01a6080a034c1p-1,
+0x1.e7cc4987cf989p-1, 0x1.d1fc3d83a3f88p-6, 0x1.b362bbb366c57p-3, 0x1.8d7bdc6f1af7cp-1,
+0x1.fea3d0d3fd47ap-2, 0x1.576f18beaede3p-1, 0x1.95c6529f2b8cap-1, 0x1.fa4fc2fbf49f8p-2,
+0x1.898d950b131b3p-1, 0x1.5ce8446ab9d09p-1, 0x1.224e3936449c7p-1, 0x1.1ff5bd823feb8p-1,
+0x1.27d8b6164fb17p-1, 0x1.dce6e5cbb9cddp-2, 0x1.0fe1f57e1fc3fp-1, 0x1.8ba4c3d317498p-2,
+0x1.167490822ce92p-6, 0x1.ea60edf3d4c1ep-2, 0x1.8aa597df154b3p-1, 0x1.b155486b62aa9p-1,
+0x1.28d4494251a89p-3, 0x1.3ad0ce1275a1ap-2, 0x1.871ead830e3d6p-6, 0x1.dfc04aafbf809p-1,
+0x1.f96ac223f2d58p-2, 0x1.3cb28f4a79652p-1, 0x1.85fbcff30bf7ap-3, 0x1.0d57192a1aae3p-1,
+0x1.31d0e90263a1dp-3, 0x1.dec86703bd90dp-3, 0x1.dfa42683bf485p-6, 0x1.a2041e2344084p-4,
+0x1.0c83f75a1907fp-2, 0x1.ef574083deae8p-3, 0x1.c1bc60338378cp-1, 0x1.8593e4170b27dp-1,
+0x1.d344e8e3a689dp-1, 0x1.5782b2ceaf056p-1, 0x1.05778b2a0aef1p-2, 0x1.5cd27deab9a5p-1,
+0x1.68d5ee72d1abep-2, 0x1.a509fecb4a14p-1, 0x1.f320eda3e641ep-3, 0x1.dc43ad4fb8876p-1,
+0x1.26fae3624df5cp-2, 0x1.8caa30e719546p-1, 0x1.442c1e6a88584p-2, 0x1.38622c6a70c46p-2,
+0x1.03b54fba076aap-2, 0x1.65dd38a2cbba7p-4, 0x1.36197a826c32fp-3, 0x1.981f7463303efp-2,
+0x1.94481c3b28904p-2, 0x1.66fd5032cdfaap-3, 0x1.57a009baaf401p-2, 0x1.c6d96f2f8db2ep-1,
+0x1.9671e3572ce3cp-1, 0x1.0d4ef8da1a9dfp-1, 0x1.a86110ab50c22p-2, 0x1.e2e61d97c5cc4p-1,
+0x1.8501129b0a022p-1, 0x1.c65b53138cb6ap-2, 0x1.726a1582e4d43p-5, 0x1.6861c882d0c39p-6,
+0x1.5f0379aebe06fp-1, 0x1.d8e3018bb1c6p-1, 0x1.90d6f25f21adep-1, 0x1.3248628e6490cp-1,
+0x1.3065b45a60cb7p-1, 0x1.392b7f027257p-5, 0x1.1e35c0ea3c6b8p-2, 0x1.e4d0ab93c9a15p-1,
+0x1.b89cb6bb71397p-1, 0x1.0be31bde17c63p-1, 0x1.c11458df8228bp-1, 0x1.3068a1a260d14p-3,
+0x1.311a998262353p-2, 0x1.8ca9a05319534p-3, 0x1.d0967d43a12dp-2, 0x1.1a67f4a234cffp-1,
+0x1.1fcc1e523f984p-2, 0x1.35d19d426ba34p-1, 0x1.e677aed3ccef6p-1, 0x1.5a0a1d46b4144p-1,
+0x1.8f90f14f1f21ep-1, 0x1.248f675a491edp-2, 0x1.20e38c7241c72p-1, 0x1.2602d4a24c05bp-1,
+0x1.9f96ac873f2d6p-1, 0x1.f51414c7ea283p-1, 0x1.08e8f23a11d1ep-1, 0x1.2497bf1e492f8p-1,
+0x1.b0837ca36107p-2, 0x1.200f9392401f2p-1, 0x1.2fdacd625fb5ap-1, 0x1.ba29bfe374538p-4,
+0x1.f1e52a3be3ca5p-2, 0x1.81637f7b02c7p-2, 0x1.698d9a8ad31b3p-1, 0x1.4ac24ba295849p-4,
+0x1.a888ef5b5111ep-2, 0x1.f8a87afff150fp-1, 0x1.c51ea0838a3d4p-6, 0x1.19c25cd23384cp-2,
+0x1.048b96da09173p-1, 0x1.cf3d4de39e7aap-1, 0x1.b1f6ada363ed6p-2, 0x1.9d18e39b3a31cp-1,
+0x1.933dafa3267b6p-4, 0x1.c1469573828d3p-1, 0x1.6f01b072de036p-2, 0x1.849b8a3b09371p-2,
+0x1.ee306563dc60dp-2, 0x1.3bf10e1277e22p-2, 0x1.c57e26038afc5p-5, 0x1.0d5247fa1aa49p-2,
+0x1.30403ab660807p-1, 0x1.3d3b6ed27a76ep-1, 0x1.acabf8a35957fp-1, 0x1.9fadce733f5bap-2,
+0x1.324f839a649fp-1, 0x1.6b29d5b2d653bp-2, 0x1.f46ea657e8dd5p-1, 0x1.52283d02a4508p-6,
+0x1.d5a47e6bab49p-1, 0x1.244973ba4892ep-1, 0x1.0759e7920eb3dp-3, 0x1.9d2e270b3a5c5p-2,
+0x1.e4fb3377c9f66p-1, 0x1.ab64146f56c83p-1, 0x1.efdeb9f3dfbd7p-2, 0x1.727f564ae4febp-2,
+0x1.a40c8f6b48192p-1, 0x1.061851fe0c30ap-1, 0x1.4620d98e8c41bp-1, 0x1.51304c82a260ap-2,
+0x1.aaab3fc355568p-2, 0x1.f1c305c3e3861p-5, 0x1.16c427622d885p-3, 0x1.07bd55d60f7abp-1,
+0x1.e062c5d3c0c59p-1, 0x1.fa63c42bf4c79p-2, 0x1.ca0b1af794163p-1, 0x1.aef5f1035debep-2,
+0x1.9b2a691f3654dp-1, 0x1.e662fd57ccc6p-1, 0x1.5e241c82bc484p-1, 0x1.96d547ab2daa9p-2,
+0x1.239e6c2a473cep-1, 0x1.0ad0152215a03p-1, 0x1.9b418b0f36831p-1, 0x1.57b7bf02af6f8p-3,
+0x1.c064fffb80cap-1, 0x1.8fb031671f606p-1, 0x1.81fcc6a303f99p-3, 0x1.96097e632c13p-1,
+0x1.67f34a3acfe69p-2, 0x1.44ab571a8956bp-2, 0x1.928247a325049p-3, 0x1.31e9b12263d36p-2,
+0x1.36e6ffe26dcep-3, 0x1.5c8feee2b91fep-1, 0x1.523483b6a469p-1, 0x1.f1c64f63e38cap-1,
+0x1.8aa103831542p-3, 0x1.30aaba8261557p-2, 0x1.34bceb426979dp-2, 0x1.37fde0c26ffbcp-1,
+0x1.6ee31b42ddc63p-2, 0x1.c01efef3803ep-2, 0x1.fdd9b4a3fbb37p-4, 0x1.2fa8a6e25f515p-2,
+0x1.dd41618fba82cp-1, 0x1.38ca310271946p-6, 0x1.6f4f4bf2de9e9p-1, 0x1.786bcaaef0d79p-1,
+0x1.f0294ee3e052ap-1, 0x1.9ae6d0e335cdap-2, 0x1.0f59ba021eb37p-3, 0x1.13c7bb0a278f7p-1,
+0x1.d8437d93b087p-1, 0x1.df17f98fbe2ffp-1, 0x1.69b5aacad36b5p-1, 0x1.98a87d8b3151p-1,
+0x1.6ec82af2dd905p-1, 0x1.ca34dc739469cp-1, 0x1.2eb1fbee5d63fp-1, 0x1.160e80622c1dp-4,
+0x1.b22a1ff364544p-3, 0x1.93528dd726a52p-1, 0x1.776d5142eedaap-2, 0x1.74888feae9112p-2,
+0x1.dfc4f96bbf89fp-2, 0x1.bd658a837acb1p-6, 0x1.58152eaab02a6p-2, 0x1.528abd96a5158p-1,
+0x1.4c81133299022p-2, 0x1.46690cf68cd22p-1, 0x1.15113caa2a228p-2, 0x1.5db2173abb643p-1,
+0x1.33c463626788cp-4, 0x1.9487a9db290f5p-2, 0x1.f5866aabeb0cdp-1, 0x1.dcf6fe03b9eep-8,
+0x1.a8144ceb5028ap-2, 0x1.64d5b69ac9ab7p-1, 0x1.7c25b8aaf84b7p-1, 0x1.8866eaab10cddp-2,
+0x1.9248f8632491fp-4, 0x1.bffc272b7ff85p-1, 0x1.d7fb305faff66p-1, 0x1.51939382a3272p-6,
+0x1.9f1420b73e284p-1, 0x1.41b0db268361bp-1, 0x1.a3351a2b466a3p-1, 0x1.0ddc4baa1bb89p-1,
+0x1.0be5b79617cb7p-1, 0x1.a3ce2c2b479c6p-2, 0x1.309e1bb6613c3p-1, 0x1.78703f92f0e08p-1,
+0x1.94e68fa329cd2p-3, 0x1.ec54c457d8a99p-1, 0x1.95a43c232b488p-4, 0x1.551c209eaa384p-1,
+0x1.fa3ff0aff47fep-1, 0x1.bd7e3db37afc8p-2, 0x1.4f4dbc6a9e9b8p-2, 0x1.4100f48a8201fp-2,
+0x1.29415e625282cp-4, 0x1.322f7c8a645fp-1, 0x1.fe32917ffc652p-1, 0x1.2e82e0f25d05cp-3,
+0x1.fc735177f8e6ap-1, 0x1.f3b8fc27e772p-1, 0x1.3d6a98e27ad53p-3, 0x1.a0faefdb41f5ep-2,
+0x1.588eb2beb11d6p-1, 0x1.cb805ee39700cp-1, 0x1.94b0ed432961ep-1, 0x1.8ad7d1cb15afap-1,
+0x1.8b7c860b16f91p-1, 0x1.6cac1da2d9584p-1, 0x1.95646e6b2ac8ep-1, 0x1.2a90a6be55215p-1,
+0x1.5cb9f18ab973ep-2, 0x1.3899889271331p-1, 0x1.c367932386cf2p-4, 0x1.ba42b05f74856p-1,
+0x1.5013d482a027bp-6, 0x1.690b0e1ed2162p-1, 0x1.32b2efee6565ep-1, 0x1.bee90a337dd21p-3,
+0x1.555fd272aabfap-1, 0x1.65677776cacefp-1, 0x1.c4d6632b89accp-1, 0x1.4f9fc31e9f3f8p-1,
+0x1.109a59322134bp-3, 0x1.b1f5057363ea1p-3, 0x1.f0203d63e0408p-1, 0x1.a53b08734a761p-3,
+0x1.9eacbdeb3d598p-1, 0x1.ee52cedfdca5ap-1, 0x1.69def4b2d3bdfp-2, 0x1.9b200f5f36402p-1,
+0x1.e20bcb03c4179p-1, 0x1.044a209208944p-1, 0x1.ae761d235cec4p-3, 0x1.3a9a7dc27535p-1,
+0x1.9f94fee33f2ap-2, 0x1.39d2300273a46p-11, 0x1.8ae49f1315c94p-2, 0x1.6d1c15e2da383p-3,
+0x1.6cfa922ed9f52p-1, 0x1.6b5af7c2d6b5fp-3, 0x1.85d7ac370baf6p-1, 0x1.b578af036af16p-5,
+0x1.9370468326e09p-1, 0x1.be449e9f7c894p-1, 0x1.d59a3b4fab347p-1, 0x1.9df0e5273be1dp-1,
+0x1.274facba4e9f6p-1, 0x1.084d2b3e109a5p-1, 0x1.b564f6036ac9fp-6, 0x1.f2bdfca3e57cp-3,
+0x1.b6d28ac36da51p-3, 0x1.d2818adfa5031p-1, 0x1.cc4f424b989e8p-1, 0x1.63b671fac76cep-2,
+0x1.f7f661c3efeccp-4, 0x1.bc6f7fab78dfp-1, 0x1.1b29fb1a3653fp-1, 0x1.ddab8a23bb571p-1,
+0x1.aac24e8b5584ap-1, 0x1.d0197573a032fp-1, 0x1.78cb9982f1973p-1, 0x1.8cce198b199c3p-1,
+0x1.a8c72c03518e6p-2, 0x1.e46920cbc8d24p-1, 0x1.8ed12e931da26p-2, 0x1.a42e1573485c3p-1,
+0x1.e4b79557c96f3p-1, 0x1.8cdae6d719b5dp-1, 0x1.ff751aebfeea3p-1, 0x1.51b22782a3645p-1,
+-0x1.84e5b38309cbp-5, -0x1.eacce373d599cp-3, -0x1.25ec9b124bd94p-2, -0x1.09bc296a13786p-2,
+-0x1.78dd3482f1ba6p-2, -0x1.7ab8247af5704p-2, -0x1.cdda5f239bb4cp-2, -0x1.951eed8b2a3dep-1,
+-0x1.b50ee7036a1ddp-1, -0x1.b2840fbb65082p-2, -0x1.186f6e6230deep-1, -0x1.475a44528eb48p-1,
+-0x1.06c07d020d81p-1, -0x1.4c202c1a98406p-1, -0x1.2afe16a255fc2p-2, -0x1.8f8361931f06cp-2,
+-0x1.8fb0ac6f1f616p-1, -0x1.7a55103af4aa2p-1, -0x1.d42c4d4ba858ap-2, -0x1.e4ee5de7c9dccp-1,
+-0x1.aa3b9ac754773p-1, -0x1.714a8d26e2952p-1, -0x1.60811172c1024p-3, -0x1.abb0098b57602p-2,
+-0x1.8ce16c5f19c2ep-1, -0x1.90b7ad13216f6p-1, -0x1.31a9ef526353ep-1, -0x1.a829d7075053bp-1,
+-0x1.ee631e03dcc8p-8, -0x1.3234d46a6469ap-1, -0x1.59debe12b3bd8p-3, -0x1.c2b217838564p-5,
+-0x1.ace80d4b59d02p-1, -0x1.d2dbfa23a5b8p-2, -0x1.42126c628424ep-2, -0x1.a55a9e334ab54p-3,
+-0x1.a6ca0f4f4d942p-1, -0x1.87f665c30fecdp-1, -0x1.fe75951bfceb3p-1, -0x1.5bd8f652b7b1fp-1,
+-0x1.84e1b68309c38p-3, -0x1.16e5037a2dcap-1, -0x1.466675428cccep-2, -0x1.67f8eaa6cff1ep-1,
+-0x1.8c14be5318298p-3, -0x1.38b245f671648p-1, -0x1.7dd4db82fba98p-4, -0x1.f2b5dc07e56bcp-1,
+-0x1.660eac62cc1d6p-2, -0x1.19d0c21a33a18p-1, -0x1.d7a439efaf487p-1, -0x1.750bc3e2ea178p-3,
+-0x1.16369e822c6d4p-2, -0x1.7e23f242fc48p-4, -0x1.331af5be6635ep-1, -0x1.7fcbb9c2ff97p-5,
+-0x1.c07c2b5f80f85p-1, -0x1.9313944326274p-3, -0x1.c02692a7804d2p-1, -0x1.c458f19f88b1ep-1,
+-0x1.96f9b97f2df37p-1, -0x1.69e422c2d3c8p-5, -0x1.e084131bc1082p-1, -0x1.43e1c6c687c39p-1,
+0x1.7ff9e060fff3cp+0, 0x1.bf395b5b7e72cp+0, 0x1.2963c8d452c79p+0, 0x1.ac94d8b95929bp+0,
+0x1.fb3e2879f67c5p+0, 0x1.2a28fe485452p+0, 0x1.fea85d8ffd50cp+0, 0x1.caa1f1a79543ep+0,
+0x1.9eb67c8b3d6dp+0, 0x1.ad0ec03d5a1d8p+0, 0x1.16a57c522d4bp+0, 0x1.6d33e4beda67cp+0,
+0x1.10b59d40216b4p+0, 0x1.fec82e99fd906p+0, 0x1.73d8f6bce7b1fp+0, 0x1.b731f2296e63ep+0,
+0x1.71dfcd8ce3bfap+0, 0x1.8806d9c5100dbp+0, 0x1.889079ab1120fp+0, 0x1.2c5225ea58a45p+0,
+0x1.70249a9ee0493p+0, 0x1.ef02fecbde06p+0, 0x1.2053c81a40a79p+0, 0x1.8fe684ef1fcdp+0,
+0x1.bca08c4179412p+0, 0x1.40407ec68081p+0, 0x1.adba0c1f5b742p+0, 0x1.f123af83e2476p+0,
+0x1.34f15db069e2cp+0, 0x1.bd7802937afp+0, 0x1.4f32cc1e9e65ap+0, 0x1.b4eb3e1169d68p+0,
+0x1.7cb15decf962cp+0, 0x1.789694f2f12d2p+0, 0x1.618016c8c3003p+0, 0x1.77ef8664efdf1p+0,
+0x1.a2bf933b457f2p+0, 0x1.60287456c050ep+0, 0x1.4291780a8522fp+0, 0x1.41760fc482ec2p+0,
+0x1.0d3734941a6e7p+0, 0x1.5936f45cb26dep+0, 0x1.aea9f4855d53ep+0, 0x1.1decd1d43bd9ap+0,
+0x1.57ff22f4affe4p+0, 0x1.2282eb404505dp+0, 0x1.d51ec3fdaa3d8p+0, 0x1.c9def08193bdep+0,
+0x1.aa89c50555138p+0, 0x1.5daf3da8bb5e8p+0, 0x1.f631166dec623p+0, 0x1.1aae5fa4355ccp+0,
+0x1.4cb23c7299648p+0, 0x1.1684de862d09cp+0, 0x1.aa94e4935529cp+0, 0x1.0952c8b412a59p+0,
+0x1.56c55d4ead8acp+0, 0x1.584ef0b2b09dep+0, 0x1.fa767837f4ecfp+0, 0x1.8bb6baff176d8p+0,
+0x1.15c6f3442b8dep+0, 0x1.49a9445493528p+0, 0x1.40a1f90e8143fp+0, 0x1.9278513124f0ap+0,
+0x1.847fb28f08ff6p-1, 0x1.44441fae88884p-1, 0x1.4cfaf28299f5ep-5, 0x1.93fdb20b27fb6p-2,
+0x1.254216024a843p-7, 0x1.33e53e7a67ca8p-2, 0x1.4ceaf88e99d5fp-1, 0x1.f0371803e06e3p-5,
+0x1.4c6087f698c11p-1, 0x1.547dc32aa8fb8p-2, 0x1.6b7454b2d6e8bp-3, 0x1.fc5ecddff8bdap-1,
+0x1.de89702bbd12ep-2, 0x1.46a749028d4e9p-7, 0x1.901caee320396p-1, 0x1.1161088222c21p-3,
+0x1.80f230eb01e46p-2, 0x1.7c7edbbaf8fdbp-1, 0x1.e6d405a3cda81p-3, 0x1.59dd915eb3bb2p-1,
+0x1.a98898c753113p-1, 0x1.cedeca8f9dbd9p-1, 0x1.6c8322c6d9064p-1, 0x1.5c4d4d82b89aap-3,
+0x1.fdf2afc3fbe56p-3, 0x1.61701332c2e02p-1, 0x1.6e80c95edd019p-1, 0x1.561524f2ac2a5p-2,
+0x1.f4c29bdbe9853p-1, 0x1.efc4bb7bdf897p-1, 0x1.cffb34db9ff67p-1, 0x1.79424e66f284ap-1,
+0x1.3408db266811bp-1, 0x1.e4cae403c995dp-1, 0x1.0d049da21a094p-3, 0x1.389de382713bcp-1,
+0x1.faf60cf3f5ec2p-3, 0x1.902c1ffb20584p-1, 0x1.57a15502af42bp-1, 0x1.cb1e0b33963c1p-1,
+0x1.d3580c63a6b02p-4, 0x1.b27e6a2f64fcdp-1, 0x1.c77cd9138ef9bp-1, 0x1.29afb9a6535f7p-1,
+0x1.b79907576f321p-1, 0x1.579987f2af331p-1, 0x1.6e07fbc6dc0ffp-1, 0x1.e0487f23c091p-3,
+0x1.a830c75350619p-2, 0x1.e7bcfd2fcf7ap-1, 0x1.d1efb127a3df6p-1, 0x1.f683f1b3ed07ep-3,
+0x1.b69bc7bb6d379p-1, 0x1.3e72d3ea7ce5ap-1, 0x1.a9689fa352d14p-2, 0x1.b0c39d6361874p-4,
+0x1.3fc5ce327f8bap-2, 0x1.0cd464b219a8dp-3, 0x1.c2460c4b848c2p-2, 0x1.294b05e252961p-2,
+0x1.97cea5432f9d5p-4, 0x1.623c7602c478fp-2, 0x1.bcfa2b0379f45p-6, 0x1.6702afcece056p-1,
+0x1.2bd23e0257a48p-2, 0x1.44a3e3028947cp-3, 0x1.3f41269a7e825p-2, 0x1.14a6a242294d4p-1,
+0x1.e15518bbc2aa3p-1, 0x1.f741e853ee83dp-1, 0x1.bf895ae37f12bp-2, 0x1.bc01a48378035p-5,
+0x1.a9c0527f5380ap-1, 0x1.4e830d029d062p-2, 0x1.456fd3ee8adfap-1, 0x1.615959d2c2b2bp-1,
+0x1.fedb0e73fdb62p-1, 0x1.66ef9f62cddf4p-2, 0x1.d96b799fb2d6fp-1, 0x1.a5e6e4334bcddp-2,
+0x1.366999ba6cd33p-2, 0x1.ab5b2ac356b65p-1, 0x1.50946e8aa128ep-1, 0x1.474252528e84ap-3,
+0x1.d39bfd5ba738p-2, 0x1.2a45f2c2548bep-4, 0x1.0fd210821fa42p-2, 0x1.89b0e5c71361dp-1,
+0x1.a1f75e1343eecp-3, 0x1.690c0e6ad2182p-1, 0x1.e5668b83cacd1p-5, 0x1.36ef585a6ddebp-2,
+0x1.a2a4968345493p-5, 0x1.61f1d082c3e3ap-4, 0x1.3d2dfe027a5cp-8, 0x1.6026d0d2c04dap-2,
+0x1.f59ccb43eb399p-3, 0x1.4435de92886bcp-2, 0x1.c4ba0aab89741p-1, 0x1.7af12e32f5e26p-3,
+0x1.32b9af3265736p-2, 0x1.48fd703a91faep-2, 0x1.e9f19753d3e33p-3, 0x1.0c74a86218e95p-3,
+0x1.4bc03e9e97808p-1, 0x1.bfec39c37fd87p-1, 0x1.a47683eb48edp-1, 0x1.4a9b4d129536ap-1,
+0x1.cd9025c39b205p-3, 0x1.7de1fd86fbc4p-1, 0x1.d8ebf283b1d7ep-5, 0x1.0e98d64e1d31bp-1,
+0x1.293d284a527a5p-1, 0x1.6e232db2dc466p-1, 0x1.60696ae2c0d2dp-1, 0x1.30b26f426164ep-5,
+0x1.936bec0b26d7ep-1, 0x1.e8527327d0a4ep-1, 0x1.9cbc0cbb39782p-1, 0x1.fbe9c393f7d38p-1,
+0x1.515e818ea2bdp-1, 0x1.bb1275737624fp-1, 0x1.2ec2df7a5d85cp-2, 0x1.6b88caf6d7119p-1,
+0x1.e750af83cea16p-1, 0x1.33b79772676f3p-2, 0x1.b9c335c373867p-5, 0x1.92df895325bf1p-3,
+0x1.3bf6bb0677ed7p-1, 0x1.e0563e0bc0ac8p-1, 0x1.86e85bc30dd0bp-2, 0x1.d553929faaa72p-1,
+0x1.09a9ec4a1353ep-2, 0x1.3df093b67be12p-1, 0x1.870bcb430e179p-5, 0x1.d09534c3a12a7p-1,
+0x1.fbb99aebf7733p-2, 0x1.bce740a379ce8p-1, 0x1.1b3081d23661p-1, 0x1.7140d6e6e281bp-1,
+0x1.3ac93e2675928p-1, 0x1.38bf40fe717e8p-1, 0x1.ff66b4c3fecd7p-3, 0x1.901999b320333p-3,
+0x1.4dc4dd5a9b89cp-2, 0x1.e0431813c0863p-1, 0x1.dc463583b88c7p-3, 0x1.d272d5c3a4e5bp-4,
+0x1.c8958b37912b1p-1, 0x1.3cd9a1c279b34p-5, 0x1.b1c0f2436381ep-4, 0x1.19f40cc233e82p-1,
+0x1.cee00f8f9dc02p-1, 0x1.9b331c0b36664p-2, 0x1.0af9af6a15f36p-2, 0x1.b630bf136c618p-1,
+0x1.677559c2ceeabp-1, 0x1.4232162a84643p-2, 0x1.ae8a16435d143p-5, 0x1.46d8298a8db05p-2,
+0x1.02de923a05bd2p-2, 0x1.bcb99e8b79734p-2, 0x1.e2fe9d83c5fd4p-3, 0x1.06443f420c888p-1,
+0x1.c4d62f8389ac6p-5, 0x1.2260c83244c19p-2, 0x1.adb2e8035b65dp-2, 0x1.1a2a306e34546p-1,
+0x1.385e92e270bd2p-3, 0x1.f209f5d7e413fp-1, 0x1.16d60ea22dac2p-2, 0x1.88e0e2df11c1cp-1,
+0x1.2ac936d255927p-1, 0x1.0b44b48216897p-1, 0x1.ece7494fd9ce9p-1, 0x1.d1aba57fa3575p-1,
+0x1.d70f9923ae1f3p-2, 0x1.8fe35ab31fc6bp-3, 0x1.7f400682fe801p-6, 0x1.683aaf92d0756p-2,
+0x1.df19c323be338p-3, 0x1.08c879f21190fp-3, 0x1.ce11648b9c22dp-1, 0x1.1a9a01623534p-3,
+0x1.0fcbac861f976p-1, 0x1.4e38f1029c71ep-3, 0x1.fcd73f6bf9ae8p-1, 0x1.dd041913ba083p-3,
+0x1.e94e8eabd29d2p-2, 0x1.7bfe0cc2f7fc2p-5, 0x1.1aad1b0a355a3p-1, 0x1.76169072ec2d2p-1,
+0x1.ec396023d872cp-2, 0x1.936cc26b26d98p-1, 0x1.f16b3ec3e2d68p-3, 0x1.126a130a24d42p-1,
+0x1.24e9340249d27p-4, 0x1.533443b2a6688p-1, 0x1.64a21ba2c9443p-4, 0x1.cad32ce395a66p-3,
+0x1.453e39868a7c7p-1, 0x1.6ffe958adffd3p-2, 0x1.fb95ae1bf72b6p-1, 0x1.c01dc153803b8p-3,
+0x1.c343ff478688p-1, 0x1.e87cf767d0f9fp-1, 0x1.06cc57520d98bp-3, 0x1.5d9797aabb2f3p-2,
+0x1.31d7384263ae7p-3, 0x1.36b458226d68bp-3, 0x1.62e9239ec5d24p-1, 0x1.88787dbb10f1p-2,
+0x1.1fbe69123f7cdp-2, 0x1.30fa882a61f51p-1, 0x1.0ae2bf3615c58p-1, 0x1.9faae10f3f55cp-1,
+0x1.8488c46b09119p-1, 0x1.07b9fe9e0f74p-1, 0x1.6ebe7502dd7cfp-5, 0x1.e4c02ef3c9806p-3,
+0x1.1f79df6a3ef3cp-1, 0x1.3199025a6332p-1, 0x1.ef469c2fde8d4p-1, 0x1.5968f782b2d1fp-5,
+0x1.8a0b898314171p-2, 0x1.ae85af735d0b6p-3, 0x1.2800a28250014p-1, 0x1.d345d68ba68bbp-2,
+0x1.bed5af8f7dab6p-1, 0x1.5494e5f6a929dp-1, 0x1.5c57b67eb8af7p-1, 0x1.0413e9160827dp-1,
+0x1.92861703250c3p-6, 0x1.57ed6496afdadp-1, 0x1.741b596ae836bp-1, 0x1.cfd82fff9fb06p-1,
+0x1.406a5bfa80d4bp-1, 0x1.b5ce6f3f6b9cep-1, 0x1.fa8fef43f51fep-3, 0x1.8ce02a0f19c05p-1,
+0x1.bdc2a4037b855p-8, 0x1.e18d1f73c31a4p-1, 0x1.4471a3a288e34p-3, 0x1.26b573a24d6aep-2,
+0x1.1287a79a250f5p-1, 0x1.5bff281eb7fe5p-1, 0x1.982cd6e33059bp-4, 0x1.2e20d8025c41bp-2,
+0x1.8ee49ae31dc93p-3, 0x1.27c608b24f8c1p-3, 0x1.104077be2080fp-1, 0x1.8333062306661p-1,
+0x1.7b8a8486f7151p-1, 0x1.ff0e27d3fe1c5p-2, 0x1.98c9959b31933p-1, 0x1.0241251204825p-3,
+0x1.6b287fc6d651p-1, 0x1.819470330328ep-2, 0x1.2a33348a54667p-1, 0x1.29fe2f5253fc6p-1,
+0x1.55f1e0c2abe3cp-5, 0x1.0d15d6121a2bbp-2, 0x1.7090c322e1218p-4, 0x1.0f9a76221f34fp-4,
+0x1.de784f9fbcf0ap-1, 0x1.a22d71d3445aep-1, 0x1.f1cb7ec3e397p-1, 0x1.1ee2ab9a3dc55p-1,
+0x1.57fbe10eaff7cp-1, 0x1.c1bdea43837bdp-3, 0x1.5785ab4aaf0b5p-2, 0x1.5b776656b6eedp-1,
+0x1.47f268028fe4dp-3, 0x1.f9be7d1bf37dp-2, 0x1.eed22027dda44p-1, 0x1.6484419ac9088p-1,
+0x1.63799aa2c6f33p-3, 0x1.0ebdd8021d7bbp-4, 0x1.fb94ad9bf7296p-1, 0x1.792f1ac2f25e3p-2,
+0x1.af24f4b35e49fp-3, 0x1.0bd5255617aa5p-1, 0x1.fe549c03fca94p-4, 0x1.e753c1b3cea78p-1,
+0x1.6b872782d70e5p-6, 0x1.d894291bb1285p-1, 0x1.3f2057c27e40bp-4, 0x1.7684b902ed097p-1,
+0x1.32bcc26265798p-2, 0x1.52173f82a42e8p-1, 0x1.4105d0aa820bap-2, 0x1.5d7afe7abaf6p-2,
+0x1.d8a22a8bb1445p-1, 0x1.9d2a01733a54p-2, 0x1.a1619c0342c34p-2, 0x1.b71a7a2b6e34fp-1,
+0x1.c309ca2386139p-3, 0x1.84f8998309f13p-2, 0x1.abfa4b8357f49p-2, 0x1.c8be539b917cap-1,
+0x1.32ebc75265d79p-1, 0x1.81bffb67037ffp-1, 0x1.2435b9ee486b7p-1, 0x1.84e8615709d0cp-1,
+0x1.fa7ce7c3f4f9dp-3, 0x1.1307da16260fbp-1, 0x1.d2d945dba5b29p-2, 0x1.aefb41335df68p-2,
+0x1.34df951669bf3p-1, 0x1.ca02a11394054p-2, 0x1.94152dfb282a6p-1, 0x1.a0a8d2474151ap-1,
+0x1.f0d675dfe1acfp-1, 0x1.d3dfc17ba7bf8p-1, 0x1.87fc93f70ff92p-1, 0x1.fc32af1ff8656p-1,
+0x1.ac73ea9358e7dp-1, 0x1.afe09eef5fc14p-1, 0x1.72b7681ee56edp-1, 0x1.17492f022e926p-3,
+0x1.01f7de7203efcp-1, 0x1.33a50702674a1p-5, 0x1.e91f95fbd23f3p-2, 0x1.b53411f36a682p-2,
+0x1.c39ea25b873d4p-2, 0x1.c54098ff8a813p-1, 0x1.2369064246d21p-2, 0x1.5291c3b6a5238p-1,
+0x1.0f79cb7a1ef39p-2, 0x1.67b1a8e2cf635p-1, 0x1.1b50174e36a03p-1, 0x1.baa8ad0f75516p-1,
+0x1.d2e3488ba5c69p-2, 0x1.fc2e89e3f85d1p-4, 0x1.3f910e627f222p-1, 0x1.6810de36d021cp-1,
+0x1.528dab52a51b5p-1, 0x1.47ed8a828fdb1p-4, 0x1.fc73f663f8e7fp-4, 0x1.0eda80ca1db5p-2,
+0x1.0dff01da1bfep-1, 0x1.d3a3acc7a7476p-1, 0x1.40b0954281613p-4, 0x1.fdaaef6bfb55ep-2,
+0x1.a7836e3f4f06ep-1, 0x1.b012a6a360255p-1, 0x1.f6104da3ec20ap-2, 0x1.53f758cea7eebp-1,
+0x1.5ff3458ebfe69p-1, 0x1.b6fe3bc36dfc7p-3, 0x1.99c9a48f33935p-1, 0x1.87ac8ff30f592p-3,
+0x1.01f3bec203e78p-2, 0x1.1cb2df123965cp-2, 0x1.3c852cfa790a6p-1, 0x1.62c9308ec5926p-1,
+0x1.4e6822129cd04p-3, 0x1.ce39b01b9c736p-1, 0x1.6ab5e88ad56bdp-2, 0x1.b6addc836d5bcp-2,
+0x1.35eb58fe6bd6bp-1, 0x1.d0ab0b93a1561p-1, 0x1.2bff36a257fe7p-2, 0x1.f5cfd403eb9fbp-5,
+0x1.030dccc2061bap-5, 0x1.d590a9b3ab215p-1, 0x1.876ddb7b0edbbp-1, 0x1.62be881ec57d1p-1,
+0x1.fe8e5b03fd1cbp-1, 0x1.c6fc5a478df8bp-1, 0x1.ea2bc887d4579p-1, 0x1.0c8d5cda191acp-1,
+0x1.9aa0070f35401p-1, 0x1.241db2c2483b6p-5, 0x1.6c5a9202d8b52p-6, 0x1.4223754a8446fp-1,
+0x1.c25481cf84a9p-1, 0x1.066afb620cd5fp-1, 0x1.2c359c32586b4p-2, 0x1.2247c75e448f9p-1,
+0x1.742a8a52e8551p-1, 0x1.7f239522fe473p-4, 0x1.8432eb5b0865dp-1, 0x1.f52469b7ea48dp-1,
+0x1.7c7bc462f8f79p-2, 0x1.817030a302e06p-2, 0x1.57ed9a42afdb3p-1, 0x1.11d7eab623afdp-1,
+0x1.1de390da3bc72p-2, 0x1.a911d0835223ap-6, 0x1.ed2ed8fbda5dbp-1, 0x1.c4dd216b89ba4p-1,
+0x1.ddf39a1bbbe73p-1, 0x1.065ce8920cb9dp-2, 0x1.e43a1eabc8744p-1, 0x1.ee2476e7dc48fp-1,
+0x1.62fc77e2c5f8fp-3, 0x1.6ba7fa22d74ffp-1, 0x1.50e2ff06a1c6p-1, 0x1.5d35e3f2ba6bcp-3,
+0x1.32a4546a6548bp-1, 0x1.3b0ec78a761d9p-1, 0x1.63dad5d6c7b5bp-1, 0x1.9a88b6eb35117p-2,
+0x1.4d50a2b69aa14p-1, 0x1.6f3daa66de7b5p-1, 0x1.ecfa1783d9f43p-6, 0x1.0fa524861f4a5p-1,
+0x1.d6a29723ad453p-3, 0x1.4b053daa960a8p-2, 0x1.8f675f031ececp-4, 0x1.e9d3301bd3a66p-1,
+0x1.aace22fb559c4p-2, 0x1.b61fd73b6c3fbp-1, 0x1.def799cfbdef3p-1, 0x1.93a4f3af2749ep-1,
+0x1.db5fbe33b6bf8p-3, 0x1.36e534126dca7p-1, 0x1.4af9bcc295f38p-2, 0x1.05c9b7fa0b937p-1,
+0x1.442dc296885b8p-1, 0x1.25576eb24aaeep-2, 0x1.954db2c32a9b6p-2, 0x1.22215cae4442cp-1,
+0x1.15da2ba22bb45p-1, 0x1.5dc1f012bb83ep-2, 0x1.1045d396208bap-1, 0x1.6e99499edd329p-1,
+0x1.a88f22c3511e4p-5, 0x1.84a34a6309469p-3, 0x1.c5e6c29b8bcd8p-1, 0x1.4d2d46969a5a9p-1,
+0x1.9c379a23386f3p-1, 0x1.29c1986e53833p-1, 0x1.a71a20834e344p-5, 0x1.d31079aba620fp-2,
+0x1.31fe85aa63fd1p-2, 0x1.4ecb96229d973p-4, 0x1.f92d615bf25acp-1, 0x1.0ea7e89e1d4fdp-1,
+0x1.9eb8233b3d704p-2, 0x1.58d269c2b1a4dp-4, 0x1.f0f6316be1ec6p-2, 0x1.a4c3231b49864p-1,
+0x1.e13a2477c2745p-1, 0x1.aee5650b5dcadp-2, 0x1.386816c670d03p-1, 0x1.60485002c090ap-3,
+0x1.cafcd28395f9ap-6, 0x1.dde4f527bbc9fp-1, 0x1.5ddbcbfabbb79p-1, 0x1.5285a92aa50b5p-1,
+0x1.c242b20384856p-3, 0x1.44152ac2882a5p-4, 0x1.d29c1763a5383p-3, 0x1.866ad8230cd5bp-1,
+0x1.aec73ac35d8e7p-2, 0x1.84ecd96f09d9bp-1, 0x1.ea08437bd4108p-2, 0x1.e3d91f1bc7b24p-2,
+0x1.e615ac07cc2b6p-1, 0x1.75d5c8aaebab9p-2, 0x1.f8ceb103f19d6p-4, 0x1.824d4627049a9p-1,
+0x1.e4ac7cc7c959p-1, 0x1.662de0a2cc5bcp-3, 0x1.af560be35eac1p-3, 0x1.f6aefe63ed5ep-3,
+0x1.06c9d5e20d93bp-2, 0x1.940b915328172p-3, 0x1.8c53a83718a75p-1, 0x1.52c0fc8ea582p-1,
+0x1.203a631a4074cp-2, 0x1.099d81d2133bp-2, 0x1.ef083f4bde108p-2, 0x1.c55d58038ababp-3,
+0x1.5c41736eb882ep-1, 0x1.7f61b342fec36p-4, 0x1.92d2d40325a5bp-2, 0x1.6a995a02d532bp-1,
+0x1.ba257183744aep-6, 0x1.3a29afc274536p-4, 0x1.7a3e065af47c1p-2, 0x1.f9876033f30ecp-3,
+0x1.3f1f6d427e3eep-3, 0x1.31c60906638c1p-1, 0x1.332c0c0266582p-7, 0x1.272b78b64e56fp-1,
+0x1.6d65c4e2dacb9p-2, 0x1.f3a1a3dbe7434p-2, 0x1.9180840323011p-5, 0x1.39911cea73224p-2,
+0x1.b4bbb64769777p-1, 0x1.60c77992c18efp-3, 0x1.f15d4983e2ba9p-5, 0x1.9968330b32d06p-1,
+0x1.637aad1ac6f56p-2, 0x1.15d6af222bad6p-2, 0x1.713f2a02e27e5p-5, 0x1.3522417e6a448p-1,
+0x1.dfdc77cbbfb8fp-2, 0x1.a3679ad746cf3p-1, 0x1.0fc67c121f8dp-2, 0x1.800b6d770016ep-1,
+0x1.41b2dde28365cp-4, 0x1.7f675daefececp-1, 0x1.f162c377e2c58p-1, 0x1.8477cf2f08efap-1,
+0x1.af5394175ea73p-1, 0x1.75985af2eb30bp-2, 0x1.de22525bbc44ap-2, 0x1.bd24bfa77a498p-1,
+0x1.c422c6e388459p-2, 0x1.ac302c5b58606p-1, 0x1.dc34bd83b8698p-4, 0x1.31d93ec663b28p-1,
+0x1.bbec6abb77d8dp-2, 0x1.014d1f82029a4p-3, 0x1.6412dde2c825cp-3, 0x1.94a917cf29523p-1,
+0x1.3a2419d274483p-1, 0x1.c872fee390e6p-3, 0x1.8b8d3203171a6p-4, 0x1.ddbfa02bbb7f4p-2,
+0x1.949d3c3b293a8p-2, 0x1.421deb62843bdp-3, 0x1.1090063a21201p-2, 0x1.7c0bf4aef817fp-1,
+0x1.b6e5a4db6dcb5p-2, 0x1.3eb7eb7a7d6fdp-2, 0x1.625c6c52c4b8ep-2, 0x1.cb610e5396c22p-1,
+0x1.0b0e4242161c8p-3, 0x1.391174367222fp-1, 0x1.4b6c7bc696d8fp-1, 0x1.abe7b13357cf6p-3,
+0x1.70f1a3c2e1e34p-2, 0x1.3ccf3f3e799e8p-1, 0x1.ef71bb7bdee37p-1, 0x1.9f3197e33e633p-3,
+0x1.f79b6cb7ef36ep-1, 0x1.bd05c9537a0b9p-2, 0x1.27892ce24f126p-4, 0x1.b359a04b66b34p-2,
+0x1.156622022acc4p-2, 0x1.81def53303bdfp-3, 0x1.70c1dd02e183cp-6, 0x1.68a94662d1529p-1,
+0x1.41960a62832c1p-2, 0x1.922b198324563p-3, 0x1.faa4bc5bf5498p-2, 0x1.daef1f03b5de4p-1,
+0x1.ad4f0c3b5a9e2p-2, 0x1.2ec404725d881p-1, 0x1.939dde2b273bcp-2, 0x1.a0f6243b41ec5p-1,
+0x1.7f4b7f4afe97p-1, 0x1.5216f232a42dep-1, 0x1.1d0218e63a043p-1, 0x1.6af946d2d5f29p-3,
+0x1.f172e7efe2e5dp-1, 0x1.ce304f139c60ap-1, 0x1.30fb004261f6p-4, 0x1.a1b3c3e343678p-4,
+0x1.0741c3460e838p-1, 0x1.718bdbcee317bp-1, 0x1.3e60c9927cc19p-2, 0x1.bfba95277f753p-1,
+0x1.5cb63612b96c7p-2, 0x1.1d44408a3a888p-2, 0x1.3c37d8e2786fbp-4, 0x1.4bed0f7a97da2p-2,
+0x1.6d2504eeda4a1p-1, 0x1.31e082e263c1p-3, 0x1.7fa357e6ff46bp-1, 0x1.f7d815efefb03p-1,
+0x1.59dfbc12b3bf8p-2, 0x1.8b2966cf1652dp-1, 0x1.60815c4ec102cp-1, 0x1.4dbae33a9b75cp-1,
+0x1.efb42d33df686p-1, 0x1.774ee9f2ee9ddp-3, 0x1.28aa023a5154p-1, 0x1.8cb7669b196edp-2,
+0x1.8c97beef192f8p-1, 0x1.f278f14fe4f1ep-1, 0x1.9d475e133a8ecp-3, 0x1.0be33e3617c68p-1,
+0x1.448fe37e891fcp-1, 0x1.8453f06f08a7ep-1, 0x1.66a18feecd432p-1, 0x1.3602cb6a6c059p-1,
+0x1.52843f7ea5088p-1, 0x1.8cc0eff71981ep-1, 0x1.6a3943e6d4728p-1, 0x1.67180b02ce301p-3,
+0x1.fc999783f9333p-2, 0x1.2d3515825a6a3p-6, 0x1.98097e433013p-5, 0x1.aca7e6cf594fdp-1,
+0x1.301791e2602f2p-2, 0x1.041e4c12083cap-3, 0x1.4a79ba2294f37p-3, 0x1.4c3377029866fp-7,
+0x1.1aff677a35fedp-2, 0x1.d241c66fa4839p-1, 0x1.fd08e3cffa11cp-1, 0x1.3a6f91c674df2p-1,
+0x1.5d6b2d3ebad66p-1, 0x1.5d8a401abb148p-1, 0x1.1054e9fa20a9dp-2, 0x1.4d1f5a6e9a3ebp-1,
+0x1.bb5dfa9776bbfp-1, 0x1.b0d4773761a8fp-1, 0x1.37b0db826f61bp-5, 0x1.47f5b9828feb7p-1,
+0x1.a34d6883469adp-1, 0x1.eb3394f3d6673p-3, 0x1.4f63dee29ec7cp-3, 0x1.cfba97fb9f753p-2,
+0x1.ff20d5abfe41bp-1, 0x1.ba7a87a774f51p-1, 0x1.de017643bc02fp-5, 0x1.51a51526a34a3p-1,
+0x1.473b779a8e76fp-1, 0x1.88195b4b1032bp-1, 0x1.ab6b17e756d63p-1, 0x1.16210d622c422p-3,
+0x1.918303fb2306p-1, 0x1.c4ebafcf89d76p-1, 0x1.f2302a27e4605p-1, 0x1.4c76674298ecdp-4,
+0x1.7cd0b402f9a17p-7, 0x1.133a62c22674cp-3, 0x1.75fcd642ebf9bp-4, 0x1.26e5ed1a4dcbep-2,
+0x1.7105f1c2e20bep-5, 0x1.5e43f4a2bc87fp-4, 0x1.cde288579bc51p-1, 0x1.747b8c5ae8f72p-1,
+0x1.8952beaf12a58p-1, 0x1.5833f542b067fp-3, 0x1.8335cd8b066bap-2, 0x1.44b0b94689617p-1,
+0x1.b85d220370ba4p-7, 0x1.aa2be8fb5457dp-2, 0x1.194ce58a3299dp-2, 0x1.aa2edd0b545dcp-1,
+0x1.4fe2d9be9fc5bp-1, 0x1.c0fed4fb81fdbp-2, 0x1.241852124830ap-2, 0x1.4f03af669e076p-1,
+0x1.35f3e4426be7dp-2, 0x1.5fd880dabfb1p-2, 0x1.4151891a82a31p-2, 0x1.e23569bbc46adp-1,
+0x1.c02cddc38059cp-4, 0x1.304f71c2609eep-3, 0x1.3ded68a27bdadp-4, 0x1.c9889fb393114p-1,
+0x1.0ff8c3c21ff18p-5, 0x1.9edd73833dbaep-5, 0x1.f3176c9be62eep-1, 0x1.6f2cf0c2de59ep-5,
+0x1.7af1bfa2f5e38p-3, 0x1.0eb83b021d707p-4, 0x1.54cb8b3aa9971p-2, 0x1.d7333c23ae668p-3,
+0x1.367e17d26cfc3p-3, 0x1.e12137c3c2427p-3, 0x1.ea485b63d490bp-1, 0x1.d6f244a7ade49p-1,
+0x1.9caa968339553p-2, 0x1.57c68452af8d1p-2, 0x1.1ba2fdea3746p-1, 0x1.aa6d7f9354dbp-2,
+0x1.80f936a701f27p-1, 0x1.a84970af5092ep-1, 0x1.fd967353fb2cep-3, 0x1.a1b820c343704p-2,
+0x1.1191b65a23237p-2, 0x1.1171c5de22e39p-1, 0x1.fdfbfc83fbf8p-5, 0x1.23c2cd4e4785ap-1,
+0x1.c15e064b82bc1p-1, 0x1.811108ab02221p-2, 0x1.05f8370a0bf07p-1, 0x1.f963a203f2c74p-1,
+0x1.0c9c60c61938cp-1, 0x1.2db5e41e5b6bdp-1, 0x1.c2ec41b385d88p-1, 0x1.1d9bed063b37ep-1,
+0x1.47a3bb568f477p-1, 0x1.b603ae4f6c076p-1, 0x1.348ebc12691d8p-1, 0x1.a6602b434cc05p-1,
+0x1.d7dab5afafb57p-1, 0x1.def481afbde9p-1, 0x1.c2cfa483859f5p-5, 0x1.2bd1dd2257a3cp-4,
+0x1.5cf33e72b9e68p-3, 0x1.9d556a033aaadp-7, 0x1.fc6c804bf8d9p-1, 0x1.25921ae24b243p-1,
+0x1.64b12fa2c9626p-2, 0x1.180f7e32301fp-1, 0x1.fac8daabf591bp-1, 0x1.9a8e73c3351cep-4,
+0x1.80b1ddbb0163cp-2, 0x1.e8b9ddf3d173cp-3, 0x1.042ddeda085bcp-1, 0x1.4921ca0a92439p-1,
+0x1.8ba03d5b17408p-1, 0x1.240d9ea2481b4p-1, 0x1.b3925d636724cp-3, 0x1.4cfe43a699fc8p-1,
+0x1.e49622f7c92c4p-1, 0x1.72dcce62e5b9ap-1, 0x1.4661e5a68cc3dp-1, 0x1.e265077bc4ca1p-2,
+0x1.412564fa824adp-2, 0x1.094e275a129c5p-1, 0x1.d9ce1803b39c3p-6, 0x1.e8366dd3d06cep-1,
+0x1.7ea3ab4afd475p-2, 0x1.435d2cd286ba6p-1, 0x1.8e9699131d2d3p-1, 0x1.2e5916a25cb23p-2,
+0x1.2251ae8244a36p-1, 0x1.aac3935b55872p-1, 0x1.794d8deaf29b2p-2, 0x1.798e7e1ef31dp-1,
+0x1.b138e9076271dp-1, 0x1.72268e7ae44d2p-2, 0x1.3e4131fa7c826p-2, 0x1.8e4603531c8cp-3,
+0x1.d122c56fa2459p-1, 0x1.33d2e75267a5dp-2, 0x1.2dc69e9a5b8d4p-2, 0x1.22f7689a45eedp-2,
+0x1.1417eb26282fdp-1, 0x1.9b112e2b36226p-1, 0x1.da9d7e57b53bp-1, 0x1.3f7051027ee0ap-2,
+0x1.7e3d9992fc7b3p-2, 0x1.1e0856b23c10bp-3, 0x1.ecb66c27d96cep-1, 0x1.4769df828ed3cp-2,
+0x1.ba5ee40f74bddp-1, 0x1.331851ca6630ap-1, 0x1.94e7737f29ceep-1, 0x1.6bc65a22d78cbp-3,
+0x1.e333c903c6679p-4, 0x1.a3b5e43f476bdp-1, 0x1.0ca0117219402p-3, 0x1.f7709d8beee14p-2,
+0x1.ce26221b9c4c4p-2, 0x1.d1be9d6fa37d4p-1, 0x1.92e4da1b25c9bp-1, 0x1.2c97f182592fep-6,
+0x1.7c8230caf9046p-1, 0x1.3e2e84327c5d1p-3, 0x1.82f33daf05e68p-1, 0x1.2dbb19ce5b763p-1,
+0x1.089ee84e113ddp-1, 0x1.109eb542213d7p-4, 0x1.914c9aa322993p-1, 0x1.b3835b736706bp-2,
+0x1.77fa94a2eff53p-2, 0x1.417f4f8282feap-4, 0x1.6b3d6206d67acp-1, 0x1.d015357ba02a7p-1,
+0x1.c341181b86823p-1, 0x1.45dae05e8bb5cp-1, 0x1.bf3577e37e6afp-3, 0x1.04bfc9c2097f9p-2,
+0x1.8d5cf60b1ab9fp-1, 0x1.720f2872e41e5p-3, 0x1.2614d4a24c29bp-1, 0x1.47bbda1a8f77bp-1,
+0x1.8f9c1be71f383p-1, 0x1.75f8903aebf12p-2, 0x1.a2ad70a3455aep-1, 0x1.cc02950b98053p-1,
+0x1.7ac8b162f5916p-3, 0x1.e5d574ffcbaafp-1, 0x1.8f75c79b1eeb9p-2, 0x1.45c53d6a8b8a8p-1,
+0x1.b794126f6f282p-1, 0x1.6a7ef792d4fdfp-3, 0x1.4f29fcf69e54p-1, 0x1.34164336682c8p-1,
+0x1.5456bdeaa8ad8p-2, 0x1.a43a75434874fp-2, 0x1.874574030e8afp-3, 0x1.b2ca474365949p-1,
+0x1.e862229bd0c44p-2, 0x1.f31df7a3e63bfp-1, 0x1.1917e9f2322fdp-2, 0x1.b02e5b9f605cbp-1,
+0x1.b4de190369bc3p-5, 0x1.f7c95703ef92bp-1, 0x1.8043911700872p-1, 0x1.de8ef9abbd1dfp-1,
+0x1.3da4375e7b487p-1, 0x1.f010ef0fe021ep-1, 0x1.83bb7a330776fp-3, 0x1.96025acb2c04bp-2,
+0x1.3252e4a264a5dp-3, 0x1.8703b32f0e076p-1, 0x1.2bd077c257a0fp-5, 0x1.dc30d513b861bp-1,
+0x1.07ffed320fffep-3, 0x1.b56a78236ad4fp-1, 0x1.a8336a1b5066dp-1, 0x1.41644f4a82c8ap-2,
+0x1.9b3fed1f367fep-1, 0x1.bfb937937f727p-3, 0x1.e677650fcceedp-1, 0x1.52d3ff8aa5a8p-1,
+0x1.951c179b2a383p-2, 0x1.35a162066b42cp-1, 0x1.0dd4857a1ba91p-2, 0x1.74b96ac2e972dp-1,
+0x1.efa72903df4e5p-7, 0x1.d1773f7ba2ee8p-2, 0x1.2783b2024f076p-1, 0x1.f7df5be3efbebp-2,
+0x1.b7b32ec36f666p-2, 0x1.b40fa6fb681f5p-1, 0x1.583c1322b0782p-2, 0x1.ee4ef1e3dc9dep-2,
+0x1.abd8fdfb57b2p-1, 0x1.630cd522c619bp-4, 0x1.ab6ce53b56d9dp-2, 0x1.d2fa6aaba5f4dp-2,
+0x1.c7289b438e513p-5, 0x1.36a5512a6d4aap-1, 0x1.b47e62bf68fccp-1, 0x1.a41d0b73483a1p-3,
+0x1.7b5208aaf6a41p-2, 0x1.c73b6a3b8e76dp-1, 0x1.14e05fb229c0cp-3, 0x1.ff51ff43fea4p-2,
+0x1.7ca5e25af94bcp-1, 0x1.ed6b8207dad7p-1, 0x1.a05b274b40b65p-1, 0x1.17e5cf7a2fcbap-1,
+0x1.75673fb2eace8p-3, 0x1.86d28c570da52p-1, 0x1.aae73c0355ce8p-3, 0x1.27e7dbba4fcfbp-1,
+0x1.78e7dcb2f1cfcp-2, 0x1.e3482383c6904p-2, 0x1.39428cf272852p-2, 0x1.8865160310ca3p-2,
+0x1.da5fb17fb4bf6p-1, 0x1.c424f87b8849fp-1, 0x1.c02238f380447p-1, 0x1.6c7291bad8e52p-2,
+0x1.78349f72f0694p-1, 0x1.b1010a0362021p-3, 0x1.ad60c1d35ac18p-1, 0x1.240d9d6e481b4p-1,
+0x1.3143ba5262877p-2, 0x1.062e68da0c5cdp-2, 0x1.b15a580362b4bp-6, 0x1.6a28cdbad451ap-2,
+0x1.b9bc859773791p-1, 0x1.c209357f84127p-1, 0x1.1e1ba9ba3c375p-1, 0x1.dd9627a3bb2c5p-3,
+0x1.89449fbb12894p-1, 0x1.6353c1aac6a78p-1, 0x1.770e898eee1d1p-1, 0x1.05ea82120bd5p-1,
+0x1.50bf43aea17e8p-1, 0x1.1769b0d62ed36p-1, 0x1.dd051883ba0a3p-5, 0x1.ae19139b5c322p-1,
+0x1.3c787a5278f0fp-2, 0x1.1114411a22288p-2, 0x1.ac01dea35803cp-2, 0x1.5ab02b86b5605p-1,
+0x1.7a2e324ef45c6p-1, 0x1.72a235cae5447p-1, 0x1.ee2b6843dc56dp-5, 0x1.548de3caa91bcp-1,
+0x1.36c72e426d8e6p-1, 0x1.df04ef77be09ep-1, 0x1.58e59502b1cb3p-6, 0x1.5df79b6abbef3p-2,
+0x1.2d14c7e25a299p-3, 0x1.b827ee7b704fep-1, 0x1.d3096b23a612dp-1, 0x1.c7ce1e438f9c4p-2,
+0x1.d9f91723b3f23p-4, 0x1.e0943de3c1288p-1, 0x1.98fb75ff31f6fp-1, 0x1.f4fba87be9f75p-1,
+0x1.a29d7363453aep-1, 0x1.6e2e3f6adc5c8p-2, 0x1.b184c98363099p-3, 0x1.2be2131a57c42p-1,
+0x1.a6ae15c34d5c3p-5, 0x1.e36fbbefc6df7p-1, 0x1.8e64a9431cc95p-4, 0x1.6b2a250ed6545p-1,
+0x1.f5b2d983eb65bp-2, 0x1.3e739ad27ce73p-3, 0x1.194338a632867p-1, 0x1.9915a9ef322b5p-1,
+0x1.b04e0e83609c2p-2, 0x1.ef4427fbde885p-1, 0x1.e78baae3cf175p-2, 0x1.4954e63292a9dp-3,
+0x1.61e65dc2c3cccp-1, 0x1.12a88bf625511p-1, 0x1.a6e31d574dc64p-1, 0x1.315b180a62b63p-2,
+0x1.e35af6d3c6b5fp-2, 0x1.b1aa49ff63549p-1, 0x1.47a959ba8f52bp-1, 0x1.3cf2ad6279e56p-1,
+0x1.69d23876d3a47p-1, 0x1.1ab2c4da35659p-1, 0x1.06cde4020d9bdp-4, 0x1.a5115b5b4a22bp-1,
+0x1.f68e0573ed1c1p-2, 0x1.b9d5327f73aa6p-1, 0x1.9a0d03d3341ap-1, 0x1.3bc8ec327791ep-2,
+0x1.c3b148d387629p-3, 0x1.9b8d8d03371b2p-7, 0x1.c9c68933938d1p-1, 0x1.16ae67222d5cdp-2,
+0x1.e9ddf223d3bbep-1, 0x1.fb931e5ff7264p-1, 0x1.f681589fed02bp-1, 0x1.c96ebdcb92dd8p-2,
+0x1.2cc0144259803p-3, 0x1.0fc491461f892p-1, 0x1.f7342343ee684p-3, 0x1.23570c5246ae2p-1,
+0x1.fe11727bfc22ep-2, 0x1.7192de42e325cp-1, 0x1.75ac45deeb589p-1, 0x1.83bc5bf30778bp-3,
+0x1.0876d46a10edbp-2, 0x1.1c8f6332391ecp-1, 0x1.f3394603e6729p-2, 0x1.75e8e59eebd1dp-1,
+0x1.9c735a6338e6bp-2, 0x1.0517f2e20a2fep-3, 0x1.65b72602cb6e5p-2, 0x1.c05f2d2380be6p-4,
+0x1.5bf8c192b7f18p-1, 0x1.a76a9f034ed54p-2, 0x1.dd1d4103ba3a8p-1, 0x1.5cff1132b9fe2p-3,
+0x1.1b150402362a1p-2, 0x1.772a44d2ee549p-1, 0x1.ea4874cbd490fp-2, 0x1.fceda86bf9db5p-2,
+0x1.7d987b06fb30fp-1, 0x1.7dd58732fbab1p-2, 0x1.89ce07c7139c1p-1, 0x1.67766d2aceecep-1,
+0x1.74fbc3eae9f78p-2, 0x1.804f6067009ecp-1, 0x1.30b73032616e6p-3, 0x1.05ade7060b5bdp-1,
+0x1.2027e352404fcp-2, 0x1.93f5a9bb27eb5p-2, 0x1.48279aa2904f3p-4, 0x1.8f1caae71e395p-1,
+0x1.dc6d98e3b8db3p-4, 0x1.9eb139333d627p-1, 0x1.f00bc1e3e0178p-1, 0x1.7f923aa2ff247p-2,
+0x1.768138c2ed027p-2, 0x1.d350c9cba6a19p-2, 0x1.ad9017635b203p-4, 0x1.897a499312f49p-1,
+0x1.2aee619e55dccp-1, 0x1.d11b2bdba2365p-2, 0x1.c1862f3b830c6p-1, 0x1.0dce46621b9c9p-2,
+0x1.bc42e5737885dp-1, 0x1.9ea3703b3d46ep-1, 0x1.bc4dcefb789bap-2, 0x1.27359dc24e6b4p-3,
+0x1.15cdb50a2b9b7p-1, 0x1.d34b21e3a6964p-1, 0x1.48443ba690887p-1, 0x1.26cc60224d98cp-2,
+0x1.246bcaf248d79p-2, 0x1.a42486d348491p-2, 0x1.fadc9d3bf5b94p-1, 0x1.4cb3c76e99679p-1,
+0x1.49868f32930d2p-3, 0x1.1c29a51238535p-3, 0x1.4986b9c2930d7p-3, 0x1.c4eb2aeb89d65p-2,
+0x1.11053e22220a8p-1, 0x1.ed9a8713db351p-3, 0x1.c64901638c92p-3, 0x1.4c92f13e9925ep-1,
+0x1.a17daf4342fb6p-5, 0x1.867808f30cf01p-3, 0x1.8b81d1831703ap-6, 0x1.aab0eeb35561ep-2,
+0x1.4b466722968cdp-1, 0x1.083845e210709p-3, 0x1.7b4b03a2f696p-3, 0x1.d8d322f3b1a64p-3,
+0x1.2a9ba76a55375p-1, 0x1.02c78102058fp-4, 0x1.fa37d7dbf46fbp-2, 0x1.cdbd19b39b7a3p-2,
+0x1.befc605b7df8cp-1, 0x1.db42d36bb685ap-1, 0x1.30abf44a6157fp-1, 0x1.a9942acb53285p-2,
+0x1.ae8df54f5d1bfp-1, 0x1.e3c0bfb3c7818p-3, 0x1.68304576d0609p-1, 0x1.030f6b12061edp-3,
+0x1.4b0273569604ep-1, 0x1.630ce2aec619cp-1, 0x1.8d77a2371aef4p-1, 0x1.9d6417273ac83p-1,
+0x1.aa174bf3542e9p-1, 0x1.dfd950a7bfb2ap-1, 0x1.ff66b263fecd6p-3, 0x1.76391422ec723p-2,
+0x1.6cffc9b2d9ff9p-3, 0x1.e2d7d9ebc5afbp-2, 0x1.ebded303d7bdap-7, 0x1.d55f3583aabe7p-3,
+0x1.5309ef32a613ep-1, 0x1.40b89d8281714p-5, 0x1.4ab044ba95609p-1, 0x1.3ca0aca279416p-2,
+0x1.58666d42b0ccep-3, 0x1.a98305a753061p-1, 0x1.14851f0e290a4p-1, 0x1.80b542bb016a8p-1,
+0x1.c9dbf5c793b7fp-1, 0x1.1a10afc234216p-5, 0x1.9e4f3e433c9e8p-3, 0x1.88d8562311b0bp-1,
+0x1.ece3de67d9c7cp-1, 0x1.983fc3db307f8p-1, 0x1.7689ae12ed136p-3, 0x1.9b71d3b336e3ap-1,
+0x1.12ff3c4225fe8p-5, 0x1.c5d2b0fb8ba56p-1, 0x1.dc35ae7bb86b6p-1, 0x1.5c32671eb864dp-1,
+0x1.28df93a651bf2p-1, 0x1.69ad50aed35aap-1, 0x1.f32cfc83e65ap-2, 0x1.a5edbf2b4bdb8p-2,
+0x1.4986a152930d4p-1, 0x1.79702adaf2e05p-1, 0x1.8e1369a71c26dp-1, 0x1.a4c693bf498d2p-1,
+0x1.ab705f3356e0cp-3, 0x1.95c2e4f32b85dp-1, 0x1.a1e6120343cc2p-5, 0x1.bde606ff7bcc1p-1,
+0x1.a9ce6ecb539cep-1, 0x1.64cea5dac99d5p-1, 0x1.70d97532e1b2fp-3, 0x1.ffe80a1bffd01p-1,
+0x1.0e51ab7e1ca35p-1, 0x1.70bb7c5ee177p-1, 0x1.809d4cd7013aap-1, 0x1.b05b428b60b68p-2,
+0x1.825c875b04b91p-1, 0x1.e8311c67d0624p-1, 0x1.8417dd93082fcp-3, 0x1.6f4065bede80dp-1,
+0x1.8070e04300e1cp-1, 0x1.7d50c5d2faa19p-2, 0x1.0ab2397215647p-1, 0x1.91a0d4072341bp-1,
+0x1.08f627c211ec5p-2, 0x1.cdcfcfd39b9fap-2, 0x1.dba67643b74cfp-2, 0x1.ad5aa7875ab55p-1,
+0x1.4254e25284a9cp-3, 0x1.e769b963ced37p-1, 0x1.00a30e3201462p-2, 0x1.9a1bd9e73437bp-1,
+0x1.60d9e43ec1b3dp-1, 0x1.cc9e1783993c3p-6, 0x1.3ee26da67dc4ep-1, 0x1.cbb5fc0b976cp-1,
+0x1.a427d5af484fbp-1, 0x1.5900cec6b201ap-1, 0x1.899c030b1338p-1, 0x1.4df644769bec9p-1,
+0x1.7b9ee93af73ddp-2, 0x1.e5d26057cba4cp-1, 0x1.4dde4e8e9bbcap-1, 0x1.cc21201f98424p-1,
+0x1.568ddcb2ad1bcp-1, 0x1.9cf736c339ee7p-2, 0x1.489d82c2913bp-2, 0x1.b1d4c81363a99p-2,
+0x1.6d596f92dab2ep-2, 0x1.0554b8c60aa97p-1, 0x1.20ab272241565p-3, 0x1.b8ecc04371d98p-4,
+0x1.c3fd1baf87fa3p-1, 0x1.52dd033aa5bap-1, 0x1.c8be6c0f917cep-1, 0x1.21e0be3243c18p-3,
+0x1.ce2759039c4ebp-4, 0x1.6d234e62da46ap-2, 0x1.f5d2d713eba5bp-1, 0x1.14b4476a29689p-2,
+0x1.3bf6c12277ed8p-2, 0x1.d89178a3b122fp-3, 0x1.23afecc2475fep-4, 0x1.fed544cffdaa9p-1,
+0x1.09129dca12254p-2, 0x1.63586b3ec6b0dp-1, 0x1.ca8b40db95168p-1, 0x1.458924828b125p-4,
+0x1.78b27402f164fp-2, 0x1.542743e2a84e8p-1, 0x1.76a76906ed4edp-1, 0x1.7a28aea2f4516p-1,
+0x1.39f9a43673f35p-1, 0x1.890b6f231216ep-2, 0x1.4649cebe8c93ap-1, 0x1.210f01d2421ep-2,
+0x1.930152f72602ap-1, 0x1.ea98901fd5312p-1, 0x1.6971e4f2d2e3dp-1, 0x1.26b82af24d705p-3,
+0x1.dfda91c3bfb52p-2, 0x1.b19caebb63396p-1, 0x1.0197458a032e9p-2, 0x1.67d4c91acfa99p-2,
+0x1.0479b1f208f36p-1, 0x1.26283b424c507p-3, 0x1.f8c52833f18a5p-2, 0x1.3e3e9d127c7d4p-1,
+0x1.001bb60200377p-1, 0x1.e46ad653c8d5bp-2, 0x1.c898c0c791318p-1, 0x1.9e1716973c2e3p-1,
+0x1.6859c952d0b39p-1, 0x1.ed0ebe63da1d8p-1, 0x1.9cec5b6339d8bp-1, 0x1.ece31837d9c63p-1,
+0x1.5067299ea0ce5p-1, 0x1.67779c3aceef4p-1, 0x1.5943cc42b287ap-5, 0x1.980c74033018fp-6,
+0x1.773dc032ee7b8p-2, 0x1.8c3ba5cb18775p-1, 0x1.86e912430dd22p-1, 0x1.f5988453eb311p-1,
+0x1.43057562860afp-3, 0x1.9a65c1fb34cb8p-2, 0x1.0c400a7218801p-2, 0x1.e3c2b04fc7856p-1,
+0x1.6f96e232df2dcp-2, 0x1.ef91ea2bdf23dp-1, 0x1.6b85d842d70bbp-4, 0x1.a7b8b9fb4f717p-1,
+0x1.a12e98e7425d3p-1, 0x1.5c78bb9ab8f17p-2, 0x1.6e8c7a12dd18fp-3, 0x1.4b5095aa96a13p-2,
+0x1.ef8cd943df19bp-2, 0x1.5805b29eb00b6p-1, 0x1.e3e6e7ebc7cddp-1, 0x1.f7e222a3efc44p-1,
+0x1.28ec771251d8fp-3, 0x1.ac7fa8af58ff5p-1, 0x1.95f939372bf27p-1, 0x1.b294e7176529dp-1,
+0x1.998e670f331cdp-1, 0x1.32e5949a65cb3p-1, 0x1.9f77ff4b3efp-1, 0x1.d3eb215ba7d64p-2,
+0x1.34ba61a26974cp-2, 0x1.b50c3c0f6a188p-1, 0x1.ed6be89bdad7dp-2, 0x1.55fc10eeabf82p-1,
+0x1.4147e1d6828fcp-1, 0x1.f67c1a33ecf83p-3, 0x1.4b94953e97293p-1, 0x1.92093f2f24128p-1,
+0x1.4ad1e78a95a3dp-1, 0x1.d1b49a77a3693p-1, 0x1.75cbef7eeb97ep-1, 0x1.4eac50029d58ap-8,
+0x1.c146849f828d1p-1, 0x1.a33caa8746795p-1, 0x1.aa56129b54ac2p-1, 0x1.62751d82c4ea4p-1,
+0x1.45e421528bc84p-3, 0x1.7e4c4702fc989p-7, 0x1.03ad0b02075a1p-6, 0x1.493f74f6927efp-1,
+0x1.5dfee3babbfdcp-1, 0x1.ec045043d808ap-1, 0x1.4121979682433p-1, 0x1.a83a017f5074p-1,
+0x1.9883f8ef3107fp-1, 0x1.ae35a19b5c6b4p-2, 0x1.5acee892b59ddp-1, 0x1.32125ffe6424cp-1,
+0x1.400cac8280196p-6, 0x1.f48dcfb3e91bap-2, 0x1.c07f0a8380fe1p-5, 0x1.48bb2c6a91766p-2,
+0x1.5ea647cabd4c9p-2, 0x1.12bde4f6257bdp-1, 0x1.fa59a723f4b35p-1, 0x1.f09b05bbe1361p-1,
+0x1.905ceb8320b9dp-1, 0x1.45ee3c5e8bdc8p-1, 0x1.82a444e705489p-1, 0x1.b65da6136cbb5p-2,
+0x1.17a2d6d22f45bp-1, 0x1.f0e068c3e1c0dp-2, 0x1.bb9857537730bp-2, 0x1.b1d2b6e363a57p-2,
+0x1.3759bdd26eb38p-2, 0x1.10447c822089p-2, 0x1.daf3c783b5e79p-4, 0x1.da4bce7bb497ap-2,
+0x1.1c36deba386dcp-2, 0x1.0def85221bdf1p-3, 0x1.b32ae1836655cp-4, 0x1.ec1a5317d834ap-1,
+0x1.7c018c42f8032p-4, 0x1.7786f3c6ef0dep-1, 0x1.9454549328a8bp-1, 0x1.c8042a7b90085p-1,
+0x1.3a871242750e2p-3, 0x1.de467a43bc8cfp-2, 0x1.f42d14ebe85a3p-2, 0x1.6288a7d2c5115p-3,
+0x1.e96a24fbd2d45p-1, 0x1.161e7b1e2c3cfp-1, 0x1.f9ff805bf3ffp-2, 0x1.317a91ba62f52p-2,
+0x1.46e300828dc6p-4, 0x1.eeb2ce9bdd65ap-2, 0x1.12b09d2a25614p-2, 0x1.b9394b9372729p-1,
+0x1.ea3d1d63d47a4p-4, 0x1.7f926f02ff24ep-6, 0x1.28d03d3251a08p-2, 0x1.54ea7a7ea9d4fp-1,
+0x1.046cc7de08d99p-1, 0x1.72344a42e4689p-1, 0x1.6e9eaf62dd3d6p-4, 0x1.a019a6c740335p-1,
+0x1.fa568883f4ad1p-1, 0x1.a4c93b8349927p-3, 0x1.1a7f1c0234fe4p-2, 0x1.10e3efba21c7ep-2,
+0x1.595c6052b2b8cp-2, 0x1.8749d4630e93bp-2, 0x1.d2312bc3a4625p-3, 0x1.b85cc36b70b98p-2,
+0x1.d95eefa3b2bdep-4, 0x1.1c13f0023827ep-6, 0x1.4865185a90ca3p-2, 0x1.139b451227369p-2,
+0x1.f007b943e00f7p-2, 0x1.9e4916a33c923p-1, 0x1.c4df98fb89bf3p-2, 0x1.c2dc033385b8p-2,
+0x1.68cf237ad19e4p-2, 0x1.df6f8cabbedf2p-1, 0x1.7a2b4a76f4569p-1, 0x1.ba87e39b750fcp-2,
+0x1.ad91e7f35b23dp-2, 0x1.c1cc840383991p-8, 0x1.2cfa7aba59f4fp-2, 0x1.141097a628213p-1,
+0x1.f0059003e00b2p-6, 0x1.2ae55bf655cabp-1, 0x1.a3ec488347d89p-3, 0x1.13ecf45e27d9fp-1,
+0x1.3a334c6a7466ap-2, 0x1.2d9dd0225b3bap-2, 0x1.680d3642d01a7p-2, 0x1.2ee05d6a5dc0cp-2,
+0x1.000136f200027p-1, 0x1.41462922828c5p-1, 0x1.1fe226923fc45p-1, 0x1.acaf671b595edp-1,
+0x1.3ac4d4027589bp-7, 0x1.946e718328dcep-1, 0x1.11bb919a23772p-2, 0x1.005bc52200b79p-3,
+0x1.9d4f11033a9e2p-1, 0x1.2d1054fa5a20bp-1, 0x1.93c927a327925p-2, 0x1.2aa5db42554bbp-2,
+0x1.96b2d7332d65bp-2, 0x1.ac54604f58a8cp-1, 0x1.76c0ef3aed81ep-1, 0x1.7fc0fd56ff82p-1,
+0x1.8bc3ecfb1787ep-1, 0x1.e1d8735bc3b0ep-2, 0x1.7413bc82e8278p-3, 0x1.8a3383c31467p-3,
+0x1.e8dfa56bd1bf5p-2, 0x1.e70458fbce08bp-2, 0x1.769d7896ed3afp-1, 0x1.03efff3607ep-1,
+0x1.e6788703ccf11p-5, 0x1.df988ab7bf311p-1, 0x1.7dcf3942fb9e7p-5, 0x1.77025d4aee04cp-2,
+0x1.d99dcb13b33b9p-3, 0x1.97c71d6b2f8e4p-2, 0x1.52f15d5aa5e2cp-1, 0x1.7668a9b6ecd15p-1,
+0x1.a536fb034a6dfp-6, 0x1.cb4e0fa3969c2p-3, 0x1.231810d246302p-1, 0x1.214cb28242996p-5,
+0x1.d07d5a03a0fabp-7, 0x1.abf5d99f57ebbp-1, 0x1.48aef1c2915dep-3, 0x1.a491066b49221p-1,
+0x1.b20c5d336418cp-2, 0x1.1c1050423820ap-1, 0x1.cf1fa0439e3f4p-4, 0x1.a45f9a3348bf3p-1,
+0x1.90c961232192cp-2, 0x1.b0a4e3436149cp-1, 0x1.2420978a48413p-1, 0x1.50a27622a144fp-3,
+0x1.432239da86447p-2, 0x1.812586ab024b1p-1, 0x1.6d6afcf2dad6p-2, 0x1.9600efa32c01ep-1,
+0x1.d29ecca3a53dap-3, 0x1.6a97b862d52f7p-4, 0x1.33e1ddb267c3cp-2, 0x1.261e77324c3cfp-2,
+0x1.9d7038033ae07p-6, 0x1.639bc4dac7379p-2, 0x1.4e906a429d20dp-1, 0x1.06a5e9120d4bdp-2,
+0x1.7db17122fb62ep-1, 0x1.43038f3286072p-2, 0x1.f9bb9e3ff3774p-1, 0x1.8adb28fb15b65p-1,
+0x1.14554b8628aa9p-1, 0x1.1cd3af0e39a76p-1, 0x1.9ceff42739dffp-1, 0x1.1b9740ee372e8p-1,
+0x1.9193115b23262p-2, 0x1.ef1bb097de376p-1, 0x1.80508eb300a12p-2, 0x1.a1cfb747439f7p-1,
+0x1.0b2c00da1658p-1, 0x1.f41876c3e830fp-2, 0x1.462f51768c5eap-1, 0x1.d390b16ba7216p-1,
+0x1.55623d4aaac48p-2, 0x1.a93fa3f3527f4p-3, 0x1.3dca77827b94fp-4, 0x1.4c423b9298847p-1,
+0x1.eb756fabd6eaep-1, 0x1.bcdd9ad379bb3p-2, 0x1.c486566b890cbp-2, 0x1.80748b4300e91p-3,
+0x1.0bc1c47617839p-1, 0x1.7c341a0ef8683p-1, 0x1.e658bcd3ccb18p-2, 0x1.18ad4636315a9p-1,
+0x1.700fe3c2e01fcp-4, 0x1.06f322a20de64p-3, 0x1.9c003abf38007p-1, 0x1.abb36d9b5766ep-1,
+0x1.c67d208b8cfa4p-2, 0x1.95bbd8ff2b77bp-1, 0x1.368e96966d1d3p-1, 0x1.f793dbcbef27bp-1,
+0x1.651f1012ca3e2p-2, 0x1.a6fd15734dfa3p-2, 0x1.132b1cb626564p-1, 0x1.7b5910b6f6b22p-1,
+0x1.8534769b0a68fp-2, 0x1.d353640fa6a6dp-1, 0x1.1d28c7fa3a519p-1, 0x1.cdc63c279b8c8p-1,
+0x1.9abf3ee3357e8p-2, 0x1.8d6065c31ac0dp-3, 0x1.a156ed8f42adep-1, 0x1.7810be16f0218p-1,
+0x1.9b5004db36a01p-2, 0x1.c9103c7f92208p-1, 0x1.88a5f34b114bep-2, 0x1.723ae42ae475dp-2,
+0x1.4efe13ca9dfc2p-2, 0x1.a69624db4d2c5p-1, 0x1.193a94e632753p-1, 0x1.b340ce5b6681ap-1,
+0x1.22ca3ee645948p-1, 0x1.8cde6a0319bcdp-6, 0x1.97dc29232fb85p-2, 0x1.50cc3b5ea1987p-1,
+0x1.388eefe2711dep-3, 0x1.9fb93d333f728p-3, 0x1.f8ff51f3f1feap-2, 0x1.31624c3e62c4ap-1,
+0x1.fdaa284bfb545p-1, 0x1.9871fc6330e4p-4, 0x1.28f6280651ec5p-1, 0x1.607360aac0e6cp-2,
+0x1.068cca460d199p-1, 0x1.e10a25e3c2145p-4, 0x1.5c960842b92c1p-4, 0x1.c9270593924e1p-1,
+0x1.ee951903dd2a3p-6, 0x1.48bb890691771p-1, 0x1.96ed41bb2dda8p-1, 0x1.b9a8907373512p-2,
+0x1.ac13a27758274p-1, 0x1.38442f4670886p-1, 0x1.53941932a7283p-3, 0x1.e6ee9383cddd2p-3,
+0x1.01546bc602a8dp-1, 0x1.1937fff6327p-1, 0x1.32d916fa65b23p-1, 0x1.a8d375ab51a6fp-1,
+0x1.7f9c499aff389p-2, 0x1.304eaf72609d6p-3, 0x1.5c144406b8289p-1, 0x1.e29863b7c530cp-1,
+0x1.61ea7cb2c3d5p-3, 0x1.4012c4a280259p-4, 0x1.33649f1266c94p-1, 0x1.4d3cb6529a797p-2,
+0x1.1fe14fc23fc2ap-2, 0x1.7f224042fe448p-4, 0x1.d800a767b0015p-1, 0x1.1b35a05a366b4p-2,
+0x1.8bca1e5317944p-3, 0x1.00f6cf6e01edap-1, 0x1.3dd480827ba9p-1, 0x1.697f51dad2feap-1,
+0x1.3d18142a7a303p-1, 0x1.6967418ad2ce8p-1, 0x1.32a6576e654cbp-1, 0x1.4c8cbcf299198p-1,
+0x1.6445951ac88b3p-2, 0x1.9327324b264e6p-2, 0x1.4b08296296105p-4, 0x1.78d9b402f1b37p-3,
+0x1.d7c86803af90dp-9, 0x1.f9182de3f2306p-3, 0x1.afe423cb5fc84p-2, 0x1.032c342e06587p-1,
+0x1.977e0b6f2efc1p-1, 0x1.59651b82b2ca3p-6, 0x1.57ff53b2affeap-2, 0x1.5d30c0f2ba618p-3,
+0x1.5b7b52e2b6f6ap-3, 0x1.027dbb8204fb7p-6, 0x1.cf249f839e494p-4, 0x1.5eb2e7d2bd65dp-2,
+0x1.80b2338301646p-4, 0x1.6d493302da926p-1, 0x1.55f7cf12abefap-1, 0x1.800ddca3001bcp-2,
+0x1.9d2d7b0f3a5afp-1, 0x1.2df876765bf0fp-1, 0x1.4da1be7e9b438p-1, 0x1.00150002002ap-12,
+0x1.777a2f02eef46p-4, 0x1.16ec7dfa2dd9p-2, 0x1.699f547ed33ebp-1, 0x1.6c075a0ad80ebp-1,
+0x1.f4dd808be9bbp-1, 0x1.388b57d27116bp-2, 0x1.71282dfae2506p-2, 0x1.4e00962a9c013p-2,
+0x1.65d9450ecbb29p-1, 0x1.c3ea385387d47p-2, 0x1.0536b81a0a6d7p-1, 0x1.67b10d76cf622p-1,
+0x1.603b27a2c0765p-1, 0x1.dd28c9ffba519p-1, 0x1.ab75069356ea1p-3, 0x1.ef726623dee4dp-2,
+0x1.e7f3f2dbcfe7ep-1, 0x1.16dceb7e2db9dp-1, 0x1.4f05634e9e0acp-1, 0x1.f6963c83ed2c8p-4,
+0x1.1ef0d95a3de1bp-1, 0x1.88e9f73f11d3fp-1, 0x1.dc5876f3b8b0fp-2, 0x1.4f071fca9e0e4p-1,
+0x1.ec66547bd8ccbp-2, 0x1.10902a2221205p-3, 0x1.e1c1c303c3838p-6, 0x1.26c14a924d829p-2,
+0x1.721c8102e439p-1, 0x1.5cafcc9ab95fap-1, 0x1.27014fda4e02ap-2, 0x1.a10bc6e342179p-1,
+0x1.e8260b97d04c1p-1, 0x1.fd1ffc6bfa4p-1, 0x1.0d1320ee1a264p-1, 0x1.dd038c1fba072p-1,
+0x1.32cb50a26596ap-2, 0x1.c5a737eb8b4e7p-1, 0x1.0807ae6a100f6p-2, 0x1.ff3eed5ffe7dep-1,
+0x1.4f38a8229e715p-2, 0x1.893a8f4f12752p-1, 0x1.66effad2cddffp-1, 0x1.f5deec03ebbdep-7,
+0x1.6663594accc6bp-1, 0x1.d1cd3c77a39a8p-1, 0x1.ff215d83fe42cp-2, 0x1.4e574c229caeap-1,
+0x1.d1544fe3a2a8ap-2, 0x1.3a58483274b09p-3, 0x1.8d2a13b31a542p-1, 0x1.e6c05203cd80ap-7,
+0x1.d780094baf001p-1, 0x1.ed593cb3dab28p-3, 0x1.56a22112ad444p-1, 0x1.9b66671336ccdp-2,
+0x1.7ef4b36afde96p-2, 0x1.65b02f2ecb606p-1, 0x1.6113d8d2c227bp-1, 0x1.8cb6d5a3196dbp-4,
+0x1.84bff78b097ffp-2, 0x1.f49480bfe929p-1, 0x1.d2a2a19ba5454p-1, 0x1.550c0eb2aa182p-2,
+0x1.f1b47d27e369p-1, 0x1.bf6b850b7ed71p-2, 0x1.0f1326f21e265p-2, 0x1.16344aea2c689p-2,
+0x1.4ab9f4da9573fp-2, 0x1.0b8d6aae171adp-1, 0x1.14b225a229645p-2, 0x1.4cf94e7e99f2ap-1,
+0x1.298ff3f2531fep-2, 0x1.f1490da7e2922p-1, 0x1.54d0ca2ea9a19p-1, 0x1.fb2b5343f656ap-1,
+0x1.c3164a1b862c9p-1, 0x1.5185e3c2a30bcp-3, 0x1.49829f6293054p-1, 0x1.5780e41aaf01dp-2,
+0x1.45ef15fa8bde3p-2, 0x1.ad5966235ab2dp-2, 0x1.66b6e6aacd6ddp-2, 0x1.e9de5123d3bcap-3,
+0x1.5203023ea406p-1, 0x1.3fb28d027f652p-6, 0x1.482ac7d290559p-1, 0x1.17d5bf422fab8p-5,
+0x1.6fadc396df5b8p-1, 0x1.527d4142a4fa8p-2, 0x1.0c50daa218a1bp-3, 0x1.906dfac320dbfp-4,
+0x1.3ba642c2774c8p-2, 0x1.5b6d8402b6db1p-5, 0x1.b9278d63724f2p-2, 0x1.1f0f3d0a3e1e8p-2,
+0x1.ead9358bd5b27p-2, 0x1.641d5a2ac83abp-1, 0x1.1aa1c3fe35438p-1, 0x1.9ac9953335933p-1,
+0x1.beab13537d562p-3, 0x1.a4fad6cf49f5bp-1, 0x1.cf85c75b9f0b9p-2, 0x1.0472bece08e58p-1,
+0x1.9643e4732c87dp-1, 0x1.e49d6ee3c93aep-4, 0x1.ff3c241bfe785p-2, 0x1.595a2e8eb2b46p-1,
+0x1.21ea4d9a43d4ap-2, 0x1.2482c5b249059p-3, 0x1.46a826028d505p-7, 0x1.33ecb1ca67d96p-1,
+0x1.1fcd64823f9adp-1, 0x1.70ec27dae1d85p-2, 0x1.ae6446135cc89p-1, 0x1.c7419af38e833p-3,
+0x1.84e750ab09ceap-2, 0x1.ed1e1bc3da3c3p-2, 0x1.069b85620d371p-2, 0x1.910b5f432216cp-4,
+0x1.9fcdae873f9b6p-1, 0x1.8cc3f2bb1987ep-2, 0x1.90bcad0321796p-3, 0x1.ed067f23da0dp-4,
+0x1.b831a33b70634p-2, 0x1.40c2f1f68185ep-1, 0x1.9a50dcd334a1cp-2, 0x1.d1856c67a30aep-1,
+0x1.49c0983a93813p-2, 0x1.e7ca3267cf946p-1, 0x1.6c4f0196d89ep-1, 0x1.148b10f629162p-1,
+0x1.8cc50937198a1p-1, 0x1.50479512a08f3p-3, 0x1.8fdcfc031fbap-5, 0x1.2308eda64611ep-1,
+0x1.214b264242965p-2, 0x1.189be1d23137cp-1, 0x1.f18c70c3e318ep-3, 0x1.219ab9ee43357p-1,
+0x1.61bc933ec3792p-1, 0x1.02fb799205f6fp-2, 0x1.561daed2ac3b6p-3, 0x1.0313ef7a0627ep-2,
+0x1.39f3d0ba73e7ap-1, 0x1.f5d8e403ebb1dp-8, 0x1.e6b4bcfbcd698p-2, 0x1.fc67790ff8cefp-1,
+0x1.f4f57f53e9ebp-2, 0x1.76a8212eed504p-1, 0x1.744727c2e88e5p-4, 0x1.3490dc5a6921cp-2,
+0x1.e850d443d0a1bp-4, 0x1.257020724ae04p-2, 0x1.afd27c235fa5p-2, 0x1.1922ec2a3245ep-1,
+0x1.d37b022fa6f6p-1, 0x1.a511ac7f4a236p-1, 0x1.d550b11baaa16p-2, 0x1.e16d3933c2da7p-3,
+0x1.8cdbdee319b7cp-1, 0x1.5bdd6882b7badp-3, 0x1.8ce65f4319cccp-1, 0x1.19a0e8163341dp-1,
+0x1.56127ecaac25p-2, 0x1.a5e42f034bc86p-1, 0x1.e54eade3ca9d6p-4, 0x1.3baed286775dap-1,
+0x1.7d0021a2fa004p-2, 0x1.7219e3dae433cp-2, 0x1.752631c2ea4c6p-3, 0x1.01e5208203ca4p-4,
+0x1.3a8aaeba75156p-1, 0x1.65a1f052cb43ep-2, 0x1.438d379a871a7p-2, 0x1.d1f9fdc3a3f4p-3,
+0x1.6d7953e2daf2ap-2, 0x1.9520fa4b2a41fp-1, 0x1.c397e1f3872fcp-3, 0x1.b137699b626edp-1,
+0x1.0bc91b7a17923p-1, 0x1.3eddbaea7dbb7p-2, 0x1.2dff5f225bfecp-3, 0x1.48d3360291a67p-1,
+0x1.3226edb2644dep-1, 0x1.236915da46d23p-1, 0x1.87d888a30fb11p-3, 0x1.05a1efde0b43ep-1,
+0x1.90f584ab21eb1p-2, 0x1.4c9e7ab6993cfp-1, 0x1.7dfd3e2afbfa8p-1, 0x1.555a84e2aab51p-3,
+0x1.a395d4db472bbp-1, 0x1.0ae39d6a15c74p-1, 0x1.6ef7894eddef1p-1, 0x1.3a7c50f274f8ap-3,
+0x1.618f98dac31f3p-2, 0x1.aba15f0b5742cp-1, 0x1.8a4de6c7149bdp-1, 0x1.6f47dd3ede8fcp-1,
+0x1.92b943e325728p-3, 0x1.e7977337cf2eep-1, 0x1.8f84814f1f09p-1, 0x1.9f38ffb33e72p-1,
+0x1.34d0d6ba69a1bp-2, 0x1.8a58e8e314b1dp-4, 0x1.3b77f20276efep-5, 0x1.5125154ea24a3p-1,
+0x1.c66c17678cd83p-1, 0x1.093aef3a1275ep-2, 0x1.025c7eea04b9p-1, 0x1.a46a65bb48d4dp-2,
+0x1.240c55164818bp-1, 0x1.4ddc56b29bb8bp-1, 0x1.b0868e03610d2p-5, 0x1.58cd0b12b19a1p-3,
+0x1.c515b2238a2b6p-3, 0x1.f3fa2c23e7f46p-3, 0x1.5bd532a2b7aa6p-1, 0x1.39c02ee273806p-1,
+0x1.c99d05c3933a1p-1, 0x1.b3a4e19b6749cp-2, 0x1.8f16d01b1e2dap-1, 0x1.6d32da9ada65bp-1,
+0x1.e4b60e37c96c2p-1, 0x1.fc1cb2cbf8396p-2, 0x1.bbd1eed777a3ep-1, 0x1.2afbb54255f77p-2,
+0x1.535f70e2a6beep-2, 0x1.461fd59a8c3fbp-1, 0x1.316df80262dbfp-7, 0x1.0e5e096a1cbc1p-1,
+0x1.2db748d25b6e9p-1, 0x1.944a392f28947p-1, 0x1.5b2e1232b65c2p-2, 0x1.c81fb42f903f7p-1,
+0x1.c595564b8b2abp-1, 0x1.829d1073053a2p-2, 0x1.1944c97e32899p-1, 0x1.8c016db31802ep-1,
+0x1.45ebffd68bd8p-1, 0x1.ba14864374291p-5, 0x1.78da8232f1b5p-3, 0x1.a7e153a34fc2ap-3,
+0x1.697d9f16d2fb4p-1, 0x1.e4fc25b3c9f85p-3, 0x1.80572f5b00ae6p-2, 0x1.dac30b9fb5861p-1,
+0x1.ec7b28f3d8f65p-2, 0x1.c00ca50380195p-5, 0x1.14833a7e29067p-1, 0x1.7fb53472ff6a7p-2,
+0x1.eba6763bd74cfp-2, 0x1.4734152a8e683p-2, 0x1.686ba682d0d75p-4, 0x1.b51292a36a252p-2,
+0x1.a1a863ff4350cp-1, 0x1.e8df63a7d1becp-1, 0x1.700723f6e00e4p-1, 0x1.2d6071b25ac0ep-3,
+0x1.2eff39425dfe7p-1, 0x1.74ccdbd6e999bp-1, 0x1.59b625d6b36c5p-1, 0x1.72da0842e5b41p-3,
+0x1.09171502122e3p-1, 0x1.d34bbb03a6977p-7, 0x1.26b1b1e24d636p-4, 0x1.9d58d69b3ab1bp-2,
+0x1.91376e4b226eep-2, 0x1.3e1affba7c36p-1, 0x1.6ab763f2d56ecp-3, 0x1.d0f6df03a1edcp-6,
+0x1.59bc481eb3789p-1, 0x1.71c8f312e391ep-2, 0x1.e2002f93c4006p-3, 0x1.8673ce630ce7ap-2,
+0x1.322382fa6447p-1, 0x1.38aba39271574p-1, 0x1.3bf9e5a277f3dp-2, 0x1.4308bb8286117p-4,
+0x1.54ac6de2a958ep-1, 0x1.b2802d4f65006p-1, 0x1.d0776353a0eecp-2, 0x1.29fea3f253fd4p-3,
+0x1.5868df92b0d1cp-3, 0x1.1549267a2a925p-1, 0x1.2508f2524a11ep-1, 0x1.f7c29be3ef853p-1,
+0x1.fc51143bf8a23p-2, 0x1.2a202c8a54406p-2, 0x1.0c6ae13218d5cp-3, 0x1.693e1ae2d27c3p-4,
+0x1.3b9e4302773c8p-6, 0x1.9cd0de2339a1cp-1, 0x1.13bc8ada27791p-2, 0x1.12f4071a25e81p-1,
+0x1.a41e0d0f483c2p-1, 0x1.5d68f75abad1fp-2, 0x1.e1a07267c340ep-1, 0x1.b2e710c365ce2p-3,
+0x1.eccf7b67d99efp-1, 0x1.e2725b03c4e4bp-4, 0x1.ed05eca3da0bep-3, 0x1.468bc3868d178p-1,
+0x1.ea6589dbd4cb1p-2, 0x1.e7830e1bcf062p-2, 0x1.38b55682716abp-6, 0x1.3ab23f2275648p-4,
+0x1.63695502c6d2bp-4, 0x1.4f853b0a9f0a7p-2, 0x1.3edd7d527dbbp-3, 0x1.8119988302333p-1,
+0x1.690b2b52d2165p-3, 0x1.37f310fe6fe62p-1, 0x1.cb99418397328p-1, 0x1.60ba0572c1741p-2,
+0x1.34f0ddd269e1cp-3, 0x1.e14467a3c288dp-2, 0x1.503f3d32a07e8p-2, 0x1.4b64c19296c98p-1,
+0x1.85b24a170b649p-1, 0x1.d674adcbace96p-2, 0x1.788c84f2f1191p-1, 0x1.8f8f3c2f1f1e8p-1,
+0x1.10166a0a202cdp-2, 0x1.35652e026aca6p-8, 0x1.4506868a8a0d1p-2, 0x1.614a1082c2942p-4,
+0x1.623e8c12c47d2p-2, 0x1.08476b5a108edp-2, 0x1.31c60c82638c2p-2, 0x1.3bdd82e277bbp-2,
+0x1.80e4021b01c8p-2, 0x1.1424816a2849p-1, 0x1.e47a84f7c8f51p-1, 0x1.b5a4c5fb6b499p-1,
+0x1.f9821e03f3044p-7, 0x1.ee402fabdc806p-1, 0x1.dcfb0ddfb9f62p-1, 0x1.a29998c345333p-4,
+0x1.2c059a62580b3p-2, 0x1.65936982cb26dp-4, 0x1.b56ccb9b6ad99p-1, 0x1.e08b300bc1166p-2,
+0x1.64a57e2ec94bp-1, 0x1.81060d1b020c2p-1, 0x1.a0a29abf41453p-1, 0x1.b1e1b5a363c37p-1,
+0x1.c6a103a38d42p-3, 0x1.2308e5524611dp-3, 0x1.fa8cee6bf519ep-2, 0x1.f75a8affeeb51p-1,
+0x1.33fc903a67f92p-1, 0x1.d74bf093ae97ep-3, 0x1.86e9c72b0dd39p-1, 0x1.bc07c53f780f9p-1,
+0x1.e0f71a03c1ee3p-3, 0x1.4b68538296d0ap-4, 0x1.e831074fd0621p-1, 0x1.295d0c8e52ba2p-1,
+0x1.5b21803ab643p-2, 0x1.02281b1a04503p-2, 0x1.c74bcdff8e97ap-1, 0x1.6e02c12adc058p-1,
+0x1.95388ef72a712p-1, 0x1.abc652f3578cap-1, 0x1.23a78726474f1p-1, 0x1.9d1e976f3a3d3p-1,
+0x1.9a06829b340dp-1, 0x1.00a2950201453p-1, 0x1.d171ca87a2e39p-1, 0x1.804a7e430095p-4,
+0x1.2d5502365aaap-1, 0x1.86de96230dbd3p-1, 0x1.204ee7ce409ddp-1, 0x1.23f500c247eap-2,
+0x1.07e4a33a0fc94p-1, 0x1.81e3051303c61p-2, 0x1.0f70d8121ee1bp-3, 0x1.798ce426f319dp-1,
+0x1.09b3bbde13677p-1, 0x1.4122ad3a82456p-1, 0x1.70e76f22e1ceep-1, 0x1.ed8260a3db04cp-4,
+0x1.b6f5a95f6deb5p-1, 0x1.efa26c9bdf44ep-2, 0x1.f9b81153f3702p-1, 0x1.799b7ee2f337p-4,
+0x1.213e40be427c8p-1, 0x1.e1e9189fc3d23p-1, 0x1.58907c6ab121p-1, 0x1.cecf00db9d9ep-1,
+0x1.8bf498a317e93p-3, 0x1.1fdc4a663fb89p-1, 0x1.3cd1c20279a38p-1, 0x1.f835b523f06b7p-1,
+0x1.97453aab2e8a7p-2, 0x1.81e5249303ca5p-3, 0x1.95544c8f2aa8ap-1, 0x1.96a47fc32d49p-3,
+0x1.611bde2ac237cp-1, 0x1.66c61716cd8c3p-1, 0x1.2b64df7256c9cp-2, 0x1.1ce1c0ba39c38p-2,
+0x1.db495a6bb692bp-2, 0x1.b601578b6c02bp-1, 0x1.206b60be40d6cp-1, 0x1.f589506feb12ap-1,
+0x1.dbcb6843b796dp-3, 0x1.644796c2c88f3p-1, 0x1.6f163492de2c7p-1, 0x1.80a695f3014d3p-1,
+0x1.4ad487f295a91p-2, 0x1.bffb476b7ff69p-2, 0x1.be56e2077cadcp-1, 0x1.717fb552e2ff7p-3,
+0x1.d7ceda03af9dbp-1, 0x1.b80ef35b701dep-1, 0x1.1726ba6a2e4d7p-2, 0x1.f21a357be4347p-2,
+0x1.99f80bf733f01p-1, 0x1.e423d99fc847bp-1, 0x1.8fb8372b1f707p-2, 0x1.fcf53223f9ea6p-1,
+0x1.0400240608005p-1, 0x1.2b77650256eedp-7, 0x1.f52ae743ea55dp-1, 0x1.cfa2c15b9f458p-1,
+0x1.949c9af329393p-3, 0x1.8a7f33cf14fe6p-1, 0x1.aa5f0a4354be1p-4, 0x1.c64304e78c861p-1,
+0x1.e28a95c3c5153p-2, 0x1.95fca20b2bf94p-2, 0x1.52cf9502a59f3p-3, 0x1.dee9f817bdd3fp-1,
+0x1.01ff511a03feap-2, 0x1.751f45feea3e9p-1, 0x1.d4734887a8e69p-1, 0x1.efe5053bdfca1p-2,
+0x1.b2cdb983659b7p-2, 0x1.43897d168713p-1, 0x1.e2646233c4c8cp-3, 0x1.7ed120bafda24p-1,
+0x1.1c39064238721p-4, 0x1.b77fd4a36effbp-4, 0x1.db310e13b6622p-1, 0x1.fb55facbf6abfp-1,
+0x1.eefeedefddfdep-1, 0x1.9b11ad1336236p-3, 0x1.e8c62b0bd18c5p-2, 0x1.88f6f9e311edfp-1,
+0x1.2ba1138257422p-3, 0x1.bc3f311b787e6p-1, 0x1.85ec2c030bd86p-1, 0x1.4ee868e69dd0dp-1,
+0x1.c0ed0eb381da2p-1, 0x1.7b171342f62e2p-1, 0x1.1e8b2a423d165p-1, 0x1.30a1ab6261435p-4,
+0x1.059647120b2c9p-1, 0x1.53d70b8aa7ae1p-1, 0x1.ec573a53d8ae7p-1, 0x1.f6db91f3edb72p-1,
+0x1.ed55c8c3daab9p-5, 0x1.042c7e420859p-3, 0x1.d5c58a0bab8b1p-1, 0x1.3faa0a327f541p-2,
+0x1.b62a658f6c54dp-1, 0x1.aa38d28f5471ap-1, 0x1.97c787bb2f8f1p-1, 0x1.1f22849a3e451p-2,
+0x1.db849f43b7094p-2, 0x1.060a04420c141p-5, 0x1.cc4c61039898cp-6, 0x1.1149706e2292ep-1,
+0x1.1d426b623a84dp-3, 0x1.e993711bd326ep-1, 0x1.0c9f6b36193edp-1, 0x1.b27c462364f89p-4,
+0x1.415f717282beep-3, 0x1.0280bc0205018p-9, 0x1.bf4682ab7e8dp-1, 0x1.3680427a6d008p-2,
+0x1.bd41b1d77a836p-1, 0x1.4532aeaa8a656p-1, 0x1.ea288a27d4511p-1, 0x1.7e2ec086fc5d8p-1,
+0x1.809383db0127p-2, 0x1.08b3b46611677p-1, 0x1.a442f5f34885fp-1, 0x1.c5e008ff8bc01p-1,
+0x1.722affb2e456p-3, 0x1.909a304321346p-1, 0x1.bcbb9aef79773p-1, 0x1.ed8071f3db00ep-3,
+0x1.d1a54fd3a34aap-1, 0x1.928124f725025p-1, 0x1.1b352196366a4p-1, 0x1.87cfb5630f9f7p-1,
+0x1.3cb9f7827973fp-1, 0x1.65f9529acbf2ap-2, 0x1.760f7ac2ec1efp-5, 0x1.53e23922a7c47p-4,
+0x1.86ba932b0d752p-2, 0x1.2e1ad5a25c35bp-4, 0x1.3bc5b792778b7p-1, 0x1.0aade46e155bdp-1,
+0x1.ead97983d5b2fp-6, 0x1.21948b1243291p-3, 0x1.40fd6d3681faep-1, 0x1.7ebaa0a2fd754p-3,
+0x1.259e8e024b3d2p-3, 0x1.0043efde0087ep-1, 0x1.f5dd92d3ebbb2p-2, 0x1.aa55560354aabp-7,
+0x1.15da7a122bb4fp-3, 0x1.ca2ea71b945d5p-2, 0x1.84d815df09b03p-1, 0x1.05c060720b80cp-1,
+0x1.edcb07f3db961p-1, 0x1.291b0bd252361p-1, 0x1.9740d2db2e81ap-2, 0x1.29571f7252ae4p-3,
+0x1.736a7822e6d4fp-2, 0x1.10b808ba21701p-2, 0x1.8b6bc8b316d79p-2, 0x1.16b517ca2d6a3p-2,
+0x1.add295035ba53p-5, 0x1.e0eb05f3c1d61p-1, 0x1.32a4144265483p-5, 0x1.579720d6af2e4p-1,
+0x1.27cf5e7a4f9ecp-2, 0x1.5459c782a8b39p-4, 0x1.821367fb0426dp-1, 0x1.5744f8d2ae89fp-1,
+0x1.413a4ea28274ap-3, 0x1.7bb23f12f7648p-2, 0x1.87cb75030f96fp-3, 0x1.7e957dd2fd2bp-3,
+0x1.063e424e0c7c8p-1, 0x1.a2f04a7745e09p-1, 0x1.7ea80f42fd502p-2, 0x1.4fa5e5d29f4bdp-1,
+0x1.466874a28cd0fp-2, 0x1.ba42d10b7485ap-1, 0x1.564f3b2aac9e7p-1, 0x1.d155b1aba2ab6p-2,
+0x1.3eb4492a7d689p-2, 0x1.b64ea20b6c9d4p-2, 0x1.ee6b394bdcd67p-1, 0x1.1a4a590a3494bp-2,
+0x1.10973502212e7p-7, 0x1.7417456ae82e9p-2, 0x1.aef5e8c35debdp-2, 0x1.7bef31d2f7de6p-2,
+0x1.4267a71284cf5p-1, 0x1.9d30d8bf3a61bp-1, 0x1.495224ce92a45p-1, 0x1.5d44d066ba89ap-1,
+0x1.7e1bdeaefc37cp-1, 0x1.5c7c6612b8f8dp-1, 0x1.69b7e272d36fcp-2, 0x1.2038de824071cp-5,
+0x1.87079f030e0f4p-1, 0x1.b77ac9836ef59p-4, 0x1.694886bed2911p-1, 0x1.d75632abaeac6p-1,
+0x1.e990f173d321ep-2, 0x1.cb3b63ff9676cp-1, 0x1.b7dc91036fb92p-4, 0x1.fb06bb07f60d7p-1,
+0x1.6e2bae72dc576p-1, 0x1.ec9f3383d93e6p-2, 0x1.4aaca0d695594p-1, 0x1.15fe8c022bfd2p-5,
+0x1.6124d592c249bp-2, 0x1.41f7b7fa83ef7p-2, 0x1.f415832be82bp-2, 0x1.4fec8f5e9fd92p-1,
+0x1.7c232d06f8466p-1, 0x1.d0ebf5bba1d7fp-2, 0x1.dd11bbe3ba237p-1, 0x1.806589db00cb1p-1,
+0x1.a2819d9745034p-1, 0x1.69196082d232cp-2, 0x1.f2e91603e5d23p-4, 0x1.c9d2894b93a51p-2,
+0x1.46f623f28dec4p-3, 0x1.87af478f0f5e9p-1, 0x1.08b854221170bp-3, 0x1.cfd967ab9fb2dp-1,
+0x1.c8575b3b90aebp-2, 0x1.ee140c83dc282p-2, 0x1.e1dcf597c3b9fp-1, 0x1.accd3283599a6p-3,
+0x1.2df95f725bf2cp-1, 0x1.4b257c52964bp-1, 0x1.0a25fd22144cp-3, 0x1.160ec1422c1d8p-4,
+0x1.1660e04e2cc1cp-1, 0x1.e61445a3cc289p-3, 0x1.dc893303b9126p-5, 0x1.09191d7a12324p-2,
+0x1.6fd4ab2adfa95p-1, 0x1.68753406d0ea7p-1, 0x1.2bd8eefa57b1ep-2, 0x1.0338af8206716p-4,
+0x1.2e2200825c44p-6, 0x1.8ff739131fee7p-1, 0x1.7053a54ee0a75p-1, 0x1.85943d0b0b288p-1,
+0x1.e1b4cfc3c369ap-3, 0x1.4d65612e9acacp-1, 0x1.05f9c6e20bf39p-1, 0x1.aeed18435dda3p-5,
+0x1.f2117003e422ep-9, 0x1.4456e9a688addp-1, 0x1.ffb02c53ff606p-2, 0x1.4ebe69b29d7cdp-3,
+0x1.980c62633018cp-2, 0x1.42062b36840c5p-1, 0x1.1c4810c238902p-4, 0x1.b031ded36063cp-1,
+0x1.c8818ba391031p-4, 0x1.597deb02b2fbdp-7, 0x1.b652b7036ca57p-5, 0x1.670990eace132p-1,
+0x1.508b73fea116ep-1, 0x1.77baaae2ef755p-3, 0x1.89cb69131396dp-1, 0x1.9bb151233762ap-3,
+0x1.aee7784b5dcefp-2, 0x1.a793fc434f28p-1, 0x1.d6f1c60bade39p-2, 0x1.1d219d323a434p-3,
+0x1.1009304a20126p-1, 0x1.81655a8302cabp-1, 0x1.9ebdf5033d7bfp-3, 0x1.197a404e32f48p-1,
+0x1.115c939222b92p-1, 0x1.d803228fb0064p-1, 0x1.3e1cfaaa7c39fp-2, 0x1.89c9c78313939p-1,
+0x1.256883be4ad1p-1, 0x1.a50844374a109p-1, 0x1.a4b8990749713p-1, 0x1.275a952e4eb53p-1,
+0x1.d2be5bb3a57cbp-2, 0x1.49215e629242cp-2, 0x1.7b0a2f9af6146p-1, 0x1.b5655f0f6acacp-1,
+0x1.e696da67cd2dbp-1, 0x1.9e9331b33d266p-1, 0x1.65973ddecb2e8p-1, 0x1.fa70bd83f4e18p-5,
+0x1.a3f9295f47f25p-1, 0x1.80fc694f01f8dp-1, 0x1.86b09cc30d614p-1, 0x1.e9093ab3d2127p-2,
+0x1.deeb1407bdd63p-1, 0x1.107c05d620f81p-1, 0x1.5b70f1a2b6e1ep-1, 0x1.6cbda052d97b4p-2,
+0x1.7020042ae0401p-2, 0x1.1ba75292374eap-3, 0x1.fb4e6ef3f69cep-2, 0x1.c819325f90326p-1,
+0x1.c84f2f27909e6p-1, 0x1.6556b4bacaad7p-1, 0x1.c326e553864ddp-2, 0x1.b357857366af1p-2,
+0x1.3d59d7467ab3bp-1, 0x1.80a1efff0143ep-1, 0x1.8dd628e31bac5p-3, 0x1.8b096c031612ep-3,
+0x1.25aa34364b547p-1, 0x1.05c468020b88dp-6, 0x1.8a1cf02f1439ep-1, 0x1.e12c4183c2588p-6,
+0x1.597da4e2b2fb5p-2, 0x1.05271fca0a4e4p-1, 0x1.c46ec11b88dd8p-1, 0x1.26ab59aa4d56bp-2,
+0x1.4774a2f28ee94p-2, 0x1.2a05fef6540cp-1, 0x1.65f9715acbf2ep-2, 0x1.1ecdeb623d9bdp-3,
+0x1.5604d082ac09ap-2, 0x1.cd6aab839ad55p-4, 0x1.3c38183278703p-1, 0x1.13daf89227b5fp-2,
+0x1.4a295b469452bp-1, 0x1.2f5213aa5ea42p-2, 0x1.404c4c728098ap-1, 0x1.1caeac02395d6p-8,
+0x1.bd25bcf37a4b8p-2, 0x1.ef9c1f43df384p-4, 0x1.ca528fbb94a52p-1, 0x1.4dc41b429b883p-2,
+0x1.a34a38a346947p-1, 0x1.57cc04c2af981p-2, 0x1.808dd05b011bap-1, 0x1.c1481fd382904p-2,
+0x1.643f9302c87f2p-4, 0x1.e4035a93c806bp-1, 0x1.43666aea86ccdp-1, 0x1.52322696a4645p-1,
+0x1.ec317dd3d863p-1, 0x1.9b06b633360d7p-2, 0x1.613b88a2c2771p-1, 0x1.31e0a08263c14p-2,
+0x1.d2aa7ae3a554fp-1, 0x1.25aa49be4b549p-1, 0x1.2c45fd16588cp-1, 0x1.d9933163b3266p-3,
+0x1.3ec122c27d824p-3, 0x1.df42b5c7be857p-1, 0x1.7c308e62f8612p-2, 0x1.f56561ebeacacp-2,
+0x1.8f00b3431e016p-5, 0x1.fa505f67f4a0cp-1, 0x1.84a02d3f09406p-1, 0x1.6319667ac632dp-1,
+0x1.23f2d27247e5ap-2, 0x1.89d8f35b13b1ep-2, 0x1.6552c3d2caa58p-1, 0x1.708c47b2e1189p-1,
+0x1.02dffd9a05cp-1, 0x1.2fa5538a5f4aap-1, 0x1.76e55502edcabp-5, 0x1.4c546c7298a8ep-2,
+0x1.db8b55efb716bp-1, 0x1.97fc25ab2ff85p-1, 0x1.86ce46230d9c9p-1, 0x1.0269098204d21p-6,
+0x1.7bff803ef7ffp-1, 0x1.9469621b28d2cp-2, 0x1.5a456ee2b48aep-1, 0x1.6830fe0ed062p-1,
+0x1.97b80c272f702p-1, 0x1.7701ef02ee03ep-2, 0x1.214e5002429cap-9, 0x1.6a628706d4c51p-1,
+0x1.e12b413fc2568p-1, 0x1.2d674b665ace9p-1, 0x1.e0c7535fc18eap-1, 0x1.86dc4f830db8ap-4,
+0x1.0caa012a1954p-1, 0x1.3dbf35227b7e7p-2, 0x1.2b8e3ae6571c7p-1, 0x1.259a0c5e4b342p-1,
+0x1.325ff3ea64bfep-2, 0x1.605cd042c0b9ap-2, 0x1.1166e5aa22cddp-2, 0x1.2b29632e5652cp-1,
+0x1.751ae1ceea35cp-1, 0x1.ee0636abdc0c7p-1, 0x1.376b55ba6ed6bp-2, 0x1.dfeb7d93bfd7p-3,
+0x1.1dab8a323b571p-1, 0x1.66480062cc9p-2, 0x1.1e2515a23c4a3p-1, 0x1.f26dc03be4db8p-2,
+0x1.2c80976259013p-3, 0x1.49e6b78293cd7p-2, 0x1.014a286a02945p-1, 0x1.c71fa6178e3f5p-1,
+0x1.6f280ccede502p-1, 0x1.6e3e5d22dc7ccp-3, 0x1.2f50a4265ea15p-1, 0x1.06e018f20dc03p-1,
+0x1.17108ece2e212p-1, 0x1.3071f27660e3ep-1, 0x1.c50a7fd38a15p-3, 0x1.f077a013e0ef4p-2,
+0x1.7764f762eec9fp-3, 0x1.4827cd52904fap-3, 0x1.291759fa522ebp-1, 0x1.6a833f06d5068p-1,
+0x1.e1d31bcbc3a63p-2, 0x1.52965372a52cap-3, 0x1.203a96c240753p-2, 0x1.8a1987db14331p-1,
+0x1.04d3fcfe09a8p-1, 0x1.18d0be3a31a18p-1, 0x1.6a85d60ad50bbp-2, 0x1.e7bb7b33cf76fp-3,
+0x1.06d6f4e20dadfp-1, 0x1.50f895e2a1f13p-1, 0x1.e3d37c63c7a7p-2, 0x1.2413f8824827fp-4,
+0x1.072584020e4b1p-7, 0x1.00ed3d0201da8p-5, 0x1.1db95f323b72cp-1, 0x1.3cf2efb279e5ep-3,
+0x1.6a045f2ad408cp-2, 0x1.f0387983e070fp-5, 0x1.65c62002cb8c4p-5, 0x1.2151e30242a3cp-4,
+0x1.ea4c7b93d498fp-3, 0x1.45ad06268b5a1p-1, 0x1.2b0a55565614bp-1, 0x1.91a3adb323476p-1,
+0x1.d87be263b0f7cp-3, 0x1.9c4cf54b3899fp-1, 0x1.13befb72277dfp-2, 0x1.a7f06ceb4fe0ep-2,
+0x1.ee56e89fdcaddp-1, 0x1.b2f6d7b765edbp-1, 0x1.f3dbabc3e7b75p-4, 0x1.be80ed037d01ep-2,
+0x1.e71b2403ce365p-7, 0x1.9d3181b33a63p-2, 0x1.a567f9634acffp-3, 0x1.0c70699218e0dp-1,
+0x1.e7697f13ced3p-1, 0x1.1e9ce95e3d39dp-1, 0x1.865f485f0cbe9p-1, 0x1.dc80e7e3b901dp-2,
+0x1.be55fd037cacp-3, 0x1.e1241a33c2483p-3, 0x1.12c2f3062585ep-1, 0x1.cec855439d90bp-3,
+0x1.10afb4c2215f7p-2, 0x1.83e291a307c52p-4, 0x1.85dda27b0bbb4p-2, 0x1.3d5a09f67ab41p-1,
+0x1.3dff67327bfedp-3, 0x1.b2966683652cdp-2, 0x1.61844656c3089p-1, 0x1.9425f163284bep-2,
+0x1.ef839643df073p-5, 0x1.191d3752323a7p-2, 0x1.6eda9982ddb53p-3, 0x1.2a2e6402545cdp-2,
+0x1.46dc87a28db91p-4, 0x1.cb2c483b96589p-2, 0x1.690f6876d21edp-1, 0x1.73279902e64f3p-5,
+0x1.3119f7a26233fp-2, 0x1.a78addef4f15cp-1, 0x1.ece5e02bd9cbcp-2, 0x1.4052d0c280a5ap-2,
+0x1.d88e7b13b11cfp-3, 0x1.5fccee6ebf99ep-1, 0x1.ac99d1f35933ap-1, 0x1.76347762ec68fp-3,
+0x1.f9a75f33f34ecp-3, 0x1.32f91a4e65f23p-1, 0x1.4bcd91ca979b2p-1, 0x1.dbfeae1bb7fd6p-2,
+0x1.ab4220df56844p-1, 0x1.7a421332f4842p-3, 0x1.61b16c5ec362ep-1, 0x1.9ccfd9e3399fbp-4,
+0x1.1e19ae023c336p-2, 0x1.2501ece24a03ep-4, 0x1.70f40532e1e81p-1, 0x1.bd1961a37a32cp-2,
+0x1.fbd6e1bbf7adcp-2, 0x1.a4f0970b49e13p-2, 0x1.a89fa983513f5p-1, 0x1.1ce3aa4239c75p-1,
+0x1.5f06e732be0ddp-1, 0x1.1593f9022b27fp-7, 0x1.b1fadc4363f5cp-1, 0x1.87e278270fc4fp-1,
+0x1.d3d8e803a7b1dp-2, 0x1.1b0a44b636149p-1, 0x1.9f14f1b73e29ep-1, 0x1.82796fd304f2ep-1,
+0x1.852a45430a549p-2, 0x1.2b0fc392561f8p-2, 0x1.1516c1822a2d8p-4, 0x1.38b8c16a71718p-1,
+0x1.f554d03beaa9ap-1, 0x1.cf3caa279e795p-1, 0x1.9645df432c8bcp-1, 0x1.cefaa0139df54p-3,
+0x1.0235c472046b9p-1, 0x1.c426e213884dcp-2, 0x1.61bdff12c37cp-1, 0x1.5aefca9ab5df9p-2,
+0x1.40a3f5da8147fp-1, 0x1.86ded6db0dbdbp-2, 0x1.c223c11384478p-2, 0x1.cfb0ccdb9f61ap-1,
+0x1.d01f5213a03eap-2, 0x1.481796e2902f3p-3, 0x1.5c7afb52b8f5fp-2, 0x1.e5fb19e7cbf63p-1,
+0x1.247e314248fc6p-1, 0x1.5b749cb2b6e94p-3, 0x1.02dec42a05bd9p-1, 0x1.070a30e20e146p-2,
+0x1.6ccddc42d99bcp-3, 0x1.69b340d2d3668p-2, 0x1.6cf21282d9e42p-6, 0x1.451feb128a3fdp-1,
+0x1.cfe3e5239fc7dp-1, 0x1.aa7c824b54f9p-1, 0x1.8f32b5c31e657p-2, 0x1.24f20f8249e42p-2,
+0x1.0011905200232p-3, 0x1.d4786623a8f0dp-2, 0x1.cb31c92b96639p-1, 0x1.aac9a26355934p-4,
+0x1.72f1ba6ae5e37p-2, 0x1.6177a86ac2ef5p-1, 0x1.522fb8a2a45f7p-2, 0x1.bbaea1ab775d4p-1,
+0x1.0e2c65d21c58dp-3, 0x1.5abb6c02b576ep-6, 0x1.a49a1bd349343p-3, 0x1.842f0f4f085e2p-1,
+0x1.9c8a8d9b39152p-2, 0x1.4a3867829470dp-1, 0x1.53dfdc26a7bfcp-1, 0x1.b654efdb6ca9ep-1,
+0x1.9c3e4d3b387cap-1, 0x1.0eace8021d59dp-8, 0x1.9c5009bf38a01p-1, 0x1.8178fcf302f2p-2,
+0x1.63ea03f2c7d4p-3, 0x1.3e5d9bca7cbb3p-2, 0x1.444196ea88833p-1, 0x1.685bf01ad0b7ep-2,
+0x1.54086e52a810ep-1, 0x1.4fa9277e9f525p-1, 0x1.f94de31ff29bcp-1, 0x1.23ec537247d8ap-1,
+0x1.f44b5393e896ap-2, 0x1.81ce7bfb039cfp-2, 0x1.b6655b336ccabp-1, 0x1.3a2a0dde74542p-1,
+0x1.ab23710f5646ep-1, 0x1.8197245f032e5p-1, 0x1.6f83422adf068p-1, 0x1.9271391324e27p-3,
+0x1.c61d998b8c3b3p-2, 0x1.89b1e7831363dp-5, 0x1.02577f6204afp-4, 0x1.2699e63a4d33dp-1,
+0x1.1b87cec2370fap-4, 0x1.12e2edc225c5ep-2, 0x1.5591eb0aab23dp-2, 0x1.e36c814bc6d9p-2,
+0x1.d3a9de63a753cp-1, 0x1.fea8d1affd51ap-1, 0x1.501660faa02ccp-2, 0x1.6fe82b9edfd05p-1,
+0x1.8c56f80318adfp-10, 0x1.116ce8f222d9dp-3, 0x1.852550a30a4aap-4, 0x1.6702b1e2ce056p-3,
+0x1.c71410438e282p-2, 0x1.74e64102e9cc8p-1, 0x1.0deea4861bdd5p-1, 0x1.bc93b38379276p-4,
+0x1.891ed0fb123dap-2, 0x1.073c87a20e791p-1, 0x1.5b7ec9e2b6fd9p-1, 0x1.beb512477d6a2p-1,
+0x1.c823c59f90479p-1, 0x1.11e4251623c85p-1, 0x1.f1be4043e37c8p-2, 0x1.734736aae68e7p-1,
+0x1.26f692e24ded2p-2, 0x1.a189892343131p-3, 0x1.d7e384efafc71p-1, 0x1.768a1636ed143p-1,
+0x1.01fb018203f6p-2, 0x1.f82e74dbf05cfp-1, 0x1.3a47f8e2748ffp-2, 0x1.48dcf53291b9fp-2,
+0x1.033fd77a067fbp-2, 0x1.47ecf1f68fd9ep-1, 0x1.9624bb432c497p-1, 0x1.55272872aa4e5p-3,
+0x1.4695c3a28d2b8p-1, 0x1.f17f5de3e2fecp-4, 0x1.c531f5bb8a63fp-1, 0x1.475bef1e8eb7ep-1,
+0x1.05164bf20a2c9p-2, 0x1.f5d69fd3ebad4p-1, 0x1.a11c9b9742393p-1, 0x1.66152e1ecc2a6p-1,
+0x1.6abce0d2d579cp-1, 0x1.5e168032bc2dp-2, 0x1.9da7a48f3b4f5p-1, 0x1.7a624a62f4c49p-4,
+0x1.b647c7bb6c8f9p-1, 0x1.f24cdce3e499cp-2, 0x1.ee015b97dc02bp-1, 0x1.7e6b8d56fcd72p-1,
+0x1.61527082c2a4ep-6, 0x1.cdc0f76b9b81fp-2, 0x1.e3658803c6cb1p-2, 0x1.3d0bb9ea7a177p-2,
+0x1.4f42de029e85cp-1, 0x1.932c91db26592p-2, 0x1.50ff3282a1fe6p-5, 0x1.d0405ec3a080cp-1,
+0x1.83897b930712fp-2, 0x1.6467df32c8cfcp-2, 0x1.d2bb6573a576dp-3, 0x1.4364a98686c95p-1,
+0x1.fa20e193f441cp-1, 0x1.5a729382b4e52p-6, 0x1.98ae73a3315cep-1, 0x1.40b6a532816d5p-1,
+0x1.240e0162481cp-3, 0x1.5de0695ebbc0dp-1, 0x1.102528a2204a5p-2, 0x1.971d4cab2e3aap-2,
+0x1.53b7092ea76e1p-1, 0x1.49797f2292f3p-4, 0x1.8d1ea3831a3d4p-4, 0x1.7ce7d3faf9cfap-2,
+0x1.b074e00360e9cp-2, 0x1.cf4b78ff9e96fp-1, 0x1.db806693b700dp-2, 0x1.1d046f723a08ep-2,
+0x1.90e3cedb21c7ap-2, 0x1.b7831dbb6f064p-2, 0x1.9db8a2033b714p-6, 0x1.a6f8f5e34df1fp-2,
+0x1.c2a20a9785441p-1, 0x1.fd411223fa822p-2, 0x1.720257e6e404bp-1, 0x1.11e4e89623c9dp-1,
+0x1.c836d1ff906dap-1, 0x1.87124b130e249p-1, 0x1.c44a8eab88952p-2, 0x1.13f71f8a27ee4p-2,
+0x1.ca31d5439463bp-4, 0x1.56d420b2ada84p-1, 0x1.cd60394b9ac07p-1, 0x1.9b38e1c33671cp-4,
+0x1.61a7b54ec34f7p-1, 0x1.660eaceecc1d6p-1, 0x1.741dc16ee83b8p-1, 0x1.aaab35ab55567p-1,
+0x1.87de2c930fbc6p-2, 0x1.fc3055bff860bp-1, 0x1.d8e76ff3b1ceep-3, 0x1.7a61f742f4c3fp-5,
+0x1.2afc2d0255f86p-4, 0x1.4fbb60da9f76cp-2, 0x1.ac3412e358682p-2, 0x1.fb33eb43f667dp-2,
+0x1.dca4a5a3b9495p-3, 0x1.c3da3cbb87b48p-1, 0x1.8c1c2d5f18386p-1, 0x1.3f9b10da7f362p-1,
+0x1.3f3797327e6f3p-2, 0x1.9909f26f3213ep-1, 0x1.3178bc8262f18p-5, 0x1.88f758b311eebp-3,
+0x1.2f54f6fa5ea9fp-2, 0x1.8519e3b30a33cp-1, 0x1.7422bec2e8458p-1, 0x1.7f8535e2ff0a7p-3,
+0x1.0c2c2ec218586p-1, 0x1.59201852b2403p-3, 0x1.d3b9ba83a7737p-2, 0x1.4572696a8ae4dp-1,
+0x1.ad1c26cb5a385p-1, 0x1.6e7a2d12dcf46p-2, 0x1.78d985a6f1b31p-1, 0x1.0ec3dc161d87cp-1,
+0x1.d4bc3743a9787p-5, 0x1.d9ee8e23b3dd2p-2, 0x1.72de237ae5bc4p-2, 0x1.c275b37b84eb6p-2,
+0x1.d24f399ba49e7p-2, 0x1.2fa8edba5f51ep-1, 0x1.f1c1f263e383ep-2, 0x1.0e87226e1d0e4p-1,
+0x1.d7869e27af0d4p-1, 0x1.cefb02a39df6p-1, 0x1.842302030846p-6, 0x1.3abf1e42757e4p-3,
+0x1.92d53f5f25aa8p-1, 0x1.983d456f307a9p-1, 0x1.8e4ad86b1c95bp-1, 0x1.938857a32710bp-4,
+0x1.314737da628e7p-1, 0x1.a162643342c4dp-1, 0x1.295dc24252bb8p-2, 0x1.c8f1b35791e36p-1,
+0x1.267c47e24cf89p-1, 0x1.1a33fc023468p-6, 0x1.469806628d301p-4, 0x1.9543b5032a877p-4,
+0x1.7c6697d2f8cd3p-3, 0x1.12afde0e255fcp-1, 0x1.781ae00ef035cp-1, 0x1.86b997830d733p-6,
+0x1.c9ecf49b93d9fp-1, 0x1.e1e8cb63c3d19p-2, 0x1.1af9a8d635f35p-1, 0x1.e738b80fce717p-1,
+0x1.ddebacc3bbd76p-1, 0x1.d468ba93a8d17p-1, 0x1.90e7239b21ce4p-2, 0x1.8e26931b1c4d2p-2,
+0x1.0411a84e08235p-1, 0x1.c1548aff82a91p-1, 0x1.d59a6bfbab34dp-1, 0x1.b7308ce36e612p-2,
+0x1.904f8da3209f2p-1, 0x1.e1bb840bc3771p-1, 0x1.2a480e0254902p-1, 0x1.2324ccfe4649ap-1,
+0x1.79f8c976f3f19p-1, 0x1.7125ccd2e24bap-2, 0x1.5595d7f2ab2bbp-1, 0x1.5680029aadp-2,
+0x1.67d52a72cfaa5p-3, 0x1.ea44b913d4897p-1, 0x1.d0c6d283a18dap-3, 0x1.8071927f00e32p-1,
+0x1.f31658f3e62cbp-1, 0x1.3a096ae27412dp-2, 0x1.b31a092366341p-1, 0x1.48bffb92917ffp-3,
+0x1.afb4937f5f692p-1, 0x1.2b34e92e5669dp-1, 0x1.79972e92f32e6p-3, 0x1.79a18816f3431p-1,
+0x1.c294edc38529ep-5, 0x1.795f747af2befp-1, 0x1.60da4026c1b48p-1, 0x1.fa14fb9ff429fp-1,
+0x1.4dc82f0a9b906p-1, 0x1.4a6e8f8294dd2p-4, 0x1.82508a5304a11p-2, 0x1.47675d528ececp-3,
+0x1.eaa25cefd544cp-1, 0x1.2d8562425b0acp-2, 0x1.2d721dca5ae44p-1, 0x1.7af1ea8ef5e3dp-1,
+0x1.e1f8d4b3c3f1bp-3, 0x1.5ee8af22bdd16p-3, 0x1.3c2d6f12785aep-2, 0x1.f276fea3e4eep-1,
+0x1.104d1236209a2p-1, 0x1.f3ac8f7be7592p-1, 0x1.3b6dffe276dcp-2, 0x1.6a425cd2d484cp-1,
+0x1.ddf1488bbbe29p-1, 0x1.11e8b49223d17p-1, 0x1.d567de9baacfcp-2, 0x1.d107a17ba20f4p-1,
+0x1.aeed6a035ddadp-1, 0x1.3b9bf0da7737ep-2, 0x1.19bd0302337ap-4, 0x1.5ea1fd82bd44p-1,
+0x1.c902e19b9205cp-1, 0x1.033ad80a0675bp-2, 0x1.b0870b2b610e1p-2, 0x1.e52c3077ca586p-1,
+0x1.fafce07ff5f9cp-1, 0x1.c8ee2dc391dc6p-4, 0x1.df412c13be826p-1, 0x1.48c50f86918a2p-1,
+0x1.89ae5ea3135ccp-3, 0x1.40d2e27281a5cp-2, 0x1.9a9ee6df353ddp-1, 0x1.3437d262686fap-3,
+0x1.372c225e6e584p-1, 0x1.9022094b20441p-2, 0x1.c7ffdf278fffcp-1, 0x1.afaa578b5f54bp-1,
+0x1.1fcb306e3f966p-1, 0x1.985a5ac330b4bp-3, 0x1.a221562b4442bp-1, 0x1.80c2150301843p-4,
+0x1.670c98a2ce193p-3, 0x1.fec2b0c3fd856p-4, 0x1.9a5a9f7334b54p-1, 0x1.bda375a37b46fp-4,
+0x1.51c10aaea3821p-1, 0x1.0a1d1d82143a4p-2, 0x1.178205822f041p-6, 0x1.00ae74ae015cfp-1,
+0x1.22dc872e45b91p-1, 0x1.5f9d8462bf3b1p-4, 0x1.7d41c8b2fa839p-3, 0x1.d7bed193af7dap-2,
+0x1.5b223922b6447p-2, 0x1.3793f7c66f27fp-1, 0x1.a217327b442e6p-2, 0x1.511bfa1aa237fp-2,
+0x1.70b1bd7ee1638p-1, 0x1.60998aa2c1331p-2, 0x1.f1530c97e2a62p-1, 0x1.d31d552ba63abp-1,
+0x1.50b6368aa16c7p-1, 0x1.8bf1f37317e3ep-1, 0x1.015a4e0202b4ap-4, 0x1.0fc4b1ca1f896p-2,
+0x1.500be052a017cp-3, 0x1.e82b28e7d0565p-1, 0x1.bc65836378cbp-4, 0x1.73ce2882e79c5p-1,
+0x1.3906fe52720ep-3, 0x1.d9ae069bb35c1p-1, 0x1.a3e66b2747ccdp-1, 0x1.5009cb82a0139p-2,
+0x1.9865cb0330cb9p-5, 0x1.3e410a967c821p-1, 0x1.bf72a8eb7ee55p-2, 0x1.6b47675ed68edp-1,
+0x1.c34f9957869f3p-1, 0x1.d0eac943a1d59p-2, 0x1.afd770335faeep-3, 0x1.cc58410b98b08p-2,
+0x1.1469153228d23p-1, 0x1.968c9c732d194p-2, 0x1.d20b894fa4171p-1, 0x1.c1fa31c383f46p-1,
+0x1.6d22fe02da46p-8, 0x1.462e45128c5c9p-2, 0x1.aa20bb4354417p-3, 0x1.738c037ee718p-1,
+0x1.5363e7daa6c7dp-1, 0x1.6f6ced92ded9ep-3, 0x1.46a958a68d52bp-1, 0x1.48343cca90688p-2,
+0x1.e7cd2ed7cf9a6p-1, 0x1.66d4a266cda94p-1, 0x1.2bfc774a57f8fp-1, 0x1.de813743bd027p-4,
+0x1.4effcb4a9dff9p-1, 0x1.638927bac7125p-1, 0x1.af9e4f6b5f3cap-1, 0x1.9d418ae33a831p-1,
+0x1.3d372e527a6e6p-1, 0x1.5384ba8ea7097p-1, 0x1.1519c2822a338p-3, 0x1.56bd8b02ad7b1p-1,
+0x1.238b8a4a47171p-2, 0x1.24ffc51649ff9p-1, 0x1.8409e4c30813dp-2, 0x1.545579e2a8aafp-3,
+0x1.aea536835d4a7p-6, 0x1.2dface6e5bf5ap-1, 0x1.3b417efe7683p-1, 0x1.21de3ee643bc8p-1,
+0x1.f9411ca7f2824p-1, 0x1.0d4d084a1a9a1p-1, 0x1.c7b0e1538f61cp-2, 0x1.fc1b62a7f836cp-1,
+0x1.b0642ad760c85p-1, 0x1.4e609f7a9cc14p-1, 0x1.6fa76622df4edp-1, 0x1.03c812ae07902p-1,
+0x1.aa3bdadf5477bp-1, 0x1.6ca17d8ad943p-2, 0x1.a7e231134fc46p-1, 0x1.920909b324121p-1,
+0x1.d2561283a4ac2p-5, 0x1.a7bd50bb4f7aap-2, 0x1.cdd9309b9bb26p-1, 0x1.6c252c72d84a6p-1,
+0x1.bb3e80a3767dp-4, 0x1.7d778002faefp-1, 0x1.0966b75212cd7p-1, 0x1.749efe66e93ep-1,
+0x1.a1f8752343f0fp-2, 0x1.4ead27f29d5a5p-1, 0x1.96b912cb2d722p-2, 0x1.62c1ffb6c584p-1,
+0x1.ceb3b4139d677p-3, 0x1.8d617bc71ac2fp-1, 0x1.b7d75e2f6faecp-1, 0x1.02442d7a04886p-2,
+0x1.76b89462ed713p-2, 0x1.e631ba5bcc637p-2, 0x1.a30055a34600bp-1, 0x1.693acdb2d275ap-2,
+0x1.9795d0032f2bap-11, 0x1.0db18c921b632p-2, 0x1.617192fac2e32p-2, 0x1.b0ca104b61942p-1,
+0x1.d53965c3aa72dp-1, 0x1.03017ce20603p-4, 0x1.692445f2d2489p-2, 0x1.7f75409efeea8p-1,
+0x1.ad61dcc35ac3cp-2, 0x1.71d15022e3a2ap-3, 0x1.117e4a4e22fc9p-1, 0x1.e7ac9f13cf594p-2,
+0x1.3052fc6660a6p-1, 0x1.beaef5cb7d5dfp-2, 0x1.7fedefe2ffdbep-3, 0x1.67bacc7acf75ap-1,
+0x1.733beba2e677dp-3, 0x1.6962334ed2c46p-1, 0x1.b8b395bb71673p-2, 0x1.2dcb357a5b967p-1,
+0x1.701eb67ae03d7p-2, 0x1.a7b654474f6cbp-1, 0x1.211a6a5a4234dp-2, 0x1.2bbc484657789p-1,
+0x1.3517d00a6a2fap-1, 0x1.21924d624324ap-3, 0x1.acde5f0359bccp-1, 0x1.f0741a3fe0e83p-1,
+0x1.3b7d708676faep-1, 0x1.4fdeb4a29fbd7p-1, 0x1.4a23022a9446p-2, 0x1.3be355fe77c6bp-1,
+0x1.d6b77aefad6efp-1, 0x1.55ca4a92ab949p-1, 0x1.d95acc8bb2b5ap-2, 0x1.abf0e0af57e1cp-1,
+0x1.762a7a2eec54fp-1, 0x1.a13f893f427f1p-1, 0x1.2b66214e56cc4p-1, 0x1.336da23266db4p-3,
+0x1.fdb3dd4bfb67cp-1, 0x1.e7235cc3ce46cp-4, 0x1.40b1b81681637p-1, 0x1.2e06d9ae5c0dbp-1,
+0x1.1c3be6823877dp-1, 0x1.a0ad340f415a7p-1, 0x1.2b834c525706ap-2, 0x1.790ae16af215cp-1,
+0x1.0a0f675a141edp-1, 0x1.721b7106e436ep-1, 0x1.4dac2dc29b586p-2, 0x1.c21ec29b843d8p-1,
+0x1.19d1c54a33a39p-1, 0x1.37634c0e6ec6ap-1, 0x1.dbb615bbb76c3p-2, 0x1.3ba65552774cbp-3,
+0x1.7fc7df66ff8fcp-1, 0x1.3572d3ba6ae5ap-2, 0x1.faed7c83f5dbp-4, 0x1.768a9fdaed154p-2,
+0x1.ea981e7fd5304p-1, 0x1.c8de614b91bccp-2, 0x1.f728a5ebee515p-1, 0x1.c14f996b829f3p-1,
+0x1.d1cbd9a3a397bp-4, 0x1.c7ac185b8f583p-2, 0x1.6d407a1ada80fp-1, 0x1.b063f56360c7fp-1,
+0x1.0a2b2ada14565p-2, 0x1.314d36ca629a7p-2, 0x1.fd3f5deffa7ecp-1, 0x1.0592e56a0b25dp-2,
+0x1.ab160dfb562c2p-2, 0x1.3df116027be23p-1, 0x1.b0d04c6361a0ap-1, 0x1.f1c6ed7fe38dep-1,
+0x1.bd3c941b7a793p-2, 0x1.1a47ca22348f9p-3, 0x1.6ad1cee6d5a3ap-1, 0x1.e8adb16bd15b6p-1,
+0x1.b8ad6393715acp-1, 0x1.1a7e5c4234fccp-5, 0x1.aacc74035598fp-1, 0x1.a4fe51b349fcap-2,
+0x1.490b31d292166p-1, 0x1.314efdba629ep-2, 0x1.2168be2e42d18p-1, 0x1.91a62273234c4p-2,
+0x1.3360e8ba66c1dp-1, 0x1.60c66dbec18cep-1, 0x1.841861270830cp-1, 0x1.1df907363bf21p-1,
+0x1.14d6798229acfp-3, 0x1.7b41070ef6821p-1, 0x1.be9141437d228p-2, 0x1.fdbc6653fb78dp-3,
+0x1.7c5c4ce2f8b8ap-3, 0x1.32246ae26448dp-3, 0x1.7e9877a2fd30fp-4, 0x1.c859514b90b2ap-2,
+0x1.ca5f6c3b94beep-2, 0x1.68936702d126dp-4, 0x1.66f61b5acdec3p-1, 0x1.bababd1b75758p-1,
+0x1.6b0382e2d607p-1, 0x1.17c667be2f8cdp-1, 0x1.ac81aa9b59035p-1, 0x1.268733c24d0e6p-3,
+0x1.5e585a46bcb0bp-1, 0x1.1753797e2ea6fp-1, 0x1.927bf2c324f7ep-4, 0x1.1705bdd62e0b8p-1,
+0x1.28fb5f4651f6cp-1, 0x1.dd1bf25bba37ep-1, 0x1.e984e6b3d309dp-1, 0x1.c81a445390349p-3,
+0x1.d70dc4d3ae1b9p-3, 0x1.0aeda4de15db5p-1, 0x1.3ad9a24e75b34p-1, 0x1.a92459ef5248bp-1,
+0x1.aed04a735da09p-3, 0x1.7de406e2fbc81p-2, 0x1.8e3ac2431c758p-2, 0x1.61d361fac3a6cp-2,
+0x1.d19853e3a330ap-4, 0x1.a66601c34cccp-1, 0x1.3058ca9660b19p-1, 0x1.32943b7265287p-2,
+0x1.f2ef1c7be5de4p-1, 0x1.602bd98ac057bp-1, 0x1.7d76c65efaed9p-1, 0x1.b03da52b607b5p-2,
+0x1.8d3e466f1a7c9p-1, 0x1.c8d9c37391b38p-2, 0x1.25b31f624b664p-2, 0x1.f083929be1072p-2,
+0x1.fc334977f8669p-1, 0x1.fad9d243f5b3ap-4, 0x1.41e3963e83c73p-1, 0x1.5a8ba3bab5174p-1,
+0x1.56aeb3c6ad5d6p-1, 0x1.74331496e8663p-1, 0x1.c64586438c8b1p-3, 0x1.fea84c23fd50ap-3,
+0x1.514f06eea29e1p-1, 0x1.6c592102d8b24p-3, 0x1.e3614843c6c29p-2, 0x1.c71278238e24fp-1,
+0x1.6603ed1ecc07ep-1, 0x1.64523362c8a46p-4, 0x1.7036d20ee06dap-1, 0x1.d1b7ffbba37p-1,
+0x1.d6f893c3adf12p-2, 0x1.baa1998375433p-4, 0x1.054361720a86cp-2, 0x1.25af545e4b5ebp-1,
+0x1.ddba34f3bb747p-1, 0x1.b2fa7b4f65f4fp-1, 0x1.bef972177df2ep-1, 0x1.d0a9516fa152ap-1,
+0x1.132654d6264cbp-1, 0x1.3c70387678e07p-1, 0x1.51904802a3209p-2, 0x1.40c9368281927p-2,
+0x1.06e8d1620dd1ap-4, 0x1.3ba1b3b277436p-1, 0x1.98a66493314cdp-1, 0x1.d1063a03a20c7p-5,
+0x1.7afcedfaf5f9ep-1, 0x1.b513f59b6a27fp-2, 0x1.779c075aef381p-1, 0x1.a357438346ae8p-2,
+0x1.3af43d9275e88p-3, 0x1.e92d68ebd25adp-1, 0x1.5155b4caa2ab7p-1, 0x1.a00c165340183p-1,
+0x1.110ec4a2221d9p-3, 0x1.0c1963a21832cp-3, 0x1.671e8e76ce3d2p-1, 0x1.aa479e4b548f4p-1,
+0x1.be427d637c85p-3, 0x1.aeaac1035d558p-2, 0x1.7bff9e02f7ff4p-1, 0x1.5b0ce93ab619dp-1,
+0x1.0ea993b21d532p-1, 0x1.fea14ebbfd42ap-1, 0x1.01787b2a02f0fp-2, 0x1.d8c7914bb18f2p-2,
+0x1.b19bca0763379p-1, 0x1.fdad7d63fb5bp-4, 0x1.7a1a3422f4347p-2, 0x1.89843dbb13088p-2,
+0x1.7c25e822f84bdp-1, 0x1.65d53e12cbaa8p-1, 0x1.6526ba1eca4d7p-1, 0x1.9d03024f3a06p-1,
+0x1.42ede38a85dbcp-2, 0x1.fb9a3d5bf7348p-2, 0x1.ba1365ef7426dp-1, 0x1.c73dfbc38e7bfp-5,
+0x1.d857197fb0ae3p-1, 0x1.31af6d46635eep-1, 0x1.dc3f02fbb87ep-2, 0x1.38a1470271429p-4,
+0x1.1adcd63235b9bp-1, 0x1.fba9b243f7536p-4, 0x1.c7203f338e408p-1, 0x1.5f20875abe411p-1,
+0x1.04f71e6209ee4p-2, 0x1.2e3ecda65c7dap-1, 0x1.096825a212d05p-1, 0x1.e4185d13c830cp-2,
+0x1.650b8a02ca171p-7, 0x1.0acf874a159f1p-2, 0x1.34645f0268c8cp-3, 0x1.143dc1da287b8p-1,
+0x1.081224ba10245p-2, 0x1.9baaaab337555p-2, 0x1.4314f8028629fp-10, 0x1.ad26e3235a4dcp-4,
+0x1.0d8b05061b161p-1, 0x1.7b5d491af6ba9p-2, 0x1.f4cdf683e99bfp-2, 0x1.1361da4a26c3bp-2,
+0x1.1c1f1502383e3p-4, 0x1.7e36d572fc6dbp-3, 0x1.359f7b826b3efp-4, 0x1.89f5a8cb13eb5p-2,
+0x1.5d5ad40ebab5bp-1, 0x1.e0c7555fc18ebp-1, 0x1.c2dd684385badp-2, 0x1.35b1ed8a6b63ep-1,
+0x1.1276c2a224ed8p-1, 0x1.cf8e35a39f1c7p-1, 0x1.5cc6166ab98c3p-1, 0x1.6a9cc682d5399p-4,
+0x1.e06d7d03c0dbp-6, 0x1.23e6559a47ccbp-1, 0x1.8c74202f18e84p-1, 0x1.22fdf63245fbfp-2,
+0x1.48948d0291292p-3, 0x1.2bb88b9a57711p-2, 0x1.838b29a707165p-1, 0x1.5ee545a2bdca9p-3,
+0x1.1b44097236881p-1, 0x1.d0a44167a1488p-1, 0x1.6bf71342d7ee2p-1, 0x1.9f4d1bd33e9a3p-1,
+0x1.3cf32d7a79e66p-2, 0x1.6c989dc2d9314p-1, 0x1.d4f1f837a9e3fp-1, 0x1.ac049bc358093p-1,
+0x1.523a1262a4742p-4, 0x1.9eb1e6eb3d63dp-2, 0x1.adac47235b589p-4, 0x1.372c93b26e592p-3,
+0x1.2ee6a8d25dcd5p-1, 0x1.71a5e152e34bcp-3, 0x1.12c5f952258bfp-1, 0x1.1882f9ba3105fp-2,
+0x1.e9866d83d30cep-4, 0x1.f434ad77e8696p-1, 0x1.c1f36a6783e6dp-1, 0x1.4fa790569f4f2p-1,
+0x1.c3c2e3178785cp-1, 0x1.1eb980ce3d73p-1, 0x1.7cfb2926f9f65p-1, 0x1.d2c64effa58cap-1,
+0x1.0a7f59a214febp-3, 0x1.096f495212de9p-1, 0x1.91152853222a5p-3, 0x1.2989f3525313ep-2,
+0x1.9f4b8f233e972p-1, 0x1.e7d073bbcfa0ep-1, 0x1.d8fc9623b1f93p-2, 0x1.751f3122ea3e6p-2,
+0x1.b874b52370e97p-1, 0x1.61d57942c3aafp-3, 0x1.6772d182cee5ap-3, 0x1.5bb92f72b7726p-3,
+0x1.c50dfc138a1cp-1, 0x1.767564a2eceadp-4, 0x1.7973d002f2e7ap-8, 0x1.ef553e63deaa8p-1,
+0x1.fc4f4013f89e8p-2, 0x1.c54384238a871p-4, 0x1.e9031a63d2063p-4, 0x1.687246e2d0e49p-4,
+0x1.2a23d1ba5447ap-2, 0x1.4fe65ca29fcccp-1, 0x1.729f8b72e53f1p-2, 0x1.a4856d1b490aep-2,
+0x1.441b0a1688361p-1, 0x1.ed0cc083da198p-3, 0x1.0f5237021ea47p-4, 0x1.07dded2a0fbbep-1,
+0x1.99fcb0ef33f96p-1, 0x1.9ee5700b3dcaep-1, 0x1.b548784b6a90fp-2, 0x1.dc9c8757b9391p-1,
+0x1.50a972b2a152ep-2, 0x1.3ee9863a7dd31p-1, 0x1.c58603f38b0cp-3, 0x1.1e8121e23d024p-3,
+0x1.26b9f9f64d73fp-1, 0x1.5ddfcc0ebbbfap-1, 0x1.022fe10e045fcp-1, 0x1.be5d5e2b7cbacp-2,
+0x1.b6552a636caa5p-1, 0x1.5c0c956eb8193p-1, 0x1.361cfaf26c39fp-1, 0x1.7b632672f6c65p-1,
+0x1.8adb420715b68p-1, 0x1.390fe292721fcp-1, 0x1.6ab864d2d570dp-1, 0x1.1205c41a240b9p-2,
+0x1.71b8531ae370ap-1, 0x1.a7d8c8234fb19p-1, 0x1.6c2255d2d844bp-2, 0x1.b28efd03651ep-7,
+0x1.ef7e4983defc9p-2, 0x1.6f60f0a6dec1ep-1, 0x1.b219e5036433dp-2, 0x1.ded176a3bda2fp-4,
+0x1.eaa420c7d5484p-1, 0x1.f5ee72cbebdcep-2, 0x1.43b81bfe87703p-1, 0x1.84a0d1b30941ap-1,
+0x1.33b952da6772ap-2, 0x1.e5c58203cb8bp-5, 0x1.613d590ac27abp-1, 0x1.423162c68462cp-1,
+0x1.5d45de5aba8bcp-1, 0x1.d29eda07a53dbp-1, 0x1.89d1ab4313a35p-1, 0x1.07ffb09a0fff6p-2,
+0x1.307ea61660fd5p-1, 0x1.1803189a30063p-2, 0x1.632e8762c65d1p-1, 0x1.cda7a0eb9b4f4p-2,
+0x1.e80e21bbd01c4p-1, 0x1.329704aa652e1p-2, 0x1.88dbdb9311b7bp-3, 0x1.72e963bee5d2cp-1,
+0x1.d25b64e7a4b6dp-1, 0x1.ccef5bbb99debp-1, 0x1.fbec45cff7d89p-1, 0x1.4413b7fe88277p-1,
+0x1.74c823dae9904p-1, 0x1.63fae16ac7f5cp-2, 0x1.4addf3f295bbep-1, 0x1.b21d2263643a4p-3,
+0x1.0af30ac215e61p-4, 0x1.1f5733a23eae6p-4, 0x1.50c2eedaa185ep-2, 0x1.8050438300a08p-6,
+0x1.1ee21fda3dc44p-1, 0x1.ec19936bd8332p-1, 0x1.90a353d32146ap-1, 0x1.b8bec947717d9p-1,
+0x1.4ebd71029d7aep-6, 0x1.e3c159b3c782bp-2, 0x1.f5e05813ebc0bp-2, 0x1.67bbc9e2cf779p-1,
+0x1.88ff0dbb11fe2p-2, 0x1.0983ae9213076p-2, 0x1.ebbba233d7774p-1, 0x1.f4fe2cf3e9fc6p-1,
+0x1.10c363962186cp-1, 0x1.4eea29929dd45p-1, 0x1.b7a3facb6f47fp-2, 0x1.f1a30aa3e3461p-2,
+0x1.e835abe7d06b5p-1, 0x1.3e08f44e7c11fp-1, 0x1.aeeba4335dd75p-3, 0x1.ba9110cf75222p-1,
+0x1.0af8500615f0ap-1, 0x1.9e9cbb633d397p-3, 0x1.fd499193fa932p-2, 0x1.ff01cf73fe03ap-3,
+0x1.19a49f9233494p-1, 0x1.260af2f24c15ep-3, 0x1.d88f78ebb11efp-2, 0x1.3b0300ea7606p-1,
+0x1.b5b68cc36b6d2p-3, 0x1.94a933e329526p-1, 0x1.4705830a8e0bp-1, 0x1.8c4fc30b189f8p-1,
+0x1.80c2c74b01859p-1, 0x1.af51adb35ea36p-2, 0x1.450e8c4e8a1d2p-1, 0x1.8b38b2d316716p-1,
+0x1.c98983b39313p-1, 0x1.fff5c2a3ffeb8p-4, 0x1.e5e8f963cbd1fp-2, 0x1.1c12151a38243p-2,
+0x1.89811f4313024p-2, 0x1.bd603dc37ac08p-2, 0x1.060e6f020c1cep-2, 0x1.d583f337ab07ep-1,
+0x1.6cd243a2d9a48p-4, 0x1.5ed934e6bdb27p-1, 0x1.9caaf10b3955ep-2, 0x1.5cff4582b9fe9p-5,
+0x1.39c452627388ap-2, 0x1.3a1061967420cp-1, 0x1.d0610527a0c21p-1, 0x1.a7da79374fb4fp-1,
+0x1.a1b7906f436f2p-1, 0x1.9e0b9be33c173p-2, 0x1.3cd7688279aedp-4, 0x1.76b85ffaed70cp-2,
+0x1.18888aae31111p-1, 0x1.13e2a98627c55p-1, 0x1.f65f30ebecbe6p-1, 0x1.85f62ddf0bec6p-1,
+0x1.5117bacaa22f7p-2, 0x1.3d64b3f27ac96p-1, 0x1.1245f0e6248bep-1, 0x1.4a75256294ea5p-4,
+0x1.50d8ac82a1b16p-5, 0x1.5d51f4c2baa3fp-3, 0x1.b487577f690ebp-1, 0x1.de970e7bbd2e2p-1,
+0x1.2ea66b0a5d4cdp-2, 0x1.4ef7a8629def5p-2, 0x1.b28064136500dp-3, 0x1.5c13c526b8279p-1,
+0x1.862bf3130c57ep-1, 0x1.df4ea10bbe9d4p-2, 0x1.3197b85e632f7p-1, 0x1.b3c63b87678c7p-1,
+0x1.3a0215b274043p-3, 0x1.ffed30e3ffda6p-1, 0x1.c9962fe3932c6p-1, 0x1.d6c55d3bad8acp-2,
+0x1.39fd927673fb2p-1, 0x1.99f7350733ee7p-1, 0x1.267a4faa4cf4ap-2, 0x1.b76a45cb6ed49p-2,
+0x1.a3f40bd347e81p-3, 0x1.75b029caeb605p-2, 0x1.971152e32e22ap-1, 0x1.81858da3030b2p-1,
+0x1.cebabe6f9d758p-1, 0x1.8d7083cb1ae1p-1, 0x1.077bbb7e0ef77p-1, 0x1.dd1a6f43ba34ep-3,
+0x1.95aa6f732b54ep-2, 0x1.9c1ac60338359p-5, 0x1.412a81028255p-2, 0x1.bfc585037f8b1p-2,
+0x1.c458a64388b15p-3, 0x1.54725ff2a8e4cp-3, 0x1.7cf3a1f2f9e74p-2, 0x1.08695f1a10d2cp-1,
+0x1.f930d85bf261bp-2, 0x1.2b19ea025633dp-1, 0x1.91f490f323e92p-3, 0x1.0588be820b118p-2,
+0x1.ac13a84358275p-5, 0x1.9614dc9b2c29cp-1, 0x1.b454d62368a9bp-4, 0x1.a506ffc34a0ep-3,
+0x1.96020d7f2c042p-1, 0x1.065520020caa4p-12, 0x1.54a46e92a948ep-1, 0x1.9fff3fe33ffe8p-2,
+0x1.9a17ffaf343p-1, 0x1.e7e19667cfc33p-1, 0x1.abb4c2d757698p-1, 0x1.8a8150031502ap-8,
+0x1.457356928ae6bp-2, 0x1.42c615ba858c3p-1, 0x1.849a904709352p-1, 0x1.c5d1a6d38ba35p-3,
+0x1.a06d330340da6p-2, 0x1.182c978230593p-2, 0x1.d1760b13a2ec1p-2, 0x1.9b0bd13f3617ap-1,
+0x1.4baff04a975fep-2, 0x1.8950460b12a09p-1, 0x1.ebba4ef3d774ap-3, 0x1.16ee21b62ddc4p-1,
+0x1.de6cde07bcd9cp-1, 0x1.396864ba72d0dp-1, 0x1.f5780cc3eaf02p-5, 0x1.b60a946b6c153p-2,
+0x1.92093ae324127p-3, 0x1.07a94a1a0f529p-2, 0x1.5dc9a976bb935p-1, 0x1.fd0e24f3fa1c5p-3,
+0x1.9e981a433d303p-5, 0x1.9454443b28a89p-1, 0x1.d10a9263a2152p-2, 0x1.afeb8f235fd72p-1,
+0x1.94750ee328ea2p-1, 0x1.e94dbe03d29b8p-4, 0x1.ffacbc53ff598p-3, 0x1.2e8d0e8e5d1a2p-1,
+0x1.285a712250b4ep-4, 0x1.5cff8f42b9ff2p-4, 0x1.31a2112e63442p-1, 0x1.8f89f2db1f13ep-2,
+0x1.6e6607a2dccc1p-1, 0x1.6c7942e2d8f28p-2, 0x1.393963267272cp-1, 0x1.f4e50923e9ca1p-4,
+0x1.4252ed3684a5ep-1, 0x1.0fa345621f469p-4, 0x1.d9a87263b350ep-1, 0x1.e82ae55bd055dp-1,
+0x1.ab44aeb756896p-1, 0x1.525c1872a4b83p-3, 0x1.fe320e1bfc642p-2, 0x1.89b18cbb13632p-1,
+0x1.8dff6ad71bfedp-1, 0x1.1e7087de3ce11p-1, 0x1.92db5bb325b6bp-3, 0x1.f281b98fe5037p-1,
+0x1.a2452ceb448a6p-1, 0x1.c28080638501p-1, 0x1.c7150b338e2a1p-3, 0x1.bc2eae8f785d6p-1,
+0x1.56d4c49eada99p-1, 0x1.5a4a8bfeb4951p-1, 0x1.6c1a3db2d8348p-1, 0x1.d693a6fbad275p-2,
+0x1.977443bf2ee88p-1, 0x1.ec056cc7d80aep-1, 0x1.9d6e20833adc4p-5, 0x1.bc7f91e378ff2p-1,
+0x1.7a55eac2f4abdp-5, 0x1.4b78f33696f1ep-1, 0x1.0889169a11123p-2, 0x1.860b66530c16dp-1,
+0x1.b594a8036b295p-9, 0x1.bd7dee737afbep-1, 0x1.c4a8077789501p-1, 0x1.440881de8811p-1,
+0x1.df72571fbee4bp-1, 0x1.9e5079d73ca0fp-1, 0x1.2c3367365866dp-1, 0x1.8ab705d3156e1p-1,
+0x1.f2e77ff3e5cfp-1, 0x1.5a637202b4c6ep-4, 0x1.1468928e28d12p-1, 0x1.80e6eacb01cddp-1,
+0x1.49bcf61e9379fp-1, 0x1.791f697af23edp-1, 0x1.7368a456e6d15p-1, 0x1.d804460bb0089p-2,
+0x1.3b9fe9de773fdp-1, 0x1.e52de723ca5bdp-1, 0x1.5061a32aa0c34p-2, 0x1.24e95cf249d2cp-2,
+0x1.3f78731e7ef0ep-1, 0x1.44b0f4428961fp-5, 0x1.7dbe81f6fb7dp-1, 0x1.add96db35bb2ep-2,
+0x1.41f0200283e04p-11, 0x1.979563ff2f2acp-1, 0x1.26d891724db12p-2, 0x1.7f5dab42febb5p-5,
+0x1.c61cae638c396p-2, 0x1.17b0d40a2f61bp-1, 0x1.9e0141073c028p-1, 0x1.c987d7b3930fbp-2,
+0x1.aa5d84f354bb1p-2, 0x1.62a9487ac5529p-1, 0x1.46636da28cc6ep-4, 0x1.69423332d2846p-2,
+0x1.00f9c24e01f38p-1, 0x1.54ffd4eaa9ffbp-1, 0x1.fac0fb43f581fp-4, 0x1.e7c28483cf851p-2,
+0x1.804c432f00988p-1, 0x1.53c0b1f6a7816p-1, 0x1.d320b423a6417p-3, 0x1.941272932824ep-2,
+0x1.99c036e333807p-2, 0x1.e830d15fd061ap-1, 0x1.b60b5c536c16cp-1, 0x1.1000a98220015p-6,
+0x1.cd5eb8839abd7p-1, 0x1.78f0b792f1e17p-3, 0x1.35e9678a6bd2dp-2, 0x1.0cd72b9e19ae5p-1,
+0x1.ca1cf4a39439fp-3, 0x1.8b335b831666bp-5, 0x1.e3c3e27bc787cp-1, 0x1.cb5ee4c396bddp-3,
+0x1.b04899b760913p-1, 0x1.dcc0acc3b9816p-3, 0x1.159b27ca2b365p-2, 0x1.26ade1ca4d5bcp-2,
+0x1.8ee0ff3b1dc2p-1, 0x1.4676a7628ced5p-4, 0x1.781adcc2f035cp-1, 0x1.903f06d3207e1p-3,
+0x1.8b781d6716f04p-1, 0x1.a0e74a7741ce9p-1, 0x1.18b0db4e3161bp-1, 0x1.18e3bf6a31c78p-2,
+0x1.ebce3ec3d79c8p-2, 0x1.5808fab6b011fp-1, 0x1.805321f700a64p-1, 0x1.d8cd8a33b19b1p-3,
+0x1.5793595aaf26bp-2, 0x1.f51b4effea36ap-1, 0x1.403c9bd680793p-1, 0x1.78a9c81ef1539p-1,
+0x1.dd4c205bba984p-1, 0x1.ec8ff04bd91fep-2, 0x1.8129cd6b0253ap-1, 0x1.aaaad8db5555bp-1,
+0x1.5484260aa9085p-1, 0x1.c1e812c383d02p-5, 0x1.6f0408f2de081p-2, 0x1.c70b63338e16cp-1,
+0x1.a68db7234d1b7p-4, 0x1.368bcde26d17ap-2, 0x1.cf18e3039e31cp-4, 0x1.e51a509bca34ap-1,
+0x1.1276122224ec2p-1, 0x1.8961609312c2cp-2, 0x1.e1c505f3c38a1p-3, 0x1.42ae22ba855c4p-2,
+0x1.daff0a6bb5fe1p-2, 0x1.f08c1e3fe1184p-1, 0x1.0566d3120acdap-1, 0x1.e3de8a63c7bd1p-3,
+0x1.917368b722e6dp-1, 0x1.e17ae5c3c2f5dp-5, 0x1.0569824e0ad3p-1, 0x1.0eb5102a1d6a2p-2,
+0x1.7620a912ec415p-1, 0x1.0b79488216f29p-2, 0x1.fb1bd543f637bp-2, 0x1.0f52ade21ea56p-4,
+0x1.eb5fccf3d6bfap-3, 0x1.ee5433a3dca86p-4, 0x1.9a941ddb35284p-1, 0x1.60904e62c120ap-3,
+0x1.34127e9e6825p-1, 0x1.1bbdeb42377bdp-1, 0x1.67763802ceec7p-8, 0x1.112d494a225a9p-2,
+0x1.37dc6c6e6fb8ep-1, 0x1.74a1e1d2e943cp-2, 0x1.3e881f627d104p-3, 0x1.6cae2352d95c4p-1,
+0x1.5596d7daab2dbp-1, 0x1.130a487226149p-2, 0x1.51c873eaa390ep-1, 0x1.a033a7f340675p-3,
+0x1.4e35d4829c6bbp-1, 0x1.ca39b56b94737p-1, 0x1.0963fb5a12c7fp-1, 0x1.ddaacda3bb55ap-4,
+0x1.bac5d3a7758bap-1, 0x1.d959cd03b2b3ap-6, 0x1.6959f8a2d2b3fp-2, 0x1.4c393c5a98728p-1,
+0x1.6713e622ce27dp-4, 0x1.ba167e9f742dp-1, 0x1.d393c46fa7279p-1, 0x1.a30325d746065p-1,
+0x1.fe991703fd323p-4, 0x1.a2435e1b4486cp-2, 0x1.c4ed7b9789dafp-1, 0x1.75562c3aeaac6p-2,
+0x1.0eec35861dd87p-1, 0x1.5f81996ebf033p-1, 0x1.12cf29b6259e5p-1, 0x1.0bfad08217f5ap-3,
+0x1.ecfe12c3d9fc2p-3, 0x1.159e162a2b3c3p-1, 0x1.972ab18b2e556p-2, 0x1.b31bf11f6637ep-1,
+0x1.cfef07139fde1p-1, 0x1.1b37609e366ecp-1, 0x1.1fca14723f943p-1, 0x1.2585deee4b0bcp-1,
+0x1.a4bc84db49791p-1, 0x1.c64a21638c944p-3, 0x1.8d92c8eb1b259p-1, 0x1.e5e4b2b3cbc96p-2,
+0x1.de61ee03bcc3ep-4, 0x1.2ded88825bdb1p-2, 0x1.2ea7b3125d4f6p-1, 0x1.f692116bed242p-1,
+0x1.4b83255297065p-2, 0x1.e354af63c6a96p-1, 0x1.42cb4dc28596ap-1, 0x1.a5481edb4a904p-2,
+0x1.9d6b2dff3ad66p-1, 0x1.165f12322cbe2p-1, 0x1.d69cd503ad39bp-3, 0x1.dd3e50dfba7cap-1,
+0x1.e780c13fcf018p-1, 0x1.d4a586a3a94b1p-4, 0x1.2fd2cdfa5fa5ap-2, 0x1.ecd9ed83d9b3ep-2,
+0x1.9a164a47342c9p-1, 0x1.aab890b355712p-1, 0x1.396baae272d75p-1, 0x1.555cef42aab9ep-5,
+0x1.80ad4db3015aap-2, 0x1.4040ea028081dp-7, 0x1.c871c01390e38p-1, 0x1.208b5bda4116bp-2,
+0x1.203864464070dp-1, 0x1.d077a903a0ef5p-2, 0x1.b5cb8cdb6b972p-1, 0x1.89e9d23b13d3ap-2,
+0x1.59ce5cdeb39ccp-1, 0x1.435e55c286bcbp-1, 0x1.b7e7427b6fce8p-1, 0x1.959a9a9f2b353p-1,
+0x1.da551a03b4aa3p-1, 0x1.cd1deb139a3bdp-2, 0x1.8c2cac0718596p-1, 0x1.002d5952005abp-2,
+0x1.93c749d3278e9p-2, 0x1.9deff3933bdfep-2, 0x1.52babc16a5758p-1, 0x1.9d3b4b933a769p-3,
+0x1.e5570bfbcaae1p-1, 0x1.c861f15790c3ep-1, 0x1.12348f1224692p-3, 0x1.ccd7cd3799afap-1,
+0x1.7b511602f6a23p-8, 0x1.b8ed158371da3p-2, 0x1.868987f30d131p-2, 0x1.9d0cec733a19ep-1,
+0x1.0e5e36e21cbc7p-2, 0x1.fcb06edbf960ep-1, 0x1.b262bb6764c57p-1, 0x1.4785c24e8f0b8p-1,
+0x1.b172800362e5p-9, 0x1.7ad47b76f5a8fp-1, 0x1.d7cb703baf96ep-1, 0x1.21e9d6ca43d3bp-1,
+0x1.8c413fe318828p-3, 0x1.8d96fd131b2ep-1, 0x1.e6debfe7cdbd8p-1, 0x1.bcdeacd779bd6p-1,
+0x1.a1eaa5a343d55p-2, 0x1.9ec6025f3d8cp-1, 0x1.52794772a4f29p-1, 0x1.5694d9a2ad29bp-2,
+0x1.0aa9efca1553ep-2, 0x1.bd4be6f37a97dp-2, 0x1.2b61197a56c23p-1, 0x1.4f389cce9e714p-1,
+0x1.ad9ded435b3bep-1, 0x1.f86f5633f0debp-3, 0x1.b6876fb76d0eep-1, 0x1.92f4f93b25e9fp-1,
+0x1.19f71b8233ee3p-3, 0x1.fb14937bf6292p-1, 0x1.5fccc66ebf999p-1, 0x1.25d1a4324ba35p-3,
+0x1.af163c735e2c8p-2, 0x1.188c53223118ap-4, 0x1.e681557fcd02bp-1, 0x1.5eba39aabd747p-1,
+0x1.fc1f9403f83f3p-5, 0x1.98e410e331c82p-1, 0x1.4c7ff7ea98fffp-2, 0x1.0b9b5e021736cp-4,
+0x1.13b88c5a27712p-1, 0x1.f82db0b3f05b6p-3, 0x1.435d428a86ba8p-1, 0x1.76c8dc52ed91cp-1,
+0x1.744d2782e89a5p-6, 0x1.2a3c02725478p-1, 0x1.33a78926674f1p-1, 0x1.b92f781b725efp-2,
+0x1.9204099b24081p-2, 0x1.0c41a12a18834p-2, 0x1.87e228df0fc45p-1, 0x1.4e56fcb69caep-1,
+0x1.64c6c40ec98d9p-1, 0x1.668684aacd0d1p-2, 0x1.3b1f3302763e6p-2, 0x1.1264b14e24c96p-1,
+0x1.315f17e262be3p-1, 0x1.505c24d2a0b85p-3, 0x1.4ab3550a9566bp-2, 0x1.77dcdec6efb9cp-1,
+0x1.3cae72b2795cep-3, 0x1.499c3d0293388p-7, 0x1.c15147d382a29p-1, 0x1.26b6bae64d6d7p-1,
+0x1.41bfdac2837fbp-4, 0x1.a7d29d534fa54p-1, 0x1.0ae1e92215c3dp-2, 0x1.1fe7d2623fcfap-3,
+0x1.40b6ae32816d6p-1, 0x1.2bb0f0865761ep-1, 0x1.a5b581734b6bp-3, 0x1.51bcea22a379dp-3,
+0x1.a9bc5cb75378cp-1, 0x1.accaa2e759954p-1, 0x1.cb3816db96703p-1, 0x1.b55ec5f36abd9p-1,
+0x1.ae0d4aab5c1a9p-2, 0x1.fdbf3ffbfb7e8p-2, 0x1.23ed040247da1p-2, 0x1.a008aa2740115p-1,
+0x1.850070970a00ep-1, 0x1.9d8aadc33b156p-5, 0x1.dcbf4db3b97eap-2, 0x1.d38e6943a71cdp-2,
+0x1.9a37da6b346fbp-2, 0x1.8bef405b17de8p-1, 0x1.fc2be5f3f857dp-1, 0x1.fe7b0517fcf61p-1,
+0x1.e0064993c00c9p-1, 0x1.430b20ea86164p-2, 0x1.7657e3daecafcp-1, 0x1.798f31e2f31e6p-4,
+0x1.4d5802d29abp-2, 0x1.37a92bae6f525p-1, 0x1.55e8a126abd14p-1, 0x1.9dc7f98b3b8ffp-2,
+0x1.bef791fb7def2p-2, 0x1.db5995b7b6b33p-1, 0x1.16ddf15e2dbbep-1, 0x1.0193b96203277p-4,
+0x1.070a863a0e151p-1, 0x1.804b51bb0096ap-1, 0x1.d286c6e3a50d9p-3, 0x1.618dc5dac31b9p-2,
+0x1.2d15f4a25a2bfp-1, 0x1.fece4483fd9c9p-4, 0x1.9896a383312d4p-3, 0x1.07267d020e4dp-7,
+0x1.3eb968927d72dp-1, 0x1.f03855c3e070bp-2, 0x1.a425441b484a9p-1, 0x1.8773b24b0ee76p-2,
+0x1.11f4d5be23e9bp-1, 0x1.2509d5e24a13bp-2, 0x1.ad810dc75b022p-1, 0x1.df10c2f3be218p-1,
+0x1.e742b4c3ce857p-5, 0x1.a9acf3b75359ep-1, 0x1.dd8bc80bbb179p-1, 0x1.fe7a74dffcf4fp-1,
+0x1.2cca10b259942p-3, 0x1.53e3abe2a7c75p-1, 0x1.6d62d8c2dac5bp-4, 0x1.e3bd0b2bc77a1p-2,
+0x1.1719af1a2e336p-2, 0x1.8394fc3f072ap-1, 0x1.c0c2825b8185p-1, 0x1.6b08a08ad6114p-1,
+0x1.5eee91f2bddd2p-1, 0x1.af40e7735e81dp-2, 0x1.8b3b17bb16763p-1, 0x1.97e460b32fc8cp-3,
+0x1.5faf15c2bf5e3p-3, 0x1.ffdcc973ffb99p-1, 0x1.16bffb1a2d7ffp-1, 0x1.8501ba130a037p-1,
+0x1.fdb49003fb692p-4, 0x1.7ce5a3faf9cb4p-1, 0x1.891e540b123cbp-1, 0x1.7e6ffa92fcdffp-1,
+0x1.d4073b63a80e7p-3, 0x1.2d4398225a873p-1, 0x1.08a74ed2114eap-3, 0x1.86f6a49b0ded5p-1,
+0x1.bfc883177f91p-1, 0x1.efaae17fdf55cp-1, 0x1.6607678acc0edp-1, 0x1.de3cae63bc796p-1,
+0x1.9957d53332afbp-1, 0x1.43932f9287266p-1, 0x1.dcb7233fb96e4p-1, 0x1.e48a595fc914bp-1,
+0x1.2eedb6ea5ddb7p-2, 0x1.4c6fca8298df9p-6, 0x1.acd1bdeb59a38p-2, 0x1.2303b30246076p-1,
+0x1.8df87a971bf0fp-1, 0x1.2e56c29a5cad8p-2, 0x1.1c18a71a38315p-2, 0x1.d9ce190bb39c3p-2,
+0x1.6ecbd506dd97bp-1, 0x1.9476b44328ed7p-5, 0x1.52e024b2a5c05p-1, 0x1.c6b79a7b8d6f3p-1,
+0x1.92434b4324869p-5, 0x1.a6807f334d01p-3, 0x1.4bb9548a9772bp-1, 0x1.636b1ad2c6d63p-3,
+0x1.e685c3c7cd0b8p-1, 0x1.a9af5123535eap-2, 0x1.d74ac14bae958p-1, 0x1.6e1e4a82dc3c9p-3,
+0x1.0da05a021b40bp-8, 0x1.97494fc32e92ap-5, 0x1.e27e373bc4fc7p-1, 0x1.c1e3c3cb83c78p-1,
+0x1.23eecf0247ddap-6, 0x1.48859ec2910b4p-1, 0x1.a020722b4040ep-1, 0x1.a2774baf44ee9p-1,
+0x1.18319caa30634p-2, 0x1.7cd79566f9af3p-1, 0x1.8701a50b0e035p-1, 0x1.238fa9ca471f5p-1,
+0x1.873b13bb0e762p-1, 0x1.75aa0ff2eb542p-3, 0x1.1a4d7322349aep-3, 0x1.15338e4e2a672p-1,
+0x1.e92bca9bd2579p-2, 0x1.a93f60ab527ecp-2, 0x1.0d4d6a021a9adp-8, 0x1.8d86e9431b0ddp-3,
+0x1.dbce3733b79c7p-2, 0x1.54fabf86a9f58p-1, 0x1.50caa642a1955p-4, 0x1.070b504e0e16ap-1,
+0x1.be9adf537d35cp-1, 0x1.75d2a956eba55p-1, 0x1.5fe61706bfcc3p-1, 0x1.a520a31b4a414p-1,
+0x1.2aa9479255529p-3, 0x1.3730d84e6e61bp-1, 0x1.506b7002a0d6ep-10, 0x1.33164a62662c9p-3,
+0x1.50a56d4aa14aep-1, 0x1.e3266cf3c64cep-1, 0x1.d52acc03aa55ap-6, 0x1.59c4e3c6b389cp-1,
+0x1.2bac0bb257581p-1, 0x1.aec9c88b5d939p-1, 0x1.f8785ee3f0f0cp-2, 0x1.b7c4da076f89bp-1,
+0x1.2ba15dee5742cp-1, 0x1.067ba8f20cf75p-2, 0x1.b6a9079b6d521p-2, 0x1.65b8e352cb71cp-2,
+0x1.c150b0f382a16p-2, 0x1.21e7e09a43cfcp-1, 0x1.c80ffff7902p-1, 0x1.d53e3dc7aa7c8p-1,
+0x1.f68790efed0f2p-1, 0x1.ca2a9acb94553p-1, 0x1.c4ffc0a389ff8p-4, 0x1.c8dd591391babp-2,
+0x1.1f255a523e4abp-1, 0x1.8ae5338315ca6p-3, 0x1.eb79fcd7d6f4p-1, 0x1.bb8073437700ep-2,
+0x1.d88bf637b117fp-1, 0x1.4b6013da96c02p-1, 0x1.05c1b9720b837p-2, 0x1.19b240c233648p-4,
+0x1.0521d84a0a43bp-2, 0x1.071224e20e245p-2, 0x1.bfef6ad37fdedp-3, 0x1.d3365973a66cbp-1,
+0x1.9abdfd83357cp-3, 0x1.fa94c453f5299p-3, 0x1.2cfb3d3659f68p-1, 0x1.925b8b1724b71p-1,
+0x1.6b77cd02d6efap-4, 0x1.49bb65229376dp-4, 0x1.4a20651a9440dp-1, 0x1.5910578eb220bp-1,
+0x1.58ea823ab1d5p-2, 0x1.2ba74742574e9p-4, 0x1.7d992682fb325p-6, 0x1.8d1d99971a3b3p-1,
+0x1.475cc9828eb99p-1, 0x1.d3fcc92fa7f99p-1, 0x1.625bd75ac4b7bp-1, 0x1.3de45a6e7bc8bp-1,
+0x1.9e2763f73c4ecp-1, 0x1.9afbcf7335f7ap-1, 0x1.129837a225307p-4, 0x1.7a997c8af533p-2,
+0x1.fdb51c53fb6a4p-1, 0x1.b9a079837340fp-6, 0x1.9b0cf7eb3619fp-1, 0x1.d6411287ac822p-1,
+0x1.592d17a6b25a3p-1, 0x1.dedd4a03bdba9p-5, 0x1.f9775a9ff2eebp-1, 0x1.dbbe03cfb77cp-1,
+0x1.42edce2a85dbap-2, 0x1.a5ccd5434b99bp-3, 0x1.aef45d3f5de8cp-1, 0x1.08266676104cdp-1,
+0x1.d030ccd3a061ap-2, 0x1.b7df34e36fbe7p-2, 0x1.3503e3126a07cp-2, 0x1.1587600a2b0ecp-1,
+0x1.052707160a4e1p-1, 0x1.e4a256a7c944bp-1, 0x1.ba5ede5374bdcp-3, 0x1.b19c483363389p-1,
+0x1.42e7f18285cfep-6, 0x1.ea120333d424p-3, 0x1.3eb9e1ca7d73cp-1, 0x1.5174090ea2e81p-1,
+0x1.3a0527e2740a5p-3, 0x1.422b72428456ep-2, 0x1.1eb0c6f23d619p-2, 0x1.eca8adefd9516p-1,
+0x1.e08c4483c1189p-4, 0x1.6356d4e2c6adbp-2, 0x1.53ead86aa7d5bp-2, 0x1.ce3527039c6a5p-4,
+0x1.7ef0dc7afde1cp-2, 0x1.1409907228132p-3, 0x1.007b764200f6fp-5, 0x1.8a585e0314b0cp-5,
+0x1.8bc0e2f31781cp-3, 0x1.2fe240825fc48p-6, 0x1.f46389afe8c71p-1, 0x1.04671fd208ce4p-1,
+0x1.cbc91d5397924p-3, 0x1.a357e6eb46afdp-1, 0x1.91b0c90323619p-6, 0x1.5b0aadbeb6156p-1,
+0x1.fd1e0563fa3c1p-3, 0x1.4e1eefa29c3dep-2, 0x1.c248371384907p-3, 0x1.846e886f08dd1p-1,
+0x1.17639cea2ec74p-2, 0x1.be538abb7ca71p-2, 0x1.360ad0a26c15ap-1, 0x1.2b921c0257244p-2,
+0x1.59ae462ab35c9p-1, 0x1.d312c9a3a6259p-3, 0x1.e73d170fce7a3p-1, 0x1.a82f9023505f2p-1,
+0x1.15da6b8a2bb4dp-1, 0x1.da55ea23b4abdp-3, 0x1.94d83e0f29b08p-1, 0x1.51ebf41ea3d7fp-1,
+0x1.2840e4fa5081dp-1, 0x1.f66d5203ecdaap-4, 0x1.8bb298ff17653p-1, 0x1.e7b95337cf72ap-1,
+0x1.07a01cba0f404p-2, 0x1.9bba50673774ap-1, 0x1.7b645002f6c8ap-11, 0x1.cd808e3b9b012p-2,
+0x1.a539626b4a72cp-1, 0x1.f4c262c7e984cp-1, 0x1.eb2766efd64edp-1, 0x1.82ba9bc305753p-5,
+0x1.981a49af30349p-1, 0x1.f7b4ed37ef69ep-1, 0x1.7336577ee66cbp-1, 0x1.761cb082ec396p-5,
+0x1.3d88ca127b119p-2, 0x1.e3c86543c790dp-1, 0x1.9bd0537737a0ap-1, 0x1.2a76337e54ec6p-1,
+0x1.85e4553b0bc8bp-2, 0x1.a3b6482b476c9p-2, 0x1.c03f4183807e8p-1, 0x1.ca070c43940e2p-5,
+0x1.469fd67e8d3fbp-1, 0x1.a77c588f4ef8bp-1, 0x1.c4d000e789ap-1, 0x1.71e90822e3d21p-3,
+0x1.e11d3143c23a6p-5, 0x1.59a83ef6b3508p-1, 0x1.ae6636275ccc7p-1, 0x1.4652b80e8ca57p-1,
+0x1.9875e93730ebdp-1, 0x1.3a18cf227431ap-1, 0x1.2e0c0b425c181p-1, 0x1.c45f794388befp-5,
+0x1.aba63f0b574c8p-2, 0x1.2e6ae45a5cd5dp-1, 0x1.03063eb2060c8p-1, 0x1.ec3207b3d8641p-3,
+0x1.232d471e465a9p-1, 0x1.dc5b4b3bb8b69p-2, 0x1.2670575a4ce0bp-2, 0x1.768f2192ed1e4p-2,
+0x1.cbc525ab978a5p-2, 0x1.9ba0ca0337419p-7, 0x1.a552b7a34aa57p-2, 0x1.84a6f7df094dfp-1,
+0x1.ea36e86bd46ddp-1, 0x1.b9e6bd2373cd8p-3, 0x1.5e3a56b2bc74bp-2, 0x1.5a522612b4a45p-2,
+0x1.4054d35e80a9ap-1, 0x1.bd71b3637ae36p-3, 0x1.9393079b27261p-2, 0x1.0de953ba1bd2ap-2,
+0x1.6d8c5682db18bp-5, 0x1.1d33096a3a661p-2, 0x1.c6ddd7cb8dbbbp-2, 0x1.a754c3e34ea98p-4,
+0x1.e841c3abd0838p-1, 0x1.23aa441247549p-2, 0x1.7b3d508ef67aap-1, 0x1.80b7acdf016f6p-1,
+0x1.cbedf12b97dbep-1, 0x1.5292b79aa5257p-2, 0x1.9cfda47339fb5p-1, 0x1.4382216287044p-2,
+0x1.d7b44027af688p-1, 0x1.4007c642800f9p-2, 0x1.1ccd929e399b2p-1, 0x1.f5c30e83eb862p-2,
+0x1.8e3188c31c631p-1, 0x1.b005be4b600b8p-1, 0x1.b629180f6c523p-1, 0x1.d0506e53a0a0ep-3,
+0x1.b67441736ce88p-1, 0x1.11a4e7ba2349dp-2, 0x1.f8bb1373f1762p-1, 0x1.a0ab29df41565p-1,
+0x1.ee98464bdd309p-2, 0x1.4fb07d929f61p-2, 0x1.3750f3926ea1ep-3, 0x1.bd07b4237a0f7p-4,
+0x1.1734aba62e695p-1, 0x1.179dc0b22f3b8p-1, 0x1.7d2b40c2fa568p-2, 0x1.2e0d710e5c1aep-1,
+0x1.a63745674c6e9p-1, 0x1.a2048c4744092p-1, 0x1.62f8098ac5f01p-1, 0x1.8e79090f1cf21p-1,
+0x1.9ecd72633d9aep-4, 0x1.bc6ab42b78d57p-2, 0x1.0f30b5ee1e617p-1, 0x1.ffc79f77ff8f4p-1,
+0x1.877eb5e70efd7p-1, 0x1.585cb4bab0b97p-2, 0x1.4311604a8622cp-2, 0x1.5f32f60abe65fp-1,
+0x1.4c323d8298648p-1, 0x1.be5642c77cac8p-1, 0x1.6851f532d0a3fp-3, 0x1.b4c78c83698f2p-2,
+0x1.6e5c010edcb8p-1, 0x1.03d9558207b2bp-5, 0x1.4e77e1d69cefcp-1, 0x1.24d0428249a08p-1,
+0x1.3220126a64402p-2, 0x1.4732f5468e65fp-1, 0x1.8af6d8bb15edbp-2, 0x1.905c2c5f20b86p-1,
+0x1.ef0b340fde167p-1, 0x1.134fa942269f5p-1, 0x1.c7fd22e38ffa4p-1, 0x1.063fdfb20c7fcp-1,
+0x1.576b4f82aed6ap-4, 0x1.0d2586821a4b1p-2, 0x1.a26a85e344d51p-4, 0x1.d124af5ba2496p-1,
+0x1.44ba7c228975p-4, 0x1.97455a4b2e8abp-1, 0x1.5f9db866bf3b7p-1, 0x1.71c3f742e387fp-3,
+0x1.d5ead173abd5ap-3, 0x1.bb39b94376737p-3, 0x1.70e27512e1c4fp-3, 0x1.fcf96a43f9f2dp-1,
+0x1.1afcc8b235f99p-1, 0x1.fb829adbf7053p-2, 0x1.5c2c604eb858cp-1, 0x1.9cbc18c339783p-3,
+0x1.782f2062f05e4p-2, 0x1.b640dd9b6c81cp-1, 0x1.4192cc728325ap-1, 0x1.539c89e2a7391p-4,
+0x1.c67e72f38cfcep-1, 0x1.20155c8a402acp-2, 0x1.4f43d3be9e87ap-1, 0x1.7e39f092fc73ep-3,
+0x1.d73da38bae7b4p-1, 0x1.4bf4018297e8p-5, 0x1.efeaa883dfd55p-1, 0x1.c648d7978c91bp-1,
+0x1.280ee95a501ddp-1, 0x1.b7e7cb636fcf9p-1, 0x1.99116e933222ep-2, 0x1.52fc534ea5f8ap-1,
+0x1.f3d47503e7a8fp-4, 0x1.00d6080601ac1p-1, 0x1.242102a64842p-1, 0x1.9c477893388efp-3,
+0x1.3036c49a606d9p-2, 0x1.077d76120efafp-2, 0x1.8705b7eb0e0b7p-2, 0x1.0d9616ae1b2c3p-1,
+0x1.e51a52bbca34ap-2, 0x1.1fbb793e3f76fp-1, 0x1.0a8f80ee151fp-1, 0x1.b13e4183627c8p-6,
+0x1.d7cc6a83af98dp-5, 0x1.9aef84e335df1p-3, 0x1.d2e3e0f3a5c7cp-3, 0x1.b328adb366516p-2,
+0x1.cfcbed039f97ep-5, 0x1.b64bc4af6c979p-1, 0x1.0407e816080fdp-1, 0x1.e37b31c3c6f66p-1,
+0x1.1959cbc232b39p-3, 0x1.4d2eef529a5dep-3, 0x1.0c26b7a2184d7p-3, 0x1.d9416783b282dp-5,
+0x1.a02befb34057ep-3, 0x1.97a2b3432f456p-4, 0x1.e3dcee0fc7b9ep-1, 0x1.9019e54b2033dp-1,
+0x1.eadc21cfd5b84p-1, 0x1.60cb4aaac1969p-2, 0x1.c62c712b8c58ep-2, 0x1.4ab58362956bp-4,
+0x1.b13bad5f62776p-1, 0x1.cdcece039b9dap-7, 0x1.20d11d2a41a24p-2, 0x1.255c3ea24ab88p-3,
+0x1.15ebec822bd7ep-2, 0x1.53eb6a8aa7d6dp-1, 0x1.56ed2656adda5p-1, 0x1.7d831f9efb064p-1,
+0x1.ce9b8f139d372p-3, 0x1.85f29d130be54p-3, 0x1.8b0d11ab161a2p-1, 0x1.224754da448ebp-2,
+0x1.907110fb20e22p-2, 0x1.ffc609e7ff8c1p-1, 0x1.6ab80146d57p-1, 0x1.ca6a8ea394d52p-2,
+0x1.b611ce936c23ap-1, 0x1.baffa57375ff5p-3, 0x1.9160f22322c1ep-2, 0x1.fc684183f8d08p-1,
+0x1.84174a63082e9p-2, 0x1.0bba26fa17745p-1, 0x1.9fc57f833f8bp-5, 0x1.2a16a11e542d4p-1,
+0x1.3eae7d667d5dp-1, 0x1.fdd9460bfbb29p-1, 0x1.74610ccae8c22p-2, 0x1.298a9f3253154p-1,
+0x1.5c7dd6bab8fbbp-2, 0x1.9d46befb3a8d8p-1, 0x1.52e14f9ea5c2ap-1, 0x1.7dea62e2fbd4cp-3,
+0x1.a47dfa3348fbfp-1, 0x1.e349de33c693cp-1, 0x1.51a350caa346ap-2, 0x1.7b9f83a2f73fp-4,
+0x1.373548be6e6a9p-1, 0x1.ffbecebbff7dap-1, 0x1.acf7101359ee2p-1, 0x1.aadc2c8355b86p-1,
+0x1.84edd7f309dbbp-3, 0x1.380421be70084p-1, 0x1.dffeb783bffd7p-4, 0x1.2973fe7e52e8p-1,
+0x1.37ca2ba26f945p-1, 0x1.a6b7d8374d6fbp-1, 0x1.d528b983aa517p-6, 0x1.dbb7f46bb76ffp-2,
+0x1.577c1902aef83p-5, 0x1.aeb37dbb5d67p-2, 0x1.d488776ba910fp-2, 0x1.af06cd835e0dap-2,
+0x1.e313e5dbc627dp-1, 0x1.044093b208812p-1, 0x1.9a07e003340fcp-9, 0x1.21c2633e4384cp-1,
+0x1.0219d9ba0433bp-1, 0x1.77951c8aef2a4p-2, 0x1.2d3409b25a681p-3, 0x1.b058c51760b19p-1,
+0x1.64453502c88a7p-3, 0x1.9e2e520b3c5cap-1, 0x1.fa6bba03f4d77p-6, 0x1.fd8f4773fb1e9p-1,
+0x1.8178303f02f06p-1, 0x1.714a0c6ae2942p-2, 0x1.6819bf22d0338p-4, 0x1.715af1f2e2b5ep-2,
+0x1.70c7a9dae18f5p-2, 0x1.d9fa47fbb3f49p-1, 0x1.8e2695e31c4d3p-3, 0x1.199f4aee333e9p-1,
+0x1.11fe69b623fcdp-1, 0x1.3f12f8d27e25fp-2, 0x1.0c4d25a2189a5p-3, 0x1.272255524e44bp-3,
+0x1.19055282320aap-3, 0x1.46f23cd28de48p-3, 0x1.37a48f8a6f492p-1, 0x1.6ee458c2ddc8bp-3,
+0x1.29164e12522cap-1, 0x1.0f465a021e8cbp-4, 0x1.333c7cf66679p-1, 0x1.0c2a33ea18546p-1,
+0x1.26295ef24c52cp-1, 0x1.34d684d669ad1p-1, 0x1.6f64b922dec97p-4, 0x1.4219c54284339p-4,
+0x1.f0a1131be1422p-1, 0x1.e4e66643c9ccdp-3, 0x1.d89bfdbfb138p-1, 0x1.26c981624d93p-3,
+0x1.767eb9c2ecfd7p-5, 0x1.e86f5b8fd0debp-1, 0x1.1d069f323a0d4p-3, 0x1.98e01bdb31c03p-1,
+0x1.4228c38284518p-2, 0x1.d1137ec3a227p-3, 0x1.463653428c6cap-3, 0x1.597836b2b2f07p-1,
+0x1.38fc9ea271f94p-3, 0x1.6a2e7492d45cfp-2, 0x1.cc5e067398bc1p-3, 0x1.603d915ec07b2p-1,
+0x1.54a0b6b6a9417p-1, 0x1.6c55960ad8ab3p-2, 0x1.aa0626b7540c5p-1, 0x1.9ae20b5735c41p-1,
+0x1.07e75a3a0fcebp-1, 0x1.c3556c7b86aaep-2, 0x1.f69b2187ed364p-1, 0x1.87ed42430fda8p-4,
+0x1.0393817e0727p-1, 0x1.29d79e7a53af4p-1, 0x1.3d27dc367a4fcp-1, 0x1.4de703629bcep-4,
+0x1.7ab88d32f5712p-3, 0x1.6b14735ad628ep-1, 0x1.480064529000dp-3, 0x1.3d3cd9a27a79bp-3,
+0x1.e44e0cefc89c2p-1, 0x1.54e0b6a2a9c17p-4, 0x1.32032d8264066p-2, 0x1.fbb5f88bf76bfp-1,
+0x1.30b72602616e5p-5, 0x1.c0867d1b810dp-2, 0x1.94961463292c3p-1, 0x1.683fa84ad07f5p-2,
+0x1.54881e42a9104p-1, 0x1.e623a933cc475p-1, 0x1.b3015a836602bp-6, 0x1.a2c745eb458e9p-1,
+0x1.3675c6f26ceb9p-2, 0x1.015f18e202be3p-2, 0x1.0304d74a0609bp-1, 0x1.efdb9a2fdfb73p-1,
+0x1.36da57766db4bp-1, 0x1.5a15fbfab42bfp-2, 0x1.8abda583157b5p-1, 0x1.f60d8d63ec1b2p-4,
+0x1.8eb5b43b1d6b7p-1, 0x1.8158c70b02b19p-1, 0x1.befd67d37dfadp-3, 0x1.24926b724924dp-2,
+0x1.5660cb02acc19p-2, 0x1.ace7362b59ce7p-1, 0x1.780c2c4af0186p-2, 0x1.09de88d213bd1p-1,
+0x1.17fba9862ff75p-1, 0x1.0e062f3e1c0c6p-1, 0x1.592dbf3ab25b8p-1, 0x1.f8936ce3f126ep-2,
+0x1.38a2461271449p-1, 0x1.f22f55fbe45ebp-1, 0x1.efff5df3dffecp-2, 0x1.4badb872975b7p-1,
+0x1.a4e5291349ca5p-2, 0x1.192b86b232571p-2, 0x1.ffcd8c97ff9b2p-1, 0x1.37d596426fab3p-4,
+0x1.cae5b22395cb6p-3, 0x1.acb2ed035965ep-6, 0x1.c9c1f8b39383fp-1, 0x1.0df450021be8ap-1,
+0x1.1c2a47b238549p-2, 0x1.998d9ff3331b4p-2, 0x1.fb9fd463f73fbp-2, 0x1.c4ef7b4f89defp-1,
+0x1.79d1cdf6f3a3ap-1, 0x1.111b1f6222364p-2, 0x1.d8967c03b12dp-8, 0x1.08878232110fp-1,
+0x1.3ccad7027995bp-6, 0x1.cdc21bc39b843p-3, 0x1.9ad0b7eb35a17p-1, 0x1.6a2d787ad45afp-2,
+0x1.02bde8c2057bdp-4, 0x1.5b5b3832b6b67p-3, 0x1.bef5450f7dea9p-1, 0x1.3853669e70a6dp-1,
+0x1.64dcfd4ac9bap-1, 0x1.1823044630461p-1, 0x1.a4e8e86349d1dp-4, 0x1.3afe86b275fd1p-2,
+0x1.0a525a3e14a4bp-1, 0x1.2c9ccc065939ap-1, 0x1.e92cfbcfd259fp-1, 0x1.dcc4eec7b989ep-1,
+0x1.b9328f5f72652p-1, 0x1.e8fa8863d1f51p-1, 0x1.dfd0c603bfa19p-8, 0x1.5f5fdf22bebfcp-4,
+0x1.f6601fcfecc04p-1, 0x1.cd819a439b033p-1, 0x1.39e04bea73c09p-1, 0x1.08ea874a11d51p-2,
+0x1.3490d4726921bp-2, 0x1.bd81b0c37b036p-4, 0x1.2592fbd24b25fp-3, 0x1.41a383028347p-5,
+0x1.807b8b9300f71p-2, 0x1.3457afb268af6p-3, 0x1.1ca1ba6239437p-1, 0x1.9448390b28907p-2,
+0x1.810ce5bb0219dp-2, 0x1.6ee4e492ddc9dp-2, 0x1.7f3ad8c2fe75bp-1, 0x1.c1bc5ff38378cp-2,
+0x1.0e4940561c928p-1, 0x1.3e301dce7c604p-1, 0x1.931969432632dp-5, 0x1.cc98f6839931fp-3,
+0x1.594c8842b2991p-3, 0x1.373ace926e75ap-3, 0x1.10a580fa214bp-1, 0x1.60a57c4ec14bp-1,
+0x1.7a6b7faaf4d7p-1, 0x1.f3a4f98be749fp-2, 0x1.3d6a6b167ad4dp-1, 0x1.339e0f0a673c2p-1,
+0x1.c59a0a538b341p-2, 0x1.412a0ca282542p-1, 0x1.5f8a0aeebf141p-1, 0x1.b25a49eb64b49p-2,
+0x1.0eaba6e21d575p-1, 0x1.32d4adaa65a96p-2, 0x1.5da2689abb44dp-1, 0x1.a8f4111f51e82p-1,
+0x1.a23519db446a3p-2, 0x1.a707278f4e0e5p-1, 0x1.bd0e494f7a1c9p-1, 0x1.915852bb22b0ap-1,
+0x1.f41d137fe83a2p-1, 0x1.b360075b66c01p-2, 0x1.6df1bcf2dbe38p-3, 0x1.69470cb2d28e2p-2,
+0x1.912275f72244fp-1, 0x1.dab747ffb56e9p-1, 0x1.9581b6532b037p-1, 0x1.3ed76c927daeep-2,
+0x1.18e765ca31cedp-1, 0x1.aeb34ceb5d66ap-1, 0x1.1291f3ea2523ep-1, 0x1.6f3a87dade751p-1,
+0x1.fc82008ff904p-1, 0x1.19bba72233775p-4, 0x1.9fc0084b3f801p-2, 0x1.76ed8036eddbp-1,
+0x1.1d09f1aa3a13ep-1, 0x1.a94de703529bdp-6, 0x1.55171e7aaa2e4p-2, 0x1.ffd6f6d3ffadfp-1,
+0x1.4e747bde9ce8fp-1, 0x1.42b3458285669p-6, 0x1.b208378b64107p-2, 0x1.74808af2e9011p-3,
+0x1.46ffe2028dffcp-2, 0x1.b53423036a684p-4, 0x1.850cf6030a19fp-7, 0x1.749a7df2e935p-1,
+0x1.ddadabefbb5b5p-1, 0x1.c3227d278645p-1, 0x1.05f2d0aa0be5ap-1, 0x1.d1cabf6ba3958p-1,
+0x1.39a501a2734ap-2, 0x1.616f3fe6c2de8p-1, 0x1.0cdc8b8a19b91p-2, 0x1.6fa7b622df4f7p-4,
+0x1.3c2687e2784d1p-1, 0x1.beffc1437dff8p-5, 0x1.9ac15a233582bp-2, 0x1.5437b6a2a86f7p-3,
+0x1.caa348ff95469p-1, 0x1.dff2a0fbbfe54p-1, 0x1.c44875838890fp-1, 0x1.c725498b8e4a9p-1,
+0x1.950aee032a15ep-8, 0x1.2850f34a50a1ep-2, 0x1.3e12c9c27c259p-1, 0x1.2034078a40681p-1,
+0x1.42e5d1c285cbap-2, 0x1.e89e58ffd13cbp-1, 0x1.200afe5a4016p-1, 0x1.efe764bfdfcedp-1,
+0x1.f2b3f32be567ep-1, 0x1.f90f1a23f21e3p-1, 0x1.341e1de2683c4p-3, 0x1.2c67c85a58cf9p-2,
+0x1.7dacf402fb59fp-4, 0x1.4c6eed5298ddep-3, 0x1.59cc4382b3988p-6, 0x1.ac694d8358d2ap-6,
+0x1.63e38782c7c71p-5, 0x1.10c132c621826p-1, 0x1.df2e09dbbe5c1p-1, 0x1.6621729acc42ep-2,
+0x1.c8c1caa391839p-3, 0x1.96713e732ce28p-3, 0x1.c20b60238416cp-2, 0x1.ae56fa8b5cadfp-1,
+0x1.0318976206313p-2, 0x1.ae665d235ccccp-1, 0x1.b274180364e83p-8, 0x1.30be52c2617cap-3,
+0x1.8e58fe1f1cb2p-1, 0x1.c7ad5db38f5acp-1, 0x1.354de3826a9bcp-5, 0x1.918313fb23062p-1,
+0x1.6f575d52deaecp-3, 0x1.5167a7faa2cf5p-1, 0x1.636e3702c6dc7p-2, 0x1.fa91806bf523p-2,
+0x1.3a0600fa740cp-1, 0x1.d1c219dfa3843p-1, 0x1.da6049e3b4c09p-2, 0x1.2cb9f4225973fp-1,
+0x1.cad133ff95a26p-1, 0x1.3a37ac6e746f6p-1, 0x1.c2edd84f85dbbp-1, 0x1.fa86d27ff50dap-1,
+0x1.8d5367c31aa6dp-1, 0x1.cdbc3a6b9b787p-1, 0x1.fa873a03f50e7p-7, 0x1.a391a03b47234p-1,
+0x1.bcfada5b79f5bp-2, 0x1.e71826c3ce305p-1, 0x1.5a896612b512dp-3, 0x1.50addfd6a15bcp-1,
+0x1.32d1d97265a3bp-3, 0x1.37a8099a6f501p-1, 0x1.fe09b4bbfc137p-2, 0x1.9c81842339031p-2,
+0x1.cc1ccd739839ap-2, 0x1.0269c28e04d38p-1, 0x1.1a7056c234e0bp-1, 0x1.d19d9353a33b2p-3,
+0x1.942e407b285c8p-2, 0x1.2dc534fa5b8a7p-1, 0x1.7a9e3402f53c7p-7, 0x1.25ecf7964bd9fp-1,
+0x1.fcb373d3f966ep-3, 0x1.6f4328a2de865p-2, 0x1.19adbe42335b8p-4, 0x1.b932ddef7265cp-1,
+0x1.12c75c5a258ecp-2, 0x1.1065dcbe20cbcp-1, 0x1.cbd9a41b97b35p-2, 0x1.50d388a2a1a71p-3,
+0x1.2a7624a254ec5p-3, 0x1.51b554baa36abp-2, 0x1.3aeed29275ddap-3, 0x1.d7f0f0ebafe1ep-1,
+0x1.da5b9313b4b72p-3, 0x1.5a974642b52e9p-3, 0x1.7b829122f7052p-1, 0x1.551451f6aa28ap-1,
+0x1.edefc283dbdf8p-4, 0x1.d224eaaba449dp-1, 0x1.4b8463929708cp-2, 0x1.14e4dd6229c9cp-2,
+0x1.09ccf4421399fp-1, 0x1.a4c70c2b498e2p-1, 0x1.58b330c2b1666p-1, 0x1.efdb5afbdfb6bp-1,
+0x1.4e619d6a9cc34p-2, 0x1.cc8e1e03991c4p-3, 0x1.910aff432216p-3, 0x1.7147eef6e28fep-1,
+0x1.a0e8bc7b41d18p-1, 0x1.a8b4e2835169cp-3, 0x1.2e69cd125cd3ap-2, 0x1.00accb6201599p-4,
+0x1.21ceccf2439dap-1, 0x1.74d53ca2e9aa8p-2, 0x1.d948775bb290fp-1, 0x1.ab327b235664fp-1,
+0x1.cad07b0f95a0fp-1, 0x1.7e6a92d2fcd52p-2, 0x1.ff675d4bfececp-1, 0x1.56e04342adc08p-5,
+0x1.680ff3c6d01fep-1, 0x1.388c47c271189p-3, 0x1.ed5ef51fdabdfp-1, 0x1.dea6d88bbd4dbp-1,
+0x1.4991c70293239p-2, 0x1.68e18642d1c31p-1, 0x1.33bb2a7e67765p-1, 0x1.c50db7a38a1b7p-2,
+0x1.3b0670ea760cep-1, 0x1.d97d5c4bb2facp-1, 0x1.6cf94a82d9f29p-1, 0x1.134d94a2269b3p-3,
+0x1.7e446872fc88dp-1, 0x1.8b58f68316b1fp-2, 0x1.a57601034aecp-4, 0x1.2ba9b92257537p-4,
+0x1.38d002c271ap-1, 0x1.31e2ffe263c6p-2, 0x1.96bd261b2d7a5p-1, 0x1.b3717e7b66e3p-2,
+0x1.031eb892063d7p-1, 0x1.6f906502df20dp-4, 0x1.f39cb153e7396p-2, 0x1.276c2c224ed86p-4,
+0x1.d0b955eba172bp-2, 0x1.a62da00b4c5b4p-2, 0x1.d02000a7a04p-1, 0x1.665a4c02ccb4ap-2,
+0x1.924c196f24983p-1, 0x1.cf875def9f0ecp-1, 0x1.91365473226cbp-2, 0x1.f4b81a63e9703p-2,
+0x1.daa6fdc3b54ep-5, 0x1.6bf43eaad7e88p-2, 0x1.b205cb73640b9p-2, 0x1.84e6a6bb09cd5p-2,
+0x1.edba5943db74bp-5, 0x1.97c207032f841p-6, 0x1.a4fa2f3349f46p-1, 0x1.59e2167eb3c43p-1,
+0x1.e63b6c83cc76ep-1, 0x1.11f379b223e6fp-1, 0x1.9eb57ba73d6afp-1, 0x1.647fd4f2c8ffbp-1,
+0x1.d79ff4f7af3ffp-1, 0x1.d3643bcba6c87p-1, 0x1.89f50c1713ea2p-1, 0x1.106ff7b620dffp-1,
+0x1.b156eee362adep-3, 0x1.20b2323241646p-1, 0x1.ea28b6f3d4517p-1, 0x1.6f74744edee8fp-1,
+0x1.4ea43ed29d488p-1, 0x1.c7ee1f3b8fdc4p-2, 0x1.9461f9d328c3fp-1, 0x1.b8074e23700eap-4,
+0x1.b70ddfa36e1bcp-1, 0x1.6481fa76c903fp-1, 0x1.d45c1f93a8b84p-2, 0x1.4959f90e92b3fp-1,
+0x1.340958626812bp-1, 0x1.b2c93a0365927p-1, 0x1.0ed818f21db03p-3, 0x1.51b3c842a3679p-1,
+0x1.a30d6553461adp-3, 0x1.1cb8ebf63971dp-1, 0x1.4271b9c284e37p-5, 0x1.0f3dfdda1e7cp-2,
+0x1.2976fc2e52eep-1, 0x1.b9214acf72429p-1, 0x1.e181156bc3023p-1, 0x1.0fb268ae1f64dp-1,
+0x1.962989032c531p-2, 0x1.80369113006d2p-1, 0x1.d0c8f673a191fp-3, 0x1.456972ea8ad2ep-2,
+0x1.539accdaa735ap-1, 0x1.fe2749b7fc4e9p-1, 0x1.b324b12b66496p-1, 0x1.bff088937fe11p-1,
+0x1.1ed97be63db2fp-1, 0x1.9d4d681f3a9adp-1, 0x1.2f64fcde5ecap-1, 0x1.b5f6ead36beddp-3,
+0x1.0288ef720511ep-2, 0x1.878ded5b0f1bep-2, 0x1.48fd48fa91fa9p-2, 0x1.c292bac385257p-4,
+0x1.42478902848f1p-4, 0x1.8eacb4471d597p-1, 0x1.81ac50670358ap-1, 0x1.5c524986b8a49p-1,
+0x1.4175ee4682ebep-1, 0x1.c56256a38ac4bp-1, 0x1.5c0c238ab8184p-2, 0x1.aa39479b54729p-1,
+0x1.c436852b886d1p-2, 0x1.845a5ac308b4bp-2, 0x1.8ec234231d847p-4, 0x1.7247d882e48fbp-6,
+0x1.ed39e0c3da73cp-3, 0x1.3595bf026b2b8p-5, 0x1.1b44a77236895p-1, 0x1.46633cb28cc68p-1,
+0x1.938fed03271fep-1, 0x1.8f76e5131eeddp-1, 0x1.e917f627d22ffp-1, 0x1.ce5573b39caaep-2,
+0x1.8d9e2ec71b3c6p-1, 0x1.9c3ca74f38795p-1, 0x1.4e3684d29c6d1p-2, 0x1.58ef5552b1debp-2,
+0x1.398a0f6a73142p-1, 0x1.d6803f4bad008p-1, 0x1.19f5655e33eadp-1, 0x1.bace8723759d1p-1,
+0x1.348e6bea691cdp-2, 0x1.be7409db7ce81p-1, 0x1.f320de7be641cp-1, 0x1.85204e330a40ap-2,
+0x1.4d20be1e9a418p-1, 0x1.74cd2edee99a6p-1, 0x1.ee2709c3dc4e1p-5, 0x1.1d2d58c23a5abp-2,
+0x1.3a2f857e745f1p-1, 0x1.99d104c333a21p-2, 0x1.c67f9fe38cff4p-4, 0x1.c4ac81438959p-5,
+0x1.8f15afc31e2b6p-1, 0x1.aaa0ea035541dp-3, 0x1.3ee836c27dd07p-4, 0x1.4c84fe02990ap-6,
+0x1.f80659c3f00cbp-3, 0x1.4321ae4a86436p-1, 0x1.50c764a2a18edp-1, 0x1.1918370232307p-5,
+0x1.a53126b34a625p-2, 0x1.39df5ac673bebp-1, 0x1.f1787a93e2f0fp-2, 0x1.80db087301b61p-3,
+0x1.ac38042b58701p-2, 0x1.9fd77fb73fafp-1, 0x1.0cae6cc6195cep-1, 0x1.f4c22f83e9846p-6,
+0x1.7657befeecaf8p-1, 0x1.351e91226a3d2p-4, 0x1.ca7498a394e93p-1, 0x1.09ef4f0213deap-5,
+0x1.e517dbffca2fbp-1, 0x1.bd95771b7b2afp-1, 0x1.a65e38134cbc7p-2, 0x1.32389a1e64713p-1,
+0x1.3262a5fa64c55p-1, 0x1.e423194bc8463p-2, 0x1.c0cf467f819e9p-1, 0x1.b248add364916p-3,
+0x1.befa0f077df42p-1, 0x1.f99f3a7bf33e7p-1, 0x1.11b9e7122373dp-2, 0x1.4e0fbeca9c1f8p-1,
+0x1.911dd3f3223bap-3, 0x1.6173f4c2c2e7fp-2, 0x1.5873e6bab0e7dp-1, 0x1.c49216db89243p-2,
+0x1.f3dba8afe7b75p-1, 0x1.527696baa4ed3p-2, 0x1.e7b51dc3cf6a4p-2, 0x1.8ce8780b19d0fp-2,
+0x1.e31aa623c6355p-1, 0x1.ec96cc2bd92dap-1, 0x1.26aafe264d56p-1, 0x1.726d506ae4daap-2,
+0x1.8c6e4bdf18dc9p-1, 0x1.9acb57433596bp-4, 0x1.91b9736b2372ep-2, 0x1.02c60ada058c1p-1,
+0x1.67f4f432cfe9fp-3, 0x1.26a2a4aa4d455p-2, 0x1.1364ffce26cap-1, 0x1.f8a8c863f1519p-4,
+0x1.439b25b287365p-3, 0x1.e6941bd7cd283p-1, 0x1.714db32ae29b6p-1, 0x1.83496f670692ep-1,
+0x1.b14b50fb6296ap-2, 0x1.321cf9a66439fp-1, 0x1.efdb9adfdfb73p-1, 0x1.2f3f6f025e7eep-2,
+0x1.2bbc342257787p-1, 0x1.e2e23993c5c47p-3, 0x1.e5af764bcb5efp-1, 0x1.9003a91f20075p-1,
+0x1.297288ca52e51p-1, 0x1.3e235d067c46cp-1, 0x1.c932d2239265ap-3, 0x1.1d4e31763a9c6p-1,
+0x1.e75ea863cebd5p-1, 0x1.6627436acc4e8p-1, 0x1.e3c26d7bc784ep-1, 0x1.ca794e8394f2ap-1,
+0x1.52be0f96a57c2p-1, 0x1.0a6d6b9e14dadp-1, 0x1.075fed720ebfep-2, 0x1.be58b6e37cb17p-2,
+0x1.3dc6d68a7b8dbp-1, 0x1.4c8cb06e99196p-1, 0x1.e1f2664fc3e4dp-1, 0x1.97c413972f882p-1,
+0x1.dfde02c3bfbcp-1, 0x1.eaaecc33d55dap-2, 0x1.d6d92ca3adb26p-1, 0x1.862661630c4ccp-4,
+0x1.b7d703db6faep-2, 0x1.4826dfca904dcp-1, 0x1.b40e3b97681c7p-1, 0x1.b4912a6b69225p-1,
+0x1.e90f65c3d21edp-3, 0x1.a3e9d67347d3bp-1, 0x1.30c387b261871p-3, 0x1.a6000d934c002p-1,
+0x1.ca264d43944cap-5, 0x1.8f02c1a31e058p-4, 0x1.3603b6ae6c077p-1, 0x1.4614ed9e8c29ep-1,
+0x1.7003b53ae0077p-1, 0x1.a8506b3750a0dp-1, 0x1.8d8c7c431b19p-3, 0x1.57625d9aaec4cp-1,
+0x1.0e77aea21cef6p-1, 0x1.1c963232392c6p-3, 0x1.21dbac1e43b76p-1, 0x1.84d6f8d309adfp-3,
+0x1.5192f82aa325fp-1, 0x1.a58ba2d74b174p-1, 0x1.406219a680c43p-1, 0x1.1eb39d623d674p-2,
+0x1.e430a683c8615p-2, 0x1.22547ff244a9p-1, 0x1.38ef124271de2p-4, 0x1.a3ecac0347d96p-2,
+0x1.7abe6082f57ccp-5, 0x1.fdf70eebfbee2p-1, 0x1.02bb222e05764p-1, 0x1.e72ecff3ce5dap-2,
+0x1.461deeb68c3bep-1, 0x1.6d92bb82db257p-2, 0x1.505124c2a0a25p-2, 0x1.c061c82780c39p-1,
+0x1.6accd0c2d599ap-3, 0x1.e8b2e89bd165dp-2, 0x1.6661d5b6ccc3bp-1, 0x1.dd566423baacdp-3,
+0x1.2639cc864c73ap-1, 0x1.38cb18c271963p-2, 0x1.bd6a86a77ad51p-1, 0x1.2c7b037a58f6p-2,
+0x1.12d7de5225afcp-3, 0x1.066d2dc20cda6p-4, 0x1.ed9fdf5bdb3fcp-1, 0x1.532da636a65b5p-1,
+0x1.9fccc9133f999p-3, 0x1.0f7b8b761ef71p-1, 0x1.b463646b68c6dp-1, 0x1.b9862a6f730c5p-1,
+0x1.6a0e5c92d41ccp-2, 0x1.e98afc23d316p-2, 0x1.237fe48246ffdp-3, 0x1.a71f818b4e3fp-1,
+0x1.719fe002e33fcp-5, 0x1.bff76da37feeep-3, 0x1.e4575e23c8aecp-3, 0x1.762f2062ec5e4p-4,
+0x1.b7d3a9436fa75p-3, 0x1.7bd0f9b6f7a1fp-1, 0x1.225d4c0644baap-1, 0x1.b412d9076825bp-1,
+0x1.94d2bbc329a57p-4, 0x1.ca85de67950bcp-1, 0x1.7474a12ae8e94p-1, 0x1.1a9b175235363p-2,
+0x1.7dbea56afb7d5p-2, 0x1.b5acedbb6b59ep-2, 0x1.04a324b209465p-1, 0x1.e5191f3bca324p-1,
+0x1.773c033eee78p-1, 0x1.841b56b30836bp-2, 0x1.ed5a83d3dab5p-3, 0x1.bbf1fad777e3fp-1,
+0x1.c5b6a2238b6d4p-2, 0x1.a3da013347b4p-3, 0x1.0f1fa10a1e3f4p-1, 0x1.4ace8356959dp-1,
+0x1.78720bc2f0e41p-1, 0x1.87060aeb0e0c1p-2, 0x1.0454adc208a96p-1, 0x1.6bc9d042d793ap-4,
+0x1.b84883877091p-1, 0x1.4d34a6e29a695p-1, 0x1.d498bb93a9317p-1, 0x1.cf6281879ec5p-1,
+0x1.bd32824b7a65p-1, 0x1.36ba4c626d74ap-3, 0x1.fe286593fc50dp-1, 0x1.593b64e2b276dp-4,
+0x1.c97f8cd392ff2p-1, 0x1.2085b196410b6p-1, 0x1.df3a45a3be749p-1, 0x1.fc19e44bf833dp-1,
+0x1.d6171ffbac2e4p-2, 0x1.53aee6cea75ddp-1, 0x1.12cedfe2259dcp-2, 0x1.a9eae2b353d5cp-1,
+0x1.742aed42e855ep-4, 0x1.8e0a94a71c153p-1, 0x1.8f0401eb1e08p-1, 0x1.a5c160eb4b82cp-1,
+0x1.4060fff280c2p-3, 0x1.4b545b8296a8bp-6, 0x1.61b35bbec366bp-1, 0x1.32f3910e65e72p-1,
+0x1.cd448cb39a892p-3, 0x1.c34bf3138697ep-3, 0x1.f7085183ee10ap-3, 0x1.ebc32eefd7866p-1,
+0x1.3456023a68acp-1, 0x1.8216c223042d8p-1, 0x1.93c68f83278d2p-5, 0x1.d93d0b7bb27a1p-2,
+0x1.9e96d20b3d2dap-2, 0x1.edd5248bdbaa5p-1, 0x1.78020e8af0042p-2, 0x1.18fbd69a31f7bp-2,
+0x1.dc1dbd23b83b8p-4, 0x1.7452d9aae8a5bp-2, 0x1.6f4aafd2de956p-2, 0x1.40d11d0281a24p-7,
+0x1.daaf1e6fb55e4p-1, 0x1.2dbf3b1a5b7e7p-2, 0x1.1d28bc023a518p-9, 0x1.8b755cd316eacp-2,
+0x1.ea8e845bd51d1p-1, 0x1.1509315a2a126p-2, 0x1.be9644637d2c9p-3, 0x1.913e2003227c4p-5,
+0x1.88f2d50311e5bp-5, 0x1.fea99303fd532p-1, 0x1.bed542eb7daa8p-1, 0x1.a29db533453b7p-3,
+0x1.2086bb82410d7p-6, 0x1.20889ea641114p-1, 0x1.9b9afe5b3736p-1, 0x1.f1556423e2aadp-3,
+0x1.915b9b6f22b73p-1, 0x1.95d12b832ba25p-5, 0x1.a0621fe340c44p-3, 0x1.8b633b4b16c67p-2,
+0x1.9b73d4df36e7bp-1, 0x1.02a9e1e20553cp-2, 0x1.b250236764a04p-1, 0x1.aafcf78355f9fp-3,
+0x1.bca855e37950bp-3, 0x1.b944aaa372895p-3, 0x1.ee7a525bdcf4ap-2, 0x1.555b9a3aaab73p-2,
+0x1.287a977e50f53p-1, 0x1.aee2811b5dc5p-1, 0x1.5f622322bec44p-2, 0x1.0329b5ea06537p-1,
+0x1.17087a922e10fp-3, 0x1.619c749ac338fp-2, 0x1.c8e4645391c8dp-1, 0x1.828517e3050a3p-4,
+0x1.3b52d2fe76a5ap-1, 0x1.c44fab43889f5p-4, 0x1.259213f24b242p-3, 0x1.53e2004ea7c4p-1,
+0x1.b99c434373388p-4, 0x1.0738fd020e72p-6, 0x1.bc896d9f7912ep-1, 0x1.00def92201bdfp-3,
+0x1.28c2668e5184dp-1, 0x1.58246bf6b048dp-1, 0x1.791a2ea2f2346p-2, 0x1.743c03f2e878p-2,
+0x1.71817eb2e303p-1, 0x1.24a59f4a494b4p-1, 0x1.7fcf9fa2ff9f4p-1, 0x1.0cf5538e19eaap-1,
+0x1.a5fa903b4bf52p-1, 0x1.321fc306643f8p-1, 0x1.77b4916eef692p-1, 0x1.524a5b42a494bp-5,
+0x1.a070edaf40e1ep-1, 0x1.bbc6ea63778ddp-3, 0x1.7fa4e5a2ff49dp-2, 0x1.91d70a5323ae1p-2,
+0x1.dd43bb03ba877p-5, 0x1.6f838466df071p-1, 0x1.cc153b17982a7p-1, 0x1.8e5969531cb2dp-3,
+0x1.028df582051bfp-4, 0x1.94f99f6729f34p-1, 0x1.27cdfaa24f9bfp-2, 0x1.5ba491aeb7492p-1,
+0x1.cd8394d39b073p-1, 0x1.ba9704a3752e1p-2, 0x1.5f0d23fabe1a4p-2, 0x1.2dc74e025b8eap-7,
+0x1.cb0a947396153p-2, 0x1.b03ffe63608p-3, 0x1.13bb6e022776ep-3, 0x1.c8f6188391ec3p-6,
+0x1.c4346b8f8868dp-1, 0x1.017bf2d602f7ep-1, 0x1.90cb65832196dp-2, 0x1.35b5ea3e6b6bdp-1,
+0x1.310c90e262192p-4, 0x1.20d5498241aa9p-3, 0x1.0aacf7221559fp-3, 0x1.cc1c225b98384p-1,
+0x1.7a551566f4aa3p-1, 0x1.ba5fcf3774bfap-1, 0x1.e140c80fc2819p-1, 0x1.1ac60312358cp-1,
+0x1.4a8c4e829518ap-4, 0x1.422675ba844cfp-2, 0x1.e3b1883bc7631p-1, 0x1.1c971602392e3p-3,
+0x1.096bf40212d7fp-5, 0x1.afc6c34f5f8d8p-1, 0x1.55783fb2aaf08p-2, 0x1.8743efa30e87ep-4,
+0x1.44c062b68980cp-1, 0x1.3ea31d2a7d464p-1, 0x1.8c8d0fa3191a2p-1, 0x1.1243f7862487fp-1,
+0x1.bee9f7837dd3fp-5, 0x1.e09d0ce3c13a2p-4, 0x1.16fb14be2df63p-1, 0x1.0173e9b202e7dp-1,
+0x1.5047426aa08e8p-2, 0x1.5be9f042b7d3ep-1, 0x1.0fbb9a7a1f773p-1, 0x1.b160331362c06p-3,
+0x1.75978c52eb2f2p-3, 0x1.d8214d3bb042ap-1, 0x1.a20df703441bfp-1, 0x1.070eea620e1ddp-2,
+0x1.02b4fcc2056ap-4, 0x1.e4b934cfc9727p-1, 0x1.3e8e5e227d1ccp-3, 0x1.9aabb4ff35577p-1,
+0x1.9f1904033e321p-1, 0x1.8722fca30e46p-4, 0x1.6ae3701ad5c6ep-2, 0x1.c86a8dd390d52p-1,
+0x1.a3ef34eb47de7p-2, 0x1.3246808a648dp-2, 0x1.f20a6a83e414dp-6, 0x1.c51cb36b8a396p-2,
+0x1.23a80e5247502p-3, 0x1.7498e65ae931dp-2, 0x1.1376d7aa26edbp-1, 0x1.8daa664b1b54dp-1,
+0x1.f8ef9057f1df2p-1, 0x1.4007ce9a800fap-2, 0x1.3fdcbb9a7fb97p-2, 0x1.4de2fd029bc6p-5,
+0x1.b82f11d3705e2p-2, 0x1.b6e9728b6dd2ep-1, 0x1.165219822ca43p-1, 0x1.843b2a2308765p-1,
+0x1.12d362ca25a6cp-1, 0x1.306d9fc260db4p-4, 0x1.f09336e7e1267p-1, 0x1.703945dee0729p-1,
+0x1.fe2f0133fc5ep-1, 0x1.92a12de725426p-1, 0x1.f3c0bb13e7817p-1, 0x1.e85a0c83d0b42p-5,
+0x1.775a62b2eeb4cp-1, 0x1.0d914a621b229p-3, 0x1.b93155c77262bp-1, 0x1.167366b62ce6dp-1,
+0x1.d122c8c3a2459p-3, 0x1.ba8c374375187p-3, 0x1.bdbbe90b7b77dp-2, 0x1.46404ca68c80ap-1,
+0x1.07c64e1a0f8cap-1, 0x1.dcdc8fb3b9b92p-2, 0x1.467532c28cea6p-4, 0x1.50b051aea160ap-1,
+0x1.a8babb0751757p-1, 0x1.3c457e06788bp-1, 0x1.bcb56feb796aep-2, 0x1.a1aa4b5f43549p-1,
+0x1.dc496553b892dp-1, 0x1.7e4915c2fc923p-1, 0x1.b6887b2f6d10fp-1, 0x1.70c1dc72e183cp-2,
+0x1.3532884a6a651p-1, 0x1.99b5295b336a5p-2, 0x1.e4e0c2c3c9c18p-4, 0x1.2017ac52402f6p-3,
+0x1.e5d09153cba12p-2, 0x1.697a79e2d2f4fp-4, 0x1.b83f30f3707e6p-1, 0x1.e22e93b3c45d2p-2,
+0x1.bfd07d277fa1p-1, 0x1.abffec0357ffep-1, 0x1.0f9ceaa61f39dp-1, 0x1.372adfd66e55cp-1,
+0x1.ef643e9fdec88p-1, 0x1.919c80d32339p-2, 0x1.36791a226cf23p-3, 0x1.8eb3c3331d678p-3,
+0x1.37714e3e6ee2ap-1, 0x1.2c7c3b1258f87p-1, 0x1.a9ed3d7353da8p-1, 0x1.f9bce2a3f379cp-4,
+0x1.aea82e835d506p-5, 0x1.d2bbe3cba577cp-1, 0x1.8fe7ee031fcfep-1, 0x1.c3a53df3874a8p-1,
+0x1.0f0161ce1e02cp-1, 0x1.b90a97d372153p-3, 0x1.654f894eca9f1p-1, 0x1.d6958e3bad2b2p-2,
+0x1.ec8bbbb7d9177p-1, 0x1.1bd8047a37b01p-1, 0x1.a3abb55b47577p-1, 0x1.21be43fe437c8p-1,
+0x1.e8b29927d1653p-1, 0x1.e047cdb3c08fap-1, 0x1.69c42f12d3886p-1, 0x1.b735c39b6e6b8p-2,
+0x1.aee39e035dc74p-6, 0x1.220360064406cp-1, 0x1.ccb22bab99645p-1, 0x1.cd479a179a8f3p-1,
+0x1.9c06980b380d3p-2, 0x1.b89e2c9b713c6p-2, 0x1.047279ea08e4fp-1, 0x1.7acf1542f59e3p-2,
+0x1.a51d56b74a3abp-1, 0x1.5210c076a4218p-1, 0x1.21147b6e4228fp-1, 0x1.b91d49e3723a9p-2,
+0x1.fa33ee13f467ep-3, 0x1.960371bb2c06ep-2, 0x1.1bc64146378c8p-1, 0x1.32eefcda65dep-2,
+0x1.3b7b395276f67p-2, 0x1.575c5e8aaeb8cp-2, 0x1.7472f172e8e5ep-3, 0x1.acbefe77597ep-1,
+0x1.19f0d53a33e1bp-1, 0x1.c26c45ab84d89p-1, 0x1.30138b2a60271p-2, 0x1.067c90ee0cf92p-1,
+0x1.bc88944379113p-2, 0x1.ddabd763bb57bp-4, 0x1.41d6a76283ad5p-4, 0x1.8dedc6931bdb9p-2,
+0x1.bfd489c37fa91p-5, 0x1.91ff03ff23fep-1, 0x1.a291c51745239p-1, 0x1.4ba32c6297466p-4,
+0x1.6804c802d0099p-2, 0x1.6f43f0bede87ep-1, 0x1.f6bbffa3ed78p-1, 0x1.8205b00b040b6p-1,
+0x1.2e4c1c225c984p-3, 0x1.f65cf31becb9ep-2, 0x1.fb69d543f6d3bp-4, 0x1.f0b05dc3e160cp-1,
+0x1.34fce80269f9dp-3, 0x1.6081b61ac1037p-1, 0x1.9a7e056334fc1p-2, 0x1.97986b0b2f30dp-2,
+0x1.5c1b77a2b836fp-4, 0x1.e90543fbd20a8p-1, 0x1.6543b3f2ca876p-1, 0x1.9282173b25043p-2,
+0x1.2966e67a52cddp-2, 0x1.c260705384c0ep-1, 0x1.d8002853b0005p-3, 0x1.aea4487b5d489p-1,
+0x1.84ccb5fb09997p-1, 0x1.0e09cfaa1c13ap-1, 0x1.6a41b2cad4836p-2, 0x1.8c4400731888p-3,
+0x1.49bf4a96937e9p-1, 0x1.bab75ca3756ecp-2, 0x1.2a07e366540fcp-1, 0x1.65bc9332cb792p-1,
+0x1.bd6ac9437ad59p-3, 0x1.993350f33266ap-2, 0x1.8f30f8c31e61fp-1, 0x1.235d165246ba3p-1,
+0x1.deecc9c3bdd99p-4, 0x1.85ecf8630bd9fp-1, 0x1.4ac58cb2958b2p-2, 0x1.0ee140821dc28p-2,
+0x1.0236e3da046dcp-2, 0x1.c9a0020b934p-2, 0x1.e083f803c107fp-3, 0x1.9cb557db396abp-2,
+0x1.1546dc722a8dcp-3, 0x1.456000b68acp-1, 0x1.9a26e173344dcp-1, 0x1.c354984386a93p-3,
+0x1.2e6544ae5cca9p-1, 0x1.fed52acbfdaa5p-2, 0x1.3a1631b2742c6p-1, 0x1.c318b7eb86317p-1,
+0x1.83960b6b072c1p-2, 0x1.b0163bc7602c7p-1, 0x1.71bd0062e37ap-1, 0x1.1a5eeeb234bdep-3,
+0x1.7c4016daf8803p-2, 0x1.36eece426dddap-4, 0x1.53517792a6a2fp-2, 0x1.f7d58003efabp-7,
+0x1.0439881a08731p-1, 0x1.d3b09f2fa7614p-1, 0x1.6d9be932db37dp-1, 0x1.73943a6ae7287p-1,
+0x1.40948f5281292p-2, 0x1.f999c3e3f3338p-2, 0x1.2de2a17a5bc54p-2, 0x1.b84fc1c3709f8p-2,
+0x1.0573b4aa0ae77p-2, 0x1.3c54171678a83p-1, 0x1.63988122c731p-1, 0x1.03d54c4207aaap-1,
+0x1.0920c0c212418p-4, 0x1.dbb97f27b773p-1, 0x1.d22ff833a45ffp-1, 0x1.99d73cd333ae8p-3,
+0x1.21197fda4233p-1, 0x1.6c56d9a2d8adbp-1, 0x1.ae95ea935d2bdp-2, 0x1.3dfb12127bf62p-3,
+0x1.af05bc135e0b8p-3, 0x1.16126f822c24ep-5, 0x1.2977c6c252ef9p-5, 0x1.2d8c74ba5b18fp-1,
+0x1.c17762bf82eecp-1, 0x1.84547cd308a9p-1, 0x1.7424306ae8486p-1, 0x1.fe5db8a3fcbb7p-3,
+0x1.ab32569b5664bp-1, 0x1.dccec303b99d8p-5, 0x1.0eed88521ddb1p-2, 0x1.5ed7bd62bdaf8p-2,
+0x1.f17d8b63e2fb1p-1, 0x1.f512ad5bea256p-1, 0x1.1800c8e230019p-4, 0x1.238fa612471f5p-2,
+0x1.e3bf1e9bc77e4p-2, 0x1.73e2d3b2e7c5ap-2, 0x1.6defb3eadbdf6p-1, 0x1.749969a2e932dp-1,
+0x1.f64580efec8bp-1, 0x1.a3106a134620dp-2, 0x1.e1bad783c375bp-3, 0x1.76999082ed332p-5,
+0x1.5a83685ab506dp-2, 0x1.2a7ab84254f57p-3, 0x1.f77da0f3eefb4p-3, 0x1.ce5b34079cb67p-1,
+0x1.b6f587b76deb1p-1, 0x1.552a5d86aa54cp-1, 0x1.dd9f8883bb3f1p-5, 0x1.15b7b5c22b6f7p-4,
+0x1.668b847ecd171p-1, 0x1.838ba7c307175p-4, 0x1.50436b76a086dp-1, 0x1.2802e73a5005dp-1,
+0x1.b4c5f1cb698bep-1, 0x1.88cf37bb119e7p-2, 0x1.a79a55634f34bp-1, 0x1.5ff84862bff09p-1,
+0x1.c469101b88d22p-2, 0x1.7888cc42f111ap-4, 0x1.ec84e203d909cp-6, 0x1.a76426db4ec85p-2,
+0x1.211e3722423c7p-4, 0x1.932201632644p-4, 0x1.6579e676caf3dp-1, 0x1.160356322c06bp-1,
+0x1.d8ab540bb156bp-2, 0x1.a6d334bb4da67p-2, 0x1.15397fa22a73p-2, 0x1.c53655eb8a6cbp-2,
+0x1.a4f1cf6b49e3ap-1, 0x1.030b75b20616fp-1, 0x1.f40987fbe8131p-2, 0x1.48ce0e52919c2p-3,
+0x1.4daa23c69b544p-1, 0x1.77e42c3aefc86p-1, 0x1.0475bce208eb8p-4, 0x1.049fab7a093f5p-1,
+0x1.9a1d1383343a2p-2, 0x1.f3458123e68bp-4, 0x1.2756a2324ead4p-1, 0x1.9cd071e339a0ep-4,
+0x1.bb68947376d13p-3, 0x1.de683693bcd07p-3, 0x1.5b9cf57ab739fp-1, 0x1.1d00b7223a017p-4,
+0x1.3c01a98278035p-1, 0x1.03374ada066e9p-1, 0x1.83985f470730cp-1, 0x1.e3631903c6c63p-5,
+0x1.324864666490dp-1, 0x1.92fc865b25f91p-1, 0x1.e3d089fbc7a11p-2, 0x1.566c2b4aacd85p-1,
+0x1.c560c6878ac19p-1, 0x1.5d88add2bb116p-3, 0x1.b1be05e3637c1p-3, 0x1.636ce11ac6d9cp-2,
+0x1.2acbc5d255979p-1, 0x1.ee188293dc31p-2, 0x1.94519b8328a33p-1, 0x1.9f7b2a733ef65p-2,
+0x1.fa17b6fbf42f7p-1, 0x1.1cacbefa39598p-2, 0x1.21f118d243e23p-1, 0x1.47c1dabe8f83bp-1,
+0x1.8ea2ed031d45ep-7, 0x1.427fd06e84ffap-1, 0x1.318618d2630c3p-3, 0x1.a6922aeb4d245p-2,
+0x1.80e8809301d1p-1, 0x1.73b8286ae7705p-1, 0x1.06e323b60dc64p-1, 0x1.efc2a5b3df855p-1,
+0x1.eb52360fd6a47p-1, 0x1.8a0064b31400dp-3, 0x1.362bc9426c579p-5, 0x1.2753df924ea7cp-1,
+0x1.65b76406cb6edp-1, 0x1.96fb1bdf2df63p-1, 0x1.458a11228b142p-1, 0x1.2fff90d25fff2p-2,
+0x1.29f7a23653ef4p-1, 0x1.bb92b0e377256p-4, 0x1.ee6bf3b3dcd7ep-1, 0x1.deb0d173bd61ap-2,
+0x1.1da903223b52p-2, 0x1.6b6dd4a2d6dbbp-3, 0x1.a10ed947421dbp-1, 0x1.b9a0476773409p-1,
+0x1.51e7b672a3cf7p-1, 0x1.356074c66ac0fp-1, 0x1.12bbb93a25777p-2, 0x1.4bff6d6e97feep-1,
+0x1.c3b6d443876dbp-1, 0x1.ab4ef56f569dfp-1, 0x1.278290524f052p-2, 0x1.c9f15ffb93e2cp-1,
+0x1.db9d8bb3b73b1p-2, 0x1.c0459cc3808b4p-2, 0x1.3a74eada74e9dp-2, 0x1.badd19b375ba3p-3,
+0x1.4f6bdb229ed7bp-3, 0x1.a41d9923483b3p-1, 0x1.79e7b072f3cf6p-3, 0x1.f96966a3f2d2dp-4,
+0x1.a76c93034ed92p-7, 0x1.c772a2c38ee54p-3, 0x1.66810c66cd022p-1, 0x1.6c551656d8aa3p-1,
+0x1.1af8918235f12p-6, 0x1.58163b0ab02c7p-2, 0x1.1537af022a6f6p-7, 0x1.32cf66c2659edp-1,
+0x1.c6fae74b8df5dp-2, 0x1.f2c0d273e581ap-1, 0x1.113e7be2227cfp-4, 0x1.7251f536e4a3fp-1,
+0x1.36711e626ce24p-3, 0x1.c336a8c3866d5p-1, 0x1.2bf23c9a57e48p-1, 0x1.9f83fe0f3f08p-1,
+0x1.f12e3b13e25c7p-2, 0x1.b550193b6aa03p-1, 0x1.d706d6f3ae0dbp-2, 0x1.789be392f137cp-2,
+0x1.609f0ea6c13e2p-1, 0x1.7f44b3a2fe896p-1, 0x1.0c7ea38218fd4p-2, 0x1.39b75202736eap-3,
+0x1.7d9e0802fb3c1p-3, 0x1.2379c73246f39p-1, 0x1.7a4a35daf4947p-2, 0x1.6684f192cd09ep-2,
+0x1.8f2ec0a31e5d8p-2, 0x1.1b9f070a373e1p-1, 0x1.e4df4b43c9be9p-2, 0x1.9c6a254338d45p-2,
+0x1.8d7bafbb1af76p-1, 0x1.63c2c812c7859p-3, 0x1.d45147a3a8a29p-4, 0x1.9653744b2ca6fp-1,
+0x1.04fbcf8e09f7ap-1, 0x1.f6f83d83edf08p-4, 0x1.9245b613248b7p-2, 0x1.e8794333d0f28p-1,
+0x1.8cfed10319fdap-4, 0x1.d695550bad2abp-2, 0x1.5acb3866b5967p-1, 0x1.fcf086f3f9e11p-3,
+0x1.5d02a692ba055p-2, 0x1.0d7aea021af5dp-2, 0x1.ec01fc83d804p-5, 0x1.a71870d34e30ep-1,
+0x1.e06c71c3c0d8ep-4, 0x1.0a438b4214871p-1, 0x1.8d998a631b331p-3, 0x1.9cac9cdf39594p-1,
+0x1.13107dc22621p-2, 0x1.d34b68bba696dp-2, 0x1.eb1a715fd634ep-1, 0x1.d1df81cba3bfp-2,
+0x1.a3ef718347deep-6, 0x1.507f1892a0fe3p-2, 0x1.9c3239af38647p-1, 0x1.a96db7bb52db7p-2,
+0x1.c3de935387bd2p-1, 0x1.1d43be9a3a878p-2, 0x1.a2ebee7f45d7ep-1, 0x1.515a430ea2b48p-1,
+0x1.cf2522ab9e4a4p-2, 0x1.dd761773baec3p-1, 0x1.cf5b6eab9eb6ep-2, 0x1.ec8e60e3d91ccp-1,
+0x1.c551f2438aa3ep-5, 0x1.b0d0925f61a12p-1, 0x1.d507a413aa0f5p-1, 0x1.37d3e5126fa7dp-3,
+0x1.383679ca706cfp-2, 0x1.2fd2dc765fa5cp-1, 0x1.9a62360334c47p-2, 0x1.4a9c902e95392p-1,
+0x1.b69051776d20ap-1, 0x1.d7e27593afc4fp-2, 0x1.e36a01fbc6d4p-2, 0x1.f29ddfafe53bcp-1,
+0x1.f634c60bec699p-1, 0x1.551b6396aa36cp-1, 0x1.8f4a7c8f1e95p-1, 0x1.fef413b3fde82p-3,
+0x1.f608bf83ec118p-4, 0x1.7a64edeaf4c9ep-1, 0x1.68acc5d2d1599p-1, 0x1.2f824df25f04ap-3,
+0x1.1523d1a22a47ap-4, 0x1.04deff7e09bep-1, 0x1.20976f5e412eep-1, 0x1.e6830d87cd062p-1,
+0x1.9380decf2701cp-1, 0x1.8706bbb30e0d7p-2, 0x1.37dd50926fbaap-1, 0x1.ec4dc083d89b8p-3,
+0x1.41f2ea9a83e5dp-2, 0x1.f8b07e43f161p-5, 0x1.9e8744033d0e9p-3, 0x1.7a9d28e2f53a5p-2,
+0x1.d05b9a47a0b73p-1, 0x1.e54ba883ca975p-4, 0x1.0b438db616872p-1, 0x1.b1db5ca363b6cp-3,
+0x1.6c7c5186d8f8ap-1, 0x1.d874a8bbb0e95p-1, 0x1.b71367576e26dp-1, 0x1.230ca2fe46194p-1,
+0x1.88cbc70311979p-2, 0x1.5190d0a2a321ap-2, 0x1.15aa82aa2b55p-1, 0x1.7535531aea6aap-2,
+0x1.fde3cbe7fbc79p-1, 0x1.49e9fe6a93d4p-2, 0x1.3a57ae7a74af6p-1, 0x1.e5271ec3ca4e4p-4,
+0x1.f59ed203eb3dap-5, 0x1.4608e8928c11dp-2, 0x1.110aeeaa2215ep-2, 0x1.07f99d520ff34p-3,
+0x1.a7e373c74fc6ep-1, 0x1.a91ce6b35239dp-1, 0x1.440ba6c288175p-4, 0x1.3b64529276c8ap-1,
+0x1.b281123365022p-3, 0x1.605ec56ec0bd9p-1, 0x1.b677c2b36cef8p-1, 0x1.0d99b9da1b337p-1,
+0x1.7fe9cd52ffd3ap-1, 0x1.e1993b03c3327p-5, 0x1.cae84e4b95d0ap-1, 0x1.50456796a08adp-1,
+0x1.6b0c2302d6184p-3, 0x1.ac57b7fb58af7p-2, 0x1.bcbc3ebf79788p-1, 0x1.c73f5a4b8e7ebp-1,
+0x1.5d41096aba821p-2, 0x1.73cfa612e79f5p-1, 0x1.d497fa8ba92ffp-2, 0x1.7306683ae60cdp-1,
+0x1.c980e6039301dp-5, 0x1.fff67fefffedp-1, 0x1.6d088e22da112p-4, 0x1.a7bda4834f7b5p-5,
+0x1.49d6fe4a93aep-2, 0x1.67f8c03ecff18p-1, 0x1.5c82f882b905fp-3, 0x1.888ad88b1115bp-2,
+0x1.5fa69082bf4d2p-6, 0x1.bf4c6aeb7e98dp-2, 0x1.0643d39a0c87ap-1, 0x1.b2e0a84b65c15p-1,
+0x1.11863852230c7p-2, 0x1.2ec548725d8a9p-1, 0x1.dc89f5bbb913fp-2, 0x1.eac6c16bd58d8p-2,
+0x1.1e481bba3c903p-2, 0x1.49797b1a92f2fp-2, 0x1.7e8d4602fd1a9p-8, 0x1.e1bb6603c376dp-6,
+0x1.85aca2830b594p-2, 0x1.cde568d79bcadp-1, 0x1.5f5342c6bea68p-1, 0x1.1d995a023b32bp-1,
+0x1.482289a290451p-2, 0x1.1c0f8186381fp-1, 0x1.c9b168939362dp-2, 0x1.52b1c98aa5639p-1,
+0x1.1fbe4f2a3f7cap-2, 0x1.cf24b18f9e496p-1, 0x1.8b70638316e0cp-2, 0x1.58ee6bf2b1dcdp-2,
+0x1.cf1b317f9e366p-1, 0x1.e6b2870bcd651p-2, 0x1.8de620831bcc4p-2, 0x1.d01ac283a0358p-3,
+0x1.6d480f02da902p-3, 0x1.1e13ce623c27ap-1, 0x1.384c1ce670984p-1, 0x1.993ce1133279cp-3,
+0x1.fdba03d7fb74p-1, 0x1.f47f83e3e8ffp-4, 0x1.92fe08c325fc1p-5, 0x1.0cfa3ffa19f48p-2,
+0x1.6d5538eedaaa7p-1, 0x1.0774db6a0ee9bp-1, 0x1.7be080b2f7c1p-1, 0x1.fc7946cff8f29p-1,
+0x1.ac3198fb58633p-1, 0x1.7edd9b3efdbb3p-1, 0x1.70e43f82e1c88p-6, 0x1.bc1fa8e3783f5p-3,
+0x1.4cc3041299861p-1, 0x1.6ada64c2d5b4dp-1, 0x1.8ca1443b19429p-1, 0x1.f0d448e7e1a89p-1,
+0x1.0dd3cc8a1ba7ap-2, 0x1.c5e7e2138bcfcp-3, 0x1.4386126e870c2p-1, 0x1.16c90dde2d922p-1,
+0x1.027aa84204f55p-3, 0x1.27c885824f911p-6, 0x1.c34043d786808p-1, 0x1.f73b7183ee76ep-6,
+0x1.f92f0f63f25e2p-2, 0x1.1466a82a28cd5p-2, 0x1.0781185a0f023p-2, 0x1.57e98b72afd31p-1,
+0x1.a8472277508e4p-1, 0x1.bc0ca91378195p-1, 0x1.be38c3b77c718p-1, 0x1.a601264b4c025p-1,
+0x1.fa9c998ff5393p-1, 0x1.d768a443aed15p-1, 0x1.63f23242c7e46p-4, 0x1.67f1d27ecfe3ap-1,
+0x1.bdbaff5b7b76p-2, 0x1.a85ec6fb50bd9p-1, 0x1.646b194ac8d63p-1, 0x1.161e314a2c3c6p-2,
+0x1.273c623a4e78cp-1, 0x1.6ff23b46dfe47p-1, 0x1.f42e05bbe85c1p-2, 0x1.cffd99239ffb3p-3,
+0x1.b599400b6b328p-2, 0x1.0d708e2a1ae12p-2, 0x1.934ebcb3269d8p-3, 0x1.61b6864ec36d1p-1,
+0x1.f0647f33e0c9p-2, 0x1.a859c19b50b38p-1, 0x1.e1fe50a3c3fcap-3, 0x1.38d0e9ae71a1dp-1,
+0x1.b19805c763301p-1, 0x1.ddfebfe3bbfd8p-4, 0x1.488ac53a91159p-1, 0x1.5c5f1aeab8be3p-2,
+0x1.8be6582317ccbp-2, 0x1.cc4b516b9896ap-1, 0x1.864639030c8c7p-7, 0x1.b8e93a1371d27p-3,
+0x1.8857fa7b10affp-1, 0x1.c451dc9b88a3cp-1, 0x1.43b74cc2876eap-5, 0x1.82f4940b05e93p-1,
+0x1.9bba80df3775p-1, 0x1.02e6ec5205cdep-3, 0x1.d5cccd0bab99ap-2, 0x1.ea600223d4cp-3,
+0x1.e9188213d231p-1, 0x1.3d45ff327a8cp-3, 0x1.05a7192e0b4e3p-1, 0x1.1054e44a20a9dp-1,
+0x1.bf43bb137e877p-1, 0x1.ffbe1c0bff7c4p-1, 0x1.84544a9308a89p-1, 0x1.3420b62a68417p-2,
+0x1.0cecc63a19d99p-2, 0x1.e927f9c3d24ffp-1, 0x1.fbc6e163f78dcp-1, 0x1.7ea8a2bafd514p-1,
+0x1.9181bb5b23037p-1, 0x1.d119d623a233bp-3, 0x1.6ef318cadde63p-2, 0x1.4319c12286338p-1,
+0x1.600c9b0ac0193p-2, 0x1.1467000228cep-15, 0x1.f1494e97e292ap-1, 0x1.75f97996ebf2fp-1,
+0x1.cc4fa307989f4p-1, 0x1.f762677feec4dp-1, 0x1.e433c81bc8679p-1, 0x1.54a79d82a94f4p-1,
+0x1.bbb4441777689p-1, 0x1.f86f3cebf0de8p-1, 0x1.af3863135e70cp-2, 0x1.576ec4f2aedd9p-1,
+0x1.c947bfe3928f8p-4, 0x1.c282980f85053p-1, 0x1.d206c57ba40d9p-1, 0x1.120bd0622417ap-4,
+0x1.1d417d823a83p-5, 0x1.af5bbd4b5eb78p-2, 0x1.32965e56652ccp-1, 0x1.d117d2eba22fap-1,
+0x1.aed7f55b5daffp-2, 0x1.6dd551d2dbaaap-2, 0x1.aca0b7f359417p-3, 0x1.5de25dcebbc4cp-1,
+0x1.40254552804a9p-2, 0x1.9bbc3d8337788p-3, 0x1.b916010b722cp-2, 0x1.8ca2f0031945ep-4,
+0x1.b66b09d36cd61p-2, 0x1.94048ceb28092p-1, 0x1.74ae1f22e95c4p-1, 0x1.8b3bd2731677ap-1,
+0x1.9408de872811cp-1, 0x1.65f76dbacbeeep-1, 0x1.01354c06026aap-1, 0x1.6058818ec0b1p-1,
+0x1.5d59d536bab3bp-1, 0x1.cad2284395a45p-2, 0x1.6a003e1ad4008p-2, 0x1.190e194a321c3p-1,
+0x1.bbb0a21377614p-2, 0x1.8c9c50971938ap-1, 0x1.c1f378f383e6fp-3, 0x1.170149062e029p-1,
+0x1.4f1ee8a29e3ddp-1, 0x1.0a0e8ed2141d2p-3, 0x1.3942c31672858p-1, 0x1.60f3007ac1e6p-1,
+0x1.1a31825e3463p-1, 0x1.af6485a35ec91p-3, 0x1.320ad3626415ap-1, 0x1.f19d7d0be33bp-1,
+0x1.22c3ca5245879p-1, 0x1.9d33015f3a66p-1, 0x1.4f7fdad69effbp-1, 0x1.c2d66cfb85acep-1,
+0x1.08842f0211086p-7, 0x1.6056dac2c0adbp-4, 0x1.f46acaffe8d59p-1, 0x1.beaf2b537d5e5p-2,
+0x1.c00f6843801edp-1, 0x1.6918ea1ed231dp-1, 0x1.aa4da063549b4p-3, 0x1.541846caa8309p-1,
+0x1.9e20afab3c416p-2, 0x1.6bc8b41ed7917p-1, 0x1.68e190aad1c32p-2, 0x1.63516842c6a2dp-4,
+0x1.44c720f2898e4p-3, 0x1.6970e762d2e1dp-1, 0x1.457846568af09p-1, 0x1.2f0a19465e143p-1,
+0x1.ec1a6febd834ep-2, 0x1.b5f524936bea5p-1, 0x1.182d8932305b1p-3, 0x1.14b082522961p-3,
+0x1.f878c847f0f19p-1, 0x1.7f4e2562fe9c5p-1, 0x1.a61f210f4c3e4p-1, 0x1.12aa4aa225549p-1,
+0x1.eb2746cbd64e9p-1, 0x1.b053e8db60a7dp-2, 0x1.0447c7ae088f9p-1, 0x1.0deb111e1bd62p-1,
+0x1.d573d723aae7bp-3, 0x1.4f1e8a029e3d1p-3, 0x1.a182fc2b4306p-2, 0x1.e5fc1a23cbf83p-3,
+0x1.ff49f773fe93fp-3, 0x1.8a58922314b12p-2, 0x1.58d69c32b1ad4p-1, 0x1.ff0f30e3fe1e6p-4,
+0x1.72299982e4533p-4, 0x1.c36a044b86d41p-1, 0x1.93fa2ce727f46p-1, 0x1.faab160bf5563p-2,
+0x1.2f32b8665e657p-1, 0x1.21abd4e24357bp-3, 0x1.29bfb812537f7p-1, 0x1.806480a700c9p-1,
+0x1.b1dbdc9b63b7cp-1, 0x1.bcdff99379bffp-3, 0x1.5edd33d2bdba6p-2, 0x1.4fd2291a9fa45p-2,
+0x1.296917a252d23p-4, 0x1.eaf3f86bd5e7fp-2, 0x1.da2a6a43b454dp-2, 0x1.da5eb383b4bd6p-5,
+0x1.d3208653a6411p-3, 0x1.2668ac5a4cd16p-2, 0x1.305035de60a07p-1, 0x1.7fbda182ff7b4p-3,
+0x1.6b5e4a9ad6bc9p-1, 0x1.a4bfec43497fep-4, 0x1.6dda797edbb4fp-1, 0x1.e0bb4067c1768p-1,
+0x1.10bf4012217e8p-2, 0x1.f4dfbc83e9bf8p-4, 0x1.68e91bb2d1d23p-3, 0x1.08321de610644p-1,
+0x1.03c840a607908p-1, 0x1.b310e31f6621cp-1, 0x1.4814040690281p-1, 0x1.320d73d6641aep-1,
+0x1.767ae766ecf5dp-1, 0x1.b81c61d37038cp-2, 0x1.7b17f6c2f62ffp-4, 0x1.4b5b3f9296b68p-2,
+0x1.2479262648f25p-1, 0x1.5922b6eab2457p-1, 0x1.309103626122p-4, 0x1.acaa057b59541p-2,
+0x1.c85ab54f90b57p-1, 0x1.ab0174b35602fp-2, 0x1.7e3e174efc7c3p-1, 0x1.ed87d843db0fbp-1,
+0x1.cafab68f95f57p-1, 0x1.ad4d31b35a9a6p-3, 0x1.65b86f82cb70ep-6, 0x1.fe16c123fc2d8p-4,
+0x1.fd0f453bfa1e9p-2, 0x1.3b7df95a76fbfp-1, 0x1.3f64810a7ec9p-2, 0x1.a797b4d34f2f7p-3,
+0x1.7015f6e2e02bfp-1, 0x1.b1974003632e8p-6, 0x1.2a84b66255097p-3, 0x1.f87596ebf0eb3p-1,
+0x1.30a2c64261459p-3, 0x1.49b6e90a936ddp-2, 0x1.00a7b4d2014f7p-1, 0x1.4ff0f2369fe1ep-1,
+0x1.5fb15e82bf62cp-3, 0x1.22eee35245ddcp-3, 0x1.03fccc1207f9ap-2, 0x1.ce673f079cce8p-1,
+0x1.24c9e9be4993dp-1, 0x1.62c2c9cac5859p-2, 0x1.d0537b43a0a6fp-3, 0x1.250c3f824a188p-3,
+0x1.50837982a106fp-6, 0x1.344dfe7a689cp-2, 0x1.1f9812a23f302p-1, 0x1.d2ded11fa5bdap-1,
+0x1.6fa7b996df4f7p-1, 0x1.3bac53da7758ap-2, 0x1.c066a95f80cd5p-1, 0x1.3aa270267544ep-1,
+0x1.0929765a1252fp-1, 0x1.cb946cdb9728ep-1, 0x1.7a65484af4ca9p-1, 0x1.ec463d03d88c8p-7,
+0x1.071266320e24dp-1, 0x1.a1788cc342f12p-5, 0x1.c65c18b38cb83p-3, 0x1.dca17443b942fp-3,
+0x1.3d2216627a443p-4, 0x1.7870678af0e0dp-2, 0x1.be77cff37cefap-3, 0x1.cf33d1739e67ap-3,
+0x1.6113a84ec2275p-1, 0x1.7045a8cee08b5p-1, 0x1.c3bde697877bdp-1, 0x1.b8ffffef72p-1,
+0x1.b90161a37202cp-1, 0x1.16f132722de26p-3, 0x1.87673ef70ece8p-1, 0x1.bb9696bb772d3p-2,
+0x1.ee3b6303dc76cp-2, 0x1.fb7c1dc7f6f84p-1, 0x1.270e5b424e1cbp-1, 0x1.01a1cd520343ap-1,
+0x1.2b463a02568c7p-2, 0x1.1a99b78235337p-3, 0x1.a9013cdb52028p-2, 0x1.52b5a602a56b5p-7,
+0x1.c8f92f9b91f26p-2, 0x1.29ce8f92539d2p-2, 0x1.3fed46be7fda9p-1, 0x1.eda60e27db4c2p-1,
+0x1.81eed29303ddap-3, 0x1.74a51e0ae94a4p-2, 0x1.f557271feaae5p-1, 0x1.678e1ad6cf1c3p-1,
+0x1.a8d42fa351a86p-2, 0x1.9bb8b52337717p-3, 0x1.deb677ebbd6cfp-1, 0x1.f81cb53bf0397p-2,
+0x1.2326610e464ccp-1, 0x1.3951af9272a36p-3, 0x1.6fdb4efadfb6ap-1, 0x1.087412b210e82p-2,
+0x1.be9a14b37d343p-1, 0x1.3399358e67327p-1, 0x1.e9d04a43d3a09p-4, 0x1.779b7652ef36fp-1,
+0x1.7955822ef2abp-1, 0x1.c4a1483f89429p-1, 0x1.559b06b2ab361p-3, 0x1.c1ccceb38399ap-3,
+0x1.c01d6603803adp-1, 0x1.7c751ceef8ea4p-1, 0x1.721500fee42ap-1, 0x1.57020c02ae042p-3,
+0x1.c31b8acf86371p-1, 0x1.1a567da234adp-3, 0x1.6c2d6662d85adp-3, 0x1.4f3045329e609p-2,
+0x1.b6f9ce6b6df3ap-2, 0x1.9af8a05735f14p-1, 0x1.2a7c618254f8cp-2, 0x1.3bf89bda77f13p-1,
+0x1.552cbd62aa598p-3, 0x1.152aafba2a556p-2, 0x1.470d6d5a8e1aep-2, 0x1.29b5472a536a9p-1,
+0x1.e3070a4bc60e1p-2, 0x1.047a5d2a08f4cp-2, 0x1.2e1d0e225c3a2p-4, 0x1.4a9e6302953ccp-5,
+0x1.a12334f342467p-2, 0x1.959ef0c32b3dep-1, 0x1.31c7df1a638fcp-2, 0x1.1e575e523caecp-2,
+0x1.92704c9b24e0ap-2, 0x1.ac3bf1ab5877ep-2, 0x1.b1c95e036392cp-7, 0x1.0a36a1e2146d4p-3,
+0x1.357e82226afdp-2, 0x1.70b79ca2e16f4p-3, 0x1.6601b852cc037p-2, 0x1.6b729c42d6e54p-3,
+0x1.d8a30417b1461p-1, 0x1.28aee922515ddp-4, 0x1.613a5422c274bp-2, 0x1.9bbe8ee7377d2p-1,
+0x1.aeadf2435d5bep-3, 0x1.0ba883ae1751p-1, 0x1.0d5ac5f21ab59p-3, 0x1.472863c68e50cp-1,
+0x1.4d4248029a849p-2, 0x1.b129c47b62539p-2, 0x1.0641ff3a0c84p-2, 0x1.f7d8a6bbefb15p-2,
+0x1.632a3a1ac6547p-1, 0x1.26a7b64a4d4f7p-1, 0x1.2d0cd4225a19bp-4, 0x1.52b6fcf2a56ep-3,
+0x1.a8e4e4e351c9dp-1, 0x1.2d94f1325b29ep-3, 0x1.a55e95c34abd3p-3, 0x1.e5d9fd63cbb4p-3,
+0x1.e1042d0fc2086p-1, 0x1.023b94fe04773p-1, 0x1.08a22e8611446p-1, 0x1.5478a6b2a8f15p-2,
+0x1.d8598dd3b0b32p-1, 0x1.0f6953fe1ed2ap-1, 0x1.d993f7abb327fp-2, 0x1.cc633b8398c67p-3,
+0x1.6b973b26d72e7p-1, 0x1.9fcad7ff3f95bp-1, 0x1.9beaebe337d5dp-2, 0x1.443a3f3e88748p-1,
+0x1.c4e0b52389c17p-1, 0x1.7e92a002fd254p-1, 0x1.bff19c437fe34p-2, 0x1.84618d8308c32p-4,
+0x1.1476475a28ec9p-2, 0x1.234f7f9e469fp-1, 0x1.77b49576ef693p-1, 0x1.30dc47b261b89p-1,
+0x1.fbe461dff7c8cp-1, 0x1.fad59513f5ab3p-1, 0x1.6644d862cc89bp-4, 0x1.5f0e9bf6be1d3p-1,
+0x1.217d4b5e42fa9p-1, 0x1.49a8d6429351bp-3, 0x1.b3bc5b376778bp-1, 0x1.94c4607b2988cp-2,
+0x1.3b9ee3ba773dcp-2, 0x1.d1400a43a2801p-5, 0x1.43d8af9687b16p-1, 0x1.fb4e7ba3f69cfp-3,
+0x1.1f4f95a23e9f3p-1, 0x1.31eb786263d6fp-3, 0x1.290ff246521fep-1, 0x1.ef5246e3dea49p-2,
+0x1.5be4321ab7c86p-1, 0x1.5d9ee182bb3dcp-5, 0x1.6ac1f252d583ep-1, 0x1.8ef6da7b1dedbp-2,
+0x1.b5a4c6176b499p-1, 0x1.c5bb42038b768p-4, 0x1.76b58f02ed6b2p-6, 0x1.7a857b36f50afp-1,
+0x1.b74a08436e941p-1, 0x1.d75cf533aeb9fp-2, 0x1.ab11aceb56236p-1, 0x1.0614afc20c296p-3,
+0x1.dfbf4703bf7e9p-6, 0x1.22c6425e458c8p-1, 0x1.726173a2e4c2ep-1, 0x1.5c4b8282b897p-6,
+0x1.1d9bd7723b37bp-1, 0x1.9f2a0eaf3e542p-1, 0x1.69f0f80ad3e1fp-1, 0x1.f8c91663f1923p-4,
+0x1.f194443fe3289p-1, 0x1.1dad533e3b5aap-1, 0x1.097b530a12f6ap-1, 0x1.1ec76c3a3d8eep-2,
+0x1.3ac153e27582ap-1, 0x1.35500a726aa01p-3, 0x1.0e3755061c6ebp-1, 0x1.6843a602d0875p-3,
+0x1.339dc172673b8p-2, 0x1.ba3a3a4374747p-4, 0x1.51ba0cf2a3742p-1, 0x1.f5b312d3eb662p-1,
+0x1.3484d5826909bp-3, 0x1.78f7fe82f1fp-2, 0x1.7a5d001af4bap-2, 0x1.62fdba02c5fb7p-8,
+0x1.ea66cf03d4cdap-2, 0x1.91c859132390bp-2, 0x1.7d4b76aefa96fp-1, 0x1.58fadf8ab1f5cp-2,
+0x1.b492a72369255p-1, 0x1.285d239650ba4p-1, 0x1.dc05376bb80a7p-2, 0x1.c390a15b87214p-1,
+0x1.2c8d97c2591b3p-3, 0x1.81903d5303208p-3, 0x1.ce72fd6f9ce6p-1, 0x1.68bf3d62d17e8p-1,
+0x1.ff8e1e03ff1c4p-1, 0x1.3863f57a70c7fp-1, 0x1.a7d8602f4fb0cp-1, 0x1.f122623fe244cp-1,
+0x1.584522d2b08a4p-3, 0x1.62a7666ac54edp-2, 0x1.010c30b202186p-2, 0x1.90d29c9b21a54p-1,
+0x1.fd4f6babfa9edp-2, 0x1.8ebd6d631d7aep-1, 0x1.eae3861bd5c71p-1, 0x1.9876968f30ed3p-1,
+0x1.c604b4ab8c097p-1, 0x1.3c9d930e793b2p-1, 0x1.8e29a95f1c535p-1, 0x1.325ea0c264bd4p-5,
+0x1.f919924ff2332p-1, 0x1.2d60a5a25ac15p-3, 0x1.5ebe5802bd7cbp-5, 0x1.dc99f3a3b933ep-2,
+0x1.143c55f22878bp-1, 0x1.93375c2f266ecp-1, 0x1.9aca69973594dp-1, 0x1.919dfa2b233bfp-2,
+0x1.7728ff82ee52p-2, 0x1.119a0a9223341p-2, 0x1.18bf3cda317e8p-2, 0x1.06b7e5b60d6fdp-1,
+0x1.d262293ba4c45p-2, 0x1.6b4a6f72d694ep-3, 0x1.bddc8c537bb92p-3, 0x1.d17e653ba2fcdp-2,
+0x1.93369157266d2p-1, 0x1.74f83442e9f07p-5, 0x1.b3c329b367865p-2, 0x1.e947da0bd28fbp-1,
+0x1.91466cf3228cep-2, 0x1.5a67ad36b4cf6p-1, 0x1.7a1a76a2f434fp-1, 0x1.c74aec4f8e95ep-1,
+0x1.d24a352ba4947p-2, 0x1.64fdfcbec9fcp-1, 0x1.5fc182dabf83p-1, 0x1.5e539e7abca74p-2,
+0x1.43371f92866e4p-2, 0x1.dbd6586bb7acbp-2, 0x1.849f7293093eep-2, 0x1.356a442a6ad49p-2,
+0x1.394355a27286bp-1, 0x1.b0773d9b60ee8p-2, 0x1.89021be712043p-1, 0x1.35feae426bfd6p-3,
+0x1.adcbebe35b97dp-3, 0x1.23cc857a47991p-1, 0x1.164ea8a62c9d5p-1, 0x1.27077abe4e0efp-1,
+0x1.ac998ac359331p-1, 0x1.a2ae4717455c9p-1, 0x1.6dfb0382dbf6p-4, 0x1.2b953eba572a8p-2,
+0x1.fd80e2f3fb01cp-1, 0x1.3a6d070a74da1p-2, 0x1.7e89d1fafd13ap-1, 0x1.90b77447216efp-1,
+0x1.690c0d92d2182p-2, 0x1.61ad9b52c35b3p-3, 0x1.79ff4e4ef3feap-1, 0x1.7d293d46fa528p-1,
+0x1.b2d3140b65a63p-1, 0x1.e83389e3d0671p-2, 0x1.4474299288e85p-1, 0x1.37f05d3a6fe0cp-2,
+0x1.645f06b2c8be1p-3, 0x1.486b58da90d6bp-2, 0x1.4b21fdda9644p-1, 0x1.f566a2ebeacd4p-2,
+0x1.9220d8a32441bp-1, 0x1.ae36e4835c6ddp-6, 0x1.9568738b2ad0ep-1, 0x1.96c85c832d90cp-2,
+0x1.cb5aabe396b55p-2, 0x1.1e6a8f723cd52p-1, 0x1.18e3d9d631c7bp-1, 0x1.512050eaa240ap-1,
+0x1.08dc53a211b8ap-3, 0x1.799413c2f3282p-4, 0x1.e09f2e93c13e6p-3, 0x1.eed09fafdda14p-1,
+0x1.d1e0c98fa3c19p-1, 0x1.4bce582a979cbp-2, 0x1.09367e12126dp-2, 0x1.cf61ac7f9ec36p-1,
+0x1.431daf9e863b6p-1, 0x1.928882032511p-8, 0x1.601920c2c0324p-1, 0x1.f7a3b667ef477p-1,
+0x1.6e41df62dc83cp-3, 0x1.b430de236861cp-2, 0x1.74ccf3aae999ep-1, 0x1.cc717c0398e3p-6,
+0x1.ce3234039c647p-1, 0x1.72823a7ae5047p-2, 0x1.54b774faa96efp-2, 0x1.3a4fad62749f6p-4,
+0x1.5d76c9aabaed9p-1, 0x1.f57db857eafb7p-1, 0x1.21fd472243fa9p-1, 0x1.df2f4493be5e9p-2,
+0x1.77b7bc02ef6f8p-8, 0x1.6ecb7552dd96fp-2, 0x1.bafbd08f75f7ap-1, 0x1.d1398ad3a2731p-2,
+0x1.d5d04a1baba09p-1, 0x1.a7bf54c34f7ebp-2, 0x1.cde8b2a39bd16p-4, 0x1.8075f04300ebep-5,
+0x1.03122cda06246p-1, 0x1.63c9c3f2c7938p-2, 0x1.b5ffac036bff6p-7, 0x1.a9e5ecd353cbep-2,
+0x1.57cc0e12af982p-1, 0x1.16e67b722dccfp-2, 0x1.48a945ca91529p-2, 0x1.35d37b5a6ba6fp-2,
+0x1.1d309d7a3a614p-2, 0x1.1b70ea0236e1dp-7, 0x1.251ae8224a35dp-2, 0x1.d4518d2ba8a32p-2,
+0x1.bd0c65737a18dp-2, 0x1.d699ef03ad33ep-7, 0x1.f118a4ebe2315p-2, 0x1.5970cd72b2e1ap-2,
+0x1.813709f3026e1p-2, 0x1.a2e80cf345d02p-1, 0x1.a804b8cb50097p-2, 0x1.e124ea03c249dp-5,
+0x1.9865c54b30cb9p-1, 0x1.f5ffa387ebff4p-1, 0x1.0da9f0ea1b53ep-1, 0x1.9b5534c336aa7p-1,
+0x1.5acabc5ab5958p-2, 0x1.914b82eb2297p-2, 0x1.07e3f45a0fc7fp-2, 0x1.066b50920cd6ap-2,
+0x1.9c856bd7390adp-1, 0x1.7b5e2102f6bc4p-2, 0x1.367a0e9a6cf42p-2, 0x1.3f2f31627e5e6p-2,
+0x1.6f93f27adf27ep-1, 0x1.442a0bfa88541p-2, 0x1.748a8f1ae9152p-1, 0x1.8ec001131d8p-2,
+0x1.2d8843b65b108p-1, 0x1.8df31fc31be64p-5, 0x1.6249be36c4938p-1, 0x1.bc20927778412p-1,
+0x1.d4cf5a43a99ebp-5, 0x1.f4d7324be9ae6p-1, 0x1.4c92b21299256p-2, 0x1.f7a650bbef4cap-2,
+0x1.fc319a07f8633p-1, 0x1.9ed5ab833dab5p-1, 0x1.a88b8f1751172p-1, 0x1.799a3dfaf3348p-2,
+0x1.41bdb872837b7p-1, 0x1.f237ade3e46f6p-3, 0x1.b5bedb3b6b7dbp-2, 0x1.b446fb73688dfp-2,
+0x1.ca363bf3946c7p-3, 0x1.e8895e87d112cp-1, 0x1.d5e2c9f3abc59p-3, 0x1.1ff2ed2e3fe5ep-1,
+0x1.625e3ffac4bc8p-2, 0x1.f2d55953e5aabp-2, 0x1.a328957746513p-1, 0x1.36d22f426da46p-3,
+0x1.b719bd2b6e338p-1, 0x1.f32ce603e659dp-4, 0x1.da984903b5309p-2, 0x1.26adafa24d5b6p-1,
+0x1.c0f5457b81ea9p-2, 0x1.875ace630eb5ap-3, 0x1.ee0db02fdc1b6p-1, 0x1.c05cce0380b9ap-6,
+0x1.ead79663d5af3p-3, 0x1.50576e62a0aeep-1, 0x1.ca2378e79446fp-1, 0x1.3005b67a600b7p-2,
+0x1.452ea0aa8a5d4p-1, 0x1.c1b347c383669p-3, 0x1.93d6039f27acp-1, 0x1.41603aae82c07p-1,
+0x1.e84fae03d09f6p-6, 0x1.3c6192b278c32p-1, 0x1.fe2d59abfc5abp-1, 0x1.510035e2a2007p-1,
+0x1.b8ef7e2f71dfp-1, 0x1.b2198e8b64332p-2, 0x1.591d9ce2b23b4p-4, 0x1.5be86942b7d0dp-4,
+0x1.832c4b9b06589p-2, 0x1.4138cc328271ap-2, 0x1.4b6ffa5696dffp-1, 0x1.72c545cae58a9p-1,
+0x1.9a0712c3340e2p-1, 0x1.dd311f93ba624p-2, 0x1.c079d19b80f3ap-1, 0x1.5120cfeaa241ap-1,
+0x1.2cfe2c8a59fc6p-1, 0x1.5b8bec3ab717ep-2, 0x1.df39fe23be74p-3, 0x1.af19e8835e33dp-6,
+0x1.0f9ca9b61f395p-1, 0x1.9770bed32ee18p-3, 0x1.b7bb5b836f76bp-5, 0x1.8a528f4f14a52p-1,
+0x1.b6339e1b6c674p-1, 0x1.e59f2e9fcb3e6p-1, 0x1.12ab54622556bp-4, 0x1.f6c47d83ed89p-2,
+0x1.58300232b06p-3, 0x1.b62b6e2b6c56ep-1, 0x1.e613cb83cc279p-4, 0x1.9539f7f32a73fp-3,
+0x1.e51a01b3ca34p-2, 0x1.d77e98c3aefd3p-4, 0x1.b64eb3e36c9d6p-1, 0x1.56f8fe0aadf2p-2,
+0x1.13fc9a6227f93p-1, 0x1.e172677fc2e4dp-1, 0x1.adf318635be63p-2, 0x1.d592c02fab258p-1,
+0x1.041d9b2a083b3p-2, 0x1.134c342226987p-4, 0x1.485805f690b01p-1, 0x1.c15e054382bc1p-5,
+0x1.1102165222043p-1, 0x1.08d1d78e11a3bp-1, 0x1.6d36b03eda6d6p-1, 0x1.f00216c3e0043p-4,
+0x1.b697cdab6d2fap-1, 0x1.e5052fc7ca0a6p-1, 0x1.2de448825bc89p-3, 0x1.8c68eec318d1ep-2,
+0x1.2b857df2570bp-3, 0x1.9bd31f6337a64p-3, 0x1.421c1ab284383p-3, 0x1.14fd940229fb3p-9,
+0x1.324fd9d2649fbp-3, 0x1.cb71c4e396e39p-3, 0x1.f8ee78abf1dcfp-2, 0x1.453fee0a8a7fep-2,
+0x1.483efb02907dfp-4, 0x1.3939b5c672737p-1, 0x1.07ee75020fdcfp-1, 0x1.1b94e03e3729cp-1,
+0x1.742988e2e8531p-1, 0x1.7c7a51c2f8f4ap-2, 0x1.c7115f438e22cp-1, 0x1.104c468220989p-2,
+0x1.3f5f20ba7ebe4p-2, 0x1.3c15d6e2782bbp-2, 0x1.76e38db2edc72p-3, 0x1.21be5df2437ccp-1,
+0x1.80e8e3f301d1cp-2, 0x1.a610e9634c21dp-1, 0x1.3dd43e467ba88p-1, 0x1.d176884ba2ed1p-1,
+0x1.5dc581dabb8bp-2, 0x1.5615dd02ac2bcp-2, 0x1.eed96403ddb2dp-6, 0x1.95ea3a632bd47p-3,
+0x1.20203c9240408p-2, 0x1.6bbf7502d77efp-3, 0x1.2baf05fa575e1p-1, 0x1.b5e2fb8b6bc5fp-2,
+0x1.83c94a3307929p-2, 0x1.7c360ca6f86c2p-1, 0x1.b80cf6b37019fp-2, 0x1.0e789b921cf13p-1,
+0x1.ef127de3de25p-1, 0x1.d87db7afb0fb7p-1, 0x1.b118929762312p-1, 0x1.81a5d403034bbp-5,
+0x1.11b76d76236eep-1, 0x1.720e0f2ae41c2p-2, 0x1.33af3d7e675e8p-1, 0x1.0bc1ecaa1783ep-2,
+0x1.7744307aee886p-1, 0x1.f5813983eb027p-2, 0x1.0e0719961c0e3p-1, 0x1.6f3c0d42de782p-5,
+0x1.98cb883331971p-1, 0x1.6bbffd02d78p-1, 0x1.38b21eca71644p-1, 0x1.64ffe8a2c9ffdp-3,
+0x1.11d0e66223a1dp-1, 0x1.da197433b432fp-3, 0x1.55b41382ab682p-4, 0x1.c0b3a74f81675p-1,
+0x1.21914b9243229p-1, 0x1.d16a6ca3a2d4ep-4, 0x1.3171af2262e36p-4, 0x1.b1a169db6342dp-1,
+0x1.2a3a55aa5474bp-2, 0x1.51dd3bdea3ba7p-1, 0x1.1925cf3a324bap-2, 0x1.5701cff2ae03ap-1,
+0x1.9c26910b384d2p-2, 0x1.689962f6d132cp-1, 0x1.95e9ae032bd36p-3, 0x1.7a4b8ccaf4972p-2,
+0x1.41171aa2822e3p-1, 0x1.692fe142d25fcp-5, 0x1.aa80474b55009p-2, 0x1.4b3a205296744p-3,
+0x1.9f340b533e681p-2, 0x1.1dec24823bd85p-6, 0x1.b15efcd362bep-2, 0x1.1b78d88236f1bp-3,
+0x1.03affde6076p-1, 0x1.e6b697ffcd6d3p-1, 0x1.7747dbe2ee8fbp-3, 0x1.38f70c2a71ee2p-2,
+0x1.527694fea4ed3p-1, 0x1.968415c32d083p-1, 0x1.eb770083d6eep-2, 0x1.911ded73223bep-3,
+0x1.a14e5983429cbp-6, 0x1.207202b240e4p-1, 0x1.27d915624fb23p-4, 0x1.2e9bbe5e5d378p-1,
+0x1.5a9f5046b53eap-1, 0x1.2ca56242594acp-3, 0x1.c07a506b80f4ap-2, 0x1.efbc7b1fdf78fp-1,
+0x1.9d0694733a0d3p-1, 0x1.6cd00fd2d9a02p-1, 0x1.46be4b0e8d7c9p-1, 0x1.ac6773d358ceep-3,
+0x1.aad2e58b55a5dp-2, 0x1.ac38b68f58717p-1, 0x1.283fa35a507f4p-1, 0x1.6808d682d011bp-5,
+0x1.c2cbb4a385977p-1, 0x1.fd7fc6fffaff9p-1, 0x1.a53c55f34a78bp-3, 0x1.24cb74924996fp-2,
+0x1.9bca080337941p-7, 0x1.41fe93ea83fd2p-1, 0x1.b287e0db650fcp-2, 0x1.0a1f2606143e5p-1,
+0x1.28b52be6516a5p-1, 0x1.3715e7666e2bdp-1, 0x1.a69aac1f4d356p-1, 0x1.ecaf0393d95ep-3,
+0x1.9b33fa4b3667fp-2, 0x1.38ac58ba7158bp-2, 0x1.bee678837dccfp-2, 0x1.b548dfe36a91cp-2,
+0x1.bcc82f0f79906p-1, 0x1.046e5eee08dccp-1, 0x1.2805ca02500b9p-6, 0x1.17677f562ecfp-1,
+0x1.4f97b7829f2f7p-1, 0x1.d2faad0ba5f56p-2, 0x1.0723fa720e47fp-1, 0x1.d93c97e3b2793p-2,
+0x1.59359962b26b3p-3, 0x1.378915f26f123p-3, 0x1.57b828e6af705p-1, 0x1.2bb6d91e576dbp-1,
+0x1.fa1afc0bf436p-1, 0x1.ffdf30f3ffbe6p-3, 0x1.42376686846edp-1, 0x1.bce6b0ab79cd6p-1,
+0x1.f5de4ce3ebbcap-3, 0x1.ab867c07570dp-1, 0x1.3d31abc27a635p-3, 0x1.07cd76ba0f9afp-2,
+0x1.db0a1fdbb6144p-2, 0x1.28905b5e5120bp-1, 0x1.8e05e1631c0bcp-1, 0x1.63a3bd02c7478p-5,
+0x1.7e990b02fd321p-3, 0x1.34a08d7e69412p-1, 0x1.22cbf96a4597fp-2, 0x1.2d403fe65a808p-1,
+0x1.d0f6b9dba1ed7p-1, 0x1.70d938fae1b27p-1, 0x1.f92bf603f257fp-7, 0x1.8dbee8eb1b7ddp-1,
+0x1.d51e5f93aa3ccp-3, 0x1.124de282249bcp-5, 0x1.4a4cd07a9499ap-2, 0x1.c4df4f6789beap-1,
+0x1.f544695bea88dp-2, 0x1.ac4a62af5894cp-1, 0x1.62fb36aac5f67p-2, 0x1.50ef9b06a1df3p-1,
+0x1.fa2ca82bf4595p-1, 0x1.26b887024d711p-6, 0x1.f299d093e533ap-3, 0x1.f447a433e88f5p-1,
+0x1.125b20ea24b64p-2, 0x1.bedddaab7dbbbp-1, 0x1.b12e54db625cbp-1, 0x1.06a523b20d4a4p-1,
+0x1.6a6456aed4c8bp-1, 0x1.eaff2003d5fe4p-11, 0x1.8a8bdf0f1517cp-1, 0x1.5fa59a62bf4b3p-3,
+0x1.290b1b2a52163p-1, 0x1.1891c06e31238p-1, 0x1.b88e89b3711d1p-3, 0x1.88b15deb1162cp-1,
+0x1.34c937b269927p-3, 0x1.ff133e43fe268p-2, 0x1.6be33ba2d7c67p-2, 0x1.e2907c43c521p-5,
+0x1.c18b60638316cp-3, 0x1.7bac9b52f7593p-2, 0x1.abe7f0af57cfep-1, 0x1.cb54e00396a9cp-2,
+0x1.9df657a33becbp-2, 0x1.443963a28872cp-3, 0x1.55137ecaaa27p-2, 0x1.c99d607f933acp-1,
+0x1.fd58bb97fab17p-1, 0x1.5c075abeb80ebp-1, 0x1.1a8cfb863519fp-1, 0x1.f78563bfef0acp-1,
+0x1.653d1ef6ca7a4p-1, 0x1.97336fab2e66ep-1, 0x1.ebcd07efd79a1p-1, 0x1.ee6aaf6fdcd56p-1,
+0x1.56114a52ac229p-1, 0x1.9cfb5cc739f6cp-1, 0x1.ea1fa63bd43f5p-2, 0x1.80eb420301d68p-2,
+0x1.9d761c933aec4p-1, 0x1.fe6ec8a3fcdd9p-3, 0x1.185f079a30be1p-1, 0x1.8d026f731a04ep-2,
+0x1.982d7297305aep-1, 0x1.8682aa070d055p-1, 0x1.3cca56827994bp-3, 0x1.e55fc083cabf8p-1,
+0x1.0c18925218312p-2, 0x1.052433720a486p-1, 0x1.c464240388c85p-8, 0x1.ecde4283d9bc8p-2,
+0x1.c2fa811b85f5p-1, 0x1.af70b8f75ee17p-1, 0x1.dc199143b8332p-1, 0x1.23eb59d247d6bp-2,
+0x1.fc478003f88fp-11, 0x1.0d46a1521a8d4p-2, 0x1.6e4c35a2dc987p-3, 0x1.fdd7cd77fbafap-1,
+0x1.e2aaab67c5555p-1, 0x1.762008eeec401p-1, 0x1.f55d3137eaba6p-1, 0x1.47e7ca5a8fcf9p-1,
+0x1.0d5378961aa6fp-1, 0x1.e12a3923c2547p-1, 0x1.365279c66ca4fp-1, 0x1.8d930b931b261p-3,
+0x1.7e2595eafc4b3p-1, 0x1.5b126702b624dp-4, 0x1.23da63e647b4cp-1, 0x1.1b9bb27a37376p-1,
+0x1.55fbfe12abf8p-2, 0x1.e1cb5c03c396cp-4, 0x1.e21cea33c439dp-1, 0x1.0cadc682195b9p-3,
+0x1.c2bc158785783p-1, 0x1.8a7bfe8314f8p-4, 0x1.4459910288b32p-4, 0x1.23217ab24642fp-3,
+0x1.3673b3466ce76p-1, 0x1.609fd342c13fap-4, 0x1.3f377ff27e6fp-1, 0x1.f2dc68bbe5b8dp-2,
+0x1.db84b363b7096p-1, 0x1.1b51113236a22p-1, 0x1.8b63e14b16c7cp-1, 0x1.dc03c543b8079p-1,
+0x1.a1f461db43e8cp-1, 0x1.e6f6eeb3cdedep-1, 0x1.d9db92b7b3b72p-1, 0x1.849f0d3f093e2p-1,
+0x1.5d16f79eba2dfp-1, 0x1.cf38c3eb9e718p-1, 0x1.990daf33321b6p-2, 0x1.a9a9c0c353538p-3,
+0x1.b062fd0f60c6p-1, 0x1.6ca8ae02d9516p-8, 0x1.9b9e662b373cdp-2, 0x1.2e8892f65d112p-1,
+0x1.71dcf202e3b9ep-4, 0x1.f1a996ffe3533p-1, 0x1.289115b251223p-3, 0x1.b2733a9364e67p-2,
+0x1.6f1813e2de302p-4, 0x1.62097ce2c413p-4, 0x1.1c650eea38ca2p-1, 0x1.f09f1803e13e3p-1,
+0x1.7642bdb2ec858p-3, 0x1.44f0410e89e08p-1, 0x1.cb3bb58396777p-4, 0x1.940462b32808cp-1,
+0x1.71043b76e2087p-1, 0x1.789ef6a2f13dfp-1, 0x1.1ae52e2235ca6p-2, 0x1.4c88eed69911ep-1,
+0x1.27e00fa24fc02p-2, 0x1.8d6785831acf1p-5, 0x1.288cb41651197p-1, 0x1.af234d635e46ap-4,
+0x1.ffcd670bff9adp-1, 0x1.026846ce04d09p-1, 0x1.ba8376eb7506fp-1, 0x1.5ce45ea6b9c8cp-1,
+0x1.a342156b46843p-2, 0x1.0e149d021c294p-2, 0x1.c74eced78e9dap-1, 0x1.04080f8208102p-2,
+0x1.13c73fc2278e8p-2, 0x1.2a3c03d25478p-2, 0x1.b08c9ab761193p-1, 0x1.703e7c42e07dp-2,
+0x1.0d8f31ca1b1e6p-2, 0x1.fab0e023f561cp-1, 0x1.9158db6b22b1bp-1, 0x1.695536c2d2aa7p-2,
+0x1.37907de26f21p-4, 0x1.5b7bd4aab6f7bp-2, 0x1.4a9366ca9526dp-2, 0x1.09057e5a120bp-2,
+0x1.f2ae2b63e55c5p-1, 0x1.bd62542b7ac4bp-2, 0x1.88721dc310e44p-5, 0x1.63b266d6c764dp-1,
+0x1.5d4082d2ba81p-3, 0x1.4bf371da97e6ep-2, 0x1.6076ab5ac0ed5p-2, 0x1.d680510bad00ap-2,
+0x1.7da0628afb40cp-2, 0x1.d8c809c3b1901p-1, 0x1.2124923242492p-1, 0x1.7d3b309afa766p-2,
+0x1.b660a11b6cc14p-2, 0x1.b750123b6ea02p-2, 0x1.b81f6f03703eep-5, 0x1.acd15b4759a2bp-1,
+0x1.62b2579ec564bp-1, 0x1.e2d0c5c7c5a19p-1, 0x1.76ab1822ed563p-4, 0x1.ec95f77fd92bfp-1,
+0x1.dfbb1ec3bf764p-3, 0x1.df61fdbfbec4p-1, 0x1.496a6b3a92d4dp-2, 0x1.fd6cc12bfad98p-2,
+0x1.da12dddfb425cp-1, 0x1.b070884360e11p-4, 0x1.b360fbfb66c1fp-1, 0x1.04ed9c0209db4p-9,
+0x1.c797f6bb8f2ffp-2, 0x1.62aabd72c5558p-3, 0x1.0b0f5992161ebp-2, 0x1.acf44d7b59e8ap-2,
+0x1.375bd9726eb7bp-1, 0x1.3c1d9d4a783b4p-2, 0x1.d1646c83a2c8ep-4, 0x1.8eabfa271d57fp-1,
+0x1.4408879688111p-1, 0x1.d4cfc67ba99f9p-2, 0x1.e7b08aa3cf611p-3, 0x1.6c5c6c02d8b8ep-8,
+0x1.865fda030cbfbp-2, 0x1.9b10b4df36217p-1, 0x1.82eca25305d94p-2, 0x1.9e603d8f3cc08p-1,
+0x1.dae2f7e3b5c5fp-3, 0x1.b9f0903373e12p-2, 0x1.4b3198d296633p-1, 0x1.d96b1597b2d63p-1,
+0x1.7f921bc2ff243p-2, 0x1.7a06fbdaf40dfp-1, 0x1.c6010d178c022p-1, 0x1.37b7d5926f6fbp-1,
+0x1.5968f996b2d1fp-1, 0x1.aad90ac355b21p-3, 0x1.b371b12366e36p-4, 0x1.337bd77266f7bp-1,
+0x1.4188a77283115p-2, 0x1.e9cf321fd39e6p-1, 0x1.3480c50e69019p-1, 0x1.84904f170920ap-1,
+0x1.09e785e213cf1p-3, 0x1.ba0871d77410ep-1, 0x1.6c29d742d853bp-3, 0x1.79d5baeaf3ab7p-1,
+0x1.605d01f2c0bap-3, 0x1.2a6e06ca54dc1p-2, 0x1.0881b50e11037p-1, 0x1.9c1fc813383f9p-1,
+0x1.7f9ee6a2ff3ddp-1, 0x1.826dd7bb04dbbp-1, 0x1.9ef880eb3df1p-1, 0x1.0b3b4e821676ap-3,
+0x1.1d7e8c963afd2p-1, 0x1.81bb484303769p-3, 0x1.e12f1133c25e2p-1, 0x1.94374a8f286e9p-1,
+0x1.3d671a2e7ace3p-1, 0x1.2c60aa0258c15p-1, 0x1.6da26022db44cp-1, 0x1.fd30280ffa605p-1,
+0x1.4ccf4bb2999e9p-2, 0x1.33a36d366746ep-1, 0x1.34e7fd9e69dp-1, 0x1.ffd09f6fffa14p-1,
+0x1.9e59afeb3cb36p-1, 0x1.6b5633c2d6ac6p-1, 0x1.334c76e26698fp-1, 0x1.f8f01d03f1e04p-4,
+0x1.552565e2aa4adp-1, 0x1.9f34efb33e69ep-3, 0x1.c3ae52bb875cap-1, 0x1.979f475b2f3e9p-1,
+0x1.0ead6e221d5aep-4, 0x1.eb8c8883d7191p-5, 0x1.1175024622eap-1, 0x1.e7b3b903cf677p-3,
+0x1.67df97dacfbf3p-2, 0x1.9f6b75033ed6fp-5, 0x1.60cb6502c196dp-5, 0x1.9c75948338eb3p-4,
+0x1.9c648f0b38c92p-1, 0x1.b505373b6a0a7p-1, 0x1.d97618c3b2ec3p-3, 0x1.73c6373ae78c7p-2,
+0x1.574094c2ae813p-5, 0x1.5e325d82bc64cp-3, 0x1.386998a270d33p-3, 0x1.52db237aa5b64p-1,
+0x1.83ed416707da8p-1, 0x1.bbbcc64f77799p-1, 0x1.500b4b86a0169p-1, 0x1.52a739e2a54e7p-4,
+0x1.dec06703bd80dp-2, 0x1.09e6924213cd2p-2, 0x1.512c3562a2587p-4, 0x1.1b73c6d236e79p-2,
+0x1.f0497ce3e093p-1, 0x1.5d71fd8ebae4p-1, 0x1.99afce1b335fap-2, 0x1.456ee2c28addcp-1,
+0x1.c53f397b8a7e7p-1, 0x1.210c738a4218ep-2, 0x1.ba1c543b7438bp-2, 0x1.e714e73fce29dp-1,
+0x1.5e7e049abcfc1p-2, 0x1.ee832c63dd066p-1, 0x1.840755f3080ebp-3, 0x1.632ece3ec65dap-1,
+0x1.0f3c76021e78fp-6, 0x1.dc3a2f33b8746p-3, 0x1.96bd80cf2d7bp-1, 0x1.a4de72bf49bcep-1,
+0x1.609e1842c13c3p-4, 0x1.a360df8346c1cp-6, 0x1.7b063962f60c7p-3, 0x1.061f31520c3e6p-3,
+0x1.929e7983253cfp-3, 0x1.59b7e90ab36fdp-2, 0x1.9462efcf28c5ep-1, 0x1.e894dfc7d129cp-1,
+0x1.a262eb4344c5dp-3, 0x1.c8dc76a391b8fp-2, 0x1.2e9c70025d38ep-5, 0x1.57f8ee52aff1ep-1,
+0x1.69618472d2c31p-1, 0x1.e87a6d63d0f4ep-4, 0x1.e5b2d1bfcb65ap-1, 0x1.59ab0152b356p-1,
+0x1.9a814b3b35029p-1, 0x1.65157192ca2aep-2, 0x1.3e33c82a7c679p-2, 0x1.5fc084b6bf811p-1,
+0x1.4310f28e8621ep-1, 0x1.7c280e32f8502p-1, 0x1.46d56bf28daadp-1, 0x1.f24ff4dbe49ffp-1,
+0x1.6aab3a92d5567p-1, 0x1.a7d741734fae8p-1, 0x1.557ec316aafd8p-1, 0x1.73251e42e64a4p-1,
+0x1.ee5cd3c3dcb9ap-5, 0x1.d87887c3b0f11p-2, 0x1.180390fe30072p-1, 0x1.2be6411257cc8p-3,
+0x1.f2ae95c3e55d3p-2, 0x1.76c51f5aed8a4p-1, 0x1.1902b93232057p-2, 0x1.5dfee942bbfddp-1,
+0x1.1d089ee23a114p-4, 0x1.072263220e44cp-4, 0x1.4693c9068d279p-1, 0x1.18739d5a30e74p-2,
+0x1.055287b60aa51p-1, 0x1.597d9006b2fb2p-1, 0x1.e432bcffc8658p-1, 0x1.bad0309375a06p-3,
+0x1.968cddb72d19cp-1, 0x1.c9e58ebb93cb2p-1, 0x1.c85f0d7b90be2p-1, 0x1.310e28ee621c5p-1,
+0x1.f1c11e03e3824p-3, 0x1.9de3c6333bc79p-3, 0x1.219d5b42433abp-2, 0x1.bf813a0f7f027p-1,
+0x1.e3a0ffbfc742p-1, 0x1.d7a41997af483p-1, 0x1.b1d12eeb63a26p-1, 0x1.4e4c3a4e9c987p-1,
+0x1.7f7b5b06fef6bp-1, 0x1.074ff1fe0e9fep-1, 0x1.82e2b11b05c56p-2, 0x1.9e6128433cc25p-1,
+0x1.f38c35e3e7187p-1, 0x1.d974e98fb2e9dp-1, 0x1.e95ab88bd2b57p-1, 0x1.d9c70183b38ep-2,
+0x1.503a08e6a0741p-1, 0x1.d7705483aee0bp-3, 0x1.2b89a80257135p-3, 0x1.73db1cc2e7b64p-1,
+0x1.2d80c3125b018p-2, 0x1.9176330722ec6p-1, 0x1.4eb6c0029d6d8p-13, 0x1.9c12e93f3825dp-1,
+0x1.d5e78613abcf1p-2, 0x1.e447a86bc88f5p-1, 0x1.58deac82b1bd6p-6, 0x1.0301417a06028p-2,
+0x1.ae2d37275c5a7p-1, 0x1.d32602dfa64cp-1, 0x1.b28ec9af651d9p-1, 0x1.54ebf522a9d7fp-4,
+0x1.d4f7a343a9ef4p-4, 0x1.0d75dd321aebcp-3, 0x1.ea1eb8b7d43d7p-1, 0x1.e3ff4243c7fe8p-5,
+0x1.b0190e0360322p-5, 0x1.9befe79f37dfdp-1, 0x1.6c8c2e72d9186p-1, 0x1.9a7cebe734f9dp-1,
+0x1.467fb3328cff6p-2, 0x1.6fec37e2dfd87p-4, 0x1.38de142a71bc3p-1, 0x1.2d981ef25b304p-2,
+0x1.dc9c2203b9384p-7, 0x1.2238ccb24471ap-1, 0x1.83af903b075f2p-1, 0x1.57ac796eaf58fp-1,
+0x1.9814e1d33029cp-1, 0x1.ce91fa3b9d23fp-1, 0x1.970f2c5b2e1e6p-2, 0x1.76aa1ac2ed543p-4,
+0x1.60082d3ec0106p-1, 0x1.973903332e72p-2, 0x1.cae82c9b95d06p-1, 0x1.2befc12257df8p-3,
+0x1.5fc8540abf90bp-2, 0x1.d5af21ffab5e4p-1, 0x1.98f9220b31f24p-2, 0x1.784584a2f08b1p-3,
+0x1.a8d524db51aa5p-1, 0x1.fc2d6ac3f85adp-3, 0x1.115dbf9a22bb8p-2, 0x1.e3741943c6e83p-1,
+0x1.84d1a40309a35p-2, 0x1.cb366203966ccp-3, 0x1.b40d6403681adp-9, 0x1.bad4c5c375a99p-2,
+0x1.d7b00383af6p-6, 0x1.6e403bd6dc807p-1, 0x1.df9d3b23bf3a7p-3, 0x1.63fab372c7f56p-2,
+0x1.9c3dc2d3387b8p-1, 0x1.b0c562f3618acp-1, 0x1.48c969329192dp-1, 0x1.a3b0335f47606p-1,
+0x1.a5fc5f434bf8cp-2, 0x1.98f1f2db31e3ep-2, 0x1.f6b95993ed72bp-2, 0x1.ac4c45c358989p-3,
+0x1.3615e74a6c2bdp-2, 0x1.c6e442fb8dc88p-1, 0x1.33d0a99a67a15p-2, 0x1.fb1320e7f6264p-1,
+0x1.250189224a031p-2, 0x1.9342059326841p-3, 0x1.183c44b230789p-3, 0x1.4264ee9684c9ep-1,
+0x1.d3fd1b03a7fa3p-4, 0x1.128ba23225174p-1, 0x1.a0764fbf40ecap-1, 0x1.e354c83bc6a99p-1,
+0x1.9196fce7232ep-1, 0x1.49297c629253p-4, 0x1.c6c8e17b8d91cp-1, 0x1.4fff3b929ffe7p-3,
+0x1.37e5901a6fcb2p-2, 0x1.c87ceedf90f9ep-1, 0x1.316a31c662d46p-1, 0x1.5560905aaac12p-2,
+0x1.36bd2ab26d7a5p-1, 0x1.a951808f52a3p-1, 0x1.5cada1e6b95b4p-1, 0x1.a5f5db034bebbp-2,
+0x1.5a16e37eb42dcp-1, 0x1.4aee162a95dc3p-2, 0x1.daac8373b559p-3, 0x1.68a898e2d1513p-4,
+0x1.71f00482e3e01p-1, 0x1.7207cdaae40fap-1, 0x1.3050492260a09p-2, 0x1.9f5f05033ebe1p-6,
+0x1.38ec10a271d82p-1, 0x1.3210795e6420fp-1, 0x1.01c3218203864p-6, 0x1.cb6cd53396d9bp-1,
+0x1.96e0fac32dc1fp-1, 0x1.3874a8e270e95p-3, 0x1.0dd1c3ca1ba38p-1, 0x1.d1609e23a2c14p-1,
+0x1.60a8cc6ac151ap-1, 0x1.5c90270ab9205p-2, 0x1.b4b5665b696adp-1, 0x1.e47f929bc8ff2p-2,
+0x1.aeda86235db51p-2, 0x1.7b7e47d2f6fc9p-1, 0x1.463f98328c7f3p-1, 0x1.73600b22e6c01p-1,
+0x1.43fb36ae87f67p-1, 0x1.dea727e3bd4e5p-3, 0x1.e10534c3c20a7p-5, 0x1.eae18573d5c31p-3,
+0x1.07da54220fb4bp-4, 0x1.7abdf532f57bfp-1, 0x1.4db34ede9b66ap-1, 0x1.7b122e06f6246p-1,
+0x1.01a80222035p-4, 0x1.c45e6fbf88bcep-1, 0x1.a8274123504e8p-1, 0x1.922504cb244a1p-1,
+0x1.36663d666ccc8p-1, 0x1.013d96c2027b3p-3, 0x1.9f1ffcf33e4p-1, 0x1.bd4938137a927p-3,
+0x1.725fdf0ee4bfcp-1, 0x1.a72e15ff4e5c3p-1, 0x1.d5f919a3abf23p-4, 0x1.0940d9ce1281bp-1,
+0x1.f54b4037ea968p-1, 0x1.4890e6fe9121dp-1, 0x1.b542efdb6a85ep-2, 0x1.55f40c9eabe82p-1,
+0x1.f6d8fa87edb1fp-1, 0x1.1eadbc8a3d5b8p-2, 0x1.20cf57b2419ebp-3, 0x1.9c8c7b2b3918fp-2,
+0x1.5aa4c282b5498p-6, 0x1.8e736e1f1ce6ep-1, 0x1.069922d20d324p-3, 0x1.4ed05cc29da0cp-1,
+0x1.874e05030e9c1p-7, 0x1.7eda7002fdb4ep-3, 0x1.c988be1f93118p-1, 0x1.38c414e271883p-4,
+0x1.da749133b4e92p-1, 0x1.173c0cfe2e782p-1, 0x1.a22ab0a344556p-1, 0x1.faa9917bf5532p-1,
+0x1.b734f9736e69fp-2, 0x1.4a51f1c294a3ep-1, 0x1.8cce9643199d3p-1, 0x1.200ba1c240174p-5,
+0x1.8aa157771542bp-1, 0x1.2bee933257dd2p-1, 0x1.02a61042054c2p-2, 0x1.fa026d03f404ep-2,
+0x1.a639525b4c72ap-2, 0x1.782456aaf048bp-2, 0x1.9084140321083p-7, 0x1.90cfd2c3219fap-2,
+0x1.28c4950251893p-7, 0x1.c1c7107b838e2p-2, 0x1.e5bf5fc3cb7ecp-5, 0x1.fb7c0cdbf6f82p-1,
+0x1.703a6686e074dp-1, 0x1.9a3f2fa3347e6p-3, 0x1.938494db27093p-2, 0x1.7b0f8c9af61f2p-1,
+0x1.f5033a0bea067p-1, 0x1.0b68932616d12p-1, 0x1.93bfd2bb277fap-2, 0x1.fb20721ff640ep-1,
+0x1.6b1f2f26d63e6p-1, 0x1.26d14ef24da2ap-2, 0x1.11c7a5c2238f5p-4, 0x1.4593c05a8b278p-1,
+0x1.aaa4b47755497p-1, 0x1.c463a55b88c75p-1, 0x1.403d51d2807aap-1, 0x1.0c7e625a18fccp-2,
+0x1.0eb5971e1d6b3p-1, 0x1.9a17d023342fap-2, 0x1.307fd69260ffbp-2, 0x1.32addd22655bcp-2,
+0x1.f8fa7b43f1f4fp-1, 0x1.1992f36a3325ep-1, 0x1.965825132cb05p-1, 0x1.982e48db305c9p-2,
+0x1.d5a51ec3ab4a4p-1, 0x1.9c9a356339347p-1, 0x1.947f0dcf28fe2p-1, 0x1.da483117b4906p-1,
+0x1.f5f6f683ebedfp-3, 0x1.b2db03cb65b6p-1, 0x1.d5c43defab888p-1, 0x1.edb82427db705p-1,
+0x1.96acfb432d59fp-5, 0x1.3f0d10b27e1a2p-2, 0x1.68c7b0bed18f6p-1, 0x1.cdc137839b827p-6,
+0x1.aaef1b7f55de3p-1, 0x1.953cd0c32a79ap-4, 0x1.31cf7b02639efp-6, 0x1.160e4aa62c1c9p-1,
+0x1.8c20832b1841p-2, 0x1.5e3b84a2bc771p-4, 0x1.6e882bf2dd105p-3, 0x1.c2d3d82385a7bp-3,
+0x1.f02b15efe0563p-1, 0x1.9bdf5ccf37becp-1, 0x1.ede84e73dbd0ap-2, 0x1.fdc15a13fb82bp-2,
+0x1.a3ad1373475a2p-3, 0x1.8f3412831e682p-1, 0x1.98379b9b306f3p-1, 0x1.879700730f2ep-3,
+0x1.518e0bdaa31c1p-2, 0x1.2e8fc0ae5d1f8p-1, 0x1.2dfce48a5bf9dp-1, 0x1.f9b092b3f3612p-3,
+0x1.9653ec1b2ca7ep-2, 0x1.84f7e4ab09efdp-2, 0x1.62d15702c5a2bp-3, 0x1.48a7b3ae914f6p-1,
+0x1.d55bd873aab7bp-3, 0x1.73c49d62e7894p-4, 0x1.365fd7d26cbfbp-1, 0x1.1d838ba23b071p-2,
+0x1.9bfe380b37fc7p-2, 0x1.3e4f11227c9e2p-2, 0x1.3a5f9f1a74bf4p-2, 0x1.e3b8de13c771cp-3,
+0x1.a39e4553473c9p-2, 0x1.4d7c96d29af93p-2, 0x1.8efc822b1df9p-1, 0x1.97df643f2fbedp-1,
+0x1.a50b77fb4a16fp-2, 0x1.ea9e8d27d53d2p-1, 0x1.128b490225169p-6, 0x1.8561a3d30ac34p-2,
+0x1.867de9f30cfbdp-1, 0x1.ff110303fe22p-2, 0x1.c1917ef78323p-1, 0x1.ef692ecfded26p-1,
+0x1.1d7928023af25p-2, 0x1.59c91a8eb3923p-1, 0x1.453bbba28a777p-3, 0x1.378399ee6f073p-1,
+0x1.10b1b67221637p-2, 0x1.7f4bd372fe97ap-1, 0x1.b5efbe9b6bdf8p-1, 0x1.5382d14aa705ap-1,
+0x1.071f17120e3e3p-3, 0x1.d4828b03a9051p-6, 0x1.385509ea70aa1p-2, 0x1.6e3d77c2dc7afp-2,
+0x1.e8e54023d1ca8p-4, 0x1.d28a5ccba514cp-1, 0x1.45e081b68bc1p-1, 0x1.0b1bc40e16379p-1,
+0x1.c6c795638d8f3p-3, 0x1.e3105143c620ap-1, 0x1.8409fb930813fp-1, 0x1.4381080287021p-1,
+0x1.139d3952273a7p-2, 0x1.13067dba260dp-1, 0x1.b6c0d8836d81bp-2, 0x1.5c5458a6b8a8bp-1,
+0x1.fb4a15bbf6943p-2, 0x1.c7e98d138fd32p-2, 0x1.f052a903e0a55p-5, 0x1.0845e99a108bdp-2,
+0x1.e37d480bc6fa9p-1, 0x1.e096a987c12d5p-1, 0x1.ce308e639c612p-3, 0x1.c8e7702391ceep-3,
+0x1.3a5fc41274bf9p-1, 0x1.89b62503136c5p-2, 0x1.a9bd75fb537afp-1, 0x1.c2b89f4f85714p-1,
+0x1.109b97c221373p-3, 0x1.5fad3492bf5a7p-1, 0x1.163b70962c76ep-1, 0x1.0bdd576a17babp-2,
+0x1.6e5148eedca29p-1, 0x1.b265f58b64cbfp-1, 0x1.3d0d67967a1adp-1, 0x1.ab6df0f356dbep-1,
+0x1.84f0525309e0ap-1, 0x1.05dbd2920bb7ap-2, 0x1.6d1369fada26dp-2, 0x1.f6a237abed447p-1,
+0x1.97f8ea332ff1dp-3, 0x1.d49d8463a93b1p-4, 0x1.3a233fae74468p-1, 0x1.df99ae6bbf336p-2,
+0x1.4d9a2e469b346p-1, 0x1.583abec2b0758p-5, 0x1.3084bf7261098p-3, 0x1.2cfce48259f9dp-3,
+0x1.f2f0e4ebe5e1dp-2, 0x1.ac9969b35932dp-3, 0x1.9ec45bdb3d88bp-2, 0x1.b9eb74fb73d6fp-2,
+0x1.2ef40fc25de82p-3, 0x1.42ee518685dcap-1, 0x1.4f2f96869e5f3p-1, 0x1.861cc8030c399p-1,
+0x1.f2590103e4b2p-7, 0x1.f1da18fbe3b43p-2, 0x1.48d5674e91aadp-1, 0x1.2fc127d25f825p-3,
+0x1.62690442c4d21p-3, 0x1.7c435f82f886cp-3, 0x1.a3bdeb53477bdp-2, 0x1.c6eb89ff8dd71p-1,
+0x1.176cd6c22ed9bp-5, 0x1.dd8ba803bb175p-6, 0x1.72597aeee4b2fp-1, 0x1.96671fbf2cce4p-1,
+0x1.23b48d1247692p-2, 0x1.47197f628e33p-4, 0x1.8d09576b1a12bp-1, 0x1.efb1022bdf62p-2,
+0x1.8ddb81e31bb7p-3, 0x1.8e592e2b1cb26p-2, 0x1.e7a5584fcf4abp-1, 0x1.b1110ec362222p-1,
+0x1.b960860372c11p-2, 0x1.9e3441433c688p-4, 0x1.fc5047e3f8a09p-1, 0x1.d628b577ac517p-1,
+0x1.3dd9c52a7bb39p-2, 0x1.9764eba32ec9dp-2, 0x1.663cdfe2cc79cp-2, 0x1.d553cd0baaa7ap-2,
+0x1.d418ea83a831dp-6, 0x1.27033a024e067p-8, 0x1.c31aba1386357p-3, 0x1.66a2b5c2cd457p-5,
+0x1.f67625ebecec5p-2, 0x1.b99c15d773383p-1, 0x1.8969d54312d3bp-3, 0x1.53d55406a7aabp-1,
+0x1.8acedb43159dbp-5, 0x1.34396afe6872dp-1, 0x1.1ac0de023581cp-1, 0x1.511dd902a23bbp-4,
+0x1.4325c83e864b9p-1, 0x1.1a34b1da34696p-2, 0x1.c08adae38115bp-1, 0x1.d5000ec7aa002p-1,
+0x1.6bfb11b2d7f62p-2, 0x1.4d94324a9b286p-1, 0x1.99b11fbb33624p-2, 0x1.1974695632e8dp-1,
+0x1.4c0c95c298193p-5, 0x1.68fbd052d1f7ap-2, 0x1.950af02b2a15ep-2, 0x1.e2e218bbc5c43p-2,
+0x1.d088e0a3a111cp-2, 0x1.8dab7feb1b57p-2, 0x1.8f3383a31e67p-2, 0x1.873152e70e62ap-1,
+0x1.928835c725107p-1, 0x1.7ab831c2f5706p-1, 0x1.c76ce5a38ed9dp-3, 0x1.a128fd1f4252p-1,
+0x1.7d063836fa0c7p-1, 0x1.c543cfdb8a87ap-2, 0x1.b793287b6f265p-1, 0x1.e1052ca3c20a6p-3,
+0x1.387bfb8270f7fp-2, 0x1.9ed9dc833db3cp-5, 0x1.cc169f2f982d4p-1, 0x1.69d5d6f2d3abbp-2,
+0x1.4e2708c69c4e1p-1, 0x1.cdaefa5b9b5dfp-2, 0x1.be1d4d337c3aap-2, 0x1.2299a20245334p-2,
+0x1.73f1d61ee7e3bp-1, 0x1.3f3302f27e66p-2, 0x1.99337f233267p-3, 0x1.4f7af7a29ef5fp-4,
+0x1.ed2db3c3da5b6p-1, 0x1.33256fa6664aep-1, 0x1.4363c84a86c79p-1, 0x1.ee7d1c03dcfa4p-9,
+0x1.e7a357cfcf46bp-1, 0x1.bd280b837a501p-6, 0x1.e6bf12f3cd7e2p-2, 0x1.9fcf903b3f9f2p-2,
+0x1.a97e00ab52fcp-2, 0x1.baf94b4b75f29p-1, 0x1.5c646c02b8c8ep-3, 0x1.9d1cd8633a39bp-3,
+0x1.35b17d0a6b63p-1, 0x1.91e8a8d323d15p-2, 0x1.0e0666821c0cdp-6, 0x1.656f6a82cadedp-2,
+0x1.ab963c57572c8p-1, 0x1.c0035baf8006bp-1, 0x1.2af9006a55f2p-1, 0x1.1f50e8623ea1dp-3,
+0x1.d9f0f97bb3e1fp-1, 0x1.ee1f3f33dc3e8p-2, 0x1.f97e4b23f2fc9p-2, 0x1.2818023e503p-1,
+0x1.dde71cc7bbce4p-1, 0x1.dbcdcc2bb79bap-1, 0x1.b964d34372c9ap-1, 0x1.51d8f2e2a3b1ep-1,
+0x1.ed9d3693db3a7p-3, 0x1.fb1b3083f6366p-5, 0x1.7bc851daf790ap-1, 0x1.a254059344a81p-3,
+0x1.52d722aea5ae4p-1, 0x1.7e583442fcb07p-2, 0x1.aa0dfa13541bfp-3, 0x1.3a7a7a7a74f4fp-1,
+0x1.9a2ab50334557p-2, 0x1.5de307febbc61p-1, 0x1.4c4852829890ap-6, 0x1.a1d45ad743a8bp-1,
+0x1.18dc534a31b8ap-1, 0x1.85ed76530bdafp-3, 0x1.23721d8246e44p-6, 0x1.3a374142746e8p-3,
+0x1.2a6fb1fe54df6p-1, 0x1.18bc424231788p-5, 0x1.01458592028b1p-1, 0x1.ac0bdca35817cp-2,
+0x1.d18f1fd3a31e4p-1, 0x1.61f42fe2c3e86p-4, 0x1.1dda286a3bb45p-1, 0x1.ab80194b57003p-1,
+0x1.234e2596469c5p-1, 0x1.a994df835329cp-5, 0x1.a73037134e607p-2, 0x1.0135425a026a8p-1,
+0x1.f6671a27ecce3p-1, 0x1.19f9dd9233f3cp-2, 0x1.4c38d4f29871bp-3, 0x1.c7399f238e734p-3,
+0x1.595d43a2b2ba8p-2, 0x1.ced687179dad1p-1, 0x1.b4c6d25b698dap-2, 0x1.ff85c47fff0b9p-1,
+0x1.1c05426a380a8p-2, 0x1.44e6e7b289cddp-1, 0x1.3a003ef674008p-1, 0x1.5b17fbb6b62ffp-1,
+0x1.4593df628b27cp-2, 0x1.4462818a88c5p-1, 0x1.f9d8ad13f3b16p-2, 0x1.bba642fb774c8p-1,
+0x1.a5dddf1f4bbbcp-1, 0x1.0607e77a0c0fdp-1, 0x1.468269028d04dp-6, 0x1.a09b223341364p-2,
+0x1.1793ab9e2f275p-1, 0x1.0b7998de16f33p-1, 0x1.a6537f6b4ca7p-1, 0x1.d24596dba48b3p-2,
+0x1.37b81eda6f704p-1, 0x1.885b4fab10b6ap-2, 0x1.2945c972528b9p-2, 0x1.6c1911b2d8322p-3,
+0x1.bd8deb9b7b1bdp-2, 0x1.683b0042d076p-1, 0x1.5c3b86c6b8771p-1, 0x1.aa5c1fe354b84p-2,
+0x1.f537ef0bea6fep-1, 0x1.af49bc035e938p-1, 0x1.46fc77ba8df8fp-1, 0x1.43cd21b2879a4p-2,
+0x1.7e204316fc408p-1, 0x1.0aff074215fe1p-4, 0x1.42d8aaaa85b15p-2, 0x1.845c898308b91p-6,
+0x1.6646c89acc8d9p-1, 0x1.db6c944bb6d93p-1, 0x1.673ae002ce75cp-1, 0x1.22170902442e1p-6,
+0x1.1fcf15d23f9e3p-1, 0x1.909cda332139bp-3, 0x1.c4b6fb43896dfp-1, 0x1.8b59e9db16b3dp-2,
+0x1.6a2f1e06d45e4p-1, 0x1.ceeb0e8f9dd62p-1, 0x1.95fa86072bf51p-1, 0x1.03859342070b2p-2,
+0x1.b4c94ed36992ap-2, 0x1.3c4e056e789c1p-1, 0x1.6ae5950ed5cb3p-1, 0x1.21cc64024398dp-5,
+0x1.eeb50003dd6ap-11, 0x1.ff8879c7ff10fp-1, 0x1.b48c2ab369185p-3, 0x1.be8546237d0a9p-2,
+0x1.67c37a06cf86fp-1, 0x1.c95e917392bd2p-1, 0x1.b470b30368e16p-1, 0x1.5cfb690eb9f6dp-1,
+0x1.78a84d76f150ap-1, 0x1.f6da557bedb4bp-2, 0x1.fee1f9e7fdc3fp-1, 0x1.ed912113db224p-2,
+0x1.1ccd0ba6399a1p-1, 0x1.409c9e7281394p-2, 0x1.02eb74d605d6fp-1, 0x1.0627a87a0c4f5p-2,
+0x1.eeeb8e03ddd72p-3, 0x1.a89953635132ap-3, 0x1.1849191230923p-2, 0x1.9b89f9533713fp-1,
+0x1.9c9b16cb39363p-2, 0x1.436e1f2286dc4p-3, 0x1.84dbb8f309b77p-3, 0x1.c3e54b4387ca9p-4,
+0x1.fc696543f8d2dp-5, 0x1.f7317443ee62fp-1, 0x1.747ee612e8fddp-2, 0x1.f4567b7be8acfp-2,
+0x1.337f79b266fefp-1, 0x1.292840a252508p-4, 0x1.0c4803fe189p-1, 0x1.33fb26f267f65p-1,
+0x1.256c0ee24ad82p-4, 0x1.796b0eaaf2d62p-1, 0x1.33dca00267b94p-5, 0x1.8c70fbe318e1fp-1,
+0x1.42c9a01e85934p-1, 0x1.c7ae7d078f5dp-1, 0x1.d2d8c9e3a5b19p-2, 0x1.76e3db22edc7bp-2,
+0x1.86374f830c6eap-2, 0x1.d09cbdaba1398p-2, 0x1.b23a7e1b6475p-1, 0x1.dfe8b367bfd16p-1,
+0x1.889cae1311396p-1, 0x1.6a4be5e2d497dp-2, 0x1.8bf21e8317e44p-3, 0x1.15e464022bc8dp-7,
+0x1.1f4c47ca3e989p-1, 0x1.de422853bc845p-2, 0x1.9fe18ae73fc31p-1, 0x1.ed99d32fdb33ap-1,
+0x1.3ffc9bf67ff93p-1, 0x1.1879200230f24p-9, 0x1.30b3e4a26167dp-4, 0x1.5fc3324abf866p-1,
+0x1.f849ed67f093ep-1, 0x1.c0abdf3b8157cp-2, 0x1.67b9c022cf738p-3, 0x1.2bc967165792dp-1,
+0x1.057af7b20af5fp-1, 0x1.66367406cc6cfp-1, 0x1.7f123812fe247p-3, 0x1.2a28798e5450fp-1,
+0x1.bf4305637e861p-2, 0x1.cc0960239812cp-3, 0x1.6d32eae2da65dp-2, 0x1.1359166226b23p-4,
+0x1.d586a863ab0d5p-4, 0x1.a005da63400bbp-1, 0x1.bbba20bb77744p-2, 0x1.fb98f99bf731fp-2,
+0x1.10a8726a2150ep-2, 0x1.202f1cea405e4p-2, 0x1.bb6a606376d4cp-2, 0x1.0f0e74421e1cfp-5,
+0x1.453d81668a7bp-1, 0x1.40b1b7d281637p-1, 0x1.54878d82a90f2p-5, 0x1.922724b3244e5p-3,
+0x1.7e965fe2fd2ccp-4, 0x1.b52a03bf6a54p-1, 0x1.488e7162911cep-3, 0x1.6fcf67f2df9edp-1,
+0x1.b6427cdf6c85p-1, 0x1.e0e863b3c1d0cp-3, 0x1.9f2534733e4a7p-2, 0x1.ae8c6a435d18dp-1,
+0x1.5890088ab1201p-1, 0x1.29810a4253021p-1, 0x1.b4aba2ab69574p-2, 0x1.782c00f2f058p-3,
+0x1.1f6efc923edep-2, 0x1.3a1a5f5e7434cp-1, 0x1.883379cb1066fp-1, 0x1.6f5900fadeb2p-1,
+0x1.ad1cb7675a397p-1, 0x1.f66779c3eccefp-4, 0x1.91c423c723884p-1, 0x1.e7cd8c73cf9b2p-1,
+0x1.ded2c99bbda59p-1, 0x1.be84d0837d09ap-3, 0x1.cb34127b96682p-2, 0x1.9c9c0b4339381p-3,
+0x1.ff71852bfee31p-2, 0x1.c34f396f869e7p-1, 0x1.e05fa853c0bf5p-3, 0x1.13d90ff227b22p-3,
+0x1.0400f13e0801ep-1, 0x1.1ac0c5da35819p-2, 0x1.53001a52a6003p-2, 0x1.33d3bd3a67a78p-1,
+0x1.0a299aa214533p-3, 0x1.f747530bee8eap-2, 0x1.47464a528e8c9p-2, 0x1.f8cce38bf199cp-1,
+0x1.73ddc272e7bb8p-1, 0x1.7335bf66e66b8p-1, 0x1.a7594dcb4eb2ap-1, 0x1.98db95fb31b73p-2,
+0x1.396d934a72db2p-2, 0x1.035e3e4206bc8p-2, 0x1.2a78cb3a54f19p-1, 0x1.2c6e47ee58dc9p-1,
+0x1.bbc97e7f7793p-1, 0x1.65588a02cab11p-2, 0x1.378e91ca6f1d2p-2, 0x1.68e635e2d1cc7p-1,
+0x1.e2f2687bc5e4dp-2, 0x1.6c5b6542d8b6dp-4, 0x1.50b3c252a1678p-1, 0x1.a097fbab412ffp-2,
+0x1.3a59419274b28p-2, 0x1.b26e5c6364dccp-4, 0x1.377300a66ee6p-1, 0x1.9ce5636339cacp-1,
+0x1.f99d04fbf33a1p-1, 0x1.af8aeabf5f15dp-1, 0x1.e1dba75fc3b75p-1, 0x1.fb3bec6bf677ep-2,
+0x1.e75a6d43ceb4ep-4, 0x1.16b7690a2d6edp-2, 0x1.8b8d9b83171b3p-4, 0x1.fdd6d153fbadap-3,
+0x1.86ff5e0b0dfecp-1, 0x1.aa29b13354536p-2, 0x1.e10a5f73c214cp-3, 0x1.f5ba40fbeb748p-2,
+0x1.212a5ff24254cp-3, 0x1.f9be5a43f37cbp-5, 0x1.c74aeb7b8e95dp-1, 0x1.ca02c34b94058p-2,
+0x1.4296098a852c1p-2, 0x1.e3876d63c70eep-2, 0x1.16fa99022df53p-5, 0x1.74520d02e8a42p-3,
+0x1.a46ffbb348dffp-1, 0x1.5a6de4f2b4dbdp-2, 0x1.c5fab9238bf57p-1, 0x1.2bd25fda57a4cp-2,
+0x1.b584be436b098p-2, 0x1.16ae7b722d5cfp-1, 0x1.66352dc6cc6a6p-1, 0x1.77eeffeeefdep-1,
+0x1.4cfc46fe99f89p-1, 0x1.3b505cd276a0cp-2, 0x1.14d4634e29a8cp-1, 0x1.46994bf68d329p-1,
+0x1.34cc64926998dp-3, 0x1.ed601553dac03p-2, 0x1.10dd08b221ba1p-3, 0x1.143ccda22879ap-2,
+0x1.820bbf2f04178p-1, 0x1.d6a3d673ad47bp-3, 0x1.09941b2613283p-1, 0x1.090b1d3a12164p-1,
+0x1.4abdce36957bap-1, 0x1.81d6b30303ad6p-1, 0x1.f41eda03e83dbp-8, 0x1.930866372610dp-1,
+0x1.a17298a742e53p-1, 0x1.cb33292f96665p-1, 0x1.e0271f63c04e4p-3, 0x1.0af675b215ecfp-3,
+0x1.79edbfbaf3db8p-2, 0x1.12f2e2d225e5cp-2, 0x1.3fa4415a7f488p-2, 0x1.859b6e330b36ep-3,
+0x1.36b063e26d60cp-1, 0x1.973367432e66dp-3, 0x1.eea016fbdd403p-2, 0x1.172c30422e586p-5,
+0x1.7c7b5542f8f6bp-1, 0x1.7614e502ec29dp-3, 0x1.8961c2f312c38p-1, 0x1.92ef388325de7p-2,
+0x1.f65acf53ecb5ap-2, 0x1.3c6c4c7a78d8ap-2, 0x1.010e8342021dp-5, 0x1.486080d290c1p-1,
+0x1.94e630e729cc6p-1, 0x1.5120a982a2415p-3, 0x1.d27ee7a3a4fddp-1, 0x1.16f1f0122de3ep-1,
+0x1.93e23ffb27c48p-2, 0x1.b826058b704c1p-2, 0x1.ffd0d483ffa1bp-5, 0x1.4aeee34295ddcp-5,
+0x1.77a6d712ef4dbp-3, 0x1.1f2a57e23e54bp-4, 0x1.a7b7546b4f6ebp-1, 0x1.ff5c4e6bfeb8ap-1,
+0x1.ef18742bde30fp-1, 0x1.fc11c403f8239p-5, 0x1.0867af5210cf6p-3, 0x1.581ea80ab03d5p-2,
+0x1.52751b52a4ea3p-2, 0x1.c3d8190b87b03p-2, 0x1.0d762f961aec6p-1, 0x1.dfeaf18fbfd5ep-1,
+0x1.47b8e6568f71dp-1, 0x1.318ec402631d9p-7, 0x1.f15db493e2bb7p-1, 0x1.8868772b10d0fp-2,
+0x1.892dd143125bap-3, 0x1.7abf7782f57efp-1, 0x1.8dabd7d71b57bp-1, 0x1.5d78dbfabaf1bp-1,
+0x1.8f59dbc31eb3bp-5, 0x1.9dbcc00f3b798p-1, 0x1.4bb2b99297657p-2, 0x1.addbcea35bb7ap-1,
+0x1.f204ea6fe409dp-1, 0x1.e16111a3c2c22p-3, 0x1.899b7d631337p-2, 0x1.77ec14daefd83p-2,
+0x1.546b472ea8d69p-1, 0x1.c99597fb932b3p-2, 0x1.a149f1434293ep-2, 0x1.b254fcf364aap-1,
+0x1.08b016fa11603p-1, 0x1.e1713423c2e27p-3, 0x1.b1b14b5f63629p-1, 0x1.ef91164bdf223p-2,
+0x1.303ad2926075ap-2, 0x1.f3cb3733e7967p-1, 0x1.a3d7df2b47afcp-1, 0x1.4157f6f282affp-1,
+0x1.ab6e876b56dd1p-2, 0x1.629c1d7ac5384p-2, 0x1.2142e87e4285dp-1, 0x1.d702a083ae054p-5,
+0x1.6c28939ad8512p-2, 0x1.12a09d0e25414p-1, 0x1.c348cb4386919p-2, 0x1.185fbe1e30bf8p-1,
+0x1.1ac0291a35805p-2, 0x1.bd40f5d37a81fp-3, 0x1.d7626863aec4dp-3, 0x1.4cab64929956dp-2,
+0x1.a19fb003433f6p-6, 0x1.1bb1f6e23763fp-1, 0x1.50c603a2a18cp-3, 0x1.ff11e7f3fe23dp-1,
+0x1.940a3b4f28147p-1, 0x1.18ff3f9e31fe8p-1, 0x1.760fe4baec1fdp-2, 0x1.d0eb04f3a1d61p-2,
+0x1.fdca0b9bfb941p-1, 0x1.8baceaff1759dp-1, 0x1.3594feda6b2ap-2, 0x1.067a22920cf44p-1,
+0x1.024e0102049cp-7, 0x1.31ef2b2263de5p-3, 0x1.fe42adb7fc856p-1, 0x1.384d429a709a8p-2,
+0x1.011c07e202381p-3, 0x1.a21a8ce344352p-1, 0x1.dd7e983fbafd3p-1, 0x1.15fe45b22bfc9p-1,
+0x1.4da26e729b44ep-3, 0x1.fd83017bfb06p-2, 0x1.336e6fba66dcep-1, 0x1.097ce56e12f9dp-1,
+0x1.1621dc822c43cp-5, 0x1.512d5582a25abp-5, 0x1.0ee51c421dca4p-4, 0x1.3d8464b27b08dp-2,
+0x1.08c625a2118c5p-2, 0x1.2f6a7b425ed4fp-2, 0x1.4517e4a28a2fdp-1, 0x1.22e020a245c04p-2,
+0x1.b367348766ce7p-1, 0x1.9949658f3292dp-1, 0x1.2103f0824207ep-2, 0x1.47716fd28ee2ep-1,
+0x1.64914a52c9229p-2, 0x1.4b89ea9e9713dp-1, 0x1.7f379242fe6f2p-4, 0x1.60256182c04acp-2,
+0x1.ae6dab335cdb5p-2, 0x1.9562e36b2ac5cp-2, 0x1.b68cd3536d19ap-1, 0x1.b6801b3b6d003p-2,
+0x1.172d3c7e2e5a8p-1, 0x1.b4cf810b699fp-1, 0x1.7766aeeaeecd6p-1, 0x1.57743e7aaee88p-1,
+0x1.56ea0deaadd42p-1, 0x1.54e5472aa9ca9p-1, 0x1.b5ca10a36b942p-3, 0x1.aa52a98754a55p-1,
+0x1.4e9b1f929d364p-3, 0x1.a0e0f3e341c1ep-1, 0x1.679f1de2cf3e4p-2, 0x1.942396b328473p-3,
+0x1.b5f3c93f6be79p-1, 0x1.ab5864fb56b0dp-2, 0x1.03cb180607963p-1, 0x1.d2b6e063a56dcp-4,
+0x1.6d61701edac2ep-1, 0x1.238bf2a24717ep-3, 0x1.978dd8bb2f1bbp-2, 0x1.20c8a4a241915p-1,
+0x1.e22c6237c458cp-1, 0x1.5c48e4a2b891dp-1, 0x1.a0e851c341d0ap-3, 0x1.28ea0eba51d42p-2,
+0x1.4fa59e7a9f4b4p-2, 0x1.30420d7a60842p-2, 0x1.4487b81e890f7p-1, 0x1.7f09a4dafe135p-1,
+0x1.62d27872c5a4fp-1, 0x1.f62916dbec523p-2, 0x1.6926c9d2d24d9p-3, 0x1.e7fed3c3cffdap-3,
+0x1.5fc818eabf903p-2, 0x1.d1b06163a360cp-1, 0x1.d173f36ba2e7ep-1, 0x1.b3869703670d3p-7,
+0x1.2695a88a4d2b5p-1, 0x1.f733bc83ee678p-4, 0x1.b120c3e762418p-1, 0x1.7a3c706ef478ep-1,
+0x1.dfc76b73bf8edp-1, 0x1.93c14b5327829p-3, 0x1.df45561bbe8abp-1, 0x1.95bb34af2b767p-1,
+0x1.3a9c855275391p-1, 0x1.c620dc438c41cp-2, 0x1.d01210bba0242p-1, 0x1.4ffbeae29ff7dp-2,
+0x1.2bf36aca57e6dp-1, 0x1.37b1fa326f63fp-2, 0x1.c8c69a13918d3p-1, 0x1.0e1fccfe1c3fap-1,
+0x1.f821e1bbf043cp-1, 0x1.88057423100afp-4, 0x1.a294d45b4529bp-1, 0x1.3fe961ea7fd2cp-2,
+0x1.92436a832486dp-2, 0x1.ce3918eb9c723p-2, 0x1.efe55cc3dfcacp-5, 0x1.5fa16d82bf42ep-4,
+0x1.e23117e3c4623p-1, 0x1.e5202113ca404p-3, 0x1.4be7c54297cf9p-2, 0x1.242a48b248549p-2,
+0x1.2be1a69257c35p-3, 0x1.dd9f5823bb3ebp-3, 0x1.31c67d6a638dp-2, 0x1.718e122ee31c2p-1,
+0x1.6c9c9b32d9393p-2, 0x1.28100a6250201p-3, 0x1.d7950533af2a1p-2, 0x1.2c2b721a5856ep-2,
+0x1.5de8aae2bbd15p-2, 0x1.961fb1632c3f6p-2, 0x1.5e876dc2bd0eep-4, 0x1.e990dac3d321bp-1,
+0x1.ae2046d35c409p-1, 0x1.fbe2fe77f7c6p-1, 0x1.231da062463b4p-2, 0x1.b4276333684ecp-2,
+0x1.2f77f71a5eeffp-2, 0x1.6955a912d2ab5p-3, 0x1.e8337e97d067p-1, 0x1.1fbbba8a3f777p-2,
+0x1.16ac31922d586p-2, 0x1.8ac852ef1590ap-1, 0x1.2fd28e3a5fa52p-1, 0x1.5477ce0aa8efap-1,
+0x1.c7937d838f27p-3, 0x1.4ed0e40a9da1dp-1, 0x1.806bfbbb00d7fp-1, 0x1.5057dd12a0afcp-3,
+0x1.c818ec4f9031ep-1, 0x1.32fef2e265fdep-4, 0x1.cc56373b98ac7p-2, 0x1.31155f02622acp-5,
+0x1.3b8f68ca771edp-2, 0x1.7f0e5a52fe1cbp-1, 0x1.849f681f093edp-1, 0x1.54160202a82cp-1,
+0x1.c9125cef9224cp-1, 0x1.c1a7aad3834f5p-3, 0x1.ea2bbb0fd4577p-1, 0x1.e01ac973c0359p-3,
+0x1.3b79c36676f38p-1, 0x1.5fca8c42bf952p-5, 0x1.865e34730cbc7p-3, 0x1.d3341473a6683p-2,
+0x1.1dfa73823bf4ep-5, 0x1.e64cbaa3cc997p-2, 0x1.c3adbbd3875b7p-1, 0x1.5337458aa66e9p-2,
+0x1.4d7bc7969af79p-1, 0x1.abe13a6b57c27p-1, 0x1.3979800a72f3p-1, 0x1.d8d1e05fb1a3cp-1,
+0x1.36a98d566d532p-1, 0x1.a53039134a607p-3, 0x1.2d49ae665a936p-1, 0x1.a88e6cbb511cep-1,
+0x1.b81cf24f7039ep-1, 0x1.5b6b543ab6d6bp-2, 0x1.fca463fff948cp-1, 0x1.8035de9b006bcp-1,
+0x1.a82b10f350562p-2, 0x1.c59eff338b3ep-2, 0x1.9347348b268e7p-1, 0x1.71dd3ce2e3ba8p-1,
+0x1.877767a30eeedp-3, 0x1.17e69ca62fcd4p-1, 0x1.8be67dc317cdp-2, 0x1.5781b6a2af037p-4,
+0x1.8850875b10a11p-1, 0x1.603df3dac07bep-2, 0x1.45edd2628bdbap-2, 0x1.8794957b0f293p-2,
+0x1.8c374563186e9p-2, 0x1.048e7652091cfp-1, 0x1.ad6454f75ac8bp-1, 0x1.aff693db5fed2p-2,
+0x1.f7b4d3a3ef69ap-1, 0x1.711210cae2242p-1, 0x1.8196ecb3032dep-1, 0x1.45309b368a613p-1,
+0x1.1cf34b3239e69p-1, 0x1.7620d97aec41bp-2, 0x1.1e027b923c04fp-1, 0x1.4e7362129ce6cp-3,
+0x1.245c7b0248b8fp-1, 0x1.2d30a7d25a615p-3, 0x1.fc2b453ff8569p-1, 0x1.b8f2da9b71e5bp-2,
+0x1.f203a823e4075p-2, 0x1.f8cfa93bf19f5p-1, 0x1.72bd2f92e57a6p-3, 0x1.cd175c8f9a2ecp-1,
+0x1.b73e51a36e7cap-2, 0x1.eff6806fdfedp-1, 0x1.3ef4996e7de93p-1, 0x1.3d7d02be7afap-1,
+0x1.07dd1d120fba4p-1, 0x1.39f6130273ec2p-7, 0x1.686d3992d0da7p-1, 0x1.205b48d240b69p-2,
+0x1.6a0da472d41b5p-2, 0x1.6c845882d908bp-6, 0x1.53f7ef26a7efep-1, 0x1.7b2274eaf644fp-1,
+0x1.0ff299161fe53p-1, 0x1.015c441e02b89p-1, 0x1.4c76fb5298edfp-3, 0x1.07a76cb60f4eep-1,
+0x1.c9b953939372ap-3, 0x1.d4b4ab8ba9695p-1, 0x1.33601fa266c04p-3, 0x1.8f61a0171ec34p-1,
+0x1.1f8a308a3f146p-2, 0x1.6ada837ad5b5p-1, 0x1.e2fe789bc5fcfp-1, 0x1.b421934768432p-1,
+0x1.b626ad6f6c4d6p-1, 0x1.df29bddbbe538p-1, 0x1.21360122426cp-2, 0x1.5e5102fabca2p-2,
+0x1.d7f96713aff2dp-1, 0x1.da9498ebb5293p-2, 0x1.f0ff7823e1fefp-3, 0x1.67311fcace624p-2,
+0x1.ba8199c375033p-2, 0x1.bb3477777668fp-1, 0x1.f11592a3e22b2p-1, 0x1.e51de9f3ca3bdp-1,
+0x1.c01c4fc38038ap-1, 0x1.5982cc32b305ap-1, 0x1.d52e3963aa5c7p-3, 0x1.d48c87e3a9191p-3,
+0x1.64e6eef6c9cdep-1, 0x1.c9437d7f9287p-1, 0x1.f04596e7e08b3p-1, 0x1.d3662023a6cc4p-3,
+0x1.953f83332a7fp-2, 0x1.0d8d56e21b1abp-3, 0x1.7c80f4bef901fp-1, 0x1.3d0e167e7a1c3p-1,
+0x1.8180140303003p-5, 0x1.c958fca792b2p-1, 0x1.98df6d2331beep-2, 0x1.4fba330a9f746p-2,
+0x1.3433801e6867p-1, 0x1.5edc5e5abdb8cp-2, 0x1.6ffab322dff56p-3, 0x1.d4b45b13a968bp-2,
+0x1.1d2fda0a3a5fbp-2, 0x1.d9335ab3b266bp-2, 0x1.9982af0b33056p-1, 0x1.9a455053348aap-3,
+0x1.d9e3f9cfb3c7fp-1, 0x1.5c28d102b851ap-5, 0x1.1a29e3fa3453cp-1, 0x1.6e498d5adc932p-2,
+0x1.d0f7048ba1ee1p-1, 0x1.0b3f769a167efp-1, 0x1.3885613a710acp-2, 0x1.9113544b2226bp-1,
+0x1.93090b3326121p-3, 0x1.118e3ef6231c8p-1, 0x1.8d9d91031b3b2p-7, 0x1.c9a931c393526p-1,
+0x1.b5a378eb6b46fp-2, 0x1.f67c0d2becf82p-1, 0x1.f415ce63e82bap-4, 0x1.a5717e0f4ae3p-1,
+0x1.cefb17039df63p-4, 0x1.bb03ae8b76076p-1, 0x1.c4ff291b89fe5p-2, 0x1.47dd90928fbb2p-3,
+0x1.845cab3308b95p-1, 0x1.aeef4b1f5dde9p-1, 0x1.f3a8fb53e751fp-2, 0x1.7120569ae240bp-2,
+0x1.7975e922f2ebdp-3, 0x1.55d32a76aba65p-1, 0x1.a2ea58db45d4bp-1, 0x1.d9eace9bb3d5ap-2,
+0x1.09b35f321366cp-3, 0x1.3c6d07e278da1p-1, 0x1.5386bb66a70d7p-1, 0x1.c50d19c38a1a3p-5,
+0x1.522f94f2a45f3p-1, 0x1.b6c27d736d85p-3, 0x1.a6eb30934dd66p-2, 0x1.2326997a464d3p-1,
+0x1.78f015faf1e03p-1, 0x1.6fb848eadf709p-1, 0x1.6873db8ad0e7bp-2, 0x1.ddb258c7bb64bp-1,
+0x1.028d0fba051a2p-2, 0x1.74e0c812e9c19p-2, 0x1.a75b8a874eb71p-1, 0x1.5c184452b8309p-1,
+0x1.61d8e262c3b1cp-2, 0x1.e5de4453cbbc9p-1, 0x1.0189c26203138p-1, 0x1.d597a823ab2f5p-2,
+0x1.a0e1f2df41c3ep-1, 0x1.e40956efc812bp-1, 0x1.3cc3383679867p-1, 0x1.253e9e0e4a7d4p-1,
+0x1.92f8a20b25f14p-1, 0x1.b4bdaf03697b6p-4, 0x1.ddcec95bbb9d9p-1, 0x1.f1561c57e2ac4p-1,
+0x1.8c6ae05718d5cp-1, 0x1.80b9223301724p-1, 0x1.bc970743792e1p-2, 0x1.ced7b8239daf7p-1,
+0x1.7a4c5422f498bp-2, 0x1.8e91f8231d23fp-4, 0x1.eb2889bfd6511p-1, 0x1.eab7e083d56fcp-6,
+0x1.3f05bcca7e0b8p-2, 0x1.7d3c4412fa789p-2, 0x1.327c587e64f8bp-1, 0x1.872f45c30e5e9p-5,
+0x1.72b35782e566bp-4, 0x1.e6b64643cd6c9p-1, 0x1.f6254d23ec4aap-1, 0x1.5f39e59abe73dp-2,
+0x1.424d5492849abp-2, 0x1.9d80d7a73b01bp-1, 0x1.76a6e402ed4ddp-6, 0x1.52131b7aa4263p-1,
+0x1.835f1bfb06be3p-1, 0x1.0d3ef9821a7dfp-1, 0x1.e6f77c63cdefp-4, 0x1.24410ed648822p-1,
+0x1.e290a0dbc5214p-2, 0x1.79a227c2f3445p-1, 0x1.25feb3824bfd6p-3, 0x1.0881e4ea1103dp-2,
+0x1.b039dda36073cp-1, 0x1.3a73b1c274e76p-4, 0x1.d65c3b23acb87p-3, 0x1.3ca4bdf679498p-1,
+0x1.a807986f500f3p-1, 0x1.53e2926ea7c52p-1, 0x1.0b7c761a16f8fp-1, 0x1.94b709f3296e1p-3,
+0x1.85b4d1730b69ap-1, 0x1.ed49ffabda94p-2, 0x1.d20e0603a41c1p-3, 0x1.29bd7ea2537bp-4,
+0x1.b54321df6a864p-1, 0x1.a6ffda034dffbp-1, 0x1.ed552183daaa4p-4, 0x1.e3998ccfc7332p-1,
+0x1.8db620431b6c4p-1, 0x1.9e7f8a833cff1p-4, 0x1.266cff3a4cdap-2, 0x1.76e65462edccbp-4,
+0x1.d150c8fba2a19p-1, 0x1.3dd76d7a7baeep-2, 0x1.80efe60701dfdp-1, 0x1.54afe4f2a95fdp-1,
+0x1.ac2ab03f58556p-1, 0x1.bdced5937b9dbp-1, 0x1.e3c3cf13c787ap-3, 0x1.3ae6015275ccp-2,
+0x1.3770fd566ee2p-1, 0x1.84e1414b09c28p-2, 0x1.21b3f31e4367ep-1, 0x1.cf55b5eb9eab7p-2,
+0x1.d37e2dbba6fc6p-2, 0x1.974b01eb2e96p-1, 0x1.227cc76244f99p-4, 0x1.238d5e92471acp-2,
+0x1.d65b28abacb65p-2, 0x1.2fcc0f065f982p-1, 0x1.ede8e393dbd1cp-2, 0x1.c389971387133p-3,
+0x1.338876c26710fp-4, 0x1.6b77f34ad6efep-1, 0x1.2c342b3a58685p-2, 0x1.dbb430bbb7686p-1,
+0x1.1277cd4a24efap-1, 0x1.a789739b4f12ep-2, 0x1.bf4dbd877e9b8p-1, 0x1.405bdb1a80b7bp-2,
+0x1.0794ab220f295p-1, 0x1.4a10f4829421fp-3, 0x1.9e1570333c2aep-2, 0x1.b1cae8336395dp-2,
+0x1.e2dfe7bbc5bfdp-2, 0x1.3fea78727fd4fp-3, 0x1.6caac842d9559p-4, 0x1.3b354832766a9p-2,
+0x1.b92e7603725cfp-6, 0x1.4d0c999a9a193p-2, 0x1.3b0da4c2761b5p-1, 0x1.453a71068a74ep-1,
+0x1.68f6ed72d1edep-1, 0x1.73065f82e60ccp-3, 0x1.672a5fc2ce54cp-4, 0x1.4ad8113295b02p-3,
+0x1.f40c99cbe8193p-1, 0x1.44d3939289a72p-3, 0x1.c8f9673391f2dp-2, 0x1.be745c3b7ce8cp-2,
+0x1.8100f3eb0201ep-1, 0x1.db712563b6e25p-1, 0x1.501c93e2a0392p-1, 0x1.a77202c74ee4p-1,
+0x1.46e918aa8dd23p-1, 0x1.e636a97fcc6d5p-1, 0x1.8326337f064c6p-1, 0x1.658397d2cb073p-3,
+0x1.73f6c69ae7ed9p-2, 0x1.4273f10284e7ep-1, 0x1.f31da703e63b5p-2, 0x1.c1900e6f83202p-1,
+0x1.94f82e2729f06p-1, 0x1.c8998b9b91331p-1, 0x1.34eb050a69d61p-2, 0x1.0cd0440219a09p-2,
+0x1.89429b4312853p-5, 0x1.9015b71b202b7p-2, 0x1.2402c61e48059p-1, 0x1.32eceb2265d9dp-4,
+0x1.6e91285add225p-1, 0x1.7c41ab72f8835p-3, 0x1.6b980e6ad7302p-1, 0x1.af102b935e205p-2,
+0x1.77a4057aef481p-2, 0x1.987d5a6730fabp-1, 0x1.2a3e1a16547c3p-1, 0x1.5fbd390abf7a7p-2,
+0x1.e9b23f4bd3648p-1, 0x1.d759b583aeb37p-6, 0x1.8f18caa31e319p-1, 0x1.6ab33336d5666p-1,
+0x1.ea2bf30fd457ep-1, 0x1.be6abd0b7cd58p-2, 0x1.122535fa244a7p-1, 0x1.31150bba622a1p-1,
+0x1.8ad8100315b02p-2, 0x1.2a96d2ea552dap-2, 0x1.8a75f1af14ebep-1, 0x1.7f676b4efecedp-1,
+0x1.d7bf5a77af7ebp-1, 0x1.08098a5a10131p-2, 0x1.40f779ba81eefp-1, 0x1.6cb7889ad96f1p-1,
+0x1.3279431264f28p-3, 0x1.db6cfc3fb6dap-1, 0x1.f31faa9fe63f5p-1, 0x1.94c9e9e32993dp-3,
+0x1.46efaf928ddf6p-2, 0x1.172270ba2e44ep-1, 0x1.17202fc22e406p-2, 0x1.20900202412p-5,
+0x1.7632db96ec65bp-1, 0x1.f728264bee505p-1, 0x1.d3222bd3a6445p-2, 0x1.9026f2a3204dep-4,
+0x1.8fa580af1f4bp-1, 0x1.3cf3000279e6p-5, 0x1.c3c6f5b3878dfp-2, 0x1.7957bffaf2af8p-1,
+0x1.144fed62289fep-4, 0x1.c3f115f387e23p-3, 0x1.c815e65b902bdp-2, 0x1.96be17832d7c3p-6,
+0x1.5031a402a0635p-1, 0x1.f6302927ec605p-1, 0x1.3dcafc767b96p-1, 0x1.59dac002b3b58p-5,
+0x1.16f725322dee5p-2, 0x1.9081dc432103cp-2, 0x1.950517532a0a3p-1, 0x1.8cebb43319d77p-3,
+0x1.4c45b34e988b6p-1, 0x1.abf9221357f24p-2, 0x1.cff275ab9fe4fp-1, 0x1.98e4041331c81p-1,
+0x1.62d31a92c5a63p-2, 0x1.c312204786244p-1, 0x1.fe167e8bfc2dp-1, 0x1.54e16512a9c2dp-1,
+0x1.b46921fb68d24p-2, 0x1.134d2cd2269a6p-2, 0x1.66ea6536cdd4dp-1, 0x1.419db242833b6p-3,
+0x1.019d796a033afp-2, 0x1.41edec7283dbep-3, 0x1.04d895ca09b13p-2, 0x1.0743d6020e87bp-5,
+0x1.912aac7322556p-3, 0x1.644fc5c2c89f9p-1, 0x1.89cbfd5b1398p-1, 0x1.0da9519a1b52ap-2,
+0x1.d54c0b3faa981p-1, 0x1.b75bc2136eb78p-3, 0x1.271533124e2a6p-2, 0x1.257daf3e4afb6p-1,
+0x1.901c66a32038dp-3, 0x1.d15595ffa2ab3p-1, 0x1.3b1b5b3e7636bp-1, 0x1.df055883be0abp-2,
+0x1.332d083a665a1p-2, 0x1.a040e51b4081dp-2, 0x1.52bd9952a57b3p-1, 0x1.e5dc376bcbb87p-1,
+0x1.a61d039b4c3ap-1, 0x1.22b00efa45602p-1, 0x1.7ec03b7afd807p-1, 0x1.5e1a4382bc348p-3,
+0x1.cb845e7b9708cp-2, 0x1.7cd6ba02f9ad7p-1, 0x1.ac67f5f358cffp-1, 0x1.bff6c03b7fed8p-1,
+0x1.9f541b033ea83p-7, 0x1.13525b2626a4bp-1, 0x1.05e2cc820bc5ap-5, 0x1.0e981a421d303p-2,
+0x1.63cdd646c79bbp-1, 0x1.2594ef624b29ep-2, 0x1.2f8095025f013p-2, 0x1.c81881639031p-1,
+0x1.f71a3d73ee348p-1, 0x1.0c623ee218c48p-4, 0x1.3bb4a8b277695p-3, 0x1.cc6648af98cc9p-1,
+0x1.1ec670c23d8cep-2, 0x1.c4ef876b89df1p-2, 0x1.e3c7efd3c78fep-2, 0x1.e6d4a41bcda95p-2,
+0x1.679ab362cf356p-2, 0x1.67fa9922cff53p-4, 0x1.e2ecfe4fc5dap-1, 0x1.4d63ddce9ac7cp-1,
+0x1.fa3f8b6bf47f1p-2, 0x1.35aa979e6b553p-1, 0x1.3340153666803p-1, 0x1.4679929a8cf32p-2,
+0x1.616a9a52c2d53p-3, 0x1.6400a15ac8014p-2, 0x1.f586b45beb0d7p-2, 0x1.3e1cd5d27c39bp-1,
+0x1.76b85582ed70bp-4, 0x1.4e56a03a9cad4p-2, 0x1.fc272c13f84e6p-2, 0x1.aaa2d8e35545bp-4,
+0x1.ba7dab4774fb5p-1, 0x1.0e71c2d61ce38p-1, 0x1.7940d07af281ap-2, 0x1.1e4b818a3c97p-1,
+0x1.a13c3a8742787p-1, 0x1.5460b2bea8c16p-1, 0x1.ccc805d399901p-2, 0x1.985677f730acfp-1,
+0x1.75ecfa9aebd9fp-1, 0x1.35512d1a6aa26p-1, 0x1.64bcc0a2c9798p-1, 0x1.540cbf02a8198p-7,
+0x1.7c8f0cc2f91e2p-5, 0x1.5a82e222b505cp-3, 0x1.f1750a13e2ea1p-2, 0x1.972c95032e593p-2,
+0x1.0740175a0e803p-2, 0x1.b74f06ab6e9e1p-2, 0x1.8fa284c31f451p-5, 0x1.80bfd163017fap-1,
+0x1.1521af422a436p-5, 0x1.4c3a3d8698748p-1, 0x1.1fe4d5623fc9bp-4, 0x1.a6b306234d661p-3,
+0x1.fe3a8e33fc752p-1, 0x1.1ebff4da3d7ffp-1, 0x1.a7c9975f4f933p-1, 0x1.688cc702d1199p-4,
+0x1.c5eb44fb8bd69p-1, 0x1.4bba5aca9774bp-2, 0x1.8997cff3132fap-3, 0x1.8068f03f00d1ep-1,
+0x1.b44ef03b689dep-1, 0x1.1f065c3a3e0ccp-1, 0x1.3d68e38a7ad1cp-2, 0x1.558b2abeab165p-1,
+0x1.cd9c3be39b387p-3, 0x1.851874af0a30fp-1, 0x1.dbc34563b7869p-2, 0x1.e9540993d2a81p-1,
+0x1.74d3438ae9a68p-2, 0x1.4a798d4294f32p-3, 0x1.eea43c8fdd488p-1, 0x1.a465252b48ca5p-2,
+0x1.527e37b2a4fc7p-2, 0x1.cebd832b9d7bp-2, 0x1.9dc8dd173b91cp-1, 0x1.2cdf278a59be5p-1,
+0x1.c30644ef860c9p-1, 0x1.b6c305636d861p-1, 0x1.5b3df1d2b67bep-2, 0x1.d4585fe3a8b0cp-1,
+0x1.02fd42e605fa8p-1, 0x1.a3372733466e5p-2, 0x1.f0290b43e0521p-4, 0x1.0137d11a026fap-1,
+0x1.f05b8873e0b71p-1, 0x1.e5ceb8c7cb9d7p-1, 0x1.2e4969fa5c92dp-1, 0x1.b646cd6b6c8dap-1,
+0x1.1757cc5a2eafap-2, 0x1.90af5dfb215ecp-1, 0x1.36afbda66d5f8p-1, 0x1.ffd6b323ffad6p-4,
+0x1.5f6b7462bed6fp-2, 0x1.d5642f6baac86p-1, 0x1.958601272b0cp-1, 0x1.231cc92a46399p-1,
+0x1.5a7ca41ab4f95p-1, 0x1.06cf47aa0d9e9p-2, 0x1.0c70d2be18e1ap-1, 0x1.4e645dc29cc8cp-5,
+0x1.ac0c0e5358182p-2, 0x1.f62a1e93ec544p-2, 0x1.ce31b0e39c636p-2, 0x1.7f452302fe8a4p-1,
+0x1.e273d0e3c4e7ap-1, 0x1.09c36b0a1386dp-2, 0x1.58489512b0913p-2, 0x1.a57a15cf4af43p-1,
+0x1.dd25d743ba4bbp-4, 0x1.59c34376b3868p-1, 0x1.79d275aef3a4fp-1, 0x1.3ea1fdce7d44p-1,
+0x1.5af6b862b5ed7p-4, 0x1.b7d797176faf3p-1, 0x1.fece7723fd9cfp-4, 0x1.bba5f7c3774bfp-5,
+0x1.9da64fdf3b4cap-1, 0x1.6e2338e2dc467p-1, 0x1.d2012ceba4026p-1, 0x1.4a91b04295236p-4,
+0x1.fda52db3fb4a6p-2, 0x1.08b0ea8e1161dp-1, 0x1.a53431b34a686p-3, 0x1.ae88510b5d10ap-1,
+0x1.bc2a33f378546p-2, 0x1.fed30d93fda62p-1, 0x1.a34a346b46947p-2, 0x1.c48df083891bep-4,
+0x1.047562d208eacp-2, 0x1.de15ecf3bc2bep-1, 0x1.35e00fb26bc02p-3, 0x1.5840b892b0817p-1,
+0x1.b255f87364abfp-2, 0x1.3490dc626921cp-1, 0x1.af0bb7235e177p-2, 0x1.773d9a32ee7b3p-2,
+0x1.b97291e772e52p-1, 0x1.83aa261f07545p-1, 0x1.84638b9308c71p-3, 0x1.f5174ccfea2eap-1,
+0x1.badad32375b5ap-2, 0x1.daeb5893b5d6bp-1, 0x1.33b94a9e67729p-1, 0x1.08cc409e11988p-1,
+0x1.92c2efab2585ep-1, 0x1.73931982e7263p-1, 0x1.2486a01a490d4p-1, 0x1.30693f8660d28p-1,
+0x1.c36ca4c386d95p-2, 0x1.ed0f9a03da1f3p-2, 0x1.59bb758eb376fp-1, 0x1.e088e93bc111dp-1,
+0x1.ff38b793fe717p-1, 0x1.c30881fb8611p-1, 0x1.8f113a471e227p-1, 0x1.ba9ba31375374p-2,
+0x1.c1db8f8f83b72p-1, 0x1.82d951e305b2ap-3, 0x1.15df8f9a2bbf2p-1, 0x1.105903d220b2p-3,
+0x1.f6620b43ecc41p-4, 0x1.63579386c6af2p-1, 0x1.9c56f98738adfp-1, 0x1.17f73da22fee8p-1,
+0x1.2fd0dfca5fa1cp-2, 0x1.cf7354539ee6bp-3, 0x1.d3960abfa72c1p-1, 0x1.456c07328ad81p-3,
+0x1.f786fb33ef0dfp-1, 0x1.a5776d034aeeep-4, 0x1.19c93a6233927p-3, 0x1.a9e8c98353d19p-2,
+0x1.f348c683e6919p-6, 0x1.7a2b9936f4573p-1, 0x1.ddc0a55fbb815p-1, 0x1.a25d35df44ba7p-1,
+0x1.db7d6573b6fadp-2, 0x1.0247457a048e9p-1, 0x1.a58ceac34b19dp-2, 0x1.cf75051b9eea1p-1,
+0x1.f8cf127bf19e2p-1, 0x1.640f5762c81ebp-4, 0x1.affdee575ffbep-1, 0x1.f807ca0bf00f9p-1,
+0x1.ef8a6ce7df14ep-1, 0x1.3f0f289a7e1e5p-1, 0x1.aaab372355567p-2, 0x1.b165fc7362ccp-1,
+0x1.9fc57d133f8bp-1, 0x1.eb352b2bd66a5p-1, 0x1.f57c3d67eaf88p-1, 0x1.de91be7bbd238p-1,
+0x1.4e8cbeb29d198p-1, 0x1.91d336eb23a67p-1, 0x1.ed11f833da23fp-2, 0x1.e6752e97ccea6p-1,
+0x1.6c030002d806p-7, 0x1.943e0dab287c2p-2, 0x1.be8183037d03p-4, 0x1.fd370733fa6e1p-1,
+0x1.fd9be8f3fb37dp-2, 0x1.f909fbf3f213fp-3, 0x1.a456d7eb48adbp-2, 0x1.0e683aae1cd07p-1,
+0x1.f86e1833f0dc3p-1, 0x1.5fd822a2bfb04p-2, 0x1.618ae112c315cp-2, 0x1.cc5995d398b33p-2,
+0x1.b23356cb6466bp-1, 0x1.838be5eb0717dp-1, 0x1.6b43a00ad6874p-2, 0x1.ab0269475604dp-1,
+0x1.b00dd0d7601bap-1, 0x1.967ef9632cfdfp-3, 0x1.a30a334f46146p-1, 0x1.9f983dbb3f308p-1,
+0x1.a4aee6f3495ddp-1, 0x1.e17f3b83c2fe7p-3, 0x1.50fe3a2ea1fc7p-1, 0x1.4474640288e8dp-1,
+0x1.8e53e8231ca7dp-3, 0x1.467a77928cf4fp-1, 0x1.2306227a460c4p-1, 0x1.b221b8bb64437p-1,
+0x1.b09b5cfb6136cp-2, 0x1.98f1e90331e3dp-5, 0x1.9896e753312ddp-1, 0x1.bbfb74fb77f6fp-2,
+0x1.c75c4ad38eb89p-2, 0x1.d06717b3a0ce3p-1, 0x1.b669835b6cd3p-2, 0x1.e27c19e3c4f83p-1,
+0x1.3aa65ab2754cbp-3, 0x1.ad602da35ac06p-1, 0x1.e1c8a91bc3915p-2, 0x1.1c5ebb8238bd7p-3,
+0x1.7530fbd2ea61fp-3, 0x1.a1a9c51743539p-1, 0x1.2d4479ca5a88fp-1, 0x1.eff2b783dfe57p-6,
+0x1.2535aafe4a6b5p-1, 0x1.e2e649cfc5cc9p-1, 0x1.ba81ff037504p-1, 0x1.aa86f7a3550dfp-2,
+0x1.2218209244304p-3, 0x1.5d8c3252bb186p-1, 0x1.d36ee623a6dddp-3, 0x1.ed34ef17da69ep-1,
+0x1.d5ec0133abd8p-1, 0x1.c5d9f3b78bb3ep-1, 0x1.31a953166352ap-1, 0x1.cc07d9c3980fbp-4,
+0x1.0c546b4a18a8dp-1, 0x1.52bdd632a57bbp-3, 0x1.eba2b3f7d7456p-1, 0x1.e4a219c7c9443p-1,
+0x1.b8fa508371f4ap-3, 0x1.84399b4708733p-1, 0x1.853fa8830a7f5p-2, 0x1.51ecb98aa3d97p-1,
+0x1.54a0b2f6a9416p-1, 0x1.9dd495ef3ba93p-1, 0x1.3468d36a68d1ap-1, 0x1.a34a49a746949p-1,
+0x1.4b34c39296698p-1, 0x1.2a693fa254d28p-4, 0x1.ea61f887d4c3fp-1, 0x1.a88102875102p-1,
+0x1.c6f6ed0b8dedep-1, 0x1.17a6724e2f4cep-1, 0x1.b800984370013p-1, 0x1.d859300bb0b26p-2,
+0x1.f519783bea32fp-2, 0x1.72829746e5053p-1, 0x1.c17013d782e02p-1, 0x1.4312c44286259p-1,
+0x1.a01d932b403b2p-2, 0x1.b25e6ae364bcdp-4, 0x1.3047b35a608f6p-1, 0x1.4bf5958a97eb3p-2,
+0x1.fc25c117f84b8p-1, 0x1.87c419b30f883p-3, 0x1.bef78bfb7def1p-2, 0x1.087a2c5e10f46p-1,
+0x1.6d40f7fada81fp-2, 0x1.963cf3e32c79ep-2, 0x1.da388c43b4712p-2, 0x1.24df101e49be2p-1,
+0x1.3d6054d27ac0bp-3, 0x1.afbc1a635f783p-1, 0x1.db2f2693b65e5p-3, 0x1.a3f8c82f47f19p-1,
+0x1.4d90b04e9b216p-1, 0x1.ab349d0f56694p-1, 0x1.474311d28e862p-1, 0x1.318ae7ba6315dp-2,
+0x1.d081c503a1039p-1, 0x1.31a50a56634a1p-1, 0x1.0519d9820a33bp-3, 0x1.9778b20b2ef16p-1,
+0x1.252df2824a5bep-3, 0x1.f9470ea7f28e2p-1, 0x1.074a941a0e953p-2, 0x1.43d838be87b07p-1,
+0x1.6bc9a5ead7935p-1, 0x1.1455778228aafp-3, 0x1.0dd5fa021babfp-2, 0x1.dec37be3bd86fp-4,
+0x1.ed84acf3db096p-3, 0x1.b732b05b6e656p-1, 0x1.c3a67483874cfp-2, 0x1.de1bb143bc376p-3,
+0x1.923b6c432476ep-5, 0x1.c14f003f829ep-1, 0x1.800118af00023p-1, 0x1.9f8865833f10dp-2,
+0x1.18daf46231b5fp-2, 0x1.b4757b3368eafp-3, 0x1.f4a342dfe9468p-1, 0x1.b78b1ecb6f164p-2,
+0x1.cd9792c39b2f2p-5, 0x1.adbc32035b786p-3, 0x1.fef95e43fdf2cp-3, 0x1.6a6a297ed4d45p-1,
+0x1.6a3a98c2d4753p-5, 0x1.c70169638e02dp-1, 0x1.97ceac032f9d6p-8, 0x1.e7256e8fce4aep-1,
+0x1.f14ce76be299dp-2, 0x1.11d84ef223b0ap-3, 0x1.7e9e2096fd3c4p-1, 0x1.41f1f05a83e3ep-1,
+0x1.ede91303dbd22p-4, 0x1.21b55002436aap-8, 0x1.0b94522a1728ap-2, 0x1.a986c84b530d9p-1,
+0x1.1d6322023ac64p-3, 0x1.0cb52616196a5p-1, 0x1.e55f37c7cabe7p-1, 0x1.8573e7830ae7dp-2,
+0x1.87cfacdb0f9f6p-2, 0x1.8e64e40b1cc9dp-2, 0x1.3a40e0127481cp-1, 0x1.ba171a6b742e3p-2,
+0x1.1102e4822205dp-2, 0x1.7483f182e907ep-2, 0x1.accfbff7599f8p-1, 0x1.14eeec7229ddep-1,
+0x1.275f578e4ebebp-1, 0x1.a17302d742e6p-1, 0x1.f0b47bdbe168fp-1, 0x1.4438d0be8871ap-1,
+0x1.9c41ea833883dp-6, 0x1.c1cb4da38396ap-3, 0x1.5d45f472ba8bfp-2, 0x1.1c2dc722385b9p-4,
+0x1.bba1e6637743dp-4, 0x1.63a52f22c74a6p-2, 0x1.5564ee02aac9ep-6, 0x1.301ab08260356p-1,
+0x1.ec91569bd922bp-2, 0x1.8949480b12929p-1, 0x1.c83283639065p-3, 0x1.3405cdae680bap-1,
+0x1.8b8cb2ab17196p-1, 0x1.efad93e3df5b2p-2, 0x1.bb192beb76325p-2, 0x1.d2e57b2fa5cafp-1,
+0x1.22fc010245f8p-7, 0x1.85d79b730baf3p-2, 0x1.2b3eddda567dcp-2, 0x1.90e78ceb21cf2p-2,
+0x1.8a1e3fbf143c8p-1, 0x1.cfe04eff9fc0ap-1, 0x1.a57f53ab4afeap-1, 0x1.29fb200253f64p-5,
+0x1.14448f7a28892p-2, 0x1.524f139ea49e2p-1, 0x1.278e9e724f1d4p-1, 0x1.b1819f4f63034p-1,
+0x1.e7842ce3cf086p-2, 0x1.18431a4a30863p-1, 0x1.eb74e013d6e9cp-2, 0x1.00a425ca01485p-1,
+0x1.88b5edb7116bep-1, 0x1.a45d6a4348badp-1, 0x1.2429deae4853cp-1, 0x1.c02a2a8380545p-1,
+0x1.58c00742b1801p-3, 0x1.2ed5061e5daa1p-1, 0x1.e089b603c1137p-2, 0x1.4c78ad2298f16p-1,
+0x1.703c9c4ae0794p-2, 0x1.62517bdec4a2fp-1, 0x1.00fcf59a01f9fp-2, 0x1.0eac03421d58p-3,
+0x1.68a11732d1423p-3, 0x1.5e0b10c6bc162p-1, 0x1.6907bfc2d20f8p-5, 0x1.7ad0d742f5a1bp-3,
+0x1.07b6f3e20f6dep-4, 0x1.585fd5d2b0bfbp-2, 0x1.2727fc464e5p-1, 0x1.ab151e3f562a4p-1,
+0x1.f040e793e081dp-3, 0x1.994e9fdb329d4p-2, 0x1.bdb4d03f7b69ap-1, 0x1.063281a60c65p-1,
+0x1.ef6638c3decc7p-5, 0x1.ca86dd5b950dcp-2, 0x1.6f6841e2ded08p-2, 0x1.12b879fe2570fp-1,
+0x1.fd8688fbfb0d1p-1, 0x1.ad6e90fb5add2p-1, 0x1.35c9fc426b94p-5, 0x1.863c76af0c78fp-1,
+0x1.51cbfb3aa397fp-1, 0x1.37867e726f0dp-1, 0x1.4666a12e8ccd4p-1, 0x1.a7fbfd0b4ff8p-1,
+0x1.996e124332dc2p-3, 0x1.b55be1636ab7cp-4, 0x1.e8e95453d1d2bp-2, 0x1.1e79d2b63cf3ap-1,
+0x1.98fcf80b31f9fp-1, 0x1.74f324fae9e65p-1, 0x1.6224d386c449ap-1, 0x1.f3253dd7e64a8p-1,
+0x1.a5fc6b7b4bf8dp-2, 0x1.78b54f82f16aap-1, 0x1.4765cea28ecbap-3, 0x1.e7ea2873cfd45p-2,
+0x1.2729d3424e53ap-4, 0x1.79016feef202ep-1, 0x1.3e1464ea7c28dp-2, 0x1.41eae8a283d5dp-2,
+0x1.16a2ff722d46p-3, 0x1.72fc0ac2e5f81p-3, 0x1.a727f5f74e4ffp-1, 0x1.927c8da324f92p-3,
+0x1.420271628404ep-1, 0x1.7b705b92f6e0bp-3, 0x1.77579d66eeaf4p-1, 0x1.3f88fa5a7f11fp-1,
+0x1.8954fb8312a9fp-6, 0x1.8ab43d2f15688p-1, 0x1.8b8ae20b1715cp-2, 0x1.5e16a316bc2d4p-1,
+0x1.8475773b08eafp-2, 0x1.858246030b049p-6, 0x1.0612a01e0c254p-1, 0x1.2896402e512c8p-1,
+0x1.0b5e397216bc7p-3, 0x1.fa874a4bf50e9p-1, 0x1.1c404b9238809p-3, 0x1.dbd4866bb7a91p-1,
+0x1.6f7a6f42def4ep-1, 0x1.a934e66b5269dp-1, 0x1.cef9c43f9df39p-1, 0x1.09e293f213c52p-3,
+0x1.21ea35ee43d47p-1, 0x1.0699bf220d338p-4, 0x1.366db9366cdb7p-1, 0x1.46cf70568d9eep-1,
+0x1.99d4a7d733a95p-1, 0x1.d577ebafaaefdp-1, 0x1.e7c4e4a7cf89dp-1, 0x1.df7d67b3befadp-1,
+0x1.91b772e3236eep-4, 0x1.8eecda9b1dd9bp-1, 0x1.10722c6220e46p-3, 0x1.74395fbee872cp-1,
+0x1.edc8f17fdb91ep-1, 0x1.bb74287f76e85p-1, 0x1.6784b42acf097p-2, 0x1.fa13995bf4273p-1,
+0x1.462865aa8c50dp-1, 0x1.7987cb1af30f9p-1, 0x1.582a3c6eb0548p-1, 0x1.0c64290218c85p-6,
+0x1.85b3dd4b0b67cp-1, 0x1.78f37232f1e6ep-3, 0x1.30f9617661f2cp-1, 0x1.c88b6bab9116dp-1,
+0x1.63109b52c6213p-3, 0x1.7809745af012fp-1, 0x1.a45ff21348bfep-1, 0x1.c83e9617907d3p-1,
+0x1.213e5ac6427cbp-1, 0x1.7359b64ee6b37p-1, 0x1.56e76202adcecp-6, 0x1.0ca242c219448p-3,
+0x1.942cee372859ep-1, 0x1.4124f4468249fp-1, 0x1.89f8010713fp-1, 0x1.2e01960a5c033p-1,
+0x1.169cdff22d39cp-1, 0x1.71bce5aee379dp-1, 0x1.0d7efdba1afep-1, 0x1.48d3ce5291a7ap-1,
+0x1.00a9c04601538p-1, 0x1.519b88d2a3371p-1, 0x1.7a1a5c1af434cp-2, 0x1.dce5638bb9cacp-2,
+0x1.0d0fb14e1a1f6p-1, 0x1.70cf8826e19f1p-1, 0x1.d10c963ba2193p-2, 0x1.4ce05be299c0bp-3,
+0x1.d4aea67ba95d5p-2, 0x1.02c21e3205844p-3, 0x1.6e6ce102dcd9cp-3, 0x1.c02cc22380598p-3,
+0x1.3ddac8327bb59p-2, 0x1.8c9499b719293p-1, 0x1.c4b4e1838969cp-4, 0x1.ef6315dbdec63p-2,
+0x1.049e0e12093c2p-1, 0x1.dcf68e43b9ed2p-1, 0x1.7fe04202ffc08p-2, 0x1.2ee346a25dc69p-4,
+0x1.5050448ea0a09p-1, 0x1.954eb8232a9d7p-2, 0x1.a413e6134827dp-3, 0x1.c8fa658391f4dp-2,
+0x1.798a0a82f3141p-6, 0x1.f2fcfa8be5f9fp-1, 0x1.27ec8c824fd92p-5, 0x1.2269304a44d26p-1,
+0x1.64b9e036c973cp-1, 0x1.1ffdc6823ffb9p-1, 0x1.acf3fa6359e7fp-3, 0x1.958e81f32b1dp-3,
+0x1.c6653d438cca8p-3, 0x1.284a2ca650946p-1, 0x1.53d65242a7acap-1, 0x1.7ea900a2fd52p-1,
+0x1.323369926466dp-2, 0x1.e2e4eae3c5c9dp-4, 0x1.d1e1179ba3c23p-1, 0x1.8371080b06e21p-1,
+0x1.f43493a3e8692p-3, 0x1.6be27ec2d7c5p-4, 0x1.f37c3893e6f87p-1, 0x1.1bfa890237f51p-1,
+0x1.ba10e98f7421dp-1, 0x1.6096a602c12d5p-4, 0x1.3ac13ec275828p-5, 0x1.7d5def3afabbep-2,
+0x1.212c60024258cp-6, 0x1.a73869db4e70dp-2, 0x1.c916c0e3922d8p-2, 0x1.5959a78eb2b35p-1,
+0x1.9e4390ff3c872p-1, 0x1.4d9059f69b20bp-1, 0x1.eeb6d283dd6dap-4, 0x1.aa0fe157541fcp-1,
+0x1.408d5482811abp-1, 0x1.41568c6282ad2p-3, 0x1.98f2233b31e44p-2, 0x1.4a8e696a951cdp-2,
+0x1.7053699ee0a6dp-1, 0x1.37b610366f6c2p-1, 0x1.0aaad5321555bp-1, 0x1.e1ecb8efc3d97p-1,
+0x1.8000f3630001ep-3, 0x1.7a049dc2f4094p-3, 0x1.6095b98ec12b7p-1, 0x1.f233e34be467cp-2,
+0x1.35bb89a26b771p-2, 0x1.3276d12664edap-1, 0x1.f22be6b3e457dp-3, 0x1.17eae9ba2fd5dp-1,
+0x1.5ff320febfe64p-1, 0x1.c01cc8f380399p-3, 0x1.9f2b95e33e573p-4, 0x1.1a040a8e34081p-1,
+0x1.38340dfa70682p-2, 0x1.1e461aa23c8c3p-3, 0x1.d8b3022bb166p-1, 0x1.4a46d3fa948dap-2,
+0x1.1b2dbb9a365b7p-1, 0x1.7a7cc53af4f99p-2, 0x1.fe7d118bfcfa2p-1, 0x1.72e2992ae5c53p-2,
+0x1.59d79202b3af2p-6, 0x1.e29f5ec3c53ecp-4, 0x1.8e04b7a31c097p-3, 0x1.4b5c111296b82p-1,
+0x1.19531dea32a64p-2, 0x1.2ffa3f865ff48p-1, 0x1.f0a345cbe1469p-1, 0x1.fcfcf893f9f9fp-1,
+0x1.9ec13ee33d828p-3, 0x1.f69c35f3ed387p-2, 0x1.dee9b17fbdd36p-1, 0x1.8f61192b1ec23p-2,
+0x1.59cf426eb39e8p-1, 0x1.3f7f6b0e7efedp-1, 0x1.c0ca7e3b8195p-1, 0x1.f4ad073fe95a1p-1,
+0x1.c7d8f0c38fb1ep-3, 0x1.eaabbf23d5578p-4, 0x1.0c97f0f6192fep-1, 0x1.d1e95d33a3d2cp-1,
+0x1.5ab95442b572bp-2, 0x1.407d63b280facp-1, 0x1.d7dacf7bafb5ap-2, 0x1.4976b11e92ed6p-1,
+0x1.880eea5f101ddp-1, 0x1.8940d3cb1281ap-2, 0x1.ee9a1b1bdd343p-1, 0x1.46794bea8cf29p-2,
+0x1.81decc8303bdap-1, 0x1.ed172ca3da2e6p-1, 0x1.5cadf28ab95bep-1, 0x1.8cad8917195b1p-1,
+0x1.4b58c3e296b18p-4, 0x1.c02f2077805e4p-1, 0x1.b013344b60267p-2, 0x1.6c294ee2d852ap-2,
+0x1.e052bff3c0a58p-2, 0x1.9159bfdb22b38p-2, 0x1.66234002cc468p-2, 0x1.57d9afb6afb36p-1,
+0x1.c3fafaeb87f5fp-1, 0x1.23f6a2fa47ed4p-2, 0x1.f8a3c483f1479p-5, 0x1.1dca3d563b948p-1,
+0x1.d17abc8ba2f58p-1, 0x1.e054ba83c0a97p-1, 0x1.1277449224ee9p-1, 0x1.0dc3e2f21b87cp-3,
+0x1.daa32643b5465p-5, 0x1.f0f35843e1e6bp-5, 0x1.55a55ec2ab4acp-5, 0x1.960db90b2c1b7p-2,
+0x1.5f8c993abf193p-1, 0x1.0147bdaa028f8p-1, 0x1.47d8da028fb1bp-5, 0x1.cf37072b9e6e1p-2,
+0x1.c5e8278f8bd05p-1, 0x1.8bd45c0317a8cp-8, 0x1.8ad8298b15b05p-1, 0x1.47c6f4128f8dfp-1,
+0x1.f02ed55be05dbp-1, 0x1.cf0c38239e187p-2, 0x1.a8e8fa4b51d1fp-2, 0x1.999edd43333dcp-5,
+0x1.4f6a790a9ed4fp-2, 0x1.ac7e174b58fc3p-1, 0x1.9f5d2a8b3eba5p-2, 0x1.97de9c832fbd4p-1,
+0x1.d4abdce3a957cp-3, 0x1.82c0354705807p-1, 0x1.df70986bbee13p-2, 0x1.c92f9103925f2p-4,
+0x1.4bb86c429770ep-5, 0x1.0f42887e1e851p-1, 0x1.56f02f76ade06p-1, 0x1.e636434fcc6c8p-1,
+0x1.df2e85fbbe5d1p-2, 0x1.a59dd0134b3bap-3, 0x1.4d39e0429a73cp-4, 0x1.0d4175621a82fp-1,
+0x1.10ed531221daap-2, 0x1.f80c8fa3f0192p-4, 0x1.d84851e7b090ap-1, 0x1.e80342c3d0068p-1,
+0x1.40494f9e8092ap-1, 0x1.ecc5df87d98bcp-1, 0x1.9f3d8cab3e7b2p-2, 0x1.0631772e0c62fp-1,
+0x1.efdd883fdfbb1p-1, 0x1.69dbbf72d3b78p-3, 0x1.37e1acf26fc36p-3, 0x1.e00c5d97c018cp-1,
+0x1.41fd0bf283fa1p-1, 0x1.226ce86244d9dp-1, 0x1.f9a64b6ff34c9p-1, 0x1.e9b24877d3649p-1,
+0x1.9dd5ff533bacp-2, 0x1.92a9c16325538p-2, 0x1.8190e4f70321dp-1, 0x1.4415f6e2882bfp-1,
+0x1.305457e260a8bp-3, 0x1.c524c4a38a499p-3, 0x1.7d3be902fa77dp-1, 0x1.834272f30684ep-3,
+0x1.808bb9a701177p-1, 0x1.a85830eb50b06p-2, 0x1.1c1b80223837p-3, 0x1.c08bf2838117ep-3,
+0x1.3d938c7a7b272p-1, 0x1.c2b870538570ep-3, 0x1.7d647202fac8ep-1, 0x1.c60a36078c147p-1,
+0x1.5f5f5c12bebecp-2, 0x1.55acc3e6ab598p-1, 0x1.ae0d78c75c1afp-1, 0x1.eff8fdabdff2p-1,
+0x1.4272a36a84e54p-1, 0x1.f6b0fc73ed62p-3, 0x1.ec54e9abd8a9dp-2, 0x1.32502ba664a05p-1,
+0x1.b0465df3608ccp-2, 0x1.4422e0128845cp-1, 0x1.125c893e24b91p-1, 0x1.a203ae8344076p-5,
+0x1.9a3f21c3347e4p-3, 0x1.0c02d4aa1805bp-1, 0x1.e941b003d2836p-8, 0x1.357ac81a6af59p-1,
+0x1.d557b55baaaf7p-1, 0x1.856368570ac6dp-1, 0x1.e642fbf3cc85fp-3, 0x1.0b665a8216ccbp-4,
+0x1.f6ac9983ed593p-1, 0x1.f6cca7ffed995p-1, 0x1.047ad01a08f5ap-2, 0x1.77385326ee70ap-1,
+0x1.95f180eb2be3p-2, 0x1.9288903325112p-2, 0x1.e75b4fcbceb6ap-1, 0x1.11899d8223134p-6,
+0x1.39f2642e73e4dp-1, 0x1.64bfc1cac97f8p-1, 0x1.ce9682f39d2dp-1, 0x1.e9a21237d3442p-1,
+0x1.74d90b62e9b21p-2, 0x1.7ca3fbbaf947fp-1, 0x1.d99b0fdfb3362p-1, 0x1.fcdf291bf9be5p-1,
+0x1.fa503ad7f4a07p-1, 0x1.9f8b09633f161p-2, 0x1.2f2f54c25e5ebp-1, 0x1.a4e6d39b49cdap-2,
+0x1.3e864c027d0cap-5, 0x1.062f77f20c5efp-3, 0x1.d9274973b24e9p-2, 0x1.e9e0b4c3d3c17p-3,
+0x1.4d8eb2a69b1d6p-1, 0x1.e0cc5033c198ap-2, 0x1.aff2f54f5fe5fp-1, 0x1.22e667fe45ccdp-1,
+0x1.d72641b3ae4c8p-3, 0x1.4c1da242983b4p-4, 0x1.4453335288a66p-1, 0x1.b1d8a7b363b15p-3,
+0x1.0282e2220505cp-4, 0x1.c6909b5f8d213p-1, 0x1.e3ae7d17c75dp-1, 0x1.d6923973ad247p-2,
+0x1.1fa9c6ea3f539p-2, 0x1.cb09ccdf9613ap-1, 0x1.e7aad353cf55ap-2, 0x1.c9c747a3938e9p-1,
+0x1.2fc98ea65f932p-1, 0x1.84d7d93309afbp-2, 0x1.b36959db66d2bp-1, 0x1.ea361457d46c3p-1,
+0x1.f87f4283f0fe8p-4, 0x1.8d0469b71a08dp-1, 0x1.e7153d73ce2a8p-1, 0x1.cb01192396023p-4,
+0x1.7327b9a2e64f7p-3, 0x1.164492322c892p-1, 0x1.0bd38cf617a72p-1, 0x1.c2c94ca38592ap-3,
+0x1.57d0702eafa0ep-1, 0x1.f86731aff0ce6p-1, 0x1.d65500bbacaap-2, 0x1.4abe45a2957c9p-2,
+0x1.d19ab38ba3356p-2, 0x1.363aeb526c75dp-2, 0x1.c8458acf908b1p-1, 0x1.5e96ea32bd2ddp-1,
+0x1.894253e31284ap-2, 0x1.0c98be1e19318p-1, 0x1.cb0d1423961a3p-1, 0x1.c9e30c6b93c62p-2,
+0x1.a652b2fb4ca56p-2, 0x1.aebb91375d772p-1, 0x1.d03aa2f3a0754p-1, 0x1.62fe3cf2c5fc8p-1,
+0x1.79c55e12f38acp-1, 0x1.8820193310403p-2, 0x1.2cc58496598b1p-1, 0x1.531dd96aa63bbp-2,
+0x1.867bf9330cf7fp-1, 0x1.c05dbcdb80bb8p-2, 0x1.278a021a4f14p-2, 0x1.c58be1878b17cp-1,
+0x1.b4cd2083699a4p-3, 0x1.eb68f9f3d6d1fp-3, 0x1.feec04abfdd81p-1, 0x1.93fa6d1327f4ep-2,
+0x1.911ed0af223dap-1, 0x1.0abf919e157f2p-1, 0x1.3aaf89b6755f1p-1, 0x1.d1de81b3a3bdp-2,
+0x1.0326c34a064d8p-1, 0x1.2ed050825da0ap-4, 0x1.8e4e63ab1c9ccp-1, 0x1.ebf41d0fd7e84p-1,
+0x1.81eeff7303dep-2, 0x1.5693ee76ad27ep-1, 0x1.4a8b074295161p-1, 0x1.8598a9ab0b315p-1,
+0x1.8cb2b25319656p-3, 0x1.15981b622b303p-1, 0x1.aa28bf7354518p-3, 0x1.365606126cac1p-1,
+0x1.88a7592b114ebp-2, 0x1.d6269663ac4d3p-4, 0x1.32a8860265511p-2, 0x1.f0c85523e190bp-4,
+0x1.fda9becbfb538p-2, 0x1.c619c7978c339p-1, 0x1.cf4feeb39e9fep-2, 0x1.0aa1b13215436p-2,
+0x1.4c914c029922ap-2, 0x1.7b6cf866f6d9fp-1, 0x1.2b72e87256e5dp-3, 0x1.137bee2626f7ep-1,
+0x1.f64736e3ec8e7p-1, 0x1.2722fb124e45fp-3, 0x1.dd7924afbaf25p-1, 0x1.8766078f0ecc1p-1,
+0x1.54885066a910ap-1, 0x1.1828ae6230516p-1, 0x1.c155219382aa4p-3, 0x1.5ebc4eb2bd78ap-3,
+0x1.3e02b8727c057p-1, 0x1.fea3ac0ffd476p-1, 0x1.0e8cc2f21d198p-3, 0x1.fefa382bfdf47p-1,
+0x1.55379a86aa6f3p-1, 0x1.8e2e37ff1c5c7p-1, 0x1.8492e1d30925cp-1, 0x1.b864471b70c89p-1,
+0x1.478ca6ba8f195p-2, 0x1.ef1d11b3de3a2p-1, 0x1.dd749a53bae93p-2, 0x1.6819fff2d034p-1,
+0x1.4f0f23e29e1e4p-4, 0x1.880e902b101d2p-1, 0x1.a6330a974c661p-1, 0x1.28b6c3e6516d8p-1,
+0x1.4e2857c29c50bp-1, 0x1.1bb603da376cp-2, 0x1.ae079c7f5c0f4p-1, 0x1.f470fdc3e8e2p-1,
+0x1.28ff4a8251fe9p-6, 0x1.f8e4569bf1c8bp-1, 0x1.07ecebe60fd9dp-1, 0x1.ff8f3137ff1e6p-1,
+0x1.0ab455721568bp-3, 0x1.cacc212b95984p-2, 0x1.86f538c70dea7p-1, 0x1.973565c32e6adp-1,
+0x1.fd8ebef7fb1d8p-1, 0x1.f74a812bee95p-1, 0x1.eee47973ddc8fp-1, 0x1.3b91776a7722fp-1,
+0x1.f5ee2d3bebdc6p-1, 0x1.943d5163287aap-4, 0x1.3a8baf9275176p-1, 0x1.4b25c7be964b9p-1,
+0x1.c0b5e22b816bcp-1, 0x1.7e3d22cafc7a4p-2, 0x1.038a0ed607142p-1, 0x1.91f0d61323e1bp-3,
+0x1.5c77462ab8ee9p-2, 0x1.f2445bffe488bp-1, 0x1.cc963577992c7p-1, 0x1.b03b0f2360762p-2,
+0x1.7a52ec26f4a5ep-1, 0x1.72c9400ae5928p-1, 0x1.a896e803512ddp-10, 0x1.90f687cb21ed1p-2,
+0x1.4883e8029107dp-10, 0x1.aedbe7f35db7dp-1, 0x1.79d88352f3b1p-2, 0x1.3d8789027b0f1p-6,
+0x1.a7c03e8b4f808p-1, 0x1.c4d92d8f89b26p-1, 0x1.2f6db0025edb6p-6, 0x1.ea6d53ebd4daap-1,
+0x1.547e7c42a8fdp-2, 0x1.9070a64720e15p-1, 0x1.81a2b9ab03457p-1, 0x1.4f9bfa329f37fp-2,
+0x1.87bb276f0f765p-1, 0x1.7087331ae10e6p-1, 0x1.e35f7483c6befp-1, 0x1.7da954a6fb52bp-1,
+0x1.a30edd47461dcp-1, 0x1.1deb24123bd65p-1, 0x1.919e38c3233c7p-2, 0x1.63c4bf6ec7898p-1,
+0x1.dd09b577ba137p-1, 0x1.cc592b3798b25p-1, 0x1.c840f4f39081fp-1, 0x1.168ab1122d156p-2,
+0x1.be9d87337d3b1p-1, 0x1.94d72a6729ae5p-1, 0x1.6362e01ec6c5cp-1, 0x1.38f0735a71e0ep-1,
+0x1.07a06a6e0f40dp-1, 0x1.64372b92c86e5p-1, 0x1.6bb73c02d76e8p-9, 0x1.0844ac6610896p-1,
+0x1.1313138626262p-1, 0x1.7caff1caf95fep-2, 0x1.1230e8ae2461dp-1, 0x1.75a6a41aeb4d5p-2,
+0x1.06624cea0cc4ap-2, 0x1.1bac562e3758bp-1, 0x1.4a814bea95029p-2, 0x1.2d7064965ae0dp-1,
+0x1.5839f8e2b073fp-2, 0x1.371afd026e36p-4, 0x1.d53e61afaa7ccp-1, 0x1.9ec11f033d824p-4,
+0x1.976a92bb2ed52p-1, 0x1.b89dd62f713bbp-1, 0x1.b18178876302fp-1, 0x1.3a79700274f2ep-1,
+0x1.ad11f4835a23fp-2, 0x1.e94253a3d284ap-3, 0x1.3c7c5eda78f8cp-2, 0x1.67255f6ace4acp-2,
+0x1.1aa70072354ep-3, 0x1.99fc918333f92p-3, 0x1.3ed808427db01p-1, 0x1.51d1d402a3a3bp-7,
+0x1.fb564ec7f6acap-1, 0x1.4475d0ba88ebap-2, 0x1.3e37baaa7c6f7p-1, 0x1.02f6b93605ed7p-1,
+0x1.9c84fb033909fp-7, 0x1.3fa371e67f46ep-1, 0x1.676cb302ced96p-6, 0x1.19852772330a5p-1,
+0x1.fdfb6acffbf6dp-1, 0x1.1d6c4e463ad8ap-1, 0x1.d4587983a8b0fp-1, 0x1.0259228204b24p-2,
+0x1.c8c523a3918a4p-4, 0x1.e6647dd3ccc9p-3, 0x1.ae9cf5d75d39fp-1, 0x1.ca6b41cb94d68p-2,
+0x1.40f8fe2a81f2p-2, 0x1.83db578707b6bp-1, 0x1.190dc4c6321b9p-1, 0x1.bf388e837e712p-4,
+0x1.3c792db278f26p-1, 0x1.951e7a9b2a3cfp-2, 0x1.726081d2e4c1p-1, 0x1.30227f026045p-5,
+0x1.44dfd23689bfap-1, 0x1.09eb13c213d62p-5, 0x1.8d29af531a536p-2, 0x1.8b89925317132p-1,
+0x1.dc775673b8eebp-3, 0x1.5b37fa02b66ffp-7, 0x1.90d0d9a321a1bp-1, 0x1.c9d0919393a12p-3,
+0x1.4f4f908a9e9f2p-2, 0x1.9e1128933c225p-2, 0x1.756add9aead5cp-1, 0x1.5c33b862b8677p-2,
+0x1.d580c603ab019p-6, 0x1.80a64333014c8p-1, 0x1.c79f03a78f3ep-1, 0x1.94ee1f8329dc4p-6,
+0x1.3c2522ea784a4p-2, 0x1.9bf77d2737efp-1, 0x1.1ba8047a37501p-2, 0x1.ae566bd35cacdp-2,
+0x1.5909c982b2139p-5, 0x1.e387c083c70f8p-4, 0x1.bc60d6d378c1bp-1, 0x1.6c1a3762d8347p-2,
+0x1.c04c4f978098ap-1, 0x1.aadd372b55ba7p-2, 0x1.dbe85b03b7d0bp-2, 0x1.f98afa93f315fp-2,
+0x1.9ffdd8e33ffbbp-1, 0x1.8152bd4302a58p-3, 0x1.0fc7a53a1f8f5p-1, 0x1.c9bb562b9376bp-2,
+0x1.c3cd8233879bp-3, 0x1.d65c7ce3acb9p-1, 0x1.c19cf5a38339fp-3, 0x1.d0226c5ba044ep-2,
+0x1.dbc95ccbb792cp-1, 0x1.38170802702e1p-9, 0x1.5a855a92b50abp-1, 0x1.06e24a1a0dc49p-2,
+0x1.a08156ab4102bp-2, 0x1.9fe070533fc0ep-2, 0x1.318b01426316p-1, 0x1.bdd9630b7bb2cp-2,
+0x1.4259ed6284b3ep-3, 0x1.f25409cbe4a81p-2, 0x1.d7284503ae509p-2, 0x1.dd52199bbaa43p-2,
+0x1.2a43041254861p-2, 0x1.796824bef2d05p-1, 0x1.c5d442bb8ba88p-1, 0x1.55643d42aac88p-2,
+0x1.b5d91ccf6bb24p-1, 0x1.8235198b046a3p-1, 0x1.60bf3a52c17e7p-1, 0x1.76256c66ec4aep-1,
+0x1.5e8ed472bd1dbp-3, 0x1.3acd9f42759b4p-3, 0x1.cbaba6b397575p-3, 0x1.f7a18e03ef432p-1,
+0x1.5e102e42bc206p-2, 0x1.82b28ee705652p-1, 0x1.b8fe722b71fcep-2, 0x1.1ffb77b23ff6fp-1,
+0x1.590f0bcab21e1p-1, 0x1.4ce6767e99ccfp-1, 0x1.0195bb82032b7p-6, 0x1.34d8689269b0dp-1,
+0x1.4e1e8d8a9c3d2p-1, 0x1.6292086ec5241p-1, 0x1.b8498da370932p-1, 0x1.e5f38dc3cbe72p-5,
+0x1.941204a328241p-4, 0x1.d3a91dc3a7524p-2, 0x1.fa97d4c3f52fbp-2, 0x1.063177da0c62fp-2,
+0x1.e2fe93c7c5fd2p-1, 0x1.e8e00ce3d1c02p-1, 0x1.71c1c8bae3839p-1, 0x1.e0805733c100bp-3,
+0x1.6248319ec4906p-1, 0x1.37960b726f2c1p-1, 0x1.22d2346e45a47p-1, 0x1.18214e6a3042ap-1,
+0x1.739649f2e72c9p-2, 0x1.0722dd820e45cp-2, 0x1.1c8d759a391afp-2, 0x1.116eda1a22ddbp-1,
+0x1.a489ad2349136p-2, 0x1.0131a47a02635p-1, 0x1.0910681a1220dp-1, 0x1.814cedb70299ep-1,
+0x1.07c866c20f90dp-2, 0x1.e58fa12fcb1f4p-1, 0x1.4290caca85219p-2, 0x1.dcf33f2bb9e68p-1,
+0x1.327617ae64ec3p-1, 0x1.52aa2682a5545p-2, 0x1.11cba7ba23975p-1, 0x1.01294a6a02529p-2,
+0x1.7ce37582f9c6fp-6, 0x1.942a6ab32854dp-2, 0x1.3de7bc227bcf8p-2, 0x1.f34ae203e695cp-4,
+0x1.b3e9c43b67d39p-1, 0x1.9c3fc873387f9p-1, 0x1.8304305b06086p-2, 0x1.96e857ff2dd0bp-1,
+0x1.851fd5530a3fbp-1, 0x1.9a1f0723343e1p-4, 0x1.e10db903c21b7p-6, 0x1.ced00ddb9da02p-2,
+0x1.6ad9ec5ad5b3ep-1, 0x1.31daa23a63b54p-1, 0x1.ff895557ff12bp-1, 0x1.25288a824a511p-4,
+0x1.b56c10fb6ad82p-1, 0x1.1ba0204a37404p-2, 0x1.3613eb6a6c27dp-1, 0x1.0f61cf121ec3ap-2,
+0x1.8f01b49f1e037p-1, 0x1.f9229c03f2454p-4, 0x1.1fbaa7823f755p-6, 0x1.2e5e7fc25cbdp-5,
+0x1.259fa5824b3f5p-4, 0x1.548c7542a918fp-2, 0x1.efd92727dfb25p-1, 0x1.572a0c5eae542p-1,
+0x1.539b4de2a736ap-1, 0x1.01a4cee20349ap-1, 0x1.d7beb193af7d6p-1, 0x1.5f82698ebf04dp-1,
+0x1.cbba043b97741p-1, 0x1.daca3e83b5948p-3, 0x1.9debc5cf3bd79p-1, 0x1.7fa3c876ff479p-1,
+0x1.2f2581025e4bp-5, 0x1.7db777e2fb6efp-3, 0x1.168c20722d184p-1, 0x1.98122d6330246p-1,
+0x1.25637dc24ac7p-2, 0x1.25948e3e4b292p-1, 0x1.fde8d133fbd1ap-3, 0x1.fd8bab3bfb175p-1,
+0x1.5dbcc1d2bb798p-3, 0x1.fc0e2683f81c5p-3, 0x1.1185e442230bdp-4, 0x1.9b682d8336d06p-6,
+0x1.0cd399c619a73p-1, 0x1.5844a7f6b0895p-1, 0x1.291851ea5230ap-2, 0x1.37aa9cca6f554p-2,
+0x1.9768fb772ed1fp-1, 0x1.3b13fc6a7628p-2, 0x1.5d766cc2baecep-2, 0x1.bc1cf0277839ep-1,
+0x1.47d038d68fa07p-1, 0x1.3d28bb127a517p-2, 0x1.1346fc82268ep-1, 0x1.36d70d726dae2p-2,
+0x1.a0392c6b40726p-1, 0x1.d60b5c23ac16cp-2, 0x1.faedf047f5dbep-1, 0x1.6bf330a2d7e66p-1,
+0x1.61b83db2c3708p-1, 0x1.98d9b61731b37p-1, 0x1.d72df22bae5bep-2, 0x1.74aa95c2e9553p-1,
+0x1.f847940ff08f3p-1, 0x1.118cc40223199p-8, 0x1.0cbcc32219798p-1, 0x1.15f2a5da2be55p-2,
+0x1.27b7a7c64f6f5p-1, 0x1.8c36f76f186dfp-1, 0x1.1109fc4a2214p-2, 0x1.7f26d83afe4dbp-1,
+0x1.67502202cea04p-6, 0x1.556b7562aad6fp-2, 0x1.8c0219a718043p-1, 0x1.180e1ad6301c3p-1,
+0x1.7d315202fa62ap-8, 0x1.047214c208e43p-4, 0x1.b3e3693b67c6dp-1, 0x1.9a635e1b34c6cp-1,
+0x1.7c30819af861p-2, 0x1.8a7a7e7314f5p-3, 0x1.56804e42ad00ap-1, 0x1.7a1e6902f43cdp-7,
+0x1.0132fd260266p-1, 0x1.a71d2b034e3a5p-3, 0x1.42a800ba855p-2, 0x1.42d8531a85b0ap-2,
+0x1.54ccf8d6a999fp-1, 0x1.3883e1427107cp-2, 0x1.abeb458357d69p-6, 0x1.6d0a6d0ada14ep-2,
+0x1.a8dd35a351ba7p-4, 0x1.f1eca68be3d95p-2, 0x1.597e6242b2fccp-4, 0x1.6b19d622d633bp-4,
+0x1.f632d99bec65bp-2, 0x1.37ec8f6a6fd92p-1, 0x1.70b91b62e1723p-2, 0x1.1688a4822d115p-4,
+0x1.88470db3108e2p-2, 0x1.40e18bda81c31p-1, 0x1.a1f7eccb43efep-1, 0x1.9ebc0fd33d782p-2,
+0x1.eb97468bd72e9p-1, 0x1.2dfa066e5bf41p-1, 0x1.e76c22bfced84p-1, 0x1.ee91a92fdd235p-1,
+0x1.4e8849069d109p-1, 0x1.9b4f8bfb369f1p-1, 0x1.88f5074711ea1p-1, 0x1.94113a8328227p-6,
+0x1.fdee2b97fbdc5p-1, 0x1.beeaab0b7dd55p-2, 0x1.2890378251207p-5, 0x1.fe425173fc84ap-2,
+0x1.493ca04a92794p-1, 0x1.67ba07aacf741p-2, 0x1.a08d5247411aap-1, 0x1.3c13323a78266p-2,
+0x1.501ef476a03dfp-1, 0x1.adecac735bd96p-1, 0x1.548ecfa2a91dap-1, 0x1.853a9b2f0a753p-1,
+0x1.4dc5ff6a9b8cp-2, 0x1.7fbe9beaff7d3p-1, 0x1.b29dd5f3653bbp-1, 0x1.a1fc6c8343f8ep-1,
+0x1.6f5656aadeacbp-2, 0x1.abe98e8357d32p-3, 0x1.c4cd8113899bp-1, 0x1.7bceb22ef79d6p-1,
+0x1.abdbef7b57b7ep-1, 0x1.66c56ddacd8aep-1, 0x1.2cb2e8525965dp-3, 0x1.977336032ee67p-1,
+0x1.297ee88a52fddp-2, 0x1.94c6e683298ddp-4, 0x1.8604df2f0c09cp-1, 0x1.e347bd4fc68f8p-1,
+0x1.cde868cb9bd0dp-1, 0x1.0ef9e6761df3dp-1, 0x1.efe84723dfd09p-1, 0x1.cbd6945f97ad3p-1,
+0x1.ee6f3bfbdcde7p-1, 0x1.38a54c02714aap-8, 0x1.95ef7a2b2bdefp-2, 0x1.37abdc426f57cp-1,
+0x1.6c9c9cdad9394p-2, 0x1.ae143d635c288p-3, 0x1.d5b5755fab6afp-1, 0x1.9b50b80336a17p-7,
+0x1.971bbcc32e378p-5, 0x1.2a44450254889p-1, 0x1.8ba7de0f174fcp-1, 0x1.80a977030152fp-2,
+0x1.5405c1d2a80b8p-2, 0x1.3e45b3fe7c8b6p-1, 0x1.8944a01312894p-3, 0x1.61ae0c3ec35c2p-1,
+0x1.a94017a352803p-1, 0x1.38f548a271ea9p-4, 0x1.baf97cd375f3p-2, 0x1.551c071aaa381p-1,
+0x1.8de416f31bc83p-1, 0x1.28a9787e5152fp-1, 0x1.d91e7a3bb23cfp-2, 0x1.151c59a22a38bp-4,
+0x1.5b425552b684bp-1, 0x1.ca50712394a0ep-3, 0x1.7ad22002f5a44p-7, 0x1.292abe1a52558p-1,
+0x1.818e02bf031cp-1, 0x1.f5d38fa3eba72p-1, 0x1.ea02a4f3d4055p-2, 0x1.6ffd3ebadffa8p-1,
+0x1.f844da3bf089bp-1, 0x1.bff90f8f7ff22p-1, 0x1.4f5235f29ea47p-2, 0x1.5d26514aba4cap-2,
+0x1.5bf0f742b7e1fp-4, 0x1.f57a4163eaf48p-3, 0x1.6a00d712d401bp-2, 0x1.13bf6ad2277edp-3,
+0x1.a7a2d55b4f45bp-1, 0x1.02a1265205425p-3, 0x1.054496360a893p-1, 0x1.4696d9028d2dbp-3,
+0x1.7eedfd96fddcp-1, 0x1.6795be3acf2b8p-1, 0x1.b353c28366a78p-1, 0x1.282e1536505c3p-1,
+0x1.8eb467531d68dp-1, 0x1.21a101d24342p-2, 0x1.f5287133ea50ep-3, 0x1.1c987e423931p-1,
+0x1.b979f96b72f3fp-1, 0x1.69d9596ad3b2bp-1, 0x1.3f3c09767e781p-1, 0x1.14bc4eba2978ap-1,
+0x1.dc6d75b7b8dafp-1, 0x1.452751fa8a4eap-1, 0x1.ef386683de70dp-4, 0x1.5dfb7872bbf6fp-1,
+0x1.3afae19a75f5cp-1, 0x1.32e85f4a65d0cp-1, 0x1.9bf16e5337e2ep-2, 0x1.333fbbd6667f7p-1,
+0x1.e5c2ddb3cb85cp-2, 0x1.75a1d226eb43ap-1, 0x1.e1d2e47bc3a5dp-1, 0x1.1e5f8dc23cbf2p-1,
+0x1.f300627fe600cp-1, 0x1.2da6a0025b4d4p-2, 0x1.634f6876c69edp-1, 0x1.9aa337d735467p-1,
+0x1.aef733335dee6p-2, 0x1.a24ffaa3449ffp-3, 0x1.ec48ee17d891ep-1, 0x1.59a65cb2b34ccp-3,
+0x1.d029bce7a0538p-1, 0x1.9f9cb0973f396p-1, 0x1.7e97ac62fd2f6p-1, 0x1.5ede2436bdbc5p-1,
+0x1.83698c0306d32p-4, 0x1.fbe1c8aff7c39p-1, 0x1.edda89d3dbb51p-3, 0x1.e9e72aebd3ce5p-1,
+0x1.65bb221acb764p-1, 0x1.bab2abeb75655p-1, 0x1.fd46f343fa8dep-2, 0x1.422897ce84513p-1,
+0x1.ffb3fbc3ff67fp-2, 0x1.3c8a867279151p-1, 0x1.4048207a80904p-2, 0x1.d6a6fbe3ad4dfp-4,
+0x1.bdcb96f37b973p-3, 0x1.6e1cc76adc399p-1, 0x1.6e149b52dc293p-1, 0x1.62545496c4a8bp-1,
+0x1.c77d331b8efa6p-2, 0x1.4fe77fca9fcfp-1, 0x1.0167c4aa02cf9p-2, 0x1.ad7df8135afbfp-2,
+0x1.e6bacfcfcd75ap-1, 0x1.e4034acbc8069p-1, 0x1.c588cf738b11ap-3, 0x1.7c6cd2caf8d9ap-2,
+0x1.325d25c264ba5p-3, 0x1.76ac87c2ed591p-3, 0x1.14a00092294p-1, 0x1.cc1065439820dp-5,
+0x1.fd47d28bfa8fap-1, 0x1.266f59e24cdebp-2, 0x1.7b9f2a8af73e5p-1, 0x1.6da82042db504p-4,
+0x1.1e32eb3a3c65dp-2, 0x1.f715ccffee2bap-1, 0x1.79c2ef02f385ep-5, 0x1.f4d497b7e9a93p-1,
+0x1.b1c878eb6390fp-1, 0x1.163fa8922c7f5p-1, 0x1.36fd2f826dfa6p-1, 0x1.6344ed92c689ep-2,
+0x1.4b28bc0296518p-3, 0x1.d7213fc3ae428p-1, 0x1.d8eeac8bb1dd6p-2, 0x1.847a297b08f45p-2,
+0x1.453e072a8a7c1p-1, 0x1.6a2fc652d45f9p-3, 0x1.248b4a8249169p-4, 0x1.47e505a28fca1p-4,
+0x1.aa73716354e6ep-1, 0x1.4a8a974a95153p-2, 0x1.ff77397bfeee7p-2, 0x1.912e412f225c8p-1,
+0x1.12912cda25226p-2, 0x1.711dd09ae23bap-1, 0x1.3d92aa427b255p-3, 0x1.abbfbfc3577f8p-2,
+0x1.cec8f28b9d91ep-1, 0x1.6404ab22c8095p-1, 0x1.e541cc6bca83ap-2, 0x1.cc10c51398219p-1,
+0x1.f73c5813ee78bp-1, 0x1.b900430372008p-3, 0x1.f9c5c91bf38b9p-1, 0x1.0cab9b5a19573p-2,
+0x1.955776f32aaefp-3, 0x1.161f80822c3fp-5, 0x1.eca99593d9533p-3, 0x1.71e56a42e3cadp-5,
+0x1.27a1a09a4f434p-1, 0x1.b22794e7644f3p-1, 0x1.91819ae323033p-2, 0x1.7a6bcf9ef4d7ap-1,
+0x1.8948d4a71291bp-1, 0x1.b53823b76a704p-1, 0x1.e54722c3ca8e4p-4, 0x1.9d0db79b3a1b7p-2,
+0x1.f882a983f1055p-6, 0x1.84e936b309d27p-3, 0x1.ef06f903de0dfp-2, 0x1.ba3786af746f1p-1,
+0x1.067f99520cff3p-1, 0x1.f73f193fee7e3p-1, 0x1.4b65c7da96cb9p-1, 0x1.8fc82fc31f906p-1,
+0x1.685ce9d6d0b9dp-1, 0x1.9aca726b3594ep-1, 0x1.96a03e832d408p-3, 0x1.3725dc626e4bcp-1,
+0x1.fd9e3b13fb3c7p-2, 0x1.5848f5d6b091fp-1, 0x1.0336a172066d4p-1, 0x1.ec16eb33d82ddp-2,
+0x1.c68906978d121p-1, 0x1.f9f8d51bf3f1bp-2, 0x1.7c614346f8c28p-1, 0x1.5ef722a2bdee4p-4,
+0x1.0e5e62961cbccp-1, 0x1.f78ba8abef175p-1, 0x1.0bf4ebe217e9dp-3, 0x1.b000198360003p-4,
+0x1.a9b33d9353668p-1, 0x1.0bbe086a177c1p-1, 0x1.b06bd2cf60d7ap-1, 0x1.32fc123665f82p-1,
+0x1.81ec584303d8bp-2, 0x1.ed14b727da297p-1, 0x1.82ee040305dc1p-9, 0x1.a17482db42e9p-2,
+0x1.393c134272782p-3, 0x1.f20cd50be419bp-2, 0x1.15e390322bc72p-2, 0x1.54ce9e26a99d4p-1,
+0x1.e08b078bc1161p-2, 0x1.d6578ff3acaf2p-1, 0x1.c92d9bcb925b3p-2, 0x1.6289b662c5137p-3,
+0x1.7122025ae244p-1, 0x1.4a3edd86947dcp-1, 0x1.8fc849fb1f909p-1, 0x1.bfc47f837f89p-3,
+0x1.450fa6b28a1f5p-2, 0x1.25fdd6da4bfbbp-2, 0x1.65fc957acbf93p-1, 0x1.a44367c34886dp-3,
+0x1.8ffb55fb1ff6bp-1, 0x1.c4bbb17b89776p-2, 0x1.29df7c8a53bfp-2, 0x1.3cb3711a7966ep-2,
+0x1.b3d302d367a6p-2, 0x1.afd9f27b5fb3ep-2, 0x1.a8b3777b5166fp-2, 0x1.07397df20e73p-2,
+0x1.e3ab01abc756p-1, 0x1.098b1d1213164p-2, 0x1.b698d12f6d31ap-1, 0x1.49425b929284bp-2,
+0x1.c76916c38ed23p-3, 0x1.b81bbf3370378p-1, 0x1.755b6f36eab6ep-1, 0x1.8052950300a53p-2,
+0x1.62445372c488ap-2, 0x1.34dd300269ba6p-11, 0x1.4f7e8a429efd1p-5, 0x1.a167ad7f42cf6p-1,
+0x1.d6a4c73fad499p-1, 0x1.f31d6d13e63aep-2, 0x1.fa0a1b17f4143p-1, 0x1.47c6c9968f8d9p-1,
+0x1.0f3650321e6cap-3, 0x1.89d2651313a4dp-1, 0x1.b7b7e9776f6fdp-1, 0x1.ccaaced39955ap-2,
+0x1.cd1507c39a2a1p-5, 0x1.1db47eee3b69p-1, 0x1.4f66415a9ecc8p-1, 0x1.accca67759995p-1,
+0x1.257a80024af5p-13, 0x1.e455ff9fc8acp-1, 0x1.2c997c025933p-3, 0x1.b3f7b22367ef6p-2,
+0x1.7885f1b2f10bep-2, 0x1.1f801ac23f003p-1, 0x1.5d98980abb313p-1, 0x1.3fdbf5027fb7fp-2,
+0x1.a445a94b488b5p-1, 0x1.1431693a2862dp-1, 0x1.448f284a891e5p-1, 0x1.61feef82c3fdep-5,
+0x1.989a50d33134ap-2, 0x1.73d52efae7aa6p-2, 0x1.ac9272fb5924ep-2, 0x1.7d6f5222fadeap-1,
+0x1.746f9d92e8df4p-2, 0x1.d6824443ad049p-2, 0x1.1ed6ff9e3daep-1, 0x1.21b92c0a43726p-2,
+0x1.e4cfd8afc99fbp-1, 0x1.18e11ab631c23p-1, 0x1.d8a35f9bb146cp-1, 0x1.44eb65c289d6dp-4,
+0x1.4566ff8a8acep-2, 0x1.905b490f20b69p-1, 0x1.0ef2d4221de5bp-1, 0x1.7f09a082fe134p-2,
+0x1.5c1f8ff2b83f2p-2, 0x1.796455e2f2c8bp-3, 0x1.b145dad3628bbp-3, 0x1.5c443f4ab8888p-2,
+0x1.0abc54521578bp-3, 0x1.6eefab6adddf5p-2, 0x1.881df8b7103bfp-1, 0x1.fde41be3fbc83p-2,
+0x1.d6f7f077adefep-1, 0x1.cb6d218396da4p-2, 0x1.9ee008733dc01p-1, 0x1.7b3d99c2f67b3p-1,
+0x1.f9e7f9fbf3cffp-1, 0x1.c6de617b8dbccp-2, 0x1.915d88bb22bb1p-1, 0x1.8c6a44c318d49p-2,
+0x1.9d59c83b3ab39p-1, 0x1.9e9b08d33d361p-3, 0x1.0e91d2121d23ap-3, 0x1.5e465c12bc8ccp-3,
+0x1.52e7e45aa5cfdp-1, 0x1.627b7422c4f6fp-1, 0x1.d0dc5a13a1b8bp-2, 0x1.37b7bd066f6f8p-1,
+0x1.ed723b53dae47p-3, 0x1.8223194b04463p-2, 0x1.605529bec0aa5p-1, 0x1.1e100e9a3c202p-1,
+0x1.45b356c28b66bp-3, 0x1.bd1ff7837a3ffp-3, 0x1.dd94dedbbb29cp-1, 0x1.fef93b5bfdf27p-2,
+0x1.9b4226b336845p-2, 0x1.279956324f32bp-3, 0x1.ad9ebd535b3d8p-1, 0x1.1050287220a05p-1,
+0x1.015e2b4602bc5p-1, 0x1.35bcb6066b797p-1, 0x1.e846cc03d08dap-6, 0x1.b0ac377361587p-2,
+0x1.b7346c436e68ep-5, 0x1.ae223ed35c448p-1, 0x1.4e4ed5e29c9dbp-3, 0x1.55b40bc2ab681p-5,
+0x1.2322df1a4645cp-2, 0x1.e4f13e37c9e28p-1, 0x1.b720c6436e419p-2, 0x1.7759be42eeb38p-4,
+0x1.326001a264cp-3, 0x1.1f34d7a63e69bp-1, 0x1.0cf99d9a19f34p-2, 0x1.9f7fe4c33effdp-1,
+0x1.0360978a06c13p-2, 0x1.6eeafbd6ddd5fp-1, 0x1.ae6f438b5cde8p-2, 0x1.fa19b53bf4337p-2,
+0x1.7fe443c2ffc88p-4, 0x1.bc665c2378cccp-4, 0x1.b1ce9343639d2p-5, 0x1.02d2bc5a05a58p-2,
+0x1.4da992ca9b532p-2, 0x1.f8b1c813f1639p-1, 0x1.80e5fbdb01cbfp-1, 0x1.7475dcbee8ebcp-1,
+0x1.0a60767214c0fp-3, 0x1.2e84b92a5d097p-1, 0x1.098c0a5a13181p-2, 0x1.43f648e287ec9p-1,
+0x1.9105bcb3220b8p-3, 0x1.2810771a5020fp-2, 0x1.c4c649c3898c9p-5, 0x1.fed2d7d3fda5bp-3,
+0x1.08a9e9821153dp-3, 0x1.bf8068537f00dp-3, 0x1.2a1fed62543fep-2, 0x1.a777d3db4eefap-2,
+0x1.53456122a68acp-3, 0x1.70a059d2e140bp-1, 0x1.02a721b6054e4p-1, 0x1.42d2b16a85a56p-2,
+0x1.1faa62ea3f54cp-2, 0x1.8923f0831247ep-1, 0x1.03a4f5d20749fp-3, 0x1.11857d3e230bp-1,
+0x1.f01dd8b3e03bbp-2, 0x1.1820df3e3041cp-1, 0x1.d24afb03a495fp-6, 0x1.280b74d25016fp-1,
+0x1.4fadaac29f5b5p-1, 0x1.4d7a08629af41p-4, 0x1.a974d2ff52e9ap-1, 0x1.f6827427ed04fp-1,
+0x1.130848e226109p-4, 0x1.2a5aced654b5ap-1, 0x1.6af850e2d5f0ap-1, 0x1.93e49af327c93p-3,
+0x1.637e1ff2c6fc4p-3, 0x1.efbe5613df7cbp-1, 0x1.a8ef6f9f51deep-1, 0x1.7a41ee5af483ep-2,
+0x1.078d233a0f1a4p-2, 0x1.c53bd43b8a77bp-1, 0x1.3cd5ad2279ab6p-1, 0x1.8be217fb17c43p-2,
+0x1.a8df728351beep-4, 0x1.d1e5a3d3a3cb4p-1, 0x1.99acf5ef3359fp-1, 0x1.13da8d3227b52p-2,
+0x1.4285fda6850cp-1, 0x1.38a82f4271506p-2, 0x1.2b569f4e56ad4p-1, 0x1.d25b2f1ba4b66p-1,
+0x1.2bc0412257808p-4, 0x1.6c3fdcc6d87fcp-1, 0x1.c7c158ab8f82bp-2, 0x1.1d86f47e3b0dfp-1,
+0x1.08c178021182fp-2, 0x1.e4e6085bc9cc1p-2, 0x1.1649a5322c935p-3, 0x1.d40e66c3a81cdp-1,
+0x1.1c22453e38449p-1, 0x1.ef073c4fde0e8p-1, 0x1.ca90dae79521bp-1, 0x1.3e834e5a7d06ap-1,
+0x1.19620b2232c41p-1, 0x1.35892bc66b125p-1, 0x1.a37c751746f8fp-1, 0x1.72419322e4832p-1,
+0x1.254781d64a8fp-1, 0x1.4c6be4b698d7dp-1, 0x1.7b145262f628ap-4, 0x1.a90e1377521c2p-1,
+0x1.11a7b8ee234f7p-1, 0x1.6c38376ed8707p-1, 0x1.bbfc7dc377f9p-3, 0x1.46c3a73e8d875p-1,
+0x1.3e1ddb3e7c3bbp-1, 0x1.1582ab822b055p-6, 0x1.d0b0eddba161ep-1, 0x1.0147b1c2028f6p-2,
+0x1.4a005a029400bp-2, 0x1.f80f1a4bf01e3p-2, 0x1.4bfc1ff297f84p-3, 0x1.94f06a4b29e0dp-2,
+0x1.a11da7a3423b5p-3, 0x1.36dfb4526dbf7p-1, 0x1.e7ff29a3cffe5p-1, 0x1.d9504bd3b2a09p-2,
+0x1.4a95c402952b9p-4, 0x1.6c8c9762d9193p-4, 0x1.816d195302da3p-2, 0x1.4574fdbe8aeap-1,
+0x1.c98cf3839319ep-5, 0x1.168ecf1a2d1dap-2, 0x1.07f0982a0fe13p-2, 0x1.35fada5e6bf5bp-1,
+0x1.c0d0935781a12p-1, 0x1.3ba60962774c1p-4, 0x1.5078dafaa0f1bp-2, 0x1.cc302a5398605p-2,
+0x1.73e0a5e2e7c15p-1, 0x1.af3def935e7bep-2, 0x1.1e4c513a3c98ap-2, 0x1.0b10bd9a16218p-2,
+0x1.0f5cbcd21eb98p-3, 0x1.fc4a9023f8952p-2, 0x1.cc4c060f98981p-1, 0x1.81f50a7303ea1p-1,
+0x1.06d15d6e0da2cp-1, 0x1.9cfcf3e739f9ep-1, 0x1.4c71aa0298e35p-8, 0x1.abd18a6f57a31p-1,
+0x1.320902126412p-2, 0x1.565fad42acbf6p-3, 0x1.d926fe43b24ep-3, 0x1.014beaf60297dp-1,
+0x1.8c779fa318ef4p-1, 0x1.7923a4c2f2475p-3, 0x1.edf410dfdbe82p-1, 0x1.b5ca58236b94bp-1,
+0x1.17b4f8422f69fp-2, 0x1.5d553b12baaa7p-2, 0x1.f67eabbbecfd5p-2, 0x1.50e696b2a1cd3p-2,
+0x1.39f2051673e41p-1, 0x1.7f37a1f6fe6f4p-1, 0x1.de6e25b7bcdc5p-1, 0x1.f58530d3eb0a6p-2,
+0x1.a6ac63234d58cp-1, 0x1.0d5526621aaa5p-2, 0x1.e0daad97c1b56p-1, 0x1.1a8d0902351a1p-1,
+0x1.5e498afabc931p-1, 0x1.c00358c38006bp-3, 0x1.a01567cf402adp-1, 0x1.a220ba2f44417p-1,
+0x1.6e261e42dc4c4p-1, 0x1.6c616ddad8c2ep-1, 0x1.2415c4a2482b9p-1, 0x1.d3ddeec3a7bbep-3,
+0x1.095e61be12bccp-1, 0x1.26aea7f64d5d5p-1, 0x1.064830e20c906p-4, 0x1.a262e2cb44c5cp-1,
+0x1.7c469346f88d2p-1, 0x1.2e258b625c4b1p-2, 0x1.475d9b7a8ebb3p-2, 0x1.08be32e6117c6p-1,
+0x1.eab75dc3d56ecp-2, 0x1.2345bd32468b8p-2, 0x1.7d111612fa223p-2, 0x1.81362b03026c5p-1,
+0x1.404d7c22809bp-1, 0x1.b9c7e0e7738fcp-1, 0x1.4d4bb2e29a976p-4, 0x1.e8fe04e3d1fc1p-3,
+0x1.38ff82da71ffp-1, 0x1.02f3820205e7p-6, 0x1.750219a2ea043p-1, 0x1.bf57cbf37eaf9p-2,
+0x1.1d845e8a3b08cp-2, 0x1.55dcc736abb99p-1, 0x1.fa38eefbf471ep-1, 0x1.ed0bba3fda177p-1,
+0x1.c5dd9d6b8bbb4p-1, 0x1.9a4e56cb349cbp-1, 0x1.8f2c746f1e58fp-1, 0x1.3403bbaa68077p-1,
+0x1.06afc4a20d5f9p-1, 0x1.6684721acd08ep-2, 0x1.a8fb375b51f67p-1, 0x1.00e2660201c4dp-5,
+0x1.d9f0e103b3e1cp-1, 0x1.c9c43d7b93888p-1, 0x1.b271092b64e21p-1, 0x1.56377446ac6efp-1,
+0x1.835c0ca306b82p-3, 0x1.587f5b92b0febp-3, 0x1.7bd69ca2f7ad4p-3, 0x1.5632b20aac656p-1,
+0x1.cf856afb9f0adp-2, 0x1.1d7e32323afc6p-1, 0x1.aed1ba1b5da37p-2, 0x1.40818d0281032p-4,
+0x1.ae8c26335d185p-2, 0x1.0112536a0224ap-1, 0x1.449f65b2893edp-2, 0x1.04595f0208b2cp-5,
+0x1.0929ef7a1253ep-1, 0x1.751cc782ea399p-5, 0x1.dfe2f7dbbfc5fp-2, 0x1.97ec1ebf2fd84p-1,
+0x1.6d2e93b2da5d2p-1, 0x1.d454d5cba8a9bp-2, 0x1.84f7d8ff09efbp-1, 0x1.330c311a66186p-1,
+0x1.08f1835a11e3p-2, 0x1.14244d6a2848ap-1, 0x1.9c3fb303387f6p-3, 0x1.8b28865316511p-1,
+0x1.c76686778ecd1p-1, 0x1.00b241c201648p-5, 0x1.9b36acb3366d6p-1, 0x1.a157677742aedp-1,
+0x1.d9cf6197b39ecp-1, 0x1.4da7b5da9b4f7p-1, 0x1.ef1db773de3b7p-2, 0x1.d53325e3aa665p-4,
+0x1.a3c78cbf478f2p-1, 0x1.568482e2ad09p-1, 0x1.90d916c721b23p-1, 0x1.171484722e291p-2,
+0x1.d00ad453a015bp-3, 0x1.a107cf43420fap-3, 0x1.6734e7b2ce69dp-2, 0x1.4b48c82e96919p-1,
+0x1.6954473ad2a89p-1, 0x1.55ea26b2abd45p-1, 0x1.5b8e5e1eb71ccp-1, 0x1.c9f8dad393f1bp-3,
+0x1.6d3bf32eda77ep-1, 0x1.2dff68225bfedp-3, 0x1.4d4aae029a956p-6, 0x1.b4d50dbb69aa2p-2,
+0x1.35aa44f26b549p-1, 0x1.8f622e6f1ec46p-1, 0x1.aed6fe835daep-6, 0x1.ba23069f74461p-1,
+0x1.470cf7aa8e19fp-2, 0x1.d21a92d3a4352p-3, 0x1.454b8cee8a972p-1, 0x1.abb4092357681p-3,
+0x1.092391a212472p-2, 0x1.c104733b8208ep-2, 0x1.888d3783111a7p-6, 0x1.7984a992f3095p-3,
+0x1.714f7ba2e29efp-4, 0x1.03d3457607a69p-1, 0x1.320f1e42641e4p-2, 0x1.d1f17c33a3e3p-1,
+0x1.695f2162d2be4p-3, 0x1.4f052f429e0a6p-4, 0x1.75eef9b2ebddfp-3, 0x1.9cb4fadb3969fp-2,
+0x1.24453372488a6p-2, 0x1.11163246222c6p-1, 0x1.9a3459833468bp-5, 0x1.fb76e0f7f6edcp-1,
+0x1.9c0163e33802cp-3, 0x1.7531a3b6ea634p-1, 0x1.b7d45ea36fa8cp-3, 0x1.d43c4c27a878ap-1,
+0x1.c0b17dc38163p-1, 0x1.e17db463c2fb7p-3, 0x1.5d4da602ba9b5p-2, 0x1.ecb78563d96f1p-2,
+0x1.f066e203e0cdcp-7, 0x1.783b15eaf0763p-2, 0x1.60fd929ac1fb2p-2, 0x1.56902ebaad206p-2,
+0x1.30a42faa61486p-1, 0x1.f5ca563feb94bp-1, 0x1.163519aa2c6a3p-1, 0x1.b535f87f6a6bfp-1,
+0x1.ac991fb359324p-2, 0x1.2279836644f3p-1, 0x1.39722e0272e46p-5, 0x1.04767f5208edp-1,
+0x1.326646e264cc9p-4, 0x1.593d640ab27adp-2, 0x1.accff703599ffp-2, 0x1.0149226a02924p-2,
+0x1.acfeafdb59fd6p-2, 0x1.33e3b9ee67c77p-1, 0x1.4eff0ea29dfe2p-1, 0x1.68a1f1a6d143ep-1,
+0x1.13e7b0d227cf6p-3, 0x1.68a2543ad144bp-1, 0x1.6418d29ac831ap-1, 0x1.57f48a5aafe91p-2,
+0x1.bba7efdb774fep-2, 0x1.d20dea43a41bdp-1, 0x1.006d22a200da4p-2, 0x1.3d0aeb5a7a15dp-2,
+0x1.29b55d72536acp-3, 0x1.2edd64525dbadp-1, 0x1.94e1385f29c27p-1, 0x1.48bbcb9291779p-3,
+0x1.eafaef47d5f5ep-1, 0x1.158006b22b001p-3, 0x1.faee1483f5dc3p-2, 0x1.1b9f1eee373e4p-1,
+0x1.d952bf43b2a58p-4, 0x1.3ac23e8275848p-5, 0x1.a1aa2ed343546p-2, 0x1.1176e7c222eddp-1,
+0x1.3625a7526c4b5p-1, 0x1.c8d8749b91b0fp-2, 0x1.5ed67102bdacep-5, 0x1.5c72702eb8e4ep-1,
+0x1.910aec532215ep-1, 0x1.d8aac52bb1559p-2, 0x1.dd170163ba2ep-1, 0x1.9e2910f33c522p-3,
+0x1.01c8e4020391dp-4, 0x1.2c161002582c2p-1, 0x1.d02c35e3a0587p-1, 0x1.94cc22d329984p-3,
+0x1.2970c87252e19p-2, 0x1.3445087e688a1p-1, 0x1.112d4de2225aap-1, 0x1.728c5c26e518cp-1,
+0x1.0652f2be0ca5ep-1, 0x1.9163df3322c7cp-1, 0x1.111d1d42223a4p-5, 0x1.50c04a1aa1809p-1,
+0x1.8082870301051p-2, 0x1.a5f30a334be61p-1, 0x1.a2ef3cff45de8p-1, 0x1.5678658aacf0dp-2,
+0x1.eb530bdfd6a61p-1, 0x1.40cc8e8281992p-2, 0x1.c6db51b78db6ap-1, 0x1.33eb1e2267d64p-4,
+0x1.6824d652d049bp-2, 0x1.2f60d23a5ec1ap-2, 0x1.37f44b8a6fe89p-1, 0x1.ea38127bd4702p-1,
+0x1.7c1ca36af8394p-1, 0x1.4de1b29a9bc36p-1, 0x1.46aa82a68d55p-1, 0x1.0d278fba1a4f2p-1,
+0x1.d1b8a963a3715p-4, 0x1.23c1840647831p-1, 0x1.74b1d3f6e963ap-1, 0x1.69c0c6c2d3819p-3,
+0x1.3f5e50127ebcap-3, 0x1.44de09da89bc1p-1, 0x1.7f4674cafe8cfp-2, 0x1.c91ff07b923fep-2,
+0x1.e48c4953c9189p-3, 0x1.d0d0884ba1a11p-1, 0x1.5c715192b8e2ap-3, 0x1.7f760512feec1p-1,
+0x1.6234677ac468dp-1, 0x1.a0b898e341713p-3, 0x1.a06c9e5b40d94p-2, 0x1.13ad57e2275abp-4,
+0x1.c4260d03884c2p-6, 0x1.cc9630a3992c6p-3, 0x1.9b63bb8336c77p-2, 0x1.f9743c4bf2e88p-1,
+0x1.138bd36a2717ap-1, 0x1.291a5eea5234cp-2, 0x1.ff1a00c3fe34p-5, 0x1.c79e3e978f3c8p-1,
+0x1.2c3d9896587b3p-1, 0x1.57e5eb96afcbdp-1, 0x1.b1d6510f63acap-1, 0x1.50b477faa168fp-2,
+0x1.4b8f3c62971e8p-2, 0x1.f101a76be2035p-2, 0x1.b581cbbb6b039p-1, 0x1.bffd66bb7ffadp-2,
+0x1.c4257b83884afp-5, 0x1.2a339fae54674p-1, 0x1.3a6ee50e74dddp-1, 0x1.b067af0360cf6p-3,
+0x1.bc46a613788d5p-3, 0x1.fa121f77f4244p-1, 0x1.50a9e3fea153cp-1, 0x1.d06977b3a0d2fp-2,
+0x1.cae2a7bf95c55p-1, 0x1.a7c638634f8c7p-1, 0x1.9eab03b33d56p-3, 0x1.2d170f365a2e2p-1,
+0x1.fe8bd303fd17ap-6, 0x1.37e1101a6fc22p-1, 0x1.4f8cba329f197p-1, 0x1.e158f043c2b1ep-5,
+0x1.ab069c43560d4p-1, 0x1.d3e97f43a7d3p-5, 0x1.789cb4c2f1397p-5, 0x1.7d24df5afa49cp-2,
+0x1.63978ed2c72f2p-2, 0x1.bbdb5ac377b6bp-4, 0x1.0c615c8218c2cp-2, 0x1.de095fffbc12cp-1,
+0x1.8f6156f31ec2bp-1, 0x1.c037fa63806ffp-4, 0x1.0cc737fa198e7p-2, 0x1.a947a903528f5p-4,
+0x1.3087d302610fap-1, 0x1.df2b3da3be568p-4, 0x1.1527a87e2a4f5p-1, 0x1.4cca2abe99945p-1,
+0x1.66190762cc321p-1, 0x1.3e5a36327cb47p-3, 0x1.b8e4167f71c83p-1, 0x1.d52ab0ebaa556p-1,
+0x1.26a2b4024d457p-3, 0x1.098dfa7a131bfp-1, 0x1.7abed982f57dbp-2, 0x1.48b54bc2916a9p-5,
+0x1.62a865bac550dp-2, 0x1.250a2dae4a146p-1, 0x1.41a263f28344cp-1, 0x1.829122eb05224p-2,
+0x1.73acf712e759fp-3, 0x1.225e3c4a44bc8p-2, 0x1.bebc40f37d788p-2, 0x1.fc768203f8edp-7,
+0x1.5cdb6c32b9b6ep-2, 0x1.edcfd78bdb9fbp-2, 0x1.8d08936b1a112p-2, 0x1.60397d82c073p-1,
+0x1.2e6357225cc6bp-1, 0x1.4cb4f7f69969fp-1, 0x1.3e42dd827c85cp-1, 0x1.7b895c22f712cp-2,
+0x1.84bbf7430977fp-1, 0x1.c4a6797f894cfp-1, 0x1.e5db4663cbb69p-2, 0x1.6a87948ad50f3p-2,
+0x1.17c260022f84cp-10, 0x1.02a975820552fp-6, 0x1.06fa80020df5p-8, 0x1.66a4e892cd49dp-1,
+0x1.5eaf64e2bd5edp-3, 0x1.baf20b7f75e41p-1, 0x1.3bcf997a779f3p-1, 0x1.42a90c7285522p-2,
+0x1.89000beb12001p-2, 0x1.f92f063ff25e1p-1, 0x1.6bbfb5ead77f7p-2, 0x1.75d438d2eba87p-1,
+0x1.1e3933ea3c726p-1, 0x1.f7823eebef048p-1, 0x1.b8e6524371ccap-4, 0x1.7b2471b2f648ep-1,
+0x1.1162ba1a22c57p-2, 0x1.167aeac22cf5dp-1, 0x1.83164bbb062c9p-1, 0x1.371f13266e3e2p-1,
+0x1.ac5ad10358b5ap-6, 0x1.266a55b24cd4bp-3, 0x1.2eb1214a5d624p-2, 0x1.3bc62daa778c6p-1,
+0x1.964f8d632c9f2p-1, 0x1.d59b6e27ab36ep-1, 0x1.f98adbbbf315bp-1, 0x1.1b0b84a236171p-1,
+0x1.9a41e7a33483dp-1, 0x1.d8f0fdd3b1e2p-2, 0x1.d04f4ee7a09eap-1, 0x1.9acdc8d3359b9p-1,
+0x1.e91b952bd2373p-2, 0x1.d25d43e7a4ba8p-1, 0x1.0172b16602e56p-1, 0x1.4c39a3d298734p-1,
+0x1.8d4f4f631a9eap-1, 0x1.ea1256e3d424bp-4, 0x1.ed8e2a0bdb1c5p-1, 0x1.473d55628e7abp-3,
+0x1.b38a88c367151p-4, 0x1.46dc0a028db81p-2, 0x1.c7a38e2b8f472p-1, 0x1.54aa8506a9551p-1,
+0x1.35e087d26bc11p-2, 0x1.fec05873fd80bp-1, 0x1.9f9ded6b3f3bep-2, 0x1.23a1a0f647434p-1,
+0x1.153b43362a768p-1, 0x1.4b9509b2972a1p-3, 0x1.6b02d062d605ap-3, 0x1.229e19be453c3p-1,
+0x1.38ffafb271ff6p-2, 0x1.e432897bc8651p-2, 0x1.79911d92f3224p-3, 0x1.967b29c32cf65p-4,
+0x1.8f6965cb1ed2dp-2, 0x1.5fbc8c72bf792p-3, 0x1.4ddae9da9bb5dp-1, 0x1.87da6a130fb4dp-3,
+0x1.4467a20688cf4p-1, 0x1.1e2a38c23c547p-1, 0x1.fcc4635bf988cp-1, 0x1.c7ab64c38f56dp-4,
+0x1.e10ef94bc21dfp-2, 0x1.fc6e297bf8dc5p-2, 0x1.852f106b0a5e2p-1, 0x1.f75b3023eeb66p-3,
+0x1.3b795f9a76f2cp-1, 0x1.72bd3a76e57a7p-1, 0x1.9f4c42c33e988p-2, 0x1.71eab0b6e3d56p-1,
+0x1.62b3f742c567fp-5, 0x1.2e935f125d26cp-2, 0x1.8d2a6b731a54dp-2, 0x1.623706bac46e1p-2,
+0x1.2c140ffa58282p-2, 0x1.96642c6f2cc86p-1, 0x1.d4bd2453a97a5p-1, 0x1.ab454b33568a9p-1,
+0x1.e9496edbd292ep-1, 0x1.7beec342f7dd8p-4, 0x1.9bc6c9db378d9p-2, 0x1.0b928d6217252p-2,
+0x1.21971d26432e4p-1, 0x1.2c47ac52588f6p-1, 0x1.713157d2e262bp-2, 0x1.e94bd00bd297ap-1,
+0x1.8436cf6f086dap-1, 0x1.9ce5700339caep-7, 0x1.2d09aa425a135p-3, 0x1.913ce2e32279cp-2,
+0x1.249dce82493bap-1, 0x1.201b37a240367p-3, 0x1.0193de0a0327cp-1, 0x1.5254b282a4a96p-5,
+0x1.463de2a68c7bcp-1, 0x1.0d85dcea1b0bcp-2, 0x1.25f82e624bf06p-2, 0x1.036e847a06dd1p-2,
+0x1.f98028ebf3005p-1, 0x1.62a23892c5447p-1, 0x1.f3a1f2f3e743ep-1, 0x1.f56d0b83eada1p-6,
+0x1.f9ebe81bf3d7dp-1, 0x1.746e5152e8dcap-2, 0x1.818dd773031bbp-2, 0x1.1febe02a3fd7cp-2,
+0x1.426d545284dabp-3, 0x1.2b08201256104p-2, 0x1.d9d9da23b3b3bp-4, 0x1.cf261f639e4c4p-4,
+0x1.8a03d0e31407ap-2, 0x1.091ea032123d4p-1, 0x1.7f5c153afeb83p-2, 0x1.e6990597cd321p-1,
+0x1.ab3264035664dp-4, 0x1.7846b686f08d7p-1, 0x1.cfe4d5a39fc9bp-1, 0x1.b99d1bef733a3p-1,
+0x1.7eba4c4afd74ap-1, 0x1.b274030364e8p-5, 0x1.04771aba08ee3p-2, 0x1.46b035928d607p-2,
+0x1.8cb8386319707p-3, 0x1.83cf6b6b079edp-1, 0x1.70facbe2e1f59p-2, 0x1.a96bf0bf52d7ep-1,
+0x1.524b3b82a4967p-6, 0x1.4b797d2296f3p-1, 0x1.591997c2b2333p-4, 0x1.04a0b10209416p-7,
+0x1.5c376b62b86edp-2, 0x1.ec525ec3d8a4cp-5, 0x1.3bdeb20277bd6p-5, 0x1.500f3b9aa01e7p-2,
+0x1.b1f89d2b63f14p-2, 0x1.a909adb352136p-2, 0x1.37fd8de26ffb2p-1, 0x1.2997a3ae532f4p-1,
+0x1.6a08e6e2d411dp-1, 0x1.7338c92ae6719p-1, 0x1.637c679ac6f8dp-1, 0x1.78567a82f0acfp-4,
+0x1.f15da563e2bb5p-3, 0x1.195391c232a72p-4, 0x1.5a3d4e42b47aap-5, 0x1.637b6bbac6f6dp-2,
+0x1.9b7128bf36e25p-1, 0x1.e588aa87cb115p-1, 0x1.ad6b47235ad69p-3, 0x1.1a2b75063456fp-1,
+0x1.5fd56802bfaadp-10, 0x1.db2cbe53b6598p-2, 0x1.bd838fd37b072p-1, 0x1.8f77e3331eefcp-3,
+0x1.c5972a438b2e5p-3, 0x1.d803d703b007bp-3, 0x1.a93d3103527a6p-6, 0x1.efe091b3dfc12p-3,
+0x1.c17a72e782f4ep-1, 0x1.c368e42386d1dp-4, 0x1.00154e62002aap-2, 0x1.be58a2537cb14p-3,
+0x1.5cc909c2b9921p-3, 0x1.279124a24f225p-2, 0x1.179dc6622f3b9p-1, 0x1.302e9106605d2p-1,
+0x1.684d692ad09adp-1, 0x1.3e6d51127cdaap-3, 0x1.6718d2c2ce31ap-3, 0x1.a4aca01349594p-2,
+0x1.c2d41d6f85a84p-1, 0x1.bd429c4f7a854p-1, 0x1.01611f5a02c24p-1, 0x1.f95c3623f2b87p-4,
+0x1.e06d0e87c0da2p-1, 0x1.1704f43e2e09fp-1, 0x1.e1d27943c3a4fp-2, 0x1.7bde3742f7bc7p-1,
+0x1.f91b3d8bf2368p-2, 0x1.5c440e6eb8882p-1, 0x1.2c1358925826bp-2, 0x1.fa7b12f3f4f62p-2,
+0x1.2769b6524ed37p-3, 0x1.4e34f0629c69ep-3, 0x1.611b824ac237p-1, 0x1.7680704aed00ep-2,
+0x1.931c63b32638cp-2, 0x1.6e656bd2dccadp-1, 0x1.37385c926e70cp-1, 0x1.1611497a2c229p-2,
+0x1.a6d288574da51p-1, 0x1.b74303c36e86p-1, 0x1.f53d9aabea7b3p-2, 0x1.fe04cac7fc099p-1,
+0x1.2c2e5842585cbp-3, 0x1.23c93b4247927p-5, 0x1.2e335bce5c66bp-1, 0x1.b358ff3b66b2p-1,
+0x1.875f9fe30ebf4p-3, 0x1.87f9907f0ff32p-1, 0x1.0b5e9e8216bd4p-2, 0x1.25602b224ac05p-4,
+0x1.453c2cca8a786p-1, 0x1.87106e9b0e20ep-1, 0x1.8f5e30b31ebc6p-3, 0x1.25a93b4e4b527p-1,
+0x1.3c2ac5aa78559p-2, 0x1.54c0c8cea9819p-1, 0x1.430ee522861ddp-2, 0x1.9aa3019b3546p-1,
+0x1.6209ae72c4136p-2, 0x1.37911eda6f224p-1, 0x1.2fc1162a5f823p-2, 0x1.f5be899beb7d1p-2,
+0x1.8b1e5af3163cbp-1, 0x1.f8fc0d5ff1f82p-1, 0x1.b61f7cf36c3fp-1, 0x1.52b23322a5646p-3,
+0x1.6761792ecec2fp-1, 0x1.daafb303b55f6p-2, 0x1.bf6a63137ed4cp-2, 0x1.0e3401861c68p-1,
+0x1.4935ba82926b7p-2, 0x1.da53fedfb4a8p-1, 0x1.0c38cc4a1871ap-1, 0x1.df4ce6a3be99dp-2,
+0x1.ec909293d9212p-1, 0x1.d36140a3a6c28p-4, 0x1.45fee5128bfddp-2, 0x1.39a1ea327343dp-3,
+0x1.c265b89784cb7p-1, 0x1.28aec1ca515d8p-1, 0x1.cc51ffc398a4p-3, 0x1.07a1e55e0f43dp-1,
+0x1.5f7e60c2befccp-2, 0x1.add8183b5bb03p-2, 0x1.6a590562d4b21p-4, 0x1.4dd4933a9ba92p-1,
+0x1.5d66a762bacd5p-4, 0x1.9da5267b3b4a5p-2, 0x1.d0ef29a3a1de5p-2, 0x1.b963584b72c6bp-2,
+0x1.98ec850331d91p-7, 0x1.80581fe700b04p-1, 0x1.d790f0f7af21ep-1, 0x1.91820d0723042p-1,
+0x1.79542d42f2a86p-1, 0x1.8db06de71b60ep-1, 0x1.e62e99cfcc5d3p-1, 0x1.c16b4ce382d6ap-2,
+0x1.ec211da3d8424p-3, 0x1.8bc796ab178f3p-2, 0x1.eee9a7f7ddd35p-1, 0x1.1fa324aa3f465p-1,
+0x1.406f946280df3p-2, 0x1.f644e87bec89dp-2, 0x1.e932ff83d266p-6, 0x1.1990b98a33217p-2,
+0x1.358e9c566b1d4p-1, 0x1.6492150ac9243p-2, 0x1.b661aea36cc36p-2, 0x1.efe8a9d3dfd15p-2,
+0x1.daf7cc53b5efap-1, 0x1.4e4557429c8abp-1, 0x1.ff963a47ff2c7p-1, 0x1.156df9622adbfp-2,
+0x1.298b1b0253163p-4, 0x1.670ad782ce15bp-4, 0x1.d88b8febb1172p-1, 0x1.4378e13286f1cp-3,
+0x1.f767dc5beecfcp-2, 0x1.8206497b040c9p-2, 0x1.2d8fe4725b1fdp-1, 0x1.0217a042042f4p-1,
+0x1.056d12820ada2p-3, 0x1.0520d5660a41bp-1, 0x1.27335a8a4e66bp-2, 0x1.baaf71e7755eep-1,
+0x1.25a2869a4b451p-2, 0x1.e7211c53ce424p-3, 0x1.36ca30aa6d946p-2, 0x1.0dd98ab61bb31p-1,
+0x1.3fac126a7f582p-1, 0x1.149d8092293bp-2, 0x1.6be57ae2d7cafp-4, 0x1.dfe3dc9fbfc7cp-1,
+0x1.857134870ae27p-1, 0x1.e6323ac3cc647p-4, 0x1.b2b0e5836561dp-3, 0x1.75ffa1b2ebff4p-2,
+0x1.de1ea3c3bc3d4p-2, 0x1.47dd10b28fba2p-1, 0x1.b2f425c365e85p-1, 0x1.940e3c63281c8p-2,
+0x1.2c44cfe25889ap-2, 0x1.b28a600b6514cp-1, 0x1.54be1ae2a97c3p-1, 0x1.76a796a2ed4f3p-2,
+0x1.df6bbafbbed77p-1, 0x1.2d49aace5a935p-1, 0x1.0c32039e1864p-1, 0x1.b63f52536c7eap-2,
+0x1.ee4ccf8bdc99ap-1, 0x1.ce0f40839c1e8p-4, 0x1.dd37496bba6e9p-1, 0x1.7d40a142fa814p-4,
+0x1.3ee2bd767dc58p-1, 0x1.c343dac38687bp-3, 0x1.ea57860fd4af1p-1, 0x1.d1b400c3a368p-1,
+0x1.d5327b8baa64fp-2, 0x1.0b793cc216f28p-2, 0x1.bf1b16eb7e363p-2, 0x1.522a8162a455p-4,
+0x1.100b5eaa2016cp-1, 0x1.0d0a3ad61a147p-1, 0x1.452599028a4b3p-6, 0x1.2af9266255f25p-2,
+0x1.49d0822e93a1p-1, 0x1.db5598a3b6ab3p-3, 0x1.507c640aa0f8dp-1, 0x1.c6fea0638dfd4p-4,
+0x1.beb276db7d64fp-1, 0x1.037089ce06e11p-1, 0x1.02e6f23e05cdep-1, 0x1.53537b32a6a6fp-3,
+0x1.6bf5d3aad7ebap-2, 0x1.5e943482bd287p-3, 0x1.1028aa1e20515p-1, 0x1.2acd499a559a9p-2,
+0x1.84eeb7ef09dd7p-1, 0x1.c5aadbc38b55bp-5, 0x1.70864df6e10cap-1, 0x1.733b8776e6771p-1,
+0x1.58725732b0e4bp-3, 0x1.4dbd97629b7b3p-1, 0x1.a2e39b9f45c73p-1, 0x1.94ff534329feap-1,
+0x1.be8e8e137d1d2p-1, 0x1.8d3b21af1a764p-1, 0x1.66b35406cd66bp-1, 0x1.524f97aaa49f3p-2,
+0x1.2f7c00c25ef8p-5, 0x1.19037de23207p-3, 0x1.a6da38034db47p-2, 0x1.23031eba46064p-1,
+0x1.534b1a4ea6963p-1, 0x1.bb2c919b76592p-2, 0x1.b87fb1eb70ff6p-1, 0x1.3a3738fa746e7p-2,
+0x1.546baef6a8d76p-1, 0x1.08fc15f211f83p-1, 0x1.abf6e11357edcp-2, 0x1.131e25d2263c5p-1,
+0x1.8d93f7831b27fp-6, 0x1.d8e262cbb1c4cp-1, 0x1.67f3049ecfe61p-1, 0x1.84cf1323099e2p-2,
+0x1.843b7f430877p-4, 0x1.e06ebae3c0dd7p-3, 0x1.57ce2e62af9c6p-1, 0x1.b57627d76aec5p-1,
+0x1.28ecb8ea51d97p-2, 0x1.90a8f8ab2151fp-2, 0x1.28b1af4a51636p-1, 0x1.d525e483aa4bdp-2,
+0x1.61213b42c2427p-5, 0x1.972a95cb2e553p-2, 0x1.fe491613fc923p-3, 0x1.d4a0a1c7a9414p-1,
+0x1.6341b242c6836p-3, 0x1.e645998bcc8b3p-1, 0x1.f721b663ee437p-3, 0x1.af20b2835e416p-3,
+0x1.6433c802c8679p-4, 0x1.5135899ea26b1p-1, 0x1.8ecb4b5b1d969p-1, 0x1.7fd19352ffa32p-1,
+0x1.765e9342ecbd2p-4, 0x1.474afd428e96p-1, 0x1.ced2fcc39da6p-5, 0x1.8337815f066fp-1,
+0x1.411c4cc28238ap-3, 0x1.e5d140abcba28p-2, 0x1.2cab4e5a5956ap-2, 0x1.72cecbc2e59d9p-3,
+0x1.9796063b2f2c1p-2, 0x1.fe48abcbfc915p-1, 0x1.1f1b3c823e368p-1, 0x1.f8a4e60bf149dp-2,
+0x1.d9916a13b322dp-3, 0x1.dba5ab83b74b5p-3, 0x1.639135b2c7227p-2, 0x1.0adab6fa15b57p-1,
+0x1.3f3de73a7e7bdp-1, 0x1.da7a4a23b4f49p-1, 0x1.f56da93feadb5p-1, 0x1.554ffaeeaa9ffp-1,
+0x1.4c1f2a12983e5p-2, 0x1.d3ffbb03a7ff7p-3, 0x1.29f09cb653e14p-1, 0x1.fdc00333fb8p-2,
+0x1.6d162122da2c4p-3, 0x1.a7b90a4f4f721p-1, 0x1.6aa82e3ad5506p-1, 0x1.0f9802921f3p-2,
+0x1.f1dd27d3e3ba5p-2, 0x1.f2e6f323e5cdep-2, 0x1.e7652603ceca5p-7, 0x1.27ba66524f74dp-1,
+0x1.02f9db4205f3bp-3, 0x1.2456232248ac4p-4, 0x1.55e3cf62abc7ap-2, 0x1.220b140a44163p-2,
+0x1.177364be2ee6dp-1, 0x1.41478ede828f2p-1, 0x1.db7279ebb6e4fp-2, 0x1.e33e67dbc67cdp-1,
+0x1.3f903aaa7f207p-1, 0x1.9a8f2e83351e6p-6, 0x1.bf21b5c37e437p-2, 0x1.b5f4952f6be93p-1,
+0x1.077bc8b20ef79p-2, 0x1.915975bb22b2fp-1, 0x1.819e984b033d3p-2, 0x1.c2fbcb9385f79p-1,
+0x1.6bd3bfded7a78p-1, 0x1.6c79eac2d8f3dp-2, 0x1.184bc67e30979p-1, 0x1.1e354e423c6aap-5,
+0x1.2b3ce4225679dp-1, 0x1.08f18cc211e32p-3, 0x1.10c3567e2186bp-1, 0x1.86826c6b0d04ep-1,
+0x1.e9f56d83d3eaep-1, 0x1.edae12e3db5c2p-3, 0x1.c9cdb683939b7p-6, 0x1.c5c802d38b9p-2,
+0x1.74defe4ae9bep-1, 0x1.5ec024c2bd805p-5, 0x1.53ccf782a799fp-6, 0x1.b59d751f6b3afp-1,
+0x1.d3b635a3a76c7p-4, 0x1.6b209edad6414p-2, 0x1.1a8bfc823518p-3, 0x1.51ea2b72a3d45p-1,
+0x1.f6d7de4bedafcp-1, 0x1.345c3c1668b88p-1, 0x1.3528934a6a512p-1, 0x1.366818f26cd03p-1,
+0x1.4130b58a82617p-1, 0x1.4b96e282972dcp-5, 0x1.d8b95c3bb172cp-2, 0x1.c4ee99e389dd3p-1,
+0x1.a612e3e74c25cp-1, 0x1.ad2bfa475a57fp-1, 0x1.87ea65730fd4dp-1, 0x1.11e6a3c223cd4p-1,
+0x1.8da3be931b478p-3, 0x1.406c57e280d8bp-2, 0x1.23c9f8a64793fp-1, 0x1.8ea5d3cb1d4bap-1,
+0x1.c4e51e4389ca4p-2, 0x1.a46a790348d4fp-4, 0x1.152840322a508p-1, 0x1.98cff943319ffp-2,
+0x1.5ff1a7b2bfe35p-2, 0x1.2376ade646ed6p-1, 0x1.af4bfe0f5e98p-1, 0x1.26be91224d7d2p-4,
+0x1.3962b03672c56p-1, 0x1.b9ea65cb73d4dp-1, 0x1.da754743b4ea9p-1, 0x1.73d976eae7b2fp-1,
+0x1.bdead4d37bd5bp-3, 0x1.08c2330211846p-4, 0x1.8b8744b3170e9p-2, 0x1.994a4df33294ap-3,
+0x1.55748276aae9p-1, 0x1.faec35a3f5d87p-1, 0x1.9cbaac7339756p-1, 0x1.2d4a6ffa5a94ep-2,
+0x1.f4b47983e968fp-6, 0x1.122eb51a245d7p-2, 0x1.6e4f4782dc9e9p-3, 0x1.b5b887b36b711p-1,
+0x1.b21aa68364355p-4, 0x1.e37e3753c6fc7p-1, 0x1.8f3e56e31e7cbp-2, 0x1.335888f266b11p-2,
+0x1.0768c6820ed19p-2, 0x1.eb692417d6d25p-1, 0x1.4290c20285218p-4, 0x1.6626f266cc4dep-1,
+0x1.ff673343fece6p-5, 0x1.3d7a58727af4bp-1, 0x1.9477782328eefp-4, 0x1.9fde8e233fbd2p-2,
+0x1.83c4196307883p-3, 0x1.e1daed13c3b5ep-1, 0x1.e98e326bd31c6p-2, 0x1.9a53b68f34a77p-1,
+0x1.9bc552db378aap-1, 0x1.9e78c0eb3cf18p-2, 0x1.0e2d2d761c5a6p-1, 0x1.68010182d002p-6,
+0x1.e0a94dabc152ap-2, 0x1.d3f0cfcfa7e1ap-1, 0x1.c64a6e338c94ep-3, 0x1.1724a5222e495p-3,
+0x1.cedd056f9dba1p-1, 0x1.c9a8ff839352p-6, 0x1.b8dcc28b71b98p-2, 0x1.de82a93bbd055p-1,
+0x1.2ec945125d929p-2, 0x1.3802332670046p-1, 0x1.943b30eb28766p-1, 0x1.9b4feebb369fep-2,
+0x1.1b806a7a3700dp-1, 0x1.6f697162ded2ep-3, 0x1.67543bd6cea87p-1, 0x1.9f34cdbb3e69ap-1,
+0x1.1d0e01b23a1cp-3, 0x1.8fa654171f4cbp-1, 0x1.055bc01e0ab78p-1, 0x1.9ce7ce9339cfap-3,
+0x1.9a41590b3482bp-2, 0x1.37eaaf266fd56p-1, 0x1.37293ab66e527p-1, 0x1.2e11b2de5c236p-1,
+0x1.19c59c36338b4p-1, 0x1.5f829f42bf054p-4, 0x1.90cad2d32195ap-2, 0x1.6b15de22d62bcp-2,
+0x1.f65968bbecb2dp-2, 0x1.d69296dfad253p-1, 0x1.8195ee3b032bep-2, 0x1.eb815b33d702bp-1,
+0x1.aa8366ab5506dp-1, 0x1.325d92aa64bb2p-1, 0x1.8a5423c314a84p-4, 0x1.79606c1af2c0ep-1,
+0x1.40aadaa68155bp-1, 0x1.0db8e5be1b71dp-1, 0x1.57e31552afc63p-1, 0x1.d80f7d33b01fp-1,
+0x1.16ec63922dd8cp-3, 0x1.d83c8c7bb0792p-2, 0x1.4b6ee91a96dddp-2, 0x1.613b835ec277p-1,
+0x1.47f8a2968ff14p-1, 0x1.a1760c0342ec2p-6, 0x1.0070511600e0ap-1, 0x1.8f3c23071e784p-1,
+0x1.9cb2047739641p-1, 0x1.73044d02e608ap-7, 0x1.f67616abecec3p-1, 0x1.a74ac3e34e958p-3,
+0x1.3db6c05a7b6d8p-1, 0x1.2d9f515e5b3eap-1, 0x1.97e463db2fc8cp-1, 0x1.5df17232bbe2ep-3,
+0x1.598fa546b31f5p-1, 0x1.81273503024e7p-3, 0x1.0d074b9e1a0e9p-1, 0x1.52f16682a5e2dp-3,
+0x1.b6e321036dc64p-4, 0x1.cdd242bf9ba48p-1, 0x1.00f6d34201edap-3, 0x1.e15fcacbc2bf9p-1,
+0x1.002fd566005fbp-1, 0x1.c620e5238c41dp-3, 0x1.5ac036e2b5807p-1, 0x1.036ac03206d58p-3,
+0x1.7f411f06fe824p-1, 0x1.6546986aca8d3p-2, 0x1.8ea2d3c31d45ap-5, 0x1.c4fc37eb89f87p-1,
+0x1.9ec192733d832p-1, 0x1.7d434392fa868p-2, 0x1.2637bb464c6f7p-1, 0x1.cd746a0b9ae8dp-2,
+0x1.975aa4532eb55p-2, 0x1.354062e26a80cp-4, 0x1.d7d96023afb2cp-3, 0x1.a17d5a7342fabp-3,
+0x1.63a0ec82c741ep-4, 0x1.b1b1bac363637p-3, 0x1.a4640f2b48c82p-2, 0x1.6a2addead455cp-1,
+0x1.9a0bc00f34178p-1, 0x1.a859adb350b36p-3, 0x1.c1a73a77834e7p-1, 0x1.e736caa3ce6d9p-2,
+0x1.94c071632980ep-2, 0x1.9d5d0c2b3aba2p-2, 0x1.4857bef290af8p-1, 0x1.013c9cd202794p-1,
+0x1.390191a272032p-2, 0x1.889573c3112aep-1, 0x1.c538cf338a71ap-2, 0x1.9cb09e3739614p-1,
+0x1.fa1dad0bf43b6p-1, 0x1.eae4f3e3d5c9ep-4, 0x1.dd8b4e43bb16ap-1, 0x1.795ecc12f2bdap-1,
+0x1.dfffd563bfffbp-2, 0x1.f6757b7feceafp-1, 0x1.3e5b03fa7cb6p-1, 0x1.1d82fa423b05fp-2,
+0x1.6a2e3a8ad45c7p-2, 0x1.924afd032496p-3, 0x1.757bb226eaf76p-1, 0x1.80c46f6f0188ep-1,
+0x1.1675973a2ceb3p-2, 0x1.eb720a33d6e41p-1, 0x1.e923c60bd2479p-1, 0x1.6f5dd25adebbap-2,
+0x1.5f79e382bef3cp-3, 0x1.76ab9b42ed573p-2, 0x1.0ece38a21d9c7p-4, 0x1.f1ea38f3e3d47p-1,
+0x1.256c390e4ad87p-1, 0x1.e381018bc702p-1, 0x1.cb0b3c8396168p-2, 0x1.efcc71bfdf98ep-1,
+0x1.645f0f3ac8be2p-2, 0x1.6eeae9a2ddd5dp-4, 0x1.e2121d1bc4244p-2, 0x1.4eb0506e9d60ap-1,
+0x1.b672d0f76ce5ap-1, 0x1.d3a5762ba74afp-1, 0x1.d6c1dd4bad83cp-2, 0x1.b0907e036121p-1,
+0x1.10214a4220429p-5, 0x1.91d879cb23b0fp-2, 0x1.29ef4a1253de9p-1, 0x1.0101ff560204p-1,
+0x1.7ec370cafd86ep-2, 0x1.a129382342527p-3, 0x1.8fc37c771f87p-1, 0x1.7478d5aae8f1bp-1,
+0x1.99ba1a9333743p-2, 0x1.053f2e9a0a7e6p-1, 0x1.ea7a8a33d4f51p-2, 0x1.5817d8e6b02fbp-1,
+0x1.e1627193c2c4ep-2, 0x1.bcc2164379843p-2, 0x1.f8d84203f1b08p-6, 0x1.488fb1ae911f6p-1,
+0x1.99b6d8c3336dbp-1, 0x1.8d0449231a089p-4, 0x1.3a79ea9e74f3dp-1, 0x1.7e4623a2fc8c4p-2,
+0x1.5218ab02a4315p-5, 0x1.fff88dc3fff12p-5, 0x1.5ddf071abbbe1p-2, 0x1.8ea2249b1d445p-2,
+0x1.377398426ee73p-3, 0x1.9ff8921f3ff12p-1, 0x1.60162bc2c02c5p-5, 0x1.13edc20227db8p-7,
+0x1.739e0846e73c1p-1, 0x1.0162516202c4ap-1, 0x1.b4e0350b69c07p-1, 0x1.84a01ceb09404p-1,
+0x1.ca4e8e47949d2p-1, 0x1.bd9efe337b3ep-2, 0x1.0b44387a16887p-2, 0x1.13608d5226c12p-2,
+0x1.4719cd228e33ap-1, 0x1.56598b02acb31p-5, 0x1.fe291c57fc524p-1, 0x1.3f6da6c27edb5p-5,
+0x1.1aa4c74a35499p-1, 0x1.e6ccc2dbcd998p-2, 0x1.6c0eb352d81d6p-1, 0x1.6ac00282d58p-6,
+0x1.d1c76c8fa38eep-1, 0x1.7bd57566f7aafp-1, 0x1.53e5b1c2a7cb6p-1, 0x1.6b7e4552d6fc9p-1,
+0x1.ad75fe8b5aecp-1, 0x1.1cbf38ba397e7p-2, 0x1.550ab902aa157p-4, 0x1.c297893b852f1p-1,
+0x1.5cbe4a72b97c9p-2, 0x1.b321b55b66437p-2, 0x1.13d1371227a27p-2, 0x1.f878169bf0f03p-2,
+0x1.e625b323cc4b6p-3, 0x1.3fd3fc8a7fa8p-2, 0x1.008bc25601178p-1, 0x1.ed27750fda4efp-1,
+0x1.a14c4fa74298ap-1, 0x1.6ad7eebad5afep-2, 0x1.71c791f6e38f2p-1, 0x1.6b9addead735cp-1,
+0x1.943b76772876fp-1, 0x1.f769ae33eed36p-1, 0x1.f54b2497ea965p-1, 0x1.b6aa872b6d551p-2,
+0x1.99e8dc0333d1cp-6, 0x1.f37440ebe6e88p-1, 0x1.de983c03bd308p-2, 0x1.27740e2e4ee82p-1,
+0x1.cdb544ab9b6a9p-2, 0x1.6d6b4552dad69p-3, 0x1.32ca0e4265942p-1, 0x1.71441dc2e2884p-2,
+0x1.d73046bbae609p-1, 0x1.0d5f80021abfp-2, 0x1.2102a18242054p-4, 0x1.84a64543094c9p-1,
+0x1.150f5c5e2a1ecp-1, 0x1.3b06ad42760d6p-3, 0x1.473dce7e8e7bap-1, 0x1.c36e819786ddp-1,
+0x1.2852860250a51p-1, 0x1.d1266a07a24cdp-1, 0x1.7f5519c2feaa3p-2, 0x1.a1dbf2cb43b7ep-1,
+0x1.c441a12388834p-3, 0x1.c0364f37806cap-1, 0x1.8f0367db1e06dp-1, 0x1.25cb7ec24b97p-5,
+0x1.d6891a43ad123p-3, 0x1.00caf9ce0195fp-1, 0x1.7df795d6fbef3p-1, 0x1.3bb7a082776f4p-6,
+0x1.f0695003e0d2ap-2, 0x1.7342ba6ae6857p-1, 0x1.ca66013b94ccp-2, 0x1.0503eee20a07ep-1,
+0x1.66b6fb52cd6dfp-1, 0x1.d47f1e9fa8fe4p-1, 0x1.63bfe862c77fdp-4, 0x1.364676926c8cfp-3,
+0x1.7ecf7f82fd9fp-4, 0x1.5f420b4ebe841p-1, 0x1.0633ac8a0c676p-1, 0x1.c28daa03851b5p-7,
+0x1.e5f1cb4fcbe39p-1, 0x1.2a5400ba54a8p-1, 0x1.8bb07bef1760fp-1, 0x1.f6024f53ec04ap-2,
+0x1.7915ac0ef22b6p-1, 0x1.a5dc94d34bb93p-2, 0x1.7cdf5282f9beap-2, 0x1.42d0641a85a0dp-2,
+0x1.482968da9052dp-2, 0x1.7e1a3622fc347p-1, 0x1.0d1093521a212p-3, 0x1.15251cb62a4a4p-1,
+0x1.3e50855a7ca11p-1, 0x1.d2478cafa48f2p-1, 0x1.2781d4a24f03bp-1, 0x1.b3f2cbeb67e59p-1,
+0x1.a6250cfb4c4a2p-2, 0x1.4af2d4ea95e5bp-2, 0x1.bdd088f37ba11p-1, 0x1.cb472e7f968e6p-1,
+0x1.8bc24e031784ap-5, 0x1.4607131a8c0e2p-2, 0x1.a0963abb412c7p-2, 0x1.7f732032fee64p-1,
+0x1.de0aa0a3bc154p-3, 0x1.f98634dbf30c7p-2, 0x1.cd04bddb9a098p-1, 0x1.4eb9303a9d726p-2,
+0x1.701496e2e0293p-3, 0x1.a670d4c34ce1bp-2, 0x1.5ccd9d8ab99b4p-2, 0x1.07dbc4220fb79p-3,
+0x1.fd8c6b1bfb18dp-1, 0x1.d0ba5583a174bp-4, 0x1.3cf818b279f03p-1, 0x1.76a21726ed443p-1,
+0x1.0d05951a1a0b3p-1, 0x1.fb67c1f3f6cf8p-1, 0x1.80a4930301492p-5, 0x1.b11a498762349p-1,
+0x1.7981f816f303fp-1, 0x1.6d39b822da737p-3, 0x1.8c7ecc7318fdap-2, 0x1.6fa4fadadf49fp-2,
+0x1.6cafd5a2d95fbp-4, 0x1.edc13adbdb827p-1, 0x1.af1525535e2a5p-3, 0x1.00a881320151p-1,
+0x1.26754aa24cea9p-2, 0x1.4cae9222995d2p-4, 0x1.97df5f5b2fbecp-2, 0x1.57ed9462afdb3p-2,
+0x1.9932b7a332657p-2, 0x1.9c3acd0f3875ap-1, 0x1.5b4f5302b69eap-4, 0x1.441c03fe8838p-1,
+0x1.31fbcef263f7ap-2, 0x1.f86ea83bf0dd5p-1, 0x1.eb789c1bd6f14p-1, 0x1.ea061a63d40c3p-2,
+0x1.974e25332e9c5p-2, 0x1.33bed5ba677dbp-2, 0x1.36f9fe3a6df4p-1, 0x1.9266fb6b24cdfp-2,
+0x1.a7ed6b234fdadp-2, 0x1.cfc85bb39f90bp-3, 0x1.feaca6c3fd595p-4, 0x1.e0fc4aabc1f89p-1,
+0x1.bd6763737acecp-3, 0x1.5f7f7832befefp-3, 0x1.92169433242d3p-1, 0x1.e8dbd0f3d1b7ap-1,
+0x1.665c982accb93p-2, 0x1.6157e9a2c2afdp-3, 0x1.415c9cba82b94p-2, 0x1.c1888d9383112p-2,
+0x1.185cd51230b9bp-3, 0x1.0c7397b618e73p-1, 0x1.e16cc7ffc2d99p-1, 0x1.b2a3b52b65477p-2,
+0x1.360969fa6c12dp-1, 0x1.5ab8ef52b571ep-2, 0x1.8548a4c70a915p-1, 0x1.5162e602a2c5dp-8,
+0x1.265d12d24cba2p-3, 0x1.b0b28f2761652p-1, 0x1.46bec9ca8d7d9p-1, 0x1.c52a585b8a54bp-2,
+0x1.a921376352427p-1, 0x1.323765e2646edp-1, 0x1.d7983963af307p-1, 0x1.d32127e3a6425p-3,
+0x1.cc16d0bf982dap-1, 0x1.0e92379a1d247p-1, 0x1.3dfbc7ae7bf79p-1, 0x1.401b0c9a80362p-2,
+0x1.82844e870508ap-1, 0x1.7dd15c8afba2cp-1, 0x1.0213a1f204274p-2, 0x1.f1de2767e3bc5p-1,
+0x1.d5b13a97ab627p-1, 0x1.32065282640cap-5, 0x1.dab9f857b573fp-1, 0x1.11bf0d52237e2p-2,
+0x1.add97e435bb3p-3, 0x1.eda11ad3db423p-3, 0x1.69a3cd72d347ap-1, 0x1.631b29aac6365p-2,
+0x1.87dbde6b0fb7cp-1, 0x1.4b10956e96213p-1, 0x1.8adf6f6b15beep-1, 0x1.7bca90c2f7952p-2,
+0x1.f86d0d1bf0da2p-1, 0x1.1028142e20503p-1, 0x1.81101c5b02204p-2, 0x1.0811473210229p-3,
+0x1.81b546ab036a9p-2, 0x1.d1b5fd03a36cp-7, 0x1.24997dfe4933p-1, 0x1.a7ef6ad34fdedp-3,
+0x1.397e3dd672fc8p-1, 0x1.f8636ebbf0c6ep-2, 0x1.bd88495b7b109p-2, 0x1.05950e960b2a2p-1,
+0x1.587dde82b0fbcp-6, 0x1.cbfec5c397fd9p-5, 0x1.a5a294e34b453p-1, 0x1.8d483d7f1a908p-1,
+0x1.9a9148e735229p-1, 0x1.35632ec26ac66p-4, 0x1.7f2664e2fe4cdp-1, 0x1.7042837ae085p-1,
+0x1.ce6658039cccbp-4, 0x1.59e05d36b3c0cp-1, 0x1.f9220a23f2441p-1, 0x1.4a86552a950cbp-2,
+0x1.d548a3ebaa914p-1, 0x1.62c5d792c58bbp-1, 0x1.56d0bf6aada18p-1, 0x1.5d248252ba49p-1,
+0x1.5bacda02b759bp-2, 0x1.c3605dab86c0cp-2, 0x1.b09cab4361395p-5, 0x1.4c86f432990dfp-2,
+0x1.f1d84303e3b08p-1, 0x1.b723b1c36e476p-2, 0x1.d08f97cba11f3p-2, 0x1.6565ccaacacbap-2,
+0x1.c5b161b38b62cp-2, 0x1.9c293c0338528p-6, 0x1.1caec10a395d8p-1, 0x1.c56eeac38adddp-5,
+0x1.0913013e1226p-1, 0x1.fb72e5bbf6e5dp-1, 0x1.21ebfd4243d8p-1, 0x1.13d6f03627adep-1,
+0x1.832d2143065a4p-5, 0x1.8f1d244b1e3a5p-2, 0x1.423e5b62847cbp-2, 0x1.b2c41afb65883p-1,
+0x1.dc75effbb8ebep-2, 0x1.022c948204593p-4, 0x1.23069e72460d4p-1, 0x1.2807c302500f8p-1,
+0x1.7a25efc6f44bep-1, 0x1.1c28a89238515p-1, 0x1.cd4aed979a95ep-1, 0x1.4f6e93b29edd2p-1,
+0x1.fbba0083f774p-3, 0x1.241bacfe48376p-1, 0x1.59262c02b24c6p-2, 0x1.2cc4ed225989ep-1,
+0x1.72f6f402e5edfp-7, 0x1.8f39c16b1e738p-2, 0x1.d308673ba610dp-1, 0x1.f7a41ed7ef484p-1,
+0x1.a32eb99b465d7p-1, 0x1.76a06642ed40dp-2, 0x1.54ae0a52a95c1p-2, 0x1.0c0ed4e2181dbp-2,
+0x1.9062fa0320c5fp-2, 0x1.c705c6378e0b9p-1, 0x1.44bcb23a89796p-2, 0x1.d1447e43a289p-1,
+0x1.c278abef84f15p-1, 0x1.c44a56638894bp-1, 0x1.ca36dceb946dcp-2, 0x1.daab7e03b557p-1,
+0x1.17b1d10a2f63ap-2, 0x1.863a9c270c754p-1, 0x1.8d6f98fb1adf3p-1, 0x1.7a13e082f427cp-1,
+0x1.a6802eb74d006p-1, 0x1.60ec6ed2c1d8ep-2, 0x1.44374702886e9p-2, 0x1.20a61e7a414c4p-1,
+0x1.cc9edffb993dcp-1, 0x1.bd9a44537b349p-3, 0x1.c052c8a380a59p-3, 0x1.2e3580625c6bp-3,
+0x1.93823e1727048p-1, 0x1.1ca7c82e394f9p-1, 0x1.78524d3ef0a4ap-1, 0x1.994e19e7329c3p-1,
+0x1.e444a8e3c8895p-1, 0x1.4b5ab47696b57p-1, 0x1.90f238bb21e47p-1, 0x1.8773627b0ee6cp-1,
+0x1.aab9e5035573dp-7, 0x1.da49ef23b493ep-4, 0x1.af599d035eb34p-6, 0x1.9db8c9333b719p-2,
+0x1.27820c024f042p-8, 0x1.5fb24c12bf64ap-2, 0x1.4041c5b280839p-2, 0x1.c4c7b007898f6p-1,
+0x1.d08df1a3a11bep-3, 0x1.853c514f0a78ap-1, 0x1.9f732e073ee66p-1, 0x1.fff8c9dbfff19p-2,
+0x1.0b76ed7216edep-1, 0x1.2ce2c6fe59c59p-1, 0x1.e84115b3d0823p-3, 0x1.63ee384ac7dc7p-2,
+0x1.dd58fe67bab2p-1, 0x1.1c2be8f23857dp-1, 0x1.d29d3a9fa53a7p-1, 0x1.a9f7de5f53efcp-1,
+0x1.8b927a071724fp-1, 0x1.0ac7b322158f6p-3, 0x1.f5853e77eb0a8p-1, 0x1.1f14b81a3e297p-1,
+0x1.5f59b4f6beb37p-1, 0x1.6dd78bb2dbaf1p-1, 0x1.70c5a402e18b5p-2, 0x1.439e5dd6873ccp-1,
+0x1.72648052e4c9p-2, 0x1.25542ae24aa85p-3, 0x1.962380a32c47p-2, 0x1.7fba4f7aff74ap-2,
+0x1.093c913a12792p-2, 0x1.b1191a7362323p-2, 0x1.8eb98c571d732p-1, 0x1.0dda996a1bb53p-2,
+0x1.8865b34310cb6p-1, 0x1.76d37962eda6fp-4, 0x1.2ed3f2e25da7ep-3, 0x1.fc892fabf9126p-1,
+0x1.b416c07b682d8p-1, 0x1.eb282abfd6505p-1, 0x1.f90b292bf2165p-2, 0x1.7f1b5bd2fe36bp-2,
+0x1.180af1ba3015ep-1, 0x1.7695da06ed2bbp-1, 0x1.7184ca0ee3099p-1, 0x1.eac7e03bd58fcp-2,
+0x1.258385ea4b071p-2, 0x1.442204ae88441p-1, 0x1.3eb79cf27d6f4p-2, 0x1.e543cf83ca87ap-5,
+0x1.86d3f1770da7ep-1, 0x1.29c219e253843p-2, 0x1.3d68f5167ad1fp-1, 0x1.cc5b4cd398b6ap-2,
+0x1.5c4c5002b898ap-8, 0x1.f5cbc717eb979p-1, 0x1.4e6021e29cc04p-4, 0x1.77d5b192efab6p-2,
+0x1.f9068e63f20d2p-4, 0x1.e9bb891bd3771p-2, 0x1.7bc8008af79p-1, 0x1.877e34db0efc7p-2,
+0x1.cd6a51cb9ad4ap-1, 0x1.0a818cde15032p-1, 0x1.4aac67229558dp-1, 0x1.55d0050aaba01p-1,
+0x1.395bfc0e72b8p-1, 0x1.966163df2cc2cp-1, 0x1.525934b6a4b27p-1, 0x1.dae5790bb5cafp-2,
+0x1.81898e9b03132p-1, 0x1.3b7b252276f65p-3, 0x1.ad006a735a00dp-1, 0x1.332900aa6652p-2,
+0x1.c574a34f8ae94p-1, 0x1.1e85347e3d0a7p-1, 0x1.8ef870731df0ep-1, 0x1.60d99902c1b33p-3,
+0x1.8a9ce4a31539dp-3, 0x1.72a1f762e543fp-4, 0x1.da2a8cf3b4552p-3, 0x1.e97b2a9fd2f65p-1,
+0x1.866a97bb0cd53p-2, 0x1.b3f3985367e73p-1, 0x1.9f51a20b3ea34p-2, 0x1.8bdbc8fb17b79p-2,
+0x1.a9bf5f67537ecp-1, 0x1.f2e9aa8be5d35p-2, 0x1.81d8bd4b03b18p-1, 0x1.e8e03133d1c06p-1,
+0x1.ee5299d3dca53p-1, 0x1.fb417ba3f682fp-2, 0x1.593e973ab27d3p-2, 0x1.bbbceb9b7779dp-1,
+0x1.044955820892bp-6, 0x1.f74bb2c3ee976p-1, 0x1.118cf0a62319ep-1, 0x1.417e46ba82fc9p-1,
+0x1.8dad169f1b5a3p-1, 0x1.8f9895631f313p-3, 0x1.77881a02ef103p-4, 0x1.0f36a5361e6d5p-1,
+0x1.6589dd42cb13cp-2, 0x1.dbf16db3b7e2ep-1, 0x1.a8cb258b51965p-1, 0x1.e0e647c3c1cc9p-3,
+0x1.f4ed445be9da9p-2, 0x1.37c395fe6f873p-1, 0x1.a0dff06341bfep-2, 0x1.5d1ddb5aba3bbp-1,
+0x1.6617d4eacc2fbp-1, 0x1.46fa9b6e8df53p-1, 0x1.469905f68d321p-1, 0x1.4a69062294d21p-4,
+0x1.f5dc677bebb8dp-2, 0x1.641d6fc2c83aep-5, 0x1.de760a83bcec1p-2, 0x1.495b264292b65p-2,
+0x1.0fb6ac421f6d6p-1, 0x1.c44f0a23889e1p-3, 0x1.1b1b88aa36371p-2, 0x1.fc128c23f8252p-2,
+0x1.6eb4805add69p-1, 0x1.3a2d0ff2745a2p-1, 0x1.738c635ae718cp-2, 0x1.76d6cb0aedad9p-1,
+0x1.3178c2b262f18p-1, 0x1.cb53225396a64p-1, 0x1.70aa2382e1544p-2, 0x1.7e4bb29afc976p-2,
+0x1.79ca3d42f3948p-4, 0x1.ce8c2a039d185p-2, 0x1.ce5c7e879cb9p-1, 0x1.c3fc6c9387f8ep-2,
+0x1.866f05630cde1p-2, 0x1.7727a40eee4f5p-1, 0x1.5a37c83ab46f9p-1, 0x1.bdae24e37b5c5p-1,
+0x1.5dd67412bbacfp-2, 0x1.553e0362aa7cp-4, 0x1.1acc003a3598p-1, 0x1.5030ef02a061ep-5,
+0x1.71a25bdae344bp-1, 0x1.859418b30b283p-3, 0x1.f2817da3e503p-4, 0x1.b2423e6364848p-3,
+0x1.de9b74a3bd36fp-3, 0x1.2d8b34fa5b167p-1, 0x1.113e22ba227c4p-1, 0x1.875d896b0ebb1p-1,
+0x1.9e9ef7833d3dfp-1, 0x1.9ecbe70f3d97dp-1, 0x1.0acd9efa159b4p-2, 0x1.0d5377de1aa6fp-1,
+0x1.b1f1ee0363e3ep-2, 0x1.3f2d012a7e5ap-1, 0x1.085485ca10a91p-2, 0x1.4e3736029c6e7p-6,
+0x1.0a80237a15004p-1, 0x1.3c7f54a678febp-1, 0x1.932f2603265e5p-2, 0x1.39b96b227372dp-1,
+0x1.1e2b4d423c56ap-4, 0x1.2fe8230a5fd04p-2, 0x1.bb7a168376f43p-5, 0x1.cdf9d8b39bf3bp-2,
+0x1.e376b203c6ed6p-6, 0x1.75ef69a6ebdedp-1, 0x1.4956227292ac4p-2, 0x1.7c0ddf3af81bcp-2,
+0x1.a0972a13412e5p-1, 0x1.bf7711737eee2p-1, 0x1.a613fd1b4c28p-2, 0x1.123985ea24731p-1,
+0x1.06e0bd020dc18p-4, 0x1.115a2e4622b46p-1, 0x1.7eca1582fd943p-1, 0x1.3105e992620bdp-2,
+0x1.f72b19e3ee563p-4, 0x1.2010707a4020ep-2, 0x1.fe07e343fc0fcp-5, 0x1.dd845abfbb08bp-1,
+0x1.76a0fa42ed41fp-4, 0x1.4a8e9b62951d3p-2, 0x1.d5afa533ab5f5p-2, 0x1.07cd164a0f9a3p-1,
+0x1.e4744edbc8e8ap-1, 0x1.6f02157ede043p-1, 0x1.123ecffe247dap-1, 0x1.dde8e4a3bbd1dp-2,
+0x1.5702d44aae05bp-2, 0x1.dbd662ffb7accp-1, 0x1.456eeb828adddp-4, 0x1.9e8da79b3d1b5p-2,
+0x1.cf29d2039e53ap-3, 0x1.1195fb62232bfp-3, 0x1.b643c0276c878p-1, 0x1.05cc54220b98bp-2,
+0x1.ba54e87f74a9dp-1, 0x1.6bbb4582d7769p-3, 0x1.40ed19ae81da3p-1, 0x1.5aec128eb5d82p-1,
+0x1.a65e2d034cbc6p-5, 0x1.3f7183c27ee3p-5, 0x1.b49661e3692ccp-3, 0x1.da0fd383b41fap-4,
+0x1.255146824aa29p-1, 0x1.ebefadfbd7df6p-1, 0x1.a789de7b4f13cp-2, 0x1.6436a9bec86d5p-1,
+0x1.efdf98d3dfbf3p-3, 0x1.e74adae3ce95bp-2, 0x1.41bb047a83761p-1, 0x1.55980b02ab301p-2,
+0x1.98ecbb2331d97p-1, 0x1.6496b8a2c92d7p-4, 0x1.b2991bcb65323p-1, 0x1.7d6109fafac21p-1,
+0x1.9b94ec933729ep-1, 0x1.89afd78b135fbp-2, 0x1.b155f12362abep-3, 0x1.1c595ad238b2bp-3,
+0x1.415c9d8282b94p-2, 0x1.2a06b372540d6p-2, 0x1.165d2a822cba5p-1, 0x1.1478c34228f18p-1,
+0x1.b2d1b12365a36p-2, 0x1.9941d5533283bp-2, 0x1.975eed572ebdep-1, 0x1.277b82224ef7p-2,
+0x1.278fbc0a4f1f8p-1, 0x1.b0980e0361302p-2, 0x1.eea9d39fdd53ap-1, 0x1.41f59eda83eb4p-1,
+0x1.d8863e7bb10c8p-2, 0x1.6f3db052de7b6p-3, 0x1.7d37994efa6f3p-1, 0x1.19465bc2328cbp-5,
+0x1.1efc68423df8dp-3, 0x1.43f2222287e44p-3, 0x1.75cb0f7aeb962p-1, 0x1.876e008b0edcp-2,
+0x1.44a1f5fa8943fp-1, 0x1.6f0c27eade185p-2, 0x1.6e8305c6dd061p-1, 0x1.bb1d6233763acp-2,
+0x1.c831d6139063bp-2, 0x1.211c219242384p-1, 0x1.6bbeec42d77dep-3, 0x1.feb75e63fd6ecp-3,
+0x1.e5f40d57cbe82p-1, 0x1.8e8a6eb31d14ep-2, 0x1.8d885ca31b10cp-2, 0x1.0d44b8321a897p-2,
+0x1.5c489112b8912p-1, 0x1.dd2158d3ba42bp-1, 0x1.9b1b1f5b36364p-1, 0x1.ad8b4d035b16ap-4,
+0x1.538486f2a7091p-2, 0x1.327a0cae64f42p-1, 0x1.92de556325bcbp-2, 0x1.d151ff83a2a4p-1,
+0x1.58c27602b184fp-6, 0x1.7031fca2e064p-2, 0x1.13479e5e268f4p-1, 0x1.ee1265dbdc24dp-2,
+0x1.13e86a6627d0dp-1, 0x1.20fe6f5241fcep-2, 0x1.089d98ae113b3p-1, 0x1.5ba78476b74f1p-1,
+0x1.c2f7806385efp-2, 0x1.f9a2a093f3454p-3, 0x1.f5e84bc3ebd09p-5, 0x1.30edb14261db6p-4,
+0x1.35eebc1a6bdd8p-1, 0x1.8de18a831bc31p-1, 0x1.03ac67420758dp-1, 0x1.a07a720340f4ep-5,
+0x1.5dfb5822bbf6bp-2, 0x1.5e9c2252bd384p-1, 0x1.336afd7a66d6p-2, 0x1.29e372d253c6ep-2,
+0x1.2f0acd425e15ap-4, 0x1.6079ad0ec0f36p-1, 0x1.1b94158237283p-1, 0x1.8229eabb0453dp-1,
+0x1.3d9b05de7b361p-1, 0x1.6d5e69b2dabcdp-2, 0x1.b7db545b6fb6bp-1, 0x1.e75d495bceba9p-1,
+0x1.e929418bd2528p-1, 0x1.0294fe1a052ap-2, 0x1.b8af48db715e9p-1, 0x1.f3ef553be7debp-1,
+0x1.39637d5e72c7p-1, 0x1.97edce6b2fdbap-2, 0x1.d5f1104babe22p-2, 0x1.352f9f026a5f4p-3,
+0x1.5c761edeb8ec4p-1, 0x1.f39620d3e72c4p-1, 0x1.a8f36c3b51e6ep-1, 0x1.ef8ef863df1dfp-4,
+0x1.c7fb23e38ff64p-3, 0x1.c851f0f790a3ep-1, 0x1.903e54d3207cbp-3, 0x1.a7ed85134fdb1p-1,
+0x1.56337b76ac66fp-1, 0x1.67bbfc76cf78p-1, 0x1.c1f52c3783ea6p-1, 0x1.4c49e2029893cp-7,
+0x1.8cb03d8b19608p-2, 0x1.6eaaabc2dd555p-3, 0x1.3445c1e2688b8p-2, 0x1.d872f0dbb0e5ep-2,
+0x1.bc2457ff7848bp-1, 0x1.b5b6f6736b6dfp-1, 0x1.b98d8c93731b2p-3, 0x1.f37ebbb3e6fd7p-2,
+0x1.b198ad2363316p-3, 0x1.31f5bc0263eb8p-4, 0x1.c2394e638472ap-2, 0x1.563db342ac7b6p-3,
+0x1.4f126d1a9e24ep-2, 0x1.3397e01a672fcp-2, 0x1.25fb08224bf61p-3, 0x1.e0ecb3ebc1d96p-1,
+0x1.65c2d742cb85bp-1, 0x1.34774a3268ee9p-1, 0x1.71c4dd42e389cp-4, 0x1.8471ec4308e3ep-2,
+0x1.280d6b02501adp-1, 0x1.d72c07e3ae581p-1, 0x1.002ad52e0055bp-1, 0x1.9a0c33fb34186p-1,
+0x1.9f7df8d73efbfp-1, 0x1.643a6a66c874dp-1, 0x1.41f9b90e83f37p-1, 0x1.eb62e89bd6c5dp-2,
+0x1.97eccdb32fd9ap-2, 0x1.03eee54207dddp-1, 0x1.f5c537abeb8a7p-2, 0x1.924e85a3249d1p-1,
+0x1.5f999032bf332p-1, 0x1.95057cc72a0bp-1, 0x1.fa1ff833f43ffp-3, 0x1.1bbde82e377bdp-1,
+0x1.4abc73369578ep-1, 0x1.d9d6c26bb3ad8p-2, 0x1.57d46042afa8cp-5, 0x1.b7229e7f6e454p-1,
+0x1.132a18b626543p-1, 0x1.ed33da73da67bp-2, 0x1.96416a032c82dp-6, 0x1.bab34f437566ap-1,
+0x1.9065dd4720cbcp-1, 0x1.58c33562b1867p-3, 0x1.9ba0032b374p-1, 0x1.ec51690bd8a2dp-2,
+0x1.8aa8178b15503p-1, 0x1.c9d89ed393b14p-1, 0x1.b861aaa770c35p-1, 0x1.656b051acad61p-2,
+0x1.a104a6b742095p-1, 0x1.7118ffaae232p-2, 0x1.3306da12660dbp-3, 0x1.40829f8a81054p-1,
+0x1.cc6ea38398dd4p-5, 0x1.8ebb6f931d76ep-1, 0x1.b1a09ea363414p-4, 0x1.d17aa223a2f54p-2,
+0x1.2554a9a24aa95p-2, 0x1.3116afaa622d6p-1, 0x1.ec2f5ac3d85ebp-3, 0x1.f243e503e487dp-1,
+0x1.8c3858db1870bp-2, 0x1.f327a983e64f5p-2, 0x1.0e01cd2e1c03ap-1, 0x1.0d89fa021b13fp-5,
+0x1.e67f35f7ccfe7p-1, 0x1.237f133646fe2p-1, 0x1.c7fb3e238ff68p-1, 0x1.f3529d53e6a54p-2,
+0x1.a19006c343201p-5, 0x1.d4ad4973a95a9p-1, 0x1.68b93bd2d1727p-2, 0x1.aa7eddb354fdcp-1,
+0x1.56f0b642ade17p-4, 0x1.3ff284427fe51p-3, 0x1.414f246a829e5p-2, 0x1.b5862e576b0c6p-1,
+0x1.9d53fe033aa8p-5, 0x1.6424f372c849ep-3, 0x1.a0eec38341dd8p-3, 0x1.bad9e69775b3dp-1,
+0x1.1195bcb2232b8p-1, 0x1.69facecad3f5ap-2, 0x1.f6b90c43ed722p-2, 0x1.2e5ca6ea5cb95p-1,
+0x1.0ee35be21dc6bp-3, 0x1.319099f663213p-1, 0x1.719f7f82e33fp-5, 0x1.acc65793598cbp-2,
+0x1.8a9d2683153a5p-3, 0x1.244b9d5a48974p-2, 0x1.914e219b229c4p-2, 0x1.28c3760e5186fp-1,
+0x1.8bb9a36f17734p-1, 0x1.d6a8ddfbad51cp-1, 0x1.399c15b273383p-1, 0x1.7238d962e471bp-1,
+0x1.f44fe25be89fcp-2, 0x1.019753d2032eap-1, 0x1.af88a0235f114p-3, 0x1.1440f19a2881ep-1,
+0x1.ac893a8359127p-2, 0x1.203ec5f2407d9p-1, 0x1.7d7f9e92faff4p-2, 0x1.0122b40a02457p-1,
+0x1.703b6702e076dp-1, 0x1.5f676182bececp-1, 0x1.6d51c4badaa39p-2, 0x1.8a10a6e314215p-1,
+0x1.b8709e5f70e14p-1, 0x1.1ee4933e3dc92p-1, 0x1.44ea8d7a89d52p-1, 0x1.940cb61b28197p-2,
+0x1.d3e1faa7a7c3fp-1, 0x1.011c4e620238ap-3, 0x1.f86301f7f0c6p-1, 0x1.79ad19c2f35a3p-5,
+};
+
+static const int babl_num_conversion_test_pixels = 128;
+
+static const double *babl_conversion_test_pixels = babl_path_test_pixels;
+
+static const int babl_num_format_test_pixels = 256;
+
+static const double *babl_format_test_pixels = babl_path_test_pixels;
+
+static const int babl_num_model_test_pixels = 512;
+
+static const double babl_model_test_pixels[2048] = {
+-0x1.0f8630dbb8a62p-4, 0x1.18480e35ca29bp+0, 0x1.b444a8503556p-1, 0x1.c2ddee8785bbep-1,
+0x1.261ae25d19029p+0, 0x1.80029017ccd1ep-1, 0x1.7b673ed62a01bp-2, -0x1.ce043776cf3bcp-5,
+0x1.0a554d9ee1776p-1, 0x1.37c9b5c5a2c69p-2, -0x1.9dae22833b5c8p-5, 0x1.2330732eacc75p+0,
+0x1.99315c726595ep-1, 0x1.fffac770ccc24p-4, -0x1.ab6b8d368a0a8p-6, 0x1.393ecc9c0c172p-3,
+0x1.277773ac4eeeep+0, 0x1.605f4ecac0be9p-2, 0x1.84d85897d67d8p-1, 0x1.8f8a855febe1cp-1,
+0x1.2d51d1bbf43d2p-1, 0x1.2efc2fa1912b9p+0, 0x1.2db59d7b2838p-1, 0x1.e74c8bf234ff7p-2,
+0x1.3df9bc41af26ap-1, 0x1.33c1a828cde9cp-4, 0x1.d5f2398878b14p-1, 0x1.624b94145e30cp-1,
+0x1.b0ea300295078p-1, -0x1.ce7858d069cp-8, 0x1.c6ae22838d5c4p-4, 0x1.f55fd04d84594p-1,
+-0x1.cb99d59064009p-4, 0x1.29c069865380dp+0, 0x1.51d758690a152p-1, -0x1.4e8f718f69ebcp-3,
+0x1.6d1cfcb873d38p-1, -0x1.5b6dba491d41ep-3, -0x1.43b72e9c21088p-6, 0x1.10be3f0eee49p-5,
+0x1.56dfa56de0f27p-2, 0x1.09b72b3bad07ep-3, -0x1.df3383b6f19a8p-6, -0x1.0e29ba154f86cp-4,
+0x1.d1a71446d6815p-2, 0x1.2845b77bea25p-3, 0x1.25e1c4957ef6cp-2, 0x1.a2b81620123cfp-2,
+0x1.60a77baac14eep-1, -0x1.3a74ae0f41b63p-3, -0x1.5ff57f02bfebp-7, 0x1.3c9737d5ac618p-4,
+-0x1.5c2ccab2b859ap-3, 0x1.8e9c2de5839ecp-1, 0x1.819f935a36726p-1, 0x1.4d54effb6776ap-1,
+0x1.0dbd64ab4eaep+0, 0x1.e256ccf8917a5p-2, 0x1.24e876a57d042p-3, 0x1.65fe92ed32638p-1,
+0x1.53f4dc310e5p-1, 0x1.d0ec90c06ea5fp-2, 0x1.e9eff99d6d797p-2, 0x1.80e807eb01dp-1,
+0x1.ab216a01bca93p-2, -0x1.f9711343f2e28p-5, 0x1.93aa91ed8dbb8p-1, -0x1.1dc5a568a1f1cp-4,
+-0x1.00c1960201834p-5, 0x1.eff33ee4acb34p-1, 0x1.4ee656a904332p-3, 0x1.01ca1fbd36c76p-1,
+-0x1.a02ae5c34055fp-4, 0x1.564cbfe5dfcc9p-2, 0x1.466b4ee0f33dp-1, 0x1.1b3493d1699c4p-1,
+0x1.5b9e343850d6p-1, 0x1.1fe14bcbd95c3p+0, 0x1.297b82a3ec90ap+0, 0x1.577d25dc4893ep-3,
+0x1.2bc5e93d2458ap+0, -0x1.8ef372031de7p-5, 0x1.c7b12db05c2f1p-2, -0x1.97971a799594ap-3,
+0x1.dc135d2bb826cp-1, -0x1.dc787336ec28p-10, 0x1.4dd58fc902118p-1, 0x1.9127c0165582ap-1,
+0x1.56a390a913ad8p-1, 0x1.fd7613d8c7b8ep-1, 0x1.217fd92f0fcc8p-2, 0x1.10c819ceee5cep-3,
+0x1.fe17d733fc2f8p-3, 0x1.ec1e4fcca5096p-1, 0x1.15c03a6291e6dp+0, 0x1.bb7d1139dd608p-1,
+0x1.1976d28232edap+0, 0x1.58c4a046b1894p-1, 0x1.fe2ac2f32f88ap-1, -0x1.0e136b1ee8f3bp-3,
+0x1.c4a2f17ebc791p-2, -0x1.4820dce8f6a88p-5, 0x1.24abab617c8a8p-1, 0x1.14b2826d5c984p-1,
+0x1.fa1571158dc47p-2, 0x1.2c24f59bf1e2p-7, -0x1.b3fa8169ce5b8p-4, -0x1.b7af351d08f88p-6,
+-0x1.0f99d7eeec008p-4, -0x1.27bac54582a8cp-3, 0x1.5d106c6920873p-2, -0x1.866e777ca676ap-4,
+0x1.c43efa69eee4p-8, 0x1.f8c7337324c18p-1, -0x1.8269790fd19fdp-4, 0x1.230120c646024p+0,
+0x1.2f1faecff7d8fp+0, 0x1.83eec70d6e43ep-1, 0x1.70c39b36e1872p-1, 0x1.4e7c87e29cf9p-1,
+0x1.1afe747a35fcep-1, -0x1.938b7a5ff3e3cp-3, 0x1.f914f4bcbef6cp-1, 0x1.00756856cdb7ap+0,
+0x1.eda1d79b0e76ep-1, 0x1.be2f0315e2c46p-1, 0x1.56017b7b78cfcp-1, 0x1.ba29163374522p-1,
+0x1.611a79e1289b5p-2, 0x1.db8bb00550b0fp-2, 0x1.dd0aa1d7ba154p-1, 0x1.f9451c1bf28a2p-1,
+0x1.3faa309a7f546p-1, 0x1.369fcd9a6d3f9p-2, 0x1.4f22703a9e44dp-2, -0x1.4d8bea35ce4b1p-4,
+0x1.0666e10a0ccdcp-1, 0x1.aef09cb82aae1p-2, 0x1.77bb7bb622aap-4, 0x1.4ada0c782f4dcp-1,
+0x1.e7e006e236267p-2, 0x1.43e60c11baff4p-1, 0x1.8072a3ef00e54p-1, 0x1.5ddee7d1eef1p-1,
+0x1.ac8db231bf81dp-2, 0x1.b68bdb336d17cp-1, 0x1.3d7ac2f27af58p-1, 0x1.9c3fa0a4d218dp-2,
+0x1.a82877a9b6b75p-2, 0x1.1f5fdef571f2ep-3, -0x1.272838dbe7ea2p-3, 0x1.2abc8b5abbdf8p+0,
+0x1.256dfe2f17a8cp-3, 0x1.0ad8a67615b14p+0, 0x1.effd80fcacc7cp-1, -0x1.7b4879fc902aap-4,
+0x1.6d79e9960e27p-1, 0x1.bf312c184b2f1p-2, 0x1.f1266d5a48b34p-1, -0x1.217cff95762d4p-3,
+0x1.19e26a3d66f81p+0, 0x1.67caa8c602c88p-1, 0x1.0ba6214e7db2bp+0, 0x1.0d089ea94d448p-1,
+-0x1.8d2f5b631a5ecp-3, 0x1.61dc514f90856p-3, 0x1.49bd87ce937bp-1, 0x1.0981709d4636p-1,
+0x1.9655c9165fdecp-1, 0x1.df1b5dabbe36cp-1, -0x1.20ae9568a7c3cp-5, 0x1.1efb30dbd78fcp-4,
+0x1.793606ae259f3p-2, 0x1.d4ce20fedccf6p-1, 0x1.e824b453d0496p-1, 0x1.f94842d658f6ep-1,
+0x1.24f395cbe380cp-1, 0x1.7e7221b4967ddp-2, 0x1.8406b2f3080d4p-3, 0x1.2fb71c0392a17p+0,
+0x1.6d776f03a7bbap-1, 0x1.f67813b0b9bccp-3, 0x1.2740742b1b4dbp+0, 0x1.0e9caa7aea062p+0,
+0x1.67475b62ce8e8p-4, 0x1.d81802e6e3632p-1, 0x1.2a1b560e5436ap+0, 0x1.00649db4672fap+0,
+0x1.4528ca1c23eb2p-3, 0x1.def6b3108aba2p-1, 0x1.0f6830f7b86ap+0, 0x1.ea8a095d6ead8p-5,
+0x1.c0b5ead51b057p-2, 0x1.cfb63e206c394p-1, 0x1.9217a5ab242f4p-1, 0x1.c6eb09fb8dd5fp-2,
+-0x1.f1c89fbd7d2afp-4, 0x1.d5bb1c36dea96p-3, 0x1.29aeae00b9c3cp+0, 0x1.be831b85169fcp-1,
+-0x1.1dc41b28a1eecp-5, -0x1.289f9e08b7a5cp-4, 0x1.2464740648c8fp+0, 0x1.1125280aef172p-1,
+0x1.0b1049d216209p+0, 0x1.ca8735f461db4p-1, 0x1.480e08f5c34f3p-2, 0x1.a95b86081f83dp-2,
+0x1.1acf0342359dcp-4, 0x1.6b6f179e0a116p-1, 0x1.9b6b29499d3cbp-2, 0x1.f737b5d254d5cp-1,
+0x1.27b9c17b1c405p+0, 0x1.6ba02d1e0a737p-2, 0x1.ae0aa45c28e22p-1, 0x1.5f607f692527p-5,
+0x1.3c0d984f44e7cp-4, 0x1.9bdaea126ae9p-1, -0x1.3e9c8c1c16d2cp-3, 0x1.be6497eeaffc5p-2,
+0x1.146b36b6f5a32p-1, 0x1.1ac7d2a768c2ep+0, 0x1.644152f92ee9p-1, 0x1.2d964943f4c63p+0,
+0x1.9edf7d033dbfp-1, 0x1.1fe52470a630ap-2, 0x1.b077623360eebp-2, 0x1.c70ccf778e19ap-1,
+0x1.6bc7bfac71292p-1, 0x1.8a654d5e47fddp-2, 0x1.1f298490a4b96p-1, 0x1.c051e4604d708p-1,
+0x1.068519547370ap-1, 0x1.018c0631364b4p-1, 0x1.ac4298135885p-3, 0x1.6c7e8d247296bp-2,
+0x1.96b356fcc7002p-3, 0x1.757e10e61e2f6p-1, 0x1.f1536ffcaf73ap-1, 0x1.deda391bbdb45p-2,
+0x1.ea1b0860a102ep-3, 0x1.628a78d5f8482p-3, 0x1.007cd7e867601p-2, 0x1.8e4f7a8983054p-3,
+0x1.74d91b2ae9b22p-1, -0x1.c0eab0dd1b6f1p-4, 0x1.bfe09a09e6279p-2, 0x1.01609a4d9c5adp+0,
+0x1.ca23fa5d2de18p-1, 0x1.ed5f20c8a78afp-2, 0x1.ee3468b0a9358p-3, 0x1.e0a32aa08e13p-3,
+0x1.8bb19e8e4a967p-2, 0x1.231a69c5dfce7p+0, 0x1.b3bbdb269aaacp-3, -0x1.ae1a219cf5dp-9,
+0x1.bf03fd604ad4ap-3, 0x1.ab910e49bd888p-1, 0x1.15e28dde2bc51p+0, 0x1.20f792b575226p+0,
+0x1.4ba9d24f642p-6, 0x1.c91073cd2bba7p-2, 0x1.9bdaa35f37b54p-1, 0x1.7748ce4d54f8p-1,
+0x1.263d533f19477p+0, -0x1.7dec741fc8a5cp-3, -0x1.c6f28c638de52p-4, 0x1.2f045745913bcp-3,
+0x1.7c695a44926c4p-1, 0x1.0f6dc26e1edb8p+0, 0x1.a19498c5a98f8p-1, 0x1.2eab41645d568p+0,
+0x1.117bca5bbc91p-5, -0x1.124d86c88b018p-3, 0x1.6a0febfc6db96p-3, 0x1.ec573e3ca57b4p-1,
+-0x1.64a5161c62e4p-5, 0x1.a0daae6a74e88p-1, 0x1.88b20c6bde30ep-1, 0x1.0d2007b0e70cep+0,
+0x1.891ec31645708p-4, -0x1.889cff4fde06dp-3, 0x1.60139d1c59c0cp-4, 0x1.5d630e10545fap-1,
+0x1.2539fd0f1740cp+0, 0x1.feafa1a730927p-2, 0x1.c21b5a5ab769ep-1, 0x1.4f3a4c2904daep-3,
+0x1.1209e2c55747p-3, 0x1.877a0fab0ef42p-1, 0x1.7aba90495bdb4p-4, 0x1.6a8c5b546eb25p-2,
+0x1.66f8c9693457p-7, 0x1.18cc2dea31985p+0, -0x1.cebb5376d0a9fp-4, -0x1.44fdcc28f0624p-5,
+0x1.1c41d2996bb6ep+0, -0x1.89eab29cad6f8p-6, 0x1.3baf3eea775e7p-2, 0x1.4e8699110373ap-1,
+-0x1.4f68dc929ed1cp-3, -0x1.37d1715c093c9p-4, 0x1.4576b56dbe20ap-1, 0x1.1d1f5f68a0a5p-4,
+-0x1.49ca5dcf6062p-7, 0x1.03308b699ffabp+0, -0x1.59acf10919c05p-3, 0x1.2bd3ae358ada8p-3,
+0x1.40d55ed74e778p-1, 0x1.98ad368ffe272p-1, -0x1.316b7735960cp-9, 0x1.d85f9da07d8cp-1,
+0x1.9cec5d2806a58p-1, 0x1.226edd257810ep-2, 0x1.9eb88a94d70a9p-2, 0x1.80f9f0da3527p-1,
+0x1.f6f5a5ccbab8p-1, 0x1.5889c9c9177ap-4, 0x1.1d9775283b2eep+0, -0x1.57723f6f7bb16p-4,
+0x1.0c78d7a54c24ep+0, 0x1.07f57b687651p-7, 0x1.e17c98508fc5fp-2, -0x1.1f634fd8a52d1p-3,
+-0x1.8571a54fd7b03p-4, 0x1.1d4d481fd4342p-1, 0x1.47b6b5b5c2ap-6, -0x1.7a43d77627bafp-3,
+0x1.776458f1552f2p-1, 0x1.0e7bbb89502aap-1, 0x1.565c0999dfeb4p-1, 0x1.89f08838ad7aap-1,
+0x1.4de7f3c435698p-1, 0x1.ab62c4dcf05fp-4, 0x1.09fd6d4613faep+0, 0x1.af2730b8f7e8p-1,
+-0x1.54c7b7e90ff5ep-4, 0x1.11fb025823f6p+0, 0x1.3041415660828p+0, 0x1.7ca2ce4092df2p-1,
+0x1.563cd4d446134p-1, -0x1.c553cd9d2442p-7, 0x1.dd380af55409bp-2, 0x1.1985972099718p-2,
+0x1.e1110b855bbb9p-2, 0x1.122f5895bdf85p+0, -0x1.62a6a7ef921a2p-3, 0x1.022f8a46d12bep-2,
+-0x1.6f67c0761203p-5, 0x1.2475d35d7c1eep+0, 0x1.791fc742f23f9p-2, -0x1.91accca32359ap-3,
+-0x1.95ae9c365e90cp-5, 0x1.09da4b1813b4ap+0, -0x1.177682e22eed1p-3, 0x1.c5d47fe9f20f8p-5,
+0x1.9536efc7f73abp-2, 0x1.5633dadc46014p-4, 0x1.2195c43bdcc5p-4, -0x1.2334acb5799cap-4,
+0x1.9fa89d50d8eacp-1, 0x1.e0f52887c1ea6p-1, 0x1.cbf0590864ad8p-1, 0x1.0e5455521ca8ap-2,
+-0x1.4013952280273p-3, 0x1.7984cd288ca32p-1, -0x1.80a8584fce1d9p-4, -0x1.43775df5ba224p-5,
+0x1.37146b6cd48f2p-1, -0x1.afc7761cf928ap-4, 0x1.ced1becd373dp-1, 0x1.3756ced5a1e08p-4,
+0x1.4ac1436295828p-4, 0x1.5c1d776f8507ap-3, 0x1.1a140bd1675b4p-1, 0x1.8047149b008e2p-1,
+0x1.4ffa89b5d328p-5, 0x1.27d0c83be93b2p-1, -0x1.941e32b65b6fap-3, 0x1.91be4be989e3p-3,
+0x1.0a56088ae178ep-1, 0x1.7bdd7ab491547p-2, 0x1.99ab18e00022ep-3, 0x1.576185337b8fcp-1,
+0x1.acf3b479c04dap-3, 0x1.0de717d6e89afp-2, 0x1.da25339881174p-1, 0x1.9c3ecb68d2172p-1,
+0x1.18206dad63742p-1, 0x1.325f2943318b2p+0, 0x1.de3e9c3e22e3ap-1, 0x1.458a9248f17b6p-3,
+0x1.df4d14a225008p-1, 0x1.43c88eda87912p-1, 0x1.3ef335a74ab34p-1, 0x1.f5ae95bfeb5d4p-1,
+0x1.5b9bd672b7378p-3, 0x1.75449103b755ep-1, 0x1.23eec3237b10cp+0, 0x1.f461c76fe8c3ap-1,
+0x1.a5b208a67e974p-1, 0x1.b048dea82d5e8p-1, -0x1.2c6714858c016p-3, 0x1.1ab84bbf68a3dp+0,
+-0x1.7c58a79fc57e2p-3, 0x1.3560ad1c045aep-1, 0x1.4f5145add1d5cp-1, 0x1.c4fe519d2396p-5,
+-0x1.269e22824d3dp-6, 0x1.50b01f66a1604p-1, 0x1.ce4bbcf536311p-2, 0x1.67877de2cf0eep-1,
+-0x1.5f1e2695f16f9p-3, 0x1.b3f70b1e9b214p-1, 0x1.620a72a92a7b4p-3, 0x1.e76f277d6877ep-3,
+-0x1.5bde7b0f8489ep-4, -0x1.9df4b149a24fep-4, -0x1.412f4478e8c5p-3, 0x1.530b04b1d9492p-1,
+-0x1.ab355076899dep-4, 0x1.f45931864f18cp-1, 0x1.056a07d80ad41p+0, 0x1.0826687cdd199p+0,
+0x1.a376b3e9ad53bp-2, 0x1.c6c1bdd6c0b6bp-2, 0x1.9f95004da5906p-1, 0x1.8f08b5f7eade2p-1,
+-0x1.b81ecf9d09d78p-6, 0x1.810c20289bb1cp-1, 0x1.1d0417016d3b6p-1, 0x1.fe57789596488p-1,
+0x1.95dd30d4c553fp-2, 0x1.3850b84670a16p-1, 0x1.cd61a9a867902p-1, 0x1.a47da9d1af61bp-2,
+0x1.d2bfbd9d3f18p-7, 0x1.6c9911d472cbbp-2, 0x1.54f5206ea9ea4p-1, 0x1.91f1d1398a4ap-3,
+-0x1.7da6f86c94e79p-3, -0x1.525b3c15d7e9cp-4, 0x1.19352c4bcc03fp+0, -0x1.432b8568ecbd8p-3,
+0x1.f0120a02468a8p-1, 0x1.243476af15358p-4, 0x1.1eee9de23ddd3p-2, 0x1.157e50835e2fdp+0,
+0x1.5cb97c4c530c8p-3, 0x1.4b23c87296477p-2, 0x1.17a13f522f428p-1, 0x1.105c36d553eb9p-2,
+0x1.9c257a9cd1e48p-4, 0x1.781dd12c89d53p-2, 0x1.90a42fc321484p-4, 0x1.6ba66faed74cep-1,
+0x1.02eb16f405d62p+0, 0x1.1c07f656380ffp+0, 0x1.28917e80b7895p-2, 0x1.2f3dcee8c4e2p+0,
+0x1.52b5a6690bd1ap-1, 0x1.0bd99e5417b33p+0, 0x1.f66caffb200cap-1, -0x1.23089e6246114p-3,
+0x1.d33b1d05400fdp-2, 0x1.5d67f337879cap-1, 0x1.dfc627788c591p-2, 0x1.574ef3e515044p-1,
+-0x1.4ac7a928fbf5cp-3, -0x1.0c7192087f49ap-4, 0x1.1118e74ceefeap+0, -0x1.2ed507e590dd4p-3,
+0x1.a8ccca29b8p-5, 0x1.ee35c0c576052p-1, -0x1.b0cde769c8024p-4, -0x1.6f1e3f06116fcp-3,
+-0x1.4ea85b429d50cp-3, 0x1.7f87f0d498a97p-2, 0x1.1acdbbd5cf351p+0, 0x1.a7aabaa34f556p-3,
+0x1.cbbc4309fddeep-1, 0x1.cdaca1239b593p-2, 0x1.587f3079e4318p-1, 0x1.32d3ac61ff40fp+0,
+0x1.04a5cfc73c7edp+0, 0x1.f0fa1cd8aec1p-1, 0x1.6ae7620c6f684p-1, 0x1.a8bb670a84aap-1,
+0x1.c2a3a3191ee0ep-1, 0x1.32cb43d998c9cp+0, 0x1.a0d09e75a807ap-1, 0x1.5de5c62c55651p-2,
+0x1.0b71aef7b07cfp+0, 0x1.30d6e804c8144p-1, 0x1.992e43d3325c7p-2, 0x1.34350c0c0203bp-2,
+0x1.3ec3a6af4a54p-4, 0x1.11704e0622e09p+0, 0x1.2be7f028be364p+0, 0x1.dc678790859bcp-4,
+-0x1.944ff283289ffp-3, 0x1.09cda43fad34ep+0, 0x1.58f8557c4b8a2p-3, 0x1.bdf366837be68p-5,
+0x1.9b6aa2d8d06eep-1, 0x1.0d157dbbb3c48p-2, 0x1.33f06868ce47p-4, 0x1.ae26f26e8f812p-1,
+0x1.acb51dae8c9d8p-1, -0x1.499c35b5c66cp-6, -0x1.3953155272a63p-3, 0x1.120afa522416p-1,
+0x1.42efd54a85dfap-1, 0x1.7090d18badee6p-1, 0x1.114becaa2297ep-1, 0x1.cbaa1ce530eddp-2,
+0x1.f6490ff0b95efp-2, 0x1.5cce84a920034p-5, 0x1.41507888e9074p-4, 0x1.5d871295ee416p-3,
+0x1.4fd0991c393a8p-5, 0x1.17b089f695c78p+0, 0x1.6cbb0e27a642ep-1, -0x1.d42ff756db933p-4,
+0x1.f3a32b171a797p-2, -0x1.68a1b2d60476bp-4, 0x1.8bf5db0e4b1edp-2, 0x1.881070c7dcedap-1,
+0x1.2e19660bf5cc6p+0, 0x1.6ec8ced943f7fp-2, 0x1.1501e4102a03cp+0, 0x1.2ec29aeec3eb9p+0,
+0x1.9265261657fd8p-3, 0x1.9db77190083b8p-5, 0x1.2fe05d9bf95ap-5, -0x1.9989e83666471p-3,
+0x1.06cc9c5d40cc6p-1, 0x1.3fc4f2a5b2bd1p-2, 0x1.ae2adeccf5ef4p-1, 0x1.346d4e7f35a76p-3,
+0x1.f7f7fc1723231p-2, 0x1.c63c7fdebfac4p-1, 0x1.c58cb45857e64p-1, -0x1.3bd498af44761p-4,
+0x1.a0cdd6080e687p-2, 0x1.c1c8ea70505e8p-3, 0x1.24c0e1c3164e8p-1, 0x1.18f8ecb165251p+0,
+0x1.d94b129a18fc7p-2, 0x1.b3515740336f8p-1, 0x1.1769bd0efba04p-4, 0x1.6808f94ad011ep-1,
+0x1.7c4c04c15efe6p-1, 0x1.f60eac2fec1d6p-1, 0x1.93e960c65b05ep-1, 0x1.f6e67c1d8766p-6,
+0x1.17b06e1dc8fa7p+0, -0x1.904303cfed538p-6, 0x1.fe2e0b0f2f8f4p-1, 0x1.1296a0f3bec6ep+0,
+0x1.1148b5ba22916p-1, 0x1.c1cb6cc91d306p-1, 0x1.0e2608ac82b27p+0, 0x1.dc4865a61ef72p-1,
+0x1.2106a524420d5p+0, -0x1.b8e279c9d82b7p-4, 0x1.dc4c51feebcbep-1, 0x1.c4e7007389cdfp-2,
+0x1.9e592100097efp-2, 0x1.2410ca5fe1bb2p-1, 0x1.95f53a3ff8b74p-1, 0x1.18c77a78fe5bcp+0,
+0x1.07cdc7b07601fp-2, 0x1.ea371063d46e1p-2, -0x1.7148122948f69p-3, 0x1.bab43542a89bap-1,
+0x1.cbf4293464b52p-1, 0x1.2ed5439f2a774p-1, 0x1.863fa83972e5ap-1, 0x1.48cd3055c4cd8p-3,
+0x1.ef00d1cd779b4p-3, 0x1.07c9a320dc601p+0, 0x1.105155e353d5ep+0, 0x1.2f394fd05e72ap+0,
+0x1.9f3b8c05a4dd8p-1, 0x1.4e25a6269c4b4p-1, 0x1.f0db456a481dp-7, 0x1.683601d536d26p-1,
+0x1.a809f46e83472p-1, -0x1.81d3b90636dabp-3, 0x1.26fcdd50b4602p-1, 0x1.4bb10ef297622p-3,
+0x1.c7bce4edf5e02p-1, 0x1.b9c5107b738a1p-2, -0x1.b98de849d9824p-4, 0x1.a363c8ca79facp-1,
+0x1.0c2c9f707ebfap-1, 0x1.05c07db0d84ddp+0, 0x1.f70e2983ee1cp-5, 0x1.20dfcb2b74f2dp+0,
+0x1.9256beab24ad7p-2, 0x1.0de6419f4effbp+0, 0x1.06741271401b5p+0, 0x1.b378a99433be2p-1,
+0x1.55034a09106cfp-2, 0x1.0b7e435f4a2fbp+0, 0x1.07c6786adc59ap-1, 0x1.00f67cceceb98p-5,
+0x1.bed6c7e37dad9p-2, 0x1.3cfdd1ef46c84p-4, 0x1.9152349cbc3dfp-2, 0x1.c191fed11cbdap-1,
+-0x1.799b2f62f3367p-4, 0x1.05cabf520b958p-2, 0x1.b99e3805d9a2ep-1, 0x1.d66e8c854676cp-1,
+0x1.1bb8b61b043e4p+0, 0x1.13e405c0f494dp+0, 0x1.b07c4fdcfa923p-2, 0x1.7914fa3e255d2p-1,
+0x1.16dcc1d360ecbp+0, 0x1.32d0b5d598d4ap+0, 0x1.1933d23098cep+0, 0x1.8f100228b7b98p-1,
+0x1.b83b1af9d6dc9p-2, 0x1.30ce26e1fb35ep+0, 0x1.981ac90e6368bp-2, 0x1.275849a9e84a3p+0,
+0x1.035b715cd383bp+0, 0x1.51e4ad85d6fc8p-1, 0x1.1504e1a22a09cp+0, 0x1.a5ef6e8ce5788p-3,
+0x1.074aca5e0e958p-1, 0x1.d08b81bad44a4p-1, -0x1.25c784bbe528ap-3, 0x1.0c196ae47e994p+0,
+0x1.8121a20d68a9ap-1, 0x1.24bafda24976p-1, -0x1.f1214683e242ap-4, -0x1.76581b361fe4p-7,
+0x1.b2c11e4698b56p-1, 0x1.e1d6afc8907a3p-2, 0x1.110f826555523p+0, 0x1.e9f41ec63a4eap-1,
+0x1.da371df3b46e4p-1, 0x1.7556d66484474p-1, 0x1.59fc44df80c54p-1, 0x1.ab4223c356844p-1,
+0x1.36b87b80070a8p-1, -0x1.a15fccf00f8c7p-4, 0x1.7be16f2af7c2dp-2, 0x1.fc17317591c7fp-2,
+-0x1.a787a2f682428p-4, 0x1.13e3eb155afbp-2, 0x1.35a9a3e8d1b98p-4, 0x1.0d92ff8a1b26p-1,
+0x1.0a4fb9c547d2ap-2, 0x1.5928ff6ab252p-1, 0x1.ebba58e3d7749p-2, 0x1.2bc2c98257858p-4,
+0x1.129d1a288ba08p-3, 0x1.730112947f9bbp-2, 0x1.eab5367f089d9p-2, 0x1.b258774e97e42p-1,
+0x1.1d2d24c8a0c08p-4, 0x1.124f2076f16bp-1, 0x1.6424e6ab95168p-1, 0x1.0596d68671941p+0,
+-0x1.7ae2429628f7cp-4, 0x1.8c6724417f34ap-1, -0x1.844867196ef74p-3, 0x1.e9cb3c5fd3966p-1,
+0x1.6ec15b9c771c4p-5, 0x1.13b9a8b55aa68p+0, 0x1.6d58f4ba0de52p-1, 0x1.2bc4cd0cbdfp+0,
+0x1.3663c168d32dep-1, 0x1.83bb4cb63aa9cp-3, 0x1.9c655770d2644p-1, 0x1.ad759f368e1ep-7,
+0x1.26527febe63e8p-2, -0x1.820aecb63749p-6, 0x1.6b27d59e0982cp-1, 0x1.893d640645adfp-2,
+0x1.c8900916c4533p-2, 0x1.f84370818a208p-1, 0x1.1c4c0bf9d231bp+0, 0x1.cfd647da0613p-1,
+0x1.d60c130bac181p-2, 0x1.901dbbf3203b7p-2, 0x1.2dda83b85bb51p+0, 0x1.9613b6765f5aap-1,
+0x1.e7f5cdafcfeb8p-1, 0x1.d55278887771bp-2, 0x1.c40b8eb1ee7d7p-2, -0x1.6b2bd08c6ff14p-3,
+0x1.31af6190c9c52p+0, -0x1.01ddc33b9d554p-4, 0x1.0b648faae395ep+0, -0x1.931f5cbcbfd86p-4,
+0x1.d291d2460b8ap-1, 0x1.0e0eb5fae8ea3p+0, 0x1.0ee6db975100ep+0, 0x1.27f227331cb12p+0,
+0x1.dd2a56f487216p-1, 0x1.24c0457cafe6ep-1, 0x1.2083c109daa11p+0, 0x1.5a4f63e2b49ebp-2,
+0x1.ec157f10a4f7cp-1, 0x1.7706731887a66p-1, 0x1.1a43eed49aee4p-1, 0x1.8d8589a981718p-5,
+0x1.d15c82193c52ap-1, 0x1.f055e0c3e0ab8p-5, 0x1.43dd710421546p-1, 0x1.3cf880f8e0574p-3,
+-0x1.3c765f78df533p-3, 0x1.160f228bc5b7cp-1, -0x1.1d47f94f075ccp-3, 0x1.024ed80e049dap-1,
+0x1.22423378aaeadp+0, -0x1.480d753c29b49p-3, 0x1.8fe140c31fc24p-4, 0x1.c613ce3525c14p-1,
+0x1.fe188ac262977p-2, 0x1.7a6855d7c19d6p-1, 0x1.d1af4078702b4p-1, 0x1.f809442d89ac1p-2,
+0x1.c09303dc4df2ep-1, 0x1.8211f96237572p-1, 0x1.30071ce593416p-1, 0x1.2cbe6fb6597cep-1,
+0x1.37c8feec092bap-1, 0x1.cedcdb506a867p-2, 0x1.163c57b092df2p-1, 0x1.5d19def453cd3p-2,
+-0x1.68decd1c6b574p-3, 0x1.e1bae6bbc375dp-2, 0x1.c21b07d1ea9c8p-1, 0x1.f844322ff0886p-1,
+0x1.7d800a696164p-9, 0x1.d7e241007c914p-3, -0x1.55276e6f771bbp-3, 0x1.1ca03447d2dap+0,
+0x1.f6c8a965872adp-2, 0x1.54f9fbcea9f4p-1, 0x1.10c1130eee4ecp-4, 0x1.12ad233af227p-1,
+0x1.28adfd02515bp-7, 0x1.04b229d209644p-3, -0x1.45a9ac75be869p-3, -0x1.d3f4786a0e4f8p-5,
+0x1.563e4e2f79496p-3, 0x1.1be08d856af44p-3, 0x1.079d768a75a15p+0, 0x1.bb023f5376048p-1,
+0x1.13e36fd28e2d4p+0, 0x1.7a83c7215b6dep-1, 0x1.4281ec0f51d08p-3, 0x1.81f37d156a4d6p-1,
+0x1.2c5eb43a58bd6p-2, 0x1.e70dfe4fce1cp-1, 0x1.212e197f0f29p-3, 0x1.1a2f5fb7cdf86p+0,
+0x1.a058164673e34p-3, 0x1.c4ee4476bd0fcp-1, 0x1.f21521f7175d6p-3, 0x1.d112e2c3a225cp-3,
+0x1.3d9545a27b2a8p-3, -0x1.3e30b0b5af94bp-4, 0x1.88a11e9caadbp-7, 0x1.6e926fbe10581p-2,
+0x1.6931c11f9f305p-2, 0x1.73f0f44fb4ae8p-5, 0x1.144674055bc01p-2, 0x1.0b31cdd47ccap+0,
+0x1.d29f717a0ba54p-1, 0x1.12a1c2caf2104p-1, 0x1.8554b0efd7761p-2, 0x1.1ed447ea3da89p+0,
+0x1.ba34b3a5dacfcp-1, 0x1.af4ca781c4ff9p-2, -0x1.17f47878964f6p-3, -0x1.5a887ce91b776p-3,
+0x1.8504dd8e3d3cep-1, 0x1.17d21aae960a9p+0, 0x1.cac686852f26ap-1, 0x1.466556c759976p-1,
+0x1.43c19618211ccp-1, -0x1.2bfd938bf194cp-3, 0x1.87c9b5c30f936p-3, 0x1.202bab4dd9f0fp+0,
+0x1.013a7fe99c0eap+0, 0x1.10a45a36ee156p-1, 0x1.0727d7cfa7e94p+0, 0x1.0927be354582p-7,
+0x1.bcb0e106ac94ep-3, 0x1.23748db57a1c4p-4, 0x1.bd9f7c2b7b3efp-2, 0x1.24f7f01649efep-1,
+0x1.8c3b88197edd6p-3, 0x1.4b58a8f696b16p-1, 0x1.2153c72ddc412p+0, 0x1.7e0e28fc95b5ep-1,
+0x1.c8fe1ea1f862ap-1, 0x1.999187c999896p-3, 0x1.2e0b5e398f4ap-1, 0x1.353729b00407ep-1,
+0x1.df6c8b23bed92p-1, 0x1.2b8e0e8bf0b5cp+0, 0x1.0c79531e18f2ap-1, 0x1.333ad85d99a8ep-1,
+0x1.90b814e4bb09bp-2, 0x1.2ce29b6659c52p-1, 0x1.42ff1f89b9318p-1, -0x1.9057e6b653e34p-5,
+0x1.ec40d4ba3ee7fp-2, 0x1.4ebe7f45d0b03p-2, 0x1.93c63ec25abfap-1, -0x1.64232fb5fb79bp-4,
+0x1.858c824ca4b29p-2, 0x1.2e0f894cc2857p+0, -0x1.4a4dd71c2e355p-3, 0x1.7b536a4c90406p-3,
+0x1.065d066473206p-1, 0x1.1111501f5555dp+0, 0x1.92bfbfe4bf191p-2, 0x1.dbefa50c84acp-1,
+-0x1.fd53476a610d4p-5, 0x1.074b023741c94p+0, 0x1.35025d6d9d37fp-2, 0x1.534027ec4019dp-2,
+0x1.e7108df234877p-2, 0x1.db095a9a1c792p-3, -0x1.f5c14bca51e91p-4, 0x1.587ffcbc4a998p-3,
+0x1.438d1eff53e7p-1, 0x1.55b99b26ab734p-1, 0x1.f1bd8f4b16ae4p-1, 0x1.7926876e25803p-2,
+0x1.466f51d826782p-1, 0x1.2fa0f7fa5f41fp-2, 0x1.2b1a413d8967bp+0, -0x1.5e6c2885f00b9p-3,
+0x1.158cbee4f7e65p+0, 0x1.32cd3b9e659a6p-1, -0x1.474444cf5b558p-6, 0x1.75a703761e813p-2,
+0x1.204970d3da2c7p+0, 0x1.eff28302464b8p-1, 0x1.e96b04556c6f9p-2, 0x1.39e578cf4097bp-2,
+0x1.e5ab2f2fcb566p-1, 0x1.088872ca1110ep-1, 0x1.622dfd612ac26p-1, 0x1.0b439e507cedap-2,
+0x1.88895944aaac3p-2, -0x1.d6c448c3ad88ap-4, -0x1.353c8dcf3747p-7, 0x1.0ad5de9215abcp-1,
+0x1.1d11f0e106f0bp+0, 0x1.f82545d7237dbp-2, 0x1.0d6e2c7a1adc5p+0, 0x1.8e8b849e504a3p-2,
+0x1.d93b5ff87f438p-1, 0x1.21454af0a8f1p+0, 0x1.83cc27ea3acb8p-1, 0x1.6cc43122d9885p-2,
+0x1.31ddcaa196eecp-1, 0x1.0f2350c95179ep-1, 0x1.d95bc2aee5eaap-1, 0x1.1e6b60dbd6704p-5,
+0x1.06ad199673c09p+0, 0x1.c929dec39253cp-1, 0x1.059092953e544p-4, 0x1.d20d4a8ad74dcp-1,
+0x1.2b2167ebefdc5p-2, 0x1.f3795a4a4d59p-3, 0x1.33d32efc013fcp-4, 0x1.bef4bcc6b11cap-3,
+0x1.9a9cca36686cp-7, 0x1.81964e709cc62p-1, 0x1.731651ffb2f96p-1, 0x1.293e045f85af4p+0,
+0x1.1dc2d6a23b858p-4, 0x1.bb77a3d376ef2p-3, 0x1.c6ddc5ed2755p-3, 0x1.4e636ddd032d4p-1,
+0x1.34d78c90d0157p-2, 0x1.a691cb54e6bd3p-2, -0x1.a5a33f9ce4e08p-6, 0x1.b8a50679d7b06p-3,
+0x1.1ae0f77e35c1fp+0, -0x1.62dc9dd2c5b94p-3, 0x1.9bd56a540477ap-1, 0x1.a896e88e8461p-1,
+0x1.281cea6c5039dp+0, 0x1.727657a47e863p-2, -0x1.db595303b6b4p-7, 0x1.1bb1390e37626p-1,
+0x1.17627180fb91bp+0, 0x1.1c2a61e49ebb2p+0, 0x1.93fe55825b2fcp-1, 0x1.d5b8afc2dea4ap-1,
+0x1.9b183c20cfcap-1, 0x1.0d8b671db4b07p+0, 0x1.415f93e74f8bep-1, -0x1.adebb2a9c23dep-4,
+0x1.8c75f30fe5b88p-4, 0x1.ce40602d361a6p-1, 0x1.40cc3e90e7fedp-2, 0x1.3cbf2fe2797e5p-2,
+0x1.d2e09063a5c11p-2, -0x1.4ba7d48f641c8p-3, 0x1.14ea7488903b4p-2, 0x1.738f096c80b7ap-1,
+0x1.04b4b47a09695p-2, 0x1.62931225f8596p-1, 0x1.6e3043760f93cp-3, 0x1.832c86ebd325ep-1,
+-0x1.845374dca240ap-4, 0x1.698aba99397bdp-2, 0x1.2bde177857bc3p+0, -0x1.84bb98163caa7p-3,
+0x1.84e9387ca36c1p-2, 0x1.8d2b32d8b3fp-1, 0x1.adce68ef5b9ccp-1, 0x1.58901555e4535p-2,
+-0x1.00003ddb999a2p-4, 0x1.0663b504d9943p+0, 0x1.172fd50fc7f94p+0, -0x1.5e862c95f03f9p-3,
+0x1.deb5c766f09ecp-1, 0x1.5bf79935eb226p-1, 0x1.e47d8b096294ap-1, 0x1.13679d215a026p-1,
+0x1.10a8010554832p-1, 0x1.7eed710964415p-2, 0x1.44108d328821p-1, 0x1.a89d25cdb7a0cp-1,
+0x1.3a85922f41d7cp-4, 0x1.256e8970b1438p+0, -0x1.f69a8ad0ba02p-5, 0x1.772760de2181ep-1,
+0x1.2f2cc214c4bfep+0, 0x1.a2e3effb45c7dp-2, 0x1.08a007c877a67p-2, 0x1.e935dfea38d22p-3,
+-0x1.930ae2432615dp-4, 0x1.46427b28261eap-1, 0x1.31f032a663e06p+0, 0x1.bd4dc4037a9ap-8,
+0x1.30b71f6d94a17p+0, 0x1.2a9b16e8bb9c9p+0, 0x1.16437d1bc62p-6, 0x1.7af8e9662924fp-2,
+0x1.7bfafa3e2b292p-1, 0x1.0e73759f501a2p+0, 0x1.d02ae5c46d22ap-1, 0x1.c26158e91e5c4p-1,
+0x1.c347eedc535cap-1, 0x1.9824297d96aecp-1, 0x1.d126342fa24c6p-1, 0x1.3b974fd743fb6p-1,
+0x1.1b6ab88f03a23p-2, 0x1.4f3d58cd04e1p-1, -0x1.767797362022cp-5, 0x1.0261e1dc6b2a2p+0,
+-0x1.5ec9546923f91p-3, 0x1.930f7a2b261eep-1, 0x1.46fa831a8df5p-1, 0x1.b0261c902d18cp-4,
+0x1.778626a088a5ep-1, 0x1.8df740d98254ep-1, 0x1.09c9456b46c5bp+0, 0x1.6f79445e1225ap-1,
+-0x1.bf4b6536b1cbp-7, 0x1.8be142764af5cp-4, 0x1.2816915f83605p+0, 0x1.683ee47603b0cp-4,
+0x1.de2509e2ef7d4p-1, 0x1.26d390cfe740cp+0, 0x1.2dd1bcfa5ba37p-2, 0x1.d92ce25218c02p-1,
+0x1.1e3b7482a2dd5p+0, 0x1.060160cc72692p-1, 0x1.821784c96a954p-4, 0x1.520b7cdd0a7d6p-1,
+0x1.7903cb3e253abp-2, -0x1.97e240232fc48p-3, 0x1.5c0cdeb451b35p-2, 0x1.9636e0f65fa0cp-5,
+0x1.9891ffdb3123ep-1, 0x1.8c63d1dcb261p-5, 0x1.bb61244d105bep-1, -0x1.007c2925342b9p-3,
+0x1.ce69fc51366dap-1, 0x1.053008a2d72cep+0, 0x1.15858feaf7d7ep+0, 0x1.dd1e0d9d53d5cp-1,
+0x1.37092504d478cp-1, 0x1.0b9f3c8a173e6p-1, -0x1.4d0e54f29a1cbp-3, 0x1.20a394e5747a6p-3,
+0x1.9980b7bccc9acp-4, 0x1.135aae02f3822p+0, 0x1.0f044801b7a22p+0, 0x1.25329f924a653p-2,
+-0x1.c69c42e9f39f8p-6, 0x1.03e7a62b3b028p+0, 0x1.260792be4c0f2p-1, 0x1.1b2b471903235p+0,
+0x1.ef10078fde2p-1, 0x1.11ab6bd0f023ap+0, 0x1.a91d0a1db8a08p-1, 0x1.c5208a2923daap-1,
+0x1.85e3a404a560dp-2, 0x1.1fe3308ea62ccp+0, 0x1.618b41345cb01p-2, 0x1.e5da1e07cbb44p-1,
+0x1.201a1bbd73677p+0, 0x1.c53276605731cp-1, 0x1.32d1f93ecc0a5p+0, 0x1.725fd0ea17f2cp-1,
+0x1.222f8cf2445f2p+0, 0x1.ba9eb064420a2p-1, 0x1.98a72d0ccae7ep-1, 0x1.ac62afcf58c56p-1,
+0x1.5e985b3df063ep-1, 0x1.5d4be676ba97cp-1, 0x1.231a5700ac9bp-1, 0x1.79d8ceb626e4cp-4,
+0x1.425e4a68eb2p-8, 0x1.363d28300613ep-1, 0x1.bb94caed10c31p-2, 0x1.383673e5a3a01p-2,
+0x1.ed183b93da307p-2, 0x1.2ad91e1bef4bdp-2, 0x1.951af027f702ap-1, 0x1.4ebda21903e1ap-1,
+0x1.b6aba7f03a24p-4, 0x1.52f071e90c474p-3, 0x1.1eadc9e4a3c1ep-1, -0x1.0203a7786a6dcp-3,
+0x1.1ac8db5bcf2b4p-5, 0x1.8591b6597189cp-3, 0x1.eb0606b16fa5ap-1, 0x1.3b04c61e76098p-1,
+0x1.d623423d45ep-4, 0x1.ab2a0729bcba4p-4, 0x1.74f0fb7fb6aebp-2, 0x1.492395c29246cp-5,
+0x1.307f0ed5fa97bp+0, 0x1.736c13a2e6d81p-2, 0x1.ed5870aca77dap-1, 0x1.1f7b68923ef6dp+0,
+0x1.bdca7936aec78p-6, 0x1.1f99374d7265ap-1, 0x1.84f31a87d6b3p-1, 0x1.d2ed156e0c408p-1,
+0x1.67eb75dc69704p-5, 0x1.069c2c88739eap-3, -0x1.90f8dc9cbb8b6p-3, 0x1.fda76963fb4eap-3,
+0x1.de4a99b88962p-1, 0x1.bfe52976b2fd7p-2, 0x1.81eb7ab7d0a3cp-1, 0x1.b9c14459d9e8cp-3,
+0x1.dbc58a2fb78bp-1, 0x1.614008e78f4cdp-2, 0x1.11ca2ccaf0613p+0, -0x1.4f2d9cf904c1ap-3,
+0x1.6bc28754711eap-1, 0x1.b7b77a1d09087p-2, -0x1.6f2f55afab2b9p-4, 0x1.e3d57b709477cp-1,
+0x1.a3a6910b474d2p-1, 0x1.11c34133bd201p+0, 0x1.70e7b6514835dp-2, 0x1.2268afdf78049p+0,
+-0x1.af5463e9c50f8p-6, 0x1.d952bf4ee5d8ap-1, -0x1.a059aa1cda4d8p-6, -0x1.2e2ebdf58f91p-5,
+0x1.651315a2ca26p-4, 0x1.235e04e11388dp+0, -0x1.d2940936d85b5p-4, 0x1.41ee39d41d75fp-2,
+0x1.ffddb5526621bp-2, 0x1.b106ffccfba7ap-1, 0x1.afb97d835f728p-6, 0x1.7cd3f86d600e4p-1,
+0x1.2c8a38aabf7adp+0, 0x1.f4bf661d83178p-6, 0x1.31521c9662a43p+0, 0x1.d0f8a4a20857ap-1,
+0x1.55fef652abfdep-1, 0x1.7e294d7895ec2p-1, -0x1.37eb859c0970bp-4, 0x1.96bc342cc711fp-2,
+-0x1.bce8a3fd136afp-4, 0x1.317ea7a462fd5p+0, 0x1.bbf2328844b11p-2, 0x1.9a8bd940ceb16p-1,
+0x1.b0e54be1c830fp-2, 0x1.167994f493598p-1, 0x1.17faee456329p-1, 0x1.5b2d0902b659cp-5,
+0x1.a73361e01b337p-2, 0x1.1b6a97ea36d53p+0, -0x1.7c46c39c92278p-6, 0x1.2c85743725d7ap-1,
+0x1.a9c188b75383p-1, 0x1.36058be26c0bp-3, 0x1.8008eebe3345p-1, 0x1.1e6528ebd663fp+0,
+0x1.6eb832a2dd704p-4, 0x1.ac1cd4035839ap-1, 0x1.dd6c2156ee0b6p-3, 0x1.942c4763f5256p-1,
+0x1.ed7adac8a7c27p-2, 0x1.d67e755079c99p-2, 0x1.5533b2caaa675p-2, 0x1.d2d6f09ba5addp-2,
+0x1.614b9c3f8f64p-1, 0x1.4daf584c34f83p-2, 0x1.4ff6da0f6cba6p-3, 0x1.4390b098ed87cp-3,
+-0x1.0595b31ed7f84p-3, 0x1.26cd586d80cddp-2, 0x1.82a8aca89eeaep-1, -0x1.29c1ae0f20504p-5,
+0x1.1ffb2a270cc31p-2, -0x1.71281fcfaf1ep-7, 0x1.ee5624c64312ap-1, 0x1.ced6a16ad0e06p-1,
+0x1.771b5adbbb038p-1, 0x1.3fd5594a7faabp-2, 0x1.2577ec337e231p+0, -0x1.bb15a9a9dc92p-5,
+0x1.c165d836b5fecp-3, -0x1.3ac6210f42592p-4, 0x1.773a8002ee75p-1, -0x1.312d9e85958e8p-3,
+0x1.191e0a85656f4p-2, 0x1.21ba10b576a74p-2, 0x1.2b72a84e56e55p+0, 0x1.20cc71fd74cc2p-1,
+-0x1.4b64506f63958p-4, 0x1.9f67ca19a535ep-3, 0x1.3a494bd5a7c5cp-3, 0x1.33b749bccdd4ep-1,
+0x1.b97f93950c98cp-1, 0x1.5f9292c1258b8p-1, -0x1.250e91857d506p-3, 0x1.68c992dc6b2cbp-2,
+-0x1.7ff09e12ffe14p-3, 0x1.c481e2238903cp-3, 0x1.6baf5bfad75eap-1, -0x1.d7d96f307c7fcp-4,
+0x1.6aed8b26090e4p-1, 0x1.0fe3446eec934p-2, 0x1.8cf1da4fe6b08p-5, 0x1.30a8c34ffaeb2p+0,
+0x1.d126d03d3be73p-2, -0x1.7d049002fa092p-3, 0x1.c9c1c1a460504p-1, -0x1.ade8db035bd3p-7,
+0x1.4e1fde15cf72dp-2, 0x1.ae4b339f5c966p-1, 0x1.0ff5a17eecb8p-3, 0x1.7dcfcb8495392p-1,
+0x1.ed58d5e3dab1ap-1, 0x1.10cf27648804bp+0, 0x1.97eaca49963bep-1, 0x1.38174ba8d694cp-5,
+0x1.3053c2df2d744p-3, 0x1.8869b47a44068p-1, 0x1.9ab44d1e689bcp-1, 0x1.121d9a208aa19p-2,
+0x1.2b5506b389dd4p+0, 0x1.27d6833d1c79dp+0, 0x1.11963e99bcc62p+0, 0x1.a9c33a9020534p-1,
+0x1.48d932cf5e7f2p-1, 0x1.20279f9c404f4p+0, -0x1.07cc4db542ccp-6, 0x1.4f4371b69e86ep-1,
+0x1.2c2545558b7dcp-3, 0x1.c9d75ff92d486p-1, 0x1.7aaeaa36f55d6p-1, 0x1.0e2ea170e92a1p+0,
+-0x1.49d643b5c6dfcp-5, 0x1.f9e42e425a2ecp-1, 0x1.0ba4318db0e2p+0, 0x1.3a5c6a4f4185ap-1,
+0x1.0084b856cdd64p+0, 0x1.7aa3be53c2144p-1, 0x1.9a0b2d499a7ccp-1, 0x1.06cbe5320d97cp-3,
+0x1.8511170e3d555p-2, 0x1.22377e07de089p+0, 0x1.12f4959bbf82cp+0, 0x1.25ebebfbe5716p-3,
+0x1.ffa6e46ccc1aap-1, 0x1.576d8f1515418p-1, 0x1.86c5ac4b0d8b5p-2, -0x1.aaa9141ceeecp-5,
+0x1.e5c3748d65208p-3, -0x1.09e8650213d1p-6, 0x1.a9954469b990fp-2, 0x1.a6d21079b40a8p-3,
+-0x1.f08a3143e1148p-5, 0x1.23217203dfdc7p-2, -0x1.4bba9edf64421p-3, 0x1.9036f62186d44p-1,
+0x1.ade64739c232ep-3, 0x1.672b881c67fp-6, 0x1.e45005b0956ccp-3, 0x1.1ce9498fd36c2p-1,
+0x1.1dbb91503b772p+0, 0x1.2d1489078d5c4p+0, 0x1.a5c04c0b4b809p-2, -0x1.fc65400a5f30fp-4,
+0x1.eda6d9e574e74p-1, 0x1.0784456a0f088p-2, 0x1.613628b45c05ep-1, 0x1.8849e4271093cp-1,
+0x1.326623b797ff8p+0, 0x1.29b5df23ed055p-2, 0x1.1831a1efc9fcep+0, 0x1.81dcd9149d535p-2,
+0x1.cb8e14d6ca4f4p-3, 0x1.efe608ab12ff4p-1, 0x1.70cfcdf54806p-1, 0x1.848066cfd5cdp-6,
+0x1.c1da62b383b4bp-2, -0x1.919e128989a2ap-4, 0x1.5f7f616c58984p-3, 0x1.c0c474e38188ep-1,
+0x1.5f1b0769249c4p-4, 0x1.9310e0fbf2ee8p-1, -0x1.df6b6b23bed6fp-4, 0x1.cd0490fd33a2ap-3,
+-0x1.071331b8748cdp-3, -0x1.43ad75af5427dp-4, -0x1.8bb930164aa5ap-3, 0x1.2036578d739fdp-2,
+0x1.24a84fc57c83cp-3, 0x1.f2306f33e460cp-3, 0x1.09b56dde79d14p+0, 0x1.e3ad02b6fa8dp-5,
+0x1.c13b1dc04f43p-3, 0x1.ff926d70cbf18p-3, 0x1.14523a4228a46p-3, -0x1.0e18a21bb5cb8p-6,
+0x1.6a0d2477a0e7p-1, 0x1.06588ed5a64abp+0, 0x1.e63f857c994bcp-1, 0x1.687305806a7fap-1,
+0x1.d92d368a18c0cp-4, 0x1.b03c62f02d45ap-1, -0x1.e827a30a36b5cp-4, 0x1.146f926d5c126p-1,
+0x1.39bc0534d9de6p-1, 0x1.9a313ffa6795cp-1, 0x1.86f9fc0a41272p-1, -0x1.2ef4bf75911ccp-3,
+0x1.ce63e40f9cc7cp-1, 0x1.22a01d68aba6ap+0, 0x1.db6dab6c83a82p-1, 0x1.3056d5b460adap+0,
+0x1.71eab5614a3bcp-1, 0x1.02f352373919ep+0, 0x1.b621a4f0391p-3, 0x1.968c4f59937fp-1,
+0x1.21ebae0f770a9p+0, 0x1.c4020e738804p-3, -0x1.fdf75a5d95886p-4, 0x1.34d84d4f367d4p-4,
+0x1.53f305d5db192p-1, 0x1.1d092b6ea078cp+0, 0x1.5678807779bdbp-2, 0x1.155419d62aa83p+0,
+0x1.4e422f35cfb7ap-3, 0x1.56b73532ad6e6p-1, -0x1.10bbdf422177cp-3, 0x1.12020b55bd9dbp+0,
+0x1.fa03d8e3f4079p-2, 0x1.043b7a0c0876fp+0, 0x1.2610b5bfe5bbp-1, 0x1.9e8df9a9a3826p-1,
+0x1.524cf09c3e338p-1, 0x1.4f7227ca9ee44p-1, 0x1.325c96abfe52cp-3, 0x1.2d147b28c08f4p-4,
+0x1.067a02b20cf4p-2, 0x1.1cfbc40dd3912p+0, 0x1.012f17b868c48p-3, -0x1.4c580fdc3249cp-5,
+0x1.0c68ae407f37cp+0, -0x1.2ab3d42f22348p-3, -0x1.a7e3c0101c948p-5, 0x1.2455ab7648ab6p-1,
+0x1.10d00ae488068p+0, 0x1.72e12742e5c25p-2, 0x1.51ee518f70a96p-3, 0x1.ff110b8197bbap-1,
+0x1.90d77daa54e22p-1, 0x1.ec8c3e10a5e54p-3, -0x1.02e9450205d29p-3, 0x1.f9907450bfedap-3,
+0x1.3b3bffd5a9ab2p-3, 0x1.a1d0aac343a15p-2, 0x1.0a97a952152f4p-3, 0x1.08c5f22944bf2p-1,
+-0x1.f636debd86077p-4, 0x1.937563bff3b78p-3, 0x1.8cc744d17ff4fp-2, 0x1.24a17700afa94p-1,
+0x1.bb79a70376f2p-7, 0x1.296d5f4a52dacp+0, 0x1.732428f94caeap-3, 0x1.bfa13d9eb275ap-1,
+0x1.3be67ff34499cp-1, 0x1.0fc6964fb926cp-1, 0x1.25d519b7e543dp+0, 0x1.12c4f3d958bd2p+0,
+0x1.c6af6ffec0921p-2, 0x1.2c7c978f25c5cp-4, -0x1.5687fedc46a9ap-3, 0x1.2b855c33f0a44p-2,
+0x1.052411320a48p-3, -0x1.373aaa35a1a9p-6, 0x1.103f5ffb53b1fp+0, -0x1.bea62869e3b4p-8,
+0x1.161d24bbc5d3ep-1, 0x1.d27dbe83a4fbp-6, 0x1.30fd12cb952d5p+0, 0x1.0238efe86ad84p-3,
+0x1.e03ac7bd5a0f1p-2, -0x1.149a48555c67cp-3, 0x1.2558bf74b117ep-1, 0x1.a552ca3a7dd8cp-1,
+0x1.e4505365623a3p-2, 0x1.ce65102f9cca2p-1, 0x1.1ec957df0a5f6p-3, 0x1.19c7b44166c28p-1,
+-0x1.991fea63323fep-4, 0x1.747c5ec6e8f8ap-1, -0x1.3fe9d94f4ca0ap-4, 0x1.d1827db06fd1cp-4,
+0x1.60f0b6ef8eae2p-1, 0x1.36646af59ffc1p-2, 0x1.301bf9e06037fp+0, 0x1.b38683b69a4p-4,
+0x1.08af991877c59p+0, 0x1.22bde062457bcp+0, -0x1.4d75c79c34858p-6, 0x1.1ca107889fa87p-2,
+0x1.293b529bec0fp-7, 0x1.962e1c9cc5f5p-7, 0x1.8a799844ae8ccp-1, 0x1.58a8b005e4849p-2,
+0x1.8c152633182a4p-3, 0x1.4491f1d4ef8a4p-1, 0x1.0f3d721884e14p-1, 0x1.df88d4aef244ep-1,
+0x1.b98c462f7318ap-1, 0x1.0ad13143af3cp-1, -0x1.193d570bcc145p-3, 0x1.0d0d0e8880808p-3,
+0x1.2c110594be886p-1, 0x1.456fd01824792p-1, 0x1.277e3a21822fbp+0, -0x1.20b4dc924169cp-3,
+0x1.5adcf3b78286bp-2, 0x1.82431e7637b94p-4, 0x1.3800e3833cce8p-1, 0x1.c161c5f6b5f6bp-2,
+0x1.0595947e0b2b2p+0, 0x1.766a0ebfb9a0ep-1, 0x1.81479917cf5cp-1, 0x1.05b579853e9e2p-1,
+-0x1.532888c5d9845p-3, 0x1.7b19266c8fcbep-1, 0x1.a28cb062784c8p-1, 0x1.117dbb32efc84p+0,
+0x1.5a2e80c51ac36p-1, 0x1.fe87688bfd0ecp-1, 0x1.2b964ef8bd93p-3, 0x1.c539d47b8a73ap-1,
+-0x1.8619159fd8ffp-3, 0x1.1de2c9376ef8cp+0, 0x1.64f8c24f96bd8p-6, 0x1.9f95aa2cd8c4cp-3,
+0x1.19f11dd7cd7bcp-1, 0x1.80cb9e9167fdap-1, -0x1.ef82731d789ecp-5, 0x1.b45bf66d02518p-3,
+0x1.29b34b48b9cccp-4, 0x1.1ee9719bd768p-9, 0x1.16c0a7a3c71aep-1, 0x1.b7add5643c288p-1,
+0x1.acf51ff026b72p-1, 0x1.fead6af596f47p-2, 0x1.d5e704a612348p-1, -0x1.8059940300b38p-6,
+0x1.96057faff8d7cp-1, 0x1.4f03037a9e05fp-2, 0x1.3b147cc1a95c2p-1, 0x1.3aca42400f2e2p-1,
+-0x1.21eb57bbdd705p-3, 0x1.57d6bdcc4947p-3, -0x1.2f355535919ep-4, -0x1.b6f48dd03ab5fp-4,
+0x1.1bba9e230442p+0, 0x1.e30c6c27c618cp-1, 0x1.2941a5891f501p+0, 0x1.2b3d56a4bce1p-1,
+0x1.7b2d6e47c327ap-1, 0x1.b813c32370274p-4, 0x1.142189688ea96p-2, 0x1.800d8f46334e4p-1,
+0x1.8c348ce97ecfp-6, 0x1.f73de25a54e23p-2, 0x1.272cb01be7f2fp+0, 0x1.8cb928a57fd8ap-1,
+0x1.6042952926eb4p-5, -0x1.b8296b303d1fbp-4, 0x1.301b46539369cp+0, 0x1.4341f244201d7p-2,
+0x1.8401138fd4cfp-4, 0x1.1090cddeedee6p-1, -0x1.a2f2fcb679198p-6, 0x1.21edd46443dbap+0,
+-0x1.59fb8c491a5d8p-3, 0x1.179ae9936269p+0, -0x1.746c51efb5a58p-4, 0x1.a5ed030418a6cp-1,
+0x1.c143b9e04f542p-3, 0x1.72ed58ea190dep-1, 0x1.e9437b7705bap-3, 0x1.1c78fddf05becp-2,
+0x1.17a4b761c8e3p+0, 0x1.75a1353aeb425p-2, 0x1.7b88a737c3de1p-2, 0x1.002c225199f1ep+0,
+0x1.bbb502c9ddd04p-4, 0x1.53c27084411e7p-2, 0x1.8a5e69b7e1899p-2, 0x1.0c853a867f70dp+0,
+0x1.474a170cf4fa8p-1, 0x1.b5a65ff69e7fep-1, 0x1.32b19de7323p-1, 0x1.ba1221e040f1p-1,
+0x1.2b7baadf23c42p-3, 0x1.1aa497b89baf8p-1, 0x1.c0c9c83381939p-2, 0x1.8e92f4e1838c3p-2,
+0x1.4a05d0b8fa72p-1, 0x1.b46a14b5026dbp-2, 0x1.cf50d9f9383b4p-1, 0x1.e0ec5996f50bep-1,
+0x1.28961f4feac5ep+0, 0x1.144fd43cf56c7p+0, 0x1.be619bf37cc32p-1, 0x1.3089e0fcc77a2p+0,
+0x1.f16f1534afaaep-1, 0x1.f63a781bec74ep-1, 0x1.a09a5e91a79b2p-1, -0x1.2998afcf1fffp-7,
+0x1.02c16a9f9f1c6p-1, -0x1.2deca3f25bd95p-3, 0x1.dff9052d598b9p-2, 0x1.9748e5ee61c4fp-2,
+0x1.ab77b019bd55bp-2, 0x1.0a139e4c7a8dap+0, 0x1.965944b99318ep-3, 0x1.7398decc80cb4p-1,
+0x1.5e8839bc56a9ep-3, 0x1.912bec70bbf16p-1, 0x1.263ced6d7fadp-1, 0x1.02a945f13885cp+0,
+0x1.c0d7cbf6b4e2bp-2, -0x1.aefb6236912a8p-6, 0x1.58fe4756b1fc8p-1, 0x1.91b1371989c8cp-1,
+0x1.7393230d4d8cap-1, -0x1.6819d7af9d00ap-4, -0x1.ad769c368e208p-6, 0x1.5cca35691ffacp-3,
+0x1.139835caf3fd2p-1, 0x1.1425c5bef5186p+0, -0x1.723bfbd617ab4p-4, 0x1.fcbc1bfd9311dp-2,
+0x1.ea84cd8bd509ap-1, 0x1.f68082e4b9cdep-1, 0x1.f216d318b0fa7p-2, 0x1.758d7c5484b48p-1,
+0x1.86549494a642cp-1, 0x1.99fb0dbccd8f8p-4, 0x1.d74d7ffbae9bp-1, 0x1.157cc6422af98p-4,
+0x1.38aa7c85a4882p-3, 0x1.838e70996d834p-3, 0x1.54ba722b7641cp-1, 0x1.8a4cdd94ae334p-1,
+0x1.d48e4a6a0f828p-6, 0x1.105b94e020b72p+0, 0x1.2efeabf591308p-2, 0x1.9959ce519919fp-2,
+0x1.4b7cafca96f96p-1, 0x1.121154e75755dp+0, 0x1.ae6432935cc86p-3, -0x1.d3ee853074a9ep-4,
+-0x1.3eee5ebc17766p-3, 0x1.157edd30f7ca8p+0, 0x1.bd99ccdf7b338p-1, 0x1.8a3df1c4ae158p-1,
+0x1.323072e9312dbp+0, 0x1.0b4a3f3216948p+0, 0x1.23eb72c57b0a1p+0, 0x1.1192b5315658ap-1,
+0x1.d879a37bb0f34p-1, -0x1.335c016f3384ep-3, -0x1.59d68cd91a138p-3, 0x1.5c980a9b85fcep-1,
+0x1.0807f477a9a98p+0, 0x1.08fc2cbc785eap-1, 0x1.aefc8226912c4p-3, 0x1.2ffe171d932f6p-1,
+0x1.a2a1f4da78772p-1, -0x1.1ace2f3568cfap-4, 0x1.b914164c3ef4ep-1, 0x1.2b997d33f0cc9p+0,
+0x1.47e079575c8dbp-2, 0x1.4ed044176a6d5p-2, 0x1.7b1971908fcc6p-1, 0x1.18fb156565294p-1,
+0x1.86e3959640fa4p-3, -0x1.4f367b829e6dp-3, 0x1.2607317d18db3p+0, 0x1.09cdfdcb46cf3p+0,
+0x1.1b5db8ad03884p+0, 0x1.450424cc23a1cp-3, 0x1.1fc248ab72b7cp+0, 0x1.26b32008b3ccap+0,
+0x1.5d85d28f87d84p-5, 0x1.96b7f7ca60a32p-1, 0x1.713dcb6faf486p-1, 0x1.3d2dc94f4728p-5,
+0x1.46e60fc82765cp-1, 0x1.52ae4a8ea55c8p-1, 0x1.8bcbf82cb1318p-1, 0x1.71f299afb0b1fp-2,
+0x1.6c3db0993ee1cp-1, 0x1.9bbcbb5cd113p-1, -0x1.43543be286a88p-3, 0x1.15e733222bce6p-1,
+0x1.f2940d97185b4p-4, 0x1.02a0efeed20eap-2, -0x1.0408e1620811ep-4, 0x1.23ad6e79e0f47p+0,
+0x1.88ba30f977dabp-2, 0x1.fef9608664592p-1, 0x1.1c13b877d1c1p+0, 0x1.ceb3bb8ed09aap-1,
+0x1.ffd8e15d994b4p-4, 0x1.4cda7c19cce82p-1, 0x1.0290d5106b881p-2, 0x1.081a67f7a9ce6p-1,
+0x1.5f73439f8bb34p-1, 0x1.9bc19c599de9ap-3, 0x1.6a9ffa446ed97p-2, 0x1.2fc84e8d92c3ep-1,
+0x1.1e97d6afd6c94p-1, 0x1.1cdc501a39b89p-2, 0x1.16c8283893f6ap-1, 0x1.9ad69a44cf46cp-1,
+-0x1.05011a3ba39bep-3, 0x1.0cfc69e219f8cp-4, 0x1.0a87eea0150fdp+0, 0x1.6c0c2f9fa4e52p-1,
+0x1.dab43e314f02p-1, 0x1.3a756f00db514p-1, -0x1.0583a7d20b076p-3, 0x1.c11710bd1bc7bp-2,
+0x1.bf2f0fdd17f7cp-3, -0x1.5e7c9435f02c7p-4, 0x1.2e6c90f3900c5p+0, 0x1.1484ac108f6fcp-1,
+0x1.77ce97b956037p-2, -0x1.50730589074c9p-4, 0x1.eaf24530a2b15p-2, 0x1.e6aacabfcd558p-1,
+0x1.1da8b320a1b7dp+0, 0x1.8e745a431ce8bp-2, 0x1.4ef81fe29df04p-1, 0x1.4e61c00f699p-5,
+-0x1.4946f4c2928dfp-3, 0x1.1b5378689d0d6p+0, 0x1.8366ea5f06cdcp-1, 0x1.7387ecd54d764p-1,
+0x1.b9878c09d9754p-4, -0x1.6d7bf7560e2b4p-4, 0x1.e74ea7e3ce9d4p-4, 0x1.bc2f2e97785e6p-1,
+0x1.8e4a1f1182fa9p-2, 0x1.ba18639b7430cp-1, 0x1.e13ec4e08f4a3p-2, 0x1.d8965ec07df97p-2,
+0x1.210f2b9f0eeb2p+0, 0x1.3e91b288e389bp-2, -0x1.c1e0ed8383c28p-6, 0x1.b66c2f036cd86p-1,
+0x1.20125758a68b1p+0, 0x1.6f67505c7868p-5, 0x1.848a87afd5e1cp-4, 0x1.262830f24c506p-3,
+0x1.463523ac2603ep-3, 0x1.382063b5a373cp-4, 0x1.c4751eb388ea4p-1, 0x1.73dafb2e1ae92p-1,
+0x1.8d7048afe7ad4p-3, 0x1.4e1f6b7f690b8p-3, 0x1.e83ebf03d07d7p-2, 0x1.c2389009ead78p-4,
+0x1.81286e67cf1dap-1, -0x1.1a77383bce882p-4, 0x1.672728d134b4bp-2, 0x1.953d179d90e08p-1,
+-0x1.4c397288fed95p-3, -0x1.7b5f3d22f6be9p-4, 0x1.44bd3c18efe0dp-2, 0x1.2a23ed15877bp-3,
+0x1.295ffae8b926p-6, 0x1.45aed96f582a8p-1, -0x1.7eb8f22630a52p-3, 0x1.36d675cc07468p-1,
+0x1.32c1ad3d98b69p-2, 0x1.eeaf189a43c47p-2, -0x1.0d1304fee6f2ep-3, 0x1.d4631dc3a8c64p-3,
+0x1.fd06cbfd93a74p-1, 0x1.5129dc02a2538p-5, -0x1.d70b7fbd47b0bp-4, 0x1.d6c51442e0bd4p-1,
+0x1.24def258b0244p-2, 0x1.70591d92e0b22p-3, -0x1.185d17b230ba4p-3, 0x1.4a63287dc7f98p-1,
+0x1.d3017483a602dp-2, 0x1.e4c43f2d6322p-1, 0x1.5f5ef4ff8b8acp-3, 0x1.b34332d9cceccp-1,
+-0x1.70d262f614d81p-4, 0x1.b25d83283187ep-1, 0x1.28f855a0b8571p+0, 0x1.b97488750c82ap-1,
+0x1.f57502871e1d4p-1, 0x1.3e3bb28749441p-2, 0x1.d096734d3ac67p-2, 0x1.046686286f337p+0,
+0x1.ac30b00b58615p-2, 0x1.f1103e197bba2p-1, -0x1.3105ed5bfba58p-5, 0x1.45c9be48f1f9ep-1,
+0x1.a0b16239a7c91p-2, -0x1.8b069f1cafa7p-6, 0x1.639cda8f94064p-5, 0x1.d01fee2206a64p-1,
+0x1.5165bdc03c65p-1, 0x1.cadb967d2f50cp-4, -0x1.096d86c87941ap-4, 0x1.d00c46a3a0187p-2,
+0x1.69a8edec6ceb7p-2, 0x1.4ae8b2b5c904p-6, 0x1.619344a2c3268p-3, 0x1.adaa568e8e87ep-1,
+0x1.99a7e6cccce97p-2, 0x1.e2cfc68a2c05cp-3, 0x1.234e3140ad02cp-2, 0x1.0e5d8a074fee4p+0,
+-0x1.1dc6b3823b8ep-6, 0x1.4fe53c4c39642p-1, 0x1.6997e07c6cc94p-1, 0x1.7aef235c8f77cp-4,
+0x1.37b8b210d5d7bp-2, 0x1.5522255777112p-1, 0x1.279c69a3826cp+0, 0x1.5757a94915158p-4,
+0x1.2d533280c10cdp+0, 0x1.a23b4d0e77a9bp-2, -0x1.9573278ff7b32p-4, 0x1.94b0ad365c947p-2,
+0x1.6f1df8d2de3bep-3, 0x1.053d14f53dad4p-4, -0x1.5911461f7eef6p-3, 0x1.928695bd8b738p-1,
+0x1.ead7504708e1ap-3, 0x1.32df143bff578p-4, 0x1.f8803ae72433bp-2, 0x1.1940fc1c3281fp+0,
+0x1.8c3b77864baa1p-2, 0x1.4178d30682f1ap-1, 0x1.68436a3c6a207p-2, 0x1.e158991fc2b14p-1,
+0x1.b2367f0297a04p-1, 0x1.72ececad4c402p-1, 0x1.289c89425139p-1, 0x1.8a40bfcfe14ep-5,
+0x1.2903a25b1ed41p+0, 0x1.1055042753dd4p+0, -0x1.883a32d643a7bp-4, -0x1.d4d5751d4344cp-5,
+0x1.0a28de2ee11e8p-1, 0x1.9ef700880abacp-1, 0x1.e1dbce0090844p-3, 0x1.0635ceced9387p+0,
+0x1.1b657ee70397cp-2, 0x1.852581830a4aep-3, -0x1.787e9d295763bp-4, 0x1.03e57c1207cafp-2,
+0x1.98cd6d4e64cep-1, 0x1.2a0b73cf20e2p-7, 0x1.b2b17b10322fcp-1, 0x1.2d7da8f4c161cp+0,
+0x1.176c6db3c8727p-2, 0x1.c2d38feeb8da6p-1, 0x1.871b813b0e37p-1, 0x1.6cd271520cd8p-1,
+0x1.27caec711c62ap+0, 0x1.cf5384839ea68p-5, 0x1.38ee031e71dcp-1, 0x1.5e9a5c72bd34bp-2,
+0x1.c4d471b523428p-1, 0x1.29bb0f5186a95p+0, 0x1.51fb07690a5c4p-4, 0x1.10a48a4bbae2ap-1,
+0x1.5ffca4e45992cp-1, 0x1.b942509b7284ap-1, 0x1.8faefcb4b8f78p-1, 0x1.4b9d832e973bp-1,
+0x1.7385f27e1a3fp-1, 0x1.c50e1cc056e9p-1, 0x1.94b69243296dp-1, 0x1.7486a40fb5d9cp-5,
+0x1.fb3d6db8c3479p-2, -0x1.64e382a2c9c71p-3, -0x1.0ac97a3548c63p-3, 0x1.f1b7dcbbe36fcp-1,
+0x1.b9db9879da1d8p-3, -0x1.6b7978cfa3cp-6, 0x1.a8868b1ceaa6p-6, -0x1.7c884bfc92aa4p-3,
+0x1.7ecb21bc972fcp-3, 0x1.132e0ae7bff5bp+0, 0x1.311fd2ab2f0c7p+0, 0x1.51cf65af706b8p-1,
+0x1.82c93f57d25f4p-1, 0x1.82f4c0256c4fep-1, 0x1.60edc255f50eap-3, 0x1.6bf8b1ce0b248p-1,
+0x1.03282f6a06506p+0, 0x1.f78fda1a55862p-1, -0x1.2c82199259044p-3, 0x1.64be6a1d2fe32p-1,
+0x1.e49f925162d8cp-1, 0x1.161503bbc5c3ap-3, 0x1.df91c0508bfp-6, 0x1.bc6ba19378d73p-2,
+0x1.3296fbf8652ep+0, 0x1.0288f88ed1decp+0, -0x1.e498939d62cadp-4, 0x1.724d8402e49bp-1,
+0x1.63b9a771faa68p-1, 0x1.be89e635e37a2p-1, 0x1.effc54aa465fp-1, -0x1.43820768ed6bp-7,
+0x1.cbb76bf931086p-1, 0x1.09d82e447a16cp+0, 0x1.29881d8253103p+0, -0x1.61c0a2a2c3816p-4,
+-0x1.784756a623c1ep-3, -0x1.847dc2363c3p-7, -0x1.279e073be8d5cp-4, 0x1.a01d64b00d07ap-3,
+-0x1.18711e9564158p-3, -0x1.48d40fe8f80e9p-4, 0x1.101e92a3b9d6cp+0, 0x1.a3135e18dfc06p-1,
+0x1.c040a48eb3b48p-1, 0x1.2122f70f0f128p-5, 0x1.514b52f5d5c9dp-2, 0x1.602a9cfc59eecp-1,
+-0x1.7311736c7fbc8p-3, 0x1.87d712f976147p-2, 0x1.7a0a82b627484p-3, 0x1.ee419bdca95p-1,
+0x1.6fd730d7ac7b2p-1, 0x1.a7cb2a2ce92ffp-2, 0x1.984418fffd54ep-3, 0x1.6e9ec25c76d72p-1,
+0x1.ca447f206155cp-3, 0x1.1fc8b46572c49p-2, 0x1.ea177fe3d42eep-3, 0x1.1e5896d03cb13p+0,
+-0x1.7f825fdc989e8p-5, 0x1.06f38dcedab3p-7, -0x1.761a071c85cdcp-4, 0x1.0d12d630e6f27p+0,
+-0x1.3a68eeaf419ebp-3, -0x1.0865b12baa65p-3, 0x1.2a29ff39ededap+0, -0x1.1916abbbcbc7p-3,
+0x1.e3b0312a2dc68p-5, -0x1.b83146fd09fc4p-4, 0x1.1050295220a04p-2, 0x1.f4290eca4eb88p-4,
+0x1.916ee2698943p-7, 0x1.07fb4e120ff68p-3, 0x1.23ff732c47feep+0, 0x1.167663422cecdp+0,
+0x1.74eed2b7b6aa7p-2, 0x1.147c52da28f8ap-2, 0x1.26b0fd14b3c86p-1, 0x1.8832e5ce4398fp-2,
+0x1.b490195035edp-1, 0x1.eb9a0428a400cp-1, 0x1.2fd2a17592d86p-3, 0x1.7c01c777c4d05p-2,
+0x1.6464cb62c8c98p-3, 0x1.186c1503ca71cp-1, -0x1.ce3602706938ep-4, 0x1.3210b90730ee4p-1,
+0x1.075b6ace751d4p+0, 0x1.4e4b0c229c961p-2, 0x1.085b804143ea2p-1, 0x1.2e928b02c38b7p+0,
+0x1.11a7baaef01c4p-1, 0x1.3ffea5c41996ep-1, 0x1.08722dfdaa7dfp+0, 0x1.2973e56f1fb4ap-1,
+0x1.644b9fdf9564p-1, 0x1.fed1f408ca70cp-1, 0x1.4994a0e693294p-1, 0x1.e8ed095e38406p-1,
+0x1.171918c7c7cbdp+0, 0x1.1c118dfb04efep+0, -0x1.f7a1d9a3ef43cp-4, -0x1.8f73ca69854ep-4,
+0x1.3bb890e8ddd74p-5, -0x1.756eed1fb7aabp-3, 0x1.30b259cec7cb1p+0, 0x1.349958d66932ap-1,
+0x1.2691a91719f01p-2, 0x1.21af4a46435eap-1, 0x1.2f8c9911f8b2cp+0, -0x1.e8d788aa3815cp-5,
+0x1.4dc5d005cebedp-2, 0x1.129dd055586ecp-3, 0x1.05d9d197a54d4p-1, 0x1.66628141fff82p-1,
+0x1.c379ef7f86f3ep-1, 0x1.327977affe8c8p-1, 0x1.90669f1654004p-4, 0x1.6bca5eb60ac7ep-1,
+0x1.2002b213d99efp+0, 0x1.a0ceba8a74d0ap-1, 0x1.62890e4f91deep-1, 0x1.d68d70e079e7bp-2,
+0x1.e99be78a399e2p-3, 0x1.0d0703e480746p-1, -0x1.46af22328d5e5p-3, 0x1.228c80144519p+0,
+0x1.4ae5230295ca3p-2, 0x1.5e4f3ec056382p-1, 0x1.c79fa31ac2728p-1, 0x1.b4f9729369f2ep-3,
+0x1.300bf44ff9b18p-1, 0x1.ef11ce4caaf06p-1, 0x1.436c937c2072bp-2, 0x1.aa2de3c4edf56p-1,
+0x1.f81c7970bd05cp-1, 0x1.39692ddf3f9f3p-2, 0x1.e18358bd5ca02p-3, 0x1.27f73c824fee4p-4,
+0x1.126523ce24ca5p+0, 0x1.c44e87b3889dp-3, 0x1.b35f55b0338b6p-3, 0x1.951b24e32a364p-3,
+0x1.1c217c689ea94p-1, 0x1.d9180d6fb2302p-1, 0x1.1907d87098761p+0, 0x1.e4d41606fcdb4p-3,
+0x1.4a563d6761793p-2, -0x1.24f0d40249e2p-8, 0x1.25b2e54f1832ap+0, 0x1.fb2871d3f650cp-3,
+0x1.02759fa46b51bp+0, 0x1.47887281c244p-1, 0x1.d0773b4ba0ee6p-1, 0x1.8ebd2bf650ad4p-5,
+-0x1.1d6f005bd477cp-5, 0x1.e531d92563fd6p-1, -0x1.0c326fcee532p-6, 0x1.f4040fc3e8081p-2,
+0x1.ba3562f3746abp-2, 0x1.12d23b0158d7bp+0, 0x1.cda6caf2ce80cp-1, -0x1.64ff028930647p-3,
+0x1.ae4fdde8f6396p-1, 0x1.1ed5c89bd745p-6, 0x1.b754898ea1dc4p-1, 0x1.4005f0edb33fp-1,
+0x1.0c11aba07e89cp-1, -0x1.b588357037dd4p-4, 0x1.cb6b3ee463a34p-1, 0x1.94eb19a1903c9p-2,
+0x1.4192034a83241p-2, -0x1.711a90afaf02p-4, 0x1.9622bc6ff9124p-1, 0x1.11a8723cf01dbp+0,
+0x1.08ad90e0115b2p+0, 0x1.61cc06eac398p-1, 0x1.b0fc1c7cfb91cp-4, 0x1.407f681f4dcb8p-3,
+0x1.c5e88ba9256acp-1, 0x1.b1ee7c1cfd768p-5, 0x1.35505ce3376d8p-1, 0x1.646d648b95a78p-1,
+0x1.c90dc0a9f881ep-1, 0x1.3ec26385b0b7fp-2, 0x1.e3bf9db16118cp-1, 0x1.0ece9b881d9d4p+0,
+0x1.e2ca47c3c5948p-5, 0x1.20e2384ca82aep+0, 0x1.6271b10c5e7cfp-2, 0x1.61adbc61f68eap-1,
+0x1.0081401acdcf4p+0, 0x1.8793d0cfdbf44p-5, 0x1.6ed4622610dcp-1, 0x1.48ebf7b291d7ep-1,
+0x1.0faca37bb8f2ep-2, 0x1.7f850a9165707p-2, 0x1.145c11a228b8p-4, 0x1.fa4e63c4c169ap-1,
+0x1.deefca0d57791p-2, 0x1.2a2e93bf87906p+0, 0x1.797628a6261f6p-3, 0x1.f6a74d1253b5p-1,
+-0x1.00b2440b9afe2p-3, 0x1.2d735682c14d1p+0, 0x1.b391cb2033f06p-1, 0x1.1bca7b91d12e9p+0,
+0x1.564c4d8446322p-1, 0x1.280bda8b1ce48p+0, 0x1.0a7356287b4dp-4, 0x1.6b9ce582d739bp-2,
+0x1.340d9b02681bp-7, 0x1.bd052e0ead3d8p-1, -0x1.30aa3c7bfaee2p-3, 0x1.1a222ec101113p+0,
+-0x1.4000d29c199b8p-6, 0x1.fdfb74fe625d4p-1, 0x1.eb7b2e263d5ccp-1, 0x1.ea4c113707cb4p-3,
+0x1.d9597f2bb2b3p-1, 0x1.b26d020364dap-4, 0x1.2153938b0f73fp+0, 0x1.73f598f54e518p-1,
+0x1.6a5a8772d4b51p-2, 0x1.4b1522d5c95d6p-1, 0x1.59eca8ef80a62p-3, 0x1.a369fbddad3a6p-1,
+-0x1.6e3af9360fa93p-3, 0x1.beda25ad174ddp-2, 0x1.3751f9366ea3ep-1, 0x1.f49f1a3f1c715p-2,
+0x1.9ac7a7de68c27p-2, 0x1.fc15e9c65e924p-1, 0x1.1520e796f70e8p-2, 0x1.e73b52a568103p-2,
+0x1.f096305fe12c6p-1, -0x1.42213c0284428p-4, 0x1.8998741fdffdbp-2, 0x1.c0f82ef04ebd1p-2,
+-0x1.f496c683e92dap-4, 0x1.4c810b3b65ceep-1, 0x1.fcb0f0a592fb6p-1, 0x1.651e200f9708cp-4,
+0x1.463fa5bc2618dp-2, 0x1.0b7663f67d533p+0, -0x1.5f913a02bf23p-7, 0x1.ff0c655f314bfp-2,
+0x1.ae81d67f5d03ap-1, 0x1.2631a7d24c635p+0, 0x1.e07f9d695a98ep-1, 0x1.2174ef44a9504p-1,
+0x1.c4a897e9efb78p-5, 0x1.bcc05e137980cp-1, 0x1.78210e6fbd0ecp-4, 0x1.37de339e6fbc6p-1,
+0x1.42de34fa85bc7p-2, 0x1.d7cb64ebaf96bp-2, 0x1.d387244073db2p-3, 0x1.588d85377de7dp-2,
+0x1.18dc95d964ec6p+0, 0x1.094d145679009p+0, 0x1.067e5b10d9c98p+0, 0x1.316d326bfc73fp-2,
+0x1.a849ac0750936p-1, 0x1.89361c0978d28p-4, 0x1.f2baa8f4b2422p-1, 0x1.32797600cb596p-1,
+0x1.bd2409b37a48p-3, 0x1.4481f2628903cp-3, -0x1.4dc363cc35206p-3, 0x1.2e3920058fa57p-2,
+0x1.0203f71d373b2p+0, 0x1.07d33f0c760cep+0, 0x1.2a26ba6b211a4p-1, 0x1.03056ab2060acp-3,
+0x1.c02cdf9f8059cp-1, 0x1.8b0edbef161dap-1, 0x1.a6adf3c81a28ap-1, 0x1.08484fb2dd5d6p-1,
+0x1.710bc527aee44p-1, 0x1.20c72ac574c18p-1, -0x1.e5493ba3ca929p-4, 0x1.f3bcb50cb4462p-1,
+0x1.dc8489b3b909p-3, 0x1.63058315f93e2p-3, 0x1.8a69047e48053p-2, 0x1.7ef6a35631206p-1,
+0x1.ab0d79a1bc816p-1, 0x1.a07cb1b5a75fcp-1, -0x1.d94803d07f5cep-4, 0x1.76603ee8865ap-1,
+0x1.4cb073f69960ep-1, 0x1.1c1d0e070506ep+0, -0x1.5d3e391f87494p-3, 0x1.1d27732f071bap-2,
+0x1.7d3c946960dep-8, 0x1.00e8c0899b6b2p+0, 0x1.13b9caff5aa6cp+0, 0x1.b153c3f82f745p-2,
+};
+
+static const int babl_num_type_test_pixels = 512;
+
+static const double babl_type_test_pixels[2048] = {
+0x1.87326f630e64ep+3, 0x1.d98b8203b317p+6, 0x1.80c353a70186ap+6, 0x1.8b30cef31661ap+6,
+0x1.ed4afa3bda95fp+6, 0x1.5b6f8b7eb6df1p+6, 0x1.a149bf2b42938p+5, 0x1.a42310c348462p+3,
+0x1.076180960ec3p+6, 0x1.70fdcafae1fb9p+5, 0x1.b56661636acccp+3, 0x1.e920a48bd2415p+6,
+0x1.6d6c669adad8dp+6, 0x1.db6bd983b6d7bp+4, 0x1.fcd15da3f9a2cp+3, 0x1.0228b6ca04517p+5,
+0x1.ef3cee63de79ep+6, 0x1.8dfaef231bf5ep+5, 0x1.5ee3acfebdc76p+6, 0x1.668783d6cd0fp+6,
+0x1.205f038640bep+6, 0x1.f9fa8d2ff3f52p+6, 0x1.20a64bea414c9p+6, 0x1.ee5b3f63dcb68p+5,
+0x1.2c44ab0a58895p+6, 0x1.927c053324f81p+4, 0x1.98d196cf31a33p+6, 0x1.4635fc0e8c6cp+6,
+0x1.7e5e224afcbc4p+6, 0x1.1a3f9972347f3p+4, 0x1.c6f50c538dea2p+4, 0x1.af4470375e88ep+6,
+0x1.00db42e201b68p+3, 0x1.f28096bfe5013p+6, 0x1.3a753f2674ea8p+6, 0x1.accc52835998ap+1,
+0x1.4df0223a9be04p+6, 0x1.6343d782c687bp+1, 0x1.07ab12b20f562p+4, 0x1.55468b42aa8d1p+4,
+0x1.873208730e641p+5, 0x1.e25e4373c4bc8p+4, 0x1.f3923ac3e7247p+3, 0x1.882b56831056bp+3,
+0x1.dee50e7bbdca2p+5, 0x1.f831cc33f063ap+4, 0x1.64338c6ac8672p+5, 0x1.bd5eeb3b7abddp+5,
+0x1.4509ea9e8a13dp+6, 0x1.0fd733421fae6p+2, 0x1.14dbe5c229b7dp+4, 0x1.95a3b8832b477p+4,
+0x1.5f000c02be002p+1, 0x1.65dd455acbba9p+6, 0x1.5c968dd2b92d2p+6, 0x1.373cab6a6e795p+6,
+0x1.ca7c46ab94f89p+6, 0x1.ead04943d5a09p+5, 0x1.f5ca9de3eb954p+4, 0x1.48da68f291b4dp+6,
+0x1.3bf80afe77f01p+6, 0x1.de5fd51bbcbfbp+5, 0x1.f03db24be07b6p+5, 0x1.5c13735eb826ep+6,
+0x1.c361029386c2p+5, 0x1.94a0c24329418p+3, 0x1.6979d5f2d2f3bp+6, 0x1.7d051c22fa0a4p+3,
+0x1.ed71b823dae37p+3, 0x1.ab649aa356c93p+6, 0x1.09e48caa13c92p+5, 0x1.01473b3e028e7p+6,
+0x1.1fe15be23fc2bp+3, 0x1.86c91b5b0d923p+5, 0x1.324ca60e64995p+6, 0x1.136eb2ba26dd6p+6,
+0x1.417100ba82e2p+6, 0x1.e4666c47c8ccep+6, 0x1.f21e2857e43c5p+6, 0x1.0cf5d6aa19ebbp+5,
+0x1.f563df7beac7cp+6, 0x1.baa90e2375522p+3, 0x1.d7c7b2ebaf8f6p+5, 0x1.6f7f6002defecp-4,
+0x1.9d32671f3a64dp+6, 0x1.21e99d1243d34p+4, 0x1.37988b466f311p+6, 0x1.67aeadc6cf5d6p+6,
+0x1.3de28be67bc51p+6, 0x1.b50b32bf6a166p+6, 0x1.61122d6ac2246p+5, 0x1.e76a5b93ced4bp+4,
+0x1.48763a9290ec7p+5, 0x1.a8a7efdb514fep+6, 0x1.d5ee0a43abdc1p+6, 0x1.85eb9e970bd74p+6,
+0x1.db3c0827b6781p+6, 0x1.3f67e0327ecfcp+6, 0x1.b58c421b6b188p+6, 0x1.8ea3f2831d47ep+2,
+0x1.d598f5a3ab31fp+5, 0x1.d3f44363a7e88p+3, 0x1.1a317a6a3462fp+6, 0x1.0ec8a64e1d915p+6,
+0x1.fbc62c33f78c6p+5, 0x1.31f881d263f1p+4, 0x1.11bac82223759p+3, 0x1.faa0b683f5417p+3,
+0x1.872465c30e48dp+3, 0x1.455815828ab03p+2, 0x1.8b9e044b173c1p+5, 0x1.324361826486cp+3,
+0x1.2eaa8c725d552p+4, 0x1.b1b2db9b6365bp+6, 0x1.352260626a44cp+3, 0x1.e8dd0a3fd1ba1p+6,
+0x1.fa2d42dff45a8p+6, 0x1.5e3cd752bc79bp+6, 0x1.508bb802a1177p+6, 0x1.380fcec6701fap+6,
+0x1.13480a0e26901p+6, 0x1.14ceb802299d7p-2, 0x1.b1ea65ab63d4dp+6, 0x1.b78327576f065p+6,
+0x1.a9bcbe9353798p+6, 0x1.87d86feb0fb0ep+6, 0x1.3d6ec5ea7add9p+6, 0x1.84f8c6b709f19p+6,
+0x1.8e80a0331d014p+5, 0x1.e5f61003cbec2p+5, 0x1.9de305e33bc61p+6, 0x1.b20ccaef64199p+6,
+0x1.2d79906e5af32p+6, 0x1.70290092e052p+5, 0x1.81aae2730355cp+5, 0x1.5ae53422b5ca7p+3,
+0x1.0492a0be09254p+6, 0x1.c61994838c333p+5, 0x1.aac2f5535585fp+4, 0x1.35772d7a6aee6p+6,
+0x1.eec49733dd893p+5, 0x1.307fbf7a60ff8p+6, 0x1.5bbf99aab77f3p+6, 0x1.430ceeba8619ep+6,
+0x1.c465362388ca7p+5, 0x1.8263e5b704c7dp+6, 0x1.2be9f8f657d3fp+6, 0x1.b8bfbbe3717f7p+5,
+0x1.c1417a0b8282fp+5, 0x1.f1d6c3d3e3ad8p+4, 0x1.46facb428df59p+2, 0x1.f3e8c713e7d19p+6,
+0x1.f629feb3ec54p+4, 0x1.c65a125f8cb42p+6, 0x1.ab6bee6b56d7ep+6, 0x1.3a39f2027473ep+3,
+0x1.4e3282469c65p+6, 0x1.d1b568a3a36adp+5, 0x1.ac4004f758801p+6, 0x1.572d25c2ae5a5p+2,
+0x1.dbd5bc57b7ab8p+6, 0x1.4a230ad694461p+6, 0x1.c77f9d4b8eff4p+6, 0x1.094f4cc2129eap+6,
+0x1.1bc58e02378b2p-1, 0x1.10aa1d0a21544p+5, 0x1.34abf34a6957ep+6, 0x1.06ca2bde0d945p+6,
+0x1.6b61d8c6d6c3bp+6, 0x1.9f5cb09f3eb96p+6, 0x1.e20acaa3c4159p+3, 0x1.8b10917316212p+4,
+0x1.9fb8e0333f71cp+5, 0x1.9800f2ff3001ep+6, 0x1.a5d113174ba22p+6, 0x1.b20f0b2b641e1p+6,
+0x1.1a64d8b634c9bp+6, 0x1.a376181346ec3p+5, 0x1.1cddd23239bbap+5, 0x1.fb0595bbf60b3p+6,
+0x1.4e30bd029c618p+6, 0x1.45bd2b9a8b7a5p+5, 0x1.eeee5ccfdddccp+6, 0x1.cbbb3caf97768p+6,
+0x1.a4e2a0a349c54p+4, 0x1.9a5a4b3734b49p+6, 0x1.f3027aefe604fp+6, 0x1.b76b2a6f6ed65p+6,
+0x1.0669ff0a0cd4p+5, 0x1.9f427fe73e85p+6, 0x1.ccddfccf99bcp+6, 0x1.7c2aef62f855ep+4,
+0x1.d2cb1573a5963p+5, 0x1.945d9a1728bb3p+6, 0x1.685a089ed0b41p+6, 0x1.d73a2bb3ae745p+5,
+0x1.cb2a898396551p+2, 0x1.3a0bf7ca7417fp+5, 0x1.f26741b7e4ce8p+6, 0x1.8814815f1029p+6,
+0x1.e3156403c62adp+3, 0x1.7544d842ea89bp+3, 0x1.ead8a5bfd5b15p+6, 0x1.0c3f1c9a187e4p+6,
+0x1.c6a98e078d532p+6, 0x1.90a9b8d321537p+6, 0x1.7c9c4f8af938ap+5, 0x1.c21ccd738439ap+5,
+0x1.8993137313262p+4, 0x1.4cbd10de997a2p+6, 0x1.b827f8eb704ffp+5, 0x1.b09581df612bp+6,
+0x1.ef9ba6afdf375p+6, 0x1.9604b2832c096p+5, 0x1.7c50be8af8a18p+6, 0x1.63513b52c6a27p+4,
+0x1.957291d32ae52p+4, 0x1.6f53397adea67p+6, 0x1.03f7944207ef3p+2, 0x1.d12347f3a2469p+5,
+0x1.0e95b95e1d2b7p+6, 0x1.dd1d7613ba3afp+6, 0x1.479c5fd68f38cp+6, 0x1.f7fb4417eff69p+6,
+0x1.717b1026e2f62p+6, 0x1.5fecd0e2bfd9ap+5, 0x1.c730b3db8e616p+5, 0x1.8e2db8c31c5b7p+6,
+0x1.4cfc645699f8dp+6, 0x1.abff374357fe7p+5, 0x1.16423a1e2c847p+6, 0x1.895f10d712be2p+6,
+0x1.04a836aa09507p+6, 0x1.011adfda0235cp+6, 0x1.2b3c5ae25678bp+5, 0x1.96a389632d471p+5,
+0x1.2389315a47126p+5, 0x1.53ec5536a7d8bp+6, 0x1.ac602b6b58c05p+6, 0x1.e852bb13d0a57p+5,
+0x1.4152cc2282a5ap+5, 0x1.10e84fba21d0ap+5, 0x1.497dbeca92fb8p+5, 0x1.208a197a41143p+5,
+0x1.5376811ea6edp+6, 0x1.087cef6210f9ep+3, 0x1.d232b72ba4657p+5, 0x1.b8d3259371a65p+6,
+0x1.9062d76720c5bp+6, 0x1.f2b1a9b3e5635p+5, 0x1.42c9931a85932p+5, 0x1.3df121827be24p+5,
+0x1.acec95d359d93p+5, 0x1.e9012963d2025p+6, 0x1.2de7a9b25bcf5p+5, 0x1.1fc56c323f8aep+4,
+0x1.31ef23a263de4p+5, 0x1.7a8c2ec6f5186p+6, 0x1.d61f13cfac3e2p+6, 0x1.e5f3f627cbe7fp+6,
+0x1.422f29a2845e5p+4, 0x1.d8c29bdbb1853p+5, 0x1.6f5306fadea61p+6, 0x1.55340112aa68p+6,
+0x1.ed7c2dc7daf86p+6, 0x1.3c4d1a02789a3p+0, 0x1.042e2e02085c6p+3, 0x1.fd0319c3fa063p+4,
+0x1.58dd899eb1bb1p+6, 0x1.cce5f12f99cbep+6, 0x1.736a23fae6d44p+6, 0x1.f986efb3f30dep+6,
+0x1.55686422aad0dp+4, 0x1.829035c305207p+2, 0x1.1397f8da272ffp+5, 0x1.a8d09a2b51a13p+6,
+0x1.c9c50a63938a1p+3, 0x1.72e55802e5cabp+6, 0x1.61a3bfbac3478p+6, 0x1.c99b78b39336fp+6,
+0x1.b0f8b36361f16p+4, 0x1.8444a20308894p-1, 0x1.a25025d344a05p+4, 0x1.42b477c28568fp+6,
+0x1.ec09b2a7d8136p+6, 0x1.ff0fbc9bfe1f8p+5, 0x1.8aa5d2d3154bap+6, 0x1.0a0288ea14051p+5,
+0x1.e8503443d0a07p+4, 0x1.60c4e69ec189dp+6, 0x1.abd4ea6357a9dp+4, 0x1.953faef32a7f6p+5,
+0x1.3498d2226931ap+4, 0x1.da484197b4908p+6, 0x1.fd3d88c3fa7b1p+2, 0x1.d5131283aa262p+3,
+0x1.df3975ffbe72fp+6, 0x1.0166793202ccfp+4, 0x1.73c65182e78cap+5, 0x1.3816ff9e702ep+6,
+0x1.a7f1ef034fe3ep+1, 0x1.6a6a65e2d4d4dp+3, 0x1.319def4e633bep+6, 0x1.8a66a21314cd4p+4,
+0x1.15d940622bb28p+4, 0x1.bb69ebbb76d3dp+6, 0x1.6d485582da90bp+1, 0x1.fabbc593f5779p+4,
+0x1.2e4f43be5c9e8p+6, 0x1.6d0e0266da1cp+6, 0x1.2129a86242535p+4, 0x1.9a8d7097351aep+6,
+0x1.70168baee02d1p+6, 0x1.61bce71ac379dp+5, 0x1.ba83d0b37507ap+5, 0x1.5c203e52b8408p+6,
+0x1.b06651db60ccap+6, 0x1.9f9eeca33f3dep+4, 0x1.e12182cbc243p+6, 0x1.53d2f742a7a5fp+3,
+0x1.c8aca1c791594p+6, 0x1.305af58260b5fp+4, 0x1.ea346ccbd468ep+5, 0x1.5d2d6502ba5adp+2,
+0x1.32f7f7a265effp+3, 0x1.14ee0ef229dc2p+6, 0x1.41d4e28283a9cp+4, 0x1.661d3d02cc3a8p+0,
+0x1.5547ad3eaa8f6p+6, 0x1.0a58616214b0cp+6, 0x1.3daf74927b5efp+6, 0x1.62873cbac50e8p+6,
+0x1.37a5ae1e6f4b6p+6, 0x1.bd358f737a6b2p+4, 0x1.c520e53f8a41dp+6, 0x1.7d1bfe3afa38p+6,
+0x1.55ba7ca2ab75p+3, 0x1.d08b27eba1165p+6, 0x1.fbcaef9ff795ep+6, 0x1.59069352b20d2p+6,
+0x1.3d992a4e7b325p+6, 0x1.105566d220aadp+4, 0x1.e72807d3ce501p+5, 0x1.5b5f6bf2b6bedp+5,
+0x1.e9e79a83d3cf3p+5, 0x1.d0d5ec43a1abep+6, 0x1.39fe898273fd1p+1, 0x1.4ab43e3295688p+5,
+0x1.c5ed3b438bda7p+3, 0x1.eaf17717d5e2fp+6, 0x1.9fa8fc0b3f52p+5, 0x1.6a492c02d4926p-2,
+0x1.b841a3a370834p+3, 0x1.c4eeb46b89dd7p+6, 0x1.73d1f7c2e7a3fp+2, 0x1.759ccdb2eb39ap+4,
+0x1.b3b986b367731p+5, 0x1.9ec960733d92cp+4, 0x1.8bfea18317fd4p+4, 0x1.792384a2f2471p+3,
+0x1.720ab982e4157p+6, 0x1.a0af1cf3415e4p+6, 0x1.91abad4f23576p+6, 0x1.5360cf3aa6c1ap+5,
+0x1.ff901983ff203p+1, 0x1.56cc928aad992p+6, 0x1.36632ea26cc66p+3, 0x1.d59e8303ab3dp+3,
+0x1.2757ba724eaf7p+6, 0x1.14baaba229755p+3, 0x1.93ba63b72774cp+6, 0x1.93c3930327872p+4,
+0x1.9ab2bca335658p+4, 0x1.0e9ccf3a1d39ap+5, 0x1.12a09aba25413p+6, 0x1.5ba07c6eb741p+6,
+0x1.60914f72c122ap+4, 0x1.1c708f0638e12p+6, 0x1.f5370803ea6e1p-3, 0x1.21c3f68a4387fp+5,
+0x1.0762061a0ec41p+6, 0x1.a19e3313433c6p+5, 0x1.249888e249311p+5, 0x1.3e6a3a927cd47p+6,
+0x1.2b7b9be256f73p+5, 0x1.5312c7e2a6259p+5, 0x1.9bd16dff37a2ep+6, 0x1.6f9a914adf352p+6,
+0x1.113bbc0e22778p+6, 0x1.fed1165ffda23p+6, 0x1.9ebf01e33d7ep+6, 0x1.068ceb1a0d19dp+5,
+0x1.9f80334f3f006p+6, 0x1.306aaf2e60d56p+6, 0x1.2cf6dd2e59edcp+6, 0x1.af7cb41b5ef97p+6,
+0x1.0e6e83721cddp+5, 0x1.53c34302a7868p+6, 0x1.ea30847bd4611p+6, 0x1.ae8efc2b5d1ep+6,
+0x1.765a9876ecb53p+6, 0x1.7deae82efbd5dp+6, 0x1.37fe0e826ffc2p+2, 0x1.dd0747a3ba0e9p+6,
+0x1.4e53f2029ca7ep+0, 0x1.26207ba64c40fp+6, 0x1.38a7c40e714f9p+6, 0x1.75768e92eaed2p+4,
+0x1.0a442aa214885p+4, 0x1.39a25f927344cp+6, 0x1.dc7f3dd3b8fe8p+5, 0x1.49f310c693e62p+6,
+0x1.4e2f23829c5e4p+1, 0x1.808be35f0117cp+6, 0x1.10ba96aa21753p+5, 0x1.405e8e1a80bd2p+5,
+0x1.50aa3a62a1547p+3, 0x1.2175ca8242eb9p+3, 0x1.f93b0b03f2761p+1, 0x1.3b51035a76a2p+6,
+0x1.17fe7d622ffdp+3, 0x1.ae88da3b5d11bp+6, 0x1.be9778eb7d2efp+6, 0x1.c28002fb85p+6,
+0x1.bde712cb7bce2p+5, 0x1.d71cac2bae396p+5, 0x1.71fcb712e3f97p+6, 0x1.662acb1ecc559p+6,
+0x1.fa8cc8a3f5199p+3, 0x1.5c2d3b8ab85a7p+6, 0x1.14b9c74a29739p+6, 0x1.b5ac318f6b586p+6,
+0x1.b430477368609p+5, 0x1.2839a83250735p+6, 0x1.92b3792f2566fp+6, 0x1.bea2e7037d45dp+5,
+0x1.39688f5272d12p+4, 0x1.96b67a732d6cfp+5, 0x1.3caf172a795e3p+6, 0x1.21d65d0243accp+5,
+0x1.3f6732027ece6p+0, 0x1.5775b082aeeb6p+3, 0x1.dade3f47b5bc8p+6, 0x1.ede2bc83dbc58p+1,
+0x1.ab7a996f56f53p+6, 0x1.8cee2a6319dc5p+4, 0x1.5f3cb9eabe797p+5, 0x1.d58fe0bbab1fcp+6,
+0x1.0ed487d21da91p+5, 0x1.7ed06a9afda0dp+5, 0x1.10e0e41621c1dp+6, 0x1.54d4272aa9a85p+5,
+0x1.b7c43e136f888p+4, 0x1.9ef0b9fb3de17p+5, 0x1.b3a85a336750bp+4, 0x1.4ce498ea99c93p+6,
+0x1.bb06b313760d6p+6, 0x1.dee6cd9fbdcdap+6, 0x1.661ec812cc3d9p+5, 0x1.fa584c27f4b0ap+6,
+0x1.3b14092676281p+6, 0x1.c7c92b538f925p+6, 0x1.b0047db36009p+6, 0x1.52c2cdc2a585ap+2,
+0x1.e005a703c00b5p+5, 0x1.42b7f6de856ffp+6, 0x1.e8fb40c3d1f68p+5, 0x1.3e5cf75a7cb9fp+6,
+0x1.c266828384cdp+1, 0x1.8965bc4312cb8p+3, 0x1.cf4825db9e905p+6, 0x1.310d0e02621a2p+2,
+0x1.706db662e0db7p+4, 0x1.aa26651f544cdp+6, 0x1.13ff362227fe7p+3, 0x1.e581c203cb038p+0,
+0x1.ac3df683587bfp+1, 0x1.a43c877348791p+5, 0x1.dd25e7c3ba4bdp+6, 0x1.2998673a5330dp+5,
+0x1.91867907230cfp+6, 0x1.dc0d97abb81b3p+5, 0x1.3f3647327e6c9p+6, 0x1.ff77888bfeef1p+6,
+0x1.bd7f28d37afe5p+6, 0x1.ac205dbf5840cp+6, 0x1.4c5c217698b84p+6, 0x1.7885dbe2f10bbp+6,
+0x1.8b072b5b160e5p+6, 0x1.ff6b857ffed71p+6, 0x1.72de280ae5bc5p+6, 0x1.8c3668fb186cdp+5,
+0x1.c734b0cf8e696p+6, 0x1.22e2a5ba45c55p+6, 0x1.b68ec2bb6d1d8p+5, 0x1.6e6f089adcde1p+5,
+0x1.966a72632cd4ep+4, 0x1.cfc501bf9f8ap+6, 0x1.f5947ba7eb28fp+6, 0x1.ceb742b39d6e8p+4,
+0x1.e3728803c6e51p-3, 0x1.c4dca17f89b94p+6, 0x1.0d7d431a1afa8p+5, 0x1.74349b72e8693p+4,
+0x1.6f03069ade061p+6, 0x1.527d10aaa4fa2p+5, 0x1.928cb79325197p+4, 0x1.7c64f64ef8c9fp+6,
+0x1.7b5ccc0ef6b9ap+6, 0x1.072456a20e48bp+4, 0x1.13129e8226254p+2, 0x1.0ce3451619c69p+6,
+0x1.2fcfe17e5f9fcp+6, 0x1.5067711aa0ceep+6, 0x1.0c5acd9e18b5ap+6, 0x1.da9e14a3b53c3p+5,
+0x1.f90f9dabf21f4p+5, 0x1.62dbbc42c5b78p+4, 0x1.975398c32ea73p+4, 0x1.0f1df45a1e3bfp+5,
+0x1.6089d232c113ap+4, 0x1.d8b30e3bb1662p+6, 0x1.4daa2eae9b546p+6, 0x1.f5725583eae4bp+2,
+0x1.f72b67ebee56dp+5, 0x1.478c80428f19p+3, 0x1.ad1d53535a3aap+5, 0x1.6130508ec260ap+6,
+0x1.f8b691c7f16d2p+6, 0x1.98464a9b308c9p+5, 0x1.d4de213ba9bc4p+6, 0x1.f9a84b0bf3509p+6,
+0x1.21ff8d9a43ff2p+5, 0x1.6e730b22dce61p+4, 0x1.5ad5c792b5ab9p+4, 0x1.66b20002cd64p-9,
+0x1.04db4b1e09b69p+6, 0x1.76b13f9aed628p+5, 0x1.7c67c3b6f8cf8p+6, 0x1.00702e5200e06p+5,
+0x1.fa436aebf486dp+5, 0x1.8d98ed9f1b31ep+6, 0x1.8d1b5c3f1a36cp+6, 0x1.678cb782cf197p+3,
+0x1.bc00bd7378018p+5, 0x1.32ec53ba65d8ap+5, 0x1.1a40a14234814p+6, 0x1.da882d8fb5106p+6,
+0x1.e45a31dbc8b46p+5, 0x1.80158777002b1p+6, 0x1.885c9ef310b94p+4, 0x1.4a4f8d7e949f2p+6,
+0x1.58c895aeb1913p+6, 0x1.afc1566b5f82bp+6, 0x1.69a6b2d6d34d6p+6, 0x1.51792682a2f25p+4,
+0x1.d8b2e673b165dp+6, 0x1.00d571f201aaep+4, 0x1.b58e9a2f6b1d3p+6, 0x1.d1697837a2d2fp+6,
+0x1.0c5881ce18b1p+6, 0x1.8a6cbb6b14d97p+6, 0x1.cb11c33f96238p+6, 0x1.9d58489b3ab09p+6,
+0x1.e6097e33cc13p+6, 0x1.0e39a9021c735p+3, 0x1.9d5b15ff3ab63p+6, 0x1.d5c9929bab932p+5,
+0x1.ba3fa9db747f5p+5, 0x1.19c2d9b23385bp+6, 0x1.6b1ce076d639cp+6, 0x1.da418a63b4831p+6,
+0x1.4eb78ea29d6f2p+5, 0x1.f070796be0e0fp+5, 0x1.ccc855039990bp+0, 0x1.855c260b0ab85p+6,
+0x1.91ae6693235cdp+6, 0x1.2173c29642e78p+6, 0x1.5fe45396bfc8ap+6, 0x1.07b6fefa0f6ep+5,
+0x1.4312941286253p+5, 0x1.c1fb7b5383f6fp+6, 0x1.ce2b0cfb9c562p+6, 0x1.fa51dfbbf4a3cp+6,
+0x1.71bcd1bae379ap+6, 0x1.37d1bfd26fa38p+6, 0x1.3ac0a56275815p+4, 0x1.4a6fb82a94df7p+6,
+0x1.78071c4ef00e4p+6, 0x1.0fb0e2021f61cp+0, 0x1.1bd9305e37b26p+6, 0x1.08bf3c32117e8p+5,
+0x1.8eab7ef31d57p+6, 0x1.cdd5e7339babdp+5, 0x1.0dbf35821b7e7p+3, 0x1.74b4fd22e96ap+6,
+0x1.08b228be11645p+6, 0x1.bf12fcb37e26p+6, 0x1.7e6719b2fcce3p+4, 0x1.e5d1fdabcba4p+6,
+0x1.b1abacc363576p+5, 0x1.cab6a6e3956d5p+6, 0x1.c013880f80271p+6, 0x1.80319db300634p+6,
+0x1.85ddc72b0bbb9p+5, 0x1.c746a9638e8d5p+6, 0x1.058dc3ba0b1b8p+6, 0x1.52752892a4ea5p+4,
+0x1.d174d7eba2e9bp+5, 0x1.95c85d432b90cp+4, 0x1.b0f1934b61e32p+5, 0x1.8a43b60314877p+6,
+0x1.3b6c950276d93p+3, 0x1.4d47ad3a9a8f6p+5, 0x1.849595bb092b3p+6, 0x1.992a645f3254dp+6,
+0x1.de75966fbceb3p+6, 0x1.d345bf13a68b8p+6, 0x1.c734390b8e687p+5, 0x1.567cb2beacf96p+6,
+0x1.d784829baf09p+6, 0x1.ff734ce7fee6ap+6, 0x1.dadc50d7b5b8ap+6, 0x1.6630018acc6p+6,
+0x1.ccbc80fb9979p+5, 0x1.fc94378bf9287p+6, 0x1.b5c9fd536b94p+5, 0x1.ef10693bde20dp+6,
+0x1.bba7343b774e7p+6, 0x1.3a7ec51674fd9p+6, 0x1.d4e266e7a9c4dp+6, 0x1.28fa153251f43p+5,
+0x1.05356bfa0a6adp+6, 0x1.94f5eef329ebep+6, 0x1.4aea84c295d51p+2, 0x1.c8244f8f9048ap+6,
+0x1.5c3c9852b8793p+6, 0x1.1a3c6c063478ep+6, 0x1.cc199b4398333p+2, 0x1.13dc111227b82p+4,
+0x1.7fae8356ff5dp+6, 0x1.ea74c6b3d4e99p+5, 0x1.cf3aba479e757p+6, 0x1.a71c15fb4e383p+6,
+0x1.9bde39f737bc7p+6, 0x1.53d04ffea7a0ap+6, 0x1.40467a56808cfp+6, 0x1.7a53d066f4a7ap+6,
+0x1.27160f124e2c2p+6, 0x1.1f04b6c23e097p+3, 0x1.a1a1064343421p+5, 0x1.fd352353fa6a4p+5,
+0x1.1a9f1de2353e4p+3, 0x1.5759a7eaaeb35p+5, 0x1.932a4cd32654ap+4, 0x1.09b2243e13645p+6,
+0x1.508216faa1043p+5, 0x1.3faf91de7f5f2p+6, 0x1.f1851aebe30a3p+5, 0x1.8fa0fed31f42p+4,
+0x1.e8b95bd3d172bp+4, 0x1.9b49e8b33693dp+5, 0x1.f0ca94a3e1953p+5, 0x1.7f63c2eefec78p+6,
+0x1.8a6b8d2314d72p+4, 0x1.0d13f29e1a27ep+6, 0x1.4788127a8f102p+6, 0x1.bed77b9b7daefp+6,
+0x1.3a82f5027505fp+3, 0x1.6449ac2ec8936p+6, 0x1.e73ff003ce7fep-1, 0x1.a6fee1fb4dfdcp+6,
+0x1.66103e12cc208p+4, 0x1.d3093a27a6127p+6, 0x1.4e1af7f29c35fp+6, 0x1.f562497feac49p+6,
+0x1.26d98a264db31p+6, 0x1.1cc2e48a3985dp+5, 0x1.6fb619e2df6c3p+6, 0x1.37be64d26f7cdp+4,
+0x1.6484123ac9082p+5, 0x1.021a74020434fp+4, 0x1.4c8a2ade99145p+6, 0x1.ab2bd9bb5657bp+5,
+0x1.d866e1ebb0cdcp+5, 0x1.b154be1362a98p+6, 0x1.df48111bbe902p+6, 0x1.94747c7728e9p+6,
+0x1.e2089fe3c4114p+5, 0x1.b0153d1b602a8p+5, 0x1.f85cbc2bf0b98p+6, 0x1.6b32a6e6d6655p+6,
+0x1.a5af92eb4b5f2p+6, 0x1.e1840cf3c3082p+5, 0x1.d52cd3a3aa59ap+5, 0x1.094ec602129d9p+1,
+0x1.fdd5f917fbabfp+6, 0x1.90f3e24321e7cp+3, 0x1.c721f1cf8e43ep+6, 0x1.2932bdc252658p+3,
+0x1.9668287b2cd05p+6, 0x1.caf071af95e0ep+6, 0x1.cc2539b3984a7p+6, 0x1.efec37ffdfd87p+6,
+0x1.9df9abd33bf35p+6, 0x1.1a4031a234806p+6, 0x1.e54e817bca9dp+6, 0x1.89a66beb134cdp+5,
+0x1.a8a1a3e751434p+6, 0x1.55049b5aaa093p+6, 0x1.12c2cf2a2585ap+6, 0x1.6b8eb402d71d7p+4,
+0x1.958b385b2b167p+6, 0x1.7d33e822fa67dp+4, 0x1.307999de60f33p+6, 0x1.037d52a206faap+5,
+0x1.0a1b81821437p+2, 0x1.0fc1aaf61f835p+6, 0x1.63325c42c664cp+2, 0x1.01a6080a034c1p+6,
+0x1.e7cc4987cf989p+6, 0x1.d1fc3d83a3f88p+1, 0x1.b362bbb366c57p+4, 0x1.8d7bdc6f1af7cp+6,
+0x1.fea3d0d3fd47ap+5, 0x1.576f18beaede3p+6, 0x1.95c6529f2b8cap+6, 0x1.fa4fc2fbf49f8p+5,
+0x1.898d950b131b3p+6, 0x1.5ce8446ab9d09p+6, 0x1.224e3936449c7p+6, 0x1.1ff5bd823feb8p+6,
+0x1.27d8b6164fb17p+6, 0x1.dce6e5cbb9cddp+5, 0x1.0fe1f57e1fc3fp+6, 0x1.8ba4c3d317498p+5,
+0x1.167490822ce92p+1, 0x1.ea60edf3d4c1ep+5, 0x1.8aa597df154b3p+6, 0x1.b155486b62aa9p+6,
+0x1.28d4494251a89p+4, 0x1.3ad0ce1275a1ap+5, 0x1.871ead830e3d6p+1, 0x1.dfc04aafbf809p+6,
+0x1.f96ac223f2d58p+5, 0x1.3cb28f4a79652p+6, 0x1.85fbcff30bf7ap+4, 0x1.0d57192a1aae3p+6,
+0x1.31d0e90263a1dp+4, 0x1.dec86703bd90dp+4, 0x1.dfa42683bf485p+1, 0x1.a2041e2344084p+3,
+0x1.0c83f75a1907fp+5, 0x1.ef574083deae8p+4, 0x1.c1bc60338378cp+6, 0x1.8593e4170b27dp+6,
+0x1.d344e8e3a689dp+6, 0x1.5782b2ceaf056p+6, 0x1.05778b2a0aef1p+5, 0x1.5cd27deab9a5p+6,
+0x1.68d5ee72d1abep+5, 0x1.a509fecb4a14p+6, 0x1.f320eda3e641ep+4, 0x1.dc43ad4fb8876p+6,
+0x1.26fae3624df5cp+5, 0x1.8caa30e719546p+6, 0x1.442c1e6a88584p+5, 0x1.38622c6a70c46p+5,
+0x1.03b54fba076aap+5, 0x1.65dd38a2cbba7p+3, 0x1.36197a826c32fp+4, 0x1.981f7463303efp+5,
+0x1.94481c3b28904p+5, 0x1.66fd5032cdfaap+4, 0x1.57a009baaf401p+5, 0x1.c6d96f2f8db2ep+6,
+0x1.9671e3572ce3cp+6, 0x1.0d4ef8da1a9dfp+6, 0x1.a86110ab50c22p+5, 0x1.e2e61d97c5cc4p+6,
+0x1.8501129b0a022p+6, 0x1.c65b53138cb6ap+5, 0x1.726a1582e4d43p+2, 0x1.6861c882d0c39p+1,
+0x1.5f0379aebe06fp+6, 0x1.d8e3018bb1c6p+6, 0x1.90d6f25f21adep+6, 0x1.3248628e6490cp+6,
+0x1.3065b45a60cb7p+6, 0x1.392b7f027257p+2, 0x1.1e35c0ea3c6b8p+5, 0x1.e4d0ab93c9a15p+6,
+0x1.b89cb6bb71397p+6, 0x1.0be31bde17c63p+6, 0x1.c11458df8228bp+6, 0x1.3068a1a260d14p+4,
+0x1.311a998262353p+5, 0x1.8ca9a05319534p+4, 0x1.d0967d43a12dp+5, 0x1.1a67f4a234cffp+6,
+0x1.1fcc1e523f984p+5, 0x1.35d19d426ba34p+6, 0x1.e677aed3ccef6p+6, 0x1.5a0a1d46b4144p+6,
+0x1.8f90f14f1f21ep+6, 0x1.248f675a491edp+5, 0x1.20e38c7241c72p+6, 0x1.2602d4a24c05bp+6,
+0x1.9f96ac873f2d6p+6, 0x1.f51414c7ea283p+6, 0x1.08e8f23a11d1ep+6, 0x1.2497bf1e492f8p+6,
+0x1.b0837ca36107p+5, 0x1.200f9392401f2p+6, 0x1.2fdacd625fb5ap+6, 0x1.ba29bfe374538p+3,
+0x1.f1e52a3be3ca5p+5, 0x1.81637f7b02c7p+5, 0x1.698d9a8ad31b3p+6, 0x1.4ac24ba295849p+3,
+0x1.a888ef5b5111ep+5, 0x1.f8a87afff150fp+6, 0x1.c51ea0838a3d4p+1, 0x1.19c25cd23384cp+5,
+0x1.048b96da09173p+6, 0x1.cf3d4de39e7aap+6, 0x1.b1f6ada363ed6p+5, 0x1.9d18e39b3a31cp+6,
+0x1.933dafa3267b6p+3, 0x1.c1469573828d3p+6, 0x1.6f01b072de036p+5, 0x1.849b8a3b09371p+5,
+0x1.ee306563dc60dp+5, 0x1.3bf10e1277e22p+5, 0x1.c57e26038afc5p+2, 0x1.0d5247fa1aa49p+5,
+0x1.30403ab660807p+6, 0x1.3d3b6ed27a76ep+6, 0x1.acabf8a35957fp+6, 0x1.9fadce733f5bap+5,
+0x1.324f839a649fp+6, 0x1.6b29d5b2d653bp+5, 0x1.f46ea657e8dd5p+6, 0x1.52283d02a4508p+1,
+0x1.d5a47e6bab49p+6, 0x1.244973ba4892ep+6, 0x1.0759e7920eb3dp+4, 0x1.9d2e270b3a5c5p+5,
+0x1.e4fb3377c9f66p+6, 0x1.ab64146f56c83p+6, 0x1.efdeb9f3dfbd7p+5, 0x1.727f564ae4febp+5,
+0x1.a40c8f6b48192p+6, 0x1.061851fe0c30ap+6, 0x1.4620d98e8c41bp+6, 0x1.51304c82a260ap+5,
+0x1.aaab3fc355568p+5, 0x1.f1c305c3e3861p+2, 0x1.16c427622d885p+4, 0x1.07bd55d60f7abp+6,
+0x1.e062c5d3c0c59p+6, 0x1.fa63c42bf4c79p+5, 0x1.ca0b1af794163p+6, 0x1.aef5f1035debep+5,
+0x1.9b2a691f3654dp+6, 0x1.e662fd57ccc6p+6, 0x1.5e241c82bc484p+6, 0x1.96d547ab2daa9p+5,
+0x1.239e6c2a473cep+6, 0x1.0ad0152215a03p+6, 0x1.9b418b0f36831p+6, 0x1.57b7bf02af6f8p+4,
+0x1.c064fffb80cap+6, 0x1.8fb031671f606p+6, 0x1.81fcc6a303f99p+4, 0x1.96097e632c13p+6,
+0x1.67f34a3acfe69p+5, 0x1.44ab571a8956bp+5, 0x1.928247a325049p+4, 0x1.31e9b12263d36p+5,
+0x1.36e6ffe26dcep+4, 0x1.5c8feee2b91fep+6, 0x1.523483b6a469p+6, 0x1.f1c64f63e38cap+6,
+0x1.8aa103831542p+4, 0x1.30aaba8261557p+5, 0x1.34bceb426979dp+5, 0x1.37fde0c26ffbcp+6,
+0x1.6ee31b42ddc63p+5, 0x1.c01efef3803ep+5, 0x1.fdd9b4a3fbb37p+3, 0x1.2fa8a6e25f515p+5,
+0x1.dd41618fba82cp+6, 0x1.38ca310271946p+1, 0x1.6f4f4bf2de9e9p+6, 0x1.786bcaaef0d79p+6,
+0x1.f0294ee3e052ap+6, 0x1.9ae6d0e335cdap+5, 0x1.0f59ba021eb37p+4, 0x1.13c7bb0a278f7p+6,
+0x1.d8437d93b087p+6, 0x1.df17f98fbe2ffp+6, 0x1.69b5aacad36b5p+6, 0x1.98a87d8b3151p+6,
+0x1.6ec82af2dd905p+6, 0x1.ca34dc739469cp+6, 0x1.2eb1fbee5d63fp+6, 0x1.160e80622c1dp+3,
+0x1.b22a1ff364544p+4, 0x1.93528dd726a52p+6, 0x1.776d5142eedaap+5, 0x1.74888feae9112p+5,
+0x1.dfc4f96bbf89fp+5, 0x1.bd658a837acb1p+1, 0x1.58152eaab02a6p+5, 0x1.528abd96a5158p+6,
+0x1.4c81133299022p+5, 0x1.46690cf68cd22p+6, 0x1.15113caa2a228p+5, 0x1.5db2173abb643p+6,
+0x1.33c463626788cp+3, 0x1.9487a9db290f5p+5, 0x1.f5866aabeb0cdp+6, 0x1.dcf6fe03b9eep-1,
+0x1.a8144ceb5028ap+5, 0x1.64d5b69ac9ab7p+6, 0x1.7c25b8aaf84b7p+6, 0x1.8866eaab10cddp+5,
+0x1.9248f8632491fp+3, 0x1.bffc272b7ff85p+6, 0x1.d7fb305faff66p+6, 0x1.51939382a3272p+1,
+0x1.9f1420b73e284p+6, 0x1.41b0db268361bp+6, 0x1.a3351a2b466a3p+6, 0x1.0ddc4baa1bb89p+6,
+0x1.0be5b79617cb7p+6, 0x1.a3ce2c2b479c6p+5, 0x1.309e1bb6613c3p+6, 0x1.78703f92f0e08p+6,
+0x1.94e68fa329cd2p+4, 0x1.ec54c457d8a99p+6, 0x1.95a43c232b488p+3, 0x1.551c209eaa384p+6,
+0x1.fa3ff0aff47fep+6, 0x1.bd7e3db37afc8p+5, 0x1.4f4dbc6a9e9b8p+5, 0x1.4100f48a8201fp+5,
+0x1.29415e625282cp+3, 0x1.322f7c8a645fp+6, 0x1.fe32917ffc652p+6, 0x1.2e82e0f25d05cp+4,
+0x1.fc735177f8e6ap+6, 0x1.f3b8fc27e772p+6, 0x1.3d6a98e27ad53p+4, 0x1.a0faefdb41f5ep+5,
+0x1.588eb2beb11d6p+6, 0x1.cb805ee39700cp+6, 0x1.94b0ed432961ep+6, 0x1.8ad7d1cb15afap+6,
+0x1.8b7c860b16f91p+6, 0x1.6cac1da2d9584p+6, 0x1.95646e6b2ac8ep+6, 0x1.2a90a6be55215p+6,
+0x1.5cb9f18ab973ep+5, 0x1.3899889271331p+6, 0x1.c367932386cf2p+3, 0x1.ba42b05f74856p+6,
+0x1.5013d482a027bp+1, 0x1.690b0e1ed2162p+6, 0x1.32b2efee6565ep+6, 0x1.bee90a337dd21p+4,
+0x1.555fd272aabfap+6, 0x1.65677776cacefp+6, 0x1.c4d6632b89accp+6, 0x1.4f9fc31e9f3f8p+6,
+0x1.109a59322134bp+4, 0x1.b1f5057363ea1p+4, 0x1.f0203d63e0408p+6, 0x1.a53b08734a761p+4,
+0x1.9eacbdeb3d598p+6, 0x1.ee52cedfdca5ap+6, 0x1.69def4b2d3bdfp+5, 0x1.9b200f5f36402p+6,
+0x1.e20bcb03c4179p+6, 0x1.044a209208944p+6, 0x1.ae761d235cec4p+4, 0x1.3a9a7dc27535p+6,
+0x1.9f94fee33f2ap+5, 0x1.39d2300273a46p-4, 0x1.8ae49f1315c94p+5, 0x1.6d1c15e2da383p+4,
+0x1.6cfa922ed9f52p+6, 0x1.6b5af7c2d6b5fp+4, 0x1.85d7ac370baf6p+6, 0x1.b578af036af16p+2,
+0x1.9370468326e09p+6, 0x1.be449e9f7c894p+6, 0x1.d59a3b4fab347p+6, 0x1.9df0e5273be1dp+6,
+0x1.274facba4e9f6p+6, 0x1.084d2b3e109a5p+6, 0x1.b564f6036ac9fp+1, 0x1.f2bdfca3e57cp+4,
+0x1.b6d28ac36da51p+4, 0x1.d2818adfa5031p+6, 0x1.cc4f424b989e8p+6, 0x1.63b671fac76cep+5,
+0x1.f7f661c3efeccp+3, 0x1.bc6f7fab78dfp+6, 0x1.1b29fb1a3653fp+6, 0x1.ddab8a23bb571p+6,
+0x1.aac24e8b5584ap+6, 0x1.d0197573a032fp+6, 0x1.78cb9982f1973p+6, 0x1.8cce198b199c3p+6,
+0x1.a8c72c03518e6p+5, 0x1.e46920cbc8d24p+6, 0x1.8ed12e931da26p+5, 0x1.a42e1573485c3p+6,
+0x1.e4b79557c96f3p+6, 0x1.8cdae6d719b5dp+6, 0x1.ff751aebfeea3p+6, 0x1.51b22782a3645p+6,
+0x1.e7b1a4c7cf635p+6, 0x1.854cc7230a999p+6, 0x1.6d09b276da136p+6, 0x1.7b21eb4af643dp+6,
+0x1.439165be8722dp+6, 0x1.42a3edc28547ep+6, 0x1.1912d06e3225ap+6, 0x1.ab8449d357089p+4,
+0x1.2bc463f25788cp+4, 0x1.26bdf8224d7bfp+6, 0x1.cf21233b9e424p+5, 0x1.714b775ae296fp+5,
+0x1.f27f05fbe4fe1p+5, 0x1.67bfa7cacf7f5p+5, 0x1.6a80f4aed501fp+6, 0x1.383e4f36707cap+6,
+0x1.c13d4e43827aap+4, 0x1.0b55df8a16abcp+5, 0x1.15e9d95a2bd3bp+6, 0x1.b11a218362344p+2,
+0x1.571194e2ae233p+4, 0x1.1d6ae5b23ad5dp+5, 0x1.a7dfbba34fbf7p+6, 0x1.2a27fb3a544ffp+6,
+0x1.cc7a4e8398f4ap+4, 0x1.bd214bb37a429p+4, 0x1.9cac215b39584p+5, 0x1.5f58a3e2beb14p+4,
+0x1.fc2339c3f8467p+6, 0x1.9b96572b372cbp+5, 0x1.a988507b5310ap+6, 0x1.e3d4de87c7a9cp+6,
+0x1.4c5fcad298bf9p+4, 0x1.169202ee2d24p+6, 0x1.5ef6c9cebded9p+6, 0x1.96a958732d52bp+6,
+0x1.64d7c2c2c9af8p+4, 0x1.e02668f3c04cdp+4, 0x1.8a6ae40314d5dp-2, 0x1.484e135a909c2p+5,
+0x1.9ec7925f3d8f2p+6, 0x1.d235f90ba46bfp+5, 0x1.5cccc55eb9999p+6, 0x1.300e2ab2601c5p+5,
+0x1.9cfad06b39f5ap+6, 0x1.8e9b74131d36fp+5, 0x1.d045648fa08adp+6, 0x1.a9447f035289p+1,
+0x1.4cf8a9ce99f15p+6, 0x1.cc5e7bcb98bcfp+5, 0x1.42de308285bc6p+3, 0x1.a2bd0f07457a2p+6,
+0x1.74e4b0bee9c96p+6, 0x1.d03b81b7a077p+6, 0x1.99ca148333943p+5, 0x1.e8034463d0069p+6,
+0x1.fc1ea503f83d5p+3, 0x1.9b3b1aef36763p+6, 0x1.fecb6ac3fd96dp+3, 0x1.dd387303ba70ep+3,
+0x1.a4191a0348323p+4, 0x1.e961bdd3d2c38p+6, 0x1.f7bece43ef7dap+2, 0x1.783c7272f078ep+5,
+0x1.ffe78183ffcfp+5, 0x1.7e72b6b6fce57p+6, 0x1.4b1e46a2963c9p+4, 0x1.5929b172b2536p+6,
+0x1.f67c50f3ecf8ap+6, 0x1.5147f242a28fep+4, 0x1.fd50bb1ffaa17p+6, 0x1.9543e34f2a87cp+6,
+0x1.3d6cf9167ad9fp+6, 0x1.5a1d807ab43bp+6, 0x1.6a57c522d4af9p+3, 0x1.b4cf92fb699f2p+5,
+0x1.0b59d40216b3bp+3, 0x1.fd905d33fb20cp+6, 0x1.cf63daf39ec7bp+5, 0x1.6e63e452dcc7dp+6,
+0x1.c77f36338efe7p+5, 0x1.100db38a201b6p+6, 0x1.1120f3562241ep+6, 0x1.62912f52c5226p+4,
+0x1.c0926a7b8124dp+5, 0x1.de05fd97bc0cp+6, 0x1.029e40d2053c8p+4, 0x1.1fcd09de3f9a1p+6,
+0x1.79411882f2823p+6, 0x1.0101fb1a0203fp+5, 0x1.5b74183eb6e83p+6, 0x1.e2475f07c48ecp+6,
+0x1.a78aed834f15ep+4, 0x1.7af00526f5e01p+6, 0x1.3ccb307a79966p+5, 0x1.69d67c22d3adp+6,
+0x1.f2c577b3e58afp+5, 0x1.e25a53cbc4b4ap+5, 0x1.86005b230c00bp+5, 0x1.dfbe1993bf7c3p+5,
+0x1.457f26768afe5p+6, 0x1.80a1d15b0143ap+5, 0x1.0a45e02a148bcp+5, 0x1.05d83f120bb08p+5,
+0x1.a6e692834dcd2p+2, 0x1.64dbd172c9b7ap+5, 0x1.5d53e90abaa7dp+6, 0x1.decd1d43bd9a4p+3,
+0x1.5ffc8bd2bff91p+5, 0x1.14175a02282ebp+4, 0x1.aa3d87fb547b1p+6, 0x1.93bde103277bcp+6,
+0x1.55138a0aaa271p+6, 0x1.76bcf6a2ed79fp+5, 0x1.ec622cdbd8c46p+6, 0x1.aae5fa4355cbfp+3,
+0x1.32c8f1ca6591ep+5, 0x1.684de862d09bdp+3, 0x1.5529c926aa539p+6, 0x1.2a59168254b23p+2,
+0x1.5b15753ab62afp+5, 0x1.613bc2cac2778p+5, 0x1.f4ecf06fe9d9ep+6, 0x1.176d75fe2edafp+6,
+0x1.5c6f3442b8de7p+3, 0x1.26a511524d4a2p+5, 0x1.0287e43a050fdp+5, 0x1.24f0a26249e14p+6,
+0x1.847fb28f08ff6p+6, 0x1.44441fae88884p+6, 0x1.4cfaf28299f5ep+2, 0x1.93fdb20b27fb6p+5,
+0x1.254216024a843p+0, 0x1.33e53e7a67ca8p+5, 0x1.4ceaf88e99d5fp+6, 0x1.f0371803e06e3p+2,
+0x1.4c6087f698c11p+6, 0x1.547dc32aa8fb8p+5, 0x1.6b7454b2d6e8bp+4, 0x1.fc5ecddff8bdap+6,
+0x1.de89702bbd12ep+5, 0x1.46a749028d4e9p+0, 0x1.901caee320396p+6, 0x1.1161088222c21p+4,
+0x1.80f230eb01e46p+5, 0x1.7c7edbbaf8fdbp+6, 0x1.e6d405a3cda81p+4, 0x1.59dd915eb3bb2p+6,
+0x1.a98898c753113p+6, 0x1.cedeca8f9dbd9p+6, 0x1.6c8322c6d9064p+6, 0x1.5c4d4d82b89aap+4,
+0x1.fdf2afc3fbe56p+4, 0x1.61701332c2e02p+6, 0x1.6e80c95edd019p+6, 0x1.561524f2ac2a5p+5,
+0x1.f4c29bdbe9853p+6, 0x1.efc4bb7bdf897p+6, 0x1.cffb34db9ff67p+6, 0x1.79424e66f284ap+6,
+0x1.3408db266811bp+6, 0x1.e4cae403c995dp+6, 0x1.0d049da21a094p+4, 0x1.389de382713bcp+6,
+0x1.faf60cf3f5ec2p+4, 0x1.902c1ffb20584p+6, 0x1.57a15502af42bp+6, 0x1.cb1e0b33963c1p+6,
+0x1.d3580c63a6b02p+3, 0x1.b27e6a2f64fcdp+6, 0x1.c77cd9138ef9bp+6, 0x1.29afb9a6535f7p+6,
+0x1.b79907576f321p+6, 0x1.579987f2af331p+6, 0x1.6e07fbc6dc0ffp+6, 0x1.e0487f23c091p+4,
+0x1.a830c75350619p+5, 0x1.e7bcfd2fcf7ap+6, 0x1.d1efb127a3df6p+6, 0x1.f683f1b3ed07ep+4,
+0x1.b69bc7bb6d379p+6, 0x1.3e72d3ea7ce5ap+6, 0x1.a9689fa352d14p+5, 0x1.b0c39d6361874p+3,
+0x1.3fc5ce327f8bap+5, 0x1.0cd464b219a8dp+4, 0x1.c2460c4b848c2p+5, 0x1.294b05e252961p+5,
+0x1.97cea5432f9d5p+3, 0x1.623c7602c478fp+5, 0x1.bcfa2b0379f45p+1, 0x1.6702afcece056p+6,
+0x1.2bd23e0257a48p+5, 0x1.44a3e3028947cp+4, 0x1.3f41269a7e825p+5, 0x1.14a6a242294d4p+6,
+0x1.e15518bbc2aa3p+6, 0x1.f741e853ee83dp+6, 0x1.bf895ae37f12bp+5, 0x1.bc01a48378035p+2,
+0x1.a9c0527f5380ap+6, 0x1.4e830d029d062p+5, 0x1.456fd3ee8adfap+6, 0x1.615959d2c2b2bp+6,
+0x1.fedb0e73fdb62p+6, 0x1.66ef9f62cddf4p+5, 0x1.d96b799fb2d6fp+6, 0x1.a5e6e4334bcddp+5,
+0x1.366999ba6cd33p+5, 0x1.ab5b2ac356b65p+6, 0x1.50946e8aa128ep+6, 0x1.474252528e84ap+4,
+0x1.d39bfd5ba738p+5, 0x1.2a45f2c2548bep+3, 0x1.0fd210821fa42p+5, 0x1.89b0e5c71361dp+6,
+0x1.a1f75e1343eecp+4, 0x1.690c0e6ad2182p+6, 0x1.e5668b83cacd1p+2, 0x1.36ef585a6ddebp+5,
+0x1.a2a4968345493p+2, 0x1.61f1d082c3e3ap+3, 0x1.3d2dfe027a5cp-1, 0x1.6026d0d2c04dap+5,
+0x1.f59ccb43eb399p+4, 0x1.4435de92886bcp+5, 0x1.c4ba0aab89741p+6, 0x1.7af12e32f5e26p+4,
+0x1.32b9af3265736p+5, 0x1.48fd703a91faep+5, 0x1.e9f19753d3e33p+4, 0x1.0c74a86218e95p+4,
+0x1.4bc03e9e97808p+6, 0x1.bfec39c37fd87p+6, 0x1.a47683eb48edp+6, 0x1.4a9b4d129536ap+6,
+0x1.cd9025c39b205p+4, 0x1.7de1fd86fbc4p+6, 0x1.d8ebf283b1d7ep+2, 0x1.0e98d64e1d31bp+6,
+0x1.293d284a527a5p+6, 0x1.6e232db2dc466p+6, 0x1.60696ae2c0d2dp+6, 0x1.30b26f426164ep+2,
+0x1.936bec0b26d7ep+6, 0x1.e8527327d0a4ep+6, 0x1.9cbc0cbb39782p+6, 0x1.fbe9c393f7d38p+6,
+0x1.515e818ea2bdp+6, 0x1.bb1275737624fp+6, 0x1.2ec2df7a5d85cp+5, 0x1.6b88caf6d7119p+6,
+0x1.e750af83cea16p+6, 0x1.33b79772676f3p+5, 0x1.b9c335c373867p+2, 0x1.92df895325bf1p+4,
+0x1.3bf6bb0677ed7p+6, 0x1.e0563e0bc0ac8p+6, 0x1.86e85bc30dd0bp+5, 0x1.d553929faaa72p+6,
+0x1.09a9ec4a1353ep+5, 0x1.3df093b67be12p+6, 0x1.870bcb430e179p+2, 0x1.d09534c3a12a7p+6,
+0x1.fbb99aebf7733p+5, 0x1.bce740a379ce8p+6, 0x1.1b3081d23661p+6, 0x1.7140d6e6e281bp+6,
+0x1.3ac93e2675928p+6, 0x1.38bf40fe717e8p+6, 0x1.ff66b4c3fecd7p+4, 0x1.901999b320333p+4,
+0x1.4dc4dd5a9b89cp+5, 0x1.e0431813c0863p+6, 0x1.dc463583b88c7p+4, 0x1.d272d5c3a4e5bp+3,
+0x1.c8958b37912b1p+6, 0x1.3cd9a1c279b34p+2, 0x1.b1c0f2436381ep+3, 0x1.19f40cc233e82p+6,
+0x1.cee00f8f9dc02p+6, 0x1.9b331c0b36664p+5, 0x1.0af9af6a15f36p+5, 0x1.b630bf136c618p+6,
+0x1.677559c2ceeabp+6, 0x1.4232162a84643p+5, 0x1.ae8a16435d143p+2, 0x1.46d8298a8db05p+5,
+0x1.02de923a05bd2p+5, 0x1.bcb99e8b79734p+5, 0x1.e2fe9d83c5fd4p+4, 0x1.06443f420c888p+6,
+0x1.c4d62f8389ac6p+2, 0x1.2260c83244c19p+5, 0x1.adb2e8035b65dp+5, 0x1.1a2a306e34546p+6,
+0x1.385e92e270bd2p+4, 0x1.f209f5d7e413fp+6, 0x1.16d60ea22dac2p+5, 0x1.88e0e2df11c1cp+6,
+0x1.2ac936d255927p+6, 0x1.0b44b48216897p+6, 0x1.ece7494fd9ce9p+6, 0x1.d1aba57fa3575p+6,
+0x1.d70f9923ae1f3p+5, 0x1.8fe35ab31fc6bp+4, 0x1.7f400682fe801p+1, 0x1.683aaf92d0756p+5,
+0x1.df19c323be338p+4, 0x1.08c879f21190fp+4, 0x1.ce11648b9c22dp+6, 0x1.1a9a01623534p+4,
+0x1.0fcbac861f976p+6, 0x1.4e38f1029c71ep+4, 0x1.fcd73f6bf9ae8p+6, 0x1.dd041913ba083p+4,
+0x1.e94e8eabd29d2p+5, 0x1.7bfe0cc2f7fc2p+2, 0x1.1aad1b0a355a3p+6, 0x1.76169072ec2d2p+6,
+0x1.ec396023d872cp+5, 0x1.936cc26b26d98p+6, 0x1.f16b3ec3e2d68p+4, 0x1.126a130a24d42p+6,
+0x1.24e9340249d27p+3, 0x1.533443b2a6688p+6, 0x1.64a21ba2c9443p+3, 0x1.cad32ce395a66p+4,
+0x1.453e39868a7c7p+6, 0x1.6ffe958adffd3p+5, 0x1.fb95ae1bf72b6p+6, 0x1.c01dc153803b8p+4,
+0x1.c343ff478688p+6, 0x1.e87cf767d0f9fp+6, 0x1.06cc57520d98bp+4, 0x1.5d9797aabb2f3p+5,
+0x1.31d7384263ae7p+4, 0x1.36b458226d68bp+4, 0x1.62e9239ec5d24p+6, 0x1.88787dbb10f1p+5,
+0x1.1fbe69123f7cdp+5, 0x1.30fa882a61f51p+6, 0x1.0ae2bf3615c58p+6, 0x1.9faae10f3f55cp+6,
+0x1.8488c46b09119p+6, 0x1.07b9fe9e0f74p+6, 0x1.6ebe7502dd7cfp+2, 0x1.e4c02ef3c9806p+4,
+0x1.1f79df6a3ef3cp+6, 0x1.3199025a6332p+6, 0x1.ef469c2fde8d4p+6, 0x1.5968f782b2d1fp+2,
+0x1.8a0b898314171p+5, 0x1.ae85af735d0b6p+4, 0x1.2800a28250014p+6, 0x1.d345d68ba68bbp+5,
+0x1.bed5af8f7dab6p+6, 0x1.5494e5f6a929dp+6, 0x1.5c57b67eb8af7p+6, 0x1.0413e9160827dp+6,
+0x1.92861703250c3p+1, 0x1.57ed6496afdadp+6, 0x1.741b596ae836bp+6, 0x1.cfd82fff9fb06p+6,
+0x1.406a5bfa80d4bp+6, 0x1.b5ce6f3f6b9cep+6, 0x1.fa8fef43f51fep+4, 0x1.8ce02a0f19c05p+6,
+0x1.bdc2a4037b855p-1, 0x1.e18d1f73c31a4p+6, 0x1.4471a3a288e34p+4, 0x1.26b573a24d6aep+5,
+0x1.1287a79a250f5p+6, 0x1.5bff281eb7fe5p+6, 0x1.982cd6e33059bp+3, 0x1.2e20d8025c41bp+5,
+0x1.8ee49ae31dc93p+4, 0x1.27c608b24f8c1p+4, 0x1.104077be2080fp+6, 0x1.8333062306661p+6,
+0x1.7b8a8486f7151p+6, 0x1.ff0e27d3fe1c5p+5, 0x1.98c9959b31933p+6, 0x1.0241251204825p+4,
+0x1.6b287fc6d651p+6, 0x1.819470330328ep+5, 0x1.2a33348a54667p+6, 0x1.29fe2f5253fc6p+6,
+0x1.55f1e0c2abe3cp+2, 0x1.0d15d6121a2bbp+5, 0x1.7090c322e1218p+3, 0x1.0f9a76221f34fp+3,
+0x1.de784f9fbcf0ap+6, 0x1.a22d71d3445aep+6, 0x1.f1cb7ec3e397p+6, 0x1.1ee2ab9a3dc55p+6,
+0x1.57fbe10eaff7cp+6, 0x1.c1bdea43837bdp+4, 0x1.5785ab4aaf0b5p+5, 0x1.5b776656b6eedp+6,
+0x1.47f268028fe4dp+4, 0x1.f9be7d1bf37dp+5, 0x1.eed22027dda44p+6, 0x1.6484419ac9088p+6,
+0x1.63799aa2c6f33p+4, 0x1.0ebdd8021d7bbp+3, 0x1.fb94ad9bf7296p+6, 0x1.792f1ac2f25e3p+5,
+0x1.af24f4b35e49fp+4, 0x1.0bd5255617aa5p+6, 0x1.fe549c03fca94p+3, 0x1.e753c1b3cea78p+6,
+0x1.6b872782d70e5p+1, 0x1.d894291bb1285p+6, 0x1.3f2057c27e40bp+3, 0x1.7684b902ed097p+6,
+0x1.32bcc26265798p+5, 0x1.52173f82a42e8p+6, 0x1.4105d0aa820bap+5, 0x1.5d7afe7abaf6p+5,
+0x1.d8a22a8bb1445p+6, 0x1.9d2a01733a54p+5, 0x1.a1619c0342c34p+5, 0x1.b71a7a2b6e34fp+6,
+0x1.c309ca2386139p+4, 0x1.84f8998309f13p+5, 0x1.abfa4b8357f49p+5, 0x1.c8be539b917cap+6,
+0x1.32ebc75265d79p+6, 0x1.81bffb67037ffp+6, 0x1.2435b9ee486b7p+6, 0x1.84e8615709d0cp+6,
+0x1.fa7ce7c3f4f9dp+4, 0x1.1307da16260fbp+6, 0x1.d2d945dba5b29p+5, 0x1.aefb41335df68p+5,
+0x1.34df951669bf3p+6, 0x1.ca02a11394054p+5, 0x1.94152dfb282a6p+6, 0x1.a0a8d2474151ap+6,
+0x1.f0d675dfe1acfp+6, 0x1.d3dfc17ba7bf8p+6, 0x1.87fc93f70ff92p+6, 0x1.fc32af1ff8656p+6,
+0x1.ac73ea9358e7dp+6, 0x1.afe09eef5fc14p+6, 0x1.72b7681ee56edp+6, 0x1.17492f022e926p+4,
+0x1.01f7de7203efcp+6, 0x1.33a50702674a1p+2, 0x1.e91f95fbd23f3p+5, 0x1.b53411f36a682p+5,
+0x1.c39ea25b873d4p+5, 0x1.c54098ff8a813p+6, 0x1.2369064246d21p+5, 0x1.5291c3b6a5238p+6,
+0x1.0f79cb7a1ef39p+5, 0x1.67b1a8e2cf635p+6, 0x1.1b50174e36a03p+6, 0x1.baa8ad0f75516p+6,
+0x1.d2e3488ba5c69p+5, 0x1.fc2e89e3f85d1p+3, 0x1.3f910e627f222p+6, 0x1.6810de36d021cp+6,
+0x1.528dab52a51b5p+6, 0x1.47ed8a828fdb1p+3, 0x1.fc73f663f8e7fp+3, 0x1.0eda80ca1db5p+5,
+0x1.0dff01da1bfep+6, 0x1.d3a3acc7a7476p+6, 0x1.40b0954281613p+3, 0x1.fdaaef6bfb55ep+5,
+0x1.a7836e3f4f06ep+6, 0x1.b012a6a360255p+6, 0x1.f6104da3ec20ap+5, 0x1.53f758cea7eebp+6,
+0x1.5ff3458ebfe69p+6, 0x1.b6fe3bc36dfc7p+4, 0x1.99c9a48f33935p+6, 0x1.87ac8ff30f592p+4,
+0x1.01f3bec203e78p+5, 0x1.1cb2df123965cp+5, 0x1.3c852cfa790a6p+6, 0x1.62c9308ec5926p+6,
+0x1.4e6822129cd04p+4, 0x1.ce39b01b9c736p+6, 0x1.6ab5e88ad56bdp+5, 0x1.b6addc836d5bcp+5,
+0x1.35eb58fe6bd6bp+6, 0x1.d0ab0b93a1561p+6, 0x1.2bff36a257fe7p+5, 0x1.f5cfd403eb9fbp+2,
+0x1.030dccc2061bap+2, 0x1.d590a9b3ab215p+6, 0x1.876ddb7b0edbbp+6, 0x1.62be881ec57d1p+6,
+0x1.fe8e5b03fd1cbp+6, 0x1.c6fc5a478df8bp+6, 0x1.ea2bc887d4579p+6, 0x1.0c8d5cda191acp+6,
+0x1.9aa0070f35401p+6, 0x1.241db2c2483b6p+2, 0x1.6c5a9202d8b52p+1, 0x1.4223754a8446fp+6,
+0x1.c25481cf84a9p+6, 0x1.066afb620cd5fp+6, 0x1.2c359c32586b4p+5, 0x1.2247c75e448f9p+6,
+0x1.742a8a52e8551p+6, 0x1.7f239522fe473p+3, 0x1.8432eb5b0865dp+6, 0x1.f52469b7ea48dp+6,
+0x1.7c7bc462f8f79p+5, 0x1.817030a302e06p+5, 0x1.57ed9a42afdb3p+6, 0x1.11d7eab623afdp+6,
+0x1.1de390da3bc72p+5, 0x1.a911d0835223ap+1, 0x1.ed2ed8fbda5dbp+6, 0x1.c4dd216b89ba4p+6,
+0x1.ddf39a1bbbe73p+6, 0x1.065ce8920cb9dp+5, 0x1.e43a1eabc8744p+6, 0x1.ee2476e7dc48fp+6,
+0x1.62fc77e2c5f8fp+4, 0x1.6ba7fa22d74ffp+6, 0x1.50e2ff06a1c6p+6, 0x1.5d35e3f2ba6bcp+4,
+0x1.32a4546a6548bp+6, 0x1.3b0ec78a761d9p+6, 0x1.63dad5d6c7b5bp+6, 0x1.9a88b6eb35117p+5,
+0x1.4d50a2b69aa14p+6, 0x1.6f3daa66de7b5p+6, 0x1.ecfa1783d9f43p+1, 0x1.0fa524861f4a5p+6,
+0x1.d6a29723ad453p+4, 0x1.4b053daa960a8p+5, 0x1.8f675f031ececp+3, 0x1.e9d3301bd3a66p+6,
+0x1.aace22fb559c4p+5, 0x1.b61fd73b6c3fbp+6, 0x1.def799cfbdef3p+6, 0x1.93a4f3af2749ep+6,
+0x1.db5fbe33b6bf8p+4, 0x1.36e534126dca7p+6, 0x1.4af9bcc295f38p+5, 0x1.05c9b7fa0b937p+6,
+0x1.442dc296885b8p+6, 0x1.25576eb24aaeep+5, 0x1.954db2c32a9b6p+5, 0x1.22215cae4442cp+6,
+0x1.15da2ba22bb45p+6, 0x1.5dc1f012bb83ep+5, 0x1.1045d396208bap+6, 0x1.6e99499edd329p+6,
+0x1.a88f22c3511e4p+2, 0x1.84a34a6309469p+4, 0x1.c5e6c29b8bcd8p+6, 0x1.4d2d46969a5a9p+6,
+0x1.9c379a23386f3p+6, 0x1.29c1986e53833p+6, 0x1.a71a20834e344p+2, 0x1.d31079aba620fp+5,
+0x1.31fe85aa63fd1p+5, 0x1.4ecb96229d973p+3, 0x1.f92d615bf25acp+6, 0x1.0ea7e89e1d4fdp+6,
+0x1.9eb8233b3d704p+5, 0x1.58d269c2b1a4dp+3, 0x1.f0f6316be1ec6p+5, 0x1.a4c3231b49864p+6,
+0x1.e13a2477c2745p+6, 0x1.aee5650b5dcadp+5, 0x1.386816c670d03p+6, 0x1.60485002c090ap+4,
+0x1.cafcd28395f9ap+1, 0x1.dde4f527bbc9fp+6, 0x1.5ddbcbfabbb79p+6, 0x1.5285a92aa50b5p+6,
+0x1.c242b20384856p+4, 0x1.44152ac2882a5p+3, 0x1.d29c1763a5383p+4, 0x1.866ad8230cd5bp+6,
+0x1.aec73ac35d8e7p+5, 0x1.84ecd96f09d9bp+6, 0x1.ea08437bd4108p+5, 0x1.e3d91f1bc7b24p+5,
+0x1.e615ac07cc2b6p+6, 0x1.75d5c8aaebab9p+5, 0x1.f8ceb103f19d6p+3, 0x1.824d4627049a9p+6,
+0x1.e4ac7cc7c959p+6, 0x1.662de0a2cc5bcp+4, 0x1.af560be35eac1p+4, 0x1.f6aefe63ed5ep+4,
+0x1.06c9d5e20d93bp+5, 0x1.940b915328172p+4, 0x1.8c53a83718a75p+6, 0x1.52c0fc8ea582p+6,
+0x1.203a631a4074cp+5, 0x1.099d81d2133bp+5, 0x1.ef083f4bde108p+5, 0x1.c55d58038ababp+4,
+0x1.5c41736eb882ep+6, 0x1.7f61b342fec36p+3, 0x1.92d2d40325a5bp+5, 0x1.6a995a02d532bp+6,
+0x1.ba257183744aep+1, 0x1.3a29afc274536p+3, 0x1.7a3e065af47c1p+5, 0x1.f9876033f30ecp+4,
+0x1.3f1f6d427e3eep+4, 0x1.31c60906638c1p+6, 0x1.332c0c0266582p+0, 0x1.272b78b64e56fp+6,
+0x1.6d65c4e2dacb9p+5, 0x1.f3a1a3dbe7434p+5, 0x1.9180840323011p+2, 0x1.39911cea73224p+5,
+0x1.b4bbb64769777p+6, 0x1.60c77992c18efp+4, 0x1.f15d4983e2ba9p+2, 0x1.9968330b32d06p+6,
+0x1.637aad1ac6f56p+5, 0x1.15d6af222bad6p+5, 0x1.713f2a02e27e5p+2, 0x1.3522417e6a448p+6,
+0x1.dfdc77cbbfb8fp+5, 0x1.a3679ad746cf3p+6, 0x1.0fc67c121f8dp+5, 0x1.800b6d770016ep+6,
+0x1.41b2dde28365cp+3, 0x1.7f675daefececp+6, 0x1.f162c377e2c58p+6, 0x1.8477cf2f08efap+6,
+0x1.af5394175ea73p+6, 0x1.75985af2eb30bp+5, 0x1.de22525bbc44ap+5, 0x1.bd24bfa77a498p+6,
+0x1.c422c6e388459p+5, 0x1.ac302c5b58606p+6, 0x1.dc34bd83b8698p+3, 0x1.31d93ec663b28p+6,
+0x1.bbec6abb77d8dp+5, 0x1.014d1f82029a4p+4, 0x1.6412dde2c825cp+4, 0x1.94a917cf29523p+6,
+0x1.3a2419d274483p+6, 0x1.c872fee390e6p+4, 0x1.8b8d3203171a6p+3, 0x1.ddbfa02bbb7f4p+5,
+0x1.949d3c3b293a8p+5, 0x1.421deb62843bdp+4, 0x1.1090063a21201p+5, 0x1.7c0bf4aef817fp+6,
+0x1.b6e5a4db6dcb5p+5, 0x1.3eb7eb7a7d6fdp+5, 0x1.625c6c52c4b8ep+5, 0x1.cb610e5396c22p+6,
+0x1.0b0e4242161c8p+4, 0x1.391174367222fp+6, 0x1.4b6c7bc696d8fp+6, 0x1.abe7b13357cf6p+4,
+0x1.70f1a3c2e1e34p+5, 0x1.3ccf3f3e799e8p+6, 0x1.ef71bb7bdee37p+6, 0x1.9f3197e33e633p+4,
+0x1.f79b6cb7ef36ep+6, 0x1.bd05c9537a0b9p+5, 0x1.27892ce24f126p+3, 0x1.b359a04b66b34p+5,
+0x1.156622022acc4p+5, 0x1.81def53303bdfp+4, 0x1.70c1dd02e183cp+1, 0x1.68a94662d1529p+6,
+0x1.41960a62832c1p+5, 0x1.922b198324563p+4, 0x1.faa4bc5bf5498p+5, 0x1.daef1f03b5de4p+6,
+0x1.ad4f0c3b5a9e2p+5, 0x1.2ec404725d881p+6, 0x1.939dde2b273bcp+5, 0x1.a0f6243b41ec5p+6,
+0x1.7f4b7f4afe97p+6, 0x1.5216f232a42dep+6, 0x1.1d0218e63a043p+6, 0x1.6af946d2d5f29p+4,
+0x1.f172e7efe2e5dp+6, 0x1.ce304f139c60ap+6, 0x1.30fb004261f6p+3, 0x1.a1b3c3e343678p+3,
+0x1.0741c3460e838p+6, 0x1.718bdbcee317bp+6, 0x1.3e60c9927cc19p+5, 0x1.bfba95277f753p+6,
+0x1.5cb63612b96c7p+5, 0x1.1d44408a3a888p+5, 0x1.3c37d8e2786fbp+3, 0x1.4bed0f7a97da2p+5,
+0x1.6d2504eeda4a1p+6, 0x1.31e082e263c1p+4, 0x1.7fa357e6ff46bp+6, 0x1.f7d815efefb03p+6,
+0x1.59dfbc12b3bf8p+5, 0x1.8b2966cf1652dp+6, 0x1.60815c4ec102cp+6, 0x1.4dbae33a9b75cp+6,
+0x1.efb42d33df686p+6, 0x1.774ee9f2ee9ddp+4, 0x1.28aa023a5154p+6, 0x1.8cb7669b196edp+5,
+0x1.8c97beef192f8p+6, 0x1.f278f14fe4f1ep+6, 0x1.9d475e133a8ecp+4, 0x1.0be33e3617c68p+6,
+0x1.448fe37e891fcp+6, 0x1.8453f06f08a7ep+6, 0x1.66a18feecd432p+6, 0x1.3602cb6a6c059p+6,
+0x1.52843f7ea5088p+6, 0x1.8cc0eff71981ep+6, 0x1.6a3943e6d4728p+6, 0x1.67180b02ce301p+4,
+0x1.fc999783f9333p+5, 0x1.2d3515825a6a3p+1, 0x1.98097e433013p+2, 0x1.aca7e6cf594fdp+6,
+0x1.301791e2602f2p+5, 0x1.041e4c12083cap+4, 0x1.4a79ba2294f37p+4, 0x1.4c3377029866fp+0,
+0x1.1aff677a35fedp+5, 0x1.d241c66fa4839p+6, 0x1.fd08e3cffa11cp+6, 0x1.3a6f91c674df2p+6,
+0x1.5d6b2d3ebad66p+6, 0x1.5d8a401abb148p+6, 0x1.1054e9fa20a9dp+5, 0x1.4d1f5a6e9a3ebp+6,
+0x1.bb5dfa9776bbfp+6, 0x1.b0d4773761a8fp+6, 0x1.37b0db826f61bp+2, 0x1.47f5b9828feb7p+6,
+0x1.a34d6883469adp+6, 0x1.eb3394f3d6673p+4, 0x1.4f63dee29ec7cp+4, 0x1.cfba97fb9f753p+5,
+0x1.ff20d5abfe41bp+6, 0x1.ba7a87a774f51p+6, 0x1.de017643bc02fp+2, 0x1.51a51526a34a3p+6,
+0x1.473b779a8e76fp+6, 0x1.88195b4b1032bp+6, 0x1.ab6b17e756d63p+6, 0x1.16210d622c422p+4,
+0x1.918303fb2306p+6, 0x1.c4ebafcf89d76p+6, 0x1.f2302a27e4605p+6, 0x1.4c76674298ecdp+3,
+0x1.7cd0b402f9a17p+0, 0x1.133a62c22674cp+4, 0x1.75fcd642ebf9bp+3, 0x1.26e5ed1a4dcbep+5,
+0x1.7105f1c2e20bep+2, 0x1.5e43f4a2bc87fp+3, 0x1.cde288579bc51p+6, 0x1.747b8c5ae8f72p+6,
+0x1.8952beaf12a58p+6, 0x1.5833f542b067fp+4, 0x1.8335cd8b066bap+5, 0x1.44b0b94689617p+6,
+0x1.b85d220370ba4p+0, 0x1.aa2be8fb5457dp+5, 0x1.194ce58a3299dp+5, 0x1.aa2edd0b545dcp+6,
+0x1.4fe2d9be9fc5bp+6, 0x1.c0fed4fb81fdbp+5, 0x1.241852124830ap+5, 0x1.4f03af669e076p+6,
+0x1.35f3e4426be7dp+5, 0x1.5fd880dabfb1p+5, 0x1.4151891a82a31p+5, 0x1.e23569bbc46adp+6,
+0x1.c02cddc38059cp+3, 0x1.304f71c2609eep+4, 0x1.3ded68a27bdadp+3, 0x1.c9889fb393114p+6,
+0x1.0ff8c3c21ff18p+2, 0x1.9edd73833dbaep+2, 0x1.f3176c9be62eep+6, 0x1.6f2cf0c2de59ep+2,
+0x1.7af1bfa2f5e38p+4, 0x1.0eb83b021d707p+3, 0x1.54cb8b3aa9971p+5, 0x1.d7333c23ae668p+4,
+0x1.367e17d26cfc3p+4, 0x1.e12137c3c2427p+4, 0x1.ea485b63d490bp+6, 0x1.d6f244a7ade49p+6,
+0x1.9caa968339553p+5, 0x1.57c68452af8d1p+5, 0x1.1ba2fdea3746p+6, 0x1.aa6d7f9354dbp+5,
+0x1.80f936a701f27p+6, 0x1.a84970af5092ep+6, 0x1.fd967353fb2cep+4, 0x1.a1b820c343704p+5,
+0x1.1191b65a23237p+5, 0x1.1171c5de22e39p+6, 0x1.fdfbfc83fbf8p+2, 0x1.23c2cd4e4785ap+6,
+0x1.c15e064b82bc1p+6, 0x1.811108ab02221p+5, 0x1.05f8370a0bf07p+6, 0x1.f963a203f2c74p+6,
+0x1.0c9c60c61938cp+6, 0x1.2db5e41e5b6bdp+6, 0x1.c2ec41b385d88p+6, 0x1.1d9bed063b37ep+6,
+0x1.47a3bb568f477p+6, 0x1.b603ae4f6c076p+6, 0x1.348ebc12691d8p+6, 0x1.a6602b434cc05p+6,
+0x1.d7dab5afafb57p+6, 0x1.def481afbde9p+6, 0x1.c2cfa483859f5p+2, 0x1.2bd1dd2257a3cp+3,
+0x1.5cf33e72b9e68p+4, 0x1.9d556a033aaadp+0, 0x1.fc6c804bf8d9p+6, 0x1.25921ae24b243p+6,
+0x1.64b12fa2c9626p+5, 0x1.180f7e32301fp+6, 0x1.fac8daabf591bp+6, 0x1.9a8e73c3351cep+3,
+0x1.80b1ddbb0163cp+5, 0x1.e8b9ddf3d173cp+4, 0x1.042ddeda085bcp+6, 0x1.4921ca0a92439p+6,
+0x1.8ba03d5b17408p+6, 0x1.240d9ea2481b4p+6, 0x1.b3925d636724cp+4, 0x1.4cfe43a699fc8p+6,
+0x1.e49622f7c92c4p+6, 0x1.72dcce62e5b9ap+6, 0x1.4661e5a68cc3dp+6, 0x1.e265077bc4ca1p+5,
+0x1.412564fa824adp+5, 0x1.094e275a129c5p+6, 0x1.d9ce1803b39c3p+1, 0x1.e8366dd3d06cep+6,
+0x1.7ea3ab4afd475p+5, 0x1.435d2cd286ba6p+6, 0x1.8e9699131d2d3p+6, 0x1.2e5916a25cb23p+5,
+0x1.2251ae8244a36p+6, 0x1.aac3935b55872p+6, 0x1.794d8deaf29b2p+5, 0x1.798e7e1ef31dp+6,
+0x1.b138e9076271dp+6, 0x1.72268e7ae44d2p+5, 0x1.3e4131fa7c826p+5, 0x1.8e4603531c8cp+4,
+0x1.d122c56fa2459p+6, 0x1.33d2e75267a5dp+5, 0x1.2dc69e9a5b8d4p+5, 0x1.22f7689a45eedp+5,
+0x1.1417eb26282fdp+6, 0x1.9b112e2b36226p+6, 0x1.da9d7e57b53bp+6, 0x1.3f7051027ee0ap+5,
+0x1.7e3d9992fc7b3p+5, 0x1.1e0856b23c10bp+4, 0x1.ecb66c27d96cep+6, 0x1.4769df828ed3cp+5,
+0x1.ba5ee40f74bddp+6, 0x1.331851ca6630ap+6, 0x1.94e7737f29ceep+6, 0x1.6bc65a22d78cbp+4,
+0x1.e333c903c6679p+3, 0x1.a3b5e43f476bdp+6, 0x1.0ca0117219402p+4, 0x1.f7709d8beee14p+5,
+0x1.ce26221b9c4c4p+5, 0x1.d1be9d6fa37d4p+6, 0x1.92e4da1b25c9bp+6, 0x1.2c97f182592fep+1,
+0x1.7c8230caf9046p+6, 0x1.3e2e84327c5d1p+4, 0x1.82f33daf05e68p+6, 0x1.2dbb19ce5b763p+6,
+0x1.089ee84e113ddp+6, 0x1.109eb542213d7p+3, 0x1.914c9aa322993p+6, 0x1.b3835b736706bp+5,
+0x1.77fa94a2eff53p+5, 0x1.417f4f8282feap+3, 0x1.6b3d6206d67acp+6, 0x1.d015357ba02a7p+6,
+0x1.c341181b86823p+6, 0x1.45dae05e8bb5cp+6, 0x1.bf3577e37e6afp+4, 0x1.04bfc9c2097f9p+5,
+0x1.8d5cf60b1ab9fp+6, 0x1.720f2872e41e5p+4, 0x1.2614d4a24c29bp+6, 0x1.47bbda1a8f77bp+6,
+0x1.8f9c1be71f383p+6, 0x1.75f8903aebf12p+5, 0x1.a2ad70a3455aep+6, 0x1.cc02950b98053p+6,
+0x1.7ac8b162f5916p+4, 0x1.e5d574ffcbaafp+6, 0x1.8f75c79b1eeb9p+5, 0x1.45c53d6a8b8a8p+6,
+0x1.b794126f6f282p+6, 0x1.6a7ef792d4fdfp+4, 0x1.4f29fcf69e54p+6, 0x1.34164336682c8p+6,
+0x1.5456bdeaa8ad8p+5, 0x1.a43a75434874fp+5, 0x1.874574030e8afp+4, 0x1.b2ca474365949p+6,
+0x1.e862229bd0c44p+5, 0x1.f31df7a3e63bfp+6, 0x1.1917e9f2322fdp+5, 0x1.b02e5b9f605cbp+6,
+0x1.b4de190369bc3p+2, 0x1.f7c95703ef92bp+6, 0x1.8043911700872p+6, 0x1.de8ef9abbd1dfp+6,
+0x1.3da4375e7b487p+6, 0x1.f010ef0fe021ep+6, 0x1.83bb7a330776fp+4, 0x1.96025acb2c04bp+5,
+0x1.3252e4a264a5dp+4, 0x1.8703b32f0e076p+6, 0x1.2bd077c257a0fp+2, 0x1.dc30d513b861bp+6,
+0x1.07ffed320fffep+4, 0x1.b56a78236ad4fp+6, 0x1.a8336a1b5066dp+6, 0x1.41644f4a82c8ap+5,
+0x1.9b3fed1f367fep+6, 0x1.bfb937937f727p+4, 0x1.e677650fcceedp+6, 0x1.52d3ff8aa5a8p+6,
+0x1.951c179b2a383p+5, 0x1.35a162066b42cp+6, 0x1.0dd4857a1ba91p+5, 0x1.74b96ac2e972dp+6,
+0x1.efa72903df4e5p+0, 0x1.d1773f7ba2ee8p+5, 0x1.2783b2024f076p+6, 0x1.f7df5be3efbebp+5,
+0x1.b7b32ec36f666p+5, 0x1.b40fa6fb681f5p+6, 0x1.583c1322b0782p+5, 0x1.ee4ef1e3dc9dep+5,
+0x1.abd8fdfb57b2p+6, 0x1.630cd522c619bp+3, 0x1.ab6ce53b56d9dp+5, 0x1.d2fa6aaba5f4dp+5,
+0x1.c7289b438e513p+2, 0x1.36a5512a6d4aap+6, 0x1.b47e62bf68fccp+6, 0x1.a41d0b73483a1p+4,
+0x1.7b5208aaf6a41p+5, 0x1.c73b6a3b8e76dp+6, 0x1.14e05fb229c0cp+4, 0x1.ff51ff43fea4p+5,
+0x1.7ca5e25af94bcp+6, 0x1.ed6b8207dad7p+6, 0x1.a05b274b40b65p+6, 0x1.17e5cf7a2fcbap+6,
+0x1.75673fb2eace8p+4, 0x1.86d28c570da52p+6, 0x1.aae73c0355ce8p+4, 0x1.27e7dbba4fcfbp+6,
+0x1.78e7dcb2f1cfcp+5, 0x1.e3482383c6904p+5, 0x1.39428cf272852p+5, 0x1.8865160310ca3p+5,
+0x1.da5fb17fb4bf6p+6, 0x1.c424f87b8849fp+6, 0x1.c02238f380447p+6, 0x1.6c7291bad8e52p+5,
+0x1.78349f72f0694p+6, 0x1.b1010a0362021p+4, 0x1.ad60c1d35ac18p+6, 0x1.240d9d6e481b4p+6,
+0x1.3143ba5262877p+5, 0x1.062e68da0c5cdp+5, 0x1.b15a580362b4bp+1, 0x1.6a28cdbad451ap+5,
+0x1.b9bc859773791p+6, 0x1.c209357f84127p+6, 0x1.1e1ba9ba3c375p+6, 0x1.dd9627a3bb2c5p+4,
+0x1.89449fbb12894p+6, 0x1.6353c1aac6a78p+6, 0x1.770e898eee1d1p+6, 0x1.05ea82120bd5p+6,
+0x1.50bf43aea17e8p+6, 0x1.1769b0d62ed36p+6, 0x1.dd051883ba0a3p+2, 0x1.ae19139b5c322p+6,
+0x1.3c787a5278f0fp+5, 0x1.1114411a22288p+5, 0x1.ac01dea35803cp+5, 0x1.5ab02b86b5605p+6,
+0x1.7a2e324ef45c6p+6, 0x1.72a235cae5447p+6, 0x1.ee2b6843dc56dp+2, 0x1.548de3caa91bcp+6,
+0x1.36c72e426d8e6p+6, 0x1.df04ef77be09ep+6, 0x1.58e59502b1cb3p+1, 0x1.5df79b6abbef3p+5,
+0x1.2d14c7e25a299p+4, 0x1.b827ee7b704fep+6, 0x1.d3096b23a612dp+6, 0x1.c7ce1e438f9c4p+5,
+};
+
--- /dev/null
+/* babl - dynamically extendable universal pixel conversion library.
+ * Copyright (C) 2005, Øyvind Kolås.
+ *
+ * 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 3 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, see
+ * <http://www.gnu.org/licenses/>.
+ */
+
+#define HORIZONTAL_MIN 1
+#define HORIZONTAL_MAX 4
+#define VERTICAL_MIN 1
+#define VERTICAL_MAX 4
+
+#include "config.h"
+#include "babl-internal.h"
+
+static BablSampling sampling_db[(HORIZONTAL_MAX - HORIZONTAL_MIN + 1) *
+ (VERTICAL_MAX - VERTICAL_MIN + 1)];
+
+const Babl *
+babl_sampling (int horizontal,
+ int vertical)
+{
+ if (vertical >= 1 &&
+ vertical <= 4 &&
+ horizontal >= 1 &&
+ horizontal <= 4)
+ return (Babl *) &sampling_db [ (vertical - 1) * 4 + (horizontal - 1)];
+ else
+ babl_log ("babl_samping(%i,%i): arguments out of bounds",
+ horizontal, vertical);
+ return NULL;
+}
+
+void
+babl_sampling_class_for_each (BablEachFunction each_fun,
+ void *user_data)
+{
+ int horizontal;
+ int vertical;
+
+ for (horizontal = HORIZONTAL_MIN; horizontal <= HORIZONTAL_MAX; horizontal++)
+ for (vertical = VERTICAL_MIN; vertical <= VERTICAL_MAX; vertical++)
+ {
+ int index = (vertical - VERTICAL_MIN) * VERTICAL_MAX + (horizontal - HORIZONTAL_MIN);
+ if (each_fun (BABL (&sampling_db[index]), user_data))
+ return;
+ }
+}
+
+void
+babl_sampling_class_init (void)
+{
+ int horizontal;
+ int vertical;
+
+ for (horizontal = HORIZONTAL_MIN; horizontal <= HORIZONTAL_MAX; horizontal++)
+ for (vertical = VERTICAL_MIN; vertical <= VERTICAL_MAX; vertical++)
+ {
+ int index = (vertical - VERTICAL_MIN) * VERTICAL_MAX + (horizontal - HORIZONTAL_MIN);
+ sampling_db[index].instance.class_type = BABL_SAMPLING;
+ sampling_db[index].instance.id = 0;
+ sampling_db[index].horizontal = horizontal;
+ sampling_db[index].vertical = vertical;
+ sampling_db[index].instance.name = sampling_db[index].name;
+ sampling_db[index].name[0] = '0' + horizontal;
+ sampling_db[index].name[1] = ':';
+ sampling_db[index].name[2] = '0' + vertical;
+ sampling_db[index].name[3] = '\0';
+ }
+}
--- /dev/null
+/* babl - dynamically extendable universal pixel conversion library.
+ * Copyright (C) 2005-2008, Øyvind Kolås and others.
+ *
+ * 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 3 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, see
+ * <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef _BABL_SAMPLING_H
+#define _BABL_SAMPLING_H
+
+BABL_CLASS_DECLARE (sampling);
+
+typedef struct
+{
+ BablInstance instance;
+ int horizontal;
+ int vertical;
+ char name[4];
+} BablSampling;
+
+void
+babl_sampling_class_init (void);
+
+#endif
--- /dev/null
+/* babl - dynamically extendable universal pixel conversion library.
+ * Copyright (C) 2005, Øyvind Kolås.
+ *
+ * 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 3 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, see
+ * <http://www.gnu.org/licenses/>.
+ */
+
+#include "config.h"
+#include "babl-internal.h"
+
+static int OK;
+
+static int
+foo (Babl *babl,
+ void *user_data)
+{
+/* babl_log ("%s", babl->instance.name);*/
+ return 0;
+}
+
+static Babl *babl_conversion_destination (Babl *babl);
+
+static int
+type_sanity (Babl *babl,
+ void *user_data)
+{
+ /* ensure that every type has reference conversions to
+ * and from double */
+ int ok, i;
+ BablList *list;
+
+ ok = 0;
+ list = babl->type.from_list;
+ if (list)
+ {
+ for (i = 0; i < babl_list_size (list); i++)
+ {
+ if (babl_conversion_destination ((Babl *) list->items[i]) == babl_type_from_id (BABL_DOUBLE))
+ {
+ ok = 1;
+ break;
+ }
+ }
+ }
+ if (!ok)
+ {
+ OK = 0;
+ babl_log ("lack of sanity! type '%s' has no conversion to double",
+ babl->instance.name);
+ }
+
+ return 0;
+}
+
+
+static int
+model_sanity (Babl *babl,
+ void *user_data)
+{
+ /* ensure that every type has reference conversions to
+ * and from rgba */
+ int ok, i;
+ BablList *list;
+
+ ok = 0;
+ list = babl->model.from_list;
+ if (list)
+ {
+ for (i = 0; i < babl_list_size (list); i++)
+ {
+ if (babl_conversion_destination ((Babl *) list->items[i]) == babl_model_from_id (BABL_RGBA))
+ {
+ ok = 1;
+ break;
+ }
+ }
+ }
+ if (!ok)
+ {
+ OK = 0;
+ babl_log ("lack of sanity! model '%s' has no conversion to 'rgba'",
+ babl->instance.name);
+ }
+
+ return 0;
+}
+
+static int
+id_sanity (Babl *babl,
+ void *user_data)
+{
+ if (0 && 0 == babl->instance.id &&
+ babl->instance.creator &&
+ !strcmp (BABL (babl->instance.creator)->instance.name, "BablBase"))
+ {
+ OK = 0;
+ babl_log ("%s\t'%s' has id==0",
+ babl_class_name (babl->class_type), babl->instance.name);
+ }
+ return 0;
+}
+
+int
+babl_sanity (void)
+{
+ OK=1;
+
+ babl_type_class_for_each (id_sanity, NULL);
+ babl_component_class_for_each (id_sanity, NULL);
+ babl_model_class_for_each (id_sanity, NULL);
+ babl_format_class_for_each (id_sanity, NULL);
+
+ babl_type_class_for_each (type_sanity, NULL);
+ babl_sampling_class_for_each (foo, NULL);
+ babl_component_class_for_each (foo, NULL);
+ babl_model_class_for_each (model_sanity, NULL);
+ babl_format_class_for_each (foo, NULL);
+ babl_conversion_class_for_each (foo, NULL);
+
+ return OK;
+}
+
+static Babl *babl_conversion_destination (Babl *babl)
+{
+ return (Babl *)babl->conversion.destination;
+}
--- /dev/null
+/* babl - dynamically extendable universal pixel conversion library.
+ * Copyright (C) 2005, Øyvind Kolås.
+ *
+ * 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 3 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, see
+ * <http://www.gnu.org/licenses/>.
+ */
+
+#include "config.h"
+#include <string.h>
+#include <stdarg.h>
+#include <math.h>
+
+#define NEEDS_BABL_DB
+#include "babl-internal.h"
+#include "babl-db.h"
+#include "babl-ref-pixels.h"
+
+static int
+babl_type_destroy (void *data)
+{
+ Babl *babl = data;
+ if (babl->type.from_list)
+ babl_free (babl->type.from_list);
+ return 0;
+}
+
+static Babl *
+type_new (const char *name,
+ int id,
+ int bits)
+{
+ Babl *babl;
+
+ babl_assert (bits != 0);
+ babl_assert (bits % 8 == 0);
+
+ babl = babl_malloc (sizeof (BablType) + strlen (name) + 1);
+ babl_set_destructor (babl, babl_type_destroy);
+ babl->instance.name = (void *) ((char *) babl + sizeof (BablType));
+ babl->class_type = BABL_TYPE;
+ babl->instance.id = id;
+ strcpy (babl->instance.name, name);
+ babl->type.bits = bits;
+ babl->type.from_list = NULL;
+
+ return babl;
+}
+
+static int
+is_type_duplicate (Babl *babl, int bits)
+{
+ if (babl->type.bits != bits)
+ return 0;
+
+ return 1;
+}
+
+const Babl *
+babl_type_new (void *first_arg,
+ ...)
+{
+ va_list varg;
+ Babl *babl;
+ int id = 0;
+ int bits = 0;
+ const char *name = first_arg;
+ const char *arg;
+
+ va_start (varg, first_arg);
+
+ while (1)
+ {
+ arg = va_arg (varg, char *);
+ if (!arg)
+ break;
+
+ /* first, we assume arguments to be strings */
+ else if (!strcmp (arg, "id"))
+ {
+ id = va_arg (varg, int);
+ }
+
+ else if (!strcmp (arg, "bits"))
+ {
+ bits = va_arg (varg, int);
+ }
+ else if (!strcmp (arg, "integer"))
+ {
+ (void) va_arg (varg, int);
+ }
+ else if (!strcmp (arg, "min"))
+ {
+ (void) va_arg (varg, long);
+ }
+ else if (!strcmp (arg, "max"))
+ {
+ (void) va_arg (varg, long);
+ }
+ else if (!strcmp (arg, "min_val"))
+ {
+ (void) va_arg (varg, double);
+ }
+ else if (!strcmp (arg, "max_val"))
+ {
+ (void) va_arg (varg, double);
+ }
+
+ /* if we didn't point to a known string, we assume argument to be babl */
+ else if (BABL_IS_BABL (arg))
+ {
+#ifdef BABL_LOG
+ Babl *babl = (Babl *) arg;
+
+ babl_log ("%s unexpected", babl_class_name (babl->class_type));
+#endif
+ }
+ else
+ {
+ babl_fatal ("unhandled argument '%s' for format '%s'", arg, name);
+ }
+ }
+
+ va_end (varg);
+
+ babl = babl_db_exist (db, id, name);
+ if (id && !babl && babl_db_exist (db, 0, name))
+ babl_fatal ("Trying to reregister BablType '%s' with different id!", name);
+
+ if (babl)
+ {
+ /* There is an instance already registered by the required id/name,
+ * returning the preexistent one instead if it doesn't differ.
+ */
+ if (!is_type_duplicate (babl, bits))
+ babl_fatal ("BablType '%s' already registered "
+ "as different type!", name);
+
+ return babl;
+ }
+
+ babl = type_new (name, id, bits);
+
+ /* Since there is not an already registered instance by the required
+ * id/name, inserting newly created class into database.
+ */
+ babl_db_insert (db, babl);
+ return babl;
+}
+
+
+#define TOLERANCE 0.000000001
+
+static const Babl *double_vector_format (void)
+{
+ static const Babl *self = NULL;
+
+ if (!self)
+ self = babl_format_new (
+ babl_model ("Y"),
+ babl_type ("double"),
+ babl_component ("Y"),
+ NULL);
+ return self;
+}
+
+int
+babl_type_is_symmetric (const Babl *babl)
+{
+ int is_symmetrical = 1;
+ void *original;
+ double *clipped;
+ void *destination;
+ double *transformed;
+
+ const Babl *ref_fmt;
+ const Babl *fmt;
+ Babl *fish_to;
+ Babl *fish_from;
+
+ const int samples = babl_get_num_type_test_pixels ();
+ const double *test_pixels = babl_get_type_test_pixels ();
+
+ ref_fmt = double_vector_format ();
+ fmt = babl_format_new (babl_model ("Y"),
+ babl,
+ babl_component ("Y"),
+ NULL);
+ fish_to = babl_fish_reference (ref_fmt, fmt);
+ fish_from = babl_fish_reference (fmt, ref_fmt);
+
+ original = babl_calloc (1, babl->type.bits / 8 * samples);
+ clipped = babl_calloc (1, 64 / 8 * samples);
+ destination = babl_calloc (1, babl->type.bits / 8 * samples);
+ transformed = babl_calloc (1, 64 / 8 * samples);
+
+ babl_process (fish_to, test_pixels, original, samples);
+ babl_process (fish_from, original, clipped, samples);
+ babl_process (fish_to, clipped, destination, samples);
+ babl_process (fish_from, destination, transformed, samples);
+
+ fish_from->fish.processings -= 2;
+ fish_to->fish.processings -= 2;
+ fish_from->fish.pixels -= samples * 2;
+ fish_to->fish.pixels -= samples * 2;
+
+ {
+ int cnt = 0;
+ int i;
+ for (i = 0; i < samples; i++)
+ {
+ if (fabs (clipped[i] - transformed[i]) > TOLERANCE)
+ {
+ if (cnt++ < 4)
+ babl_log ("%s: %f %f %f)",
+ babl->instance.name, test_pixels[i], clipped[i], transformed[i]
+ );
+ is_symmetrical = 0;
+ }
+ }
+ }
+
+ babl_free (original);
+ babl_free (clipped);
+ babl_free (destination);
+ babl_free (transformed);
+
+ return is_symmetrical;
+}
+
+BABL_CLASS_IMPLEMENT (type)
--- /dev/null
+/* babl - dynamically extendable universal pixel conversion library.
+ * Copyright (C) 2005-2008, Øyvind Kolås and others.
+ *
+ * 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 3 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, see
+ * <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef _BABL_TYPE_H
+#define _BABL_TYPE_H
+
+BABL_CLASS_DECLARE (type);
+
+typedef struct
+{
+ BablInstance instance;
+ BablList *from_list;
+ int bits; /*< number of bits used to represent the data type
+ (initially restricted to a multiple of 8) */
+ double min_val;
+ double max_val;
+} BablType;
+
+typedef struct
+{
+ BablType type;
+ int is_signed;
+ long max;
+ long min;
+} BablTypeInteger;
+
+typedef struct
+{
+ BablType type;
+ /* sign
+ * biased_exponent
+ * mantissa */
+} BablTypeFloat;
+
+#endif
--- /dev/null
+/* babl - dynamically extendable universal pixel conversion library.
+ * Copyright (C) 2005-2008, Øyvind Kolås and others.
+ *
+ * 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 3 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, see
+ * <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef _BABL_TYPES_H
+#define _BABL_TYPES_H
+
+#if !defined(BABL_INSIDE_BABL_H) && !defined(BABL_IS_BEING_COMPILED)
+#error "babl-version.h must not be included directly, include babl.h instead."
+#endif
+
+/**
+ * Babl:
+ *
+ * The babl API is based around polymorphism and almost everything is
+ * a Babl object.
+ *
+ * Rename to: Object
+ **/
+typedef union _Babl Babl;
+
+/* Conversion function between linear data of a either a data types or
+ * color formats.
+ */
+typedef long (*BablFuncLinear) (const char *src,
+ char *dst,
+ long n,
+ void *user_data);
+
+/* TypePlanar,ModelPlanar and FormatPlanar */
+typedef long (*BablFuncPlanar) (int src_bands,
+ const char *src[],
+ int src_pitch[],
+ int dst_bands,
+ char *dst[],
+ int dst_pitch[],
+ long n,
+ void *user_data);
+
+#endif
--- /dev/null
+/* babl - dynamically extendable universal pixel conversion library.
+ * Copyright (C) 2005, Øyvind Kolås.
+ *
+ * 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 3 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, see
+ * <http://www.gnu.org/licenses/>.
+ */
+
+#include "config.h"
+#include <math.h>
+#include "babl-internal.h"
+
+#ifdef __WIN32__
+#include <windows.h>
+#else
+#include <sys/time.h>
+#include <time.h>
+#endif
+
+#ifdef __WIN32__
+static LARGE_INTEGER start_time;
+static LARGE_INTEGER timer_freq;
+
+static void
+init_ticks (void)
+{
+ static int done = 0;
+
+ if (done)
+ return;
+ done = 1;
+
+ QueryPerformanceCounter(&start_time);
+ QueryPerformanceFrequency(&timer_freq);
+}
+
+long
+babl_ticks (void)
+{
+ LARGE_INTEGER end_time;
+
+ init_ticks ();
+
+ QueryPerformanceCounter(&end_time);
+ return (end_time.QuadPart - start_time.QuadPart) * (1000000.0 / timer_freq.QuadPart);
+}
+#else
+static struct timeval start_time;
+
+#define usecs(time) ((time.tv_sec - start_time.tv_sec) * 1000000 + time.tv_usec)
+
+static void
+init_ticks (void)
+{
+ static int done = 0;
+
+ if (done)
+ return;
+ done = 1;
+ gettimeofday (&start_time, NULL);
+}
+
+long
+babl_ticks (void)
+{
+ struct timeval measure_time;
+ init_ticks ();
+ gettimeofday (&measure_time, NULL);
+ return usecs (measure_time) - usecs (start_time);
+}
+#endif
+
+long
+babl_process_cost (long ticks_start,
+ long ticks_end)
+{
+ return (ticks_end - ticks_start) * 10 + 1;
+}
+
+double
+babl_rel_avg_error (const double *imgA,
+ const double *imgB,
+ long samples)
+{
+ double error = 0.0;
+ long i;
+
+ for (i = 0; i < samples; i++)
+ error += fabs (imgA[i] - imgB[i]);
+
+ if (error >= 0.000001)
+ error /= samples;
+ else
+ error = 0.0;
+
+ return error;
+}
+
--- /dev/null
+/* babl - dynamically extendable universal pixel conversion library.
+ * Copyright (C) 2005, Øyvind Kolås.
+ *
+ * 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 3 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, see
+ * <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef _BABL_UTIL_H
+#define _BABL_UTIL_H
+
+long
+babl_ticks (void);
+
+long
+babl_process_cost (long ticks_start,
+ long ticks_end);
+
+double
+babl_rel_avg_error (const double *imgA,
+ const double *imgB,
+ long samples);
+#endif
--- /dev/null
+/* babl - dynamically extendable universal pixel conversion library.
+ * Copyright (C) 2005-2008, Øyvind Kolås and others.
+ *
+ * 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 3 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, see
+ * <http://www.gnu.org/licenses/>.
+ */
+
+#include "config.h"
+#include "babl-internal.h"
+
+
+void
+babl_get_version (int *major,
+ int *minor,
+ int *micro)
+{
+ if (major != NULL)
+ *major = BABL_MAJOR_VERSION;
+
+ if (minor != NULL)
+ *minor = BABL_MINOR_VERSION;
+
+ if (micro != NULL)
+ *micro = BABL_MICRO_VERSION;
+}
--- /dev/null
+/* babl - dynamically extendable universal pixel conversion library.
+ * Copyright (C) 2005-2008, Øyvind Kolås and others.
+ *
+ * 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 3 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, see
+ * <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef _BABL_VERSION_H
+#define _BABL_VERSION_H
+
+#if !defined(BABL_INSIDE_BABL_H) && !defined(BABL_IS_BEING_COMPILED)
+#error "babl-version.h must not be included directly, include babl.h instead."
+#endif
+
+
+/***
+ * babl version information
+ *
+ * These macros tell the version of babl you are compiling against.
+ * babl's version number consists of three parts: major, minor and
+ * micro.
+ */
+
+#define BABL_MAJOR_VERSION 0
+#define BABL_MINOR_VERSION 1
+#define BABL_MICRO_VERSION 18
+
+/** Get the version information on the babl library */
+void babl_get_version (int *major,
+ int *minor,
+ int *micro);
+
+#endif
--- /dev/null
+/* babl - dynamically extendable universal pixel conversion library.
+ * Copyright (C) 2005-2008, Øyvind Kolås and others.
+ *
+ * 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 3 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, see
+ * <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef _BABL_VERSION_H
+#define _BABL_VERSION_H
+
+#if !defined(BABL_INSIDE_BABL_H) && !defined(BABL_IS_BEING_COMPILED)
+#error "babl-version.h must not be included directly, include babl.h instead."
+#endif
+
+
+/***
+ * babl version information
+ *
+ * These macros tell the version of babl you are compiling against.
+ * babl's version number consists of three parts: major, minor and
+ * micro.
+ */
+
+#define BABL_MAJOR_VERSION @BABL_MAJOR_VERSION@
+#define BABL_MINOR_VERSION @BABL_MINOR_VERSION@
+#define BABL_MICRO_VERSION @BABL_MICRO_VERSION@
+
+/** Get the version information on the babl library */
+void babl_get_version (int *major,
+ int *minor,
+ int *micro);
+
+#endif
--- /dev/null
+/* babl - dynamically extendable universal pixel conversion library.
+ * Copyright (C) 2005, Øyvind Kolås.
+ *
+ * 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 3 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, see
+ * <http://www.gnu.org/licenses/>.
+ */
+
+#include "config.h"
+#include "babl-internal.h"
+
+static int ref_count = 0;
+
+#ifdef _WIN32
+static HMODULE libbabl_dll = NULL;
+
+/* Minimal DllMain that just stores the handle to this DLL */
+
+BOOL WINAPI /* Avoid silly "no previous prototype" gcc warning */
+DllMain (HINSTANCE hinstDLL,
+ DWORD fdwReason,
+ LPVOID lpvReserved);
+
+BOOL WINAPI
+DllMain (HINSTANCE hinstDLL,
+ DWORD fdwReason,
+ LPVOID lpvReserved)
+{
+ switch (fdwReason)
+ {
+ case DLL_PROCESS_ATTACH:
+ libbabl_dll = hinstDLL;
+ break;
+ }
+
+ return TRUE;
+}
+
+#else
+#define BABL_PATH LIBDIR BABL_DIR_SEPARATOR BABL_LIBRARY
+#endif /* _WIN32 */
+
+/*
+ * Returns a list of directories if the environment variable $BABL_PATH
+ * is set, or the installation library directory by default.
+ * This directory will be based on the compilation-time prefix for UNIX
+ * and an actual DLL path for Windows.
+ *
+ * Returns: a string which must be freed after usage.
+ */
+static char *
+babl_dir_list (void)
+{
+ char *ret;
+
+ ret = getenv ("BABL_PATH");
+ if (!ret)
+ {
+#ifdef _WIN32
+ /* Figure it out from the location of this DLL */
+ char *filename;
+ int filename_size;
+ char *sep1, *sep2;
+
+ wchar_t w_filename[MAX_PATH];
+ DWORD nSize = sizeof (w_filename) / sizeof ((w_filename)[0]);
+
+ if (GetModuleFileNameW (libbabl_dll, w_filename, nSize) == 0)
+ babl_fatal ("GetModuleFilenameW failed");
+
+ filename_size = WideCharToMultiByte (CP_UTF8, 0, w_filename, -1, NULL, 0,
+ NULL, NULL);
+ filename = babl_malloc (sizeof (char) * filename_size);
+ if (!WideCharToMultiByte (CP_UTF8, 0, w_filename, -1,
+ filename, filename_size, NULL, NULL))
+ babl_fatal ("Converting module filename to UTF-8 failed");
+
+ /* If the DLL file name is of the format
+ * <foobar>\bin\*.dll, use <foobar>\lib\{BABL_LIBRARY}.
+ * Otherwise, use the directory where the DLL is.
+ */
+
+ sep1 = strrchr (filename, BABL_DIR_SEPARATOR[0]);
+ *sep1 = '\0';
+
+ sep2 = strrchr (filename, BABL_DIR_SEPARATOR[0]);
+ if (sep2 != NULL)
+ {
+ if (strcasecmp (sep2 + 1, "bin") == 0)
+ {
+ char* filename_tmp;
+ *(++sep2) = '\0';
+ filename_tmp = babl_malloc (sizeof (char) * (strlen (filename) +
+ strlen (BABL_DIR_SEPARATOR BABL_LIBRARY) + 4));
+ strcpy (filename_tmp, filename);
+ babl_free (filename);
+ strcat (filename_tmp, "lib" BABL_DIR_SEPARATOR BABL_LIBRARY);
+ filename = filename_tmp;
+ }
+ }
+
+ ret = filename;
+#else
+ ret = babl_malloc (sizeof (char) * (strlen (BABL_PATH) + 1));
+ strcpy (ret, BABL_PATH);
+#endif
+ }
+ else
+ {
+ char* ret_tmp = babl_malloc (sizeof (char) * (strlen (ret) + 1));
+ strcpy (ret_tmp, ret);
+ ret = ret_tmp;
+ }
+ return ret;
+}
+
+void
+babl_init (void)
+{
+ babl_cpu_accel_set_use (1);
+
+ if (ref_count++ == 0)
+ {
+ char * dir_list;
+
+ babl_internal_init ();
+ babl_sampling_class_init ();
+ babl_type_db ();
+ babl_component_db ();
+ babl_model_db ();
+ babl_format_db ();
+ babl_conversion_db ();
+ babl_extension_db ();
+ babl_fish_db ();
+ babl_core_init ();
+ babl_sanity ();
+ babl_extension_base ();
+ babl_sanity ();
+
+ dir_list = babl_dir_list ();
+ babl_extension_load_dir_list (dir_list);
+ babl_free (dir_list);
+ }
+}
+
+void
+babl_exit (void)
+{
+ if (!-- ref_count)
+ {
+ if (getenv ("BABL_STATS"))
+ {
+ char logfile_name[] = "/tmp/babl-stats.html";
+ FILE *logfile;
+ logfile = fopen (logfile_name, "w");
+ if (logfile)
+ {
+ babl_fish_stats (logfile);
+ fclose (logfile);
+ }
+ }
+
+ babl_extension_deinit ();
+ babl_free (babl_extension_db ());;
+ babl_free (babl_fish_db ());;
+ babl_free (babl_conversion_db ());;
+ babl_free (babl_format_db ());;
+ babl_free (babl_model_db ());;
+ babl_free (babl_component_db ());;
+ babl_free (babl_type_db ());;
+
+ babl_internal_destroy ();
+#if BABL_DEBUG_MEM
+ babl_memory_sanity ();
+#endif
+ }
+}
--- /dev/null
+/* babl - dynamically extendable universal pixel conversion library.
+ * Copyright (C) 2005-2008, Øyvind Kolås.
+ *
+ * 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 3 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, see
+ * <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef _BABL_H
+#define _BABL_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define BABL_INSIDE_BABL_H
+#include <babl/babl-macros.h>
+#include <babl/babl-types.h>
+#include <babl/babl-version.h>
+#undef BABL_INSIDE_BABL_H
+
+
+/**
+ * babl_init:
+ *
+ * Initializes the babl library.
+ */
+void babl_init (void);
+
+/**
+ * babl_exit:
+ *
+ * Deinitializes the babl library and frees any resources used when
+ * matched with the number of calls to babl_init().
+ */
+void babl_exit (void);
+
+/**
+ * babl_type:
+ *
+ * Returns the babl object representing the data type given by @name
+ * such as for example "u8", "u16" or "float".
+ */
+const Babl * babl_type (const char *name);
+
+/**
+ * babl_sampling:
+ *
+ * Returns the babl object representing the @horizontal and @vertical
+ * sampling such as for example 2, 2 for the chroma components in
+ * YCbCr.
+ */
+const Babl * babl_sampling (int horizontal,
+ int vertical);
+
+/**
+ * babl_component:
+ *
+ * Returns the babl object representing the color component given by
+ * @name such as for example "R", "cyan" or "CIE L".
+ */
+const Babl * babl_component (const char *name);
+
+/**
+ * babl_model:
+ *
+ * Returns the babl object representing the color model given by @name
+ * such as for example "RGB", "CMYK" or "CIE Lab".
+ */
+const Babl * babl_model (const char *name);
+
+/**
+ * babl_format:
+ *
+ * Returns the babl object representing the color format given by
+ * @name such as for example "RGB u8", "CMYK float" or "CIE Lab u16".
+ */
+const Babl * babl_format (const char *name);
+
+/**
+ * babl_fish:
+ *
+ * Create a babl fish capable of converting from source_format to
+ * destination_format, source and destination can be either strings
+ * with the names of the formats or Babl-format objects.
+ */
+const Babl * babl_fish (const void *source_format,
+ const void *destination_format);
+
+/**
+ * babl_process:
+ *
+ * Process n pixels from source to destination using babl_fish,
+ * returns number of pixels converted.
+ */
+long babl_process (const Babl *babl_fish,
+ const void *source,
+ void *destination,
+ long n);
+
+
+/**
+ * babl_get_name:
+ *
+ * Returns a string decsribing a Babl object.
+ */
+const char * babl_get_name (const Babl *babl);
+
+/**
+ * babl_format_has_alpha:
+ *
+ * Returns whether the @format has an alpha channel.
+ */
+int babl_format_has_alpha (const Babl *format);
+
+/**
+ * babl_format_get_bytes_per_pixel:
+ *
+ * Returns the bytes per pixel for a babl color format.
+ */
+int babl_format_get_bytes_per_pixel (const Babl *format);
+
+/**
+ * babl_format_get_model:
+ *
+ * Return the model used for constructing the format.
+ */
+const Babl * babl_format_get_model (const Babl *format);
+
+/**
+ * babl_format_get_n_components:
+ *
+ * Returns the number of components for the given @format.
+ */
+int babl_format_get_n_components (const Babl *format);
+
+/**
+ * babl_format_get_type:
+ *
+ * Returns the type in the given @format for the given
+ * @component_index.
+ */
+const Babl * babl_format_get_type (const Babl *format,
+ int component_index);
+
+
+/**
+ * babl_type_new:
+ *
+ * Defines a new data type in babl. A data type that babl can have in
+ * its buffers requires conversions to and from "double" to be
+ * registered before passing sanity.
+ *
+ * babl_type_new (const char *name,
+ * "bits", int bits,
+ * ["min_val", double min_val,]
+ * ["max_val", double max_val,]
+ * NULL);
+ */
+const Babl * babl_type_new (void *first_arg,
+ ...) BABL_ARG_NULL_TERMINATED;
+
+/**
+ * babl_component_new:
+ *
+ * Defines a new color component with babl.
+ *
+ * babl_component_new (const char *name,
+ * NULL);
+ */
+const Babl * babl_component_new (void *first_arg,
+ ...) BABL_ARG_NULL_TERMINATED;
+
+/**
+ * babl_model_new:
+ *
+ * Defines a new color model in babl. If no name is provided a name is
+ * generated by concatenating the name of all the involved components.
+ *
+ * babl_model_new (["name", const char *name,]
+ * BablComponent *component1,
+ * [BablComponent *componentN, ...]
+ * NULL);
+ */
+const Babl * babl_model_new (void *first_arg,
+ ...) BABL_ARG_NULL_TERMINATED;
+
+/**
+ * babl_format_new:
+ *
+ * Defines a new pixel format in babl. Provided BablType and|or
+ * BablSampling is valid for the following components as well. If no
+ * name is provided a (long) descriptive name is used.
+ *
+ * babl_format_new (["name", const char *name,]
+ * BablModel *model,
+ * [BablType *type,]
+ * [BablSampling, *sampling,]
+ * BablComponent *component1,
+ * [[BablType *type,]
+ * [BablSampling *sampling,]
+ * BablComponent *componentN,
+ * ...]
+ * ["planar",]
+ * NULL);
+ */
+const Babl * babl_format_new (const void *first_arg,
+ ...) BABL_ARG_NULL_TERMINATED;
+
+/*
+ * babl_format_n:
+ *
+ * Defines a new pixel format in babl. With the specified data storage
+ * type and the given number of components. At the moment behavior of
+ * conversions are only well defined to other babl_format_n derived formats
+ * with the same number of components.
+ */
+const Babl *
+babl_format_n (const Babl *type,
+ int components);
+
+/**
+ * babl_format_is_format_n:
+ *
+ * Returns whether the @format is a format_n type.
+ */
+int babl_format_is_format_n (const Babl *format);
+
+/**
+ * babl_conversion_new:
+ *
+ * Defines a new conversion between either two formats, two models or
+ * two types in babl.
+ *
+ * babl_conversion_new (<BablFormat *source, BablFormat *destination|
+ * BablModel *source, BablModel *destination|
+ * BablType *source, BablType *destination>,
+ * <"linear"|"planar">, <BablFuncLinear | BablFuncPlanar> conv_func,
+ * NULL);
+ */
+const Babl * babl_conversion_new (const void *first_arg,
+ ...) BABL_ARG_NULL_TERMINATED;
+
+
+/**
+ * babl_new_palette:
+ *
+ * create a new palette based format, name is optional pass in NULL to get
+ * an anonymous format. If you pass in with_alpha the format also gets
+ * an 8bit alpha channel. Returns the BablModel of the color model. If
+ * you pass in the same name the previous formats will be provided
+ * again.
+ */
+const Babl *babl_new_palette (const char *name,
+ const Babl **format_u8,
+ const Babl **format_u8_with_alpha);
+
+/**
+ * babl_format_is_palette:
+ *
+ * check whether a format is a palette backed format.
+ */
+int babl_format_is_palette (const Babl *format);
+
+/**
+ * babl_palette_set_palette:
+ *
+ * Assign a palette to a palette format, the data is a single span of pixels
+ * representing the colors of the palette.
+ */
+void babl_palette_set_palette (const Babl *babl,
+ const Babl *format,
+ void *data,
+ int count);
+
+/**
+ * babl_palette_reset:
+ *
+ * reset a palette to initial state, frees up some caches that optimize
+ * conversions.
+ */
+void babl_palette_reset (const Babl *babl);
+
+
+
+/**
+ * babl_set_user_data: (skip)
+ *
+ * associate a data pointer with a format/model, this data can be accessed and
+ * used from the conversion functions, encoding color profiles, palettes or
+ * similar with the data, perhaps this should be made internal API, not
+ * accesible at all from
+ */
+void babl_set_user_data (const Babl *babl, void *data);
+
+/**
+ * babl_get_user_data: (skip)
+ *
+ * Get data set with babl_set_user_data
+ */
+void * babl_get_user_data (const Babl *babl);
+
+
+
+/*
+ * Backwards compatibility stuff
+ *
+ * NOTE: will most likely be removed in the first stable release!
+ */
+#ifndef BABL_DISABLE_DEPRECATED
+#define babl_destroy babl_exit
+#endif
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
--- /dev/null
+
+h_sources = \
+ babl-base.h
+
+c_sources = \
+ babl-base.c \
+ formats.c \
+ pow-24.c \
+ type-float.c \
+ type-half.c \
+ type-u8.c \
+ type-u15.c \
+ type-u16.c \
+ type-u32.c \
+ model-rgb.c \
+ model-gray.c \
+ model-ycbcr.c
+
+AM_CPPFLAGS = -I$(top_srcdir) -I$(top_srcdir)/babl
+
+noinst_LTLIBRARIES= libbase.la
+libbase_la_SOURCES= $(h_sources) $(c_sources)
+libbase_la_LIBADD = $(MATH_LIB)
+
+EXTRA_DIST = \
+ rgb-constants.h \
+ util.h \
+ pow-24.h
+
--- /dev/null
+# Makefile.in generated by automake 1.15 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
+
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+VPATH = @srcdir@
+am__is_gnu_make = { \
+ if test -z '$(MAKELEVEL)'; then \
+ false; \
+ elif test -n '$(MAKE_HOST)'; then \
+ true; \
+ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+ true; \
+ else \
+ false; \
+ fi; \
+}
+am__make_running_with_option = \
+ case $${target_option-} in \
+ ?) ;; \
+ *) echo "am__make_running_with_option: internal error: invalid" \
+ "target option '$${target_option-}' specified" >&2; \
+ exit 1;; \
+ esac; \
+ has_opt=no; \
+ sane_makeflags=$$MAKEFLAGS; \
+ if $(am__is_gnu_make); then \
+ sane_makeflags=$$MFLAGS; \
+ else \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ bs=\\; \
+ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
+ esac; \
+ fi; \
+ skip_next=no; \
+ strip_trailopt () \
+ { \
+ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+ }; \
+ for flg in $$sane_makeflags; do \
+ test $$skip_next = yes && { skip_next=no; continue; }; \
+ case $$flg in \
+ *=*|--*) continue;; \
+ -*I) strip_trailopt 'I'; skip_next=yes;; \
+ -*I?*) strip_trailopt 'I';; \
+ -*O) strip_trailopt 'O'; skip_next=yes;; \
+ -*O?*) strip_trailopt 'O';; \
+ -*l) strip_trailopt 'l'; skip_next=yes;; \
+ -*l?*) strip_trailopt 'l';; \
+ -[dEDm]) skip_next=yes;; \
+ -[JT]) skip_next=yes;; \
+ esac; \
+ case $$flg in \
+ *$$target_option*) has_opt=yes; break;; \
+ esac; \
+ done; \
+ test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+target_triplet = @target@
+subdir = babl/base
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(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)/acinclude.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+LTLIBRARIES = $(noinst_LTLIBRARIES)
+am__DEPENDENCIES_1 =
+libbase_la_DEPENDENCIES = $(am__DEPENDENCIES_1)
+am__objects_1 =
+am__objects_2 = babl-base.lo formats.lo pow-24.lo type-float.lo \
+ type-half.lo type-u8.lo type-u15.lo type-u16.lo type-u32.lo \
+ model-rgb.lo model-gray.lo model-ycbcr.lo
+am_libbase_la_OBJECTS = $(am__objects_1) $(am__objects_2)
+libbase_la_OBJECTS = $(am_libbase_la_OBJECTS)
+AM_V_lt = $(am__v_lt_@AM_V@)
+am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
+am__v_lt_0 = --silent
+am__v_lt_1 =
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo " GEN " $@;
+am__v_GEN_1 =
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 =
+DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
+depcomp = $(SHELL) $(top_srcdir)/depcomp
+am__depfiles_maybe = depfiles
+am__mv = mv -f
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
+ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
+ $(AM_CFLAGS) $(CFLAGS)
+AM_V_CC = $(am__v_CC_@AM_V@)
+am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
+am__v_CC_0 = @echo " CC " $@;
+am__v_CC_1 =
+CCLD = $(CC)
+LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+ $(AM_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_CCLD = $(am__v_CCLD_@AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
+am__v_CCLD_0 = @echo " CCLD " $@;
+am__v_CCLD_1 =
+SOURCES = $(libbase_la_SOURCES)
+DIST_SOURCES = $(libbase_la_SOURCES)
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates. Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+ BEGIN { nonempty = 0; } \
+ { items[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique. This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+ list='$(am__tagged_files)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | $(am__uniquify_input)`
+ETAGS = etags
+CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ALTIVEC_EXTRA_CFLAGS = @ALTIVEC_EXTRA_CFLAGS@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AR = @AR@
+AS = @AS@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+BABL_API_VERSION = @BABL_API_VERSION@
+BABL_BINARY_AGE = @BABL_BINARY_AGE@
+BABL_CURRENT_MINUS_AGE = @BABL_CURRENT_MINUS_AGE@
+BABL_INTERFACE_AGE = @BABL_INTERFACE_AGE@
+BABL_LIBRARY_VERSION = @BABL_LIBRARY_VERSION@
+BABL_MAJOR_VERSION = @BABL_MAJOR_VERSION@
+BABL_MICRO_VERSION = @BABL_MICRO_VERSION@
+BABL_MINOR_VERSION = @BABL_MINOR_VERSION@
+BABL_REAL_VERSION = @BABL_REAL_VERSION@
+BABL_RELEASE = @BABL_RELEASE@
+BABL_UNSTABLE = @BABL_UNSTABLE@
+BABL_VERSION = @BABL_VERSION@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DIR_SEP = @DIR_SEP@
+DLLTOOL = @DLLTOOL@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+F16C_EXTRA_CFLAGS = @F16C_EXTRA_CFLAGS@
+FGREP = @FGREP@
+GREP = @GREP@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
+MATH_LIB = @MATH_LIB@
+MKDIR_P = @MKDIR_P@
+MMX_EXTRA_CFLAGS = @MMX_EXTRA_CFLAGS@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEP = @PATH_SEP@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+RANLIB = @RANLIB@
+RSVG = @RSVG@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SHREXT = @SHREXT@
+SSE2_EXTRA_CFLAGS = @SSE2_EXTRA_CFLAGS@
+SSE4_1_EXTRA_CFLAGS = @SSE4_1_EXTRA_CFLAGS@
+SSE_EXTRA_CFLAGS = @SSE_EXTRA_CFLAGS@
+STRIP = @STRIP@
+THREAD_LIB = @THREAD_LIB@
+VERSION = @VERSION@
+W3M = @W3M@
+WEBSITE_HOST = @WEBSITE_HOST@
+WEBSITE_LOCATION = @WEBSITE_LOCATION@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target = @target@
+target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+h_sources = \
+ babl-base.h
+
+c_sources = \
+ babl-base.c \
+ formats.c \
+ pow-24.c \
+ type-float.c \
+ type-half.c \
+ type-u8.c \
+ type-u15.c \
+ type-u16.c \
+ type-u32.c \
+ model-rgb.c \
+ model-gray.c \
+ model-ycbcr.c
+
+AM_CPPFLAGS = -I$(top_srcdir) -I$(top_srcdir)/babl
+noinst_LTLIBRARIES = libbase.la
+libbase_la_SOURCES = $(h_sources) $(c_sources)
+libbase_la_LIBADD = $(MATH_LIB)
+EXTRA_DIST = \
+ rgb-constants.h \
+ util.h \
+ pow-24.h
+
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .c .lo .o .obj
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign babl/base/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --foreign babl/base/Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+clean-noinstLTLIBRARIES:
+ -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
+ @list='$(noinst_LTLIBRARIES)'; \
+ locs=`for p in $$list; do echo $$p; done | \
+ sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+ sort -u`; \
+ test -z "$$locs" || { \
+ echo rm -f $${locs}; \
+ rm -f $${locs}; \
+ }
+
+libbase.la: $(libbase_la_OBJECTS) $(libbase_la_DEPENDENCIES) $(EXTRA_libbase_la_DEPENDENCIES)
+ $(AM_V_CCLD)$(LINK) $(libbase_la_OBJECTS) $(libbase_la_LIBADD) $(LIBS)
+
+mostlyclean-compile:
+ -rm -f *.$(OBJEXT)
+
+distclean-compile:
+ -rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/babl-base.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/formats.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/model-gray.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/model-rgb.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/model-ycbcr.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pow-24.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/type-float.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/type-half.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/type-u15.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/type-u16.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/type-u32.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/type-u8.Plo@am__quote@
+
+.c.o:
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $<
+
+.c.obj:
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+
+.c.lo:
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+
+ID: $(am__tagged_files)
+ $(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ set x; \
+ here=`pwd`; \
+ $(am__define_uniq_tagged_files); \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
+ fi
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ $(am__define_uniq_tagged_files); \
+ test -z "$(CTAGS_ARGS)$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+ list='$(am__tagged_files)'; \
+ case "$(srcdir)" in \
+ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+ *) sdir=$(subdir)/$(srcdir) ;; \
+ esac; \
+ for i in $$list; do \
+ if test -f "$$i"; then \
+ echo "$(subdir)/$$i"; \
+ else \
+ echo "$$sdir/$$i"; \
+ fi; \
+ done >> $(top_builddir)/cscope.files
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-am
+all-am: Makefile $(LTLIBRARIES)
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \
+ mostlyclean-am
+
+distclean: distclean-am
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+ distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+ mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: install-am install-strip
+
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+ clean-libtool clean-noinstLTLIBRARIES cscopelist-am ctags \
+ ctags-am distclean distclean-compile distclean-generic \
+ distclean-libtool distclean-tags distdir dvi dvi-am html \
+ html-am info info-am install install-am install-data \
+ install-data-am install-dvi install-dvi-am install-exec \
+ install-exec-am install-html install-html-am install-info \
+ install-info-am install-man install-pdf install-pdf-am \
+ install-ps install-ps-am install-strip installcheck \
+ installcheck-am installdirs maintainer-clean \
+ maintainer-clean-generic mostlyclean mostlyclean-compile \
+ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+ tags tags-am uninstall uninstall-am
+
+.PRECIOUS: Makefile
+
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
--- /dev/null
+/* babl - dynamically extendable universal pixel conversion library.
+ * Copyright (C) 2005, Øyvind Kolås.
+ *
+ * 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 3 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, see
+ * <http://www.gnu.org/licenses/>.
+ */
+
+#include "config.h"
+#include "babl-base.h"
+
+extern int babl_hmpf_on_name_lookups;
+
+static void types (void);
+static void models (void);
+
+void
+babl_base_init (void)
+{
+ babl_hmpf_on_name_lookups++;
+
+ types ();
+ models ();
+ babl_formats_init ();
+
+ babl_hmpf_on_name_lookups--;
+}
+
+void
+babl_base_destroy (void)
+{
+ /* done by the destruction of the elemental babl clases */
+}
+
+/*
+ * types
+ */
+
+
+static void
+types (void)
+{
+ babl_base_type_u15 ();
+ babl_base_type_half ();
+ babl_base_type_float ();
+ babl_base_type_u8 ();
+ babl_base_type_u16 ();
+ babl_base_type_u32 ();
+}
+
+/*
+ * models
+ */
+
+
+static void
+models (void)
+{
+ babl_hmpf_on_name_lookups--;
+ babl_base_model_rgb ();
+ babl_base_model_gray ();
+ babl_hmpf_on_name_lookups++;
+ babl_base_model_ycbcr ();
+}
--- /dev/null
+/* babl - dynamically extendable universal pixel conversion library.
+ * Copyright (C) 2005, Øyvind Kolås.
+ *
+ * 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 3 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, see
+ * <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef _BABL_BASE_H
+#define _BABL_BASE_H
+
+void babl_base_init (void);
+void babl_base_destroy (void);
+void babl_formats_init (void);
+
+void babl_base_type_half (void);
+void babl_base_type_float (void);
+void babl_base_type_u8 (void);
+void babl_base_type_u16 (void);
+void babl_base_type_u15 (void);
+void babl_base_type_u32 (void);
+
+void babl_base_model_pal (void);
+void babl_base_model_rgb (void);
+void babl_base_model_gray (void);
+void babl_base_model_ycbcr (void);
+
+#endif
--- /dev/null
+/* babl - dynamically extendable universal pixel conversion library.
+ * Copyright (C) 2006, Øyvind Kolås.
+ *
+ * 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 3 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, see
+ * <http://www.gnu.org/licenses/>.
+ */
+
+#include "config.h"
+#include <stdlib.h>
+
+#include "babl-classes.h"
+#include "babl.h"
+#include "babl-ids.h"
+#include "babl-base.h"
+
+void
+babl_formats_init (void)
+{
+ babl_format_new (
+ babl_model_from_id (BABL_RGBA_GAMMA_2_2),
+ babl_type_from_id (BABL_DOUBLE),
+ babl_component_from_id (BABL_RED_GAMMA_2_2),
+ babl_component_from_id (BABL_GREEN_GAMMA_2_2),
+ babl_component_from_id (BABL_BLUE_GAMMA_2_2),
+ babl_component_from_id (BABL_ALPHA),
+ NULL);
+ babl_format_new (
+ babl_model_from_id (BABL_RGBA_GAMMA_2_2),
+ babl_type_from_id (BABL_FLOAT),
+ babl_component_from_id (BABL_RED_GAMMA_2_2),
+ babl_component_from_id (BABL_GREEN_GAMMA_2_2),
+ babl_component_from_id (BABL_BLUE_GAMMA_2_2),
+ babl_component_from_id (BABL_ALPHA),
+ NULL);
+ babl_format_new (
+ babl_model_from_id (BABL_RGBA_GAMMA_2_2),
+ babl_type_from_id (BABL_U16),
+ babl_component_from_id (BABL_RED_GAMMA_2_2),
+ babl_component_from_id (BABL_GREEN_GAMMA_2_2),
+ babl_component_from_id (BABL_BLUE_GAMMA_2_2),
+ babl_component_from_id (BABL_ALPHA),
+ NULL);
+ babl_format_new (
+ babl_model_from_id (BABL_RGBA_GAMMA_2_2),
+ babl_type_from_id (BABL_U8),
+ babl_component_from_id (BABL_RED_GAMMA_2_2),
+ babl_component_from_id (BABL_GREEN_GAMMA_2_2),
+ babl_component_from_id (BABL_BLUE_GAMMA_2_2),
+ babl_component_from_id (BABL_ALPHA),
+ NULL);
+ babl_format_new (
+ babl_model_from_id (BABL_RGBA_GAMMA_2_2_PREMULTIPLIED),
+ babl_type_from_id (BABL_FLOAT),
+ babl_component_from_id (BABL_RED_GAMMA_2_2_MUL_ALPHA),
+ babl_component_from_id (BABL_GREEN_GAMMA_2_2_MUL_ALPHA),
+ babl_component_from_id (BABL_BLUE_GAMMA_2_2_MUL_ALPHA),
+ babl_component_from_id (BABL_ALPHA),
+ NULL);
+ babl_format_new (
+ babl_model_from_id (BABL_RGBA_GAMMA_2_2_PREMULTIPLIED),
+ babl_type_from_id (BABL_U16),
+ babl_component_from_id (BABL_RED_GAMMA_2_2_MUL_ALPHA),
+ babl_component_from_id (BABL_GREEN_GAMMA_2_2_MUL_ALPHA),
+ babl_component_from_id (BABL_BLUE_GAMMA_2_2_MUL_ALPHA),
+ babl_component_from_id (BABL_ALPHA),
+ NULL);
+ babl_format_new (
+ babl_model_from_id (BABL_RGBA_GAMMA_2_2_PREMULTIPLIED),
+ babl_type_from_id (BABL_U8),
+ babl_component_from_id (BABL_RED_GAMMA_2_2_MUL_ALPHA),
+ babl_component_from_id (BABL_GREEN_GAMMA_2_2_MUL_ALPHA),
+ babl_component_from_id (BABL_BLUE_GAMMA_2_2_MUL_ALPHA),
+ babl_component_from_id (BABL_ALPHA),
+ NULL);
+ babl_format_new (
+ babl_model_from_id (BABL_RGB_GAMMA_2_2),
+ babl_type_from_id (BABL_FLOAT),
+ babl_component_from_id (BABL_RED_GAMMA_2_2),
+ babl_component_from_id (BABL_GREEN_GAMMA_2_2),
+ babl_component_from_id (BABL_BLUE_GAMMA_2_2),
+ NULL);
+ babl_format_new (
+ babl_model_from_id (BABL_RGB_GAMMA_2_2),
+ babl_type_from_id (BABL_U16),
+ babl_component_from_id (BABL_RED_GAMMA_2_2),
+ babl_component_from_id (BABL_GREEN_GAMMA_2_2),
+ babl_component_from_id (BABL_BLUE_GAMMA_2_2),
+ NULL);
+ babl_format_new (
+ babl_model_from_id (BABL_RGB_GAMMA_2_2),
+ babl_type_from_id (BABL_U8),
+ babl_component_from_id (BABL_RED_GAMMA_2_2),
+ babl_component_from_id (BABL_GREEN_GAMMA_2_2),
+ babl_component_from_id (BABL_BLUE_GAMMA_2_2),
+ NULL);
+ babl_format_new (
+ babl_model_from_id (BABL_GRAY_GAMMA_2_2_ALPHA),
+ babl_type_from_id (BABL_FLOAT),
+ babl_component_from_id (BABL_LUMA),
+ babl_component_from_id (BABL_ALPHA),
+ NULL);
+ babl_format_new (
+ babl_model_from_id (BABL_GRAY_GAMMA_2_2_ALPHA_PREMULTIPLIED),
+ babl_type_from_id (BABL_FLOAT),
+ babl_component_from_id (BABL_LUMA_MUL_ALPHA),
+ babl_component_from_id (BABL_ALPHA),
+ NULL);
+ babl_format_new (
+ babl_model_from_id (BABL_GRAY_GAMMA_2_2),
+ babl_type_from_id (BABL_FLOAT),
+ babl_component_from_id (BABL_LUMA),
+ NULL);
+ babl_format_new (
+ babl_model_from_id (BABL_GRAY_GAMMA_2_2_ALPHA),
+ babl_type_from_id (BABL_U16),
+ babl_component_from_id (BABL_LUMA),
+ babl_component_from_id (BABL_ALPHA),
+ NULL);
+ babl_format_new (
+ babl_model_from_id (BABL_GRAY_GAMMA_2_2_ALPHA_PREMULTIPLIED),
+ babl_type_from_id (BABL_U16),
+ babl_component_from_id (BABL_LUMA_MUL_ALPHA),
+ babl_component_from_id (BABL_ALPHA),
+ NULL);
+ babl_format_new (
+ babl_model_from_id (BABL_GRAY_GAMMA_2_2),
+ babl_type_from_id (BABL_U16),
+ babl_component_from_id (BABL_LUMA),
+ NULL);
+ babl_format_new (
+ babl_model_from_id (BABL_GRAY_GAMMA_2_2_ALPHA),
+ babl_type_from_id (BABL_U8),
+ babl_component_from_id (BABL_LUMA),
+ babl_component_from_id (BABL_ALPHA),
+ NULL);
+ babl_format_new (
+ babl_model_from_id (BABL_GRAY_GAMMA_2_2_ALPHA_PREMULTIPLIED),
+ babl_type_from_id (BABL_U8),
+ babl_component_from_id (BABL_LUMA_MUL_ALPHA),
+ babl_component_from_id (BABL_ALPHA),
+ NULL);
+ babl_format_new (
+ babl_model_from_id (BABL_GRAY_GAMMA_2_2),
+ babl_type_from_id (BABL_U8),
+ babl_component_from_id (BABL_LUMA),
+ NULL);
+
+ /* overriding name, since the generated name would be wrong due
+ * to differing types
+ */
+ babl_format_new (
+ "name", "Y'CbCr u8",
+ "planar",
+ babl_model_from_id (BABL_YCBCR),
+ babl_type_from_id (BABL_U8_LUMA),
+ babl_sampling (1, 1),
+ babl_component_from_id (BABL_LUMA),
+ babl_type_from_id (BABL_U8_CHROMA),
+ babl_sampling (2, 2),
+ babl_component_from_id (BABL_CB),
+ babl_sampling (2, 2),
+ babl_component_from_id (BABL_CR),
+ NULL);
+ babl_format_new (
+ babl_model_from_id (BABL_YCBCR),
+ babl_type_from_id (BABL_FLOAT),
+ babl_component_from_id (BABL_LUMA),
+ babl_type_from_id (BABL_FLOAT),
+ babl_component_from_id (BABL_CB),
+ babl_component_from_id (BABL_CR),
+ NULL);
+ babl_format_new (
+ babl_model_from_id (BABL_YCBCR_ALPHA),
+ babl_type_from_id (BABL_FLOAT),
+ babl_component_from_id (BABL_LUMA),
+ babl_type_from_id (BABL_FLOAT),
+ babl_component_from_id (BABL_CB),
+ babl_component_from_id (BABL_CR),
+ babl_component_from_id (BABL_ALPHA),
+ NULL);
+ babl_format_new (
+ babl_model_from_id (BABL_RGBA),
+ babl_type_from_id (BABL_FLOAT),
+ babl_component_from_id (BABL_RED),
+ babl_component_from_id (BABL_GREEN),
+ babl_component_from_id (BABL_BLUE),
+ babl_component_from_id (BABL_ALPHA),
+ NULL);
+ babl_format_new (
+ babl_model_from_id (BABL_RGBA),
+ babl_type_from_id (BABL_U16),
+ babl_component_from_id (BABL_RED),
+ babl_component_from_id (BABL_GREEN),
+ babl_component_from_id (BABL_BLUE),
+ babl_component_from_id (BABL_ALPHA),
+ NULL);
+ babl_format_new (
+ babl_model_from_id (BABL_RGBA),
+ babl_type_from_id (BABL_DOUBLE),
+ babl_component_from_id (BABL_RED),
+ babl_component_from_id (BABL_GREEN),
+ babl_component_from_id (BABL_BLUE),
+ babl_component_from_id (BABL_ALPHA),
+ NULL);
+ babl_format_new (
+ babl_model_from_id (BABL_RGBA),
+ babl_type_from_id (BABL_U8),
+ babl_component_from_id (BABL_RED),
+ babl_component_from_id (BABL_GREEN),
+ babl_component_from_id (BABL_BLUE),
+ babl_component_from_id (BABL_ALPHA),
+ NULL);
+ babl_format_new (
+ babl_model_from_id (BABL_RGBA_PREMULTIPLIED),
+ babl_type_from_id (BABL_FLOAT),
+ babl_component_from_id (BABL_RED_MUL_ALPHA),
+ babl_component_from_id (BABL_GREEN_MUL_ALPHA),
+ babl_component_from_id (BABL_BLUE_MUL_ALPHA),
+ babl_component_from_id (BABL_ALPHA),
+ NULL);
+ babl_format_new (
+ babl_model_from_id (BABL_RGBA_PREMULTIPLIED),
+ babl_type_from_id (BABL_U16),
+ babl_component_from_id (BABL_RED_MUL_ALPHA),
+ babl_component_from_id (BABL_GREEN_MUL_ALPHA),
+ babl_component_from_id (BABL_BLUE_MUL_ALPHA),
+ babl_component_from_id (BABL_ALPHA),
+ NULL);
+ babl_format_new (
+ babl_model_from_id (BABL_RGBA_PREMULTIPLIED),
+ babl_type_from_id (BABL_U8),
+ babl_component_from_id (BABL_RED_MUL_ALPHA),
+ babl_component_from_id (BABL_GREEN_MUL_ALPHA),
+ babl_component_from_id (BABL_BLUE_MUL_ALPHA),
+ babl_component_from_id (BABL_ALPHA),
+ NULL);
+ babl_format_new (
+ babl_model_from_id (BABL_RGB),
+ babl_type_from_id (BABL_FLOAT),
+ babl_component_from_id (BABL_RED),
+ babl_component_from_id (BABL_GREEN),
+ babl_component_from_id (BABL_BLUE),
+ NULL);
+ babl_format_new (
+ babl_model_from_id (BABL_RGB),
+ babl_type_from_id (BABL_U16),
+ babl_component_from_id (BABL_RED),
+ babl_component_from_id (BABL_GREEN),
+ babl_component_from_id (BABL_BLUE),
+ NULL);
+ babl_format_new (
+ babl_model_from_id (BABL_RGB),
+ babl_type_from_id (BABL_U8),
+ babl_component_from_id (BABL_RED),
+ babl_component_from_id (BABL_GREEN),
+ babl_component_from_id (BABL_BLUE),
+ NULL);
+ babl_format_new (
+ babl_model_from_id (BABL_GRAY_ALPHA),
+ babl_type_from_id (BABL_FLOAT),
+ babl_component_from_id (BABL_LUMINANCE),
+ babl_component_from_id (BABL_ALPHA),
+ NULL);
+ babl_format_new (
+ babl_model_from_id (BABL_GRAY_ALPHA_PREMULTIPLIED),
+ babl_type_from_id (BABL_FLOAT),
+ babl_component_from_id (BABL_LUMINANCE_MUL_ALPHA),
+ babl_component_from_id (BABL_ALPHA),
+ NULL);
+ babl_format_new (
+ babl_model_from_id (BABL_GRAY),
+ babl_type_from_id (BABL_FLOAT),
+ babl_component_from_id (BABL_LUMINANCE),
+ NULL);
+ babl_format_new (
+ babl_model_from_id (BABL_GRAY_ALPHA),
+ babl_type_from_id (BABL_U16),
+ babl_component_from_id (BABL_LUMINANCE),
+ babl_component_from_id (BABL_ALPHA),
+ NULL);
+ babl_format_new (
+ babl_model_from_id (BABL_GRAY_ALPHA_PREMULTIPLIED),
+ babl_type_from_id (BABL_U16),
+ babl_component_from_id (BABL_LUMINANCE_MUL_ALPHA),
+ babl_component_from_id (BABL_ALPHA),
+ NULL);
+ babl_format_new (
+ babl_model_from_id (BABL_GRAY),
+ babl_type_from_id (BABL_U16),
+ babl_component_from_id (BABL_LUMINANCE),
+ NULL);
+ babl_format_new (
+ babl_model_from_id (BABL_GRAY_ALPHA),
+ babl_type_from_id (BABL_U8),
+ babl_component_from_id (BABL_LUMINANCE),
+ babl_component_from_id (BABL_ALPHA),
+ NULL);
+ babl_format_new (
+ babl_model_from_id (BABL_GRAY_ALPHA_PREMULTIPLIED),
+ babl_type_from_id (BABL_U8),
+ babl_component_from_id (BABL_LUMINANCE_MUL_ALPHA),
+ babl_component_from_id (BABL_ALPHA),
+ NULL);
+ babl_format_new (
+ babl_model_from_id (BABL_GRAY),
+ babl_type_from_id (BABL_U8),
+ babl_component_from_id (BABL_LUMINANCE),
+ NULL);
+
+ babl_format_new (
+ babl_model_from_id (BABL_YCBCR),
+ babl_type_from_id (BABL_FLOAT),
+ babl_component_from_id (BABL_LUMA),
+ babl_type_from_id (BABL_FLOAT),
+ babl_component_from_id (BABL_CB),
+ babl_component_from_id (BABL_CR),
+ NULL);
+ babl_format_new (
+ babl_model_from_id (BABL_YCBCR_ALPHA),
+ babl_type_from_id (BABL_FLOAT),
+ babl_component_from_id (BABL_LUMA),
+ babl_type_from_id (BABL_FLOAT),
+ babl_component_from_id (BABL_CB),
+ babl_component_from_id (BABL_CR),
+ babl_component_from_id (BABL_ALPHA),
+ NULL);
+}
--- /dev/null
+/* babl - dynamically extendable universal pixel conversion library.
+ * Copyright (C) 2005, Øyvind Kolås.
+ *
+ * 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 3 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, see
+ * <http://www.gnu.org/licenses/>.
+ */
+
+#include "config.h"
+#include <stdlib.h>
+
+#include "babl-classes.h"
+#include "babl.h"
+#include "babl-ids.h"
+#include "util.h"
+#include "rgb-constants.h"
+#include "math.h"
+#include "babl-base.h"
+
+static void components (void);
+static void models (void);
+static void conversions (void);
+static void formats (void);
+
+void babl_base_model_gray (void)
+{
+ components ();
+ models ();
+ conversions ();
+ formats ();
+}
+
+static void
+components (void)
+{
+ babl_component_new (
+ "Y",
+ "id", BABL_LUMINANCE,
+ "luma",
+ NULL);
+
+ babl_component_new (
+ "Ya",
+ "id", BABL_LUMINANCE_MUL_ALPHA,
+ "luma",
+ NULL);
+
+ babl_component_new (
+ "Y'",
+ "id", BABL_LUMA,
+ "luma",
+ NULL);
+
+ babl_component_new (
+ "Y'a",
+ "id", BABL_LUMA_MUL_ALPHA,
+ "luma",
+ NULL);
+}
+
+static void
+models (void)
+{
+ babl_model_new (
+ "id", BABL_GRAY,
+ babl_component_from_id (BABL_LUMINANCE),
+ NULL);
+
+
+ babl_model_new (
+ "id", BABL_GRAY_ALPHA,
+ babl_component_from_id (BABL_LUMINANCE),
+ babl_component_from_id (BABL_ALPHA),
+ NULL);
+
+ babl_model_new (
+ "id", BABL_GRAY_ALPHA_PREMULTIPLIED,
+ babl_component_from_id (BABL_LUMINANCE_MUL_ALPHA),
+ babl_component_from_id (BABL_ALPHA),
+ NULL);
+
+
+ babl_model_new (
+ "id", BABL_GRAY_GAMMA_2_2,
+ babl_component_from_id (BABL_LUMA),
+ NULL);
+
+ babl_model_new (
+ "id", BABL_GRAY_GAMMA_2_2_ALPHA,
+ babl_component_from_id (BABL_LUMA),
+ babl_component_from_id (BABL_ALPHA),
+ NULL);
+
+ babl_model_new (
+ "id", BABL_GRAY_GAMMA_2_2_ALPHA_PREMULTIPLIED,
+ babl_component_from_id (BABL_LUMA_MUL_ALPHA),
+ babl_component_from_id (BABL_ALPHA),
+ NULL);
+}
+
+
+static long
+rgba_to_graya (char *src,
+ char *dst,
+ long n)
+{
+ while (n--)
+ {
+ double red, green, blue;
+ double luminance, alpha;
+
+ red = ((double *) src)[0];
+ green = ((double *) src)[1];
+ blue = ((double *) src)[2];
+ alpha = ((double *) src)[3];
+
+ luminance = red * RGB_LUMINANCE_RED +
+ green * RGB_LUMINANCE_GREEN +
+ blue * RGB_LUMINANCE_BLUE;
+
+ ((double *) dst)[0] = luminance;
+ ((double *) dst)[1] = alpha;
+
+ src += sizeof (double) * 4;
+ dst += sizeof (double) * 2;
+ }
+ return n;
+}
+
+static long
+rgba_to_gray (char *src,
+ char *dst,
+ long n)
+{
+ while (n--)
+ {
+ double red, green, blue;
+ double luminance;
+
+ red = ((double *) src)[0];
+ green = ((double *) src)[1];
+ blue = ((double *) src)[2];
+
+ luminance = red * RGB_LUMINANCE_RED +
+ green * RGB_LUMINANCE_GREEN +
+ blue * RGB_LUMINANCE_BLUE;
+
+ ((double *) dst)[0] = luminance;
+
+ src += sizeof (double) * 4;
+ dst += sizeof (double) * 1;
+ }
+ return n;
+}
+
+
+static long
+rgb_to_gray_2_2 (int src_bands,
+ char **src,
+ int *src_pitch,
+ int dst_bands,
+ char **dst,
+ int *dst_pitch,
+ long n)
+{
+ BABL_PLANAR_SANITY
+ while (n--)
+ {
+ double red, green, blue;
+ double luminance, alpha;
+
+ red = *(double *) src[0];
+ green = *(double *) src[1];
+ blue = *(double *) src[2];
+ if (src_bands > 3)
+ alpha = *(double *) src[3];
+ else
+ alpha = 1.0;
+
+ luminance = red * RGB_LUMINANCE_RED +
+ green * RGB_LUMINANCE_GREEN +
+ blue * RGB_LUMINANCE_BLUE;
+ *(double *) dst[0] = linear_to_gamma_2_2 (luminance);
+
+ if (dst_bands == 2)
+ *(double *) dst[1] = alpha;
+
+ BABL_PLANAR_STEP
+ }
+ return n;
+}
+
+
+static long
+gray_2_2_to_rgb (int src_bands,
+ char **src,
+ int *src_pitch,
+ int dst_bands,
+ char **dst,
+ int *dst_pitch,
+ long n)
+{
+ BABL_PLANAR_SANITY
+ while (n--)
+ {
+ double luminance;
+ double red, green, blue;
+ double alpha;
+
+ luminance = gamma_2_2_to_linear (*(double *) src[0]);
+ red = luminance;
+ green = luminance;
+ blue = luminance;
+ if (src_bands > 1)
+ alpha = *(double *) src[1];
+ else
+ alpha = 1.0;
+
+ *(double *) dst[0] = red;
+ *(double *) dst[1] = green;
+ *(double *) dst[2] = blue;
+
+ if (dst_bands > 3)
+ *(double *) dst[3] = alpha;
+
+ BABL_PLANAR_STEP
+ }
+ return n;
+}
+
+
+
+static long
+graya_to_rgba (char *src,
+ char *dst,
+ long n)
+{
+ while (n--)
+ {
+ double luminance;
+ double red, green, blue;
+ double alpha;
+
+ luminance = ((double *) src)[0];
+ alpha = ((double *) src)[1];
+ red = luminance;
+ green = luminance;
+ blue = luminance;
+
+ ((double *) dst)[0] = red;
+ ((double *) dst)[1] = green;
+ ((double *) dst)[2] = blue;
+ ((double *) dst)[3] = alpha;
+
+ src += sizeof (double) * 2;
+ dst += sizeof (double) * 4;
+ }
+ return n;
+}
+
+
+static long
+gray_to_rgba (char *src,
+ char *dst,
+ long n)
+{
+ while (n--)
+ {
+ double luminance;
+ double red, green, blue;
+
+ luminance = ((double *) src)[0];
+ red = luminance;
+ green = luminance;
+ blue = luminance;
+
+ ((double *) dst)[0] = red;
+ ((double *) dst)[1] = green;
+ ((double *) dst)[2] = blue;
+ ((double *) dst)[3] = 1.0;
+
+ src += sizeof (double) * 1;
+ dst += sizeof (double) * 4;
+ }
+ return n;
+}
+
+static long
+gray_alpha_premultiplied_to_rgba (int src_bands,
+ char **src,
+ int *src_pitch,
+ int dst_bands,
+ char **dst,
+ int *dst_pitch,
+ long n)
+{
+ BABL_PLANAR_SANITY
+ assert (src_bands == 2);
+ assert (dst_bands == 4);
+
+ while (n--)
+ {
+ double luminance = *(double *) src[0];
+ double alpha = *(double *) src[1];
+
+ if (alpha > BABL_ALPHA_THRESHOLD)
+ {
+ luminance = luminance / alpha;
+ }
+ else
+ {
+ luminance = 0.0;
+ }
+
+ *(double *) dst[0] = luminance;
+ *(double *) dst[1] = luminance;
+ *(double *) dst[2] = luminance;
+ *(double *) dst[3] = alpha;
+ BABL_PLANAR_STEP
+ }
+ return n;
+}
+
+
+static long
+rgba_to_gray_alpha_premultiplied (int src_bands,
+ char **src,
+ int *src_pitch,
+ int dst_bands,
+ char **dst,
+ int *dst_pitch,
+ long n)
+{
+ BABL_PLANAR_SANITY;
+ assert (src_bands == 4);
+ assert (dst_bands == 2);
+
+ while (n--)
+ {
+ double red = *(double *) src[0];
+ double green = *(double *) src[1];
+ double blue = *(double *) src[2];
+ double alpha = *(double *) src[3];
+ double luminance;
+
+ luminance = red * RGB_LUMINANCE_RED +
+ green * RGB_LUMINANCE_GREEN +
+ blue * RGB_LUMINANCE_BLUE;
+
+ luminance *= alpha;
+
+ *(double *) dst[0] = luminance;
+ *(double *) dst[1] = alpha;
+ BABL_PLANAR_STEP
+ }
+ return n;
+}
+
+static long
+non_premultiplied_to_premultiplied (int src_bands,
+ char **src,
+ int *src_pitch,
+ int dst_bands,
+ char **dst,
+ int *dst_pitch,
+ long n)
+{
+ BABL_PLANAR_SANITY
+
+ while (n--)
+ {
+ double alpha;
+ int band;
+
+ alpha = *(double *) src[src_bands - 1];
+ for (band = 0; band < src_bands - 1; band++)
+ {
+ *(double *) dst[band] = *(double *) src[band] * alpha;
+ }
+ *(double *) dst[dst_bands - 1] = alpha;
+
+ BABL_PLANAR_STEP
+ }
+ return n;
+}
+
+static long
+premultiplied_to_non_premultiplied (int src_bands,
+ char **src,
+ int *src_pitch,
+ int dst_bands,
+ char **dst,
+ int *dst_pitch,
+ long n)
+{
+ BABL_PLANAR_SANITY
+
+ while (n--)
+ {
+ double alpha;
+ int band;
+
+ alpha = *(double *) src[src_bands - 1];
+ for (band = 0; band < src_bands - 1; band++)
+ {
+ if (alpha > BABL_ALPHA_THRESHOLD)
+ {
+ *(double *) dst[band] = *(double *) src[band] / alpha;
+ }
+ else
+ {
+ *(double *) dst[band] = 0.0;
+ }
+ }
+ *(double *) dst[dst_bands - 1] = alpha;
+
+ BABL_PLANAR_STEP
+ }
+ return n;
+}
+
+static long
+rgba2gray_gamma_2_2_premultiplied (char *src,
+ char *dst,
+ long n)
+{
+ while (n--)
+ {
+ double red = ((double *) src)[0];
+ double green = ((double *) src)[1];
+ double blue = ((double *) src)[2];
+ double alpha = ((double *) src)[3];
+
+ double luminance;
+ double luma;
+
+ luminance = red * RGB_LUMINANCE_RED +
+ green * RGB_LUMINANCE_GREEN +
+ blue * RGB_LUMINANCE_BLUE;
+ luma = linear_to_gamma_2_2 (luminance);
+
+ ((double *) dst)[0] = luma * alpha;
+ ((double *) dst)[1] = alpha;
+
+ src += 4 * sizeof (double);
+ dst += 2 * sizeof (double);
+ }
+ return n;
+}
+
+
+static long
+gray_gamma_2_2_premultiplied2rgba (char *src,
+ char *dst,
+ long n)
+{
+ while (n--)
+ {
+ double luma = ((double *) src)[0];
+ double alpha = ((double *) src)[1];
+ double luminance;
+
+ luma = luma / alpha;
+ luminance = gamma_2_2_to_linear (luma);
+
+ ((double *) dst)[0] = luminance;
+ ((double *) dst)[1] = luminance;
+ ((double *) dst)[2] = luminance;
+ ((double *) dst)[3] = alpha;
+
+ src += 2 * sizeof (double);
+ dst += 4 * sizeof (double);
+ }
+ return n;
+}
+
+
+static void
+conversions (void)
+{
+ babl_conversion_new (
+ babl_model_from_id (BABL_GRAY_GAMMA_2_2),
+ babl_model_from_id (BABL_RGBA),
+ "planar", gray_2_2_to_rgb,
+ NULL
+ );
+
+ babl_conversion_new (
+ babl_model_from_id (BABL_RGBA),
+ babl_model_from_id (BABL_GRAY_GAMMA_2_2),
+ "planar", rgb_to_gray_2_2,
+ NULL
+ );
+
+ babl_conversion_new (
+ babl_model_from_id (BABL_GRAY_GAMMA_2_2_ALPHA),
+ babl_model_from_id (BABL_RGBA),
+ "planar", gray_2_2_to_rgb,
+ NULL
+ );
+
+ babl_conversion_new (
+ babl_model_from_id (BABL_RGBA),
+ babl_model_from_id (BABL_GRAY_GAMMA_2_2_ALPHA),
+ "planar", rgb_to_gray_2_2,
+ NULL
+ );
+
+
+ babl_conversion_new (
+ babl_model_from_id (BABL_GRAY_GAMMA_2_2_ALPHA_PREMULTIPLIED),
+ babl_model_from_id (BABL_RGBA),
+ "linear", gray_gamma_2_2_premultiplied2rgba,
+ NULL
+ );
+
+ babl_conversion_new (
+ babl_model_from_id (BABL_RGBA),
+ babl_model_from_id (BABL_GRAY_GAMMA_2_2_ALPHA_PREMULTIPLIED),
+ "linear", rgba2gray_gamma_2_2_premultiplied,
+ NULL
+ );
+
+ babl_conversion_new (
+ babl_model_from_id (BABL_GRAY),
+ babl_model_from_id (BABL_RGBA),
+ "linear", gray_to_rgba,
+ NULL
+ );
+
+ babl_conversion_new (
+ babl_model_from_id (BABL_GRAY_ALPHA),
+ babl_model_from_id (BABL_RGBA),
+ "linear", graya_to_rgba,
+ NULL
+ );
+
+ babl_conversion_new (
+ babl_model_from_id (BABL_RGBA),
+ babl_model_from_id (BABL_GRAY_ALPHA),
+ "linear", rgba_to_graya,
+ NULL
+ );
+
+ babl_conversion_new (
+ babl_model_from_id (BABL_RGBA),
+ babl_model_from_id (BABL_GRAY),
+ "linear", rgba_to_gray,
+ NULL
+ );
+
+ babl_conversion_new (
+ babl_model_from_id (BABL_GRAY_ALPHA),
+ babl_model_from_id (BABL_GRAY_ALPHA_PREMULTIPLIED),
+ "planar", non_premultiplied_to_premultiplied,
+ NULL
+ );
+
+ babl_conversion_new (
+ babl_model_from_id (BABL_GRAY_ALPHA_PREMULTIPLIED),
+ babl_model_from_id (BABL_GRAY_ALPHA),
+ "planar", premultiplied_to_non_premultiplied,
+ NULL
+ );
+
+ babl_conversion_new (
+ babl_model_from_id (BABL_GRAY_ALPHA_PREMULTIPLIED),
+ babl_model_from_id (BABL_RGBA),
+ "planar", gray_alpha_premultiplied_to_rgba,
+ NULL
+ );
+
+ babl_conversion_new (
+ babl_model_from_id (BABL_RGBA),
+ babl_model_from_id (BABL_GRAY_ALPHA_PREMULTIPLIED),
+ "planar", rgba_to_gray_alpha_premultiplied,
+ NULL
+ );
+}
+
+static void
+formats (void)
+{
+ babl_format_new (
+ babl_model_from_id (BABL_GRAY_ALPHA),
+ babl_type_from_id (BABL_HALF),
+ babl_component_from_id (BABL_LUMINANCE),
+ babl_component_from_id (BABL_ALPHA),
+ NULL);
+ babl_format_new (
+ babl_model_from_id (BABL_GRAY_ALPHA_PREMULTIPLIED),
+ babl_type_from_id (BABL_HALF),
+ babl_component_from_id (BABL_LUMINANCE_MUL_ALPHA),
+ babl_component_from_id (BABL_ALPHA),
+ NULL);
+ babl_format_new (
+ babl_model_from_id (BABL_GRAY),
+ babl_type_from_id (BABL_HALF),
+ babl_component_from_id (BABL_LUMINANCE),
+ NULL);
+ babl_format_new (
+ babl_model_from_id (BABL_GRAY_GAMMA_2_2_ALPHA),
+ babl_type_from_id (BABL_HALF),
+ babl_component_from_id (BABL_LUMA),
+ babl_component_from_id (BABL_ALPHA),
+ NULL);
+ babl_format_new (
+ babl_model_from_id (BABL_GRAY_GAMMA_2_2_ALPHA_PREMULTIPLIED),
+ babl_type_from_id (BABL_HALF),
+ babl_component_from_id (BABL_LUMA_MUL_ALPHA),
+ babl_component_from_id (BABL_ALPHA),
+ NULL);
+ babl_format_new (
+ babl_model_from_id (BABL_GRAY_GAMMA_2_2),
+ babl_type_from_id (BABL_HALF),
+ babl_component_from_id (BABL_LUMA),
+ NULL);
+ /***********/
+
+ babl_format_new (
+ babl_model_from_id (BABL_GRAY_ALPHA),
+ babl_type ("u15"),
+ babl_component_from_id (BABL_LUMINANCE),
+ babl_component_from_id (BABL_ALPHA),
+ NULL);
+ babl_format_new (
+ babl_model_from_id (BABL_GRAY_ALPHA_PREMULTIPLIED),
+ babl_type ("u15"),
+ babl_component_from_id (BABL_LUMINANCE_MUL_ALPHA),
+ babl_component_from_id (BABL_ALPHA),
+ NULL);
+ babl_format_new (
+ babl_model_from_id (BABL_GRAY),
+ babl_type ("u15"),
+ babl_component_from_id (BABL_LUMINANCE),
+ NULL);
+ babl_format_new (
+ babl_model_from_id (BABL_GRAY_GAMMA_2_2_ALPHA),
+ babl_type ("u15"),
+ babl_component_from_id (BABL_LUMA),
+ babl_component_from_id (BABL_ALPHA),
+ NULL);
+ babl_format_new (
+ babl_model_from_id (BABL_GRAY_GAMMA_2_2_ALPHA_PREMULTIPLIED),
+ babl_type ("u15"),
+ babl_component_from_id (BABL_LUMA_MUL_ALPHA),
+ babl_component_from_id (BABL_ALPHA),
+ NULL);
+ babl_format_new (
+ babl_model_from_id (BABL_GRAY_GAMMA_2_2),
+ babl_type ("u15"),
+ babl_component_from_id (BABL_LUMA),
+ NULL);
+
+ babl_format_new (
+ babl_model_from_id (BABL_GRAY_ALPHA),
+ babl_type_from_id (BABL_U32),
+ babl_component_from_id (BABL_LUMINANCE),
+ babl_component_from_id (BABL_ALPHA),
+ NULL);
+ babl_format_new (
+ babl_model_from_id (BABL_GRAY_ALPHA_PREMULTIPLIED),
+ babl_type_from_id (BABL_U32),
+ babl_component_from_id (BABL_LUMINANCE_MUL_ALPHA),
+ babl_component_from_id (BABL_ALPHA),
+ NULL);
+ babl_format_new (
+ babl_model_from_id (BABL_GRAY),
+ babl_type_from_id (BABL_U32),
+ babl_component_from_id (BABL_LUMINANCE),
+ NULL);
+ babl_format_new (
+ babl_model_from_id (BABL_GRAY_GAMMA_2_2_ALPHA),
+ babl_type_from_id (BABL_U32),
+ babl_component_from_id (BABL_LUMA),
+ babl_component_from_id (BABL_ALPHA),
+ NULL);
+ babl_format_new (
+ babl_model_from_id (BABL_GRAY_GAMMA_2_2_ALPHA_PREMULTIPLIED),
+ babl_type_from_id (BABL_U32),
+ babl_component_from_id (BABL_LUMA_MUL_ALPHA),
+ babl_component_from_id (BABL_ALPHA),
+ NULL);
+ babl_format_new (
+ babl_model_from_id (BABL_GRAY_GAMMA_2_2),
+ babl_type_from_id (BABL_U32),
+ babl_component_from_id (BABL_LUMA),
+ NULL);
+}
--- /dev/null
+/* babl - dynamically extendable universal pixel conversion library.
+ * Copyright (C) 2005, Øyvind Kolås.
+ *
+ * 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 3 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, see
+ * <http://www.gnu.org/licenses/>.
+ */
+
+#include "config.h"
+#include <stdlib.h>
+#include <math.h>
+
+#include "babl.h"
+#include "babl-classes.h"
+#include "babl-ids.h"
+#include "util.h"
+#include "babl-base.h"
+
+static void models (void);
+static void components (void);
+static void conversions (void);
+static void formats (void);
+
+void
+babl_base_model_rgb (void)
+{
+ components ();
+ models ();
+ conversions ();
+ formats ();
+}
+
+static void
+components (void)
+{
+ babl_component_new (
+ "Ra",
+ "id", BABL_RED_MUL_ALPHA,
+ "luma",
+ "chroma",
+ "alpha",
+ NULL);
+ babl_component_new (
+ "Ga",
+ "id", BABL_GREEN_MUL_ALPHA,
+ "luma",
+ "chroma",
+ "alpha",
+ NULL);
+ babl_component_new (
+ "Ba",
+ "id", BABL_BLUE_MUL_ALPHA,
+ "luma",
+ "chroma",
+ "alpha",
+ NULL);
+
+ babl_component_new (
+ "R'",
+ "id", BABL_RED_GAMMA_2_2,
+ "luma",
+ "chroma",
+ NULL);
+
+ babl_component_new (
+ "G'",
+ "id", BABL_GREEN_GAMMA_2_2,
+ "luma",
+ "chroma",
+ NULL);
+
+ babl_component_new (
+ "B'",
+ "id", BABL_BLUE_GAMMA_2_2,
+ "luma",
+ "chroma",
+ NULL);
+
+ babl_component_new (
+ "R'a",
+ "id", BABL_RED_GAMMA_2_2_MUL_ALPHA,
+ "luma",
+ "chroma",
+ NULL);
+
+ babl_component_new (
+ "G'a",
+ "id", BABL_GREEN_GAMMA_2_2_MUL_ALPHA,
+ "luma",
+ "chroma",
+ NULL);
+
+ babl_component_new (
+ "B'a",
+ "id", BABL_BLUE_GAMMA_2_2_MUL_ALPHA,
+ "luma",
+ "chroma",
+ NULL);
+}
+
+static void
+models (void)
+{
+ babl_model_new (
+ "id", BABL_RGB,
+ babl_component_from_id (BABL_RED),
+ babl_component_from_id (BABL_GREEN),
+ babl_component_from_id (BABL_BLUE),
+ NULL);
+
+ babl_model_new (
+ "id", BABL_RGBA_PREMULTIPLIED,
+ babl_component_from_id (BABL_RED_MUL_ALPHA),
+ babl_component_from_id (BABL_GREEN_MUL_ALPHA),
+ babl_component_from_id (BABL_BLUE_MUL_ALPHA),
+ babl_component_from_id (BABL_ALPHA),
+ NULL);
+
+ babl_model_new (
+ "id", BABL_RGB_GAMMA_2_2,
+ babl_component_from_id (BABL_RED_GAMMA_2_2),
+ babl_component_from_id (BABL_GREEN_GAMMA_2_2),
+ babl_component_from_id (BABL_BLUE_GAMMA_2_2),
+ NULL);
+
+ babl_model_new (
+ "id", BABL_RGBA_GAMMA_2_2,
+ babl_component_from_id (BABL_RED_GAMMA_2_2),
+ babl_component_from_id (BABL_GREEN_GAMMA_2_2),
+ babl_component_from_id (BABL_BLUE_GAMMA_2_2),
+ babl_component_from_id (BABL_ALPHA),
+ NULL);
+
+ babl_model_new (
+ "id", BABL_RGBA_GAMMA_2_2_PREMULTIPLIED,
+ babl_component_from_id (BABL_RED_GAMMA_2_2_MUL_ALPHA),
+ babl_component_from_id (BABL_GREEN_GAMMA_2_2_MUL_ALPHA),
+ babl_component_from_id (BABL_BLUE_GAMMA_2_2_MUL_ALPHA),
+ babl_component_from_id (BABL_ALPHA),
+ NULL);
+}
+
+static long
+copy_strip_1 (int src_bands,
+ char **src,
+ int *src_pitch,
+ int dst_bands,
+ char **dst,
+ int *dst_pitch,
+ long samples)
+{
+ long n = samples;
+
+ BABL_PLANAR_SANITY
+ while (n--)
+ {
+ int i;
+
+ for (i = 0; i < dst_bands; i++)
+ {
+ double foo;
+ if (i < src_bands)
+ foo = *(double *) src[i];
+ else
+ foo = 1.0;
+ *(double *) dst[i] = foo;
+ }
+
+ BABL_PLANAR_STEP
+ }
+ return samples;
+}
+
+static long
+g3_gamma_2_2 (int src_bands,
+ char **src,
+ int *src_pitch,
+ int dst_bands,
+ char **dst,
+ int *dst_pitch,
+ long samples)
+{
+ long n = samples;
+
+ BABL_PLANAR_SANITY
+ while (n--)
+ {
+ int band;
+ for (band = 0; band < 3; band++)
+ *(double *) dst[band] = linear_to_gamma_2_2 (*(double *) src[band]);
+ for (; band < dst_bands; band++)
+ *(double *) dst[band] = *(double *) src[band];
+
+ BABL_PLANAR_STEP
+ }
+ return samples;
+}
+
+
+static long
+g3_inv_gamma_2_2 (int src_bands,
+ char **src,
+ int *src_pitch,
+ int dst_bands,
+ char **dst,
+ int *dst_pitch,
+ long samples)
+{
+ long n = samples;
+
+ BABL_PLANAR_SANITY
+ while (n--)
+ {
+ int band;
+ for (band = 0; band < 3; band++)
+ {
+ *(double *) dst[band] = gamma_2_2_to_linear (*(double *) src[band]);
+ }
+ for (; band < dst_bands; band++)
+ {
+ if (band < src_bands)
+ *(double *) dst[band] = *(double *) src[band];
+ else
+ *(double *) dst[band] = 1.0;
+ }
+ BABL_PLANAR_STEP
+ }
+ return samples;
+}
+
+static long
+non_premultiplied_to_premultiplied (int src_bands,
+ char **src,
+ int *src_pitch,
+ int dst_bands,
+ char **dst,
+ int *dst_pitch,
+ long samples)
+{
+ long n = samples;
+
+ BABL_PLANAR_SANITY
+ while (n--)
+ {
+ double alpha;
+ int band;
+
+ alpha = *(double *) src[src_bands - 1];
+ for (band = 0; band < src_bands - 1; band++)
+ {
+ *(double *) dst[band] = *(double *) src[band] * alpha;
+ }
+ *(double *) dst[dst_bands - 1] = alpha;
+
+ BABL_PLANAR_STEP
+ }
+ return samples;
+}
+
+static long
+premultiplied_to_non_premultiplied (int src_bands,
+ char **src,
+ int *src_pitch,
+ int dst_bands,
+ char **dst,
+ int *dst_pitch,
+ long samples)
+{
+ long n = samples;
+
+ BABL_PLANAR_SANITY
+ while (n--)
+ {
+ double alpha;
+ int band;
+
+ alpha = *(double *) src[src_bands - 1];
+ if (alpha > BABL_ALPHA_THRESHOLD)
+ {
+ double recip_alpha = 1.0 / alpha;
+ for (band = 0; band < src_bands - 1; band++)
+ *(double *) dst[band] = *(double *) src[band] * recip_alpha;
+ }
+ else
+ {
+ for (band = 0; band < src_bands - 1; band++)
+ *(double *) dst[band] = 0.0;
+ }
+ *(double *) dst[dst_bands - 1] = alpha;
+
+ BABL_PLANAR_STEP
+ }
+ return samples;
+}
+
+
+
+static long
+rgba2rgba_gamma_2_2_premultiplied (char *src,
+ char *dst,
+ long samples)
+{
+ long n = samples;
+
+ while (n--)
+ {
+ double alpha = ((double *) src)[3];
+ ((double *) dst)[0] = linear_to_gamma_2_2 (((double *) src)[0]) * alpha;
+ ((double *) dst)[1] = linear_to_gamma_2_2 (((double *) src)[1]) * alpha;
+ ((double *) dst)[2] = linear_to_gamma_2_2 (((double *) src)[2]) * alpha;
+ ((double *) dst)[3] = alpha;
+ src += 4 * sizeof (double);
+ dst += 4 * sizeof (double);
+ }
+ return samples;
+}
+
+
+static long
+rgba_gamma_2_2_premultiplied2rgba (char *src,
+ char *dst,
+ long samples)
+{
+ long n = samples;
+
+ while (n--)
+ {
+ double alpha = ((double *) src)[3];
+ if (alpha > BABL_ALPHA_THRESHOLD)
+ {
+ ((double *) dst)[0] = gamma_2_2_to_linear (((double *) src)[0] / alpha);
+ ((double *) dst)[1] = gamma_2_2_to_linear (((double *) src)[1] / alpha);
+ ((double *) dst)[2] = gamma_2_2_to_linear (((double *) src)[2] / alpha);
+ }
+ else
+ {
+ ((double *) dst)[0] = 0.0;
+ ((double *) dst)[1] = 0.0;
+ ((double *) dst)[2] = 0.0;
+ }
+ ((double *) dst)[3] = alpha;
+
+ src += 4 * sizeof (double);
+ dst += 4 * sizeof (double);
+ }
+ return samples;
+}
+
+
+static long
+rgba2rgba_gamma_2_2 (char *src,
+ char *dst,
+ long samples)
+{
+ long n = samples;
+
+ while (n--)
+ {
+ double alpha = ((double *) src)[3];
+ ((double *) dst)[0] = linear_to_gamma_2_2 (((double *) src)[0]);
+ ((double *) dst)[1] = linear_to_gamma_2_2 (((double *) src)[1]);
+ ((double *) dst)[2] = linear_to_gamma_2_2 (((double *) src)[2]);
+ ((double *) dst)[3] = alpha;
+ src += 4 * sizeof (double);
+ dst += 4 * sizeof (double);
+ }
+ return samples;
+}
+
+
+static long
+rgba_gamma_2_22rgba (char *src,
+ char *dst,
+ long samples)
+{
+ long n = samples;
+
+ while (n--)
+ {
+ double alpha = ((double *) src)[3];
+ ((double *) dst)[0] = gamma_2_2_to_linear (((double *) src)[0]);
+ ((double *) dst)[1] = gamma_2_2_to_linear (((double *) src)[1]);
+ ((double *) dst)[2] = gamma_2_2_to_linear (((double *) src)[2]);
+ ((double *) dst)[3] = alpha;
+
+ src += 4 * sizeof (double);
+ dst += 4 * sizeof (double);
+ }
+ return samples;
+}
+
+static void
+conversions (void)
+{
+ babl_conversion_new (
+ babl_model_from_id (BABL_RGBA),
+ babl_model_from_id (BABL_RGBA),
+ "planar", copy_strip_1,
+ NULL
+ );
+
+
+ babl_conversion_new (
+ babl_model_from_id (BABL_RGB),
+ babl_model_from_id (BABL_RGBA),
+ "planar", copy_strip_1,
+ NULL
+ );
+
+ babl_conversion_new (
+ babl_model_from_id (BABL_RGBA),
+ babl_model_from_id (BABL_RGB),
+ "planar", copy_strip_1,
+ NULL
+ );
+
+ babl_conversion_new (
+ babl_model_from_id (BABL_RGBA),
+ babl_model_from_id (BABL_RGBA_PREMULTIPLIED),
+ "planar", non_premultiplied_to_premultiplied,
+ NULL
+ );
+
+ babl_conversion_new (
+ babl_model_from_id (BABL_RGBA_PREMULTIPLIED),
+ babl_model_from_id (BABL_RGBA),
+ "planar", premultiplied_to_non_premultiplied,
+ NULL
+ );
+
+ babl_conversion_new (
+ babl_model_from_id (BABL_RGBA),
+ babl_model_from_id (BABL_RGB_GAMMA_2_2),
+ "planar", g3_gamma_2_2,
+ NULL
+ );
+ babl_conversion_new (
+ babl_model_from_id (BABL_RGB_GAMMA_2_2),
+ babl_model_from_id (BABL_RGBA),
+ "planar", g3_inv_gamma_2_2,
+ NULL
+ );
+
+ babl_conversion_new (
+ babl_model_from_id (BABL_RGBA),
+ babl_model_from_id (BABL_RGBA_GAMMA_2_2),
+ "linear", rgba2rgba_gamma_2_2,
+ NULL);
+ babl_conversion_new (
+ babl_model_from_id (BABL_RGBA_GAMMA_2_2),
+ babl_model_from_id (BABL_RGBA),
+ "linear", rgba_gamma_2_22rgba,
+ NULL);
+
+ babl_conversion_new (
+ babl_model_from_id (BABL_RGBA),
+ babl_model_from_id (BABL_RGBA_GAMMA_2_2_PREMULTIPLIED),
+ "linear", rgba2rgba_gamma_2_2_premultiplied,
+ NULL);
+ babl_conversion_new (
+ babl_model_from_id (BABL_RGBA_GAMMA_2_2_PREMULTIPLIED),
+ babl_model_from_id (BABL_RGBA),
+ "linear", rgba_gamma_2_2_premultiplied2rgba,
+ NULL);
+}
+
+static void
+formats (void)
+{
+ babl_format_new (
+ /*"name", "srgb",*/
+ "id", BABL_SRGB,
+ babl_model_from_id (BABL_RGB_GAMMA_2_2),
+ babl_type_from_id (BABL_U8),
+ babl_component_from_id (BABL_RED_GAMMA_2_2),
+ babl_component_from_id (BABL_GREEN_GAMMA_2_2),
+ babl_component_from_id (BABL_BLUE_GAMMA_2_2),
+ NULL);
+
+ babl_format_new (
+ "id", BABL_SRGBA,
+ babl_model_from_id (BABL_RGBA_GAMMA_2_2),
+ babl_type_from_id (BABL_U8),
+ babl_component_from_id (BABL_RED_GAMMA_2_2),
+ babl_component_from_id (BABL_GREEN_GAMMA_2_2),
+ babl_component_from_id (BABL_BLUE_GAMMA_2_2),
+ babl_component_from_id (BABL_ALPHA),
+ NULL);
+
+ babl_format_new (
+ "id", BABL_RGBA_FLOAT,
+ babl_model_from_id (BABL_RGBA),
+ babl_type_from_id (BABL_FLOAT),
+ babl_component_from_id (BABL_RED),
+ babl_component_from_id (BABL_GREEN),
+ babl_component_from_id (BABL_BLUE),
+ babl_component_from_id (BABL_ALPHA),
+ NULL);
+
+ babl_format_new (
+ "id", BABL_RGB_FLOAT,
+ babl_model_from_id (BABL_RGB),
+ babl_type_from_id (BABL_FLOAT),
+ babl_component_from_id (BABL_RED),
+ babl_component_from_id (BABL_GREEN),
+ babl_component_from_id (BABL_BLUE),
+ NULL);
+
+ babl_format_new (
+ "id", BABL_RGB_HALF,
+ babl_model_from_id (BABL_RGB),
+ babl_type_from_id (BABL_HALF),
+ babl_component_from_id (BABL_RED),
+ babl_component_from_id (BABL_GREEN),
+ babl_component_from_id (BABL_BLUE),
+ NULL);
+
+ babl_format_new (
+ "id", BABL_RGBA_HALF,
+ babl_model_from_id (BABL_RGBA),
+ babl_type_from_id (BABL_HALF),
+ babl_component_from_id (BABL_RED),
+ babl_component_from_id (BABL_GREEN),
+ babl_component_from_id (BABL_BLUE),
+ babl_component_from_id (BABL_ALPHA),
+ NULL);
+
+ babl_format_new (
+ babl_model_from_id (BABL_RGBA_PREMULTIPLIED),
+ babl_type_from_id (BABL_HALF),
+ babl_component_from_id (BABL_RED_MUL_ALPHA),
+ babl_component_from_id (BABL_GREEN_MUL_ALPHA),
+ babl_component_from_id (BABL_BLUE_MUL_ALPHA),
+ babl_component_from_id (BABL_ALPHA),
+ NULL);
+
+ babl_format_new (
+ babl_model_from_id (BABL_RGB_GAMMA_2_2),
+ babl_type_from_id (BABL_HALF),
+ babl_component_from_id (BABL_RED_GAMMA_2_2),
+ babl_component_from_id (BABL_GREEN_GAMMA_2_2),
+ babl_component_from_id (BABL_BLUE_GAMMA_2_2),
+ NULL);
+
+ babl_format_new (
+ babl_model_from_id (BABL_RGBA_GAMMA_2_2),
+ babl_type_from_id (BABL_HALF),
+ babl_component_from_id (BABL_RED_GAMMA_2_2),
+ babl_component_from_id (BABL_GREEN_GAMMA_2_2),
+ babl_component_from_id (BABL_BLUE_GAMMA_2_2),
+ babl_component_from_id (BABL_ALPHA),
+ NULL);
+
+ babl_format_new (
+ babl_model_from_id (BABL_RGBA_GAMMA_2_2_PREMULTIPLIED),
+ babl_type_from_id (BABL_HALF),
+ babl_component_from_id (BABL_RED_GAMMA_2_2_MUL_ALPHA),
+ babl_component_from_id (BABL_GREEN_GAMMA_2_2_MUL_ALPHA),
+ babl_component_from_id (BABL_BLUE_GAMMA_2_2_MUL_ALPHA),
+ babl_component_from_id (BABL_ALPHA),
+ NULL);
+
+ /******/
+ babl_format_new (
+ babl_model_from_id (BABL_RGB),
+ babl_type ("u15"),
+ babl_component_from_id (BABL_RED),
+ babl_component_from_id (BABL_GREEN),
+ babl_component_from_id (BABL_BLUE),
+ NULL);
+
+ babl_format_new (
+ babl_model_from_id (BABL_RGBA),
+ babl_type ("u15"),
+ babl_component_from_id (BABL_RED),
+ babl_component_from_id (BABL_GREEN),
+ babl_component_from_id (BABL_BLUE),
+ babl_component_from_id (BABL_ALPHA),
+ NULL);
+
+ babl_format_new (
+ babl_model_from_id (BABL_RGBA_PREMULTIPLIED),
+ babl_type ("u15"),
+ babl_component_from_id (BABL_RED_MUL_ALPHA),
+ babl_component_from_id (BABL_GREEN_MUL_ALPHA),
+ babl_component_from_id (BABL_BLUE_MUL_ALPHA),
+ babl_component_from_id (BABL_ALPHA),
+ NULL);
+
+ babl_format_new (
+ babl_model_from_id (BABL_RGB_GAMMA_2_2),
+ babl_type ("u15"),
+ babl_component_from_id (BABL_RED_GAMMA_2_2),
+ babl_component_from_id (BABL_GREEN_GAMMA_2_2),
+ babl_component_from_id (BABL_BLUE_GAMMA_2_2),
+ NULL);
+
+ babl_format_new (
+ babl_model_from_id (BABL_RGBA_GAMMA_2_2),
+ babl_type ("u15"),
+ babl_component_from_id (BABL_RED_GAMMA_2_2),
+ babl_component_from_id (BABL_GREEN_GAMMA_2_2),
+ babl_component_from_id (BABL_BLUE_GAMMA_2_2),
+ babl_component_from_id (BABL_ALPHA),
+ NULL);
+
+ babl_format_new (
+ babl_model_from_id (BABL_RGBA_GAMMA_2_2_PREMULTIPLIED),
+ babl_type ("u15"),
+ babl_component_from_id (BABL_RED_GAMMA_2_2_MUL_ALPHA),
+ babl_component_from_id (BABL_GREEN_GAMMA_2_2_MUL_ALPHA),
+ babl_component_from_id (BABL_BLUE_GAMMA_2_2_MUL_ALPHA),
+ babl_component_from_id (BABL_ALPHA),
+ NULL);
+
+
+ babl_format_new (
+ babl_model_from_id (BABL_RGB),
+ babl_type_from_id (BABL_U32),
+ babl_component_from_id (BABL_RED),
+ babl_component_from_id (BABL_GREEN),
+ babl_component_from_id (BABL_BLUE),
+ NULL);
+
+ babl_format_new (
+ babl_model_from_id (BABL_RGBA),
+ babl_type_from_id (BABL_U32),
+ babl_component_from_id (BABL_RED),
+ babl_component_from_id (BABL_GREEN),
+ babl_component_from_id (BABL_BLUE),
+ babl_component_from_id (BABL_ALPHA),
+ NULL);
+
+ babl_format_new (
+ babl_model_from_id (BABL_RGBA_PREMULTIPLIED),
+ babl_type_from_id (BABL_U32),
+ babl_component_from_id (BABL_RED_MUL_ALPHA),
+ babl_component_from_id (BABL_GREEN_MUL_ALPHA),
+ babl_component_from_id (BABL_BLUE_MUL_ALPHA),
+ babl_component_from_id (BABL_ALPHA),
+ NULL);
+
+ babl_format_new (
+ babl_model_from_id (BABL_RGB_GAMMA_2_2),
+ babl_type_from_id (BABL_U32),
+ babl_component_from_id (BABL_RED_GAMMA_2_2),
+ babl_component_from_id (BABL_GREEN_GAMMA_2_2),
+ babl_component_from_id (BABL_BLUE_GAMMA_2_2),
+ NULL);
+
+ babl_format_new (
+ babl_model_from_id (BABL_RGBA_GAMMA_2_2),
+ babl_type_from_id (BABL_U32),
+ babl_component_from_id (BABL_RED_GAMMA_2_2),
+ babl_component_from_id (BABL_GREEN_GAMMA_2_2),
+ babl_component_from_id (BABL_BLUE_GAMMA_2_2),
+ babl_component_from_id (BABL_ALPHA),
+ NULL);
+
+ babl_format_new (
+ babl_model_from_id (BABL_RGBA_GAMMA_2_2_PREMULTIPLIED),
+ babl_type_from_id (BABL_U32),
+ babl_component_from_id (BABL_RED_GAMMA_2_2_MUL_ALPHA),
+ babl_component_from_id (BABL_GREEN_GAMMA_2_2_MUL_ALPHA),
+ babl_component_from_id (BABL_BLUE_GAMMA_2_2_MUL_ALPHA),
+ babl_component_from_id (BABL_ALPHA),
+ NULL);
+
+#ifdef XXXX
+ babl_format_new (
+ "id", BABL_RGB565,
+ babl_model_from_id (BABL_RGB),
+ babl_component_from_id (BABL_RED),
+ babl_component_from_id (BABL_GREEN),
+ babl_component_from_id (BABL_BLUE),
+
+ );
+#endif
+}
+
--- /dev/null
+/* babl - dynamically extendable universal pixel conversion library.
+ * Copyright (C) 2005, Øyvind Kolås.
+ *
+ * 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 3 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, see
+ * <http://www.gnu.org/licenses/>.
+ */
+
+#include "config.h"
+#include <string.h>
+#include <math.h>
+#include <assert.h>
+
+#include "babl.h"
+#include "babl-classes.h"
+#include "babl-ids.h"
+#include "babl-base.h"
+
+#include "util.h"
+
+static void components (void);
+static void models (void);
+static void conversions (void);
+static void formats (void);
+
+void
+babl_base_model_ycbcr (void)
+{
+ components ();
+ models ();
+ conversions ();
+ formats ();
+}
+
+static void
+components (void)
+{
+ babl_component_new (
+ "Cb",
+ "id", BABL_CB,
+ "chroma",
+ NULL);
+
+ babl_component_new (
+ "Cr",
+ "id", BABL_CR,
+ "chroma",
+ NULL);
+}
+
+static void
+models (void)
+{
+ babl_model_new (
+ "id", BABL_YCBCR,
+ babl_component_from_id (BABL_LUMA),
+ babl_component_from_id (BABL_CB),
+ babl_component_from_id (BABL_CR),
+ NULL);
+
+ babl_model_new (
+ "id", BABL_YCBCR_ALPHA,
+ babl_component_from_id (BABL_LUMA),
+ babl_component_from_id (BABL_CB),
+ babl_component_from_id (BABL_CR),
+ babl_component_from_id (BABL_ALPHA),
+ NULL);
+}
+
+static long
+rgba_to_ycbcra (char *src,
+ char *dst,
+ long n)
+{
+ while (n--)
+ {
+ double red = ((double *) src)[0];
+ double green = ((double *) src)[1];
+ double blue = ((double *) src)[2];
+ double alpha = ((double *) src)[3];
+
+ double luminance, cb, cr;
+
+ red = linear_to_gamma_2_2 (red);
+ green = linear_to_gamma_2_2 (green);
+ blue = linear_to_gamma_2_2 (blue);
+
+ luminance = 0.299 * red + 0.587 * green + 0.114 * blue;
+ cb = -0.168736 * red - 0.331264 * green + 0.5 * blue;
+ cr = 0.5 * red - 0.418688 * green - 0.081312 * blue;
+
+ ((double *) dst)[0] = luminance;
+ ((double *) dst)[1] = cb;
+ ((double *) dst)[2] = cr;
+ ((double *) dst)[3] = alpha;
+
+ src += sizeof (double) * 4;
+ dst += sizeof (double) * 4;
+ }
+ return n;
+}
+
+
+static long
+rgba_to_ycbcr (char *src,
+ char *dst,
+ long n)
+{
+ while (n--)
+ {
+ double red = ((double *) src)[0];
+ double green = ((double *) src)[1];
+ double blue = ((double *) src)[2];
+
+ double luminance, cb, cr;
+
+ red = linear_to_gamma_2_2 (red);
+ green = linear_to_gamma_2_2 (green);
+ blue = linear_to_gamma_2_2 (blue);
+
+ luminance = 0.299 * red + 0.587 * green + 0.114 * blue;
+ cb = -0.168736 * red - 0.331264 * green + 0.5 * blue;
+ cr = 0.5 * red - 0.418688 * green - 0.081312 * blue;
+
+ ((double *) dst)[0] = luminance;
+ ((double *) dst)[1] = cb;
+ ((double *) dst)[2] = cr;
+
+ src += sizeof (double) * 4;
+ dst += sizeof (double) * 3;
+ }
+ return n;
+}
+
+static long
+ycbcra_to_rgba (char *src,
+ char *dst,
+ long n)
+{
+ while (n--)
+ {
+ double luminance = ((double *) src)[0];
+ double cb = ((double *) src)[1];
+ double cr = ((double *) src)[2];
+ double alpha = ((double *) src)[3];
+
+ double red, green, blue;
+
+ red = 1.0 * luminance + 0.0 * cb + 1.40200 * cr;
+ green = 1.0 * luminance - 0.344136 * cb - 0.71414136 * cr;
+ blue = 1.0 * luminance + 1.772 * cb + 0.0 * cr;
+
+ red = gamma_2_2_to_linear (red);
+ green = gamma_2_2_to_linear (green);
+ blue = gamma_2_2_to_linear (blue);
+
+ ((double *) dst)[0] = red;
+ ((double *) dst)[1] = green;
+ ((double *) dst)[2] = blue;
+ ((double *) dst)[3] = alpha;
+
+ src += sizeof (double) * 4;
+ dst += sizeof (double) * 4;
+ }
+ return n;
+}
+
+
+static long
+ycbcr_to_rgba (char *src,
+ char *dst,
+ long n)
+{
+ while (n--)
+ {
+ double luminance = ((double *) src)[0];
+ double cb = ((double *) src)[1];
+ double cr = ((double *) src)[2];
+
+ double red, green, blue;
+
+ red = 1.0 * luminance + 0.0 * cb + 1.40200 * cr;
+ green = 1.0 * luminance - 0.344136 * cb - 0.71414136 * cr;
+ blue = 1.0 * luminance + 1.772 * cb + 0.0 * cr;
+
+ red = gamma_2_2_to_linear (red);
+ green = gamma_2_2_to_linear (green);
+ blue = gamma_2_2_to_linear (blue);
+
+ ((double *) dst)[0] = red;
+ ((double *) dst)[1] = green;
+ ((double *) dst)[2] = blue;
+ ((double *) dst)[3] = 1.0;
+
+ src += sizeof (double) * 3;
+ dst += sizeof (double) * 4;
+ }
+ return n;
+}
+
+static void
+conversions (void)
+{
+ babl_conversion_new (
+ babl_model_from_id (BABL_RGBA),
+ babl_model_from_id (BABL_YCBCR),
+ "linear", rgba_to_ycbcr,
+ NULL
+ );
+ babl_conversion_new (
+ babl_model_from_id (BABL_YCBCR),
+ babl_model_from_id (BABL_RGBA),
+ "linear", ycbcr_to_rgba,
+ NULL
+ );
+ babl_conversion_new (
+ babl_model_from_id (BABL_RGBA),
+ babl_model_from_id (BABL_YCBCR_ALPHA),
+ "linear", rgba_to_ycbcra,
+ NULL
+ );
+ babl_conversion_new (
+ babl_model_from_id (BABL_YCBCR_ALPHA),
+ babl_model_from_id (BABL_RGBA),
+ "linear", ycbcra_to_rgba,
+ NULL
+ );
+}
+
+static void
+formats (void)
+{
+ babl_format_new (
+ "name", "Y'CbCr u8",
+ "planar",
+ babl_model_from_id (BABL_YCBCR),
+ babl_type_from_id (BABL_U8_LUMA),
+ babl_sampling (1, 1),
+ babl_component_from_id (BABL_LUMA),
+ babl_type_from_id (BABL_U8_CHROMA),
+ babl_sampling (2, 2),
+ babl_component_from_id (BABL_CB),
+ babl_sampling (2, 2),
+ babl_component_from_id (BABL_CR),
+ NULL);
+
+/* deactivate these for now */
+if (0)
+{
+ babl_format_new (
+ "name", "y'cbcr420",
+ "id", BABL_YCBCR420,
+ "planar",
+ babl_model_from_id (BABL_YCBCR),
+ babl_type_from_id (BABL_U8_LUMA),
+ babl_sampling (1, 1),
+ babl_component_from_id (BABL_LUMA),
+ babl_type_from_id (BABL_U8_CHROMA),
+ babl_sampling (2, 2),
+ babl_component_from_id (BABL_CB),
+ babl_sampling (2, 2),
+ babl_component_from_id (BABL_CR),
+ NULL);
+
+
+ babl_format_new (
+ "name", "y'cbcr422",
+ "id", BABL_YCBCR422,
+ "planar",
+ babl_model_from_id (BABL_YCBCR),
+ babl_type_from_id (BABL_U8_LUMA),
+ babl_sampling (1, 1),
+ babl_component_from_id (BABL_LUMA),
+ babl_type_from_id (BABL_U8_CHROMA),
+ babl_sampling (2, 1),
+ babl_component_from_id (BABL_CB),
+ babl_sampling (2, 1),
+ babl_component_from_id (BABL_CR),
+ NULL);
+
+ babl_format_new (
+ "name", "y'cbcr411",
+ "id", BABL_YCBCR411,
+ "planar",
+ babl_model_from_id (BABL_YCBCR),
+ babl_type_from_id (BABL_U8_LUMA),
+ babl_sampling (1, 1),
+ babl_component_from_id (BABL_LUMA),
+ babl_type_from_id (BABL_U8_CHROMA),
+ babl_sampling (4, 1),
+ babl_component_from_id (BABL_CB),
+ babl_sampling (4, 1),
+ babl_component_from_id (BABL_CR),
+ NULL);
+}
+}
--- /dev/null
+/* babl - dynamically extendable universal pixel conversion library.
+ * Copyright (C) 2013 Loren Merritt
+ *
+ * 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 3 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, see
+ * <http://www.gnu.org/licenses/>.
+ */
+
+#include <math.h>
+#include "util.h"
+
+/* a^b = exp(b*log(a))
+ *
+ * Extracting the exponent from a float gives us an approximate log.
+ * Or better yet, reinterpret the bitpattern of the whole float as an int.
+ *
+ * However, the output values of 12throot vary by less than a factor of 2
+ * over the domain we care about, so we only get log() that way, not exp().
+ *
+ * Approximate exp() with a low-degree polynomial; not exactly equal to the
+ * Taylor series since we're minimizing maximum error over a certain finite
+ * domain. It's not worthwhile to use lots of terms, since Newton's method
+ * has a better convergence rate once you get reasonably close to the answer.
+ */
+static inline double
+init_newton (double x, double exponent, double c0, double c1, double c2)
+{
+ int iexp;
+ double y = frexp(x, &iexp);
+ y = 2*y+(iexp-2);
+ c1 *= M_LN2*exponent;
+ c2 *= M_LN2*M_LN2*exponent*exponent;
+ return y = c0 + c1*y + c2*y*y;
+}
+
+/* Returns x^2.4 == (x*(x^(-1/5)))^3, using Newton's method for x^(-1/5).
+ */
+double
+babl_pow_24 (double x)
+{
+ double y = init_newton (x, -1./5, 0.9953189663, 0.9594345146, 0.6742970332);
+ int i;
+ for (i = 0; i < 3; i++)
+ y = (1.+1./5)*y - ((1./5)*x*(y*y))*((y*y)*(y*y));
+ x *= y;
+ return x*x*x;
+}
+
+/* Returns x^(1/2.4) == x*((x^(-1/6))^(1/2))^7, using Newton's method for x^(-1/6).
+ */
+double
+babl_pow_1_24 (double x)
+{
+ double y = init_newton (x, -1./12, 0.9976800269, 0.9885126933, 0.5908575383);
+ int i;
+ double z;
+ x = sqrt (x);
+ /* newton's method for x^(-1/6) */
+ z = (1./6.) * x;
+ for (i = 0; i < 3; i++)
+ y = (7./6.) * y - z * ((y*y)*(y*y)*(y*y*y));
+ return x*y;
+}
--- /dev/null
+/* babl - dynamically extendable universal pixel conversion library.
+ * Copyright (C) 2005, Øyvind Kolås.
+ *
+ * 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 3 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, see
+ * <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef _BASE_POW_24_H
+#define _BASE_POW_24_H
+
+extern double babl_pow_1_24 (double x);
+extern double babl_pow_24 (double x);
+
+#endif
--- /dev/null
+/* babl - dynamically extendable universal pixel conversion library.
+ * Copyright (C) 2005, Øyvind Kolås.
+ *
+ * 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 3 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, see
+ * <http://www.gnu.org/licenses/>.
+ */
+
+/*
+ * These sRGB Y values have been adapted to the ICC spec D50 illuminant.
+ * They match the Y values in the GEGL and GIMP built-in sRGB profiles,
+ * which match the Y values in the ArgyllCMS sRGB.icm profile.
+ *
+ * For more information, see this thread and these bug reports:
+ * https://mail.gnome.org/archives/gimp-developer-list/2013-September/msg00113.html
+ * https://bugzilla.gnome.org/show_bug.cgi?id=723787
+ * https://bugzilla.gnome.org/show_bug.cgi?id=724822
+ */
+
+#define RGB_LUMINANCE_RED (0.22248840)
+#define RGB_LUMINANCE_GREEN (0.71690369)
+#define RGB_LUMINANCE_BLUE (0.06060791)
--- /dev/null
+/* babl - dynamically extendable universal pixel conversion library.
+ * Copyright (C) 2005, Øyvind Kolås.
+ *
+ * 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 3 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, see
+ * <http://www.gnu.org/licenses/>.
+ */
+
+#include "config.h"
+#include <string.h>
+#include <assert.h>
+
+#include "babl.h"
+#include "babl-classes.h"
+#include "babl-ids.h"
+#include "babl-base.h"
+
+static long
+convert_double_float (char *src,
+ char *dst,
+ int src_pitch,
+ int dst_pitch,
+ long n)
+{
+ while (n--)
+ {
+ (*(float *) dst) = (*(double *) src);
+ dst += dst_pitch;
+ src += src_pitch;
+ }
+ return n;
+}
+
+static long
+convert_float_double (char *src,
+ char *dst,
+ int src_pitch,
+ int dst_pitch,
+ long n)
+{
+ while (n--)
+ {
+ (*(double *) dst) = (*(float *) src);
+ dst += dst_pitch;
+ src += src_pitch;
+ }
+ return n;
+}
+
+void
+babl_base_type_float (void)
+{
+ babl_type_new (
+ "float",
+ "id", BABL_FLOAT,
+ "bits", 32,
+ NULL);
+
+ babl_conversion_new (
+ babl_type_from_id (BABL_FLOAT),
+ babl_type_from_id (BABL_DOUBLE),
+ "plane", convert_float_double,
+ NULL
+ );
+
+ babl_conversion_new (
+ babl_type_from_id (BABL_DOUBLE),
+ babl_type_from_id (BABL_FLOAT),
+ "plane", convert_double_float,
+ NULL
+ );
+}
--- /dev/null
+/* babl - dynamically extendable universal pixel conversion library.
+ * Copyright (C) 2012, Øyvind Kolås.
+ *
+ * MATLAB (R) is a trademark of The Mathworks (R) Corporation
+ *
+ * Function: halfprecision
+ * Filename: halfprecision.c
+ * Programmer: James Tursa
+ * Version: 1.0
+ * Date: March 3, 2009
+ * Copyright: (c) 2009 by James Tursa, All Rights Reserved
+ *
+ * This code uses the BSD License:
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the distribution
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * halfprecision converts the input argument to/from a half precision floating
+ * point bit pattern corresponding to IEEE 754r. The bit pattern is stored in a
+ * uint16 class variable. Please note that halfprecision is *not* a class. That
+ * is, you cannot do any arithmetic with the half precision bit patterns.
+ * halfprecision is simply a function that converts the IEEE 754r half precision
+ * bit pattern to/from other numeric MATLAB variables. You can, however, take
+ * the half precision bit patterns, convert them to single or double, do the
+ * operation, and then convert the result back manually.
+ *
+ * 1 bit sign bit
+ * 5 bits exponent, biased by 15
+ * 10 bits mantissa, hidden leading bit, normalized to 1.0
+ *
+ * Special floating point bit patterns recognized and supported:
+ *
+ * All exponent bits zero:
+ * - If all mantissa bits are zero, then number is zero (possibly signed)
+ * - Otherwise, number is a denormalized bit pattern
+ *
+ * All exponent bits set to 1:
+ * - If all mantissa bits are zero, then number is +Infinity or -Infinity
+ * - Otherwise, number is NaN (Not a Number)
+ */
+
+#include "config.h"
+#include <string.h>
+#include <assert.h>
+#include <stdint.h>
+
+#include "babl.h"
+#include "babl-classes.h"
+#include "babl-ids.h"
+#include "babl-base.h"
+
+static int next = 1; /* should be 0 for big endian */
+
+//-----------------------------------------------------------------------------
+
+static void doubles2halfp(void *target, void *source, long numel)
+{
+ uint16_t *hp = (uint16_t *) target; // Type pun output as an unsigned 16-bit int
+ uint32_t *xp = (uint32_t *) source; // Type pun input as an unsigned 32-bit int
+ uint16_t hs, he, hm;
+ uint32_t x, xs, xe, xm;
+ int hes;
+
+ xp += next; // Little Endian adjustment if necessary
+
+ if( source == NULL || target == NULL ) { // Nothing to convert (e.g., imag part of pure real)
+ return;
+ }
+ while( numel-- ) {
+ x = *xp++; xp++; // The extra xp++ is to skip over the remaining 32 bits of the mantissa
+ if( (x & 0x7FFFFFFFu) == 0 ) { // Signed zero
+ *hp++ = (uint16_t) (x >> 16); // Return the signed zero
+ } else { // Not zero
+ xs = x & 0x80000000u; // Pick off sign bit
+ xe = x & 0x7FF00000u; // Pick off exponent bits
+ xm = x & 0x000FFFFFu; // Pick off mantissa bits
+ if( xe == 0 ) { // Denormal will underflow, return a signed zero
+ *hp++ = (uint16_t) (xs >> 16);
+ } else if( xe == 0x7FF00000u ) { // Inf or NaN (all the exponent bits are set)
+ if( xm == 0 ) { // If mantissa is zero ...
+ *hp++ = (uint16_t) ((xs >> 16) | 0x7C00u); // Signed Inf
+ } else {
+ *hp++ = (uint16_t) 0xFE00u; // NaN, only 1st mantissa bit set
+ }
+ } else { // Normalized number
+ hs = (uint16_t) (xs >> 16); // Sign bit
+ hes = ((int)(xe >> 20)) - 1023 + 15; // Exponent unbias the double, then bias the halfp
+ if( hes >= 0x1F ) { // Overflow
+ *hp++ = (uint16_t) ((xs >> 16) | 0x7C00u); // Signed Inf
+ } else if( hes <= 0 ) { // Underflow
+ if( (10 - hes) > 21 ) { // Mantissa shifted all the way off & no rounding possibility
+ hm = (uint16_t) 0u; // Set mantissa to zero
+ } else {
+ xm |= 0x00100000u; // Add the hidden leading bit
+ hm = (uint16_t) (xm >> (11 - hes)); // Mantissa
+ if( (xm >> (10 - hes)) & 0x00000001u ) // Check for rounding
+ hm += (uint16_t) 1u; // Round, might overflow into exp bit, but this is OK
+ }
+ *hp++ = (hs | hm); // Combine sign bit and mantissa bits, biased exponent is zero
+ } else {
+ he = (uint16_t) (hes << 10); // Exponent
+ hm = (uint16_t) (xm >> 10); // Mantissa
+ if( xm & 0x00000200u ) // Check for rounding
+ *hp++ = (hs | he | hm) + (uint16_t) 1u; // Round, might overflow to inf, this is OK
+ else
+ *hp++ = (hs | he | hm); // No rounding
+ }
+ }
+ }
+ }
+}
+
+static void halfp2doubles(void *target, void *source, long numel)
+{
+ uint16_t *hp = (uint16_t *) source; // Type pun input as an unsigned 16-bit int
+ uint32_t *xp = (uint32_t *) target; // Type pun output as an unsigned 32-bit int
+ uint16_t h, hs, he, hm;
+ uint32_t xs, xe, xm;
+ int32_t xes;
+ int e;
+
+ if( source == NULL || target == NULL ) // Nothing to convert (e.g., imag part of pure real)
+ return;
+ while( numel-- ) {
+ uint32_t x;
+
+ h = *hp++;
+ if( (h & 0x7FFFu) == 0 ) { // Signed zero
+ x = ((uint32_t) h) << 16; // Return the signed zero
+ } else { // Not zero
+ hs = h & 0x8000u; // Pick off sign bit
+ he = h & 0x7C00u; // Pick off exponent bits
+ hm = h & 0x03FFu; // Pick off mantissa bits
+ if( he == 0 ) { // Denormal will convert to normalized
+ e = -1; // The following loop figures out how much extra to adjust the exponent
+ do {
+ e++;
+ hm <<= 1;
+ } while( (hm & 0x0400u) == 0 ); // Shift until leading bit overflows into exponent bit
+ xs = ((uint32_t) hs) << 16; // Sign bit
+ xes = ((int32_t) (he >> 10)) - 15 + 1023 - e; // Exponent unbias the halfp, then bias the double
+ xe = (uint32_t) (xes << 20); // Exponent
+ xm = ((uint32_t) (hm & 0x03FFu)) << 10; // Mantissa
+ x = (xs | xe | xm); // Combine sign bit, exponent bits, and mantissa bits
+ } else if( he == 0x7C00u ) { // Inf or NaN (all the exponent bits are set)
+ if( hm == 0 ) { // If mantissa is zero ...
+ x = (((uint32_t) hs) << 16) | ((uint32_t) 0x7FF00000u); // Signed Inf
+ } else {
+ x = (uint32_t) 0xFFF80000u; // NaN, only the 1st mantissa bit set
+ }
+ } else {
+ xs = ((uint32_t) hs) << 16; // Sign bit
+ xes = ((int32_t) (he >> 10)) - 15 + 1023; // Exponent unbias the halfp, then bias the double
+ xe = (uint32_t) (xes << 20); // Exponent
+ xm = ((uint32_t) hm) << 10; // Mantissa
+ x = (xs | xe | xm); // Combine sign bit, exponent bits, and mantissa bits
+ }
+ }
+
+ xp[1 - next] = 0;
+ xp[next] = x;
+
+ xp += 2;
+ }
+}
+
+static long
+convert_double_half (char *src,
+ char *dst,
+ int src_pitch,
+ int dst_pitch,
+ long n)
+{
+ while (n--)
+ {
+ doubles2halfp (dst, src, 1);
+ dst += dst_pitch;
+ src += src_pitch;
+ }
+ return n;
+}
+
+static long
+convert_half_double (char *src,
+ char *dst,
+ int src_pitch,
+ int dst_pitch,
+ long n)
+{
+ while (n--)
+ {
+ halfp2doubles (dst, src, 1);
+ dst += dst_pitch;
+ src += src_pitch;
+ }
+ return n;
+}
+
+void
+babl_base_type_half (void)
+{
+ babl_type_new (
+ "half",
+ "id", BABL_HALF,
+ "bits", 16,
+ NULL);
+
+ babl_conversion_new (
+ babl_type_from_id (BABL_HALF),
+ babl_type_from_id (BABL_DOUBLE),
+ "plane", convert_half_double,
+ NULL
+ );
+
+ babl_conversion_new (
+ babl_type_from_id (BABL_DOUBLE),
+ babl_type_from_id (BABL_HALF),
+ "plane", convert_double_half,
+ NULL
+ );
+}
--- /dev/null
+/* babl - dynamically extendable universal pixel conversion library.
+ * Copyright (C) 2005, Øyvind Kolås.
+ *
+ * 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 3 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, see
+ * <http://www.gnu.org/licenses/>.
+ */
+
+#include "config.h"
+#include <string.h>
+#include <stdint.h>
+#include <assert.h>
+#include <math.h>
+
+#include "babl-internal.h"
+#include "babl-base.h"
+
+
+static inline long
+convert_double_u15_scaled (double min_val,
+ double max_val,
+ uint16_t min,
+ uint16_t max,
+ char *src,
+ char *dst,
+ int src_pitch,
+ int dst_pitch,
+ long n)
+{
+ while (n--)
+ {
+ double dval = *(double *) src;
+ uint16_t u15val;
+
+ if (dval < min_val)
+ u15val = min;
+ else if (dval > max_val)
+ u15val = max;
+ else
+ u15val = rint ((dval - min_val) / (max_val - min_val) * (max - min) + min);
+
+ *(uint16_t *) dst = u15val;
+ dst += dst_pitch;
+ src += src_pitch;
+ }
+ return n;
+}
+
+static inline long
+convert_u15_double_scaled (double min_val,
+ double max_val,
+ uint16_t min,
+ uint16_t max,
+ char *src,
+ char *dst,
+ int src_pitch,
+ int dst_pitch,
+ long n)
+{
+ while (n--)
+ {
+ int u15val = *(uint16_t *) src;
+ double dval;
+
+ if (u15val < min)
+ dval = min_val;
+ else if (u15val > max)
+ dval = max_val;
+ else
+ dval = (u15val - min) / (double) (max - min) * (max_val - min_val) + min_val;
+
+ (*(double *) dst) = dval;
+ dst += dst_pitch;
+ src += src_pitch;
+ }
+ return n;
+}
+
+#define MAKE_CONVERSIONS(name, min_val, max_val, min, max) \
+ static long \
+ convert_ ## name ## _double (void *src, \
+ void *dst, \
+ int src_pitch, \
+ int dst_pitch, \
+ long n) \
+ { \
+ return convert_u15_double_scaled (min_val, max_val, min, max, \
+ src, dst, src_pitch, dst_pitch, n); \
+ } \
+ static long \
+ convert_double_ ## name (void *src, \
+ void *dst, \
+ int src_pitch, \
+ int dst_pitch, \
+ long n) \
+ { \
+ return convert_double_u15_scaled (min_val, max_val, min, max, \
+ src, dst, src_pitch, dst_pitch, n); \
+ }
+
+MAKE_CONVERSIONS (u15, 0.0, 1.0, 0, (1<<15))
+
+void
+babl_base_type_u15 (void)
+{
+ babl_hmpf_on_name_lookups--;
+ babl_type_new (
+ "u15",
+ "bits", 16,
+ NULL);
+
+ babl_conversion_new (
+ babl_type ("u15"),
+ babl_type_from_id (BABL_DOUBLE),
+ "plane", convert_u15_double,
+ NULL
+ );
+
+ babl_conversion_new (
+ babl_type_from_id (BABL_DOUBLE),
+ babl_type ("u15"),
+ "plane", convert_double_u15,
+ NULL
+ );
+ babl_hmpf_on_name_lookups++;
+}
--- /dev/null
+/* babl - dynamically extendable universal pixel conversion library.
+ * Copyright (C) 2005, Øyvind Kolås.
+ *
+ * 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 3 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, see
+ * <http://www.gnu.org/licenses/>.
+ */
+
+#include "config.h"
+#include <string.h>
+#include <stdint.h>
+#include <assert.h>
+#include <math.h>
+
+#include "babl-internal.h"
+#include "babl-base.h"
+
+
+static inline long
+convert_double_u16_scaled (double min_val,
+ double max_val,
+ uint16_t min,
+ uint16_t max,
+ char *src,
+ char *dst,
+ int src_pitch,
+ int dst_pitch,
+ long n)
+{
+ while (n--)
+ {
+ double dval = *(double *) src;
+ uint16_t u16val;
+
+ if (dval < min_val)
+ u16val = min;
+ else if (dval > max_val)
+ u16val = max;
+ else
+ u16val = rint ((dval - min_val) / (max_val - min_val) * (max - min) + min);
+
+ *(uint16_t *) dst = u16val;
+ dst += dst_pitch;
+ src += src_pitch;
+ }
+ return n;
+}
+
+static inline long
+convert_u16_double_scaled (double min_val,
+ double max_val,
+ uint16_t min,
+ uint16_t max,
+ char *src,
+ char *dst,
+ int src_pitch,
+ int dst_pitch,
+ long n)
+{
+ while (n--)
+ {
+ int u16val = *(uint16_t *) src;
+ double dval;
+
+ if (u16val < min)
+ dval = min_val;
+ else if (u16val > max)
+ dval = max_val;
+ else
+ dval = (u16val - min) / (double) (max - min) * (max_val - min_val) + min_val;
+
+ (*(double *) dst) = dval;
+ dst += dst_pitch;
+ src += src_pitch;
+ }
+ return n;
+}
+
+#define MAKE_CONVERSIONS(name, min_val, max_val, min, max) \
+ static long \
+ convert_ ## name ## _double (void *src, \
+ void *dst, \
+ int src_pitch, \
+ int dst_pitch, \
+ long n) \
+ { \
+ return convert_u16_double_scaled (min_val, max_val, min, max, \
+ src, dst, src_pitch, dst_pitch, n); \
+ } \
+ static long \
+ convert_double_ ## name (void *src, \
+ void *dst, \
+ int src_pitch, \
+ int dst_pitch, \
+ long n) \
+ { \
+ return convert_double_u16_scaled (min_val, max_val, min, max, \
+ src, dst, src_pitch, dst_pitch, n); \
+ }
+
+MAKE_CONVERSIONS (u16, 0.0, 1.0, 0, UINT16_MAX)
+
+void
+babl_base_type_u16 (void)
+{
+ babl_type_new (
+ "u16",
+ "id", BABL_U16,
+ "bits", 16,
+ NULL);
+
+ babl_conversion_new (
+ babl_type_from_id (BABL_U16),
+ babl_type_from_id (BABL_DOUBLE),
+ "plane", convert_u16_double,
+ NULL
+ );
+
+ babl_conversion_new (
+ babl_type_from_id (BABL_DOUBLE),
+ babl_type_from_id (BABL_U16),
+ "plane", convert_double_u16,
+ NULL
+ );
+}
--- /dev/null
+/* babl - dynamically extendable universal pixel conversion library.
+ * Copyright (C) 2005, Øyvind Kolås.
+ *
+ * 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 3 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, see
+ * <http://www.gnu.org/licenses/>.
+ */
+
+#include "config.h"
+#include <string.h>
+#include <stdint.h>
+#include <assert.h>
+#include <math.h>
+
+#include "babl-internal.h"
+#include "babl-base.h"
+
+static inline long
+convert_double_u32_scaled (double min_val,
+ double max_val,
+ uint32_t min,
+ uint32_t max,
+ char *src,
+ char *dst,
+ int src_pitch,
+ int dst_pitch,
+ long n)
+{
+ while (n--)
+ {
+ double dval = *(double *) src;
+ uint32_t u32val;
+
+ if (dval < min_val)
+ u32val = min;
+ else if (dval > max_val)
+ u32val = max;
+ else
+ u32val = rint ((dval - min_val) / (max_val - min_val) * (max - min) + min);
+
+ *(uint32_t *) dst = u32val;
+ dst += dst_pitch;
+ src += src_pitch;
+ }
+ return n;
+}
+
+static inline long
+convert_u32_double_scaled (double min_val,
+ double max_val,
+ uint32_t min,
+ uint32_t max,
+ char *src,
+ char *dst,
+ int src_pitch,
+ int dst_pitch,
+ long n)
+{
+ while (n--)
+ {
+ int u32val = *(uint32_t *) src;
+ double dval;
+
+ if (u32val < min)
+ dval = min_val;
+ else if (u32val > max)
+ dval = max_val;
+ else
+ dval = (u32val - min) / (double) (max - min) * (max_val - min_val) + min_val;
+
+ (*(double *) dst) = dval;
+ dst += dst_pitch;
+ src += src_pitch;
+ }
+ return n;
+}
+
+#define MAKE_CONVERSIONS(name, min_val, max_val, min, max) \
+ static long \
+ convert_ ## name ## _double (void *src, \
+ void *dst, \
+ int src_pitch, \
+ int dst_pitch, \
+ long n) \
+ { \
+ return convert_u32_double_scaled (min_val, max_val, min, max, \
+ src, dst, src_pitch, dst_pitch, n); \
+ } \
+ static long \
+ convert_double_ ## name (void *src, \
+ void *dst, \
+ int src_pitch, \
+ int dst_pitch, \
+ long n) \
+ { \
+ return convert_double_u32_scaled (min_val, max_val, min, max, \
+ src, dst, src_pitch, dst_pitch, n); \
+ }
+
+MAKE_CONVERSIONS (u32, 0.0, 1.0, 0, UINT32_MAX)
+
+void
+babl_base_type_u32 (void)
+{
+ babl_type_new (
+ "u32",
+ "id", BABL_U32,
+ "bits", 32,
+ NULL);
+
+ babl_conversion_new (
+ babl_type_from_id (BABL_U32),
+ babl_type_from_id (BABL_DOUBLE),
+ "plane", convert_u32_double,
+ NULL
+ );
+
+ babl_conversion_new (
+ babl_type_from_id (BABL_DOUBLE),
+ babl_type_from_id (BABL_U32),
+ "plane", convert_double_u32,
+ NULL
+ );
+}
--- /dev/null
+/* babl - dynamically extendable universal pixel conversion library.
+ * Copyright (C) 2005, Øyvind Kolås.
+ *
+ * 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 3 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, see
+ * <http://www.gnu.org/licenses/>.
+ */
+
+#include "config.h"
+#include <string.h>
+#include <assert.h>
+#include <stdint.h>
+
+#include "babl-internal.h"
+#include "babl-base.h"
+
+#include <math.h>
+static inline long
+convert_double_u8_scaled (double min_val,
+ double max_val,
+ unsigned char min,
+ unsigned char max,
+ char *src,
+ char *dst,
+ int src_pitch,
+ int dst_pitch,
+ long n)
+{
+ while (n--)
+ {
+ double dval = *(double *) src;
+ unsigned char u8val;
+
+ if (dval < min_val)
+ u8val = min;
+ else if (dval > max_val)
+ u8val = max;
+ else
+ u8val = rint ((dval - min_val) / (max_val - min_val) * (max - min) + min);
+
+ *(unsigned char *) dst = u8val;
+ src += src_pitch;
+ dst += dst_pitch;
+ }
+ return n;
+}
+
+static inline long
+convert_u8_double_scaled (double min_val,
+ double max_val,
+ unsigned char min,
+ unsigned char max,
+ char *src,
+ char *dst,
+ int src_pitch,
+ int dst_pitch,
+ long n)
+{
+ while (n--)
+ {
+ int u8val = *(unsigned char *) src;
+ double dval;
+
+ if (u8val < min)
+ dval = min_val;
+ else if (u8val > max)
+ dval = max_val;
+ else
+ dval = (u8val - min) / (double) (max - min) * (max_val - min_val) + min_val;
+
+ (*(double *) dst) = dval;
+
+ dst += dst_pitch;
+ src += src_pitch;
+ }
+ return n;
+}
+
+#define MAKE_CONVERSIONS(name, min_val, max_val, min, max) \
+ static long \
+ convert_ ## name ## _double (void *src, \
+ void *dst, \
+ int src_pitch, \
+ int dst_pitch, \
+ long n) \
+ { \
+ return convert_u8_double_scaled (min_val, max_val, min, max, \
+ src, dst, src_pitch, dst_pitch, n); \
+ } \
+ static long \
+ convert_double_ ## name (void *src, \
+ void *dst, \
+ int src_pitch, \
+ int dst_pitch, \
+ long n) \
+ { \
+ return convert_double_u8_scaled (min_val, max_val, min, max, \
+ src, dst, src_pitch, dst_pitch, n); \
+ }
+
+MAKE_CONVERSIONS (u8, 0.0, 1.0, 0x00, UINT8_MAX)
+MAKE_CONVERSIONS (u8_luma, 0.0, 1.0, 16, 235)
+MAKE_CONVERSIONS (u8_chroma, 0.0, 1.0, 16, 240)
+
+void
+babl_base_type_u8 (void)
+{
+ babl_type_new (
+ "u8",
+ "id", BABL_U8,
+ "bits", 8,
+ NULL);
+
+ babl_type_new (
+ "u8-luma",
+ "id", BABL_U8_LUMA,
+ "bits", 8,
+ NULL
+ );
+
+ babl_type_new (
+ "u8-chroma",
+ "id", BABL_U8_CHROMA,
+ "integer",
+ "unsigned",
+ "bits", 8,
+ "min", (long) 16,
+ "max", (long) 240,
+ "min_val", -0.5,
+ "max_val", 0.5,
+ NULL
+ );
+ babl_conversion_new (
+ babl_type_from_id (BABL_U8),
+ babl_type_from_id (BABL_DOUBLE),
+ "plane", convert_u8_double,
+ NULL
+ );
+ babl_conversion_new (
+ babl_type_from_id (BABL_DOUBLE),
+ babl_type_from_id (BABL_U8),
+ "plane", convert_double_u8,
+ NULL
+ );
+ babl_conversion_new (
+ babl_type_from_id (BABL_U8_LUMA),
+ babl_type_from_id (BABL_DOUBLE),
+ "plane", convert_u8_luma_double,
+ NULL
+ );
+ babl_conversion_new (
+ babl_type_from_id (BABL_DOUBLE),
+ babl_type_from_id (BABL_U8_LUMA),
+ "plane", convert_double_u8_luma,
+ NULL
+ );
+ babl_conversion_new (
+ babl_type_from_id (BABL_U8_CHROMA),
+ babl_type_from_id (BABL_DOUBLE),
+ "plane", convert_u8_chroma_double,
+ NULL
+ );
+ babl_conversion_new (
+ babl_type_from_id (BABL_DOUBLE),
+ babl_type_from_id (BABL_U8_CHROMA),
+ "plane", convert_double_u8_chroma,
+ NULL
+ );
+}
--- /dev/null
+/* babl - dynamically extendable universal pixel conversion library.
+ * Copyright (C) 2005, Øyvind Kolås.
+ *
+ * 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 3 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, see
+ * <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef _BASE_UTIL_H
+#define _BASE_UTIL_H
+
+#include <assert.h>
+#include <math.h>
+#include "pow-24.h"
+
+/* Alpha threshold used in the reference implementation for
+ * un-pre-multiplication of color data:
+ *
+ * 0.01 / (2^16 - 1)
+ */
+#define BABL_ALPHA_THRESHOLD 0.000000152590219
+
+#define BABL_PLANAR_SANITY \
+ { \
+ assert(src_bands>0); \
+ assert(dst_bands>0); \
+ assert(src); \
+ assert(*src); \
+ assert(dst); \
+ assert(*dst); \
+ assert(n>0); \
+ assert(*src_pitch); \
+ }
+
+#define BABL_PLANAR_STEP \
+ { \
+ int i; \
+ for (i=0; i< src_bands; i++) \
+ src[i]+=src_pitch[i]; \
+ for (i=0; i< dst_bands; i++) \
+ dst[i]+=dst_pitch[i]; \
+ }
+
+#endif
+
+#define BABL_USE_SRGB_GAMMA
+
+#ifdef BABL_USE_SRGB_GAMMA
+static inline double
+linear_to_gamma_2_2 (double value)
+{
+ if (value > 0.003130804954)
+ return 1.055 * pow (value, (1.0/2.4)) - 0.055;
+ return 12.92 * value;
+}
+
+static inline double
+gamma_2_2_to_linear (double value)
+{
+ if (value > 0.04045)
+ return pow ((value + 0.055) / 1.055, 2.4);
+ return value / 12.92;
+}
+static inline double
+babl_linear_to_gamma_2_2 (double value)
+{
+ if (value > 0.003130804954)
+ return 1.055 * babl_pow_1_24 (value) - 0.055;
+ return 12.92 * value;
+}
+
+static inline double
+babl_gamma_2_2_to_linear (double value)
+{
+ if (value > 0.04045)
+ return babl_pow_24 ((value + 0.055) / 1.055);
+ return value / 12.92;
+}
+
+#else
+ #define linear_to_gamma_2_2(value) (pow((value), (1.0F/2.2F)))
+ #define gamma_2_2_to_linear(value) (pow((value), 2.2F))
+#endif
--- /dev/null
+/*
+ * timeval.h 1.0 01/12/19
+ *
+ * Defines gettimeofday, timeval, etc. for Win32
+ *
+ * By Wu Yongwei
+ *
+ */
+#include "config.h"
+
+#ifdef _WIN32
+
+#define WIN32_LEAN_AND_MEAN
+#include <windows.h>
+#include <time.h>
+
+#ifndef __GNUC__
+#define EPOCHFILETIME (116444736000000000i 64)
+#else
+#define EPOCHFILETIME (116444736000000000LL)
+#endif
+
+struct timeval
+{
+ long tv_sec; /* seconds */
+ long tv_usec; /* microseconds */
+};
+
+struct timezone
+{
+ int tz_minuteswest; /* minutes W of Greenwich */
+ int tz_dsttime; /* type of dst correction */
+};
+
+
+int gettimeofday (struct timeval *tv, struct timezone *tz)
+{
+ FILETIME ft;
+ LARGE_INTEGER li;
+ __int64 t;
+ static int tzflag;
+
+ if (tv)
+ {
+ GetSystemTimeAsFileTime (&ft);
+ li.LowPart = ft.dwLowDateTime;
+ li.HighPart = ft.dwHighDateTime;
+ t = li.QuadPart;/* In 100-nanosecond intervals */
+ t -= EPOCHFILETIME;/* Offset to the Epoch time */
+ t /= 10; /* In microseconds */
+ tv->tv_sec = (long) (t / 1000000);
+ tv->tv_usec = (long) (t % 1000000);
+ }
+
+ if (tz)
+ {
+ if (!tzflag)
+ {
+ _tzset ();
+ tzflag++;
+ }
+ tz->tz_minuteswest = _timezone / 60;
+ tz->tz_dsttime = _daylight;
+ }
+
+ return 0;
+}
+
+#endif /* _WIN32 */
--- /dev/null
+#! /bin/sh
+# Wrapper for compilers which do not understand '-c -o'.
+
+scriptversion=2012-10-14.11; # UTC
+
+# Copyright (C) 1999-2014 Free Software Foundation, Inc.
+# Written by Tom Tromey <tromey@cygnus.com>.
+#
+# 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 <http://www.gnu.org/licenses/>.
+
+# 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 <bug-automake@gnu.org> or send patches to
+# <automake-patches@gnu.org>.
+
+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 <bug-automake@gnu.org>.
+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:
--- /dev/null
+#! /bin/sh
+# Attempt to guess a canonical system name.
+# Copyright 1992-2015 Free Software Foundation, Inc.
+
+timestamp='2015-01-01'
+
+# This file is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 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, see <http://www.gnu.org/licenses/>.
+#
+# 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 Exception is an additional permission under section 7
+# of the GNU General Public License, version 3 ("GPLv3").
+#
+# Originally written by Per Bothner; maintained since 2000 by Ben Elliston.
+#
+# You can get the latest version of this script from:
+# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
+#
+# Please send patches to <config-patches@gnu.org>.
+
+
+me=`echo "$0" | sed -e 's,.*/,,'`
+
+usage="\
+Usage: $0 [OPTION]
+
+Output the configuration name of the system \`$me' is run on.
+
+Operation modes:
+ -h, --help print this help, then exit
+ -t, --time-stamp print date of last modification, then exit
+ -v, --version print version number, then exit
+
+Report bugs and patches to <config-patches@gnu.org>."
+
+version="\
+GNU config.guess ($timestamp)
+
+Originally written by Per Bothner.
+Copyright 1992-2015 Free Software Foundation, Inc.
+
+This is free software; see the source for copying conditions. There is NO
+warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
+
+help="
+Try \`$me --help' for more information."
+
+# Parse command line
+while test $# -gt 0 ; do
+ case $1 in
+ --time-stamp | --time* | -t )
+ echo "$timestamp" ; exit ;;
+ --version | -v )
+ echo "$version" ; exit ;;
+ --help | --h* | -h )
+ echo "$usage"; exit ;;
+ -- ) # Stop option processing
+ shift; break ;;
+ - ) # Use stdin as input.
+ break ;;
+ -* )
+ echo "$me: invalid option $1$help" >&2
+ exit 1 ;;
+ * )
+ break ;;
+ esac
+done
+
+if test $# != 0; then
+ echo "$me: too many arguments$help" >&2
+ exit 1
+fi
+
+trap 'exit 1' 1 2 15
+
+# CC_FOR_BUILD -- compiler used by this script. Note that the use of a
+# compiler to aid in system detection is discouraged as it requires
+# temporary files to be created and, as you can see below, it is a
+# headache to deal with in a portable fashion.
+
+# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still
+# use `HOST_CC' if defined, but it is deprecated.
+
+# Portable tmp directory creation inspired by the Autoconf team.
+
+set_cc_for_build='
+trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ;
+trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ;
+: ${TMPDIR=/tmp} ;
+ { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
+ { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } ||
+ { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } ||
+ { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ;
+dummy=$tmp/dummy ;
+tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ;
+case $CC_FOR_BUILD,$HOST_CC,$CC in
+ ,,) echo "int x;" > $dummy.c ;
+ for c in cc gcc c89 c99 ; do
+ if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then
+ CC_FOR_BUILD="$c"; break ;
+ fi ;
+ done ;
+ if test x"$CC_FOR_BUILD" = x ; then
+ CC_FOR_BUILD=no_compiler_found ;
+ fi
+ ;;
+ ,,*) CC_FOR_BUILD=$CC ;;
+ ,*,*) CC_FOR_BUILD=$HOST_CC ;;
+esac ; set_cc_for_build= ;'
+
+# This is needed to find uname on a Pyramid OSx when run in the BSD universe.
+# (ghazi@noc.rutgers.edu 1994-08-24)
+if (test -f /.attbin/uname) >/dev/null 2>&1 ; then
+ PATH=$PATH:/.attbin ; export PATH
+fi
+
+UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
+UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
+UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
+UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
+
+case "${UNAME_SYSTEM}" in
+Linux|GNU|GNU/*)
+ # If the system lacks a compiler, then just pick glibc.
+ # We could probably try harder.
+ LIBC=gnu
+
+ eval $set_cc_for_build
+ cat <<-EOF > $dummy.c
+ #include <features.h>
+ #if defined(__UCLIBC__)
+ LIBC=uclibc
+ #elif defined(__dietlibc__)
+ LIBC=dietlibc
+ #else
+ LIBC=gnu
+ #endif
+ EOF
+ eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC' | sed 's, ,,g'`
+ ;;
+esac
+
+# Note: order is significant - the case branches are not exclusive.
+
+case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
+ *:NetBSD:*:*)
+ # NetBSD (nbsd) targets should (where applicable) match one or
+ # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*,
+ # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently
+ # switched to ELF, *-*-netbsd* would select the old
+ # object file format. This provides both forward
+ # compatibility and a consistent mechanism for selecting the
+ # object file format.
+ #
+ # Note: NetBSD doesn't particularly care about the vendor
+ # portion of the name. We always set it to "unknown".
+ sysctl="sysctl -n hw.machine_arch"
+ UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \
+ /usr/sbin/$sysctl 2>/dev/null || echo unknown)`
+ case "${UNAME_MACHINE_ARCH}" in
+ armeb) machine=armeb-unknown ;;
+ arm*) machine=arm-unknown ;;
+ sh3el) machine=shl-unknown ;;
+ sh3eb) machine=sh-unknown ;;
+ sh5el) machine=sh5le-unknown ;;
+ *) machine=${UNAME_MACHINE_ARCH}-unknown ;;
+ esac
+ # The Operating System including object format, if it has switched
+ # to ELF recently, or will in the future.
+ case "${UNAME_MACHINE_ARCH}" in
+ arm*|i386|m68k|ns32k|sh3*|sparc|vax)
+ eval $set_cc_for_build
+ if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
+ | grep -q __ELF__
+ then
+ # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
+ # Return netbsd for either. FIX?
+ os=netbsd
+ else
+ os=netbsdelf
+ fi
+ ;;
+ *)
+ os=netbsd
+ ;;
+ esac
+ # The OS release
+ # Debian GNU/NetBSD machines have a different userland, and
+ # thus, need a distinct triplet. However, they do not need
+ # kernel version information, so it can be replaced with a
+ # suitable tag, in the style of linux-gnu.
+ case "${UNAME_VERSION}" in
+ Debian*)
+ release='-gnu'
+ ;;
+ *)
+ release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
+ ;;
+ esac
+ # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
+ # contains redundant information, the shorter form:
+ # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
+ echo "${machine}-${os}${release}"
+ exit ;;
+ *:Bitrig:*:*)
+ UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'`
+ echo ${UNAME_MACHINE_ARCH}-unknown-bitrig${UNAME_RELEASE}
+ exit ;;
+ *:OpenBSD:*:*)
+ UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
+ echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE}
+ exit ;;
+ *:ekkoBSD:*:*)
+ echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE}
+ exit ;;
+ *:SolidBSD:*:*)
+ echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE}
+ exit ;;
+ macppc:MirBSD:*:*)
+ echo powerpc-unknown-mirbsd${UNAME_RELEASE}
+ exit ;;
+ *:MirBSD:*:*)
+ echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE}
+ exit ;;
+ alpha:OSF1:*:*)
+ case $UNAME_RELEASE in
+ *4.0)
+ UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
+ ;;
+ *5.*)
+ UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
+ ;;
+ esac
+ # According to Compaq, /usr/sbin/psrinfo has been available on
+ # OSF/1 and Tru64 systems produced since 1995. I hope that
+ # covers most systems running today. This code pipes the CPU
+ # types through head -n 1, so we only detect the type of CPU 0.
+ ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1`
+ case "$ALPHA_CPU_TYPE" in
+ "EV4 (21064)")
+ UNAME_MACHINE="alpha" ;;
+ "EV4.5 (21064)")
+ UNAME_MACHINE="alpha" ;;
+ "LCA4 (21066/21068)")
+ UNAME_MACHINE="alpha" ;;
+ "EV5 (21164)")
+ UNAME_MACHINE="alphaev5" ;;
+ "EV5.6 (21164A)")
+ UNAME_MACHINE="alphaev56" ;;
+ "EV5.6 (21164PC)")
+ UNAME_MACHINE="alphapca56" ;;
+ "EV5.7 (21164PC)")
+ UNAME_MACHINE="alphapca57" ;;
+ "EV6 (21264)")
+ UNAME_MACHINE="alphaev6" ;;
+ "EV6.7 (21264A)")
+ UNAME_MACHINE="alphaev67" ;;
+ "EV6.8CB (21264C)")
+ UNAME_MACHINE="alphaev68" ;;
+ "EV6.8AL (21264B)")
+ UNAME_MACHINE="alphaev68" ;;
+ "EV6.8CX (21264D)")
+ UNAME_MACHINE="alphaev68" ;;
+ "EV6.9A (21264/EV69A)")
+ UNAME_MACHINE="alphaev69" ;;
+ "EV7 (21364)")
+ UNAME_MACHINE="alphaev7" ;;
+ "EV7.9 (21364A)")
+ UNAME_MACHINE="alphaev79" ;;
+ esac
+ # A Pn.n version is a patched version.
+ # A Vn.n version is a released version.
+ # A Tn.n version is a released field test version.
+ # A Xn.n version is an unreleased experimental baselevel.
+ # 1.2 uses "1.2" for uname -r.
+ echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
+ # Reset EXIT trap before exiting to avoid spurious non-zero exit code.
+ exitcode=$?
+ trap '' 0
+ exit $exitcode ;;
+ Alpha\ *:Windows_NT*:*)
+ # How do we know it's Interix rather than the generic POSIX subsystem?
+ # Should we change UNAME_MACHINE based on the output of uname instead
+ # of the specific Alpha model?
+ echo alpha-pc-interix
+ exit ;;
+ 21064:Windows_NT:50:3)
+ echo alpha-dec-winnt3.5
+ exit ;;
+ Amiga*:UNIX_System_V:4.0:*)
+ echo m68k-unknown-sysv4
+ exit ;;
+ *:[Aa]miga[Oo][Ss]:*:*)
+ echo ${UNAME_MACHINE}-unknown-amigaos
+ exit ;;
+ *:[Mm]orph[Oo][Ss]:*:*)
+ echo ${UNAME_MACHINE}-unknown-morphos
+ exit ;;
+ *:OS/390:*:*)
+ echo i370-ibm-openedition
+ exit ;;
+ *:z/VM:*:*)
+ echo s390-ibm-zvmoe
+ exit ;;
+ *:OS400:*:*)
+ echo powerpc-ibm-os400
+ exit ;;
+ arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
+ echo arm-acorn-riscix${UNAME_RELEASE}
+ exit ;;
+ arm*:riscos:*:*|arm*:RISCOS:*:*)
+ echo arm-unknown-riscos
+ exit ;;
+ SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
+ echo hppa1.1-hitachi-hiuxmpp
+ exit ;;
+ Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
+ # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
+ if test "`(/bin/universe) 2>/dev/null`" = att ; then
+ echo pyramid-pyramid-sysv3
+ else
+ echo pyramid-pyramid-bsd
+ fi
+ exit ;;
+ NILE*:*:*:dcosx)
+ echo pyramid-pyramid-svr4
+ exit ;;
+ DRS?6000:unix:4.0:6*)
+ echo sparc-icl-nx6
+ exit ;;
+ DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*)
+ case `/usr/bin/uname -p` in
+ sparc) echo sparc-icl-nx7; exit ;;
+ esac ;;
+ s390x:SunOS:*:*)
+ echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+ exit ;;
+ sun4H:SunOS:5.*:*)
+ echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+ exit ;;
+ sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
+ echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+ exit ;;
+ i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*)
+ echo i386-pc-auroraux${UNAME_RELEASE}
+ exit ;;
+ i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
+ eval $set_cc_for_build
+ SUN_ARCH="i386"
+ # If there is a compiler, see if it is configured for 64-bit objects.
+ # Note that the Sun cc does not turn __LP64__ into 1 like gcc does.
+ # This test works for both compilers.
+ if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
+ if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \
+ (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
+ grep IS_64BIT_ARCH >/dev/null
+ then
+ SUN_ARCH="x86_64"
+ fi
+ fi
+ echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+ exit ;;
+ sun4*:SunOS:6*:*)
+ # According to config.sub, this is the proper way to canonicalize
+ # SunOS6. Hard to guess exactly what SunOS6 will be like, but
+ # it's likely to be more like Solaris than SunOS4.
+ echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+ exit ;;
+ sun4*:SunOS:*:*)
+ case "`/usr/bin/arch -k`" in
+ Series*|S4*)
+ UNAME_RELEASE=`uname -v`
+ ;;
+ esac
+ # Japanese Language versions have a version number like `4.1.3-JL'.
+ echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`
+ exit ;;
+ sun3*:SunOS:*:*)
+ echo m68k-sun-sunos${UNAME_RELEASE}
+ exit ;;
+ sun*:*:4.2BSD:*)
+ UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
+ test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3
+ case "`/bin/arch`" in
+ sun3)
+ echo m68k-sun-sunos${UNAME_RELEASE}
+ ;;
+ sun4)
+ echo sparc-sun-sunos${UNAME_RELEASE}
+ ;;
+ esac
+ exit ;;
+ aushp:SunOS:*:*)
+ echo sparc-auspex-sunos${UNAME_RELEASE}
+ exit ;;
+ # The situation for MiNT is a little confusing. The machine name
+ # can be virtually everything (everything which is not
+ # "atarist" or "atariste" at least should have a processor
+ # > m68000). The system name ranges from "MiNT" over "FreeMiNT"
+ # to the lowercase version "mint" (or "freemint"). Finally
+ # the system name "TOS" denotes a system which is actually not
+ # MiNT. But MiNT is downward compatible to TOS, so this should
+ # be no problem.
+ atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
+ echo m68k-atari-mint${UNAME_RELEASE}
+ exit ;;
+ atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
+ echo m68k-atari-mint${UNAME_RELEASE}
+ exit ;;
+ *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
+ echo m68k-atari-mint${UNAME_RELEASE}
+ exit ;;
+ milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
+ echo m68k-milan-mint${UNAME_RELEASE}
+ exit ;;
+ hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
+ echo m68k-hades-mint${UNAME_RELEASE}
+ exit ;;
+ *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
+ echo m68k-unknown-mint${UNAME_RELEASE}
+ exit ;;
+ m68k:machten:*:*)
+ echo m68k-apple-machten${UNAME_RELEASE}
+ exit ;;
+ powerpc:machten:*:*)
+ echo powerpc-apple-machten${UNAME_RELEASE}
+ exit ;;
+ RISC*:Mach:*:*)
+ echo mips-dec-mach_bsd4.3
+ exit ;;
+ RISC*:ULTRIX:*:*)
+ echo mips-dec-ultrix${UNAME_RELEASE}
+ exit ;;
+ VAX*:ULTRIX*:*:*)
+ echo vax-dec-ultrix${UNAME_RELEASE}
+ exit ;;
+ 2020:CLIX:*:* | 2430:CLIX:*:*)
+ echo clipper-intergraph-clix${UNAME_RELEASE}
+ exit ;;
+ mips:*:*:UMIPS | mips:*:*:RISCos)
+ eval $set_cc_for_build
+ sed 's/^ //' << EOF >$dummy.c
+#ifdef __cplusplus
+#include <stdio.h> /* for printf() prototype */
+ int main (int argc, char *argv[]) {
+#else
+ int main (argc, argv) int argc; char *argv[]; {
+#endif
+ #if defined (host_mips) && defined (MIPSEB)
+ #if defined (SYSTYPE_SYSV)
+ printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0);
+ #endif
+ #if defined (SYSTYPE_SVR4)
+ printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0);
+ #endif
+ #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD)
+ printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0);
+ #endif
+ #endif
+ exit (-1);
+ }
+EOF
+ $CC_FOR_BUILD -o $dummy $dummy.c &&
+ dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` &&
+ SYSTEM_NAME=`$dummy $dummyarg` &&
+ { echo "$SYSTEM_NAME"; exit; }
+ echo mips-mips-riscos${UNAME_RELEASE}
+ exit ;;
+ Motorola:PowerMAX_OS:*:*)
+ echo powerpc-motorola-powermax
+ exit ;;
+ Motorola:*:4.3:PL8-*)
+ echo powerpc-harris-powermax
+ exit ;;
+ Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*)
+ echo powerpc-harris-powermax
+ exit ;;
+ Night_Hawk:Power_UNIX:*:*)
+ echo powerpc-harris-powerunix
+ exit ;;
+ m88k:CX/UX:7*:*)
+ echo m88k-harris-cxux7
+ exit ;;
+ m88k:*:4*:R4*)
+ echo m88k-motorola-sysv4
+ exit ;;
+ m88k:*:3*:R3*)
+ echo m88k-motorola-sysv3
+ exit ;;
+ AViiON:dgux:*:*)
+ # DG/UX returns AViiON for all architectures
+ UNAME_PROCESSOR=`/usr/bin/uname -p`
+ if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
+ then
+ if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
+ [ ${TARGET_BINARY_INTERFACE}x = x ]
+ then
+ echo m88k-dg-dgux${UNAME_RELEASE}
+ else
+ echo m88k-dg-dguxbcs${UNAME_RELEASE}
+ fi
+ else
+ echo i586-dg-dgux${UNAME_RELEASE}
+ fi
+ exit ;;
+ M88*:DolphinOS:*:*) # DolphinOS (SVR3)
+ echo m88k-dolphin-sysv3
+ exit ;;
+ M88*:*:R3*:*)
+ # Delta 88k system running SVR3
+ echo m88k-motorola-sysv3
+ exit ;;
+ XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
+ echo m88k-tektronix-sysv3
+ exit ;;
+ Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
+ echo m68k-tektronix-bsd
+ exit ;;
+ *:IRIX*:*:*)
+ echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
+ exit ;;
+ ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
+ echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id
+ exit ;; # Note that: echo "'`uname -s`'" gives 'AIX '
+ i*86:AIX:*:*)
+ echo i386-ibm-aix
+ exit ;;
+ ia64:AIX:*:*)
+ if [ -x /usr/bin/oslevel ] ; then
+ IBM_REV=`/usr/bin/oslevel`
+ else
+ IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
+ fi
+ echo ${UNAME_MACHINE}-ibm-aix${IBM_REV}
+ exit ;;
+ *:AIX:2:3)
+ if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
+ eval $set_cc_for_build
+ sed 's/^ //' << EOF >$dummy.c
+ #include <sys/systemcfg.h>
+
+ main()
+ {
+ if (!__power_pc())
+ exit(1);
+ puts("powerpc-ibm-aix3.2.5");
+ exit(0);
+ }
+EOF
+ if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy`
+ then
+ echo "$SYSTEM_NAME"
+ else
+ echo rs6000-ibm-aix3.2.5
+ fi
+ elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
+ echo rs6000-ibm-aix3.2.4
+ else
+ echo rs6000-ibm-aix3.2
+ fi
+ exit ;;
+ *:AIX:*:[4567])
+ IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
+ if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
+ IBM_ARCH=rs6000
+ else
+ IBM_ARCH=powerpc
+ fi
+ if [ -x /usr/bin/lslpp ] ; then
+ IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc |
+ awk -F: '{ print $3 }' | sed s/[0-9]*$/0/`
+ else
+ IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
+ fi
+ echo ${IBM_ARCH}-ibm-aix${IBM_REV}
+ exit ;;
+ *:AIX:*:*)
+ echo rs6000-ibm-aix
+ exit ;;
+ ibmrt:4.4BSD:*|romp-ibm:BSD:*)
+ echo romp-ibm-bsd4.4
+ exit ;;
+ ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and
+ echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to
+ exit ;; # report: romp-ibm BSD 4.3
+ *:BOSX:*:*)
+ echo rs6000-bull-bosx
+ exit ;;
+ DPX/2?00:B.O.S.:*:*)
+ echo m68k-bull-sysv3
+ exit ;;
+ 9000/[34]??:4.3bsd:1.*:*)
+ echo m68k-hp-bsd
+ exit ;;
+ hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
+ echo m68k-hp-bsd4.4
+ exit ;;
+ 9000/[34678]??:HP-UX:*:*)
+ HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
+ case "${UNAME_MACHINE}" in
+ 9000/31? ) HP_ARCH=m68000 ;;
+ 9000/[34]?? ) HP_ARCH=m68k ;;
+ 9000/[678][0-9][0-9])
+ if [ -x /usr/bin/getconf ]; then
+ sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
+ sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
+ case "${sc_cpu_version}" in
+ 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
+ 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
+ 532) # CPU_PA_RISC2_0
+ case "${sc_kernel_bits}" in
+ 32) HP_ARCH="hppa2.0n" ;;
+ 64) HP_ARCH="hppa2.0w" ;;
+ '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20
+ esac ;;
+ esac
+ fi
+ if [ "${HP_ARCH}" = "" ]; then
+ eval $set_cc_for_build
+ sed 's/^ //' << EOF >$dummy.c
+
+ #define _HPUX_SOURCE
+ #include <stdlib.h>
+ #include <unistd.h>
+
+ int main ()
+ {
+ #if defined(_SC_KERNEL_BITS)
+ long bits = sysconf(_SC_KERNEL_BITS);
+ #endif
+ long cpu = sysconf (_SC_CPU_VERSION);
+
+ switch (cpu)
+ {
+ case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
+ case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
+ case CPU_PA_RISC2_0:
+ #if defined(_SC_KERNEL_BITS)
+ switch (bits)
+ {
+ case 64: puts ("hppa2.0w"); break;
+ case 32: puts ("hppa2.0n"); break;
+ default: puts ("hppa2.0"); break;
+ } break;
+ #else /* !defined(_SC_KERNEL_BITS) */
+ puts ("hppa2.0"); break;
+ #endif
+ default: puts ("hppa1.0"); break;
+ }
+ exit (0);
+ }
+EOF
+ (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`
+ test -z "$HP_ARCH" && HP_ARCH=hppa
+ fi ;;
+ esac
+ if [ ${HP_ARCH} = "hppa2.0w" ]
+ then
+ eval $set_cc_for_build
+
+ # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating
+ # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler
+ # generating 64-bit code. GNU and HP use different nomenclature:
+ #
+ # $ CC_FOR_BUILD=cc ./config.guess
+ # => hppa2.0w-hp-hpux11.23
+ # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess
+ # => hppa64-hp-hpux11.23
+
+ if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) |
+ grep -q __LP64__
+ then
+ HP_ARCH="hppa2.0w"
+ else
+ HP_ARCH="hppa64"
+ fi
+ fi
+ echo ${HP_ARCH}-hp-hpux${HPUX_REV}
+ exit ;;
+ ia64:HP-UX:*:*)
+ HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
+ echo ia64-hp-hpux${HPUX_REV}
+ exit ;;
+ 3050*:HI-UX:*:*)
+ eval $set_cc_for_build
+ sed 's/^ //' << EOF >$dummy.c
+ #include <unistd.h>
+ int
+ main ()
+ {
+ long cpu = sysconf (_SC_CPU_VERSION);
+ /* The order matters, because CPU_IS_HP_MC68K erroneously returns
+ true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct
+ results, however. */
+ if (CPU_IS_PA_RISC (cpu))
+ {
+ switch (cpu)
+ {
+ case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break;
+ case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break;
+ case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break;
+ default: puts ("hppa-hitachi-hiuxwe2"); break;
+ }
+ }
+ else if (CPU_IS_HP_MC68K (cpu))
+ puts ("m68k-hitachi-hiuxwe2");
+ else puts ("unknown-hitachi-hiuxwe2");
+ exit (0);
+ }
+EOF
+ $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` &&
+ { echo "$SYSTEM_NAME"; exit; }
+ echo unknown-hitachi-hiuxwe2
+ exit ;;
+ 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
+ echo hppa1.1-hp-bsd
+ exit ;;
+ 9000/8??:4.3bsd:*:*)
+ echo hppa1.0-hp-bsd
+ exit ;;
+ *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
+ echo hppa1.0-hp-mpeix
+ exit ;;
+ hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
+ echo hppa1.1-hp-osf
+ exit ;;
+ hp8??:OSF1:*:*)
+ echo hppa1.0-hp-osf
+ exit ;;
+ i*86:OSF1:*:*)
+ if [ -x /usr/sbin/sysversion ] ; then
+ echo ${UNAME_MACHINE}-unknown-osf1mk
+ else
+ echo ${UNAME_MACHINE}-unknown-osf1
+ fi
+ exit ;;
+ parisc*:Lites*:*:*)
+ echo hppa1.1-hp-lites
+ exit ;;
+ C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
+ echo c1-convex-bsd
+ exit ;;
+ C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
+ if getsysinfo -f scalar_acc
+ then echo c32-convex-bsd
+ else echo c2-convex-bsd
+ fi
+ exit ;;
+ C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
+ echo c34-convex-bsd
+ exit ;;
+ C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
+ echo c38-convex-bsd
+ exit ;;
+ C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
+ echo c4-convex-bsd
+ exit ;;
+ CRAY*Y-MP:*:*:*)
+ echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+ exit ;;
+ CRAY*[A-Z]90:*:*:*)
+ echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
+ | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
+ -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \
+ -e 's/\.[^.]*$/.X/'
+ exit ;;
+ CRAY*TS:*:*:*)
+ echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+ exit ;;
+ CRAY*T3E:*:*:*)
+ echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+ exit ;;
+ CRAY*SV1:*:*:*)
+ echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+ exit ;;
+ *:UNICOS/mp:*:*)
+ echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+ exit ;;
+ F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
+ FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
+ FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
+ FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
+ echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
+ exit ;;
+ 5000:UNIX_System_V:4.*:*)
+ FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
+ FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'`
+ echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
+ exit ;;
+ i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
+ echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
+ exit ;;
+ sparc*:BSD/OS:*:*)
+ echo sparc-unknown-bsdi${UNAME_RELEASE}
+ exit ;;
+ *:BSD/OS:*:*)
+ echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
+ exit ;;
+ *:FreeBSD:*:*)
+ UNAME_PROCESSOR=`/usr/bin/uname -p`
+ case ${UNAME_PROCESSOR} in
+ amd64)
+ echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
+ *)
+ echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
+ esac
+ exit ;;
+ i*:CYGWIN*:*)
+ echo ${UNAME_MACHINE}-pc-cygwin
+ exit ;;
+ *:MINGW64*:*)
+ echo ${UNAME_MACHINE}-pc-mingw64
+ exit ;;
+ *:MINGW*:*)
+ echo ${UNAME_MACHINE}-pc-mingw32
+ exit ;;
+ *:MSYS*:*)
+ echo ${UNAME_MACHINE}-pc-msys
+ exit ;;
+ i*:windows32*:*)
+ # uname -m includes "-pc" on this system.
+ echo ${UNAME_MACHINE}-mingw32
+ exit ;;
+ i*:PW*:*)
+ echo ${UNAME_MACHINE}-pc-pw32
+ exit ;;
+ *:Interix*:*)
+ case ${UNAME_MACHINE} in
+ x86)
+ echo i586-pc-interix${UNAME_RELEASE}
+ exit ;;
+ authenticamd | genuineintel | EM64T)
+ echo x86_64-unknown-interix${UNAME_RELEASE}
+ exit ;;
+ IA64)
+ echo ia64-unknown-interix${UNAME_RELEASE}
+ exit ;;
+ esac ;;
+ [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
+ echo i${UNAME_MACHINE}-pc-mks
+ exit ;;
+ 8664:Windows_NT:*)
+ echo x86_64-pc-mks
+ exit ;;
+ i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
+ # How do we know it's Interix rather than the generic POSIX subsystem?
+ # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
+ # UNAME_MACHINE based on the output of uname instead of i386?
+ echo i586-pc-interix
+ exit ;;
+ i*:UWIN*:*)
+ echo ${UNAME_MACHINE}-pc-uwin
+ exit ;;
+ amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*)
+ echo x86_64-unknown-cygwin
+ exit ;;
+ p*:CYGWIN*:*)
+ echo powerpcle-unknown-cygwin
+ exit ;;
+ prep*:SunOS:5.*:*)
+ echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+ exit ;;
+ *:GNU:*:*)
+ # the GNU system
+ echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-${LIBC}`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
+ exit ;;
+ *:GNU/*:*:*)
+ # other systems with GNU libc and userland
+ echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC}
+ exit ;;
+ i*86:Minix:*:*)
+ echo ${UNAME_MACHINE}-pc-minix
+ exit ;;
+ aarch64:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ exit ;;
+ aarch64_be:Linux:*:*)
+ UNAME_MACHINE=aarch64_be
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ exit ;;
+ alpha:Linux:*:*)
+ case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
+ EV5) UNAME_MACHINE=alphaev5 ;;
+ EV56) UNAME_MACHINE=alphaev56 ;;
+ PCA56) UNAME_MACHINE=alphapca56 ;;
+ PCA57) UNAME_MACHINE=alphapca56 ;;
+ EV6) UNAME_MACHINE=alphaev6 ;;
+ EV67) UNAME_MACHINE=alphaev67 ;;
+ EV68*) UNAME_MACHINE=alphaev68 ;;
+ esac
+ objdump --private-headers /bin/sh | grep -q ld.so.1
+ if test "$?" = 0 ; then LIBC="gnulibc1" ; fi
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ exit ;;
+ arc:Linux:*:* | arceb:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ exit ;;
+ arm*:Linux:*:*)
+ eval $set_cc_for_build
+ if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
+ | grep -q __ARM_EABI__
+ then
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ else
+ if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
+ | grep -q __ARM_PCS_VFP
+ then
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabi
+ else
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabihf
+ fi
+ fi
+ exit ;;
+ avr32*:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ exit ;;
+ cris:Linux:*:*)
+ echo ${UNAME_MACHINE}-axis-linux-${LIBC}
+ exit ;;
+ crisv32:Linux:*:*)
+ echo ${UNAME_MACHINE}-axis-linux-${LIBC}
+ exit ;;
+ frv:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ exit ;;
+ hexagon:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ exit ;;
+ i*86:Linux:*:*)
+ echo ${UNAME_MACHINE}-pc-linux-${LIBC}
+ exit ;;
+ ia64:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ exit ;;
+ m32r*:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ exit ;;
+ m68*:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ exit ;;
+ mips:Linux:*:* | mips64:Linux:*:*)
+ eval $set_cc_for_build
+ sed 's/^ //' << EOF >$dummy.c
+ #undef CPU
+ #undef ${UNAME_MACHINE}
+ #undef ${UNAME_MACHINE}el
+ #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
+ CPU=${UNAME_MACHINE}el
+ #else
+ #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
+ CPU=${UNAME_MACHINE}
+ #else
+ CPU=
+ #endif
+ #endif
+EOF
+ eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'`
+ test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; }
+ ;;
+ openrisc*:Linux:*:*)
+ echo or1k-unknown-linux-${LIBC}
+ exit ;;
+ or32:Linux:*:* | or1k*:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ exit ;;
+ padre:Linux:*:*)
+ echo sparc-unknown-linux-${LIBC}
+ exit ;;
+ parisc64:Linux:*:* | hppa64:Linux:*:*)
+ echo hppa64-unknown-linux-${LIBC}
+ exit ;;
+ parisc:Linux:*:* | hppa:Linux:*:*)
+ # Look for CPU level
+ case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
+ PA7*) echo hppa1.1-unknown-linux-${LIBC} ;;
+ PA8*) echo hppa2.0-unknown-linux-${LIBC} ;;
+ *) echo hppa-unknown-linux-${LIBC} ;;
+ esac
+ exit ;;
+ ppc64:Linux:*:*)
+ echo powerpc64-unknown-linux-${LIBC}
+ exit ;;
+ ppc:Linux:*:*)
+ echo powerpc-unknown-linux-${LIBC}
+ exit ;;
+ ppc64le:Linux:*:*)
+ echo powerpc64le-unknown-linux-${LIBC}
+ exit ;;
+ ppcle:Linux:*:*)
+ echo powerpcle-unknown-linux-${LIBC}
+ exit ;;
+ s390:Linux:*:* | s390x:Linux:*:*)
+ echo ${UNAME_MACHINE}-ibm-linux-${LIBC}
+ exit ;;
+ sh64*:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ exit ;;
+ sh*:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ exit ;;
+ sparc:Linux:*:* | sparc64:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ exit ;;
+ tile*:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ exit ;;
+ vax:Linux:*:*)
+ echo ${UNAME_MACHINE}-dec-linux-${LIBC}
+ exit ;;
+ x86_64:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ exit ;;
+ xtensa*:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ exit ;;
+ i*86:DYNIX/ptx:4*:*)
+ # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
+ # earlier versions are messed up and put the nodename in both
+ # sysname and nodename.
+ echo i386-sequent-sysv4
+ exit ;;
+ i*86:UNIX_SV:4.2MP:2.*)
+ # Unixware is an offshoot of SVR4, but it has its own version
+ # number series starting with 2...
+ # I am not positive that other SVR4 systems won't match this,
+ # I just have to hope. -- rms.
+ # Use sysv4.2uw... so that sysv4* matches it.
+ echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
+ exit ;;
+ i*86:OS/2:*:*)
+ # If we were able to find `uname', then EMX Unix compatibility
+ # is probably installed.
+ echo ${UNAME_MACHINE}-pc-os2-emx
+ exit ;;
+ i*86:XTS-300:*:STOP)
+ echo ${UNAME_MACHINE}-unknown-stop
+ exit ;;
+ i*86:atheos:*:*)
+ echo ${UNAME_MACHINE}-unknown-atheos
+ exit ;;
+ i*86:syllable:*:*)
+ echo ${UNAME_MACHINE}-pc-syllable
+ exit ;;
+ i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*)
+ echo i386-unknown-lynxos${UNAME_RELEASE}
+ exit ;;
+ i*86:*DOS:*:*)
+ echo ${UNAME_MACHINE}-pc-msdosdjgpp
+ exit ;;
+ i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*)
+ UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
+ if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
+ echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL}
+ else
+ echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
+ fi
+ exit ;;
+ i*86:*:5:[678]*)
+ # UnixWare 7.x, OpenUNIX and OpenServer 6.
+ case `/bin/uname -X | grep "^Machine"` in
+ *486*) UNAME_MACHINE=i486 ;;
+ *Pentium) UNAME_MACHINE=i586 ;;
+ *Pent*|*Celeron) UNAME_MACHINE=i686 ;;
+ esac
+ echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
+ exit ;;
+ i*86:*:3.2:*)
+ if test -f /usr/options/cb.name; then
+ UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
+ echo ${UNAME_MACHINE}-pc-isc$UNAME_REL
+ elif /bin/uname -X 2>/dev/null >/dev/null ; then
+ UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')`
+ (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486
+ (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \
+ && UNAME_MACHINE=i586
+ (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \
+ && UNAME_MACHINE=i686
+ (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \
+ && UNAME_MACHINE=i686
+ echo ${UNAME_MACHINE}-pc-sco$UNAME_REL
+ else
+ echo ${UNAME_MACHINE}-pc-sysv32
+ fi
+ exit ;;
+ pc:*:*:*)
+ # Left here for compatibility:
+ # uname -m prints for DJGPP always 'pc', but it prints nothing about
+ # the processor, so we play safe by assuming i586.
+ # Note: whatever this is, it MUST be the same as what config.sub
+ # prints for the "djgpp" host, or else GDB configury will decide that
+ # this is a cross-build.
+ echo i586-pc-msdosdjgpp
+ exit ;;
+ Intel:Mach:3*:*)
+ echo i386-pc-mach3
+ exit ;;
+ paragon:*:*:*)
+ echo i860-intel-osf1
+ exit ;;
+ i860:*:4.*:*) # i860-SVR4
+ if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
+ echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4
+ else # Add other i860-SVR4 vendors below as they are discovered.
+ echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4
+ fi
+ exit ;;
+ mini*:CTIX:SYS*5:*)
+ # "miniframe"
+ echo m68010-convergent-sysv
+ exit ;;
+ mc68k:UNIX:SYSTEM5:3.51m)
+ echo m68k-convergent-sysv
+ exit ;;
+ M680?0:D-NIX:5.3:*)
+ echo m68k-diab-dnix
+ exit ;;
+ M68*:*:R3V[5678]*:*)
+ test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;;
+ 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0)
+ OS_REL=''
+ test -r /etc/.relid \
+ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
+ /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
+ && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
+ /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
+ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
+ 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
+ /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
+ && { echo i486-ncr-sysv4; exit; } ;;
+ NCR*:*:4.2:* | MPRAS*:*:4.2:*)
+ OS_REL='.3'
+ test -r /etc/.relid \
+ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
+ /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
+ && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
+ /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
+ && { echo i586-ncr-sysv4.3${OS_REL}; exit; }
+ /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \
+ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
+ m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
+ echo m68k-unknown-lynxos${UNAME_RELEASE}
+ exit ;;
+ mc68030:UNIX_System_V:4.*:*)
+ echo m68k-atari-sysv4
+ exit ;;
+ TSUNAMI:LynxOS:2.*:*)
+ echo sparc-unknown-lynxos${UNAME_RELEASE}
+ exit ;;
+ rs6000:LynxOS:2.*:*)
+ echo rs6000-unknown-lynxos${UNAME_RELEASE}
+ exit ;;
+ PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*)
+ echo powerpc-unknown-lynxos${UNAME_RELEASE}
+ exit ;;
+ SM[BE]S:UNIX_SV:*:*)
+ echo mips-dde-sysv${UNAME_RELEASE}
+ exit ;;
+ RM*:ReliantUNIX-*:*:*)
+ echo mips-sni-sysv4
+ exit ;;
+ RM*:SINIX-*:*:*)
+ echo mips-sni-sysv4
+ exit ;;
+ *:SINIX-*:*:*)
+ if uname -p 2>/dev/null >/dev/null ; then
+ UNAME_MACHINE=`(uname -p) 2>/dev/null`
+ echo ${UNAME_MACHINE}-sni-sysv4
+ else
+ echo ns32k-sni-sysv
+ fi
+ exit ;;
+ PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
+ # says <Richard.M.Bartel@ccMail.Census.GOV>
+ echo i586-unisys-sysv4
+ exit ;;
+ *:UNIX_System_V:4*:FTX*)
+ # From Gerald Hewes <hewes@openmarket.com>.
+ # How about differentiating between stratus architectures? -djm
+ echo hppa1.1-stratus-sysv4
+ exit ;;
+ *:*:*:FTX*)
+ # From seanf@swdc.stratus.com.
+ echo i860-stratus-sysv4
+ exit ;;
+ i*86:VOS:*:*)
+ # From Paul.Green@stratus.com.
+ echo ${UNAME_MACHINE}-stratus-vos
+ exit ;;
+ *:VOS:*:*)
+ # From Paul.Green@stratus.com.
+ echo hppa1.1-stratus-vos
+ exit ;;
+ mc68*:A/UX:*:*)
+ echo m68k-apple-aux${UNAME_RELEASE}
+ exit ;;
+ news*:NEWS-OS:6*:*)
+ echo mips-sony-newsos6
+ exit ;;
+ R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
+ if [ -d /usr/nec ]; then
+ echo mips-nec-sysv${UNAME_RELEASE}
+ else
+ echo mips-unknown-sysv${UNAME_RELEASE}
+ fi
+ exit ;;
+ BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only.
+ echo powerpc-be-beos
+ exit ;;
+ BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only.
+ echo powerpc-apple-beos
+ exit ;;
+ BePC:BeOS:*:*) # BeOS running on Intel PC compatible.
+ echo i586-pc-beos
+ exit ;;
+ BePC:Haiku:*:*) # Haiku running on Intel PC compatible.
+ echo i586-pc-haiku
+ exit ;;
+ x86_64:Haiku:*:*)
+ echo x86_64-unknown-haiku
+ exit ;;
+ SX-4:SUPER-UX:*:*)
+ echo sx4-nec-superux${UNAME_RELEASE}
+ exit ;;
+ SX-5:SUPER-UX:*:*)
+ echo sx5-nec-superux${UNAME_RELEASE}
+ exit ;;
+ SX-6:SUPER-UX:*:*)
+ echo sx6-nec-superux${UNAME_RELEASE}
+ exit ;;
+ SX-7:SUPER-UX:*:*)
+ echo sx7-nec-superux${UNAME_RELEASE}
+ exit ;;
+ SX-8:SUPER-UX:*:*)
+ echo sx8-nec-superux${UNAME_RELEASE}
+ exit ;;
+ SX-8R:SUPER-UX:*:*)
+ echo sx8r-nec-superux${UNAME_RELEASE}
+ exit ;;
+ Power*:Rhapsody:*:*)
+ echo powerpc-apple-rhapsody${UNAME_RELEASE}
+ exit ;;
+ *:Rhapsody:*:*)
+ echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
+ exit ;;
+ *:Darwin:*:*)
+ UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
+ eval $set_cc_for_build
+ if test "$UNAME_PROCESSOR" = unknown ; then
+ UNAME_PROCESSOR=powerpc
+ fi
+ 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 ;;
+ *:procnto*:*:* | *:QNX:[0123456789]*:*)
+ UNAME_PROCESSOR=`uname -p`
+ if test "$UNAME_PROCESSOR" = "x86"; then
+ UNAME_PROCESSOR=i386
+ UNAME_MACHINE=pc
+ fi
+ echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE}
+ exit ;;
+ *:QNX:*:4*)
+ echo i386-pc-qnx
+ exit ;;
+ NEO-?:NONSTOP_KERNEL:*:*)
+ echo neo-tandem-nsk${UNAME_RELEASE}
+ exit ;;
+ NSE-*:NONSTOP_KERNEL:*:*)
+ echo nse-tandem-nsk${UNAME_RELEASE}
+ exit ;;
+ NSR-?:NONSTOP_KERNEL:*:*)
+ echo nsr-tandem-nsk${UNAME_RELEASE}
+ exit ;;
+ *:NonStop-UX:*:*)
+ echo mips-compaq-nonstopux
+ exit ;;
+ BS2000:POSIX*:*:*)
+ echo bs2000-siemens-sysv
+ exit ;;
+ DS/*:UNIX_System_V:*:*)
+ echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE}
+ exit ;;
+ *:Plan9:*:*)
+ # "uname -m" is not consistent, so use $cputype instead. 386
+ # is converted to i386 for consistency with other x86
+ # operating systems.
+ if test "$cputype" = "386"; then
+ UNAME_MACHINE=i386
+ else
+ UNAME_MACHINE="$cputype"
+ fi
+ echo ${UNAME_MACHINE}-unknown-plan9
+ exit ;;
+ *:TOPS-10:*:*)
+ echo pdp10-unknown-tops10
+ exit ;;
+ *:TENEX:*:*)
+ echo pdp10-unknown-tenex
+ exit ;;
+ KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
+ echo pdp10-dec-tops20
+ exit ;;
+ XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)
+ echo pdp10-xkl-tops20
+ exit ;;
+ *:TOPS-20:*:*)
+ echo pdp10-unknown-tops20
+ exit ;;
+ *:ITS:*:*)
+ echo pdp10-unknown-its
+ exit ;;
+ SEI:*:*:SEIUX)
+ echo mips-sei-seiux${UNAME_RELEASE}
+ exit ;;
+ *:DragonFly:*:*)
+ echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
+ exit ;;
+ *:*VMS:*:*)
+ UNAME_MACHINE=`(uname -p) 2>/dev/null`
+ case "${UNAME_MACHINE}" in
+ A*) echo alpha-dec-vms ; exit ;;
+ I*) echo ia64-dec-vms ; exit ;;
+ V*) echo vax-dec-vms ; exit ;;
+ esac ;;
+ *:XENIX:*:SysV)
+ echo i386-pc-xenix
+ exit ;;
+ i*86:skyos:*:*)
+ echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//'
+ exit ;;
+ i*86:rdos:*:*)
+ echo ${UNAME_MACHINE}-pc-rdos
+ exit ;;
+ i*86:AROS:*:*)
+ echo ${UNAME_MACHINE}-pc-aros
+ exit ;;
+ x86_64:VMkernel:*:*)
+ echo ${UNAME_MACHINE}-unknown-esx
+ exit ;;
+esac
+
+cat >&2 <<EOF
+$0: unable to guess system type
+
+This script, last modified $timestamp, has failed to recognize
+the operating system you are using. It is advised that you
+download the most up to date version of the config scripts from
+
+ http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
+and
+ http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
+
+If the version you run ($0) is already up to date, please
+send the following data and any information you think might be
+pertinent to <config-patches@gnu.org> in order to provide the needed
+information to handle your system.
+
+config.guess timestamp = $timestamp
+
+uname -m = `(uname -m) 2>/dev/null || echo unknown`
+uname -r = `(uname -r) 2>/dev/null || echo unknown`
+uname -s = `(uname -s) 2>/dev/null || echo unknown`
+uname -v = `(uname -v) 2>/dev/null || echo unknown`
+
+/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null`
+/bin/uname -X = `(/bin/uname -X) 2>/dev/null`
+
+hostinfo = `(hostinfo) 2>/dev/null`
+/bin/universe = `(/bin/universe) 2>/dev/null`
+/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null`
+/bin/arch = `(/bin/arch) 2>/dev/null`
+/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null`
+/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null`
+
+UNAME_MACHINE = ${UNAME_MACHINE}
+UNAME_RELEASE = ${UNAME_RELEASE}
+UNAME_SYSTEM = ${UNAME_SYSTEM}
+UNAME_VERSION = ${UNAME_VERSION}
+EOF
+
+exit 1
+
+# Local variables:
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "timestamp='"
+# time-stamp-format: "%:y-%02m-%02d"
+# time-stamp-end: "'"
+# End:
--- /dev/null
+/* config.h.in. Generated from configure.ac by autoheader. */
+
+/* Define to 1 if you are compiling for PowerPC. */
+#undef ARCH_PPC
+
+/* Define to 1 if you are compiling for PowerPC64. */
+#undef ARCH_PPC64
+
+/* Define to 1 if you are compiling for ix86. */
+#undef ARCH_X86
+
+/* Define to 1 if you are compiling for amd64. */
+#undef ARCH_X86_64
+
+/* separator between directories in BABL_PATH */
+#undef BABL_DIR_SEPARATOR
+
+/* Define if the C pre-processor supports GNU style variadic macros */
+#undef BABL_GNUC_VARIADIC_MACROS
+
+/* Define if the C++ pre-processor supports variadic macros */
+#undef BABL_ISO_CXX_VARIADIC_MACROS
+
+/* Define if the C pre-processor supports variadic macros */
+#undef BABL_ISO_VARIADIC_MACROS
+
+/* name of BABL library */
+#undef BABL_LIBRARY
+
+/* separator between paths in BABL_PATH */
+#undef BABL_PATH_SEPARATOR
+
+/* Define to 1 if this is an unstable version of BABL */
+#undef BABL_UNSTABLE
+
+/* Define to 1 if you have the <altivec.h> header file. */
+#undef HAVE_ALTIVEC_H
+
+/* Define to 1 if the altivec runtime test should use a sysctl. */
+#undef HAVE_ALTIVEC_SYSCTL
+
+/* Define to 1 if you have the <dlfcn.h> header file. */
+#undef HAVE_DLFCN_H
+
+/* Define to 1 if you have the <dl.h> header file. */
+#undef HAVE_DL_H
+
+/* Define to 1 if you have the `gettimeofday' function. */
+#undef HAVE_GETTIMEOFDAY
+
+/* Define to 1 if you have the <inttypes.h> header file. */
+#undef HAVE_INTTYPES_H
+
+/* Define to 1 if you have the <memory.h> header file. */
+#undef HAVE_MEMORY_H
+
+/* Define to 1 if you have the `rint' function. */
+#undef HAVE_RINT
+
+/* Define to 1 if you have the <stdint.h> header file. */
+#undef HAVE_STDINT_H
+
+/* Define to 1 if you have the <stdlib.h> header file. */
+#undef HAVE_STDLIB_H
+
+/* Define to 1 if you have the <strings.h> header file. */
+#undef HAVE_STRINGS_H
+
+/* Define to 1 if you have the <string.h> header file. */
+#undef HAVE_STRING_H
+
+/* Define to 1 if you have the <sys/stat.h> header file. */
+#undef HAVE_SYS_STAT_H
+
+/* Define to 1 if you have the <sys/types.h> header file. */
+#undef HAVE_SYS_TYPES_H
+
+/* Define to 1 if you have the <unistd.h> header file. */
+#undef HAVE_UNISTD_H
+
+/* Define to the sub-directory where libtool stores uninstalled libraries. */
+#undef LT_OBJDIR
+
+/* Define to the address where bug reports for this package should be sent. */
+#undef PACKAGE_BUGREPORT
+
+/* Define to the full name of this package. */
+#undef PACKAGE_NAME
+
+/* Define to the full name and version of this package. */
+#undef PACKAGE_STRING
+
+/* Define to the one symbol short name of this package. */
+#undef PACKAGE_TARNAME
+
+/* Define to the home page for this package. */
+#undef PACKAGE_URL
+
+/* Define to the version of this package. */
+#undef PACKAGE_VERSION
+
+/* File extension for shared libraries */
+#undef SHREXT
+
+/* Define to 1 if you have the ANSI C header files. */
+#undef STDC_HEADERS
+
+/* Define to 1 if AltiVec support is available. */
+#undef USE_ALTIVEC
+
+/* Define to 1 if f16c intrinsics are available. */
+#undef USE_F16C
+
+/* Define to 1 if MMX assembly is available. */
+#undef USE_MMX
+
+/* Define to 1 if SSE assembly is available. */
+#undef USE_SSE
+
+/* Define to 1 if SSE2 assembly is available. */
+#undef USE_SSE2
+
+/* Define to 1 if SSE4_1 assembly is available. */
+#undef USE_SSE4_1
--- /dev/null
+#! /bin/sh
+# Configuration validation subroutine script.
+# Copyright 1992-2015 Free Software Foundation, Inc.
+
+timestamp='2015-01-01'
+
+# This file is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 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, see <http://www.gnu.org/licenses/>.
+#
+# 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 Exception is an additional permission under section 7
+# of the GNU General Public License, version 3 ("GPLv3").
+
+
+# Please send patches to <config-patches@gnu.org>.
+#
+# Configuration subroutine to validate and canonicalize a configuration type.
+# Supply the specified configuration type as an argument.
+# If it is invalid, we print an error message on stderr and exit with code 1.
+# Otherwise, we print the canonical config type on stdout and succeed.
+
+# You can get the latest version of this script from:
+# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
+
+# This file is supposed to be the same for all GNU packages
+# and recognize all the CPU types, system types and aliases
+# that are meaningful with *any* GNU software.
+# Each package is responsible for reporting which valid configurations
+# it does not support. The user should be able to distinguish
+# a failure to support a valid configuration from a meaningless
+# configuration.
+
+# The goal of this file is to map all the various variations of a given
+# machine specification into a single specification in the form:
+# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
+# or in some cases, the newer four-part form:
+# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
+# It is wrong to echo any other type of specification.
+
+me=`echo "$0" | sed -e 's,.*/,,'`
+
+usage="\
+Usage: $0 [OPTION] CPU-MFR-OPSYS
+ $0 [OPTION] ALIAS
+
+Canonicalize a configuration name.
+
+Operation modes:
+ -h, --help print this help, then exit
+ -t, --time-stamp print date of last modification, then exit
+ -v, --version print version number, then exit
+
+Report bugs and patches to <config-patches@gnu.org>."
+
+version="\
+GNU config.sub ($timestamp)
+
+Copyright 1992-2015 Free Software Foundation, Inc.
+
+This is free software; see the source for copying conditions. There is NO
+warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
+
+help="
+Try \`$me --help' for more information."
+
+# Parse command line
+while test $# -gt 0 ; do
+ case $1 in
+ --time-stamp | --time* | -t )
+ echo "$timestamp" ; exit ;;
+ --version | -v )
+ echo "$version" ; exit ;;
+ --help | --h* | -h )
+ echo "$usage"; exit ;;
+ -- ) # Stop option processing
+ shift; break ;;
+ - ) # Use stdin as input.
+ break ;;
+ -* )
+ echo "$me: invalid option $1$help"
+ exit 1 ;;
+
+ *local*)
+ # First pass through any local machine types.
+ echo $1
+ exit ;;
+
+ * )
+ break ;;
+ esac
+done
+
+case $# in
+ 0) echo "$me: missing argument$help" >&2
+ exit 1;;
+ 1) ;;
+ *) echo "$me: too many arguments$help" >&2
+ exit 1;;
+esac
+
+# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any).
+# Here we must recognize all the valid KERNEL-OS combinations.
+maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
+case $maybe_os in
+ nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \
+ linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \
+ knetbsd*-gnu* | netbsd*-gnu* | \
+ kopensolaris*-gnu* | \
+ storm-chaos* | os2-emx* | rtmk-nova*)
+ os=-$maybe_os
+ basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
+ ;;
+ android-linux)
+ os=-linux-android
+ basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown
+ ;;
+ *)
+ basic_machine=`echo $1 | sed 's/-[^-]*$//'`
+ if [ $basic_machine != $1 ]
+ then os=`echo $1 | sed 's/.*-/-/'`
+ else os=; fi
+ ;;
+esac
+
+### Let's recognize common machines as not being operating systems so
+### that things like config.sub decstation-3100 work. We also
+### recognize some manufacturers as not being operating systems, so we
+### can provide default operating systems below.
+case $os in
+ -sun*os*)
+ # Prevent following clause from handling this invalid input.
+ ;;
+ -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \
+ -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \
+ -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \
+ -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
+ -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
+ -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
+ -apple | -axis | -knuth | -cray | -microblaze*)
+ os=
+ basic_machine=$1
+ ;;
+ -bluegene*)
+ os=-cnk
+ ;;
+ -sim | -cisco | -oki | -wec | -winbond)
+ os=
+ basic_machine=$1
+ ;;
+ -scout)
+ ;;
+ -wrs)
+ os=-vxworks
+ basic_machine=$1
+ ;;
+ -chorusos*)
+ os=-chorusos
+ basic_machine=$1
+ ;;
+ -chorusrdb)
+ os=-chorusrdb
+ basic_machine=$1
+ ;;
+ -hiux*)
+ os=-hiuxwe2
+ ;;
+ -sco6)
+ os=-sco5v6
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ ;;
+ -sco5)
+ os=-sco3.2v5
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ ;;
+ -sco4)
+ os=-sco3.2v4
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ ;;
+ -sco3.2.[4-9]*)
+ os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ ;;
+ -sco3.2v[4-9]*)
+ # Don't forget version if it is 3.2v4 or newer.
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ ;;
+ -sco5v6*)
+ # Don't forget version if it is 3.2v4 or newer.
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ ;;
+ -sco*)
+ os=-sco3.2v2
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ ;;
+ -udk*)
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ ;;
+ -isc)
+ os=-isc2.2
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ ;;
+ -clix*)
+ basic_machine=clipper-intergraph
+ ;;
+ -isc*)
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ ;;
+ -lynx*178)
+ os=-lynxos178
+ ;;
+ -lynx*5)
+ os=-lynxos5
+ ;;
+ -lynx*)
+ os=-lynxos
+ ;;
+ -ptx*)
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'`
+ ;;
+ -windowsnt*)
+ os=`echo $os | sed -e 's/windowsnt/winnt/'`
+ ;;
+ -psos*)
+ os=-psos
+ ;;
+ -mint | -mint[0-9]*)
+ basic_machine=m68k-atari
+ os=-mint
+ ;;
+esac
+
+# Decode aliases for certain CPU-COMPANY combinations.
+case $basic_machine in
+ # Recognize the basic CPU types without company name.
+ # Some are omitted here because they have special meanings below.
+ 1750a | 580 \
+ | a29k \
+ | aarch64 | aarch64_be \
+ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
+ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
+ | am33_2.0 \
+ | arc | arceb \
+ | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \
+ | avr | avr32 \
+ | be32 | be64 \
+ | bfin \
+ | c4x | c8051 | clipper \
+ | d10v | d30v | dlx | dsp16xx \
+ | epiphany \
+ | fido | fr30 | frv | ft32 \
+ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
+ | hexagon \
+ | i370 | i860 | i960 | ia64 \
+ | ip2k | iq2000 \
+ | k1om \
+ | le32 | le64 \
+ | lm32 \
+ | m32c | m32r | m32rle | m68000 | m68k | m88k \
+ | maxq | mb | microblaze | microblazeel | mcore | mep | metag \
+ | mips | mipsbe | mipseb | mipsel | mipsle \
+ | mips16 \
+ | mips64 | mips64el \
+ | mips64octeon | mips64octeonel \
+ | mips64orion | mips64orionel \
+ | mips64r5900 | mips64r5900el \
+ | mips64vr | mips64vrel \
+ | mips64vr4100 | mips64vr4100el \
+ | mips64vr4300 | mips64vr4300el \
+ | mips64vr5000 | mips64vr5000el \
+ | mips64vr5900 | mips64vr5900el \
+ | mipsisa32 | mipsisa32el \
+ | mipsisa32r2 | mipsisa32r2el \
+ | mipsisa32r6 | mipsisa32r6el \
+ | mipsisa64 | mipsisa64el \
+ | mipsisa64r2 | mipsisa64r2el \
+ | mipsisa64r6 | mipsisa64r6el \
+ | mipsisa64sb1 | mipsisa64sb1el \
+ | mipsisa64sr71k | mipsisa64sr71kel \
+ | mipsr5900 | mipsr5900el \
+ | mipstx39 | mipstx39el \
+ | mn10200 | mn10300 \
+ | moxie \
+ | mt \
+ | msp430 \
+ | nds32 | nds32le | nds32be \
+ | nios | nios2 | nios2eb | nios2el \
+ | ns16k | ns32k \
+ | open8 | or1k | or1knd | or32 \
+ | pdp10 | pdp11 | pj | pjl \
+ | powerpc | powerpc64 | powerpc64le | powerpcle \
+ | pyramid \
+ | riscv32 | riscv64 \
+ | rl78 | rx \
+ | score \
+ | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
+ | sh64 | sh64le \
+ | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
+ | sparcv8 | sparcv9 | sparcv9b | sparcv9v \
+ | spu \
+ | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \
+ | ubicom32 \
+ | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \
+ | visium \
+ | we32k \
+ | x86 | xc16x | xstormy16 | xtensa \
+ | z8k | z80)
+ basic_machine=$basic_machine-unknown
+ ;;
+ c54x)
+ basic_machine=tic54x-unknown
+ ;;
+ c55x)
+ basic_machine=tic55x-unknown
+ ;;
+ c6x)
+ basic_machine=tic6x-unknown
+ ;;
+ leon|leon[3-9])
+ basic_machine=sparc-$basic_machine
+ ;;
+ m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip)
+ basic_machine=$basic_machine-unknown
+ os=-none
+ ;;
+ m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k)
+ ;;
+ ms1)
+ basic_machine=mt-unknown
+ ;;
+
+ strongarm | thumb | xscale)
+ basic_machine=arm-unknown
+ ;;
+ xgate)
+ basic_machine=$basic_machine-unknown
+ os=-none
+ ;;
+ xscaleeb)
+ basic_machine=armeb-unknown
+ ;;
+
+ xscaleel)
+ basic_machine=armel-unknown
+ ;;
+
+ # We use `pc' rather than `unknown'
+ # because (1) that's what they normally are, and
+ # (2) the word "unknown" tends to confuse beginning users.
+ i*86 | x86_64)
+ basic_machine=$basic_machine-pc
+ ;;
+ # Object if more than one company name word.
+ *-*-*)
+ echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
+ exit 1
+ ;;
+ # Recognize the basic CPU types with company name.
+ 580-* \
+ | a29k-* \
+ | aarch64-* | aarch64_be-* \
+ | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
+ | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
+ | alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \
+ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \
+ | avr-* | avr32-* \
+ | be32-* | be64-* \
+ | bfin-* | bs2000-* \
+ | c[123]* | c30-* | [cjt]90-* | c4x-* \
+ | c8051-* | clipper-* | craynv-* | cydra-* \
+ | d10v-* | d30v-* | dlx-* \
+ | elxsi-* \
+ | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \
+ | h8300-* | h8500-* \
+ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
+ | hexagon-* \
+ | i*86-* | i860-* | i960-* | ia64-* \
+ | ip2k-* | iq2000-* \
+ | k1om-* \
+ | le32-* | le64-* \
+ | lm32-* \
+ | m32c-* | m32r-* | m32rle-* \
+ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
+ | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \
+ | microblaze-* | microblazeel-* \
+ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
+ | mips16-* \
+ | mips64-* | mips64el-* \
+ | mips64octeon-* | mips64octeonel-* \
+ | mips64orion-* | mips64orionel-* \
+ | mips64r5900-* | mips64r5900el-* \
+ | mips64vr-* | mips64vrel-* \
+ | mips64vr4100-* | mips64vr4100el-* \
+ | mips64vr4300-* | mips64vr4300el-* \
+ | mips64vr5000-* | mips64vr5000el-* \
+ | mips64vr5900-* | mips64vr5900el-* \
+ | mipsisa32-* | mipsisa32el-* \
+ | mipsisa32r2-* | mipsisa32r2el-* \
+ | mipsisa32r6-* | mipsisa32r6el-* \
+ | mipsisa64-* | mipsisa64el-* \
+ | mipsisa64r2-* | mipsisa64r2el-* \
+ | mipsisa64r6-* | mipsisa64r6el-* \
+ | mipsisa64sb1-* | mipsisa64sb1el-* \
+ | mipsisa64sr71k-* | mipsisa64sr71kel-* \
+ | mipsr5900-* | mipsr5900el-* \
+ | mipstx39-* | mipstx39el-* \
+ | mmix-* \
+ | mt-* \
+ | msp430-* \
+ | nds32-* | nds32le-* | nds32be-* \
+ | nios-* | nios2-* | nios2eb-* | nios2el-* \
+ | none-* | np1-* | ns16k-* | ns32k-* \
+ | open8-* \
+ | or1k*-* \
+ | orion-* \
+ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
+ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \
+ | pyramid-* \
+ | rl78-* | romp-* | rs6000-* | rx-* \
+ | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
+ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
+ | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
+ | sparclite-* \
+ | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx?-* \
+ | tahoe-* \
+ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
+ | tile*-* \
+ | tron-* \
+ | ubicom32-* \
+ | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \
+ | vax-* \
+ | visium-* \
+ | we32k-* \
+ | x86-* | x86_64-* | xc16x-* | xps100-* \
+ | xstormy16-* | xtensa*-* \
+ | ymp-* \
+ | z8k-* | z80-*)
+ ;;
+ # Recognize the basic CPU types without company name, with glob match.
+ xtensa*)
+ basic_machine=$basic_machine-unknown
+ ;;
+ # Recognize the various machine names and aliases which stand
+ # for a CPU type and a company and sometimes even an OS.
+ 386bsd)
+ basic_machine=i386-unknown
+ os=-bsd
+ ;;
+ 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
+ basic_machine=m68000-att
+ ;;
+ 3b*)
+ basic_machine=we32k-att
+ ;;
+ a29khif)
+ basic_machine=a29k-amd
+ os=-udi
+ ;;
+ abacus)
+ basic_machine=abacus-unknown
+ ;;
+ adobe68k)
+ basic_machine=m68010-adobe
+ os=-scout
+ ;;
+ alliant | fx80)
+ basic_machine=fx80-alliant
+ ;;
+ altos | altos3068)
+ basic_machine=m68k-altos
+ ;;
+ am29k)
+ basic_machine=a29k-none
+ os=-bsd
+ ;;
+ amd64)
+ basic_machine=x86_64-pc
+ ;;
+ amd64-*)
+ basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ amdahl)
+ basic_machine=580-amdahl
+ os=-sysv
+ ;;
+ amiga | amiga-*)
+ basic_machine=m68k-unknown
+ ;;
+ amigaos | amigados)
+ basic_machine=m68k-unknown
+ os=-amigaos
+ ;;
+ amigaunix | amix)
+ basic_machine=m68k-unknown
+ os=-sysv4
+ ;;
+ apollo68)
+ basic_machine=m68k-apollo
+ os=-sysv
+ ;;
+ apollo68bsd)
+ basic_machine=m68k-apollo
+ os=-bsd
+ ;;
+ aros)
+ basic_machine=i386-pc
+ os=-aros
+ ;;
+ aux)
+ basic_machine=m68k-apple
+ os=-aux
+ ;;
+ balance)
+ basic_machine=ns32k-sequent
+ os=-dynix
+ ;;
+ blackfin)
+ basic_machine=bfin-unknown
+ os=-linux
+ ;;
+ blackfin-*)
+ basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'`
+ os=-linux
+ ;;
+ bluegene*)
+ basic_machine=powerpc-ibm
+ os=-cnk
+ ;;
+ c54x-*)
+ basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ c55x-*)
+ basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ c6x-*)
+ basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ c90)
+ basic_machine=c90-cray
+ os=-unicos
+ ;;
+ cegcc)
+ basic_machine=arm-unknown
+ os=-cegcc
+ ;;
+ convex-c1)
+ basic_machine=c1-convex
+ os=-bsd
+ ;;
+ convex-c2)
+ basic_machine=c2-convex
+ os=-bsd
+ ;;
+ convex-c32)
+ basic_machine=c32-convex
+ os=-bsd
+ ;;
+ convex-c34)
+ basic_machine=c34-convex
+ os=-bsd
+ ;;
+ convex-c38)
+ basic_machine=c38-convex
+ os=-bsd
+ ;;
+ cray | j90)
+ basic_machine=j90-cray
+ os=-unicos
+ ;;
+ craynv)
+ basic_machine=craynv-cray
+ os=-unicosmp
+ ;;
+ cr16 | cr16-*)
+ basic_machine=cr16-unknown
+ os=-elf
+ ;;
+ crds | unos)
+ basic_machine=m68k-crds
+ ;;
+ crisv32 | crisv32-* | etraxfs*)
+ basic_machine=crisv32-axis
+ ;;
+ cris | cris-* | etrax*)
+ basic_machine=cris-axis
+ ;;
+ crx)
+ basic_machine=crx-unknown
+ os=-elf
+ ;;
+ da30 | da30-*)
+ basic_machine=m68k-da30
+ ;;
+ decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn)
+ basic_machine=mips-dec
+ ;;
+ decsystem10* | dec10*)
+ basic_machine=pdp10-dec
+ os=-tops10
+ ;;
+ decsystem20* | dec20*)
+ basic_machine=pdp10-dec
+ os=-tops20
+ ;;
+ delta | 3300 | motorola-3300 | motorola-delta \
+ | 3300-motorola | delta-motorola)
+ basic_machine=m68k-motorola
+ ;;
+ delta88)
+ basic_machine=m88k-motorola
+ os=-sysv3
+ ;;
+ dicos)
+ basic_machine=i686-pc
+ os=-dicos
+ ;;
+ djgpp)
+ basic_machine=i586-pc
+ os=-msdosdjgpp
+ ;;
+ dpx20 | dpx20-*)
+ basic_machine=rs6000-bull
+ os=-bosx
+ ;;
+ dpx2* | dpx2*-bull)
+ basic_machine=m68k-bull
+ os=-sysv3
+ ;;
+ ebmon29k)
+ basic_machine=a29k-amd
+ os=-ebmon
+ ;;
+ elxsi)
+ basic_machine=elxsi-elxsi
+ os=-bsd
+ ;;
+ encore | umax | mmax)
+ basic_machine=ns32k-encore
+ ;;
+ es1800 | OSE68k | ose68k | ose | OSE)
+ basic_machine=m68k-ericsson
+ os=-ose
+ ;;
+ fx2800)
+ basic_machine=i860-alliant
+ ;;
+ genix)
+ basic_machine=ns32k-ns
+ ;;
+ gmicro)
+ basic_machine=tron-gmicro
+ os=-sysv
+ ;;
+ go32)
+ basic_machine=i386-pc
+ os=-go32
+ ;;
+ h3050r* | hiux*)
+ basic_machine=hppa1.1-hitachi
+ os=-hiuxwe2
+ ;;
+ h8300hms)
+ basic_machine=h8300-hitachi
+ os=-hms
+ ;;
+ h8300xray)
+ basic_machine=h8300-hitachi
+ os=-xray
+ ;;
+ h8500hms)
+ basic_machine=h8500-hitachi
+ os=-hms
+ ;;
+ harris)
+ basic_machine=m88k-harris
+ os=-sysv3
+ ;;
+ hp300-*)
+ basic_machine=m68k-hp
+ ;;
+ hp300bsd)
+ basic_machine=m68k-hp
+ os=-bsd
+ ;;
+ hp300hpux)
+ basic_machine=m68k-hp
+ os=-hpux
+ ;;
+ hp3k9[0-9][0-9] | hp9[0-9][0-9])
+ basic_machine=hppa1.0-hp
+ ;;
+ hp9k2[0-9][0-9] | hp9k31[0-9])
+ basic_machine=m68000-hp
+ ;;
+ hp9k3[2-9][0-9])
+ basic_machine=m68k-hp
+ ;;
+ hp9k6[0-9][0-9] | hp6[0-9][0-9])
+ basic_machine=hppa1.0-hp
+ ;;
+ hp9k7[0-79][0-9] | hp7[0-79][0-9])
+ basic_machine=hppa1.1-hp
+ ;;
+ hp9k78[0-9] | hp78[0-9])
+ # FIXME: really hppa2.0-hp
+ basic_machine=hppa1.1-hp
+ ;;
+ hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893)
+ # FIXME: really hppa2.0-hp
+ basic_machine=hppa1.1-hp
+ ;;
+ hp9k8[0-9][13679] | hp8[0-9][13679])
+ basic_machine=hppa1.1-hp
+ ;;
+ hp9k8[0-9][0-9] | hp8[0-9][0-9])
+ basic_machine=hppa1.0-hp
+ ;;
+ hppa-next)
+ os=-nextstep3
+ ;;
+ hppaosf)
+ basic_machine=hppa1.1-hp
+ os=-osf
+ ;;
+ hppro)
+ basic_machine=hppa1.1-hp
+ os=-proelf
+ ;;
+ i370-ibm* | ibm*)
+ basic_machine=i370-ibm
+ ;;
+ i*86v32)
+ basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+ os=-sysv32
+ ;;
+ i*86v4*)
+ basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+ os=-sysv4
+ ;;
+ i*86v)
+ basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+ os=-sysv
+ ;;
+ i*86sol2)
+ basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+ os=-solaris2
+ ;;
+ i386mach)
+ basic_machine=i386-mach
+ os=-mach
+ ;;
+ i386-vsta | vsta)
+ basic_machine=i386-unknown
+ os=-vsta
+ ;;
+ iris | iris4d)
+ basic_machine=mips-sgi
+ case $os in
+ -irix*)
+ ;;
+ *)
+ os=-irix4
+ ;;
+ esac
+ ;;
+ isi68 | isi)
+ basic_machine=m68k-isi
+ os=-sysv
+ ;;
+ leon-*|leon[3-9]-*)
+ basic_machine=sparc-`echo $basic_machine | sed 's/-.*//'`
+ ;;
+ m68knommu)
+ basic_machine=m68k-unknown
+ os=-linux
+ ;;
+ m68knommu-*)
+ basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'`
+ os=-linux
+ ;;
+ m88k-omron*)
+ basic_machine=m88k-omron
+ ;;
+ magnum | m3230)
+ basic_machine=mips-mips
+ os=-sysv
+ ;;
+ merlin)
+ basic_machine=ns32k-utek
+ os=-sysv
+ ;;
+ microblaze*)
+ basic_machine=microblaze-xilinx
+ ;;
+ mingw64)
+ basic_machine=x86_64-pc
+ os=-mingw64
+ ;;
+ mingw32)
+ basic_machine=i686-pc
+ os=-mingw32
+ ;;
+ mingw32ce)
+ basic_machine=arm-unknown
+ os=-mingw32ce
+ ;;
+ miniframe)
+ basic_machine=m68000-convergent
+ ;;
+ *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*)
+ basic_machine=m68k-atari
+ os=-mint
+ ;;
+ mips3*-*)
+ basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`
+ ;;
+ mips3*)
+ basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown
+ ;;
+ monitor)
+ basic_machine=m68k-rom68k
+ os=-coff
+ ;;
+ morphos)
+ basic_machine=powerpc-unknown
+ os=-morphos
+ ;;
+ moxiebox)
+ basic_machine=moxie-unknown
+ os=-moxiebox
+ ;;
+ msdos)
+ basic_machine=i386-pc
+ os=-msdos
+ ;;
+ ms1-*)
+ basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'`
+ ;;
+ msys)
+ basic_machine=i686-pc
+ os=-msys
+ ;;
+ mvs)
+ basic_machine=i370-ibm
+ os=-mvs
+ ;;
+ nacl)
+ basic_machine=le32-unknown
+ os=-nacl
+ ;;
+ ncr3000)
+ basic_machine=i486-ncr
+ os=-sysv4
+ ;;
+ netbsd386)
+ basic_machine=i386-unknown
+ os=-netbsd
+ ;;
+ netwinder)
+ basic_machine=armv4l-rebel
+ os=-linux
+ ;;
+ news | news700 | news800 | news900)
+ basic_machine=m68k-sony
+ os=-newsos
+ ;;
+ news1000)
+ basic_machine=m68030-sony
+ os=-newsos
+ ;;
+ news-3600 | risc-news)
+ basic_machine=mips-sony
+ os=-newsos
+ ;;
+ necv70)
+ basic_machine=v70-nec
+ os=-sysv
+ ;;
+ next | m*-next )
+ basic_machine=m68k-next
+ case $os in
+ -nextstep* )
+ ;;
+ -ns2*)
+ os=-nextstep2
+ ;;
+ *)
+ os=-nextstep3
+ ;;
+ esac
+ ;;
+ nh3000)
+ basic_machine=m68k-harris
+ os=-cxux
+ ;;
+ nh[45]000)
+ basic_machine=m88k-harris
+ os=-cxux
+ ;;
+ nindy960)
+ basic_machine=i960-intel
+ os=-nindy
+ ;;
+ mon960)
+ basic_machine=i960-intel
+ os=-mon960
+ ;;
+ nonstopux)
+ basic_machine=mips-compaq
+ os=-nonstopux
+ ;;
+ np1)
+ basic_machine=np1-gould
+ ;;
+ neo-tandem)
+ basic_machine=neo-tandem
+ ;;
+ nse-tandem)
+ basic_machine=nse-tandem
+ ;;
+ nsr-tandem)
+ basic_machine=nsr-tandem
+ ;;
+ op50n-* | op60c-*)
+ basic_machine=hppa1.1-oki
+ os=-proelf
+ ;;
+ openrisc | openrisc-*)
+ basic_machine=or32-unknown
+ ;;
+ os400)
+ basic_machine=powerpc-ibm
+ os=-os400
+ ;;
+ OSE68000 | ose68000)
+ basic_machine=m68000-ericsson
+ os=-ose
+ ;;
+ os68k)
+ basic_machine=m68k-none
+ os=-os68k
+ ;;
+ pa-hitachi)
+ basic_machine=hppa1.1-hitachi
+ os=-hiuxwe2
+ ;;
+ paragon)
+ basic_machine=i860-intel
+ os=-osf
+ ;;
+ parisc)
+ basic_machine=hppa-unknown
+ os=-linux
+ ;;
+ parisc-*)
+ basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'`
+ os=-linux
+ ;;
+ pbd)
+ basic_machine=sparc-tti
+ ;;
+ pbb)
+ basic_machine=m68k-tti
+ ;;
+ pc532 | pc532-*)
+ basic_machine=ns32k-pc532
+ ;;
+ pc98)
+ basic_machine=i386-pc
+ ;;
+ pc98-*)
+ basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ pentium | p5 | k5 | k6 | nexgen | viac3)
+ basic_machine=i586-pc
+ ;;
+ pentiumpro | p6 | 6x86 | athlon | athlon_*)
+ basic_machine=i686-pc
+ ;;
+ pentiumii | pentium2 | pentiumiii | pentium3)
+ basic_machine=i686-pc
+ ;;
+ pentium4)
+ basic_machine=i786-pc
+ ;;
+ pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
+ basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ pentiumpro-* | p6-* | 6x86-* | athlon-*)
+ basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
+ basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ pentium4-*)
+ basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ pn)
+ basic_machine=pn-gould
+ ;;
+ power) basic_machine=power-ibm
+ ;;
+ ppc | ppcbe) basic_machine=powerpc-unknown
+ ;;
+ ppc-* | ppcbe-*)
+ basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ ppcle | powerpclittle | ppc-le | powerpc-little)
+ basic_machine=powerpcle-unknown
+ ;;
+ ppcle-* | powerpclittle-*)
+ basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ ppc64) basic_machine=powerpc64-unknown
+ ;;
+ ppc64-* | ppc64p7-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ ppc64le | powerpc64little | ppc64-le | powerpc64-little)
+ basic_machine=powerpc64le-unknown
+ ;;
+ ppc64le-* | powerpc64little-*)
+ basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ ps2)
+ basic_machine=i386-ibm
+ ;;
+ pw32)
+ basic_machine=i586-unknown
+ os=-pw32
+ ;;
+ rdos | rdos64)
+ basic_machine=x86_64-pc
+ os=-rdos
+ ;;
+ rdos32)
+ basic_machine=i386-pc
+ os=-rdos
+ ;;
+ rom68k)
+ basic_machine=m68k-rom68k
+ os=-coff
+ ;;
+ rm[46]00)
+ basic_machine=mips-siemens
+ ;;
+ rtpc | rtpc-*)
+ basic_machine=romp-ibm
+ ;;
+ s390 | s390-*)
+ basic_machine=s390-ibm
+ ;;
+ s390x | s390x-*)
+ basic_machine=s390x-ibm
+ ;;
+ sa29200)
+ basic_machine=a29k-amd
+ os=-udi
+ ;;
+ sb1)
+ basic_machine=mipsisa64sb1-unknown
+ ;;
+ sb1el)
+ basic_machine=mipsisa64sb1el-unknown
+ ;;
+ sde)
+ basic_machine=mipsisa32-sde
+ os=-elf
+ ;;
+ sei)
+ basic_machine=mips-sei
+ os=-seiux
+ ;;
+ sequent)
+ basic_machine=i386-sequent
+ ;;
+ sh)
+ basic_machine=sh-hitachi
+ os=-hms
+ ;;
+ sh5el)
+ basic_machine=sh5le-unknown
+ ;;
+ sh64)
+ basic_machine=sh64-unknown
+ ;;
+ sparclite-wrs | simso-wrs)
+ basic_machine=sparclite-wrs
+ os=-vxworks
+ ;;
+ sps7)
+ basic_machine=m68k-bull
+ os=-sysv2
+ ;;
+ spur)
+ basic_machine=spur-unknown
+ ;;
+ st2000)
+ basic_machine=m68k-tandem
+ ;;
+ stratus)
+ basic_machine=i860-stratus
+ os=-sysv4
+ ;;
+ strongarm-* | thumb-*)
+ basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ sun2)
+ basic_machine=m68000-sun
+ ;;
+ sun2os3)
+ basic_machine=m68000-sun
+ os=-sunos3
+ ;;
+ sun2os4)
+ basic_machine=m68000-sun
+ os=-sunos4
+ ;;
+ sun3os3)
+ basic_machine=m68k-sun
+ os=-sunos3
+ ;;
+ sun3os4)
+ basic_machine=m68k-sun
+ os=-sunos4
+ ;;
+ sun4os3)
+ basic_machine=sparc-sun
+ os=-sunos3
+ ;;
+ sun4os4)
+ basic_machine=sparc-sun
+ os=-sunos4
+ ;;
+ sun4sol2)
+ basic_machine=sparc-sun
+ os=-solaris2
+ ;;
+ sun3 | sun3-*)
+ basic_machine=m68k-sun
+ ;;
+ sun4)
+ basic_machine=sparc-sun
+ ;;
+ sun386 | sun386i | roadrunner)
+ basic_machine=i386-sun
+ ;;
+ sv1)
+ basic_machine=sv1-cray
+ os=-unicos
+ ;;
+ symmetry)
+ basic_machine=i386-sequent
+ os=-dynix
+ ;;
+ t3e)
+ basic_machine=alphaev5-cray
+ os=-unicos
+ ;;
+ t90)
+ basic_machine=t90-cray
+ os=-unicos
+ ;;
+ tile*)
+ basic_machine=$basic_machine-unknown
+ os=-linux-gnu
+ ;;
+ tx39)
+ basic_machine=mipstx39-unknown
+ ;;
+ tx39el)
+ basic_machine=mipstx39el-unknown
+ ;;
+ toad1)
+ basic_machine=pdp10-xkl
+ os=-tops20
+ ;;
+ tower | tower-32)
+ basic_machine=m68k-ncr
+ ;;
+ tpf)
+ basic_machine=s390x-ibm
+ os=-tpf
+ ;;
+ udi29k)
+ basic_machine=a29k-amd
+ os=-udi
+ ;;
+ ultra3)
+ basic_machine=a29k-nyu
+ os=-sym1
+ ;;
+ v810 | necv810)
+ basic_machine=v810-nec
+ os=-none
+ ;;
+ vaxv)
+ basic_machine=vax-dec
+ os=-sysv
+ ;;
+ vms)
+ basic_machine=vax-dec
+ os=-vms
+ ;;
+ vpp*|vx|vx-*)
+ basic_machine=f301-fujitsu
+ ;;
+ vxworks960)
+ basic_machine=i960-wrs
+ os=-vxworks
+ ;;
+ vxworks68)
+ basic_machine=m68k-wrs
+ os=-vxworks
+ ;;
+ vxworks29k)
+ basic_machine=a29k-wrs
+ os=-vxworks
+ ;;
+ w65*)
+ basic_machine=w65-wdc
+ os=-none
+ ;;
+ w89k-*)
+ basic_machine=hppa1.1-winbond
+ os=-proelf
+ ;;
+ xbox)
+ basic_machine=i686-pc
+ os=-mingw32
+ ;;
+ xps | xps100)
+ basic_machine=xps100-honeywell
+ ;;
+ xscale-* | xscalee[bl]-*)
+ basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'`
+ ;;
+ ymp)
+ basic_machine=ymp-cray
+ os=-unicos
+ ;;
+ z8k-*-coff)
+ basic_machine=z8k-unknown
+ os=-sim
+ ;;
+ z80-*-coff)
+ basic_machine=z80-unknown
+ os=-sim
+ ;;
+ none)
+ basic_machine=none-none
+ os=-none
+ ;;
+
+# Here we handle the default manufacturer of certain CPU types. It is in
+# some cases the only manufacturer, in others, it is the most popular.
+ w89k)
+ basic_machine=hppa1.1-winbond
+ ;;
+ op50n)
+ basic_machine=hppa1.1-oki
+ ;;
+ op60c)
+ basic_machine=hppa1.1-oki
+ ;;
+ romp)
+ basic_machine=romp-ibm
+ ;;
+ mmix)
+ basic_machine=mmix-knuth
+ ;;
+ rs6000)
+ basic_machine=rs6000-ibm
+ ;;
+ vax)
+ basic_machine=vax-dec
+ ;;
+ pdp10)
+ # there are many clones, so DEC is not a safe bet
+ basic_machine=pdp10-unknown
+ ;;
+ pdp11)
+ basic_machine=pdp11-dec
+ ;;
+ we32k)
+ basic_machine=we32k-att
+ ;;
+ sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele)
+ basic_machine=sh-unknown
+ ;;
+ sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v)
+ basic_machine=sparc-sun
+ ;;
+ cydra)
+ basic_machine=cydra-cydrome
+ ;;
+ orion)
+ basic_machine=orion-highlevel
+ ;;
+ orion105)
+ basic_machine=clipper-highlevel
+ ;;
+ mac | mpw | mac-mpw)
+ basic_machine=m68k-apple
+ ;;
+ pmac | pmac-mpw)
+ basic_machine=powerpc-apple
+ ;;
+ *-unknown)
+ # Make sure to match an already-canonicalized machine name.
+ ;;
+ *)
+ echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
+ exit 1
+ ;;
+esac
+
+# Here we canonicalize certain aliases for manufacturers.
+case $basic_machine in
+ *-digital*)
+ basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'`
+ ;;
+ *-commodore*)
+ basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'`
+ ;;
+ *)
+ ;;
+esac
+
+# Decode manufacturer-specific aliases for certain operating systems.
+
+if [ x"$os" != x"" ]
+then
+case $os in
+ # First match some system type aliases
+ # that might get confused with valid system types.
+ # -solaris* is a basic system type, with this one exception.
+ -auroraux)
+ os=-auroraux
+ ;;
+ -solaris1 | -solaris1.*)
+ os=`echo $os | sed -e 's|solaris1|sunos4|'`
+ ;;
+ -solaris)
+ os=-solaris2
+ ;;
+ -svr4*)
+ os=-sysv4
+ ;;
+ -unixware*)
+ os=-sysv4.2uw
+ ;;
+ -gnu/linux*)
+ os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
+ ;;
+ # First accept the basic system types.
+ # The portable systems comes first.
+ # Each alternative MUST END IN A *, to match a version number.
+ # -sysv* is not here because it comes later, after sysvr4.
+ -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
+ | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\
+ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \
+ | -sym* | -kopensolaris* | -plan9* \
+ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
+ | -aos* | -aros* \
+ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
+ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
+ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
+ | -bitrig* | -openbsd* | -solidbsd* \
+ | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \
+ | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
+ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
+ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
+ | -chorusos* | -chorusrdb* | -cegcc* \
+ | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
+ | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \
+ | -linux-newlib* | -linux-musl* | -linux-uclibc* \
+ | -uxpv* | -beos* | -mpeix* | -udk* | -moxiebox* \
+ | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
+ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
+ | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
+ | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
+ | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
+ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
+ | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* | -tirtos*)
+ # Remember, each alternative MUST END IN *, to match a version number.
+ ;;
+ -qnx*)
+ case $basic_machine in
+ x86-* | i*86-*)
+ ;;
+ *)
+ os=-nto$os
+ ;;
+ esac
+ ;;
+ -nto-qnx*)
+ ;;
+ -nto*)
+ os=`echo $os | sed -e 's|nto|nto-qnx|'`
+ ;;
+ -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \
+ | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \
+ | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)
+ ;;
+ -mac*)
+ os=`echo $os | sed -e 's|mac|macos|'`
+ ;;
+ -linux-dietlibc)
+ os=-linux-dietlibc
+ ;;
+ -linux*)
+ os=`echo $os | sed -e 's|linux|linux-gnu|'`
+ ;;
+ -sunos5*)
+ os=`echo $os | sed -e 's|sunos5|solaris2|'`
+ ;;
+ -sunos6*)
+ os=`echo $os | sed -e 's|sunos6|solaris3|'`
+ ;;
+ -opened*)
+ os=-openedition
+ ;;
+ -os400*)
+ os=-os400
+ ;;
+ -wince*)
+ os=-wince
+ ;;
+ -osfrose*)
+ os=-osfrose
+ ;;
+ -osf*)
+ os=-osf
+ ;;
+ -utek*)
+ os=-bsd
+ ;;
+ -dynix*)
+ os=-bsd
+ ;;
+ -acis*)
+ os=-aos
+ ;;
+ -atheos*)
+ os=-atheos
+ ;;
+ -syllable*)
+ os=-syllable
+ ;;
+ -386bsd)
+ os=-bsd
+ ;;
+ -ctix* | -uts*)
+ os=-sysv
+ ;;
+ -nova*)
+ os=-rtmk-nova
+ ;;
+ -ns2 )
+ os=-nextstep2
+ ;;
+ -nsk*)
+ os=-nsk
+ ;;
+ # Preserve the version number of sinix5.
+ -sinix5.*)
+ os=`echo $os | sed -e 's|sinix|sysv|'`
+ ;;
+ -sinix*)
+ os=-sysv4
+ ;;
+ -tpf*)
+ os=-tpf
+ ;;
+ -triton*)
+ os=-sysv3
+ ;;
+ -oss*)
+ os=-sysv3
+ ;;
+ -svr4)
+ os=-sysv4
+ ;;
+ -svr3)
+ os=-sysv3
+ ;;
+ -sysvr4)
+ os=-sysv4
+ ;;
+ # This must come after -sysvr4.
+ -sysv*)
+ ;;
+ -ose*)
+ os=-ose
+ ;;
+ -es1800*)
+ os=-ose
+ ;;
+ -xenix)
+ os=-xenix
+ ;;
+ -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
+ os=-mint
+ ;;
+ -aros*)
+ os=-aros
+ ;;
+ -zvmoe)
+ os=-zvmoe
+ ;;
+ -dicos*)
+ os=-dicos
+ ;;
+ -nacl*)
+ ;;
+ -none)
+ ;;
+ *)
+ # Get rid of the `-' at the beginning of $os.
+ os=`echo $os | sed 's/[^-]*-//'`
+ echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2
+ exit 1
+ ;;
+esac
+else
+
+# Here we handle the default operating systems that come with various machines.
+# The value should be what the vendor currently ships out the door with their
+# machine or put another way, the most popular os provided with the machine.
+
+# Note that if you're going to try to match "-MANUFACTURER" here (say,
+# "-sun"), then you have to tell the case statement up towards the top
+# that MANUFACTURER isn't an operating system. Otherwise, code above
+# will signal an error saying that MANUFACTURER isn't an operating
+# system, and we'll never get to this point.
+
+case $basic_machine in
+ score-*)
+ os=-elf
+ ;;
+ spu-*)
+ os=-elf
+ ;;
+ *-acorn)
+ os=-riscix1.2
+ ;;
+ arm*-rebel)
+ os=-linux
+ ;;
+ arm*-semi)
+ os=-aout
+ ;;
+ c4x-* | tic4x-*)
+ os=-coff
+ ;;
+ c8051-*)
+ os=-elf
+ ;;
+ hexagon-*)
+ os=-elf
+ ;;
+ tic54x-*)
+ os=-coff
+ ;;
+ tic55x-*)
+ os=-coff
+ ;;
+ tic6x-*)
+ os=-coff
+ ;;
+ # This must come before the *-dec entry.
+ pdp10-*)
+ os=-tops20
+ ;;
+ pdp11-*)
+ os=-none
+ ;;
+ *-dec | vax-*)
+ os=-ultrix4.2
+ ;;
+ m68*-apollo)
+ os=-domain
+ ;;
+ i386-sun)
+ os=-sunos4.0.2
+ ;;
+ m68000-sun)
+ os=-sunos3
+ ;;
+ m68*-cisco)
+ os=-aout
+ ;;
+ mep-*)
+ os=-elf
+ ;;
+ mips*-cisco)
+ os=-elf
+ ;;
+ mips*-*)
+ os=-elf
+ ;;
+ or32-*)
+ os=-coff
+ ;;
+ *-tti) # must be before sparc entry or we get the wrong os.
+ os=-sysv3
+ ;;
+ sparc-* | *-sun)
+ os=-sunos4.1.1
+ ;;
+ *-be)
+ os=-beos
+ ;;
+ *-haiku)
+ os=-haiku
+ ;;
+ *-ibm)
+ os=-aix
+ ;;
+ *-knuth)
+ os=-mmixware
+ ;;
+ *-wec)
+ os=-proelf
+ ;;
+ *-winbond)
+ os=-proelf
+ ;;
+ *-oki)
+ os=-proelf
+ ;;
+ *-hp)
+ os=-hpux
+ ;;
+ *-hitachi)
+ os=-hiux
+ ;;
+ i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
+ os=-sysv
+ ;;
+ *-cbm)
+ os=-amigaos
+ ;;
+ *-dg)
+ os=-dgux
+ ;;
+ *-dolphin)
+ os=-sysv3
+ ;;
+ m68k-ccur)
+ os=-rtu
+ ;;
+ m88k-omron*)
+ os=-luna
+ ;;
+ *-next )
+ os=-nextstep
+ ;;
+ *-sequent)
+ os=-ptx
+ ;;
+ *-crds)
+ os=-unos
+ ;;
+ *-ns)
+ os=-genix
+ ;;
+ i370-*)
+ os=-mvs
+ ;;
+ *-next)
+ os=-nextstep3
+ ;;
+ *-gould)
+ os=-sysv
+ ;;
+ *-highlevel)
+ os=-bsd
+ ;;
+ *-encore)
+ os=-bsd
+ ;;
+ *-sgi)
+ os=-irix
+ ;;
+ *-siemens)
+ os=-sysv4
+ ;;
+ *-masscomp)
+ os=-rtu
+ ;;
+ f30[01]-fujitsu | f700-fujitsu)
+ os=-uxpv
+ ;;
+ *-rom68k)
+ os=-coff
+ ;;
+ *-*bug)
+ os=-coff
+ ;;
+ *-apple)
+ os=-macos
+ ;;
+ *-atari*)
+ os=-mint
+ ;;
+ *)
+ os=-none
+ ;;
+esac
+fi
+
+# Here we handle the case where we know the os, and the CPU type, but not the
+# manufacturer. We pick the logical manufacturer.
+vendor=unknown
+case $basic_machine in
+ *-unknown)
+ case $os in
+ -riscix*)
+ vendor=acorn
+ ;;
+ -sunos*)
+ vendor=sun
+ ;;
+ -cnk*|-aix*)
+ vendor=ibm
+ ;;
+ -beos*)
+ vendor=be
+ ;;
+ -hpux*)
+ vendor=hp
+ ;;
+ -mpeix*)
+ vendor=hp
+ ;;
+ -hiux*)
+ vendor=hitachi
+ ;;
+ -unos*)
+ vendor=crds
+ ;;
+ -dgux*)
+ vendor=dg
+ ;;
+ -luna*)
+ vendor=omron
+ ;;
+ -genix*)
+ vendor=ns
+ ;;
+ -mvs* | -opened*)
+ vendor=ibm
+ ;;
+ -os400*)
+ vendor=ibm
+ ;;
+ -ptx*)
+ vendor=sequent
+ ;;
+ -tpf*)
+ vendor=ibm
+ ;;
+ -vxsim* | -vxworks* | -windiss*)
+ vendor=wrs
+ ;;
+ -aux*)
+ vendor=apple
+ ;;
+ -hms*)
+ vendor=hitachi
+ ;;
+ -mpw* | -macos*)
+ vendor=apple
+ ;;
+ -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
+ vendor=atari
+ ;;
+ -vos*)
+ vendor=stratus
+ ;;
+ esac
+ basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"`
+ ;;
+esac
+
+echo $basic_machine$os
+exit
+
+# Local variables:
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "timestamp='"
+# time-stamp-format: "%:y-%02m-%02d"
+# time-stamp-end: "'"
+# End:
--- /dev/null
+#! /bin/sh
+# Guess values for system-dependent variables and create Makefiles.
+# Generated by GNU Autoconf 2.69 for babl 0.1.18.
+#
+#
+# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
+#
+#
+# This configure script is free software; the Free Software Foundation
+# gives unlimited permission to copy, distribute and modify it.
+## -------------------- ##
+## M4sh Initialization. ##
+## -------------------- ##
+
+# Be more Bourne compatible
+DUALCASE=1; export DUALCASE # for MKS sh
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
+ emulate sh
+ NULLCMD=:
+ # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
+ # is contrary to our usage. Disable this feature.
+ alias -g '${1+"$@"}'='"$@"'
+ setopt NO_GLOB_SUBST
+else
+ case `(set -o) 2>/dev/null` in #(
+ *posix*) :
+ set -o posix ;; #(
+ *) :
+ ;;
+esac
+fi
+
+
+as_nl='
+'
+export as_nl
+# Printing a long string crashes Solaris 7 /usr/bin/printf.
+as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
+# Prefer a ksh shell builtin over an external printf program on Solaris,
+# but without wasting forks for bash or zsh.
+if test -z "$BASH_VERSION$ZSH_VERSION" \
+ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
+ as_echo='print -r --'
+ as_echo_n='print -rn --'
+elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
+ as_echo='printf %s\n'
+ as_echo_n='printf %s'
+else
+ if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
+ as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
+ as_echo_n='/usr/ucb/echo -n'
+ else
+ as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
+ as_echo_n_body='eval
+ arg=$1;
+ case $arg in #(
+ *"$as_nl"*)
+ expr "X$arg" : "X\\(.*\\)$as_nl";
+ arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
+ esac;
+ expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
+ '
+ export as_echo_n_body
+ as_echo_n='sh -c $as_echo_n_body as_echo'
+ fi
+ export as_echo_body
+ as_echo='sh -c $as_echo_body as_echo'
+fi
+
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+ PATH_SEPARATOR=:
+ (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
+ (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
+ PATH_SEPARATOR=';'
+ }
+fi
+
+
+# IFS
+# We need space, tab and new line, in precisely that order. Quoting is
+# there to prevent editors from complaining about space-tab.
+# (If _AS_PATH_WALK were called with IFS unset, it would disable word
+# splitting by setting IFS to empty value.)
+IFS=" "" $as_nl"
+
+# Find who we are. Look in the path if we contain no directory separator.
+as_myself=
+case $0 in #((
+ *[\\/]* ) as_myself=$0 ;;
+ *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+# We did not find ourselves, most probably we were run as `sh COMMAND'
+# in which case we are not to be found in the path.
+if test "x$as_myself" = x; then
+ as_myself=$0
+fi
+if test ! -f "$as_myself"; then
+ $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
+ exit 1
+fi
+
+# Unset variables that we do not need and which cause bugs (e.g. in
+# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1"
+# suppresses any "Segmentation fault" message there. '((' could
+# trigger a bug in pdksh 5.2.14.
+for as_var in BASH_ENV ENV MAIL MAILPATH
+do eval test x\${$as_var+set} = xset \
+ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
+done
+PS1='$ '
+PS2='> '
+PS4='+ '
+
+# NLS nuisances.
+LC_ALL=C
+export LC_ALL
+LANGUAGE=C
+export LANGUAGE
+
+# CDPATH.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+# Use a proper internal environment variable to ensure we don't fall
+ # into an infinite loop, continuously re-executing ourselves.
+ if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then
+ _as_can_reexec=no; export _as_can_reexec;
+ # We cannot yet assume a decent shell, so we have to provide a
+# neutralization value for shells without unset; and this also
+# works around shells that cannot unset nonexistent variables.
+# Preserve -v and -x to the replacement shell.
+BASH_ENV=/dev/null
+ENV=/dev/null
+(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
+case $- in # ((((
+ *v*x* | *x*v* ) as_opts=-vx ;;
+ *v* ) as_opts=-v ;;
+ *x* ) as_opts=-x ;;
+ * ) as_opts= ;;
+esac
+exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
+# Admittedly, this is quite paranoid, since all the known shells bail
+# out after a failed `exec'.
+$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
+as_fn_exit 255
+ fi
+ # We don't want this to propagate to other subprocesses.
+ { _as_can_reexec=; unset _as_can_reexec;}
+if test "x$CONFIG_SHELL" = x; then
+ as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then :
+ emulate sh
+ NULLCMD=:
+ # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which
+ # is contrary to our usage. Disable this feature.
+ alias -g '\${1+\"\$@\"}'='\"\$@\"'
+ setopt NO_GLOB_SUBST
+else
+ case \`(set -o) 2>/dev/null\` in #(
+ *posix*) :
+ set -o posix ;; #(
+ *) :
+ ;;
+esac
+fi
+"
+ as_required="as_fn_return () { (exit \$1); }
+as_fn_success () { as_fn_return 0; }
+as_fn_failure () { as_fn_return 1; }
+as_fn_ret_success () { return 0; }
+as_fn_ret_failure () { return 1; }
+
+exitcode=0
+as_fn_success || { exitcode=1; echo as_fn_success failed.; }
+as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; }
+as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; }
+as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; }
+if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then :
+
+else
+ exitcode=1; echo positional parameters were not saved.
+fi
+test x\$exitcode = x0 || exit 1
+test -x / || exit 1"
+ as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO
+ as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO
+ eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" &&
+ test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1
+
+ test -n \"\${ZSH_VERSION+set}\${BASH_VERSION+set}\" || (
+ ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+ ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO
+ ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO
+ PATH=/empty FPATH=/empty; export PATH FPATH
+ test \"X\`printf %s \$ECHO\`\" = \"X\$ECHO\" \\
+ || test \"X\`print -r -- \$ECHO\`\" = \"X\$ECHO\" ) || exit 1
+test \$(( 1 + 1 )) = 2 || exit 1"
+ if (eval "$as_required") 2>/dev/null; then :
+ as_have_required=yes
+else
+ as_have_required=no
+fi
+ if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then :
+
+else
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+as_found=false
+for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ as_found=:
+ case $as_dir in #(
+ /*)
+ for as_base in sh bash ksh sh5; do
+ # Try only shells that exist, to save several forks.
+ as_shell=$as_dir/$as_base
+ if { test -f "$as_shell" || test -f "$as_shell.exe"; } &&
+ { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then :
+ CONFIG_SHELL=$as_shell as_have_required=yes
+ if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then :
+ break 2
+fi
+fi
+ done;;
+ esac
+ as_found=false
+done
+$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } &&
+ { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then :
+ CONFIG_SHELL=$SHELL as_have_required=yes
+fi; }
+IFS=$as_save_IFS
+
+
+ if test "x$CONFIG_SHELL" != x; then :
+ export CONFIG_SHELL
+ # We cannot yet assume a decent shell, so we have to provide a
+# neutralization value for shells without unset; and this also
+# works around shells that cannot unset nonexistent variables.
+# Preserve -v and -x to the replacement shell.
+BASH_ENV=/dev/null
+ENV=/dev/null
+(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
+case $- in # ((((
+ *v*x* | *x*v* ) as_opts=-vx ;;
+ *v* ) as_opts=-v ;;
+ *x* ) as_opts=-x ;;
+ * ) as_opts= ;;
+esac
+exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
+# Admittedly, this is quite paranoid, since all the known shells bail
+# out after a failed `exec'.
+$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
+exit 255
+fi
+
+ if test x$as_have_required = xno; then :
+ $as_echo "$0: This script requires a shell more modern than all"
+ $as_echo "$0: the shells that I found on your system."
+ if test x${ZSH_VERSION+set} = xset ; then
+ $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should"
+ $as_echo "$0: be upgraded to zsh 4.3.4 or later."
+ else
+ $as_echo "$0: Please tell bug-autoconf@gnu.org about your system,
+$0: including any error possibly output before this
+$0: message. Then install a modern shell, or manually run
+$0: the script under such a shell if you do have one."
+ fi
+ exit 1
+fi
+fi
+fi
+SHELL=${CONFIG_SHELL-/bin/sh}
+export SHELL
+# Unset more variables known to interfere with behavior of common tools.
+CLICOLOR_FORCE= GREP_OPTIONS=
+unset CLICOLOR_FORCE GREP_OPTIONS
+
+## --------------------- ##
+## M4sh Shell Functions. ##
+## --------------------- ##
+# as_fn_unset VAR
+# ---------------
+# Portably unset VAR.
+as_fn_unset ()
+{
+ { eval $1=; unset $1;}
+}
+as_unset=as_fn_unset
+
+# as_fn_set_status STATUS
+# -----------------------
+# Set $? to STATUS, without forking.
+as_fn_set_status ()
+{
+ return $1
+} # as_fn_set_status
+
+# as_fn_exit STATUS
+# -----------------
+# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
+as_fn_exit ()
+{
+ set +e
+ as_fn_set_status $1
+ exit $1
+} # as_fn_exit
+
+# as_fn_mkdir_p
+# -------------
+# Create "$as_dir" as a directory, including parents if necessary.
+as_fn_mkdir_p ()
+{
+
+ case $as_dir in #(
+ -*) as_dir=./$as_dir;;
+ esac
+ test -d "$as_dir" || eval $as_mkdir_p || {
+ as_dirs=
+ while :; do
+ case $as_dir in #(
+ *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
+ *) as_qdir=$as_dir;;
+ esac
+ as_dirs="'$as_qdir' $as_dirs"
+ as_dir=`$as_dirname -- "$as_dir" ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$as_dir" : 'X\(//\)[^/]' \| \
+ X"$as_dir" : 'X\(//\)$' \| \
+ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$as_dir" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ test -d "$as_dir" && break
+ done
+ test -z "$as_dirs" || eval "mkdir $as_dirs"
+ } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
+
+
+} # as_fn_mkdir_p
+
+# as_fn_executable_p FILE
+# -----------------------
+# Test if FILE is an executable regular file.
+as_fn_executable_p ()
+{
+ test -f "$1" && test -x "$1"
+} # as_fn_executable_p
+# as_fn_append VAR VALUE
+# ----------------------
+# Append the text in VALUE to the end of the definition contained in VAR. Take
+# advantage of any shell optimizations that allow amortized linear growth over
+# repeated appends, instead of the typical quadratic growth present in naive
+# implementations.
+if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
+ eval 'as_fn_append ()
+ {
+ eval $1+=\$2
+ }'
+else
+ as_fn_append ()
+ {
+ eval $1=\$$1\$2
+ }
+fi # as_fn_append
+
+# as_fn_arith ARG...
+# ------------------
+# Perform arithmetic evaluation on the ARGs, and store the result in the
+# global $as_val. Take advantage of shells that can avoid forks. The arguments
+# must be portable across $(()) and expr.
+if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
+ eval 'as_fn_arith ()
+ {
+ as_val=$(( $* ))
+ }'
+else
+ as_fn_arith ()
+ {
+ as_val=`expr "$@" || test $? -eq 1`
+ }
+fi # as_fn_arith
+
+
+# as_fn_error STATUS ERROR [LINENO LOG_FD]
+# ----------------------------------------
+# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
+# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
+# script with STATUS, using 1 if that was 0.
+as_fn_error ()
+{
+ as_status=$1; test $as_status -eq 0 && as_status=1
+ if test "$4"; then
+ as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
+ fi
+ $as_echo "$as_me: error: $2" >&2
+ as_fn_exit $as_status
+} # as_fn_error
+
+if expr a : '\(a\)' >/dev/null 2>&1 &&
+ test "X`expr 00001 : '.*\(...\)'`" = X001; then
+ as_expr=expr
+else
+ as_expr=false
+fi
+
+if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
+ as_basename=basename
+else
+ as_basename=false
+fi
+
+if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
+ as_dirname=dirname
+else
+ as_dirname=false
+fi
+
+as_me=`$as_basename -- "$0" ||
+$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
+ X"$0" : 'X\(//\)$' \| \
+ X"$0" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X/"$0" |
+ sed '/^.*\/\([^/][^/]*\)\/*$/{
+ s//\1/
+ q
+ }
+ /^X\/\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\/\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+
+# Avoid depending upon Character Ranges.
+as_cr_letters='abcdefghijklmnopqrstuvwxyz'
+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+as_cr_Letters=$as_cr_letters$as_cr_LETTERS
+as_cr_digits='0123456789'
+as_cr_alnum=$as_cr_Letters$as_cr_digits
+
+
+ as_lineno_1=$LINENO as_lineno_1a=$LINENO
+ as_lineno_2=$LINENO as_lineno_2a=$LINENO
+ eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" &&
+ test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || {
+ # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-)
+ sed -n '
+ p
+ /[$]LINENO/=
+ ' <$as_myself |
+ sed '
+ s/[$]LINENO.*/&-/
+ t lineno
+ b
+ :lineno
+ N
+ :loop
+ s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
+ t loop
+ s/-\n.*//
+ ' >$as_me.lineno &&
+ chmod +x "$as_me.lineno" ||
+ { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }
+
+ # If we had to re-execute with $CONFIG_SHELL, we're ensured to have
+ # already done that, so ensure we don't try to do so again and fall
+ # in an infinite loop. This has already happened in practice.
+ _as_can_reexec=no; export _as_can_reexec
+ # Don't try to exec as it changes $[0], causing all sort of problems
+ # (the dirname of $[0] is not the place where we might find the
+ # original and so on. Autoconf is especially sensitive to this).
+ . "./$as_me.lineno"
+ # Exit status is that of the last command.
+ exit
+}
+
+ECHO_C= ECHO_N= ECHO_T=
+case `echo -n x` in #(((((
+-n*)
+ case `echo 'xy\c'` in
+ *c*) ECHO_T=' ';; # ECHO_T is single tab character.
+ xy) ECHO_C='\c';;
+ *) echo `echo ksh88 bug on AIX 6.1` > /dev/null
+ ECHO_T=' ';;
+ esac;;
+*)
+ ECHO_N='-n';;
+esac
+
+rm -f conf$$ conf$$.exe conf$$.file
+if test -d conf$$.dir; then
+ rm -f conf$$.dir/conf$$.file
+else
+ rm -f conf$$.dir
+ mkdir conf$$.dir 2>/dev/null
+fi
+if (echo >conf$$.file) 2>/dev/null; then
+ if ln -s conf$$.file conf$$ 2>/dev/null; then
+ as_ln_s='ln -s'
+ # ... but there are two gotchas:
+ # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
+ # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
+ # In both cases, we have to default to `cp -pR'.
+ ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
+ as_ln_s='cp -pR'
+ elif ln conf$$.file conf$$ 2>/dev/null; then
+ as_ln_s=ln
+ else
+ as_ln_s='cp -pR'
+ fi
+else
+ as_ln_s='cp -pR'
+fi
+rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
+rmdir conf$$.dir 2>/dev/null
+
+if mkdir -p . 2>/dev/null; then
+ as_mkdir_p='mkdir -p "$as_dir"'
+else
+ test -d ./-p && rmdir ./-p
+ as_mkdir_p=false
+fi
+
+as_test_x='test -x'
+as_executable_p=as_fn_executable_p
+
+# Sed expression to map a string onto a valid CPP name.
+as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
+
+# Sed expression to map a string onto a valid variable name.
+as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
+
+SHELL=${CONFIG_SHELL-/bin/sh}
+
+
+test -n "$DJDIR" || exec 7<&0 </dev/null
+exec 6>&1
+
+# Name of the host.
+# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status,
+# so uname gets run too.
+ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
+
+#
+# Initializations.
+#
+ac_default_prefix=/usr/local
+ac_clean_files=
+ac_config_libobj_dir=.
+LIBOBJS=
+cross_compiling=no
+subdirs=
+MFLAGS=
+MAKEFLAGS=
+
+# Identity of this package.
+PACKAGE_NAME='babl'
+PACKAGE_TARNAME='babl'
+PACKAGE_VERSION='0.1.18'
+PACKAGE_STRING='babl 0.1.18'
+PACKAGE_BUGREPORT=''
+PACKAGE_URL=''
+
+ac_unique_file="babl/babl.h"
+# Factoring default headers for most tests.
+ac_includes_default="\
+#include <stdio.h>
+#ifdef HAVE_SYS_TYPES_H
+# include <sys/types.h>
+#endif
+#ifdef HAVE_SYS_STAT_H
+# include <sys/stat.h>
+#endif
+#ifdef STDC_HEADERS
+# include <stdlib.h>
+# include <stddef.h>
+#else
+# ifdef HAVE_STDLIB_H
+# include <stdlib.h>
+# endif
+#endif
+#ifdef HAVE_STRING_H
+# if !defined STDC_HEADERS && defined HAVE_MEMORY_H
+# include <memory.h>
+# endif
+# include <string.h>
+#endif
+#ifdef HAVE_STRINGS_H
+# include <strings.h>
+#endif
+#ifdef HAVE_INTTYPES_H
+# include <inttypes.h>
+#endif
+#ifdef HAVE_STDINT_H
+# include <stdint.h>
+#endif
+#ifdef HAVE_UNISTD_H
+# include <unistd.h>
+#endif"
+
+ac_subst_vars='am__EXEEXT_FALSE
+am__EXEEXT_TRUE
+LTLIBOBJS
+LIBOBJS
+HAVE_SRANDOM_FALSE
+HAVE_SRANDOM_TRUE
+ALTIVEC_EXTRA_CFLAGS
+F16C_EXTRA_CFLAGS
+SSE4_1_EXTRA_CFLAGS
+SSE2_EXTRA_CFLAGS
+SSE_EXTRA_CFLAGS
+MMX_EXTRA_CFLAGS
+OS_UNIX_FALSE
+OS_UNIX_TRUE
+OS_WIN32_FALSE
+OS_WIN32_TRUE
+THREAD_LIB
+MATH_LIB
+DIR_SEP
+PATH_SEP
+PLATFORM_WIN32_FALSE
+PLATFORM_WIN32_TRUE
+SHREXT
+ENABLE_DOCS_FALSE
+ENABLE_DOCS_TRUE
+HAVE_W3M_FALSE
+HAVE_W3M_TRUE
+W3M
+HAVE_RSVG_FALSE
+HAVE_RSVG_TRUE
+RSVG
+WEBSITE_LOCATION
+WEBSITE_HOST
+MAINT
+MAINTAINER_MODE_FALSE
+MAINTAINER_MODE_TRUE
+CPP
+LT_SYS_LIBRARY_PATH
+OTOOL64
+OTOOL
+LIPO
+NMEDIT
+DSYMUTIL
+MANIFEST_TOOL
+RANLIB
+ac_ct_AR
+AR
+LN_S
+NM
+ac_ct_DUMPBIN
+DUMPBIN
+LD
+FGREP
+EGREP
+GREP
+SED
+LIBTOOL
+OBJDUMP
+DLLTOOL
+AS
+am__fastdepCC_FALSE
+am__fastdepCC_TRUE
+CCDEPMODE
+am__nodep
+AMDEPBACKSLASH
+AMDEP_FALSE
+AMDEP_TRUE
+am__quote
+am__include
+DEPDIR
+OBJEXT
+EXEEXT
+ac_ct_CC
+CPPFLAGS
+LDFLAGS
+CFLAGS
+CC
+AM_BACKSLASH
+AM_DEFAULT_VERBOSITY
+AM_DEFAULT_V
+AM_V
+am__untar
+am__tar
+AMTAR
+am__leading_dot
+SET_MAKE
+AWK
+mkdir_p
+MKDIR_P
+INSTALL_STRIP_PROGRAM
+STRIP
+install_sh
+MAKEINFO
+AUTOHEADER
+AUTOMAKE
+AUTOCONF
+ACLOCAL
+VERSION
+PACKAGE
+CYGPATH_W
+am__isrc
+INSTALL_DATA
+INSTALL_SCRIPT
+INSTALL_PROGRAM
+target_os
+target_vendor
+target_cpu
+target
+host_os
+host_vendor
+host_cpu
+host
+build_os
+build_vendor
+build_cpu
+build
+BABL_CURRENT_MINUS_AGE
+BABL_LIBRARY_VERSION
+BABL_UNSTABLE
+BABL_UNSTABLE_FALSE
+BABL_UNSTABLE_TRUE
+BABL_RELEASE
+BABL_API_VERSION
+BABL_REAL_VERSION
+BABL_VERSION
+BABL_BINARY_AGE
+BABL_INTERFACE_AGE
+BABL_MICRO_VERSION
+BABL_MINOR_VERSION
+BABL_MAJOR_VERSION
+target_alias
+host_alias
+build_alias
+LIBS
+ECHO_T
+ECHO_N
+ECHO_C
+DEFS
+mandir
+localedir
+libdir
+psdir
+pdfdir
+dvidir
+htmldir
+infodir
+docdir
+oldincludedir
+includedir
+localstatedir
+sharedstatedir
+sysconfdir
+datadir
+datarootdir
+libexecdir
+sbindir
+bindir
+program_transform_name
+prefix
+exec_prefix
+PACKAGE_URL
+PACKAGE_BUGREPORT
+PACKAGE_STRING
+PACKAGE_VERSION
+PACKAGE_TARNAME
+PACKAGE_NAME
+PATH_SEPARATOR
+SHELL'
+ac_subst_files=''
+ac_user_opts='
+enable_option_checking
+enable_silent_rules
+enable_dependency_tracking
+enable_static
+enable_shared
+with_pic
+enable_fast_install
+with_aix_soname
+with_gnu_ld
+with_sysroot
+enable_libtool_lock
+enable_maintainer_mode
+enable_docs
+enable_mmx
+enable_sse
+enable_sse2
+enable_sse4_1
+enable_f16c
+enable_altivec
+'
+ ac_precious_vars='build_alias
+host_alias
+target_alias
+CC
+CFLAGS
+LDFLAGS
+LIBS
+CPPFLAGS
+LT_SYS_LIBRARY_PATH
+CPP'
+
+
+# Initialize some variables set by options.
+ac_init_help=
+ac_init_version=false
+ac_unrecognized_opts=
+ac_unrecognized_sep=
+# The variables have the same names as the options, with
+# dashes changed to underlines.
+cache_file=/dev/null
+exec_prefix=NONE
+no_create=
+no_recursion=
+prefix=NONE
+program_prefix=NONE
+program_suffix=NONE
+program_transform_name=s,x,x,
+silent=
+site=
+srcdir=
+verbose=
+x_includes=NONE
+x_libraries=NONE
+
+# Installation directory options.
+# These are left unexpanded so users can "make install exec_prefix=/foo"
+# and all the variables that are supposed to be based on exec_prefix
+# by default will actually change.
+# Use braces instead of parens because sh, perl, etc. also accept them.
+# (The list follows the same order as the GNU Coding Standards.)
+bindir='${exec_prefix}/bin'
+sbindir='${exec_prefix}/sbin'
+libexecdir='${exec_prefix}/libexec'
+datarootdir='${prefix}/share'
+datadir='${datarootdir}'
+sysconfdir='${prefix}/etc'
+sharedstatedir='${prefix}/com'
+localstatedir='${prefix}/var'
+includedir='${prefix}/include'
+oldincludedir='/usr/include'
+docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
+infodir='${datarootdir}/info'
+htmldir='${docdir}'
+dvidir='${docdir}'
+pdfdir='${docdir}'
+psdir='${docdir}'
+libdir='${exec_prefix}/lib'
+localedir='${datarootdir}/locale'
+mandir='${datarootdir}/man'
+
+ac_prev=
+ac_dashdash=
+for ac_option
+do
+ # If the previous option needs an argument, assign it.
+ if test -n "$ac_prev"; then
+ eval $ac_prev=\$ac_option
+ ac_prev=
+ continue
+ fi
+
+ case $ac_option in
+ *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;
+ *=) ac_optarg= ;;
+ *) ac_optarg=yes ;;
+ esac
+
+ # Accept the important Cygnus configure options, so we can diagnose typos.
+
+ case $ac_dashdash$ac_option in
+ --)
+ ac_dashdash=yes ;;
+
+ -bindir | --bindir | --bindi | --bind | --bin | --bi)
+ ac_prev=bindir ;;
+ -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
+ bindir=$ac_optarg ;;
+
+ -build | --build | --buil | --bui | --bu)
+ ac_prev=build_alias ;;
+ -build=* | --build=* | --buil=* | --bui=* | --bu=*)
+ build_alias=$ac_optarg ;;
+
+ -cache-file | --cache-file | --cache-fil | --cache-fi \
+ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
+ ac_prev=cache_file ;;
+ -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
+ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
+ cache_file=$ac_optarg ;;
+
+ --config-cache | -C)
+ cache_file=config.cache ;;
+
+ -datadir | --datadir | --datadi | --datad)
+ ac_prev=datadir ;;
+ -datadir=* | --datadir=* | --datadi=* | --datad=*)
+ datadir=$ac_optarg ;;
+
+ -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \
+ | --dataroo | --dataro | --datar)
+ ac_prev=datarootdir ;;
+ -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \
+ | --dataroot=* | --dataroo=* | --dataro=* | --datar=*)
+ datarootdir=$ac_optarg ;;
+
+ -disable-* | --disable-*)
+ ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+ as_fn_error $? "invalid feature name: $ac_useropt"
+ ac_useropt_orig=$ac_useropt
+ ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+ case $ac_user_opts in
+ *"
+"enable_$ac_useropt"
+"*) ;;
+ *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig"
+ ac_unrecognized_sep=', ';;
+ esac
+ eval enable_$ac_useropt=no ;;
+
+ -docdir | --docdir | --docdi | --doc | --do)
+ ac_prev=docdir ;;
+ -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*)
+ docdir=$ac_optarg ;;
+
+ -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv)
+ ac_prev=dvidir ;;
+ -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*)
+ dvidir=$ac_optarg ;;
+
+ -enable-* | --enable-*)
+ ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+ as_fn_error $? "invalid feature name: $ac_useropt"
+ ac_useropt_orig=$ac_useropt
+ ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+ case $ac_user_opts in
+ *"
+"enable_$ac_useropt"
+"*) ;;
+ *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig"
+ ac_unrecognized_sep=', ';;
+ esac
+ eval enable_$ac_useropt=\$ac_optarg ;;
+
+ -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
+ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
+ | --exec | --exe | --ex)
+ ac_prev=exec_prefix ;;
+ -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
+ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
+ | --exec=* | --exe=* | --ex=*)
+ exec_prefix=$ac_optarg ;;
+
+ -gas | --gas | --ga | --g)
+ # Obsolete; use --with-gas.
+ with_gas=yes ;;
+
+ -help | --help | --hel | --he | -h)
+ ac_init_help=long ;;
+ -help=r* | --help=r* | --hel=r* | --he=r* | -hr*)
+ ac_init_help=recursive ;;
+ -help=s* | --help=s* | --hel=s* | --he=s* | -hs*)
+ ac_init_help=short ;;
+
+ -host | --host | --hos | --ho)
+ ac_prev=host_alias ;;
+ -host=* | --host=* | --hos=* | --ho=*)
+ host_alias=$ac_optarg ;;
+
+ -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht)
+ ac_prev=htmldir ;;
+ -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \
+ | --ht=*)
+ htmldir=$ac_optarg ;;
+
+ -includedir | --includedir | --includedi | --included | --include \
+ | --includ | --inclu | --incl | --inc)
+ ac_prev=includedir ;;
+ -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
+ | --includ=* | --inclu=* | --incl=* | --inc=*)
+ includedir=$ac_optarg ;;
+
+ -infodir | --infodir | --infodi | --infod | --info | --inf)
+ ac_prev=infodir ;;
+ -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
+ infodir=$ac_optarg ;;
+
+ -libdir | --libdir | --libdi | --libd)
+ ac_prev=libdir ;;
+ -libdir=* | --libdir=* | --libdi=* | --libd=*)
+ libdir=$ac_optarg ;;
+
+ -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
+ | --libexe | --libex | --libe)
+ ac_prev=libexecdir ;;
+ -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
+ | --libexe=* | --libex=* | --libe=*)
+ libexecdir=$ac_optarg ;;
+
+ -localedir | --localedir | --localedi | --localed | --locale)
+ ac_prev=localedir ;;
+ -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*)
+ localedir=$ac_optarg ;;
+
+ -localstatedir | --localstatedir | --localstatedi | --localstated \
+ | --localstate | --localstat | --localsta | --localst | --locals)
+ ac_prev=localstatedir ;;
+ -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
+ | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*)
+ localstatedir=$ac_optarg ;;
+
+ -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
+ ac_prev=mandir ;;
+ -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
+ mandir=$ac_optarg ;;
+
+ -nfp | --nfp | --nf)
+ # Obsolete; use --without-fp.
+ with_fp=no ;;
+
+ -no-create | --no-create | --no-creat | --no-crea | --no-cre \
+ | --no-cr | --no-c | -n)
+ no_create=yes ;;
+
+ -no-recursion | --no-recursion | --no-recursio | --no-recursi \
+ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
+ no_recursion=yes ;;
+
+ -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
+ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
+ | --oldin | --oldi | --old | --ol | --o)
+ ac_prev=oldincludedir ;;
+ -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
+ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
+ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
+ oldincludedir=$ac_optarg ;;
+
+ -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
+ ac_prev=prefix ;;
+ -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
+ prefix=$ac_optarg ;;
+
+ -program-prefix | --program-prefix | --program-prefi | --program-pref \
+ | --program-pre | --program-pr | --program-p)
+ ac_prev=program_prefix ;;
+ -program-prefix=* | --program-prefix=* | --program-prefi=* \
+ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
+ program_prefix=$ac_optarg ;;
+
+ -program-suffix | --program-suffix | --program-suffi | --program-suff \
+ | --program-suf | --program-su | --program-s)
+ ac_prev=program_suffix ;;
+ -program-suffix=* | --program-suffix=* | --program-suffi=* \
+ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
+ program_suffix=$ac_optarg ;;
+
+ -program-transform-name | --program-transform-name \
+ | --program-transform-nam | --program-transform-na \
+ | --program-transform-n | --program-transform- \
+ | --program-transform | --program-transfor \
+ | --program-transfo | --program-transf \
+ | --program-trans | --program-tran \
+ | --progr-tra | --program-tr | --program-t)
+ ac_prev=program_transform_name ;;
+ -program-transform-name=* | --program-transform-name=* \
+ | --program-transform-nam=* | --program-transform-na=* \
+ | --program-transform-n=* | --program-transform-=* \
+ | --program-transform=* | --program-transfor=* \
+ | --program-transfo=* | --program-transf=* \
+ | --program-trans=* | --program-tran=* \
+ | --progr-tra=* | --program-tr=* | --program-t=*)
+ program_transform_name=$ac_optarg ;;
+
+ -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd)
+ ac_prev=pdfdir ;;
+ -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*)
+ pdfdir=$ac_optarg ;;
+
+ -psdir | --psdir | --psdi | --psd | --ps)
+ ac_prev=psdir ;;
+ -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*)
+ psdir=$ac_optarg ;;
+
+ -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+ | -silent | --silent | --silen | --sile | --sil)
+ silent=yes ;;
+
+ -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
+ ac_prev=sbindir ;;
+ -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
+ | --sbi=* | --sb=*)
+ sbindir=$ac_optarg ;;
+
+ -sharedstatedir | --sharedstatedir | --sharedstatedi \
+ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
+ | --sharedst | --shareds | --shared | --share | --shar \
+ | --sha | --sh)
+ ac_prev=sharedstatedir ;;
+ -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
+ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
+ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
+ | --sha=* | --sh=*)
+ sharedstatedir=$ac_optarg ;;
+
+ -site | --site | --sit)
+ ac_prev=site ;;
+ -site=* | --site=* | --sit=*)
+ site=$ac_optarg ;;
+
+ -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
+ ac_prev=srcdir ;;
+ -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
+ srcdir=$ac_optarg ;;
+
+ -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
+ | --syscon | --sysco | --sysc | --sys | --sy)
+ ac_prev=sysconfdir ;;
+ -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
+ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
+ sysconfdir=$ac_optarg ;;
+
+ -target | --target | --targe | --targ | --tar | --ta | --t)
+ ac_prev=target_alias ;;
+ -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
+ target_alias=$ac_optarg ;;
+
+ -v | -verbose | --verbose | --verbos | --verbo | --verb)
+ verbose=yes ;;
+
+ -version | --version | --versio | --versi | --vers | -V)
+ ac_init_version=: ;;
+
+ -with-* | --with-*)
+ ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+ as_fn_error $? "invalid package name: $ac_useropt"
+ ac_useropt_orig=$ac_useropt
+ ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+ case $ac_user_opts in
+ *"
+"with_$ac_useropt"
+"*) ;;
+ *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig"
+ ac_unrecognized_sep=', ';;
+ esac
+ eval with_$ac_useropt=\$ac_optarg ;;
+
+ -without-* | --without-*)
+ ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+ as_fn_error $? "invalid package name: $ac_useropt"
+ ac_useropt_orig=$ac_useropt
+ ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+ case $ac_user_opts in
+ *"
+"with_$ac_useropt"
+"*) ;;
+ *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig"
+ ac_unrecognized_sep=', ';;
+ esac
+ eval with_$ac_useropt=no ;;
+
+ --x)
+ # Obsolete; use --with-x.
+ with_x=yes ;;
+
+ -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
+ | --x-incl | --x-inc | --x-in | --x-i)
+ ac_prev=x_includes ;;
+ -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
+ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
+ x_includes=$ac_optarg ;;
+
+ -x-libraries | --x-libraries | --x-librarie | --x-librari \
+ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
+ ac_prev=x_libraries ;;
+ -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
+ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
+ x_libraries=$ac_optarg ;;
+
+ -*) as_fn_error $? "unrecognized option: \`$ac_option'
+Try \`$0 --help' for more information"
+ ;;
+
+ *=*)
+ ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
+ # Reject names that are not valid shell variable names.
+ case $ac_envvar in #(
+ '' | [0-9]* | *[!_$as_cr_alnum]* )
+ as_fn_error $? "invalid variable name: \`$ac_envvar'" ;;
+ esac
+ eval $ac_envvar=\$ac_optarg
+ export $ac_envvar ;;
+
+ *)
+ # FIXME: should be removed in autoconf 3.0.
+ $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2
+ expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
+ $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2
+ : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}"
+ ;;
+
+ esac
+done
+
+if test -n "$ac_prev"; then
+ ac_option=--`echo $ac_prev | sed 's/_/-/g'`
+ as_fn_error $? "missing argument to $ac_option"
+fi
+
+if test -n "$ac_unrecognized_opts"; then
+ case $enable_option_checking in
+ no) ;;
+ fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;;
+ *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;;
+ esac
+fi
+
+# Check all directory arguments for consistency.
+for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \
+ datadir sysconfdir sharedstatedir localstatedir includedir \
+ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
+ libdir localedir mandir
+do
+ eval ac_val=\$$ac_var
+ # Remove trailing slashes.
+ case $ac_val in
+ */ )
+ ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'`
+ eval $ac_var=\$ac_val;;
+ esac
+ # Be sure to have absolute directory names.
+ case $ac_val in
+ [\\/$]* | ?:[\\/]* ) continue;;
+ NONE | '' ) case $ac_var in *prefix ) continue;; esac;;
+ esac
+ as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val"
+done
+
+# There might be people who depend on the old broken behavior: `$host'
+# used to hold the argument of --host etc.
+# FIXME: To remove some day.
+build=$build_alias
+host=$host_alias
+target=$target_alias
+
+# FIXME: To remove some day.
+if test "x$host_alias" != x; then
+ if test "x$build_alias" = x; then
+ cross_compiling=maybe
+ elif test "x$build_alias" != "x$host_alias"; then
+ cross_compiling=yes
+ fi
+fi
+
+ac_tool_prefix=
+test -n "$host_alias" && ac_tool_prefix=$host_alias-
+
+test "$silent" = yes && exec 6>/dev/null
+
+
+ac_pwd=`pwd` && test -n "$ac_pwd" &&
+ac_ls_di=`ls -di .` &&
+ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` ||
+ as_fn_error $? "working directory cannot be determined"
+test "X$ac_ls_di" = "X$ac_pwd_ls_di" ||
+ as_fn_error $? "pwd does not report name of working directory"
+
+
+# Find the source files, if location was not specified.
+if test -z "$srcdir"; then
+ ac_srcdir_defaulted=yes
+ # Try the directory containing this script, then the parent directory.
+ ac_confdir=`$as_dirname -- "$as_myself" ||
+$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$as_myself" : 'X\(//\)[^/]' \| \
+ X"$as_myself" : 'X\(//\)$' \| \
+ X"$as_myself" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$as_myself" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ srcdir=$ac_confdir
+ if test ! -r "$srcdir/$ac_unique_file"; then
+ srcdir=..
+ fi
+else
+ ac_srcdir_defaulted=no
+fi
+if test ! -r "$srcdir/$ac_unique_file"; then
+ test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .."
+ as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir"
+fi
+ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work"
+ac_abs_confdir=`(
+ cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg"
+ pwd)`
+# When building in place, set srcdir=.
+if test "$ac_abs_confdir" = "$ac_pwd"; then
+ srcdir=.
+fi
+# Remove unnecessary trailing slashes from srcdir.
+# Double slashes in file names in object file debugging info
+# mess up M-x gdb in Emacs.
+case $srcdir in
+*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;;
+esac
+for ac_var in $ac_precious_vars; do
+ eval ac_env_${ac_var}_set=\${${ac_var}+set}
+ eval ac_env_${ac_var}_value=\$${ac_var}
+ eval ac_cv_env_${ac_var}_set=\${${ac_var}+set}
+ eval ac_cv_env_${ac_var}_value=\$${ac_var}
+done
+
+#
+# Report the --help message.
+#
+if test "$ac_init_help" = "long"; then
+ # Omit some internal or obsolete options to make the list less imposing.
+ # This message is too long to be a string in the A/UX 3.1 sh.
+ cat <<_ACEOF
+\`configure' configures babl 0.1.18 to adapt to many kinds of systems.
+
+Usage: $0 [OPTION]... [VAR=VALUE]...
+
+To assign environment variables (e.g., CC, CFLAGS...), specify them as
+VAR=VALUE. See below for descriptions of some of the useful variables.
+
+Defaults for the options are specified in brackets.
+
+Configuration:
+ -h, --help display this help and exit
+ --help=short display options specific to this package
+ --help=recursive display the short help of all the included packages
+ -V, --version display version information and exit
+ -q, --quiet, --silent do not print \`checking ...' messages
+ --cache-file=FILE cache test results in FILE [disabled]
+ -C, --config-cache alias for \`--cache-file=config.cache'
+ -n, --no-create do not create output files
+ --srcdir=DIR find the sources in DIR [configure dir or \`..']
+
+Installation directories:
+ --prefix=PREFIX install architecture-independent files in PREFIX
+ [$ac_default_prefix]
+ --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
+ [PREFIX]
+
+By default, \`make install' will install all the files in
+\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify
+an installation prefix other than \`$ac_default_prefix' using \`--prefix',
+for instance \`--prefix=\$HOME'.
+
+For better control, use the options below.
+
+Fine tuning of the installation directories:
+ --bindir=DIR user executables [EPREFIX/bin]
+ --sbindir=DIR system admin executables [EPREFIX/sbin]
+ --libexecdir=DIR program executables [EPREFIX/libexec]
+ --sysconfdir=DIR read-only single-machine data [PREFIX/etc]
+ --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
+ --localstatedir=DIR modifiable single-machine data [PREFIX/var]
+ --libdir=DIR object code libraries [EPREFIX/lib]
+ --includedir=DIR C header files [PREFIX/include]
+ --oldincludedir=DIR C header files for non-gcc [/usr/include]
+ --datarootdir=DIR read-only arch.-independent data root [PREFIX/share]
+ --datadir=DIR read-only architecture-independent data [DATAROOTDIR]
+ --infodir=DIR info documentation [DATAROOTDIR/info]
+ --localedir=DIR locale-dependent data [DATAROOTDIR/locale]
+ --mandir=DIR man documentation [DATAROOTDIR/man]
+ --docdir=DIR documentation root [DATAROOTDIR/doc/babl]
+ --htmldir=DIR html documentation [DOCDIR]
+ --dvidir=DIR dvi documentation [DOCDIR]
+ --pdfdir=DIR pdf documentation [DOCDIR]
+ --psdir=DIR ps documentation [DOCDIR]
+_ACEOF
+
+ cat <<\_ACEOF
+
+Program names:
+ --program-prefix=PREFIX prepend PREFIX to installed program names
+ --program-suffix=SUFFIX append SUFFIX to installed program names
+ --program-transform-name=PROGRAM run sed PROGRAM on installed program names
+
+System types:
+ --build=BUILD configure for building on BUILD [guessed]
+ --host=HOST cross-compile to build programs to run on HOST [BUILD]
+ --target=TARGET configure for building compilers for TARGET [HOST]
+_ACEOF
+fi
+
+if test -n "$ac_init_help"; then
+ case $ac_init_help in
+ short | recursive ) echo "Configuration of babl 0.1.18:";;
+ esac
+ cat <<\_ACEOF
+
+Optional Features:
+ --disable-option-checking ignore unrecognized --enable/--with options
+ --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
+ --enable-FEATURE[=ARG] include FEATURE [ARG=yes]
+ --enable-silent-rules less verbose build output (undo: "make V=1")
+ --disable-silent-rules verbose build output (undo: "make V=0")
+ --enable-dependency-tracking
+ do not reject slow dependency extractors
+ --disable-dependency-tracking
+ speeds up one-time build
+ --enable-static[=PKGS] build static libraries [default=no]
+ --enable-shared[=PKGS] build shared libraries [default=yes]
+ --enable-fast-install[=PKGS]
+ optimize for fast installation [default=yes]
+ --disable-libtool-lock avoid locking (might break parallel builds)
+ --disable-maintainer-mode
+ disable make rules and dependencies not useful (and
+ sometimes confusing) to the casual installer
+ --disable-docs disable docs generation (default=no)
+ --enable-mmx enable MMX support (default=auto)
+ --enable-sse enable SSE support (default=auto)
+ --enable-sse2 enable SSE2 support (default=auto)
+ --enable-sse4_1 enable SSE4_1 support (default=auto)
+ --enable-f16c enable hardware half-float support (default=auto)
+ --enable-altivec enable AltiVec support (default=auto)
+
+Optional Packages:
+ --with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
+ --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
+ --with-pic[=PKGS] try to use only PIC/non-PIC objects [default=use
+ both]
+ --with-aix-soname=aix|svr4|both
+ shared library versioning (aka "SONAME") variant to
+ provide on AIX, [default=aix].
+ --with-gnu-ld assume the C compiler uses GNU ld [default=no]
+ --with-sysroot[=DIR] Search for dependent libraries within DIR (or the
+ compiler's sysroot if not specified).
+
+Some influential environment variables:
+ CC C compiler command
+ CFLAGS C compiler flags
+ LDFLAGS linker flags, e.g. -L<lib dir> if you have libraries in a
+ nonstandard directory <lib dir>
+ LIBS libraries to pass to the linker, e.g. -l<library>
+ CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I<include dir> if
+ you have headers in a nonstandard directory <include dir>
+ LT_SYS_LIBRARY_PATH
+ User-defined run-time library search path.
+ CPP C preprocessor
+
+Use these variables to override the choices made by `configure' or to help
+it to find libraries and programs with nonstandard names/locations.
+
+Report bugs to the package provider.
+_ACEOF
+ac_status=$?
+fi
+
+if test "$ac_init_help" = "recursive"; then
+ # If there are subdirs, report their specific --help.
+ for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue
+ test -d "$ac_dir" ||
+ { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } ||
+ continue
+ ac_builddir=.
+
+case "$ac_dir" in
+.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
+*)
+ ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
+ # A ".." for each directory in $ac_dir_suffix.
+ ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
+ case $ac_top_builddir_sub in
+ "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
+ *) ac_top_build_prefix=$ac_top_builddir_sub/ ;;
+ esac ;;
+esac
+ac_abs_top_builddir=$ac_pwd
+ac_abs_builddir=$ac_pwd$ac_dir_suffix
+# for backward compatibility:
+ac_top_builddir=$ac_top_build_prefix
+
+case $srcdir in
+ .) # We are building in place.
+ ac_srcdir=.
+ ac_top_srcdir=$ac_top_builddir_sub
+ ac_abs_top_srcdir=$ac_pwd ;;
+ [\\/]* | ?:[\\/]* ) # Absolute name.
+ ac_srcdir=$srcdir$ac_dir_suffix;
+ ac_top_srcdir=$srcdir
+ ac_abs_top_srcdir=$srcdir ;;
+ *) # Relative name.
+ ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
+ ac_top_srcdir=$ac_top_build_prefix$srcdir
+ ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
+esac
+ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
+
+ cd "$ac_dir" || { ac_status=$?; continue; }
+ # Check for guested configure.
+ if test -f "$ac_srcdir/configure.gnu"; then
+ echo &&
+ $SHELL "$ac_srcdir/configure.gnu" --help=recursive
+ elif test -f "$ac_srcdir/configure"; then
+ echo &&
+ $SHELL "$ac_srcdir/configure" --help=recursive
+ else
+ $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
+ fi || ac_status=$?
+ cd "$ac_pwd" || { ac_status=$?; break; }
+ done
+fi
+
+test -n "$ac_init_help" && exit $ac_status
+if $ac_init_version; then
+ cat <<\_ACEOF
+babl configure 0.1.18
+generated by GNU Autoconf 2.69
+
+Copyright (C) 2012 Free Software Foundation, Inc.
+This configure script is free software; the Free Software Foundation
+gives unlimited permission to copy, distribute and modify it.
+_ACEOF
+ exit
+fi
+
+## ------------------------ ##
+## Autoconf initialization. ##
+## ------------------------ ##
+
+# ac_fn_c_try_compile LINENO
+# --------------------------
+# Try to compile conftest.$ac_ext, and return whether this succeeded.
+ac_fn_c_try_compile ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ rm -f conftest.$ac_objext
+ if { { ac_try="$ac_compile"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_compile") 2>conftest.err
+ ac_status=$?
+ if test -s conftest.err; then
+ grep -v '^ *+' conftest.err >conftest.er1
+ cat conftest.er1 >&5
+ mv -f conftest.er1 conftest.err
+ fi
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && {
+ test -z "$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest.$ac_objext; then :
+ ac_retval=0
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_retval=1
+fi
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+ as_fn_set_status $ac_retval
+
+} # ac_fn_c_try_compile
+
+# ac_fn_c_try_link LINENO
+# -----------------------
+# Try to link conftest.$ac_ext, and return whether this succeeded.
+ac_fn_c_try_link ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ rm -f conftest.$ac_objext conftest$ac_exeext
+ if { { ac_try="$ac_link"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_link") 2>conftest.err
+ ac_status=$?
+ if test -s conftest.err; then
+ grep -v '^ *+' conftest.err >conftest.er1
+ cat conftest.er1 >&5
+ mv -f conftest.er1 conftest.err
+ fi
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && {
+ test -z "$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest$ac_exeext && {
+ test "$cross_compiling" = yes ||
+ test -x conftest$ac_exeext
+ }; then :
+ ac_retval=0
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_retval=1
+fi
+ # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information
+ # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would
+ # interfere with the next link command; also delete a directory that is
+ # left behind by Apple's compiler. We do this before executing the actions.
+ rm -rf conftest.dSYM conftest_ipa8_conftest.oo
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+ as_fn_set_status $ac_retval
+
+} # ac_fn_c_try_link
+
+# ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES
+# -------------------------------------------------------
+# Tests whether HEADER exists and can be compiled using the include files in
+# INCLUDES, setting the cache variable VAR accordingly.
+ac_fn_c_check_header_compile ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if eval \${$3+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$4
+#include <$2>
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ eval "$3=yes"
+else
+ eval "$3=no"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+eval ac_res=\$$3
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+
+} # ac_fn_c_check_header_compile
+
+# ac_fn_c_try_cpp LINENO
+# ----------------------
+# Try to preprocess conftest.$ac_ext, and return whether this succeeded.
+ac_fn_c_try_cpp ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ if { { ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err
+ ac_status=$?
+ if test -s conftest.err; then
+ grep -v '^ *+' conftest.err >conftest.er1
+ cat conftest.er1 >&5
+ mv -f conftest.er1 conftest.err
+ fi
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } > conftest.i && {
+ test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ }; then :
+ ac_retval=0
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_retval=1
+fi
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+ as_fn_set_status $ac_retval
+
+} # ac_fn_c_try_cpp
+
+# ac_fn_c_try_run LINENO
+# ----------------------
+# Try to link conftest.$ac_ext, and return whether this succeeded. Assumes
+# that executables *can* be run.
+ac_fn_c_try_run ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ if { { ac_try="$ac_link"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_link") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && { ac_try='./conftest$ac_exeext'
+ { { case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_try") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; }; then :
+ ac_retval=0
+else
+ $as_echo "$as_me: program exited with status $ac_status" >&5
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_retval=$ac_status
+fi
+ rm -rf conftest.dSYM conftest_ipa8_conftest.oo
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+ as_fn_set_status $ac_retval
+
+} # ac_fn_c_try_run
+
+# ac_fn_c_check_func LINENO FUNC VAR
+# ----------------------------------
+# Tests whether FUNC exists, setting the cache variable VAR accordingly
+ac_fn_c_check_func ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if eval \${$3+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+/* Define $2 to an innocuous variant, in case <limits.h> declares $2.
+ For example, HP-UX 11i <limits.h> declares gettimeofday. */
+#define $2 innocuous_$2
+
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char $2 (); below.
+ Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+ <limits.h> exists even on freestanding compilers. */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef $2
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char $2 ();
+/* The GNU C library defines this for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+#if defined __stub_$2 || defined __stub___$2
+choke me
+#endif
+
+int
+main ()
+{
+return $2 ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ eval "$3=yes"
+else
+ eval "$3=no"
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+fi
+eval ac_res=\$$3
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+
+} # ac_fn_c_check_func
+
+# ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES
+# -------------------------------------------------------
+# Tests whether HEADER exists, giving a warning if it cannot be compiled using
+# the include files in INCLUDES and setting the cache variable VAR
+# accordingly.
+ac_fn_c_check_header_mongrel ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ if eval \${$3+:} false; then :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if eval \${$3+:} false; then :
+ $as_echo_n "(cached) " >&6
+fi
+eval ac_res=\$$3
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+else
+ # Is the header compilable?
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5
+$as_echo_n "checking $2 usability... " >&6; }
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$4
+#include <$2>
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_header_compiler=yes
+else
+ ac_header_compiler=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5
+$as_echo "$ac_header_compiler" >&6; }
+
+# Is the header present?
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5
+$as_echo_n "checking $2 presence... " >&6; }
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <$2>
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+ ac_header_preproc=yes
+else
+ ac_header_preproc=no
+fi
+rm -f conftest.err conftest.i conftest.$ac_ext
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5
+$as_echo "$ac_header_preproc" >&6; }
+
+# So? What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #((
+ yes:no: )
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5
+$as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
+$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
+ ;;
+ no:yes:* )
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5
+$as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: check for missing prerequisite headers?" >&5
+$as_echo "$as_me: WARNING: $2: check for missing prerequisite headers?" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5
+$as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&5
+$as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
+$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
+ ;;
+esac
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if eval \${$3+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ eval "$3=\$ac_header_compiler"
+fi
+eval ac_res=\$$3
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+fi
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+
+} # ac_fn_c_check_header_mongrel
+cat >config.log <<_ACEOF
+This file contains any messages produced by compilers while
+running configure, to aid debugging if configure makes a mistake.
+
+It was created by babl $as_me 0.1.18, which was
+generated by GNU Autoconf 2.69. Invocation command line was
+
+ $ $0 $@
+
+_ACEOF
+exec 5>>config.log
+{
+cat <<_ASUNAME
+## --------- ##
+## Platform. ##
+## --------- ##
+
+hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
+uname -m = `(uname -m) 2>/dev/null || echo unknown`
+uname -r = `(uname -r) 2>/dev/null || echo unknown`
+uname -s = `(uname -s) 2>/dev/null || echo unknown`
+uname -v = `(uname -v) 2>/dev/null || echo unknown`
+
+/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
+/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown`
+
+/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown`
+/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown`
+/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
+/usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown`
+/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown`
+/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown`
+/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown`
+
+_ASUNAME
+
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ $as_echo "PATH: $as_dir"
+ done
+IFS=$as_save_IFS
+
+} >&5
+
+cat >&5 <<_ACEOF
+
+
+## ----------- ##
+## Core tests. ##
+## ----------- ##
+
+_ACEOF
+
+
+# Keep a trace of the command line.
+# Strip out --no-create and --no-recursion so they do not pile up.
+# Strip out --silent because we don't want to record it for future runs.
+# Also quote any args containing shell meta-characters.
+# Make two passes to allow for proper duplicate-argument suppression.
+ac_configure_args=
+ac_configure_args0=
+ac_configure_args1=
+ac_must_keep_next=false
+for ac_pass in 1 2
+do
+ for ac_arg
+ do
+ case $ac_arg in
+ -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;;
+ -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+ | -silent | --silent | --silen | --sile | --sil)
+ continue ;;
+ *\'*)
+ ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
+ esac
+ case $ac_pass in
+ 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;;
+ 2)
+ as_fn_append ac_configure_args1 " '$ac_arg'"
+ if test $ac_must_keep_next = true; then
+ ac_must_keep_next=false # Got value, back to normal.
+ else
+ case $ac_arg in
+ *=* | --config-cache | -C | -disable-* | --disable-* \
+ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
+ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
+ | -with-* | --with-* | -without-* | --without-* | --x)
+ case "$ac_configure_args0 " in
+ "$ac_configure_args1"*" '$ac_arg' "* ) continue ;;
+ esac
+ ;;
+ -* ) ac_must_keep_next=true ;;
+ esac
+ fi
+ as_fn_append ac_configure_args " '$ac_arg'"
+ ;;
+ esac
+ done
+done
+{ ac_configure_args0=; unset ac_configure_args0;}
+{ ac_configure_args1=; unset ac_configure_args1;}
+
+# When interrupted or exit'd, cleanup temporary files, and complete
+# config.log. We remove comments because anyway the quotes in there
+# would cause problems or look ugly.
+# WARNING: Use '\'' to represent an apostrophe within the trap.
+# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug.
+trap 'exit_status=$?
+ # Save into config.log some information that might help in debugging.
+ {
+ echo
+
+ $as_echo "## ---------------- ##
+## Cache variables. ##
+## ---------------- ##"
+ echo
+ # The following way of writing the cache mishandles newlines in values,
+(
+ for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do
+ eval ac_val=\$$ac_var
+ case $ac_val in #(
+ *${as_nl}*)
+ case $ac_var in #(
+ *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
+$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
+ esac
+ case $ac_var in #(
+ _ | IFS | as_nl) ;; #(
+ BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
+ *) { eval $ac_var=; unset $ac_var;} ;;
+ esac ;;
+ esac
+ done
+ (set) 2>&1 |
+ case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #(
+ *${as_nl}ac_space=\ *)
+ sed -n \
+ "s/'\''/'\''\\\\'\'''\''/g;
+ s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p"
+ ;; #(
+ *)
+ sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
+ ;;
+ esac |
+ sort
+)
+ echo
+
+ $as_echo "## ----------------- ##
+## Output variables. ##
+## ----------------- ##"
+ echo
+ for ac_var in $ac_subst_vars
+ do
+ eval ac_val=\$$ac_var
+ case $ac_val in
+ *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
+ esac
+ $as_echo "$ac_var='\''$ac_val'\''"
+ done | sort
+ echo
+
+ if test -n "$ac_subst_files"; then
+ $as_echo "## ------------------- ##
+## File substitutions. ##
+## ------------------- ##"
+ echo
+ for ac_var in $ac_subst_files
+ do
+ eval ac_val=\$$ac_var
+ case $ac_val in
+ *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
+ esac
+ $as_echo "$ac_var='\''$ac_val'\''"
+ done | sort
+ echo
+ fi
+
+ if test -s confdefs.h; then
+ $as_echo "## ----------- ##
+## confdefs.h. ##
+## ----------- ##"
+ echo
+ cat confdefs.h
+ echo
+ fi
+ test "$ac_signal" != 0 &&
+ $as_echo "$as_me: caught signal $ac_signal"
+ $as_echo "$as_me: exit $exit_status"
+ } >&5
+ rm -f core *.core core.conftest.* &&
+ rm -f -r conftest* confdefs* conf$$* $ac_clean_files &&
+ exit $exit_status
+' 0
+for ac_signal in 1 2 13 15; do
+ trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal
+done
+ac_signal=0
+
+# confdefs.h avoids OS command line length limits that DEFS can exceed.
+rm -f -r conftest* confdefs.h
+
+$as_echo "/* confdefs.h */" > confdefs.h
+
+# Predefined preprocessor variables.
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_NAME "$PACKAGE_NAME"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_TARNAME "$PACKAGE_TARNAME"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_VERSION "$PACKAGE_VERSION"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_STRING "$PACKAGE_STRING"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_URL "$PACKAGE_URL"
+_ACEOF
+
+
+# Let the site file select an alternate cache file if it wants to.
+# Prefer an explicitly selected file to automatically selected ones.
+ac_site_file1=NONE
+ac_site_file2=NONE
+if test -n "$CONFIG_SITE"; then
+ # We do not want a PATH search for config.site.
+ case $CONFIG_SITE in #((
+ -*) ac_site_file1=./$CONFIG_SITE;;
+ */*) ac_site_file1=$CONFIG_SITE;;
+ *) ac_site_file1=./$CONFIG_SITE;;
+ esac
+elif test "x$prefix" != xNONE; then
+ ac_site_file1=$prefix/share/config.site
+ ac_site_file2=$prefix/etc/config.site
+else
+ ac_site_file1=$ac_default_prefix/share/config.site
+ ac_site_file2=$ac_default_prefix/etc/config.site
+fi
+for ac_site_file in "$ac_site_file1" "$ac_site_file2"
+do
+ test "x$ac_site_file" = xNONE && continue
+ if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5
+$as_echo "$as_me: loading site script $ac_site_file" >&6;}
+ sed 's/^/| /' "$ac_site_file" >&5
+ . "$ac_site_file" \
+ || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "failed to load site script $ac_site_file
+See \`config.log' for more details" "$LINENO" 5; }
+ fi
+done
+
+if test -r "$cache_file"; then
+ # Some versions of bash will fail to source /dev/null (special files
+ # actually), so we avoid doing that. DJGPP emulates it as a regular file.
+ if test /dev/null != "$cache_file" && test -f "$cache_file"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5
+$as_echo "$as_me: loading cache $cache_file" >&6;}
+ case $cache_file in
+ [\\/]* | ?:[\\/]* ) . "$cache_file";;
+ *) . "./$cache_file";;
+ esac
+ fi
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5
+$as_echo "$as_me: creating cache $cache_file" >&6;}
+ >$cache_file
+fi
+
+# Check that the precious variables saved in the cache have kept the same
+# value.
+ac_cache_corrupted=false
+for ac_var in $ac_precious_vars; do
+ eval ac_old_set=\$ac_cv_env_${ac_var}_set
+ eval ac_new_set=\$ac_env_${ac_var}_set
+ eval ac_old_val=\$ac_cv_env_${ac_var}_value
+ eval ac_new_val=\$ac_env_${ac_var}_value
+ case $ac_old_set,$ac_new_set in
+ set,)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
+$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
+ ac_cache_corrupted=: ;;
+ ,set)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5
+$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
+ ac_cache_corrupted=: ;;
+ ,);;
+ *)
+ if test "x$ac_old_val" != "x$ac_new_val"; then
+ # differences in whitespace do not lead to failure.
+ ac_old_val_w=`echo x $ac_old_val`
+ ac_new_val_w=`echo x $ac_new_val`
+ if test "$ac_old_val_w" != "$ac_new_val_w"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5
+$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
+ ac_cache_corrupted=:
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5
+$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;}
+ eval $ac_var=\$ac_old_val
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5
+$as_echo "$as_me: former value: \`$ac_old_val'" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5
+$as_echo "$as_me: current value: \`$ac_new_val'" >&2;}
+ fi;;
+ esac
+ # Pass precious variables to config.status.
+ if test "$ac_new_set" = set; then
+ case $ac_new_val in
+ *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
+ *) ac_arg=$ac_var=$ac_new_val ;;
+ esac
+ case " $ac_configure_args " in
+ *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy.
+ *) as_fn_append ac_configure_args " '$ac_arg'" ;;
+ esac
+ fi
+done
+if $ac_cache_corrupted; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5
+$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;}
+ as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5
+fi
+## -------------------- ##
+## Main body of script. ##
+## -------------------- ##
+
+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
+
+
+
+ac_config_headers="$ac_config_headers config.h"
+
+
+
+
+BABL_MAJOR_VERSION=0
+BABL_MINOR_VERSION=1
+BABL_MICRO_VERSION=18
+BABL_INTERFACE_AGE=1
+BABL_BINARY_AGE=118
+BABL_VERSION=0.1.18
+BABL_REAL_VERSION=0.1.18
+BABL_API_VERSION=0.1
+
+
+
+
+
+
+
+
+
+BABL_RELEASE=0.1
+
+
+BABL_UNSTABLE=yes
+if test "x$BABL_UNSTABLE" = "xyes"; then
+
+$as_echo "#define BABL_UNSTABLE 1" >>confdefs.h
+
+fi
+ if test "x$BABL_UNSTABLE" = "xyes"; then
+ BABL_UNSTABLE_TRUE=
+ BABL_UNSTABLE_FALSE='#'
+else
+ BABL_UNSTABLE_TRUE='#'
+ BABL_UNSTABLE_FALSE=
+fi
+
+
+
+
+# libtool versioning
+
+
+
+BABL_LIBRARY_VERSION="117:1:117"
+BABL_CURRENT_MINUS_AGE=0
+
+
+
+
+ac_aux_dir=
+for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do
+ if test -f "$ac_dir/install-sh"; then
+ ac_aux_dir=$ac_dir
+ ac_install_sh="$ac_aux_dir/install-sh -c"
+ break
+ elif test -f "$ac_dir/install.sh"; then
+ ac_aux_dir=$ac_dir
+ ac_install_sh="$ac_aux_dir/install.sh -c"
+ break
+ elif test -f "$ac_dir/shtool"; then
+ ac_aux_dir=$ac_dir
+ ac_install_sh="$ac_aux_dir/shtool install -c"
+ break
+ fi
+done
+if test -z "$ac_aux_dir"; then
+ as_fn_error $? "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5
+fi
+
+# These three variables are undocumented and unsupported,
+# and are intended to be withdrawn in a future Autoconf release.
+# They can cause serious problems if a builder's source tree is in a directory
+# whose full name contains unusual characters.
+ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var.
+ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var.
+ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var.
+
+
+# Make sure we can run config.sub.
+$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
+ as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5
+$as_echo_n "checking build system type... " >&6; }
+if ${ac_cv_build+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_build_alias=$build_alias
+test "x$ac_build_alias" = x &&
+ ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"`
+test "x$ac_build_alias" = x &&
+ as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5
+ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` ||
+ as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5
+$as_echo "$ac_cv_build" >&6; }
+case $ac_cv_build in
+*-*-*) ;;
+*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;;
+esac
+build=$ac_cv_build
+ac_save_IFS=$IFS; IFS='-'
+set x $ac_cv_build
+shift
+build_cpu=$1
+build_vendor=$2
+shift; shift
+# Remember, the first character of IFS is used to create $*,
+# except with old shells:
+build_os=$*
+IFS=$ac_save_IFS
+case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5
+$as_echo_n "checking host system type... " >&6; }
+if ${ac_cv_host+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "x$host_alias" = x; then
+ ac_cv_host=$ac_cv_build
+else
+ ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` ||
+ as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5
+$as_echo "$ac_cv_host" >&6; }
+case $ac_cv_host in
+*-*-*) ;;
+*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;;
+esac
+host=$ac_cv_host
+ac_save_IFS=$IFS; IFS='-'
+set x $ac_cv_host
+shift
+host_cpu=$1
+host_vendor=$2
+shift; shift
+# Remember, the first character of IFS is used to create $*,
+# except with old shells:
+host_os=$*
+IFS=$ac_save_IFS
+case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking target system type" >&5
+$as_echo_n "checking target system type... " >&6; }
+if ${ac_cv_target+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "x$target_alias" = x; then
+ ac_cv_target=$ac_cv_host
+else
+ ac_cv_target=`$SHELL "$ac_aux_dir/config.sub" $target_alias` ||
+ as_fn_error $? "$SHELL $ac_aux_dir/config.sub $target_alias failed" "$LINENO" 5
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_target" >&5
+$as_echo "$ac_cv_target" >&6; }
+case $ac_cv_target in
+*-*-*) ;;
+*) as_fn_error $? "invalid value of canonical target" "$LINENO" 5;;
+esac
+target=$ac_cv_target
+ac_save_IFS=$IFS; IFS='-'
+set x $ac_cv_target
+shift
+target_cpu=$1
+target_vendor=$2
+shift; shift
+# Remember, the first character of IFS is used to create $*,
+# except with old shells:
+target_os=$*
+IFS=$ac_save_IFS
+case $target_os in *\ *) target_os=`echo "$target_os" | sed 's/ /-/g'`;; esac
+
+
+# The aliases save the names the user supplied, while $host etc.
+# will get canonicalized.
+test -n "$target_alias" &&
+ test "$program_prefix$program_suffix$program_transform_name" = \
+ NONENONEs,x,x, &&
+ program_prefix=${target_alias}-
+
+am__api_version='1.15'
+
+# Find a good install program. We prefer a C program (faster),
+# so one script is as good as another. But avoid the broken or
+# incompatible versions:
+# SysV /etc/install, /usr/sbin/install
+# SunOS /usr/etc/install
+# IRIX /sbin/install
+# AIX /bin/install
+# AmigaOS /C/install, which installs bootblocks on floppy discs
+# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
+# AFS /usr/afsws/bin/install, which mishandles nonexistent args
+# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
+# OS/2's system install, which has a completely different semantic
+# ./install, which can be erroneously created by make from ./install.sh.
+# Reject install programs that cannot install multiple files.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5
+$as_echo_n "checking for a BSD-compatible install... " >&6; }
+if test -z "$INSTALL"; then
+if ${ac_cv_path_install+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ # Account for people who put trailing slashes in PATH elements.
+case $as_dir/ in #((
+ ./ | .// | /[cC]/* | \
+ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
+ ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \
+ /usr/ucb/* ) ;;
+ *)
+ # OSF1 and SCO ODT 3.0 have their own names for install.
+ # Don't use installbsd from OSF since it installs stuff as root
+ # by default.
+ for ac_prog in ginstall scoinst install; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then
+ if test $ac_prog = install &&
+ grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
+ # AIX install. It has an incompatible calling convention.
+ :
+ elif test $ac_prog = install &&
+ grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
+ # program-specific install script used by HP pwplus--don't use.
+ :
+ else
+ rm -rf conftest.one conftest.two conftest.dir
+ echo one > conftest.one
+ echo two > conftest.two
+ mkdir conftest.dir
+ if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" &&
+ test -s conftest.one && test -s conftest.two &&
+ test -s conftest.dir/conftest.one &&
+ test -s conftest.dir/conftest.two
+ then
+ ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
+ break 3
+ fi
+ fi
+ fi
+ done
+ done
+ ;;
+esac
+
+ done
+IFS=$as_save_IFS
+
+rm -rf conftest.one conftest.two conftest.dir
+
+fi
+ if test "${ac_cv_path_install+set}" = set; then
+ INSTALL=$ac_cv_path_install
+ else
+ # As a last resort, use the slow shell script. Don't cache a
+ # value for INSTALL within a source directory, because that will
+ # break other packages using the cache if that directory is
+ # removed, or if the value is a relative name.
+ INSTALL=$ac_install_sh
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5
+$as_echo "$INSTALL" >&6; }
+
+# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
+# It thinks the first close brace ends the variable substitution.
+test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
+
+test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
+
+test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5
+$as_echo_n "checking whether build environment is sane... " >&6; }
+# 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]*)
+ as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5;;
+esac
+case $srcdir in
+ *[\\\"\#\$\&\'\`$am_lf\ \ ]*)
+ as_fn_error $? "unsafe srcdir value: '$srcdir'" "$LINENO" 5;;
+esac
+
+# Do 'set' in a subshell so we don't clobber the current shell's
+# arguments. Must try -L first in case configure is actually a
+# symlink; some systems play weird games with the mod time of symlinks
+# (eg FreeBSD returns the mod time of the symlink's containing
+# directory).
+if (
+ am_has_slept=no
+ for am_try in 1 2; do
+ echo "timestamp, slept: $am_has_slept" > conftest.file
+ set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
+ if test "$*" = "X"; then
+ # -L didn't work.
+ set X `ls -t "$srcdir/configure" conftest.file`
+ fi
+ if test "$*" != "X $srcdir/configure conftest.file" \
+ && test "$*" != "X conftest.file $srcdir/configure"; then
+
+ # 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".
+ as_fn_error $? "ls -t appears to fail. Make sure there is not a broken
+ alias in your environment" "$LINENO" 5
+ fi
+ if test "$2" = conftest.file || test $am_try -eq 2; then
+ break
+ fi
+ # Just in case.
+ sleep 1
+ am_has_slept=yes
+ done
+ test "$2" = conftest.file
+ )
+then
+ # Ok.
+ :
+else
+ as_fn_error $? "newly created file is older than distributed files!
+Check your system clock" "$LINENO" 5
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+# 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
+
+rm -f conftest.file
+
+test "$program_prefix" != NONE &&
+ program_transform_name="s&^&$program_prefix&;$program_transform_name"
+# Use a double $ so make ignores it.
+test "$program_suffix" != NONE &&
+ program_transform_name="s&\$&$program_suffix&;$program_transform_name"
+# Double any \ or $.
+# By default was `s,x,x', remove it if useless.
+ac_script='s/[\\$]/&&/g;s/;s,x,x,$//'
+program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"`
+
+# Expand $ac_aux_dir to an absolute path.
+am_aux_dir=`cd "$ac_aux_dir" && pwd`
+
+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=
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: 'missing' script is too old or missing" >&5
+$as_echo "$as_me: WARNING: 'missing' script is too old or missing" >&2;}
+fi
+
+if test x"${install_sh+set}" != 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
+
+# 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.
+if test "$cross_compiling" != no; then
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
+set dummy ${ac_tool_prefix}strip; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_STRIP+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$STRIP"; then
+ ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_STRIP="${ac_tool_prefix}strip"
+ $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
+
+fi
+fi
+STRIP=$ac_cv_prog_STRIP
+if test -n "$STRIP"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5
+$as_echo "$STRIP" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_STRIP"; then
+ ac_ct_STRIP=$STRIP
+ # Extract the first word of "strip", so it can be a program name with args.
+set dummy strip; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_STRIP+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_STRIP"; then
+ ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_STRIP="strip"
+ $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
+
+fi
+fi
+ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
+if test -n "$ac_ct_STRIP"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5
+$as_echo "$ac_ct_STRIP" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_STRIP" = x; then
+ STRIP=":"
+ 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
+ STRIP=$ac_ct_STRIP
+ fi
+else
+ STRIP="$ac_cv_prog_STRIP"
+fi
+
+fi
+INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5
+$as_echo_n "checking for a thread-safe mkdir -p... " >&6; }
+if test -z "$MKDIR_P"; then
+ if ${ac_cv_path_mkdir+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_prog in mkdir gmkdir; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext" || continue
+ case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #(
+ 'mkdir (GNU coreutils) '* | \
+ 'mkdir (coreutils) '* | \
+ 'mkdir (fileutils) '4.1*)
+ ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext
+ break 3;;
+ esac
+ done
+ done
+ done
+IFS=$as_save_IFS
+
+fi
+
+ test -d ./--version && rmdir ./--version
+ if test "${ac_cv_path_mkdir+set}" = set; then
+ MKDIR_P="$ac_cv_path_mkdir -p"
+ else
+ # As a last resort, use the slow shell script. Don't cache a
+ # value for MKDIR_P within a source directory, because that will
+ # break other packages using the cache if that directory is
+ # removed, or if the value is a relative name.
+ MKDIR_P="$ac_install_sh -d"
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5
+$as_echo "$MKDIR_P" >&6; }
+
+for ac_prog in gawk mawk nawk awk
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; 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_prog_AWK+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$AWK"; then
+ ac_cv_prog_AWK="$AWK" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_AWK="$ac_prog"
+ $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
+
+fi
+fi
+AWK=$ac_cv_prog_AWK
+if test -n "$AWK"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5
+$as_echo "$AWK" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$AWK" && break
+done
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5
+$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; }
+set x ${MAKE-make}
+ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
+if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat >conftest.make <<\_ACEOF
+SHELL = /bin/sh
+all:
+ @echo '@@@%%%=$(MAKE)=@@@%%%'
+_ACEOF
+# GNU make sometimes prints "make[1]: Entering ...", which would confuse us.
+case `${MAKE-make} -f conftest.make 2>/dev/null` in
+ *@@@%%%=?*=@@@%%%*)
+ eval ac_cv_prog_make_${ac_make}_set=yes;;
+ *)
+ eval ac_cv_prog_make_${ac_make}_set=no;;
+esac
+rm -f conftest.make
+fi
+if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ SET_MAKE=
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ SET_MAKE="MAKE=${MAKE-make}"
+fi
+
+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
+
+# Check whether --enable-silent-rules was given.
+if test "${enable_silent_rules+set}" = set; then :
+ enableval=$enable_silent_rules;
+fi
+
+case $enable_silent_rules in # (((
+ yes) AM_DEFAULT_VERBOSITY=0;;
+ no) AM_DEFAULT_VERBOSITY=1;;
+ *) AM_DEFAULT_VERBOSITY=1;;
+esac
+am_make=${MAKE-make}
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5
+$as_echo_n "checking whether $am_make supports nested variables... " >&6; }
+if ${am_cv_make_support_nested_variables+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ 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
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5
+$as_echo "$am_cv_make_support_nested_variables" >&6; }
+if test $am_cv_make_support_nested_variables = yes; then
+ AM_V='$(V)'
+ AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)'
+else
+ AM_V=$AM_DEFAULT_VERBOSITY
+ AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY
+fi
+AM_BACKSLASH='\'
+
+if test "`cd $srcdir && pwd`" != "`pwd`"; then
+ # Use -I$(srcdir) only when $(srcdir) != ., so that make's output
+ # is not polluted with repeated "-I."
+ am__isrc=' -I$(srcdir)'
+ # test to see if srcdir already configured
+ if test -f $srcdir/config.status; then
+ as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5
+ fi
+fi
+
+# test whether we have cygpath
+if test -z "$CYGPATH_W"; then
+ if (cygpath --version) >/dev/null 2>/dev/null; then
+ CYGPATH_W='cygpath -w'
+ else
+ CYGPATH_W=echo
+ fi
+fi
+
+
+# Define the identity of the package.
+ PACKAGE='babl'
+ VERSION='0.1.18'
+
+
+# Some tools Automake needs.
+
+ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"}
+
+
+AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"}
+
+
+AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"}
+
+
+AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"}
+
+
+MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"}
+
+# For better backward compatibility. To be removed once Automake 1.9.x
+# dies out for good. For more background, see:
+# <http://lists.gnu.org/archive/html/automake/2012-07/msg00001.html>
+# <http://lists.gnu.org/archive/html/automake/2012-07/msg00014.html>
+mkdir_p='$(MKDIR_P)'
+
+# We need awk for the "check" target (and possibly the TAP driver). The
+# system "awk" is bad on some platforms.
+# Always define AMTAR for backward compatibility. Yes, it's still used
+# in the wild :-( We should find a proper way to deprecate it ...
+AMTAR='$${TAR-tar}'
+
+
+# We'll loop over all known methods to create a tar archive until one works.
+_am_tools='gnutar pax cpio none'
+
+am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'
+
+
+
+
+
+
+# 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: <http://austingroupbugs.net/view.php?id=542>
+
+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: <http://www.gnu.org/software/coreutils/>.
+
+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
+
+
+# Enable silent build rules by default, requires at least
+# Automake-1.11. Disable by either passing --disable-silent-rules to
+# configure or passing V=1 to make
+# Check whether --enable-silent-rules was given.
+if test "${enable_silent_rules+set}" = set; then :
+ enableval=$enable_silent_rules;
+fi
+
+case $enable_silent_rules in # (((
+ yes) AM_DEFAULT_VERBOSITY=0;;
+ no) AM_DEFAULT_VERBOSITY=1;;
+ *) AM_DEFAULT_VERBOSITY=0;;
+esac
+am_make=${MAKE-make}
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5
+$as_echo_n "checking whether $am_make supports nested variables... " >&6; }
+if ${am_cv_make_support_nested_variables+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ 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
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5
+$as_echo "$am_cv_make_support_nested_variables" >&6; }
+if test $am_cv_make_support_nested_variables = yes; then
+ AM_V='$(V)'
+ AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)'
+else
+ AM_V=$AM_DEFAULT_VERBOSITY
+ AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY
+fi
+AM_BACKSLASH='\'
+
+
+# Prefer clang on OSX, because GCC isn't updated
+
+case "$build_os" in
+ darwin10.* | darwin9.* | darwin8.*)
+ ;;
+ darwin*)
+ prefered_cc="clang"
+ prefered_cxx="clang++"
+ ;;
+ *)
+ ;;
+esac
+
+if test -z "$CC" && test -n "$prefered_cc"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: setting CC to $prefered_cc for $build_os" >&5
+$as_echo "$as_me: setting CC to $prefered_cc for $build_os" >&6;}
+ CC=$prefered_cc
+fi
+
+if test -z "$CXX" && test -n "$prefered_cc"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: setting CXX to $prefered_cxx for $build_os" >&5
+$as_echo "$as_me: setting CXX to $prefered_cxx for $build_os" >&6;}
+ CXX=$prefered_cxx
+fi
+
+# Check for programs
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
+set dummy ${ac_tool_prefix}gcc; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_CC+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_CC="${ac_tool_prefix}gcc"
+ $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
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_CC"; then
+ ac_ct_CC=$CC
+ # Extract the first word of "gcc", so it can be a program name with args.
+set dummy gcc; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_CC+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_CC"; then
+ ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_CC="gcc"
+ $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
+
+fi
+fi
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
+$as_echo "$ac_ct_CC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_CC" = x; then
+ CC=""
+ 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
+ CC=$ac_ct_CC
+ fi
+else
+ CC="$ac_cv_prog_CC"
+fi
+
+if test -z "$CC"; then
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
+set dummy ${ac_tool_prefix}cc; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_CC+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_CC="${ac_tool_prefix}cc"
+ $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
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ fi
+fi
+if test -z "$CC"; then
+ # Extract the first word of "cc", so it can be a program name with args.
+set dummy cc; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_CC+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+ ac_prog_rejected=no
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
+ ac_prog_rejected=yes
+ continue
+ fi
+ ac_cv_prog_CC="cc"
+ $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
+
+if test $ac_prog_rejected = yes; then
+ # We found a bogon in the path, so make sure we never use it.
+ set dummy $ac_cv_prog_CC
+ shift
+ if test $# != 0; then
+ # We chose a different compiler from the bogus one.
+ # However, it has the same basename, so the bogon will be chosen
+ # first if we set CC to just the basename; use the full file name.
+ shift
+ ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
+ fi
+fi
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$CC"; then
+ if test -n "$ac_tool_prefix"; then
+ for ac_prog in cl.exe
+ do
+ # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_CC+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
+ $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
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$CC" && break
+ done
+fi
+if test -z "$CC"; then
+ ac_ct_CC=$CC
+ for ac_prog in cl.exe
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_CC+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_CC"; then
+ ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_CC="$ac_prog"
+ $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
+
+fi
+fi
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
+$as_echo "$ac_ct_CC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$ac_ct_CC" && break
+done
+
+ if test "x$ac_ct_CC" = x; then
+ CC=""
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $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
+ CC=$ac_ct_CC
+ fi
+fi
+
+fi
+
+
+test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "no acceptable C compiler found in \$PATH
+See \`config.log' for more details" "$LINENO" 5; }
+
+# Provide some information about the compiler.
+$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
+set X $ac_compile
+ac_compiler=$2
+for ac_option in --version -v -V -qversion; do
+ { { ac_try="$ac_compiler $ac_option >&5"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_compiler $ac_option >&5") 2>conftest.err
+ ac_status=$?
+ if test -s conftest.err; then
+ sed '10a\
+... rest of stderr output deleted ...
+ 10q' conftest.err >conftest.er1
+ cat conftest.er1 >&5
+ fi
+ rm -f conftest.er1 conftest.err
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }
+done
+
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+ac_clean_files_save=$ac_clean_files
+ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out"
+# Try to create an executable without -o first, disregard a.out.
+# It will help us diagnose broken compilers, and finding out an intuition
+# of exeext.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5
+$as_echo_n "checking whether the C compiler works... " >&6; }
+ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
+
+# The possible output files:
+ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*"
+
+ac_rmfiles=
+for ac_file in $ac_files
+do
+ case $ac_file in
+ *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;
+ * ) ac_rmfiles="$ac_rmfiles $ac_file";;
+ esac
+done
+rm -f $ac_rmfiles
+
+if { { ac_try="$ac_link_default"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_link_default") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then :
+ # Autoconf-2.13 could set the ac_cv_exeext variable to `no'.
+# So ignore a value of `no', otherwise this would lead to `EXEEXT = no'
+# in a Makefile. We should not override ac_cv_exeext if it was cached,
+# so that the user can short-circuit this test for compilers unknown to
+# Autoconf.
+for ac_file in $ac_files ''
+do
+ test -f "$ac_file" || continue
+ case $ac_file in
+ *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj )
+ ;;
+ [ab].out )
+ # We found the default executable, but exeext='' is most
+ # certainly right.
+ break;;
+ *.* )
+ if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no;
+ then :; else
+ ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
+ fi
+ # We set ac_cv_exeext here because the later test for it is not
+ # safe: cross compilers may not add the suffix if given an `-o'
+ # argument, so we may need to know it at that point already.
+ # Even if this section looks crufty: it has the advantage of
+ # actually working.
+ break;;
+ * )
+ break;;
+ esac
+done
+test "$ac_cv_exeext" = no && ac_cv_exeext=
+
+else
+ ac_file=''
+fi
+if test -z "$ac_file"; then :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+$as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error 77 "C compiler cannot create executables
+See \`config.log' for more details" "$LINENO" 5; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5
+$as_echo_n "checking for C compiler default output file name... " >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5
+$as_echo "$ac_file" >&6; }
+ac_exeext=$ac_cv_exeext
+
+rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out
+ac_clean_files=$ac_clean_files_save
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5
+$as_echo_n "checking for suffix of executables... " >&6; }
+if { { ac_try="$ac_link"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_link") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then :
+ # If both `conftest.exe' and `conftest' are `present' (well, observable)
+# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will
+# work properly (i.e., refer to `conftest.exe'), while it won't with
+# `rm'.
+for ac_file in conftest.exe conftest conftest.*; do
+ test -f "$ac_file" || continue
+ case $ac_file in
+ *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;
+ *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
+ break;;
+ * ) break;;
+ esac
+done
+else
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "cannot compute suffix of executables: cannot compile and link
+See \`config.log' for more details" "$LINENO" 5; }
+fi
+rm -f conftest conftest$ac_cv_exeext
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5
+$as_echo "$ac_cv_exeext" >&6; }
+
+rm -f conftest.$ac_ext
+EXEEXT=$ac_cv_exeext
+ac_exeext=$EXEEXT
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdio.h>
+int
+main ()
+{
+FILE *f = fopen ("conftest.out", "w");
+ return ferror (f) || fclose (f) != 0;
+
+ ;
+ return 0;
+}
+_ACEOF
+ac_clean_files="$ac_clean_files conftest.out"
+# Check that the compiler produces executables we can run. If not, either
+# the compiler is broken, or we cross compile.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5
+$as_echo_n "checking whether we are cross compiling... " >&6; }
+if test "$cross_compiling" != yes; then
+ { { ac_try="$ac_link"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_link") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }
+ if { ac_try='./conftest$ac_cv_exeext'
+ { { case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_try") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; }; then
+ cross_compiling=no
+ else
+ if test "$cross_compiling" = maybe; then
+ cross_compiling=yes
+ else
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "cannot run C compiled programs.
+If you meant to cross compile, use \`--host'.
+See \`config.log' for more details" "$LINENO" 5; }
+ fi
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5
+$as_echo "$cross_compiling" >&6; }
+
+rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out
+ac_clean_files=$ac_clean_files_save
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5
+$as_echo_n "checking for suffix of object files... " >&6; }
+if ${ac_cv_objext+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.o conftest.obj
+if { { ac_try="$ac_compile"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_compile") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then :
+ for ac_file in conftest.o conftest.obj conftest.*; do
+ test -f "$ac_file" || continue;
+ case $ac_file in
+ *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;;
+ *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`
+ break;;
+ esac
+done
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "cannot compute suffix of object files: cannot compile
+See \`config.log' for more details" "$LINENO" 5; }
+fi
+rm -f conftest.$ac_cv_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5
+$as_echo "$ac_cv_objext" >&6; }
+OBJEXT=$ac_cv_objext
+ac_objext=$OBJEXT
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5
+$as_echo_n "checking whether we are using the GNU C compiler... " >&6; }
+if ${ac_cv_c_compiler_gnu+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+#ifndef __GNUC__
+ choke me
+#endif
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_compiler_gnu=yes
+else
+ ac_compiler_gnu=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ac_cv_c_compiler_gnu=$ac_compiler_gnu
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5
+$as_echo "$ac_cv_c_compiler_gnu" >&6; }
+if test $ac_compiler_gnu = yes; then
+ GCC=yes
+else
+ GCC=
+fi
+ac_test_CFLAGS=${CFLAGS+set}
+ac_save_CFLAGS=$CFLAGS
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
+$as_echo_n "checking whether $CC accepts -g... " >&6; }
+if ${ac_cv_prog_cc_g+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_save_c_werror_flag=$ac_c_werror_flag
+ ac_c_werror_flag=yes
+ ac_cv_prog_cc_g=no
+ CFLAGS="-g"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_prog_cc_g=yes
+else
+ CFLAGS=""
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+
+else
+ ac_c_werror_flag=$ac_save_c_werror_flag
+ CFLAGS="-g"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_prog_cc_g=yes
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ ac_c_werror_flag=$ac_save_c_werror_flag
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5
+$as_echo "$ac_cv_prog_cc_g" >&6; }
+if test "$ac_test_CFLAGS" = set; then
+ CFLAGS=$ac_save_CFLAGS
+elif test $ac_cv_prog_cc_g = yes; then
+ if test "$GCC" = yes; then
+ CFLAGS="-g -O2"
+ else
+ CFLAGS="-g"
+ fi
+else
+ if test "$GCC" = yes; then
+ CFLAGS="-O2"
+ else
+ CFLAGS=
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5
+$as_echo_n "checking for $CC option to accept ISO C89... " >&6; }
+if ${ac_cv_prog_cc_c89+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_cv_prog_cc_c89=no
+ac_save_CC=$CC
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdarg.h>
+#include <stdio.h>
+struct stat;
+/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */
+struct buf { int x; };
+FILE * (*rcsopen) (struct buf *, struct stat *, int);
+static char *e (p, i)
+ char **p;
+ int i;
+{
+ return p[i];
+}
+static char *f (char * (*g) (char **, int), char **p, ...)
+{
+ char *s;
+ va_list v;
+ va_start (v,p);
+ s = g (p, va_arg (v,int));
+ va_end (v);
+ return s;
+}
+
+/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has
+ function prototypes and stuff, but not '\xHH' hex character constants.
+ These don't provoke an error unfortunately, instead are silently treated
+ as 'x'. The following induces an error, until -std is added to get
+ proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an
+ array size at least. It's necessary to write '\x00'==0 to get something
+ that's true only with -std. */
+int osf4_cc_array ['\x00' == 0 ? 1 : -1];
+
+/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters
+ inside strings and character constants. */
+#define FOO(x) 'x'
+int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1];
+
+int test (int i, double x);
+struct s1 {int (*f) (int a);};
+struct s2 {int (*f) (double a);};
+int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
+int argc;
+char **argv;
+int
+main ()
+{
+return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1];
+ ;
+ return 0;
+}
+_ACEOF
+for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \
+ -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
+do
+ CC="$ac_save_CC $ac_arg"
+ if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_prog_cc_c89=$ac_arg
+fi
+rm -f core conftest.err conftest.$ac_objext
+ test "x$ac_cv_prog_cc_c89" != "xno" && break
+done
+rm -f conftest.$ac_ext
+CC=$ac_save_CC
+
+fi
+# AC_CACHE_VAL
+case "x$ac_cv_prog_cc_c89" in
+ x)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
+$as_echo "none needed" >&6; } ;;
+ xno)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
+$as_echo "unsupported" >&6; } ;;
+ *)
+ CC="$CC $ac_cv_prog_cc_c89"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5
+$as_echo "$ac_cv_prog_cc_c89" >&6; } ;;
+esac
+if test "x$ac_cv_prog_cc_c89" != xno; then :
+
+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
+
+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"
+
+
+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.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for style of include used by $am_make" >&5
+$as_echo_n "checking for style of include used by $am_make... " >&6; }
+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
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $_am_result" >&5
+$as_echo "$_am_result" >&6; }
+rm -f confinc confmf
+
+# Check whether --enable-dependency-tracking was given.
+if test "${enable_dependency_tracking+set}" = set; then :
+ enableval=$enable_dependency_tracking;
+fi
+
+if test "x$enable_dependency_tracking" != xno; then
+ am_depcomp="$ac_aux_dir/depcomp"
+ AMDEPBACKSLASH='\'
+ am__nodep='_no'
+fi
+ if test "x$enable_dependency_tracking" != xno; then
+ AMDEP_TRUE=
+ AMDEP_FALSE='#'
+else
+ AMDEP_TRUE='#'
+ AMDEP_FALSE=
+fi
+
+
+
+depcc="$CC" am_compiler_list=
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5
+$as_echo_n "checking dependency style of $depcc... " >&6; }
+if ${am_cv_CC_dependencies_compiler_type+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ 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_CC_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
+ case " $depcc " in #(
+ *\ -arch\ *\ -arch\ *) am__universal=true ;;
+ esac
+
+ for depmode in $am_compiler_list; do
+ # Setup a source with many dependencies, because some compilers
+ # like to wrap large dependency lists on column 80 (with \), and
+ # we should not choose a depcomp mode which is confused by this.
+ #
+ # We need to recreate these files for each test, as the compiler may
+ # overwrite some of them when testing with obscure command lines.
+ # This happens at least with the AIX C compiler.
+ : > sub/conftest.c
+ for i in 1 2 3 4 5 6; do
+ echo '#include "conftst'$i'.h"' >> sub/conftest.c
+ # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with
+ # Solaris 10 /bin/sh.
+ echo '/* dummy */' > sub/conftst$i.h
+ done
+ echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
+
+ # 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_CC_dependencies_compiler_type=$depmode
+ break
+ fi
+ fi
+ done
+
+ cd ..
+ rm -rf conftest.dir
+else
+ am_cv_CC_dependencies_compiler_type=none
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5
+$as_echo "$am_cv_CC_dependencies_compiler_type" >&6; }
+CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type
+
+ if
+ test "x$enable_dependency_tracking" != xno \
+ && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then
+ am__fastdepCC_TRUE=
+ am__fastdepCC_FALSE='#'
+else
+ am__fastdepCC_TRUE='#'
+ am__fastdepCC_FALSE=
+fi
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C99" >&5
+$as_echo_n "checking for $CC option to accept ISO C99... " >&6; }
+if ${ac_cv_prog_cc_c99+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_cv_prog_cc_c99=no
+ac_save_CC=$CC
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdarg.h>
+#include <stdbool.h>
+#include <stdlib.h>
+#include <wchar.h>
+#include <stdio.h>
+
+// Check varargs macros. These examples are taken from C99 6.10.3.5.
+#define debug(...) fprintf (stderr, __VA_ARGS__)
+#define showlist(...) puts (#__VA_ARGS__)
+#define report(test,...) ((test) ? puts (#test) : printf (__VA_ARGS__))
+static void
+test_varargs_macros (void)
+{
+ int x = 1234;
+ int y = 5678;
+ debug ("Flag");
+ debug ("X = %d\n", x);
+ showlist (The first, second, and third items.);
+ report (x>y, "x is %d but y is %d", x, y);
+}
+
+// Check long long types.
+#define BIG64 18446744073709551615ull
+#define BIG32 4294967295ul
+#define BIG_OK (BIG64 / BIG32 == 4294967297ull && BIG64 % BIG32 == 0)
+#if !BIG_OK
+ your preprocessor is broken;
+#endif
+#if BIG_OK
+#else
+ your preprocessor is broken;
+#endif
+static long long int bignum = -9223372036854775807LL;
+static unsigned long long int ubignum = BIG64;
+
+struct incomplete_array
+{
+ int datasize;
+ double data[];
+};
+
+struct named_init {
+ int number;
+ const wchar_t *name;
+ double average;
+};
+
+typedef const char *ccp;
+
+static inline int
+test_restrict (ccp restrict text)
+{
+ // See if C++-style comments work.
+ // Iterate through items via the restricted pointer.
+ // Also check for declarations in for loops.
+ for (unsigned int i = 0; *(text+i) != '\0'; ++i)
+ continue;
+ return 0;
+}
+
+// Check varargs and va_copy.
+static void
+test_varargs (const char *format, ...)
+{
+ va_list args;
+ va_start (args, format);
+ va_list args_copy;
+ va_copy (args_copy, args);
+
+ const char *str;
+ int number;
+ float fnumber;
+
+ while (*format)
+ {
+ switch (*format++)
+ {
+ case 's': // string
+ str = va_arg (args_copy, const char *);
+ break;
+ case 'd': // int
+ number = va_arg (args_copy, int);
+ break;
+ case 'f': // float
+ fnumber = va_arg (args_copy, double);
+ break;
+ default:
+ break;
+ }
+ }
+ va_end (args_copy);
+ va_end (args);
+}
+
+int
+main ()
+{
+
+ // Check bool.
+ _Bool success = false;
+
+ // Check restrict.
+ if (test_restrict ("String literal") == 0)
+ success = true;
+ char *restrict newvar = "Another string";
+
+ // Check varargs.
+ test_varargs ("s, d' f .", "string", 65, 34.234);
+ test_varargs_macros ();
+
+ // Check flexible array members.
+ struct incomplete_array *ia =
+ malloc (sizeof (struct incomplete_array) + (sizeof (double) * 10));
+ ia->datasize = 10;
+ for (int i = 0; i < ia->datasize; ++i)
+ ia->data[i] = i * 1.234;
+
+ // Check named initializers.
+ struct named_init ni = {
+ .number = 34,
+ .name = L"Test wide string",
+ .average = 543.34343,
+ };
+
+ ni.number = 58;
+
+ int dynamic_array[ni.number];
+ dynamic_array[ni.number - 1] = 543;
+
+ // work around unused variable warnings
+ return (!success || bignum == 0LL || ubignum == 0uLL || newvar[0] == 'x'
+ || dynamic_array[ni.number - 1] != 543);
+
+ ;
+ return 0;
+}
+_ACEOF
+for ac_arg in '' -std=gnu99 -std=c99 -c99 -AC99 -D_STDC_C99= -qlanglvl=extc99
+do
+ CC="$ac_save_CC $ac_arg"
+ if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_prog_cc_c99=$ac_arg
+fi
+rm -f core conftest.err conftest.$ac_objext
+ test "x$ac_cv_prog_cc_c99" != "xno" && break
+done
+rm -f conftest.$ac_ext
+CC=$ac_save_CC
+
+fi
+# AC_CACHE_VAL
+case "x$ac_cv_prog_cc_c99" in
+ x)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
+$as_echo "none needed" >&6; } ;;
+ xno)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
+$as_echo "unsupported" >&6; } ;;
+ *)
+ CC="$CC $ac_cv_prog_cc_c99"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c99" >&5
+$as_echo "$ac_cv_prog_cc_c99" >&6; } ;;
+esac
+if test "x$ac_cv_prog_cc_c99" != xno; then :
+
+fi
+
+
+
+# Initialize libtool
+
+case `pwd` in
+ *\ * | *\ *)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5
+$as_echo "$as_me: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&2;} ;;
+esac
+
+
+
+macro_version='2.4.6'
+macro_revision='2.4.6'
+
+
+
+
+
+
+
+
+
+
+
+
+
+ltmain=$ac_aux_dir/ltmain.sh
+
+# Backslashify metacharacters that are still active within
+# double-quoted strings.
+sed_quote_subst='s/\(["`$\\]\)/\\\1/g'
+
+# Same as above, but do not quote variable references.
+double_quote_subst='s/\(["`\\]\)/\\\1/g'
+
+# Sed substitution to delay expansion of an escaped shell variable in a
+# double_quote_subst'ed string.
+delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'
+
+# Sed substitution to delay expansion of an escaped single quote.
+delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g'
+
+# Sed substitution to avoid accidental globbing in evaled expressions
+no_glob_subst='s/\*/\\\*/g'
+
+ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO
+ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5
+$as_echo_n "checking how to print strings... " >&6; }
+# Test print first, because it will be a builtin if present.
+if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \
+ test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then
+ ECHO='print -r --'
+elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then
+ ECHO='printf %s\n'
+else
+ # Use this function as a fallback that always works.
+ func_fallback_echo ()
+ {
+ eval 'cat <<_LTECHO_EOF
+$1
+_LTECHO_EOF'
+ }
+ ECHO='func_fallback_echo'
+fi
+
+# func_echo_all arg...
+# Invoke $ECHO with all args, space-separated.
+func_echo_all ()
+{
+ $ECHO ""
+}
+
+case $ECHO in
+ printf*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: printf" >&5
+$as_echo "printf" >&6; } ;;
+ print*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: print -r" >&5
+$as_echo "print -r" >&6; } ;;
+ *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: cat" >&5
+$as_echo "cat" >&6; } ;;
+esac
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5
+$as_echo_n "checking for a sed that does not truncate output... " >&6; }
+if ${ac_cv_path_SED+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/
+ for ac_i in 1 2 3 4 5 6 7; do
+ ac_script="$ac_script$as_nl$ac_script"
+ done
+ echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed
+ { ac_script=; unset ac_script;}
+ if test -z "$SED"; then
+ ac_path_SED_found=false
+ # Loop through the user's path and test for each of PROGNAME-LIST
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_prog in sed gsed; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ ac_path_SED="$as_dir/$ac_prog$ac_exec_ext"
+ as_fn_executable_p "$ac_path_SED" || continue
+# Check for GNU ac_path_SED and select it if it is found.
+ # Check for GNU $ac_path_SED
+case `"$ac_path_SED" --version 2>&1` in
+*GNU*)
+ ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;;
+*)
+ ac_count=0
+ $as_echo_n 0123456789 >"conftest.in"
+ while :
+ do
+ cat "conftest.in" "conftest.in" >"conftest.tmp"
+ mv "conftest.tmp" "conftest.in"
+ cp "conftest.in" "conftest.nl"
+ $as_echo '' >> "conftest.nl"
+ "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break
+ diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+ as_fn_arith $ac_count + 1 && ac_count=$as_val
+ if test $ac_count -gt ${ac_path_SED_max-0}; then
+ # Best one so far, save it but keep looking for a better one
+ ac_cv_path_SED="$ac_path_SED"
+ ac_path_SED_max=$ac_count
+ fi
+ # 10*(2^10) chars as input seems more than enough
+ test $ac_count -gt 10 && break
+ done
+ rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
+
+ $ac_path_SED_found && break 3
+ done
+ done
+ done
+IFS=$as_save_IFS
+ if test -z "$ac_cv_path_SED"; then
+ as_fn_error $? "no acceptable sed could be found in \$PATH" "$LINENO" 5
+ fi
+else
+ ac_cv_path_SED=$SED
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5
+$as_echo "$ac_cv_path_SED" >&6; }
+ SED="$ac_cv_path_SED"
+ rm -f conftest.sed
+
+test -z "$SED" && SED=sed
+Xsed="$SED -e 1s/^X//"
+
+
+
+
+
+
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5
+$as_echo_n "checking for grep that handles long lines and -e... " >&6; }
+if ${ac_cv_path_GREP+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -z "$GREP"; then
+ ac_path_GREP_found=false
+ # Loop through the user's path and test for each of PROGNAME-LIST
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_prog in grep ggrep; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext"
+ as_fn_executable_p "$ac_path_GREP" || continue
+# Check for GNU ac_path_GREP and select it if it is found.
+ # Check for GNU $ac_path_GREP
+case `"$ac_path_GREP" --version 2>&1` in
+*GNU*)
+ ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;;
+*)
+ ac_count=0
+ $as_echo_n 0123456789 >"conftest.in"
+ while :
+ do
+ cat "conftest.in" "conftest.in" >"conftest.tmp"
+ mv "conftest.tmp" "conftest.in"
+ cp "conftest.in" "conftest.nl"
+ $as_echo 'GREP' >> "conftest.nl"
+ "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break
+ diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+ as_fn_arith $ac_count + 1 && ac_count=$as_val
+ if test $ac_count -gt ${ac_path_GREP_max-0}; then
+ # Best one so far, save it but keep looking for a better one
+ ac_cv_path_GREP="$ac_path_GREP"
+ ac_path_GREP_max=$ac_count
+ fi
+ # 10*(2^10) chars as input seems more than enough
+ test $ac_count -gt 10 && break
+ done
+ rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
+
+ $ac_path_GREP_found && break 3
+ done
+ done
+ done
+IFS=$as_save_IFS
+ if test -z "$ac_cv_path_GREP"; then
+ as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
+ fi
+else
+ ac_cv_path_GREP=$GREP
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5
+$as_echo "$ac_cv_path_GREP" >&6; }
+ GREP="$ac_cv_path_GREP"
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5
+$as_echo_n "checking for egrep... " >&6; }
+if ${ac_cv_path_EGREP+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if echo a | $GREP -E '(a|b)' >/dev/null 2>&1
+ then ac_cv_path_EGREP="$GREP -E"
+ else
+ if test -z "$EGREP"; then
+ ac_path_EGREP_found=false
+ # Loop through the user's path and test for each of PROGNAME-LIST
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_prog in egrep; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext"
+ as_fn_executable_p "$ac_path_EGREP" || continue
+# Check for GNU ac_path_EGREP and select it if it is found.
+ # Check for GNU $ac_path_EGREP
+case `"$ac_path_EGREP" --version 2>&1` in
+*GNU*)
+ ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;;
+*)
+ ac_count=0
+ $as_echo_n 0123456789 >"conftest.in"
+ while :
+ do
+ cat "conftest.in" "conftest.in" >"conftest.tmp"
+ mv "conftest.tmp" "conftest.in"
+ cp "conftest.in" "conftest.nl"
+ $as_echo 'EGREP' >> "conftest.nl"
+ "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break
+ diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+ as_fn_arith $ac_count + 1 && ac_count=$as_val
+ if test $ac_count -gt ${ac_path_EGREP_max-0}; then
+ # Best one so far, save it but keep looking for a better one
+ ac_cv_path_EGREP="$ac_path_EGREP"
+ ac_path_EGREP_max=$ac_count
+ fi
+ # 10*(2^10) chars as input seems more than enough
+ test $ac_count -gt 10 && break
+ done
+ rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
+
+ $ac_path_EGREP_found && break 3
+ done
+ done
+ done
+IFS=$as_save_IFS
+ if test -z "$ac_cv_path_EGREP"; then
+ as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
+ fi
+else
+ ac_cv_path_EGREP=$EGREP
+fi
+
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5
+$as_echo "$ac_cv_path_EGREP" >&6; }
+ EGREP="$ac_cv_path_EGREP"
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5
+$as_echo_n "checking for fgrep... " >&6; }
+if ${ac_cv_path_FGREP+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1
+ then ac_cv_path_FGREP="$GREP -F"
+ else
+ if test -z "$FGREP"; then
+ ac_path_FGREP_found=false
+ # Loop through the user's path and test for each of PROGNAME-LIST
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_prog in fgrep; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ ac_path_FGREP="$as_dir/$ac_prog$ac_exec_ext"
+ as_fn_executable_p "$ac_path_FGREP" || continue
+# Check for GNU ac_path_FGREP and select it if it is found.
+ # Check for GNU $ac_path_FGREP
+case `"$ac_path_FGREP" --version 2>&1` in
+*GNU*)
+ ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_found=:;;
+*)
+ ac_count=0
+ $as_echo_n 0123456789 >"conftest.in"
+ while :
+ do
+ cat "conftest.in" "conftest.in" >"conftest.tmp"
+ mv "conftest.tmp" "conftest.in"
+ cp "conftest.in" "conftest.nl"
+ $as_echo 'FGREP' >> "conftest.nl"
+ "$ac_path_FGREP" FGREP < "conftest.nl" >"conftest.out" 2>/dev/null || break
+ diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+ as_fn_arith $ac_count + 1 && ac_count=$as_val
+ if test $ac_count -gt ${ac_path_FGREP_max-0}; then
+ # Best one so far, save it but keep looking for a better one
+ ac_cv_path_FGREP="$ac_path_FGREP"
+ ac_path_FGREP_max=$ac_count
+ fi
+ # 10*(2^10) chars as input seems more than enough
+ test $ac_count -gt 10 && break
+ done
+ rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
+
+ $ac_path_FGREP_found && break 3
+ done
+ done
+ done
+IFS=$as_save_IFS
+ if test -z "$ac_cv_path_FGREP"; then
+ as_fn_error $? "no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
+ fi
+else
+ ac_cv_path_FGREP=$FGREP
+fi
+
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_FGREP" >&5
+$as_echo "$ac_cv_path_FGREP" >&6; }
+ FGREP="$ac_cv_path_FGREP"
+
+
+test -z "$GREP" && GREP=grep
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+# Check whether --with-gnu-ld was given.
+if test "${with_gnu_ld+set}" = set; then :
+ withval=$with_gnu_ld; test no = "$withval" || with_gnu_ld=yes
+else
+ with_gnu_ld=no
+fi
+
+ac_prog=ld
+if test yes = "$GCC"; then
+ # Check if gcc -print-prog-name=ld gives a path.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5
+$as_echo_n "checking for ld used by $CC... " >&6; }
+ case $host in
+ *-*-mingw*)
+ # gcc leaves a trailing carriage return, which upsets mingw
+ ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
+ *)
+ ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
+ esac
+ case $ac_prog in
+ # Accept absolute paths.
+ [\\/]* | ?:[\\/]*)
+ re_direlt='/[^/][^/]*/\.\./'
+ # Canonicalize the pathname of ld
+ ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'`
+ while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do
+ ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"`
+ done
+ test -z "$LD" && LD=$ac_prog
+ ;;
+ "")
+ # If it fails, then pretend we aren't using GCC.
+ ac_prog=ld
+ ;;
+ *)
+ # If it is relative, then search for the first ld in PATH.
+ with_gnu_ld=unknown
+ ;;
+ esac
+elif test yes = "$with_gnu_ld"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5
+$as_echo_n "checking for GNU ld... " >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5
+$as_echo_n "checking for non-GNU ld... " >&6; }
+fi
+if ${lt_cv_path_LD+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -z "$LD"; then
+ lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR
+ for ac_dir in $PATH; do
+ IFS=$lt_save_ifs
+ test -z "$ac_dir" && ac_dir=.
+ if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
+ lt_cv_path_LD=$ac_dir/$ac_prog
+ # Check to see if the program is GNU ld. I'd rather use --version,
+ # but apparently some variants of GNU ld only accept -v.
+ # Break only if it was the GNU/non-GNU ld that we prefer.
+ case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in
+ *GNU* | *'with BFD'*)
+ test no != "$with_gnu_ld" && break
+ ;;
+ *)
+ test yes != "$with_gnu_ld" && break
+ ;;
+ esac
+ fi
+ done
+ IFS=$lt_save_ifs
+else
+ lt_cv_path_LD=$LD # Let the user override the test with a path.
+fi
+fi
+
+LD=$lt_cv_path_LD
+if test -n "$LD"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LD" >&5
+$as_echo "$LD" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5
+$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; }
+if ${lt_cv_prog_gnu_ld+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ # I'd rather use --version here, but apparently some GNU lds only accept -v.
+case `$LD -v 2>&1 </dev/null` in
+*GNU* | *'with BFD'*)
+ lt_cv_prog_gnu_ld=yes
+ ;;
+*)
+ lt_cv_prog_gnu_ld=no
+ ;;
+esac
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_gnu_ld" >&5
+$as_echo "$lt_cv_prog_gnu_ld" >&6; }
+with_gnu_ld=$lt_cv_prog_gnu_ld
+
+
+
+
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for BSD- or MS-compatible name lister (nm)" >&5
+$as_echo_n "checking for BSD- or MS-compatible name lister (nm)... " >&6; }
+if ${lt_cv_path_NM+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$NM"; then
+ # Let the user override the test.
+ lt_cv_path_NM=$NM
+else
+ lt_nm_to_check=${ac_tool_prefix}nm
+ if test -n "$ac_tool_prefix" && test "$build" = "$host"; then
+ lt_nm_to_check="$lt_nm_to_check nm"
+ fi
+ for lt_tmp_nm in $lt_nm_to_check; do
+ lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR
+ for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do
+ IFS=$lt_save_ifs
+ test -z "$ac_dir" && ac_dir=.
+ tmp_nm=$ac_dir/$lt_tmp_nm
+ if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext"; then
+ # Check to see if the nm accepts a BSD-compat flag.
+ # Adding the 'sed 1q' prevents false positives on HP-UX, which says:
+ # nm: unknown option "B" ignored
+ # Tru64's nm complains that /dev/null is an invalid object file
+ # MSYS converts /dev/null to NUL, MinGW nm treats NUL as empty
+ case $build_os in
+ mingw*) lt_bad_file=conftest.nm/nofile ;;
+ *) lt_bad_file=/dev/null ;;
+ esac
+ case `"$tmp_nm" -B $lt_bad_file 2>&1 | sed '1q'` in
+ *$lt_bad_file* | *'Invalid file or object type'*)
+ lt_cv_path_NM="$tmp_nm -B"
+ break 2
+ ;;
+ *)
+ case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in
+ */dev/null*)
+ lt_cv_path_NM="$tmp_nm -p"
+ break 2
+ ;;
+ *)
+ lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but
+ continue # so that we can try to find one that supports BSD flags
+ ;;
+ esac
+ ;;
+ esac
+ fi
+ done
+ IFS=$lt_save_ifs
+ done
+ : ${lt_cv_path_NM=no}
+fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_NM" >&5
+$as_echo "$lt_cv_path_NM" >&6; }
+if test no != "$lt_cv_path_NM"; then
+ NM=$lt_cv_path_NM
+else
+ # Didn't find any BSD compatible name lister, look for dumpbin.
+ if test -n "$DUMPBIN"; then :
+ # Let the user override the test.
+ else
+ if test -n "$ac_tool_prefix"; then
+ for ac_prog in dumpbin "link -dump"
+ do
+ # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_DUMPBIN+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$DUMPBIN"; then
+ ac_cv_prog_DUMPBIN="$DUMPBIN" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_DUMPBIN="$ac_tool_prefix$ac_prog"
+ $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
+
+fi
+fi
+DUMPBIN=$ac_cv_prog_DUMPBIN
+if test -n "$DUMPBIN"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DUMPBIN" >&5
+$as_echo "$DUMPBIN" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$DUMPBIN" && break
+ done
+fi
+if test -z "$DUMPBIN"; then
+ ac_ct_DUMPBIN=$DUMPBIN
+ for ac_prog in dumpbin "link -dump"
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; 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_prog_ac_ct_DUMPBIN+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_DUMPBIN"; then
+ ac_cv_prog_ac_ct_DUMPBIN="$ac_ct_DUMPBIN" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_DUMPBIN="$ac_prog"
+ $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
+
+fi
+fi
+ac_ct_DUMPBIN=$ac_cv_prog_ac_ct_DUMPBIN
+if test -n "$ac_ct_DUMPBIN"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DUMPBIN" >&5
+$as_echo "$ac_ct_DUMPBIN" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$ac_ct_DUMPBIN" && break
+done
+
+ if test "x$ac_ct_DUMPBIN" = x; then
+ DUMPBIN=":"
+ 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
+ DUMPBIN=$ac_ct_DUMPBIN
+ fi
+fi
+
+ case `$DUMPBIN -symbols -headers /dev/null 2>&1 | sed '1q'` in
+ *COFF*)
+ DUMPBIN="$DUMPBIN -symbols -headers"
+ ;;
+ *)
+ DUMPBIN=:
+ ;;
+ esac
+ fi
+
+ if test : != "$DUMPBIN"; then
+ NM=$DUMPBIN
+ fi
+fi
+test -z "$NM" && NM=nm
+
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the name lister ($NM) interface" >&5
+$as_echo_n "checking the name lister ($NM) interface... " >&6; }
+if ${lt_cv_nm_interface+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_nm_interface="BSD nm"
+ echo "int some_variable = 0;" > conftest.$ac_ext
+ (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&5)
+ (eval "$ac_compile" 2>conftest.err)
+ cat conftest.err >&5
+ (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
+ (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out)
+ cat conftest.err >&5
+ (eval echo "\"\$as_me:$LINENO: output\"" >&5)
+ cat conftest.out >&5
+ if $GREP 'External.*some_variable' conftest.out > /dev/null; then
+ lt_cv_nm_interface="MS dumpbin"
+ fi
+ rm -f conftest*
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_nm_interface" >&5
+$as_echo "$lt_cv_nm_interface" >&6; }
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5
+$as_echo_n "checking whether ln -s works... " >&6; }
+LN_S=$as_ln_s
+if test "$LN_S" = "ln -s"; 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, using $LN_S" >&5
+$as_echo "no, using $LN_S" >&6; }
+fi
+
+# find the maximum length of command line arguments
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the maximum length of command line arguments" >&5
+$as_echo_n "checking the maximum length of command line arguments... " >&6; }
+if ${lt_cv_sys_max_cmd_len+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ i=0
+ teststring=ABCD
+
+ case $build_os in
+ msdosdjgpp*)
+ # On DJGPP, this test can blow up pretty badly due to problems in libc
+ # (any single argument exceeding 2000 bytes causes a buffer overrun
+ # during glob expansion). Even if it were fixed, the result of this
+ # check would be larger than it should be.
+ lt_cv_sys_max_cmd_len=12288; # 12K is about right
+ ;;
+
+ gnu*)
+ # Under GNU Hurd, this test is not required because there is
+ # no limit to the length of command line arguments.
+ # Libtool will interpret -1 as no limit whatsoever
+ lt_cv_sys_max_cmd_len=-1;
+ ;;
+
+ cygwin* | mingw* | cegcc*)
+ # On Win9x/ME, this test blows up -- it succeeds, but takes
+ # about 5 minutes as the teststring grows exponentially.
+ # Worse, since 9x/ME are not pre-emptively multitasking,
+ # you end up with a "frozen" computer, even though with patience
+ # the test eventually succeeds (with a max line length of 256k).
+ # Instead, let's just punt: use the minimum linelength reported by
+ # all of the supported platforms: 8192 (on NT/2K/XP).
+ lt_cv_sys_max_cmd_len=8192;
+ ;;
+
+ mint*)
+ # On MiNT this can take a long time and run out of memory.
+ lt_cv_sys_max_cmd_len=8192;
+ ;;
+
+ amigaos*)
+ # On AmigaOS with pdksh, this test takes hours, literally.
+ # So we just punt and use a minimum line length of 8192.
+ lt_cv_sys_max_cmd_len=8192;
+ ;;
+
+ bitrig* | darwin* | dragonfly* | freebsd* | netbsd* | openbsd*)
+ # This has been around since 386BSD, at least. Likely further.
+ if test -x /sbin/sysctl; then
+ lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax`
+ elif test -x /usr/sbin/sysctl; then
+ lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax`
+ else
+ lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs
+ fi
+ # And add a safety zone
+ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
+ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
+ ;;
+
+ interix*)
+ # We know the value 262144 and hardcode it with a safety zone (like BSD)
+ lt_cv_sys_max_cmd_len=196608
+ ;;
+
+ os2*)
+ # The test takes a long time on OS/2.
+ lt_cv_sys_max_cmd_len=8192
+ ;;
+
+ osf*)
+ # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure
+ # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not
+ # nice to cause kernel panics so lets avoid the loop below.
+ # First set a reasonable default.
+ lt_cv_sys_max_cmd_len=16384
+ #
+ if test -x /sbin/sysconfig; then
+ case `/sbin/sysconfig -q proc exec_disable_arg_limit` in
+ *1*) lt_cv_sys_max_cmd_len=-1 ;;
+ esac
+ fi
+ ;;
+ sco3.2v5*)
+ lt_cv_sys_max_cmd_len=102400
+ ;;
+ sysv5* | sco5v6* | sysv4.2uw2*)
+ kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null`
+ if test -n "$kargmax"; then
+ lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[ ]//'`
+ else
+ lt_cv_sys_max_cmd_len=32768
+ fi
+ ;;
+ *)
+ lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null`
+ if test -n "$lt_cv_sys_max_cmd_len" && \
+ test undefined != "$lt_cv_sys_max_cmd_len"; then
+ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
+ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
+ else
+ # Make teststring a little bigger before we do anything with it.
+ # a 1K string should be a reasonable start.
+ for i in 1 2 3 4 5 6 7 8; do
+ teststring=$teststring$teststring
+ done
+ SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}}
+ # If test is not a shell built-in, we'll probably end up computing a
+ # maximum length that is only half of the actual maximum length, but
+ # we can't tell.
+ while { test X`env echo "$teststring$teststring" 2>/dev/null` \
+ = "X$teststring$teststring"; } >/dev/null 2>&1 &&
+ test 17 != "$i" # 1/2 MB should be enough
+ do
+ i=`expr $i + 1`
+ teststring=$teststring$teststring
+ done
+ # Only check the string length outside the loop.
+ lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1`
+ teststring=
+ # Add a significant safety factor because C++ compilers can tack on
+ # massive amounts of additional arguments before passing them to the
+ # linker. It appears as though 1/2 is a usable value.
+ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2`
+ fi
+ ;;
+ esac
+
+fi
+
+if test -n "$lt_cv_sys_max_cmd_len"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_max_cmd_len" >&5
+$as_echo "$lt_cv_sys_max_cmd_len" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5
+$as_echo "none" >&6; }
+fi
+max_cmd_len=$lt_cv_sys_max_cmd_len
+
+
+
+
+
+
+: ${CP="cp -f"}
+: ${MV="mv -f"}
+: ${RM="rm -f"}
+
+if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
+ lt_unset=unset
+else
+ lt_unset=false
+fi
+
+
+
+
+
+# test EBCDIC or ASCII
+case `echo X|tr X '\101'` in
+ A) # ASCII based system
+ # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr
+ lt_SP2NL='tr \040 \012'
+ lt_NL2SP='tr \015\012 \040\040'
+ ;;
+ *) # EBCDIC based system
+ lt_SP2NL='tr \100 \n'
+ lt_NL2SP='tr \r\n \100\100'
+ ;;
+esac
+
+
+
+
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to $host format" >&5
+$as_echo_n "checking how to convert $build file names to $host format... " >&6; }
+if ${lt_cv_to_host_file_cmd+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $host in
+ *-*-mingw* )
+ case $build in
+ *-*-mingw* ) # actually msys
+ lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32
+ ;;
+ *-*-cygwin* )
+ lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32
+ ;;
+ * ) # otherwise, assume *nix
+ lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32
+ ;;
+ esac
+ ;;
+ *-*-cygwin* )
+ case $build in
+ *-*-mingw* ) # actually msys
+ lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin
+ ;;
+ *-*-cygwin* )
+ lt_cv_to_host_file_cmd=func_convert_file_noop
+ ;;
+ * ) # otherwise, assume *nix
+ lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin
+ ;;
+ esac
+ ;;
+ * ) # unhandled hosts (and "normal" native builds)
+ lt_cv_to_host_file_cmd=func_convert_file_noop
+ ;;
+esac
+
+fi
+
+to_host_file_cmd=$lt_cv_to_host_file_cmd
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_host_file_cmd" >&5
+$as_echo "$lt_cv_to_host_file_cmd" >&6; }
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to toolchain format" >&5
+$as_echo_n "checking how to convert $build file names to toolchain format... " >&6; }
+if ${lt_cv_to_tool_file_cmd+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ #assume ordinary cross tools, or native build.
+lt_cv_to_tool_file_cmd=func_convert_file_noop
+case $host in
+ *-*-mingw* )
+ case $build in
+ *-*-mingw* ) # actually msys
+ lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32
+ ;;
+ esac
+ ;;
+esac
+
+fi
+
+to_tool_file_cmd=$lt_cv_to_tool_file_cmd
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_tool_file_cmd" >&5
+$as_echo "$lt_cv_to_tool_file_cmd" >&6; }
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5
+$as_echo_n "checking for $LD option to reload object files... " >&6; }
+if ${lt_cv_ld_reload_flag+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_ld_reload_flag='-r'
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_reload_flag" >&5
+$as_echo "$lt_cv_ld_reload_flag" >&6; }
+reload_flag=$lt_cv_ld_reload_flag
+case $reload_flag in
+"" | " "*) ;;
+*) reload_flag=" $reload_flag" ;;
+esac
+reload_cmds='$LD$reload_flag -o $output$reload_objs'
+case $host_os in
+ cygwin* | mingw* | pw32* | cegcc*)
+ if test yes != "$GCC"; then
+ reload_cmds=false
+ fi
+ ;;
+ darwin*)
+ if test yes = "$GCC"; then
+ reload_cmds='$LTCC $LTCFLAGS -nostdlib $wl-r -o $output$reload_objs'
+ else
+ reload_cmds='$LD$reload_flag -o $output$reload_objs'
+ fi
+ ;;
+esac
+
+
+
+
+
+
+
+
+
+if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args.
+set dummy ${ac_tool_prefix}objdump; 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_prog_OBJDUMP+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$OBJDUMP"; then
+ ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump"
+ $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
+
+fi
+fi
+OBJDUMP=$ac_cv_prog_OBJDUMP
+if test -n "$OBJDUMP"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5
+$as_echo "$OBJDUMP" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_OBJDUMP"; then
+ ac_ct_OBJDUMP=$OBJDUMP
+ # Extract the first word of "objdump", so it can be a program name with args.
+set dummy objdump; 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_prog_ac_ct_OBJDUMP+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_OBJDUMP"; then
+ ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_OBJDUMP="objdump"
+ $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
+
+fi
+fi
+ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP
+if test -n "$ac_ct_OBJDUMP"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5
+$as_echo "$ac_ct_OBJDUMP" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_OBJDUMP" = x; then
+ OBJDUMP="false"
+ 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
+ OBJDUMP=$ac_ct_OBJDUMP
+ fi
+else
+ OBJDUMP="$ac_cv_prog_OBJDUMP"
+fi
+
+test -z "$OBJDUMP" && OBJDUMP=objdump
+
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to recognize dependent libraries" >&5
+$as_echo_n "checking how to recognize dependent libraries... " >&6; }
+if ${lt_cv_deplibs_check_method+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_file_magic_cmd='$MAGIC_CMD'
+lt_cv_file_magic_test_file=
+lt_cv_deplibs_check_method='unknown'
+# Need to set the preceding variable on all platforms that support
+# interlibrary dependencies.
+# 'none' -- dependencies not supported.
+# 'unknown' -- same as none, but documents that we really don't know.
+# 'pass_all' -- all dependencies passed with no checks.
+# 'test_compile' -- check by making test program.
+# 'file_magic [[regex]]' -- check by looking for files in library path
+# that responds to the $file_magic_cmd with a given extended regex.
+# If you have 'file' or equivalent on your system and you're not sure
+# whether 'pass_all' will *always* work, you probably want this one.
+
+case $host_os in
+aix[4-9]*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+beos*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+bsdi[45]*)
+ lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)'
+ lt_cv_file_magic_cmd='/usr/bin/file -L'
+ lt_cv_file_magic_test_file=/shlib/libc.so
+ ;;
+
+cygwin*)
+ # func_win32_libid is a shell function defined in ltmain.sh
+ lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
+ lt_cv_file_magic_cmd='func_win32_libid'
+ ;;
+
+mingw* | pw32*)
+ # Base MSYS/MinGW do not provide the 'file' command needed by
+ # func_win32_libid shell function, so use a weaker test based on 'objdump',
+ # unless we find 'file', for example because we are cross-compiling.
+ if ( file / ) >/dev/null 2>&1; then
+ lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
+ lt_cv_file_magic_cmd='func_win32_libid'
+ else
+ # Keep this pattern in sync with the one in func_win32_libid.
+ lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)'
+ lt_cv_file_magic_cmd='$OBJDUMP -f'
+ fi
+ ;;
+
+cegcc*)
+ # use the weaker test based on 'objdump'. See mingw*.
+ lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?'
+ lt_cv_file_magic_cmd='$OBJDUMP -f'
+ ;;
+
+darwin* | rhapsody*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+freebsd* | dragonfly*)
+ if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
+ case $host_cpu in
+ i*86 )
+ # Not sure whether the presence of OpenBSD here was a mistake.
+ # Let's accept both of them until this is cleared up.
+ lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library'
+ lt_cv_file_magic_cmd=/usr/bin/file
+ lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
+ ;;
+ esac
+ else
+ lt_cv_deplibs_check_method=pass_all
+ fi
+ ;;
+
+haiku*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+hpux10.20* | hpux11*)
+ lt_cv_file_magic_cmd=/usr/bin/file
+ case $host_cpu in
+ ia64*)
+ lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64'
+ lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so
+ ;;
+ hppa*64*)
+ lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]'
+ lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl
+ ;;
+ *)
+ lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9]\.[0-9]) shared library'
+ lt_cv_file_magic_test_file=/usr/lib/libc.sl
+ ;;
+ esac
+ ;;
+
+interix[3-9]*)
+ # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here
+ lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|\.a)$'
+ ;;
+
+irix5* | irix6* | nonstopux*)
+ case $LD in
+ *-32|*"-32 ") libmagic=32-bit;;
+ *-n32|*"-n32 ") libmagic=N32;;
+ *-64|*"-64 ") libmagic=64-bit;;
+ *) libmagic=never-match;;
+ esac
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+# This must be glibc/ELF.
+linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+netbsd*)
+ if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
+ lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$'
+ else
+ lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$'
+ fi
+ ;;
+
+newos6*)
+ lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)'
+ lt_cv_file_magic_cmd=/usr/bin/file
+ lt_cv_file_magic_test_file=/usr/lib/libnls.so
+ ;;
+
+*nto* | *qnx*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+openbsd* | bitrig*)
+ if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then
+ lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$'
+ else
+ lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$'
+ fi
+ ;;
+
+osf3* | osf4* | osf5*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+rdos*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+solaris*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+sysv4 | sysv4.3*)
+ case $host_vendor in
+ motorola)
+ lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]'
+ lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*`
+ ;;
+ ncr)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+ sequent)
+ lt_cv_file_magic_cmd='/bin/file'
+ lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )'
+ ;;
+ sni)
+ lt_cv_file_magic_cmd='/bin/file'
+ lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib"
+ lt_cv_file_magic_test_file=/lib/libc.so
+ ;;
+ siemens)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+ pc)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+ esac
+ ;;
+
+tpf*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+os2*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+esac
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5
+$as_echo "$lt_cv_deplibs_check_method" >&6; }
+
+file_magic_glob=
+want_nocaseglob=no
+if test "$build" = "$host"; then
+ case $host_os in
+ mingw* | pw32*)
+ if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then
+ want_nocaseglob=yes
+ else
+ file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[\1]\/[\1]\/g;/g"`
+ fi
+ ;;
+ esac
+fi
+
+file_magic_cmd=$lt_cv_file_magic_cmd
+deplibs_check_method=$lt_cv_deplibs_check_method
+test -z "$deplibs_check_method" && deplibs_check_method=unknown
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args.
+set dummy ${ac_tool_prefix}dlltool; 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_prog_DLLTOOL+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$DLLTOOL"; then
+ ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool"
+ $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
+
+fi
+fi
+DLLTOOL=$ac_cv_prog_DLLTOOL
+if test -n "$DLLTOOL"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5
+$as_echo "$DLLTOOL" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_DLLTOOL"; then
+ ac_ct_DLLTOOL=$DLLTOOL
+ # Extract the first word of "dlltool", so it can be a program name with args.
+set dummy dlltool; 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_prog_ac_ct_DLLTOOL+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_DLLTOOL"; then
+ ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_DLLTOOL="dlltool"
+ $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
+
+fi
+fi
+ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL
+if test -n "$ac_ct_DLLTOOL"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5
+$as_echo "$ac_ct_DLLTOOL" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_DLLTOOL" = x; then
+ DLLTOOL="false"
+ 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
+ DLLTOOL=$ac_ct_DLLTOOL
+ fi
+else
+ DLLTOOL="$ac_cv_prog_DLLTOOL"
+fi
+
+test -z "$DLLTOOL" && DLLTOOL=dlltool
+
+
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5
+$as_echo_n "checking how to associate runtime and link libraries... " >&6; }
+if ${lt_cv_sharedlib_from_linklib_cmd+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_sharedlib_from_linklib_cmd='unknown'
+
+case $host_os in
+cygwin* | mingw* | pw32* | cegcc*)
+ # two different shell functions defined in ltmain.sh;
+ # decide which one to use based on capabilities of $DLLTOOL
+ case `$DLLTOOL --help 2>&1` in
+ *--identify-strict*)
+ lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib
+ ;;
+ *)
+ lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback
+ ;;
+ esac
+ ;;
+*)
+ # fallback: assume linklib IS sharedlib
+ lt_cv_sharedlib_from_linklib_cmd=$ECHO
+ ;;
+esac
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5
+$as_echo "$lt_cv_sharedlib_from_linklib_cmd" >&6; }
+sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd
+test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO
+
+
+
+
+
+
+
+
+if test -n "$ac_tool_prefix"; then
+ for ac_prog in ar
+ do
+ # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_AR+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$AR"; then
+ ac_cv_prog_AR="$AR" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_AR="$ac_tool_prefix$ac_prog"
+ $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
+
+fi
+fi
+AR=$ac_cv_prog_AR
+if test -n "$AR"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
+$as_echo "$AR" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$AR" && break
+ done
+fi
+if test -z "$AR"; then
+ ac_ct_AR=$AR
+ for ac_prog in ar
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; 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_prog_ac_ct_AR+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_AR"; then
+ ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_AR="$ac_prog"
+ $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
+
+fi
+fi
+ac_ct_AR=$ac_cv_prog_ac_ct_AR
+if test -n "$ac_ct_AR"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
+$as_echo "$ac_ct_AR" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$ac_ct_AR" && break
+done
+
+ if test "x$ac_ct_AR" = x; then
+ AR="false"
+ 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
+ AR=$ac_ct_AR
+ fi
+fi
+
+: ${AR=ar}
+: ${AR_FLAGS=cru}
+
+
+
+
+
+
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5
+$as_echo_n "checking for archiver @FILE support... " >&6; }
+if ${lt_cv_ar_at_file+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_ar_at_file=no
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ echo conftest.$ac_objext > conftest.lst
+ lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&5'
+ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5
+ (eval $lt_ar_try) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }
+ if test 0 -eq "$ac_status"; then
+ # Ensure the archiver fails upon bogus file names.
+ rm -f conftest.$ac_objext libconftest.a
+ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5
+ (eval $lt_ar_try) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }
+ if test 0 -ne "$ac_status"; then
+ lt_cv_ar_at_file=@
+ fi
+ fi
+ rm -f conftest.* libconftest.a
+
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5
+$as_echo "$lt_cv_ar_at_file" >&6; }
+
+if test no = "$lt_cv_ar_at_file"; then
+ archiver_list_spec=
+else
+ archiver_list_spec=$lt_cv_ar_at_file
+fi
+
+
+
+
+
+
+
+if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
+set dummy ${ac_tool_prefix}strip; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_STRIP+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$STRIP"; then
+ ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_STRIP="${ac_tool_prefix}strip"
+ $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
+
+fi
+fi
+STRIP=$ac_cv_prog_STRIP
+if test -n "$STRIP"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5
+$as_echo "$STRIP" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_STRIP"; then
+ ac_ct_STRIP=$STRIP
+ # Extract the first word of "strip", so it can be a program name with args.
+set dummy strip; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_STRIP+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_STRIP"; then
+ ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_STRIP="strip"
+ $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
+
+fi
+fi
+ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
+if test -n "$ac_ct_STRIP"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5
+$as_echo "$ac_ct_STRIP" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_STRIP" = x; then
+ STRIP=":"
+ 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
+ STRIP=$ac_ct_STRIP
+ fi
+else
+ STRIP="$ac_cv_prog_STRIP"
+fi
+
+test -z "$STRIP" && STRIP=:
+
+
+
+
+
+
+if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
+set dummy ${ac_tool_prefix}ranlib; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_RANLIB+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$RANLIB"; then
+ ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
+ $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
+
+fi
+fi
+RANLIB=$ac_cv_prog_RANLIB
+if test -n "$RANLIB"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5
+$as_echo "$RANLIB" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_RANLIB"; then
+ ac_ct_RANLIB=$RANLIB
+ # Extract the first word of "ranlib", so it can be a program name with args.
+set dummy ranlib; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_RANLIB+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_RANLIB"; then
+ ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_RANLIB="ranlib"
+ $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
+
+fi
+fi
+ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
+if test -n "$ac_ct_RANLIB"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5
+$as_echo "$ac_ct_RANLIB" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_RANLIB" = x; then
+ RANLIB=":"
+ 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
+ RANLIB=$ac_ct_RANLIB
+ fi
+else
+ RANLIB="$ac_cv_prog_RANLIB"
+fi
+
+test -z "$RANLIB" && RANLIB=:
+
+
+
+
+
+
+# Determine commands to create old-style static archives.
+old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs'
+old_postinstall_cmds='chmod 644 $oldlib'
+old_postuninstall_cmds=
+
+if test -n "$RANLIB"; then
+ case $host_os in
+ bitrig* | openbsd*)
+ old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib"
+ ;;
+ *)
+ old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib"
+ ;;
+ esac
+ old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib"
+fi
+
+case $host_os in
+ darwin*)
+ lock_old_archive_extraction=yes ;;
+ *)
+ lock_old_archive_extraction=no ;;
+esac
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+# If no C compiler was specified, use CC.
+LTCC=${LTCC-"$CC"}
+
+# If no C compiler flags were specified, use CFLAGS.
+LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
+
+# Allow CC to be a program name with arguments.
+compiler=$CC
+
+
+# Check for command to grab the raw symbol name followed by C symbol from nm.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking command to parse $NM output from $compiler object" >&5
+$as_echo_n "checking command to parse $NM output from $compiler object... " >&6; }
+if ${lt_cv_sys_global_symbol_pipe+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+# These are sane defaults that work on at least a few old systems.
+# [They come from Ultrix. What could be older than Ultrix?!! ;)]
+
+# Character class describing NM global symbol codes.
+symcode='[BCDEGRST]'
+
+# Regexp to match symbols that can be accessed directly from C.
+sympat='\([_A-Za-z][_A-Za-z0-9]*\)'
+
+# Define system-specific variables.
+case $host_os in
+aix*)
+ symcode='[BCDT]'
+ ;;
+cygwin* | mingw* | pw32* | cegcc*)
+ symcode='[ABCDGISTW]'
+ ;;
+hpux*)
+ if test ia64 = "$host_cpu"; then
+ symcode='[ABCDEGRST]'
+ fi
+ ;;
+irix* | nonstopux*)
+ symcode='[BCDEGRST]'
+ ;;
+osf*)
+ symcode='[BCDEGQRST]'
+ ;;
+solaris*)
+ symcode='[BDRT]'
+ ;;
+sco3.2v5*)
+ symcode='[DT]'
+ ;;
+sysv4.2uw2*)
+ symcode='[DT]'
+ ;;
+sysv5* | sco5v6* | unixware* | OpenUNIX*)
+ symcode='[ABDT]'
+ ;;
+sysv4)
+ symcode='[DFNSTU]'
+ ;;
+esac
+
+# If we're using GNU nm, then use its standard symbol codes.
+case `$NM -V 2>&1` in
+*GNU* | *'with BFD'*)
+ symcode='[ABCDGIRSTW]' ;;
+esac
+
+if test "$lt_cv_nm_interface" = "MS dumpbin"; then
+ # Gets list of data symbols to import.
+ lt_cv_sys_global_symbol_to_import="sed -n -e 's/^I .* \(.*\)$/\1/p'"
+ # Adjust the below global symbol transforms to fixup imported variables.
+ lt_cdecl_hook=" -e 's/^I .* \(.*\)$/extern __declspec(dllimport) char \1;/p'"
+ lt_c_name_hook=" -e 's/^I .* \(.*\)$/ {\"\1\", (void *) 0},/p'"
+ lt_c_name_lib_hook="\
+ -e 's/^I .* \(lib.*\)$/ {\"\1\", (void *) 0},/p'\
+ -e 's/^I .* \(.*\)$/ {\"lib\1\", (void *) 0},/p'"
+else
+ # Disable hooks by default.
+ lt_cv_sys_global_symbol_to_import=
+ lt_cdecl_hook=
+ lt_c_name_hook=
+ lt_c_name_lib_hook=
+fi
+
+# Transform an extracted symbol line into a proper C declaration.
+# Some systems (esp. on ia64) link data and code symbols differently,
+# so use this general approach.
+lt_cv_sys_global_symbol_to_cdecl="sed -n"\
+$lt_cdecl_hook\
+" -e 's/^T .* \(.*\)$/extern int \1();/p'"\
+" -e 's/^$symcode$symcode* .* \(.*\)$/extern char \1;/p'"
+
+# Transform an extracted symbol line into symbol name and symbol address
+lt_cv_sys_global_symbol_to_c_name_address="sed -n"\
+$lt_c_name_hook\
+" -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\
+" -e 's/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/p'"
+
+# Transform an extracted symbol line into symbol name with lib prefix and
+# symbol address.
+lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n"\
+$lt_c_name_lib_hook\
+" -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\
+" -e 's/^$symcode$symcode* .* \(lib.*\)$/ {\"\1\", (void *) \&\1},/p'"\
+" -e 's/^$symcode$symcode* .* \(.*\)$/ {\"lib\1\", (void *) \&\1},/p'"
+
+# Handle CRLF in mingw tool chain
+opt_cr=
+case $build_os in
+mingw*)
+ opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp
+ ;;
+esac
+
+# Try without a prefix underscore, then with it.
+for ac_symprfx in "" "_"; do
+
+ # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol.
+ symxfrm="\\1 $ac_symprfx\\2 \\2"
+
+ # Write the raw and C identifiers.
+ if test "$lt_cv_nm_interface" = "MS dumpbin"; then
+ # Fake it for dumpbin and say T for any non-static function,
+ # D for any global variable and I for any imported variable.
+ # Also find C++ and __fastcall symbols from MSVC++,
+ # which start with @ or ?.
+ lt_cv_sys_global_symbol_pipe="$AWK '"\
+" {last_section=section; section=\$ 3};"\
+" /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\
+" /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\
+" /^ *Symbol name *: /{split(\$ 0,sn,\":\"); si=substr(sn[2],2)};"\
+" /^ *Type *: code/{print \"T\",si,substr(si,length(prfx))};"\
+" /^ *Type *: data/{print \"I\",si,substr(si,length(prfx))};"\
+" \$ 0!~/External *\|/{next};"\
+" / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\
+" {if(hide[section]) next};"\
+" {f=\"D\"}; \$ 0~/\(\).*\|/{f=\"T\"};"\
+" {split(\$ 0,a,/\||\r/); split(a[2],s)};"\
+" s[1]~/^[@?]/{print f,s[1],s[1]; next};"\
+" s[1]~prfx {split(s[1],t,\"@\"); print f,t[1],substr(t[1],length(prfx))}"\
+" ' prfx=^$ac_symprfx"
+ else
+ lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
+ fi
+ lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'"
+
+ # Check to see that the pipe works correctly.
+ pipe_works=no
+
+ rm -f conftest*
+ cat > conftest.$ac_ext <<_LT_EOF
+#ifdef __cplusplus
+extern "C" {
+#endif
+char nm_test_var;
+void nm_test_func(void);
+void nm_test_func(void){}
+#ifdef __cplusplus
+}
+#endif
+int main(){nm_test_var='a';nm_test_func();return(0);}
+_LT_EOF
+
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ # Now try to grab the symbols.
+ nlist=conftest.nm
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist\""; } >&5
+ (eval $NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && test -s "$nlist"; then
+ # Try sorting and uniquifying the output.
+ if sort "$nlist" | uniq > "$nlist"T; then
+ mv -f "$nlist"T "$nlist"
+ else
+ rm -f "$nlist"T
+ fi
+
+ # Make sure that we snagged all the symbols we need.
+ if $GREP ' nm_test_var$' "$nlist" >/dev/null; then
+ if $GREP ' nm_test_func$' "$nlist" >/dev/null; then
+ cat <<_LT_EOF > conftest.$ac_ext
+/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */
+#if defined _WIN32 || defined __CYGWIN__ || defined _WIN32_WCE
+/* DATA imports from DLLs on WIN32 can't be const, because runtime
+ relocations are performed -- see ld's documentation on pseudo-relocs. */
+# define LT_DLSYM_CONST
+#elif defined __osf__
+/* This system does not cope well with relocations in const data. */
+# define LT_DLSYM_CONST
+#else
+# define LT_DLSYM_CONST const
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+_LT_EOF
+ # Now generate the symbol file.
+ eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext'
+
+ cat <<_LT_EOF >> conftest.$ac_ext
+
+/* The mapping between symbol names and symbols. */
+LT_DLSYM_CONST struct {
+ const char *name;
+ void *address;
+}
+lt__PROGRAM__LTX_preloaded_symbols[] =
+{
+ { "@PROGRAM@", (void *) 0 },
+_LT_EOF
+ $SED "s/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext
+ cat <<\_LT_EOF >> conftest.$ac_ext
+ {0, (void *) 0}
+};
+
+/* This works around a problem in FreeBSD linker */
+#ifdef FREEBSD_WORKAROUND
+static const void *lt_preloaded_setup() {
+ return lt__PROGRAM__LTX_preloaded_symbols;
+}
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+_LT_EOF
+ # Now try linking the two files.
+ mv conftest.$ac_objext conftstm.$ac_objext
+ lt_globsym_save_LIBS=$LIBS
+ lt_globsym_save_CFLAGS=$CFLAGS
+ LIBS=conftstm.$ac_objext
+ CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag"
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && test -s conftest$ac_exeext; then
+ pipe_works=yes
+ fi
+ LIBS=$lt_globsym_save_LIBS
+ CFLAGS=$lt_globsym_save_CFLAGS
+ else
+ echo "cannot find nm_test_func in $nlist" >&5
+ fi
+ else
+ echo "cannot find nm_test_var in $nlist" >&5
+ fi
+ else
+ echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5
+ fi
+ else
+ echo "$progname: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ fi
+ rm -rf conftest* conftst*
+
+ # Do not use the global_symbol_pipe unless it works.
+ if test yes = "$pipe_works"; then
+ break
+ else
+ lt_cv_sys_global_symbol_pipe=
+ fi
+done
+
+fi
+
+if test -z "$lt_cv_sys_global_symbol_pipe"; then
+ lt_cv_sys_global_symbol_to_cdecl=
+fi
+if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: failed" >&5
+$as_echo "failed" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
+$as_echo "ok" >&6; }
+fi
+
+# Response file support.
+if test "$lt_cv_nm_interface" = "MS dumpbin"; then
+ nm_file_list_spec='@'
+elif $NM --help 2>/dev/null | grep '[@]FILE' >/dev/null; then
+ nm_file_list_spec='@'
+fi
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5
+$as_echo_n "checking for sysroot... " >&6; }
+
+# Check whether --with-sysroot was given.
+if test "${with_sysroot+set}" = set; then :
+ withval=$with_sysroot;
+else
+ with_sysroot=no
+fi
+
+
+lt_sysroot=
+case $with_sysroot in #(
+ yes)
+ if test yes = "$GCC"; then
+ lt_sysroot=`$CC --print-sysroot 2>/dev/null`
+ fi
+ ;; #(
+ /*)
+ lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"`
+ ;; #(
+ no|'')
+ ;; #(
+ *)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_sysroot" >&5
+$as_echo "$with_sysroot" >&6; }
+ as_fn_error $? "The sysroot must be an absolute path." "$LINENO" 5
+ ;;
+esac
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${lt_sysroot:-no}" >&5
+$as_echo "${lt_sysroot:-no}" >&6; }
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a working dd" >&5
+$as_echo_n "checking for a working dd... " >&6; }
+if ${ac_cv_path_lt_DD+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ printf 0123456789abcdef0123456789abcdef >conftest.i
+cat conftest.i conftest.i >conftest2.i
+: ${lt_DD:=$DD}
+if test -z "$lt_DD"; then
+ ac_path_lt_DD_found=false
+ # Loop through the user's path and test for each of PROGNAME-LIST
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_prog in dd; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ ac_path_lt_DD="$as_dir/$ac_prog$ac_exec_ext"
+ as_fn_executable_p "$ac_path_lt_DD" || continue
+if "$ac_path_lt_DD" bs=32 count=1 <conftest2.i >conftest.out 2>/dev/null; then
+ cmp -s conftest.i conftest.out \
+ && ac_cv_path_lt_DD="$ac_path_lt_DD" ac_path_lt_DD_found=:
+fi
+ $ac_path_lt_DD_found && break 3
+ done
+ done
+ done
+IFS=$as_save_IFS
+ if test -z "$ac_cv_path_lt_DD"; then
+ :
+ fi
+else
+ ac_cv_path_lt_DD=$lt_DD
+fi
+
+rm -f conftest.i conftest2.i conftest.out
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_lt_DD" >&5
+$as_echo "$ac_cv_path_lt_DD" >&6; }
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to truncate binary pipes" >&5
+$as_echo_n "checking how to truncate binary pipes... " >&6; }
+if ${lt_cv_truncate_bin+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ printf 0123456789abcdef0123456789abcdef >conftest.i
+cat conftest.i conftest.i >conftest2.i
+lt_cv_truncate_bin=
+if "$ac_cv_path_lt_DD" bs=32 count=1 <conftest2.i >conftest.out 2>/dev/null; then
+ cmp -s conftest.i conftest.out \
+ && lt_cv_truncate_bin="$ac_cv_path_lt_DD bs=4096 count=1"
+fi
+rm -f conftest.i conftest2.i conftest.out
+test -z "$lt_cv_truncate_bin" && lt_cv_truncate_bin="$SED -e 4q"
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_truncate_bin" >&5
+$as_echo "$lt_cv_truncate_bin" >&6; }
+
+
+
+
+
+
+
+# Calculate cc_basename. Skip known compiler wrappers and cross-prefix.
+func_cc_basename ()
+{
+ for cc_temp in $*""; do
+ case $cc_temp in
+ compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
+ distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
+ \-*) ;;
+ *) break;;
+ esac
+ done
+ func_cc_basename_result=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"`
+}
+
+# Check whether --enable-libtool-lock was given.
+if test "${enable_libtool_lock+set}" = set; then :
+ enableval=$enable_libtool_lock;
+fi
+
+test no = "$enable_libtool_lock" || enable_libtool_lock=yes
+
+# Some flags need to be propagated to the compiler or linker for good
+# libtool support.
+case $host in
+ia64-*-hpux*)
+ # Find out what ABI is being produced by ac_compile, and set mode
+ # options accordingly.
+ echo 'int i;' > conftest.$ac_ext
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ case `/usr/bin/file conftest.$ac_objext` in
+ *ELF-32*)
+ HPUX_IA64_MODE=32
+ ;;
+ *ELF-64*)
+ HPUX_IA64_MODE=64
+ ;;
+ esac
+ fi
+ rm -rf conftest*
+ ;;
+*-*-irix6*)
+ # Find out what ABI is being produced by ac_compile, and set linker
+ # options accordingly.
+ echo '#line '$LINENO' "configure"' > conftest.$ac_ext
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ if test yes = "$lt_cv_prog_gnu_ld"; then
+ case `/usr/bin/file conftest.$ac_objext` in
+ *32-bit*)
+ LD="${LD-ld} -melf32bsmip"
+ ;;
+ *N32*)
+ LD="${LD-ld} -melf32bmipn32"
+ ;;
+ *64-bit*)
+ LD="${LD-ld} -melf64bmip"
+ ;;
+ esac
+ else
+ case `/usr/bin/file conftest.$ac_objext` in
+ *32-bit*)
+ LD="${LD-ld} -32"
+ ;;
+ *N32*)
+ LD="${LD-ld} -n32"
+ ;;
+ *64-bit*)
+ LD="${LD-ld} -64"
+ ;;
+ esac
+ fi
+ fi
+ rm -rf conftest*
+ ;;
+
+mips64*-*linux*)
+ # Find out what ABI is being produced by ac_compile, and set linker
+ # options accordingly.
+ echo '#line '$LINENO' "configure"' > conftest.$ac_ext
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ emul=elf
+ case `/usr/bin/file conftest.$ac_objext` in
+ *32-bit*)
+ emul="${emul}32"
+ ;;
+ *64-bit*)
+ emul="${emul}64"
+ ;;
+ esac
+ case `/usr/bin/file conftest.$ac_objext` in
+ *MSB*)
+ emul="${emul}btsmip"
+ ;;
+ *LSB*)
+ emul="${emul}ltsmip"
+ ;;
+ esac
+ case `/usr/bin/file conftest.$ac_objext` in
+ *N32*)
+ emul="${emul}n32"
+ ;;
+ esac
+ LD="${LD-ld} -m $emul"
+ fi
+ rm -rf conftest*
+ ;;
+
+x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \
+s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
+ # Find out what ABI is being produced by ac_compile, and set linker
+ # options accordingly. Note that the listed cases only cover the
+ # situations where additional linker options are needed (such as when
+ # doing 32-bit compilation for a host where ld defaults to 64-bit, or
+ # vice versa); the common cases where no linker options are needed do
+ # not appear in the list.
+ echo 'int i;' > conftest.$ac_ext
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ case `/usr/bin/file conftest.o` in
+ *32-bit*)
+ case $host in
+ x86_64-*kfreebsd*-gnu)
+ LD="${LD-ld} -m elf_i386_fbsd"
+ ;;
+ x86_64-*linux*)
+ case `/usr/bin/file conftest.o` in
+ *x86-64*)
+ LD="${LD-ld} -m elf32_x86_64"
+ ;;
+ *)
+ LD="${LD-ld} -m elf_i386"
+ ;;
+ esac
+ ;;
+ powerpc64le-*linux*)
+ LD="${LD-ld} -m elf32lppclinux"
+ ;;
+ powerpc64-*linux*)
+ LD="${LD-ld} -m elf32ppclinux"
+ ;;
+ s390x-*linux*)
+ LD="${LD-ld} -m elf_s390"
+ ;;
+ sparc64-*linux*)
+ LD="${LD-ld} -m elf32_sparc"
+ ;;
+ esac
+ ;;
+ *64-bit*)
+ case $host in
+ x86_64-*kfreebsd*-gnu)
+ LD="${LD-ld} -m elf_x86_64_fbsd"
+ ;;
+ x86_64-*linux*)
+ LD="${LD-ld} -m elf_x86_64"
+ ;;
+ powerpcle-*linux*)
+ LD="${LD-ld} -m elf64lppc"
+ ;;
+ powerpc-*linux*)
+ LD="${LD-ld} -m elf64ppc"
+ ;;
+ s390*-*linux*|s390*-*tpf*)
+ LD="${LD-ld} -m elf64_s390"
+ ;;
+ sparc*-*linux*)
+ LD="${LD-ld} -m elf64_sparc"
+ ;;
+ esac
+ ;;
+ esac
+ fi
+ rm -rf conftest*
+ ;;
+
+*-*-sco3.2v5*)
+ # On SCO OpenServer 5, we need -belf to get full-featured binaries.
+ SAVE_CFLAGS=$CFLAGS
+ CFLAGS="$CFLAGS -belf"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler needs -belf" >&5
+$as_echo_n "checking whether the C compiler needs -belf... " >&6; }
+if ${lt_cv_cc_needs_belf+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ lt_cv_cc_needs_belf=yes
+else
+ lt_cv_cc_needs_belf=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_cc_needs_belf" >&5
+$as_echo "$lt_cv_cc_needs_belf" >&6; }
+ if test yes != "$lt_cv_cc_needs_belf"; then
+ # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
+ CFLAGS=$SAVE_CFLAGS
+ fi
+ ;;
+*-*solaris*)
+ # Find out what ABI is being produced by ac_compile, and set linker
+ # options accordingly.
+ echo 'int i;' > conftest.$ac_ext
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ case `/usr/bin/file conftest.o` in
+ *64-bit*)
+ case $lt_cv_prog_gnu_ld in
+ yes*)
+ case $host in
+ i?86-*-solaris*|x86_64-*-solaris*)
+ LD="${LD-ld} -m elf_x86_64"
+ ;;
+ sparc*-*-solaris*)
+ LD="${LD-ld} -m elf64_sparc"
+ ;;
+ esac
+ # GNU ld 2.21 introduced _sol2 emulations. Use them if available.
+ if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then
+ LD=${LD-ld}_sol2
+ fi
+ ;;
+ *)
+ if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then
+ LD="${LD-ld} -64"
+ fi
+ ;;
+ esac
+ ;;
+ esac
+ fi
+ rm -rf conftest*
+ ;;
+esac
+
+need_locks=$enable_libtool_lock
+
+if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}mt", so it can be a program name with args.
+set dummy ${ac_tool_prefix}mt; 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_prog_MANIFEST_TOOL+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$MANIFEST_TOOL"; then
+ ac_cv_prog_MANIFEST_TOOL="$MANIFEST_TOOL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_MANIFEST_TOOL="${ac_tool_prefix}mt"
+ $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
+
+fi
+fi
+MANIFEST_TOOL=$ac_cv_prog_MANIFEST_TOOL
+if test -n "$MANIFEST_TOOL"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MANIFEST_TOOL" >&5
+$as_echo "$MANIFEST_TOOL" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_MANIFEST_TOOL"; then
+ ac_ct_MANIFEST_TOOL=$MANIFEST_TOOL
+ # Extract the first word of "mt", so it can be a program name with args.
+set dummy mt; 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_prog_ac_ct_MANIFEST_TOOL+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_MANIFEST_TOOL"; then
+ ac_cv_prog_ac_ct_MANIFEST_TOOL="$ac_ct_MANIFEST_TOOL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_MANIFEST_TOOL="mt"
+ $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
+
+fi
+fi
+ac_ct_MANIFEST_TOOL=$ac_cv_prog_ac_ct_MANIFEST_TOOL
+if test -n "$ac_ct_MANIFEST_TOOL"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MANIFEST_TOOL" >&5
+$as_echo "$ac_ct_MANIFEST_TOOL" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_MANIFEST_TOOL" = x; then
+ MANIFEST_TOOL=":"
+ 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
+ MANIFEST_TOOL=$ac_ct_MANIFEST_TOOL
+ fi
+else
+ MANIFEST_TOOL="$ac_cv_prog_MANIFEST_TOOL"
+fi
+
+test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $MANIFEST_TOOL is a manifest tool" >&5
+$as_echo_n "checking if $MANIFEST_TOOL is a manifest tool... " >&6; }
+if ${lt_cv_path_mainfest_tool+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_path_mainfest_tool=no
+ echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&5
+ $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out
+ cat conftest.err >&5
+ if $GREP 'Manifest Tool' conftest.out > /dev/null; then
+ lt_cv_path_mainfest_tool=yes
+ fi
+ rm -f conftest*
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5
+$as_echo "$lt_cv_path_mainfest_tool" >&6; }
+if test yes != "$lt_cv_path_mainfest_tool"; then
+ MANIFEST_TOOL=:
+fi
+
+
+
+
+
+
+ case $host_os in
+ rhapsody* | darwin*)
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}dsymutil", so it can be a program name with args.
+set dummy ${ac_tool_prefix}dsymutil; 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_prog_DSYMUTIL+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$DSYMUTIL"; then
+ ac_cv_prog_DSYMUTIL="$DSYMUTIL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil"
+ $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
+
+fi
+fi
+DSYMUTIL=$ac_cv_prog_DSYMUTIL
+if test -n "$DSYMUTIL"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL" >&5
+$as_echo "$DSYMUTIL" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_DSYMUTIL"; then
+ ac_ct_DSYMUTIL=$DSYMUTIL
+ # Extract the first word of "dsymutil", so it can be a program name with args.
+set dummy dsymutil; 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_prog_ac_ct_DSYMUTIL+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_DSYMUTIL"; then
+ ac_cv_prog_ac_ct_DSYMUTIL="$ac_ct_DSYMUTIL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_DSYMUTIL="dsymutil"
+ $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
+
+fi
+fi
+ac_ct_DSYMUTIL=$ac_cv_prog_ac_ct_DSYMUTIL
+if test -n "$ac_ct_DSYMUTIL"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DSYMUTIL" >&5
+$as_echo "$ac_ct_DSYMUTIL" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_DSYMUTIL" = x; then
+ DSYMUTIL=":"
+ 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
+ DSYMUTIL=$ac_ct_DSYMUTIL
+ fi
+else
+ DSYMUTIL="$ac_cv_prog_DSYMUTIL"
+fi
+
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}nmedit", so it can be a program name with args.
+set dummy ${ac_tool_prefix}nmedit; 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_prog_NMEDIT+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$NMEDIT"; then
+ ac_cv_prog_NMEDIT="$NMEDIT" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit"
+ $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
+
+fi
+fi
+NMEDIT=$ac_cv_prog_NMEDIT
+if test -n "$NMEDIT"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $NMEDIT" >&5
+$as_echo "$NMEDIT" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_NMEDIT"; then
+ ac_ct_NMEDIT=$NMEDIT
+ # Extract the first word of "nmedit", so it can be a program name with args.
+set dummy nmedit; 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_prog_ac_ct_NMEDIT+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_NMEDIT"; then
+ ac_cv_prog_ac_ct_NMEDIT="$ac_ct_NMEDIT" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_NMEDIT="nmedit"
+ $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
+
+fi
+fi
+ac_ct_NMEDIT=$ac_cv_prog_ac_ct_NMEDIT
+if test -n "$ac_ct_NMEDIT"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_NMEDIT" >&5
+$as_echo "$ac_ct_NMEDIT" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_NMEDIT" = x; then
+ NMEDIT=":"
+ 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
+ NMEDIT=$ac_ct_NMEDIT
+ fi
+else
+ NMEDIT="$ac_cv_prog_NMEDIT"
+fi
+
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}lipo", so it can be a program name with args.
+set dummy ${ac_tool_prefix}lipo; 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_prog_LIPO+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$LIPO"; then
+ ac_cv_prog_LIPO="$LIPO" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_LIPO="${ac_tool_prefix}lipo"
+ $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
+
+fi
+fi
+LIPO=$ac_cv_prog_LIPO
+if test -n "$LIPO"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIPO" >&5
+$as_echo "$LIPO" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_LIPO"; then
+ ac_ct_LIPO=$LIPO
+ # Extract the first word of "lipo", so it can be a program name with args.
+set dummy lipo; 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_prog_ac_ct_LIPO+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_LIPO"; then
+ ac_cv_prog_ac_ct_LIPO="$ac_ct_LIPO" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_LIPO="lipo"
+ $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
+
+fi
+fi
+ac_ct_LIPO=$ac_cv_prog_ac_ct_LIPO
+if test -n "$ac_ct_LIPO"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LIPO" >&5
+$as_echo "$ac_ct_LIPO" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_LIPO" = x; then
+ LIPO=":"
+ 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
+ LIPO=$ac_ct_LIPO
+ fi
+else
+ LIPO="$ac_cv_prog_LIPO"
+fi
+
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}otool", so it can be a program name with args.
+set dummy ${ac_tool_prefix}otool; 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_prog_OTOOL+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$OTOOL"; then
+ ac_cv_prog_OTOOL="$OTOOL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_OTOOL="${ac_tool_prefix}otool"
+ $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
+
+fi
+fi
+OTOOL=$ac_cv_prog_OTOOL
+if test -n "$OTOOL"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL" >&5
+$as_echo "$OTOOL" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_OTOOL"; then
+ ac_ct_OTOOL=$OTOOL
+ # Extract the first word of "otool", so it can be a program name with args.
+set dummy otool; 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_prog_ac_ct_OTOOL+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_OTOOL"; then
+ ac_cv_prog_ac_ct_OTOOL="$ac_ct_OTOOL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_OTOOL="otool"
+ $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
+
+fi
+fi
+ac_ct_OTOOL=$ac_cv_prog_ac_ct_OTOOL
+if test -n "$ac_ct_OTOOL"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL" >&5
+$as_echo "$ac_ct_OTOOL" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_OTOOL" = x; then
+ OTOOL=":"
+ 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
+ OTOOL=$ac_ct_OTOOL
+ fi
+else
+ OTOOL="$ac_cv_prog_OTOOL"
+fi
+
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}otool64", so it can be a program name with args.
+set dummy ${ac_tool_prefix}otool64; 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_prog_OTOOL64+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$OTOOL64"; then
+ ac_cv_prog_OTOOL64="$OTOOL64" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_OTOOL64="${ac_tool_prefix}otool64"
+ $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
+
+fi
+fi
+OTOOL64=$ac_cv_prog_OTOOL64
+if test -n "$OTOOL64"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL64" >&5
+$as_echo "$OTOOL64" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_OTOOL64"; then
+ ac_ct_OTOOL64=$OTOOL64
+ # Extract the first word of "otool64", so it can be a program name with args.
+set dummy otool64; 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_prog_ac_ct_OTOOL64+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_OTOOL64"; then
+ ac_cv_prog_ac_ct_OTOOL64="$ac_ct_OTOOL64" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_OTOOL64="otool64"
+ $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
+
+fi
+fi
+ac_ct_OTOOL64=$ac_cv_prog_ac_ct_OTOOL64
+if test -n "$ac_ct_OTOOL64"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL64" >&5
+$as_echo "$ac_ct_OTOOL64" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_OTOOL64" = x; then
+ OTOOL64=":"
+ 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
+ OTOOL64=$ac_ct_OTOOL64
+ fi
+else
+ OTOOL64="$ac_cv_prog_OTOOL64"
+fi
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -single_module linker flag" >&5
+$as_echo_n "checking for -single_module linker flag... " >&6; }
+if ${lt_cv_apple_cc_single_mod+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_apple_cc_single_mod=no
+ if test -z "$LT_MULTI_MODULE"; then
+ # By default we will add the -single_module flag. You can override
+ # by either setting the environment variable LT_MULTI_MODULE
+ # non-empty at configure time, or by adding -multi_module to the
+ # link flags.
+ rm -rf libconftest.dylib*
+ echo "int foo(void){return 1;}" > conftest.c
+ echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
+-dynamiclib -Wl,-single_module conftest.c" >&5
+ $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
+ -dynamiclib -Wl,-single_module conftest.c 2>conftest.err
+ _lt_result=$?
+ # If there is a non-empty error log, and "single_module"
+ # appears in it, assume the flag caused a linker warning
+ if test -s conftest.err && $GREP single_module conftest.err; then
+ cat conftest.err >&5
+ # Otherwise, if the output was created with a 0 exit code from
+ # the compiler, it worked.
+ elif test -f libconftest.dylib && test 0 = "$_lt_result"; then
+ lt_cv_apple_cc_single_mod=yes
+ else
+ cat conftest.err >&5
+ fi
+ rm -rf libconftest.dylib*
+ rm -f conftest.*
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_apple_cc_single_mod" >&5
+$as_echo "$lt_cv_apple_cc_single_mod" >&6; }
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5
+$as_echo_n "checking for -exported_symbols_list linker flag... " >&6; }
+if ${lt_cv_ld_exported_symbols_list+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_ld_exported_symbols_list=no
+ save_LDFLAGS=$LDFLAGS
+ echo "_main" > conftest.sym
+ LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ lt_cv_ld_exported_symbols_list=yes
+else
+ lt_cv_ld_exported_symbols_list=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ LDFLAGS=$save_LDFLAGS
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5
+$as_echo "$lt_cv_ld_exported_symbols_list" >&6; }
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -force_load linker flag" >&5
+$as_echo_n "checking for -force_load linker flag... " >&6; }
+if ${lt_cv_ld_force_load+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_ld_force_load=no
+ cat > conftest.c << _LT_EOF
+int forced_loaded() { return 2;}
+_LT_EOF
+ echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&5
+ $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5
+ echo "$AR cru libconftest.a conftest.o" >&5
+ $AR cru libconftest.a conftest.o 2>&5
+ echo "$RANLIB libconftest.a" >&5
+ $RANLIB libconftest.a 2>&5
+ cat > conftest.c << _LT_EOF
+int main() { return 0;}
+_LT_EOF
+ echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&5
+ $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err
+ _lt_result=$?
+ if test -s conftest.err && $GREP force_load conftest.err; then
+ cat conftest.err >&5
+ elif test -f conftest && test 0 = "$_lt_result" && $GREP forced_load conftest >/dev/null 2>&1; then
+ lt_cv_ld_force_load=yes
+ else
+ cat conftest.err >&5
+ fi
+ rm -f conftest.err libconftest.a conftest conftest.c
+ rm -rf conftest.dSYM
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_force_load" >&5
+$as_echo "$lt_cv_ld_force_load" >&6; }
+ case $host_os in
+ rhapsody* | darwin1.[012])
+ _lt_dar_allow_undefined='$wl-undefined ${wl}suppress' ;;
+ darwin1.*)
+ _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;;
+ darwin*) # darwin 5.x on
+ # if running on 10.5 or later, the deployment target defaults
+ # to the OS version, if on x86, and 10.4, the deployment
+ # target defaults to 10.4. Don't you love it?
+ case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in
+ 10.0,*86*-darwin8*|10.0,*-darwin[91]*)
+ _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;;
+ 10.[012][,.]*)
+ _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;;
+ 10.*)
+ _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;;
+ esac
+ ;;
+ esac
+ if test yes = "$lt_cv_apple_cc_single_mod"; then
+ _lt_dar_single_mod='$single_module'
+ fi
+ if test yes = "$lt_cv_ld_exported_symbols_list"; then
+ _lt_dar_export_syms=' $wl-exported_symbols_list,$output_objdir/$libname-symbols.expsym'
+ else
+ _lt_dar_export_syms='~$NMEDIT -s $output_objdir/$libname-symbols.expsym $lib'
+ fi
+ if test : != "$DSYMUTIL" && test no = "$lt_cv_ld_force_load"; then
+ _lt_dsymutil='~$DSYMUTIL $lib || :'
+ else
+ _lt_dsymutil=
+ fi
+ ;;
+ esac
+
+# func_munge_path_list VARIABLE PATH
+# -----------------------------------
+# VARIABLE is name of variable containing _space_ separated list of
+# directories to be munged by the contents of PATH, which is string
+# having a format:
+# "DIR[:DIR]:"
+# string "DIR[ DIR]" will be prepended to VARIABLE
+# ":DIR[:DIR]"
+# string "DIR[ DIR]" will be appended to VARIABLE
+# "DIRP[:DIRP]::[DIRA:]DIRA"
+# string "DIRP[ DIRP]" will be prepended to VARIABLE and string
+# "DIRA[ DIRA]" will be appended to VARIABLE
+# "DIR[:DIR]"
+# VARIABLE will be replaced by "DIR[ DIR]"
+func_munge_path_list ()
+{
+ case x$2 in
+ x)
+ ;;
+ *:)
+ eval $1=\"`$ECHO $2 | $SED 's/:/ /g'` \$$1\"
+ ;;
+ x:*)
+ eval $1=\"\$$1 `$ECHO $2 | $SED 's/:/ /g'`\"
+ ;;
+ *::*)
+ eval $1=\"\$$1\ `$ECHO $2 | $SED -e 's/.*:://' -e 's/:/ /g'`\"
+ eval $1=\"`$ECHO $2 | $SED -e 's/::.*//' -e 's/:/ /g'`\ \$$1\"
+ ;;
+ *)
+ eval $1=\"`$ECHO $2 | $SED 's/:/ /g'`\"
+ ;;
+ esac
+}
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5
+$as_echo_n "checking how to run the C preprocessor... " >&6; }
+# On Suns, sometimes $CPP names a directory.
+if test -n "$CPP" && test -d "$CPP"; then
+ CPP=
+fi
+if test -z "$CPP"; then
+ if ${ac_cv_prog_CPP+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ # Double quotes because CPP needs to be expanded
+ for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
+ do
+ ac_preproc_ok=false
+for ac_c_preproc_warn_flag in '' yes
+do
+ # Use a header file that comes with gcc, so configuring glibc
+ # with a fresh cross-compiler works.
+ # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+ # <limits.h> exists even on freestanding compilers.
+ # On the NeXT, cc -E runs the code through the compiler's parser,
+ # not just through cpp. "Syntax error" is here to catch this case.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+ Syntax error
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+
+else
+ # Broken: fails on valid input.
+continue
+fi
+rm -f conftest.err conftest.i conftest.$ac_ext
+
+ # OK, works on sane cases. Now check whether nonexistent headers
+ # can be detected and how.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <ac_nonexistent.h>
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+ # Broken: success on invalid input.
+continue
+else
+ # Passes both tests.
+ac_preproc_ok=:
+break
+fi
+rm -f conftest.err conftest.i conftest.$ac_ext
+
+done
+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+rm -f conftest.i conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then :
+ break
+fi
+
+ done
+ ac_cv_prog_CPP=$CPP
+
+fi
+ CPP=$ac_cv_prog_CPP
+else
+ ac_cv_prog_CPP=$CPP
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5
+$as_echo "$CPP" >&6; }
+ac_preproc_ok=false
+for ac_c_preproc_warn_flag in '' yes
+do
+ # Use a header file that comes with gcc, so configuring glibc
+ # with a fresh cross-compiler works.
+ # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+ # <limits.h> exists even on freestanding compilers.
+ # On the NeXT, cc -E runs the code through the compiler's parser,
+ # not just through cpp. "Syntax error" is here to catch this case.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+ Syntax error
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+
+else
+ # Broken: fails on valid input.
+continue
+fi
+rm -f conftest.err conftest.i conftest.$ac_ext
+
+ # OK, works on sane cases. Now check whether nonexistent headers
+ # can be detected and how.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <ac_nonexistent.h>
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+ # Broken: success on invalid input.
+continue
+else
+ # Passes both tests.
+ac_preproc_ok=:
+break
+fi
+rm -f conftest.err conftest.i conftest.$ac_ext
+
+done
+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+rm -f conftest.i conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then :
+
+else
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "C preprocessor \"$CPP\" fails sanity check
+See \`config.log' for more details" "$LINENO" 5; }
+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
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5
+$as_echo_n "checking for ANSI C header files... " >&6; }
+if ${ac_cv_header_stdc+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdlib.h>
+#include <stdarg.h>
+#include <string.h>
+#include <float.h>
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_header_stdc=yes
+else
+ ac_cv_header_stdc=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+if test $ac_cv_header_stdc = yes; then
+ # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <string.h>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "memchr" >/dev/null 2>&1; then :
+
+else
+ ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+ # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdlib.h>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "free" >/dev/null 2>&1; then :
+
+else
+ ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+ # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
+ if test "$cross_compiling" = yes; then :
+ :
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <ctype.h>
+#include <stdlib.h>
+#if ((' ' & 0x0FF) == 0x020)
+# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
+# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
+#else
+# define ISLOWER(c) \
+ (('a' <= (c) && (c) <= 'i') \
+ || ('j' <= (c) && (c) <= 'r') \
+ || ('s' <= (c) && (c) <= 'z'))
+# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
+#endif
+
+#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
+int
+main ()
+{
+ int i;
+ for (i = 0; i < 256; i++)
+ if (XOR (islower (i), ISLOWER (i))
+ || toupper (i) != TOUPPER (i))
+ return 2;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+
+else
+ ac_cv_header_stdc=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5
+$as_echo "$ac_cv_header_stdc" >&6; }
+if test $ac_cv_header_stdc = yes; then
+
+$as_echo "#define STDC_HEADERS 1" >>confdefs.h
+
+fi
+
+# On IRIX 5.3, sys/types and inttypes.h are conflicting.
+for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
+ inttypes.h stdint.h unistd.h
+do :
+ as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default
+"
+if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
+ cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+
+done
+
+
+for ac_header in dlfcn.h
+do :
+ ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default
+"
+if test "x$ac_cv_header_dlfcn_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_DLFCN_H 1
+_ACEOF
+
+fi
+
+done
+
+
+
+
+
+# Set options
+# Check whether --enable-static was given.
+if test "${enable_static+set}" = set; then :
+ enableval=$enable_static; p=${PACKAGE-default}
+ case $enableval in
+ yes) enable_static=yes ;;
+ no) enable_static=no ;;
+ *)
+ enable_static=no
+ # Look at the argument we got. We use all the common list separators.
+ lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
+ for pkg in $enableval; do
+ IFS=$lt_save_ifs
+ if test "X$pkg" = "X$p"; then
+ enable_static=yes
+ fi
+ done
+ IFS=$lt_save_ifs
+ ;;
+ esac
+else
+ enable_static=no
+fi
+
+
+
+
+
+
+
+enable_win32_dll=yes
+
+case $host in
+*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-cegcc*)
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args.
+set dummy ${ac_tool_prefix}as; 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_prog_AS+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$AS"; then
+ ac_cv_prog_AS="$AS" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_AS="${ac_tool_prefix}as"
+ $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
+
+fi
+fi
+AS=$ac_cv_prog_AS
+if test -n "$AS"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AS" >&5
+$as_echo "$AS" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_AS"; then
+ ac_ct_AS=$AS
+ # Extract the first word of "as", so it can be a program name with args.
+set dummy as; 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_prog_ac_ct_AS+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_AS"; then
+ ac_cv_prog_ac_ct_AS="$ac_ct_AS" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_AS="as"
+ $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
+
+fi
+fi
+ac_ct_AS=$ac_cv_prog_ac_ct_AS
+if test -n "$ac_ct_AS"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AS" >&5
+$as_echo "$ac_ct_AS" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_AS" = x; then
+ AS="false"
+ 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
+ AS=$ac_ct_AS
+ fi
+else
+ AS="$ac_cv_prog_AS"
+fi
+
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args.
+set dummy ${ac_tool_prefix}dlltool; 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_prog_DLLTOOL+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$DLLTOOL"; then
+ ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool"
+ $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
+
+fi
+fi
+DLLTOOL=$ac_cv_prog_DLLTOOL
+if test -n "$DLLTOOL"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5
+$as_echo "$DLLTOOL" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_DLLTOOL"; then
+ ac_ct_DLLTOOL=$DLLTOOL
+ # Extract the first word of "dlltool", so it can be a program name with args.
+set dummy dlltool; 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_prog_ac_ct_DLLTOOL+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_DLLTOOL"; then
+ ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_DLLTOOL="dlltool"
+ $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
+
+fi
+fi
+ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL
+if test -n "$ac_ct_DLLTOOL"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5
+$as_echo "$ac_ct_DLLTOOL" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_DLLTOOL" = x; then
+ DLLTOOL="false"
+ 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
+ DLLTOOL=$ac_ct_DLLTOOL
+ fi
+else
+ DLLTOOL="$ac_cv_prog_DLLTOOL"
+fi
+
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args.
+set dummy ${ac_tool_prefix}objdump; 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_prog_OBJDUMP+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$OBJDUMP"; then
+ ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump"
+ $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
+
+fi
+fi
+OBJDUMP=$ac_cv_prog_OBJDUMP
+if test -n "$OBJDUMP"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5
+$as_echo "$OBJDUMP" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_OBJDUMP"; then
+ ac_ct_OBJDUMP=$OBJDUMP
+ # Extract the first word of "objdump", so it can be a program name with args.
+set dummy objdump; 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_prog_ac_ct_OBJDUMP+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_OBJDUMP"; then
+ ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_OBJDUMP="objdump"
+ $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
+
+fi
+fi
+ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP
+if test -n "$ac_ct_OBJDUMP"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5
+$as_echo "$ac_ct_OBJDUMP" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_OBJDUMP" = x; then
+ OBJDUMP="false"
+ 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
+ OBJDUMP=$ac_ct_OBJDUMP
+ fi
+else
+ OBJDUMP="$ac_cv_prog_OBJDUMP"
+fi
+
+ ;;
+esac
+
+test -z "$AS" && AS=as
+
+
+
+
+
+test -z "$DLLTOOL" && DLLTOOL=dlltool
+
+
+
+
+
+test -z "$OBJDUMP" && OBJDUMP=objdump
+
+
+
+
+
+
+
+ enable_dlopen=no
+
+
+
+ # Check whether --enable-shared was given.
+if test "${enable_shared+set}" = set; then :
+ enableval=$enable_shared; p=${PACKAGE-default}
+ case $enableval in
+ yes) enable_shared=yes ;;
+ no) enable_shared=no ;;
+ *)
+ enable_shared=no
+ # Look at the argument we got. We use all the common list separators.
+ lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
+ for pkg in $enableval; do
+ IFS=$lt_save_ifs
+ if test "X$pkg" = "X$p"; then
+ enable_shared=yes
+ fi
+ done
+ IFS=$lt_save_ifs
+ ;;
+ esac
+else
+ enable_shared=yes
+fi
+
+
+
+
+
+
+
+
+
+
+
+# Check whether --with-pic was given.
+if test "${with_pic+set}" = set; then :
+ withval=$with_pic; lt_p=${PACKAGE-default}
+ case $withval in
+ yes|no) pic_mode=$withval ;;
+ *)
+ pic_mode=default
+ # Look at the argument we got. We use all the common list separators.
+ lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
+ for lt_pkg in $withval; do
+ IFS=$lt_save_ifs
+ if test "X$lt_pkg" = "X$lt_p"; then
+ pic_mode=yes
+ fi
+ done
+ IFS=$lt_save_ifs
+ ;;
+ esac
+else
+ pic_mode=default
+fi
+
+
+
+
+
+
+
+
+ # Check whether --enable-fast-install was given.
+if test "${enable_fast_install+set}" = set; then :
+ enableval=$enable_fast_install; p=${PACKAGE-default}
+ case $enableval in
+ yes) enable_fast_install=yes ;;
+ no) enable_fast_install=no ;;
+ *)
+ enable_fast_install=no
+ # Look at the argument we got. We use all the common list separators.
+ lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
+ for pkg in $enableval; do
+ IFS=$lt_save_ifs
+ if test "X$pkg" = "X$p"; then
+ enable_fast_install=yes
+ fi
+ done
+ IFS=$lt_save_ifs
+ ;;
+ esac
+else
+ enable_fast_install=yes
+fi
+
+
+
+
+
+
+
+
+ shared_archive_member_spec=
+case $host,$enable_shared in
+power*-*-aix[5-9]*,yes)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking which variant of shared library versioning to provide" >&5
+$as_echo_n "checking which variant of shared library versioning to provide... " >&6; }
+
+# Check whether --with-aix-soname was given.
+if test "${with_aix_soname+set}" = set; then :
+ withval=$with_aix_soname; case $withval in
+ aix|svr4|both)
+ ;;
+ *)
+ as_fn_error $? "Unknown argument to --with-aix-soname" "$LINENO" 5
+ ;;
+ esac
+ lt_cv_with_aix_soname=$with_aix_soname
+else
+ if ${lt_cv_with_aix_soname+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_with_aix_soname=aix
+fi
+
+ with_aix_soname=$lt_cv_with_aix_soname
+fi
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_aix_soname" >&5
+$as_echo "$with_aix_soname" >&6; }
+ if test aix != "$with_aix_soname"; then
+ # For the AIX way of multilib, we name the shared archive member
+ # based on the bitwidth used, traditionally 'shr.o' or 'shr_64.o',
+ # and 'shr.imp' or 'shr_64.imp', respectively, for the Import File.
+ # Even when GNU compilers ignore OBJECT_MODE but need '-maix64' flag,
+ # the AIX toolchain works better with OBJECT_MODE set (default 32).
+ if test 64 = "${OBJECT_MODE-32}"; then
+ shared_archive_member_spec=shr_64
+ else
+ shared_archive_member_spec=shr
+ fi
+ fi
+ ;;
+*)
+ with_aix_soname=aix
+ ;;
+esac
+
+
+
+
+
+
+
+
+
+
+# This can be used to rebuild libtool when needed
+LIBTOOL_DEPS=$ltmain
+
+# Always use our own libtool.
+LIBTOOL='$(SHELL) $(top_builddir)/libtool'
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+test -z "$LN_S" && LN_S="ln -s"
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+if test -n "${ZSH_VERSION+set}"; then
+ setopt NO_GLOB_SUBST
+fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for objdir" >&5
+$as_echo_n "checking for objdir... " >&6; }
+if ${lt_cv_objdir+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ rm -f .libs 2>/dev/null
+mkdir .libs 2>/dev/null
+if test -d .libs; then
+ lt_cv_objdir=.libs
+else
+ # MS-DOS does not allow filenames that begin with a dot.
+ lt_cv_objdir=_libs
+fi
+rmdir .libs 2>/dev/null
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_objdir" >&5
+$as_echo "$lt_cv_objdir" >&6; }
+objdir=$lt_cv_objdir
+
+
+
+
+
+cat >>confdefs.h <<_ACEOF
+#define LT_OBJDIR "$lt_cv_objdir/"
+_ACEOF
+
+
+
+
+case $host_os in
+aix3*)
+ # AIX sometimes has problems with the GCC collect2 program. For some
+ # reason, if we set the COLLECT_NAMES environment variable, the problems
+ # vanish in a puff of smoke.
+ if test set != "${COLLECT_NAMES+set}"; then
+ COLLECT_NAMES=
+ export COLLECT_NAMES
+ fi
+ ;;
+esac
+
+# Global variables:
+ofile=libtool
+can_build_shared=yes
+
+# All known linkers require a '.a' archive for static linking (except MSVC,
+# which needs '.lib').
+libext=a
+
+with_gnu_ld=$lt_cv_prog_gnu_ld
+
+old_CC=$CC
+old_CFLAGS=$CFLAGS
+
+# Set sane defaults for various variables
+test -z "$CC" && CC=cc
+test -z "$LTCC" && LTCC=$CC
+test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS
+test -z "$LD" && LD=ld
+test -z "$ac_objext" && ac_objext=o
+
+func_cc_basename $compiler
+cc_basename=$func_cc_basename_result
+
+
+# Only perform the check for file, if the check method requires it
+test -z "$MAGIC_CMD" && MAGIC_CMD=file
+case $deplibs_check_method in
+file_magic*)
+ if test "$file_magic_cmd" = '$MAGIC_CMD'; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${ac_tool_prefix}file" >&5
+$as_echo_n "checking for ${ac_tool_prefix}file... " >&6; }
+if ${lt_cv_path_MAGIC_CMD+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $MAGIC_CMD in
+[\\/*] | ?:[\\/]*)
+ lt_cv_path_MAGIC_CMD=$MAGIC_CMD # Let the user override the test with a path.
+ ;;
+*)
+ lt_save_MAGIC_CMD=$MAGIC_CMD
+ lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR
+ ac_dummy="/usr/bin$PATH_SEPARATOR$PATH"
+ for ac_dir in $ac_dummy; do
+ IFS=$lt_save_ifs
+ test -z "$ac_dir" && ac_dir=.
+ if test -f "$ac_dir/${ac_tool_prefix}file"; then
+ lt_cv_path_MAGIC_CMD=$ac_dir/"${ac_tool_prefix}file"
+ if test -n "$file_magic_test_file"; then
+ case $deplibs_check_method in
+ "file_magic "*)
+ file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"`
+ MAGIC_CMD=$lt_cv_path_MAGIC_CMD
+ if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
+ $EGREP "$file_magic_regex" > /dev/null; then
+ :
+ else
+ cat <<_LT_EOF 1>&2
+
+*** Warning: the command libtool uses to detect shared libraries,
+*** $file_magic_cmd, produces output that libtool cannot recognize.
+*** The result is that libtool may fail to recognize shared libraries
+*** as such. This will affect the creation of libtool libraries that
+*** depend on shared libraries, but programs linked with such libtool
+*** libraries will work regardless of this problem. Nevertheless, you
+*** may want to report the problem to your system manager and/or to
+*** bug-libtool@gnu.org
+
+_LT_EOF
+ fi ;;
+ esac
+ fi
+ break
+ fi
+ done
+ IFS=$lt_save_ifs
+ MAGIC_CMD=$lt_save_MAGIC_CMD
+ ;;
+esac
+fi
+
+MAGIC_CMD=$lt_cv_path_MAGIC_CMD
+if test -n "$MAGIC_CMD"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5
+$as_echo "$MAGIC_CMD" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+
+
+
+if test -z "$lt_cv_path_MAGIC_CMD"; then
+ if test -n "$ac_tool_prefix"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for file" >&5
+$as_echo_n "checking for file... " >&6; }
+if ${lt_cv_path_MAGIC_CMD+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $MAGIC_CMD in
+[\\/*] | ?:[\\/]*)
+ lt_cv_path_MAGIC_CMD=$MAGIC_CMD # Let the user override the test with a path.
+ ;;
+*)
+ lt_save_MAGIC_CMD=$MAGIC_CMD
+ lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR
+ ac_dummy="/usr/bin$PATH_SEPARATOR$PATH"
+ for ac_dir in $ac_dummy; do
+ IFS=$lt_save_ifs
+ test -z "$ac_dir" && ac_dir=.
+ if test -f "$ac_dir/file"; then
+ lt_cv_path_MAGIC_CMD=$ac_dir/"file"
+ if test -n "$file_magic_test_file"; then
+ case $deplibs_check_method in
+ "file_magic "*)
+ file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"`
+ MAGIC_CMD=$lt_cv_path_MAGIC_CMD
+ if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
+ $EGREP "$file_magic_regex" > /dev/null; then
+ :
+ else
+ cat <<_LT_EOF 1>&2
+
+*** Warning: the command libtool uses to detect shared libraries,
+*** $file_magic_cmd, produces output that libtool cannot recognize.
+*** The result is that libtool may fail to recognize shared libraries
+*** as such. This will affect the creation of libtool libraries that
+*** depend on shared libraries, but programs linked with such libtool
+*** libraries will work regardless of this problem. Nevertheless, you
+*** may want to report the problem to your system manager and/or to
+*** bug-libtool@gnu.org
+
+_LT_EOF
+ fi ;;
+ esac
+ fi
+ break
+ fi
+ done
+ IFS=$lt_save_ifs
+ MAGIC_CMD=$lt_save_MAGIC_CMD
+ ;;
+esac
+fi
+
+MAGIC_CMD=$lt_cv_path_MAGIC_CMD
+if test -n "$MAGIC_CMD"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5
+$as_echo "$MAGIC_CMD" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ else
+ MAGIC_CMD=:
+ fi
+fi
+
+ fi
+ ;;
+esac
+
+# Use C for the default configuration in the libtool script
+
+lt_save_CC=$CC
+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
+
+
+# Source file extension for C test sources.
+ac_ext=c
+
+# Object file extension for compiled C test sources.
+objext=o
+objext=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code="int some_variable = 0;"
+
+# Code to be used in simple link tests
+lt_simple_link_test_code='int main(){return(0);}'
+
+
+
+
+
+
+
+# If no C compiler was specified, use CC.
+LTCC=${LTCC-"$CC"}
+
+# If no C compiler flags were specified, use CFLAGS.
+LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
+
+# Allow CC to be a program name with arguments.
+compiler=$CC
+
+# Save the default compiler, since it gets overwritten when the other
+# tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP.
+compiler_DEFAULT=$CC
+
+# save warnings/boilerplate of simple test code
+ac_outfile=conftest.$ac_objext
+echo "$lt_simple_compile_test_code" >conftest.$ac_ext
+eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
+_lt_compiler_boilerplate=`cat conftest.err`
+$RM conftest*
+
+ac_outfile=conftest.$ac_objext
+echo "$lt_simple_link_test_code" >conftest.$ac_ext
+eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
+_lt_linker_boilerplate=`cat conftest.err`
+$RM -r conftest*
+
+
+## CAVEAT EMPTOR:
+## There is no encapsulation within the following macros, do not change
+## the running order or otherwise move them around unless you know exactly
+## what you are doing...
+if test -n "$compiler"; then
+
+lt_prog_compiler_no_builtin_flag=
+
+if test yes = "$GCC"; then
+ case $cc_basename in
+ nvcc*)
+ lt_prog_compiler_no_builtin_flag=' -Xcompiler -fno-builtin' ;;
+ *)
+ lt_prog_compiler_no_builtin_flag=' -fno-builtin' ;;
+ esac
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -fno-rtti -fno-exceptions" >&5
+$as_echo_n "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; }
+if ${lt_cv_prog_compiler_rtti_exceptions+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_prog_compiler_rtti_exceptions=no
+ ac_outfile=conftest.$ac_objext
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+ lt_compiler_flag="-fno-rtti -fno-exceptions" ## exclude from sc_useless_quotes_in_assignment
+ # Insert the option either (1) after the last *FLAGS variable, or
+ # (2) before a word containing "conftest.", or (3) at the end.
+ # Note that $ac_compile itself does not contain backslashes and begins
+ # with a dollar sign (not a hyphen), so the echo should work correctly.
+ # The option is referenced via a variable to avoid confusing sed.
+ lt_compile=`echo "$ac_compile" | $SED \
+ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+ -e 's:$: $lt_compiler_flag:'`
+ (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
+ (eval "$lt_compile" 2>conftest.err)
+ ac_status=$?
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ if (exit $ac_status) && test -s "$ac_outfile"; then
+ # The compiler can only warn and ignore the option if not recognized
+ # So say no if there are warnings other than the usual output.
+ $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp
+ $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+ if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
+ lt_cv_prog_compiler_rtti_exceptions=yes
+ fi
+ fi
+ $RM conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_rtti_exceptions" >&5
+$as_echo "$lt_cv_prog_compiler_rtti_exceptions" >&6; }
+
+if test yes = "$lt_cv_prog_compiler_rtti_exceptions"; then
+ lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions"
+else
+ :
+fi
+
+fi
+
+
+
+
+
+
+ lt_prog_compiler_wl=
+lt_prog_compiler_pic=
+lt_prog_compiler_static=
+
+
+ if test yes = "$GCC"; then
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_static='-static'
+
+ case $host_os in
+ aix*)
+ # All AIX code is PIC.
+ if test ia64 = "$host_cpu"; then
+ # AIX 5 now supports IA64 processor
+ lt_prog_compiler_static='-Bstatic'
+ fi
+ lt_prog_compiler_pic='-fPIC'
+ ;;
+
+ amigaos*)
+ case $host_cpu in
+ powerpc)
+ # see comment about AmigaOS4 .so support
+ lt_prog_compiler_pic='-fPIC'
+ ;;
+ m68k)
+ # FIXME: we need at least 68020 code to build shared libraries, but
+ # adding the '-m68020' flag to GCC prevents building anything better,
+ # like '-m68040'.
+ lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4'
+ ;;
+ esac
+ ;;
+
+ beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
+ # PIC is the default for these OSes.
+ ;;
+
+ mingw* | cygwin* | pw32* | os2* | cegcc*)
+ # This hack is so that the source file can tell whether it is being
+ # built for inclusion in a dll (and should export symbols for example).
+ # Although the cygwin gcc ignores -fPIC, still need this for old-style
+ # (--disable-auto-import) libraries
+ lt_prog_compiler_pic='-DDLL_EXPORT'
+ case $host_os in
+ os2*)
+ lt_prog_compiler_static='$wl-static'
+ ;;
+ esac
+ ;;
+
+ darwin* | rhapsody*)
+ # PIC is the default on this platform
+ # Common symbols not allowed in MH_DYLIB files
+ lt_prog_compiler_pic='-fno-common'
+ ;;
+
+ haiku*)
+ # PIC is the default for Haiku.
+ # The "-static" flag exists, but is broken.
+ lt_prog_compiler_static=
+ ;;
+
+ hpux*)
+ # PIC is the default for 64-bit PA HP-UX, but not for 32-bit
+ # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag
+ # sets the default TLS model and affects inlining.
+ case $host_cpu in
+ hppa*64*)
+ # +Z the default
+ ;;
+ *)
+ lt_prog_compiler_pic='-fPIC'
+ ;;
+ esac
+ ;;
+
+ interix[3-9]*)
+ # Interix 3.x gcc -fpic/-fPIC options generate broken code.
+ # Instead, we relocate shared libraries at runtime.
+ ;;
+
+ msdosdjgpp*)
+ # Just because we use GCC doesn't mean we suddenly get shared libraries
+ # on systems that don't support them.
+ lt_prog_compiler_can_build_shared=no
+ enable_shared=no
+ ;;
+
+ *nto* | *qnx*)
+ # QNX uses GNU C++, but need to define -shared option too, otherwise
+ # it will coredump.
+ lt_prog_compiler_pic='-fPIC -shared'
+ ;;
+
+ sysv4*MP*)
+ if test -d /usr/nec; then
+ lt_prog_compiler_pic=-Kconform_pic
+ fi
+ ;;
+
+ *)
+ lt_prog_compiler_pic='-fPIC'
+ ;;
+ esac
+
+ case $cc_basename in
+ nvcc*) # Cuda Compiler Driver 2.2
+ lt_prog_compiler_wl='-Xlinker '
+ if test -n "$lt_prog_compiler_pic"; then
+ lt_prog_compiler_pic="-Xcompiler $lt_prog_compiler_pic"
+ fi
+ ;;
+ esac
+ else
+ # PORTME Check for flag to pass linker flags through the system compiler.
+ case $host_os in
+ aix*)
+ lt_prog_compiler_wl='-Wl,'
+ if test ia64 = "$host_cpu"; then
+ # AIX 5 now supports IA64 processor
+ lt_prog_compiler_static='-Bstatic'
+ else
+ lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp'
+ fi
+ ;;
+
+ darwin* | rhapsody*)
+ # PIC is the default on this platform
+ # Common symbols not allowed in MH_DYLIB files
+ lt_prog_compiler_pic='-fno-common'
+ case $cc_basename in
+ nagfor*)
+ # NAG Fortran compiler
+ lt_prog_compiler_wl='-Wl,-Wl,,'
+ lt_prog_compiler_pic='-PIC'
+ lt_prog_compiler_static='-Bstatic'
+ ;;
+ esac
+ ;;
+
+ mingw* | cygwin* | pw32* | os2* | cegcc*)
+ # This hack is so that the source file can tell whether it is being
+ # built for inclusion in a dll (and should export symbols for example).
+ lt_prog_compiler_pic='-DDLL_EXPORT'
+ case $host_os in
+ os2*)
+ lt_prog_compiler_static='$wl-static'
+ ;;
+ esac
+ ;;
+
+ hpux9* | hpux10* | hpux11*)
+ lt_prog_compiler_wl='-Wl,'
+ # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
+ # not for PA HP-UX.
+ case $host_cpu in
+ hppa*64*|ia64*)
+ # +Z the default
+ ;;
+ *)
+ lt_prog_compiler_pic='+Z'
+ ;;
+ esac
+ # Is there a better lt_prog_compiler_static that works with the bundled CC?
+ lt_prog_compiler_static='$wl-a ${wl}archive'
+ ;;
+
+ irix5* | irix6* | nonstopux*)
+ lt_prog_compiler_wl='-Wl,'
+ # PIC (with -KPIC) is the default.
+ lt_prog_compiler_static='-non_shared'
+ ;;
+
+ linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
+ case $cc_basename in
+ # old Intel for x86_64, which still supported -KPIC.
+ ecc*)
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_pic='-KPIC'
+ lt_prog_compiler_static='-static'
+ ;;
+ # icc used to be incompatible with GCC.
+ # ICC 10 doesn't accept -KPIC any more.
+ icc* | ifort*)
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_pic='-fPIC'
+ lt_prog_compiler_static='-static'
+ ;;
+ # Lahey Fortran 8.1.
+ lf95*)
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_pic='--shared'
+ lt_prog_compiler_static='--static'
+ ;;
+ nagfor*)
+ # NAG Fortran compiler
+ lt_prog_compiler_wl='-Wl,-Wl,,'
+ lt_prog_compiler_pic='-PIC'
+ lt_prog_compiler_static='-Bstatic'
+ ;;
+ tcc*)
+ # Fabrice Bellard et al's Tiny C Compiler
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_pic='-fPIC'
+ lt_prog_compiler_static='-static'
+ ;;
+ pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*)
+ # Portland Group compilers (*not* the Pentium gcc compiler,
+ # which looks to be a dead project)
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_pic='-fpic'
+ lt_prog_compiler_static='-Bstatic'
+ ;;
+ ccc*)
+ lt_prog_compiler_wl='-Wl,'
+ # All Alpha code is PIC.
+ lt_prog_compiler_static='-non_shared'
+ ;;
+ xl* | bgxl* | bgf* | mpixl*)
+ # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_pic='-qpic'
+ lt_prog_compiler_static='-qstaticlink'
+ ;;
+ *)
+ case `$CC -V 2>&1 | sed 5q` in
+ *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [1-7].* | *Sun*Fortran*\ 8.[0-3]*)
+ # Sun Fortran 8.3 passes all unrecognized flags to the linker
+ lt_prog_compiler_pic='-KPIC'
+ lt_prog_compiler_static='-Bstatic'
+ lt_prog_compiler_wl=''
+ ;;
+ *Sun\ F* | *Sun*Fortran*)
+ lt_prog_compiler_pic='-KPIC'
+ lt_prog_compiler_static='-Bstatic'
+ lt_prog_compiler_wl='-Qoption ld '
+ ;;
+ *Sun\ C*)
+ # Sun C 5.9
+ lt_prog_compiler_pic='-KPIC'
+ lt_prog_compiler_static='-Bstatic'
+ lt_prog_compiler_wl='-Wl,'
+ ;;
+ *Intel*\ [CF]*Compiler*)
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_pic='-fPIC'
+ lt_prog_compiler_static='-static'
+ ;;
+ *Portland\ Group*)
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_pic='-fpic'
+ lt_prog_compiler_static='-Bstatic'
+ ;;
+ esac
+ ;;
+ esac
+ ;;
+
+ newsos6)
+ lt_prog_compiler_pic='-KPIC'
+ lt_prog_compiler_static='-Bstatic'
+ ;;
+
+ *nto* | *qnx*)
+ # QNX uses GNU C++, but need to define -shared option too, otherwise
+ # it will coredump.
+ lt_prog_compiler_pic='-fPIC -shared'
+ ;;
+
+ osf3* | osf4* | osf5*)
+ lt_prog_compiler_wl='-Wl,'
+ # All OSF/1 code is PIC.
+ lt_prog_compiler_static='-non_shared'
+ ;;
+
+ rdos*)
+ lt_prog_compiler_static='-non_shared'
+ ;;
+
+ solaris*)
+ lt_prog_compiler_pic='-KPIC'
+ lt_prog_compiler_static='-Bstatic'
+ case $cc_basename in
+ f77* | f90* | f95* | sunf77* | sunf90* | sunf95*)
+ lt_prog_compiler_wl='-Qoption ld ';;
+ *)
+ lt_prog_compiler_wl='-Wl,';;
+ esac
+ ;;
+
+ sunos4*)
+ lt_prog_compiler_wl='-Qoption ld '
+ lt_prog_compiler_pic='-PIC'
+ lt_prog_compiler_static='-Bstatic'
+ ;;
+
+ sysv4 | sysv4.2uw2* | sysv4.3*)
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_pic='-KPIC'
+ lt_prog_compiler_static='-Bstatic'
+ ;;
+
+ sysv4*MP*)
+ if test -d /usr/nec; then
+ lt_prog_compiler_pic='-Kconform_pic'
+ lt_prog_compiler_static='-Bstatic'
+ fi
+ ;;
+
+ sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_pic='-KPIC'
+ lt_prog_compiler_static='-Bstatic'
+ ;;
+
+ unicos*)
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_can_build_shared=no
+ ;;
+
+ uts4*)
+ lt_prog_compiler_pic='-pic'
+ lt_prog_compiler_static='-Bstatic'
+ ;;
+
+ *)
+ lt_prog_compiler_can_build_shared=no
+ ;;
+ esac
+ fi
+
+case $host_os in
+ # For platforms that do not support PIC, -DPIC is meaningless:
+ *djgpp*)
+ lt_prog_compiler_pic=
+ ;;
+ *)
+ lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC"
+ ;;
+esac
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5
+$as_echo_n "checking for $compiler option to produce PIC... " >&6; }
+if ${lt_cv_prog_compiler_pic+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_prog_compiler_pic=$lt_prog_compiler_pic
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5
+$as_echo "$lt_cv_prog_compiler_pic" >&6; }
+lt_prog_compiler_pic=$lt_cv_prog_compiler_pic
+
+#
+# Check to make sure the PIC flag actually works.
+#
+if test -n "$lt_prog_compiler_pic"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5
+$as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; }
+if ${lt_cv_prog_compiler_pic_works+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_prog_compiler_pic_works=no
+ ac_outfile=conftest.$ac_objext
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+ lt_compiler_flag="$lt_prog_compiler_pic -DPIC" ## exclude from sc_useless_quotes_in_assignment
+ # Insert the option either (1) after the last *FLAGS variable, or
+ # (2) before a word containing "conftest.", or (3) at the end.
+ # Note that $ac_compile itself does not contain backslashes and begins
+ # with a dollar sign (not a hyphen), so the echo should work correctly.
+ # The option is referenced via a variable to avoid confusing sed.
+ lt_compile=`echo "$ac_compile" | $SED \
+ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+ -e 's:$: $lt_compiler_flag:'`
+ (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
+ (eval "$lt_compile" 2>conftest.err)
+ ac_status=$?
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ if (exit $ac_status) && test -s "$ac_outfile"; then
+ # The compiler can only warn and ignore the option if not recognized
+ # So say no if there are warnings other than the usual output.
+ $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp
+ $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+ if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
+ lt_cv_prog_compiler_pic_works=yes
+ fi
+ fi
+ $RM conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works" >&5
+$as_echo "$lt_cv_prog_compiler_pic_works" >&6; }
+
+if test yes = "$lt_cv_prog_compiler_pic_works"; then
+ case $lt_prog_compiler_pic in
+ "" | " "*) ;;
+ *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;;
+ esac
+else
+ lt_prog_compiler_pic=
+ lt_prog_compiler_can_build_shared=no
+fi
+
+fi
+
+
+
+
+
+
+
+
+
+
+
+#
+# Check to make sure the static flag actually works.
+#
+wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\"
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5
+$as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; }
+if ${lt_cv_prog_compiler_static_works+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_prog_compiler_static_works=no
+ save_LDFLAGS=$LDFLAGS
+ LDFLAGS="$LDFLAGS $lt_tmp_static_flag"
+ echo "$lt_simple_link_test_code" > conftest.$ac_ext
+ if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
+ # The linker can only warn and ignore the option if not recognized
+ # So say no if there are warnings
+ if test -s conftest.err; then
+ # Append any errors to the config.log.
+ cat conftest.err 1>&5
+ $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp
+ $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+ if diff conftest.exp conftest.er2 >/dev/null; then
+ lt_cv_prog_compiler_static_works=yes
+ fi
+ else
+ lt_cv_prog_compiler_static_works=yes
+ fi
+ fi
+ $RM -r conftest*
+ LDFLAGS=$save_LDFLAGS
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works" >&5
+$as_echo "$lt_cv_prog_compiler_static_works" >&6; }
+
+if test yes = "$lt_cv_prog_compiler_static_works"; then
+ :
+else
+ lt_prog_compiler_static=
+fi
+
+
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
+$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
+if ${lt_cv_prog_compiler_c_o+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_prog_compiler_c_o=no
+ $RM -r conftest 2>/dev/null
+ mkdir conftest
+ cd conftest
+ mkdir out
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+ lt_compiler_flag="-o out/conftest2.$ac_objext"
+ # Insert the option either (1) after the last *FLAGS variable, or
+ # (2) before a word containing "conftest.", or (3) at the end.
+ # Note that $ac_compile itself does not contain backslashes and begins
+ # with a dollar sign (not a hyphen), so the echo should work correctly.
+ lt_compile=`echo "$ac_compile" | $SED \
+ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+ -e 's:$: $lt_compiler_flag:'`
+ (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
+ (eval "$lt_compile" 2>out/conftest.err)
+ ac_status=$?
+ cat out/conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ if (exit $ac_status) && test -s out/conftest2.$ac_objext
+ then
+ # The compiler can only warn and ignore the option if not recognized
+ # So say no if there are warnings
+ $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp
+ $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
+ if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
+ lt_cv_prog_compiler_c_o=yes
+ fi
+ fi
+ chmod u+w . 2>&5
+ $RM conftest*
+ # SGI C++ compiler will create directory out/ii_files/ for
+ # template instantiation
+ test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files
+ $RM out/* && rmdir out
+ cd ..
+ $RM -r conftest
+ $RM conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5
+$as_echo "$lt_cv_prog_compiler_c_o" >&6; }
+
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
+$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
+if ${lt_cv_prog_compiler_c_o+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_prog_compiler_c_o=no
+ $RM -r conftest 2>/dev/null
+ mkdir conftest
+ cd conftest
+ mkdir out
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+ lt_compiler_flag="-o out/conftest2.$ac_objext"
+ # Insert the option either (1) after the last *FLAGS variable, or
+ # (2) before a word containing "conftest.", or (3) at the end.
+ # Note that $ac_compile itself does not contain backslashes and begins
+ # with a dollar sign (not a hyphen), so the echo should work correctly.
+ lt_compile=`echo "$ac_compile" | $SED \
+ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+ -e 's:$: $lt_compiler_flag:'`
+ (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
+ (eval "$lt_compile" 2>out/conftest.err)
+ ac_status=$?
+ cat out/conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ if (exit $ac_status) && test -s out/conftest2.$ac_objext
+ then
+ # The compiler can only warn and ignore the option if not recognized
+ # So say no if there are warnings
+ $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp
+ $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
+ if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
+ lt_cv_prog_compiler_c_o=yes
+ fi
+ fi
+ chmod u+w . 2>&5
+ $RM conftest*
+ # SGI C++ compiler will create directory out/ii_files/ for
+ # template instantiation
+ test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files
+ $RM out/* && rmdir out
+ cd ..
+ $RM -r conftest
+ $RM conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5
+$as_echo "$lt_cv_prog_compiler_c_o" >&6; }
+
+
+
+
+hard_links=nottested
+if test no = "$lt_cv_prog_compiler_c_o" && test no != "$need_locks"; then
+ # do not overwrite the value of need_locks provided by the user
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5
+$as_echo_n "checking if we can lock with hard links... " >&6; }
+ hard_links=yes
+ $RM conftest*
+ ln conftest.a conftest.b 2>/dev/null && hard_links=no
+ touch conftest.a
+ ln conftest.a conftest.b 2>&5 || hard_links=no
+ ln conftest.a conftest.b 2>/dev/null && hard_links=no
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5
+$as_echo "$hard_links" >&6; }
+ if test no = "$hard_links"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: '$CC' does not support '-c -o', so 'make -j' may be unsafe" >&5
+$as_echo "$as_me: WARNING: '$CC' does not support '-c -o', so 'make -j' may be unsafe" >&2;}
+ need_locks=warn
+ fi
+else
+ need_locks=no
+fi
+
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5
+$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; }
+
+ runpath_var=
+ allow_undefined_flag=
+ always_export_symbols=no
+ archive_cmds=
+ archive_expsym_cmds=
+ compiler_needs_object=no
+ enable_shared_with_static_runtimes=no
+ export_dynamic_flag_spec=
+ export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+ hardcode_automatic=no
+ hardcode_direct=no
+ hardcode_direct_absolute=no
+ hardcode_libdir_flag_spec=
+ hardcode_libdir_separator=
+ hardcode_minus_L=no
+ hardcode_shlibpath_var=unsupported
+ inherit_rpath=no
+ link_all_deplibs=unknown
+ module_cmds=
+ module_expsym_cmds=
+ old_archive_from_new_cmds=
+ old_archive_from_expsyms_cmds=
+ thread_safe_flag_spec=
+ whole_archive_flag_spec=
+ # include_expsyms should be a list of space-separated symbols to be *always*
+ # included in the symbol list
+ include_expsyms=
+ # exclude_expsyms can be an extended regexp of symbols to exclude
+ # it will be wrapped by ' (' and ')$', so one must not match beginning or
+ # end of line. Example: 'a|bc|.*d.*' will exclude the symbols 'a' and 'bc',
+ # as well as any symbol that contains 'd'.
+ exclude_expsyms='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'
+ # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
+ # platforms (ab)use it in PIC code, but their linkers get confused if
+ # the symbol is explicitly referenced. Since portable code cannot
+ # rely on this symbol name, it's probably fine to never include it in
+ # preloaded symbol tables.
+ # Exclude shared library initialization/finalization symbols.
+ extract_expsyms_cmds=
+
+ case $host_os in
+ cygwin* | mingw* | pw32* | cegcc*)
+ # FIXME: the MSVC++ port hasn't been tested in a loooong time
+ # When not using gcc, we currently assume that we are using
+ # Microsoft Visual C++.
+ if test yes != "$GCC"; then
+ with_gnu_ld=no
+ fi
+ ;;
+ interix*)
+ # we just hope/assume this is gcc and not c89 (= MSVC++)
+ with_gnu_ld=yes
+ ;;
+ openbsd* | bitrig*)
+ with_gnu_ld=no
+ ;;
+ esac
+
+ ld_shlibs=yes
+
+ # On some targets, GNU ld is compatible enough with the native linker
+ # that we're better off using the native interface for both.
+ lt_use_gnu_ld_interface=no
+ if test yes = "$with_gnu_ld"; then
+ case $host_os in
+ aix*)
+ # The AIX port of GNU ld has always aspired to compatibility
+ # with the native linker. However, as the warning in the GNU ld
+ # block says, versions before 2.19.5* couldn't really create working
+ # shared libraries, regardless of the interface used.
+ case `$LD -v 2>&1` in
+ *\ \(GNU\ Binutils\)\ 2.19.5*) ;;
+ *\ \(GNU\ Binutils\)\ 2.[2-9]*) ;;
+ *\ \(GNU\ Binutils\)\ [3-9]*) ;;
+ *)
+ lt_use_gnu_ld_interface=yes
+ ;;
+ esac
+ ;;
+ *)
+ lt_use_gnu_ld_interface=yes
+ ;;
+ esac
+ fi
+
+ if test yes = "$lt_use_gnu_ld_interface"; then
+ # If archive_cmds runs LD, not CC, wlarc should be empty
+ wlarc='$wl'
+
+ # Set some defaults for GNU ld with shared library support. These
+ # are reset later if shared libraries are not supported. Putting them
+ # here allows them to be overridden if necessary.
+ runpath_var=LD_RUN_PATH
+ hardcode_libdir_flag_spec='$wl-rpath $wl$libdir'
+ export_dynamic_flag_spec='$wl--export-dynamic'
+ # ancient GNU ld didn't support --whole-archive et. al.
+ if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then
+ whole_archive_flag_spec=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive'
+ else
+ whole_archive_flag_spec=
+ fi
+ supports_anon_versioning=no
+ case `$LD -v | $SED -e 's/(^)\+)\s\+//' 2>&1` in
+ *GNU\ gold*) supports_anon_versioning=yes ;;
+ *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11
+ *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
+ *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ...
+ *\ 2.11.*) ;; # other 2.11 versions
+ *) supports_anon_versioning=yes ;;
+ esac
+
+ # See if GNU ld supports shared libraries.
+ case $host_os in
+ aix[3-9]*)
+ # On AIX/PPC, the GNU linker is very broken
+ if test ia64 != "$host_cpu"; then
+ ld_shlibs=no
+ cat <<_LT_EOF 1>&2
+
+*** Warning: the GNU linker, at least up to release 2.19, is reported
+*** to be unable to reliably create shared libraries on AIX.
+*** Therefore, libtool is disabling shared libraries support. If you
+*** really care for shared libraries, you may want to install binutils
+*** 2.20 or above, or modify your PATH so that a non-GNU linker is found.
+*** You will then need to restart the configuration process.
+
+_LT_EOF
+ fi
+ ;;
+
+ amigaos*)
+ case $host_cpu in
+ powerpc)
+ # see comment about AmigaOS4 .so support
+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+ archive_expsym_cmds=''
+ ;;
+ m68k)
+ archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_minus_L=yes
+ ;;
+ esac
+ ;;
+
+ beos*)
+ if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+ allow_undefined_flag=unsupported
+ # Joseph Beckenbach <jrb3@best.com> says some releases of gcc
+ # support --undefined. This deserves some investigation. FIXME
+ archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+ else
+ ld_shlibs=no
+ fi
+ ;;
+
+ cygwin* | mingw* | pw32* | cegcc*)
+ # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless,
+ # as there is no search path for DLLs.
+ hardcode_libdir_flag_spec='-L$libdir'
+ export_dynamic_flag_spec='$wl--export-all-symbols'
+ allow_undefined_flag=unsupported
+ always_export_symbols=no
+ enable_shared_with_static_runtimes=yes
+ export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols'
+ exclude_expsyms='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'
+
+ if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+ # If the export-symbols file already is a .def file, use it as
+ # is; otherwise, prepend EXPORTS...
+ archive_expsym_cmds='if test DEF = "`$SED -n -e '\''s/^[ ]*//'\'' -e '\''/^\(;.*\)*$/d'\'' -e '\''s/^\(EXPORTS\|LIBRARY\)\([ ].*\)*$/DEF/p'\'' -e q $export_symbols`" ; then
+ cp $export_symbols $output_objdir/$soname.def;
+ else
+ echo EXPORTS > $output_objdir/$soname.def;
+ cat $export_symbols >> $output_objdir/$soname.def;
+ fi~
+ $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+ else
+ ld_shlibs=no
+ fi
+ ;;
+
+ haiku*)
+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+ link_all_deplibs=yes
+ ;;
+
+ os2*)
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_minus_L=yes
+ allow_undefined_flag=unsupported
+ shrext_cmds=.dll
+ archive_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~
+ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~
+ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~
+ $ECHO EXPORTS >> $output_objdir/$libname.def~
+ emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~
+ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~
+ emximp -o $lib $output_objdir/$libname.def'
+ archive_expsym_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~
+ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~
+ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~
+ $ECHO EXPORTS >> $output_objdir/$libname.def~
+ prefix_cmds="$SED"~
+ if test EXPORTS = "`$SED 1q $export_symbols`"; then
+ prefix_cmds="$prefix_cmds -e 1d";
+ fi~
+ prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~
+ cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~
+ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~
+ emximp -o $lib $output_objdir/$libname.def'
+ old_archive_From_new_cmds='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def'
+ enable_shared_with_static_runtimes=yes
+ ;;
+
+ interix[3-9]*)
+ hardcode_direct=no
+ hardcode_shlibpath_var=no
+ hardcode_libdir_flag_spec='$wl-rpath,$libdir'
+ export_dynamic_flag_spec='$wl-E'
+ # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
+ # Instead, shared libraries are loaded at an image base (0x10000000 by
+ # default) and relocated if they conflict, which is a slow very memory
+ # consuming and fragmenting process. To avoid this, we pick a random,
+ # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
+ # time. Moving up from 0x10000000 also allows more sbrk(2) space.
+ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+ archive_expsym_cmds='sed "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+ ;;
+
+ gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu)
+ tmp_diet=no
+ if test linux-dietlibc = "$host_os"; then
+ case $cc_basename in
+ diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn)
+ esac
+ fi
+ if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \
+ && test no = "$tmp_diet"
+ then
+ tmp_addflag=' $pic_flag'
+ tmp_sharedflag='-shared'
+ case $cc_basename,$host_cpu in
+ pgcc*) # Portland Group C compiler
+ whole_archive_flag_spec='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
+ tmp_addflag=' $pic_flag'
+ ;;
+ pgf77* | pgf90* | pgf95* | pgfortran*)
+ # Portland Group f77 and f90 compilers
+ whole_archive_flag_spec='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
+ tmp_addflag=' $pic_flag -Mnomain' ;;
+ ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64
+ tmp_addflag=' -i_dynamic' ;;
+ efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64
+ tmp_addflag=' -i_dynamic -nofor_main' ;;
+ ifc* | ifort*) # Intel Fortran compiler
+ tmp_addflag=' -nofor_main' ;;
+ lf95*) # Lahey Fortran 8.1
+ whole_archive_flag_spec=
+ tmp_sharedflag='--shared' ;;
+ nagfor*) # NAGFOR 5.3
+ tmp_sharedflag='-Wl,-shared' ;;
+ xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below)
+ tmp_sharedflag='-qmkshrobj'
+ tmp_addflag= ;;
+ nvcc*) # Cuda Compiler Driver 2.2
+ whole_archive_flag_spec='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
+ compiler_needs_object=yes
+ ;;
+ esac
+ case `$CC -V 2>&1 | sed 5q` in
+ *Sun\ C*) # Sun C 5.9
+ whole_archive_flag_spec='$wl--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
+ compiler_needs_object=yes
+ tmp_sharedflag='-G' ;;
+ *Sun\ F*) # Sun Fortran 8.3
+ tmp_sharedflag='-G' ;;
+ esac
+ archive_cmds='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+
+ if test yes = "$supports_anon_versioning"; then
+ archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~
+ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+ echo "local: *; };" >> $output_objdir/$libname.ver~
+ $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib'
+ fi
+
+ case $cc_basename in
+ tcc*)
+ export_dynamic_flag_spec='-rdynamic'
+ ;;
+ xlf* | bgf* | bgxlf* | mpixlf*)
+ # IBM XL Fortran 10.1 on PPC cannot create shared libs itself
+ whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive'
+ hardcode_libdir_flag_spec='$wl-rpath $wl$libdir'
+ archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib'
+ if test yes = "$supports_anon_versioning"; then
+ archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~
+ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+ echo "local: *; };" >> $output_objdir/$libname.ver~
+ $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'
+ fi
+ ;;
+ esac
+ else
+ ld_shlibs=no
+ fi
+ ;;
+
+ netbsd*)
+ if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
+ archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
+ wlarc=
+ else
+ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
+ fi
+ ;;
+
+ solaris*)
+ if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then
+ ld_shlibs=no
+ cat <<_LT_EOF 1>&2
+
+*** Warning: The releases 2.8.* of the GNU linker cannot reliably
+*** create shared libraries on Solaris systems. Therefore, libtool
+*** is disabling shared libraries support. We urge you to upgrade GNU
+*** binutils to release 2.9.1 or newer. Another option is to modify
+*** your PATH or compiler configuration so that the native linker is
+*** used, and then restart.
+
+_LT_EOF
+ elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
+ else
+ ld_shlibs=no
+ fi
+ ;;
+
+ sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*)
+ case `$LD -v 2>&1` in
+ *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*)
+ ld_shlibs=no
+ cat <<_LT_EOF 1>&2
+
+*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 cannot
+*** reliably create shared libraries on SCO systems. Therefore, libtool
+*** is disabling shared libraries support. We urge you to upgrade GNU
+*** binutils to release 2.16.91.0.3 or newer. Another option is to modify
+*** your PATH or compiler configuration so that the native linker is
+*** used, and then restart.
+
+_LT_EOF
+ ;;
+ *)
+ # For security reasons, it is highly recommended that you always
+ # use absolute paths for naming shared libraries, and exclude the
+ # DT_RUNPATH tag from executables and libraries. But doing so
+ # requires that you compile everything twice, which is a pain.
+ if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+ hardcode_libdir_flag_spec='$wl-rpath $wl$libdir'
+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+ archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
+ else
+ ld_shlibs=no
+ fi
+ ;;
+ esac
+ ;;
+
+ sunos4*)
+ archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+ wlarc=
+ hardcode_direct=yes
+ hardcode_shlibpath_var=no
+ ;;
+
+ *)
+ if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
+ else
+ ld_shlibs=no
+ fi
+ ;;
+ esac
+
+ if test no = "$ld_shlibs"; then
+ runpath_var=
+ hardcode_libdir_flag_spec=
+ export_dynamic_flag_spec=
+ whole_archive_flag_spec=
+ fi
+ else
+ # PORTME fill in a description of your system's linker (not GNU ld)
+ case $host_os in
+ aix3*)
+ allow_undefined_flag=unsupported
+ always_export_symbols=yes
+ archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname'
+ # Note: this linker hardcodes the directories in LIBPATH if there
+ # are no directories specified by -L.
+ hardcode_minus_L=yes
+ if test yes = "$GCC" && test -z "$lt_prog_compiler_static"; then
+ # Neither direct hardcoding nor static linking is supported with a
+ # broken collect2.
+ hardcode_direct=unsupported
+ fi
+ ;;
+
+ aix[4-9]*)
+ if test ia64 = "$host_cpu"; then
+ # On IA64, the linker does run time linking by default, so we don't
+ # have to do anything special.
+ aix_use_runtimelinking=no
+ exp_sym_flag='-Bexport'
+ no_entry_flag=
+ else
+ # If we're using GNU nm, then we don't want the "-C" option.
+ # -C means demangle to GNU nm, but means don't demangle to AIX nm.
+ # Without the "-l" option, or with the "-B" option, AIX nm treats
+ # weak defined symbols like other global defined symbols, whereas
+ # GNU nm marks them as "W".
+ # While the 'weak' keyword is ignored in the Export File, we need
+ # it in the Import File for the 'aix-soname' feature, so we have
+ # to replace the "-B" option with "-P" for AIX nm.
+ if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
+ export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols'
+ else
+ export_symbols_cmds='`func_echo_all $NM | $SED -e '\''s/B\([^B]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && (substr(\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols'
+ fi
+ aix_use_runtimelinking=no
+
+ # Test if we are trying to use run time linking or normal
+ # AIX style linking. If -brtl is somewhere in LDFLAGS, we
+ # have runtime linking enabled, and use it for executables.
+ # For shared libraries, we enable/disable runtime linking
+ # depending on the kind of the shared library created -
+ # when "with_aix_soname,aix_use_runtimelinking" is:
+ # "aix,no" lib.a(lib.so.V) shared, rtl:no, for executables
+ # "aix,yes" lib.so shared, rtl:yes, for executables
+ # lib.a static archive
+ # "both,no" lib.so.V(shr.o) shared, rtl:yes
+ # lib.a(lib.so.V) shared, rtl:no, for executables
+ # "both,yes" lib.so.V(shr.o) shared, rtl:yes, for executables
+ # lib.a(lib.so.V) shared, rtl:no
+ # "svr4,*" lib.so.V(shr.o) shared, rtl:yes, for executables
+ # lib.a static archive
+ case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*)
+ for ld_flag in $LDFLAGS; do
+ if (test x-brtl = "x$ld_flag" || test x-Wl,-brtl = "x$ld_flag"); then
+ aix_use_runtimelinking=yes
+ break
+ fi
+ done
+ if test svr4,no = "$with_aix_soname,$aix_use_runtimelinking"; then
+ # With aix-soname=svr4, we create the lib.so.V shared archives only,
+ # so we don't have lib.a shared libs to link our executables.
+ # We have to force runtime linking in this case.
+ aix_use_runtimelinking=yes
+ LDFLAGS="$LDFLAGS -Wl,-brtl"
+ fi
+ ;;
+ esac
+
+ exp_sym_flag='-bexport'
+ no_entry_flag='-bnoentry'
+ fi
+
+ # When large executables or shared objects are built, AIX ld can
+ # have problems creating the table of contents. If linking a library
+ # or program results in "error TOC overflow" add -mminimal-toc to
+ # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not
+ # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
+
+ archive_cmds=''
+ hardcode_direct=yes
+ hardcode_direct_absolute=yes
+ hardcode_libdir_separator=':'
+ link_all_deplibs=yes
+ file_list_spec='$wl-f,'
+ case $with_aix_soname,$aix_use_runtimelinking in
+ aix,*) ;; # traditional, no import file
+ svr4,* | *,yes) # use import file
+ # The Import File defines what to hardcode.
+ hardcode_direct=no
+ hardcode_direct_absolute=no
+ ;;
+ esac
+
+ if test yes = "$GCC"; then
+ case $host_os in aix4.[012]|aix4.[012].*)
+ # We only want to do this on AIX 4.2 and lower, the check
+ # below for broken collect2 doesn't work under 4.3+
+ collect2name=`$CC -print-prog-name=collect2`
+ if test -f "$collect2name" &&
+ strings "$collect2name" | $GREP resolve_lib_name >/dev/null
+ then
+ # We have reworked collect2
+ :
+ else
+ # We have old collect2
+ hardcode_direct=unsupported
+ # It fails to find uninstalled libraries when the uninstalled
+ # path is not listed in the libpath. Setting hardcode_minus_L
+ # to unsupported forces relinking
+ hardcode_minus_L=yes
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_libdir_separator=
+ fi
+ ;;
+ esac
+ shared_flag='-shared'
+ if test yes = "$aix_use_runtimelinking"; then
+ shared_flag="$shared_flag "'$wl-G'
+ fi
+ # Need to ensure runtime linking is disabled for the traditional
+ # shared library, or the linker may eventually find shared libraries
+ # /with/ Import File - we do not want to mix them.
+ shared_flag_aix='-shared'
+ shared_flag_svr4='-shared $wl-G'
+ else
+ # not using gcc
+ if test ia64 = "$host_cpu"; then
+ # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
+ # chokes on -Wl,-G. The following line is correct:
+ shared_flag='-G'
+ else
+ if test yes = "$aix_use_runtimelinking"; then
+ shared_flag='$wl-G'
+ else
+ shared_flag='$wl-bM:SRE'
+ fi
+ shared_flag_aix='$wl-bM:SRE'
+ shared_flag_svr4='$wl-G'
+ fi
+ fi
+
+ export_dynamic_flag_spec='$wl-bexpall'
+ # It seems that -bexpall does not export symbols beginning with
+ # underscore (_), so it is better to generate a list of symbols to export.
+ always_export_symbols=yes
+ if test aix,yes = "$with_aix_soname,$aix_use_runtimelinking"; then
+ # Warning - without using the other runtime loading flags (-brtl),
+ # -berok will link without error, but may produce a broken library.
+ allow_undefined_flag='-berok'
+ # Determine the default libpath from the value encoded in an
+ # empty executable.
+ if test set = "${lt_cv_aix_libpath+set}"; then
+ aix_libpath=$lt_cv_aix_libpath
+else
+ if ${lt_cv_aix_libpath_+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+
+ lt_aix_libpath_sed='
+ /Import File Strings/,/^$/ {
+ /^0/ {
+ s/^0 *\([^ ]*\) *$/\1/
+ p
+ }
+ }'
+ lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+ # Check for a 64-bit object if we didn't find anything.
+ if test -z "$lt_cv_aix_libpath_"; then
+ lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+ fi
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ if test -z "$lt_cv_aix_libpath_"; then
+ lt_cv_aix_libpath_=/usr/lib:/lib
+ fi
+
+fi
+
+ aix_libpath=$lt_cv_aix_libpath_
+fi
+
+ hardcode_libdir_flag_spec='$wl-blibpath:$libdir:'"$aix_libpath"
+ archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs $wl'$no_entry_flag' $compiler_flags `if test -n "$allow_undefined_flag"; then func_echo_all "$wl$allow_undefined_flag"; else :; fi` $wl'$exp_sym_flag:\$export_symbols' '$shared_flag
+ else
+ if test ia64 = "$host_cpu"; then
+ hardcode_libdir_flag_spec='$wl-R $libdir:/usr/lib:/lib'
+ allow_undefined_flag="-z nodefs"
+ archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\$wl$no_entry_flag"' $compiler_flags $wl$allow_undefined_flag '"\$wl$exp_sym_flag:\$export_symbols"
+ else
+ # Determine the default libpath from the value encoded in an
+ # empty executable.
+ if test set = "${lt_cv_aix_libpath+set}"; then
+ aix_libpath=$lt_cv_aix_libpath
+else
+ if ${lt_cv_aix_libpath_+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+
+ lt_aix_libpath_sed='
+ /Import File Strings/,/^$/ {
+ /^0/ {
+ s/^0 *\([^ ]*\) *$/\1/
+ p
+ }
+ }'
+ lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+ # Check for a 64-bit object if we didn't find anything.
+ if test -z "$lt_cv_aix_libpath_"; then
+ lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+ fi
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ if test -z "$lt_cv_aix_libpath_"; then
+ lt_cv_aix_libpath_=/usr/lib:/lib
+ fi
+
+fi
+
+ aix_libpath=$lt_cv_aix_libpath_
+fi
+
+ hardcode_libdir_flag_spec='$wl-blibpath:$libdir:'"$aix_libpath"
+ # Warning - without using the other run time loading flags,
+ # -berok will link without error, but may produce a broken library.
+ no_undefined_flag=' $wl-bernotok'
+ allow_undefined_flag=' $wl-berok'
+ if test yes = "$with_gnu_ld"; then
+ # We only use this code for GNU lds that support --whole-archive.
+ whole_archive_flag_spec='$wl--whole-archive$convenience $wl--no-whole-archive'
+ else
+ # Exported symbols can be pulled into shared objects from archives
+ whole_archive_flag_spec='$convenience'
+ fi
+ archive_cmds_need_lc=yes
+ archive_expsym_cmds='$RM -r $output_objdir/$realname.d~$MKDIR $output_objdir/$realname.d'
+ # -brtl affects multiple linker settings, -berok does not and is overridden later
+ compiler_flags_filtered='`func_echo_all "$compiler_flags " | $SED -e "s%-brtl\\([, ]\\)%-berok\\1%g"`'
+ if test svr4 != "$with_aix_soname"; then
+ # This is similar to how AIX traditionally builds its shared libraries.
+ archive_expsym_cmds="$archive_expsym_cmds"'~$CC '$shared_flag_aix' -o $output_objdir/$realname.d/$soname $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$realname.d/$soname'
+ fi
+ if test aix != "$with_aix_soname"; then
+ archive_expsym_cmds="$archive_expsym_cmds"'~$CC '$shared_flag_svr4' -o $output_objdir/$realname.d/$shared_archive_member_spec.o $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$STRIP -e $output_objdir/$realname.d/$shared_archive_member_spec.o~( func_echo_all "#! $soname($shared_archive_member_spec.o)"; if test shr_64 = "$shared_archive_member_spec"; then func_echo_all "# 64"; else func_echo_all "# 32"; fi; cat $export_symbols ) > $output_objdir/$realname.d/$shared_archive_member_spec.imp~$AR $AR_FLAGS $output_objdir/$soname $output_objdir/$realname.d/$shared_archive_member_spec.o $output_objdir/$realname.d/$shared_archive_member_spec.imp'
+ else
+ # used by -dlpreopen to get the symbols
+ archive_expsym_cmds="$archive_expsym_cmds"'~$MV $output_objdir/$realname.d/$soname $output_objdir'
+ fi
+ archive_expsym_cmds="$archive_expsym_cmds"'~$RM -r $output_objdir/$realname.d'
+ fi
+ fi
+ ;;
+
+ amigaos*)
+ case $host_cpu in
+ powerpc)
+ # see comment about AmigaOS4 .so support
+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+ archive_expsym_cmds=''
+ ;;
+ m68k)
+ archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_minus_L=yes
+ ;;
+ esac
+ ;;
+
+ bsdi[45]*)
+ export_dynamic_flag_spec=-rdynamic
+ ;;
+
+ cygwin* | mingw* | pw32* | cegcc*)
+ # When not using gcc, we currently assume that we are using
+ # Microsoft Visual C++.
+ # hardcode_libdir_flag_spec is actually meaningless, as there is
+ # no search path for DLLs.
+ case $cc_basename in
+ cl*)
+ # Native MSVC
+ hardcode_libdir_flag_spec=' '
+ allow_undefined_flag=unsupported
+ always_export_symbols=yes
+ file_list_spec='@'
+ # Tell ltmain to make .lib files, not .a files.
+ libext=lib
+ # Tell ltmain to make .dll files, not .so files.
+ shrext_cmds=.dll
+ # FIXME: Setting linknames here is a bad hack.
+ archive_cmds='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~linknames='
+ archive_expsym_cmds='if test DEF = "`$SED -n -e '\''s/^[ ]*//'\'' -e '\''/^\(;.*\)*$/d'\'' -e '\''s/^\(EXPORTS\|LIBRARY\)\([ ].*\)*$/DEF/p'\'' -e q $export_symbols`" ; then
+ cp "$export_symbols" "$output_objdir/$soname.def";
+ echo "$tool_output_objdir$soname.def" > "$output_objdir/$soname.exp";
+ else
+ $SED -e '\''s/^/-link -EXPORT:/'\'' < $export_symbols > $output_objdir/$soname.exp;
+ fi~
+ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~
+ linknames='
+ # The linker will not automatically build a static lib if we build a DLL.
+ # _LT_TAGVAR(old_archive_from_new_cmds, )='true'
+ enable_shared_with_static_runtimes=yes
+ exclude_expsyms='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*'
+ export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1,DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols'
+ # Don't use ranlib
+ old_postinstall_cmds='chmod 644 $oldlib'
+ postlink_cmds='lt_outputfile="@OUTPUT@"~
+ lt_tool_outputfile="@TOOL_OUTPUT@"~
+ case $lt_outputfile in
+ *.exe|*.EXE) ;;
+ *)
+ lt_outputfile=$lt_outputfile.exe
+ lt_tool_outputfile=$lt_tool_outputfile.exe
+ ;;
+ esac~
+ if test : != "$MANIFEST_TOOL" && test -f "$lt_outputfile.manifest"; then
+ $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1;
+ $RM "$lt_outputfile.manifest";
+ fi'
+ ;;
+ *)
+ # Assume MSVC wrapper
+ hardcode_libdir_flag_spec=' '
+ allow_undefined_flag=unsupported
+ # Tell ltmain to make .lib files, not .a files.
+ libext=lib
+ # Tell ltmain to make .dll files, not .so files.
+ shrext_cmds=.dll
+ # FIXME: Setting linknames here is a bad hack.
+ archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames='
+ # The linker will automatically build a .lib file if we build a DLL.
+ old_archive_from_new_cmds='true'
+ # FIXME: Should let the user specify the lib program.
+ old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs'
+ enable_shared_with_static_runtimes=yes
+ ;;
+ esac
+ ;;
+
+ darwin* | rhapsody*)
+
+
+ archive_cmds_need_lc=no
+ hardcode_direct=no
+ hardcode_automatic=yes
+ hardcode_shlibpath_var=unsupported
+ if test yes = "$lt_cv_ld_force_load"; then
+ whole_archive_flag_spec='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience $wl-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`'
+
+ else
+ whole_archive_flag_spec=''
+ fi
+ link_all_deplibs=yes
+ allow_undefined_flag=$_lt_dar_allow_undefined
+ case $cc_basename in
+ ifort*|nagfor*) _lt_dar_can_shared=yes ;;
+ *) _lt_dar_can_shared=$GCC ;;
+ esac
+ if test yes = "$_lt_dar_can_shared"; then
+ output_verbose_link_cmd=func_echo_all
+ archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dsymutil"
+ module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dsymutil"
+ archive_expsym_cmds="sed 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dar_export_syms$_lt_dsymutil"
+ module_expsym_cmds="sed -e 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dar_export_syms$_lt_dsymutil"
+
+ else
+ ld_shlibs=no
+ fi
+
+ ;;
+
+ dgux*)
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_shlibpath_var=no
+ ;;
+
+ # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
+ # support. Future versions do this automatically, but an explicit c++rt0.o
+ # does not break anything, and helps significantly (at the cost of a little
+ # extra space).
+ freebsd2.2*)
+ archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o'
+ hardcode_libdir_flag_spec='-R$libdir'
+ hardcode_direct=yes
+ hardcode_shlibpath_var=no
+ ;;
+
+ # Unfortunately, older versions of FreeBSD 2 do not have this feature.
+ freebsd2.*)
+ archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_direct=yes
+ hardcode_minus_L=yes
+ hardcode_shlibpath_var=no
+ ;;
+
+ # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
+ freebsd* | dragonfly*)
+ archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+ hardcode_libdir_flag_spec='-R$libdir'
+ hardcode_direct=yes
+ hardcode_shlibpath_var=no
+ ;;
+
+ hpux9*)
+ if test yes = "$GCC"; then
+ archive_cmds='$RM $output_objdir/$soname~$CC -shared $pic_flag $wl+b $wl$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib'
+ else
+ archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib'
+ fi
+ hardcode_libdir_flag_spec='$wl+b $wl$libdir'
+ hardcode_libdir_separator=:
+ hardcode_direct=yes
+
+ # hardcode_minus_L: Not really in the search PATH,
+ # but as the default location of the library.
+ hardcode_minus_L=yes
+ export_dynamic_flag_spec='$wl-E'
+ ;;
+
+ hpux10*)
+ if test yes,no = "$GCC,$with_gnu_ld"; then
+ archive_cmds='$CC -shared $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+ else
+ archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
+ fi
+ if test no = "$with_gnu_ld"; then
+ hardcode_libdir_flag_spec='$wl+b $wl$libdir'
+ hardcode_libdir_separator=:
+ hardcode_direct=yes
+ hardcode_direct_absolute=yes
+ export_dynamic_flag_spec='$wl-E'
+ # hardcode_minus_L: Not really in the search PATH,
+ # but as the default location of the library.
+ hardcode_minus_L=yes
+ fi
+ ;;
+
+ hpux11*)
+ if test yes,no = "$GCC,$with_gnu_ld"; then
+ case $host_cpu in
+ hppa*64*)
+ archive_cmds='$CC -shared $wl+h $wl$soname -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ ia64*)
+ archive_cmds='$CC -shared $pic_flag $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ *)
+ archive_cmds='$CC -shared $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ esac
+ else
+ case $host_cpu in
+ hppa*64*)
+ archive_cmds='$CC -b $wl+h $wl$soname -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ ia64*)
+ archive_cmds='$CC -b $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ *)
+
+ # Older versions of the 11.00 compiler do not understand -b yet
+ # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC understands -b" >&5
+$as_echo_n "checking if $CC understands -b... " >&6; }
+if ${lt_cv_prog_compiler__b+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_prog_compiler__b=no
+ save_LDFLAGS=$LDFLAGS
+ LDFLAGS="$LDFLAGS -b"
+ echo "$lt_simple_link_test_code" > conftest.$ac_ext
+ if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
+ # The linker can only warn and ignore the option if not recognized
+ # So say no if there are warnings
+ if test -s conftest.err; then
+ # Append any errors to the config.log.
+ cat conftest.err 1>&5
+ $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp
+ $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+ if diff conftest.exp conftest.er2 >/dev/null; then
+ lt_cv_prog_compiler__b=yes
+ fi
+ else
+ lt_cv_prog_compiler__b=yes
+ fi
+ fi
+ $RM -r conftest*
+ LDFLAGS=$save_LDFLAGS
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler__b" >&5
+$as_echo "$lt_cv_prog_compiler__b" >&6; }
+
+if test yes = "$lt_cv_prog_compiler__b"; then
+ archive_cmds='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+else
+ archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
+fi
+
+ ;;
+ esac
+ fi
+ if test no = "$with_gnu_ld"; then
+ hardcode_libdir_flag_spec='$wl+b $wl$libdir'
+ hardcode_libdir_separator=:
+
+ case $host_cpu in
+ hppa*64*|ia64*)
+ hardcode_direct=no
+ hardcode_shlibpath_var=no
+ ;;
+ *)
+ hardcode_direct=yes
+ hardcode_direct_absolute=yes
+ export_dynamic_flag_spec='$wl-E'
+
+ # hardcode_minus_L: Not really in the search PATH,
+ # but as the default location of the library.
+ hardcode_minus_L=yes
+ ;;
+ esac
+ fi
+ ;;
+
+ irix5* | irix6* | nonstopux*)
+ if test yes = "$GCC"; then
+ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib'
+ # Try to use the -exported_symbol ld option, if it does not
+ # work, assume that -exports_file does not work either and
+ # implicitly export all symbols.
+ # This should be the same for all languages, so no per-tag cache variable.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5
+$as_echo_n "checking whether the $host_os linker accepts -exported_symbol... " >&6; }
+if ${lt_cv_irix_exported_symbol+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ save_LDFLAGS=$LDFLAGS
+ LDFLAGS="$LDFLAGS -shared $wl-exported_symbol ${wl}foo $wl-update_registry $wl/dev/null"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+int foo (void) { return 0; }
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ lt_cv_irix_exported_symbol=yes
+else
+ lt_cv_irix_exported_symbol=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ LDFLAGS=$save_LDFLAGS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5
+$as_echo "$lt_cv_irix_exported_symbol" >&6; }
+ if test yes = "$lt_cv_irix_exported_symbol"; then
+ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations $wl-exports_file $wl$export_symbols -o $lib'
+ fi
+ else
+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib'
+ archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -exports_file $export_symbols -o $lib'
+ fi
+ archive_cmds_need_lc='no'
+ hardcode_libdir_flag_spec='$wl-rpath $wl$libdir'
+ hardcode_libdir_separator=:
+ inherit_rpath=yes
+ link_all_deplibs=yes
+ ;;
+
+ linux*)
+ case $cc_basename in
+ tcc*)
+ # Fabrice Bellard et al's Tiny C Compiler
+ ld_shlibs=yes
+ archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ esac
+ ;;
+
+ netbsd*)
+ if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
+ archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out
+ else
+ archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF
+ fi
+ hardcode_libdir_flag_spec='-R$libdir'
+ hardcode_direct=yes
+ hardcode_shlibpath_var=no
+ ;;
+
+ newsos6)
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_direct=yes
+ hardcode_libdir_flag_spec='$wl-rpath $wl$libdir'
+ hardcode_libdir_separator=:
+ hardcode_shlibpath_var=no
+ ;;
+
+ *nto* | *qnx*)
+ ;;
+
+ openbsd* | bitrig*)
+ if test -f /usr/libexec/ld.so; then
+ hardcode_direct=yes
+ hardcode_shlibpath_var=no
+ hardcode_direct_absolute=yes
+ if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then
+ archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags $wl-retain-symbols-file,$export_symbols'
+ hardcode_libdir_flag_spec='$wl-rpath,$libdir'
+ export_dynamic_flag_spec='$wl-E'
+ else
+ archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+ hardcode_libdir_flag_spec='$wl-rpath,$libdir'
+ fi
+ else
+ ld_shlibs=no
+ fi
+ ;;
+
+ os2*)
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_minus_L=yes
+ allow_undefined_flag=unsupported
+ shrext_cmds=.dll
+ archive_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~
+ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~
+ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~
+ $ECHO EXPORTS >> $output_objdir/$libname.def~
+ emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~
+ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~
+ emximp -o $lib $output_objdir/$libname.def'
+ archive_expsym_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~
+ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~
+ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~
+ $ECHO EXPORTS >> $output_objdir/$libname.def~
+ prefix_cmds="$SED"~
+ if test EXPORTS = "`$SED 1q $export_symbols`"; then
+ prefix_cmds="$prefix_cmds -e 1d";
+ fi~
+ prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~
+ cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~
+ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~
+ emximp -o $lib $output_objdir/$libname.def'
+ old_archive_From_new_cmds='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def'
+ enable_shared_with_static_runtimes=yes
+ ;;
+
+ osf3*)
+ if test yes = "$GCC"; then
+ allow_undefined_flag=' $wl-expect_unresolved $wl\*'
+ archive_cmds='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib'
+ else
+ allow_undefined_flag=' -expect_unresolved \*'
+ archive_cmds='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib'
+ fi
+ archive_cmds_need_lc='no'
+ hardcode_libdir_flag_spec='$wl-rpath $wl$libdir'
+ hardcode_libdir_separator=:
+ ;;
+
+ osf4* | osf5*) # as osf3* with the addition of -msym flag
+ if test yes = "$GCC"; then
+ allow_undefined_flag=' $wl-expect_unresolved $wl\*'
+ archive_cmds='$CC -shared$allow_undefined_flag $pic_flag $libobjs $deplibs $compiler_flags $wl-msym $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib'
+ hardcode_libdir_flag_spec='$wl-rpath $wl$libdir'
+ else
+ allow_undefined_flag=' -expect_unresolved \*'
+ archive_cmds='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib'
+ archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~
+ $CC -shared$allow_undefined_flag $wl-input $wl$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib~$RM $lib.exp'
+
+ # Both c and cxx compiler support -rpath directly
+ hardcode_libdir_flag_spec='-rpath $libdir'
+ fi
+ archive_cmds_need_lc='no'
+ hardcode_libdir_separator=:
+ ;;
+
+ solaris*)
+ no_undefined_flag=' -z defs'
+ if test yes = "$GCC"; then
+ wlarc='$wl'
+ archive_cmds='$CC -shared $pic_flag $wl-z ${wl}text $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+ $CC -shared $pic_flag $wl-z ${wl}text $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
+ else
+ case `$CC -V 2>&1` in
+ *"Compilers 5.0"*)
+ wlarc=''
+ archive_cmds='$LD -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+ $LD -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp'
+ ;;
+ *)
+ wlarc='$wl'
+ archive_cmds='$CC -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+ $CC -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
+ ;;
+ esac
+ fi
+ hardcode_libdir_flag_spec='-R$libdir'
+ hardcode_shlibpath_var=no
+ case $host_os in
+ solaris2.[0-5] | solaris2.[0-5].*) ;;
+ *)
+ # The compiler driver will combine and reorder linker options,
+ # but understands '-z linker_flag'. GCC discards it without '$wl',
+ # but is careful enough not to reorder.
+ # Supported since Solaris 2.6 (maybe 2.5.1?)
+ if test yes = "$GCC"; then
+ whole_archive_flag_spec='$wl-z ${wl}allextract$convenience $wl-z ${wl}defaultextract'
+ else
+ whole_archive_flag_spec='-z allextract$convenience -z defaultextract'
+ fi
+ ;;
+ esac
+ link_all_deplibs=yes
+ ;;
+
+ sunos4*)
+ if test sequent = "$host_vendor"; then
+ # Use $CC to link under sequent, because it throws in some extra .o
+ # files that make .init and .fini sections work.
+ archive_cmds='$CC -G $wl-h $soname -o $lib $libobjs $deplibs $compiler_flags'
+ else
+ archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags'
+ fi
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_direct=yes
+ hardcode_minus_L=yes
+ hardcode_shlibpath_var=no
+ ;;
+
+ sysv4)
+ case $host_vendor in
+ sni)
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_direct=yes # is this really true???
+ ;;
+ siemens)
+ ## LD is ld it makes a PLAMLIB
+ ## CC just makes a GrossModule.
+ archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags'
+ reload_cmds='$CC -r -o $output$reload_objs'
+ hardcode_direct=no
+ ;;
+ motorola)
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_direct=no #Motorola manual says yes, but my tests say they lie
+ ;;
+ esac
+ runpath_var='LD_RUN_PATH'
+ hardcode_shlibpath_var=no
+ ;;
+
+ sysv4.3*)
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_shlibpath_var=no
+ export_dynamic_flag_spec='-Bexport'
+ ;;
+
+ sysv4*MP*)
+ if test -d /usr/nec; then
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_shlibpath_var=no
+ runpath_var=LD_RUN_PATH
+ hardcode_runpath_var=yes
+ ld_shlibs=yes
+ fi
+ ;;
+
+ sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*)
+ no_undefined_flag='$wl-z,text'
+ archive_cmds_need_lc=no
+ hardcode_shlibpath_var=no
+ runpath_var='LD_RUN_PATH'
+
+ if test yes = "$GCC"; then
+ archive_cmds='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ else
+ archive_cmds='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ fi
+ ;;
+
+ sysv5* | sco3.2v5* | sco5v6*)
+ # Note: We CANNOT use -z defs as we might desire, because we do not
+ # link with -lc, and that would cause any symbols used from libc to
+ # always be unresolved, which means just about no library would
+ # ever link correctly. If we're not using GNU ld we use -z text
+ # though, which does catch some bad symbols but isn't as heavy-handed
+ # as -z defs.
+ no_undefined_flag='$wl-z,text'
+ allow_undefined_flag='$wl-z,nodefs'
+ archive_cmds_need_lc=no
+ hardcode_shlibpath_var=no
+ hardcode_libdir_flag_spec='$wl-R,$libdir'
+ hardcode_libdir_separator=':'
+ link_all_deplibs=yes
+ export_dynamic_flag_spec='$wl-Bexport'
+ runpath_var='LD_RUN_PATH'
+
+ if test yes = "$GCC"; then
+ archive_cmds='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ else
+ archive_cmds='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ fi
+ ;;
+
+ uts4*)
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_shlibpath_var=no
+ ;;
+
+ *)
+ ld_shlibs=no
+ ;;
+ esac
+
+ if test sni = "$host_vendor"; then
+ case $host in
+ sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+ export_dynamic_flag_spec='$wl-Blargedynsym'
+ ;;
+ esac
+ fi
+ fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs" >&5
+$as_echo "$ld_shlibs" >&6; }
+test no = "$ld_shlibs" && can_build_shared=no
+
+with_gnu_ld=$with_gnu_ld
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#
+# Do we need to explicitly link libc?
+#
+case "x$archive_cmds_need_lc" in
+x|xyes)
+ # Assume -lc should be added
+ archive_cmds_need_lc=yes
+
+ if test yes,yes = "$GCC,$enable_shared"; then
+ case $archive_cmds in
+ *'~'*)
+ # FIXME: we may have to deal with multi-command sequences.
+ ;;
+ '$CC '*)
+ # Test whether the compiler implicitly links with -lc since on some
+ # systems, -lgcc has to come before -lc. If gcc already passes -lc
+ # to ld, don't add -lc before -lgcc.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5
+$as_echo_n "checking whether -lc should be explicitly linked in... " >&6; }
+if ${lt_cv_archive_cmds_need_lc+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ $RM conftest*
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } 2>conftest.err; then
+ soname=conftest
+ lib=conftest
+ libobjs=conftest.$ac_objext
+ deplibs=
+ wl=$lt_prog_compiler_wl
+ pic_flag=$lt_prog_compiler_pic
+ compiler_flags=-v
+ linker_flags=-v
+ verstring=
+ output_objdir=.
+ libname=conftest
+ lt_save_allow_undefined_flag=$allow_undefined_flag
+ allow_undefined_flag=
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5
+ (eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }
+ then
+ lt_cv_archive_cmds_need_lc=no
+ else
+ lt_cv_archive_cmds_need_lc=yes
+ fi
+ allow_undefined_flag=$lt_save_allow_undefined_flag
+ else
+ cat conftest.err 1>&5
+ fi
+ $RM conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc" >&5
+$as_echo "$lt_cv_archive_cmds_need_lc" >&6; }
+ archive_cmds_need_lc=$lt_cv_archive_cmds_need_lc
+ ;;
+ esac
+ fi
+ ;;
+esac
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5
+$as_echo_n "checking dynamic linker characteristics... " >&6; }
+
+if test yes = "$GCC"; then
+ case $host_os in
+ darwin*) lt_awk_arg='/^libraries:/,/LR/' ;;
+ *) lt_awk_arg='/^libraries:/' ;;
+ esac
+ case $host_os in
+ mingw* | cegcc*) lt_sed_strip_eq='s|=\([A-Za-z]:\)|\1|g' ;;
+ *) lt_sed_strip_eq='s|=/|/|g' ;;
+ esac
+ lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq`
+ case $lt_search_path_spec in
+ *\;*)
+ # if the path contains ";" then we assume it to be the separator
+ # otherwise default to the standard path separator (i.e. ":") - it is
+ # assumed that no part of a normal pathname contains ";" but that should
+ # okay in the real world where ";" in dirpaths is itself problematic.
+ lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'`
+ ;;
+ *)
+ lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"`
+ ;;
+ esac
+ # Ok, now we have the path, separated by spaces, we can step through it
+ # and add multilib dir if necessary...
+ lt_tmp_lt_search_path_spec=
+ lt_multi_os_dir=/`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null`
+ # ...but if some path component already ends with the multilib dir we assume
+ # that all is fine and trust -print-search-dirs as is (GCC 4.2? or newer).
+ case "$lt_multi_os_dir; $lt_search_path_spec " in
+ "/; "* | "/.; "* | "/./; "* | *"$lt_multi_os_dir "* | *"$lt_multi_os_dir/ "*)
+ lt_multi_os_dir=
+ ;;
+ esac
+ for lt_sys_path in $lt_search_path_spec; do
+ if test -d "$lt_sys_path$lt_multi_os_dir"; then
+ lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path$lt_multi_os_dir"
+ elif test -n "$lt_multi_os_dir"; then
+ test -d "$lt_sys_path" && \
+ lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path"
+ fi
+ done
+ lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk '
+BEGIN {RS = " "; FS = "/|\n";} {
+ lt_foo = "";
+ lt_count = 0;
+ for (lt_i = NF; lt_i > 0; lt_i--) {
+ if ($lt_i != "" && $lt_i != ".") {
+ if ($lt_i == "..") {
+ lt_count++;
+ } else {
+ if (lt_count == 0) {
+ lt_foo = "/" $lt_i lt_foo;
+ } else {
+ lt_count--;
+ }
+ }
+ }
+ }
+ if (lt_foo != "") { lt_freq[lt_foo]++; }
+ if (lt_freq[lt_foo] == 1) { print lt_foo; }
+}'`
+ # AWK program above erroneously prepends '/' to C:/dos/paths
+ # for these hosts.
+ case $host_os in
+ mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\
+ $SED 's|/\([A-Za-z]:\)|\1|g'` ;;
+ esac
+ sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP`
+else
+ sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
+fi
+library_names_spec=
+libname_spec='lib$name'
+soname_spec=
+shrext_cmds=.so
+postinstall_cmds=
+postuninstall_cmds=
+finish_cmds=
+finish_eval=
+shlibpath_var=
+shlibpath_overrides_runpath=unknown
+version_type=none
+dynamic_linker="$host_os ld.so"
+sys_lib_dlsearch_path_spec="/lib /usr/lib"
+need_lib_prefix=unknown
+hardcode_into_libs=no
+
+# when you set need_version to no, make sure it does not cause -set_version
+# flags to be left without arguments
+need_version=unknown
+
+
+
+case $host_os in
+aix3*)
+ version_type=linux # correct to gnu/linux during the next big refactor
+ library_names_spec='$libname$release$shared_ext$versuffix $libname.a'
+ shlibpath_var=LIBPATH
+
+ # AIX 3 has no versioning support, so we append a major version to the name.
+ soname_spec='$libname$release$shared_ext$major'
+ ;;
+
+aix[4-9]*)
+ version_type=linux # correct to gnu/linux during the next big refactor
+ need_lib_prefix=no
+ need_version=no
+ hardcode_into_libs=yes
+ if test ia64 = "$host_cpu"; then
+ # AIX 5 supports IA64
+ library_names_spec='$libname$release$shared_ext$major $libname$release$shared_ext$versuffix $libname$shared_ext'
+ shlibpath_var=LD_LIBRARY_PATH
+ else
+ # With GCC up to 2.95.x, collect2 would create an import file
+ # for dependence libraries. The import file would start with
+ # the line '#! .'. This would cause the generated library to
+ # depend on '.', always an invalid library. This was fixed in
+ # development snapshots of GCC prior to 3.0.
+ case $host_os in
+ aix4 | aix4.[01] | aix4.[01].*)
+ if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
+ echo ' yes '
+ echo '#endif'; } | $CC -E - | $GREP yes > /dev/null; then
+ :
+ else
+ can_build_shared=no
+ fi
+ ;;
+ esac
+ # Using Import Files as archive members, it is possible to support
+ # filename-based versioning of shared library archives on AIX. While
+ # this would work for both with and without runtime linking, it will
+ # prevent static linking of such archives. So we do filename-based
+ # shared library versioning with .so extension only, which is used
+ # when both runtime linking and shared linking is enabled.
+ # Unfortunately, runtime linking may impact performance, so we do
+ # not want this to be the default eventually. Also, we use the
+ # versioned .so libs for executables only if there is the -brtl
+ # linker flag in LDFLAGS as well, or --with-aix-soname=svr4 only.
+ # To allow for filename-based versioning support, we need to create
+ # libNAME.so.V as an archive file, containing:
+ # *) an Import File, referring to the versioned filename of the
+ # archive as well as the shared archive member, telling the
+ # bitwidth (32 or 64) of that shared object, and providing the
+ # list of exported symbols of that shared object, eventually
+ # decorated with the 'weak' keyword
+ # *) the shared object with the F_LOADONLY flag set, to really avoid
+ # it being seen by the linker.
+ # At run time we better use the real file rather than another symlink,
+ # but for link time we create the symlink libNAME.so -> libNAME.so.V
+
+ case $with_aix_soname,$aix_use_runtimelinking in
+ # AIX (on Power*) has no versioning support, so currently we cannot hardcode correct
+ # soname into executable. Probably we can add versioning support to
+ # collect2, so additional links can be useful in future.
+ aix,yes) # traditional libtool
+ dynamic_linker='AIX unversionable lib.so'
+ # If using run time linking (on AIX 4.2 or later) use lib<name>.so
+ # instead of lib<name>.a to let people know that these are not
+ # typical AIX shared libraries.
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ ;;
+ aix,no) # traditional AIX only
+ dynamic_linker='AIX lib.a(lib.so.V)'
+ # We preserve .a as extension for shared libraries through AIX4.2
+ # and later when we are not doing run time linking.
+ library_names_spec='$libname$release.a $libname.a'
+ soname_spec='$libname$release$shared_ext$major'
+ ;;
+ svr4,*) # full svr4 only
+ dynamic_linker="AIX lib.so.V($shared_archive_member_spec.o)"
+ library_names_spec='$libname$release$shared_ext$major $libname$shared_ext'
+ # We do not specify a path in Import Files, so LIBPATH fires.
+ shlibpath_overrides_runpath=yes
+ ;;
+ *,yes) # both, prefer svr4
+ dynamic_linker="AIX lib.so.V($shared_archive_member_spec.o), lib.a(lib.so.V)"
+ library_names_spec='$libname$release$shared_ext$major $libname$shared_ext'
+ # unpreferred sharedlib libNAME.a needs extra handling
+ postinstall_cmds='test -n "$linkname" || linkname="$realname"~func_stripname "" ".so" "$linkname"~$install_shared_prog "$dir/$func_stripname_result.$libext" "$destdir/$func_stripname_result.$libext"~test -z "$tstripme" || test -z "$striplib" || $striplib "$destdir/$func_stripname_result.$libext"'
+ postuninstall_cmds='for n in $library_names $old_library; do :; done~func_stripname "" ".so" "$n"~test "$func_stripname_result" = "$n" || func_append rmfiles " $odir/$func_stripname_result.$libext"'
+ # We do not specify a path in Import Files, so LIBPATH fires.
+ shlibpath_overrides_runpath=yes
+ ;;
+ *,no) # both, prefer aix
+ dynamic_linker="AIX lib.a(lib.so.V), lib.so.V($shared_archive_member_spec.o)"
+ library_names_spec='$libname$release.a $libname.a'
+ soname_spec='$libname$release$shared_ext$major'
+ # unpreferred sharedlib libNAME.so.V and symlink libNAME.so need extra handling
+ postinstall_cmds='test -z "$dlname" || $install_shared_prog $dir/$dlname $destdir/$dlname~test -z "$tstripme" || test -z "$striplib" || $striplib $destdir/$dlname~test -n "$linkname" || linkname=$realname~func_stripname "" ".a" "$linkname"~(cd "$destdir" && $LN_S -f $dlname $func_stripname_result.so)'
+ postuninstall_cmds='test -z "$dlname" || func_append rmfiles " $odir/$dlname"~for n in $old_library $library_names; do :; done~func_stripname "" ".a" "$n"~func_append rmfiles " $odir/$func_stripname_result.so"'
+ ;;
+ esac
+ shlibpath_var=LIBPATH
+ fi
+ ;;
+
+amigaos*)
+ case $host_cpu in
+ powerpc)
+ # Since July 2007 AmigaOS4 officially supports .so libraries.
+ # When compiling the executable, add -use-dynld -Lsobjs: to the compileline.
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ ;;
+ m68k)
+ library_names_spec='$libname.ixlibrary $libname.a'
+ # Create ${libname}_ixlibrary.a entries in /sys/libs.
+ finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
+ ;;
+ esac
+ ;;
+
+beos*)
+ library_names_spec='$libname$shared_ext'
+ dynamic_linker="$host_os ld.so"
+ shlibpath_var=LIBRARY_PATH
+ ;;
+
+bsdi[45]*)
+ version_type=linux # correct to gnu/linux during the next big refactor
+ need_version=no
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
+ sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
+ # the default ld.so.conf also contains /usr/contrib/lib and
+ # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
+ # libtool to hard-code these into programs
+ ;;
+
+cygwin* | mingw* | pw32* | cegcc*)
+ version_type=windows
+ shrext_cmds=.dll
+ need_version=no
+ need_lib_prefix=no
+
+ case $GCC,$cc_basename in
+ yes,*)
+ # gcc
+ library_names_spec='$libname.dll.a'
+ # DLL is installed to $(libdir)/../bin by postinstall_cmds
+ postinstall_cmds='base_file=`basename \$file`~
+ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~
+ dldir=$destdir/`dirname \$dlpath`~
+ test -d \$dldir || mkdir -p \$dldir~
+ $install_prog $dir/$dlname \$dldir/$dlname~
+ chmod a+x \$dldir/$dlname~
+ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then
+ eval '\''$striplib \$dldir/$dlname'\'' || exit \$?;
+ fi'
+ postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
+ dlpath=$dir/\$dldll~
+ $RM \$dlpath'
+ shlibpath_overrides_runpath=yes
+
+ case $host_os in
+ cygwin*)
+ # Cygwin DLLs use 'cyg' prefix rather than 'lib'
+ soname_spec='`echo $libname | sed -e 's/^lib/cyg/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext'
+
+ sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"
+ ;;
+ mingw* | cegcc*)
+ # MinGW DLLs use traditional 'lib' prefix
+ soname_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext'
+ ;;
+ pw32*)
+ # pw32 DLLs use 'pw' prefix rather than 'lib'
+ library_names_spec='`echo $libname | sed -e 's/^lib/pw/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext'
+ ;;
+ esac
+ dynamic_linker='Win32 ld.exe'
+ ;;
+
+ *,cl*)
+ # Native MSVC
+ libname_spec='$name'
+ soname_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext'
+ library_names_spec='$libname.dll.lib'
+
+ case $build_os in
+ mingw*)
+ sys_lib_search_path_spec=
+ lt_save_ifs=$IFS
+ IFS=';'
+ for lt_path in $LIB
+ do
+ IFS=$lt_save_ifs
+ # Let DOS variable expansion print the short 8.3 style file name.
+ lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"`
+ sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path"
+ done
+ IFS=$lt_save_ifs
+ # Convert to MSYS style.
+ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'`
+ ;;
+ cygwin*)
+ # Convert to unix form, then to dos form, then back to unix form
+ # but this time dos style (no spaces!) so that the unix form looks
+ # like /cygdrive/c/PROGRA~1:/cygdr...
+ sys_lib_search_path_spec=`cygpath --path --unix "$LIB"`
+ sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null`
+ sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
+ ;;
+ *)
+ sys_lib_search_path_spec=$LIB
+ if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then
+ # It is most probably a Windows format PATH.
+ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
+ else
+ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
+ fi
+ # FIXME: find the short name or the path components, as spaces are
+ # common. (e.g. "Program Files" -> "PROGRA~1")
+ ;;
+ esac
+
+ # DLL is installed to $(libdir)/../bin by postinstall_cmds
+ postinstall_cmds='base_file=`basename \$file`~
+ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~
+ dldir=$destdir/`dirname \$dlpath`~
+ test -d \$dldir || mkdir -p \$dldir~
+ $install_prog $dir/$dlname \$dldir/$dlname'
+ postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
+ dlpath=$dir/\$dldll~
+ $RM \$dlpath'
+ shlibpath_overrides_runpath=yes
+ dynamic_linker='Win32 link.exe'
+ ;;
+
+ *)
+ # Assume MSVC wrapper
+ library_names_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext $libname.lib'
+ dynamic_linker='Win32 ld.exe'
+ ;;
+ esac
+ # FIXME: first we should search . and the directory the executable is in
+ shlibpath_var=PATH
+ ;;
+
+darwin* | rhapsody*)
+ dynamic_linker="$host_os dyld"
+ version_type=darwin
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='$libname$release$major$shared_ext $libname$shared_ext'
+ soname_spec='$libname$release$major$shared_ext'
+ shlibpath_overrides_runpath=yes
+ shlibpath_var=DYLD_LIBRARY_PATH
+ shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`'
+
+ sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"
+ sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
+ ;;
+
+dgux*)
+ version_type=linux # correct to gnu/linux during the next big refactor
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ ;;
+
+freebsd* | dragonfly*)
+ # DragonFly does not have aout. When/if they implement a new
+ # versioning mechanism, adjust this.
+ if test -x /usr/bin/objformat; then
+ objformat=`/usr/bin/objformat`
+ else
+ case $host_os in
+ freebsd[23].*) objformat=aout ;;
+ *) objformat=elf ;;
+ esac
+ fi
+ version_type=freebsd-$objformat
+ case $version_type in
+ freebsd-elf*)
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ need_version=no
+ need_lib_prefix=no
+ ;;
+ freebsd-*)
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix'
+ need_version=yes
+ ;;
+ esac
+ shlibpath_var=LD_LIBRARY_PATH
+ case $host_os in
+ freebsd2.*)
+ shlibpath_overrides_runpath=yes
+ ;;
+ freebsd3.[01]* | freebsdelf3.[01]*)
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ ;;
+ freebsd3.[2-9]* | freebsdelf3.[2-9]* | \
+ freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1)
+ shlibpath_overrides_runpath=no
+ hardcode_into_libs=yes
+ ;;
+ *) # from 4.6 on, and DragonFly
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ ;;
+ esac
+ ;;
+
+haiku*)
+ version_type=linux # correct to gnu/linux during the next big refactor
+ need_lib_prefix=no
+ need_version=no
+ dynamic_linker="$host_os runtime_loader"
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ shlibpath_var=LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+ sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib'
+ hardcode_into_libs=yes
+ ;;
+
+hpux9* | hpux10* | hpux11*)
+ # Give a soname corresponding to the major version so that dld.sl refuses to
+ # link against other versions.
+ version_type=sunos
+ need_lib_prefix=no
+ need_version=no
+ case $host_cpu in
+ ia64*)
+ shrext_cmds='.so'
+ hardcode_into_libs=yes
+ dynamic_linker="$host_os dld.so"
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ if test 32 = "$HPUX_IA64_MODE"; then
+ sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
+ sys_lib_dlsearch_path_spec=/usr/lib/hpux32
+ else
+ sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
+ sys_lib_dlsearch_path_spec=/usr/lib/hpux64
+ fi
+ ;;
+ hppa*64*)
+ shrext_cmds='.sl'
+ hardcode_into_libs=yes
+ dynamic_linker="$host_os dld.sl"
+ shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
+ shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
+ sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+ ;;
+ *)
+ shrext_cmds='.sl'
+ dynamic_linker="$host_os dld.sl"
+ shlibpath_var=SHLIB_PATH
+ shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ ;;
+ esac
+ # HP-UX runs *really* slowly unless shared libraries are mode 555, ...
+ postinstall_cmds='chmod 555 $lib'
+ # or fails outright, so override atomically:
+ install_override_mode=555
+ ;;
+
+interix[3-9]*)
+ version_type=linux # correct to gnu/linux during the next big refactor
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+ hardcode_into_libs=yes
+ ;;
+
+irix5* | irix6* | nonstopux*)
+ case $host_os in
+ nonstopux*) version_type=nonstopux ;;
+ *)
+ if test yes = "$lt_cv_prog_gnu_ld"; then
+ version_type=linux # correct to gnu/linux during the next big refactor
+ else
+ version_type=irix
+ fi ;;
+ esac
+ need_lib_prefix=no
+ need_version=no
+ soname_spec='$libname$release$shared_ext$major'
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$release$shared_ext $libname$shared_ext'
+ case $host_os in
+ irix5* | nonstopux*)
+ libsuff= shlibsuff=
+ ;;
+ *)
+ case $LD in # libtool.m4 will add one of these switches to LD
+ *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
+ libsuff= shlibsuff= libmagic=32-bit;;
+ *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
+ libsuff=32 shlibsuff=N32 libmagic=N32;;
+ *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
+ libsuff=64 shlibsuff=64 libmagic=64-bit;;
+ *) libsuff= shlibsuff= libmagic=never-match;;
+ esac
+ ;;
+ esac
+ shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
+ shlibpath_overrides_runpath=no
+ sys_lib_search_path_spec="/usr/lib$libsuff /lib$libsuff /usr/local/lib$libsuff"
+ sys_lib_dlsearch_path_spec="/usr/lib$libsuff /lib$libsuff"
+ hardcode_into_libs=yes
+ ;;
+
+# No shared lib support for Linux oldld, aout, or coff.
+linux*oldld* | linux*aout* | linux*coff*)
+ dynamic_linker=no
+ ;;
+
+linux*android*)
+ version_type=none # Android doesn't support versioned libraries.
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='$libname$release$shared_ext'
+ soname_spec='$libname$release$shared_ext'
+ finish_cmds=
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+
+ # This implies no fast_install, which is unacceptable.
+ # Some rework will be needed to allow for fast_install
+ # before this can be enabled.
+ hardcode_into_libs=yes
+
+ dynamic_linker='Android linker'
+ # Don't embed -rpath directories since the linker doesn't support them.
+ hardcode_libdir_flag_spec='-L$libdir'
+ ;;
+
+# This must be glibc/ELF.
+linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
+ version_type=linux # correct to gnu/linux during the next big refactor
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+
+ # Some binutils ld are patched to set DT_RUNPATH
+ if ${lt_cv_shlibpath_overrides_runpath+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_shlibpath_overrides_runpath=no
+ save_LDFLAGS=$LDFLAGS
+ save_libdir=$libdir
+ eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \
+ LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\""
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then :
+ lt_cv_shlibpath_overrides_runpath=yes
+fi
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ LDFLAGS=$save_LDFLAGS
+ libdir=$save_libdir
+
+fi
+
+ shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath
+
+ # This implies no fast_install, which is unacceptable.
+ # Some rework will be needed to allow for fast_install
+ # before this can be enabled.
+ hardcode_into_libs=yes
+
+ # Add ABI-specific directories to the system library path.
+ sys_lib_dlsearch_path_spec="/lib64 /usr/lib64 /lib /usr/lib"
+
+ # Ideally, we could use ldconfig to report *all* directores which are
+ # searched for libraries, however this is still not possible. Aside from not
+ # being certain /sbin/ldconfig is available, command
+ # 'ldconfig -N -X -v | grep ^/' on 64bit Fedora does not report /usr/lib64,
+ # even though it is searched at run-time. Try to do the best guess by
+ # appending ld.so.conf contents (and includes) to the search path.
+ if test -f /etc/ld.so.conf; then
+ lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '`
+ sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec $lt_ld_extra"
+ fi
+
+ # We used to test for /lib/ld.so.1 and disable shared libraries on
+ # powerpc, because MkLinux only supported shared libraries with the
+ # GNU dynamic linker. Since this was broken with cross compilers,
+ # most powerpc-linux boxes support dynamic linking these days and
+ # people can always --disable-shared, the test was removed, and we
+ # assume the GNU/Linux dynamic linker is in use.
+ dynamic_linker='GNU/Linux ld.so'
+ ;;
+
+netbsd*)
+ version_type=sunos
+ need_lib_prefix=no
+ need_version=no
+ if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+ dynamic_linker='NetBSD (a.out) ld.so'
+ else
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ dynamic_linker='NetBSD ld.elf_so'
+ fi
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ ;;
+
+newsos6)
+ version_type=linux # correct to gnu/linux during the next big refactor
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ ;;
+
+*nto* | *qnx*)
+ version_type=qnx
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+ hardcode_into_libs=yes
+ dynamic_linker='ldqnx.so'
+ ;;
+
+openbsd* | bitrig*)
+ version_type=sunos
+ sys_lib_dlsearch_path_spec=/usr/lib
+ need_lib_prefix=no
+ if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then
+ need_version=no
+ else
+ need_version=yes
+ fi
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ ;;
+
+os2*)
+ libname_spec='$name'
+ version_type=windows
+ shrext_cmds=.dll
+ need_version=no
+ need_lib_prefix=no
+ # OS/2 can only load a DLL with a base name of 8 characters or less.
+ soname_spec='`test -n "$os2dllname" && libname="$os2dllname";
+ v=$($ECHO $release$versuffix | tr -d .-);
+ n=$($ECHO $libname | cut -b -$((8 - ${#v})) | tr . _);
+ $ECHO $n$v`$shared_ext'
+ library_names_spec='${libname}_dll.$libext'
+ dynamic_linker='OS/2 ld.exe'
+ shlibpath_var=BEGINLIBPATH
+ sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
+ sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+ postinstall_cmds='base_file=`basename \$file`~
+ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; $ECHO \$dlname'\''`~
+ dldir=$destdir/`dirname \$dlpath`~
+ test -d \$dldir || mkdir -p \$dldir~
+ $install_prog $dir/$dlname \$dldir/$dlname~
+ chmod a+x \$dldir/$dlname~
+ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then
+ eval '\''$striplib \$dldir/$dlname'\'' || exit \$?;
+ fi'
+ postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; $ECHO \$dlname'\''`~
+ dlpath=$dir/\$dldll~
+ $RM \$dlpath'
+ ;;
+
+osf3* | osf4* | osf5*)
+ version_type=osf
+ need_lib_prefix=no
+ need_version=no
+ soname_spec='$libname$release$shared_ext$major'
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ shlibpath_var=LD_LIBRARY_PATH
+ sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
+ sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+ ;;
+
+rdos*)
+ dynamic_linker=no
+ ;;
+
+solaris*)
+ version_type=linux # correct to gnu/linux during the next big refactor
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ # ldd complains unless libraries are executable
+ postinstall_cmds='chmod +x $lib'
+ ;;
+
+sunos4*)
+ version_type=sunos
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix'
+ finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ if test yes = "$with_gnu_ld"; then
+ need_lib_prefix=no
+ fi
+ need_version=yes
+ ;;
+
+sysv4 | sysv4.3*)
+ version_type=linux # correct to gnu/linux during the next big refactor
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ case $host_vendor in
+ sni)
+ shlibpath_overrides_runpath=no
+ need_lib_prefix=no
+ runpath_var=LD_RUN_PATH
+ ;;
+ siemens)
+ need_lib_prefix=no
+ ;;
+ motorola)
+ need_lib_prefix=no
+ need_version=no
+ shlibpath_overrides_runpath=no
+ sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
+ ;;
+ esac
+ ;;
+
+sysv4*MP*)
+ if test -d /usr/nec; then
+ version_type=linux # correct to gnu/linux during the next big refactor
+ library_names_spec='$libname$shared_ext.$versuffix $libname$shared_ext.$major $libname$shared_ext'
+ soname_spec='$libname$shared_ext.$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ fi
+ ;;
+
+sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
+ version_type=sco
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ if test yes = "$with_gnu_ld"; then
+ sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib'
+ else
+ sys_lib_search_path_spec='/usr/ccs/lib /usr/lib'
+ case $host_os in
+ sco3.2v5*)
+ sys_lib_search_path_spec="$sys_lib_search_path_spec /lib"
+ ;;
+ esac
+ fi
+ sys_lib_dlsearch_path_spec='/usr/lib'
+ ;;
+
+tpf*)
+ # TPF is a cross-target only. Preferred cross-host = GNU/Linux.
+ version_type=linux # correct to gnu/linux during the next big refactor
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+ hardcode_into_libs=yes
+ ;;
+
+uts4*)
+ version_type=linux # correct to gnu/linux during the next big refactor
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ ;;
+
+*)
+ dynamic_linker=no
+ ;;
+esac
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5
+$as_echo "$dynamic_linker" >&6; }
+test no = "$dynamic_linker" && can_build_shared=no
+
+variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
+if test yes = "$GCC"; then
+ variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
+fi
+
+if test set = "${lt_cv_sys_lib_search_path_spec+set}"; then
+ sys_lib_search_path_spec=$lt_cv_sys_lib_search_path_spec
+fi
+
+if test set = "${lt_cv_sys_lib_dlsearch_path_spec+set}"; then
+ sys_lib_dlsearch_path_spec=$lt_cv_sys_lib_dlsearch_path_spec
+fi
+
+# remember unaugmented sys_lib_dlsearch_path content for libtool script decls...
+configure_time_dlsearch_path=$sys_lib_dlsearch_path_spec
+
+# ... but it needs LT_SYS_LIBRARY_PATH munging for other configure-time code
+func_munge_path_list sys_lib_dlsearch_path_spec "$LT_SYS_LIBRARY_PATH"
+
+# to be used as default LT_SYS_LIBRARY_PATH value in generated libtool
+configure_time_lt_sys_library_path=$LT_SYS_LIBRARY_PATH
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5
+$as_echo_n "checking how to hardcode library paths into programs... " >&6; }
+hardcode_action=
+if test -n "$hardcode_libdir_flag_spec" ||
+ test -n "$runpath_var" ||
+ test yes = "$hardcode_automatic"; then
+
+ # We can hardcode non-existent directories.
+ if test no != "$hardcode_direct" &&
+ # If the only mechanism to avoid hardcoding is shlibpath_var, we
+ # have to relink, otherwise we might link with an installed library
+ # when we should be linking with a yet-to-be-installed one
+ ## test no != "$_LT_TAGVAR(hardcode_shlibpath_var, )" &&
+ test no != "$hardcode_minus_L"; then
+ # Linking always hardcodes the temporary library directory.
+ hardcode_action=relink
+ else
+ # We can link without hardcoding, and we can hardcode nonexisting dirs.
+ hardcode_action=immediate
+ fi
+else
+ # We cannot hardcode anything, or else we can only hardcode existing
+ # directories.
+ hardcode_action=unsupported
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action" >&5
+$as_echo "$hardcode_action" >&6; }
+
+if test relink = "$hardcode_action" ||
+ test yes = "$inherit_rpath"; then
+ # Fast installation is not supported
+ enable_fast_install=no
+elif test yes = "$shlibpath_overrides_runpath" ||
+ test no = "$enable_shared"; then
+ # Fast installation is not necessary
+ enable_fast_install=needless
+fi
+
+
+
+
+
+
+ if test yes != "$enable_dlopen"; then
+ enable_dlopen=unknown
+ enable_dlopen_self=unknown
+ enable_dlopen_self_static=unknown
+else
+ lt_cv_dlopen=no
+ lt_cv_dlopen_libs=
+
+ case $host_os in
+ beos*)
+ lt_cv_dlopen=load_add_on
+ lt_cv_dlopen_libs=
+ lt_cv_dlopen_self=yes
+ ;;
+
+ mingw* | pw32* | cegcc*)
+ lt_cv_dlopen=LoadLibrary
+ lt_cv_dlopen_libs=
+ ;;
+
+ cygwin*)
+ lt_cv_dlopen=dlopen
+ lt_cv_dlopen_libs=
+ ;;
+
+ darwin*)
+ # if libdl is installed we need to link against it
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5
+$as_echo_n "checking for dlopen in -ldl... " >&6; }
+if ${ac_cv_lib_dl_dlopen+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldl $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dlopen ();
+int
+main ()
+{
+return dlopen ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_dl_dlopen=yes
+else
+ ac_cv_lib_dl_dlopen=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5
+$as_echo "$ac_cv_lib_dl_dlopen" >&6; }
+if test "x$ac_cv_lib_dl_dlopen" = xyes; then :
+ lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl
+else
+
+ lt_cv_dlopen=dyld
+ lt_cv_dlopen_libs=
+ lt_cv_dlopen_self=yes
+
+fi
+
+ ;;
+
+ tpf*)
+ # Don't try to run any link tests for TPF. We know it's impossible
+ # because TPF is a cross-compiler, and we know how we open DSOs.
+ lt_cv_dlopen=dlopen
+ lt_cv_dlopen_libs=
+ lt_cv_dlopen_self=no
+ ;;
+
+ *)
+ ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load"
+if test "x$ac_cv_func_shl_load" = xyes; then :
+ lt_cv_dlopen=shl_load
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5
+$as_echo_n "checking for shl_load in -ldld... " >&6; }
+if ${ac_cv_lib_dld_shl_load+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldld $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char shl_load ();
+int
+main ()
+{
+return shl_load ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_dld_shl_load=yes
+else
+ ac_cv_lib_dld_shl_load=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5
+$as_echo "$ac_cv_lib_dld_shl_load" >&6; }
+if test "x$ac_cv_lib_dld_shl_load" = xyes; then :
+ lt_cv_dlopen=shl_load lt_cv_dlopen_libs=-ldld
+else
+ ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen"
+if test "x$ac_cv_func_dlopen" = xyes; then :
+ lt_cv_dlopen=dlopen
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5
+$as_echo_n "checking for dlopen in -ldl... " >&6; }
+if ${ac_cv_lib_dl_dlopen+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldl $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dlopen ();
+int
+main ()
+{
+return dlopen ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_dl_dlopen=yes
+else
+ ac_cv_lib_dl_dlopen=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5
+$as_echo "$ac_cv_lib_dl_dlopen" >&6; }
+if test "x$ac_cv_lib_dl_dlopen" = xyes; then :
+ lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5
+$as_echo_n "checking for dlopen in -lsvld... " >&6; }
+if ${ac_cv_lib_svld_dlopen+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lsvld $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dlopen ();
+int
+main ()
+{
+return dlopen ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_svld_dlopen=yes
+else
+ ac_cv_lib_svld_dlopen=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_svld_dlopen" >&5
+$as_echo "$ac_cv_lib_svld_dlopen" >&6; }
+if test "x$ac_cv_lib_svld_dlopen" = xyes; then :
+ lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-lsvld
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5
+$as_echo_n "checking for dld_link in -ldld... " >&6; }
+if ${ac_cv_lib_dld_dld_link+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldld $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dld_link ();
+int
+main ()
+{
+return dld_link ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_dld_dld_link=yes
+else
+ ac_cv_lib_dld_dld_link=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_dld_link" >&5
+$as_echo "$ac_cv_lib_dld_dld_link" >&6; }
+if test "x$ac_cv_lib_dld_dld_link" = xyes; then :
+ lt_cv_dlopen=dld_link lt_cv_dlopen_libs=-ldld
+fi
+
+
+fi
+
+
+fi
+
+
+fi
+
+
+fi
+
+
+fi
+
+ ;;
+ esac
+
+ if test no = "$lt_cv_dlopen"; then
+ enable_dlopen=no
+ else
+ enable_dlopen=yes
+ fi
+
+ case $lt_cv_dlopen in
+ dlopen)
+ save_CPPFLAGS=$CPPFLAGS
+ test yes = "$ac_cv_header_dlfcn_h" && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
+
+ save_LDFLAGS=$LDFLAGS
+ wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\"
+
+ save_LIBS=$LIBS
+ LIBS="$lt_cv_dlopen_libs $LIBS"
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a program can dlopen itself" >&5
+$as_echo_n "checking whether a program can dlopen itself... " >&6; }
+if ${lt_cv_dlopen_self+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test yes = "$cross_compiling"; then :
+ lt_cv_dlopen_self=cross
+else
+ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
+ lt_status=$lt_dlunknown
+ cat > conftest.$ac_ext <<_LT_EOF
+#line $LINENO "configure"
+#include "confdefs.h"
+
+#if HAVE_DLFCN_H
+#include <dlfcn.h>
+#endif
+
+#include <stdio.h>
+
+#ifdef RTLD_GLOBAL
+# define LT_DLGLOBAL RTLD_GLOBAL
+#else
+# ifdef DL_GLOBAL
+# define LT_DLGLOBAL DL_GLOBAL
+# else
+# define LT_DLGLOBAL 0
+# endif
+#endif
+
+/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
+ find out it does not work in some platform. */
+#ifndef LT_DLLAZY_OR_NOW
+# ifdef RTLD_LAZY
+# define LT_DLLAZY_OR_NOW RTLD_LAZY
+# else
+# ifdef DL_LAZY
+# define LT_DLLAZY_OR_NOW DL_LAZY
+# else
+# ifdef RTLD_NOW
+# define LT_DLLAZY_OR_NOW RTLD_NOW
+# else
+# ifdef DL_NOW
+# define LT_DLLAZY_OR_NOW DL_NOW
+# else
+# define LT_DLLAZY_OR_NOW 0
+# endif
+# endif
+# endif
+# endif
+#endif
+
+/* When -fvisibility=hidden is used, assume the code has been annotated
+ correspondingly for the symbols needed. */
+#if defined __GNUC__ && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
+int fnord () __attribute__((visibility("default")));
+#endif
+
+int fnord () { return 42; }
+int main ()
+{
+ void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
+ int status = $lt_dlunknown;
+
+ if (self)
+ {
+ if (dlsym (self,"fnord")) status = $lt_dlno_uscore;
+ else
+ {
+ if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
+ else puts (dlerror ());
+ }
+ /* dlclose (self); */
+ }
+ else
+ puts (dlerror ());
+
+ return status;
+}
+_LT_EOF
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && test -s "conftest$ac_exeext" 2>/dev/null; then
+ (./conftest; exit; ) >&5 2>/dev/null
+ lt_status=$?
+ case x$lt_status in
+ x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;;
+ x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;;
+ x$lt_dlunknown|x*) lt_cv_dlopen_self=no ;;
+ esac
+ else :
+ # compilation failed
+ lt_cv_dlopen_self=no
+ fi
+fi
+rm -fr conftest*
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self" >&5
+$as_echo "$lt_cv_dlopen_self" >&6; }
+
+ if test yes = "$lt_cv_dlopen_self"; then
+ wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a statically linked program can dlopen itself" >&5
+$as_echo_n "checking whether a statically linked program can dlopen itself... " >&6; }
+if ${lt_cv_dlopen_self_static+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test yes = "$cross_compiling"; then :
+ lt_cv_dlopen_self_static=cross
+else
+ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
+ lt_status=$lt_dlunknown
+ cat > conftest.$ac_ext <<_LT_EOF
+#line $LINENO "configure"
+#include "confdefs.h"
+
+#if HAVE_DLFCN_H
+#include <dlfcn.h>
+#endif
+
+#include <stdio.h>
+
+#ifdef RTLD_GLOBAL
+# define LT_DLGLOBAL RTLD_GLOBAL
+#else
+# ifdef DL_GLOBAL
+# define LT_DLGLOBAL DL_GLOBAL
+# else
+# define LT_DLGLOBAL 0
+# endif
+#endif
+
+/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
+ find out it does not work in some platform. */
+#ifndef LT_DLLAZY_OR_NOW
+# ifdef RTLD_LAZY
+# define LT_DLLAZY_OR_NOW RTLD_LAZY
+# else
+# ifdef DL_LAZY
+# define LT_DLLAZY_OR_NOW DL_LAZY
+# else
+# ifdef RTLD_NOW
+# define LT_DLLAZY_OR_NOW RTLD_NOW
+# else
+# ifdef DL_NOW
+# define LT_DLLAZY_OR_NOW DL_NOW
+# else
+# define LT_DLLAZY_OR_NOW 0
+# endif
+# endif
+# endif
+# endif
+#endif
+
+/* When -fvisibility=hidden is used, assume the code has been annotated
+ correspondingly for the symbols needed. */
+#if defined __GNUC__ && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
+int fnord () __attribute__((visibility("default")));
+#endif
+
+int fnord () { return 42; }
+int main ()
+{
+ void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
+ int status = $lt_dlunknown;
+
+ if (self)
+ {
+ if (dlsym (self,"fnord")) status = $lt_dlno_uscore;
+ else
+ {
+ if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
+ else puts (dlerror ());
+ }
+ /* dlclose (self); */
+ }
+ else
+ puts (dlerror ());
+
+ return status;
+}
+_LT_EOF
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && test -s "conftest$ac_exeext" 2>/dev/null; then
+ (./conftest; exit; ) >&5 2>/dev/null
+ lt_status=$?
+ case x$lt_status in
+ x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;;
+ x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;;
+ x$lt_dlunknown|x*) lt_cv_dlopen_self_static=no ;;
+ esac
+ else :
+ # compilation failed
+ lt_cv_dlopen_self_static=no
+ fi
+fi
+rm -fr conftest*
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self_static" >&5
+$as_echo "$lt_cv_dlopen_self_static" >&6; }
+ fi
+
+ CPPFLAGS=$save_CPPFLAGS
+ LDFLAGS=$save_LDFLAGS
+ LIBS=$save_LIBS
+ ;;
+ esac
+
+ case $lt_cv_dlopen_self in
+ yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;;
+ *) enable_dlopen_self=unknown ;;
+ esac
+
+ case $lt_cv_dlopen_self_static in
+ yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;;
+ *) enable_dlopen_self_static=unknown ;;
+ esac
+fi
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+striplib=
+old_striplib=
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5
+$as_echo_n "checking whether stripping libraries is possible... " >&6; }
+if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then
+ test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
+ test -z "$striplib" && striplib="$STRIP --strip-unneeded"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+else
+# FIXME - insert some real tests, host_os isn't really good enough
+ case $host_os in
+ darwin*)
+ if test -n "$STRIP"; then
+ striplib="$STRIP -x"
+ old_striplib="$STRIP -S"
+ { $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; }
+ fi
+ ;;
+ *)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ ;;
+ esac
+fi
+
+
+
+
+
+
+
+
+
+
+
+
+ # Report what library types will actually be built
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libtool supports shared libraries" >&5
+$as_echo_n "checking if libtool supports shared libraries... " >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $can_build_shared" >&5
+$as_echo "$can_build_shared" >&6; }
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries" >&5
+$as_echo_n "checking whether to build shared libraries... " >&6; }
+ test no = "$can_build_shared" && enable_shared=no
+
+ # On AIX, shared libraries and static libraries use the same namespace, and
+ # are all built from PIC.
+ case $host_os in
+ aix3*)
+ test yes = "$enable_shared" && enable_static=no
+ if test -n "$RANLIB"; then
+ archive_cmds="$archive_cmds~\$RANLIB \$lib"
+ postinstall_cmds='$RANLIB $lib'
+ fi
+ ;;
+
+ aix[4-9]*)
+ if test ia64 != "$host_cpu"; then
+ case $enable_shared,$with_aix_soname,$aix_use_runtimelinking in
+ yes,aix,yes) ;; # shared object as lib.so file only
+ yes,svr4,*) ;; # shared object as lib.so archive member only
+ yes,*) enable_static=no ;; # shared object in lib.a archive as well
+ esac
+ fi
+ ;;
+ esac
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_shared" >&5
+$as_echo "$enable_shared" >&6; }
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build static libraries" >&5
+$as_echo_n "checking whether to build static libraries... " >&6; }
+ # Make sure either enable_shared or enable_static is yes.
+ test yes = "$enable_shared" || enable_static=yes
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_static" >&5
+$as_echo "$enable_static" >&6; }
+
+
+
+
+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
+
+CC=$lt_save_CC
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ac_config_commands="$ac_config_commands libtool"
+
+
+
+
+# Only expand once:
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNUC variadic macros" >&5
+$as_echo_n "checking for GNUC variadic macros... " >&6; }
+if ${babl_cv_prog_gnuc_variadic_macros+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ # gcc-2.95.x supports both gnu style and ISO varargs, but if -ansi
+ # is passed ISO vararg support is turned off, and there is no work
+ # around to turn it on, so we unconditionally turn it off.
+ { echo '#if __GNUC__ == 2 && __GNUC_MINOR__ == 95'
+ echo ' yes '
+ echo '#endif'; } > conftest.c
+ if ${CPP} conftest.c | grep yes > /dev/null; then
+ babl_cv_prog_c_variadic_macros=no
+ babl_cv_prog_cxx_variadic_macros=no
+ fi
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+int a(int p1, int p2, int p3);
+#define call_a(params...) a(1,params)
+call_a(2,3);
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ babl_cv_prog_gnuc_variadic_macros=yes
+else
+ babl_cv_prog_gnuc_variadic_macros=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $babl_cv_prog_gnuc_variadic_macros" >&5
+$as_echo "$babl_cv_prog_gnuc_variadic_macros" >&6; }
+if test x$babl_cv_prog_gnuc_variadic_macros = xyes; then
+
+$as_echo "#define BABL_GNUC_VARIADIC_MACROS 1" >>confdefs.h
+
+fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ISO C99 variadic macros in C" >&5
+$as_echo_n "checking for ISO C99 variadic macros in C... " >&6; }
+if ${babl_cv_prog_c_variadic_macros+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+int a(int p1, int p2, int p3);
+#define call_a(...) a(1,__VA_ARGS__)
+call_a(2,3);
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ babl_cv_prog_c_variadic_macros=yes
+else
+ babl_cv_prog_c_variadic_macros=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $babl_cv_prog_c_variadic_macros" >&5
+$as_echo "$babl_cv_prog_c_variadic_macros" >&6; }
+if test x$babl_cv_prog_c_variadic_macros = xyes ; then
+
+$as_echo "#define BABL_ISO_VARIADIC_MACROS 1" >>confdefs.h
+
+fi
+
+# No C++ compiler
+ babl_cv_prog_cxx_variadic_macros=no
+if test x$babl_cv_prog_cxx_variadic_macros = xyes ; then
+
+$as_echo "#define BABL_ISO_CXX_VARIADIC_MACROS 1" >>confdefs.h
+
+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; }
+ # Check whether --enable-maintainer-mode was given.
+if test "${enable_maintainer_mode+set}" = set; then :
+ enableval=$enable_maintainer_mode; USE_MAINTAINER_MODE=$enableval
+else
+ USE_MAINTAINER_MODE=yes
+fi
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_MAINTAINER_MODE" >&5
+$as_echo "$USE_MAINTAINER_MODE" >&6; }
+ if test $USE_MAINTAINER_MODE = yes; then
+ MAINTAINER_MODE_TRUE=
+ MAINTAINER_MODE_FALSE='#'
+else
+ MAINTAINER_MODE_TRUE='#'
+ MAINTAINER_MODE_FALSE=
+fi
+
+ MAINT=$MAINTAINER_MODE_TRUE
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5
+$as_echo_n "checking for ANSI C header files... " >&6; }
+if ${ac_cv_header_stdc+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdlib.h>
+#include <stdarg.h>
+#include <string.h>
+#include <float.h>
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_header_stdc=yes
+else
+ ac_cv_header_stdc=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+if test $ac_cv_header_stdc = yes; then
+ # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <string.h>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "memchr" >/dev/null 2>&1; then :
+
+else
+ ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+ # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdlib.h>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "free" >/dev/null 2>&1; then :
+
+else
+ ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+ # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
+ if test "$cross_compiling" = yes; then :
+ :
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <ctype.h>
+#include <stdlib.h>
+#if ((' ' & 0x0FF) == 0x020)
+# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
+# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
+#else
+# define ISLOWER(c) \
+ (('a' <= (c) && (c) <= 'i') \
+ || ('j' <= (c) && (c) <= 'r') \
+ || ('s' <= (c) && (c) <= 'z'))
+# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
+#endif
+
+#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
+int
+main ()
+{
+ int i;
+ for (i = 0; i < 256; i++)
+ if (XOR (islower (i), ISLOWER (i))
+ || toupper (i) != TOUPPER (i))
+ return 2;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+
+else
+ ac_cv_header_stdc=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5
+$as_echo "$ac_cv_header_stdc" >&6; }
+if test $ac_cv_header_stdc = yes; then
+
+$as_echo "#define STDC_HEADERS 1" >>confdefs.h
+
+fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5
+$as_echo_n "checking whether build environment is sane... " >&6; }
+# 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]*)
+ as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5;;
+esac
+case $srcdir in
+ *[\\\"\#\$\&\'\`$am_lf\ \ ]*)
+ as_fn_error $? "unsafe srcdir value: '$srcdir'" "$LINENO" 5;;
+esac
+
+# Do 'set' in a subshell so we don't clobber the current shell's
+# arguments. Must try -L first in case configure is actually a
+# symlink; some systems play weird games with the mod time of symlinks
+# (eg FreeBSD returns the mod time of the symlink's containing
+# directory).
+if (
+ am_has_slept=no
+ for am_try in 1 2; do
+ echo "timestamp, slept: $am_has_slept" > conftest.file
+ set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
+ if test "$*" = "X"; then
+ # -L didn't work.
+ set X `ls -t "$srcdir/configure" conftest.file`
+ fi
+ if test "$*" != "X $srcdir/configure conftest.file" \
+ && test "$*" != "X conftest.file $srcdir/configure"; then
+
+ # 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".
+ as_fn_error $? "ls -t appears to fail. Make sure there is not a broken
+ alias in your environment" "$LINENO" 5
+ fi
+ if test "$2" = conftest.file || test $am_try -eq 2; then
+ break
+ fi
+ # Just in case.
+ sleep 1
+ am_has_slept=yes
+ done
+ test "$2" = conftest.file
+ )
+then
+ # Ok.
+ :
+else
+ as_fn_error $? "newly created file is older than distributed files!
+Check your system clock" "$LINENO" 5
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+# 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
+
+rm -f conftest.file
+
+
+WEBSITE_HOST=pippin.gimp.org
+
+WEBSITE_LOCATION=public_html/babl/
+
+
+
+if eval "test x$GCC = xyes"; then
+ case " $CFLAGS " in
+ *\ \ -Wall\ \ *) ;;
+ *) CFLAGS="$CFLAGS -Wall" ;;
+ esac
+
+
+ extra_warnings=
+ for flag in '-Wdeclaration-after-statement'; do
+ if test -z "$extra_warnings"; then
+ extra_warnings_save_CFLAGS="$CFLAGS"
+ CFLAGS="$CFLAGS $flag"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC understands $flag" >&5
+$as_echo_n "checking whether $CC understands $flag... " >&6; }
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ extra_warnings_works=yes
+else
+ extra_warnings_works=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $extra_warnings_works" >&5
+$as_echo "$extra_warnings_works" >&6; }
+ CFLAGS="$extra_warnings_save_CFLAGS"
+ if test "x$extra_warnings_works" = "xyes"; then
+ extra_warnings="$flag"
+ fi
+ fi
+ done
+
+CFLAGS="$CFLAGS $extra_warnings"
+
+
+ extra_warnings=
+ for flag in '-Wmissing-prototypes'; do
+ if test -z "$extra_warnings"; then
+ extra_warnings_save_CFLAGS="$CFLAGS"
+ CFLAGS="$CFLAGS $flag"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC understands $flag" >&5
+$as_echo_n "checking whether $CC understands $flag... " >&6; }
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ extra_warnings_works=yes
+else
+ extra_warnings_works=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $extra_warnings_works" >&5
+$as_echo "$extra_warnings_works" >&6; }
+ CFLAGS="$extra_warnings_save_CFLAGS"
+ if test "x$extra_warnings_works" = "xyes"; then
+ extra_warnings="$flag"
+ fi
+ fi
+ done
+
+CFLAGS="$CFLAGS $extra_warnings"
+
+
+ extra_warnings=
+ for flag in '-Wmissing-declarations'; do
+ if test -z "$extra_warnings"; then
+ extra_warnings_save_CFLAGS="$CFLAGS"
+ CFLAGS="$CFLAGS $flag"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC understands $flag" >&5
+$as_echo_n "checking whether $CC understands $flag... " >&6; }
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ extra_warnings_works=yes
+else
+ extra_warnings_works=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $extra_warnings_works" >&5
+$as_echo "$extra_warnings_works" >&6; }
+ CFLAGS="$extra_warnings_save_CFLAGS"
+ if test "x$extra_warnings_works" = "xyes"; then
+ extra_warnings="$flag"
+ fi
+ fi
+ done
+
+CFLAGS="$CFLAGS $extra_warnings"
+
+
+ extra_warnings=
+ for flag in '-Winit-self'; do
+ if test -z "$extra_warnings"; then
+ extra_warnings_save_CFLAGS="$CFLAGS"
+ CFLAGS="$CFLAGS $flag"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC understands $flag" >&5
+$as_echo_n "checking whether $CC understands $flag... " >&6; }
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ extra_warnings_works=yes
+else
+ extra_warnings_works=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $extra_warnings_works" >&5
+$as_echo "$extra_warnings_works" >&6; }
+ CFLAGS="$extra_warnings_save_CFLAGS"
+ if test "x$extra_warnings_works" = "xyes"; then
+ extra_warnings="$flag"
+ fi
+ fi
+ done
+
+CFLAGS="$CFLAGS $extra_warnings"
+
+
+ extra_warnings=
+ for flag in '-Wpointer-arith'; do
+ if test -z "$extra_warnings"; then
+ extra_warnings_save_CFLAGS="$CFLAGS"
+ CFLAGS="$CFLAGS $flag"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC understands $flag" >&5
+$as_echo_n "checking whether $CC understands $flag... " >&6; }
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ extra_warnings_works=yes
+else
+ extra_warnings_works=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $extra_warnings_works" >&5
+$as_echo "$extra_warnings_works" >&6; }
+ CFLAGS="$extra_warnings_save_CFLAGS"
+ if test "x$extra_warnings_works" = "xyes"; then
+ extra_warnings="$flag"
+ fi
+ fi
+ done
+
+CFLAGS="$CFLAGS $extra_warnings"
+
+
+ extra_warnings=
+ for flag in '-Wold-style-definition'; do
+ if test -z "$extra_warnings"; then
+ extra_warnings_save_CFLAGS="$CFLAGS"
+ CFLAGS="$CFLAGS $flag"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC understands $flag" >&5
+$as_echo_n "checking whether $CC understands $flag... " >&6; }
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ extra_warnings_works=yes
+else
+ extra_warnings_works=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $extra_warnings_works" >&5
+$as_echo "$extra_warnings_works" >&6; }
+ CFLAGS="$extra_warnings_save_CFLAGS"
+ if test "x$extra_warnings_works" = "xyes"; then
+ extra_warnings="$flag"
+ fi
+ fi
+ done
+
+CFLAGS="$CFLAGS $extra_warnings"
+
+fi
+
+# Extract the first word of "rsvg-convert", so it can be a program name with args.
+set dummy rsvg-convert; 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_RSVG+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $RSVG in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_RSVG="$RSVG" # 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_RSVG="$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
+
+ test -z "$ac_cv_path_RSVG" && ac_cv_path_RSVG="no"
+ ;;
+esac
+fi
+RSVG=$ac_cv_path_RSVG
+if test -n "$RSVG"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RSVG" >&5
+$as_echo "$RSVG" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ if test "x$RSVG" != "xno"; then
+ HAVE_RSVG_TRUE=
+ HAVE_RSVG_FALSE='#'
+else
+ HAVE_RSVG_TRUE='#'
+ HAVE_RSVG_FALSE=
+fi
+
+
+# Extract the first word of "w3m", so it can be a program name with args.
+set dummy w3m; 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_W3M+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $W3M in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_W3M="$W3M" # 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_W3M="$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
+
+ test -z "$ac_cv_path_W3M" && ac_cv_path_W3M="no"
+ ;;
+esac
+fi
+W3M=$ac_cv_path_W3M
+if test -n "$W3M"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $W3M" >&5
+$as_echo "$W3M" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ if test "x$W3M" != "xno"; then
+ HAVE_W3M_TRUE=
+ HAVE_W3M_FALSE='#'
+else
+ HAVE_W3M_TRUE='#'
+ HAVE_W3M_FALSE=
+fi
+
+
+# Check whether --enable-docs was given.
+if test "${enable_docs+set}" = set; then :
+ enableval=$enable_docs;
+else
+ enable_docs="yes"
+fi
+
+
+ if test "x$enable_docs" = "xyes"; then
+ ENABLE_DOCS_TRUE=
+ ENABLE_DOCS_FALSE='#'
+else
+ ENABLE_DOCS_TRUE='#'
+ ENABLE_DOCS_FALSE=
+fi
+
+
+###########################
+# Check target architecture
+###########################
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for target architecture" >&5
+$as_echo_n "checking for target architecture... " >&6; }
+case x"$target" in
+ xNONE | x)
+ target_or_host="$host" ;;
+ *)
+ target_or_host="$target" ;;
+esac
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $target_or_host" >&5
+$as_echo "$target_or_host" >&6; }
+
+case "$target_or_host" in
+ i*86-*-*)
+ have_x86=yes
+
+$as_echo "#define ARCH_X86 1" >>confdefs.h
+
+ ;;
+ x86_64-*-*)
+ have_x86=yes
+
+$as_echo "#define ARCH_X86 1" >>confdefs.h
+
+
+$as_echo "#define ARCH_X86_64 1" >>confdefs.h
+
+ ;;
+ ppc-*-* | powerpc-*)
+ have_ppc=yes
+
+$as_echo "#define ARCH_PPC 1" >>confdefs.h
+
+ ;;
+ ppc64-*-* | powerpc64-*)
+ have_ppc=yes
+
+$as_echo "#define ARCH_PPC 1" >>confdefs.h
+
+
+$as_echo "#define ARCH_PPC64 1" >>confdefs.h
+
+ ;;
+ *)
+ ;;
+esac
+
+
+############################
+# Check how to find plug-ins
+############################
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the extension for shared libraries" >&5
+$as_echo_n "checking the extension for shared libraries... " >&6; }
+case "$target_or_host" in
+ hppa*-hpux*) # HP/UX
+ shrext=.sl
+ ;;
+ *-*-mingw* | *-*-cygwin*) # windows
+ shrext=.dll
+ ;;
+ *) # linux (and BSD?)
+ shrext=.so
+ ;;
+esac
+
+SHREXT=$shrext
+
+
+cat >>confdefs.h <<_ACEOF
+#define SHREXT "$shrext"
+_ACEOF
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $shrext" >&5
+$as_echo "$shrext" >&6; }
+
+
+#################
+# Check for Win32
+#################
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for some Win32 platform" >&5
+$as_echo_n "checking for some Win32 platform... " >&6; }
+case "$target_or_host" in
+ *-*-mingw* | *-*-cygwin*)
+ platform_win32=yes
+ ;;
+ *)
+ platform_win32=no
+ ;;
+esac
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $platform_win32" >&5
+$as_echo "$platform_win32" >&6; }
+ if test "$platform_win32" = "yes"; then
+ PLATFORM_WIN32_TRUE=
+ PLATFORM_WIN32_FALSE='#'
+else
+ PLATFORM_WIN32_TRUE='#'
+ PLATFORM_WIN32_FALSE=
+fi
+
+
+MATH_LIB=-lm
+THREAD_LIB=-lpthread
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for native Win32" >&5
+$as_echo_n "checking for native Win32... " >&6; }
+case "$target_or_host" in
+ *-*-mingw*)
+ os_win32=yes
+ PATH_SEP=';'
+ DIR_SEP='\\'
+ MATH_LIB=
+ THREAD_LIB=
+ ;;
+ *)
+ os_win32=no
+ PATH_SEP=':'
+ DIR_SEP='/'
+ ;;
+esac
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $os_win32" >&5
+$as_echo "$os_win32" >&6; }
+
+
+
+
+
+ if test "$os_win32" = "yes"; then
+ OS_WIN32_TRUE=
+ OS_WIN32_FALSE='#'
+else
+ OS_WIN32_TRUE='#'
+ OS_WIN32_FALSE=
+fi
+
+ if test "$os_win32" != "yes"; then
+ OS_UNIX_TRUE=
+ OS_UNIX_FALSE='#'
+else
+ OS_UNIX_TRUE='#'
+ OS_UNIX_FALSE=
+fi
+
+
+
+
+
+########################
+# Check for MMX assembly
+########################
+
+# Check whether --enable-mmx was given.
+if test "${enable_mmx+set}" = set; then :
+ enableval=$enable_mmx;
+else
+ enable_mmx=$have_x86
+fi
+
+
+# Check whether --enable-sse was given.
+if test "${enable_sse+set}" = set; then :
+ enableval=$enable_sse;
+else
+ enable_sse=$enable_mmx
+fi
+
+
+# Check whether --enable-sse2 was given.
+if test "${enable_sse2+set}" = set; then :
+ enableval=$enable_sse2;
+else
+ enable_sse2=$enable_sse
+fi
+
+
+# Check whether --enable-sse4_1 was given.
+if test "${enable_sse4_1+set}" = set; then :
+ enableval=$enable_sse4_1;
+else
+ enable_sse4_1=$enable_sse
+fi
+
+
+# Check whether --enable-f16c was given.
+if test "${enable_f16c+set}" = set; then :
+ enableval=$enable_f16c;
+else
+ enable_f16c=$enable_sse
+fi
+
+
+if test "x$enable_mmx" = xyes; then
+
+ MMX_EXTRA_CFLAGS=
+ for flag in '-mmmx'; do
+ if test -z "$MMX_EXTRA_CFLAGS"; then
+ MMX_EXTRA_CFLAGS_save_CFLAGS="$CFLAGS"
+ CFLAGS="$CFLAGS $flag"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC understands $flag" >&5
+$as_echo_n "checking whether $CC understands $flag... " >&6; }
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ MMX_EXTRA_CFLAGS_works=yes
+else
+ MMX_EXTRA_CFLAGS_works=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MMX_EXTRA_CFLAGS_works" >&5
+$as_echo "$MMX_EXTRA_CFLAGS_works" >&6; }
+ CFLAGS="$MMX_EXTRA_CFLAGS_save_CFLAGS"
+ if test "x$MMX_EXTRA_CFLAGS_works" = "xyes"; then
+ MMX_EXTRA_CFLAGS="$flag"
+ fi
+ fi
+ done
+
+ SSE_EXTRA_CFLAGS=
+ SSE2_EXTRA_CFLAGS=
+ SSE4_1_EXTRA_CFLAGS=
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we can compile MMX code" >&5
+$as_echo_n "checking whether we can compile MMX code... " >&6; }
+
+ mmx_save_CFLAGS="$CFLAGS"
+ CFLAGS="$mmx_save_CFLAGS $MMX_EXTRA_CFLAGS"
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+asm ("movq 0, %mm0");
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+
+$as_echo "#define USE_MMX 1" >>confdefs.h
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+
+ if test "x$enable_sse" = xyes; then
+
+ fpmath_flag=
+ for flag in '-mfpmath=sse'; do
+ if test -z "$fpmath_flag"; then
+ fpmath_flag_save_CFLAGS="$CFLAGS"
+ CFLAGS="$CFLAGS $flag"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC understands $flag" >&5
+$as_echo_n "checking whether $CC understands $flag... " >&6; }
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ fpmath_flag_works=yes
+else
+ fpmath_flag_works=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $fpmath_flag_works" >&5
+$as_echo "$fpmath_flag_works" >&6; }
+ CFLAGS="$fpmath_flag_save_CFLAGS"
+ if test "x$fpmath_flag_works" = "xyes"; then
+ fpmath_flag="$flag"
+ fi
+ fi
+ done
+
+ if test "x$platform_win32" = xyes; then
+
+ stack_align=
+ for flag in '-mstackrealign'; do
+ if test -z "$stack_align"; then
+ stack_align_save_CFLAGS="$CFLAGS"
+ CFLAGS="$CFLAGS $flag"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC understands $flag" >&5
+$as_echo_n "checking whether $CC understands $flag... " >&6; }
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ stack_align_works=yes
+else
+ stack_align_works=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $stack_align_works" >&5
+$as_echo "$stack_align_works" >&6; }
+ CFLAGS="$stack_align_save_CFLAGS"
+ if test "x$stack_align_works" = "xyes"; then
+ stack_align="$flag"
+ fi
+ fi
+ done
+
+ fi
+ SSE_EXTRA_CFLAGS="$MMX_EXTRA_CFLAGS $stack_align $fpmath_flag"
+
+
+ sse_flag=
+ for flag in '-msse'; do
+ if test -z "$sse_flag"; then
+ sse_flag_save_CFLAGS="$CFLAGS"
+ CFLAGS="$CFLAGS $flag"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC understands $flag" >&5
+$as_echo_n "checking whether $CC understands $flag... " >&6; }
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ sse_flag_works=yes
+else
+ sse_flag_works=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $sse_flag_works" >&5
+$as_echo "$sse_flag_works" >&6; }
+ CFLAGS="$sse_flag_save_CFLAGS"
+ if test "x$sse_flag_works" = "xyes"; then
+ sse_flag="$flag"
+ fi
+ fi
+ done
+
+ SSE_EXTRA_CFLAGS="$SSE_EXTRA_CFLAGS $sse_flag"
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we can compile SSE code" >&5
+$as_echo_n "checking whether we can compile SSE code... " >&6; }
+
+ CFLAGS="$CFLAGS $sse_flag"
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+asm ("movntps %xmm0, 0");
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+
+$as_echo "#define USE_SSE 1" >>confdefs.h
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+
+else
+ enable_sse=no
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: The assembler does not support the SSE command set." >&5
+$as_echo "$as_me: WARNING: The assembler does not support the SSE command set." >&2;}
+
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+ if test "x$enable_sse2" = xyes; then
+
+ sse2_flag=
+ for flag in '-msse2'; do
+ if test -z "$sse2_flag"; then
+ sse2_flag_save_CFLAGS="$CFLAGS"
+ CFLAGS="$CFLAGS $flag"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC understands $flag" >&5
+$as_echo_n "checking whether $CC understands $flag... " >&6; }
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ sse2_flag_works=yes
+else
+ sse2_flag_works=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $sse2_flag_works" >&5
+$as_echo "$sse2_flag_works" >&6; }
+ CFLAGS="$sse2_flag_save_CFLAGS"
+ if test "x$sse2_flag_works" = "xyes"; then
+ sse2_flag="$flag"
+ fi
+ fi
+ done
+
+ SSE2_EXTRA_CFLAGS="$SSE_EXTRA_CFLAGS $sse2_flag"
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we can compile SSE2 code" >&5
+$as_echo_n "checking whether we can compile SSE2 code... " >&6; }
+
+ CFLAGS="$CFLAGS $sse2_flag"
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+asm ("punpckhwd %xmm0,%xmm1");
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+
+$as_echo "#define USE_SSE2 1" >>confdefs.h
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+
+else
+ enable_sse2=no
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: The assembler does not support the SSE2 command set." >&5
+$as_echo "$as_me: WARNING: The assembler does not support the SSE2 command set." >&2;}
+
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+ if test "x$enable_sse4_1" = xyes; then
+
+ sse4_1_flag=
+ for flag in '-msse4.1'; do
+ if test -z "$sse4_1_flag"; then
+ sse4_1_flag_save_CFLAGS="$CFLAGS"
+ CFLAGS="$CFLAGS $flag"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC understands $flag" >&5
+$as_echo_n "checking whether $CC understands $flag... " >&6; }
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ sse4_1_flag_works=yes
+else
+ sse4_1_flag_works=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $sse4_1_flag_works" >&5
+$as_echo "$sse4_1_flag_works" >&6; }
+ CFLAGS="$sse4_1_flag_save_CFLAGS"
+ if test "x$sse4_1_flag_works" = "xyes"; then
+ sse4_1_flag="$flag"
+ fi
+ fi
+ done
+
+ SSE4_1_EXTRA_CFLAGS="$SSE_EXTRA_CFLAGS $sse4_1_flag"
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we can compile SSE4_1 code" >&5
+$as_echo_n "checking whether we can compile SSE4_1 code... " >&6; }
+
+ CFLAGS="$CFLAGS $sse4_1_flag"
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+asm ("pmovzxbd %xmm0,%xmm1");
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+
+$as_echo "#define USE_SSE4_1 1" >>confdefs.h
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+
+else
+ enable_sse4_1=no
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: The assembler does not support the SSE4_1 command set." >&5
+$as_echo "$as_me: WARNING: The assembler does not support the SSE4_1 command set." >&2;}
+
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ fi
+ fi
+
+ CFLAGS="$mmx_save_CFLAGS"
+
+ if test "x$enable_f16c" = xyes; then
+
+ f16c_flag=
+ for flag in '-mf16c'; do
+ if test -z "$f16c_flag"; then
+ f16c_flag_save_CFLAGS="$CFLAGS"
+ CFLAGS="$CFLAGS $flag"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC understands $flag" >&5
+$as_echo_n "checking whether $CC understands $flag... " >&6; }
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ f16c_flag_works=yes
+else
+ f16c_flag_works=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $f16c_flag_works" >&5
+$as_echo "$f16c_flag_works" >&6; }
+ CFLAGS="$f16c_flag_save_CFLAGS"
+ if test "x$f16c_flag_works" = "xyes"; then
+ f16c_flag="$flag"
+ fi
+ fi
+ done
+
+ F16C_EXTRA_CFLAGS="$SSE_EXTRA_CFLAGS $f16c_flag"
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we can compile half-floating point code" >&5
+$as_echo_n "checking whether we can compile half-floating point code... " >&6; }
+
+ CFLAGS="$CFLAGS $sse_flag $f16c_flag"
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <immintrin.h>
+int
+main ()
+{
+__m128 val = _mm_cvtph_ps ((__m128i)_mm_setzero_ps());
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+
+$as_echo "#define USE_F16C 1" >>confdefs.h
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+
+else
+ enable_f16c=no
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: The compiler does not support f16c intrinsics." >&5
+$as_echo "$as_me: WARNING: The compiler does not support f16c intrinsics." >&2;}
+
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ fi
+
+ fi
+
+else
+ enable_mmx=no
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: The assembler does not support the MMX command set." >&5
+$as_echo "$as_me: WARNING: The assembler does not support the MMX command set." >&2;}
+
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+ CFLAGS="$mmx_save_CFLAGS"
+
+
+
+
+
+
+fi
+
+
+############################
+# Check for AltiVec assembly
+############################
+
+# Check whether --enable-altivec was given.
+if test "${enable_altivec+set}" = set; then :
+ enableval=$enable_altivec;
+else
+ enable_altivec=$have_ppc
+fi
+
+
+if test "x$enable_altivec" = xyes; then
+
+
+ altivec_flag=
+ for flag in '-faltivec' '-maltivec -mabi=altivec'; do
+ if test -z "$altivec_flag"; then
+ altivec_flag_save_CFLAGS="$CFLAGS"
+ CFLAGS="$CFLAGS $flag"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC understands $flag" >&5
+$as_echo_n "checking whether $CC understands $flag... " >&6; }
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ altivec_flag_works=yes
+else
+ altivec_flag_works=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $altivec_flag_works" >&5
+$as_echo "$altivec_flag_works" >&6; }
+ CFLAGS="$altivec_flag_save_CFLAGS"
+ if test "x$altivec_flag_works" = "xyes"; then
+ altivec_flag="$flag"
+ fi
+ fi
+ done
+
+
+ ALTIVEC_EXTRA_CFLAGS=
+ case "$altivec_flag" in
+ -maltivec*)
+ altivec_save_CPPFLAGS="$CPPFLAGS"
+ CPPFLAGS="$altivec_save_CPPFLAGS $altivec_flag"
+ for ac_header in altivec.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "altivec.h" "ac_cv_header_altivec_h" "$ac_includes_default"
+if test "x$ac_cv_header_altivec_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_ALTIVEC_H 1
+_ACEOF
+ ALTIVEC_EXTRA_CFLAGS="$altivec_flag"
+fi
+
+done
+
+ CPPFLAGS="$altivec_save_CPPFLAGS"
+ ;;
+ *)
+ ALTIVEC_EXTRA_CFLAGS="$altivec_flag"
+ ;;
+ esac
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we can compile AltiVec code" >&5
+$as_echo_n "checking whether we can compile AltiVec code... " >&6; }
+
+ can_use_altivec=no
+ if test -z "$ALTIVEC_EXTRA_CFLAGS"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: The compiler does not support the AltiVec command set." >&5
+$as_echo "$as_me: WARNING: The compiler does not support the AltiVec command set." >&2;}
+ else
+ case "$target_or_host" in
+ *-*-darwin*)
+ can_use_altivec=yes
+
+$as_echo "#define HAVE_ALTIVEC_SYSCTL 1" >>confdefs.h
+
+ ;;
+ *)
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+asm ("vand %v0, %v0, %v0");
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ can_use_altivec=yes
+else
+ can_use_altivec=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ ;;
+ esac
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $can_use_altivec" >&5
+$as_echo "$can_use_altivec" >&6; }
+
+ if test "x$can_use_altivec" = "xyes"; then
+
+$as_echo "#define USE_ALTIVEC 1" >>confdefs.h
+
+ else
+ enable_altivec=no
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: The assembler does not support the AltiVec command set." >&5
+$as_echo "$as_me: WARNING: The assembler does not support the AltiVec command set." >&2;}
+ fi
+ fi
+
+ enable_altivec="$can_use_altivec"
+fi
+
+
+##################
+# Check for random
+##################
+have_srandom=no
+ac_fn_c_check_func "$LINENO" "srandom" "ac_cv_func_srandom"
+if test "x$ac_cv_func_srandom" = xyes; then :
+ have_srandom=yes
+fi
+
+ if test x$have_srandom = xyes; then
+ HAVE_SRANDOM_TRUE=
+ HAVE_SRANDOM_FALSE='#'
+else
+ HAVE_SRANDOM_TRUE='#'
+ HAVE_SRANDOM_FALSE=
+fi
+
+
+
+for ac_header in dl.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "dl.h" "ac_cv_header_dl_h" "$ac_includes_default"
+if test "x$ac_cv_header_dl_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_DL_H 1
+_ACEOF
+
+fi
+
+done
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing dlopen" >&5
+$as_echo_n "checking for library containing dlopen... " >&6; }
+if ${ac_cv_search_dlopen+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_func_search_save_LIBS=$LIBS
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dlopen ();
+int
+main ()
+{
+return dlopen ();
+ ;
+ return 0;
+}
+_ACEOF
+for ac_lib in '' dl; do
+ if test -z "$ac_lib"; then
+ ac_res="none required"
+ else
+ ac_res=-l$ac_lib
+ LIBS="-l$ac_lib $ac_func_search_save_LIBS"
+ fi
+ if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_search_dlopen=$ac_res
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext
+ if ${ac_cv_search_dlopen+:} false; then :
+ break
+fi
+done
+if ${ac_cv_search_dlopen+:} false; then :
+
+else
+ ac_cv_search_dlopen=no
+fi
+rm conftest.$ac_ext
+LIBS=$ac_func_search_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_dlopen" >&5
+$as_echo "$ac_cv_search_dlopen" >&6; }
+ac_res=$ac_cv_search_dlopen
+if test "$ac_res" != no; then :
+ test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
+
+fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing rint" >&5
+$as_echo_n "checking for library containing rint... " >&6; }
+if ${ac_cv_search_rint+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_func_search_save_LIBS=$LIBS
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char rint ();
+int
+main ()
+{
+return rint ();
+ ;
+ return 0;
+}
+_ACEOF
+for ac_lib in '' m; do
+ if test -z "$ac_lib"; then
+ ac_res="none required"
+ else
+ ac_res=-l$ac_lib
+ LIBS="-l$ac_lib $ac_func_search_save_LIBS"
+ fi
+ if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_search_rint=$ac_res
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext
+ if ${ac_cv_search_rint+:} false; then :
+ break
+fi
+done
+if ${ac_cv_search_rint+:} false; then :
+
+else
+ ac_cv_search_rint=no
+fi
+rm conftest.$ac_ext
+LIBS=$ac_func_search_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_rint" >&5
+$as_echo "$ac_cv_search_rint" >&6; }
+ac_res=$ac_cv_search_rint
+if test "$ac_res" != no; then :
+ test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
+
+fi
+
+
+ac_fn_c_check_func "$LINENO" "gettimeofday" "ac_cv_func_gettimeofday"
+if test "x$ac_cv_func_gettimeofday" = xyes; then :
+ $as_echo "#define HAVE_GETTIMEOFDAY 1" >>confdefs.h
+
+else
+ case " $LIBOBJS " in
+ *" gettimeofday.$ac_objext "* ) ;;
+ *) LIBOBJS="$LIBOBJS gettimeofday.$ac_objext"
+ ;;
+esac
+
+fi
+
+
+for ac_func in rint
+do :
+ ac_fn_c_check_func "$LINENO" "rint" "ac_cv_func_rint"
+if test "x$ac_cv_func_rint" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_RINT 1
+_ACEOF
+
+fi
+done
+
+
+#BABL_PATH_SEPARATOR must be defined as a character.
+#BABL_DIR_SEPARATOR must be defined as a string.
+
+cat >>confdefs.h <<_ACEOF
+#define BABL_PATH_SEPARATOR '$PATH_SEP'
+_ACEOF
+
+
+cat >>confdefs.h <<_ACEOF
+#define BABL_DIR_SEPARATOR "$DIR_SEP"
+_ACEOF
+
+
+
+cat >>confdefs.h <<_ACEOF
+#define BABL_LIBRARY "$PACKAGE_NAME-$BABL_API_VERSION"
+_ACEOF
+
+
+
+
+
+ac_config_files="$ac_config_files Makefile babl.pc babl/Makefile babl/babl-version.h babl/base/Makefile docs/Makefile docs/index-static.html docs/graphics/Makefile tests/Makefile tools/Makefile extensions/Makefile INSTALL"
+
+
+cat >confcache <<\_ACEOF
+# This file is a shell script that caches the results of configure
+# tests run on this system so they can be shared between configure
+# scripts and configure runs, see configure's option --config-cache.
+# It is not useful on other systems. If it contains results you don't
+# want to keep, you may remove or edit it.
+#
+# config.status only pays attention to the cache file if you give it
+# the --recheck option to rerun configure.
+#
+# `ac_cv_env_foo' variables (set or unset) will be overridden when
+# loading this file, other *unset* `ac_cv_foo' will be assigned the
+# following values.
+
+_ACEOF
+
+# The following way of writing the cache mishandles newlines in values,
+# but we know of no workaround that is simple, portable, and efficient.
+# So, we kill variables containing newlines.
+# Ultrix sh set writes to stderr and can't be redirected directly,
+# and sets the high bit in the cache file unless we assign to the vars.
+(
+ for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do
+ eval ac_val=\$$ac_var
+ case $ac_val in #(
+ *${as_nl}*)
+ case $ac_var in #(
+ *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
+$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
+ esac
+ case $ac_var in #(
+ _ | IFS | as_nl) ;; #(
+ BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
+ *) { eval $ac_var=; unset $ac_var;} ;;
+ esac ;;
+ esac
+ done
+
+ (set) 2>&1 |
+ case $as_nl`(ac_space=' '; set) 2>&1` in #(
+ *${as_nl}ac_space=\ *)
+ # `set' does not quote correctly, so add quotes: double-quote
+ # substitution turns \\\\ into \\, and sed turns \\ into \.
+ sed -n \
+ "s/'/'\\\\''/g;
+ s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
+ ;; #(
+ *)
+ # `set' quotes correctly as required by POSIX, so do not add quotes.
+ sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
+ ;;
+ esac |
+ sort
+) |
+ sed '
+ /^ac_cv_env_/b end
+ t clear
+ :clear
+ s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
+ t end
+ s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
+ :end' >>confcache
+if diff "$cache_file" confcache >/dev/null 2>&1; then :; else
+ if test -w "$cache_file"; then
+ if test "x$cache_file" != "x/dev/null"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5
+$as_echo "$as_me: updating cache $cache_file" >&6;}
+ if test ! -f "$cache_file" || test -h "$cache_file"; then
+ cat confcache >"$cache_file"
+ else
+ case $cache_file in #(
+ */* | ?:*)
+ mv -f confcache "$cache_file"$$ &&
+ mv -f "$cache_file"$$ "$cache_file" ;; #(
+ *)
+ mv -f confcache "$cache_file" ;;
+ esac
+ fi
+ fi
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5
+$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;}
+ fi
+fi
+rm -f confcache
+
+test "x$prefix" = xNONE && prefix=$ac_default_prefix
+# Let make expand exec_prefix.
+test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
+
+DEFS=-DHAVE_CONFIG_H
+
+ac_libobjs=
+ac_ltlibobjs=
+U=
+for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
+ # 1. Remove the extension, and $U if already installed.
+ ac_script='s/\$U\././;s/\.o$//;s/\.obj$//'
+ ac_i=`$as_echo "$ac_i" | sed "$ac_script"`
+ # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR
+ # will be set to the directory where LIBOBJS objects are built.
+ as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext"
+ as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo'
+done
+LIBOBJS=$ac_libobjs
+
+LTLIBOBJS=$ac_ltlibobjs
+
+
+if test -z "${BABL_UNSTABLE_TRUE}" && test -z "${BABL_UNSTABLE_FALSE}"; then
+ as_fn_error $? "conditional \"BABL_UNSTABLE\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking that generated files are newer than configure" >&5
+$as_echo_n "checking that generated files are newer than configure... " >&6; }
+ if test -n "$am_sleep_pid"; then
+ # Hide warnings about reused PIDs.
+ wait $am_sleep_pid 2>/dev/null
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: done" >&5
+$as_echo "done" >&6; }
+ if test -n "$EXEEXT"; then
+ am__EXEEXT_TRUE=
+ am__EXEEXT_FALSE='#'
+else
+ am__EXEEXT_TRUE='#'
+ am__EXEEXT_FALSE=
+fi
+
+if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then
+ as_fn_error $? "conditional \"AMDEP\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then
+ as_fn_error $? "conditional \"am__fastdepCC\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then
+ as_fn_error $? "conditional \"MAINTAINER_MODE\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking that generated files are newer than configure" >&5
+$as_echo_n "checking that generated files are newer than configure... " >&6; }
+ if test -n "$am_sleep_pid"; then
+ # Hide warnings about reused PIDs.
+ wait $am_sleep_pid 2>/dev/null
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: done" >&5
+$as_echo "done" >&6; }
+if test -z "${HAVE_RSVG_TRUE}" && test -z "${HAVE_RSVG_FALSE}"; then
+ as_fn_error $? "conditional \"HAVE_RSVG\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${HAVE_W3M_TRUE}" && test -z "${HAVE_W3M_FALSE}"; then
+ as_fn_error $? "conditional \"HAVE_W3M\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${ENABLE_DOCS_TRUE}" && test -z "${ENABLE_DOCS_FALSE}"; then
+ as_fn_error $? "conditional \"ENABLE_DOCS\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${PLATFORM_WIN32_TRUE}" && test -z "${PLATFORM_WIN32_FALSE}"; then
+ as_fn_error $? "conditional \"PLATFORM_WIN32\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${OS_WIN32_TRUE}" && test -z "${OS_WIN32_FALSE}"; then
+ as_fn_error $? "conditional \"OS_WIN32\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${OS_UNIX_TRUE}" && test -z "${OS_UNIX_FALSE}"; then
+ as_fn_error $? "conditional \"OS_UNIX\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${HAVE_SRANDOM_TRUE}" && test -z "${HAVE_SRANDOM_FALSE}"; then
+ as_fn_error $? "conditional \"HAVE_SRANDOM\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+
+: "${CONFIG_STATUS=./config.status}"
+ac_write_fail=0
+ac_clean_files_save=$ac_clean_files
+ac_clean_files="$ac_clean_files $CONFIG_STATUS"
+{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5
+$as_echo "$as_me: creating $CONFIG_STATUS" >&6;}
+as_write_fail=0
+cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1
+#! $SHELL
+# Generated by $as_me.
+# Run this file to recreate the current configuration.
+# Compiler output produced by configure, useful for debugging
+# configure, is in config.log if it exists.
+
+debug=false
+ac_cs_recheck=false
+ac_cs_silent=false
+
+SHELL=\${CONFIG_SHELL-$SHELL}
+export SHELL
+_ASEOF
+cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1
+## -------------------- ##
+## M4sh Initialization. ##
+## -------------------- ##
+
+# Be more Bourne compatible
+DUALCASE=1; export DUALCASE # for MKS sh
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
+ emulate sh
+ NULLCMD=:
+ # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
+ # is contrary to our usage. Disable this feature.
+ alias -g '${1+"$@"}'='"$@"'
+ setopt NO_GLOB_SUBST
+else
+ case `(set -o) 2>/dev/null` in #(
+ *posix*) :
+ set -o posix ;; #(
+ *) :
+ ;;
+esac
+fi
+
+
+as_nl='
+'
+export as_nl
+# Printing a long string crashes Solaris 7 /usr/bin/printf.
+as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
+# Prefer a ksh shell builtin over an external printf program on Solaris,
+# but without wasting forks for bash or zsh.
+if test -z "$BASH_VERSION$ZSH_VERSION" \
+ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
+ as_echo='print -r --'
+ as_echo_n='print -rn --'
+elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
+ as_echo='printf %s\n'
+ as_echo_n='printf %s'
+else
+ if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
+ as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
+ as_echo_n='/usr/ucb/echo -n'
+ else
+ as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
+ as_echo_n_body='eval
+ arg=$1;
+ case $arg in #(
+ *"$as_nl"*)
+ expr "X$arg" : "X\\(.*\\)$as_nl";
+ arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
+ esac;
+ expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
+ '
+ export as_echo_n_body
+ as_echo_n='sh -c $as_echo_n_body as_echo'
+ fi
+ export as_echo_body
+ as_echo='sh -c $as_echo_body as_echo'
+fi
+
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+ PATH_SEPARATOR=:
+ (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
+ (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
+ PATH_SEPARATOR=';'
+ }
+fi
+
+
+# IFS
+# We need space, tab and new line, in precisely that order. Quoting is
+# there to prevent editors from complaining about space-tab.
+# (If _AS_PATH_WALK were called with IFS unset, it would disable word
+# splitting by setting IFS to empty value.)
+IFS=" "" $as_nl"
+
+# Find who we are. Look in the path if we contain no directory separator.
+as_myself=
+case $0 in #((
+ *[\\/]* ) as_myself=$0 ;;
+ *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+# We did not find ourselves, most probably we were run as `sh COMMAND'
+# in which case we are not to be found in the path.
+if test "x$as_myself" = x; then
+ as_myself=$0
+fi
+if test ! -f "$as_myself"; then
+ $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
+ exit 1
+fi
+
+# Unset variables that we do not need and which cause bugs (e.g. in
+# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1"
+# suppresses any "Segmentation fault" message there. '((' could
+# trigger a bug in pdksh 5.2.14.
+for as_var in BASH_ENV ENV MAIL MAILPATH
+do eval test x\${$as_var+set} = xset \
+ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
+done
+PS1='$ '
+PS2='> '
+PS4='+ '
+
+# NLS nuisances.
+LC_ALL=C
+export LC_ALL
+LANGUAGE=C
+export LANGUAGE
+
+# CDPATH.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+
+# as_fn_error STATUS ERROR [LINENO LOG_FD]
+# ----------------------------------------
+# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
+# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
+# script with STATUS, using 1 if that was 0.
+as_fn_error ()
+{
+ as_status=$1; test $as_status -eq 0 && as_status=1
+ if test "$4"; then
+ as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
+ fi
+ $as_echo "$as_me: error: $2" >&2
+ as_fn_exit $as_status
+} # as_fn_error
+
+
+# as_fn_set_status STATUS
+# -----------------------
+# Set $? to STATUS, without forking.
+as_fn_set_status ()
+{
+ return $1
+} # as_fn_set_status
+
+# as_fn_exit STATUS
+# -----------------
+# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
+as_fn_exit ()
+{
+ set +e
+ as_fn_set_status $1
+ exit $1
+} # as_fn_exit
+
+# as_fn_unset VAR
+# ---------------
+# Portably unset VAR.
+as_fn_unset ()
+{
+ { eval $1=; unset $1;}
+}
+as_unset=as_fn_unset
+# as_fn_append VAR VALUE
+# ----------------------
+# Append the text in VALUE to the end of the definition contained in VAR. Take
+# advantage of any shell optimizations that allow amortized linear growth over
+# repeated appends, instead of the typical quadratic growth present in naive
+# implementations.
+if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
+ eval 'as_fn_append ()
+ {
+ eval $1+=\$2
+ }'
+else
+ as_fn_append ()
+ {
+ eval $1=\$$1\$2
+ }
+fi # as_fn_append
+
+# as_fn_arith ARG...
+# ------------------
+# Perform arithmetic evaluation on the ARGs, and store the result in the
+# global $as_val. Take advantage of shells that can avoid forks. The arguments
+# must be portable across $(()) and expr.
+if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
+ eval 'as_fn_arith ()
+ {
+ as_val=$(( $* ))
+ }'
+else
+ as_fn_arith ()
+ {
+ as_val=`expr "$@" || test $? -eq 1`
+ }
+fi # as_fn_arith
+
+
+if expr a : '\(a\)' >/dev/null 2>&1 &&
+ test "X`expr 00001 : '.*\(...\)'`" = X001; then
+ as_expr=expr
+else
+ as_expr=false
+fi
+
+if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
+ as_basename=basename
+else
+ as_basename=false
+fi
+
+if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
+ as_dirname=dirname
+else
+ as_dirname=false
+fi
+
+as_me=`$as_basename -- "$0" ||
+$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
+ X"$0" : 'X\(//\)$' \| \
+ X"$0" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X/"$0" |
+ sed '/^.*\/\([^/][^/]*\)\/*$/{
+ s//\1/
+ q
+ }
+ /^X\/\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\/\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+
+# Avoid depending upon Character Ranges.
+as_cr_letters='abcdefghijklmnopqrstuvwxyz'
+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+as_cr_Letters=$as_cr_letters$as_cr_LETTERS
+as_cr_digits='0123456789'
+as_cr_alnum=$as_cr_Letters$as_cr_digits
+
+ECHO_C= ECHO_N= ECHO_T=
+case `echo -n x` in #(((((
+-n*)
+ case `echo 'xy\c'` in
+ *c*) ECHO_T=' ';; # ECHO_T is single tab character.
+ xy) ECHO_C='\c';;
+ *) echo `echo ksh88 bug on AIX 6.1` > /dev/null
+ ECHO_T=' ';;
+ esac;;
+*)
+ ECHO_N='-n';;
+esac
+
+rm -f conf$$ conf$$.exe conf$$.file
+if test -d conf$$.dir; then
+ rm -f conf$$.dir/conf$$.file
+else
+ rm -f conf$$.dir
+ mkdir conf$$.dir 2>/dev/null
+fi
+if (echo >conf$$.file) 2>/dev/null; then
+ if ln -s conf$$.file conf$$ 2>/dev/null; then
+ as_ln_s='ln -s'
+ # ... but there are two gotchas:
+ # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
+ # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
+ # In both cases, we have to default to `cp -pR'.
+ ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
+ as_ln_s='cp -pR'
+ elif ln conf$$.file conf$$ 2>/dev/null; then
+ as_ln_s=ln
+ else
+ as_ln_s='cp -pR'
+ fi
+else
+ as_ln_s='cp -pR'
+fi
+rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
+rmdir conf$$.dir 2>/dev/null
+
+
+# as_fn_mkdir_p
+# -------------
+# Create "$as_dir" as a directory, including parents if necessary.
+as_fn_mkdir_p ()
+{
+
+ case $as_dir in #(
+ -*) as_dir=./$as_dir;;
+ esac
+ test -d "$as_dir" || eval $as_mkdir_p || {
+ as_dirs=
+ while :; do
+ case $as_dir in #(
+ *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
+ *) as_qdir=$as_dir;;
+ esac
+ as_dirs="'$as_qdir' $as_dirs"
+ as_dir=`$as_dirname -- "$as_dir" ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$as_dir" : 'X\(//\)[^/]' \| \
+ X"$as_dir" : 'X\(//\)$' \| \
+ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$as_dir" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ test -d "$as_dir" && break
+ done
+ test -z "$as_dirs" || eval "mkdir $as_dirs"
+ } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
+
+
+} # as_fn_mkdir_p
+if mkdir -p . 2>/dev/null; then
+ as_mkdir_p='mkdir -p "$as_dir"'
+else
+ test -d ./-p && rmdir ./-p
+ as_mkdir_p=false
+fi
+
+
+# as_fn_executable_p FILE
+# -----------------------
+# Test if FILE is an executable regular file.
+as_fn_executable_p ()
+{
+ test -f "$1" && test -x "$1"
+} # as_fn_executable_p
+as_test_x='test -x'
+as_executable_p=as_fn_executable_p
+
+# Sed expression to map a string onto a valid CPP name.
+as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
+
+# Sed expression to map a string onto a valid variable name.
+as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
+
+
+exec 6>&1
+## ----------------------------------- ##
+## Main body of $CONFIG_STATUS script. ##
+## ----------------------------------- ##
+_ASEOF
+test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+# Save the log message, to keep $0 and so on meaningful, and to
+# report actual input values of CONFIG_FILES etc. instead of their
+# values after options handling.
+ac_log="
+This file was extended by babl $as_me 0.1.18, which was
+generated by GNU Autoconf 2.69. Invocation command line was
+
+ CONFIG_FILES = $CONFIG_FILES
+ CONFIG_HEADERS = $CONFIG_HEADERS
+ CONFIG_LINKS = $CONFIG_LINKS
+ CONFIG_COMMANDS = $CONFIG_COMMANDS
+ $ $0 $@
+
+on `(hostname || uname -n) 2>/dev/null | sed 1q`
+"
+
+_ACEOF
+
+case $ac_config_files in *"
+"*) set x $ac_config_files; shift; ac_config_files=$*;;
+esac
+
+case $ac_config_headers in *"
+"*) set x $ac_config_headers; shift; ac_config_headers=$*;;
+esac
+
+
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+# Files that config.status was made for.
+config_files="$ac_config_files"
+config_headers="$ac_config_headers"
+config_commands="$ac_config_commands"
+
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+ac_cs_usage="\
+\`$as_me' instantiates files and other configuration actions
+from templates according to the current configuration. Unless the files
+and actions are specified as TAGs, all are instantiated by default.
+
+Usage: $0 [OPTION]... [TAG]...
+
+ -h, --help print this help, then exit
+ -V, --version print version number and configuration settings, then exit
+ --config print configuration, then exit
+ -q, --quiet, --silent
+ do not print progress messages
+ -d, --debug don't remove temporary files
+ --recheck update $as_me by reconfiguring in the same conditions
+ --file=FILE[:TEMPLATE]
+ instantiate the configuration file FILE
+ --header=FILE[:TEMPLATE]
+ instantiate the configuration header FILE
+
+Configuration files:
+$config_files
+
+Configuration headers:
+$config_headers
+
+Configuration commands:
+$config_commands
+
+Report bugs to the package provider."
+
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
+ac_cs_version="\\
+babl config.status 0.1.18
+configured by $0, generated by GNU Autoconf 2.69,
+ with options \\"\$ac_cs_config\\"
+
+Copyright (C) 2012 Free Software Foundation, Inc.
+This config.status script is free software; the Free Software Foundation
+gives unlimited permission to copy, distribute and modify it."
+
+ac_pwd='$ac_pwd'
+srcdir='$srcdir'
+INSTALL='$INSTALL'
+MKDIR_P='$MKDIR_P'
+AWK='$AWK'
+test -n "\$AWK" || AWK=awk
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+# The default lists apply if the user does not specify any file.
+ac_need_defaults=:
+while test $# != 0
+do
+ case $1 in
+ --*=?*)
+ ac_option=`expr "X$1" : 'X\([^=]*\)='`
+ ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'`
+ ac_shift=:
+ ;;
+ --*=)
+ ac_option=`expr "X$1" : 'X\([^=]*\)='`
+ ac_optarg=
+ ac_shift=:
+ ;;
+ *)
+ ac_option=$1
+ ac_optarg=$2
+ ac_shift=shift
+ ;;
+ esac
+
+ case $ac_option in
+ # Handling of the options.
+ -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
+ ac_cs_recheck=: ;;
+ --version | --versio | --versi | --vers | --ver | --ve | --v | -V )
+ $as_echo "$ac_cs_version"; exit ;;
+ --config | --confi | --conf | --con | --co | --c )
+ $as_echo "$ac_cs_config"; exit ;;
+ --debug | --debu | --deb | --de | --d | -d )
+ debug=: ;;
+ --file | --fil | --fi | --f )
+ $ac_shift
+ case $ac_optarg in
+ *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
+ '') as_fn_error $? "missing file argument" ;;
+ esac
+ as_fn_append CONFIG_FILES " '$ac_optarg'"
+ ac_need_defaults=false;;
+ --header | --heade | --head | --hea )
+ $ac_shift
+ case $ac_optarg in
+ *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
+ esac
+ as_fn_append CONFIG_HEADERS " '$ac_optarg'"
+ ac_need_defaults=false;;
+ --he | --h)
+ # Conflict between --help and --header
+ as_fn_error $? "ambiguous option: \`$1'
+Try \`$0 --help' for more information.";;
+ --help | --hel | -h )
+ $as_echo "$ac_cs_usage"; exit ;;
+ -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+ | -silent | --silent | --silen | --sile | --sil | --si | --s)
+ ac_cs_silent=: ;;
+
+ # This is an error.
+ -*) as_fn_error $? "unrecognized option: \`$1'
+Try \`$0 --help' for more information." ;;
+
+ *) as_fn_append ac_config_targets " $1"
+ ac_need_defaults=false ;;
+
+ esac
+ shift
+done
+
+ac_configure_extra_args=
+
+if $ac_cs_silent; then
+ exec 6>/dev/null
+ ac_configure_extra_args="$ac_configure_extra_args --silent"
+fi
+
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+if \$ac_cs_recheck; then
+ set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
+ shift
+ \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6
+ CONFIG_SHELL='$SHELL'
+ export CONFIG_SHELL
+ exec "\$@"
+fi
+
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+exec 5>>config.log
+{
+ echo
+ sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
+## Running $as_me. ##
+_ASBOX
+ $as_echo "$ac_log"
+} >&5
+
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+#
+# INIT-COMMANDS
+#
+AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"
+
+
+# The HP-UX ksh and POSIX shell print the target directory to stdout
+# if CDPATH is set.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+sed_quote_subst='$sed_quote_subst'
+double_quote_subst='$double_quote_subst'
+delay_variable_subst='$delay_variable_subst'
+macro_version='`$ECHO "$macro_version" | $SED "$delay_single_quote_subst"`'
+macro_revision='`$ECHO "$macro_revision" | $SED "$delay_single_quote_subst"`'
+enable_static='`$ECHO "$enable_static" | $SED "$delay_single_quote_subst"`'
+AS='`$ECHO "$AS" | $SED "$delay_single_quote_subst"`'
+DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`'
+OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`'
+enable_shared='`$ECHO "$enable_shared" | $SED "$delay_single_quote_subst"`'
+pic_mode='`$ECHO "$pic_mode" | $SED "$delay_single_quote_subst"`'
+enable_fast_install='`$ECHO "$enable_fast_install" | $SED "$delay_single_quote_subst"`'
+shared_archive_member_spec='`$ECHO "$shared_archive_member_spec" | $SED "$delay_single_quote_subst"`'
+SHELL='`$ECHO "$SHELL" | $SED "$delay_single_quote_subst"`'
+ECHO='`$ECHO "$ECHO" | $SED "$delay_single_quote_subst"`'
+PATH_SEPARATOR='`$ECHO "$PATH_SEPARATOR" | $SED "$delay_single_quote_subst"`'
+host_alias='`$ECHO "$host_alias" | $SED "$delay_single_quote_subst"`'
+host='`$ECHO "$host" | $SED "$delay_single_quote_subst"`'
+host_os='`$ECHO "$host_os" | $SED "$delay_single_quote_subst"`'
+build_alias='`$ECHO "$build_alias" | $SED "$delay_single_quote_subst"`'
+build='`$ECHO "$build" | $SED "$delay_single_quote_subst"`'
+build_os='`$ECHO "$build_os" | $SED "$delay_single_quote_subst"`'
+SED='`$ECHO "$SED" | $SED "$delay_single_quote_subst"`'
+Xsed='`$ECHO "$Xsed" | $SED "$delay_single_quote_subst"`'
+GREP='`$ECHO "$GREP" | $SED "$delay_single_quote_subst"`'
+EGREP='`$ECHO "$EGREP" | $SED "$delay_single_quote_subst"`'
+FGREP='`$ECHO "$FGREP" | $SED "$delay_single_quote_subst"`'
+LD='`$ECHO "$LD" | $SED "$delay_single_quote_subst"`'
+NM='`$ECHO "$NM" | $SED "$delay_single_quote_subst"`'
+LN_S='`$ECHO "$LN_S" | $SED "$delay_single_quote_subst"`'
+max_cmd_len='`$ECHO "$max_cmd_len" | $SED "$delay_single_quote_subst"`'
+ac_objext='`$ECHO "$ac_objext" | $SED "$delay_single_quote_subst"`'
+exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`'
+lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`'
+lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`'
+lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`'
+lt_cv_to_host_file_cmd='`$ECHO "$lt_cv_to_host_file_cmd" | $SED "$delay_single_quote_subst"`'
+lt_cv_to_tool_file_cmd='`$ECHO "$lt_cv_to_tool_file_cmd" | $SED "$delay_single_quote_subst"`'
+reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`'
+reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`'
+deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`'
+file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`'
+file_magic_glob='`$ECHO "$file_magic_glob" | $SED "$delay_single_quote_subst"`'
+want_nocaseglob='`$ECHO "$want_nocaseglob" | $SED "$delay_single_quote_subst"`'
+sharedlib_from_linklib_cmd='`$ECHO "$sharedlib_from_linklib_cmd" | $SED "$delay_single_quote_subst"`'
+AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`'
+AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`'
+archiver_list_spec='`$ECHO "$archiver_list_spec" | $SED "$delay_single_quote_subst"`'
+STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`'
+RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`'
+old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`'
+old_postuninstall_cmds='`$ECHO "$old_postuninstall_cmds" | $SED "$delay_single_quote_subst"`'
+old_archive_cmds='`$ECHO "$old_archive_cmds" | $SED "$delay_single_quote_subst"`'
+lock_old_archive_extraction='`$ECHO "$lock_old_archive_extraction" | $SED "$delay_single_quote_subst"`'
+CC='`$ECHO "$CC" | $SED "$delay_single_quote_subst"`'
+CFLAGS='`$ECHO "$CFLAGS" | $SED "$delay_single_quote_subst"`'
+compiler='`$ECHO "$compiler" | $SED "$delay_single_quote_subst"`'
+GCC='`$ECHO "$GCC" | $SED "$delay_single_quote_subst"`'
+lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$delay_single_quote_subst"`'
+lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`'
+lt_cv_sys_global_symbol_to_import='`$ECHO "$lt_cv_sys_global_symbol_to_import" | $SED "$delay_single_quote_subst"`'
+lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`'
+lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`'
+lt_cv_nm_interface='`$ECHO "$lt_cv_nm_interface" | $SED "$delay_single_quote_subst"`'
+nm_file_list_spec='`$ECHO "$nm_file_list_spec" | $SED "$delay_single_quote_subst"`'
+lt_sysroot='`$ECHO "$lt_sysroot" | $SED "$delay_single_quote_subst"`'
+lt_cv_truncate_bin='`$ECHO "$lt_cv_truncate_bin" | $SED "$delay_single_quote_subst"`'
+objdir='`$ECHO "$objdir" | $SED "$delay_single_quote_subst"`'
+MAGIC_CMD='`$ECHO "$MAGIC_CMD" | $SED "$delay_single_quote_subst"`'
+lt_prog_compiler_no_builtin_flag='`$ECHO "$lt_prog_compiler_no_builtin_flag" | $SED "$delay_single_quote_subst"`'
+lt_prog_compiler_pic='`$ECHO "$lt_prog_compiler_pic" | $SED "$delay_single_quote_subst"`'
+lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`'
+lt_prog_compiler_static='`$ECHO "$lt_prog_compiler_static" | $SED "$delay_single_quote_subst"`'
+lt_cv_prog_compiler_c_o='`$ECHO "$lt_cv_prog_compiler_c_o" | $SED "$delay_single_quote_subst"`'
+need_locks='`$ECHO "$need_locks" | $SED "$delay_single_quote_subst"`'
+MANIFEST_TOOL='`$ECHO "$MANIFEST_TOOL" | $SED "$delay_single_quote_subst"`'
+DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`'
+NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`'
+LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`'
+OTOOL='`$ECHO "$OTOOL" | $SED "$delay_single_quote_subst"`'
+OTOOL64='`$ECHO "$OTOOL64" | $SED "$delay_single_quote_subst"`'
+libext='`$ECHO "$libext" | $SED "$delay_single_quote_subst"`'
+shrext_cmds='`$ECHO "$shrext_cmds" | $SED "$delay_single_quote_subst"`'
+extract_expsyms_cmds='`$ECHO "$extract_expsyms_cmds" | $SED "$delay_single_quote_subst"`'
+archive_cmds_need_lc='`$ECHO "$archive_cmds_need_lc" | $SED "$delay_single_quote_subst"`'
+enable_shared_with_static_runtimes='`$ECHO "$enable_shared_with_static_runtimes" | $SED "$delay_single_quote_subst"`'
+export_dynamic_flag_spec='`$ECHO "$export_dynamic_flag_spec" | $SED "$delay_single_quote_subst"`'
+whole_archive_flag_spec='`$ECHO "$whole_archive_flag_spec" | $SED "$delay_single_quote_subst"`'
+compiler_needs_object='`$ECHO "$compiler_needs_object" | $SED "$delay_single_quote_subst"`'
+old_archive_from_new_cmds='`$ECHO "$old_archive_from_new_cmds" | $SED "$delay_single_quote_subst"`'
+old_archive_from_expsyms_cmds='`$ECHO "$old_archive_from_expsyms_cmds" | $SED "$delay_single_quote_subst"`'
+archive_cmds='`$ECHO "$archive_cmds" | $SED "$delay_single_quote_subst"`'
+archive_expsym_cmds='`$ECHO "$archive_expsym_cmds" | $SED "$delay_single_quote_subst"`'
+module_cmds='`$ECHO "$module_cmds" | $SED "$delay_single_quote_subst"`'
+module_expsym_cmds='`$ECHO "$module_expsym_cmds" | $SED "$delay_single_quote_subst"`'
+with_gnu_ld='`$ECHO "$with_gnu_ld" | $SED "$delay_single_quote_subst"`'
+allow_undefined_flag='`$ECHO "$allow_undefined_flag" | $SED "$delay_single_quote_subst"`'
+no_undefined_flag='`$ECHO "$no_undefined_flag" | $SED "$delay_single_quote_subst"`'
+hardcode_libdir_flag_spec='`$ECHO "$hardcode_libdir_flag_spec" | $SED "$delay_single_quote_subst"`'
+hardcode_libdir_separator='`$ECHO "$hardcode_libdir_separator" | $SED "$delay_single_quote_subst"`'
+hardcode_direct='`$ECHO "$hardcode_direct" | $SED "$delay_single_quote_subst"`'
+hardcode_direct_absolute='`$ECHO "$hardcode_direct_absolute" | $SED "$delay_single_quote_subst"`'
+hardcode_minus_L='`$ECHO "$hardcode_minus_L" | $SED "$delay_single_quote_subst"`'
+hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_quote_subst"`'
+hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`'
+inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`'
+link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`'
+always_export_symbols='`$ECHO "$always_export_symbols" | $SED "$delay_single_quote_subst"`'
+export_symbols_cmds='`$ECHO "$export_symbols_cmds" | $SED "$delay_single_quote_subst"`'
+exclude_expsyms='`$ECHO "$exclude_expsyms" | $SED "$delay_single_quote_subst"`'
+include_expsyms='`$ECHO "$include_expsyms" | $SED "$delay_single_quote_subst"`'
+prelink_cmds='`$ECHO "$prelink_cmds" | $SED "$delay_single_quote_subst"`'
+postlink_cmds='`$ECHO "$postlink_cmds" | $SED "$delay_single_quote_subst"`'
+file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`'
+variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`'
+need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`'
+need_version='`$ECHO "$need_version" | $SED "$delay_single_quote_subst"`'
+version_type='`$ECHO "$version_type" | $SED "$delay_single_quote_subst"`'
+runpath_var='`$ECHO "$runpath_var" | $SED "$delay_single_quote_subst"`'
+shlibpath_var='`$ECHO "$shlibpath_var" | $SED "$delay_single_quote_subst"`'
+shlibpath_overrides_runpath='`$ECHO "$shlibpath_overrides_runpath" | $SED "$delay_single_quote_subst"`'
+libname_spec='`$ECHO "$libname_spec" | $SED "$delay_single_quote_subst"`'
+library_names_spec='`$ECHO "$library_names_spec" | $SED "$delay_single_quote_subst"`'
+soname_spec='`$ECHO "$soname_spec" | $SED "$delay_single_quote_subst"`'
+install_override_mode='`$ECHO "$install_override_mode" | $SED "$delay_single_quote_subst"`'
+postinstall_cmds='`$ECHO "$postinstall_cmds" | $SED "$delay_single_quote_subst"`'
+postuninstall_cmds='`$ECHO "$postuninstall_cmds" | $SED "$delay_single_quote_subst"`'
+finish_cmds='`$ECHO "$finish_cmds" | $SED "$delay_single_quote_subst"`'
+finish_eval='`$ECHO "$finish_eval" | $SED "$delay_single_quote_subst"`'
+hardcode_into_libs='`$ECHO "$hardcode_into_libs" | $SED "$delay_single_quote_subst"`'
+sys_lib_search_path_spec='`$ECHO "$sys_lib_search_path_spec" | $SED "$delay_single_quote_subst"`'
+configure_time_dlsearch_path='`$ECHO "$configure_time_dlsearch_path" | $SED "$delay_single_quote_subst"`'
+configure_time_lt_sys_library_path='`$ECHO "$configure_time_lt_sys_library_path" | $SED "$delay_single_quote_subst"`'
+hardcode_action='`$ECHO "$hardcode_action" | $SED "$delay_single_quote_subst"`'
+enable_dlopen='`$ECHO "$enable_dlopen" | $SED "$delay_single_quote_subst"`'
+enable_dlopen_self='`$ECHO "$enable_dlopen_self" | $SED "$delay_single_quote_subst"`'
+enable_dlopen_self_static='`$ECHO "$enable_dlopen_self_static" | $SED "$delay_single_quote_subst"`'
+old_striplib='`$ECHO "$old_striplib" | $SED "$delay_single_quote_subst"`'
+striplib='`$ECHO "$striplib" | $SED "$delay_single_quote_subst"`'
+
+LTCC='$LTCC'
+LTCFLAGS='$LTCFLAGS'
+compiler='$compiler_DEFAULT'
+
+# A function that is used when there is no print builtin or printf.
+func_fallback_echo ()
+{
+ eval 'cat <<_LTECHO_EOF
+\$1
+_LTECHO_EOF'
+}
+
+# Quote evaled strings.
+for var in AS \
+DLLTOOL \
+OBJDUMP \
+SHELL \
+ECHO \
+PATH_SEPARATOR \
+SED \
+GREP \
+EGREP \
+FGREP \
+LD \
+NM \
+LN_S \
+lt_SP2NL \
+lt_NL2SP \
+reload_flag \
+deplibs_check_method \
+file_magic_cmd \
+file_magic_glob \
+want_nocaseglob \
+sharedlib_from_linklib_cmd \
+AR \
+AR_FLAGS \
+archiver_list_spec \
+STRIP \
+RANLIB \
+CC \
+CFLAGS \
+compiler \
+lt_cv_sys_global_symbol_pipe \
+lt_cv_sys_global_symbol_to_cdecl \
+lt_cv_sys_global_symbol_to_import \
+lt_cv_sys_global_symbol_to_c_name_address \
+lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \
+lt_cv_nm_interface \
+nm_file_list_spec \
+lt_cv_truncate_bin \
+lt_prog_compiler_no_builtin_flag \
+lt_prog_compiler_pic \
+lt_prog_compiler_wl \
+lt_prog_compiler_static \
+lt_cv_prog_compiler_c_o \
+need_locks \
+MANIFEST_TOOL \
+DSYMUTIL \
+NMEDIT \
+LIPO \
+OTOOL \
+OTOOL64 \
+shrext_cmds \
+export_dynamic_flag_spec \
+whole_archive_flag_spec \
+compiler_needs_object \
+with_gnu_ld \
+allow_undefined_flag \
+no_undefined_flag \
+hardcode_libdir_flag_spec \
+hardcode_libdir_separator \
+exclude_expsyms \
+include_expsyms \
+file_list_spec \
+variables_saved_for_relink \
+libname_spec \
+library_names_spec \
+soname_spec \
+install_override_mode \
+finish_eval \
+old_striplib \
+striplib; do
+ case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
+ *[\\\\\\\`\\"\\\$]*)
+ eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes
+ ;;
+ *)
+ eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
+ ;;
+ esac
+done
+
+# Double-quote double-evaled strings.
+for var in reload_cmds \
+old_postinstall_cmds \
+old_postuninstall_cmds \
+old_archive_cmds \
+extract_expsyms_cmds \
+old_archive_from_new_cmds \
+old_archive_from_expsyms_cmds \
+archive_cmds \
+archive_expsym_cmds \
+module_cmds \
+module_expsym_cmds \
+export_symbols_cmds \
+prelink_cmds \
+postlink_cmds \
+postinstall_cmds \
+postuninstall_cmds \
+finish_cmds \
+sys_lib_search_path_spec \
+configure_time_dlsearch_path \
+configure_time_lt_sys_library_path; do
+ case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
+ *[\\\\\\\`\\"\\\$]*)
+ eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes
+ ;;
+ *)
+ eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
+ ;;
+ esac
+done
+
+ac_aux_dir='$ac_aux_dir'
+
+# See if we are running on zsh, and set the options that allow our
+# commands through without removal of \ escapes INIT.
+if test -n "\${ZSH_VERSION+set}"; then
+ setopt NO_GLOB_SUBST
+fi
+
+
+ PACKAGE='$PACKAGE'
+ VERSION='$VERSION'
+ RM='$RM'
+ ofile='$ofile'
+
+
+
+
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+
+# Handling of arguments.
+for ac_config_target in $ac_config_targets
+do
+ case $ac_config_target in
+ "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;;
+ "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;;
+ "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;;
+ "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
+ "babl.pc") CONFIG_FILES="$CONFIG_FILES babl.pc" ;;
+ "babl/Makefile") CONFIG_FILES="$CONFIG_FILES babl/Makefile" ;;
+ "babl/babl-version.h") CONFIG_FILES="$CONFIG_FILES babl/babl-version.h" ;;
+ "babl/base/Makefile") CONFIG_FILES="$CONFIG_FILES babl/base/Makefile" ;;
+ "docs/Makefile") CONFIG_FILES="$CONFIG_FILES docs/Makefile" ;;
+ "docs/index-static.html") CONFIG_FILES="$CONFIG_FILES docs/index-static.html" ;;
+ "docs/graphics/Makefile") CONFIG_FILES="$CONFIG_FILES docs/graphics/Makefile" ;;
+ "tests/Makefile") CONFIG_FILES="$CONFIG_FILES tests/Makefile" ;;
+ "tools/Makefile") CONFIG_FILES="$CONFIG_FILES tools/Makefile" ;;
+ "extensions/Makefile") CONFIG_FILES="$CONFIG_FILES extensions/Makefile" ;;
+ "INSTALL") CONFIG_FILES="$CONFIG_FILES INSTALL" ;;
+
+ *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
+ esac
+done
+
+
+# If the user did not use the arguments to specify the items to instantiate,
+# then the envvar interface is used. Set only those that are not.
+# We use the long form for the default assignment because of an extremely
+# bizarre bug on SunOS 4.1.3.
+if $ac_need_defaults; then
+ test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
+ test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers
+ test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands
+fi
+
+# Have a temporary directory for convenience. Make it in the build tree
+# simply because there is no reason against having it here, and in addition,
+# creating and moving files from /tmp can sometimes cause problems.
+# Hook for its removal unless debugging.
+# Note that there is a small window in which the directory will not be cleaned:
+# after its creation but before its name has been assigned to `$tmp'.
+$debug ||
+{
+ tmp= ac_tmp=
+ trap 'exit_status=$?
+ : "${ac_tmp:=$tmp}"
+ { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status
+' 0
+ trap 'as_fn_exit 1' 1 2 13 15
+}
+# Create a (secure) tmp directory for tmp files.
+
+{
+ tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` &&
+ test -d "$tmp"
+} ||
+{
+ tmp=./conf$$-$RANDOM
+ (umask 077 && mkdir "$tmp")
+} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5
+ac_tmp=$tmp
+
+# Set up the scripts for CONFIG_FILES section.
+# No need to generate them if there are no CONFIG_FILES.
+# This happens for instance with `./config.status config.h'.
+if test -n "$CONFIG_FILES"; then
+
+
+ac_cr=`echo X | tr X '\015'`
+# On cygwin, bash can eat \r inside `` if the user requested igncr.
+# But we know of no other shell where ac_cr would be empty at this
+# point, so we can use a bashism as a fallback.
+if test "x$ac_cr" = x; then
+ eval ac_cr=\$\'\\r\'
+fi
+ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' </dev/null 2>/dev/null`
+if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then
+ ac_cs_awk_cr='\\r'
+else
+ ac_cs_awk_cr=$ac_cr
+fi
+
+echo 'BEGIN {' >"$ac_tmp/subs1.awk" &&
+_ACEOF
+
+
+{
+ echo "cat >conf$$subs.awk <<_ACEOF" &&
+ echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' &&
+ echo "_ACEOF"
+} >conf$$subs.sh ||
+ as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
+ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'`
+ac_delim='%!_!# '
+for ac_last_try in false false false false false :; do
+ . ./conf$$subs.sh ||
+ as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
+
+ ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X`
+ if test $ac_delim_n = $ac_delim_num; then
+ break
+ elif $ac_last_try; then
+ as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
+ else
+ ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
+ fi
+done
+rm -f conf$$subs.sh
+
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK &&
+_ACEOF
+sed -n '
+h
+s/^/S["/; s/!.*/"]=/
+p
+g
+s/^[^!]*!//
+:repl
+t repl
+s/'"$ac_delim"'$//
+t delim
+:nl
+h
+s/\(.\{148\}\)..*/\1/
+t more1
+s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/
+p
+n
+b repl
+:more1
+s/["\\]/\\&/g; s/^/"/; s/$/"\\/
+p
+g
+s/.\{148\}//
+t nl
+:delim
+h
+s/\(.\{148\}\)..*/\1/
+t more2
+s/["\\]/\\&/g; s/^/"/; s/$/"/
+p
+b
+:more2
+s/["\\]/\\&/g; s/^/"/; s/$/"\\/
+p
+g
+s/.\{148\}//
+t delim
+' <conf$$subs.awk | sed '
+/^[^""]/{
+ N
+ s/\n//
+}
+' >>$CONFIG_STATUS || ac_write_fail=1
+rm -f conf$$subs.awk
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+_ACAWK
+cat >>"\$ac_tmp/subs1.awk" <<_ACAWK &&
+ for (key in S) S_is_set[key] = 1
+ FS = "\a"
+
+}
+{
+ line = $ 0
+ nfields = split(line, field, "@")
+ substed = 0
+ len = length(field[1])
+ for (i = 2; i < nfields; i++) {
+ key = field[i]
+ keylen = length(key)
+ if (S_is_set[key]) {
+ value = S[key]
+ line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3)
+ len += length(value) + length(field[++i])
+ substed = 1
+ } else
+ len += 1 + keylen
+ }
+
+ print line
+}
+
+_ACAWK
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then
+ sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g"
+else
+ cat
+fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \
+ || as_fn_error $? "could not setup config files machinery" "$LINENO" 5
+_ACEOF
+
+# VPATH may cause trouble with some makes, so we remove sole $(srcdir),
+# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and
+# trailing colons and then remove the whole line if VPATH becomes empty
+# (actually we leave an empty line to preserve line numbers).
+if test "x$srcdir" = x.; then
+ ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{
+h
+s///
+s/^/:/
+s/[ ]*$/:/
+s/:\$(srcdir):/:/g
+s/:\${srcdir}:/:/g
+s/:@srcdir@:/:/g
+s/^:*//
+s/:*$//
+x
+s/\(=[ ]*\).*/\1/
+G
+s/\n//
+s/^[^=]*=[ ]*$//
+}'
+fi
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+fi # test -n "$CONFIG_FILES"
+
+# Set up the scripts for CONFIG_HEADERS section.
+# No need to generate them if there are no CONFIG_HEADERS.
+# This happens for instance with `./config.status Makefile'.
+if test -n "$CONFIG_HEADERS"; then
+cat >"$ac_tmp/defines.awk" <<\_ACAWK ||
+BEGIN {
+_ACEOF
+
+# Transform confdefs.h into an awk script `defines.awk', embedded as
+# here-document in config.status, that substitutes the proper values into
+# config.h.in to produce config.h.
+
+# Create a delimiter string that does not exist in confdefs.h, to ease
+# handling of long lines.
+ac_delim='%!_!# '
+for ac_last_try in false false :; do
+ ac_tt=`sed -n "/$ac_delim/p" confdefs.h`
+ if test -z "$ac_tt"; then
+ break
+ elif $ac_last_try; then
+ as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5
+ else
+ ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
+ fi
+done
+
+# For the awk script, D is an array of macro values keyed by name,
+# likewise P contains macro parameters if any. Preserve backslash
+# newline sequences.
+
+ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]*
+sed -n '
+s/.\{148\}/&'"$ac_delim"'/g
+t rset
+:rset
+s/^[ ]*#[ ]*define[ ][ ]*/ /
+t def
+d
+:def
+s/\\$//
+t bsnl
+s/["\\]/\\&/g
+s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\
+D["\1"]=" \3"/p
+s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p
+d
+:bsnl
+s/["\\]/\\&/g
+s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\
+D["\1"]=" \3\\\\\\n"\\/p
+t cont
+s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p
+t cont
+d
+:cont
+n
+s/.\{148\}/&'"$ac_delim"'/g
+t clear
+:clear
+s/\\$//
+t bsnlc
+s/["\\]/\\&/g; s/^/"/; s/$/"/p
+d
+:bsnlc
+s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p
+b cont
+' <confdefs.h | sed '
+s/'"$ac_delim"'/"\\\
+"/g' >>$CONFIG_STATUS || ac_write_fail=1
+
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ for (key in D) D_is_set[key] = 1
+ FS = "\a"
+}
+/^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ {
+ line = \$ 0
+ split(line, arg, " ")
+ if (arg[1] == "#") {
+ defundef = arg[2]
+ mac1 = arg[3]
+ } else {
+ defundef = substr(arg[1], 2)
+ mac1 = arg[2]
+ }
+ split(mac1, mac2, "(") #)
+ macro = mac2[1]
+ prefix = substr(line, 1, index(line, defundef) - 1)
+ if (D_is_set[macro]) {
+ # Preserve the white space surrounding the "#".
+ print prefix "define", macro P[macro] D[macro]
+ next
+ } else {
+ # Replace #undef with comments. This is necessary, for example,
+ # in the case of _POSIX_SOURCE, which is predefined and required
+ # on some systems where configure will not decide to define it.
+ if (defundef == "undef") {
+ print "/*", prefix defundef, macro, "*/"
+ next
+ }
+ }
+}
+{ print }
+_ACAWK
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+ as_fn_error $? "could not setup config headers machinery" "$LINENO" 5
+fi # test -n "$CONFIG_HEADERS"
+
+
+eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS"
+shift
+for ac_tag
+do
+ case $ac_tag in
+ :[FHLC]) ac_mode=$ac_tag; continue;;
+ esac
+ case $ac_mode$ac_tag in
+ :[FHL]*:*);;
+ :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;;
+ :[FH]-) ac_tag=-:-;;
+ :[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
+ esac
+ ac_save_IFS=$IFS
+ IFS=:
+ set x $ac_tag
+ IFS=$ac_save_IFS
+ shift
+ ac_file=$1
+ shift
+
+ case $ac_mode in
+ :L) ac_source=$1;;
+ :[FH])
+ ac_file_inputs=
+ for ac_f
+ do
+ case $ac_f in
+ -) ac_f="$ac_tmp/stdin";;
+ *) # Look for the file first in the build tree, then in the source tree
+ # (if the path is not absolute). The absolute path cannot be DOS-style,
+ # because $ac_f cannot contain `:'.
+ test -f "$ac_f" ||
+ case $ac_f in
+ [\\/$]*) false;;
+ *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;
+ esac ||
+ as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;;
+ esac
+ case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
+ as_fn_append ac_file_inputs " '$ac_f'"
+ done
+
+ # Let's still pretend it is `configure' which instantiates (i.e., don't
+ # use $as_me), people would be surprised to read:
+ # /* config.h. Generated by config.status. */
+ configure_input='Generated from '`
+ $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g'
+ `' by configure.'
+ if test x"$ac_file" != x-; then
+ configure_input="$ac_file. $configure_input"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5
+$as_echo "$as_me: creating $ac_file" >&6;}
+ fi
+ # Neutralize special characters interpreted by sed in replacement strings.
+ case $configure_input in #(
+ *\&* | *\|* | *\\* )
+ ac_sed_conf_input=`$as_echo "$configure_input" |
+ sed 's/[\\\\&|]/\\\\&/g'`;; #(
+ *) ac_sed_conf_input=$configure_input;;
+ esac
+
+ case $ac_tag in
+ *:-:* | *:-) cat >"$ac_tmp/stdin" \
+ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;;
+ esac
+ ;;
+ esac
+
+ ac_dir=`$as_dirname -- "$ac_file" ||
+$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$ac_file" : 'X\(//\)[^/]' \| \
+ X"$ac_file" : 'X\(//\)$' \| \
+ X"$ac_file" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$ac_file" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ as_dir="$ac_dir"; as_fn_mkdir_p
+ ac_builddir=.
+
+case "$ac_dir" in
+.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
+*)
+ ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
+ # A ".." for each directory in $ac_dir_suffix.
+ ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
+ case $ac_top_builddir_sub in
+ "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
+ *) ac_top_build_prefix=$ac_top_builddir_sub/ ;;
+ esac ;;
+esac
+ac_abs_top_builddir=$ac_pwd
+ac_abs_builddir=$ac_pwd$ac_dir_suffix
+# for backward compatibility:
+ac_top_builddir=$ac_top_build_prefix
+
+case $srcdir in
+ .) # We are building in place.
+ ac_srcdir=.
+ ac_top_srcdir=$ac_top_builddir_sub
+ ac_abs_top_srcdir=$ac_pwd ;;
+ [\\/]* | ?:[\\/]* ) # Absolute name.
+ ac_srcdir=$srcdir$ac_dir_suffix;
+ ac_top_srcdir=$srcdir
+ ac_abs_top_srcdir=$srcdir ;;
+ *) # Relative name.
+ ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
+ ac_top_srcdir=$ac_top_build_prefix$srcdir
+ ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
+esac
+ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
+
+
+ case $ac_mode in
+ :F)
+ #
+ # CONFIG_FILE
+ #
+
+ case $INSTALL in
+ [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;
+ *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;;
+ esac
+ ac_MKDIR_P=$MKDIR_P
+ case $MKDIR_P in
+ [\\/$]* | ?:[\\/]* ) ;;
+ */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;;
+ esac
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+# If the template does not know about datarootdir, expand it.
+# FIXME: This hack should be removed a few years after 2.60.
+ac_datarootdir_hack=; ac_datarootdir_seen=
+ac_sed_dataroot='
+/datarootdir/ {
+ p
+ q
+}
+/@datadir@/p
+/@docdir@/p
+/@infodir@/p
+/@localedir@/p
+/@mandir@/p'
+case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in
+*datarootdir*) ac_datarootdir_seen=yes;;
+*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5
+$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;}
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ ac_datarootdir_hack='
+ s&@datadir@&$datadir&g
+ s&@docdir@&$docdir&g
+ s&@infodir@&$infodir&g
+ s&@localedir@&$localedir&g
+ s&@mandir@&$mandir&g
+ s&\\\${datarootdir}&$datarootdir&g' ;;
+esac
+_ACEOF
+
+# Neutralize VPATH when `$srcdir' = `.'.
+# Shell code in configure.ac might set extrasub.
+# FIXME: do we really want to maintain this feature?
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ac_sed_extra="$ac_vpsub
+$extrasub
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+:t
+/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
+s|@configure_input@|$ac_sed_conf_input|;t t
+s&@top_builddir@&$ac_top_builddir_sub&;t t
+s&@top_build_prefix@&$ac_top_build_prefix&;t t
+s&@srcdir@&$ac_srcdir&;t t
+s&@abs_srcdir@&$ac_abs_srcdir&;t t
+s&@top_srcdir@&$ac_top_srcdir&;t t
+s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t
+s&@builddir@&$ac_builddir&;t t
+s&@abs_builddir@&$ac_abs_builddir&;t t
+s&@abs_top_builddir@&$ac_abs_top_builddir&;t t
+s&@INSTALL@&$ac_INSTALL&;t t
+s&@MKDIR_P@&$ac_MKDIR_P&;t t
+$ac_datarootdir_hack
+"
+eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \
+ >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5
+
+test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
+ { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } &&
+ { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \
+ "$ac_tmp/out"`; test -z "$ac_out"; } &&
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir'
+which seems to be undefined. Please make sure it is defined" >&5
+$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
+which seems to be undefined. Please make sure it is defined" >&2;}
+
+ rm -f "$ac_tmp/stdin"
+ case $ac_file in
+ -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";;
+ *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";;
+ esac \
+ || as_fn_error $? "could not create $ac_file" "$LINENO" 5
+ ;;
+ :H)
+ #
+ # CONFIG_HEADER
+ #
+ if test x"$ac_file" != x-; then
+ {
+ $as_echo "/* $configure_input */" \
+ && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs"
+ } >"$ac_tmp/config.h" \
+ || as_fn_error $? "could not create $ac_file" "$LINENO" 5
+ if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5
+$as_echo "$as_me: $ac_file is unchanged" >&6;}
+ else
+ rm -f "$ac_file"
+ mv "$ac_tmp/config.h" "$ac_file" \
+ || as_fn_error $? "could not create $ac_file" "$LINENO" 5
+ fi
+ else
+ $as_echo "/* $configure_input */" \
+ && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \
+ || as_fn_error $? "could not create -" "$LINENO" 5
+ fi
+# Compute "$ac_file"'s index in $config_headers.
+_am_arg="$ac_file"
+_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" ||
+$as_expr X"$_am_arg" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$_am_arg" : 'X\(//\)[^/]' \| \
+ X"$_am_arg" : 'X\(//\)$' \| \
+ X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$_am_arg" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`/stamp-h$_am_stamp_count
+ ;;
+
+ :C) { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5
+$as_echo "$as_me: executing $ac_file commands" >&6;}
+ ;;
+ esac
+
+
+ case $ac_file$ac_mode in
+ "depfiles":C) test x"$AMDEP_TRUE" != x"" || {
+ # 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" ||
+$as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$mf" : 'X\(//\)[^/]' \| \
+ X"$mf" : 'X\(//\)$' \| \
+ X"$mf" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$mf" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ 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_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$file" : 'X\(//\)[^/]' \| \
+ X"$file" : 'X\(//\)$' \| \
+ X"$file" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$file" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ as_dir=$dirpart/$fdir; as_fn_mkdir_p
+ # echo "creating $dirpart/$file"
+ echo '# dummy' > "$dirpart/$file"
+ done
+ done
+}
+ ;;
+ "libtool":C)
+
+ # See if we are running on zsh, and set the options that allow our
+ # commands through without removal of \ escapes.
+ if test -n "${ZSH_VERSION+set}"; then
+ setopt NO_GLOB_SUBST
+ fi
+
+ cfgfile=${ofile}T
+ trap "$RM \"$cfgfile\"; exit 1" 1 2 15
+ $RM "$cfgfile"
+
+ cat <<_LT_EOF >> "$cfgfile"
+#! $SHELL
+# Generated automatically by $as_me ($PACKAGE) $VERSION
+# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
+# NOTE: Changes made to this file will be lost: look at ltmain.sh.
+
+# Provide generalized library-building support services.
+# Written by Gordon Matzigkeit, 1996
+
+# Copyright (C) 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.
+
+# GNU Libtool is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of of the License, or
+# (at your option) any later version.
+#
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program or library that is built
+# using GNU Libtool, you may include this file under the same
+# distribution terms that you use for the rest of that program.
+#
+# GNU Libtool is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+
+# The names of the tagged configurations supported by this script.
+available_tags=''
+
+# Configured defaults for sys_lib_dlsearch_path munging.
+: \${LT_SYS_LIBRARY_PATH="$configure_time_lt_sys_library_path"}
+
+# ### BEGIN LIBTOOL CONFIG
+
+# Which release of libtool.m4 was used?
+macro_version=$macro_version
+macro_revision=$macro_revision
+
+# Whether or not to build static libraries.
+build_old_libs=$enable_static
+
+# Assembler program.
+AS=$lt_AS
+
+# DLL creation program.
+DLLTOOL=$lt_DLLTOOL
+
+# Object dumper program.
+OBJDUMP=$lt_OBJDUMP
+
+# Whether or not to build shared libraries.
+build_libtool_libs=$enable_shared
+
+# What type of objects to build.
+pic_mode=$pic_mode
+
+# Whether or not to optimize for fast installation.
+fast_install=$enable_fast_install
+
+# Shared archive member basename,for filename based shared library versioning on AIX.
+shared_archive_member_spec=$shared_archive_member_spec
+
+# Shell to use when invoking shell scripts.
+SHELL=$lt_SHELL
+
+# An echo program that protects backslashes.
+ECHO=$lt_ECHO
+
+# The PATH separator for the build system.
+PATH_SEPARATOR=$lt_PATH_SEPARATOR
+
+# The host system.
+host_alias=$host_alias
+host=$host
+host_os=$host_os
+
+# The build system.
+build_alias=$build_alias
+build=$build
+build_os=$build_os
+
+# A sed program that does not truncate output.
+SED=$lt_SED
+
+# Sed that helps us avoid accidentally triggering echo(1) options like -n.
+Xsed="\$SED -e 1s/^X//"
+
+# A grep program that handles long lines.
+GREP=$lt_GREP
+
+# An ERE matcher.
+EGREP=$lt_EGREP
+
+# A literal string matcher.
+FGREP=$lt_FGREP
+
+# A BSD- or MS-compatible name lister.
+NM=$lt_NM
+
+# Whether we need soft or hard links.
+LN_S=$lt_LN_S
+
+# What is the maximum length of a command?
+max_cmd_len=$max_cmd_len
+
+# Object file suffix (normally "o").
+objext=$ac_objext
+
+# Executable file suffix (normally "").
+exeext=$exeext
+
+# whether the shell understands "unset".
+lt_unset=$lt_unset
+
+# turn spaces into newlines.
+SP2NL=$lt_lt_SP2NL
+
+# turn newlines into spaces.
+NL2SP=$lt_lt_NL2SP
+
+# convert \$build file names to \$host format.
+to_host_file_cmd=$lt_cv_to_host_file_cmd
+
+# convert \$build files to toolchain format.
+to_tool_file_cmd=$lt_cv_to_tool_file_cmd
+
+# Method to check whether dependent libraries are shared objects.
+deplibs_check_method=$lt_deplibs_check_method
+
+# Command to use when deplibs_check_method = "file_magic".
+file_magic_cmd=$lt_file_magic_cmd
+
+# How to find potential files when deplibs_check_method = "file_magic".
+file_magic_glob=$lt_file_magic_glob
+
+# Find potential files using nocaseglob when deplibs_check_method = "file_magic".
+want_nocaseglob=$lt_want_nocaseglob
+
+# Command to associate shared and link libraries.
+sharedlib_from_linklib_cmd=$lt_sharedlib_from_linklib_cmd
+
+# The archiver.
+AR=$lt_AR
+
+# Flags to create an archive.
+AR_FLAGS=$lt_AR_FLAGS
+
+# How to feed a file listing to the archiver.
+archiver_list_spec=$lt_archiver_list_spec
+
+# A symbol stripping program.
+STRIP=$lt_STRIP
+
+# Commands used to install an old-style archive.
+RANLIB=$lt_RANLIB
+old_postinstall_cmds=$lt_old_postinstall_cmds
+old_postuninstall_cmds=$lt_old_postuninstall_cmds
+
+# Whether to use a lock for old archive extraction.
+lock_old_archive_extraction=$lock_old_archive_extraction
+
+# A C compiler.
+LTCC=$lt_CC
+
+# LTCC compiler flags.
+LTCFLAGS=$lt_CFLAGS
+
+# Take the output of nm and produce a listing of raw symbols and C names.
+global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe
+
+# Transform the output of nm in a proper C declaration.
+global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl
+
+# Transform the output of nm into a list of symbols to manually relocate.
+global_symbol_to_import=$lt_lt_cv_sys_global_symbol_to_import
+
+# Transform the output of nm in a C name address pair.
+global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
+
+# Transform the output of nm in a C name address pair when lib prefix is needed.
+global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix
+
+# The name lister interface.
+nm_interface=$lt_lt_cv_nm_interface
+
+# Specify filename containing input files for \$NM.
+nm_file_list_spec=$lt_nm_file_list_spec
+
+# The root where to search for dependent libraries,and where our libraries should be installed.
+lt_sysroot=$lt_sysroot
+
+# Command to truncate a binary pipe.
+lt_truncate_bin=$lt_lt_cv_truncate_bin
+
+# The name of the directory that contains temporary libtool files.
+objdir=$objdir
+
+# Used to examine libraries when file_magic_cmd begins with "file".
+MAGIC_CMD=$MAGIC_CMD
+
+# Must we lock files when doing compilation?
+need_locks=$lt_need_locks
+
+# Manifest tool.
+MANIFEST_TOOL=$lt_MANIFEST_TOOL
+
+# Tool to manipulate archived DWARF debug symbol files on Mac OS X.
+DSYMUTIL=$lt_DSYMUTIL
+
+# Tool to change global to local symbols on Mac OS X.
+NMEDIT=$lt_NMEDIT
+
+# Tool to manipulate fat objects and archives on Mac OS X.
+LIPO=$lt_LIPO
+
+# ldd/readelf like tool for Mach-O binaries on Mac OS X.
+OTOOL=$lt_OTOOL
+
+# ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4.
+OTOOL64=$lt_OTOOL64
+
+# Old archive suffix (normally "a").
+libext=$libext
+
+# Shared library suffix (normally ".so").
+shrext_cmds=$lt_shrext_cmds
+
+# The commands to extract the exported symbol list from a shared archive.
+extract_expsyms_cmds=$lt_extract_expsyms_cmds
+
+# Variables whose values should be saved in libtool wrapper scripts and
+# restored at link time.
+variables_saved_for_relink=$lt_variables_saved_for_relink
+
+# Do we need the "lib" prefix for modules?
+need_lib_prefix=$need_lib_prefix
+
+# Do we need a version for libraries?
+need_version=$need_version
+
+# Library versioning type.
+version_type=$version_type
+
+# Shared library runtime path variable.
+runpath_var=$runpath_var
+
+# Shared library path variable.
+shlibpath_var=$shlibpath_var
+
+# Is shlibpath searched before the hard-coded library search path?
+shlibpath_overrides_runpath=$shlibpath_overrides_runpath
+
+# Format of library name prefix.
+libname_spec=$lt_libname_spec
+
+# List of archive names. First name is the real one, the rest are links.
+# The last name is the one that the linker finds with -lNAME
+library_names_spec=$lt_library_names_spec
+
+# The coded name of the library, if different from the real name.
+soname_spec=$lt_soname_spec
+
+# Permission mode override for installation of shared libraries.
+install_override_mode=$lt_install_override_mode
+
+# Command to use after installation of a shared archive.
+postinstall_cmds=$lt_postinstall_cmds
+
+# Command to use after uninstallation of a shared archive.
+postuninstall_cmds=$lt_postuninstall_cmds
+
+# Commands used to finish a libtool library installation in a directory.
+finish_cmds=$lt_finish_cmds
+
+# As "finish_cmds", except a single script fragment to be evaled but
+# not shown.
+finish_eval=$lt_finish_eval
+
+# Whether we should hardcode library paths into libraries.
+hardcode_into_libs=$hardcode_into_libs
+
+# Compile-time system search path for libraries.
+sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
+
+# Detected run-time system search path for libraries.
+sys_lib_dlsearch_path_spec=$lt_configure_time_dlsearch_path
+
+# Explicit LT_SYS_LIBRARY_PATH set during ./configure time.
+configure_time_lt_sys_library_path=$lt_configure_time_lt_sys_library_path
+
+# Whether dlopen is supported.
+dlopen_support=$enable_dlopen
+
+# Whether dlopen of programs is supported.
+dlopen_self=$enable_dlopen_self
+
+# Whether dlopen of statically linked programs is supported.
+dlopen_self_static=$enable_dlopen_self_static
+
+# Commands to strip libraries.
+old_striplib=$lt_old_striplib
+striplib=$lt_striplib
+
+
+# The linker used to build libraries.
+LD=$lt_LD
+
+# How to create reloadable object files.
+reload_flag=$lt_reload_flag
+reload_cmds=$lt_reload_cmds
+
+# Commands used to build an old-style archive.
+old_archive_cmds=$lt_old_archive_cmds
+
+# A language specific compiler.
+CC=$lt_compiler
+
+# Is the compiler the GNU compiler?
+with_gcc=$GCC
+
+# Compiler flag to turn off builtin functions.
+no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag
+
+# Additional compiler flags for building library objects.
+pic_flag=$lt_lt_prog_compiler_pic
+
+# How to pass a linker flag through the compiler.
+wl=$lt_lt_prog_compiler_wl
+
+# Compiler flag to prevent dynamic linking.
+link_static_flag=$lt_lt_prog_compiler_static
+
+# Does compiler simultaneously support -c and -o options?
+compiler_c_o=$lt_lt_cv_prog_compiler_c_o
+
+# Whether or not to add -lc for building shared libraries.
+build_libtool_need_lc=$archive_cmds_need_lc
+
+# Whether or not to disallow shared libs when runtime libs are static.
+allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes
+
+# Compiler flag to allow reflexive dlopens.
+export_dynamic_flag_spec=$lt_export_dynamic_flag_spec
+
+# Compiler flag to generate shared objects directly from archives.
+whole_archive_flag_spec=$lt_whole_archive_flag_spec
+
+# Whether the compiler copes with passing no objects directly.
+compiler_needs_object=$lt_compiler_needs_object
+
+# Create an old-style archive from a shared archive.
+old_archive_from_new_cmds=$lt_old_archive_from_new_cmds
+
+# Create a temporary old-style archive to link instead of a shared archive.
+old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds
+
+# Commands used to build a shared archive.
+archive_cmds=$lt_archive_cmds
+archive_expsym_cmds=$lt_archive_expsym_cmds
+
+# Commands used to build a loadable module if different from building
+# a shared archive.
+module_cmds=$lt_module_cmds
+module_expsym_cmds=$lt_module_expsym_cmds
+
+# Whether we are building with GNU ld or not.
+with_gnu_ld=$lt_with_gnu_ld
+
+# Flag that allows shared libraries with undefined symbols to be built.
+allow_undefined_flag=$lt_allow_undefined_flag
+
+# Flag that enforces no undefined symbols.
+no_undefined_flag=$lt_no_undefined_flag
+
+# Flag to hardcode \$libdir into a binary during linking.
+# This must work even if \$libdir does not exist
+hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec
+
+# Whether we need a single "-rpath" flag with a separated argument.
+hardcode_libdir_separator=$lt_hardcode_libdir_separator
+
+# Set to "yes" if using DIR/libNAME\$shared_ext during linking hardcodes
+# DIR into the resulting binary.
+hardcode_direct=$hardcode_direct
+
+# Set to "yes" if using DIR/libNAME\$shared_ext during linking hardcodes
+# DIR into the resulting binary and the resulting library dependency is
+# "absolute",i.e impossible to change by setting \$shlibpath_var if the
+# library is relocated.
+hardcode_direct_absolute=$hardcode_direct_absolute
+
+# Set to "yes" if using the -LDIR flag during linking hardcodes DIR
+# into the resulting binary.
+hardcode_minus_L=$hardcode_minus_L
+
+# Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR
+# into the resulting binary.
+hardcode_shlibpath_var=$hardcode_shlibpath_var
+
+# Set to "yes" if building a shared library automatically hardcodes DIR
+# into the library and all subsequent libraries and executables linked
+# against it.
+hardcode_automatic=$hardcode_automatic
+
+# Set to yes if linker adds runtime paths of dependent libraries
+# to runtime path list.
+inherit_rpath=$inherit_rpath
+
+# Whether libtool must link a program against all its dependency libraries.
+link_all_deplibs=$link_all_deplibs
+
+# Set to "yes" if exported symbols are required.
+always_export_symbols=$always_export_symbols
+
+# The commands to list exported symbols.
+export_symbols_cmds=$lt_export_symbols_cmds
+
+# Symbols that should not be listed in the preloaded symbols.
+exclude_expsyms=$lt_exclude_expsyms
+
+# Symbols that must always be exported.
+include_expsyms=$lt_include_expsyms
+
+# Commands necessary for linking programs (against libraries) with templates.
+prelink_cmds=$lt_prelink_cmds
+
+# Commands necessary for finishing linking programs.
+postlink_cmds=$lt_postlink_cmds
+
+# Specify filename containing input files.
+file_list_spec=$lt_file_list_spec
+
+# How to hardcode a shared library path into an executable.
+hardcode_action=$hardcode_action
+
+# ### END LIBTOOL CONFIG
+
+_LT_EOF
+
+ cat <<'_LT_EOF' >> "$cfgfile"
+
+# ### BEGIN FUNCTIONS SHARED WITH CONFIGURE
+
+# func_munge_path_list VARIABLE PATH
+# -----------------------------------
+# VARIABLE is name of variable containing _space_ separated list of
+# directories to be munged by the contents of PATH, which is string
+# having a format:
+# "DIR[:DIR]:"
+# string "DIR[ DIR]" will be prepended to VARIABLE
+# ":DIR[:DIR]"
+# string "DIR[ DIR]" will be appended to VARIABLE
+# "DIRP[:DIRP]::[DIRA:]DIRA"
+# string "DIRP[ DIRP]" will be prepended to VARIABLE and string
+# "DIRA[ DIRA]" will be appended to VARIABLE
+# "DIR[:DIR]"
+# VARIABLE will be replaced by "DIR[ DIR]"
+func_munge_path_list ()
+{
+ case x$2 in
+ x)
+ ;;
+ *:)
+ eval $1=\"`$ECHO $2 | $SED 's/:/ /g'` \$$1\"
+ ;;
+ x:*)
+ eval $1=\"\$$1 `$ECHO $2 | $SED 's/:/ /g'`\"
+ ;;
+ *::*)
+ eval $1=\"\$$1\ `$ECHO $2 | $SED -e 's/.*:://' -e 's/:/ /g'`\"
+ eval $1=\"`$ECHO $2 | $SED -e 's/::.*//' -e 's/:/ /g'`\ \$$1\"
+ ;;
+ *)
+ eval $1=\"`$ECHO $2 | $SED 's/:/ /g'`\"
+ ;;
+ esac
+}
+
+
+# Calculate cc_basename. Skip known compiler wrappers and cross-prefix.
+func_cc_basename ()
+{
+ for cc_temp in $*""; do
+ case $cc_temp in
+ compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
+ distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
+ \-*) ;;
+ *) break;;
+ esac
+ done
+ func_cc_basename_result=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"`
+}
+
+
+# ### END FUNCTIONS SHARED WITH CONFIGURE
+
+_LT_EOF
+
+ case $host_os in
+ aix3*)
+ cat <<\_LT_EOF >> "$cfgfile"
+# AIX sometimes has problems with the GCC collect2 program. For some
+# reason, if we set the COLLECT_NAMES environment variable, the problems
+# vanish in a puff of smoke.
+if test set != "${COLLECT_NAMES+set}"; then
+ COLLECT_NAMES=
+ export COLLECT_NAMES
+fi
+_LT_EOF
+ ;;
+ esac
+
+
+ltmain=$ac_aux_dir/ltmain.sh
+
+
+ # We use sed instead of cat because bash on DJGPP gets confused if
+ # if finds mixed CR/LF and LF-only lines. Since sed operates in
+ # text mode, it properly converts lines to CR/LF. This bash problem
+ # is reportedly fixed, but why not run on old versions too?
+ sed '$q' "$ltmain" >> "$cfgfile" \
+ || (rm -f "$cfgfile"; exit 1)
+
+ mv -f "$cfgfile" "$ofile" ||
+ (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile")
+ chmod +x "$ofile"
+
+ ;;
+
+ esac
+done # for ac_tag
+
+
+as_fn_exit 0
+_ACEOF
+ac_clean_files=$ac_clean_files_save
+
+test $ac_write_fail = 0 ||
+ as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5
+
+
+# configure is writing to config.log, and then calls config.status.
+# config.status does its own redirection, appending to config.log.
+# Unfortunately, on DOS this fails, as config.log is still kept open
+# by configure, so config.status won't be able to write to it; its
+# output is simply discarded. So we exec the FD to /dev/null,
+# effectively closing config.log, so it can be properly (re)opened and
+# appended to by config.status. When coming back to configure, we
+# need to make the FD available again.
+if test "$no_create" != yes; then
+ ac_cs_success=:
+ ac_config_status_args=
+ test "$silent" = yes &&
+ ac_config_status_args="$ac_config_status_args --quiet"
+ exec 5>/dev/null
+ $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false
+ exec 5>>config.log
+ # Use ||, not &&, to avoid exiting from the if with $? = 1, which
+ # would make configure fail if this is the last instruction.
+ $ac_cs_success || as_fn_exit 1
+fi
+if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
+$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;}
+fi
+
--- /dev/null
+dnl Process this file with autoconf to produce a configure script.
+
+AC_PREREQ(2.54)
+
+# Making releases on the stable branch:
+# BABL_MICRO_VERSION += 1;
+# BABL_INTERFACE_AGE += 1;
+# BABL_BINARY_AGE += 1;
+# if any functions have been added,
+# set BABL_INTERFACE_AGE to 0.
+# if backwards compatibility has been broken,
+# set BABL_BINARY_AGE _and_ BABL_INTERFACE_AGE to 0.
+
+
+m4_define([babl_major_version], [0])
+m4_define([babl_minor_version], [1])
+m4_define([babl_micro_version], [18])
+m4_define([babl_real_version],
+ [babl_major_version.babl_minor_version.babl_micro_version])
+m4_define([babl_version], [babl_real_version])
+
+dnl Number of releases since we've added interfaces
+m4_define([babl_interface_age], [1])
+m4_define([babl_binary_age],
+ [m4_eval(100 * babl_minor_version + babl_micro_version)])
+
+# This is the X.Y used in -lbabl-X.Y
+m4_define([babl_api_version], [babl_major_version.babl_minor_version])
+
+m4_define([stability_version_number],
+ m4_if(m4_eval(babl_major_version || babl_minor_version), [0],
+ [babl_micro_version], [babl_minor_version]))
+m4_define([babl_unstable],
+ m4_if(m4_eval(stability_version_number % 2), [1], [yes], [no]))
+m4_define([babl_stable],
+ m4_if(m4_eval(stability_version_number % 2), [0], [yes], [no]))
+
+AC_INIT(babl, babl_major_version.babl_minor_version.babl_micro_version)
+
+AC_CONFIG_HEADERS([config.h])
+AC_CONFIG_SRCDIR(babl/babl.h)
+AC_CONFIG_MACRO_DIR([m4])
+
+BABL_MAJOR_VERSION=babl_major_version
+BABL_MINOR_VERSION=babl_minor_version
+BABL_MICRO_VERSION=babl_micro_version
+BABL_INTERFACE_AGE=babl_interface_age
+BABL_BINARY_AGE=babl_binary_age
+BABL_VERSION=babl_version
+BABL_REAL_VERSION=babl_real_version
+BABL_API_VERSION=babl_api_version
+AC_SUBST(BABL_MAJOR_VERSION)
+AC_SUBST(BABL_MINOR_VERSION)
+AC_SUBST(BABL_MICRO_VERSION)
+AC_SUBST(BABL_INTERFACE_AGE)
+AC_SUBST(BABL_BINARY_AGE)
+AC_SUBST(BABL_VERSION)
+AC_SUBST(BABL_REAL_VERSION)
+AC_SUBST(BABL_API_VERSION)
+
+BABL_RELEASE=babl_api_version
+AC_SUBST(BABL_RELEASE)
+
+dnl The symbol BABL_UNSTABLE is defined above for substitution in
+dnl Makefiles and conditionally defined here as a preprocessor symbol
+dnl and automake conditional.
+BABL_UNSTABLE=babl_unstable
+if test "x$BABL_UNSTABLE" = "xyes"; then
+ AC_DEFINE(BABL_UNSTABLE, 1,
+ [Define to 1 if this is an unstable version of BABL])
+fi
+AM_CONDITIONAL(BABL_UNSTABLE, test "x$BABL_UNSTABLE" = "xyes")
+AC_SUBST(BABL_UNSTABLE)
+
+
+# libtool versioning
+m4_define([lt_current], [m4_eval(100 * babl_minor_version + babl_micro_version - babl_interface_age)])
+m4_define([lt_revision], [babl_interface_age])
+m4_define([lt_age], [m4_eval(babl_binary_age - babl_interface_age)])
+BABL_LIBRARY_VERSION="lt_current:lt_revision:lt_age"
+BABL_CURRENT_MINUS_AGE=m4_eval(lt_current - lt_age)
+AC_SUBST(BABL_LIBRARY_VERSION)
+AC_SUBST(BABL_CURRENT_MINUS_AGE)
+
+dnl ==========================================================================
+
+AC_CANONICAL_SYSTEM
+AM_INIT_AUTOMAKE([1.11 foreign no-define dist-bzip2 no-dist-gzip -Wno-portability])
+
+# Enable silent build rules by default, requires at least
+# Automake-1.11. Disable by either passing --disable-silent-rules to
+# configure or passing V=1 to make
+m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
+
+# Prefer clang on OSX, because GCC isn't updated
+
+case "$build_os" in
+ darwin10.* | darwin9.* | darwin8.*)
+ ;;
+ darwin*)
+ prefered_cc="clang"
+ prefered_cxx="clang++"
+ ;;
+ *)
+ ;;
+esac
+
+if test -z "$CC" && test -n "$prefered_cc"; then
+ AC_MSG_NOTICE([setting CC to $prefered_cc for $build_os])
+ CC=$prefered_cc
+fi
+
+if test -z "$CXX" && test -n "$prefered_cc"; then
+ AC_MSG_NOTICE([setting CXX to $prefered_cxx for $build_os])
+ CXX=$prefered_cxx
+fi
+
+# Check for programs
+AC_PROG_CC
+AC_PROG_CC_C99
+
+# Initialize libtool
+LT_PREREQ([2.2])
+LT_INIT([disable-static win32-dll])
+
+BABL_VARIADIC_MACROS
+
+dnl Initialize maintainer mode
+AM_MAINTAINER_MODE([enable])
+
+AC_HEADER_STDC
+AM_SANITY_CHECK
+
+WEBSITE_HOST=pippin.gimp.org
+AC_SUBST(WEBSITE_HOST)
+WEBSITE_LOCATION=public_html/babl/
+AC_SUBST(WEBSITE_LOCATION)
+
+
+if eval "test x$GCC = xyes"; then
+ case " $CFLAGS " in
+ *[\ \ ]-Wall[\ \ ]*) ;;
+ *) CFLAGS="$CFLAGS -Wall" ;;
+ esac
+
+BABL_DETECT_CFLAGS(extra_warnings, '-Wdeclaration-after-statement')
+CFLAGS="$CFLAGS $extra_warnings"
+
+BABL_DETECT_CFLAGS(extra_warnings, '-Wmissing-prototypes')
+CFLAGS="$CFLAGS $extra_warnings"
+
+BABL_DETECT_CFLAGS(extra_warnings, '-Wmissing-declarations')
+CFLAGS="$CFLAGS $extra_warnings"
+
+BABL_DETECT_CFLAGS(extra_warnings, '-Winit-self')
+CFLAGS="$CFLAGS $extra_warnings"
+
+BABL_DETECT_CFLAGS(extra_warnings, '-Wpointer-arith')
+CFLAGS="$CFLAGS $extra_warnings"
+
+BABL_DETECT_CFLAGS(extra_warnings, '-Wold-style-definition')
+CFLAGS="$CFLAGS $extra_warnings"
+
+fi
+
+AC_PATH_PROG(RSVG, rsvg-convert, no)
+AM_CONDITIONAL(HAVE_RSVG, test "x$RSVG" != "xno")
+
+AC_PATH_PROG(W3M, w3m, no)
+AM_CONDITIONAL(HAVE_W3M, test "x$W3M" != "xno")
+
+dnl disable docs generation.
+AC_ARG_ENABLE([docs],
+ [ --disable-docs disable docs generation (default=no)],,
+ enable_docs="yes")
+
+AM_CONDITIONAL(ENABLE_DOCS, test "x$enable_docs" = "xyes")
+
+###########################
+# Check target architecture
+###########################
+
+AC_MSG_CHECKING([for target architecture])
+case x"$target" in
+ xNONE | x)
+ target_or_host="$host" ;;
+ *)
+ target_or_host="$target" ;;
+esac
+AC_MSG_RESULT([$target_or_host])
+
+case "$target_or_host" in
+ i*86-*-*)
+ have_x86=yes
+ AC_DEFINE(ARCH_X86, 1, [Define to 1 if you are compiling for ix86.])
+ ;;
+ x86_64-*-*)
+ have_x86=yes
+ AC_DEFINE(ARCH_X86, 1, [Define to 1 if you are compiling for ix86.])
+ AC_DEFINE(ARCH_X86_64, 1, [Define to 1 if you are compiling for amd64.])
+ ;;
+ ppc-*-* | powerpc-*)
+ have_ppc=yes
+ AC_DEFINE(ARCH_PPC, 1, [Define to 1 if you are compiling for PowerPC.])
+ ;;
+ ppc64-*-* | powerpc64-*)
+ have_ppc=yes
+ AC_DEFINE(ARCH_PPC, 1, [Define to 1 if you are compiling for PowerPC.])
+ AC_DEFINE(ARCH_PPC64, 1, [Define to 1 if you are compiling for PowerPC64.])
+ ;;
+ *)
+ ;;
+esac
+
+
+############################
+# Check how to find plug-ins
+############################
+
+AC_MSG_CHECKING([the extension for shared libraries])
+case "$target_or_host" in
+ hppa*-hpux*) # HP/UX
+ shrext=.sl
+ ;;
+ *-*-mingw* | *-*-cygwin*) # windows
+ shrext=.dll
+ ;;
+ *) # linux (and BSD?)
+ shrext=.so
+ ;;
+esac
+
+SHREXT=$shrext
+AC_SUBST(SHREXT)
+AC_DEFINE_UNQUOTED(SHREXT, "$shrext", [File extension for shared libraries])
+AC_MSG_RESULT([$shrext])
+
+dnl ===========================================================================
+
+#################
+# Check for Win32
+#################
+
+AC_MSG_CHECKING([for some Win32 platform])
+case "$target_or_host" in
+ *-*-mingw* | *-*-cygwin*)
+ platform_win32=yes
+ ;;
+ *)
+ platform_win32=no
+ ;;
+esac
+AC_MSG_RESULT([$platform_win32])
+AM_CONDITIONAL(PLATFORM_WIN32, test "$platform_win32" = "yes")
+
+MATH_LIB=-lm
+THREAD_LIB=-lpthread
+AC_MSG_CHECKING([for native Win32])
+case "$target_or_host" in
+ *-*-mingw*)
+ os_win32=yes
+ PATH_SEP=';'
+ DIR_SEP='\\'
+ MATH_LIB=
+ THREAD_LIB=
+ ;;
+ *)
+ os_win32=no
+ PATH_SEP=':'
+ DIR_SEP='/'
+ ;;
+esac
+AC_MSG_RESULT([$os_win32])
+AC_SUBST(PATH_SEP)
+AC_SUBST(DIR_SEP)
+AC_SUBST(MATH_LIB)
+AC_SUBST(THREAD_LIB)
+
+AM_CONDITIONAL(OS_WIN32, test "$os_win32" = "yes")
+AM_CONDITIONAL(OS_UNIX, test "$os_win32" != "yes")
+
+
+dnl ===========================================================================
+
+
+########################
+# Check for MMX assembly
+########################
+
+AC_ARG_ENABLE(mmx,
+ [ --enable-mmx enable MMX support (default=auto)],,
+ enable_mmx=$have_x86)
+
+AC_ARG_ENABLE(sse,
+ [ --enable-sse enable SSE support (default=auto)],,
+ enable_sse=$enable_mmx)
+
+AC_ARG_ENABLE(sse2,
+ [ --enable-sse2 enable SSE2 support (default=auto)],,
+ enable_sse2=$enable_sse)
+
+AC_ARG_ENABLE(sse4_1,
+ [ --enable-sse4_1 enable SSE4_1 support (default=auto)],,
+ enable_sse4_1=$enable_sse)
+
+AC_ARG_ENABLE(f16c,
+ [ --enable-f16c enable hardware half-float support (default=auto)],,
+ enable_f16c=$enable_sse)
+
+if test "x$enable_mmx" = xyes; then
+ BABL_DETECT_CFLAGS(MMX_EXTRA_CFLAGS, '-mmmx')
+ SSE_EXTRA_CFLAGS=
+ SSE2_EXTRA_CFLAGS=
+ SSE4_1_EXTRA_CFLAGS=
+
+ AC_MSG_CHECKING(whether we can compile MMX code)
+
+ mmx_save_CFLAGS="$CFLAGS"
+ CFLAGS="$mmx_save_CFLAGS $MMX_EXTRA_CFLAGS"
+
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[asm ("movq 0, %mm0");])],
+
+ AC_DEFINE(USE_MMX, 1, [Define to 1 if MMX assembly is available.])
+ AC_MSG_RESULT(yes)
+
+ if test "x$enable_sse" = xyes; then
+ BABL_DETECT_CFLAGS(fpmath_flag, '-mfpmath=sse')
+ if test "x$platform_win32" = xyes; then
+ BABL_DETECT_CFLAGS(stack_align, '-mstackrealign')
+ fi
+ SSE_EXTRA_CFLAGS="$MMX_EXTRA_CFLAGS $stack_align $fpmath_flag"
+
+ BABL_DETECT_CFLAGS(sse_flag, '-msse')
+ SSE_EXTRA_CFLAGS="$SSE_EXTRA_CFLAGS $sse_flag"
+
+ AC_MSG_CHECKING(whether we can compile SSE code)
+
+ CFLAGS="$CFLAGS $sse_flag"
+
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[asm ("movntps %xmm0, 0");])],
+ AC_DEFINE(USE_SSE, 1, [Define to 1 if SSE assembly is available.])
+ AC_MSG_RESULT(yes)
+ ,
+ enable_sse=no
+ AC_MSG_RESULT(no)
+ AC_MSG_WARN([The assembler does not support the SSE command set.])
+ )
+
+ if test "x$enable_sse2" = xyes; then
+ BABL_DETECT_CFLAGS(sse2_flag, '-msse2')
+ SSE2_EXTRA_CFLAGS="$SSE_EXTRA_CFLAGS $sse2_flag"
+
+ AC_MSG_CHECKING(whether we can compile SSE2 code)
+
+ CFLAGS="$CFLAGS $sse2_flag"
+
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[asm ("punpckhwd %xmm0,%xmm1");])],
+ AC_DEFINE(USE_SSE2, 1, [Define to 1 if SSE2 assembly is available.])
+ AC_MSG_RESULT(yes)
+ ,
+ enable_sse2=no
+ AC_MSG_RESULT(no)
+ AC_MSG_WARN([The assembler does not support the SSE2 command set.])
+ )
+
+ if test "x$enable_sse4_1" = xyes; then
+ BABL_DETECT_CFLAGS(sse4_1_flag, '-msse4.1')
+ SSE4_1_EXTRA_CFLAGS="$SSE_EXTRA_CFLAGS $sse4_1_flag"
+
+ AC_MSG_CHECKING(whether we can compile SSE4_1 code)
+
+ CFLAGS="$CFLAGS $sse4_1_flag"
+
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[asm ("pmovzxbd %xmm0,%xmm1");])],
+ AC_DEFINE(USE_SSE4_1, 1, [Define to 1 if SSE4_1 assembly is available.])
+ AC_MSG_RESULT(yes)
+ ,
+ enable_sse4_1=no
+ AC_MSG_RESULT(no)
+ AC_MSG_WARN([The assembler does not support the SSE4_1 command set.])
+ )
+ fi
+ fi
+
+ CFLAGS="$mmx_save_CFLAGS"
+
+ if test "x$enable_f16c" = xyes; then
+ BABL_DETECT_CFLAGS(f16c_flag, '-mf16c')
+ F16C_EXTRA_CFLAGS="$SSE_EXTRA_CFLAGS $f16c_flag"
+
+ AC_MSG_CHECKING(whether we can compile half-floating point code)
+
+ CFLAGS="$CFLAGS $sse_flag $f16c_flag"
+
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <immintrin.h>],[__m128 val = _mm_cvtph_ps ((__m128i)_mm_setzero_ps());])],
+ AC_DEFINE(USE_F16C, 1, [Define to 1 if f16c intrinsics are available.])
+ AC_MSG_RESULT(yes)
+ ,
+ enable_f16c=no
+ AC_MSG_RESULT(no)
+ AC_MSG_WARN([The compiler does not support f16c intrinsics.])
+ )
+ fi
+
+ fi
+ ,
+ enable_mmx=no
+ AC_MSG_RESULT(no)
+ AC_MSG_WARN([The assembler does not support the MMX command set.])
+ )
+
+ CFLAGS="$mmx_save_CFLAGS"
+
+ AC_SUBST(MMX_EXTRA_CFLAGS)
+ AC_SUBST(SSE_EXTRA_CFLAGS)
+ AC_SUBST(SSE2_EXTRA_CFLAGS)
+ AC_SUBST(SSE4_1_EXTRA_CFLAGS)
+ AC_SUBST(F16C_EXTRA_CFLAGS)
+fi
+
+
+############################
+# Check for AltiVec assembly
+############################
+
+AC_ARG_ENABLE(altivec,
+ [ --enable-altivec enable AltiVec support (default=auto)],,
+ enable_altivec=$have_ppc)
+
+if test "x$enable_altivec" = xyes; then
+
+ BABL_DETECT_CFLAGS(altivec_flag, '-faltivec' '-maltivec -mabi=altivec')
+
+ ALTIVEC_EXTRA_CFLAGS=
+ case "$altivec_flag" in
+ -maltivec*)
+ altivec_save_CPPFLAGS="$CPPFLAGS"
+ CPPFLAGS="$altivec_save_CPPFLAGS $altivec_flag"
+ AC_CHECK_HEADERS(altivec.h, [ALTIVEC_EXTRA_CFLAGS="$altivec_flag"])
+ CPPFLAGS="$altivec_save_CPPFLAGS"
+ ;;
+ *)
+ ALTIVEC_EXTRA_CFLAGS="$altivec_flag"
+ ;;
+ esac
+ AC_SUBST(ALTIVEC_EXTRA_CFLAGS)
+
+ AC_MSG_CHECKING(whether we can compile AltiVec code)
+
+ can_use_altivec=no
+ if test -z "$ALTIVEC_EXTRA_CFLAGS"; then
+ AC_MSG_RESULT(no)
+ AC_MSG_WARN([The compiler does not support the AltiVec command set.])
+ else
+ case "$target_or_host" in
+ *-*-darwin*)
+ can_use_altivec=yes
+ AC_DEFINE(HAVE_ALTIVEC_SYSCTL, 1,
+ [Define to 1 if the altivec runtime test should use a sysctl.])
+ ;;
+ *)
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[asm ("vand %v0, %v0, %v0");])],
+ can_use_altivec=yes, can_use_altivec=no)
+ ;;
+ esac
+ AC_MSG_RESULT($can_use_altivec)
+
+ if test "x$can_use_altivec" = "xyes"; then
+ AC_DEFINE(USE_ALTIVEC, 1, [Define to 1 if AltiVec support is available.])
+ else
+ enable_altivec=no
+ AC_MSG_WARN([The assembler does not support the AltiVec command set.])
+ fi
+ fi
+
+ enable_altivec="$can_use_altivec"
+fi
+
+
+##################
+# Check for random
+##################
+have_srandom=no
+AC_CHECK_FUNC(srandom, have_srandom=yes)
+AM_CONDITIONAL([HAVE_SRANDOM], [test x$have_srandom = xyes])
+
+dnl ===========================================================================
+
+AC_CHECK_HEADERS(dl.h)
+
+AC_SEARCH_LIBS([dlopen], [dl])
+AC_SEARCH_LIBS([rint], [m])
+
+AC_REPLACE_FUNCS(gettimeofday)
+AC_CHECK_FUNCS(rint)
+
+#BABL_PATH_SEPARATOR must be defined as a character.
+#BABL_DIR_SEPARATOR must be defined as a string.
+AC_DEFINE_UNQUOTED(BABL_PATH_SEPARATOR, '$PATH_SEP', [separator between paths in BABL_PATH])
+AC_DEFINE_UNQUOTED(BABL_DIR_SEPARATOR, "$DIR_SEP", [separator between directories in BABL_PATH])
+
+AC_DEFINE_UNQUOTED(BABL_LIBRARY, "$PACKAGE_NAME-$BABL_API_VERSION", [name of BABL library])
+
+
+
+dnl ===========================================================================
+
+AC_CONFIG_FILES(
+Makefile
+babl.pc
+babl/Makefile
+babl/babl-version.h
+babl/base/Makefile
+docs/Makefile
+docs/index-static.html
+docs/graphics/Makefile
+tests/Makefile
+tools/Makefile
+extensions/Makefile
+INSTALL
+)
+
+AC_OUTPUT
--- /dev/null
+#! /bin/sh
+# depcomp - compile a program generating dependencies as side-effects
+
+scriptversion=2013-05-30.07; # UTC
+
+# Copyright (C) 1999-2014 Free Software Foundation, Inc.
+
+# 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 <http://www.gnu.org/licenses/>.
+
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+# Originally written by Alexandre Oliva <oliva@dcc.unicamp.br>.
+
+case $1 in
+ '')
+ echo "$0: No command. Try '$0 --help' for more information." 1>&2
+ exit 1;
+ ;;
+ -h | --h*)
+ cat <<\EOF
+Usage: depcomp [--help] [--version] PROGRAM [ARGS]
+
+Run PROGRAMS ARGS to compile a file, generating dependencies
+as side-effects.
+
+Environment variables:
+ depmode Dependency tracking mode.
+ source Source file read by 'PROGRAMS ARGS'.
+ object Object file output by 'PROGRAMS ARGS'.
+ DEPDIR directory where to store dependencies.
+ depfile Dependency file to output.
+ tmpdepfile Temporary file to use when outputting dependencies.
+ libtool Whether libtool is used (yes/no).
+
+Report bugs to <bug-automake@gnu.org>.
+EOF
+ exit $?
+ ;;
+ -v | --v*)
+ echo "depcomp $scriptversion"
+ exit $?
+ ;;
+esac
+
+# Get the directory component of the given path, and save it in the
+# global variables '$dir'. Note that this directory component will
+# be either empty or ending with a '/' character. This is deliberate.
+set_dir_from ()
+{
+ case $1 in
+ */*) dir=`echo "$1" | sed -e 's|/[^/]*$|/|'`;;
+ *) dir=;;
+ esac
+}
+
+# Get the suffix-stripped basename of the given path, and save it the
+# global variable '$base'.
+set_base_from ()
+{
+ base=`echo "$1" | sed -e 's|^.*/||' -e 's/\.[^.]*$//'`
+}
+
+# If no dependency file was actually created by the compiler invocation,
+# we still have to create a dummy depfile, to avoid errors with the
+# Makefile "include basename.Plo" scheme.
+make_dummy_depfile ()
+{
+ echo "#dummy" > "$depfile"
+}
+
+# Factor out some common post-processing of the generated depfile.
+# Requires the auxiliary global variable '$tmpdepfile' to be set.
+aix_post_process_depfile ()
+{
+ # If the compiler actually managed to produce a dependency file,
+ # post-process it.
+ if test -f "$tmpdepfile"; then
+ # Each line is of the form 'foo.o: dependency.h'.
+ # Do two passes, one to just change these to
+ # $object: dependency.h
+ # and one to simply output
+ # dependency.h:
+ # which is needed to avoid the deleted-header problem.
+ { sed -e "s,^.*\.[$lower]*:,$object:," < "$tmpdepfile"
+ sed -e "s,^.*\.[$lower]*:[$tab ]*,," -e 's,$,:,' < "$tmpdepfile"
+ } > "$depfile"
+ rm -f "$tmpdepfile"
+ else
+ make_dummy_depfile
+ fi
+}
+
+# A tabulation character.
+tab=' '
+# A newline character.
+nl='
+'
+# Character ranges might be problematic outside the C locale.
+# These definitions help.
+upper=ABCDEFGHIJKLMNOPQRSTUVWXYZ
+lower=abcdefghijklmnopqrstuvwxyz
+digits=0123456789
+alpha=${upper}${lower}
+
+if test -z "$depmode" || test -z "$source" || test -z "$object"; then
+ echo "depcomp: Variables source, object and depmode must be set" 1>&2
+ exit 1
+fi
+
+# Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po.
+depfile=${depfile-`echo "$object" |
+ sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`}
+tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`}
+
+rm -f "$tmpdepfile"
+
+# Avoid interferences from the environment.
+gccflag= dashmflag=
+
+# Some modes work just like other modes, but use different flags. We
+# parameterize here, but still list the modes in the big case below,
+# to make depend.m4 easier to write. Note that we *cannot* use a case
+# here, because this file can only contain one case statement.
+if test "$depmode" = hp; then
+ # HP compiler uses -M and no extra arg.
+ gccflag=-M
+ depmode=gcc
+fi
+
+if test "$depmode" = dashXmstdout; then
+ # This is just like dashmstdout with a different argument.
+ dashmflag=-xM
+ depmode=dashmstdout
+fi
+
+cygpath_u="cygpath -u -f -"
+if test "$depmode" = msvcmsys; then
+ # This is just like msvisualcpp but w/o cygpath translation.
+ # Just convert the backslash-escaped backslashes to single forward
+ # slashes to satisfy depend.m4
+ cygpath_u='sed s,\\\\,/,g'
+ depmode=msvisualcpp
+fi
+
+if test "$depmode" = msvc7msys; then
+ # This is just like msvc7 but w/o cygpath translation.
+ # Just convert the backslash-escaped backslashes to single forward
+ # slashes to satisfy depend.m4
+ cygpath_u='sed s,\\\\,/,g'
+ depmode=msvc7
+fi
+
+if test "$depmode" = xlc; then
+ # IBM C/C++ Compilers xlc/xlC can output gcc-like dependency information.
+ gccflag=-qmakedep=gcc,-MF
+ depmode=gcc
+fi
+
+case "$depmode" in
+gcc3)
+## gcc 3 implements dependency tracking that does exactly what
+## we want. Yay! Note: for some reason libtool 1.4 doesn't like
+## it if -MD -MP comes after the -MF stuff. Hmm.
+## Unfortunately, FreeBSD c89 acceptance of flags depends upon
+## the command line argument order; so add the flags where they
+## appear in depend2.am. Note that the slowdown incurred here
+## affects only configure: in makefiles, %FASTDEP% shortcuts this.
+ for arg
+ do
+ case $arg in
+ -c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;;
+ *) set fnord "$@" "$arg" ;;
+ esac
+ shift # fnord
+ shift # $arg
+ done
+ "$@"
+ stat=$?
+ if test $stat -ne 0; then
+ rm -f "$tmpdepfile"
+ exit $stat
+ fi
+ mv "$tmpdepfile" "$depfile"
+ ;;
+
+gcc)
+## Note that this doesn't just cater to obsosete pre-3.x GCC compilers.
+## but also to in-use compilers like IMB xlc/xlC and the HP C compiler.
+## (see the conditional assignment to $gccflag above).
+## There are various ways to get dependency output from gcc. Here's
+## why we pick this rather obscure method:
+## - Don't want to use -MD because we'd like the dependencies to end
+## up in a subdir. Having to rename by hand is ugly.
+## (We might end up doing this anyway to support other compilers.)
+## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like
+## -MM, not -M (despite what the docs say). Also, it might not be
+## supported by the other compilers which use the 'gcc' depmode.
+## - Using -M directly means running the compiler twice (even worse
+## than renaming).
+ if test -z "$gccflag"; then
+ gccflag=-MD,
+ fi
+ "$@" -Wp,"$gccflag$tmpdepfile"
+ stat=$?
+ if test $stat -ne 0; then
+ rm -f "$tmpdepfile"
+ exit $stat
+ fi
+ rm -f "$depfile"
+ echo "$object : \\" > "$depfile"
+ # The second -e expression handles DOS-style file names with drive
+ # letters.
+ sed -e 's/^[^:]*: / /' \
+ -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile"
+## This next piece of magic avoids the "deleted header file" problem.
+## The problem is that when a header file which appears in a .P file
+## is deleted, the dependency causes make to die (because there is
+## typically no way to rebuild the header). We avoid this by adding
+## dummy dependencies for each header file. Too bad gcc doesn't do
+## this for us directly.
+## Some versions of gcc put a space before the ':'. On the theory
+## that the space means something, we add a space to the output as
+## well. hp depmode also adds that space, but also prefixes the VPATH
+## to the object. Take care to not repeat it in the output.
+## Some versions of the HPUX 10.20 sed can't process this invocation
+## correctly. Breaking it into two sed invocations is a workaround.
+ tr ' ' "$nl" < "$tmpdepfile" \
+ | sed -e 's/^\\$//' -e '/^$/d' -e "s|.*$object$||" -e '/:$/d' \
+ | sed -e 's/$/ :/' >> "$depfile"
+ rm -f "$tmpdepfile"
+ ;;
+
+hp)
+ # This case exists only to let depend.m4 do its work. It works by
+ # looking at the text of this script. This case will never be run,
+ # since it is checked for above.
+ exit 1
+ ;;
+
+sgi)
+ if test "$libtool" = yes; then
+ "$@" "-Wp,-MDupdate,$tmpdepfile"
+ else
+ "$@" -MDupdate "$tmpdepfile"
+ fi
+ stat=$?
+ if test $stat -ne 0; then
+ rm -f "$tmpdepfile"
+ exit $stat
+ fi
+ rm -f "$depfile"
+
+ if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files
+ echo "$object : \\" > "$depfile"
+ # Clip off the initial element (the dependent). Don't try to be
+ # clever and replace this with sed code, as IRIX sed won't handle
+ # lines with more than a fixed number of characters (4096 in
+ # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines;
+ # the IRIX cc adds comments like '#:fec' to the end of the
+ # dependency line.
+ tr ' ' "$nl" < "$tmpdepfile" \
+ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' \
+ | tr "$nl" ' ' >> "$depfile"
+ echo >> "$depfile"
+ # The second pass generates a dummy entry for each header file.
+ tr ' ' "$nl" < "$tmpdepfile" \
+ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \
+ >> "$depfile"
+ else
+ make_dummy_depfile
+ fi
+ rm -f "$tmpdepfile"
+ ;;
+
+xlc)
+ # This case exists only to let depend.m4 do its work. It works by
+ # looking at the text of this script. This case will never be run,
+ # since it is checked for above.
+ exit 1
+ ;;
+
+aix)
+ # The C for AIX Compiler uses -M and outputs the dependencies
+ # in a .u file. In older versions, this file always lives in the
+ # current directory. Also, the AIX compiler puts '$object:' at the
+ # start of each line; $object doesn't have directory information.
+ # Version 6 uses the directory in both cases.
+ set_dir_from "$object"
+ set_base_from "$object"
+ if test "$libtool" = yes; then
+ tmpdepfile1=$dir$base.u
+ tmpdepfile2=$base.u
+ tmpdepfile3=$dir.libs/$base.u
+ "$@" -Wc,-M
+ else
+ tmpdepfile1=$dir$base.u
+ tmpdepfile2=$dir$base.u
+ tmpdepfile3=$dir$base.u
+ "$@" -M
+ fi
+ stat=$?
+ if test $stat -ne 0; then
+ rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
+ exit $stat
+ fi
+
+ for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
+ do
+ test -f "$tmpdepfile" && break
+ done
+ aix_post_process_depfile
+ ;;
+
+tcc)
+ # tcc (Tiny C Compiler) understand '-MD -MF file' since version 0.9.26
+ # FIXME: That version still under development at the moment of writing.
+ # Make that this statement remains true also for stable, released
+ # versions.
+ # It will wrap lines (doesn't matter whether long or short) with a
+ # trailing '\', as in:
+ #
+ # foo.o : \
+ # foo.c \
+ # foo.h \
+ #
+ # It will put a trailing '\' even on the last line, and will use leading
+ # spaces rather than leading tabs (at least since its commit 0394caf7
+ # "Emit spaces for -MD").
+ "$@" -MD -MF "$tmpdepfile"
+ stat=$?
+ if test $stat -ne 0; then
+ rm -f "$tmpdepfile"
+ exit $stat
+ fi
+ rm -f "$depfile"
+ # Each non-empty line is of the form 'foo.o : \' or ' dep.h \'.
+ # We have to change lines of the first kind to '$object: \'.
+ sed -e "s|.*:|$object :|" < "$tmpdepfile" > "$depfile"
+ # And for each line of the second kind, we have to emit a 'dep.h:'
+ # dummy dependency, to avoid the deleted-header problem.
+ sed -n -e 's|^ *\(.*\) *\\$|\1:|p' < "$tmpdepfile" >> "$depfile"
+ rm -f "$tmpdepfile"
+ ;;
+
+## The order of this option in the case statement is important, since the
+## shell code in configure will try each of these formats in the order
+## listed in this file. A plain '-MD' option would be understood by many
+## compilers, so we must ensure this comes after the gcc and icc options.
+pgcc)
+ # Portland's C compiler understands '-MD'.
+ # Will always output deps to 'file.d' where file is the root name of the
+ # source file under compilation, even if file resides in a subdirectory.
+ # The object file name does not affect the name of the '.d' file.
+ # pgcc 10.2 will output
+ # foo.o: sub/foo.c sub/foo.h
+ # and will wrap long lines using '\' :
+ # foo.o: sub/foo.c ... \
+ # sub/foo.h ... \
+ # ...
+ set_dir_from "$object"
+ # Use the source, not the object, to determine the base name, since
+ # that's sadly what pgcc will do too.
+ set_base_from "$source"
+ tmpdepfile=$base.d
+
+ # For projects that build the same source file twice into different object
+ # files, the pgcc approach of using the *source* file root name can cause
+ # problems in parallel builds. Use a locking strategy to avoid stomping on
+ # the same $tmpdepfile.
+ lockdir=$base.d-lock
+ trap "
+ echo '$0: caught signal, cleaning up...' >&2
+ rmdir '$lockdir'
+ exit 1
+ " 1 2 13 15
+ numtries=100
+ i=$numtries
+ while test $i -gt 0; do
+ # mkdir is a portable test-and-set.
+ if mkdir "$lockdir" 2>/dev/null; then
+ # This process acquired the lock.
+ "$@" -MD
+ stat=$?
+ # Release the lock.
+ rmdir "$lockdir"
+ break
+ else
+ # If the lock is being held by a different process, wait
+ # until the winning process is done or we timeout.
+ while test -d "$lockdir" && test $i -gt 0; do
+ sleep 1
+ i=`expr $i - 1`
+ done
+ fi
+ i=`expr $i - 1`
+ done
+ trap - 1 2 13 15
+ if test $i -le 0; then
+ echo "$0: failed to acquire lock after $numtries attempts" >&2
+ echo "$0: check lockdir '$lockdir'" >&2
+ exit 1
+ fi
+
+ if test $stat -ne 0; then
+ rm -f "$tmpdepfile"
+ exit $stat
+ fi
+ rm -f "$depfile"
+ # Each line is of the form `foo.o: dependent.h',
+ # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'.
+ # Do two passes, one to just change these to
+ # `$object: dependent.h' and one to simply `dependent.h:'.
+ sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile"
+ # Some versions of the HPUX 10.20 sed can't process this invocation
+ # correctly. Breaking it into two sed invocations is a workaround.
+ sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" \
+ | sed -e 's/$/ :/' >> "$depfile"
+ rm -f "$tmpdepfile"
+ ;;
+
+hp2)
+ # The "hp" stanza above does not work with aCC (C++) and HP's ia64
+ # compilers, which have integrated preprocessors. The correct option
+ # to use with these is +Maked; it writes dependencies to a file named
+ # 'foo.d', which lands next to the object file, wherever that
+ # happens to be.
+ # Much of this is similar to the tru64 case; see comments there.
+ set_dir_from "$object"
+ set_base_from "$object"
+ if test "$libtool" = yes; then
+ tmpdepfile1=$dir$base.d
+ tmpdepfile2=$dir.libs/$base.d
+ "$@" -Wc,+Maked
+ else
+ tmpdepfile1=$dir$base.d
+ tmpdepfile2=$dir$base.d
+ "$@" +Maked
+ fi
+ stat=$?
+ if test $stat -ne 0; then
+ rm -f "$tmpdepfile1" "$tmpdepfile2"
+ exit $stat
+ fi
+
+ for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2"
+ do
+ test -f "$tmpdepfile" && break
+ done
+ if test -f "$tmpdepfile"; then
+ sed -e "s,^.*\.[$lower]*:,$object:," "$tmpdepfile" > "$depfile"
+ # Add 'dependent.h:' lines.
+ sed -ne '2,${
+ s/^ *//
+ s/ \\*$//
+ s/$/:/
+ p
+ }' "$tmpdepfile" >> "$depfile"
+ else
+ make_dummy_depfile
+ fi
+ rm -f "$tmpdepfile" "$tmpdepfile2"
+ ;;
+
+tru64)
+ # The Tru64 compiler uses -MD to generate dependencies as a side
+ # effect. 'cc -MD -o foo.o ...' puts the dependencies into 'foo.o.d'.
+ # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put
+ # dependencies in 'foo.d' instead, so we check for that too.
+ # Subdirectories are respected.
+ set_dir_from "$object"
+ set_base_from "$object"
+
+ if test "$libtool" = yes; then
+ # Libtool generates 2 separate objects for the 2 libraries. These
+ # two compilations output dependencies in $dir.libs/$base.o.d and
+ # in $dir$base.o.d. We have to check for both files, because
+ # one of the two compilations can be disabled. We should prefer
+ # $dir$base.o.d over $dir.libs/$base.o.d because the latter is
+ # automatically cleaned when .libs/ is deleted, while ignoring
+ # the former would cause a distcleancheck panic.
+ tmpdepfile1=$dir$base.o.d # libtool 1.5
+ tmpdepfile2=$dir.libs/$base.o.d # Likewise.
+ tmpdepfile3=$dir.libs/$base.d # Compaq CCC V6.2-504
+ "$@" -Wc,-MD
+ else
+ tmpdepfile1=$dir$base.d
+ tmpdepfile2=$dir$base.d
+ tmpdepfile3=$dir$base.d
+ "$@" -MD
+ fi
+
+ stat=$?
+ if test $stat -ne 0; then
+ rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
+ exit $stat
+ fi
+
+ for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
+ do
+ test -f "$tmpdepfile" && break
+ done
+ # Same post-processing that is required for AIX mode.
+ aix_post_process_depfile
+ ;;
+
+msvc7)
+ if test "$libtool" = yes; then
+ showIncludes=-Wc,-showIncludes
+ else
+ showIncludes=-showIncludes
+ fi
+ "$@" $showIncludes > "$tmpdepfile"
+ stat=$?
+ grep -v '^Note: including file: ' "$tmpdepfile"
+ if test $stat -ne 0; then
+ rm -f "$tmpdepfile"
+ exit $stat
+ fi
+ rm -f "$depfile"
+ echo "$object : \\" > "$depfile"
+ # The first sed program below extracts the file names and escapes
+ # backslashes for cygpath. The second sed program outputs the file
+ # name when reading, but also accumulates all include files in the
+ # hold buffer in order to output them again at the end. This only
+ # works with sed implementations that can handle large buffers.
+ sed < "$tmpdepfile" -n '
+/^Note: including file: *\(.*\)/ {
+ s//\1/
+ s/\\/\\\\/g
+ p
+}' | $cygpath_u | sort -u | sed -n '
+s/ /\\ /g
+s/\(.*\)/'"$tab"'\1 \\/p
+s/.\(.*\) \\/\1:/
+H
+$ {
+ s/.*/'"$tab"'/
+ G
+ p
+}' >> "$depfile"
+ echo >> "$depfile" # make sure the fragment doesn't end with a backslash
+ rm -f "$tmpdepfile"
+ ;;
+
+msvc7msys)
+ # This case exists only to let depend.m4 do its work. It works by
+ # looking at the text of this script. This case will never be run,
+ # since it is checked for above.
+ exit 1
+ ;;
+
+#nosideeffect)
+ # This comment above is used by automake to tell side-effect
+ # dependency tracking mechanisms from slower ones.
+
+dashmstdout)
+ # Important note: in order to support this mode, a compiler *must*
+ # always write the preprocessed file to stdout, regardless of -o.
+ "$@" || exit $?
+
+ # Remove the call to Libtool.
+ if test "$libtool" = yes; then
+ while test "X$1" != 'X--mode=compile'; do
+ shift
+ done
+ shift
+ fi
+
+ # Remove '-o $object'.
+ IFS=" "
+ for arg
+ do
+ case $arg in
+ -o)
+ shift
+ ;;
+ $object)
+ shift
+ ;;
+ *)
+ set fnord "$@" "$arg"
+ shift # fnord
+ shift # $arg
+ ;;
+ esac
+ done
+
+ test -z "$dashmflag" && dashmflag=-M
+ # Require at least two characters before searching for ':'
+ # in the target name. This is to cope with DOS-style filenames:
+ # a dependency such as 'c:/foo/bar' could be seen as target 'c' otherwise.
+ "$@" $dashmflag |
+ sed "s|^[$tab ]*[^:$tab ][^:][^:]*:[$tab ]*|$object: |" > "$tmpdepfile"
+ rm -f "$depfile"
+ cat < "$tmpdepfile" > "$depfile"
+ # Some versions of the HPUX 10.20 sed can't process this sed invocation
+ # correctly. Breaking it into two sed invocations is a workaround.
+ tr ' ' "$nl" < "$tmpdepfile" \
+ | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \
+ | sed -e 's/$/ :/' >> "$depfile"
+ rm -f "$tmpdepfile"
+ ;;
+
+dashXmstdout)
+ # This case only exists to satisfy depend.m4. It is never actually
+ # run, as this mode is specially recognized in the preamble.
+ exit 1
+ ;;
+
+makedepend)
+ "$@" || exit $?
+ # Remove any Libtool call
+ if test "$libtool" = yes; then
+ while test "X$1" != 'X--mode=compile'; do
+ shift
+ done
+ shift
+ fi
+ # X makedepend
+ shift
+ cleared=no eat=no
+ for arg
+ do
+ case $cleared in
+ no)
+ set ""; shift
+ cleared=yes ;;
+ esac
+ if test $eat = yes; then
+ eat=no
+ continue
+ fi
+ case "$arg" in
+ -D*|-I*)
+ set fnord "$@" "$arg"; shift ;;
+ # Strip any option that makedepend may not understand. Remove
+ # the object too, otherwise makedepend will parse it as a source file.
+ -arch)
+ eat=yes ;;
+ -*|$object)
+ ;;
+ *)
+ set fnord "$@" "$arg"; shift ;;
+ esac
+ done
+ obj_suffix=`echo "$object" | sed 's/^.*\././'`
+ touch "$tmpdepfile"
+ ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@"
+ rm -f "$depfile"
+ # makedepend may prepend the VPATH from the source file name to the object.
+ # No need to regex-escape $object, excess matching of '.' is harmless.
+ sed "s|^.*\($object *:\)|\1|" "$tmpdepfile" > "$depfile"
+ # Some versions of the HPUX 10.20 sed can't process the last invocation
+ # correctly. Breaking it into two sed invocations is a workaround.
+ sed '1,2d' "$tmpdepfile" \
+ | tr ' ' "$nl" \
+ | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \
+ | sed -e 's/$/ :/' >> "$depfile"
+ rm -f "$tmpdepfile" "$tmpdepfile".bak
+ ;;
+
+cpp)
+ # Important note: in order to support this mode, a compiler *must*
+ # always write the preprocessed file to stdout.
+ "$@" || exit $?
+
+ # Remove the call to Libtool.
+ if test "$libtool" = yes; then
+ while test "X$1" != 'X--mode=compile'; do
+ shift
+ done
+ shift
+ fi
+
+ # Remove '-o $object'.
+ IFS=" "
+ for arg
+ do
+ case $arg in
+ -o)
+ shift
+ ;;
+ $object)
+ shift
+ ;;
+ *)
+ set fnord "$@" "$arg"
+ shift # fnord
+ shift # $arg
+ ;;
+ esac
+ done
+
+ "$@" -E \
+ | sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
+ -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
+ | sed '$ s: \\$::' > "$tmpdepfile"
+ rm -f "$depfile"
+ echo "$object : \\" > "$depfile"
+ cat < "$tmpdepfile" >> "$depfile"
+ sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile"
+ rm -f "$tmpdepfile"
+ ;;
+
+msvisualcpp)
+ # Important note: in order to support this mode, a compiler *must*
+ # always write the preprocessed file to stdout.
+ "$@" || exit $?
+
+ # Remove the call to Libtool.
+ if test "$libtool" = yes; then
+ while test "X$1" != 'X--mode=compile'; do
+ shift
+ done
+ shift
+ fi
+
+ IFS=" "
+ for arg
+ do
+ case "$arg" in
+ -o)
+ shift
+ ;;
+ $object)
+ shift
+ ;;
+ "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI")
+ set fnord "$@"
+ shift
+ shift
+ ;;
+ *)
+ set fnord "$@" "$arg"
+ shift
+ shift
+ ;;
+ esac
+ done
+ "$@" -E 2>/dev/null |
+ sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile"
+ rm -f "$depfile"
+ echo "$object : \\" > "$depfile"
+ sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::'"$tab"'\1 \\:p' >> "$depfile"
+ echo "$tab" >> "$depfile"
+ sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile"
+ rm -f "$tmpdepfile"
+ ;;
+
+msvcmsys)
+ # This case exists only to let depend.m4 do its work. It works by
+ # looking at the text of this script. This case will never be run,
+ # since it is checked for above.
+ exit 1
+ ;;
+
+none)
+ exec "$@"
+ ;;
+
+*)
+ echo "Unknown depmode $depmode" 1>&2
+ exit 1
+ ;;
+esac
+
+exit 0
+
+# 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:
--- /dev/null
+ GNU GENERAL PUBLIC LICENSE
+ Version 3, 29 June 2007
+
+ Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The GNU General Public License is a free, copyleft license for
+software and other kinds of works.
+
+ The licenses for most software and other practical works are designed
+to take away your freedom to share and change the works. By contrast,
+the GNU General Public License is intended to guarantee your freedom to
+share and change all versions of a program--to make sure it remains free
+software for all its users. We, the Free Software Foundation, use the
+GNU General Public License for most of our software; it applies also to
+any other work released this way by its authors. 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
+them 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.
+
+ To protect your rights, we need to prevent others from denying you
+these rights or asking you to surrender the rights. Therefore, you have
+certain responsibilities if you distribute copies of the software, or if
+you modify it: responsibilities to respect the freedom of others.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must pass on to the recipients the same
+freedoms that you received. 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.
+
+ Developers that use the GNU GPL protect your rights with two steps:
+(1) assert copyright on the software, and (2) offer you this License
+giving you legal permission to copy, distribute and/or modify it.
+
+ For the developers' and authors' protection, the GPL clearly explains
+that there is no warranty for this free software. For both users' and
+authors' sake, the GPL requires that modified versions be marked as
+changed, so that their problems will not be attributed erroneously to
+authors of previous versions.
+
+ Some devices are designed to deny users access to install or run
+modified versions of the software inside them, although the manufacturer
+can do so. This is fundamentally incompatible with the aim of
+protecting users' freedom to change the software. The systematic
+pattern of such abuse occurs in the area of products for individuals to
+use, which is precisely where it is most unacceptable. Therefore, we
+have designed this version of the GPL to prohibit the practice for those
+products. If such problems arise substantially in other domains, we
+stand ready to extend this provision to those domains in future versions
+of the GPL, as needed to protect the freedom of users.
+
+ Finally, every program is threatened constantly by software patents.
+States should not allow patents to restrict development and use of
+software on general-purpose computers, but in those that do, we wish to
+avoid the special danger that patents applied to a free program could
+make it effectively proprietary. To prevent this, the GPL assures that
+patents cannot be used to render the program non-free.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ TERMS AND CONDITIONS
+
+ 0. Definitions.
+
+ "This License" refers to version 3 of the GNU General Public License.
+
+ "Copyright" also means copyright-like laws that apply to other kinds of
+works, such as semiconductor masks.
+
+ "The Program" refers to any copyrightable work licensed under this
+License. Each licensee is addressed as "you". "Licensees" and
+"recipients" may be individuals or organizations.
+
+ To "modify" a work means to copy from or adapt all or part of the work
+in a fashion requiring copyright permission, other than the making of an
+exact copy. The resulting work is called a "modified version" of the
+earlier work or a work "based on" the earlier work.
+
+ A "covered work" means either the unmodified Program or a work based
+on the Program.
+
+ To "propagate" a work means to do anything with it that, without
+permission, would make you directly or secondarily liable for
+infringement under applicable copyright law, except executing it on a
+computer or modifying a private copy. Propagation includes copying,
+distribution (with or without modification), making available to the
+public, and in some countries other activities as well.
+
+ To "convey" a work means any kind of propagation that enables other
+parties to make or receive copies. Mere interaction with a user through
+a computer network, with no transfer of a copy, is not conveying.
+
+ An interactive user interface displays "Appropriate Legal Notices"
+to the extent that it includes a convenient and prominently visible
+feature that (1) displays an appropriate copyright notice, and (2)
+tells the user that there is no warranty for the work (except to the
+extent that warranties are provided), that licensees may convey the
+work under this License, and how to view a copy of this License. If
+the interface presents a list of user commands or options, such as a
+menu, a prominent item in the list meets this criterion.
+
+ 1. Source Code.
+
+ The "source code" for a work means the preferred form of the work
+for making modifications to it. "Object code" means any non-source
+form of a work.
+
+ A "Standard Interface" means an interface that either is an official
+standard defined by a recognized standards body, or, in the case of
+interfaces specified for a particular programming language, one that
+is widely used among developers working in that language.
+
+ The "System Libraries" of an executable work include anything, other
+than the work as a whole, that (a) is included in the normal form of
+packaging a Major Component, but which is not part of that Major
+Component, and (b) serves only to enable use of the work with that
+Major Component, or to implement a Standard Interface for which an
+implementation is available to the public in source code form. A
+"Major Component", in this context, means a major essential component
+(kernel, window system, and so on) of the specific operating system
+(if any) on which the executable work runs, or a compiler used to
+produce the work, or an object code interpreter used to run it.
+
+ The "Corresponding Source" for a work in object code form means all
+the source code needed to generate, install, and (for an executable
+work) run the object code and to modify the work, including scripts to
+control those activities. However, it does not include the work's
+System Libraries, or general-purpose tools or generally available free
+programs which are used unmodified in performing those activities but
+which are not part of the work. For example, Corresponding Source
+includes interface definition files associated with source files for
+the work, and the source code for shared libraries and dynamically
+linked subprograms that the work is specifically designed to require,
+such as by intimate data communication or control flow between those
+subprograms and other parts of the work.
+
+ The Corresponding Source need not include anything that users
+can regenerate automatically from other parts of the Corresponding
+Source.
+
+ The Corresponding Source for a work in source code form is that
+same work.
+
+ 2. Basic Permissions.
+
+ All rights granted under this License are granted for the term of
+copyright on the Program, and are irrevocable provided the stated
+conditions are met. This License explicitly affirms your unlimited
+permission to run the unmodified Program. The output from running a
+covered work is covered by this License only if the output, given its
+content, constitutes a covered work. This License acknowledges your
+rights of fair use or other equivalent, as provided by copyright law.
+
+ You may make, run and propagate covered works that you do not
+convey, without conditions so long as your license otherwise remains
+in force. You may convey covered works to others for the sole purpose
+of having them make modifications exclusively for you, or provide you
+with facilities for running those works, provided that you comply with
+the terms of this License in conveying all material for which you do
+not control copyright. Those thus making or running the covered works
+for you must do so exclusively on your behalf, under your direction
+and control, on terms that prohibit them from making any copies of
+your copyrighted material outside their relationship with you.
+
+ Conveying under any other circumstances is permitted solely under
+the conditions stated below. Sublicensing is not allowed; section 10
+makes it unnecessary.
+
+ 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
+
+ No covered work shall be deemed part of an effective technological
+measure under any applicable law fulfilling obligations under article
+11 of the WIPO copyright treaty adopted on 20 December 1996, or
+similar laws prohibiting or restricting circumvention of such
+measures.
+
+ When you convey a covered work, you waive any legal power to forbid
+circumvention of technological measures to the extent such circumvention
+is effected by exercising rights under this License with respect to
+the covered work, and you disclaim any intention to limit operation or
+modification of the work as a means of enforcing, against the work's
+users, your or third parties' legal rights to forbid circumvention of
+technological measures.
+
+ 4. Conveying Verbatim Copies.
+
+ You may convey 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;
+keep intact all notices stating that this License and any
+non-permissive terms added in accord with section 7 apply to the code;
+keep intact all notices of the absence of any warranty; and give all
+recipients a copy of this License along with the Program.
+
+ You may charge any price or no price for each copy that you convey,
+and you may offer support or warranty protection for a fee.
+
+ 5. Conveying Modified Source Versions.
+
+ You may convey a work based on the Program, or the modifications to
+produce it from the Program, in the form of source code under the
+terms of section 4, provided that you also meet all of these conditions:
+
+ a) The work must carry prominent notices stating that you modified
+ it, and giving a relevant date.
+
+ b) The work must carry prominent notices stating that it is
+ released under this License and any conditions added under section
+ 7. This requirement modifies the requirement in section 4 to
+ "keep intact all notices".
+
+ c) You must license the entire work, as a whole, under this
+ License to anyone who comes into possession of a copy. This
+ License will therefore apply, along with any applicable section 7
+ additional terms, to the whole of the work, and all its parts,
+ regardless of how they are packaged. This License gives no
+ permission to license the work in any other way, but it does not
+ invalidate such permission if you have separately received it.
+
+ d) If the work has interactive user interfaces, each must display
+ Appropriate Legal Notices; however, if the Program has interactive
+ interfaces that do not display Appropriate Legal Notices, your
+ work need not make them do so.
+
+ A compilation of a covered work with other separate and independent
+works, which are not by their nature extensions of the covered work,
+and which are not combined with it such as to form a larger program,
+in or on a volume of a storage or distribution medium, is called an
+"aggregate" if the compilation and its resulting copyright are not
+used to limit the access or legal rights of the compilation's users
+beyond what the individual works permit. Inclusion of a covered work
+in an aggregate does not cause this License to apply to the other
+parts of the aggregate.
+
+ 6. Conveying Non-Source Forms.
+
+ You may convey a covered work in object code form under the terms
+of sections 4 and 5, provided that you also convey the
+machine-readable Corresponding Source under the terms of this License,
+in one of these ways:
+
+ a) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by the
+ Corresponding Source fixed on a durable physical medium
+ customarily used for software interchange.
+
+ b) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by a
+ written offer, valid for at least three years and valid for as
+ long as you offer spare parts or customer support for that product
+ model, to give anyone who possesses the object code either (1) a
+ copy of the Corresponding Source for all the software in the
+ product that is covered by this License, on a durable physical
+ medium customarily used for software interchange, for a price no
+ more than your reasonable cost of physically performing this
+ conveying of source, or (2) access to copy the
+ Corresponding Source from a network server at no charge.
+
+ c) Convey individual copies of the object code with a copy of the
+ written offer to provide the Corresponding Source. This
+ alternative is allowed only occasionally and noncommercially, and
+ only if you received the object code with such an offer, in accord
+ with subsection 6b.
+
+ d) Convey the object code by offering access from a designated
+ place (gratis or for a charge), and offer equivalent access to the
+ Corresponding Source in the same way through the same place at no
+ further charge. You need not require recipients to copy the
+ Corresponding Source along with the object code. If the place to
+ copy the object code is a network server, the Corresponding Source
+ may be on a different server (operated by you or a third party)
+ that supports equivalent copying facilities, provided you maintain
+ clear directions next to the object code saying where to find the
+ Corresponding Source. Regardless of what server hosts the
+ Corresponding Source, you remain obligated to ensure that it is
+ available for as long as needed to satisfy these requirements.
+
+ e) Convey the object code using peer-to-peer transmission, provided
+ you inform other peers where the object code and Corresponding
+ Source of the work are being offered to the general public at no
+ charge under subsection 6d.
+
+ A separable portion of the object code, whose source code is excluded
+from the Corresponding Source as a System Library, need not be
+included in conveying the object code work.
+
+ A "User Product" is either (1) a "consumer product", which means any
+tangible personal property which is normally used for personal, family,
+or household purposes, or (2) anything designed or sold for incorporation
+into a dwelling. In determining whether a product is a consumer product,
+doubtful cases shall be resolved in favor of coverage. For a particular
+product received by a particular user, "normally used" refers to a
+typical or common use of that class of product, regardless of the status
+of the particular user or of the way in which the particular user
+actually uses, or expects or is expected to use, the product. A product
+is a consumer product regardless of whether the product has substantial
+commercial, industrial or non-consumer uses, unless such uses represent
+the only significant mode of use of the product.
+
+ "Installation Information" for a User Product means any methods,
+procedures, authorization keys, or other information required to install
+and execute modified versions of a covered work in that User Product from
+a modified version of its Corresponding Source. The information must
+suffice to ensure that the continued functioning of the modified object
+code is in no case prevented or interfered with solely because
+modification has been made.
+
+ If you convey an object code work under this section in, or with, or
+specifically for use in, a User Product, and the conveying occurs as
+part of a transaction in which the right of possession and use of the
+User Product is transferred to the recipient in perpetuity or for a
+fixed term (regardless of how the transaction is characterized), the
+Corresponding Source conveyed under this section must be accompanied
+by the Installation Information. But this requirement does not apply
+if neither you nor any third party retains the ability to install
+modified object code on the User Product (for example, the work has
+been installed in ROM).
+
+ The requirement to provide Installation Information does not include a
+requirement to continue to provide support service, warranty, or updates
+for a work that has been modified or installed by the recipient, or for
+the User Product in which it has been modified or installed. Access to a
+network may be denied when the modification itself materially and
+adversely affects the operation of the network or violates the rules and
+protocols for communication across the network.
+
+ Corresponding Source conveyed, and Installation Information provided,
+in accord with this section must be in a format that is publicly
+documented (and with an implementation available to the public in
+source code form), and must require no special password or key for
+unpacking, reading or copying.
+
+ 7. Additional Terms.
+
+ "Additional permissions" are terms that supplement the terms of this
+License by making exceptions from one or more of its conditions.
+Additional permissions that are applicable to the entire Program shall
+be treated as though they were included in this License, to the extent
+that they are valid under applicable law. If additional permissions
+apply only to part of the Program, that part may be used separately
+under those permissions, but the entire Program remains governed by
+this License without regard to the additional permissions.
+
+ When you convey a copy of a covered work, you may at your option
+remove any additional permissions from that copy, or from any part of
+it. (Additional permissions may be written to require their own
+removal in certain cases when you modify the work.) You may place
+additional permissions on material, added by you to a covered work,
+for which you have or can give appropriate copyright permission.
+
+ Notwithstanding any other provision of this License, for material you
+add to a covered work, you may (if authorized by the copyright holders of
+that material) supplement the terms of this License with terms:
+
+ a) Disclaiming warranty or limiting liability differently from the
+ terms of sections 15 and 16 of this License; or
+
+ b) Requiring preservation of specified reasonable legal notices or
+ author attributions in that material or in the Appropriate Legal
+ Notices displayed by works containing it; or
+
+ c) Prohibiting misrepresentation of the origin of that material, or
+ requiring that modified versions of such material be marked in
+ reasonable ways as different from the original version; or
+
+ d) Limiting the use for publicity purposes of names of licensors or
+ authors of the material; or
+
+ e) Declining to grant rights under trademark law for use of some
+ trade names, trademarks, or service marks; or
+
+ f) Requiring indemnification of licensors and authors of that
+ material by anyone who conveys the material (or modified versions of
+ it) with contractual assumptions of liability to the recipient, for
+ any liability that these contractual assumptions directly impose on
+ those licensors and authors.
+
+ All other non-permissive additional terms are considered "further
+restrictions" within the meaning of section 10. If the Program as you
+received it, or any part of it, contains a notice stating that it is
+governed by this License along with a term that is a further
+restriction, you may remove that term. If a license document contains
+a further restriction but permits relicensing or conveying under this
+License, you may add to a covered work material governed by the terms
+of that license document, provided that the further restriction does
+not survive such relicensing or conveying.
+
+ If you add terms to a covered work in accord with this section, you
+must place, in the relevant source files, a statement of the
+additional terms that apply to those files, or a notice indicating
+where to find the applicable terms.
+
+ Additional terms, permissive or non-permissive, may be stated in the
+form of a separately written license, or stated as exceptions;
+the above requirements apply either way.
+
+ 8. Termination.
+
+ You may not propagate or modify a covered work except as expressly
+provided under this License. Any attempt otherwise to propagate or
+modify it is void, and will automatically terminate your rights under
+this License (including any patent licenses granted under the third
+paragraph of section 11).
+
+ However, if you cease all violation of this License, then your
+license from a particular copyright holder is reinstated (a)
+provisionally, unless and until the copyright holder explicitly and
+finally terminates your license, and (b) permanently, if the copyright
+holder fails to notify you of the violation by some reasonable means
+prior to 60 days after the cessation.
+
+ Moreover, your license from a particular copyright holder is
+reinstated permanently if the copyright holder notifies you of the
+violation by some reasonable means, this is the first time you have
+received notice of violation of this License (for any work) from that
+copyright holder, and you cure the violation prior to 30 days after
+your receipt of the notice.
+
+ Termination of your rights under this section does not terminate the
+licenses of parties who have received copies or rights from you under
+this License. If your rights have been terminated and not permanently
+reinstated, you do not qualify to receive new licenses for the same
+material under section 10.
+
+ 9. Acceptance Not Required for Having Copies.
+
+ You are not required to accept this License in order to receive or
+run a copy of the Program. Ancillary propagation of a covered work
+occurring solely as a consequence of using peer-to-peer transmission
+to receive a copy likewise does not require acceptance. However,
+nothing other than this License grants you permission to propagate or
+modify any covered work. These actions infringe copyright if you do
+not accept this License. Therefore, by modifying or propagating a
+covered work, you indicate your acceptance of this License to do so.
+
+ 10. Automatic Licensing of Downstream Recipients.
+
+ Each time you convey a covered work, the recipient automatically
+receives a license from the original licensors, to run, modify and
+propagate that work, subject to this License. You are not responsible
+for enforcing compliance by third parties with this License.
+
+ An "entity transaction" is a transaction transferring control of an
+organization, or substantially all assets of one, or subdividing an
+organization, or merging organizations. If propagation of a covered
+work results from an entity transaction, each party to that
+transaction who receives a copy of the work also receives whatever
+licenses to the work the party's predecessor in interest had or could
+give under the previous paragraph, plus a right to possession of the
+Corresponding Source of the work from the predecessor in interest, if
+the predecessor has it or can get it with reasonable efforts.
+
+ You may not impose any further restrictions on the exercise of the
+rights granted or affirmed under this License. For example, you may
+not impose a license fee, royalty, or other charge for exercise of
+rights granted under this License, and you may not initiate litigation
+(including a cross-claim or counterclaim in a lawsuit) alleging that
+any patent claim is infringed by making, using, selling, offering for
+sale, or importing the Program or any portion of it.
+
+ 11. Patents.
+
+ A "contributor" is a copyright holder who authorizes use under this
+License of the Program or a work on which the Program is based. The
+work thus licensed is called the contributor's "contributor version".
+
+ A contributor's "essential patent claims" are all patent claims
+owned or controlled by the contributor, whether already acquired or
+hereafter acquired, that would be infringed by some manner, permitted
+by this License, of making, using, or selling its contributor version,
+but do not include claims that would be infringed only as a
+consequence of further modification of the contributor version. For
+purposes of this definition, "control" includes the right to grant
+patent sublicenses in a manner consistent with the requirements of
+this License.
+
+ Each contributor grants you a non-exclusive, worldwide, royalty-free
+patent license under the contributor's essential patent claims, to
+make, use, sell, offer for sale, import and otherwise run, modify and
+propagate the contents of its contributor version.
+
+ In the following three paragraphs, a "patent license" is any express
+agreement or commitment, however denominated, not to enforce a patent
+(such as an express permission to practice a patent or covenant not to
+sue for patent infringement). To "grant" such a patent license to a
+party means to make such an agreement or commitment not to enforce a
+patent against the party.
+
+ If you convey a covered work, knowingly relying on a patent license,
+and the Corresponding Source of the work is not available for anyone
+to copy, free of charge and under the terms of this License, through a
+publicly available network server or other readily accessible means,
+then you must either (1) cause the Corresponding Source to be so
+available, or (2) arrange to deprive yourself of the benefit of the
+patent license for this particular work, or (3) arrange, in a manner
+consistent with the requirements of this License, to extend the patent
+license to downstream recipients. "Knowingly relying" means you have
+actual knowledge that, but for the patent license, your conveying the
+covered work in a country, or your recipient's use of the covered work
+in a country, would infringe one or more identifiable patents in that
+country that you have reason to believe are valid.
+
+ If, pursuant to or in connection with a single transaction or
+arrangement, you convey, or propagate by procuring conveyance of, a
+covered work, and grant a patent license to some of the parties
+receiving the covered work authorizing them to use, propagate, modify
+or convey a specific copy of the covered work, then the patent license
+you grant is automatically extended to all recipients of the covered
+work and works based on it.
+
+ A patent license is "discriminatory" if it does not include within
+the scope of its coverage, prohibits the exercise of, or is
+conditioned on the non-exercise of one or more of the rights that are
+specifically granted under this License. You may not convey a covered
+work if you are a party to an arrangement with a third party that is
+in the business of distributing software, under which you make payment
+to the third party based on the extent of your activity of conveying
+the work, and under which the third party grants, to any of the
+parties who would receive the covered work from you, a discriminatory
+patent license (a) in connection with copies of the covered work
+conveyed by you (or copies made from those copies), or (b) primarily
+for and in connection with specific products or compilations that
+contain the covered work, unless you entered into that arrangement,
+or that patent license was granted, prior to 28 March 2007.
+
+ Nothing in this License shall be construed as excluding or limiting
+any implied license or other defenses to infringement that may
+otherwise be available to you under applicable patent law.
+
+ 12. No Surrender of Others' Freedom.
+
+ If 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 convey a
+covered work so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you may
+not convey it at all. For example, if you agree to terms that obligate you
+to collect a royalty for further conveying from those to whom you convey
+the Program, the only way you could satisfy both those terms and this
+License would be to refrain entirely from conveying the Program.
+
+ 13. Use with the GNU Affero General Public License.
+
+ Notwithstanding any other provision of this License, you have
+permission to link or combine any covered work with a work licensed
+under version 3 of the GNU Affero General Public License into a single
+combined work, and to convey the resulting work. The terms of this
+License will continue to apply to the part which is the covered work,
+but the special requirements of the GNU Affero General Public License,
+section 13, concerning interaction through a network will apply to the
+combination as such.
+
+ 14. Revised Versions of this License.
+
+ The Free Software Foundation may publish revised and/or new versions of
+the GNU 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 that a certain numbered version of the GNU General
+Public License "or any later version" applies to it, you have the
+option of following the terms and conditions either of that numbered
+version or of any later version published by the Free Software
+Foundation. If the Program does not specify a version number of the
+GNU General Public License, you may choose any version ever published
+by the Free Software Foundation.
+
+ If the Program specifies that a proxy can decide which future
+versions of the GNU General Public License can be used, that proxy's
+public statement of acceptance of a version permanently authorizes you
+to choose that version for the Program.
+
+ Later license versions may give you additional or different
+permissions. However, no additional obligations are imposed on any
+author or copyright holder as a result of your choosing to follow a
+later version.
+
+ 15. Disclaimer of Warranty.
+
+ 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.
+
+ 16. Limitation of Liability.
+
+ IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
+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.
+
+ 17. Interpretation of Sections 15 and 16.
+
+ If the disclaimer of warranty and limitation of liability provided
+above cannot be given local legal effect according to their terms,
+reviewing courts shall apply local law that most closely approximates
+an absolute waiver of all civil liability in connection with the
+Program, unless a warranty or assumption of liability accompanies a
+copy of the Program in return for a fee.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Programs
+
+ 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
+state the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+ <one line to give the program's name and a brief idea of what it does.>
+ Copyright (C) <year> <name of author>
+
+ 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 3 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, see <http://www.gnu.org/licenses/>.
+
+Also add information on how to contact you by electronic and paper mail.
+
+ If the program does terminal interaction, make it output a short
+notice like this when it starts in an interactive mode:
+
+ <program> Copyright (C) <year> <name of author>
+ This program 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, your program's commands
+might be different; for a GUI interface, you would use an "about box".
+
+ You should also get your employer (if you work as a programmer) or school,
+if any, to sign a "copyright disclaimer" for the program, if necessary.
+For more information on this, and how to apply and follow the GNU GPL, see
+<http://www.gnu.org/licenses/>.
+
+ The GNU 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 Lesser General
+Public License instead of this License. But first, please read
+<http://www.gnu.org/philosophy/why-not-lgpl.html>.
--- /dev/null
+ GNU LESSER GENERAL PUBLIC LICENSE
+ Version 3, 29 June 2007
+
+ Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+
+ This version of the GNU Lesser General Public License incorporates
+the terms and conditions of version 3 of the GNU General Public
+License, supplemented by the additional permissions listed below.
+
+ 0. Additional Definitions.
+
+ As used herein, "this License" refers to version 3 of the GNU Lesser
+General Public License, and the "GNU GPL" refers to version 3 of the GNU
+General Public License.
+
+ "The Library" refers to a covered work governed by this License,
+other than an Application or a Combined Work as defined below.
+
+ An "Application" is any work that makes use of an interface provided
+by the Library, but which is not otherwise based on the Library.
+Defining a subclass of a class defined by the Library is deemed a mode
+of using an interface provided by the Library.
+
+ A "Combined Work" is a work produced by combining or linking an
+Application with the Library. The particular version of the Library
+with which the Combined Work was made is also called the "Linked
+Version".
+
+ The "Minimal Corresponding Source" for a Combined Work means the
+Corresponding Source for the Combined Work, excluding any source code
+for portions of the Combined Work that, considered in isolation, are
+based on the Application, and not on the Linked Version.
+
+ The "Corresponding Application Code" for a Combined Work means the
+object code and/or source code for the Application, including any data
+and utility programs needed for reproducing the Combined Work from the
+Application, but excluding the System Libraries of the Combined Work.
+
+ 1. Exception to Section 3 of the GNU GPL.
+
+ You may convey a covered work under sections 3 and 4 of this License
+without being bound by section 3 of the GNU GPL.
+
+ 2. Conveying Modified Versions.
+
+ If you modify a copy of the Library, and, in your modifications, a
+facility refers to a function or data to be supplied by an Application
+that uses the facility (other than as an argument passed when the
+facility is invoked), then you may convey a copy of the modified
+version:
+
+ a) under this License, provided that you make a good faith effort to
+ ensure that, in the event an Application does not supply the
+ function or data, the facility still operates, and performs
+ whatever part of its purpose remains meaningful, or
+
+ b) under the GNU GPL, with none of the additional permissions of
+ this License applicable to that copy.
+
+ 3. Object Code Incorporating Material from Library Header Files.
+
+ The object code form of an Application may incorporate material from
+a header file that is part of the Library. You may convey such object
+code under terms of your choice, provided that, if the incorporated
+material is not limited to numerical parameters, data structure
+layouts and accessors, or small macros, inline functions and templates
+(ten or fewer lines in length), you do both of the following:
+
+ a) Give prominent notice with each copy of the object code that the
+ Library is used in it and that the Library and its use are
+ covered by this License.
+
+ b) Accompany the object code with a copy of the GNU GPL and this license
+ document.
+
+ 4. Combined Works.
+
+ You may convey a Combined Work under terms of your choice that,
+taken together, effectively do not restrict modification of the
+portions of the Library contained in the Combined Work and reverse
+engineering for debugging such modifications, if you also do each of
+the following:
+
+ a) Give prominent notice with each copy of the Combined Work that
+ the Library is used in it and that the Library and its use are
+ covered by this License.
+
+ b) Accompany the Combined Work with a copy of the GNU GPL and this license
+ document.
+
+ c) For a Combined Work that displays copyright notices during
+ execution, include the copyright notice for the Library among
+ these notices, as well as a reference directing the user to the
+ copies of the GNU GPL and this license document.
+
+ d) Do one of the following:
+
+ 0) Convey the Minimal Corresponding Source under the terms of this
+ License, and the Corresponding Application Code in a form
+ suitable for, and under terms that permit, the user to
+ recombine or relink the Application with a modified version of
+ the Linked Version to produce a modified Combined Work, in the
+ manner specified by section 6 of the GNU GPL for conveying
+ Corresponding Source.
+
+ 1) Use a suitable shared library mechanism for linking with the
+ Library. A suitable mechanism is one that (a) uses at run time
+ a copy of the Library already present on the user's computer
+ system, and (b) will operate properly with a modified version
+ of the Library that is interface-compatible with the Linked
+ Version.
+
+ e) Provide Installation Information, but only if you would otherwise
+ be required to provide such information under section 6 of the
+ GNU GPL, and only to the extent that such information is
+ necessary to install and execute a modified version of the
+ Combined Work produced by recombining or relinking the
+ Application with a modified version of the Linked Version. (If
+ you use option 4d0, the Installation Information must accompany
+ the Minimal Corresponding Source and Corresponding Application
+ Code. If you use option 4d1, you must provide the Installation
+ Information in the manner specified by section 6 of the GNU GPL
+ for conveying Corresponding Source.)
+
+ 5. Combined Libraries.
+
+ 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 that are not Applications and are not covered by this
+License, and convey such a combined library under terms of your
+choice, if you do both of the following:
+
+ a) Accompany the combined library with a copy of the same work based
+ on the Library, uncombined with any other library facilities,
+ conveyed under the terms of this License.
+
+ b) Give prominent notice with the combined library that part of it
+ is a work based on the Library, and explaining where to find the
+ accompanying uncombined form of the same work.
+
+ 6. Revised Versions of the GNU Lesser General Public License.
+
+ The Free Software Foundation may publish revised and/or new versions
+of the GNU 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 as you received it specifies that a certain numbered version
+of the GNU Lesser General Public License "or any later version"
+applies to it, you have the option of following the terms and
+conditions either of that published version or of any later version
+published by the Free Software Foundation. If the Library as you
+received it does not specify a version number of the GNU Lesser
+General Public License, you may choose any version of the GNU Lesser
+General Public License ever published by the Free Software Foundation.
+
+ If the Library as you received it specifies that a proxy can decide
+whether future versions of the GNU Lesser General Public License shall
+apply, that proxy's public statement of acceptance of any version is
+permanent authorization for you to choose that version for the
+Library.
--- /dev/null
+# programs used for doc creation
+babl_fish_path_dhtml = $(top_builddir)/tests/babl_fish_path_dhtml$(EXEEXT)
+babl_fish_path_fitness = $(top_builddir)/tests/babl_fish_path_fitness$(EXEEXT)
+babl_html_dump = $(top_builddir)/tests/babl-html-dump$(EXEEXT)
+
+.SILENT:
+SUBDIRS= graphics
+DIST_SUBDIRS= graphics
+
+# The patterns used for html creation in the babl build system
+# is very small, and should probably be documented in a tutorial.
+#
+#
+#
+HTML_FILES = index-static.html \
+ index.html \
+ BablFishPath.html
+
+EXTRA_DIST= \
+ babl.css \
+ tools/xml_insert.sh \
+ tools/changelog2rss \
+ index-static.html.in \
+ COPYING \
+ COPYING.LESSER
+
+BUILT_EXTRA_DIST = index.html BablFishPath.html BablFishPath.txt
+
+CLEANFILES = README changelog.rss
+DISTCLEANFILES = index-static.html $(BUILT_EXTRA_DIST)
+
+all: $(HTML_FILES)
+
+
+BablFishPath.html: $(babl_fish_path_dhtml)
+ echo -n "HTML:"
+ echo -n " $@"
+ export BABL_PATH="$(top_builddir)/extensions:$(top_builddir)/extensions/.libs"; $< > $@ &&\
+ echo " [OK]" || echo " Fail"
+
+BablFishPath.txt: $(babl_fish_path_fitness)
+ echo -n "UTF8:"
+ echo -n " $@"
+ export BABL_PATH="$(top_builddir)/extensions:$(top_builddir)/extensions/.libs"; $< > $@ &&\
+ echo " [OK]" || echo " Fail"
+ if [ "x"$$CRUCIBLE_ID != "x" ] ;then echo;echo;cat $@;echo;echo;fi
+
+index.html: index-static.html \
+ $(babl_html_dump) \
+ $(top_srcdir)/AUTHORS \
+ $(top_srcdir)/TODO \
+ $(top_srcdir)/NEWS \
+ BablFishPath.txt \
+ Makefile.am
+ echo -n "HTML: $@"
+ cp $< $@
+ (which mktemp > /dev/null 2>&1 && TMPFILE=`mktemp` || TMPFILE="/tmp/babl_build_tempfile" ;\
+ export BABL_PATH="$(top_builddir)/extensions:$(top_builddir)/extensions/.libs"; $(babl_html_dump) > $$TMPFILE;\
+ $(SHELL) $(top_srcdir)/docs/tools/xml_insert.sh $@ BablBase $$TMPFILE;\
+ rm -f $$TMPFILE )
+ echo -n "."
+
+ $(SHELL) $(top_srcdir)/docs/tools/xml_insert.sh $@ BablFishPath BablFishPath.txt
+ $(SHELL) $(top_srcdir)/docs/tools/xml_insert.sh $@ AUTHORS $(top_srcdir)/AUTHORS
+ $(SHELL) $(top_srcdir)/docs/tools/xml_insert.sh $@ TODO $(top_srcdir)/TODO
+ $(SHELL) $(top_srcdir)/docs/tools/xml_insert.sh $@ NEWS $(top_srcdir)/NEWS
+ echo " [OK]"
+
+distclean-local:
+ if test $(srcdir) = .; then :; else \
+ rm -f $(BUILT_EXTRA_DIST); \
+ fi
+
+web: all graphics
+ echo -n " WEB: "
+ ping -c 1 $(WEBSITE_HOST) >/dev/null && \
+ (\
+ scp *.txt *.html *.css\
+ "$(WEBSITE_HOST):$(WEBSITE_LOCATION)/" >/dev/null && \
+ echo -n "."; \
+ scp graphics/*.png graphics/*.html\
+ "$(WEBSITE_HOST):$(WEBSITE_LOCATION)/graphics/" >/dev/null\
+ &&\
+ echo "[OK]"\
+ ||\
+ echo "FAIL scp failed (does dirs exist?)."\
+ )\
+ || \
+ (\
+ echo "FAIL $(WEBSITE_HOST) not reachable."\
+ )
--- /dev/null
+# Makefile.in generated by automake 1.15 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
+
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+VPATH = @srcdir@
+am__is_gnu_make = { \
+ if test -z '$(MAKELEVEL)'; then \
+ false; \
+ elif test -n '$(MAKE_HOST)'; then \
+ true; \
+ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+ true; \
+ else \
+ false; \
+ fi; \
+}
+am__make_running_with_option = \
+ case $${target_option-} in \
+ ?) ;; \
+ *) echo "am__make_running_with_option: internal error: invalid" \
+ "target option '$${target_option-}' specified" >&2; \
+ exit 1;; \
+ esac; \
+ has_opt=no; \
+ sane_makeflags=$$MAKEFLAGS; \
+ if $(am__is_gnu_make); then \
+ sane_makeflags=$$MFLAGS; \
+ else \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ bs=\\; \
+ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
+ esac; \
+ fi; \
+ skip_next=no; \
+ strip_trailopt () \
+ { \
+ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+ }; \
+ for flg in $$sane_makeflags; do \
+ test $$skip_next = yes && { skip_next=no; continue; }; \
+ case $$flg in \
+ *=*|--*) continue;; \
+ -*I) strip_trailopt 'I'; skip_next=yes;; \
+ -*I?*) strip_trailopt 'I';; \
+ -*O) strip_trailopt 'O'; skip_next=yes;; \
+ -*O?*) strip_trailopt 'O';; \
+ -*l) strip_trailopt 'l'; skip_next=yes;; \
+ -*l?*) strip_trailopt 'l';; \
+ -[dEDm]) skip_next=yes;; \
+ -[JT]) skip_next=yes;; \
+ esac; \
+ case $$flg in \
+ *$$target_option*) has_opt=yes; break;; \
+ esac; \
+ done; \
+ test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+target_triplet = @target@
+subdir = docs
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(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)/acinclude.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES = index-static.html
+CONFIG_CLEAN_VPATH_FILES =
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo " GEN " $@;
+am__v_GEN_1 =
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 =
+SOURCES =
+DIST_SOURCES =
+RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \
+ ctags-recursive dvi-recursive html-recursive info-recursive \
+ install-data-recursive install-dvi-recursive \
+ install-exec-recursive install-html-recursive \
+ install-info-recursive install-pdf-recursive \
+ install-ps-recursive install-recursive installcheck-recursive \
+ installdirs-recursive pdf-recursive ps-recursive \
+ tags-recursive uninstall-recursive
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
+RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
+ distclean-recursive maintainer-clean-recursive
+am__recursive_targets = \
+ $(RECURSIVE_TARGETS) \
+ $(RECURSIVE_CLEAN_TARGETS) \
+ $(am__extra_recursive_targets)
+AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
+ distdir
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates. Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+ BEGIN { nonempty = 0; } \
+ { items[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique. This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+ list='$(am__tagged_files)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | $(am__uniquify_input)`
+ETAGS = etags
+CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/index-static.html.in \
+ COPYING COPYING.LESSER
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+am__relativize = \
+ dir0=`pwd`; \
+ sed_first='s,^\([^/]*\)/.*$$,\1,'; \
+ sed_rest='s,^[^/]*/*,,'; \
+ sed_last='s,^.*/\([^/]*\)$$,\1,'; \
+ sed_butlast='s,/*[^/]*$$,,'; \
+ while test -n "$$dir1"; do \
+ first=`echo "$$dir1" | sed -e "$$sed_first"`; \
+ if test "$$first" != "."; then \
+ if test "$$first" = ".."; then \
+ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
+ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
+ else \
+ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
+ if test "$$first2" = "$$first"; then \
+ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
+ else \
+ dir2="../$$dir2"; \
+ fi; \
+ dir0="$$dir0"/"$$first"; \
+ fi; \
+ fi; \
+ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
+ done; \
+ reldir="$$dir2"
+ACLOCAL = @ACLOCAL@
+ALTIVEC_EXTRA_CFLAGS = @ALTIVEC_EXTRA_CFLAGS@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AR = @AR@
+AS = @AS@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+BABL_API_VERSION = @BABL_API_VERSION@
+BABL_BINARY_AGE = @BABL_BINARY_AGE@
+BABL_CURRENT_MINUS_AGE = @BABL_CURRENT_MINUS_AGE@
+BABL_INTERFACE_AGE = @BABL_INTERFACE_AGE@
+BABL_LIBRARY_VERSION = @BABL_LIBRARY_VERSION@
+BABL_MAJOR_VERSION = @BABL_MAJOR_VERSION@
+BABL_MICRO_VERSION = @BABL_MICRO_VERSION@
+BABL_MINOR_VERSION = @BABL_MINOR_VERSION@
+BABL_REAL_VERSION = @BABL_REAL_VERSION@
+BABL_RELEASE = @BABL_RELEASE@
+BABL_UNSTABLE = @BABL_UNSTABLE@
+BABL_VERSION = @BABL_VERSION@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DIR_SEP = @DIR_SEP@
+DLLTOOL = @DLLTOOL@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+F16C_EXTRA_CFLAGS = @F16C_EXTRA_CFLAGS@
+FGREP = @FGREP@
+GREP = @GREP@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
+MATH_LIB = @MATH_LIB@
+MKDIR_P = @MKDIR_P@
+MMX_EXTRA_CFLAGS = @MMX_EXTRA_CFLAGS@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEP = @PATH_SEP@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+RANLIB = @RANLIB@
+RSVG = @RSVG@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SHREXT = @SHREXT@
+SSE2_EXTRA_CFLAGS = @SSE2_EXTRA_CFLAGS@
+SSE4_1_EXTRA_CFLAGS = @SSE4_1_EXTRA_CFLAGS@
+SSE_EXTRA_CFLAGS = @SSE_EXTRA_CFLAGS@
+STRIP = @STRIP@
+THREAD_LIB = @THREAD_LIB@
+VERSION = @VERSION@
+W3M = @W3M@
+WEBSITE_HOST = @WEBSITE_HOST@
+WEBSITE_LOCATION = @WEBSITE_LOCATION@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target = @target@
+target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+
+# programs used for doc creation
+babl_fish_path_dhtml = $(top_builddir)/tests/babl_fish_path_dhtml$(EXEEXT)
+babl_fish_path_fitness = $(top_builddir)/tests/babl_fish_path_fitness$(EXEEXT)
+babl_html_dump = $(top_builddir)/tests/babl-html-dump$(EXEEXT)
+SUBDIRS = graphics
+DIST_SUBDIRS = graphics
+
+# The patterns used for html creation in the babl build system
+# is very small, and should probably be documented in a tutorial.
+#
+#
+#
+HTML_FILES = index-static.html \
+ index.html \
+ BablFishPath.html
+
+EXTRA_DIST = \
+ babl.css \
+ tools/xml_insert.sh \
+ tools/changelog2rss \
+ index-static.html.in \
+ COPYING \
+ COPYING.LESSER
+
+BUILT_EXTRA_DIST = index.html BablFishPath.html BablFishPath.txt
+CLEANFILES = README changelog.rss
+DISTCLEANFILES = index-static.html $(BUILT_EXTRA_DIST)
+all: all-recursive
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign docs/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --foreign docs/Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+index-static.html: $(top_builddir)/config.status $(srcdir)/index-static.html.in
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+
+# This directory's subdirectories are mostly independent; you can cd
+# into them and run 'make' without going through this Makefile.
+# To change the values of 'make' variables: instead of editing Makefiles,
+# (1) if the variable is set in 'config.status', edit 'config.status'
+# (which will cause the Makefiles to be regenerated when you run 'make');
+# (2) otherwise, pass the desired values on the 'make' command line.
+$(am__recursive_targets):
+ @fail=; \
+ if $(am__make_keepgoing); then \
+ failcom='fail=yes'; \
+ else \
+ failcom='exit 1'; \
+ fi; \
+ dot_seen=no; \
+ target=`echo $@ | sed s/-recursive//`; \
+ case "$@" in \
+ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+ *) list='$(SUBDIRS)' ;; \
+ esac; \
+ for subdir in $$list; do \
+ echo "Making $$target in $$subdir"; \
+ if test "$$subdir" = "."; then \
+ dot_seen=yes; \
+ local_target="$$target-am"; \
+ else \
+ local_target="$$target"; \
+ fi; \
+ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ || eval $$failcom; \
+ done; \
+ if test "$$dot_seen" = "no"; then \
+ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
+ fi; test -z "$$fail"
+
+ID: $(am__tagged_files)
+ $(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-recursive
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ set x; \
+ here=`pwd`; \
+ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
+ include_option=--etags-include; \
+ empty_fix=.; \
+ else \
+ include_option=--include; \
+ empty_fix=; \
+ fi; \
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
+ test ! -f $$subdir/TAGS || \
+ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
+ fi; \
+ done; \
+ $(am__define_uniq_tagged_files); \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
+ fi
+ctags: ctags-recursive
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ $(am__define_uniq_tagged_files); \
+ test -z "$(CTAGS_ARGS)$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-recursive
+
+cscopelist-am: $(am__tagged_files)
+ list='$(am__tagged_files)'; \
+ case "$(srcdir)" in \
+ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+ *) sdir=$(subdir)/$(srcdir) ;; \
+ esac; \
+ for i in $$list; do \
+ if test -f "$$i"; then \
+ echo "$(subdir)/$$i"; \
+ else \
+ echo "$$sdir/$$i"; \
+ fi; \
+ done >> $(top_builddir)/cscope.files
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+ @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
+ $(am__make_dryrun) \
+ || test -d "$(distdir)/$$subdir" \
+ || $(MKDIR_P) "$(distdir)/$$subdir" \
+ || exit 1; \
+ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
+ $(am__relativize); \
+ new_distdir=$$reldir; \
+ dir1=$$subdir; dir2="$(top_distdir)"; \
+ $(am__relativize); \
+ new_top_distdir=$$reldir; \
+ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
+ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
+ ($(am__cd) $$subdir && \
+ $(MAKE) $(AM_MAKEFLAGS) \
+ top_distdir="$$new_top_distdir" \
+ distdir="$$new_distdir" \
+ am__remove_distdir=: \
+ am__skip_length_check=: \
+ am__skip_mode_fix=: \
+ distdir) \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-recursive
+all-am: Makefile
+installdirs: installdirs-recursive
+installdirs-am:
+install: install-recursive
+install-exec: install-exec-recursive
+install-data: install-data-recursive
+uninstall: uninstall-recursive
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-recursive
+install-strip:
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
+mostlyclean-generic:
+
+clean-generic:
+ -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+ -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-recursive
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-recursive
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-local \
+ distclean-tags
+
+dvi: dvi-recursive
+
+dvi-am:
+
+html: html-recursive
+
+html-am:
+
+info: info-recursive
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-recursive
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-recursive
+
+install-html-am:
+
+install-info: install-info-recursive
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-recursive
+
+install-pdf-am:
+
+install-ps: install-ps-recursive
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-recursive
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-recursive
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-recursive
+
+pdf-am:
+
+ps: ps-recursive
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: $(am__recursive_targets) install-am install-strip
+
+.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \
+ check-am clean clean-generic clean-libtool cscopelist-am ctags \
+ ctags-am distclean distclean-generic distclean-libtool \
+ distclean-local distclean-tags distdir dvi dvi-am html html-am \
+ info info-am install install-am install-data install-data-am \
+ install-dvi install-dvi-am install-exec install-exec-am \
+ install-html install-html-am install-info install-info-am \
+ install-man install-pdf install-pdf-am install-ps \
+ install-ps-am install-strip installcheck installcheck-am \
+ installdirs installdirs-am maintainer-clean \
+ maintainer-clean-generic mostlyclean mostlyclean-generic \
+ mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \
+ uninstall-am
+
+.PRECIOUS: Makefile
+
+
+.SILENT:
+
+all: $(HTML_FILES)
+
+BablFishPath.html: $(babl_fish_path_dhtml)
+ echo -n "HTML:"
+ echo -n " $@"
+ export BABL_PATH="$(top_builddir)/extensions:$(top_builddir)/extensions/.libs"; $< > $@ &&\
+ echo " [OK]" || echo " Fail"
+
+BablFishPath.txt: $(babl_fish_path_fitness)
+ echo -n "UTF8:"
+ echo -n " $@"
+ export BABL_PATH="$(top_builddir)/extensions:$(top_builddir)/extensions/.libs"; $< > $@ &&\
+ echo " [OK]" || echo " Fail"
+ if [ "x"$$CRUCIBLE_ID != "x" ] ;then echo;echo;cat $@;echo;echo;fi
+
+index.html: index-static.html \
+ $(babl_html_dump) \
+ $(top_srcdir)/AUTHORS \
+ $(top_srcdir)/TODO \
+ $(top_srcdir)/NEWS \
+ BablFishPath.txt \
+ Makefile.am
+ echo -n "HTML: $@"
+ cp $< $@
+ (which mktemp > /dev/null 2>&1 && TMPFILE=`mktemp` || TMPFILE="/tmp/babl_build_tempfile" ;\
+ export BABL_PATH="$(top_builddir)/extensions:$(top_builddir)/extensions/.libs"; $(babl_html_dump) > $$TMPFILE;\
+ $(SHELL) $(top_srcdir)/docs/tools/xml_insert.sh $@ BablBase $$TMPFILE;\
+ rm -f $$TMPFILE )
+ echo -n "."
+
+ $(SHELL) $(top_srcdir)/docs/tools/xml_insert.sh $@ BablFishPath BablFishPath.txt
+ $(SHELL) $(top_srcdir)/docs/tools/xml_insert.sh $@ AUTHORS $(top_srcdir)/AUTHORS
+ $(SHELL) $(top_srcdir)/docs/tools/xml_insert.sh $@ TODO $(top_srcdir)/TODO
+ $(SHELL) $(top_srcdir)/docs/tools/xml_insert.sh $@ NEWS $(top_srcdir)/NEWS
+ echo " [OK]"
+
+distclean-local:
+ if test $(srcdir) = .; then :; else \
+ rm -f $(BUILT_EXTRA_DIST); \
+ fi
+
+web: all graphics
+ echo -n " WEB: "
+ ping -c 1 $(WEBSITE_HOST) >/dev/null && \
+ (\
+ scp *.txt *.html *.css\
+ "$(WEBSITE_HOST):$(WEBSITE_LOCATION)/" >/dev/null && \
+ echo -n "."; \
+ scp graphics/*.png graphics/*.html\
+ "$(WEBSITE_HOST):$(WEBSITE_LOCATION)/graphics/" >/dev/null\
+ &&\
+ echo "[OK]"\
+ ||\
+ echo "FAIL scp failed (does dirs exist?)."\
+ )\
+ || \
+ (\
+ echo "FAIL $(WEBSITE_HOST) not reachable."\
+ )
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
--- /dev/null
+
+ body {
+ margin: 0;
+ padding: 0;
+ }
+ div.paper {
+ background-color: #fff;
+ margin: 1em;
+ margin-right: 3em;
+ margin-left: 280px;
+ }
+ iframe {
+ background-color: #aaa;
+ }
+ div.content {
+ padding: 1em;
+ padding-right: 3em;
+ padding-left: 2em;
+ max-width: 45em;
+ }
+ div.graphic {
+ position: absolute;
+ position: fixed;
+ color: #fff;
+ width: 256px;
+ height: 362px;
+ bottom: 0;
+ left: 0;
+ text-align: right;
+ padding-bottom: 1em;
+ }
+ p {
+ line-height: 1.2em;
+ }
+ h1 {
+ margin-top: 0em;
+ }
+ h1, h2, h3 {
+ color: #112266;
+ }
+ h1 {
+ font-size: 2em;
+ }
+ h2 {
+ font-size: 1.5em;
+ }
+ h3 {
+ font-size: 1.2em;
+ }
+ dl {
+ margin-top: 1em;
+ margin-bottom: 1em;
+ }
+
+ div.expander {
+ border: 1px solid #bbb;
+ }
+ div.expander_title {
+ border-bottom: 1px solid #aaa;
+ }
+ div.expander_content {
+ margin-left: 3em;
+ display: none;
+ padding-bottom: 1em;
+ }
+ div.expander_content dl{
+ margin: 0;
+ padding: 0;
+ }
+
+ table th {
+ font-weight: normal;
+ background-color: #ccc;
+ text-align: left;
+ }
+ span.component {
+ background-color: #060;
+ padding-left: 0.5em;
+ padding-top: 0.1em;
+ padding-bottom: 0.1em;
+ display: block;
+ float: left;
+ overflow: hidden;
+ width: 4em;
+ color: white;
+ border: 1px solid gray;
+ border: 1px solid white;
+ clear: both;
+ }
+ span.type {
+ display: block;
+ background-color: #006;
+ padding-left: 0.5em;
+ clear: both;
+ padding-top: 0.1em;
+ padding-bottom: 0.1em;
+ float: left;
+ overflow: hidden;
+ width: 4em;
+ color: white;
+ border: 1px solid white;
+ }
+
+ .nopad {
+ margin :0;
+ padding:0;
+ }
+
+ td.component {
+ background-color: #060;
+ padding-left: 0.5em;
+ padding-top: 0.1em;
+ padding-bottom: 0.1em;
+ overflow: hidden;
+ width: 4em;
+ color: white;
+ border: 1px solid white;
+ }
+ td.type {
+ background-color: #006;
+ padding-left: 0.5em;
+ padding-top: 0.1em;
+ padding-bottom: 0.1em;
+ overflow: hidden;
+ width: 4em;
+ color: white;
+ border: 1px solid white;
+ }
+ span.spacer {
+ float: left;
+ display: block;
+ overflow: hidden;
+ width: 0.2em;
+ }
+ span.name {
+ width: 100%;
+ display: block;
+ overflow: hidden;
+ border-top: 1px solid #ccc;
+ }
+ span.string {
+ color: #060;
+ }
+ span.function {
+ color: #006;
+ }
+ span.paren {
+ color: #555;
+ }
+ span.NULL {
+ color: #555;
+ }
+ pre.authors {
+ font-size: 100%;
+ font-family: FreeSans, Verdana, sans-serif;
+ position: relative;
+ top: -2em;
+ }
+ img.BablFish {
+ float: right;
+ position: relative;
+ top: -8px;
+ border: none;
+ }
+ @media screen {
+ body {
+ background-color: #405070;
+ font-family: FreeSans, Verdana, sans-serif;
+ }
+ a {
+ text-decoration: none;
+ }
+ pre {
+ overflow: auto;
+ }
+ div.toc {
+ position: absolute;
+ position: fixed;
+ width: 256px;
+ top: 0;
+ left: 0;
+ padding-top: 2em;
+ z-index: 2;
+ }
+ div.toc ul {
+ padding-left: 0em;
+ float: right;
+ margin: 0;
+ }
+ div.toc li {
+ display: block;
+ padding-right: 1em;
+ }
+ div.toc li a{
+ display: block;
+ padding-left: 1em;
+ padding-right: 1em;
+ color: #fff;
+ }
+ div.toc li a:hover {
+ color: #fff;
+ background-color: #506080;
+ }
+ div.paper {
+ max-width: 50em;
+ -moz-border-radius: 1em;
+ }
+ div.content {
+ }
+ div.graphic {
+ background: url("graphics/babl-a4poster.png");
+ z-index: 1;
+ }
+ div.print {
+ display: none;
+ }
+ }
+
+ @media print {
+ body {
+ background-color: none;
+ font-family: FreeSans, Verdana, sans-serif;
+ }
+ a, em {
+ /* XXX: work-around for rendering bug, should investigate whether
+ * this issue is fixed in the latest gecko
+ */
+ padding-right: 3em;
+ padding-left: 1em;
+ }
+ a {
+ text-decoration: none;
+ }
+
+ div.toc ul {
+ padding-left: 0em;
+ float: right;
+ margin: 0;
+ }
+ div.toc li {
+ display: block;
+ padding-right: 1em;
+ }
+ div.toc li a{
+ display: block;
+ padding-left: 1em;
+ padding-right: 1em;
+ color: #fff;
+ }
+ div.toc li a:hover {
+ color: #fff;
+ background-color: #506080;
+ }
+ div.toc ul {
+ padding-left: 0em;
+ float: none;
+ margin: 0;
+ margin-left: 1em;
+ }
+ div.toc {
+ position: absolute;
+ width: 256px;
+ top: 0;
+ left: 2em;
+ padding-top: 2em;
+ z-index: 2;
+ }
+ div.toc ul {
+ margin-left: 0;
+ }
+ div.toc li a {
+ color : #000;
+ }
+ div toc h2 {
+ margin: 0;
+ padding: 0;
+ }
+ h1 {
+ margin-left: -0.75em;
+ }
+ h2 {
+ margin-left: -1em;
+ }
+ span.component {
+ background-color: #7f7;
+ color: black;
+ }
+ span.type {
+ background-color: #aaf;
+ color: black;
+ }
+ table th {
+ font-weight: bold;
+ }
+ div.print_title {
+ position: absolute;
+ top: 3em;
+ padding-left: 2em;
+ margin-left: 280px;
+ }
+ div.paper {
+ padding-top: 4em;
+ }
+ div.graphic {
+ background-color: #bbf;
+ height: 100%;
+ }
+ div.graphic img {
+ position: absolute;
+ bottom: 0;
+ left: 0;
+ }
+ div.screen {
+ display: none;
+ }
+ }
--- /dev/null
+.SILENT:
+
+if HAVE_RSVG
+PNG_FILES = \
+ babl-a4poster.png \
+ babl-16x16.png \
+ babl-48x48.png
+endif
+
+SVG_FILES = \
+ babl-a4poster.svg \
+ babl-16x16.svg \
+ babl-48x48.svg
+
+EXTRA_DIST = \
+ index.html \
+ $(PNG_FILES) \
+ $(SVG_FILES)
+
+MAINTAINERCLEANFILES = $(PNG_FILES)
+
+all: $(MAINTAINERCLEANFILES)
+
+RSVG_CMD = echo -n " SVG: $@" ;\
+ $(RSVG) -o $@ $< \
+ &&\
+ echo " [OK]"\
+ ||\
+ echo " FAIL"
+
+if HAVE_RSVG
+dist-check-rsvg:
+
+.svg.png:
+ $(RSVG_CMD)
+#-e $@ $< 2>/dev/null
+
+# the png version of the a4 poster is used as a webgraphic
+# , thus it is rendered with the background alpha set to
+# 0.0
+babl-a4poster.png: babl-a4poster.svg
+ echo -n " SVG: $@" ;\
+ $(RSVG) -w 256 -o $@ $< \
+ &&\
+ echo " [OK]"\
+ ||\
+ echo " FAIL"
+else
+dist-check-rsvg:
+ @echo "*** rsvg must be available in order to make dist"
+ @false
+endif
+
+
+dist-hook: dist-check-rsvg
--- /dev/null
+# Makefile.in generated by automake 1.15 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
+
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+VPATH = @srcdir@
+am__is_gnu_make = { \
+ if test -z '$(MAKELEVEL)'; then \
+ false; \
+ elif test -n '$(MAKE_HOST)'; then \
+ true; \
+ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+ true; \
+ else \
+ false; \
+ fi; \
+}
+am__make_running_with_option = \
+ case $${target_option-} in \
+ ?) ;; \
+ *) echo "am__make_running_with_option: internal error: invalid" \
+ "target option '$${target_option-}' specified" >&2; \
+ exit 1;; \
+ esac; \
+ has_opt=no; \
+ sane_makeflags=$$MAKEFLAGS; \
+ if $(am__is_gnu_make); then \
+ sane_makeflags=$$MFLAGS; \
+ else \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ bs=\\; \
+ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
+ esac; \
+ fi; \
+ skip_next=no; \
+ strip_trailopt () \
+ { \
+ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+ }; \
+ for flg in $$sane_makeflags; do \
+ test $$skip_next = yes && { skip_next=no; continue; }; \
+ case $$flg in \
+ *=*|--*) continue;; \
+ -*I) strip_trailopt 'I'; skip_next=yes;; \
+ -*I?*) strip_trailopt 'I';; \
+ -*O) strip_trailopt 'O'; skip_next=yes;; \
+ -*O?*) strip_trailopt 'O';; \
+ -*l) strip_trailopt 'l'; skip_next=yes;; \
+ -*l?*) strip_trailopt 'l';; \
+ -[dEDm]) skip_next=yes;; \
+ -[JT]) skip_next=yes;; \
+ esac; \
+ case $$flg in \
+ *$$target_option*) has_opt=yes; break;; \
+ esac; \
+ done; \
+ test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+target_triplet = @target@
+subdir = docs/graphics
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(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)/acinclude.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo " GEN " $@;
+am__v_GEN_1 =
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 =
+SOURCES =
+DIST_SOURCES =
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+am__DIST_COMMON = $(srcdir)/Makefile.in
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ALTIVEC_EXTRA_CFLAGS = @ALTIVEC_EXTRA_CFLAGS@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AR = @AR@
+AS = @AS@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+BABL_API_VERSION = @BABL_API_VERSION@
+BABL_BINARY_AGE = @BABL_BINARY_AGE@
+BABL_CURRENT_MINUS_AGE = @BABL_CURRENT_MINUS_AGE@
+BABL_INTERFACE_AGE = @BABL_INTERFACE_AGE@
+BABL_LIBRARY_VERSION = @BABL_LIBRARY_VERSION@
+BABL_MAJOR_VERSION = @BABL_MAJOR_VERSION@
+BABL_MICRO_VERSION = @BABL_MICRO_VERSION@
+BABL_MINOR_VERSION = @BABL_MINOR_VERSION@
+BABL_REAL_VERSION = @BABL_REAL_VERSION@
+BABL_RELEASE = @BABL_RELEASE@
+BABL_UNSTABLE = @BABL_UNSTABLE@
+BABL_VERSION = @BABL_VERSION@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DIR_SEP = @DIR_SEP@
+DLLTOOL = @DLLTOOL@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+F16C_EXTRA_CFLAGS = @F16C_EXTRA_CFLAGS@
+FGREP = @FGREP@
+GREP = @GREP@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
+MATH_LIB = @MATH_LIB@
+MKDIR_P = @MKDIR_P@
+MMX_EXTRA_CFLAGS = @MMX_EXTRA_CFLAGS@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEP = @PATH_SEP@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+RANLIB = @RANLIB@
+RSVG = @RSVG@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SHREXT = @SHREXT@
+SSE2_EXTRA_CFLAGS = @SSE2_EXTRA_CFLAGS@
+SSE4_1_EXTRA_CFLAGS = @SSE4_1_EXTRA_CFLAGS@
+SSE_EXTRA_CFLAGS = @SSE_EXTRA_CFLAGS@
+STRIP = @STRIP@
+THREAD_LIB = @THREAD_LIB@
+VERSION = @VERSION@
+W3M = @W3M@
+WEBSITE_HOST = @WEBSITE_HOST@
+WEBSITE_LOCATION = @WEBSITE_LOCATION@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target = @target@
+target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+@HAVE_RSVG_TRUE@PNG_FILES = \
+@HAVE_RSVG_TRUE@ babl-a4poster.png \
+@HAVE_RSVG_TRUE@ babl-16x16.png \
+@HAVE_RSVG_TRUE@ babl-48x48.png
+
+SVG_FILES = \
+ babl-a4poster.svg \
+ babl-16x16.svg \
+ babl-48x48.svg
+
+EXTRA_DIST = \
+ index.html \
+ $(PNG_FILES) \
+ $(SVG_FILES)
+
+MAINTAINERCLEANFILES = $(PNG_FILES)
+RSVG_CMD = echo -n " SVG: $@" ;\
+ $(RSVG) -o $@ $< \
+ &&\
+ echo " [OK]"\
+ ||\
+ echo " FAIL"
+
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .png .svg
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign docs/graphics/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --foreign docs/graphics/Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+tags TAGS:
+
+ctags CTAGS:
+
+cscope cscopelist:
+
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+ $(MAKE) $(AM_MAKEFLAGS) \
+ top_distdir="$(top_distdir)" distdir="$(distdir)" \
+ dist-hook
+check-am: all-am
+check: check-am
+all-am: Makefile
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+ -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
+clean: clean-am
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: install-am install-strip
+
+.PHONY: all all-am check check-am clean clean-generic clean-libtool \
+ cscopelist-am ctags-am dist-hook distclean distclean-generic \
+ distclean-libtool distdir dvi dvi-am html html-am info info-am \
+ install install-am install-data install-data-am install-dvi \
+ install-dvi-am install-exec install-exec-am install-html \
+ install-html-am install-info install-info-am install-man \
+ install-pdf install-pdf-am install-ps install-ps-am \
+ install-strip installcheck installcheck-am installdirs \
+ maintainer-clean maintainer-clean-generic mostlyclean \
+ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+ tags-am uninstall uninstall-am
+
+.PRECIOUS: Makefile
+
+.SILENT:
+
+all: $(MAINTAINERCLEANFILES)
+
+@HAVE_RSVG_TRUE@dist-check-rsvg:
+
+@HAVE_RSVG_TRUE@.svg.png:
+@HAVE_RSVG_TRUE@ $(RSVG_CMD)
+#-e $@ $< 2>/dev/null
+
+# the png version of the a4 poster is used as a webgraphic
+# , thus it is rendered with the background alpha set to
+# 0.0
+@HAVE_RSVG_TRUE@babl-a4poster.png: babl-a4poster.svg
+@HAVE_RSVG_TRUE@ echo -n " SVG: $@" ;\
+@HAVE_RSVG_TRUE@ $(RSVG) -w 256 -o $@ $< \
+@HAVE_RSVG_TRUE@ &&\
+@HAVE_RSVG_TRUE@ echo " [OK]"\
+@HAVE_RSVG_TRUE@ ||\
+@HAVE_RSVG_TRUE@ echo " FAIL"
+@HAVE_RSVG_FALSE@dist-check-rsvg:
+@HAVE_RSVG_FALSE@ @echo "*** rsvg must be available in order to make dist"
+@HAVE_RSVG_FALSE@ @false
+
+dist-hook: dist-check-rsvg
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://web.resource.org/cc/"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16px"
+ height="16px"
+ id="svg1374"
+ sodipodi:version="0.32"
+ inkscape:version="0.41"
+ sodipodi:docbase="/home/pippin/src/babl/docs/graphics"
+ sodipodi:docname="babl-16x16.svg">
+ <defs
+ id="defs3">
+ <radialGradient
+ r="7.7136898"
+ fy="167.31000"
+ fx="297.30670"
+ cy="167.35597"
+ cx="297.26108"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient22551"
+ xlink:href="#linearGradient3769"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.054159"
+ fy="173.68797"
+ fx="293.63730"
+ cy="173.68797"
+ cx="293.63730"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient22549"
+ xlink:href="#linearGradient3775"
+ inkscape:collect="always" />
+ <radialGradient
+ r="14.441721"
+ fy="166.15393"
+ fx="293.64859"
+ cy="166.39696"
+ cx="293.51672"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient22547"
+ xlink:href="#linearGradient3737"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.772598"
+ fy="182.92325"
+ fx="292.91949"
+ cy="182.19415"
+ cx="292.79327"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient22545"
+ xlink:href="#linearGradient3725"
+ inkscape:collect="always" />
+ <linearGradient
+ id="linearGradient3769">
+ <stop
+ id="stop3771"
+ offset="0.0000000"
+ style="stop-color:#ffffff;stop-opacity:0.58415842;" />
+ <stop
+ id="stop3773"
+ offset="1"
+ style="stop-color:#dcd7ff;stop-opacity:0;" />
+ </linearGradient>
+ <radialGradient
+ r="7.7136898"
+ fy="167.31000"
+ fx="297.30670"
+ cy="167.35597"
+ cx="297.26108"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient22543"
+ xlink:href="#linearGradient3769"
+ inkscape:collect="always" />
+ <linearGradient
+ id="linearGradient3775">
+ <stop
+ id="stop3777"
+ offset="0.0000000"
+ style="stop-color:#ffffff;stop-opacity:0.0000000;" />
+ <stop
+ id="stop3783"
+ offset="0.98000002"
+ style="stop-color:#ffffff;stop-opacity:0.039603960;" />
+ <stop
+ id="stop3779"
+ offset="1.0000000"
+ style="stop-color:#ffffff;stop-opacity:0.079207920;" />
+ </linearGradient>
+ <radialGradient
+ r="16.054159"
+ fy="173.68797"
+ fx="293.63730"
+ cy="173.68797"
+ cx="293.63730"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient22541"
+ xlink:href="#linearGradient3775"
+ inkscape:collect="always" />
+ <radialGradient
+ r="14.441721"
+ fy="166.15393"
+ fx="293.64859"
+ cy="166.39696"
+ cx="293.51672"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient22539"
+ xlink:href="#linearGradient3737"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.772598"
+ fy="182.92325"
+ fx="292.91949"
+ cy="182.19415"
+ cx="292.79327"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient22537"
+ xlink:href="#linearGradient3725"
+ inkscape:collect="always" />
+ <linearGradient
+ id="linearGradient3737">
+ <stop
+ id="stop3739"
+ offset="0.0000000"
+ style="stop-color:#ffffff;stop-opacity:0.25098041;" />
+ <stop
+ id="stop3787"
+ offset="0.57692307"
+ style="stop-color:#ffffff;stop-opacity:0.12549020;" />
+ <stop
+ id="stop3741"
+ offset="1.0000000"
+ style="stop-color:#ffffff;stop-opacity:0.0000000;" />
+ </linearGradient>
+ <radialGradient
+ r="14.441721"
+ fy="166.15393"
+ fx="293.64859"
+ cy="166.39696"
+ cx="293.51672"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient22535"
+ xlink:href="#linearGradient3737"
+ inkscape:collect="always" />
+ <linearGradient
+ id="linearGradient3725">
+ <stop
+ id="stop3727"
+ offset="0.0000000"
+ style="stop-color:#020202;stop-opacity:0.24752475;" />
+ <stop
+ id="stop3789"
+ offset="0.42307693"
+ style="stop-color:#000000;stop-opacity:0.12549020;" />
+ <stop
+ id="stop3729"
+ offset="1.0000000"
+ style="stop-color:#000000;stop-opacity:0.0000000;" />
+ </linearGradient>
+ <radialGradient
+ r="16.772598"
+ fy="182.92325"
+ fx="292.91949"
+ cy="182.19415"
+ cx="292.79327"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient22533"
+ xlink:href="#linearGradient3725"
+ inkscape:collect="always" />
+ <linearGradient
+ id="linearGradient2098">
+ <stop
+ id="stop2100"
+ offset="0"
+ style="stop-color:#003f00;stop-opacity:1;" />
+ <stop
+ id="stop2102"
+ offset="1.0000000"
+ style="stop-color:#319f31;stop-opacity:1.0000000;" />
+ </linearGradient>
+ <linearGradient
+ y2="173.68797"
+ x2="309.19147"
+ y1="173.68797"
+ x1="278.08313"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient22531"
+ xlink:href="#linearGradient2098"
+ inkscape:collect="always" />
+ <linearGradient
+ id="linearGradient2106">
+ <stop
+ id="stop2108"
+ offset="0.0000000"
+ style="stop-color:#006200;stop-opacity:1.0000000;" />
+ <stop
+ id="stop2110"
+ offset="1.0000000"
+ style="stop-color:#002000;stop-opacity:0.96039605;" />
+ </linearGradient>
+ <linearGradient
+ y2="131.12579"
+ x2="512.21820"
+ y1="138.84357"
+ x1="497.25031"
+ gradientTransform="matrix(0.823983,0.000000,0.000000,1.213617,-236.0338,-109.4693)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient22529"
+ xlink:href="#linearGradient2106"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="131.12579"
+ x2="512.21820"
+ y1="138.84357"
+ x1="497.25031"
+ gradientTransform="matrix(0.823983,0.000000,0.000000,1.213617,-236.0338,-109.4693)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3275"
+ xlink:href="#linearGradient2106"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="173.68797"
+ x2="309.19147"
+ y1="173.68797"
+ x1="278.08313"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3277"
+ xlink:href="#linearGradient2098"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.772598"
+ fy="182.92325"
+ fx="292.91949"
+ cy="182.19415"
+ cx="292.79327"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient3279"
+ xlink:href="#linearGradient3725"
+ inkscape:collect="always" />
+ <radialGradient
+ r="14.441721"
+ fy="166.15393"
+ fx="293.64859"
+ cy="166.39696"
+ cx="293.51672"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient3281"
+ xlink:href="#linearGradient3737"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.772598"
+ fy="182.92325"
+ fx="292.91949"
+ cy="182.19415"
+ cx="292.79327"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient3283"
+ xlink:href="#linearGradient3725"
+ inkscape:collect="always" />
+ <radialGradient
+ r="14.441721"
+ fy="166.15393"
+ fx="293.64859"
+ cy="166.39696"
+ cx="293.51672"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient3285"
+ xlink:href="#linearGradient3737"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.054159"
+ fy="173.68797"
+ fx="293.63730"
+ cy="173.68797"
+ cx="293.63730"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient3287"
+ xlink:href="#linearGradient3775"
+ inkscape:collect="always" />
+ <radialGradient
+ r="7.7136898"
+ fy="167.31000"
+ fx="297.30670"
+ cy="167.35597"
+ cx="297.26108"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient3289"
+ xlink:href="#linearGradient3769"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.772598"
+ fy="182.92325"
+ fx="292.91949"
+ cy="182.19415"
+ cx="292.79327"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient3291"
+ xlink:href="#linearGradient3725"
+ inkscape:collect="always" />
+ <radialGradient
+ r="14.441721"
+ fy="166.15393"
+ fx="293.64859"
+ cy="166.39696"
+ cx="293.51672"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient3293"
+ xlink:href="#linearGradient3737"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.054159"
+ fy="173.68797"
+ fx="293.63730"
+ cy="173.68797"
+ cx="293.63730"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient3295"
+ xlink:href="#linearGradient3775"
+ inkscape:collect="always" />
+ <radialGradient
+ r="7.7136898"
+ fy="167.31000"
+ fx="297.30670"
+ cy="167.35597"
+ cx="297.26108"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient3297"
+ xlink:href="#linearGradient3769"
+ inkscape:collect="always" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="11.098901"
+ inkscape:cx="8.0001064"
+ inkscape:cy="7.9999854"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ inkscape:grid-bbox="true"
+ inkscape:document-units="px"
+ inkscape:window-width="640"
+ inkscape:window-height="537"
+ inkscape:window-x="418"
+ inkscape:window-y="96" />
+ <metadata
+ id="metadata4">
+ <rdf:RDF
+ id="RDF5">
+ <cc:Work
+ rdf:about=""
+ id="Work6">
+ <dc:format
+ id="format7">image/svg+xml</dc:format>
+ <dc:type
+ id="type9"
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ id="layer1"
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer">
+ <g
+ id="g3239"
+ transform="matrix(0.285407,0.000000,0.000000,0.285407,-39.07644,-10.77508)">
+ <path
+ style="fill:url(#linearGradient3275);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000"
+ d="M 188.89292,44.760980 C 176.35292,49.120980 172.53292,57.850980 173.98292,65.480980 C 175.44292,73.120980 179.07292,74.390980 193.07292,72.570980 C 183.80292,65.670980 179.44292,59.670980 188.89292,44.760980 z "
+ id="path3241" />
+ <g
+ transform="translate(-237.1827,-109.6991)"
+ id="g3243">
+ <path
+ transform="matrix(1.357648,0.000000,0.000000,0.754363,-2.043468,43.23668)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path3245"
+ style="fill:url(#linearGradient3277);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(1.357648,0.000000,0.000000,0.754363,-2.043468,43.23668)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path3247"
+ style="fill:url(#radialGradient3279);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(1.357648,0.000000,0.000000,0.754363,-2.043468,43.23668)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path3249"
+ style="fill:url(#radialGradient3281);fill-opacity:1.0000000;stroke:none;stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ </g>
+ <g
+ id="g3251">
+ <path
+ transform="matrix(0.305325,0.000000,0.000000,0.297351,52.22804,8.902103)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path3253"
+ style="fill:#eaeaea;fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.305325,0.000000,0.000000,0.297351,52.22804,8.902103)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path3255"
+ style="fill:url(#radialGradient3283);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.305325,0.000000,0.000000,0.297351,52.22804,8.902103)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path3257"
+ style="fill:url(#radialGradient3285);fill-opacity:1.0000000;stroke:url(#radialGradient3287);stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.582483,0.000000,0.000000,0.561567,-66.35254,-39.32076)"
+ d="M 360.53069 177.23495 A 3.9148138 3.9148138 0 1 1 352.70106,177.23495 A 3.9148138 3.9148138 0 1 1 360.53069 177.23495 z"
+ sodipodi:ry="3.9148138"
+ sodipodi:rx="3.9148138"
+ sodipodi:cy="177.23495"
+ sodipodi:cx="356.61588"
+ id="path3259"
+ style="fill:#404040;fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.308390,0.000000,0.000000,0.412793,49.94549,-11.31996)"
+ d="M 300.36342 168.64339 A 2.9426789 2.9426789 0 1 1 294.47807,168.64339 A 2.9426789 2.9426789 0 1 1 300.36342 168.64339 z"
+ sodipodi:ry="2.9426789"
+ sodipodi:rx="2.9426789"
+ sodipodi:cy="168.64339"
+ sodipodi:cx="297.42075"
+ id="path3261"
+ style="fill:url(#radialGradient3289);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ </g>
+ <g
+ id="g3263">
+ <path
+ transform="matrix(0.355197,0.000000,0.000000,0.345921,44.96393,1.489673)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path3265"
+ style="fill:#eaeaea;fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.355197,0.000000,0.000000,0.345921,44.96393,1.489673)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path3267"
+ style="fill:url(#radialGradient3291);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.355197,0.000000,0.000000,0.345921,44.96393,1.489673)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path3269"
+ style="fill:url(#radialGradient3293);fill-opacity:1.0000000;stroke:url(#radialGradient3295);stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.677626,0.000000,0.000000,0.653293,-92.98569,-54.60994)"
+ d="M 360.53069 177.23495 A 3.9148138 3.9148138 0 1 1 352.70106,177.23495 A 3.9148138 3.9148138 0 1 1 360.53069 177.23495 z"
+ sodipodi:ry="3.9148138"
+ sodipodi:rx="3.9148138"
+ sodipodi:cy="177.23495"
+ sodipodi:cx="356.61588"
+ id="path3271"
+ style="fill:#3f3f3f;fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.358762,0.000000,0.000000,0.480218,42.30855,-22.03548)"
+ d="M 300.36342 168.64339 A 2.9426789 2.9426789 0 1 1 294.47807,168.64339 A 2.9426789 2.9426789 0 1 1 300.36342 168.64339 z"
+ sodipodi:ry="2.9426789"
+ sodipodi:rx="2.9426789"
+ sodipodi:cy="168.64339"
+ sodipodi:cx="297.42075"
+ id="path3273"
+ style="fill:url(#radialGradient3297);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ </g>
+ </g>
+ </g>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://web.resource.org/cc/"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ inkscape:export-ydpi="90.000000"
+ inkscape:export-xdpi="90.000000"
+ inkscape:export-filename="/home/pippin/src/babl/docs/graphics/babl.png"
+ sodipodi:docname="babl-48x48.svg"
+ sodipodi:docbase="/home/pippin/src/babl/docs/graphics"
+ inkscape:version="0.41"
+ sodipodi:version="0.32"
+ id="svg22444"
+ height="48.000000px"
+ width="48.000000px">
+ <defs
+ id="defs3">
+ <radialGradient
+ r="7.7136898"
+ fy="167.31000"
+ fx="297.30670"
+ cy="167.35597"
+ cx="297.26108"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2263"
+ xlink:href="#linearGradient3769"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.054159"
+ fy="173.68797"
+ fx="293.63730"
+ cy="173.68797"
+ cx="293.63730"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2261"
+ xlink:href="#linearGradient3775"
+ inkscape:collect="always" />
+ <radialGradient
+ r="14.441721"
+ fy="166.15393"
+ fx="293.64859"
+ cy="166.39696"
+ cx="293.51672"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2259"
+ xlink:href="#linearGradient3737"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.772598"
+ fy="182.92325"
+ fx="292.91949"
+ cy="182.19415"
+ cx="292.79327"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2257"
+ xlink:href="#linearGradient3725"
+ inkscape:collect="always" />
+ <radialGradient
+ r="7.7136898"
+ fy="167.31000"
+ fx="297.30670"
+ cy="167.35597"
+ cx="297.26108"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2255"
+ xlink:href="#linearGradient3769"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.054159"
+ fy="173.68797"
+ fx="293.63730"
+ cy="173.68797"
+ cx="293.63730"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2253"
+ xlink:href="#linearGradient3775"
+ inkscape:collect="always" />
+ <radialGradient
+ r="14.441721"
+ fy="166.15393"
+ fx="293.64859"
+ cy="166.39696"
+ cx="293.51672"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2251"
+ xlink:href="#linearGradient3737"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.772598"
+ fy="182.92325"
+ fx="292.91949"
+ cy="182.19415"
+ cx="292.79327"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2249"
+ xlink:href="#linearGradient3725"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="131.12579"
+ x2="512.21820"
+ y1="138.84357"
+ x1="497.25031"
+ gradientTransform="matrix(-1.175523,-3.495348e-2,-5.497797e-2,1.318191,682.3556,-115.3852)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2247"
+ xlink:href="#linearGradient2106"
+ inkscape:collect="always" />
+ <linearGradient
+ id="linearGradient2090">
+ <stop
+ id="stop2092"
+ offset="0.0000000"
+ style="stop-color:#00a482;stop-opacity:0.31683168;" />
+ <stop
+ id="stop17794"
+ offset="0.80769229"
+ style="stop-color:#12244c;stop-opacity:0.41584158;" />
+ <stop
+ id="stop2094"
+ offset="1.0000000"
+ style="stop-color:#1e31a4;stop-opacity:0.0000000;" />
+ </linearGradient>
+ <linearGradient
+ y2="82.096291"
+ x2="405.35065"
+ y1="479.45346"
+ x1="547.55261"
+ gradientTransform="matrix(0.427382,0.000000,0.000000,0.452061,-150.3320,-56.47006)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient15225"
+ xlink:href="#linearGradient2090"
+ inkscape:collect="always" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3769"
+ id="radialGradient3402"
+ gradientUnits="userSpaceOnUse"
+ cx="297.26108"
+ cy="167.35597"
+ fx="297.30670"
+ fy="167.31000"
+ r="7.7136898" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3775"
+ id="radialGradient3400"
+ gradientUnits="userSpaceOnUse"
+ cx="293.63730"
+ cy="173.68797"
+ fx="293.63730"
+ fy="173.68797"
+ r="16.054159" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3737"
+ id="radialGradient3398"
+ gradientUnits="userSpaceOnUse"
+ cx="293.51672"
+ cy="166.39696"
+ fx="293.64859"
+ fy="166.15393"
+ r="14.441721" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3725"
+ id="radialGradient3396"
+ gradientUnits="userSpaceOnUse"
+ cx="292.79327"
+ cy="182.19415"
+ fx="292.91949"
+ fy="182.92325"
+ r="16.772598" />
+ <linearGradient
+ id="linearGradient3769">
+ <stop
+ id="stop3771"
+ offset="0.0000000"
+ style="stop-color:#ffffff;stop-opacity:0.58415842;" />
+ <stop
+ id="stop3773"
+ offset="1"
+ style="stop-color:#dcd7ff;stop-opacity:0;" />
+ </linearGradient>
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3769"
+ id="radialGradient3394"
+ gradientUnits="userSpaceOnUse"
+ cx="297.26108"
+ cy="167.35597"
+ fx="297.30670"
+ fy="167.31000"
+ r="7.7136898" />
+ <linearGradient
+ id="linearGradient3775">
+ <stop
+ id="stop3777"
+ offset="0.0000000"
+ style="stop-color:#ffffff;stop-opacity:0.0000000;" />
+ <stop
+ id="stop3783"
+ offset="0.98000002"
+ style="stop-color:#ffffff;stop-opacity:0.039603960;" />
+ <stop
+ id="stop3779"
+ offset="1.0000000"
+ style="stop-color:#ffffff;stop-opacity:0.079207920;" />
+ </linearGradient>
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3775"
+ id="radialGradient3392"
+ gradientUnits="userSpaceOnUse"
+ cx="293.63730"
+ cy="173.68797"
+ fx="293.63730"
+ fy="173.68797"
+ r="16.054159" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3737"
+ id="radialGradient3390"
+ gradientUnits="userSpaceOnUse"
+ cx="293.51672"
+ cy="166.39696"
+ fx="293.64859"
+ fy="166.15393"
+ r="14.441721" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3725"
+ id="radialGradient3388"
+ gradientUnits="userSpaceOnUse"
+ cx="292.79327"
+ cy="182.19415"
+ fx="292.91949"
+ fy="182.92325"
+ r="16.772598" />
+ <linearGradient
+ id="linearGradient3737">
+ <stop
+ id="stop3739"
+ offset="0.0000000"
+ style="stop-color:#ffffff;stop-opacity:0.25098041;" />
+ <stop
+ id="stop3787"
+ offset="0.57692307"
+ style="stop-color:#ffffff;stop-opacity:0.12549020;" />
+ <stop
+ id="stop3741"
+ offset="1.0000000"
+ style="stop-color:#ffffff;stop-opacity:0.0000000;" />
+ </linearGradient>
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3737"
+ id="radialGradient3386"
+ gradientUnits="userSpaceOnUse"
+ cx="293.51672"
+ cy="166.39696"
+ fx="293.64859"
+ fy="166.15393"
+ r="14.441721" />
+ <linearGradient
+ id="linearGradient3725">
+ <stop
+ id="stop3727"
+ offset="0.0000000"
+ style="stop-color:#020202;stop-opacity:0.24752475;" />
+ <stop
+ id="stop3789"
+ offset="0.42307693"
+ style="stop-color:#000000;stop-opacity:0.12549020;" />
+ <stop
+ id="stop3729"
+ offset="1.0000000"
+ style="stop-color:#000000;stop-opacity:0.0000000;" />
+ </linearGradient>
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3725"
+ id="radialGradient3384"
+ gradientUnits="userSpaceOnUse"
+ cx="292.79327"
+ cy="182.19415"
+ fx="292.91949"
+ fy="182.92325"
+ r="16.772598" />
+ <linearGradient
+ id="linearGradient2098">
+ <stop
+ id="stop2100"
+ offset="0"
+ style="stop-color:#003f00;stop-opacity:1;" />
+ <stop
+ id="stop2102"
+ offset="1.0000000"
+ style="stop-color:#319f31;stop-opacity:1.0000000;" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2098"
+ id="linearGradient3382"
+ gradientUnits="userSpaceOnUse"
+ x1="278.08313"
+ y1="173.68797"
+ x2="309.19147"
+ y2="173.68797" />
+ <linearGradient
+ id="linearGradient2106">
+ <stop
+ id="stop2108"
+ offset="0.0000000"
+ style="stop-color:#006200;stop-opacity:1.0000000;" />
+ <stop
+ id="stop2110"
+ offset="1.0000000"
+ style="stop-color:#002000;stop-opacity:0.96039605;" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2106"
+ id="linearGradient3380"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.823983,0.000000,0.000000,1.213617,-236.0338,-109.4693)"
+ x1="497.25031"
+ y1="138.84357"
+ x2="512.21820"
+ y2="131.12579" />
+ <linearGradient
+ y2="131.12579"
+ x2="512.21820"
+ y1="138.84357"
+ x1="497.25031"
+ gradientTransform="matrix(0.823983,0.000000,0.000000,1.213617,-236.0338,-109.4693)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient22529"
+ xlink:href="#linearGradient2106"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="173.68797"
+ x2="309.19147"
+ y1="173.68797"
+ x1="278.08313"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient22531"
+ xlink:href="#linearGradient2098"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.772598"
+ fy="182.92325"
+ fx="292.91949"
+ cy="182.19415"
+ cx="292.79327"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient22533"
+ xlink:href="#linearGradient3725"
+ inkscape:collect="always" />
+ <radialGradient
+ r="14.441721"
+ fy="166.15393"
+ fx="293.64859"
+ cy="166.39696"
+ cx="293.51672"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient22535"
+ xlink:href="#linearGradient3737"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.772598"
+ fy="182.92325"
+ fx="292.91949"
+ cy="182.19415"
+ cx="292.79327"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient22537"
+ xlink:href="#linearGradient3725"
+ inkscape:collect="always" />
+ <radialGradient
+ r="14.441721"
+ fy="166.15393"
+ fx="293.64859"
+ cy="166.39696"
+ cx="293.51672"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient22539"
+ xlink:href="#linearGradient3737"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.054159"
+ fy="173.68797"
+ fx="293.63730"
+ cy="173.68797"
+ cx="293.63730"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient22541"
+ xlink:href="#linearGradient3775"
+ inkscape:collect="always" />
+ <radialGradient
+ r="7.7136898"
+ fy="167.31000"
+ fx="297.30670"
+ cy="167.35597"
+ cx="297.26108"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient22543"
+ xlink:href="#linearGradient3769"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.772598"
+ fy="182.92325"
+ fx="292.91949"
+ cy="182.19415"
+ cx="292.79327"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient22545"
+ xlink:href="#linearGradient3725"
+ inkscape:collect="always" />
+ <radialGradient
+ r="14.441721"
+ fy="166.15393"
+ fx="293.64859"
+ cy="166.39696"
+ cx="293.51672"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient22547"
+ xlink:href="#linearGradient3737"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.054159"
+ fy="173.68797"
+ fx="293.63730"
+ cy="173.68797"
+ cx="293.63730"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient22549"
+ xlink:href="#linearGradient3775"
+ inkscape:collect="always" />
+ <radialGradient
+ r="7.7136898"
+ fy="167.31000"
+ fx="297.30670"
+ cy="167.35597"
+ cx="297.26108"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient22551"
+ xlink:href="#linearGradient3769"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="-4.6055222"
+ x2="62.451553"
+ y1="155.83595"
+ x1="86.064316"
+ gradientTransform="scale(0.972321,1.028467)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient22554"
+ xlink:href="#linearGradient2090"
+ inkscape:collect="always" />
+ </defs>
+ <sodipodi:namedview
+ inkscape:window-y="102"
+ inkscape:window-x="360"
+ inkscape:window-height="537"
+ inkscape:window-width="640"
+ inkscape:document-units="px"
+ inkscape:grid-bbox="true"
+ showgrid="true"
+ inkscape:current-layer="layer1"
+ inkscape:cy="27.633972"
+ inkscape:cx="34.006779"
+ inkscape:zoom="5.6568542"
+ inkscape:pageshadow="2"
+ inkscape:pageopacity="0.0"
+ borderopacity="1.0"
+ bordercolor="#666666"
+ pagecolor="#ffffff"
+ id="base" />
+ <metadata
+ id="metadata4">
+ <rdf:RDF
+ id="RDF5">
+ <cc:Work
+ id="Work6"
+ rdf:about="">
+ <dc:format
+ id="format7">image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage"
+ id="type9" />
+ <dc:title
+ id="title22660">Babl icon</dc:title>
+ <dc:date
+ id="date22662">2005-08-20</dc:date>
+ <dc:creator
+ id="creator22664">
+ <cc:Agent
+ id="Agent22666">
+ <dc:title
+ id="title22668">Øyvind Kolås</dc:title>
+ </cc:Agent>
+ </dc:creator>
+ <cc:license
+ rdf:resource="http://creativecommons.org/licenses/by/2.0/"
+ id="license22670" />
+ <dc:source
+ id="source22684" />
+ <dc:description
+ id="description22686" />
+ </cc:Work>
+ <cc:License
+ id="License22672"
+ rdf:about="http://creativecommons.org/licenses/by/2.0/">
+ <cc:permits
+ id="permits22674"
+ rdf:resource="http://web.resource.org/cc/Reproduction" />
+ <cc:permits
+ id="permits22676"
+ rdf:resource="http://web.resource.org/cc/Distribution" />
+ <cc:requires
+ id="requires22678"
+ rdf:resource="http://web.resource.org/cc/Notice" />
+ <cc:requires
+ id="requires22680"
+ rdf:resource="http://web.resource.org/cc/Attribution" />
+ <cc:prohibits
+ id="prohibits22682"
+ rdf:resource="http://web.resource.org/cc/CommercialUse" />
+ </cc:License>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:groupmode="layer"
+ inkscape:label="Layer 1"
+ id="layer1">
+ <path
+ sodipodi:nodetypes="ccccccccccccccccccccccccccccccccccccccccccc"
+ style="opacity:0.0000000;stroke-width:1.0000000;stroke:none;fill-opacity:1.0;fill:url(#linearGradient22554)"
+ d="M 6.3076266,-45.118406 C 6.3076266,-45.118406 6.2329024,33.011302 6.2329024,33.011302 C 6.2329024,33.011302 15.023866,33.011302 15.023866,33.011302 C 15.023866,33.011302 15.023866,44.000000 15.023866,44.000000 C 15.023866,44.000000 4.0000000,44.000000 4.0000000,44.000000 C 4.0000000,44.000000 4.0000000,-45.008516 4.0000000,-45.008516 C 4.0000000,-45.008516 6.3076266,-45.118406 6.3076266,-45.118406 z M 6.2329024,41.767099 C 6.2329024,41.767099 12.790961,41.767099 12.790961,41.767099 C 12.790961,41.767099 12.790961,35.244202 12.790961,35.244202 C 12.790961,35.244202 6.2329024,35.244202 6.2329024,35.244202 C 6.2329024,35.244202 6.2329024,41.767099 6.2329024,41.767099 z M 19.419344,41.767099 C 19.419344,41.767099 25.977399,41.767099 25.977399,41.767099 C 25.977399,41.767099 25.977399,39.604524 25.977399,39.604524 C 25.977399,39.604524 19.419344,39.604524 19.419344,39.604524 C 19.419344,39.604524 19.419344,41.767099 19.419344,41.767099 z M 28.210301,33.011302 C 28.210301,33.011302 28.210301,44.000000 28.210301,44.000000 C 28.210301,44.000000 17.186440,44.000000 17.186440,44.000000 C 17.186440,44.000000 17.186440,37.371615 17.186440,37.371615 C 17.186440,37.371615 25.977399,37.371615 25.977399,37.371615 C 25.977399,37.371615 25.977399,35.244202 25.977399,35.244202 C 25.977399,35.244202 17.186440,35.244202 17.186440,35.244202 C 17.186440,35.244202 17.186440,33.011302 17.186440,33.011302 C 17.186440,33.011302 28.210301,33.011302 28.210301,33.011302 z M 32.605779,28.176276 C 32.605779,28.176276 32.605779,33.011302 32.605779,33.011302 C 32.605779,33.011302 41.396735,33.011302 41.396735,33.011302 C 41.396735,33.011302 41.396735,44.000000 41.396735,44.000000 C 41.396735,44.000000 30.372877,44.000000 30.372877,44.000000 C 30.372877,44.000000 30.372877,28.176276 30.372877,28.176276 C 30.372877,28.176276 32.605779,28.176276 32.605779,28.176276 z M 32.605779,41.767099 C 32.605779,41.767099 39.163834,41.767099 39.163834,41.767099 C 39.163834,41.767099 39.163834,35.244202 39.163834,35.244202 C 39.163834,35.244202 32.605779,35.244202 32.605779,35.244202 C 32.605779,35.244202 32.605779,41.767099 32.605779,41.767099 z M 45.866938,-44.788746 C 45.866938,-44.788746 45.792216,44.000000 45.792216,44.000000 C 45.792216,44.000000 43.559313,44.000000 43.559313,44.000000 C 43.559313,44.000000 43.669197,-44.788746 43.669197,-44.788746 C 43.669197,-44.788746 45.866938,-44.788746 45.866938,-44.788746 z "
+ id="babl" />
+ <g
+ id="g3361"
+ transform="matrix(0.802284,0.000000,0.000000,0.802284,-107.8994,-28.91102)">
+ <path
+ style="fill:url(#linearGradient22529);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000"
+ d="M 188.89292,44.760980 C 176.35292,49.120980 172.53292,57.850980 173.98292,65.480980 C 175.44292,73.120980 179.07292,74.390980 193.07292,72.570980 C 183.80292,65.670980 179.44292,59.670980 188.89292,44.760980 z "
+ id="tail" />
+ <g
+ transform="translate(-237.1827,-109.6991)"
+ id="g5419">
+ <path
+ transform="matrix(1.357648,0.000000,0.000000,0.754363,-2.043468,43.23668)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path5352"
+ style="fill:url(#linearGradient22531);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(1.357648,0.000000,0.000000,0.754363,-2.043468,43.23668)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path5354"
+ style="fill:url(#radialGradient22533);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(1.357648,0.000000,0.000000,0.754363,-2.043468,43.23668)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path5356"
+ style="fill:url(#radialGradient22535);fill-opacity:1.0000000;stroke:none;stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ </g>
+ <g
+ id="g3342">
+ <path
+ transform="matrix(0.305325,0.000000,0.000000,0.297351,52.22804,8.902103)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path4845"
+ style="fill:#eaeaea;fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.305325,0.000000,0.000000,0.297351,52.22804,8.902103)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path4847"
+ style="fill:url(#radialGradient22537);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.305325,0.000000,0.000000,0.297351,52.22804,8.902103)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path4849"
+ style="fill:url(#radialGradient22539);fill-opacity:1.0000000;stroke:url(#radialGradient22541);stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.582483,0.000000,0.000000,0.561567,-66.35254,-39.32076)"
+ d="M 360.53069 177.23495 A 3.9148138 3.9148138 0 1 1 352.70106,177.23495 A 3.9148138 3.9148138 0 1 1 360.53069 177.23495 z"
+ sodipodi:ry="3.9148138"
+ sodipodi:rx="3.9148138"
+ sodipodi:cy="177.23495"
+ sodipodi:cx="356.61588"
+ id="path4851"
+ style="fill:#404040;fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.308390,0.000000,0.000000,0.412793,49.94549,-11.31996)"
+ d="M 300.36342 168.64339 A 2.9426789 2.9426789 0 1 1 294.47807,168.64339 A 2.9426789 2.9426789 0 1 1 300.36342 168.64339 z"
+ sodipodi:ry="2.9426789"
+ sodipodi:rx="2.9426789"
+ sodipodi:cy="168.64339"
+ sodipodi:cx="297.42075"
+ id="path4870"
+ style="fill:url(#radialGradient22543);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ </g>
+ <g
+ id="g3354">
+ <path
+ transform="matrix(0.355197,0.000000,0.000000,0.345921,44.96393,1.489673)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path4905"
+ style="fill:#eaeaea;fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.355197,0.000000,0.000000,0.345921,44.96393,1.489673)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path4907"
+ style="fill:url(#radialGradient22545);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.355197,0.000000,0.000000,0.345921,44.96393,1.489673)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path4909"
+ style="fill:url(#radialGradient22547);fill-opacity:1.0000000;stroke:url(#radialGradient22549);stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.677626,0.000000,0.000000,0.653293,-92.98569,-54.60994)"
+ d="M 360.53069 177.23495 A 3.9148138 3.9148138 0 1 1 352.70106,177.23495 A 3.9148138 3.9148138 0 1 1 360.53069 177.23495 z"
+ sodipodi:ry="3.9148138"
+ sodipodi:rx="3.9148138"
+ sodipodi:cy="177.23495"
+ sodipodi:cx="356.61588"
+ id="path4911"
+ style="fill:#3f3f3f;fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.358762,0.000000,0.000000,0.480218,42.30855,-22.03548)"
+ d="M 300.36342 168.64339 A 2.9426789 2.9426789 0 1 1 294.47807,168.64339 A 2.9426789 2.9426789 0 1 1 300.36342 168.64339 z"
+ sodipodi:ry="2.9426789"
+ sodipodi:rx="2.9426789"
+ sodipodi:cy="168.64339"
+ sodipodi:cx="297.42075"
+ id="path4913"
+ style="fill:url(#radialGradient22551);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ </g>
+ </g>
+ </g>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://web.resource.org/cc/"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ inkscape:export-ydpi="30.963810"
+ inkscape:export-xdpi="30.963810"
+ inkscape:export-filename="/home/pippin/src/babl/docs/BablFish.png"
+ inkscape:label="sea"
+ sodipodi:docbase="/home/pippin/src/babl/docs/graphics"
+ sodipodi:docname="a4poster.svg"
+ inkscape:version="0.41"
+ sodipodi:version="0.32"
+ id="svg2"
+ viewBox="0 0 128 110"
+ height="296.99999mm"
+ width="210.00000mm">
+ <metadata
+ id="metadata19">
+ <rdf:RDF
+ id="RDF21">
+ <cc:Work
+ id="Work23"
+ rdf:about="">
+ <dc:format
+ id="format25">image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage"
+ id="type27" />
+ <cc:license
+ id="license3404"
+ rdf:resource="http://creativecommons.org/licenses/by/2.0/" />
+ <dc:title
+ id="title3422">BablFish</dc:title>
+ <dc:date
+ id="date3424">2005-08-20</dc:date>
+ <dc:creator
+ id="creator3426">
+ <cc:Agent
+ id="Agent3428">
+ <dc:title
+ id="title3430">Øyvind Kolås</dc:title>
+ </cc:Agent>
+ </dc:creator>
+ <dc:publisher
+ id="publisher3432">
+ <cc:Agent
+ id="Agent3434">
+ <dc:title
+ id="title3436">pippin.gimp.org</dc:title>
+ </cc:Agent>
+ </dc:publisher>
+ <dc:description
+ id="description3438">babl logo (as a poster)</dc:description>
+ </cc:Work>
+ <cc:License
+ rdf:about="http://creativecommons.org/licenses/by/2.0/"
+ id="License3406">
+ <cc:permits
+ rdf:resource="http://web.resource.org/cc/Reproduction"
+ id="permits3408" />
+ <cc:permits
+ rdf:resource="http://web.resource.org/cc/Distribution"
+ id="permits3410" />
+ <cc:requires
+ rdf:resource="http://web.resource.org/cc/Notice"
+ id="requires3412" />
+ <cc:requires
+ rdf:resource="http://web.resource.org/cc/Attribution"
+ id="requires3414" />
+ <cc:prohibits
+ rdf:resource="http://web.resource.org/cc/CommercialUse"
+ id="prohibits3416" />
+ <cc:permits
+ rdf:resource="http://web.resource.org/cc/DerivativeWorks"
+ id="permits3418" />
+ <cc:requires
+ rdf:resource="http://web.resource.org/cc/ShareAlike"
+ id="requires3420" />
+ </cc:License>
+ </rdf:RDF>
+ </metadata>
+ <defs
+ id="defs17">
+ <linearGradient
+ id="linearGradient3775">
+ <stop
+ id="stop3777"
+ offset="0.0000000"
+ style="stop-color:#ffffff;stop-opacity:0.0000000;" />
+ <stop
+ id="stop3783"
+ offset="0.98000002"
+ style="stop-color:#ffffff;stop-opacity:0.039603960;" />
+ <stop
+ id="stop3779"
+ offset="1.0000000"
+ style="stop-color:#ffffff;stop-opacity:0.079207920;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3769">
+ <stop
+ id="stop3771"
+ offset="0.0000000"
+ style="stop-color:#ffffff;stop-opacity:0.58415842;" />
+ <stop
+ id="stop3773"
+ offset="1"
+ style="stop-color:#dcd7ff;stop-opacity:0;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3737">
+ <stop
+ id="stop3739"
+ offset="0.0000000"
+ style="stop-color:#ffffff;stop-opacity:0.25098041;" />
+ <stop
+ id="stop3787"
+ offset="0.57692307"
+ style="stop-color:#ffffff;stop-opacity:0.12549020;" />
+ <stop
+ id="stop3741"
+ offset="1.0000000"
+ style="stop-color:#ffffff;stop-opacity:0.0000000;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3725">
+ <stop
+ id="stop3727"
+ offset="0.0000000"
+ style="stop-color:#020202;stop-opacity:0.24752475;" />
+ <stop
+ id="stop3789"
+ offset="0.42307693"
+ style="stop-color:#000000;stop-opacity:0.12549020;" />
+ <stop
+ id="stop3729"
+ offset="1.0000000"
+ style="stop-color:#000000;stop-opacity:0.0000000;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient2106">
+ <stop
+ id="stop2108"
+ offset="0.0000000"
+ style="stop-color:#006200;stop-opacity:1.0000000;" />
+ <stop
+ id="stop2110"
+ offset="1.0000000"
+ style="stop-color:#002000;stop-opacity:0.96039605;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient2098">
+ <stop
+ id="stop2100"
+ offset="0"
+ style="stop-color:#003f00;stop-opacity:1;" />
+ <stop
+ id="stop2102"
+ offset="1.0000000"
+ style="stop-color:#319f31;stop-opacity:1.0000000;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient2090">
+ <stop
+ id="stop2092"
+ offset="0.0000000"
+ style="stop-color:#00a482;stop-opacity:0.73267329;" />
+ <stop
+ id="stop17794"
+ offset="0.80769229"
+ style="stop-color:#12244c;stop-opacity:0.89108908;" />
+ <stop
+ id="stop2094"
+ offset="1.0000000"
+ style="stop-color:#1e31a4;stop-opacity:0.0000000;" />
+ </linearGradient>
+ <linearGradient
+ y2="173.68797"
+ x2="309.19147"
+ y1="173.68797"
+ x1="278.08313"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient15201"
+ xlink:href="#linearGradient2098"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.772598"
+ fy="182.92325"
+ fx="292.91949"
+ cy="182.19415"
+ cx="292.79327"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient15203"
+ xlink:href="#linearGradient3725"
+ inkscape:collect="always" />
+ <radialGradient
+ r="14.441721"
+ fy="166.15393"
+ fx="293.64859"
+ cy="166.39696"
+ cx="293.51672"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient15205"
+ xlink:href="#linearGradient3737"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.772598"
+ fy="182.92325"
+ fx="292.91949"
+ cy="182.19415"
+ cx="292.79327"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient15207"
+ xlink:href="#linearGradient3725"
+ inkscape:collect="always" />
+ <radialGradient
+ r="14.441721"
+ fy="166.15393"
+ fx="293.64859"
+ cy="166.39696"
+ cx="293.51672"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient15209"
+ xlink:href="#linearGradient3737"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.054159"
+ fy="173.68797"
+ fx="293.63730"
+ cy="173.68797"
+ cx="293.63730"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient15211"
+ xlink:href="#linearGradient3775"
+ inkscape:collect="always" />
+ <radialGradient
+ r="7.7136898"
+ fy="167.31000"
+ fx="297.30670"
+ cy="167.35597"
+ cx="297.26108"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient15213"
+ xlink:href="#linearGradient3769"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.772598"
+ fy="182.92325"
+ fx="292.91949"
+ cy="182.19415"
+ cx="292.79327"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient15215"
+ xlink:href="#linearGradient3725"
+ inkscape:collect="always" />
+ <radialGradient
+ r="14.441721"
+ fy="166.15393"
+ fx="293.64859"
+ cy="166.39696"
+ cx="293.51672"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient15217"
+ xlink:href="#linearGradient3737"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.054159"
+ fy="173.68797"
+ fx="293.63730"
+ cy="173.68797"
+ cx="293.63730"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient15219"
+ xlink:href="#linearGradient3775"
+ inkscape:collect="always" />
+ <radialGradient
+ r="7.7136898"
+ fy="167.31000"
+ fx="297.30670"
+ cy="167.35597"
+ cx="297.26108"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient15221"
+ xlink:href="#linearGradient3769"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="82.096291"
+ x2="405.35065"
+ y1="479.45346"
+ x1="547.55261"
+ gradientTransform="matrix(0.972322,0.000000,0.000000,1.028466,-333.5764,-98.78824)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient15225"
+ xlink:href="#linearGradient2090"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.772598"
+ fy="182.92325"
+ fx="292.91949"
+ cy="182.19415"
+ cx="292.79327"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17402"
+ xlink:href="#linearGradient3725"
+ inkscape:collect="always" />
+ <radialGradient
+ r="14.441721"
+ fy="166.15393"
+ fx="293.64859"
+ cy="166.39696"
+ cx="293.51672"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17404"
+ xlink:href="#linearGradient3737"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.054159"
+ fy="173.68797"
+ fx="293.63730"
+ cy="173.68797"
+ cx="293.63730"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17406"
+ xlink:href="#linearGradient3775"
+ inkscape:collect="always" />
+ <radialGradient
+ r="7.7136898"
+ fy="167.31000"
+ fx="297.30670"
+ cy="167.35597"
+ cx="297.26108"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17408"
+ xlink:href="#linearGradient3769"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.772598"
+ fy="182.92325"
+ fx="292.91949"
+ cy="182.19415"
+ cx="292.79327"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17418"
+ xlink:href="#linearGradient3725"
+ inkscape:collect="always" />
+ <radialGradient
+ r="14.441721"
+ fy="166.15393"
+ fx="293.64859"
+ cy="166.39696"
+ cx="293.51672"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17420"
+ xlink:href="#linearGradient3737"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.054159"
+ fy="173.68797"
+ fx="293.63730"
+ cy="173.68797"
+ cx="293.63730"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17422"
+ xlink:href="#linearGradient3775"
+ inkscape:collect="always" />
+ <radialGradient
+ r="7.7136898"
+ fy="167.31000"
+ fx="297.30670"
+ cy="167.35597"
+ cx="297.26108"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17424"
+ xlink:href="#linearGradient3769"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.772598"
+ fy="182.92325"
+ fx="292.91949"
+ cy="182.19415"
+ cx="292.79327"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17450"
+ xlink:href="#linearGradient3725"
+ inkscape:collect="always" />
+ <radialGradient
+ r="14.441721"
+ fy="166.15393"
+ fx="293.64859"
+ cy="166.39696"
+ cx="293.51672"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17452"
+ xlink:href="#linearGradient3737"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.054159"
+ fy="173.68797"
+ fx="293.63730"
+ cy="173.68797"
+ cx="293.63730"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17454"
+ xlink:href="#linearGradient3775"
+ inkscape:collect="always" />
+ <radialGradient
+ r="7.7136898"
+ fy="167.31000"
+ fx="297.30670"
+ cy="167.35597"
+ cx="297.26108"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17456"
+ xlink:href="#linearGradient3769"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.772598"
+ fy="182.92325"
+ fx="292.91949"
+ cy="182.19415"
+ cx="292.79327"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17466"
+ xlink:href="#linearGradient3725"
+ inkscape:collect="always" />
+ <radialGradient
+ r="14.441721"
+ fy="166.15393"
+ fx="293.64859"
+ cy="166.39696"
+ cx="293.51672"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17468"
+ xlink:href="#linearGradient3737"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.054159"
+ fy="173.68797"
+ fx="293.63730"
+ cy="173.68797"
+ cx="293.63730"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17470"
+ xlink:href="#linearGradient3775"
+ inkscape:collect="always" />
+ <radialGradient
+ r="7.7136898"
+ fy="167.31000"
+ fx="297.30670"
+ cy="167.35597"
+ cx="297.26108"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17472"
+ xlink:href="#linearGradient3769"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.772598"
+ fy="182.92325"
+ fx="292.91949"
+ cy="182.19415"
+ cx="292.79327"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17474"
+ xlink:href="#linearGradient3725"
+ inkscape:collect="always" />
+ <radialGradient
+ r="14.441721"
+ fy="166.15393"
+ fx="293.64859"
+ cy="166.39696"
+ cx="293.51672"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17476"
+ xlink:href="#linearGradient3737"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.054159"
+ fy="173.68797"
+ fx="293.63730"
+ cy="173.68797"
+ cx="293.63730"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17478"
+ xlink:href="#linearGradient3775"
+ inkscape:collect="always" />
+ <radialGradient
+ r="7.7136898"
+ fy="167.31000"
+ fx="297.30670"
+ cy="167.35597"
+ cx="297.26108"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17480"
+ xlink:href="#linearGradient3769"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.772598"
+ fy="182.92325"
+ fx="292.91949"
+ cy="182.19415"
+ cx="292.79327"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17482"
+ xlink:href="#linearGradient3725"
+ inkscape:collect="always" />
+ <radialGradient
+ r="14.441721"
+ fy="166.15393"
+ fx="293.64859"
+ cy="166.39696"
+ cx="293.51672"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17484"
+ xlink:href="#linearGradient3737"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.054159"
+ fy="173.68797"
+ fx="293.63730"
+ cy="173.68797"
+ cx="293.63730"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17486"
+ xlink:href="#linearGradient3775"
+ inkscape:collect="always" />
+ <radialGradient
+ r="7.7136898"
+ fy="167.31000"
+ fx="297.30670"
+ cy="167.35597"
+ cx="297.26108"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17488"
+ xlink:href="#linearGradient3769"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.772598"
+ fy="182.92325"
+ fx="292.91949"
+ cy="182.19415"
+ cx="292.79327"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17506"
+ xlink:href="#linearGradient3725"
+ inkscape:collect="always" />
+ <radialGradient
+ r="14.441721"
+ fy="166.15393"
+ fx="293.64859"
+ cy="166.39696"
+ cx="293.51672"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17508"
+ xlink:href="#linearGradient3737"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.054159"
+ fy="173.68797"
+ fx="293.63730"
+ cy="173.68797"
+ cx="293.63730"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17510"
+ xlink:href="#linearGradient3775"
+ inkscape:collect="always" />
+ <radialGradient
+ r="7.7136898"
+ fy="167.31000"
+ fx="297.30670"
+ cy="167.35597"
+ cx="297.26108"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17512"
+ xlink:href="#linearGradient3769"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.772598"
+ fy="182.92325"
+ fx="292.91949"
+ cy="182.19415"
+ cx="292.79327"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17522"
+ xlink:href="#linearGradient3725"
+ inkscape:collect="always" />
+ <radialGradient
+ r="14.441721"
+ fy="166.15393"
+ fx="293.64859"
+ cy="166.39696"
+ cx="293.51672"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17524"
+ xlink:href="#linearGradient3737"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.054159"
+ fy="173.68797"
+ fx="293.63730"
+ cy="173.68797"
+ cx="293.63730"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17526"
+ xlink:href="#linearGradient3775"
+ inkscape:collect="always" />
+ <radialGradient
+ r="7.7136898"
+ fy="167.31000"
+ fx="297.30670"
+ cy="167.35597"
+ cx="297.26108"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17528"
+ xlink:href="#linearGradient3769"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.772598"
+ fy="182.92325"
+ fx="292.91949"
+ cy="182.19415"
+ cx="292.79327"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17530"
+ xlink:href="#linearGradient3725"
+ inkscape:collect="always" />
+ <radialGradient
+ r="14.441721"
+ fy="166.15393"
+ fx="293.64859"
+ cy="166.39696"
+ cx="293.51672"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17532"
+ xlink:href="#linearGradient3737"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.054159"
+ fy="173.68797"
+ fx="293.63730"
+ cy="173.68797"
+ cx="293.63730"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17534"
+ xlink:href="#linearGradient3775"
+ inkscape:collect="always" />
+ <radialGradient
+ r="7.7136898"
+ fy="167.31000"
+ fx="297.30670"
+ cy="167.35597"
+ cx="297.26108"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17536"
+ xlink:href="#linearGradient3769"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.772598"
+ fy="182.92325"
+ fx="292.91949"
+ cy="182.19415"
+ cx="292.79327"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17538"
+ xlink:href="#linearGradient3725"
+ inkscape:collect="always" />
+ <radialGradient
+ r="14.441721"
+ fy="166.15393"
+ fx="293.64859"
+ cy="166.39696"
+ cx="293.51672"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17540"
+ xlink:href="#linearGradient3737"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.054159"
+ fy="173.68797"
+ fx="293.63730"
+ cy="173.68797"
+ cx="293.63730"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17542"
+ xlink:href="#linearGradient3775"
+ inkscape:collect="always" />
+ <radialGradient
+ r="7.7136898"
+ fy="167.31000"
+ fx="297.30670"
+ cy="167.35597"
+ cx="297.26108"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17544"
+ xlink:href="#linearGradient3769"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.772598"
+ fy="182.92325"
+ fx="292.91949"
+ cy="182.19415"
+ cx="292.79327"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17546"
+ xlink:href="#linearGradient3725"
+ inkscape:collect="always" />
+ <radialGradient
+ r="14.441721"
+ fy="166.15393"
+ fx="293.64859"
+ cy="166.39696"
+ cx="293.51672"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17548"
+ xlink:href="#linearGradient3737"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.054159"
+ fy="173.68797"
+ fx="293.63730"
+ cy="173.68797"
+ cx="293.63730"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17550"
+ xlink:href="#linearGradient3775"
+ inkscape:collect="always" />
+ <radialGradient
+ r="7.7136898"
+ fy="167.31000"
+ fx="297.30670"
+ cy="167.35597"
+ cx="297.26108"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17552"
+ xlink:href="#linearGradient3769"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.772598"
+ fy="182.92325"
+ fx="292.91949"
+ cy="182.19415"
+ cx="292.79327"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17554"
+ xlink:href="#linearGradient3725"
+ inkscape:collect="always" />
+ <radialGradient
+ r="14.441721"
+ fy="166.15393"
+ fx="293.64859"
+ cy="166.39696"
+ cx="293.51672"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17556"
+ xlink:href="#linearGradient3737"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.054159"
+ fy="173.68797"
+ fx="293.63730"
+ cy="173.68797"
+ cx="293.63730"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17558"
+ xlink:href="#linearGradient3775"
+ inkscape:collect="always" />
+ <radialGradient
+ r="7.7136898"
+ fy="167.31000"
+ fx="297.30670"
+ cy="167.35597"
+ cx="297.26108"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17560"
+ xlink:href="#linearGradient3769"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.772598"
+ fy="182.92325"
+ fx="292.91949"
+ cy="182.19415"
+ cx="292.79327"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17562"
+ xlink:href="#linearGradient3725"
+ inkscape:collect="always" />
+ <radialGradient
+ r="14.441721"
+ fy="166.15393"
+ fx="293.64859"
+ cy="166.39696"
+ cx="293.51672"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17564"
+ xlink:href="#linearGradient3737"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.054159"
+ fy="173.68797"
+ fx="293.63730"
+ cy="173.68797"
+ cx="293.63730"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17566"
+ xlink:href="#linearGradient3775"
+ inkscape:collect="always" />
+ <radialGradient
+ r="7.7136898"
+ fy="167.31000"
+ fx="297.30670"
+ cy="167.35597"
+ cx="297.26108"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17568"
+ xlink:href="#linearGradient3769"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.772598"
+ fy="182.92325"
+ fx="292.91949"
+ cy="182.19415"
+ cx="292.79327"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17618"
+ xlink:href="#linearGradient3725"
+ inkscape:collect="always" />
+ <radialGradient
+ r="14.441721"
+ fy="166.15393"
+ fx="293.64859"
+ cy="166.39696"
+ cx="293.51672"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17620"
+ xlink:href="#linearGradient3737"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.054159"
+ fy="173.68797"
+ fx="293.63730"
+ cy="173.68797"
+ cx="293.63730"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17622"
+ xlink:href="#linearGradient3775"
+ inkscape:collect="always" />
+ <radialGradient
+ r="7.7136898"
+ fy="167.31000"
+ fx="297.30670"
+ cy="167.35597"
+ cx="297.26108"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17624"
+ xlink:href="#linearGradient3769"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.772598"
+ fy="182.92325"
+ fx="292.91949"
+ cy="182.19415"
+ cx="292.79327"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17626"
+ xlink:href="#linearGradient3725"
+ inkscape:collect="always" />
+ <radialGradient
+ r="14.441721"
+ fy="166.15393"
+ fx="293.64859"
+ cy="166.39696"
+ cx="293.51672"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17628"
+ xlink:href="#linearGradient3737"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.054159"
+ fy="173.68797"
+ fx="293.63730"
+ cy="173.68797"
+ cx="293.63730"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17630"
+ xlink:href="#linearGradient3775"
+ inkscape:collect="always" />
+ <radialGradient
+ r="7.7136898"
+ fy="167.31000"
+ fx="297.30670"
+ cy="167.35597"
+ cx="297.26108"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17632"
+ xlink:href="#linearGradient3769"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.772598"
+ fy="182.92325"
+ fx="292.91949"
+ cy="182.19415"
+ cx="292.79327"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17642"
+ xlink:href="#linearGradient3725"
+ inkscape:collect="always" />
+ <radialGradient
+ r="14.441721"
+ fy="166.15393"
+ fx="293.64859"
+ cy="166.39696"
+ cx="293.51672"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17644"
+ xlink:href="#linearGradient3737"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.054159"
+ fy="173.68797"
+ fx="293.63730"
+ cy="173.68797"
+ cx="293.63730"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17646"
+ xlink:href="#linearGradient3775"
+ inkscape:collect="always" />
+ <radialGradient
+ r="7.7136898"
+ fy="167.31000"
+ fx="297.30670"
+ cy="167.35597"
+ cx="297.26108"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17648"
+ xlink:href="#linearGradient3769"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.772598"
+ fy="182.92325"
+ fx="292.91949"
+ cy="182.19415"
+ cx="292.79327"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17650"
+ xlink:href="#linearGradient3725"
+ inkscape:collect="always" />
+ <radialGradient
+ r="14.441721"
+ fy="166.15393"
+ fx="293.64859"
+ cy="166.39696"
+ cx="293.51672"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17652"
+ xlink:href="#linearGradient3737"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.054159"
+ fy="173.68797"
+ fx="293.63730"
+ cy="173.68797"
+ cx="293.63730"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17654"
+ xlink:href="#linearGradient3775"
+ inkscape:collect="always" />
+ <radialGradient
+ r="7.7136898"
+ fy="167.31000"
+ fx="297.30670"
+ cy="167.35597"
+ cx="297.26108"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17656"
+ xlink:href="#linearGradient3769"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.772598"
+ fy="182.92325"
+ fx="292.91949"
+ cy="182.19415"
+ cx="292.79327"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17658"
+ xlink:href="#linearGradient3725"
+ inkscape:collect="always" />
+ <radialGradient
+ r="14.441721"
+ fy="166.15393"
+ fx="293.64859"
+ cy="166.39696"
+ cx="293.51672"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17660"
+ xlink:href="#linearGradient3737"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.054159"
+ fy="173.68797"
+ fx="293.63730"
+ cy="173.68797"
+ cx="293.63730"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17662"
+ xlink:href="#linearGradient3775"
+ inkscape:collect="always" />
+ <radialGradient
+ r="7.7136898"
+ fy="167.31000"
+ fx="297.30670"
+ cy="167.35597"
+ cx="297.26108"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17664"
+ xlink:href="#linearGradient3769"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.772598"
+ fy="182.92325"
+ fx="292.91949"
+ cy="182.19415"
+ cx="292.79327"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17674"
+ xlink:href="#linearGradient3725"
+ inkscape:collect="always" />
+ <radialGradient
+ r="14.441721"
+ fy="166.15393"
+ fx="293.64859"
+ cy="166.39696"
+ cx="293.51672"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17676"
+ xlink:href="#linearGradient3737"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.054159"
+ fy="173.68797"
+ fx="293.63730"
+ cy="173.68797"
+ cx="293.63730"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17678"
+ xlink:href="#linearGradient3775"
+ inkscape:collect="always" />
+ <radialGradient
+ r="7.7136898"
+ fy="167.31000"
+ fx="297.30670"
+ cy="167.35597"
+ cx="297.26108"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17680"
+ xlink:href="#linearGradient3769"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.772598"
+ fy="182.92325"
+ fx="292.91949"
+ cy="182.19415"
+ cx="292.79327"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17682"
+ xlink:href="#linearGradient3725"
+ inkscape:collect="always" />
+ <radialGradient
+ r="14.441721"
+ fy="166.15393"
+ fx="293.64859"
+ cy="166.39696"
+ cx="293.51672"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17684"
+ xlink:href="#linearGradient3737"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.054159"
+ fy="173.68797"
+ fx="293.63730"
+ cy="173.68797"
+ cx="293.63730"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17686"
+ xlink:href="#linearGradient3775"
+ inkscape:collect="always" />
+ <radialGradient
+ r="7.7136898"
+ fy="167.31000"
+ fx="297.30670"
+ cy="167.35597"
+ cx="297.26108"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17688"
+ xlink:href="#linearGradient3769"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.772598"
+ fy="182.92325"
+ fx="292.91949"
+ cy="182.19415"
+ cx="292.79327"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17690"
+ xlink:href="#linearGradient3725"
+ inkscape:collect="always" />
+ <radialGradient
+ r="14.441721"
+ fy="166.15393"
+ fx="293.64859"
+ cy="166.39696"
+ cx="293.51672"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17692"
+ xlink:href="#linearGradient3737"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.054159"
+ fy="173.68797"
+ fx="293.63730"
+ cy="173.68797"
+ cx="293.63730"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17694"
+ xlink:href="#linearGradient3775"
+ inkscape:collect="always" />
+ <radialGradient
+ r="7.7136898"
+ fy="167.31000"
+ fx="297.30670"
+ cy="167.35597"
+ cx="297.26108"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17696"
+ xlink:href="#linearGradient3769"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.772598"
+ fy="182.92325"
+ fx="292.91949"
+ cy="182.19415"
+ cx="292.79327"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17706"
+ xlink:href="#linearGradient3725"
+ inkscape:collect="always" />
+ <radialGradient
+ r="14.441721"
+ fy="166.15393"
+ fx="293.64859"
+ cy="166.39696"
+ cx="293.51672"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17708"
+ xlink:href="#linearGradient3737"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.054159"
+ fy="173.68797"
+ fx="293.63730"
+ cy="173.68797"
+ cx="293.63730"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17710"
+ xlink:href="#linearGradient3775"
+ inkscape:collect="always" />
+ <radialGradient
+ r="7.7136898"
+ fy="167.31000"
+ fx="297.30670"
+ cy="167.35597"
+ cx="297.26108"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17712"
+ xlink:href="#linearGradient3769"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.772598"
+ fy="182.92325"
+ fx="292.91949"
+ cy="182.19415"
+ cx="292.79327"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17730"
+ xlink:href="#linearGradient3725"
+ inkscape:collect="always" />
+ <radialGradient
+ r="14.441721"
+ fy="166.15393"
+ fx="293.64859"
+ cy="166.39696"
+ cx="293.51672"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17732"
+ xlink:href="#linearGradient3737"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.054159"
+ fy="173.68797"
+ fx="293.63730"
+ cy="173.68797"
+ cx="293.63730"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17734"
+ xlink:href="#linearGradient3775"
+ inkscape:collect="always" />
+ <radialGradient
+ r="7.7136898"
+ fy="167.31000"
+ fx="297.30670"
+ cy="167.35597"
+ cx="297.26108"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17736"
+ xlink:href="#linearGradient3769"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.772598"
+ fy="182.92325"
+ fx="292.91949"
+ cy="182.19415"
+ cx="292.79327"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17738"
+ xlink:href="#linearGradient3725"
+ inkscape:collect="always" />
+ <radialGradient
+ r="14.441721"
+ fy="166.15393"
+ fx="293.64859"
+ cy="166.39696"
+ cx="293.51672"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17740"
+ xlink:href="#linearGradient3737"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.054159"
+ fy="173.68797"
+ fx="293.63730"
+ cy="173.68797"
+ cx="293.63730"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17742"
+ xlink:href="#linearGradient3775"
+ inkscape:collect="always" />
+ <radialGradient
+ r="7.7136898"
+ fy="167.31000"
+ fx="297.30670"
+ cy="167.35597"
+ cx="297.26108"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17744"
+ xlink:href="#linearGradient3769"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.772598"
+ fy="182.92325"
+ fx="292.91949"
+ cy="182.19415"
+ cx="292.79327"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17754"
+ xlink:href="#linearGradient3725"
+ inkscape:collect="always" />
+ <radialGradient
+ r="14.441721"
+ fy="166.15393"
+ fx="293.64859"
+ cy="166.39696"
+ cx="293.51672"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17756"
+ xlink:href="#linearGradient3737"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.054159"
+ fy="173.68797"
+ fx="293.63730"
+ cy="173.68797"
+ cx="293.63730"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17758"
+ xlink:href="#linearGradient3775"
+ inkscape:collect="always" />
+ <radialGradient
+ r="7.7136898"
+ fy="167.31000"
+ fx="297.30670"
+ cy="167.35597"
+ cx="297.26108"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17760"
+ xlink:href="#linearGradient3769"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.772598"
+ fy="182.92325"
+ fx="292.91949"
+ cy="182.19415"
+ cx="292.79327"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17762"
+ xlink:href="#linearGradient3725"
+ inkscape:collect="always" />
+ <radialGradient
+ r="14.441721"
+ fy="166.15393"
+ fx="293.64859"
+ cy="166.39696"
+ cx="293.51672"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17764"
+ xlink:href="#linearGradient3737"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.054159"
+ fy="173.68797"
+ fx="293.63730"
+ cy="173.68797"
+ cx="293.63730"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17766"
+ xlink:href="#linearGradient3775"
+ inkscape:collect="always" />
+ <radialGradient
+ r="7.7136898"
+ fy="167.31000"
+ fx="297.30670"
+ cy="167.35597"
+ cx="297.26108"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17768"
+ xlink:href="#linearGradient3769"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.772598"
+ fy="182.92325"
+ fx="292.91949"
+ cy="182.19415"
+ cx="292.79327"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17770"
+ xlink:href="#linearGradient3725"
+ inkscape:collect="always" />
+ <radialGradient
+ r="14.441721"
+ fy="166.15393"
+ fx="293.64859"
+ cy="166.39696"
+ cx="293.51672"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17772"
+ xlink:href="#linearGradient3737"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.054159"
+ fy="173.68797"
+ fx="293.63730"
+ cy="173.68797"
+ cx="293.63730"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17774"
+ xlink:href="#linearGradient3775"
+ inkscape:collect="always" />
+ <radialGradient
+ r="7.7136898"
+ fy="167.31000"
+ fx="297.30670"
+ cy="167.35597"
+ cx="297.26108"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17776"
+ xlink:href="#linearGradient3769"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.772598"
+ fy="182.92325"
+ fx="292.91949"
+ cy="182.19415"
+ cx="292.79327"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17786"
+ xlink:href="#linearGradient3725"
+ inkscape:collect="always" />
+ <radialGradient
+ r="14.441721"
+ fy="166.15393"
+ fx="293.64859"
+ cy="166.39696"
+ cx="293.51672"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17788"
+ xlink:href="#linearGradient3737"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.054159"
+ fy="173.68797"
+ fx="293.63730"
+ cy="173.68797"
+ cx="293.63730"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17790"
+ xlink:href="#linearGradient3775"
+ inkscape:collect="always" />
+ <radialGradient
+ r="7.7136898"
+ fy="167.31000"
+ fx="297.30670"
+ cy="167.35597"
+ cx="297.26108"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17792"
+ xlink:href="#linearGradient3769"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.772598"
+ fy="182.92325"
+ fx="292.91949"
+ cy="182.19415"
+ cx="292.79327"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17812"
+ xlink:href="#linearGradient3725"
+ inkscape:collect="always" />
+ <radialGradient
+ r="14.441721"
+ fy="166.15393"
+ fx="293.64859"
+ cy="166.39696"
+ cx="293.51672"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17814"
+ xlink:href="#linearGradient3737"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.054159"
+ fy="173.68797"
+ fx="293.63730"
+ cy="173.68797"
+ cx="293.63730"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17816"
+ xlink:href="#linearGradient3775"
+ inkscape:collect="always" />
+ <radialGradient
+ r="7.7136898"
+ fy="167.31000"
+ fx="297.30670"
+ cy="167.35597"
+ cx="297.26108"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17818"
+ xlink:href="#linearGradient3769"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.772598"
+ fy="182.92325"
+ fx="292.91949"
+ cy="182.19415"
+ cx="292.79327"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17820"
+ xlink:href="#linearGradient3725"
+ inkscape:collect="always" />
+ <radialGradient
+ r="14.441721"
+ fy="166.15393"
+ fx="293.64859"
+ cy="166.39696"
+ cx="293.51672"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17822"
+ xlink:href="#linearGradient3737"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.054159"
+ fy="173.68797"
+ fx="293.63730"
+ cy="173.68797"
+ cx="293.63730"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17824"
+ xlink:href="#linearGradient3775"
+ inkscape:collect="always" />
+ <radialGradient
+ r="7.7136898"
+ fy="167.31000"
+ fx="297.30670"
+ cy="167.35597"
+ cx="297.26108"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17826"
+ xlink:href="#linearGradient3769"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.772598"
+ fy="182.92325"
+ fx="292.91949"
+ cy="182.19415"
+ cx="292.79327"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17836"
+ xlink:href="#linearGradient3725"
+ inkscape:collect="always" />
+ <radialGradient
+ r="14.441721"
+ fy="166.15393"
+ fx="293.64859"
+ cy="166.39696"
+ cx="293.51672"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17838"
+ xlink:href="#linearGradient3737"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.054159"
+ fy="173.68797"
+ fx="293.63730"
+ cy="173.68797"
+ cx="293.63730"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17840"
+ xlink:href="#linearGradient3775"
+ inkscape:collect="always" />
+ <radialGradient
+ r="7.7136898"
+ fy="167.31000"
+ fx="297.30670"
+ cy="167.35597"
+ cx="297.26108"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17842"
+ xlink:href="#linearGradient3769"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.772598"
+ fy="182.92325"
+ fx="292.91949"
+ cy="182.19415"
+ cx="292.79327"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17876"
+ xlink:href="#linearGradient3725"
+ inkscape:collect="always" />
+ <radialGradient
+ r="14.441721"
+ fy="166.15393"
+ fx="293.64859"
+ cy="166.39696"
+ cx="293.51672"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17878"
+ xlink:href="#linearGradient3737"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.054159"
+ fy="173.68797"
+ fx="293.63730"
+ cy="173.68797"
+ cx="293.63730"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17880"
+ xlink:href="#linearGradient3775"
+ inkscape:collect="always" />
+ <radialGradient
+ r="7.7136898"
+ fy="167.31000"
+ fx="297.30670"
+ cy="167.35597"
+ cx="297.26108"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17882"
+ xlink:href="#linearGradient3769"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.772598"
+ fy="182.92325"
+ fx="292.91949"
+ cy="182.19415"
+ cx="292.79327"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17884"
+ xlink:href="#linearGradient3725"
+ inkscape:collect="always" />
+ <radialGradient
+ r="14.441721"
+ fy="166.15393"
+ fx="293.64859"
+ cy="166.39696"
+ cx="293.51672"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17886"
+ xlink:href="#linearGradient3737"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.054159"
+ fy="173.68797"
+ fx="293.63730"
+ cy="173.68797"
+ cx="293.63730"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17888"
+ xlink:href="#linearGradient3775"
+ inkscape:collect="always" />
+ <radialGradient
+ r="7.7136898"
+ fy="167.31000"
+ fx="297.30670"
+ cy="167.35597"
+ cx="297.26108"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17890"
+ xlink:href="#linearGradient3769"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.772598"
+ fy="182.92325"
+ fx="292.91949"
+ cy="182.19415"
+ cx="292.79327"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17892"
+ xlink:href="#linearGradient3725"
+ inkscape:collect="always" />
+ <radialGradient
+ r="14.441721"
+ fy="166.15393"
+ fx="293.64859"
+ cy="166.39696"
+ cx="293.51672"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17894"
+ xlink:href="#linearGradient3737"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.054159"
+ fy="173.68797"
+ fx="293.63730"
+ cy="173.68797"
+ cx="293.63730"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17896"
+ xlink:href="#linearGradient3775"
+ inkscape:collect="always" />
+ <radialGradient
+ r="7.7136898"
+ fy="167.31000"
+ fx="297.30670"
+ cy="167.35597"
+ cx="297.26108"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17898"
+ xlink:href="#linearGradient3769"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.772598"
+ fy="182.92325"
+ fx="292.91949"
+ cy="182.19415"
+ cx="292.79327"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17900"
+ xlink:href="#linearGradient3725"
+ inkscape:collect="always" />
+ <radialGradient
+ r="14.441721"
+ fy="166.15393"
+ fx="293.64859"
+ cy="166.39696"
+ cx="293.51672"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17902"
+ xlink:href="#linearGradient3737"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.054159"
+ fy="173.68797"
+ fx="293.63730"
+ cy="173.68797"
+ cx="293.63730"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17904"
+ xlink:href="#linearGradient3775"
+ inkscape:collect="always" />
+ <radialGradient
+ r="7.7136898"
+ fy="167.31000"
+ fx="297.30670"
+ cy="167.35597"
+ cx="297.26108"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17906"
+ xlink:href="#linearGradient3769"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.772598"
+ fy="182.92325"
+ fx="292.91949"
+ cy="182.19415"
+ cx="292.79327"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17908"
+ xlink:href="#linearGradient3725"
+ inkscape:collect="always" />
+ <radialGradient
+ r="14.441721"
+ fy="166.15393"
+ fx="293.64859"
+ cy="166.39696"
+ cx="293.51672"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17910"
+ xlink:href="#linearGradient3737"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.054159"
+ fy="173.68797"
+ fx="293.63730"
+ cy="173.68797"
+ cx="293.63730"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17912"
+ xlink:href="#linearGradient3775"
+ inkscape:collect="always" />
+ <radialGradient
+ r="7.7136898"
+ fy="167.31000"
+ fx="297.30670"
+ cy="167.35597"
+ cx="297.26108"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17914"
+ xlink:href="#linearGradient3769"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.772598"
+ fy="182.92325"
+ fx="292.91949"
+ cy="182.19415"
+ cx="292.79327"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17924"
+ xlink:href="#linearGradient3725"
+ inkscape:collect="always" />
+ <radialGradient
+ r="14.441721"
+ fy="166.15393"
+ fx="293.64859"
+ cy="166.39696"
+ cx="293.51672"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17926"
+ xlink:href="#linearGradient3737"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.054159"
+ fy="173.68797"
+ fx="293.63730"
+ cy="173.68797"
+ cx="293.63730"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17928"
+ xlink:href="#linearGradient3775"
+ inkscape:collect="always" />
+ <radialGradient
+ r="7.7136898"
+ fy="167.31000"
+ fx="297.30670"
+ cy="167.35597"
+ cx="297.26108"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17930"
+ xlink:href="#linearGradient3769"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.772598"
+ fy="182.92325"
+ fx="292.91949"
+ cy="182.19415"
+ cx="292.79327"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17932"
+ xlink:href="#linearGradient3725"
+ inkscape:collect="always" />
+ <radialGradient
+ r="14.441721"
+ fy="166.15393"
+ fx="293.64859"
+ cy="166.39696"
+ cx="293.51672"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17934"
+ xlink:href="#linearGradient3737"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.054159"
+ fy="173.68797"
+ fx="293.63730"
+ cy="173.68797"
+ cx="293.63730"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17936"
+ xlink:href="#linearGradient3775"
+ inkscape:collect="always" />
+ <radialGradient
+ r="7.7136898"
+ fy="167.31000"
+ fx="297.30670"
+ cy="167.35597"
+ cx="297.26108"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17938"
+ xlink:href="#linearGradient3769"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.772598"
+ fy="182.92325"
+ fx="292.91949"
+ cy="182.19415"
+ cx="292.79327"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17940"
+ xlink:href="#linearGradient3725"
+ inkscape:collect="always" />
+ <radialGradient
+ r="14.441721"
+ fy="166.15393"
+ fx="293.64859"
+ cy="166.39696"
+ cx="293.51672"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17942"
+ xlink:href="#linearGradient3737"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.054159"
+ fy="173.68797"
+ fx="293.63730"
+ cy="173.68797"
+ cx="293.63730"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17944"
+ xlink:href="#linearGradient3775"
+ inkscape:collect="always" />
+ <radialGradient
+ r="7.7136898"
+ fy="167.31000"
+ fx="297.30670"
+ cy="167.35597"
+ cx="297.26108"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17946"
+ xlink:href="#linearGradient3769"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.772598"
+ fy="182.92325"
+ fx="292.91949"
+ cy="182.19415"
+ cx="292.79327"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17948"
+ xlink:href="#linearGradient3725"
+ inkscape:collect="always" />
+ <radialGradient
+ r="14.441721"
+ fy="166.15393"
+ fx="293.64859"
+ cy="166.39696"
+ cx="293.51672"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17950"
+ xlink:href="#linearGradient3737"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.054159"
+ fy="173.68797"
+ fx="293.63730"
+ cy="173.68797"
+ cx="293.63730"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17952"
+ xlink:href="#linearGradient3775"
+ inkscape:collect="always" />
+ <radialGradient
+ r="7.7136898"
+ fy="167.31000"
+ fx="297.30670"
+ cy="167.35597"
+ cx="297.26108"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17954"
+ xlink:href="#linearGradient3769"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.772598"
+ fy="182.92325"
+ fx="292.91949"
+ cy="182.19415"
+ cx="292.79327"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17956"
+ xlink:href="#linearGradient3725"
+ inkscape:collect="always" />
+ <radialGradient
+ r="14.441721"
+ fy="166.15393"
+ fx="293.64859"
+ cy="166.39696"
+ cx="293.51672"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17958"
+ xlink:href="#linearGradient3737"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.054159"
+ fy="173.68797"
+ fx="293.63730"
+ cy="173.68797"
+ cx="293.63730"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17960"
+ xlink:href="#linearGradient3775"
+ inkscape:collect="always" />
+ <radialGradient
+ r="7.7136898"
+ fy="167.31000"
+ fx="297.30670"
+ cy="167.35597"
+ cx="297.26108"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17962"
+ xlink:href="#linearGradient3769"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.772598"
+ fy="182.92325"
+ fx="292.91949"
+ cy="182.19415"
+ cx="292.79327"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17964"
+ xlink:href="#linearGradient3725"
+ inkscape:collect="always" />
+ <radialGradient
+ r="14.441721"
+ fy="166.15393"
+ fx="293.64859"
+ cy="166.39696"
+ cx="293.51672"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17966"
+ xlink:href="#linearGradient3737"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.054159"
+ fy="173.68797"
+ fx="293.63730"
+ cy="173.68797"
+ cx="293.63730"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17968"
+ xlink:href="#linearGradient3775"
+ inkscape:collect="always" />
+ <radialGradient
+ r="7.7136898"
+ fy="167.31000"
+ fx="297.30670"
+ cy="167.35597"
+ cx="297.26108"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient17970"
+ xlink:href="#linearGradient3769"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.772598"
+ fy="182.92325"
+ fx="292.91949"
+ cy="182.19415"
+ cx="292.79327"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient18730"
+ xlink:href="#linearGradient3725"
+ inkscape:collect="always" />
+ <radialGradient
+ r="14.441721"
+ fy="166.15393"
+ fx="293.64859"
+ cy="166.39696"
+ cx="293.51672"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient18732"
+ xlink:href="#linearGradient3737"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.054159"
+ fy="173.68797"
+ fx="293.63730"
+ cy="173.68797"
+ cx="293.63730"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient18734"
+ xlink:href="#linearGradient3775"
+ inkscape:collect="always" />
+ <radialGradient
+ r="7.7136898"
+ fy="167.31000"
+ fx="297.30670"
+ cy="167.35597"
+ cx="297.26108"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient18736"
+ xlink:href="#linearGradient3769"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.772598"
+ fy="182.92325"
+ fx="292.91949"
+ cy="182.19415"
+ cx="292.79327"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient18738"
+ xlink:href="#linearGradient3725"
+ inkscape:collect="always" />
+ <radialGradient
+ r="14.441721"
+ fy="166.15393"
+ fx="293.64859"
+ cy="166.39696"
+ cx="293.51672"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient18740"
+ xlink:href="#linearGradient3737"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.054159"
+ fy="173.68797"
+ fx="293.63730"
+ cy="173.68797"
+ cx="293.63730"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient18742"
+ xlink:href="#linearGradient3775"
+ inkscape:collect="always" />
+ <radialGradient
+ r="7.7136898"
+ fy="167.31000"
+ fx="297.30670"
+ cy="167.35597"
+ cx="297.26108"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient18744"
+ xlink:href="#linearGradient3769"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.772598"
+ fy="182.92325"
+ fx="292.91949"
+ cy="182.19415"
+ cx="292.79327"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient18746"
+ xlink:href="#linearGradient3725"
+ inkscape:collect="always" />
+ <radialGradient
+ r="14.441721"
+ fy="166.15393"
+ fx="293.64859"
+ cy="166.39696"
+ cx="293.51672"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient18748"
+ xlink:href="#linearGradient3737"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.054159"
+ fy="173.68797"
+ fx="293.63730"
+ cy="173.68797"
+ cx="293.63730"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient18750"
+ xlink:href="#linearGradient3775"
+ inkscape:collect="always" />
+ <radialGradient
+ r="7.7136898"
+ fy="167.31000"
+ fx="297.30670"
+ cy="167.35597"
+ cx="297.26108"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient18752"
+ xlink:href="#linearGradient3769"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.772598"
+ fy="182.92325"
+ fx="292.91949"
+ cy="182.19415"
+ cx="292.79327"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient18754"
+ xlink:href="#linearGradient3725"
+ inkscape:collect="always" />
+ <radialGradient
+ r="14.441721"
+ fy="166.15393"
+ fx="293.64859"
+ cy="166.39696"
+ cx="293.51672"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient18756"
+ xlink:href="#linearGradient3737"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.054159"
+ fy="173.68797"
+ fx="293.63730"
+ cy="173.68797"
+ cx="293.63730"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient18758"
+ xlink:href="#linearGradient3775"
+ inkscape:collect="always" />
+ <radialGradient
+ r="7.7136898"
+ fy="167.31000"
+ fx="297.30670"
+ cy="167.35597"
+ cx="297.26108"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient18760"
+ xlink:href="#linearGradient3769"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.772598"
+ fy="182.92325"
+ fx="292.91949"
+ cy="182.19415"
+ cx="292.79327"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient18762"
+ xlink:href="#linearGradient3725"
+ inkscape:collect="always" />
+ <radialGradient
+ r="14.441721"
+ fy="166.15393"
+ fx="293.64859"
+ cy="166.39696"
+ cx="293.51672"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient18764"
+ xlink:href="#linearGradient3737"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.054159"
+ fy="173.68797"
+ fx="293.63730"
+ cy="173.68797"
+ cx="293.63730"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient18766"
+ xlink:href="#linearGradient3775"
+ inkscape:collect="always" />
+ <radialGradient
+ r="7.7136898"
+ fy="167.31000"
+ fx="297.30670"
+ cy="167.35597"
+ cx="297.26108"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient18768"
+ xlink:href="#linearGradient3769"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.772598"
+ fy="182.92325"
+ fx="292.91949"
+ cy="182.19415"
+ cx="292.79327"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient18770"
+ xlink:href="#linearGradient3725"
+ inkscape:collect="always" />
+ <radialGradient
+ r="14.441721"
+ fy="166.15393"
+ fx="293.64859"
+ cy="166.39696"
+ cx="293.51672"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient18772"
+ xlink:href="#linearGradient3737"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.054159"
+ fy="173.68797"
+ fx="293.63730"
+ cy="173.68797"
+ cx="293.63730"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient18774"
+ xlink:href="#linearGradient3775"
+ inkscape:collect="always" />
+ <radialGradient
+ r="7.7136898"
+ fy="167.31000"
+ fx="297.30670"
+ cy="167.35597"
+ cx="297.26108"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient18776"
+ xlink:href="#linearGradient3769"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.772598"
+ fy="182.92325"
+ fx="292.91949"
+ cy="182.19415"
+ cx="292.79327"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient18778"
+ xlink:href="#linearGradient3725"
+ inkscape:collect="always" />
+ <radialGradient
+ r="14.441721"
+ fy="166.15393"
+ fx="293.64859"
+ cy="166.39696"
+ cx="293.51672"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient18780"
+ xlink:href="#linearGradient3737"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.054159"
+ fy="173.68797"
+ fx="293.63730"
+ cy="173.68797"
+ cx="293.63730"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient18782"
+ xlink:href="#linearGradient3775"
+ inkscape:collect="always" />
+ <radialGradient
+ r="7.7136898"
+ fy="167.31000"
+ fx="297.30670"
+ cy="167.35597"
+ cx="297.26108"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient18784"
+ xlink:href="#linearGradient3769"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.772598"
+ fy="182.92325"
+ fx="292.91949"
+ cy="182.19415"
+ cx="292.79327"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient18786"
+ xlink:href="#linearGradient3725"
+ inkscape:collect="always" />
+ <radialGradient
+ r="14.441721"
+ fy="166.15393"
+ fx="293.64859"
+ cy="166.39696"
+ cx="293.51672"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient18788"
+ xlink:href="#linearGradient3737"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.054159"
+ fy="173.68797"
+ fx="293.63730"
+ cy="173.68797"
+ cx="293.63730"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient18790"
+ xlink:href="#linearGradient3775"
+ inkscape:collect="always" />
+ <radialGradient
+ r="7.7136898"
+ fy="167.31000"
+ fx="297.30670"
+ cy="167.35597"
+ cx="297.26108"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient18792"
+ xlink:href="#linearGradient3769"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.772598"
+ fy="182.92325"
+ fx="292.91949"
+ cy="182.19415"
+ cx="292.79327"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient18794"
+ xlink:href="#linearGradient3725"
+ inkscape:collect="always" />
+ <radialGradient
+ r="14.441721"
+ fy="166.15393"
+ fx="293.64859"
+ cy="166.39696"
+ cx="293.51672"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient18796"
+ xlink:href="#linearGradient3737"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.054159"
+ fy="173.68797"
+ fx="293.63730"
+ cy="173.68797"
+ cx="293.63730"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient18798"
+ xlink:href="#linearGradient3775"
+ inkscape:collect="always" />
+ <radialGradient
+ r="7.7136898"
+ fy="167.31000"
+ fx="297.30670"
+ cy="167.35597"
+ cx="297.26108"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient18800"
+ xlink:href="#linearGradient3769"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.772598"
+ fy="182.92325"
+ fx="292.91949"
+ cy="182.19415"
+ cx="292.79327"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient18802"
+ xlink:href="#linearGradient3725"
+ inkscape:collect="always" />
+ <radialGradient
+ r="14.441721"
+ fy="166.15393"
+ fx="293.64859"
+ cy="166.39696"
+ cx="293.51672"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient18804"
+ xlink:href="#linearGradient3737"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.054159"
+ fy="173.68797"
+ fx="293.63730"
+ cy="173.68797"
+ cx="293.63730"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient18806"
+ xlink:href="#linearGradient3775"
+ inkscape:collect="always" />
+ <radialGradient
+ r="7.7136898"
+ fy="167.31000"
+ fx="297.30670"
+ cy="167.35597"
+ cx="297.26108"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient18808"
+ xlink:href="#linearGradient3769"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.772598"
+ fy="182.92325"
+ fx="292.91949"
+ cy="182.19415"
+ cx="292.79327"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient18810"
+ xlink:href="#linearGradient3725"
+ inkscape:collect="always" />
+ <radialGradient
+ r="14.441721"
+ fy="166.15393"
+ fx="293.64859"
+ cy="166.39696"
+ cx="293.51672"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient18812"
+ xlink:href="#linearGradient3737"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.054159"
+ fy="173.68797"
+ fx="293.63730"
+ cy="173.68797"
+ cx="293.63730"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient18814"
+ xlink:href="#linearGradient3775"
+ inkscape:collect="always" />
+ <radialGradient
+ r="7.7136898"
+ fy="167.31000"
+ fx="297.30670"
+ cy="167.35597"
+ cx="297.26108"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient18816"
+ xlink:href="#linearGradient3769"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.772598"
+ fy="182.92325"
+ fx="292.91949"
+ cy="182.19415"
+ cx="292.79327"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient18818"
+ xlink:href="#linearGradient3725"
+ inkscape:collect="always" />
+ <radialGradient
+ r="14.441721"
+ fy="166.15393"
+ fx="293.64859"
+ cy="166.39696"
+ cx="293.51672"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient18820"
+ xlink:href="#linearGradient3737"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.054159"
+ fy="173.68797"
+ fx="293.63730"
+ cy="173.68797"
+ cx="293.63730"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient18822"
+ xlink:href="#linearGradient3775"
+ inkscape:collect="always" />
+ <radialGradient
+ r="7.7136898"
+ fy="167.31000"
+ fx="297.30670"
+ cy="167.35597"
+ cx="297.26108"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient18824"
+ xlink:href="#linearGradient3769"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.772598"
+ fy="182.92325"
+ fx="292.91949"
+ cy="182.19415"
+ cx="292.79327"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient18826"
+ xlink:href="#linearGradient3725"
+ inkscape:collect="always" />
+ <radialGradient
+ r="14.441721"
+ fy="166.15393"
+ fx="293.64859"
+ cy="166.39696"
+ cx="293.51672"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient18828"
+ xlink:href="#linearGradient3737"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.054159"
+ fy="173.68797"
+ fx="293.63730"
+ cy="173.68797"
+ cx="293.63730"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient18830"
+ xlink:href="#linearGradient3775"
+ inkscape:collect="always" />
+ <radialGradient
+ r="7.7136898"
+ fy="167.31000"
+ fx="297.30670"
+ cy="167.35597"
+ cx="297.26108"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient18832"
+ xlink:href="#linearGradient3769"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.772598"
+ fy="182.92325"
+ fx="292.91949"
+ cy="182.19415"
+ cx="292.79327"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient18834"
+ xlink:href="#linearGradient3725"
+ inkscape:collect="always" />
+ <radialGradient
+ r="14.441721"
+ fy="166.15393"
+ fx="293.64859"
+ cy="166.39696"
+ cx="293.51672"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient18836"
+ xlink:href="#linearGradient3737"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.054159"
+ fy="173.68797"
+ fx="293.63730"
+ cy="173.68797"
+ cx="293.63730"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient18838"
+ xlink:href="#linearGradient3775"
+ inkscape:collect="always" />
+ <radialGradient
+ r="7.7136898"
+ fy="167.31000"
+ fx="297.30670"
+ cy="167.35597"
+ cx="297.26108"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient18840"
+ xlink:href="#linearGradient3769"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.772598"
+ fy="182.92325"
+ fx="292.91949"
+ cy="182.19415"
+ cx="292.79327"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient18842"
+ xlink:href="#linearGradient3725"
+ inkscape:collect="always" />
+ <radialGradient
+ r="14.441721"
+ fy="166.15393"
+ fx="293.64859"
+ cy="166.39696"
+ cx="293.51672"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient18844"
+ xlink:href="#linearGradient3737"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.054159"
+ fy="173.68797"
+ fx="293.63730"
+ cy="173.68797"
+ cx="293.63730"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient18846"
+ xlink:href="#linearGradient3775"
+ inkscape:collect="always" />
+ <radialGradient
+ r="7.7136898"
+ fy="167.31000"
+ fx="297.30670"
+ cy="167.35597"
+ cx="297.26108"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient18848"
+ xlink:href="#linearGradient3769"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.772598"
+ fy="182.92325"
+ fx="292.91949"
+ cy="182.19415"
+ cx="292.79327"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient18850"
+ xlink:href="#linearGradient3725"
+ inkscape:collect="always" />
+ <radialGradient
+ r="14.441721"
+ fy="166.15393"
+ fx="293.64859"
+ cy="166.39696"
+ cx="293.51672"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient18852"
+ xlink:href="#linearGradient3737"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.054159"
+ fy="173.68797"
+ fx="293.63730"
+ cy="173.68797"
+ cx="293.63730"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient18854"
+ xlink:href="#linearGradient3775"
+ inkscape:collect="always" />
+ <radialGradient
+ r="7.7136898"
+ fy="167.31000"
+ fx="297.30670"
+ cy="167.35597"
+ cx="297.26108"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient18856"
+ xlink:href="#linearGradient3769"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.772598"
+ fy="182.92325"
+ fx="292.91949"
+ cy="182.19415"
+ cx="292.79327"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient18858"
+ xlink:href="#linearGradient3725"
+ inkscape:collect="always" />
+ <radialGradient
+ r="14.441721"
+ fy="166.15393"
+ fx="293.64859"
+ cy="166.39696"
+ cx="293.51672"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient18860"
+ xlink:href="#linearGradient3737"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.054159"
+ fy="173.68797"
+ fx="293.63730"
+ cy="173.68797"
+ cx="293.63730"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient18862"
+ xlink:href="#linearGradient3775"
+ inkscape:collect="always" />
+ <radialGradient
+ r="7.7136898"
+ fy="167.31000"
+ fx="297.30670"
+ cy="167.35597"
+ cx="297.26108"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient18864"
+ xlink:href="#linearGradient3769"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.772598"
+ fy="182.92325"
+ fx="292.91949"
+ cy="182.19415"
+ cx="292.79327"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient18866"
+ xlink:href="#linearGradient3725"
+ inkscape:collect="always" />
+ <radialGradient
+ r="14.441721"
+ fy="166.15393"
+ fx="293.64859"
+ cy="166.39696"
+ cx="293.51672"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient18868"
+ xlink:href="#linearGradient3737"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.054159"
+ fy="173.68797"
+ fx="293.63730"
+ cy="173.68797"
+ cx="293.63730"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient18870"
+ xlink:href="#linearGradient3775"
+ inkscape:collect="always" />
+ <radialGradient
+ r="7.7136898"
+ fy="167.31000"
+ fx="297.30670"
+ cy="167.35597"
+ cx="297.26108"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient18872"
+ xlink:href="#linearGradient3769"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.772598"
+ fy="182.92325"
+ fx="292.91949"
+ cy="182.19415"
+ cx="292.79327"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient18874"
+ xlink:href="#linearGradient3725"
+ inkscape:collect="always" />
+ <radialGradient
+ r="14.441721"
+ fy="166.15393"
+ fx="293.64859"
+ cy="166.39696"
+ cx="293.51672"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient18876"
+ xlink:href="#linearGradient3737"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.054159"
+ fy="173.68797"
+ fx="293.63730"
+ cy="173.68797"
+ cx="293.63730"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient18878"
+ xlink:href="#linearGradient3775"
+ inkscape:collect="always" />
+ <radialGradient
+ r="7.7136898"
+ fy="167.31000"
+ fx="297.30670"
+ cy="167.35597"
+ cx="297.26108"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient18880"
+ xlink:href="#linearGradient3769"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.772598"
+ fy="182.92325"
+ fx="292.91949"
+ cy="182.19415"
+ cx="292.79327"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient18882"
+ xlink:href="#linearGradient3725"
+ inkscape:collect="always" />
+ <radialGradient
+ r="14.441721"
+ fy="166.15393"
+ fx="293.64859"
+ cy="166.39696"
+ cx="293.51672"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient18884"
+ xlink:href="#linearGradient3737"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.054159"
+ fy="173.68797"
+ fx="293.63730"
+ cy="173.68797"
+ cx="293.63730"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient18886"
+ xlink:href="#linearGradient3775"
+ inkscape:collect="always" />
+ <radialGradient
+ r="7.7136898"
+ fy="167.31000"
+ fx="297.30670"
+ cy="167.35597"
+ cx="297.26108"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient18888"
+ xlink:href="#linearGradient3769"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.772598"
+ fy="182.92325"
+ fx="292.91949"
+ cy="182.19415"
+ cx="292.79327"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient18890"
+ xlink:href="#linearGradient3725"
+ inkscape:collect="always" />
+ <radialGradient
+ r="14.441721"
+ fy="166.15393"
+ fx="293.64859"
+ cy="166.39696"
+ cx="293.51672"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient18892"
+ xlink:href="#linearGradient3737"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.054159"
+ fy="173.68797"
+ fx="293.63730"
+ cy="173.68797"
+ cx="293.63730"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient18894"
+ xlink:href="#linearGradient3775"
+ inkscape:collect="always" />
+ <radialGradient
+ r="7.7136898"
+ fy="167.31000"
+ fx="297.30670"
+ cy="167.35597"
+ cx="297.26108"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient18896"
+ xlink:href="#linearGradient3769"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.772598"
+ fy="182.92325"
+ fx="292.91949"
+ cy="182.19415"
+ cx="292.79327"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient18898"
+ xlink:href="#linearGradient3725"
+ inkscape:collect="always" />
+ <radialGradient
+ r="14.441721"
+ fy="166.15393"
+ fx="293.64859"
+ cy="166.39696"
+ cx="293.51672"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient18900"
+ xlink:href="#linearGradient3737"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.054159"
+ fy="173.68797"
+ fx="293.63730"
+ cy="173.68797"
+ cx="293.63730"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient18902"
+ xlink:href="#linearGradient3775"
+ inkscape:collect="always" />
+ <radialGradient
+ r="7.7136898"
+ fy="167.31000"
+ fx="297.30670"
+ cy="167.35597"
+ cx="297.26108"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient18904"
+ xlink:href="#linearGradient3769"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.772598"
+ fy="182.92325"
+ fx="292.91949"
+ cy="182.19415"
+ cx="292.79327"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient18906"
+ xlink:href="#linearGradient3725"
+ inkscape:collect="always" />
+ <radialGradient
+ r="14.441721"
+ fy="166.15393"
+ fx="293.64859"
+ cy="166.39696"
+ cx="293.51672"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient18908"
+ xlink:href="#linearGradient3737"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.054159"
+ fy="173.68797"
+ fx="293.63730"
+ cy="173.68797"
+ cx="293.63730"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient18910"
+ xlink:href="#linearGradient3775"
+ inkscape:collect="always" />
+ <radialGradient
+ r="7.7136898"
+ fy="167.31000"
+ fx="297.30670"
+ cy="167.35597"
+ cx="297.26108"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient18912"
+ xlink:href="#linearGradient3769"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.772598"
+ fy="182.92325"
+ fx="292.91949"
+ cy="182.19415"
+ cx="292.79327"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient18914"
+ xlink:href="#linearGradient3725"
+ inkscape:collect="always" />
+ <radialGradient
+ r="14.441721"
+ fy="166.15393"
+ fx="293.64859"
+ cy="166.39696"
+ cx="293.51672"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient18916"
+ xlink:href="#linearGradient3737"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.054159"
+ fy="173.68797"
+ fx="293.63730"
+ cy="173.68797"
+ cx="293.63730"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient18918"
+ xlink:href="#linearGradient3775"
+ inkscape:collect="always" />
+ <radialGradient
+ r="7.7136898"
+ fy="167.31000"
+ fx="297.30670"
+ cy="167.35597"
+ cx="297.26108"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient18920"
+ xlink:href="#linearGradient3769"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.772598"
+ fy="182.92325"
+ fx="292.91949"
+ cy="182.19415"
+ cx="292.79327"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient18922"
+ xlink:href="#linearGradient3725"
+ inkscape:collect="always" />
+ <radialGradient
+ r="14.441721"
+ fy="166.15393"
+ fx="293.64859"
+ cy="166.39696"
+ cx="293.51672"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient18924"
+ xlink:href="#linearGradient3737"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.054159"
+ fy="173.68797"
+ fx="293.63730"
+ cy="173.68797"
+ cx="293.63730"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient18926"
+ xlink:href="#linearGradient3775"
+ inkscape:collect="always" />
+ <radialGradient
+ r="7.7136898"
+ fy="167.31000"
+ fx="297.30670"
+ cy="167.35597"
+ cx="297.26108"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient18928"
+ xlink:href="#linearGradient3769"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.772598"
+ fy="182.92325"
+ fx="292.91949"
+ cy="182.19415"
+ cx="292.79327"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient18930"
+ xlink:href="#linearGradient3725"
+ inkscape:collect="always" />
+ <radialGradient
+ r="14.441721"
+ fy="166.15393"
+ fx="293.64859"
+ cy="166.39696"
+ cx="293.51672"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient18932"
+ xlink:href="#linearGradient3737"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.054159"
+ fy="173.68797"
+ fx="293.63730"
+ cy="173.68797"
+ cx="293.63730"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient18934"
+ xlink:href="#linearGradient3775"
+ inkscape:collect="always" />
+ <radialGradient
+ r="7.7136898"
+ fy="167.31000"
+ fx="297.30670"
+ cy="167.35597"
+ cx="297.26108"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient18936"
+ xlink:href="#linearGradient3769"
+ inkscape:collect="always" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2106"
+ id="linearGradient2577"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.823983,0.000000,0.000000,1.213617,-236.0338,-109.4693)"
+ x1="497.25031"
+ y1="138.84357"
+ x2="512.21820"
+ y2="131.12579" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2098"
+ id="linearGradient3382"
+ gradientUnits="userSpaceOnUse"
+ x1="278.08313"
+ y1="173.68797"
+ x2="309.19147"
+ y2="173.68797" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3725"
+ id="radialGradient3384"
+ gradientUnits="userSpaceOnUse"
+ cx="292.79327"
+ cy="182.19415"
+ fx="292.91949"
+ fy="182.92325"
+ r="16.772598" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3737"
+ id="radialGradient3386"
+ gradientUnits="userSpaceOnUse"
+ cx="293.51672"
+ cy="166.39696"
+ fx="293.64859"
+ fy="166.15393"
+ r="14.441721" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3725"
+ id="radialGradient4729"
+ gradientUnits="userSpaceOnUse"
+ cx="292.79327"
+ cy="182.19415"
+ fx="292.91949"
+ fy="182.92325"
+ r="16.772598" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3737"
+ id="radialGradient4731"
+ gradientUnits="userSpaceOnUse"
+ cx="293.51672"
+ cy="166.39696"
+ fx="293.64859"
+ fy="166.15393"
+ r="14.441721" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3775"
+ id="radialGradient4733"
+ gradientUnits="userSpaceOnUse"
+ cx="293.63730"
+ cy="173.68797"
+ fx="293.63730"
+ fy="173.68797"
+ r="16.054159" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3769"
+ id="radialGradient4735"
+ gradientUnits="userSpaceOnUse"
+ cx="297.26108"
+ cy="167.35597"
+ fx="297.30670"
+ fy="167.31000"
+ r="7.7136898" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3725"
+ id="radialGradient4747"
+ gradientUnits="userSpaceOnUse"
+ cx="292.79327"
+ cy="182.19415"
+ fx="292.91949"
+ fy="182.92325"
+ r="16.772598" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3737"
+ id="radialGradient4749"
+ gradientUnits="userSpaceOnUse"
+ cx="293.51672"
+ cy="166.39696"
+ fx="293.64859"
+ fy="166.15393"
+ r="14.441721" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3775"
+ id="radialGradient4751"
+ gradientUnits="userSpaceOnUse"
+ cx="293.63730"
+ cy="173.68797"
+ fx="293.63730"
+ fy="173.68797"
+ r="16.054159" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3769"
+ id="radialGradient4753"
+ gradientUnits="userSpaceOnUse"
+ cx="297.26108"
+ cy="167.35597"
+ fx="297.30670"
+ fy="167.31000"
+ r="7.7136898" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3725"
+ id="radialGradient4765"
+ gradientUnits="userSpaceOnUse"
+ cx="292.79327"
+ cy="182.19415"
+ fx="292.91949"
+ fy="182.92325"
+ r="16.772598" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3737"
+ id="radialGradient4767"
+ gradientUnits="userSpaceOnUse"
+ cx="293.51672"
+ cy="166.39696"
+ fx="293.64859"
+ fy="166.15393"
+ r="14.441721" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3775"
+ id="radialGradient4769"
+ gradientUnits="userSpaceOnUse"
+ cx="293.63730"
+ cy="173.68797"
+ fx="293.63730"
+ fy="173.68797"
+ r="16.054159" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3769"
+ id="radialGradient4771"
+ gradientUnits="userSpaceOnUse"
+ cx="297.26108"
+ cy="167.35597"
+ fx="297.30670"
+ fy="167.31000"
+ r="7.7136898" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3725"
+ id="radialGradient4783"
+ gradientUnits="userSpaceOnUse"
+ cx="292.79327"
+ cy="182.19415"
+ fx="292.91949"
+ fy="182.92325"
+ r="16.772598" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3737"
+ id="radialGradient4785"
+ gradientUnits="userSpaceOnUse"
+ cx="293.51672"
+ cy="166.39696"
+ fx="293.64859"
+ fy="166.15393"
+ r="14.441721" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3775"
+ id="radialGradient4787"
+ gradientUnits="userSpaceOnUse"
+ cx="293.63730"
+ cy="173.68797"
+ fx="293.63730"
+ fy="173.68797"
+ r="16.054159" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3769"
+ id="radialGradient4789"
+ gradientUnits="userSpaceOnUse"
+ cx="297.26108"
+ cy="167.35597"
+ fx="297.30670"
+ fy="167.31000"
+ r="7.7136898" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3725"
+ id="radialGradient4801"
+ gradientUnits="userSpaceOnUse"
+ cx="292.79327"
+ cy="182.19415"
+ fx="292.91949"
+ fy="182.92325"
+ r="16.772598" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3737"
+ id="radialGradient4803"
+ gradientUnits="userSpaceOnUse"
+ cx="293.51672"
+ cy="166.39696"
+ fx="293.64859"
+ fy="166.15393"
+ r="14.441721" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3775"
+ id="radialGradient4805"
+ gradientUnits="userSpaceOnUse"
+ cx="293.63730"
+ cy="173.68797"
+ fx="293.63730"
+ fy="173.68797"
+ r="16.054159" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3769"
+ id="radialGradient4807"
+ gradientUnits="userSpaceOnUse"
+ cx="297.26108"
+ cy="167.35597"
+ fx="297.30670"
+ fy="167.31000"
+ r="7.7136898" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3725"
+ id="radialGradient4819"
+ gradientUnits="userSpaceOnUse"
+ cx="292.79327"
+ cy="182.19415"
+ fx="292.91949"
+ fy="182.92325"
+ r="16.772598" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3737"
+ id="radialGradient4821"
+ gradientUnits="userSpaceOnUse"
+ cx="293.51672"
+ cy="166.39696"
+ fx="293.64859"
+ fy="166.15393"
+ r="14.441721" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3775"
+ id="radialGradient4823"
+ gradientUnits="userSpaceOnUse"
+ cx="293.63730"
+ cy="173.68797"
+ fx="293.63730"
+ fy="173.68797"
+ r="16.054159" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3769"
+ id="radialGradient4825"
+ gradientUnits="userSpaceOnUse"
+ cx="297.26108"
+ cy="167.35597"
+ fx="297.30670"
+ fy="167.31000"
+ r="7.7136898" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3725"
+ id="radialGradient4837"
+ gradientUnits="userSpaceOnUse"
+ cx="292.79327"
+ cy="182.19415"
+ fx="292.91949"
+ fy="182.92325"
+ r="16.772598" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3737"
+ id="radialGradient4839"
+ gradientUnits="userSpaceOnUse"
+ cx="293.51672"
+ cy="166.39696"
+ fx="293.64859"
+ fy="166.15393"
+ r="14.441721" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3775"
+ id="radialGradient4841"
+ gradientUnits="userSpaceOnUse"
+ cx="293.63730"
+ cy="173.68797"
+ fx="293.63730"
+ fy="173.68797"
+ r="16.054159" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3769"
+ id="radialGradient4843"
+ gradientUnits="userSpaceOnUse"
+ cx="297.26108"
+ cy="167.35597"
+ fx="297.30670"
+ fy="167.31000"
+ r="7.7136898" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3725"
+ id="radialGradient4856"
+ gradientUnits="userSpaceOnUse"
+ cx="292.79327"
+ cy="182.19415"
+ fx="292.91949"
+ fy="182.92325"
+ r="16.772598" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3737"
+ id="radialGradient4858"
+ gradientUnits="userSpaceOnUse"
+ cx="293.51672"
+ cy="166.39696"
+ fx="293.64859"
+ fy="166.15393"
+ r="14.441721" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3775"
+ id="radialGradient4860"
+ gradientUnits="userSpaceOnUse"
+ cx="293.63730"
+ cy="173.68797"
+ fx="293.63730"
+ fy="173.68797"
+ r="16.054159" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3769"
+ id="radialGradient4862"
+ gradientUnits="userSpaceOnUse"
+ cx="297.26108"
+ cy="167.35597"
+ fx="297.30670"
+ fy="167.31000"
+ r="7.7136898" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3725"
+ id="radialGradient4875"
+ gradientUnits="userSpaceOnUse"
+ cx="292.79327"
+ cy="182.19415"
+ fx="292.91949"
+ fy="182.92325"
+ r="16.772598" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3737"
+ id="radialGradient4877"
+ gradientUnits="userSpaceOnUse"
+ cx="293.51672"
+ cy="166.39696"
+ fx="293.64859"
+ fy="166.15393"
+ r="14.441721" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3775"
+ id="radialGradient4879"
+ gradientUnits="userSpaceOnUse"
+ cx="293.63730"
+ cy="173.68797"
+ fx="293.63730"
+ fy="173.68797"
+ r="16.054159" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3769"
+ id="radialGradient4881"
+ gradientUnits="userSpaceOnUse"
+ cx="297.26108"
+ cy="167.35597"
+ fx="297.30670"
+ fy="167.31000"
+ r="7.7136898" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3725"
+ id="radialGradient4893"
+ gradientUnits="userSpaceOnUse"
+ cx="292.79327"
+ cy="182.19415"
+ fx="292.91949"
+ fy="182.92325"
+ r="16.772598" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3737"
+ id="radialGradient4895"
+ gradientUnits="userSpaceOnUse"
+ cx="293.51672"
+ cy="166.39696"
+ fx="293.64859"
+ fy="166.15393"
+ r="14.441721" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3775"
+ id="radialGradient4897"
+ gradientUnits="userSpaceOnUse"
+ cx="293.63730"
+ cy="173.68797"
+ fx="293.63730"
+ fy="173.68797"
+ r="16.054159" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3769"
+ id="radialGradient4899"
+ gradientUnits="userSpaceOnUse"
+ cx="297.26108"
+ cy="167.35597"
+ fx="297.30670"
+ fy="167.31000"
+ r="7.7136898" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3725"
+ id="radialGradient4912"
+ gradientUnits="userSpaceOnUse"
+ cx="292.79327"
+ cy="182.19415"
+ fx="292.91949"
+ fy="182.92325"
+ r="16.772598" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3737"
+ id="radialGradient4914"
+ gradientUnits="userSpaceOnUse"
+ cx="293.51672"
+ cy="166.39696"
+ fx="293.64859"
+ fy="166.15393"
+ r="14.441721" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3775"
+ id="radialGradient4916"
+ gradientUnits="userSpaceOnUse"
+ cx="293.63730"
+ cy="173.68797"
+ fx="293.63730"
+ fy="173.68797"
+ r="16.054159" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3769"
+ id="radialGradient4918"
+ gradientUnits="userSpaceOnUse"
+ cx="297.26108"
+ cy="167.35597"
+ fx="297.30670"
+ fy="167.31000"
+ r="7.7136898" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3725"
+ id="radialGradient5025"
+ gradientUnits="userSpaceOnUse"
+ cx="292.79327"
+ cy="182.19415"
+ fx="292.91949"
+ fy="182.92325"
+ r="16.772598" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3737"
+ id="radialGradient5027"
+ gradientUnits="userSpaceOnUse"
+ cx="293.51672"
+ cy="166.39696"
+ fx="293.64859"
+ fy="166.15393"
+ r="14.441721" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3775"
+ id="radialGradient5029"
+ gradientUnits="userSpaceOnUse"
+ cx="293.63730"
+ cy="173.68797"
+ fx="293.63730"
+ fy="173.68797"
+ r="16.054159" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3769"
+ id="radialGradient5031"
+ gradientUnits="userSpaceOnUse"
+ cx="297.26108"
+ cy="167.35597"
+ fx="297.30670"
+ fy="167.31000"
+ r="7.7136898" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3725"
+ id="radialGradient5033"
+ gradientUnits="userSpaceOnUse"
+ cx="292.79327"
+ cy="182.19415"
+ fx="292.91949"
+ fy="182.92325"
+ r="16.772598" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3737"
+ id="radialGradient5035"
+ gradientUnits="userSpaceOnUse"
+ cx="293.51672"
+ cy="166.39696"
+ fx="293.64859"
+ fy="166.15393"
+ r="14.441721" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3775"
+ id="radialGradient5037"
+ gradientUnits="userSpaceOnUse"
+ cx="293.63730"
+ cy="173.68797"
+ fx="293.63730"
+ fy="173.68797"
+ r="16.054159" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3769"
+ id="radialGradient5039"
+ gradientUnits="userSpaceOnUse"
+ cx="297.26108"
+ cy="167.35597"
+ fx="297.30670"
+ fy="167.31000"
+ r="7.7136898" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3725"
+ id="radialGradient5041"
+ gradientUnits="userSpaceOnUse"
+ cx="292.79327"
+ cy="182.19415"
+ fx="292.91949"
+ fy="182.92325"
+ r="16.772598" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3737"
+ id="radialGradient5043"
+ gradientUnits="userSpaceOnUse"
+ cx="293.51672"
+ cy="166.39696"
+ fx="293.64859"
+ fy="166.15393"
+ r="14.441721" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3775"
+ id="radialGradient5045"
+ gradientUnits="userSpaceOnUse"
+ cx="293.63730"
+ cy="173.68797"
+ fx="293.63730"
+ fy="173.68797"
+ r="16.054159" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3769"
+ id="radialGradient5047"
+ gradientUnits="userSpaceOnUse"
+ cx="297.26108"
+ cy="167.35597"
+ fx="297.30670"
+ fy="167.31000"
+ r="7.7136898" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3725"
+ id="radialGradient5049"
+ gradientUnits="userSpaceOnUse"
+ cx="292.79327"
+ cy="182.19415"
+ fx="292.91949"
+ fy="182.92325"
+ r="16.772598" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3737"
+ id="radialGradient5051"
+ gradientUnits="userSpaceOnUse"
+ cx="293.51672"
+ cy="166.39696"
+ fx="293.64859"
+ fy="166.15393"
+ r="14.441721" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3775"
+ id="radialGradient5053"
+ gradientUnits="userSpaceOnUse"
+ cx="293.63730"
+ cy="173.68797"
+ fx="293.63730"
+ fy="173.68797"
+ r="16.054159" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3769"
+ id="radialGradient5055"
+ gradientUnits="userSpaceOnUse"
+ cx="297.26108"
+ cy="167.35597"
+ fx="297.30670"
+ fy="167.31000"
+ r="7.7136898" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3725"
+ id="radialGradient5057"
+ gradientUnits="userSpaceOnUse"
+ cx="292.79327"
+ cy="182.19415"
+ fx="292.91949"
+ fy="182.92325"
+ r="16.772598" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3737"
+ id="radialGradient5059"
+ gradientUnits="userSpaceOnUse"
+ cx="293.51672"
+ cy="166.39696"
+ fx="293.64859"
+ fy="166.15393"
+ r="14.441721" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3775"
+ id="radialGradient5061"
+ gradientUnits="userSpaceOnUse"
+ cx="293.63730"
+ cy="173.68797"
+ fx="293.63730"
+ fy="173.68797"
+ r="16.054159" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3769"
+ id="radialGradient5063"
+ gradientUnits="userSpaceOnUse"
+ cx="297.26108"
+ cy="167.35597"
+ fx="297.30670"
+ fy="167.31000"
+ r="7.7136898" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3725"
+ id="radialGradient5065"
+ gradientUnits="userSpaceOnUse"
+ cx="292.79327"
+ cy="182.19415"
+ fx="292.91949"
+ fy="182.92325"
+ r="16.772598" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3737"
+ id="radialGradient5067"
+ gradientUnits="userSpaceOnUse"
+ cx="293.51672"
+ cy="166.39696"
+ fx="293.64859"
+ fy="166.15393"
+ r="14.441721" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3775"
+ id="radialGradient5069"
+ gradientUnits="userSpaceOnUse"
+ cx="293.63730"
+ cy="173.68797"
+ fx="293.63730"
+ fy="173.68797"
+ r="16.054159" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3769"
+ id="radialGradient5071"
+ gradientUnits="userSpaceOnUse"
+ cx="297.26108"
+ cy="167.35597"
+ fx="297.30670"
+ fy="167.31000"
+ r="7.7136898" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3725"
+ id="radialGradient5073"
+ gradientUnits="userSpaceOnUse"
+ cx="292.79327"
+ cy="182.19415"
+ fx="292.91949"
+ fy="182.92325"
+ r="16.772598" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3737"
+ id="radialGradient5075"
+ gradientUnits="userSpaceOnUse"
+ cx="293.51672"
+ cy="166.39696"
+ fx="293.64859"
+ fy="166.15393"
+ r="14.441721" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3775"
+ id="radialGradient5077"
+ gradientUnits="userSpaceOnUse"
+ cx="293.63730"
+ cy="173.68797"
+ fx="293.63730"
+ fy="173.68797"
+ r="16.054159" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3769"
+ id="radialGradient5079"
+ gradientUnits="userSpaceOnUse"
+ cx="297.26108"
+ cy="167.35597"
+ fx="297.30670"
+ fy="167.31000"
+ r="7.7136898" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3725"
+ id="radialGradient5081"
+ gradientUnits="userSpaceOnUse"
+ cx="292.79327"
+ cy="182.19415"
+ fx="292.91949"
+ fy="182.92325"
+ r="16.772598" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3737"
+ id="radialGradient5083"
+ gradientUnits="userSpaceOnUse"
+ cx="293.51672"
+ cy="166.39696"
+ fx="293.64859"
+ fy="166.15393"
+ r="14.441721" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3775"
+ id="radialGradient5085"
+ gradientUnits="userSpaceOnUse"
+ cx="293.63730"
+ cy="173.68797"
+ fx="293.63730"
+ fy="173.68797"
+ r="16.054159" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3769"
+ id="radialGradient5087"
+ gradientUnits="userSpaceOnUse"
+ cx="297.26108"
+ cy="167.35597"
+ fx="297.30670"
+ fy="167.31000"
+ r="7.7136898" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3725"
+ id="radialGradient5089"
+ gradientUnits="userSpaceOnUse"
+ cx="292.79327"
+ cy="182.19415"
+ fx="292.91949"
+ fy="182.92325"
+ r="16.772598" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3737"
+ id="radialGradient5091"
+ gradientUnits="userSpaceOnUse"
+ cx="293.51672"
+ cy="166.39696"
+ fx="293.64859"
+ fy="166.15393"
+ r="14.441721" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3775"
+ id="radialGradient5093"
+ gradientUnits="userSpaceOnUse"
+ cx="293.63730"
+ cy="173.68797"
+ fx="293.63730"
+ fy="173.68797"
+ r="16.054159" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3769"
+ id="radialGradient5095"
+ gradientUnits="userSpaceOnUse"
+ cx="297.26108"
+ cy="167.35597"
+ fx="297.30670"
+ fy="167.31000"
+ r="7.7136898" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3725"
+ id="radialGradient5097"
+ gradientUnits="userSpaceOnUse"
+ cx="292.79327"
+ cy="182.19415"
+ fx="292.91949"
+ fy="182.92325"
+ r="16.772598" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3737"
+ id="radialGradient5099"
+ gradientUnits="userSpaceOnUse"
+ cx="293.51672"
+ cy="166.39696"
+ fx="293.64859"
+ fy="166.15393"
+ r="14.441721" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3775"
+ id="radialGradient5101"
+ gradientUnits="userSpaceOnUse"
+ cx="293.63730"
+ cy="173.68797"
+ fx="293.63730"
+ fy="173.68797"
+ r="16.054159" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3769"
+ id="radialGradient5103"
+ gradientUnits="userSpaceOnUse"
+ cx="297.26108"
+ cy="167.35597"
+ fx="297.30670"
+ fy="167.31000"
+ r="7.7136898" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3725"
+ id="radialGradient5105"
+ gradientUnits="userSpaceOnUse"
+ cx="292.79327"
+ cy="182.19415"
+ fx="292.91949"
+ fy="182.92325"
+ r="16.772598" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3737"
+ id="radialGradient5107"
+ gradientUnits="userSpaceOnUse"
+ cx="293.51672"
+ cy="166.39696"
+ fx="293.64859"
+ fy="166.15393"
+ r="14.441721" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3775"
+ id="radialGradient5109"
+ gradientUnits="userSpaceOnUse"
+ cx="293.63730"
+ cy="173.68797"
+ fx="293.63730"
+ fy="173.68797"
+ r="16.054159" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3769"
+ id="radialGradient5111"
+ gradientUnits="userSpaceOnUse"
+ cx="297.26108"
+ cy="167.35597"
+ fx="297.30670"
+ fy="167.31000"
+ r="7.7136898" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3725"
+ id="radialGradient5113"
+ gradientUnits="userSpaceOnUse"
+ cx="292.79327"
+ cy="182.19415"
+ fx="292.91949"
+ fy="182.92325"
+ r="16.772598" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3737"
+ id="radialGradient5115"
+ gradientUnits="userSpaceOnUse"
+ cx="293.51672"
+ cy="166.39696"
+ fx="293.64859"
+ fy="166.15393"
+ r="14.441721" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3775"
+ id="radialGradient5117"
+ gradientUnits="userSpaceOnUse"
+ cx="293.63730"
+ cy="173.68797"
+ fx="293.63730"
+ fy="173.68797"
+ r="16.054159" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3769"
+ id="radialGradient5119"
+ gradientUnits="userSpaceOnUse"
+ cx="297.26108"
+ cy="167.35597"
+ fx="297.30670"
+ fy="167.31000"
+ r="7.7136898" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3725"
+ id="radialGradient5121"
+ gradientUnits="userSpaceOnUse"
+ cx="292.79327"
+ cy="182.19415"
+ fx="292.91949"
+ fy="182.92325"
+ r="16.772598" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3737"
+ id="radialGradient5123"
+ gradientUnits="userSpaceOnUse"
+ cx="293.51672"
+ cy="166.39696"
+ fx="293.64859"
+ fy="166.15393"
+ r="14.441721" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3775"
+ id="radialGradient5125"
+ gradientUnits="userSpaceOnUse"
+ cx="293.63730"
+ cy="173.68797"
+ fx="293.63730"
+ fy="173.68797"
+ r="16.054159" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3769"
+ id="radialGradient5127"
+ gradientUnits="userSpaceOnUse"
+ cx="297.26108"
+ cy="167.35597"
+ fx="297.30670"
+ fy="167.31000"
+ r="7.7136898" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3725"
+ id="radialGradient5129"
+ gradientUnits="userSpaceOnUse"
+ cx="292.79327"
+ cy="182.19415"
+ fx="292.91949"
+ fy="182.92325"
+ r="16.772598" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3737"
+ id="radialGradient5131"
+ gradientUnits="userSpaceOnUse"
+ cx="293.51672"
+ cy="166.39696"
+ fx="293.64859"
+ fy="166.15393"
+ r="14.441721" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3775"
+ id="radialGradient5133"
+ gradientUnits="userSpaceOnUse"
+ cx="293.63730"
+ cy="173.68797"
+ fx="293.63730"
+ fy="173.68797"
+ r="16.054159" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3769"
+ id="radialGradient5135"
+ gradientUnits="userSpaceOnUse"
+ cx="297.26108"
+ cy="167.35597"
+ fx="297.30670"
+ fy="167.31000"
+ r="7.7136898" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3725"
+ id="radialGradient5137"
+ gradientUnits="userSpaceOnUse"
+ cx="292.79327"
+ cy="182.19415"
+ fx="292.91949"
+ fy="182.92325"
+ r="16.772598" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3737"
+ id="radialGradient5139"
+ gradientUnits="userSpaceOnUse"
+ cx="293.51672"
+ cy="166.39696"
+ fx="293.64859"
+ fy="166.15393"
+ r="14.441721" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3775"
+ id="radialGradient5141"
+ gradientUnits="userSpaceOnUse"
+ cx="293.63730"
+ cy="173.68797"
+ fx="293.63730"
+ fy="173.68797"
+ r="16.054159" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3769"
+ id="radialGradient5143"
+ gradientUnits="userSpaceOnUse"
+ cx="297.26108"
+ cy="167.35597"
+ fx="297.30670"
+ fy="167.31000"
+ r="7.7136898" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3725"
+ id="radialGradient5145"
+ gradientUnits="userSpaceOnUse"
+ cx="292.79327"
+ cy="182.19415"
+ fx="292.91949"
+ fy="182.92325"
+ r="16.772598" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3737"
+ id="radialGradient5147"
+ gradientUnits="userSpaceOnUse"
+ cx="293.51672"
+ cy="166.39696"
+ fx="293.64859"
+ fy="166.15393"
+ r="14.441721" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3775"
+ id="radialGradient5149"
+ gradientUnits="userSpaceOnUse"
+ cx="293.63730"
+ cy="173.68797"
+ fx="293.63730"
+ fy="173.68797"
+ r="16.054159" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3769"
+ id="radialGradient5151"
+ gradientUnits="userSpaceOnUse"
+ cx="297.26108"
+ cy="167.35597"
+ fx="297.30670"
+ fy="167.31000"
+ r="7.7136898" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3725"
+ id="radialGradient5153"
+ gradientUnits="userSpaceOnUse"
+ cx="292.79327"
+ cy="182.19415"
+ fx="292.91949"
+ fy="182.92325"
+ r="16.772598" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3737"
+ id="radialGradient5155"
+ gradientUnits="userSpaceOnUse"
+ cx="293.51672"
+ cy="166.39696"
+ fx="293.64859"
+ fy="166.15393"
+ r="14.441721" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3775"
+ id="radialGradient5157"
+ gradientUnits="userSpaceOnUse"
+ cx="293.63730"
+ cy="173.68797"
+ fx="293.63730"
+ fy="173.68797"
+ r="16.054159" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3769"
+ id="radialGradient5159"
+ gradientUnits="userSpaceOnUse"
+ cx="297.26108"
+ cy="167.35597"
+ fx="297.30670"
+ fy="167.31000"
+ r="7.7136898" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3725"
+ id="radialGradient5161"
+ gradientUnits="userSpaceOnUse"
+ cx="292.79327"
+ cy="182.19415"
+ fx="292.91949"
+ fy="182.92325"
+ r="16.772598" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3737"
+ id="radialGradient5163"
+ gradientUnits="userSpaceOnUse"
+ cx="293.51672"
+ cy="166.39696"
+ fx="293.64859"
+ fy="166.15393"
+ r="14.441721" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3775"
+ id="radialGradient5165"
+ gradientUnits="userSpaceOnUse"
+ cx="293.63730"
+ cy="173.68797"
+ fx="293.63730"
+ fy="173.68797"
+ r="16.054159" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3769"
+ id="radialGradient5167"
+ gradientUnits="userSpaceOnUse"
+ cx="297.26108"
+ cy="167.35597"
+ fx="297.30670"
+ fy="167.31000"
+ r="7.7136898" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3725"
+ id="radialGradient5169"
+ gradientUnits="userSpaceOnUse"
+ cx="292.79327"
+ cy="182.19415"
+ fx="292.91949"
+ fy="182.92325"
+ r="16.772598" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3737"
+ id="radialGradient5171"
+ gradientUnits="userSpaceOnUse"
+ cx="293.51672"
+ cy="166.39696"
+ fx="293.64859"
+ fy="166.15393"
+ r="14.441721" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3775"
+ id="radialGradient5173"
+ gradientUnits="userSpaceOnUse"
+ cx="293.63730"
+ cy="173.68797"
+ fx="293.63730"
+ fy="173.68797"
+ r="16.054159" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3769"
+ id="radialGradient5175"
+ gradientUnits="userSpaceOnUse"
+ cx="297.26108"
+ cy="167.35597"
+ fx="297.30670"
+ fy="167.31000"
+ r="7.7136898" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3725"
+ id="radialGradient5177"
+ gradientUnits="userSpaceOnUse"
+ cx="292.79327"
+ cy="182.19415"
+ fx="292.91949"
+ fy="182.92325"
+ r="16.772598" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3737"
+ id="radialGradient5179"
+ gradientUnits="userSpaceOnUse"
+ cx="293.51672"
+ cy="166.39696"
+ fx="293.64859"
+ fy="166.15393"
+ r="14.441721" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3775"
+ id="radialGradient5181"
+ gradientUnits="userSpaceOnUse"
+ cx="293.63730"
+ cy="173.68797"
+ fx="293.63730"
+ fy="173.68797"
+ r="16.054159" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3769"
+ id="radialGradient5183"
+ gradientUnits="userSpaceOnUse"
+ cx="297.26108"
+ cy="167.35597"
+ fx="297.30670"
+ fy="167.31000"
+ r="7.7136898" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3725"
+ id="radialGradient5185"
+ gradientUnits="userSpaceOnUse"
+ cx="292.79327"
+ cy="182.19415"
+ fx="292.91949"
+ fy="182.92325"
+ r="16.772598" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3737"
+ id="radialGradient5187"
+ gradientUnits="userSpaceOnUse"
+ cx="293.51672"
+ cy="166.39696"
+ fx="293.64859"
+ fy="166.15393"
+ r="14.441721" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3775"
+ id="radialGradient5189"
+ gradientUnits="userSpaceOnUse"
+ cx="293.63730"
+ cy="173.68797"
+ fx="293.63730"
+ fy="173.68797"
+ r="16.054159" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3769"
+ id="radialGradient5191"
+ gradientUnits="userSpaceOnUse"
+ cx="297.26108"
+ cy="167.35597"
+ fx="297.30670"
+ fy="167.31000"
+ r="7.7136898" />
+ <linearGradient
+ y2="131.12579"
+ x2="512.21820"
+ y1="138.84357"
+ x1="497.25031"
+ gradientTransform="matrix(-1.175523,-3.495348e-2,-5.497797e-2,1.318191,682.3556,-115.3852)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2247"
+ xlink:href="#linearGradient2106"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.772598"
+ fy="182.92325"
+ fx="292.91949"
+ cy="182.19415"
+ cx="292.79327"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2249"
+ xlink:href="#linearGradient3725"
+ inkscape:collect="always" />
+ <radialGradient
+ r="14.441721"
+ fy="166.15393"
+ fx="293.64859"
+ cy="166.39696"
+ cx="293.51672"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2251"
+ xlink:href="#linearGradient3737"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.054159"
+ fy="173.68797"
+ fx="293.63730"
+ cy="173.68797"
+ cx="293.63730"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2253"
+ xlink:href="#linearGradient3775"
+ inkscape:collect="always" />
+ <radialGradient
+ r="7.7136898"
+ fy="167.31000"
+ fx="297.30670"
+ cy="167.35597"
+ cx="297.26108"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2255"
+ xlink:href="#linearGradient3769"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.772598"
+ fy="182.92325"
+ fx="292.91949"
+ cy="182.19415"
+ cx="292.79327"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2257"
+ xlink:href="#linearGradient3725"
+ inkscape:collect="always" />
+ <radialGradient
+ r="14.441721"
+ fy="166.15393"
+ fx="293.64859"
+ cy="166.39696"
+ cx="293.51672"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2259"
+ xlink:href="#linearGradient3737"
+ inkscape:collect="always" />
+ <radialGradient
+ r="16.054159"
+ fy="173.68797"
+ fx="293.63730"
+ cy="173.68797"
+ cx="293.63730"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2261"
+ xlink:href="#linearGradient3775"
+ inkscape:collect="always" />
+ <radialGradient
+ r="7.7136898"
+ fy="167.31000"
+ fx="297.30670"
+ cy="167.35597"
+ cx="297.26108"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2263"
+ xlink:href="#linearGradient3769"
+ inkscape:collect="always" />
+ </defs>
+ <sodipodi:namedview
+ inkscape:current-layer="layer5"
+ inkscape:window-y="0"
+ inkscape:window-x="0"
+ inkscape:cy="557.84752"
+ inkscape:cx="693.05022"
+ inkscape:zoom="0.57785413"
+ inkscape:window-height="745"
+ inkscape:window-width="1274"
+ inkscape:pageshadow="2"
+ inkscape:pageopacity="1.0000000"
+ borderopacity="1.0000000"
+ bordercolor="#ffffff"
+ pagecolor="#405070"
+ id="base"
+ showborder="true"
+ inkscape:document-units="mm"
+ borderlayer="top" />
+ <g
+ inkscape:label="bg bubbles"
+ id="layer4"
+ inkscape:groupmode="layer">
+ <g
+ transform="matrix(0.522002,0.000000,0.000000,0.492475,-125.8582,-25.67853)"
+ id="g4719">
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path4721"
+ style="fill:#f9f9f9;fill-opacity:0.10655738;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path4723"
+ style="fill:url(#radialGradient4729);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path4725"
+ style="fill:url(#radialGradient4731);fill-opacity:1.0000000;stroke:url(#radialGradient4733);stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.399567,0.000000,0.000000,0.534837,298.7849,19.29063)"
+ d="M 300.36342 168.64339 A 2.9426789 2.9426789 0 1 1 294.47807,168.64339 A 2.9426789 2.9426789 0 1 1 300.36342 168.64339 z"
+ sodipodi:ry="2.9426789"
+ sodipodi:rx="2.9426789"
+ sodipodi:cy="168.64339"
+ sodipodi:cx="297.42075"
+ id="path4727"
+ style="fill:url(#radialGradient4735);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ </g>
+ <g
+ transform="matrix(0.621914,0.000000,0.000000,0.560158,-150.1231,21.04251)"
+ id="g4737">
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path4739"
+ style="fill:#f9f9f9;fill-opacity:0.10655738;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path4741"
+ style="fill:url(#radialGradient4747);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path4743"
+ style="fill:url(#radialGradient4749);fill-opacity:1.0000000;stroke:url(#radialGradient4751);stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.399567,0.000000,0.000000,0.534837,298.7849,19.29063)"
+ d="M 300.36342 168.64339 A 2.9426789 2.9426789 0 1 1 294.47807,168.64339 A 2.9426789 2.9426789 0 1 1 300.36342 168.64339 z"
+ sodipodi:ry="2.9426789"
+ sodipodi:rx="2.9426789"
+ sodipodi:cy="168.64339"
+ sodipodi:cx="297.42075"
+ id="path4745"
+ style="fill:url(#radialGradient4753);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ </g>
+ <g
+ transform="matrix(0.388787,0.000000,0.000000,0.306346,-49.79162,76.33425)"
+ id="g4755">
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path4757"
+ style="fill:#f9f9f9;fill-opacity:0.10655738;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path4759"
+ style="fill:url(#radialGradient4765);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path4761"
+ style="fill:url(#radialGradient4767);fill-opacity:1.0000000;stroke:url(#radialGradient4769);stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.399567,0.000000,0.000000,0.534837,298.7849,19.29063)"
+ d="M 300.36342 168.64339 A 2.9426789 2.9426789 0 1 1 294.47807,168.64339 A 2.9426789 2.9426789 0 1 1 300.36342 168.64339 z"
+ sodipodi:ry="2.9426789"
+ sodipodi:rx="2.9426789"
+ sodipodi:cy="168.64339"
+ sodipodi:cx="297.42075"
+ id="path4763"
+ style="fill:url(#radialGradient4771);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ </g>
+ <g
+ transform="matrix(0.455394,0.000000,0.000000,0.357109,-91.29814,75.59032)"
+ id="g4773">
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path4775"
+ style="fill:#f9f9f9;fill-opacity:0.10655738;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path4777"
+ style="fill:url(#radialGradient4783);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path4779"
+ style="fill:url(#radialGradient4785);fill-opacity:1.0000000;stroke:url(#radialGradient4787);stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.399567,0.000000,0.000000,0.534837,298.7849,19.29063)"
+ d="M 300.36342 168.64339 A 2.9426789 2.9426789 0 1 1 294.47807,168.64339 A 2.9426789 2.9426789 0 1 1 300.36342 168.64339 z"
+ sodipodi:ry="2.9426789"
+ sodipodi:rx="2.9426789"
+ sodipodi:cy="168.64339"
+ sodipodi:cx="297.42075"
+ id="path4781"
+ style="fill:url(#radialGradient4789);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ </g>
+ <g
+ transform="matrix(0.272223,0.000000,0.000000,0.340188,-72.77407,31.07232)"
+ id="g4791">
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path4793"
+ style="fill:#f9f9f9;fill-opacity:0.10655738;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path4795"
+ style="fill:url(#radialGradient4801);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path4797"
+ style="fill:url(#radialGradient4803);fill-opacity:1.0000000;stroke:url(#radialGradient4805);stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.399567,0.000000,0.000000,0.534837,298.7849,19.29063)"
+ d="M 300.36342 168.64339 A 2.9426789 2.9426789 0 1 1 294.47807,168.64339 A 2.9426789 2.9426789 0 1 1 300.36342 168.64339 z"
+ sodipodi:ry="2.9426789"
+ sodipodi:rx="2.9426789"
+ sodipodi:cy="168.64339"
+ sodipodi:cx="297.42075"
+ id="path4799"
+ style="fill:url(#radialGradient4807);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ </g>
+ <g
+ transform="matrix(0.260102,0.000000,0.000000,0.242397,-48.26277,20.08004)"
+ id="g11686">
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path11688"
+ style="fill:#f9f9f9;fill-opacity:0.10655738;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path11690"
+ style="fill:url(#radialGradient5185);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path11692"
+ style="fill:url(#radialGradient5187);fill-opacity:1.0000000;stroke:url(#radialGradient5189);stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.399567,0.000000,0.000000,0.534837,298.7849,19.29063)"
+ d="M 300.36342 168.64339 A 2.9426789 2.9426789 0 1 1 294.47807,168.64339 A 2.9426789 2.9426789 0 1 1 300.36342 168.64339 z"
+ sodipodi:ry="2.9426789"
+ sodipodi:rx="2.9426789"
+ sodipodi:cy="168.64339"
+ sodipodi:cx="297.42075"
+ id="path11694"
+ style="fill:url(#radialGradient5191);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ </g>
+ <g
+ transform="matrix(0.168320,0.000000,0.000000,0.134367,-32.74708,-2.238660)"
+ id="g11696">
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path11698"
+ style="fill:#f9f9f9;fill-opacity:0.10655738;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path11700"
+ style="fill:url(#radialGradient5177);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path11702"
+ style="fill:url(#radialGradient5179);fill-opacity:1.0000000;stroke:url(#radialGradient5181);stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.399567,0.000000,0.000000,0.534837,298.7849,19.29063)"
+ d="M 300.36342 168.64339 A 2.9426789 2.9426789 0 1 1 294.47807,168.64339 A 2.9426789 2.9426789 0 1 1 300.36342 168.64339 z"
+ sodipodi:ry="2.9426789"
+ sodipodi:rx="2.9426789"
+ sodipodi:cy="168.64339"
+ sodipodi:cx="297.42075"
+ id="path11704"
+ style="fill:url(#radialGradient5183);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ </g>
+ <g
+ transform="matrix(0.333833,0.000000,0.000000,0.308697,-54.16597,-40.99806)"
+ id="g11706">
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path11708"
+ style="fill:#f9f9f9;fill-opacity:0.10655738;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path11710"
+ style="fill:url(#radialGradient5169);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path11712"
+ style="fill:url(#radialGradient5171);fill-opacity:1.0000000;stroke:url(#radialGradient5173);stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.399567,0.000000,0.000000,0.534837,298.7849,19.29063)"
+ d="M 300.36342 168.64339 A 2.9426789 2.9426789 0 1 1 294.47807,168.64339 A 2.9426789 2.9426789 0 1 1 300.36342 168.64339 z"
+ sodipodi:ry="2.9426789"
+ sodipodi:rx="2.9426789"
+ sodipodi:cy="168.64339"
+ sodipodi:cx="297.42075"
+ id="path11714"
+ style="fill:url(#radialGradient5175);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ </g>
+ <g
+ transform="matrix(0.306967,0.000000,0.000000,0.266301,-61.31517,74.00074)"
+ id="g11726">
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path11728"
+ style="fill:#f9f9f9;fill-opacity:0.10655738;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path11730"
+ style="fill:url(#radialGradient5161);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path11732"
+ style="fill:url(#radialGradient5163);fill-opacity:1.0000000;stroke:url(#radialGradient5165);stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.399567,0.000000,0.000000,0.534837,298.7849,19.29063)"
+ d="M 300.36342 168.64339 A 2.9426789 2.9426789 0 1 1 294.47807,168.64339 A 2.9426789 2.9426789 0 1 1 300.36342 168.64339 z"
+ sodipodi:ry="2.9426789"
+ sodipodi:rx="2.9426789"
+ sodipodi:cy="168.64339"
+ sodipodi:cx="297.42075"
+ id="path11734"
+ style="fill:url(#radialGradient5167);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ </g>
+ <g
+ transform="matrix(0.255571,0.000000,0.000000,0.187901,-42.87587,18.52634)"
+ id="g11736">
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path11738"
+ style="fill:#f9f9f9;fill-opacity:0.10655738;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path11740"
+ style="fill:url(#radialGradient5153);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path11742"
+ style="fill:url(#radialGradient5155);fill-opacity:1.0000000;stroke:url(#radialGradient5157);stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.399567,0.000000,0.000000,0.534837,298.7849,19.29063)"
+ d="M 300.36342 168.64339 A 2.9426789 2.9426789 0 1 1 294.47807,168.64339 A 2.9426789 2.9426789 0 1 1 300.36342 168.64339 z"
+ sodipodi:ry="2.9426789"
+ sodipodi:rx="2.9426789"
+ sodipodi:cy="168.64339"
+ sodipodi:cx="297.42075"
+ id="path11744"
+ style="fill:url(#radialGradient5159);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ </g>
+ <g
+ transform="matrix(0.435458,0.000000,0.000000,0.318567,-128.3918,87.16824)"
+ id="g11746">
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path11748"
+ style="fill:#f9f9f9;fill-opacity:0.10655738;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path11750"
+ style="fill:url(#radialGradient5145);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path11752"
+ style="fill:url(#radialGradient5147);fill-opacity:1.0000000;stroke:url(#radialGradient5149);stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.399567,0.000000,0.000000,0.534837,298.7849,19.29063)"
+ d="M 300.36342 168.64339 A 2.9426789 2.9426789 0 1 1 294.47807,168.64339 A 2.9426789 2.9426789 0 1 1 300.36342 168.64339 z"
+ sodipodi:ry="2.9426789"
+ sodipodi:rx="2.9426789"
+ sodipodi:cy="168.64339"
+ sodipodi:cx="297.42075"
+ id="path11754"
+ style="fill:url(#radialGradient5151);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ </g>
+ <g
+ transform="matrix(0.306967,0.000000,0.000000,0.240168,-64.88966,7.876540)"
+ id="g11766">
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path11768"
+ style="fill:#f9f9f9;fill-opacity:0.10655738;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path11770"
+ style="fill:url(#radialGradient5137);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path11772"
+ style="fill:url(#radialGradient5139);fill-opacity:1.0000000;stroke:url(#radialGradient5141);stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.399567,0.000000,0.000000,0.534837,298.7849,19.29063)"
+ d="M 300.36342 168.64339 A 2.9426789 2.9426789 0 1 1 294.47807,168.64339 A 2.9426789 2.9426789 0 1 1 300.36342 168.64339 z"
+ sodipodi:ry="2.9426789"
+ sodipodi:rx="2.9426789"
+ sodipodi:cy="168.64339"
+ sodipodi:cx="297.42075"
+ id="path11774"
+ style="fill:url(#radialGradient5143);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ </g>
+ <g
+ transform="matrix(0.358363,0.000000,0.000000,0.370834,-99.43206,28.08184)"
+ id="g11776">
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path11778"
+ style="fill:#f9f9f9;fill-opacity:0.10655738;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path11780"
+ style="fill:url(#radialGradient5129);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path11782"
+ style="fill:url(#radialGradient5131);fill-opacity:1.0000000;stroke:url(#radialGradient5133);stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.399567,0.000000,0.000000,0.534837,298.7849,19.29063)"
+ d="M 300.36342 168.64339 A 2.9426789 2.9426789 0 1 1 294.47807,168.64339 A 2.9426789 2.9426789 0 1 1 300.36342 168.64339 z"
+ sodipodi:ry="2.9426789"
+ sodipodi:rx="2.9426789"
+ sodipodi:cy="168.64339"
+ sodipodi:cx="297.42075"
+ id="path11784"
+ style="fill:url(#radialGradient5135);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ </g>
+ <g
+ transform="matrix(0.461156,0.000000,0.000000,0.370834,-79.82877,-23.28336)"
+ id="g11846">
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path11848"
+ style="fill:#f9f9f9;fill-opacity:0.10655738;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path11850"
+ style="fill:url(#radialGradient5121);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path11852"
+ style="fill:url(#radialGradient5123);fill-opacity:1.0000000;stroke:url(#radialGradient5125);stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.399567,0.000000,0.000000,0.534837,298.7849,19.29063)"
+ d="M 300.36342 168.64339 A 2.9426789 2.9426789 0 1 1 294.47807,168.64339 A 2.9426789 2.9426789 0 1 1 300.36342 168.64339 z"
+ sodipodi:ry="2.9426789"
+ sodipodi:rx="2.9426789"
+ sodipodi:cy="168.64339"
+ sodipodi:cx="297.42075"
+ id="path11854"
+ style="fill:url(#radialGradient5127);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ </g>
+ <g
+ transform="matrix(0.217618,0.000000,0.000000,0.159891,-6.652870,81.59924)"
+ id="g11856">
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path11858"
+ style="fill:#f9f9f9;fill-opacity:0.10655738;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path11860"
+ style="fill:url(#radialGradient5113);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path11862"
+ style="fill:url(#radialGradient5115);fill-opacity:1.0000000;stroke:url(#radialGradient5117);stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.399567,0.000000,0.000000,0.534837,298.7849,19.29063)"
+ d="M 300.36342 168.64339 A 2.9426789 2.9426789 0 1 1 294.47807,168.64339 A 2.9426789 2.9426789 0 1 1 300.36342 168.64339 z"
+ sodipodi:ry="2.9426789"
+ sodipodi:rx="2.9426789"
+ sodipodi:cy="168.64339"
+ sodipodi:cx="297.42075"
+ id="path11864"
+ style="fill:url(#radialGradient5119);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ </g>
+ <g
+ transform="matrix(0.255571,0.000000,0.000000,0.187901,-41.16627,0.334340)"
+ id="g11866">
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path11868"
+ style="fill:#f9f9f9;fill-opacity:0.10655738;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path11870"
+ style="fill:url(#radialGradient5105);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path11872"
+ style="fill:url(#radialGradient5107);fill-opacity:1.0000000;stroke:url(#radialGradient5109);stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.399567,0.000000,0.000000,0.534837,298.7849,19.29063)"
+ d="M 300.36342 168.64339 A 2.9426789 2.9426789 0 1 1 294.47807,168.64339 A 2.9426789 2.9426789 0 1 1 300.36342 168.64339 z"
+ sodipodi:ry="2.9426789"
+ sodipodi:rx="2.9426789"
+ sodipodi:cy="168.64339"
+ sodipodi:cx="297.42075"
+ id="path11874"
+ style="fill:url(#radialGradient5111);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ </g>
+ <g
+ transform="matrix(0.435458,0.000000,0.000000,0.318567,-73.63727,89.56814)"
+ id="g11876">
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path11878"
+ style="fill:#f9f9f9;fill-opacity:0.10655738;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path11880"
+ style="fill:url(#radialGradient5097);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path11882"
+ style="fill:url(#radialGradient5099);fill-opacity:1.0000000;stroke:url(#radialGradient5101);stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.399567,0.000000,0.000000,0.534837,298.7849,19.29063)"
+ d="M 300.36342 168.64339 A 2.9426789 2.9426789 0 1 1 294.47807,168.64339 A 2.9426789 2.9426789 0 1 1 300.36342 168.64339 z"
+ sodipodi:ry="2.9426789"
+ sodipodi:rx="2.9426789"
+ sodipodi:cy="168.64339"
+ sodipodi:cx="297.42075"
+ id="path11884"
+ style="fill:url(#radialGradient5103);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ </g>
+ <g
+ transform="matrix(0.435458,0.000000,0.000000,0.344701,-70.99688,-28.36496)"
+ id="g11886">
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path11888"
+ style="fill:#f9f9f9;fill-opacity:0.10655738;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path11890"
+ style="fill:url(#radialGradient5089);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path11892"
+ style="fill:url(#radialGradient5091);fill-opacity:1.0000000;stroke:url(#radialGradient5093);stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.399567,0.000000,0.000000,0.534837,298.7849,19.29063)"
+ d="M 300.36342 168.64339 A 2.9426789 2.9426789 0 1 1 294.47807,168.64339 A 2.9426789 2.9426789 0 1 1 300.36342 168.64339 z"
+ sodipodi:ry="2.9426789"
+ sodipodi:rx="2.9426789"
+ sodipodi:cy="168.64339"
+ sodipodi:cx="297.42075"
+ id="path11894"
+ style="fill:url(#radialGradient5095);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ </g>
+ <g
+ transform="matrix(0.306967,0.000000,0.000000,0.240168,-12.96807,7.804240)"
+ id="g11896">
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path11898"
+ style="fill:#f9f9f9;fill-opacity:0.10655738;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path11900"
+ style="fill:url(#radialGradient5081);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path11902"
+ style="fill:url(#radialGradient5083);fill-opacity:1.0000000;stroke:url(#radialGradient5085);stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.399567,0.000000,0.000000,0.534837,298.7849,19.29063)"
+ d="M 300.36342 168.64339 A 2.9426789 2.9426789 0 1 1 294.47807,168.64339 A 2.9426789 2.9426789 0 1 1 300.36342 168.64339 z"
+ sodipodi:ry="2.9426789"
+ sodipodi:rx="2.9426789"
+ sodipodi:cy="168.64339"
+ sodipodi:cx="297.42075"
+ id="path11904"
+ style="fill:url(#radialGradient5087);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ </g>
+ <g
+ transform="matrix(0.358363,0.000000,0.000000,0.318567,-26.87538,20.29064)"
+ id="g11916">
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path11918"
+ style="fill:#f9f9f9;fill-opacity:0.10655738;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path11920"
+ style="fill:url(#radialGradient5073);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path11922"
+ style="fill:url(#radialGradient5075);fill-opacity:1.0000000;stroke:url(#radialGradient5077);stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.399567,0.000000,0.000000,0.534837,298.7849,19.29063)"
+ d="M 300.36342 168.64339 A 2.9426789 2.9426789 0 1 1 294.47807,168.64339 A 2.9426789 2.9426789 0 1 1 300.36342 168.64339 z"
+ sodipodi:ry="2.9426789"
+ sodipodi:rx="2.9426789"
+ sodipodi:cy="168.64339"
+ sodipodi:cx="297.42075"
+ id="path11924"
+ style="fill:url(#radialGradient5079);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ </g>
+ <g
+ transform="matrix(0.435458,0.000000,0.000000,0.318567,-146.5661,87.22644)"
+ id="g11946">
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path11948"
+ style="fill:#f9f9f9;fill-opacity:0.10655738;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path11950"
+ style="fill:url(#radialGradient5065);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path11952"
+ style="fill:url(#radialGradient5067);fill-opacity:1.0000000;stroke:url(#radialGradient5069);stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.399567,0.000000,0.000000,0.534837,298.7849,19.29063)"
+ d="M 300.36342 168.64339 A 2.9426789 2.9426789 0 1 1 294.47807,168.64339 A 2.9426789 2.9426789 0 1 1 300.36342 168.64339 z"
+ sodipodi:ry="2.9426789"
+ sodipodi:rx="2.9426789"
+ sodipodi:cy="168.64339"
+ sodipodi:cx="297.42075"
+ id="path11954"
+ style="fill:url(#radialGradient5071);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ </g>
+ <g
+ transform="matrix(0.255493,0.000000,0.000000,0.184228,-40.68018,54.12154)"
+ id="g11956">
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path11958"
+ style="fill:#f9f9f9;fill-opacity:0.10655738;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path11960"
+ style="fill:url(#radialGradient5057);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path11962"
+ style="fill:url(#radialGradient5059);fill-opacity:1.0000000;stroke:url(#radialGradient5061);stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.399567,0.000000,0.000000,0.534837,298.7849,19.29063)"
+ d="M 300.36342 168.64339 A 2.9426789 2.9426789 0 1 1 294.47807,168.64339 A 2.9426789 2.9426789 0 1 1 300.36342 168.64339 z"
+ sodipodi:ry="2.9426789"
+ sodipodi:rx="2.9426789"
+ sodipodi:cy="168.64339"
+ sodipodi:cx="297.42075"
+ id="path11964"
+ style="fill:url(#radialGradient5063);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ </g>
+ <g
+ transform="matrix(0.381425,0.000000,0.000000,0.311905,-79.00627,88.28354)"
+ id="g11966">
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path11968"
+ style="fill:#f9f9f9;fill-opacity:0.10655738;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path11970"
+ style="fill:url(#radialGradient5049);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path11972"
+ style="fill:url(#radialGradient5051);fill-opacity:1.0000000;stroke:url(#radialGradient5053);stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.399567,0.000000,0.000000,0.534837,298.7849,19.29063)"
+ d="M 300.36342 168.64339 A 2.9426789 2.9426789 0 1 1 294.47807,168.64339 A 2.9426789 2.9426789 0 1 1 300.36342 168.64339 z"
+ sodipodi:ry="2.9426789"
+ sodipodi:rx="2.9426789"
+ sodipodi:cy="168.64339"
+ sodipodi:cx="297.42075"
+ id="path11974"
+ style="fill:url(#radialGradient5055);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ </g>
+ <g
+ transform="matrix(0.358363,0.000000,0.000000,0.370834,-39.17207,79.66604)"
+ id="g11986">
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path11988"
+ style="fill:#f9f9f9;fill-opacity:0.10655738;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path11990"
+ style="fill:url(#radialGradient5041);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path11992"
+ style="fill:url(#radialGradient5043);fill-opacity:1.0000000;stroke:url(#radialGradient5045);stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.399567,0.000000,0.000000,0.534837,298.7849,19.29063)"
+ d="M 300.36342 168.64339 A 2.9426789 2.9426789 0 1 1 294.47807,168.64339 A 2.9426789 2.9426789 0 1 1 300.36342 168.64339 z"
+ sodipodi:ry="2.9426789"
+ sodipodi:rx="2.9426789"
+ sodipodi:cy="168.64339"
+ sodipodi:cx="297.42075"
+ id="path11994"
+ style="fill:url(#radialGradient5047);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ </g>
+ <g
+ transform="matrix(0.202726,0.000000,0.000000,0.220697,-65.09898,50.21614)"
+ id="g12026">
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path12028"
+ style="fill:#f9f9f9;fill-opacity:0.10655738;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path12030"
+ style="fill:url(#radialGradient5033);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path12032"
+ style="fill:url(#radialGradient5035);fill-opacity:1.0000000;stroke:url(#radialGradient5037);stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.399567,0.000000,0.000000,0.534837,298.7849,19.29063)"
+ d="M 300.36342 168.64339 A 2.9426789 2.9426789 0 1 1 294.47807,168.64339 A 2.9426789 2.9426789 0 1 1 300.36342 168.64339 z"
+ sodipodi:ry="2.9426789"
+ sodipodi:rx="2.9426789"
+ sodipodi:cy="168.64339"
+ sodipodi:cx="297.42075"
+ id="path12034"
+ style="fill:url(#radialGradient5039);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ </g>
+ <g
+ transform="matrix(0.360198,0.000000,0.000000,0.290938,-127.5574,38.45644)"
+ id="g12046">
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path12048"
+ style="fill:#f9f9f9;fill-opacity:0.10655738;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path12050"
+ style="fill:url(#radialGradient5025);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path12052"
+ style="fill:url(#radialGradient5027);fill-opacity:1.0000000;stroke:url(#radialGradient5029);stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.399567,0.000000,0.000000,0.534837,298.7849,19.29063)"
+ d="M 300.36342 168.64339 A 2.9426789 2.9426789 0 1 1 294.47807,168.64339 A 2.9426789 2.9426789 0 1 1 300.36342 168.64339 z"
+ sodipodi:ry="2.9426789"
+ sodipodi:rx="2.9426789"
+ sodipodi:cy="168.64339"
+ sodipodi:cx="297.42075"
+ id="path12054"
+ style="fill:url(#radialGradient5031);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ </g>
+ </g>
+ <g
+ inkscape:label="babl"
+ id="layer6"
+ inkscape:groupmode="layer">
+ <path
+ sodipodi:nodetypes="ccccccccccccccccccccccccccccccccccccccccccc"
+ style="fill:url(#linearGradient15225);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000"
+ d="M 22.788801,-72.962445 C 22.788801,-72.962445 22.618801,104.78773 22.618801,104.78773 C 22.618801,104.78773 42.618811,104.78773 42.618811,104.78773 C 42.618811,104.78773 42.618811,129.78773 42.618811,129.78773 C 42.618811,129.78773 17.538801,129.78773 17.538801,129.78773 C 17.538801,129.78773 17.538801,-72.712445 17.538801,-72.712445 C 17.538801,-72.712445 22.788801,-72.962445 22.788801,-72.962445 z M 22.618801,124.70773 C 22.618801,124.70773 37.538811,124.70773 37.538811,124.70773 C 37.538811,124.70773 37.538811,109.86773 37.538811,109.86773 C 37.538811,109.86773 22.618801,109.86773 22.618801,109.86773 C 22.618801,109.86773 22.618801,124.70773 22.618801,124.70773 z M 52.618811,124.70773 C 52.618811,124.70773 67.538811,124.70773 67.538811,124.70773 C 67.538811,124.70773 67.538811,119.78773 67.538811,119.78773 C 67.538811,119.78773 52.618811,119.78773 52.618811,119.78773 C 52.618811,119.78773 52.618811,124.70773 52.618811,124.70773 z M 72.618811,104.78773 C 72.618811,104.78773 72.618811,129.78773 72.618811,129.78773 C 72.618811,129.78773 47.538811,129.78773 47.538811,129.78773 C 47.538811,129.78773 47.538811,114.70773 47.538811,114.70773 C 47.538811,114.70773 67.538811,114.70773 67.538811,114.70773 C 67.538811,114.70773 67.538811,109.86773 67.538811,109.86773 C 67.538811,109.86773 47.538811,109.86773 47.538811,109.86773 C 47.538811,109.86773 47.538811,104.78773 47.538811,104.78773 C 47.538811,104.78773 72.618811,104.78773 72.618811,104.78773 z M 82.618813,93.787728 C 82.618813,93.787728 82.618813,104.78773 82.618813,104.78773 C 82.618813,104.78773 102.61881,104.78773 102.61881,104.78773 C 102.61881,104.78773 102.61881,129.78773 102.61881,129.78773 C 102.61881,129.78773 77.538811,129.78773 77.538811,129.78773 C 77.538811,129.78773 77.538811,93.787728 77.538811,93.787728 C 77.538811,93.787728 82.618813,93.787728 82.618813,93.787728 z M 82.618813,124.70773 C 82.618813,124.70773 97.538813,124.70773 97.538813,124.70773 C 97.538813,124.70773 97.538813,109.86773 97.538813,109.86773 C 97.538813,109.86773 82.618813,109.86773 82.618813,109.86773 C 82.618813,109.86773 82.618813,124.70773 82.618813,124.70773 z M 112.78881,-72.212445 C 112.78881,-72.212445 112.61881,129.78773 112.61881,129.78773 C 112.61881,129.78773 107.53881,129.78773 107.53881,129.78773 C 107.53881,129.78773 107.78881,-72.212445 107.78881,-72.212445 C 107.78881,-72.212445 112.78881,-72.212445 112.78881,-72.212445 z "
+ id="babl" />
+ </g>
+ <g
+ inkscape:label="middle bubbles"
+ id="layer8"
+ inkscape:groupmode="layer">
+ <g
+ transform="matrix(0.409759,0.000000,0.000000,0.318567,-134.1652,11.99131)"
+ id="g12676">
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path12678"
+ style="fill:#f9f9f9;fill-opacity:0.10655738;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path12680"
+ style="fill:url(#radialGradient18930);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path12682"
+ style="fill:url(#radialGradient18932);fill-opacity:1.0000000;stroke:url(#radialGradient18934);stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.399567,0.000000,0.000000,0.534837,298.7849,19.29063)"
+ d="M 300.36342 168.64339 A 2.9426789 2.9426789 0 1 1 294.47807,168.64339 A 2.9426789 2.9426789 0 1 1 300.36342 168.64339 z"
+ sodipodi:ry="2.9426789"
+ sodipodi:rx="2.9426789"
+ sodipodi:cy="168.64339"
+ sodipodi:cx="297.42075"
+ id="path12684"
+ style="fill:url(#radialGradient18936);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ </g>
+ <g
+ transform="matrix(0.168320,0.000000,0.000000,0.165094,-41.83888,21.56905)"
+ id="g12686">
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path12688"
+ style="fill:#f9f9f9;fill-opacity:0.10655738;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path12690"
+ style="fill:url(#radialGradient17770);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path12692"
+ style="fill:url(#radialGradient17772);fill-opacity:1.0000000;stroke:url(#radialGradient17774);stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.399567,0.000000,0.000000,0.534837,298.7849,19.29063)"
+ d="M 300.36342 168.64339 A 2.9426789 2.9426789 0 1 1 294.47807,168.64339 A 2.9426789 2.9426789 0 1 1 300.36342 168.64339 z"
+ sodipodi:ry="2.9426789"
+ sodipodi:rx="2.9426789"
+ sodipodi:cy="168.64339"
+ sodipodi:cx="297.42075"
+ id="path12694"
+ style="fill:url(#radialGradient17776);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ </g>
+ <g
+ transform="matrix(0.296609,0.000000,0.000000,0.309861,-94.23988,-4.051049)"
+ id="g12706">
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path12708"
+ style="fill:#f9f9f9;fill-opacity:0.10655738;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path12710"
+ style="fill:url(#radialGradient17762);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path12712"
+ style="fill:url(#radialGradient17764);fill-opacity:1.0000000;stroke:url(#radialGradient17766);stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.399567,0.000000,0.000000,0.534837,298.7849,19.29063)"
+ d="M 300.36342 168.64339 A 2.9426789 2.9426789 0 1 1 294.47807,168.64339 A 2.9426789 2.9426789 0 1 1 300.36342 168.64339 z"
+ sodipodi:ry="2.9426789"
+ sodipodi:rx="2.9426789"
+ sodipodi:cy="168.64339"
+ sodipodi:cx="297.42075"
+ id="path12714"
+ style="fill:url(#radialGradient17768);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ </g>
+ <g
+ transform="matrix(0.306967,0.000000,0.000000,0.266301,-79.30518,86.29645)"
+ id="g12716">
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path12718"
+ style="fill:#f9f9f9;fill-opacity:0.10655738;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path12720"
+ style="fill:url(#radialGradient18922);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path12722"
+ style="fill:url(#radialGradient18924);fill-opacity:1.0000000;stroke:url(#radialGradient18926);stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.399567,0.000000,0.000000,0.534837,298.7849,19.29063)"
+ d="M 300.36342 168.64339 A 2.9426789 2.9426789 0 1 1 294.47807,168.64339 A 2.9426789 2.9426789 0 1 1 300.36342 168.64339 z"
+ sodipodi:ry="2.9426789"
+ sodipodi:rx="2.9426789"
+ sodipodi:cy="168.64339"
+ sodipodi:cx="297.42075"
+ id="path12724"
+ style="fill:url(#radialGradient18928);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ </g>
+ <g
+ transform="matrix(0.255571,0.000000,0.000000,0.187901,-85.13188,24.08185)"
+ id="g12726">
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path12728"
+ style="fill:#f9f9f9;fill-opacity:0.10655738;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path12730"
+ style="fill:url(#radialGradient18914);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path12732"
+ style="fill:url(#radialGradient18916);fill-opacity:1.0000000;stroke:url(#radialGradient18918);stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.399567,0.000000,0.000000,0.534837,298.7849,19.29063)"
+ d="M 300.36342 168.64339 A 2.9426789 2.9426789 0 1 1 294.47807,168.64339 A 2.9426789 2.9426789 0 1 1 300.36342 168.64339 z"
+ sodipodi:ry="2.9426789"
+ sodipodi:rx="2.9426789"
+ sodipodi:cy="168.64339"
+ sodipodi:cx="297.42075"
+ id="path12734"
+ style="fill:url(#radialGradient18920);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ </g>
+ <g
+ transform="matrix(0.435458,0.000000,0.000000,0.318567,-128.3743,101.4753)"
+ id="g12736">
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path12738"
+ style="fill:#f9f9f9;fill-opacity:0.10655738;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path12740"
+ style="fill:url(#radialGradient18906);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path12742"
+ style="fill:url(#radialGradient18908);fill-opacity:1.0000000;stroke:url(#radialGradient18910);stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.399567,0.000000,0.000000,0.534837,298.7849,19.29063)"
+ d="M 300.36342 168.64339 A 2.9426789 2.9426789 0 1 1 294.47807,168.64339 A 2.9426789 2.9426789 0 1 1 300.36342 168.64339 z"
+ sodipodi:ry="2.9426789"
+ sodipodi:rx="2.9426789"
+ sodipodi:cy="168.64339"
+ sodipodi:cx="297.42075"
+ id="path12744"
+ style="fill:url(#radialGradient18912);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ </g>
+ <g
+ transform="matrix(0.358363,0.000000,0.000000,0.370834,-88.10158,62.87935)"
+ id="g12766">
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path12768"
+ style="fill:#f9f9f9;fill-opacity:0.10655738;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path12770"
+ style="fill:url(#radialGradient18898);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path12772"
+ style="fill:url(#radialGradient18900);fill-opacity:1.0000000;stroke:url(#radialGradient18902);stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.399567,0.000000,0.000000,0.534837,298.7849,19.29063)"
+ d="M 300.36342 168.64339 A 2.9426789 2.9426789 0 1 1 294.47807,168.64339 A 2.9426789 2.9426789 0 1 1 300.36342 168.64339 z"
+ sodipodi:ry="2.9426789"
+ sodipodi:rx="2.9426789"
+ sodipodi:cy="168.64339"
+ sodipodi:cx="297.42075"
+ id="path12774"
+ style="fill:url(#radialGradient18904);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ </g>
+ <g
+ transform="matrix(0.358363,0.000000,0.000000,0.318567,-88.53488,32.88105)"
+ id="g12776">
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path12778"
+ style="fill:#f9f9f9;fill-opacity:0.10655738;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path12780"
+ style="fill:url(#radialGradient17900);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path12782"
+ style="fill:url(#radialGradient17902);fill-opacity:1.0000000;stroke:url(#radialGradient17904);stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.399567,0.000000,0.000000,0.534837,298.7849,19.29063)"
+ d="M 300.36342 168.64339 A 2.9426789 2.9426789 0 1 1 294.47807,168.64339 A 2.9426789 2.9426789 0 1 1 300.36342 168.64339 z"
+ sodipodi:ry="2.9426789"
+ sodipodi:rx="2.9426789"
+ sodipodi:cy="168.64339"
+ sodipodi:cx="297.42075"
+ id="path12784"
+ style="fill:url(#radialGradient17906);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ </g>
+ <g
+ transform="matrix(0.360198,0.000000,0.000000,0.290938,-122.8258,76.70005)"
+ id="g12786">
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path12788"
+ style="fill:#f9f9f9;fill-opacity:0.10655738;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path12790"
+ style="fill:url(#radialGradient17884);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path12792"
+ style="fill:url(#radialGradient17886);fill-opacity:1.0000000;stroke:url(#radialGradient17888);stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.399567,0.000000,0.000000,0.534837,298.7849,19.29063)"
+ d="M 300.36342 168.64339 A 2.9426789 2.9426789 0 1 1 294.47807,168.64339 A 2.9426789 2.9426789 0 1 1 300.36342 168.64339 z"
+ sodipodi:ry="2.9426789"
+ sodipodi:rx="2.9426789"
+ sodipodi:cy="168.64339"
+ sodipodi:cx="297.42075"
+ id="path12794"
+ style="fill:url(#radialGradient17890);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ </g>
+ <g
+ transform="matrix(0.360198,0.000000,0.000000,0.290938,-80.94528,24.40335)"
+ id="g12796">
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path12798"
+ style="fill:#f9f9f9;fill-opacity:0.10655738;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path12800"
+ style="fill:url(#radialGradient18890);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path12802"
+ style="fill:url(#radialGradient18892);fill-opacity:1.0000000;stroke:url(#radialGradient18894);stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.399567,0.000000,0.000000,0.534837,298.7849,19.29063)"
+ d="M 300.36342 168.64339 A 2.9426789 2.9426789 0 1 1 294.47807,168.64339 A 2.9426789 2.9426789 0 1 1 300.36342 168.64339 z"
+ sodipodi:ry="2.9426789"
+ sodipodi:rx="2.9426789"
+ sodipodi:cy="168.64339"
+ sodipodi:cx="297.42075"
+ id="path12804"
+ style="fill:url(#radialGradient18896);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ </g>
+ <g
+ transform="matrix(0.435458,0.000000,0.000000,0.579900,-99.92421,17.41346)"
+ id="g12816">
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path12818"
+ style="fill:#f9f9f9;fill-opacity:0.10655738;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path12820"
+ style="fill:url(#radialGradient18882);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path12822"
+ style="fill:url(#radialGradient18884);fill-opacity:1.0000000;stroke:url(#radialGradient18886);stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.399567,0.000000,0.000000,0.534837,298.7849,19.29063)"
+ d="M 300.36342 168.64339 A 2.9426789 2.9426789 0 1 1 294.47807,168.64339 A 2.9426789 2.9426789 0 1 1 300.36342 168.64339 z"
+ sodipodi:ry="2.9426789"
+ sodipodi:rx="2.9426789"
+ sodipodi:cy="168.64339"
+ sodipodi:cx="297.42075"
+ id="path12824"
+ style="fill:url(#radialGradient18888);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ </g>
+ <g
+ transform="matrix(0.512552,0.000000,0.000000,0.553767,-169.2844,-42.97145)"
+ id="g12826">
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path12828"
+ style="fill:#f9f9f9;fill-opacity:0.10655738;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path12830"
+ style="fill:url(#radialGradient18874);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path12832"
+ style="fill:url(#radialGradient18876);fill-opacity:1.0000000;stroke:url(#radialGradient18878);stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.399567,0.000000,0.000000,0.534837,298.7849,19.29063)"
+ d="M 300.36342 168.64339 A 2.9426789 2.9426789 0 1 1 294.47807,168.64339 A 2.9426789 2.9426789 0 1 1 300.36342 168.64339 z"
+ sodipodi:ry="2.9426789"
+ sodipodi:rx="2.9426789"
+ sodipodi:cy="168.64339"
+ sodipodi:cx="297.42075"
+ id="path12834"
+ style="fill:url(#radialGradient18880);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ </g>
+ <g
+ transform="matrix(0.306967,0.000000,0.000000,0.266301,-45.30638,83.00725)"
+ id="g12846">
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path12848"
+ style="fill:#f9f9f9;fill-opacity:0.10655738;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path12850"
+ style="fill:url(#radialGradient18866);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path12852"
+ style="fill:url(#radialGradient18868);fill-opacity:1.0000000;stroke:url(#radialGradient18870);stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.399567,0.000000,0.000000,0.534837,298.7849,19.29063)"
+ d="M 300.36342 168.64339 A 2.9426789 2.9426789 0 1 1 294.47807,168.64339 A 2.9426789 2.9426789 0 1 1 300.36342 168.64339 z"
+ sodipodi:ry="2.9426789"
+ sodipodi:rx="2.9426789"
+ sodipodi:cy="168.64339"
+ sodipodi:cx="297.42075"
+ id="path12854"
+ style="fill:url(#radialGradient18872);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ </g>
+ <g
+ transform="matrix(0.255571,0.000000,0.000000,0.187901,-37.33638,19.67605)"
+ id="g12856">
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path12858"
+ style="fill:#f9f9f9;fill-opacity:0.10655738;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path12860"
+ style="fill:url(#radialGradient17924);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path12862"
+ style="fill:url(#radialGradient17926);fill-opacity:1.0000000;stroke:url(#radialGradient17928);stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.399567,0.000000,0.000000,0.534837,298.7849,19.29063)"
+ d="M 300.36342 168.64339 A 2.9426789 2.9426789 0 1 1 294.47807,168.64339 A 2.9426789 2.9426789 0 1 1 300.36342 168.64339 z"
+ sodipodi:ry="2.9426789"
+ sodipodi:rx="2.9426789"
+ sodipodi:cy="168.64339"
+ sodipodi:cx="297.42075"
+ id="path12864"
+ style="fill:url(#radialGradient17930);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ </g>
+ <g
+ transform="matrix(0.435458,0.000000,0.000000,0.318567,-90.26358,90.95385)"
+ id="g12866">
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path12868"
+ style="fill:#f9f9f9;fill-opacity:0.10655738;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path12870"
+ style="fill:url(#radialGradient18858);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path12872"
+ style="fill:url(#radialGradient18860);fill-opacity:1.0000000;stroke:url(#radialGradient18862);stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.399567,0.000000,0.000000,0.534837,298.7849,19.29063)"
+ d="M 300.36342 168.64339 A 2.9426789 2.9426789 0 1 1 294.47807,168.64339 A 2.9426789 2.9426789 0 1 1 300.36342 168.64339 z"
+ sodipodi:ry="2.9426789"
+ sodipodi:rx="2.9426789"
+ sodipodi:cy="168.64339"
+ sodipodi:cx="297.42075"
+ id="path12874"
+ style="fill:url(#radialGradient18864);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ </g>
+ <g
+ transform="matrix(0.435458,0.000000,0.000000,0.344701,-74.89488,-43.57145)"
+ id="g12876">
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path12878"
+ style="fill:#f9f9f9;fill-opacity:0.10655738;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path12880"
+ style="fill:url(#radialGradient17892);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path12882"
+ style="fill:url(#radialGradient17894);fill-opacity:1.0000000;stroke:url(#radialGradient17896);stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.399567,0.000000,0.000000,0.534837,298.7849,19.29063)"
+ d="M 300.36342 168.64339 A 2.9426789 2.9426789 0 1 1 294.47807,168.64339 A 2.9426789 2.9426789 0 1 1 300.36342 168.64339 z"
+ sodipodi:ry="2.9426789"
+ sodipodi:rx="2.9426789"
+ sodipodi:cy="168.64339"
+ sodipodi:cx="297.42075"
+ id="path12884"
+ style="fill:url(#radialGradient17898);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ </g>
+ <g
+ transform="matrix(0.358363,0.000000,0.000000,0.370834,-41.23508,73.83645)"
+ id="g12896">
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path12898"
+ style="fill:#f9f9f9;fill-opacity:0.10655738;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path12900"
+ style="fill:url(#radialGradient18850);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path12902"
+ style="fill:url(#radialGradient18852);fill-opacity:1.0000000;stroke:url(#radialGradient18854);stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.399567,0.000000,0.000000,0.534837,298.7849,19.29063)"
+ d="M 300.36342 168.64339 A 2.9426789 2.9426789 0 1 1 294.47807,168.64339 A 2.9426789 2.9426789 0 1 1 300.36342 168.64339 z"
+ sodipodi:ry="2.9426789"
+ sodipodi:rx="2.9426789"
+ sodipodi:cy="168.64339"
+ sodipodi:cx="297.42075"
+ id="path12904"
+ style="fill:url(#radialGradient18856);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ </g>
+ <g
+ transform="matrix(0.358363,0.000000,0.000000,0.318567,-44.86538,32.58635)"
+ id="g12906">
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path12908"
+ style="fill:#f9f9f9;fill-opacity:0.10655738;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path12910"
+ style="fill:url(#radialGradient18842);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path12912"
+ style="fill:url(#radialGradient18844);fill-opacity:1.0000000;stroke:url(#radialGradient18846);stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.399567,0.000000,0.000000,0.534837,298.7849,19.29063)"
+ d="M 300.36342 168.64339 A 2.9426789 2.9426789 0 1 1 294.47807,168.64339 A 2.9426789 2.9426789 0 1 1 300.36342 168.64339 z"
+ sodipodi:ry="2.9426789"
+ sodipodi:rx="2.9426789"
+ sodipodi:cy="168.64339"
+ sodipodi:cx="297.42075"
+ id="path12914"
+ style="fill:url(#radialGradient18848);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ </g>
+ <g
+ transform="matrix(0.360198,0.000000,0.000000,0.290938,-47.22938,65.08895)"
+ id="g12916">
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path12918"
+ style="fill:#f9f9f9;fill-opacity:0.10655738;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path12920"
+ style="fill:url(#radialGradient18834);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path12922"
+ style="fill:url(#radialGradient18836);fill-opacity:1.0000000;stroke:url(#radialGradient18838);stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.399567,0.000000,0.000000,0.534837,298.7849,19.29063)"
+ d="M 300.36342 168.64339 A 2.9426789 2.9426789 0 1 1 294.47807,168.64339 A 2.9426789 2.9426789 0 1 1 300.36342 168.64339 z"
+ sodipodi:ry="2.9426789"
+ sodipodi:rx="2.9426789"
+ sodipodi:cy="168.64339"
+ sodipodi:cx="297.42075"
+ id="path12924"
+ style="fill:url(#radialGradient18840);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ </g>
+ <g
+ transform="matrix(0.306967,0.000000,0.000000,0.266301,-100.9331,102.2598)"
+ id="g12926">
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path12928"
+ style="fill:#f9f9f9;fill-opacity:0.10655738;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path12930"
+ style="fill:url(#radialGradient18826);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path12932"
+ style="fill:url(#radialGradient18828);fill-opacity:1.0000000;stroke:url(#radialGradient18830);stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.399567,0.000000,0.000000,0.534837,298.7849,19.29063)"
+ d="M 300.36342 168.64339 A 2.9426789 2.9426789 0 1 1 294.47807,168.64339 A 2.9426789 2.9426789 0 1 1 300.36342 168.64339 z"
+ sodipodi:ry="2.9426789"
+ sodipodi:rx="2.9426789"
+ sodipodi:cy="168.64339"
+ sodipodi:cx="297.42075"
+ id="path12934"
+ style="fill:url(#radialGradient18832);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ </g>
+ <g
+ transform="matrix(0.360198,0.000000,0.000000,0.290938,-105.1539,58.14655)"
+ id="g12946">
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path12948"
+ style="fill:#f9f9f9;fill-opacity:0.10655738;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path12950"
+ style="fill:url(#radialGradient18818);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path12952"
+ style="fill:url(#radialGradient18820);fill-opacity:1.0000000;stroke:url(#radialGradient18822);stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.399567,0.000000,0.000000,0.534837,298.7849,19.29063)"
+ d="M 300.36342 168.64339 A 2.9426789 2.9426789 0 1 1 294.47807,168.64339 A 2.9426789 2.9426789 0 1 1 300.36342 168.64339 z"
+ sodipodi:ry="2.9426789"
+ sodipodi:rx="2.9426789"
+ sodipodi:cy="168.64339"
+ sodipodi:cx="297.42075"
+ id="path12954"
+ style="fill:url(#radialGradient18824);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ </g>
+ <g
+ transform="matrix(0.306967,0.000000,0.000000,0.266301,-66.93428,98.97063)"
+ id="g12956">
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path12958"
+ style="fill:#f9f9f9;fill-opacity:0.10655738;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path12960"
+ style="fill:url(#radialGradient18810);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path12962"
+ style="fill:url(#radialGradient18812);fill-opacity:1.0000000;stroke:url(#radialGradient18814);stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.399567,0.000000,0.000000,0.534837,298.7849,19.29063)"
+ d="M 300.36342 168.64339 A 2.9426789 2.9426789 0 1 1 294.47807,168.64339 A 2.9426789 2.9426789 0 1 1 300.36342 168.64339 z"
+ sodipodi:ry="2.9426789"
+ sodipodi:rx="2.9426789"
+ sodipodi:cy="168.64339"
+ sodipodi:cx="297.42075"
+ id="path12964"
+ style="fill:url(#radialGradient18816);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ </g>
+ <g
+ transform="matrix(0.306967,0.000000,0.000000,0.266301,-62.84398,-10.21695)"
+ id="g12996">
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path12998"
+ style="fill:#f9f9f9;fill-opacity:0.10655738;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path13000"
+ style="fill:url(#radialGradient17964);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path13002"
+ style="fill:url(#radialGradient17966);fill-opacity:1.0000000;stroke:url(#radialGradient17968);stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.399567,0.000000,0.000000,0.534837,298.7849,19.29063)"
+ d="M 300.36342 168.64339 A 2.9426789 2.9426789 0 1 1 294.47807,168.64339 A 2.9426789 2.9426789 0 1 1 300.36342 168.64339 z"
+ sodipodi:ry="2.9426789"
+ sodipodi:rx="2.9426789"
+ sodipodi:cy="168.64339"
+ sodipodi:cx="297.42075"
+ id="path13004"
+ style="fill:url(#radialGradient17970);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ </g>
+ <g
+ transform="matrix(0.360198,0.000000,0.000000,0.290938,-64.69518,-23.96705)"
+ id="g13006">
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path13008"
+ style="fill:#f9f9f9;fill-opacity:0.10655738;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path13010"
+ style="fill:url(#radialGradient17786);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path13012"
+ style="fill:url(#radialGradient17788);fill-opacity:1.0000000;stroke:url(#radialGradient17790);stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.399567,0.000000,0.000000,0.534837,298.7849,19.29063)"
+ d="M 300.36342 168.64339 A 2.9426789 2.9426789 0 1 1 294.47807,168.64339 A 2.9426789 2.9426789 0 1 1 300.36342 168.64339 z"
+ sodipodi:ry="2.9426789"
+ sodipodi:rx="2.9426789"
+ sodipodi:cy="168.64339"
+ sodipodi:cx="297.42075"
+ id="path13014"
+ style="fill:url(#radialGradient17792);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ </g>
+ <g
+ transform="matrix(0.255571,0.000000,0.000000,0.187901,-75.18521,54.77493)"
+ id="g4809">
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path4811"
+ style="fill:#f9f9f9;fill-opacity:0.10655738;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path4813"
+ style="fill:url(#radialGradient4819);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path4815"
+ style="fill:url(#radialGradient4821);fill-opacity:1.0000000;stroke:url(#radialGradient4823);stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.399567,0.000000,0.000000,0.534837,298.7849,19.29063)"
+ d="M 300.36342 168.64339 A 2.9426789 2.9426789 0 1 1 294.47807,168.64339 A 2.9426789 2.9426789 0 1 1 300.36342 168.64339 z"
+ sodipodi:ry="2.9426789"
+ sodipodi:rx="2.9426789"
+ sodipodi:cy="168.64339"
+ sodipodi:cx="297.42075"
+ id="path4817"
+ style="fill:url(#radialGradient4825);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ </g>
+ </g>
+ <g
+ inkscape:label="BablFish"
+ id="layer5"
+ inkscape:groupmode="layer">
+ <g
+ transform="translate(0.297690,11.01452)"
+ id="g2265">
+ <path
+ sodipodi:nodetypes="cccc"
+ style="fill:url(#linearGradient2247);fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000"
+ d="M 66.011982,32.552808 C 76.087951,34.671490 87.722311,39.733027 87.862925,49.987689 C 87.918955,60.082687 75.049276,60.966037 63.846432,62.358569 C 77.915608,51.281923 77.251217,43.741642 66.011982,32.552808 z "
+ id="tail" />
+ <g
+ transform="matrix(-1.000000,0.000000,0.000000,1.000000,497.0702,-121.1858)"
+ id="g5419">
+ <path
+ transform="matrix(1.357648,0.000000,0.000000,0.754363,-2.043468,43.23668)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path5352"
+ style="fill:url(#linearGradient3382);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(1.357648,0.000000,0.000000,0.754363,-2.043468,43.23668)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path5354"
+ style="fill:url(#radialGradient3384);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(1.357648,0.000000,0.000000,0.754363,-2.043468,43.23668)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path5356"
+ style="fill:url(#radialGradient3386);fill-opacity:1.0000000;stroke:none;stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ </g>
+ <g
+ transform="matrix(-0.851956,0.000000,0.000000,0.851956,239.6820,-3.879160)"
+ id="g3342">
+ <path
+ transform="matrix(0.305325,0.000000,0.000000,0.297351,52.22804,8.902103)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path4845"
+ style="fill:#eaeaea;fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.305325,0.000000,0.000000,0.297351,52.22804,8.902103)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path4847"
+ style="fill:url(#radialGradient2249);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.305325,0.000000,0.000000,0.297351,52.22804,8.902103)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path4849"
+ style="fill:url(#radialGradient2251);fill-opacity:1.0000000;stroke:url(#radialGradient2253);stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.582483,0.000000,0.000000,0.561567,-66.35254,-39.32076)"
+ d="M 360.53069 177.23495 A 3.9148138 3.9148138 0 1 1 352.70106,177.23495 A 3.9148138 3.9148138 0 1 1 360.53069 177.23495 z"
+ sodipodi:ry="3.9148138"
+ sodipodi:rx="3.9148138"
+ sodipodi:cy="177.23495"
+ sodipodi:cx="356.61588"
+ id="path4851"
+ style="fill:#404040;fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.308390,0.000000,0.000000,0.412793,49.94549,-11.31996)"
+ d="M 300.36342 168.64339 A 2.9426789 2.9426789 0 1 1 294.47807,168.64339 A 2.9426789 2.9426789 0 1 1 300.36342 168.64339 z"
+ sodipodi:ry="2.9426789"
+ sodipodi:rx="2.9426789"
+ sodipodi:cy="168.64339"
+ sodipodi:cx="297.42075"
+ id="path4870"
+ style="fill:url(#radialGradient2255);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ </g>
+ <g
+ transform="matrix(-0.866951,0.000000,0.000000,0.866951,241.9287,-4.248708)"
+ id="g3354">
+ <path
+ transform="matrix(0.355197,0.000000,0.000000,0.345921,44.96393,1.489673)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path4905"
+ style="fill:#eaeaea;fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.355197,0.000000,0.000000,0.345921,44.96393,1.489673)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path4907"
+ style="fill:url(#radialGradient2257);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.355197,0.000000,0.000000,0.345921,44.96393,1.489673)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path4909"
+ style="fill:url(#radialGradient2259);fill-opacity:1.0000000;stroke:url(#radialGradient2261);stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.677626,0.000000,0.000000,0.653293,-92.98569,-54.60994)"
+ d="M 360.53069 177.23495 A 3.9148138 3.9148138 0 1 1 352.70106,177.23495 A 3.9148138 3.9148138 0 1 1 360.53069 177.23495 z"
+ sodipodi:ry="3.9148138"
+ sodipodi:rx="3.9148138"
+ sodipodi:cy="177.23495"
+ sodipodi:cx="356.61588"
+ id="path4911"
+ style="fill:#3f3f3f;fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.358762,0.000000,0.000000,0.480218,42.30855,-22.03548)"
+ d="M 300.36342 168.64339 A 2.9426789 2.9426789 0 1 1 294.47807,168.64339 A 2.9426789 2.9426789 0 1 1 300.36342 168.64339 z"
+ sodipodi:ry="2.9426789"
+ sodipodi:rx="2.9426789"
+ sodipodi:cy="168.64339"
+ sodipodi:cx="297.42075"
+ id="path4913"
+ style="fill:url(#radialGradient2263);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ </g>
+ </g>
+ </g>
+ <g
+ inkscape:label="foreground bubbles"
+ id="layer9"
+ inkscape:groupmode="layer">
+ <g
+ transform="matrix(0.360198,0.000000,0.000000,0.290938,-124.1362,-13.64185)"
+ id="g5550">
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path5552"
+ style="fill:#f9f9f9;fill-opacity:0.10655738;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path5554"
+ style="fill:url(#radialGradient18802);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path5556"
+ style="fill:url(#radialGradient18804);fill-opacity:1.0000000;stroke:url(#radialGradient18806);stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.399567,0.000000,0.000000,0.534837,298.7849,19.29063)"
+ d="M 300.36342 168.64339 A 2.9426789 2.9426789 0 1 1 294.47807,168.64339 A 2.9426789 2.9426789 0 1 1 300.36342 168.64339 z"
+ sodipodi:ry="2.9426789"
+ sodipodi:rx="2.9426789"
+ sodipodi:cy="168.64339"
+ sodipodi:cx="297.42075"
+ id="path5558"
+ style="fill:url(#radialGradient18808);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ </g>
+ <g
+ transform="matrix(0.409759,0.000000,0.000000,0.318567,-163.3177,-21.43285)"
+ id="g5568">
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path5570"
+ style="fill:#f9f9f9;fill-opacity:0.10655738;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path5572"
+ style="fill:url(#radialGradient17836);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path5574"
+ style="fill:url(#radialGradient17838);fill-opacity:1.0000000;stroke:url(#radialGradient17840);stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.399567,0.000000,0.000000,0.534837,298.7849,19.29063)"
+ d="M 300.36342 168.64339 A 2.9426789 2.9426789 0 1 1 294.47807,168.64339 A 2.9426789 2.9426789 0 1 1 300.36342 168.64339 z"
+ sodipodi:ry="2.9426789"
+ sodipodi:rx="2.9426789"
+ sodipodi:cy="168.64339"
+ sodipodi:cx="297.42075"
+ id="path5576"
+ style="fill:url(#radialGradient17842);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ </g>
+ <g
+ transform="matrix(0.376094,0.000000,0.000000,0.318726,-146.0337,48.69825)"
+ id="g5604">
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path5606"
+ style="fill:#f9f9f9;fill-opacity:0.10655738;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path5608"
+ style="fill:url(#radialGradient17706);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path5610"
+ style="fill:url(#radialGradient17708);fill-opacity:1.0000000;stroke:url(#radialGradient17710);stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.399567,0.000000,0.000000,0.534837,298.7849,19.29063)"
+ d="M 300.36342 168.64339 A 2.9426789 2.9426789 0 1 1 294.47807,168.64339 A 2.9426789 2.9426789 0 1 1 300.36342 168.64339 z"
+ sodipodi:ry="2.9426789"
+ sodipodi:rx="2.9426789"
+ sodipodi:cy="168.64339"
+ sodipodi:cx="297.42075"
+ id="path5612"
+ style="fill:url(#radialGradient17712);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ </g>
+ <g
+ transform="matrix(0.306967,0.000000,0.000000,0.266301,-59.13102,59.50621)"
+ id="g5730">
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path5732"
+ style="fill:#f9f9f9;fill-opacity:0.10655738;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path5734"
+ style="fill:url(#radialGradient17908);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path5736"
+ style="fill:url(#radialGradient17910);fill-opacity:1.0000000;stroke:url(#radialGradient17912);stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.399567,0.000000,0.000000,0.534837,298.7849,19.29063)"
+ d="M 300.36342 168.64339 A 2.9426789 2.9426789 0 1 1 294.47807,168.64339 A 2.9426789 2.9426789 0 1 1 300.36342 168.64339 z"
+ sodipodi:ry="2.9426789"
+ sodipodi:rx="2.9426789"
+ sodipodi:cy="168.64339"
+ sodipodi:cx="297.42075"
+ id="path5738"
+ style="fill:url(#radialGradient17914);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ </g>
+ <g
+ transform="matrix(0.255571,0.000000,0.000000,0.187901,-87.94838,-31.31765)"
+ id="g5820">
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path5822"
+ style="fill:#f9f9f9;fill-opacity:0.10655738;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path5824"
+ style="fill:url(#radialGradient17820);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path5826"
+ style="fill:url(#radialGradient17822);fill-opacity:1.0000000;stroke:url(#radialGradient17824);stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.399567,0.000000,0.000000,0.534837,298.7849,19.29063)"
+ d="M 300.36342 168.64339 A 2.9426789 2.9426789 0 1 1 294.47807,168.64339 A 2.9426789 2.9426789 0 1 1 300.36342 168.64339 z"
+ sodipodi:ry="2.9426789"
+ sodipodi:rx="2.9426789"
+ sodipodi:cy="168.64339"
+ sodipodi:cx="297.42075"
+ id="path5828"
+ style="fill:url(#radialGradient17826);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ </g>
+ <g
+ transform="matrix(0.225767,0.000000,0.000000,0.166394,-38.72548,75.69945)"
+ id="g5874">
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path5876"
+ style="fill:#f9f9f9;fill-opacity:0.10655738;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path5878"
+ style="fill:url(#radialGradient17738);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path5880"
+ style="fill:url(#radialGradient17740);fill-opacity:1.0000000;stroke:url(#radialGradient17742);stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.399567,0.000000,0.000000,0.534837,298.7849,19.29063)"
+ d="M 300.36342 168.64339 A 2.9426789 2.9426789 0 1 1 294.47807,168.64339 A 2.9426789 2.9426789 0 1 1 300.36342 168.64339 z"
+ sodipodi:ry="2.9426789"
+ sodipodi:rx="2.9426789"
+ sodipodi:cy="168.64339"
+ sodipodi:cx="297.42075"
+ id="path5882"
+ style="fill:url(#radialGradient17744);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ </g>
+ <g
+ transform="matrix(0.435458,0.000000,0.000000,0.344701,-141.4967,-47.52295)"
+ id="g5946">
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path5948"
+ style="fill:#f9f9f9;fill-opacity:0.10655738;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path5950"
+ style="fill:url(#radialGradient17948);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path5952"
+ style="fill:url(#radialGradient17950);fill-opacity:1.0000000;stroke:url(#radialGradient17952);stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.399567,0.000000,0.000000,0.534837,298.7849,19.29063)"
+ d="M 300.36342 168.64339 A 2.9426789 2.9426789 0 1 1 294.47807,168.64339 A 2.9426789 2.9426789 0 1 1 300.36342 168.64339 z"
+ sodipodi:ry="2.9426789"
+ sodipodi:rx="2.9426789"
+ sodipodi:cy="168.64339"
+ sodipodi:cx="297.42075"
+ id="path5954"
+ style="fill:url(#radialGradient17954);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ </g>
+ <g
+ transform="matrix(0.358363,0.000000,0.000000,0.370834,-86.45168,19.97375)"
+ id="g6036">
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path6038"
+ style="fill:#f9f9f9;fill-opacity:0.10655738;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path6040"
+ style="fill:url(#radialGradient17932);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path6042"
+ style="fill:url(#radialGradient17934);fill-opacity:1.0000000;stroke:url(#radialGradient17936);stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.399567,0.000000,0.000000,0.534837,298.7849,19.29063)"
+ d="M 300.36342 168.64339 A 2.9426789 2.9426789 0 1 1 294.47807,168.64339 A 2.9426789 2.9426789 0 1 1 300.36342 168.64339 z"
+ sodipodi:ry="2.9426789"
+ sodipodi:rx="2.9426789"
+ sodipodi:cy="168.64339"
+ sodipodi:cx="297.42075"
+ id="path6044"
+ style="fill:url(#radialGradient17938);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ </g>
+ <g
+ transform="matrix(0.493244,0.000000,0.000000,0.494329,-126.4196,-6.521541)"
+ id="g6234">
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path6236"
+ style="fill:#f9f9f9;fill-opacity:0.10655738;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path6238"
+ style="fill:url(#radialGradient18794);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path6240"
+ style="fill:url(#radialGradient18796);fill-opacity:1.0000000;stroke:url(#radialGradient18798);stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.399567,0.000000,0.000000,0.534837,298.7849,19.29063)"
+ d="M 300.36342 168.64339 A 2.9426789 2.9426789 0 1 1 294.47807,168.64339 A 2.9426789 2.9426789 0 1 1 300.36342 168.64339 z"
+ sodipodi:ry="2.9426789"
+ sodipodi:rx="2.9426789"
+ sodipodi:cy="168.64339"
+ sodipodi:cx="297.42075"
+ id="path6242"
+ style="fill:url(#radialGradient18800);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ </g>
+ <g
+ transform="matrix(0.360198,0.000000,0.000000,0.290938,-75.43148,-15.09285)"
+ id="g9175">
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path9177"
+ style="fill:#f9f9f9;fill-opacity:0.10655738;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path9179"
+ style="fill:url(#radialGradient18786);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path9181"
+ style="fill:url(#radialGradient18788);fill-opacity:1.0000000;stroke:url(#radialGradient18790);stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.399567,0.000000,0.000000,0.534837,298.7849,19.29063)"
+ d="M 300.36342 168.64339 A 2.9426789 2.9426789 0 1 1 294.47807,168.64339 A 2.9426789 2.9426789 0 1 1 300.36342 168.64339 z"
+ sodipodi:ry="2.9426789"
+ sodipodi:rx="2.9426789"
+ sodipodi:cy="168.64339"
+ sodipodi:cx="297.42075"
+ id="path9183"
+ style="fill:url(#radialGradient18792);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ </g>
+ <g
+ transform="matrix(0.316730,0.000000,0.000000,0.211183,-75.61158,14.12005)"
+ id="g9195">
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path9197"
+ style="fill:#f9f9f9;fill-opacity:0.10655738;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path9199"
+ style="fill:url(#radialGradient17754);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path9201"
+ style="fill:url(#radialGradient17756);fill-opacity:1.0000000;stroke:url(#radialGradient17758);stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.399567,0.000000,0.000000,0.534837,298.7849,19.29063)"
+ d="M 300.36342 168.64339 A 2.9426789 2.9426789 0 1 1 294.47807,168.64339 A 2.9426789 2.9426789 0 1 1 300.36342 168.64339 z"
+ sodipodi:ry="2.9426789"
+ sodipodi:rx="2.9426789"
+ sodipodi:cy="168.64339"
+ sodipodi:cx="297.42075"
+ id="path9203"
+ style="fill:url(#radialGradient17760);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ </g>
+ <g
+ transform="matrix(0.461156,0.000000,0.000000,0.370834,-94.00888,-46.31875)"
+ id="g9215">
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path9217"
+ style="fill:#f9f9f9;fill-opacity:0.10655738;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path9219"
+ style="fill:url(#radialGradient18778);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path9221"
+ style="fill:url(#radialGradient18780);fill-opacity:1.0000000;stroke:url(#radialGradient18782);stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.399567,0.000000,0.000000,0.534837,298.7849,19.29063)"
+ d="M 300.36342 168.64339 A 2.9426789 2.9426789 0 1 1 294.47807,168.64339 A 2.9426789 2.9426789 0 1 1 300.36342 168.64339 z"
+ sodipodi:ry="2.9426789"
+ sodipodi:rx="2.9426789"
+ sodipodi:cy="168.64339"
+ sodipodi:cx="297.42075"
+ id="path9223"
+ style="fill:url(#radialGradient18784);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ </g>
+ <g
+ transform="matrix(0.306967,0.000000,0.000000,0.266301,-39.79258,43.51105)"
+ id="g9225">
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path9227"
+ style="fill:#f9f9f9;fill-opacity:0.10655738;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path9229"
+ style="fill:url(#radialGradient18770);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path9231"
+ style="fill:url(#radialGradient18772);fill-opacity:1.0000000;stroke:url(#radialGradient18774);stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.399567,0.000000,0.000000,0.534837,298.7849,19.29063)"
+ d="M 300.36342 168.64339 A 2.9426789 2.9426789 0 1 1 294.47807,168.64339 A 2.9426789 2.9426789 0 1 1 300.36342 168.64339 z"
+ sodipodi:ry="2.9426789"
+ sodipodi:rx="2.9426789"
+ sodipodi:cy="168.64339"
+ sodipodi:cx="297.42075"
+ id="path9233"
+ style="fill:url(#radialGradient18776);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ </g>
+ <g
+ transform="matrix(0.435458,0.000000,0.000000,0.344701,-83.47308,-55.56544)"
+ id="g9255">
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path9257"
+ style="fill:#f9f9f9;fill-opacity:0.10655738;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path9259"
+ style="fill:url(#radialGradient18762);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path9261"
+ style="fill:url(#radialGradient18764);fill-opacity:1.0000000;stroke:url(#radialGradient18766);stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.399567,0.000000,0.000000,0.534837,298.7849,19.29063)"
+ d="M 300.36342 168.64339 A 2.9426789 2.9426789 0 1 1 294.47807,168.64339 A 2.9426789 2.9426789 0 1 1 300.36342 168.64339 z"
+ sodipodi:ry="2.9426789"
+ sodipodi:rx="2.9426789"
+ sodipodi:cy="168.64339"
+ sodipodi:cx="297.42075"
+ id="path9263"
+ style="fill:url(#radialGradient18768);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ </g>
+ <g
+ transform="matrix(0.358363,0.000000,0.000000,0.370834,-35.72128,34.34025)"
+ id="g9275">
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path9277"
+ style="fill:#f9f9f9;fill-opacity:0.10655738;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path9279"
+ style="fill:url(#radialGradient18754);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path9281"
+ style="fill:url(#radialGradient18756);fill-opacity:1.0000000;stroke:url(#radialGradient18758);stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.399567,0.000000,0.000000,0.534837,298.7849,19.29063)"
+ d="M 300.36342 168.64339 A 2.9426789 2.9426789 0 1 1 294.47807,168.64339 A 2.9426789 2.9426789 0 1 1 300.36342 168.64339 z"
+ sodipodi:ry="2.9426789"
+ sodipodi:rx="2.9426789"
+ sodipodi:cy="168.64339"
+ sodipodi:cx="297.42075"
+ id="path9283"
+ style="fill:url(#radialGradient18760);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ </g>
+ <g
+ transform="matrix(0.358363,0.000000,0.000000,0.318567,-34.28538,-47.89362)"
+ id="g9285">
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path9287"
+ style="fill:#f9f9f9;fill-opacity:0.10655738;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path9289"
+ style="fill:url(#radialGradient17812);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path9291"
+ style="fill:url(#radialGradient17814);fill-opacity:1.0000000;stroke:url(#radialGradient17816);stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.399567,0.000000,0.000000,0.534837,298.7849,19.29063)"
+ d="M 300.36342 168.64339 A 2.9426789 2.9426789 0 1 1 294.47807,168.64339 A 2.9426789 2.9426789 0 1 1 300.36342 168.64339 z"
+ sodipodi:ry="2.9426789"
+ sodipodi:rx="2.9426789"
+ sodipodi:cy="168.64339"
+ sodipodi:cx="297.42075"
+ id="path9293"
+ style="fill:url(#radialGradient17818);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ </g>
+ <g
+ transform="matrix(0.360198,0.000000,0.000000,0.350260,-41.71558,19.31086)"
+ id="g9295">
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path9297"
+ style="fill:#f9f9f9;fill-opacity:0.10655738;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path9299"
+ style="fill:url(#radialGradient18746);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path9301"
+ style="fill:url(#radialGradient18748);fill-opacity:1.0000000;stroke:url(#radialGradient18750);stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.399567,0.000000,0.000000,0.534837,298.7849,19.29063)"
+ d="M 300.36342 168.64339 A 2.9426789 2.9426789 0 1 1 294.47807,168.64339 A 2.9426789 2.9426789 0 1 1 300.36342 168.64339 z"
+ sodipodi:ry="2.9426789"
+ sodipodi:rx="2.9426789"
+ sodipodi:cy="168.64339"
+ sodipodi:cx="297.42075"
+ id="path9303"
+ style="fill:url(#radialGradient18752);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ </g>
+ <g
+ transform="matrix(0.435458,0.000000,0.000000,0.318567,-166.9264,84.54515)"
+ id="g9865">
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path9867"
+ style="fill:#f9f9f9;fill-opacity:0.10655738;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path9869"
+ style="fill:url(#radialGradient17876);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path9871"
+ style="fill:url(#radialGradient17878);fill-opacity:1.0000000;stroke:url(#radialGradient17880);stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.399567,0.000000,0.000000,0.534837,298.7849,19.29063)"
+ d="M 300.36342 168.64339 A 2.9426789 2.9426789 0 1 1 294.47807,168.64339 A 2.9426789 2.9426789 0 1 1 300.36342 168.64339 z"
+ sodipodi:ry="2.9426789"
+ sodipodi:rx="2.9426789"
+ sodipodi:cy="168.64339"
+ sodipodi:cx="297.42075"
+ id="path9873"
+ style="fill:url(#radialGradient17882);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ </g>
+ <g
+ transform="matrix(0.435458,0.000000,0.000000,0.318567,-93.96958,70.17845)"
+ id="g9895">
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path9897"
+ style="fill:#f9f9f9;fill-opacity:0.10655738;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path9899"
+ style="fill:url(#radialGradient18738);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path9901"
+ style="fill:url(#radialGradient18740);fill-opacity:1.0000000;stroke:url(#radialGradient18742);stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.399567,0.000000,0.000000,0.534837,298.7849,19.29063)"
+ d="M 300.36342 168.64339 A 2.9426789 2.9426789 0 1 1 294.47807,168.64339 A 2.9426789 2.9426789 0 1 1 300.36342 168.64339 z"
+ sodipodi:ry="2.9426789"
+ sodipodi:rx="2.9426789"
+ sodipodi:cy="168.64339"
+ sodipodi:cx="297.42075"
+ id="path9903"
+ style="fill:url(#radialGradient18744);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ </g>
+ <g
+ transform="matrix(0.239136,0.000000,0.000000,0.233074,-0.707477,77.84855)"
+ id="g9905">
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path9907"
+ style="fill:#f9f9f9;fill-opacity:0.10655738;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path9909"
+ style="fill:url(#radialGradient17730);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path9911"
+ style="fill:url(#radialGradient17732);fill-opacity:1.0000000;stroke:url(#radialGradient17734);stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.399567,0.000000,0.000000,0.534837,298.7849,19.29063)"
+ d="M 300.36342 168.64339 A 2.9426789 2.9426789 0 1 1 294.47807,168.64339 A 2.9426789 2.9426789 0 1 1 300.36342 168.64339 z"
+ sodipodi:ry="2.9426789"
+ sodipodi:rx="2.9426789"
+ sodipodi:cy="168.64339"
+ sodipodi:cx="297.42075"
+ id="path9913"
+ style="fill:url(#radialGradient17736);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ </g>
+ <g
+ transform="matrix(0.306967,0.000000,0.000000,0.266301,-95.96968,-49.48589)"
+ id="g10005">
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path10007"
+ style="fill:#f9f9f9;fill-opacity:0.10655738;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path10009"
+ style="fill:url(#radialGradient17940);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path10011"
+ style="fill:url(#radialGradient17942);fill-opacity:1.0000000;stroke:url(#radialGradient17944);stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.399567,0.000000,0.000000,0.534837,298.7849,19.29063)"
+ d="M 300.36342 168.64339 A 2.9426789 2.9426789 0 1 1 294.47807,168.64339 A 2.9426789 2.9426789 0 1 1 300.36342 168.64339 z"
+ sodipodi:ry="2.9426789"
+ sodipodi:rx="2.9426789"
+ sodipodi:cy="168.64339"
+ sodipodi:cx="297.42075"
+ id="path10013"
+ style="fill:url(#radialGradient17946);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ </g>
+ <g
+ transform="matrix(0.360198,0.000000,0.000000,0.290938,-36.29688,-64.43514)"
+ id="g10015">
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path10017"
+ style="fill:#f9f9f9;fill-opacity:0.10655738;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path10019"
+ style="fill:url(#radialGradient17956);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path10021"
+ style="fill:url(#radialGradient17958);fill-opacity:1.0000000;stroke:url(#radialGradient17960);stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.399567,0.000000,0.000000,0.534837,298.7849,19.29063)"
+ d="M 300.36342 168.64339 A 2.9426789 2.9426789 0 1 1 294.47807,168.64339 A 2.9426789 2.9426789 0 1 1 300.36342 168.64339 z"
+ sodipodi:ry="2.9426789"
+ sodipodi:rx="2.9426789"
+ sodipodi:cy="168.64339"
+ sodipodi:cx="297.42075"
+ id="path10023"
+ style="fill:url(#radialGradient17962);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ </g>
+ <g
+ transform="matrix(0.358363,0.000000,0.000000,0.370834,-134.0393,20.00345)"
+ id="g10059">
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path10061"
+ style="fill:#f9f9f9;fill-opacity:0.10655738;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path10063"
+ style="fill:url(#radialGradient18730);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path10065"
+ style="fill:url(#radialGradient18732);fill-opacity:1.0000000;stroke:url(#radialGradient18734);stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.399567,0.000000,0.000000,0.534837,298.7849,19.29063)"
+ d="M 300.36342 168.64339 A 2.9426789 2.9426789 0 1 1 294.47807,168.64339 A 2.9426789 2.9426789 0 1 1 300.36342 168.64339 z"
+ sodipodi:ry="2.9426789"
+ sodipodi:rx="2.9426789"
+ sodipodi:cy="168.64339"
+ sodipodi:cx="297.42075"
+ id="path10067"
+ style="fill:url(#radialGradient18736);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ </g>
+ <g
+ transform="matrix(0.422057,0.000000,0.000000,0.407854,-135.2590,60.32381)"
+ id="g4827">
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path4829"
+ style="fill:#f9f9f9;fill-opacity:0.10655738;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path4831"
+ style="fill:url(#radialGradient4837);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path4833"
+ style="fill:url(#radialGradient4839);fill-opacity:1.0000000;stroke:url(#radialGradient4841);stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.399567,0.000000,0.000000,0.534837,298.7849,19.29063)"
+ d="M 300.36342 168.64339 A 2.9426789 2.9426789 0 1 1 294.47807,168.64339 A 2.9426789 2.9426789 0 1 1 300.36342 168.64339 z"
+ sodipodi:ry="2.9426789"
+ sodipodi:rx="2.9426789"
+ sodipodi:cy="168.64339"
+ sodipodi:cx="297.42075"
+ id="path4835"
+ style="fill:url(#radialGradient4843);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ </g>
+ <g
+ transform="matrix(0.372584,0.000000,0.000000,0.424520,-88.38566,67.61231)"
+ id="g4845">
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path4848"
+ style="fill:#f9f9f9;fill-opacity:0.10655738;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path4850"
+ style="fill:url(#radialGradient4856);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path4852"
+ style="fill:url(#radialGradient4858);fill-opacity:1.0000000;stroke:url(#radialGradient4860);stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.399567,0.000000,0.000000,0.534837,298.7849,19.29063)"
+ d="M 300.36342 168.64339 A 2.9426789 2.9426789 0 1 1 294.47807,168.64339 A 2.9426789 2.9426789 0 1 1 300.36342 168.64339 z"
+ sodipodi:ry="2.9426789"
+ sodipodi:rx="2.9426789"
+ sodipodi:cy="168.64339"
+ sodipodi:cx="297.42075"
+ id="path4854"
+ style="fill:url(#radialGradient4862);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ </g>
+ <g
+ transform="matrix(0.255571,0.000000,0.000000,0.187901,-69.92276,105.2945)"
+ id="g4864">
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path4866"
+ style="fill:#f9f9f9;fill-opacity:0.10655738;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path4868"
+ style="fill:url(#radialGradient4875);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path4871"
+ style="fill:url(#radialGradient4877);fill-opacity:1.0000000;stroke:url(#radialGradient4879);stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.399567,0.000000,0.000000,0.534837,298.7849,19.29063)"
+ d="M 300.36342 168.64339 A 2.9426789 2.9426789 0 1 1 294.47807,168.64339 A 2.9426789 2.9426789 0 1 1 300.36342 168.64339 z"
+ sodipodi:ry="2.9426789"
+ sodipodi:rx="2.9426789"
+ sodipodi:cy="168.64339"
+ sodipodi:cx="297.42075"
+ id="path4873"
+ style="fill:url(#radialGradient4881);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ </g>
+ <g
+ transform="matrix(0.255571,0.000000,0.000000,0.187901,-86.13113,30.14662)"
+ id="g4883">
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path4885"
+ style="fill:#f9f9f9;fill-opacity:0.10655738;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path4887"
+ style="fill:url(#radialGradient4893);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path4889"
+ style="fill:url(#radialGradient4895);fill-opacity:1.0000000;stroke:url(#radialGradient4897);stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.399567,0.000000,0.000000,0.534837,298.7849,19.29063)"
+ d="M 300.36342 168.64339 A 2.9426789 2.9426789 0 1 1 294.47807,168.64339 A 2.9426789 2.9426789 0 1 1 300.36342 168.64339 z"
+ sodipodi:ry="2.9426789"
+ sodipodi:rx="2.9426789"
+ sodipodi:cy="168.64339"
+ sodipodi:cx="297.42075"
+ id="path4891"
+ style="fill:url(#radialGradient4899);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ </g>
+ <g
+ transform="matrix(0.255571,0.000000,0.000000,0.187901,0.804684,-16.79450)"
+ id="g4901">
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path4903"
+ style="fill:#f9f9f9;fill-opacity:0.10655738;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path4906"
+ style="fill:url(#radialGradient4912);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.395596,0.000000,0.000000,0.385265,301.5694,45.18783)"
+ d="M 309.19146 173.68797 A 15.554159 15.554159 0 1 1 278.08314,173.68797 A 15.554159 15.554159 0 1 1 309.19146 173.68797 z"
+ sodipodi:ry="15.554159"
+ sodipodi:rx="15.554159"
+ sodipodi:cy="173.68797"
+ sodipodi:cx="293.63730"
+ id="path4908"
+ style="fill:url(#radialGradient4914);fill-opacity:1.0000000;stroke:url(#radialGradient4916);stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.399567,0.000000,0.000000,0.534837,298.7849,19.29063)"
+ d="M 300.36342 168.64339 A 2.9426789 2.9426789 0 1 1 294.47807,168.64339 A 2.9426789 2.9426789 0 1 1 300.36342 168.64339 z"
+ sodipodi:ry="2.9426789"
+ sodipodi:rx="2.9426789"
+ sodipodi:cy="168.64339"
+ sodipodi:cx="297.42075"
+ id="path4910"
+ style="fill:url(#radialGradient4918);fill-opacity:1.0000000;stroke:none"
+ sodipodi:type="arc" />
+ </g>
+ </g>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html>
+ <head>
+ <title>babl graphics</title>
+
+ <link rel="icon" href="babl-16x16.png" type="image/png" />
+ <link rel="shortcut icon" href="babl-16x16.png" type="image/png" />
+
+ <style type='text/css'>
+ @import url(../babl.css);
+ </style>
+ </head>
+ <body>
+
+ <div class='toc'>
+ <ul>
+ <li><a href='../index.html'>Return to babl manual</a></li>
+ </ul>
+ </div>
+
+ <a name='Top'></a>
+ <div class='paper'>
+ <div class='content'>
+
+ <h1>Babl graphics</h1>
+
+ <p>The babl logo is a fish, the inspiration for babl itself, and it's
+ mascot is the original babel fish of Douglas Adams.</p>
+
+ <h2>Icons</h2>
+
+ <h3>16x16 pixels</h3>
+ <img src='babl-16x16.png' alt='babl-16x16.png' /><br />
+ <a href='babl-16x16.svg'>Inkscape SVG source</a>
+
+ <h3>48x48 pixels</h3>
+ <img src='babl-48x48.png' alt='babl-48x48.png' /><br />
+ <a href='babl-48x48.svg'>Inkscape SVG source</a>
+
+ <h4>A4 poster</h3>
+ <img style='background-color: #405070;border:1px solid #555;' src='babl-a4poster.png' alt='babl-a4poster.png' /><br />
+ <a href='babl-a4poster.svg'>Inkscape SVG source</a>
+
+ <img class='BablFish' src='babl-48x48.png'/>
+ </div>
+ </div>
+ <div class='graphic'>
+ <div class='print'>
+ <img src='babl-a4poster.png' alt=' '/>
+ </div>
+ </div>
+
+ </body>
+</html>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<!-- The babl webpage is partially autogenerated
+-->
+<html>
+ <head>
+ <title>babl-@BABL_VERSION@</title>
+ <meta http-equiv="content-type" content="text/html;charset=utf-8" />
+
+ <link rel="icon" href="graphics/babl-16x16.png" type="image/png" />
+ <link rel="shortcut icon" href="graphics/babl-16x16.png" type="image/png" />
+
+ <style type='text/css'>
+ @import url(babl.css);
+ </style>
+
+ <script type='text/javascript'>
+ function hide(id)
+ {
+ (document.getElementById(id)).style.display = "none";
+ }
+ function show(id)
+ {
+ (document.getElementById(id)).style.display = "block";
+ }
+ function get_visible (id)
+ {
+ var element = document.getElementById(id);
+
+ if (element &&
+ element.style.display &&
+ element.style.display != "none")
+ return true;
+ return false;
+ }
+ function set_visible (id, visible)
+ {
+ var element = document.getElementById(id);
+
+ if (element)
+ {
+ if (visible)
+ element.style.display = "block";
+ else
+ element.style.display = "none";
+ }
+ }
+ function toggle_visible (id)
+ {
+ if (get_visible(id))
+ set_visible(id, false);
+ else
+ set_visible(id,true);
+ }
+ </script>
+ </head>
+ <body>
+
+ <div class='print'>
+ <div class='print_title'>
+ <h1>Babl-@BABL_VERSION@</h1>
+ </div>
+ </div>
+
+ <div class='toc'>
+ <div class='print'>
+ <h3>Contents</h3>
+ </div>
+ <ul>
+ <li><a href='#Babl'>Babl</a></li>
+ <li><a href='#Features'> Features</a></li>
+ <li><a href='#Download'>Download</a></li>
+ <!--<li><a href='#Background'>Background</a></li>-->
+ <li><a href='#Documentation'>Documentation</a></li>
+ <li><a href='#Usage'> Usage</a></li>
+ <li><a href='#Vocabulary'> Vocabulary</a></li>
+ <!--<li><a href='#Data-types'> Data types</a></li>
+ <li><a href='#Color-models'> Color models</a></li>
+ <li><a href='#Pixel-formats'> Pixel formats</a></li>-->
+
+ <li><a href='#Shortcut_coverage'> Shortcut Coverage</a></li>
+ <li><a href='#Environment'> Environment</a></li>
+ <li><a href='#Extending'> Extending</a></li>
+ <li><a href='#DirectoryOverview'> Directory Overview</a></li>
+ <!--<li><a href='#ColorManagement'>Color Management</a></li>-->
+ <li><a href='#TODO'>Todo</a></li>
+ <li><a href='#Copyright'>Copyright</a></li>
+ <li><a href='#Authors'> Authors</a></li>
+ </ul>
+ </div>
+
+<div><a name='Babl'></a></div>
+ <div class='paper'>
+ <div class='content'>
+
+ <!--<h1>Babl</h1>-->
+ <p>
+ <br/> <!-- FIXME: should be in CSS -->
+ <strong>babl is a dynamic, any to any, pixel format translation library</strong>.
+ <br/>
+ </p>
+
+ <p>It allows converting between different methods of storing <a href='http://en.wikipedia.org/wiki/Pixel'>pixels</a> known as <em>pixel formats</em> that have
+ with different bitdepths and other data representations, color models and
+ component permutations.</p>
+
+ <p> A vocabulary to formulate new <em>pixel formats</em> from existing
+ primitives is provided as well as the framework to add new color models and
+ data types.
+ </p>
+
+
+
+ <!--<a name='Background'></a>
+ <h2>Background</h2>
+ <p> When creating various libraries and small tools that deal with
+ computer graphics I have often created functions for converting
+ raster images between different representations.
+ </p>
+
+ <p>Libraries to help with such conversions already do exist, but no
+ extendable candidates have surfaced in my searches.
+ </p>
+
+ <p>The vocabulary developed in babl will most likely be part of
+ <a href='http://www.gegl.org/'>GEGL</a>'s vocabulary to describe image
+ buffers.
+ </p>-->
+
+
+ <a name='Features'></a>
+ <h2>Features</h2>
+
+ <ul>
+ <li>Fast.</li>
+ <li>Accurate.</li>
+ <li>Stable, small API.</li>
+ <li>Self profiling and optimizing.</li>
+ <li>ANSI C, works on win32, linux and mac, 32bit and 64bit systems.</li>
+ <li>Extendable with new formats, color models, components
+ and datatypes.</li>
+ <li>Reference 64bit floating point conversions for datatypes and color models.</li>
+ </ul>
+
+ <p><a href='http://www.gegl.org/'>GEGL</a> through <a
+ href='http://www.gegl.org/api.html#GeglBuffer'>GeglBuffer</a> provides
+ tiled buffers with on disk storage as well as linear buffers with accessor
+ functions for efficient data access transparently using babl fishes for
+ translation to the desired pixel formats.</p>
+
+ <a name='Download'></a>
+ <h2>Download</h2>
+
+ <p>The latest versioned development version of babl can be found in
+ <a href='ftp://ftp.gtk.org/pub/babl/'>ftp://ftp.gtk.org/pub/babl/</a>.
+ </p>
+
+ <p>Babl uses git. The main repository is hosted by GNOME.
+ It can be <a href='http://git.gnome.org/cgit/babl'>browsed online</a> and cloned with:
+ </p>
+ <pre>git clone git://git.gnome.org/babl</pre>
+
+ <p>The following is a list of the major changes that have gone into
+ each babl release. If there are significant improvements to babl when
+ a GEGL release is done a babl release is most often put out just prior
+ to the GEGL release.</p>
+
+ <!--NEWS-->
+ For more news see git log.
+
+ <a name='Documentation'></a>
+ <h2>Documentation</h2>
+ <p>When using BablFishes to do your conversions, you request a fish to
+ convert between two formats, and an optimal fish to babls capability is
+ provided that you can use to do your conversions. Babl also provides
+ the capability to describe new formats based on a vocabulary of user
+ registered color models and data types.
+ </p>
+
+ <p>Babl provides a base vocabulary in BablBase and some extensions
+ that are thought to be generally useful.</p>
+
+ <p>When performing further extensions to the vocabulary of babl, the
+ internal consistency is governed by reference conversions that operate
+ on <em>double</em> (64 bit floating point values). The only color model
+ created during BablCore bootstrap is <em>RGBA</em> (linear light RGB,
+ 0.0 - 1.0, with a linear 0.0 - 1.0 opacity channel) backed by the
+ <em>double</em> datatype. Defined similarily to <a
+ href='http://en.wikipedia.org/wiki/ScRGB_color_space'>scRGB</a> using
+ 64bit floating point.
+ </p>
+
+ <p>If babls conversion isn't fast enough, you can provide
+ your own conversion shortcut between two formats. The registered
+ shortcut might also be used by babl as an intermediate conversion when
+ constructing BablFishes for other conversions.
+ </p>
+
+ <p>Babl extensions are shared objects. If you have already developed
+ some fast conversion functions, wrapping them as babl extensions should
+ not take much time and will speed up babl for other users as well.
+ </p>
+
+ <a name='Usage'></a>
+ <h3>Usage</h3>
+
+ <pre
+><span class='function'>babl_process</span> <span class='paren'>(</span><span class='function'>babl_fish</span> <span class='paren'>(</span>source_format, destination_format<span class='paren'>)</span>,
+ source_buffer, destination_buffer,
+ pixel_count<span class='paren'>);</span></pre>
+
+ <p>The processing operation that babl performs is copying including
+ conversions if needed between linear buffers containing the same count
+ of pixels, with different pixel formats.
+ </p>
+
+ <pre>
+int width = 123, height = 581, pixel_count = width * height;
+
+const Babl *srgb = <span class='function'>babl_format</span> <span class='paren'>(</span><span class='string'>"R'G'B' u8"</span><span class='paren'>)</span>;
+const Babl *lab = <span class='function'>babl_format</span> <span class='paren'>(</span><span class='string'>"CIE Lab float"</span><span class='paren'>)</span>;
+const Babl *srgb_to_lab_fish = <span class='function'>babl_fish</span> <span class='paren'>(</span>srgb, lab);
+
+float *lab_buffer;
+unsigned char *srgb_buffer;
+
+babl_init <span class='paren'>()</span>;
+
+srgb_buffer = malloc (pixel_count * babl_format_get_bytes_per_pixel (srgb));
+lab_buffer = malloc (pixel_count * 3 * sizeof (float));
+
+...... load data into srgb_buffer .......
+
+<span class='function'>babl_process</span> <span class='paren'>(</span>srgb_to_lab_fish, srgb_buffer, lab_buffer, pixel_count<span class='paren'>);</span>
+
+...... do operation in lab space ........
+
+<span class='function'>babl_process</span> <span class='paren'>(</span><span class='function'>babl_fish</span><span class='paren'>(</span>lab, srgb<span class='paren'>)</span>,
+ lab_buffer, srgb_buffer, pixel_count<span class='paren'>);</span>
+
+/* the data has now been transformed back to srgb data */</pre>
+
+ <p>If the existing pixel formats are not sufficient for your conversion
+ needs, new ones can be created on the fly. The constructor
+ will provide the prior created one if duplicates are registered. </p>
+ <pre
+>const Babl *format = <span class='function'>babl_format_new</span> <span class='paren'>(</span><span class='function'>babl_model</span> <span class='paren'>(</span><span class='string'>"R'G'B'"</span><span class='paren'>)</span>,
+ <span class='function'>babl_type</span> <span class='paren'>(</span><span class='string'>"u16"</span><span class='paren'>)</span>,
+ <span class='function'>babl_component</span> <span class='paren'>(</span><span class='string'>"B'"</span><span class='paren'>)</span>,
+ <span class='function'>babl_component</span> <span class='paren'>(</span><span class='string'>"G'"</span><span class='paren'>)</span>,
+ <span class='function'>babl_component</span> <span class='paren'>(</span><span class='string'>"R'"</span><span class='paren'>)</span>,
+ <span class='NULL'>NULL</span><span class='paren'>);</span></pre>
+
+
+<!--
+ <p>Instead of a linear buffer you can an image descriptor which desribes the start of the memory segment, the pitch in bytes between samples, and the rowstride (not used yet,
+ use 0 to indicate unlimited for compatibility with future API.)
+ </p>
+ <pre
+><span class='function'>babl_process</span> <span class='paren'>(</span><span class='function'>babl_fish</span> <span class='paren'>(</span><span class='string'>"srgb"</span>, <span class='string'>"Y'CbCr u8"</span><span class='paren'>)</span>,
+ srgb_buffer,
+ <span class='function'>babl_image</span> <span class='paren'>(</span><span class='function'><span class='string'>"Y'"</span>, luma_buffer, 1, 0,
+ <span class='string'>"Cb"</span>, cb_buffer, 1, 0,
+ <span class='string'>"Cr"</span>, cr_buffer, 1, 0,
+ <span class='NULL'>NULL</span><span class='paren'>)</span>,
+ pixel_count<span class='paren'>);</span>
+</pre>
+-->
+
+
+ <a name='Vocabulary'></a>
+ <h3 style='margin-bottom:0em;'>Vocabulary</h3>
+<!--BablBase-->
+
+<!--
+ <a name='Extensions'></a>
+ <h3>Extensions</h3>
+ <p>
+ At compile, load, and runtime; babl is extendable with:
+ </p>
+ <ul>
+ <li>data types.</li>
+ <li>color models.</li>
+ <li>pixel formats.</li>
+ <li>optimized conversion functions:
+ <dl>
+ <dt>SIMD instructions</dt>
+ <dd>MMX, SSE, Altivec ...</dd>
+ <dt>External libraries</dd>
+ <dd>liboil, hermes, libavcodec, lcms, ...</li>
+ </dl>
+ </li>
+ </ul>-->
+
+ <a name='Shortcut_coverage'></a>
+ <h3>Shortcut Coverage</h3>
+ <p>The diagram shown below visualizes the coverage of current shortcut
+ conversions. Dots indicate a direct conversion is provided for, the height
+ of the bar indicates the number of conversions steps needed in a chain of
+ conversions.
+ A <a href='BablFishPath.html'>DHTML version</a> is also available.
+ </p>
+<pre style='font-size:50%;height:30em;overflow:scroll'>
+<!--BablFishPath-->
+</pre>
+
+ <a name='Environment'></a>
+ <h2>Environment</h2>
+
+ <p>If the environment variable <tt>BABL_STATS</tt> is set containting
+ a html pixel format conversion usage matrix will be written to
+ <tt>/tmp/babl-stats.html</tt>. This allows figuring out which
+ conversions is taking up time during processing, and what shortcuts <a
+ href='#Extending'>extensions</a> might be created or improved to
+ make babl do it's job faster.
+ </p>
+
+ <p>Through the environment variable <tt>BABL_TOLERANCE</tt> you can control
+ a speed/performance trade off that by default is set very low (0.000001)
+ values in the range 0.01-0.1 can provide reasonable preview performance
+ by allowing lower numerical accuracy</p>.
+
+
+ <a name='Extending'></a>
+ <h2>Extending</h2>
+
+ <p>For samples of how the current internal API specification of
+ data types, color models, and conversions look in the <tt><a href='http://git.gnome.org/cgit/babl/tree/extensions'>extensions/</a></tt>
+ directory. The tables in this HTML file is directly generated
+ based on the data registered by BablCore (double and RGBA), BablBase
+ (core datatypes, and RGB models), extensions (CIE Lab, naive CMYK,
+ various shortcut conversions).<!--The API's used are very
+ similar in style to the API's described under the <a href='#Usage'>Usage section</a>.-->
+ </p>
+
+
+ <a name='DirectoryOverview'></a>
+ <h2>Directory Overview</h2>
+<pre><tt>babl-dist-root
+ │
+ ├──babl the babl core
+ │ └──base reference implementations for RGB and Grayscale Color Models,
+ │ 8bit 16bit, and 32bit and 64bit floating point.
+ ├──extensions CIE-Lab color model as well as a naive-CMYK color model.
+ │ also contains a random cribbage of old conversion optimized
+ │ code from gggl. Finding more exsisting conversions in third
+ │ part libraries (hermes, lcms?, liboil?) could improve the
+ │ speed of babl.
+ ├──tests tests used to keep babl sane during development.
+ └──docs Documentation/webpage for babl (the document you are reading
+ originated there.</tt></pre>
+
+ <!--
+ <div class='screen'>
+ <p>You can also <a href='source-local.html'>browse the source</a> for
+ the version this website was built. </p>
+ </div>
+ -->
+
+
+ <!--
+ <a name='ColorManagement'></a>
+ <h2>Color Management</h2>
+ <p> Babl is not a color management system, since it doesn't deal with
+ ICC profiles. Babl is designed primarily for internal use when the
+ color space is already known (sRGB, CIE Lab, Luminance or similar).</p>
+
+ <p>
+ It is also possible to register new color models that are managed by a
+ color management system like <em>lcms</em>, take a look at the <em>lcms-lab</em>
+ extensions for an example.</p>
+ -->
+
+ <a name='TODO'></a>
+<!--TODO-->
+
+ <a name='Copyright'></a>
+ <h2>Copyright</h2>
+
+ <p> Babl is free software; you can redistribute it and/or modify it
+ under the terms of the <a href='COPYING.LESSER'>GNU Lesser General Public
+ License</a> as published by the Free Software Foundation; either
+ version 3 of the License, or (at your option) any later version. </p>
+
+ <a name='Authors'></a>
+ <h3>Authors</h3>
+
+<!--AUTHORS-->
+
+ <a href='graphics/index.html'><img class='BablFish' alt='/babl-@BABL_VERSION@' title='babl-@BABL_VERSION@' src='graphics/babl-48x48.png'/></a>
+ </div>
+ </div>
+ <div class='graphic'>
+ <div class='print'>
+ <img src='graphics/babl-a4poster.png' alt=' '/>
+ </div>
+ </div>
+
+ </body>
+</html>
--- /dev/null
+#!/usr/bin/env ruby
+
+require 'parsedate'
+
+class ChangeLogEntry
+ attr_accessor :category, :time, :title, :content, :author
+
+ def initialize category = 'foo',
+ time = Time.now,
+ title = 'no title',
+ author = 'no author set',
+ content = ''
+ @category = category
+ @time = time
+ @title = title
+ @content = content
+ @author = author
+ end
+
+ def to_s
+ @title+@content
+ end
+
+ def to_rss
+ str = "<item>\n"
+ str += "<title>#{author}, #{time.strftime '%y%m%d'}</title>\n"
+ str += "<pubDate>#{time.to_s}</pubDate>\n"
+ str += "<author>#{time.to_s}</author>\n"
+ str += "<description>#{content}</description>\n"
+ str += "</item>\n"
+ end
+end
+
+$newest = Time.now
+
+class ChangeLog
+ attr_accessor :entries
+ attr_reader :title
+
+ def initialize
+ @entries = Array.new
+ end
+
+ def load file, title=File.basename(file)
+ @title = title
+
+ entry = nil
+
+ File.open file do
+ |file|
+ file.each_line do
+ |line|
+ if line =~ /^(\d\d\d\d-\d\d-\d\d.*) (.*) (.*)/
+ @entries.push entry unless entry == nil
+ date = ParseDate.parsedate $1
+ time = Time.mktime date[0], date[1], date[2], date[3]
+
+ entry = ChangeLogEntry.new(title, time, line, $2)
+ else
+ entry.content += line unless entry == nil
+ end
+ end
+
+ @entries.push entry unless entry == nil
+ end
+ end
+
+ def sort!
+ @entries.reverse!
+ @entries = @entries.sort { |x,y| (x.time <=> y.time)* -1 }
+ end
+
+ def to_s
+ previous_category = 'foo'
+ str = "A combination of ChangeLogs related to the aluminium platform"
+
+ @entries.each do
+ |entry|
+ if entry.category != previous_category
+ str+="\n\n__"+entry.category + "_"*(78-entry.category.length) + "\n\n"
+ previous_category = entry.category
+ end
+ str += entry.to_s
+ end
+ str
+ end
+
+ def to_rss
+ previous_category = 'foo'
+ str = "<?xml version='1.0'?>\n"
+ str += "<?xml-stylesheet type='text/xsl' href='rss.xsl'?>\n"
+ str += "<rss version='2.0'>\n"
+
+ str += "<channel>\n"
+
+ str += "<title>bazfoo</title>\n"
+ str += "<link></link>\n"
+
+ @entries.each do
+ |entry|
+ str += entry.to_rss
+ end
+
+ str += "</channel>\n"
+ str += "</rss>\n"
+
+ str
+ end
+end
+
+changelog = ChangeLog.new
+changelog.load ARGV[0]
+#changelog.load 'path to another changelog', 'name'
+
+changelog.sort!
+
+puts changelog.to_rss
--- /dev/null
+#!/bin/sh
+#
+# Utility script to merge an xml snippet from one file into a document.
+#
+# To insert the file foo.inc into bar.xml,
+# after the first line containing the marker <!--foo--> enter
+#
+# xml_insert.sh bar.xml foo foo.inc
+#
+# 2005 © Øyvind Kolås
+#
+# FIXME: add argument checking / error handling
+
+: ${AWK="awk"}
+: ${ECHO="echo"}
+: ${MKDIR="mkdir"}
+: ${SED="sed"}
+: ${Xsed="$SED -e 1s/^X//"}
+
+# Global variables:
+EXIT_SUCCESS=0
+EXIT_FAILURE=1
+
+dirname="s,/[[^/]]*$,,"
+basename="s,^.*/,,"
+
+# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh
+# is ksh but when the shell is invoked as "sh" and the current value of
+# the _XPG environment variable is not equal to 1 (one), the special
+# positional parameter $0, within a function call, is the name of the
+# function.
+progpath="$0"
+
+# The name of this program:
+# In the unlikely event $progname began with a '-', it would play havoc with
+# func_echo (imagine progname=-n), so we prepend ./ in that case:
+progname=`$ECHO "X$progpath" | $Xsed -e "$basename" -e 's,^-,./-,'`
+
+# func_error arg...
+# Echo program name prefixed message to standard error.
+func_error ()
+{
+ $ECHO "$progname: "${1+"$@"} 1>&2
+}
+
+# func_fatal_error arg...
+# Echo program name prefixed message to standard error, and exit.
+func_fatal_error ()
+{
+ func_error ${1+"$@"}
+ exit $EXIT_FAILURE
+}
+
+# func_mktempdir [string]
+# Make a temporary directory that won't clash with other running
+# processes, and avoids race conditions if possible. If
+# given, STRING is the basename for that directory.
+func_mktempdir ()
+{
+ my_template="${TMPDIR-/tmp}/${1-$progname}"
+
+ if test "$opt_dry_run" = ":"; then
+ # Return a directory name, but don't create it in dry-run mode
+ my_tmpdir="${my_template}-$$"
+ else
+
+ # If mktemp works, use that first and foremost
+ my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null`
+
+ if test ! -d "$my_tmpdir"; then
+ # Failing that, at least try and use $RANDOM to avoid a race
+ my_tmpdir="${my_template}-${RANDOM-0}$$"
+
+ save_mktempdir_umask=`umask`
+ umask 0077
+ $MKDIR "$my_tmpdir"
+ umask $save_mktempdir_umask
+ fi
+
+ # If we're not in dry-run mode, bomb out on failure
+ test -d "$my_tmpdir" || \
+ func_fatal_error "cannot create temporary directory \`$my_tmpdir'"
+ fi
+
+ $ECHO "X$my_tmpdir" | $Xsed
+}
+
+tmp_dir="`func_mktempdir`"
+tmp_file="$tmp_dir/one"
+
+cp $1 $tmp_file
+
+numlines=`wc -l $tmp_file | $AWK '{print $1;}'`
+splitno=`$AWK "/<\!--$2-->/ { print NR; exit 0; }" $tmp_file`
+tailno=`expr $numlines - $splitno`
+
+head -$splitno $tmp_file > $1
+cat $3 >> $1
+tail -$tailno $tmp_file >> $1
+
+rm -rf $tmp_dir
+
+exit $?
--- /dev/null
+/* babl - dynamically extendable universal pixel conversion library.
+ * Copyright (C) 2005, 2014 Øyvind Kolås.
+ * Copyright (C) 2009, Martin Nordholts
+ * Copyright (C) 2014, Elle Stone
+ *
+ * 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 3 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, see
+ * <http://www.gnu.org/licenses/>.
+ */
+
+#include "config.h"
+#include <math.h>
+#include <string.h>
+
+#include "babl.h"
+#include "extensions/util.h"
+
+#define DEGREES_PER_RADIAN (180 / 3.14159265358979323846)
+#define RADIANS_PER_DEGREE (1 / DEGREES_PER_RADIAN)
+
+#define LAB_EPSILON (216.0 / 24389.0)
+#define LAB_KAPPA (24389.0 / 27.0)
+
+/* The constants below hard-code the D50-adapted sRGB ICC profile
+ * reference white, aka the ICC profile D50 illuminant.
+ *
+ * In a properly ICC profile color-managed application, the profile
+ * illuminant values should be retrieved from the image's
+ * ICC profile's illuminant.
+ *
+ * At present, the ICC profile illuminant is always D50. This might
+ * change when the next version of the ICC specs is released.
+ *
+ * As encoded in an actual V2 or V4 ICC profile,
+ * the illuminant values are hexadecimal-rounded, as are the following
+ * hard-coded D50 ICC profile illuminant values:
+ */
+
+#define D50_WHITE_REF_X 0.964202880
+#define D50_WHITE_REF_Y 1.000000000
+#define D50_WHITE_REF_Z 0.824905400
+
+
+int init (void);
+
+static void types (void);
+static void components (void);
+static void models (void);
+static void conversions (void);
+static void formats (void);
+
+int
+init (void)
+{
+ types ();
+ components ();
+ models ();
+ formats ();
+ conversions ();
+ return 0;
+}
+
+static void
+components (void)
+{
+ babl_component_new ("CIE L", NULL);
+ babl_component_new ("CIE a", "chroma", NULL);
+ babl_component_new ("CIE b", "chroma", NULL);
+ babl_component_new ("CIE C(ab)", "chroma", NULL);
+ babl_component_new ("CIE H(ab)", "chroma", NULL);
+ /* babl_component_new ("CIE X", NULL);
+ babl_component_new ("CIE Y", NULL);
+ babl_component_new ("CIE Z", NULL);*/
+}
+
+static void
+models (void)
+{
+ babl_model_new (
+ "name", "CIE Lab",
+ babl_component ("CIE L"),
+ babl_component ("CIE a"),
+ babl_component ("CIE b"),
+ NULL);
+
+ babl_model_new (
+ "name", "CIE Lab alpha",
+ babl_component ("CIE L"),
+ babl_component ("CIE a"),
+ babl_component ("CIE b"),
+ babl_component ("A"),
+ NULL);
+
+ babl_model_new (
+ "name", "CIE LCH(ab)",
+ babl_component ("CIE L"),
+ babl_component ("CIE C(ab)"),
+ babl_component ("CIE H(ab)"),
+ NULL);
+
+ babl_model_new (
+ "name", "CIE LCH(ab) alpha",
+ babl_component ("CIE L"),
+ babl_component ("CIE C(ab)"),
+ babl_component ("CIE H(ab)"),
+ babl_component ("A"),
+ NULL);
+ /*babl_model_new (
+ "name", "CIE XYZ",
+ babl_component ("CIE X"),
+ babl_component ("CIE Y"),
+ babl_component ("CIE Z"),
+ NULL);*/
+}
+
+static void rgbcie_init (void);
+
+static inline void ab_to_CHab (double a,
+ double b,
+ double *to_C,
+ double *to_H);
+
+static inline void CHab_to_ab (double C,
+ double H,
+ double *to_a,
+ double *to_b);
+
+static inline void RGB_to_XYZ (double R,
+ double G,
+ double B,
+ double *to_X,
+ double *to_Y,
+ double *to_Z);
+
+static inline void XYZ_to_LAB (double X,
+ double Y,
+ double Z,
+ double *to_L,
+ double *to_a,
+ double *to_b
+ );
+
+static inline void LAB_to_XYZ (double L,
+ double a,
+ double b,
+ double *to_X,
+ double *to_Y,
+ double *to_Z
+ );
+
+static inline void XYZ_to_RGB (double X,
+ double Y,
+ double Z,
+ double *to_R,
+ double *to_G,
+ double *to_B);
+
+static long
+rgba_to_lab (char *src,
+ char *dst,
+ long n)
+{
+ while (n--)
+ {
+ double R = ((double *) src)[0];
+ double G = ((double *) src)[1];
+ double B = ((double *) src)[2];
+ double X, Y, Z, L, a, b;
+
+ //convert RGB to XYZ
+ RGB_to_XYZ (R, G, B, &X, &Y, &Z);
+
+ //convert XYZ to Lab
+ XYZ_to_LAB (X, Y, Z, &L, &a, &b);
+
+ ((double *) dst)[0] = L;
+ ((double *) dst)[1] = a;
+ ((double *) dst)[2] = b;
+
+ src += sizeof (double) * 4;
+ dst += sizeof (double) * 3;
+ }
+ return n;
+}
+
+static long
+lab_to_rgba (char *src,
+ char *dst,
+ long n)
+{
+ while (n--)
+ {
+ double L = ((double *) src)[0];
+ double a = ((double *) src)[1];
+ double b = ((double *) src)[2];
+
+ double X, Y, Z, R, G, B;
+
+ //convert Lab to XYZ
+ LAB_to_XYZ (L, a, b, &X, &Y, &Z);
+
+ //convert XYZ to RGB
+ XYZ_to_RGB (X, Y, Z, &R, &G, &B);
+ ((double *) dst)[0] = R;
+ ((double *) dst)[1] = G;
+ ((double *) dst)[2] = B;
+ ((double *) dst)[3] = 1.0;
+
+ src += sizeof (double) * 3;
+ dst += sizeof (double) * 4;
+ }
+ return n;
+}
+
+
+static long
+rgba_to_laba (char *src,
+ char *dst,
+ long n)
+{
+ while (n--)
+ {
+ double R = ((double *) src)[0];
+ double G = ((double *) src)[1];
+ double B = ((double *) src)[2];
+ double alpha = ((double *) src)[3];
+ double X, Y, Z, L, a, b;
+
+ //convert RGB to XYZ
+ RGB_to_XYZ (R, G, B, &X, &Y, &Z);
+
+ //convert XYZ to Lab
+ XYZ_to_LAB (X, Y, Z, &L, &a, &b);
+
+ ((double *) dst)[0] = L;
+ ((double *) dst)[1] = a;
+ ((double *) dst)[2] = b;
+ ((double *) dst)[3] = alpha;
+
+ src += sizeof (double) * 4;
+ dst += sizeof (double) * 4;
+ }
+ return n;
+}
+
+static long
+laba_to_rgba (char *src,
+ char *dst,
+ long n)
+{
+ while (n--)
+ {
+ double L = ((double *) src)[0];
+ double a = ((double *) src)[1];
+ double b = ((double *) src)[2];
+ double alpha = ((double *) src)[3];
+
+ double X, Y, Z, R, G, B;
+
+ //convert Lab to XYZ
+ LAB_to_XYZ (L, a, b, &X, &Y, &Z);
+
+ //convert XYZ to RGB
+ XYZ_to_RGB (X, Y, Z, &R, &G, &B);
+ ((double *) dst)[0] = R;
+ ((double *) dst)[1] = G;
+ ((double *) dst)[2] = B;
+ ((double *) dst)[3] = alpha;
+
+ src += sizeof (double) * 4;
+ dst += sizeof (double) * 4;
+ }
+ return n;
+}
+
+static inline void
+CHab_to_ab (double C,
+ double H,
+ double *to_a,
+ double *to_b)
+{
+ *to_a = cos (H * RADIANS_PER_DEGREE) * C;
+ *to_b = sin (H * RADIANS_PER_DEGREE) * C;
+}
+
+static inline void
+ab_to_CHab (double a,
+ double b,
+ double *to_C,
+ double *to_H)
+{
+ *to_C = sqrt ( (a * a) + (b * b) );
+ *to_H = atan2 (b, a) * DEGREES_PER_RADIAN;
+
+ // Keep H within the range 0-360
+ if (*to_H < 0.0)
+ *to_H += 360;
+
+}
+
+static long
+rgba_to_lchab (char *src,
+ char *dst,
+ long n)
+{
+ while (n--)
+ {
+ double R = ((double *) src)[0];
+ double G = ((double *) src)[1];
+ double B = ((double *) src)[2];
+ double X, Y, Z, L, a, b, C, H;
+
+ //convert RGB to XYZ
+ RGB_to_XYZ (R, G, B, &X, &Y, &Z);
+
+ //convert XYZ to Lab
+ XYZ_to_LAB (X, Y, Z, &L, &a, &b);
+
+ //convert Lab to LCH(ab)
+ ab_to_CHab (a, b, &C, &H);
+
+ ((double *) dst)[0] = L;
+ ((double *) dst)[1] = C;
+ ((double *) dst)[2] = H;
+
+ src += sizeof (double) * 4;
+ dst += sizeof (double) * 3;
+ }
+ return n;
+}
+
+static long
+lchab_to_rgba (char *src,
+ char *dst,
+ long n)
+{
+ while (n--)
+ {
+ double L = ((double *) src)[0];
+ double C = ((double *) src)[1];
+ double H = ((double *) src)[2];
+ double a, b, X, Y, Z, R, G, B;
+
+ //Convert LCH(ab) to Lab
+ CHab_to_ab (C, H, &a, &b);
+
+ //Convert LAB to XYZ
+ LAB_to_XYZ (L, a, b, &X, &Y, &Z);
+
+ //Convert XYZ to RGB
+ XYZ_to_RGB (X, Y, Z, &R, &G, &B);
+
+ ((double *) dst)[0] = R;
+ ((double *) dst)[1] = G;
+ ((double *) dst)[2] = B;
+ ((double *) dst)[3] = 1.0;
+
+ src += sizeof (double) * 3;
+ dst += sizeof (double) * 4;
+ }
+ return n;
+}
+
+
+static long
+rgba_to_lchaba (char *src,
+ char *dst,
+ long n)
+{
+ while (n--)
+ {
+ double R = ((double *) src)[0];
+ double G = ((double *) src)[1];
+ double B = ((double *) src)[2];
+ double alpha = ((double *) src)[3];
+ double X, Y, Z, L, a, b, C, H;
+
+ //convert RGB to XYZ
+ RGB_to_XYZ (R, G, B, &X, &Y, &Z);
+
+ //convert XYZ to Lab
+ XYZ_to_LAB (X, Y, Z, &L, &a, &b);
+
+ //convert Lab to LCH(ab)
+ ab_to_CHab (a, b, &C, &H);
+
+ ((double *) dst)[0] = L;
+ ((double *) dst)[1] = C;
+ ((double *) dst)[2] = H;
+ ((double *) dst)[3] = alpha;
+
+ src += sizeof (double) * 4;
+ dst += sizeof (double) * 4;
+ }
+ return n;
+}
+
+static long
+lchaba_to_rgba (char *src,
+ char *dst,
+ long n)
+{
+ while (n--)
+ {
+ double L = ((double *) src)[0];
+ double C = ((double *) src)[1];
+ double H = ((double *) src)[2];
+ double alpha = ((double *) src)[3];
+ double a, b, X, Y, Z, R, G, B;
+
+ //Convert LCH(ab) to Lab
+ CHab_to_ab (C, H, &a, &b);
+
+ //Convert Lab to XYZ
+ LAB_to_XYZ (L, a, b, &X, &Y, &Z);
+
+ //Convert XYZ to RGB
+ XYZ_to_RGB (X, Y, Z, &R, &G, &B);
+
+ ((double *) dst)[0] = R;
+ ((double *) dst)[1] = G;
+ ((double *) dst)[2] = B;
+ ((double *) dst)[3] = alpha;
+
+ src += sizeof (double) * 4;
+ dst += sizeof (double) * 4;
+ }
+ return n;
+}
+
+static inline float
+cubef (float f)
+{
+ return f * f * f;
+}
+
+static long
+Yaf_to_Laf (float *src,
+ float *dst,
+ long samples)
+{
+ long n = samples;
+
+ while (n--)
+ {
+ float yr = src[0];
+ float a = src[1];
+ float L = yr > LAB_EPSILON ? 116.0 * cbrtf (yr) - 16 : LAB_KAPPA * yr;
+
+ dst[0] = L;
+ dst[1] = a;
+
+ src += 2;
+ dst += 2;
+ }
+
+ return samples;
+}
+
+static long
+rgbf_to_Labf (float *src,
+ float *dst,
+ long samples)
+{
+ long n = samples;
+
+ while (n--)
+ {
+ float r = src[0];
+ float g = src[1];
+ float b = src[2];
+
+ float xr = 0.43603516f / D50_WHITE_REF_X * r + 0.38511658f / D50_WHITE_REF_X * g + 0.14305115f / D50_WHITE_REF_X * b;
+ float yr = 0.22248840f / D50_WHITE_REF_Y * r + 0.71690369f / D50_WHITE_REF_Y * g + 0.06060791f / D50_WHITE_REF_Y * b;
+ float zr = 0.01391602f / D50_WHITE_REF_Z * r + 0.09706116f / D50_WHITE_REF_Z * g + 0.71392822f / D50_WHITE_REF_Z * b;
+
+ float fx = xr > LAB_EPSILON ? cbrtf (xr) : (LAB_KAPPA * xr + 16.0f) / 116.0f;
+ float fy = yr > LAB_EPSILON ? cbrtf (yr) : (LAB_KAPPA * yr + 16.0f) / 116.0f;
+ float fz = zr > LAB_EPSILON ? cbrtf (zr) : (LAB_KAPPA * zr + 16.0f) / 116.0f;
+
+ float L = 116.0f * fy - 16.0f;
+ float A = 500.0f * (fx - fy);
+ float B = 200.0f * (fy - fz);
+
+ dst[0] = L;
+ dst[1] = A;
+ dst[2] = B;
+
+ src += 3;
+ dst += 3;
+ }
+
+ return samples;
+}
+
+static long
+rgbaf_to_Labaf (float *src,
+ float *dst,
+ long samples)
+{
+ long n = samples;
+
+ while (n--)
+ {
+ float r = src[0];
+ float g = src[1];
+ float b = src[2];
+ float a = src[3];
+
+ float xr = 0.43603516f / D50_WHITE_REF_X * r + 0.38511658f / D50_WHITE_REF_X * g + 0.14305115f / D50_WHITE_REF_X * b;
+ float yr = 0.22248840f / D50_WHITE_REF_Y * r + 0.71690369f / D50_WHITE_REF_Y * g + 0.06060791f / D50_WHITE_REF_Y * b;
+ float zr = 0.01391602f / D50_WHITE_REF_Z * r + 0.09706116f / D50_WHITE_REF_Z * g + 0.71392822f / D50_WHITE_REF_Z * b;
+
+ float fx = xr > LAB_EPSILON ? cbrtf (xr) : (LAB_KAPPA * xr + 16.0f) / 116.0f;
+ float fy = yr > LAB_EPSILON ? cbrtf (yr) : (LAB_KAPPA * yr + 16.0f) / 116.0f;
+ float fz = zr > LAB_EPSILON ? cbrtf (zr) : (LAB_KAPPA * zr + 16.0f) / 116.0f;
+
+ float L = 116.0f * fy - 16.0f;
+ float A = 500.0f * (fx - fy);
+ float B = 200.0f * (fy - fz);
+
+ dst[0] = L;
+ dst[1] = A;
+ dst[2] = B;
+ dst[3] = a;
+
+ src += 4;
+ dst += 4;
+ }
+
+ return samples;
+}
+
+static long
+Labf_to_rgbf (float *src,
+ float *dst,
+ long samples)
+{
+ long n = samples;
+
+ while (n--)
+ {
+ float L = src[0];
+ float A = src[1];
+ float B = src[2];
+
+ float fy = (L + 16.0f) / 116.0f;
+ float fx = fy + A / 500.0f;
+ float fz = fy - B / 200.0f;
+
+ float yr = L > LAB_KAPPA * LAB_EPSILON ? cubef (fy) : L / LAB_KAPPA;
+ float xr = cubef (fx) > LAB_EPSILON ? cubef (fx) : (fx * 116.0f - 16.0f) / LAB_KAPPA;
+ float zr = cubef (fz) > LAB_EPSILON ? cubef (fz) : (fz * 116.0f - 16.0f) / LAB_KAPPA;
+
+ float r = 3.134274799724f * D50_WHITE_REF_X * xr -1.617275708956f * D50_WHITE_REF_Y * yr -0.490724283042f * D50_WHITE_REF_Z * zr;
+ float g = -0.978795575994f * D50_WHITE_REF_X * xr +1.916161689117f * D50_WHITE_REF_Y * yr +0.033453331711f * D50_WHITE_REF_Z * zr;
+ float b = 0.071976988401f * D50_WHITE_REF_X * xr -0.228984974402f * D50_WHITE_REF_Y * yr +1.405718224383f * D50_WHITE_REF_Z * zr;
+
+ dst[0] = r;
+ dst[1] = g;
+ dst[2] = b;
+
+ src += 3;
+ dst += 3;
+ }
+
+ return samples;
+}
+
+static long
+Labaf_to_rgbaf (float *src,
+ float *dst,
+ long samples)
+{
+ long n = samples;
+
+ while (n--)
+ {
+ float L = src[0];
+ float A = src[1];
+ float B = src[2];
+ float a = src[3];
+
+ float fy = (L + 16.0f) / 116.0f;
+ float fx = fy + A / 500.0f;
+ float fz = fy - B / 200.0f;
+
+ float yr = L > LAB_KAPPA * LAB_EPSILON ? cubef (fy) : L / LAB_KAPPA;
+ float xr = cubef (fx) > LAB_EPSILON ? cubef (fx) : (fx * 116.0f - 16.0f) / LAB_KAPPA;
+ float zr = cubef (fz) > LAB_EPSILON ? cubef (fz) : (fz * 116.0f - 16.0f) / LAB_KAPPA;
+
+ float r = 3.134274799724f * D50_WHITE_REF_X * xr -1.617275708956f * D50_WHITE_REF_Y * yr -0.490724283042f * D50_WHITE_REF_Z * zr;
+ float g = -0.978795575994f * D50_WHITE_REF_X * xr +1.916161689117f * D50_WHITE_REF_Y * yr +0.033453331711f * D50_WHITE_REF_Z * zr;
+ float b = 0.071976988401f * D50_WHITE_REF_X * xr -0.228984974402f * D50_WHITE_REF_Y * yr +1.405718224383f * D50_WHITE_REF_Z * zr;
+
+ dst[0] = r;
+ dst[1] = g;
+ dst[2] = b;
+ dst[3] = a;
+
+ src += 4;
+ dst += 4;
+ }
+
+ return samples;
+}
+
+static void
+conversions (void)
+{
+ babl_conversion_new (
+ babl_model ("RGBA"),
+ babl_model ("CIE Lab"),
+ "linear", rgba_to_lab,
+ NULL
+ );
+ babl_conversion_new (
+ babl_model ("CIE Lab"),
+ babl_model ("RGBA"),
+ "linear", lab_to_rgba,
+ NULL
+ );
+ babl_conversion_new (
+ babl_model ("RGBA"),
+ babl_model ("CIE Lab alpha"),
+ "linear", rgba_to_laba,
+ NULL
+ );
+ babl_conversion_new (
+ babl_model ("CIE Lab alpha"),
+ babl_model ("RGBA"),
+ "linear", laba_to_rgba,
+ NULL
+ );
+ babl_conversion_new (
+ babl_format ("RGB float"),
+ babl_format ("CIE Lab float"),
+ "linear", rgbf_to_Labf,
+ NULL
+ );
+ babl_conversion_new (
+ babl_format ("CIE Lab float"),
+ babl_format ("RGB float"),
+ "linear", Labf_to_rgbf,
+ NULL
+ );
+ babl_conversion_new (
+ babl_format ("RGBA float"),
+ babl_format ("CIE Lab alpha float"),
+ "linear", rgbaf_to_Labaf,
+ NULL
+ );
+ babl_conversion_new (
+ babl_format ("CIE Lab alpha float"),
+ babl_format ("RGBA float"),
+ "linear", Labaf_to_rgbaf,
+ NULL
+ );
+ babl_conversion_new (
+ babl_format ("YA float"),
+ babl_format ("CIE L alpha float"),
+ "linear", Yaf_to_Laf,
+ NULL
+ );
+ babl_conversion_new (
+ babl_model ("RGBA"),
+ babl_model ("CIE LCH(ab)"),
+ "linear", rgba_to_lchab,
+ NULL
+ );
+ babl_conversion_new (
+ babl_model ("CIE LCH(ab)"),
+ babl_model ("RGBA"),
+ "linear", lchab_to_rgba,
+ NULL
+ );
+ babl_conversion_new (
+ babl_model ("RGBA"),
+ babl_model ("CIE LCH(ab) alpha"),
+ "linear", rgba_to_lchaba,
+ NULL
+ );
+ babl_conversion_new (
+ babl_model ("CIE LCH(ab) alpha"),
+ babl_model ("RGBA"),
+ "linear", lchaba_to_rgba,
+ NULL
+ );
+ /*babl_conversion_new (
+ babl_model ("RGBA"),
+ babl_model ("CIE XYZ"),
+ "linear", RGB_to_XYZ,
+ NULL
+ );
+ babl_conversion_new (
+ babl_model ("CIE XYZ"),
+ babl_model ("RGBA"),
+ "linear", XYZ_to_RGB,
+ NULL
+ );*/
+
+ rgbcie_init ();
+}
+
+static void
+formats (void)
+{
+ babl_format_new (
+ "name", "CIE Lab float",
+ babl_model ("CIE Lab"),
+
+ babl_type ("float"),
+ babl_component ("CIE L"),
+ babl_component ("CIE a"),
+ babl_component ("CIE b"),
+ NULL);
+
+ /*babl_format_new (
+ "name", "CIE XYZ float",
+ babl_model ("CIE XYZ"),
+
+ babl_type ("float"),
+ babl_component ("CIE X"),
+ babl_component ("CIE Y"),
+ babl_component ("CIE Z"),
+ NULL);*/
+
+ babl_format_new (
+ "name", "CIE Lab alpha float",
+ babl_model ("CIE Lab alpha"),
+
+ babl_type ("float"),
+ babl_component ("CIE L"),
+ babl_component ("CIE a"),
+ babl_component ("CIE b"),
+ babl_component ("A"),
+ NULL);
+
+ babl_format_new (
+ "name", "CIE L alpha float",
+ babl_model ("CIE Lab alpha"),
+ babl_type ("float"),
+ babl_component ("CIE L"),
+ babl_component ("A"),
+ NULL);
+
+ babl_format_new (
+ "name", "CIE Lab u8",
+ babl_model ("CIE Lab"),
+
+ babl_type ("CIE u8 L"),
+ babl_component ("CIE L"),
+ babl_type ("CIE u8 ab"),
+ babl_component ("CIE a"),
+ babl_type ("CIE u8 ab"),
+ babl_component ("CIE b"),
+ NULL);
+
+ babl_format_new (
+ "name", "CIE Lab u16",
+ babl_model ("CIE Lab"),
+
+ babl_type ("CIE u16 L"),
+ babl_component ("CIE L"),
+ babl_type ("CIE u16 ab"),
+ babl_component ("CIE a"),
+ babl_type ("CIE u16 ab"),
+ babl_component ("CIE b"),
+ NULL);
+
+
+ babl_format_new (
+ "name", "CIE LCH(ab) float",
+ babl_model ("CIE LCH(ab)"),
+
+ babl_type ("float"),
+ babl_component ("CIE L"),
+ babl_component ("CIE C(ab)"),
+ babl_component ("CIE H(ab)"),
+ NULL);
+
+ babl_format_new (
+ "name", "CIE LCH(ab) alpha float",
+ babl_model ("CIE LCH(ab) alpha"),
+
+ babl_type ("float"),
+ babl_component ("CIE L"),
+ babl_component ("CIE C(ab)"),
+ babl_component ("CIE H(ab)"),
+ babl_component ("A"),
+ NULL);
+}
+
+
+static inline long
+convert_double_u8_scaled (double min_val,
+ double max_val,
+ unsigned char min,
+ unsigned char max,
+ char *src,
+ char *dst,
+ int src_pitch,
+ int dst_pitch,
+ long n)
+{
+ while (n--)
+ {
+ double dval = *(double *) src;
+ unsigned char u8val;
+
+ if (dval < min_val)
+ u8val = min;
+ else if (dval > max_val)
+ u8val = max;
+ else
+ u8val = rint ((dval - min_val) / (max_val - min_val) * (max - min) + min);
+
+ *(unsigned char *) dst = u8val;
+ src += src_pitch;
+ dst += dst_pitch;
+ }
+ return n;
+}
+
+static inline long
+convert_u8_double_scaled (double min_val,
+ double max_val,
+ unsigned char min,
+ unsigned char max,
+ char *src,
+ char *dst,
+ int src_pitch,
+ int dst_pitch,
+ long n)
+{
+ while (n--)
+ {
+ int u8val = *(unsigned char *) src;
+ double dval;
+
+ if (u8val < min)
+ dval = min_val;
+ else if (u8val > max)
+ dval = max_val;
+ else
+ dval = (u8val - min) / (double) (max - min) * (max_val - min_val) + min_val;
+
+ (*(double *) dst) = dval;
+
+ dst += dst_pitch;
+ src += src_pitch;
+ }
+ return n;
+}
+
+#define MAKE_CONVERSIONS(name, min_val, max_val, min, max) \
+ static long \
+ convert_ ## name ## _double (char *src, \
+ char *dst, \
+ int src_pitch, \
+ int dst_pitch, \
+ long n) \
+ { \
+ return convert_u8_double_scaled (min_val, max_val, min, max, \
+ src, dst, src_pitch, dst_pitch, n); \
+ } \
+ static long \
+ convert_double_ ## name (char *src, \
+ char *dst, \
+ int src_pitch, \
+ int dst_pitch, \
+ long n) \
+ { \
+ return convert_double_u8_scaled (min_val, max_val, min, max, \
+ src, dst, src_pitch, dst_pitch, n); \
+ }
+
+/* source ICC.1:2004-10 */
+
+MAKE_CONVERSIONS (u8_l, 0.0, 100.0, 0x00, 0xff)
+MAKE_CONVERSIONS (u8_ab, -128.0, 127.0, 0x00, 0xff)
+
+#undef MAKE_CONVERSIONS
+
+static void
+types_u8 (void)
+{
+ babl_type_new (
+ "CIE u8 L",
+ "integer",
+ "unsigned",
+ "bits", 8,
+ "min_val", 0.0,
+ "max_val", 100.0,
+ NULL
+ );
+
+ babl_type_new (
+ "CIE u8 ab",
+ "integer",
+ "unsigned",
+ "bits", 8,
+ "min_val", -128.0,
+ "max_val", 127.0,
+ NULL
+ );
+
+ babl_conversion_new (
+ babl_type ("CIE u8 L"),
+ babl_type ("double"),
+ "plane", convert_u8_l_double,
+ NULL
+ );
+ babl_conversion_new (
+ babl_type ("double"),
+ babl_type ("CIE u8 L"),
+ "plane", convert_double_u8_l,
+ NULL
+ );
+
+ babl_conversion_new (
+ babl_type ("CIE u8 ab"),
+ babl_type ("double"),
+ "plane", convert_u8_ab_double,
+ NULL
+ );
+ babl_conversion_new (
+ babl_type ("double"),
+ babl_type ("CIE u8 ab"),
+ "plane", convert_double_u8_ab,
+ NULL
+ );
+}
+
+static inline long
+convert_double_u16_scaled (double min_val,
+ double max_val,
+ unsigned short min,
+ unsigned short max,
+ char *src,
+ char *dst,
+ int src_pitch,
+ int dst_pitch,
+ long n)
+{
+ while (n--)
+ {
+ double dval = *(double *) src;
+ unsigned short u16val;
+
+ if (dval < min_val)
+ u16val = min;
+ else if (dval > max_val)
+ u16val = max;
+ else
+ u16val = rint ((dval - min_val) / (max_val - min_val) * (max - min) + min);
+
+ *(unsigned short *) dst = u16val;
+ dst += dst_pitch;
+ src += src_pitch;
+ }
+ return n;
+}
+
+static inline long
+convert_u16_double_scaled (double min_val,
+ double max_val,
+ unsigned short min,
+ unsigned short max,
+ char *src,
+ char *dst,
+ int src_pitch,
+ int dst_pitch,
+ long n)
+{
+ while (n--)
+ {
+ int u16val = *(unsigned short *) src;
+ double dval;
+
+ if (u16val < min)
+ dval = min_val;
+ else if (u16val > max)
+ dval = max_val;
+ else
+ dval = (u16val - min) / (double) (max - min) * (max_val - min_val) + min_val;
+
+ (*(double *) dst) = dval;
+ dst += dst_pitch;
+ src += src_pitch;
+ }
+ return n;
+}
+
+#define MAKE_CONVERSIONS(name, min_val, max_val, min, max) \
+ static long \
+ convert_ ## name ## _double (char *src, \
+ char *dst, \
+ int src_pitch, \
+ int dst_pitch, \
+ long n) \
+ { \
+ return convert_u16_double_scaled (min_val, max_val, min, max, \
+ src, dst, src_pitch, dst_pitch, n); \
+ } \
+ static long \
+ convert_double_ ## name (char *src, \
+ char *dst, \
+ int src_pitch, \
+ int dst_pitch, \
+ long n) \
+ { \
+ return convert_double_u16_scaled (min_val, max_val, min, max, \
+ src, dst, src_pitch, dst_pitch, n); \
+ }
+
+MAKE_CONVERSIONS (u16_l, 0.0, 100.0, 0x00, 0xffff)
+MAKE_CONVERSIONS (u16_ab, -128.0, 127.0, 0x00, 0xffff)
+
+#undef MAKE_CONVERSIONS
+
+static void
+types_u16 (void)
+{
+ babl_type_new (
+ "CIE u16 L",
+ "integer",
+ "unsigned",
+ "bits", 16,
+ "min_val", 0.0,
+ "max_val", 100.0,
+ NULL
+ );
+
+ babl_type_new (
+ "CIE u16 ab",
+ "id", "CIE u8 ab",
+ "integer",
+ "unsigned",
+ "bits", 16,
+ "min_val", -128.0,
+ "max_val", 127.0,
+ NULL
+ );
+
+
+ babl_conversion_new (
+ babl_type ("CIE u16 L"),
+ babl_type ("double"),
+ "plane", convert_u16_l_double,
+ NULL
+ );
+ babl_conversion_new (
+ babl_type ("double"),
+ babl_type ("CIE u16 L"),
+ "plane", convert_double_u16_l,
+ NULL
+ );
+
+ babl_conversion_new (
+ babl_type ("CIE u16 ab"),
+ babl_type ("double"),
+ "plane", convert_u16_ab_double,
+ NULL
+ );
+ babl_conversion_new (
+ babl_type ("double"),
+ babl_type ("CIE u16 ab"),
+ "plane", convert_double_u16_ab,
+ NULL
+ );
+}
+
+static void
+types (void)
+{
+ types_u8 ();
+ types_u16 ();
+}
+
+
+static void
+rgbxyzrgb_init (void)
+{
+}
+
+static inline void
+RGB_to_XYZ (double R,
+ double G,
+ double B,
+ double *to_X,
+ double *to_Y,
+ double *to_Z)
+{
+ double RGBtoXYZ[3][3];
+
+/*
+ * The variables below hard-code the D50-adapted sRGB RGB to XYZ matrix.
+ *
+ * In a properly ICC profile color-managed application, this matrix
+ * is retrieved from the image's ICC profile's RGB colorants.
+ *
+ * */
+ RGBtoXYZ[0][0]= 0.43603516;
+ RGBtoXYZ[0][1]= 0.38511658;
+ RGBtoXYZ[0][2]= 0.14305115;
+ RGBtoXYZ[1][0]= 0.22248840;
+ RGBtoXYZ[1][1]= 0.71690369;
+ RGBtoXYZ[1][2]= 0.06060791;
+ RGBtoXYZ[2][0]= 0.01391602;
+ RGBtoXYZ[2][1]= 0.09706116;
+ RGBtoXYZ[2][2]= 0.71392822;
+
+/* Convert RGB to XYZ */
+ *to_X = RGBtoXYZ[0][0]*R + RGBtoXYZ[0][1]*G + RGBtoXYZ[0][2]*B;
+ *to_Y = RGBtoXYZ[1][0]*R + RGBtoXYZ[1][1]*G + RGBtoXYZ[1][2]*B;
+ *to_Z = RGBtoXYZ[2][0]*R + RGBtoXYZ[2][1]*G + RGBtoXYZ[2][2]*B;
+
+}
+
+static inline void
+XYZ_to_RGB (double X,
+ double Y,
+ double Z,
+ double *to_R,
+ double *to_G,
+ double *to_B)
+{
+ double XYZtoRGB[3][3];
+
+/*
+ * The variables below hard-code the inverse of
+ * the D50-adapted sRGB RGB to XYZ matrix.
+ *
+ * In a properly ICC profile color-managed application,
+ * this matrix is the inverse of the matrix
+ * retrieved from the image's ICC profile's RGB colorants.
+ *
+ */
+ XYZtoRGB[0][0]= 3.134274799724;
+ XYZtoRGB[0][1]= -1.617275708956;
+ XYZtoRGB[0][2]= -0.490724283042;
+ XYZtoRGB[1][0]= -0.978795575994;
+ XYZtoRGB[1][1]= 1.916161689117;
+ XYZtoRGB[1][2]= 0.033453331711;
+ XYZtoRGB[2][0]= 0.071976988401;
+ XYZtoRGB[2][1]= -0.228984974402;
+ XYZtoRGB[2][2]= 1.405718224383;
+
+/* Convert XYZ to RGB */
+ *to_R = XYZtoRGB[0][0] * X + XYZtoRGB[0][1] * Y + XYZtoRGB[0][2] * Z;
+ *to_G = XYZtoRGB[1][0] * X + XYZtoRGB[1][1] * Y + XYZtoRGB[1][2] * Z;
+ *to_B = XYZtoRGB[2][0] * X + XYZtoRGB[2][1] * Y + XYZtoRGB[2][2] * Z;
+}
+
+static inline void
+XYZ_to_LAB (double X,
+ double Y,
+ double Z,
+ double *to_L,
+ double *to_a,
+ double *to_b)
+{
+ double f_x, f_y, f_z;
+
+ double x_r = X / D50_WHITE_REF_X;
+ double y_r = Y / D50_WHITE_REF_Y;
+ double z_r = Z / D50_WHITE_REF_Z;
+
+ if (x_r > LAB_EPSILON) f_x = pow(x_r, 1.0 / 3.0);
+ else ( f_x = ((LAB_KAPPA * x_r) + 16) / 116.0 );
+
+ if (y_r > LAB_EPSILON) f_y = pow(y_r, 1.0 / 3.0);
+ else ( f_y = ((LAB_KAPPA * y_r) + 16) / 116.0 );
+
+ if (z_r > LAB_EPSILON) f_z = pow(z_r, 1.0 / 3.0);
+ else ( f_z = ((LAB_KAPPA * z_r) + 16) / 116.0 );
+
+ *to_L = (116.0 * f_y) - 16.0;
+ *to_a = 500.0 * (f_x - f_y);
+ *to_b = 200.0 * (f_y - f_z);
+}
+
+static inline void
+LAB_to_XYZ (double L,
+ double a,
+ double b,
+ double *to_X,
+ double *to_Y,
+ double *to_Z)
+{
+ double fy, fx, fz, fx_cubed, fy_cubed, fz_cubed;
+ double xr, yr, zr;
+
+ fy = (L + 16.0) / 116.0;
+ fy_cubed = fy*fy*fy;
+
+ fz = fy - (b / 200.0);
+ fz_cubed = fz*fz*fz;
+
+ fx = (a / 500.0) + fy;
+ fx_cubed = fx*fx*fx;
+
+ if (fx_cubed > LAB_EPSILON) xr = fx_cubed;
+ else xr = ((116.0 * fx) - 16) / LAB_KAPPA;
+
+ if ( L > (LAB_KAPPA * LAB_EPSILON) ) yr = fy_cubed;
+ else yr = (L / LAB_KAPPA);
+
+ if (fz_cubed > LAB_EPSILON) zr = fz_cubed;
+ else zr = ( (116.0 * fz) - 16 ) / LAB_KAPPA;
+
+ *to_X = xr * D50_WHITE_REF_X;
+ *to_Y = yr * D50_WHITE_REF_Y;
+ *to_Z = zr * D50_WHITE_REF_Z;
+}
+
+static void
+rgbcie_init (void)
+{
+ static int initialized = 0;
+
+ if (!initialized)
+ {
+ rgbxyzrgb_init ();
+ initialized = 1;
+ }
+}
--- /dev/null
+/* babl - dynamically extendable universal pixel conversion library.
+ *
+ * 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 3 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, see
+ * <http://www.gnu.org/licenses/>.
+ */
+
+#include "config.h"
+
+#include <math.h>
+#include <string.h>
+
+#include "babl.h"
+#include "base/util.h"
+
+#define MIN(a,b) ((a > b) ? b : a)
+#define MAX(a,b) ((a < b) ? b : a)
+#define EPSILON 1.0e-10
+
+static long rgba_to_hsla (char *src,
+ char *dst,
+ long samples);
+static long hsla_to_rgba (char *src,
+ char *dst,
+ long samples);
+static long rgba_to_hsl (char *src,
+ char *dst,
+ long samples);
+static long hsl_to_rgba (char *src,
+ char *dst,
+ long samples);
+static void rgb_to_hsl_step (double *src,
+ double *dst);
+static void hsl_to_rgb_step (double *src,
+ double *dst);
+static inline double hue2cpn (double p,
+ double q,
+ double hue);
+int init (void);
+
+
+int
+init (void)
+{
+ babl_component_new ("hue", NULL);
+ babl_component_new ("saturation", NULL);
+ babl_component_new ("lightness", NULL);
+ babl_component_new ("alpha", NULL);
+
+ babl_model_new ("name", "HSLA",
+ babl_component ("hue"),
+ babl_component ("saturation"),
+ babl_component ("lightness"),
+ babl_component ("alpha"),
+ NULL);
+ babl_model_new ("name", "HSL",
+ babl_component ("hue"),
+ babl_component ("saturation"),
+ babl_component ("lightness"),
+ NULL);
+
+
+ babl_conversion_new (babl_model ("RGBA"),
+ babl_model ("HSLA"),
+ "linear", rgba_to_hsla,
+ NULL);
+ babl_conversion_new (babl_model ("RGBA"),
+ babl_model ("HSL"),
+ "linear", rgba_to_hsl,
+ NULL);
+ babl_conversion_new (babl_model ("HSLA"),
+ babl_model ("RGBA"),
+ "linear", hsla_to_rgba,
+ NULL);
+ babl_conversion_new (babl_model ("HSL"),
+ babl_model ("RGBA"),
+ "linear", hsl_to_rgba,
+ NULL);
+
+ babl_format_new ("name", "HSLA float",
+ babl_model ("HSLA"),
+ babl_type ("float"),
+ babl_component ("hue"),
+ babl_component ("saturation"),
+ babl_component ("lightness"),
+ babl_component ("alpha"),
+ NULL);
+ babl_format_new ("name", "HSL float",
+ babl_model ("HSL"),
+ babl_type ("float"),
+ babl_component ("hue"),
+ babl_component ("saturation"),
+ babl_component ("lightness"),
+ NULL);
+ return 0;
+}
+
+
+static inline void
+rgb_to_hsl_step (double* src,
+ double* dst)
+{
+
+ double min, max;
+ double hue, saturation, lightness;
+ int cpn_max;
+
+ double red = linear_to_gamma_2_2 (src[0]);
+ double green = linear_to_gamma_2_2 (src[1]);
+ double blue = linear_to_gamma_2_2 (src[2]);
+
+ max = MAX (red, MAX (green, blue));
+ min = MIN (red, MIN (green, blue));
+
+ if (max - red < EPSILON)
+ cpn_max = 0;
+ else if (max - green < EPSILON)
+ cpn_max = 1;
+ else
+ cpn_max = 2;
+
+ lightness = (max + min) / 2.0;
+
+ if (max - min < EPSILON)
+ {
+ hue = saturation = 0;
+ }
+ else
+ {
+ double diff = max - min;
+ double sum = max + min;
+ saturation = lightness > 0.5 ? diff / (2.0 - sum) : diff / sum;
+ switch (cpn_max)
+ {
+ case 0: hue = (green - blue) / diff + (green < blue ? 6.0 : 0.0); break;
+ case 1: hue = (blue - red) / diff + 2.0; break;
+ case 2: hue = (red - green) / diff + 4.0; break;
+ default: break;
+ }
+ hue /= 6.0;
+ }
+
+ dst[0] = hue;
+ dst[1] = saturation;
+ dst[2] = lightness;
+}
+
+
+static long
+rgba_to_hsla (char *src,
+ char *dst,
+ long samples)
+{
+ long n = samples;
+
+ while (n--)
+ {
+ double alpha = ((double *) src)[3];
+
+ rgb_to_hsl_step ((double *) src, (double *) dst);
+
+ ((double *) dst)[3] = alpha;
+
+ src += 4 * sizeof (double);
+ dst += 4 * sizeof (double);
+ }
+
+ return samples;
+}
+
+
+static long
+rgba_to_hsl (char *src,
+ char *dst,
+ long samples)
+{
+ long n = samples;
+
+ while (n--)
+ {
+ rgb_to_hsl_step ((double *) src, (double *) dst);
+
+ src += 4 * sizeof (double);
+ dst += 3 * sizeof (double);
+ }
+
+ return samples;
+}
+
+
+static inline double
+hue2cpn (double p, double q, double hue)
+{
+ if (hue < 0.0) hue += 1.0;
+ if (hue > 1.0) hue -= 1.0;
+ if (hue < 1.0 / 6.0) return p + (q - p) * 6.0 * hue;
+ if (hue < 1.0 / 2.0) return q;
+ if (hue < 2.0 / 3.0) return p + (q - p) * (2.0 / 3.0 - hue) * 6.0;
+ return p;
+}
+
+
+static void
+hsl_to_rgb_step (double *src,
+ double *dst)
+{
+ double hue = src[0];
+ double saturation = src[1];
+ double lightness = src[2];
+
+ double red = 0, green = 0, blue = 0;
+
+ if (saturation < 1e-7)
+ {
+ red = green = blue = lightness;
+ }
+ else
+ {
+ double q = lightness < 0.5 ?
+ lightness * (1 + saturation) :
+ lightness + saturation - lightness * saturation;
+
+ double p = 2 * lightness - q;
+
+ red = hue2cpn (p, q, hue + 1.0/3.0);
+ green = hue2cpn (p, q, hue);
+ blue = hue2cpn (p, q, hue - 1.0/3.0);
+ }
+
+ dst[0] = gamma_2_2_to_linear (red);
+ dst[1] = gamma_2_2_to_linear (green);
+ dst[2] = gamma_2_2_to_linear (blue);
+}
+
+
+static long
+hsla_to_rgba (char *src,
+ char *dst,
+ long samples)
+{
+ long n = samples;
+
+ while (n--)
+ {
+ double alpha = ((double *) src)[3];
+
+ hsl_to_rgb_step ((double *) src, (double *) dst);
+
+ ((double *) dst)[3] = alpha;
+
+ src += 4 * sizeof (double);
+ dst += 4 * sizeof (double);
+ }
+
+ return samples;
+}
+
+
+static long
+hsl_to_rgba (char *src,
+ char *dst,
+ long samples)
+{
+ long n = samples;
+
+ while (n--)
+ {
+ hsl_to_rgb_step ((double *) src, (double *) dst);
+
+ ((double *) dst)[3] = 1.0;
+
+ src += 3 * sizeof (double);
+ dst += 4 * sizeof (double);
+ }
+
+ return samples;
+}
--- /dev/null
+/* babl - dynamically extendable universal pixel conversion library.
+ * Copyright (C) 2012, Maxime Nicco <maxime.nicco@gmail.fr>
+ *
+ * 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 3 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, see
+ * <http://www.gnu.org/licenses/>.
+ */
+
+ /*
+ * Adding support for HSV colorspace
+ */
+
+#include "config.h"
+
+#include <math.h>
+#include <string.h>
+
+#include "babl.h"
+#include "base/util.h"
+
+#define MIN(a,b) (a > b) ? b : a;
+#define MAX(a,b) (a < b) ? b : a;
+#define EPSILON 1.0e-10
+
+static long rgba_to_hsva (char *src,
+ char *dst,
+ long samples);
+
+static long hsva_to_rgba (char *src,
+ char *dst,
+ long samples);
+
+static long rgba_to_hsv (char *src,
+ char *dst,
+ long samples);
+
+static long hsv_to_rgba (char *src,
+ char *dst,
+ long samples);
+
+static void rgba_to_hsv_step (char *src,
+ char *dst);
+
+static void hsv_to_rgba_step (char *src,
+ char *dst);
+
+static void components (void);
+static void models (void);
+static void conversions (void);
+static void formats (void);
+
+int init (void);
+
+int
+init (void)
+{
+ components ();
+ models ();
+ conversions ();
+ formats ();
+
+ return 0;
+}
+
+
+static void
+components (void)
+{
+ babl_component_new ("hue", NULL);
+ babl_component_new ("saturation", NULL);
+ babl_component_new ("value", NULL);
+ babl_component_new ("alpha", NULL);
+}
+
+static void
+models (void)
+{
+ babl_model_new (
+ "name", "HSVA",
+ babl_component ("hue"),
+ babl_component ("saturation"),
+ babl_component ("value"),
+ babl_component ("alpha"),
+ NULL
+ );
+
+ babl_model_new (
+ "name", "HSV",
+ babl_component ("hue"),
+ babl_component ("saturation"),
+ babl_component ("value"),
+ NULL
+ );
+}
+
+static void
+conversions (void)
+{
+ babl_conversion_new (
+ babl_model ("RGBA"),
+ babl_model ("HSVA"),
+ "linear", rgba_to_hsva,
+ NULL
+ );
+
+ babl_conversion_new (
+ babl_model ("RGBA"),
+ babl_model ("HSV"),
+ "linear", rgba_to_hsv,
+ NULL
+ );
+
+ babl_conversion_new (
+ babl_model ("HSVA"),
+ babl_model ("RGBA"),
+ "linear", hsva_to_rgba,
+ NULL
+ );
+
+ babl_conversion_new (
+ babl_model ("HSV"),
+ babl_model ("RGBA"),
+ "linear", hsv_to_rgba,
+ NULL
+ );
+}
+
+static void
+formats (void)
+{
+ babl_format_new (
+ "name", "HSVA float",
+ babl_model ("HSVA"),
+ babl_type ("float"),
+ babl_component ("hue"),
+ babl_component ("saturation"),
+ babl_component ("value"),
+ babl_component ("alpha"),
+ NULL
+ );
+
+ babl_format_new (
+ "name", "HSV float",
+ babl_model ("HSV"),
+ babl_type ("float"),
+ babl_component ("hue"),
+ babl_component ("saturation"),
+ babl_component ("value"),
+ NULL
+ );
+}
+
+static void
+rgba_to_hsv_step (char *src,
+ char *dst)
+{
+ double hue, saturation, value;
+ double min, chroma;
+
+ double red = linear_to_gamma_2_2 (((double *) src)[0]);
+ double green = linear_to_gamma_2_2 (((double *) src)[1]);
+ double blue = linear_to_gamma_2_2 (((double *) src)[2]);
+
+ if (red > green)
+ {
+ value = MAX (red, blue);
+ min = MIN (green, blue);
+ }
+ else
+ {
+ value = MAX (green, blue);
+ min = MIN (red, blue);
+ }
+
+ chroma = value - min;
+
+ if (value < EPSILON)
+ saturation = 0.0;
+ else
+ saturation = chroma / value;
+
+ if (saturation < EPSILON)
+ {
+ hue = 0.0;
+ }
+ else
+ {
+ if (fabs (red - value) < EPSILON)
+ {
+ hue = (green - blue) / chroma;
+
+ if (hue < 0.0)
+ hue += 6.0;
+ }
+ else if (fabs (green - value) < EPSILON)
+ hue = 2.0 + (blue - red) / chroma;
+ else
+ hue = 4.0 + (red - green) / chroma;
+
+ hue /= 6.0;
+ }
+
+ ((double *) dst)[0] = hue;
+ ((double *) dst)[1] = saturation;
+ ((double *) dst)[2] = value;
+}
+
+
+static void
+hsv_to_rgba_step (char *src,
+ char *dst)
+{
+ double hue = ((double *) src)[0];
+ double saturation = ((double *) src)[1];
+ double value = ((double *) src)[2];
+
+ double red = 0, green = 0, blue = 0;
+
+ double chroma, h_tmp, x, min;
+
+ chroma = saturation * value;
+ h_tmp = hue * 6.0;
+ x = chroma * (1.0 - fabs (fmod (h_tmp, 2.0) - 1.0));
+
+ if (h_tmp < 1.0)
+ {
+ red = chroma;
+ green = x;
+ }
+ else if (h_tmp < 2.0)
+ {
+ red = x;
+ green = chroma;
+ }
+ else if (h_tmp < 3.0)
+ {
+ green = chroma;
+ blue = x;
+ }
+ else if (h_tmp < 4.0)
+ {
+ green = x;
+ blue = chroma;
+ }
+ else if (h_tmp < 5.0)
+ {
+ red = x;
+ blue = chroma;
+ }
+ else if (h_tmp < 6.0)
+ {
+ red = chroma;
+ blue = x;
+ }
+
+ min = value - chroma;
+
+ red += min;
+ green += min;
+ blue += min;
+
+ ((double *) dst)[0] = gamma_2_2_to_linear (red);
+ ((double *) dst)[1] = gamma_2_2_to_linear (green);
+ ((double *) dst)[2] = gamma_2_2_to_linear (blue);
+}
+
+static long
+rgba_to_hsva (char *src,
+ char *dst,
+ long samples)
+{
+ long n = samples;
+
+ while (n--)
+ {
+ double alpha = ((double *) src)[3];
+
+ rgba_to_hsv_step (src, dst);
+
+ ((double *) dst)[3] = alpha;
+
+ src += 4 * sizeof (double);
+ dst += 4 * sizeof (double);
+ }
+
+ return samples;
+}
+
+static long
+hsva_to_rgba (char *src,
+ char *dst,
+ long samples)
+{
+ long n = samples;
+
+ while (n--)
+ {
+ double alpha = ((double *) src)[3];
+
+ hsv_to_rgba_step (src, dst);
+
+ ((double *) dst)[3] = alpha;
+
+ src += 4 * sizeof (double);
+ dst += 4 * sizeof (double);
+ }
+
+ return samples;
+}
+
+static long
+rgba_to_hsv (char *src,
+ char *dst,
+ long samples)
+{
+ long n = samples;
+
+ while (n--)
+ {
+ rgba_to_hsv_step (src, dst);
+
+ src += 4 * sizeof (double);
+ dst += 3 * sizeof (double);
+ }
+
+ return samples;
+}
+
+static long
+hsv_to_rgba (char *src,
+ char *dst,
+ long samples)
+{
+ long n = samples;
+
+ while (n--)
+ {
+ hsv_to_rgba_step (src, dst);
+
+ ((double *) dst)[3] = 1.0;
+
+ src += 3 * sizeof (double);
+ dst += 4 * sizeof (double);
+ }
+
+ return samples;
+}
--- /dev/null
+if PLATFORM_WIN32
+AM_LDFLAGS = -module -avoid-version -no-undefined
+else
+AM_LDFLAGS = -module -avoid-version
+endif
+
+noinst_HEADERS = util.h
+
+
+AM_CPPFLAGS = \
+ -I$(top_builddir) \
+ -I$(top_srcdir) \
+ -I$(top_srcdir)/babl \
+ -I$(top_srcdir)/extensions
+
+extdir = $(libdir)/babl-@BABL_API_VERSION@
+ext_LTLIBRARIES = \
+ cairo.la \
+ CIE.la \
+ float-half.la \
+ gegl-fixups.la \
+ gggl-lies.la \
+ gggl-table.la \
+ gggl-table-lies.la \
+ gggl.la \
+ gimp-8bit.la \
+ grey.la \
+ float.la \
+ fast-float.la \
+ naive-CMYK.la \
+ HSL.la \
+ HSV.la \
+ simple.la \
+ sse2-float.la \
+ sse2-int8.la \
+ sse2-int16.la \
+ sse4-int8.la \
+ sse-half.la \
+ two-table.la \
+ ycbcr.la
+
+cairo_la_SOURCES = cairo.c cairo-tables.h
+CIE_la_SOURCES = CIE.c
+simple_la_SOURCES = simple.c
+float_half_la_SOURCES = float-half.c
+gegl_fixups_la_SOURCES = gegl-fixups.c
+gggl_lies_la_SOURCES = gggl-lies.c
+gggl_table_lies_la_SOURCES = gggl-table-lies.c
+gggl_table_la_SOURCES = gggl-table.c
+gggl_la_SOURCES = gggl.c
+gimp_8bit_la_SOURCES = gimp-8bit.c
+grey_la_SOURCES = grey.c
+naive_CMYK_la_SOURCES = naive-CMYK.c
+HSL_la_SOURCES = HSL.c
+HSV_la_SOURCES = HSV.c
+sse2_float_la_SOURCES = sse2-float.c
+sse2_int8_la_SOURCES = sse2-int8.c
+sse2_int16_la_SOURCES = sse2-int16.c
+sse4_int8_la_SOURCES = sse4-int8.c
+sse_half_la_SOURCES = sse-half.c
+two_table_la_SOURCES = two-table.c two-table-tables.h
+ycbcr_la_SOURCES = ycbcr.c
+float_la_SOURCES = float.c
+fast_float_la_SOURCES = fast-float.c
+
+LIBS = $(top_builddir)/babl/libbabl-@BABL_API_VERSION@.la $(MATH_LIB) \
+ $(THREAD_LIB)
+
+sse2_float_la_CFLAGS = $(SSE2_EXTRA_CFLAGS)
+sse2_int8_la_CFLAGS = $(SSE2_EXTRA_CFLAGS)
+sse2_int16_la_CFLAGS = $(SSE2_EXTRA_CFLAGS)
+sse4_int8_la_CFLAGS = $(SSE4_1_EXTRA_CFLAGS)
+sse_half_la_CFLAGS = $(SSE4_1_EXTRA_CFLAGS) $(F16C_EXTRA_CFLAGS)
--- /dev/null
+# Makefile.in generated by automake 1.15 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
+
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+
+VPATH = @srcdir@
+am__is_gnu_make = { \
+ if test -z '$(MAKELEVEL)'; then \
+ false; \
+ elif test -n '$(MAKE_HOST)'; then \
+ true; \
+ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+ true; \
+ else \
+ false; \
+ fi; \
+}
+am__make_running_with_option = \
+ case $${target_option-} in \
+ ?) ;; \
+ *) echo "am__make_running_with_option: internal error: invalid" \
+ "target option '$${target_option-}' specified" >&2; \
+ exit 1;; \
+ esac; \
+ has_opt=no; \
+ sane_makeflags=$$MAKEFLAGS; \
+ if $(am__is_gnu_make); then \
+ sane_makeflags=$$MFLAGS; \
+ else \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ bs=\\; \
+ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
+ esac; \
+ fi; \
+ skip_next=no; \
+ strip_trailopt () \
+ { \
+ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+ }; \
+ for flg in $$sane_makeflags; do \
+ test $$skip_next = yes && { skip_next=no; continue; }; \
+ case $$flg in \
+ *=*|--*) continue;; \
+ -*I) strip_trailopt 'I'; skip_next=yes;; \
+ -*I?*) strip_trailopt 'I';; \
+ -*O) strip_trailopt 'O'; skip_next=yes;; \
+ -*O?*) strip_trailopt 'O';; \
+ -*l) strip_trailopt 'l'; skip_next=yes;; \
+ -*l?*) strip_trailopt 'l';; \
+ -[dEDm]) skip_next=yes;; \
+ -[JT]) skip_next=yes;; \
+ esac; \
+ case $$flg in \
+ *$$target_option*) has_opt=yes; break;; \
+ esac; \
+ done; \
+ test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+target_triplet = @target@
+subdir = extensions
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(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)/acinclude.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+ $(am__DIST_COMMON)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+ if (++n[$$2] == $(am__install_max)) \
+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+ END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+ test -z "$$files" \
+ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+ $(am__cd) "$$dir" && rm -f $$files; }; \
+ }
+am__installdirs = "$(DESTDIR)$(extdir)"
+LTLIBRARIES = $(ext_LTLIBRARIES)
+CIE_la_LIBADD =
+am_CIE_la_OBJECTS = CIE.lo
+CIE_la_OBJECTS = $(am_CIE_la_OBJECTS)
+AM_V_lt = $(am__v_lt_@AM_V@)
+am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
+am__v_lt_0 = --silent
+am__v_lt_1 =
+HSL_la_LIBADD =
+am_HSL_la_OBJECTS = HSL.lo
+HSL_la_OBJECTS = $(am_HSL_la_OBJECTS)
+HSV_la_LIBADD =
+am_HSV_la_OBJECTS = HSV.lo
+HSV_la_OBJECTS = $(am_HSV_la_OBJECTS)
+cairo_la_LIBADD =
+am_cairo_la_OBJECTS = cairo.lo
+cairo_la_OBJECTS = $(am_cairo_la_OBJECTS)
+fast_float_la_LIBADD =
+am_fast_float_la_OBJECTS = fast-float.lo
+fast_float_la_OBJECTS = $(am_fast_float_la_OBJECTS)
+float_half_la_LIBADD =
+am_float_half_la_OBJECTS = float-half.lo
+float_half_la_OBJECTS = $(am_float_half_la_OBJECTS)
+float_la_LIBADD =
+am_float_la_OBJECTS = float.lo
+float_la_OBJECTS = $(am_float_la_OBJECTS)
+gegl_fixups_la_LIBADD =
+am_gegl_fixups_la_OBJECTS = gegl-fixups.lo
+gegl_fixups_la_OBJECTS = $(am_gegl_fixups_la_OBJECTS)
+gggl_lies_la_LIBADD =
+am_gggl_lies_la_OBJECTS = gggl-lies.lo
+gggl_lies_la_OBJECTS = $(am_gggl_lies_la_OBJECTS)
+gggl_table_lies_la_LIBADD =
+am_gggl_table_lies_la_OBJECTS = gggl-table-lies.lo
+gggl_table_lies_la_OBJECTS = $(am_gggl_table_lies_la_OBJECTS)
+gggl_table_la_LIBADD =
+am_gggl_table_la_OBJECTS = gggl-table.lo
+gggl_table_la_OBJECTS = $(am_gggl_table_la_OBJECTS)
+gggl_la_LIBADD =
+am_gggl_la_OBJECTS = gggl.lo
+gggl_la_OBJECTS = $(am_gggl_la_OBJECTS)
+gimp_8bit_la_LIBADD =
+am_gimp_8bit_la_OBJECTS = gimp-8bit.lo
+gimp_8bit_la_OBJECTS = $(am_gimp_8bit_la_OBJECTS)
+grey_la_LIBADD =
+am_grey_la_OBJECTS = grey.lo
+grey_la_OBJECTS = $(am_grey_la_OBJECTS)
+naive_CMYK_la_LIBADD =
+am_naive_CMYK_la_OBJECTS = naive-CMYK.lo
+naive_CMYK_la_OBJECTS = $(am_naive_CMYK_la_OBJECTS)
+simple_la_LIBADD =
+am_simple_la_OBJECTS = simple.lo
+simple_la_OBJECTS = $(am_simple_la_OBJECTS)
+sse_half_la_LIBADD =
+am_sse_half_la_OBJECTS = sse_half_la-sse-half.lo
+sse_half_la_OBJECTS = $(am_sse_half_la_OBJECTS)
+sse_half_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(sse_half_la_CFLAGS) \
+ $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+sse2_float_la_LIBADD =
+am_sse2_float_la_OBJECTS = sse2_float_la-sse2-float.lo
+sse2_float_la_OBJECTS = $(am_sse2_float_la_OBJECTS)
+sse2_float_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(sse2_float_la_CFLAGS) \
+ $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+sse2_int16_la_LIBADD =
+am_sse2_int16_la_OBJECTS = sse2_int16_la-sse2-int16.lo
+sse2_int16_la_OBJECTS = $(am_sse2_int16_la_OBJECTS)
+sse2_int16_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(sse2_int16_la_CFLAGS) \
+ $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+sse2_int8_la_LIBADD =
+am_sse2_int8_la_OBJECTS = sse2_int8_la-sse2-int8.lo
+sse2_int8_la_OBJECTS = $(am_sse2_int8_la_OBJECTS)
+sse2_int8_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(sse2_int8_la_CFLAGS) \
+ $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+sse4_int8_la_LIBADD =
+am_sse4_int8_la_OBJECTS = sse4_int8_la-sse4-int8.lo
+sse4_int8_la_OBJECTS = $(am_sse4_int8_la_OBJECTS)
+sse4_int8_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(sse4_int8_la_CFLAGS) \
+ $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+two_table_la_LIBADD =
+am_two_table_la_OBJECTS = two-table.lo
+two_table_la_OBJECTS = $(am_two_table_la_OBJECTS)
+ycbcr_la_LIBADD =
+am_ycbcr_la_OBJECTS = ycbcr.lo
+ycbcr_la_OBJECTS = $(am_ycbcr_la_OBJECTS)
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo " GEN " $@;
+am__v_GEN_1 =
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 =
+DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
+depcomp = $(SHELL) $(top_srcdir)/depcomp
+am__depfiles_maybe = depfiles
+am__mv = mv -f
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
+ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
+ $(AM_CFLAGS) $(CFLAGS)
+AM_V_CC = $(am__v_CC_@AM_V@)
+am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
+am__v_CC_0 = @echo " CC " $@;
+am__v_CC_1 =
+CCLD = $(CC)
+LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+ $(AM_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_CCLD = $(am__v_CCLD_@AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
+am__v_CCLD_0 = @echo " CCLD " $@;
+am__v_CCLD_1 =
+SOURCES = $(CIE_la_SOURCES) $(HSL_la_SOURCES) $(HSV_la_SOURCES) \
+ $(cairo_la_SOURCES) $(fast_float_la_SOURCES) \
+ $(float_half_la_SOURCES) $(float_la_SOURCES) \
+ $(gegl_fixups_la_SOURCES) $(gggl_lies_la_SOURCES) \
+ $(gggl_table_lies_la_SOURCES) $(gggl_table_la_SOURCES) \
+ $(gggl_la_SOURCES) $(gimp_8bit_la_SOURCES) $(grey_la_SOURCES) \
+ $(naive_CMYK_la_SOURCES) $(simple_la_SOURCES) \
+ $(sse_half_la_SOURCES) $(sse2_float_la_SOURCES) \
+ $(sse2_int16_la_SOURCES) $(sse2_int8_la_SOURCES) \
+ $(sse4_int8_la_SOURCES) $(two_table_la_SOURCES) \
+ $(ycbcr_la_SOURCES)
+DIST_SOURCES = $(CIE_la_SOURCES) $(HSL_la_SOURCES) $(HSV_la_SOURCES) \
+ $(cairo_la_SOURCES) $(fast_float_la_SOURCES) \
+ $(float_half_la_SOURCES) $(float_la_SOURCES) \
+ $(gegl_fixups_la_SOURCES) $(gggl_lies_la_SOURCES) \
+ $(gggl_table_lies_la_SOURCES) $(gggl_table_la_SOURCES) \
+ $(gggl_la_SOURCES) $(gimp_8bit_la_SOURCES) $(grey_la_SOURCES) \
+ $(naive_CMYK_la_SOURCES) $(simple_la_SOURCES) \
+ $(sse_half_la_SOURCES) $(sse2_float_la_SOURCES) \
+ $(sse2_int16_la_SOURCES) $(sse2_int8_la_SOURCES) \
+ $(sse4_int8_la_SOURCES) $(two_table_la_SOURCES) \
+ $(ycbcr_la_SOURCES)
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
+HEADERS = $(noinst_HEADERS)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates. Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+ BEGIN { nonempty = 0; } \
+ { items[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique. This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+ list='$(am__tagged_files)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | $(am__uniquify_input)`
+ETAGS = etags
+CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ALTIVEC_EXTRA_CFLAGS = @ALTIVEC_EXTRA_CFLAGS@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AR = @AR@
+AS = @AS@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+BABL_API_VERSION = @BABL_API_VERSION@
+BABL_BINARY_AGE = @BABL_BINARY_AGE@
+BABL_CURRENT_MINUS_AGE = @BABL_CURRENT_MINUS_AGE@
+BABL_INTERFACE_AGE = @BABL_INTERFACE_AGE@
+BABL_LIBRARY_VERSION = @BABL_LIBRARY_VERSION@
+BABL_MAJOR_VERSION = @BABL_MAJOR_VERSION@
+BABL_MICRO_VERSION = @BABL_MICRO_VERSION@
+BABL_MINOR_VERSION = @BABL_MINOR_VERSION@
+BABL_REAL_VERSION = @BABL_REAL_VERSION@
+BABL_RELEASE = @BABL_RELEASE@
+BABL_UNSTABLE = @BABL_UNSTABLE@
+BABL_VERSION = @BABL_VERSION@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DIR_SEP = @DIR_SEP@
+DLLTOOL = @DLLTOOL@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+F16C_EXTRA_CFLAGS = @F16C_EXTRA_CFLAGS@
+FGREP = @FGREP@
+GREP = @GREP@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = $(top_builddir)/babl/libbabl-@BABL_API_VERSION@.la $(MATH_LIB) \
+ $(THREAD_LIB)
+
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
+MATH_LIB = @MATH_LIB@
+MKDIR_P = @MKDIR_P@
+MMX_EXTRA_CFLAGS = @MMX_EXTRA_CFLAGS@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEP = @PATH_SEP@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+RANLIB = @RANLIB@
+RSVG = @RSVG@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SHREXT = @SHREXT@
+SSE2_EXTRA_CFLAGS = @SSE2_EXTRA_CFLAGS@
+SSE4_1_EXTRA_CFLAGS = @SSE4_1_EXTRA_CFLAGS@
+SSE_EXTRA_CFLAGS = @SSE_EXTRA_CFLAGS@
+STRIP = @STRIP@
+THREAD_LIB = @THREAD_LIB@
+VERSION = @VERSION@
+W3M = @W3M@
+WEBSITE_HOST = @WEBSITE_HOST@
+WEBSITE_LOCATION = @WEBSITE_LOCATION@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target = @target@
+target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+@PLATFORM_WIN32_FALSE@AM_LDFLAGS = -module -avoid-version
+@PLATFORM_WIN32_TRUE@AM_LDFLAGS = -module -avoid-version -no-undefined
+noinst_HEADERS = util.h
+AM_CPPFLAGS = \
+ -I$(top_builddir) \
+ -I$(top_srcdir) \
+ -I$(top_srcdir)/babl \
+ -I$(top_srcdir)/extensions
+
+extdir = $(libdir)/babl-@BABL_API_VERSION@
+ext_LTLIBRARIES = \
+ cairo.la \
+ CIE.la \
+ float-half.la \
+ gegl-fixups.la \
+ gggl-lies.la \
+ gggl-table.la \
+ gggl-table-lies.la \
+ gggl.la \
+ gimp-8bit.la \
+ grey.la \
+ float.la \
+ fast-float.la \
+ naive-CMYK.la \
+ HSL.la \
+ HSV.la \
+ simple.la \
+ sse2-float.la \
+ sse2-int8.la \
+ sse2-int16.la \
+ sse4-int8.la \
+ sse-half.la \
+ two-table.la \
+ ycbcr.la
+
+cairo_la_SOURCES = cairo.c cairo-tables.h
+CIE_la_SOURCES = CIE.c
+simple_la_SOURCES = simple.c
+float_half_la_SOURCES = float-half.c
+gegl_fixups_la_SOURCES = gegl-fixups.c
+gggl_lies_la_SOURCES = gggl-lies.c
+gggl_table_lies_la_SOURCES = gggl-table-lies.c
+gggl_table_la_SOURCES = gggl-table.c
+gggl_la_SOURCES = gggl.c
+gimp_8bit_la_SOURCES = gimp-8bit.c
+grey_la_SOURCES = grey.c
+naive_CMYK_la_SOURCES = naive-CMYK.c
+HSL_la_SOURCES = HSL.c
+HSV_la_SOURCES = HSV.c
+sse2_float_la_SOURCES = sse2-float.c
+sse2_int8_la_SOURCES = sse2-int8.c
+sse2_int16_la_SOURCES = sse2-int16.c
+sse4_int8_la_SOURCES = sse4-int8.c
+sse_half_la_SOURCES = sse-half.c
+two_table_la_SOURCES = two-table.c two-table-tables.h
+ycbcr_la_SOURCES = ycbcr.c
+float_la_SOURCES = float.c
+fast_float_la_SOURCES = fast-float.c
+sse2_float_la_CFLAGS = $(SSE2_EXTRA_CFLAGS)
+sse2_int8_la_CFLAGS = $(SSE2_EXTRA_CFLAGS)
+sse2_int16_la_CFLAGS = $(SSE2_EXTRA_CFLAGS)
+sse4_int8_la_CFLAGS = $(SSE4_1_EXTRA_CFLAGS)
+sse_half_la_CFLAGS = $(SSE4_1_EXTRA_CFLAGS) $(F16C_EXTRA_CFLAGS)
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .c .lo .o .obj
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign extensions/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --foreign extensions/Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+install-extLTLIBRARIES: $(ext_LTLIBRARIES)
+ @$(NORMAL_INSTALL)
+ @list='$(ext_LTLIBRARIES)'; test -n "$(extdir)" || list=; \
+ list2=; for p in $$list; do \
+ if test -f $$p; then \
+ list2="$$list2 $$p"; \
+ else :; fi; \
+ done; \
+ test -z "$$list2" || { \
+ echo " $(MKDIR_P) '$(DESTDIR)$(extdir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(extdir)" || exit 1; \
+ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(extdir)'"; \
+ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(extdir)"; \
+ }
+
+uninstall-extLTLIBRARIES:
+ @$(NORMAL_UNINSTALL)
+ @list='$(ext_LTLIBRARIES)'; test -n "$(extdir)" || list=; \
+ for p in $$list; do \
+ $(am__strip_dir) \
+ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(extdir)/$$f'"; \
+ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(extdir)/$$f"; \
+ done
+
+clean-extLTLIBRARIES:
+ -test -z "$(ext_LTLIBRARIES)" || rm -f $(ext_LTLIBRARIES)
+ @list='$(ext_LTLIBRARIES)'; \
+ locs=`for p in $$list; do echo $$p; done | \
+ sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+ sort -u`; \
+ test -z "$$locs" || { \
+ echo rm -f $${locs}; \
+ rm -f $${locs}; \
+ }
+
+CIE.la: $(CIE_la_OBJECTS) $(CIE_la_DEPENDENCIES) $(EXTRA_CIE_la_DEPENDENCIES)
+ $(AM_V_CCLD)$(LINK) -rpath $(extdir) $(CIE_la_OBJECTS) $(CIE_la_LIBADD) $(LIBS)
+
+HSL.la: $(HSL_la_OBJECTS) $(HSL_la_DEPENDENCIES) $(EXTRA_HSL_la_DEPENDENCIES)
+ $(AM_V_CCLD)$(LINK) -rpath $(extdir) $(HSL_la_OBJECTS) $(HSL_la_LIBADD) $(LIBS)
+
+HSV.la: $(HSV_la_OBJECTS) $(HSV_la_DEPENDENCIES) $(EXTRA_HSV_la_DEPENDENCIES)
+ $(AM_V_CCLD)$(LINK) -rpath $(extdir) $(HSV_la_OBJECTS) $(HSV_la_LIBADD) $(LIBS)
+
+cairo.la: $(cairo_la_OBJECTS) $(cairo_la_DEPENDENCIES) $(EXTRA_cairo_la_DEPENDENCIES)
+ $(AM_V_CCLD)$(LINK) -rpath $(extdir) $(cairo_la_OBJECTS) $(cairo_la_LIBADD) $(LIBS)
+
+fast-float.la: $(fast_float_la_OBJECTS) $(fast_float_la_DEPENDENCIES) $(EXTRA_fast_float_la_DEPENDENCIES)
+ $(AM_V_CCLD)$(LINK) -rpath $(extdir) $(fast_float_la_OBJECTS) $(fast_float_la_LIBADD) $(LIBS)
+
+float-half.la: $(float_half_la_OBJECTS) $(float_half_la_DEPENDENCIES) $(EXTRA_float_half_la_DEPENDENCIES)
+ $(AM_V_CCLD)$(LINK) -rpath $(extdir) $(float_half_la_OBJECTS) $(float_half_la_LIBADD) $(LIBS)
+
+float.la: $(float_la_OBJECTS) $(float_la_DEPENDENCIES) $(EXTRA_float_la_DEPENDENCIES)
+ $(AM_V_CCLD)$(LINK) -rpath $(extdir) $(float_la_OBJECTS) $(float_la_LIBADD) $(LIBS)
+
+gegl-fixups.la: $(gegl_fixups_la_OBJECTS) $(gegl_fixups_la_DEPENDENCIES) $(EXTRA_gegl_fixups_la_DEPENDENCIES)
+ $(AM_V_CCLD)$(LINK) -rpath $(extdir) $(gegl_fixups_la_OBJECTS) $(gegl_fixups_la_LIBADD) $(LIBS)
+
+gggl-lies.la: $(gggl_lies_la_OBJECTS) $(gggl_lies_la_DEPENDENCIES) $(EXTRA_gggl_lies_la_DEPENDENCIES)
+ $(AM_V_CCLD)$(LINK) -rpath $(extdir) $(gggl_lies_la_OBJECTS) $(gggl_lies_la_LIBADD) $(LIBS)
+
+gggl-table-lies.la: $(gggl_table_lies_la_OBJECTS) $(gggl_table_lies_la_DEPENDENCIES) $(EXTRA_gggl_table_lies_la_DEPENDENCIES)
+ $(AM_V_CCLD)$(LINK) -rpath $(extdir) $(gggl_table_lies_la_OBJECTS) $(gggl_table_lies_la_LIBADD) $(LIBS)
+
+gggl-table.la: $(gggl_table_la_OBJECTS) $(gggl_table_la_DEPENDENCIES) $(EXTRA_gggl_table_la_DEPENDENCIES)
+ $(AM_V_CCLD)$(LINK) -rpath $(extdir) $(gggl_table_la_OBJECTS) $(gggl_table_la_LIBADD) $(LIBS)
+
+gggl.la: $(gggl_la_OBJECTS) $(gggl_la_DEPENDENCIES) $(EXTRA_gggl_la_DEPENDENCIES)
+ $(AM_V_CCLD)$(LINK) -rpath $(extdir) $(gggl_la_OBJECTS) $(gggl_la_LIBADD) $(LIBS)
+
+gimp-8bit.la: $(gimp_8bit_la_OBJECTS) $(gimp_8bit_la_DEPENDENCIES) $(EXTRA_gimp_8bit_la_DEPENDENCIES)
+ $(AM_V_CCLD)$(LINK) -rpath $(extdir) $(gimp_8bit_la_OBJECTS) $(gimp_8bit_la_LIBADD) $(LIBS)
+
+grey.la: $(grey_la_OBJECTS) $(grey_la_DEPENDENCIES) $(EXTRA_grey_la_DEPENDENCIES)
+ $(AM_V_CCLD)$(LINK) -rpath $(extdir) $(grey_la_OBJECTS) $(grey_la_LIBADD) $(LIBS)
+
+naive-CMYK.la: $(naive_CMYK_la_OBJECTS) $(naive_CMYK_la_DEPENDENCIES) $(EXTRA_naive_CMYK_la_DEPENDENCIES)
+ $(AM_V_CCLD)$(LINK) -rpath $(extdir) $(naive_CMYK_la_OBJECTS) $(naive_CMYK_la_LIBADD) $(LIBS)
+
+simple.la: $(simple_la_OBJECTS) $(simple_la_DEPENDENCIES) $(EXTRA_simple_la_DEPENDENCIES)
+ $(AM_V_CCLD)$(LINK) -rpath $(extdir) $(simple_la_OBJECTS) $(simple_la_LIBADD) $(LIBS)
+
+sse-half.la: $(sse_half_la_OBJECTS) $(sse_half_la_DEPENDENCIES) $(EXTRA_sse_half_la_DEPENDENCIES)
+ $(AM_V_CCLD)$(sse_half_la_LINK) -rpath $(extdir) $(sse_half_la_OBJECTS) $(sse_half_la_LIBADD) $(LIBS)
+
+sse2-float.la: $(sse2_float_la_OBJECTS) $(sse2_float_la_DEPENDENCIES) $(EXTRA_sse2_float_la_DEPENDENCIES)
+ $(AM_V_CCLD)$(sse2_float_la_LINK) -rpath $(extdir) $(sse2_float_la_OBJECTS) $(sse2_float_la_LIBADD) $(LIBS)
+
+sse2-int16.la: $(sse2_int16_la_OBJECTS) $(sse2_int16_la_DEPENDENCIES) $(EXTRA_sse2_int16_la_DEPENDENCIES)
+ $(AM_V_CCLD)$(sse2_int16_la_LINK) -rpath $(extdir) $(sse2_int16_la_OBJECTS) $(sse2_int16_la_LIBADD) $(LIBS)
+
+sse2-int8.la: $(sse2_int8_la_OBJECTS) $(sse2_int8_la_DEPENDENCIES) $(EXTRA_sse2_int8_la_DEPENDENCIES)
+ $(AM_V_CCLD)$(sse2_int8_la_LINK) -rpath $(extdir) $(sse2_int8_la_OBJECTS) $(sse2_int8_la_LIBADD) $(LIBS)
+
+sse4-int8.la: $(sse4_int8_la_OBJECTS) $(sse4_int8_la_DEPENDENCIES) $(EXTRA_sse4_int8_la_DEPENDENCIES)
+ $(AM_V_CCLD)$(sse4_int8_la_LINK) -rpath $(extdir) $(sse4_int8_la_OBJECTS) $(sse4_int8_la_LIBADD) $(LIBS)
+
+two-table.la: $(two_table_la_OBJECTS) $(two_table_la_DEPENDENCIES) $(EXTRA_two_table_la_DEPENDENCIES)
+ $(AM_V_CCLD)$(LINK) -rpath $(extdir) $(two_table_la_OBJECTS) $(two_table_la_LIBADD) $(LIBS)
+
+ycbcr.la: $(ycbcr_la_OBJECTS) $(ycbcr_la_DEPENDENCIES) $(EXTRA_ycbcr_la_DEPENDENCIES)
+ $(AM_V_CCLD)$(LINK) -rpath $(extdir) $(ycbcr_la_OBJECTS) $(ycbcr_la_LIBADD) $(LIBS)
+
+mostlyclean-compile:
+ -rm -f *.$(OBJEXT)
+
+distclean-compile:
+ -rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/CIE.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/HSL.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/HSV.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cairo.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fast-float.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/float-half.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/float.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gegl-fixups.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gggl-lies.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gggl-table-lies.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gggl-table.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gggl.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gimp-8bit.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/grey.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/naive-CMYK.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/simple.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sse2_float_la-sse2-float.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sse2_int16_la-sse2-int16.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sse2_int8_la-sse2-int8.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sse4_int8_la-sse4-int8.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sse_half_la-sse-half.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/two-table.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ycbcr.Plo@am__quote@
+
+.c.o:
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $<
+
+.c.obj:
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+
+.c.lo:
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
+
+sse_half_la-sse-half.lo: sse-half.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(sse_half_la_CFLAGS) $(CFLAGS) -MT sse_half_la-sse-half.lo -MD -MP -MF $(DEPDIR)/sse_half_la-sse-half.Tpo -c -o sse_half_la-sse-half.lo `test -f 'sse-half.c' || echo '$(srcdir)/'`sse-half.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/sse_half_la-sse-half.Tpo $(DEPDIR)/sse_half_la-sse-half.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sse-half.c' object='sse_half_la-sse-half.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(sse_half_la_CFLAGS) $(CFLAGS) -c -o sse_half_la-sse-half.lo `test -f 'sse-half.c' || echo '$(srcdir)/'`sse-half.c
+
+sse2_float_la-sse2-float.lo: sse2-float.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(sse2_float_la_CFLAGS) $(CFLAGS) -MT sse2_float_la-sse2-float.lo -MD -MP -MF $(DEPDIR)/sse2_float_la-sse2-float.Tpo -c -o sse2_float_la-sse2-float.lo `test -f 'sse2-float.c' || echo '$(srcdir)/'`sse2-float.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/sse2_float_la-sse2-float.Tpo $(DEPDIR)/sse2_float_la-sse2-float.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sse2-float.c' object='sse2_float_la-sse2-float.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(sse2_float_la_CFLAGS) $(CFLAGS) -c -o sse2_float_la-sse2-float.lo `test -f 'sse2-float.c' || echo '$(srcdir)/'`sse2-float.c
+
+sse2_int16_la-sse2-int16.lo: sse2-int16.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(sse2_int16_la_CFLAGS) $(CFLAGS) -MT sse2_int16_la-sse2-int16.lo -MD -MP -MF $(DEPDIR)/sse2_int16_la-sse2-int16.Tpo -c -o sse2_int16_la-sse2-int16.lo `test -f 'sse2-int16.c' || echo '$(srcdir)/'`sse2-int16.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/sse2_int16_la-sse2-int16.Tpo $(DEPDIR)/sse2_int16_la-sse2-int16.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sse2-int16.c' object='sse2_int16_la-sse2-int16.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(sse2_int16_la_CFLAGS) $(CFLAGS) -c -o sse2_int16_la-sse2-int16.lo `test -f 'sse2-int16.c' || echo '$(srcdir)/'`sse2-int16.c
+
+sse2_int8_la-sse2-int8.lo: sse2-int8.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(sse2_int8_la_CFLAGS) $(CFLAGS) -MT sse2_int8_la-sse2-int8.lo -MD -MP -MF $(DEPDIR)/sse2_int8_la-sse2-int8.Tpo -c -o sse2_int8_la-sse2-int8.lo `test -f 'sse2-int8.c' || echo '$(srcdir)/'`sse2-int8.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/sse2_int8_la-sse2-int8.Tpo $(DEPDIR)/sse2_int8_la-sse2-int8.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sse2-int8.c' object='sse2_int8_la-sse2-int8.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(sse2_int8_la_CFLAGS) $(CFLAGS) -c -o sse2_int8_la-sse2-int8.lo `test -f 'sse2-int8.c' || echo '$(srcdir)/'`sse2-int8.c
+
+sse4_int8_la-sse4-int8.lo: sse4-int8.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(sse4_int8_la_CFLAGS) $(CFLAGS) -MT sse4_int8_la-sse4-int8.lo -MD -MP -MF $(DEPDIR)/sse4_int8_la-sse4-int8.Tpo -c -o sse4_int8_la-sse4-int8.lo `test -f 'sse4-int8.c' || echo '$(srcdir)/'`sse4-int8.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/sse4_int8_la-sse4-int8.Tpo $(DEPDIR)/sse4_int8_la-sse4-int8.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sse4-int8.c' object='sse4_int8_la-sse4-int8.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(sse4_int8_la_CFLAGS) $(CFLAGS) -c -o sse4_int8_la-sse4-int8.lo `test -f 'sse4-int8.c' || echo '$(srcdir)/'`sse4-int8.c
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+
+ID: $(am__tagged_files)
+ $(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ set x; \
+ here=`pwd`; \
+ $(am__define_uniq_tagged_files); \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
+ fi
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ $(am__define_uniq_tagged_files); \
+ test -z "$(CTAGS_ARGS)$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+ list='$(am__tagged_files)'; \
+ case "$(srcdir)" in \
+ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+ *) sdir=$(subdir)/$(srcdir) ;; \
+ esac; \
+ for i in $$list; do \
+ if test -f "$$i"; then \
+ echo "$(subdir)/$$i"; \
+ else \
+ echo "$$sdir/$$i"; \
+ fi; \
+ done >> $(top_builddir)/cscope.files
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-am
+all-am: Makefile $(LTLIBRARIES) $(HEADERS)
+installdirs:
+ for dir in "$(DESTDIR)$(extdir)"; do \
+ test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+ done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-extLTLIBRARIES clean-generic clean-libtool \
+ mostlyclean-am
+
+distclean: distclean-am
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+ distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am: install-extLTLIBRARIES
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+ mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-extLTLIBRARIES
+
+.MAKE: install-am install-strip
+
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean \
+ clean-extLTLIBRARIES clean-generic clean-libtool cscopelist-am \
+ ctags ctags-am distclean distclean-compile distclean-generic \
+ distclean-libtool distclean-tags distdir dvi dvi-am html \
+ html-am info info-am install install-am install-data \
+ install-data-am install-dvi install-dvi-am install-exec \
+ install-exec-am install-extLTLIBRARIES install-html \
+ install-html-am install-info install-info-am install-man \
+ install-pdf install-pdf-am install-ps install-ps-am \
+ install-strip installcheck installcheck-am installdirs \
+ maintainer-clean maintainer-clean-generic mostlyclean \
+ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
+ pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
+ uninstall-extLTLIBRARIES
+
+.PRECIOUS: Makefile
+
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
--- /dev/null
+/* Gamma table generated from a babl conversion of Y to Y' */
+static const unsigned short linear_to_gamma16[65536] =
+{
+0,13,26,39,52,65,78,90,103,116,129,142,155,168,181,194,207,220,233,245,258,271,
+284,297,310,323,336,349,362,375,388,401,413,426,439,452,465,478,491,504,517,530,
+543,556,568,581,594,607,620,633,646,659,672,685,698,711,724,736,749,762,775,788,
+801,814,827,840,853,866,879,891,904,917,930,943,956,969,982,995,1008,1021,1034,
+1047,1059,1072,1085,1098,1111,1124,1137,1150,1163,1176,1189,1202,1214,1227,1240,
+1253,1266,1279,1292,1305,1318,1331,1344,1357,1370,1382,1395,1408,1421,1434,1447,
+1460,1473,1486,1499,1512,1525,1537,1550,1563,1576,1589,1602,1615,1628,1641,1654,
+1667,1680,1693,1705,1718,1731,1744,1757,1770,1783,1796,1809,1822,1835,1848,1860,
+1873,1886,1899,1912,1925,1938,1951,1964,1977,1990,2003,2016,2028,2041,2054,2067,
+2080,2093,2106,2119,2132,2145,2158,2171,2183,2196,2209,2222,2235,2248,2261,2274,
+2287,2300,2313,2326,2339,2351,2364,2377,2390,2403,2416,2429,2442,2455,2468,2481,
+2494,2506,2519,2532,2545,2558,2571,2584,2597,2610,2623,2636,2649,2661,2674,2687,
+2699,2712,2724,2737,2749,2762,2774,2786,2799,2811,2823,2835,2848,2860,2872,2884,
+2896,2908,2920,2932,2944,2956,2968,2979,2991,3003,3015,3027,3038,3050,3062,3073,
+3085,3096,3108,3119,3131,3142,3154,3165,3176,3188,3199,3210,3222,3233,3244,3255,
+3266,3277,3288,3300,3311,3322,3333,3344,3355,3366,3376,3387,3398,3409,3420,3431,
+3441,3452,3463,3474,3484,3495,3505,3516,3527,3537,3548,3558,3569,3579,3590,3600,
+3611,3621,3631,3642,3652,3662,3673,3683,3693,3703,3714,3724,3734,3744,3754,3764,
+3774,3784,3795,3805,3815,3825,3835,3844,3854,3864,3874,3884,3894,3904,3914,3923,
+3933,3943,3953,3963,3972,3982,3992,4001,4011,4021,4030,4040,4049,4059,4069,4078,
+4088,4097,4107,4116,4126,4135,4144,4154,4163,4173,4182,4191,4201,4210,4219,4228,
+4238,4247,4256,4265,4275,4284,4293,4302,4311,4320,4330,4339,4348,4357,4366,4375,
+4384,4393,4402,4411,4420,4429,4438,4447,4456,4465,4473,4482,4491,4500,4509,4518,
+4526,4535,4544,4553,4562,4570,4579,4588,4596,4605,4614,4622,4631,4640,4648,4657,
+4666,4674,4683,4691,4700,4708,4717,4725,4734,4742,4751,4759,4768,4776,4785,4793,
+4801,4810,4818,4827,4835,4843,4852,4860,4868,4877,4885,4893,4901,4910,4918,4926,
+4934,4943,4951,4959,4967,4975,4984,4992,5000,5008,5016,5024,5032,5040,5048,5056,
+5064,5073,5081,5089,5097,5105,5113,5121,5129,5136,5144,5152,5160,5168,5176,5184,
+5192,5200,5208,5215,5223,5231,5239,5247,5255,5262,5270,5278,5286,5294,5301,5309,
+5317,5324,5332,5340,5348,5355,5363,5371,5378,5386,5394,5401,5409,5416,5424,5432,
+5439,5447,5454,5462,5469,5477,5485,5492,5500,5507,5515,5522,5530,5537,5545,5552,
+5559,5567,5574,5582,5589,5597,5604,5611,5619,5626,5633,5641,5648,5655,5663,5670,
+5677,5685,5692,5699,5707,5714,5721,5728,5736,5743,5750,5757,5765,5772,5779,5786,
+5793,5801,5808,5815,5822,5829,5836,5843,5851,5858,5865,5872,5879,5886,5893,5900,
+5907,5914,5921,5929,5936,5943,5950,5957,5964,5971,5978,5985,5992,5999,6006,6013,
+6019,6026,6033,6040,6047,6054,6061,6068,6075,6082,6089,6096,6102,6109,6116,6123,
+6130,6137,6143,6150,6157,6164,6171,6178,6184,6191,6198,6205,6211,6218,6225,6232,
+6238,6245,6252,6259,6265,6272,6279,6285,6292,6299,6305,6312,6319,6325,6332,6339,
+6345,6352,6359,6365,6372,6378,6385,6392,6398,6405,6411,6418,6424,6431,6438,6444,
+6451,6457,6464,6470,6477,6483,6490,6496,6503,6509,6516,6522,6529,6535,6542,6548,
+6554,6561,6567,6574,6580,6587,6593,6599,6606,6612,6619,6625,6631,6638,6644,6650,
+6657,6663,6670,6676,6682,6689,6695,6701,6708,6714,6720,6726,6733,6739,6745,6752,
+6758,6764,6770,6777,6783,6789,6795,6802,6808,6814,6820,6826,6833,6839,6845,6851,
+6857,6864,6870,6876,6882,6888,6894,6901,6907,6913,6919,6925,6931,6937,6943,6950,
+6956,6962,6968,6974,6980,6986,6992,6998,7004,7010,7016,7023,7029,7035,7041,7047,
+7053,7059,7065,7071,7077,7083,7089,7095,7101,7107,7113,7119,7125,7131,7137,7143,
+7148,7154,7160,7166,7172,7178,7184,7190,7196,7202,7208,7214,7220,7225,7231,7237,
+7243,7249,7255,7261,7267,7272,7278,7284,7290,7296,7302,7307,7313,7319,7325,7331,
+7337,7342,7348,7354,7360,7366,7371,7377,7383,7389,7394,7400,7406,7412,7417,7423,
+7429,7435,7440,7446,7452,7458,7463,7469,7475,7480,7486,7492,7498,7503,7509,7515,
+7520,7526,7532,7537,7543,7549,7554,7560,7566,7571,7577,7582,7588,7594,7599,7605,
+7611,7616,7622,7627,7633,7639,7644,7650,7655,7661,7666,7672,7678,7683,7689,7694,
+7700,7705,7711,7716,7722,7727,7733,7739,7744,7750,7755,7761,7766,7772,7777,7783,
+7788,7794,7799,7805,7810,7815,7821,7826,7832,7837,7843,7848,7854,7859,7865,7870,
+7875,7881,7886,7892,7897,7902,7908,7913,7919,7924,7930,7935,7940,7946,7951,7956,
+7962,7967,7973,7978,7983,7989,7994,7999,8005,8010,8015,8021,8026,8031,8037,8042,
+8047,8053,8058,8063,8069,8074,8079,8084,8090,8095,8100,8106,8111,8116,8121,8127,
+8132,8137,8142,8148,8153,8158,8164,8169,8174,8179,8184,8190,8195,8200,8205,8211,
+8216,8221,8226,8231,8237,8242,8247,8252,8257,8263,8268,8273,8278,8283,8288,8294,
+8299,8304,8309,8314,8319,8325,8330,8335,8340,8345,8350,8355,8360,8366,8371,8376,
+8381,8386,8391,8396,8401,8406,8412,8417,8422,8427,8432,8437,8442,8447,8452,8457,
+8462,8467,8472,8478,8483,8488,8493,8498,8503,8508,8513,8518,8523,8528,8533,8538,
+8543,8548,8553,8558,8563,8568,8573,8578,8583,8588,8593,8598,8603,8608,8613,8618,
+8623,8628,8633,8638,8643,8648,8653,8658,8663,8667,8672,8677,8682,8687,8692,8697,
+8702,8707,8712,8717,8722,8727,8732,8736,8741,8746,8751,8756,8761,8766,8771,8776,
+8780,8785,8790,8795,8800,8805,8810,8815,8819,8824,8829,8834,8839,8844,8849,8853,
+8858,8863,8868,8873,8878,8882,8887,8892,8897,8902,8907,8911,8916,8921,8926,8931,
+8935,8940,8945,8950,8955,8959,8964,8969,8974,8978,8983,8988,8993,8998,9002,9007,
+9012,9017,9021,9026,9031,9036,9040,9045,9050,9055,9059,9064,9069,9073,9078,9083,
+9088,9092,9097,9102,9106,9111,9116,9121,9125,9130,9135,9139,9144,9149,9153,9158,
+9163,9167,9172,9177,9181,9186,9191,9195,9200,9205,9209,9214,9219,9223,9228,9233,
+9237,9242,9247,9251,9256,9260,9265,9270,9274,9279,9284,9288,9293,9297,9302,9307,
+9311,9316,9320,9325,9330,9334,9339,9343,9348,9353,9357,9362,9366,9371,9376,9380,
+9385,9389,9394,9398,9403,9407,9412,9417,9421,9426,9430,9435,9439,9444,9448,9453,
+9457,9462,9466,9471,9476,9480,9485,9489,9494,9498,9503,9507,9512,9516,9521,9525,
+9530,9534,9539,9543,9548,9552,9557,9561,9566,9570,9575,9579,9583,9588,9592,9597,
+9601,9606,9610,9615,9619,9624,9628,9633,9637,9641,9646,9650,9655,9659,9664,9668,
+9672,9677,9681,9686,9690,9695,9699,9703,9708,9712,9717,9721,9725,9730,9734,9739,
+9743,9747,9752,9756,9761,9765,9769,9774,9778,9783,9787,9791,9796,9800,9804,9809,
+9813,9818,9822,9826,9831,9835,9839,9844,9848,9852,9857,9861,9865,9870,9874,9878,
+9883,9887,9891,9896,9900,9904,9909,9913,9917,9922,9926,9930,9935,9939,9943,9947,
+9952,9956,9960,9965,9969,9973,9978,9982,9986,9990,9995,9999,10003,10008,10012,
+10016,10020,10025,10029,10033,10037,10042,10046,10050,10055,10059,10063,10067,
+10072,10076,10080,10084,10088,10093,10097,10101,10105,10110,10114,10118,10122,
+10127,10131,10135,10139,10143,10148,10152,10156,10160,10165,10169,10173,10177,
+10181,10186,10190,10194,10198,10202,10207,10211,10215,10219,10223,10227,10232,
+10236,10240,10244,10248,10253,10257,10261,10265,10269,10273,10278,10282,10286,
+10290,10294,10298,10302,10307,10311,10315,10319,10323,10327,10332,10336,10340,
+10344,10348,10352,10356,10360,10365,10369,10373,10377,10381,10385,10389,10393,
+10398,10402,10406,10410,10414,10418,10422,10426,10430,10434,10439,10443,10447,
+10451,10455,10459,10463,10467,10471,10475,10479,10483,10488,10492,10496,10500,
+10504,10508,10512,10516,10520,10524,10528,10532,10536,10540,10544,10548,10553,
+10557,10561,10565,10569,10573,10577,10581,10585,10589,10593,10597,10601,10605,
+10609,10613,10617,10621,10625,10629,10633,10637,10641,10645,10649,10653,10657,
+10661,10665,10669,10673,10677,10681,10685,10689,10693,10697,10701,10705,10709,
+10713,10717,10721,10725,10729,10733,10737,10741,10745,10749,10753,10757,10761,
+10765,10769,10773,10777,10781,10785,10789,10793,10797,10800,10804,10808,10812,
+10816,10820,10824,10828,10832,10836,10840,10844,10848,10852,10856,10860,10864,
+10867,10871,10875,10879,10883,10887,10891,10895,10899,10903,10907,10911,10914,
+10918,10922,10926,10930,10934,10938,10942,10946,10950,10953,10957,10961,10965,
+10969,10973,10977,10981,10985,10988,10992,10996,11000,11004,11008,11012,11016,
+11019,11023,11027,11031,11035,11039,11043,11046,11050,11054,11058,11062,11066,
+11070,11073,11077,11081,11085,11089,11093,11097,11100,11104,11108,11112,11116,
+11120,11123,11127,11131,11135,11139,11143,11146,11150,11154,11158,11162,11165,
+11169,11173,11177,11181,11184,11188,11192,11196,11200,11204,11207,11211,11215,
+11219,11223,11226,11230,11234,11238,11241,11245,11249,11253,11257,11260,11264,
+11268,11272,11276,11279,11283,11287,11291,11294,11298,11302,11306,11309,11313,
+11317,11321,11324,11328,11332,11336,11339,11343,11347,11351,11354,11358,11362,
+11366,11369,11373,11377,11381,11384,11388,11392,11396,11399,11403,11407,11411,
+11414,11418,11422,11425,11429,11433,11437,11440,11444,11448,11452,11455,11459,
+11463,11466,11470,11474,11477,11481,11485,11489,11492,11496,11500,11503,11507,
+11511,11514,11518,11522,11526,11529,11533,11537,11540,11544,11548,11551,11555,
+11559,11562,11566,11570,11573,11577,11581,11584,11588,11592,11595,11599,11603,
+11606,11610,11614,11617,11621,11625,11628,11632,11636,11639,11643,11647,11650,
+11654,11658,11661,11665,11668,11672,11676,11679,11683,11687,11690,11694,11698,
+11701,11705,11708,11712,11716,11719,11723,11727,11730,11734,11737,11741,11745,
+11748,11752,11755,11759,11763,11766,11770,11774,11777,11781,11784,11788,11792,
+11795,11799,11802,11806,11810,11813,11817,11820,11824,11827,11831,11835,11838,
+11842,11845,11849,11853,11856,11860,11863,11867,11870,11874,11878,11881,11885,
+11888,11892,11895,11899,11903,11906,11910,11913,11917,11920,11924,11927,11931,
+11935,11938,11942,11945,11949,11952,11956,11959,11963,11967,11970,11974,11977,
+11981,11984,11988,11991,11995,11998,12002,12005,12009,12012,12016,12020,12023,
+12027,12030,12034,12037,12041,12044,12048,12051,12055,12058,12062,12065,12069,
+12072,12076,12079,12083,12086,12090,12093,12097,12100,12104,12107,12111,12114,
+12118,12121,12125,12128,12132,12135,12139,12142,12146,12149,12153,12156,12160,
+12163,12167,12170,12174,12177,12181,12184,12188,12191,12195,12198,12201,12205,
+12208,12212,12215,12219,12222,12226,12229,12233,12236,12240,12243,12246,12250,
+12253,12257,12260,12264,12267,12271,12274,12278,12281,12284,12288,12291,12295,
+12298,12302,12305,12309,12312,12315,12319,12322,12326,12329,12333,12336,12339,
+12343,12346,12350,12353,12357,12360,12363,12367,12370,12374,12377,12380,12384,
+12387,12391,12394,12398,12401,12404,12408,12411,12415,12418,12421,12425,12428,
+12432,12435,12438,12442,12445,12449,12452,12455,12459,12462,12466,12469,12472,
+12476,12479,12482,12486,12489,12493,12496,12499,12503,12506,12510,12513,12516,
+12520,12523,12526,12530,12533,12537,12540,12543,12547,12550,12553,12557,12560,
+12563,12567,12570,12574,12577,12580,12584,12587,12590,12594,12597,12600,12604,
+12607,12610,12614,12617,12620,12624,12627,12630,12634,12637,12640,12644,12647,
+12651,12654,12657,12661,12664,12667,12671,12674,12677,12680,12684,12687,12690,
+12694,12697,12700,12704,12707,12710,12714,12717,12720,12724,12727,12730,12734,
+12737,12740,12744,12747,12750,12753,12757,12760,12763,12767,12770,12773,12777,
+12780,12783,12787,12790,12793,12796,12800,12803,12806,12810,12813,12816,12819,
+12823,12826,12829,12833,12836,12839,12842,12846,12849,12852,12856,12859,12862,
+12865,12869,12872,12875,12878,12882,12885,12888,12892,12895,12898,12901,12905,
+12908,12911,12914,12918,12921,12924,12927,12931,12934,12937,12940,12944,12947,
+12950,12953,12957,12960,12963,12966,12970,12973,12976,12979,12983,12986,12989,
+12992,12996,12999,13002,13005,13009,13012,13015,13018,13022,13025,13028,13031,
+13034,13038,13041,13044,13047,13051,13054,13057,13060,13064,13067,13070,13073,
+13076,13080,13083,13086,13089,13092,13096,13099,13102,13105,13109,13112,13115,
+13118,13121,13125,13128,13131,13134,13137,13141,13144,13147,13150,13153,13157,
+13160,13163,13166,13169,13173,13176,13179,13182,13185,13188,13192,13195,13198,
+13201,13204,13208,13211,13214,13217,13220,13224,13227,13230,13233,13236,13239,
+13243,13246,13249,13252,13255,13258,13262,13265,13268,13271,13274,13277,13281,
+13284,13287,13290,13293,13296,13300,13303,13306,13309,13312,13315,13318,13322,
+13325,13328,13331,13334,13337,13341,13344,13347,13350,13353,13356,13359,13363,
+13366,13369,13372,13375,13378,13381,13385,13388,13391,13394,13397,13400,13403,
+13406,13410,13413,13416,13419,13422,13425,13428,13431,13435,13438,13441,13444,
+13447,13450,13453,13456,13460,13463,13466,13469,13472,13475,13478,13481,13484,
+13488,13491,13494,13497,13500,13503,13506,13509,13512,13516,13519,13522,13525,
+13528,13531,13534,13537,13540,13543,13547,13550,13553,13556,13559,13562,13565,
+13568,13571,13574,13577,13581,13584,13587,13590,13593,13596,13599,13602,13605,
+13608,13611,13614,13618,13621,13624,13627,13630,13633,13636,13639,13642,13645,
+13648,13651,13654,13657,13661,13664,13667,13670,13673,13676,13679,13682,13685,
+13688,13691,13694,13697,13700,13703,13706,13709,13713,13716,13719,13722,13725,
+13728,13731,13734,13737,13740,13743,13746,13749,13752,13755,13758,13761,13764,
+13767,13770,13773,13776,13780,13783,13786,13789,13792,13795,13798,13801,13804,
+13807,13810,13813,13816,13819,13822,13825,13828,13831,13834,13837,13840,13843,
+13846,13849,13852,13855,13858,13861,13864,13867,13870,13873,13876,13879,13882,
+13885,13888,13891,13894,13897,13900,13903,13906,13909,13912,13915,13918,13921,
+13924,13927,13930,13933,13936,13939,13942,13945,13948,13951,13954,13957,13960,
+13963,13966,13969,13972,13975,13978,13981,13984,13987,13990,13993,13996,13999,
+14002,14005,14008,14011,14014,14017,14020,14023,14026,14029,14032,14035,14038,
+14041,14044,14047,14050,14053,14056,14059,14062,14065,14068,14071,14074,14077,
+14080,14083,14086,14088,14091,14094,14097,14100,14103,14106,14109,14112,14115,
+14118,14121,14124,14127,14130,14133,14136,14139,14142,14145,14148,14151,14154,
+14156,14159,14162,14165,14168,14171,14174,14177,14180,14183,14186,14189,14192,
+14195,14198,14201,14204,14206,14209,14212,14215,14218,14221,14224,14227,14230,
+14233,14236,14239,14242,14245,14247,14250,14253,14256,14259,14262,14265,14268,
+14271,14274,14277,14280,14283,14285,14288,14291,14294,14297,14300,14303,14306,
+14309,14312,14315,14318,14320,14323,14326,14329,14332,14335,14338,14341,14344,
+14347,14350,14352,14355,14358,14361,14364,14367,14370,14373,14376,14379,14381,
+14384,14387,14390,14393,14396,14399,14402,14405,14407,14410,14413,14416,14419,
+14422,14425,14428,14431,14433,14436,14439,14442,14445,14448,14451,14454,14456,
+14459,14462,14465,14468,14471,14474,14477,14479,14482,14485,14488,14491,14494,
+14497,14500,14502,14505,14508,14511,14514,14517,14520,14523,14525,14528,14531,
+14534,14537,14540,14543,14545,14548,14551,14554,14557,14560,14563,14565,14568,
+14571,14574,14577,14580,14583,14585,14588,14591,14594,14597,14600,14602,14605,
+14608,14611,14614,14617,14620,14622,14625,14628,14631,14634,14637,14639,14642,
+14645,14648,14651,14654,14656,14659,14662,14665,14668,14671,14673,14676,14679,
+14682,14685,14688,14690,14693,14696,14699,14702,14705,14707,14710,14713,14716,
+14719,14721,14724,14727,14730,14733,14736,14738,14741,14744,14747,14750,14752,
+14755,14758,14761,14764,14767,14769,14772,14775,14778,14781,14783,14786,14789,
+14792,14795,14797,14800,14803,14806,14809,14811,14814,14817,14820,14823,14825,
+14828,14831,14834,14837,14839,14842,14845,14848,14851,14853,14856,14859,14862,
+14865,14867,14870,14873,14876,14878,14881,14884,14887,14890,14892,14895,14898,
+14901,14904,14906,14909,14912,14915,14917,14920,14923,14926,14929,14931,14934,
+14937,14940,14942,14945,14948,14951,14954,14956,14959,14962,14965,14967,14970,
+14973,14976,14978,14981,14984,14987,14990,14992,14995,14998,15001,15003,15006,
+15009,15012,15014,15017,15020,15023,15025,15028,15031,15034,15036,15039,15042,
+15045,15047,15050,15053,15056,15058,15061,15064,15067,15069,15072,15075,15078,
+15080,15083,15086,15089,15091,15094,15097,15100,15102,15105,15108,15111,15113,
+15116,15119,15122,15124,15127,15130,15132,15135,15138,15141,15143,15146,15149,
+15152,15154,15157,15160,15163,15165,15168,15171,15173,15176,15179,15182,15184,
+15187,15190,15192,15195,15198,15201,15203,15206,15209,15212,15214,15217,15220,
+15222,15225,15228,15231,15233,15236,15239,15241,15244,15247,15250,15252,15255,
+15258,15260,15263,15266,15269,15271,15274,15277,15279,15282,15285,15287,15290,
+15293,15296,15298,15301,15304,15306,15309,15312,15314,15317,15320,15323,15325,
+15328,15331,15333,15336,15339,15341,15344,15347,15349,15352,15355,15358,15360,
+15363,15366,15368,15371,15374,15376,15379,15382,15384,15387,15390,15392,15395,
+15398,15401,15403,15406,15409,15411,15414,15417,15419,15422,15425,15427,15430,
+15433,15435,15438,15441,15443,15446,15449,15451,15454,15457,15459,15462,15465,
+15467,15470,15473,15475,15478,15481,15483,15486,15489,15491,15494,15497,15499,
+15502,15505,15507,15510,15513,15515,15518,15521,15523,15526,15529,15531,15534,
+15537,15539,15542,15544,15547,15550,15552,15555,15558,15560,15563,15566,15568,
+15571,15574,15576,15579,15582,15584,15587,15590,15592,15595,15597,15600,15603,
+15605,15608,15611,15613,15616,15619,15621,15624,15626,15629,15632,15634,15637,
+15640,15642,15645,15648,15650,15653,15655,15658,15661,15663,15666,15669,15671,
+15674,15676,15679,15682,15684,15687,15690,15692,15695,15697,15700,15703,15705,
+15708,15711,15713,15716,15718,15721,15724,15726,15729,15732,15734,15737,15739,
+15742,15745,15747,15750,15752,15755,15758,15760,15763,15766,15768,15771,15773,
+15776,15779,15781,15784,15786,15789,15792,15794,15797,15799,15802,15805,15807,
+15810,15812,15815,15818,15820,15823,15825,15828,15831,15833,15836,15838,15841,
+15844,15846,15849,15851,15854,15857,15859,15862,15864,15867,15870,15872,15875,
+15877,15880,15882,15885,15888,15890,15893,15895,15898,15901,15903,15906,15908,
+15911,15914,15916,15919,15921,15924,15926,15929,15932,15934,15937,15939,15942,
+15944,15947,15950,15952,15955,15957,15960,15962,15965,15968,15970,15973,15975,
+15978,15980,15983,15986,15988,15991,15993,15996,15998,16001,16004,16006,16009,
+16011,16014,16016,16019,16022,16024,16027,16029,16032,16034,16037,16039,16042,
+16045,16047,16050,16052,16055,16057,16060,16063,16065,16068,16070,16073,16075,
+16078,16080,16083,16085,16088,16091,16093,16096,16098,16101,16103,16106,16108,
+16111,16114,16116,16119,16121,16124,16126,16129,16131,16134,16136,16139,16141,
+16144,16147,16149,16152,16154,16157,16159,16162,16164,16167,16169,16172,16174,
+16177,16180,16182,16185,16187,16190,16192,16195,16197,16200,16202,16205,16207,
+16210,16212,16215,16218,16220,16223,16225,16228,16230,16233,16235,16238,16240,
+16243,16245,16248,16250,16253,16255,16258,16260,16263,16265,16268,16270,16273,
+16276,16278,16281,16283,16286,16288,16291,16293,16296,16298,16301,16303,16306,
+16308,16311,16313,16316,16318,16321,16323,16326,16328,16331,16333,16336,16338,
+16341,16343,16346,16348,16351,16353,16356,16358,16361,16363,16366,16368,16371,
+16373,16376,16378,16381,16383,16386,16388,16391,16393,16396,16398,16401,16403,
+16406,16408,16411,16413,16416,16418,16421,16423,16426,16428,16431,16433,16436,
+16438,16441,16443,16446,16448,16451,16453,16456,16458,16461,16463,16466,16468,
+16471,16473,16475,16478,16480,16483,16485,16488,16490,16493,16495,16498,16500,
+16503,16505,16508,16510,16513,16515,16518,16520,16523,16525,16527,16530,16532,
+16535,16537,16540,16542,16545,16547,16550,16552,16555,16557,16560,16562,16565,
+16567,16569,16572,16574,16577,16579,16582,16584,16587,16589,16592,16594,16597,
+16599,16601,16604,16606,16609,16611,16614,16616,16619,16621,16624,16626,16629,
+16631,16633,16636,16638,16641,16643,16646,16648,16651,16653,16656,16658,16660,
+16663,16665,16668,16670,16673,16675,16678,16680,16682,16685,16687,16690,16692,
+16695,16697,16700,16702,16704,16707,16709,16712,16714,16717,16719,16722,16724,
+16726,16729,16731,16734,16736,16739,16741,16743,16746,16748,16751,16753,16756,
+16758,16761,16763,16765,16768,16770,16773,16775,16778,16780,16782,16785,16787,
+16790,16792,16795,16797,16799,16802,16804,16807,16809,16812,16814,16816,16819,
+16821,16824,16826,16829,16831,16833,16836,16838,16841,16843,16845,16848,16850,
+16853,16855,16858,16860,16862,16865,16867,16870,16872,16874,16877,16879,16882,
+16884,16887,16889,16891,16894,16896,16899,16901,16903,16906,16908,16911,16913,
+16915,16918,16920,16923,16925,16927,16930,16932,16935,16937,16940,16942,16944,
+16947,16949,16952,16954,16956,16959,16961,16964,16966,16968,16971,16973,16976,
+16978,16980,16983,16985,16988,16990,16992,16995,16997,16999,17002,17004,17007,
+17009,17011,17014,17016,17019,17021,17023,17026,17028,17031,17033,17035,17038,
+17040,17043,17045,17047,17050,17052,17054,17057,17059,17062,17064,17066,17069,
+17071,17074,17076,17078,17081,17083,17085,17088,17090,17093,17095,17097,17100,
+17102,17104,17107,17109,17112,17114,17116,17119,17121,17123,17126,17128,17131,
+17133,17135,17138,17140,17142,17145,17147,17150,17152,17154,17157,17159,17161,
+17164,17166,17168,17171,17173,17176,17178,17180,17183,17185,17187,17190,17192,
+17194,17197,17199,17202,17204,17206,17209,17211,17213,17216,17218,17220,17223,
+17225,17228,17230,17232,17235,17237,17239,17242,17244,17246,17249,17251,17253,
+17256,17258,17260,17263,17265,17268,17270,17272,17275,17277,17279,17282,17284,
+17286,17289,17291,17293,17296,17298,17300,17303,17305,17307,17310,17312,17315,
+17317,17319,17322,17324,17326,17329,17331,17333,17336,17338,17340,17343,17345,
+17347,17350,17352,17354,17357,17359,17361,17364,17366,17368,17371,17373,17375,
+17378,17380,17382,17385,17387,17389,17392,17394,17396,17399,17401,17403,17406,
+17408,17410,17413,17415,17417,17420,17422,17424,17427,17429,17431,17434,17436,
+17438,17441,17443,17445,17448,17450,17452,17454,17457,17459,17461,17464,17466,
+17468,17471,17473,17475,17478,17480,17482,17485,17487,17489,17492,17494,17496,
+17499,17501,17503,17505,17508,17510,17512,17515,17517,17519,17522,17524,17526,
+17529,17531,17533,17536,17538,17540,17542,17545,17547,17549,17552,17554,17556,
+17559,17561,17563,17566,17568,17570,17572,17575,17577,17579,17582,17584,17586,
+17589,17591,17593,17595,17598,17600,17602,17605,17607,17609,17612,17614,17616,
+17618,17621,17623,17625,17628,17630,17632,17635,17637,17639,17641,17644,17646,
+17648,17651,17653,17655,17657,17660,17662,17664,17667,17669,17671,17673,17676,
+17678,17680,17683,17685,17687,17689,17692,17694,17696,17699,17701,17703,17705,
+17708,17710,17712,17715,17717,17719,17721,17724,17726,17728,17731,17733,17735,
+17737,17740,17742,17744,17747,17749,17751,17753,17756,17758,17760,17762,17765,
+17767,17769,17772,17774,17776,17778,17781,17783,17785,17787,17790,17792,17794,
+17797,17799,17801,17803,17806,17808,17810,17812,17815,17817,17819,17821,17824,
+17826,17828,17831,17833,17835,17837,17840,17842,17844,17846,17849,17851,17853,
+17855,17858,17860,17862,17864,17867,17869,17871,17874,17876,17878,17880,17883,
+17885,17887,17889,17892,17894,17896,17898,17901,17903,17905,17907,17910,17912,
+17914,17916,17919,17921,17923,17925,17928,17930,17932,17934,17937,17939,17941,
+17943,17946,17948,17950,17952,17955,17957,17959,17961,17964,17966,17968,17970,
+17973,17975,17977,17979,17982,17984,17986,17988,17991,17993,17995,17997,18000,
+18002,18004,18006,18008,18011,18013,18015,18017,18020,18022,18024,18026,18029,
+18031,18033,18035,18038,18040,18042,18044,18046,18049,18051,18053,18055,18058,
+18060,18062,18064,18067,18069,18071,18073,18075,18078,18080,18082,18084,18087,
+18089,18091,18093,18096,18098,18100,18102,18104,18107,18109,18111,18113,18116,
+18118,18120,18122,18124,18127,18129,18131,18133,18136,18138,18140,18142,18144,
+18147,18149,18151,18153,18156,18158,18160,18162,18164,18167,18169,18171,18173,
+18175,18178,18180,18182,18184,18187,18189,18191,18193,18195,18198,18200,18202,
+18204,18206,18209,18211,18213,18215,18218,18220,18222,18224,18226,18229,18231,
+18233,18235,18237,18240,18242,18244,18246,18248,18251,18253,18255,18257,18259,
+18262,18264,18266,18268,18270,18273,18275,18277,18279,18281,18284,18286,18288,
+18290,18292,18295,18297,18299,18301,18303,18306,18308,18310,18312,18314,18317,
+18319,18321,18323,18325,18328,18330,18332,18334,18336,18339,18341,18343,18345,
+18347,18349,18352,18354,18356,18358,18360,18363,18365,18367,18369,18371,18374,
+18376,18378,18380,18382,18385,18387,18389,18391,18393,18395,18398,18400,18402,
+18404,18406,18409,18411,18413,18415,18417,18419,18422,18424,18426,18428,18430,
+18433,18435,18437,18439,18441,18443,18446,18448,18450,18452,18454,18456,18459,
+18461,18463,18465,18467,18470,18472,18474,18476,18478,18480,18483,18485,18487,
+18489,18491,18493,18496,18498,18500,18502,18504,18506,18509,18511,18513,18515,
+18517,18519,18522,18524,18526,18528,18530,18532,18535,18537,18539,18541,18543,
+18545,18548,18550,18552,18554,18556,18558,18561,18563,18565,18567,18569,18571,
+18574,18576,18578,18580,18582,18584,18586,18589,18591,18593,18595,18597,18599,
+18602,18604,18606,18608,18610,18612,18614,18617,18619,18621,18623,18625,18627,
+18630,18632,18634,18636,18638,18640,18642,18645,18647,18649,18651,18653,18655,
+18658,18660,18662,18664,18666,18668,18670,18673,18675,18677,18679,18681,18683,
+18685,18688,18690,18692,18694,18696,18698,18700,18703,18705,18707,18709,18711,
+18713,18715,18718,18720,18722,18724,18726,18728,18730,18733,18735,18737,18739,
+18741,18743,18745,18747,18750,18752,18754,18756,18758,18760,18762,18765,18767,
+18769,18771,18773,18775,18777,18779,18782,18784,18786,18788,18790,18792,18794,
+18797,18799,18801,18803,18805,18807,18809,18811,18814,18816,18818,18820,18822,
+18824,18826,18828,18831,18833,18835,18837,18839,18841,18843,18845,18848,18850,
+18852,18854,18856,18858,18860,18862,18865,18867,18869,18871,18873,18875,18877,
+18879,18881,18884,18886,18888,18890,18892,18894,18896,18898,18901,18903,18905,
+18907,18909,18911,18913,18915,18917,18920,18922,18924,18926,18928,18930,18932,
+18934,18936,18939,18941,18943,18945,18947,18949,18951,18953,18955,18958,18960,
+18962,18964,18966,18968,18970,18972,18974,18977,18979,18981,18983,18985,18987,
+18989,18991,18993,18995,18998,19000,19002,19004,19006,19008,19010,19012,19014,
+19016,19019,19021,19023,19025,19027,19029,19031,19033,19035,19037,19040,19042,
+19044,19046,19048,19050,19052,19054,19056,19058,19061,19063,19065,19067,19069,
+19071,19073,19075,19077,19079,19081,19084,19086,19088,19090,19092,19094,19096,
+19098,19100,19102,19104,19107,19109,19111,19113,19115,19117,19119,19121,19123,
+19125,19127,19130,19132,19134,19136,19138,19140,19142,19144,19146,19148,19150,
+19152,19155,19157,19159,19161,19163,19165,19167,19169,19171,19173,19175,19177,
+19180,19182,19184,19186,19188,19190,19192,19194,19196,19198,19200,19202,19204,
+19207,19209,19211,19213,19215,19217,19219,19221,19223,19225,19227,19229,19231,
+19233,19236,19238,19240,19242,19244,19246,19248,19250,19252,19254,19256,19258,
+19260,19262,19265,19267,19269,19271,19273,19275,19277,19279,19281,19283,19285,
+19287,19289,19291,19293,19296,19298,19300,19302,19304,19306,19308,19310,19312,
+19314,19316,19318,19320,19322,19324,19327,19329,19331,19333,19335,19337,19339,
+19341,19343,19345,19347,19349,19351,19353,19355,19357,19359,19362,19364,19366,
+19368,19370,19372,19374,19376,19378,19380,19382,19384,19386,19388,19390,19392,
+19394,19396,19398,19401,19403,19405,19407,19409,19411,19413,19415,19417,19419,
+19421,19423,19425,19427,19429,19431,19433,19435,19437,19439,19442,19444,19446,
+19448,19450,19452,19454,19456,19458,19460,19462,19464,19466,19468,19470,19472,
+19474,19476,19478,19480,19482,19484,19486,19489,19491,19493,19495,19497,19499,
+19501,19503,19505,19507,19509,19511,19513,19515,19517,19519,19521,19523,19525,
+19527,19529,19531,19533,19535,19537,19539,19541,19544,19546,19548,19550,19552,
+19554,19556,19558,19560,19562,19564,19566,19568,19570,19572,19574,19576,19578,
+19580,19582,19584,19586,19588,19590,19592,19594,19596,19598,19600,19602,19604,
+19606,19608,19611,19613,19615,19617,19619,19621,19623,19625,19627,19629,19631,
+19633,19635,19637,19639,19641,19643,19645,19647,19649,19651,19653,19655,19657,
+19659,19661,19663,19665,19667,19669,19671,19673,19675,19677,19679,19681,19683,
+19685,19687,19689,19691,19693,19695,19697,19699,19701,19703,19705,19707,19709,
+19711,19714,19716,19718,19720,19722,19724,19726,19728,19730,19732,19734,19736,
+19738,19740,19742,19744,19746,19748,19750,19752,19754,19756,19758,19760,19762,
+19764,19766,19768,19770,19772,19774,19776,19778,19780,19782,19784,19786,19788,
+19790,19792,19794,19796,19798,19800,19802,19804,19806,19808,19810,19812,19814,
+19816,19818,19820,19822,19824,19826,19828,19830,19832,19834,19836,19838,19840,
+19842,19844,19846,19848,19850,19852,19854,19856,19858,19860,19862,19864,19866,
+19868,19870,19872,19874,19876,19878,19880,19882,19884,19886,19888,19890,19892,
+19894,19896,19898,19900,19902,19904,19906,19908,19910,19912,19914,19916,19918,
+19920,19922,19924,19926,19928,19930,19932,19934,19935,19937,19939,19941,19943,
+19945,19947,19949,19951,19953,19955,19957,19959,19961,19963,19965,19967,19969,
+19971,19973,19975,19977,19979,19981,19983,19985,19987,19989,19991,19993,19995,
+19997,19999,20001,20003,20005,20007,20009,20011,20013,20015,20017,20019,20021,
+20023,20025,20027,20029,20031,20033,20035,20037,20038,20040,20042,20044,20046,
+20048,20050,20052,20054,20056,20058,20060,20062,20064,20066,20068,20070,20072,
+20074,20076,20078,20080,20082,20084,20086,20088,20090,20092,20094,20096,20098,
+20100,20102,20104,20105,20107,20109,20111,20113,20115,20117,20119,20121,20123,
+20125,20127,20129,20131,20133,20135,20137,20139,20141,20143,20145,20147,20149,
+20151,20153,20155,20157,20159,20160,20162,20164,20166,20168,20170,20172,20174,
+20176,20178,20180,20182,20184,20186,20188,20190,20192,20194,20196,20198,20200,
+20202,20204,20205,20207,20209,20211,20213,20215,20217,20219,20221,20223,20225,
+20227,20229,20231,20233,20235,20237,20239,20241,20243,20245,20247,20248,20250,
+20252,20254,20256,20258,20260,20262,20264,20266,20268,20270,20272,20274,20276,
+20278,20280,20282,20284,20285,20287,20289,20291,20293,20295,20297,20299,20301,
+20303,20305,20307,20309,20311,20313,20315,20317,20319,20320,20322,20324,20326,
+20328,20330,20332,20334,20336,20338,20340,20342,20344,20346,20348,20350,20352,
+20353,20355,20357,20359,20361,20363,20365,20367,20369,20371,20373,20375,20377,
+20379,20381,20382,20384,20386,20388,20390,20392,20394,20396,20398,20400,20402,
+20404,20406,20408,20410,20411,20413,20415,20417,20419,20421,20423,20425,20427,
+20429,20431,20433,20435,20437,20439,20440,20442,20444,20446,20448,20450,20452,
+20454,20456,20458,20460,20462,20464,20466,20467,20469,20471,20473,20475,20477,
+20479,20481,20483,20485,20487,20489,20491,20492,20494,20496,20498,20500,20502,
+20504,20506,20508,20510,20512,20514,20515,20517,20519,20521,20523,20525,20527,
+20529,20531,20533,20535,20537,20539,20540,20542,20544,20546,20548,20550,20552,
+20554,20556,20558,20560,20562,20563,20565,20567,20569,20571,20573,20575,20577,
+20579,20581,20583,20584,20586,20588,20590,20592,20594,20596,20598,20600,20602,
+20604,20606,20607,20609,20611,20613,20615,20617,20619,20621,20623,20625,20627,
+20628,20630,20632,20634,20636,20638,20640,20642,20644,20646,20647,20649,20651,
+20653,20655,20657,20659,20661,20663,20665,20667,20668,20670,20672,20674,20676,
+20678,20680,20682,20684,20686,20687,20689,20691,20693,20695,20697,20699,20701,
+20703,20705,20706,20708,20710,20712,20714,20716,20718,20720,20722,20724,20725,
+20727,20729,20731,20733,20735,20737,20739,20741,20742,20744,20746,20748,20750,
+20752,20754,20756,20758,20760,20761,20763,20765,20767,20769,20771,20773,20775,
+20777,20778,20780,20782,20784,20786,20788,20790,20792,20794,20795,20797,20799,
+20801,20803,20805,20807,20809,20811,20812,20814,20816,20818,20820,20822,20824,
+20826,20828,20829,20831,20833,20835,20837,20839,20841,20843,20845,20846,20848,
+20850,20852,20854,20856,20858,20860,20861,20863,20865,20867,20869,20871,20873,
+20875,20877,20878,20880,20882,20884,20886,20888,20890,20892,20893,20895,20897,
+20899,20901,20903,20905,20907,20908,20910,20912,20914,20916,20918,20920,20922,
+20923,20925,20927,20929,20931,20933,20935,20937,20938,20940,20942,20944,20946,
+20948,20950,20952,20953,20955,20957,20959,20961,20963,20965,20967,20968,20970,
+20972,20974,20976,20978,20980,20982,20983,20985,20987,20989,20991,20993,20995,
+20996,20998,21000,21002,21004,21006,21008,21010,21011,21013,21015,21017,21019,
+21021,21023,21024,21026,21028,21030,21032,21034,21036,21038,21039,21041,21043,
+21045,21047,21049,21051,21052,21054,21056,21058,21060,21062,21064,21065,21067,
+21069,21071,21073,21075,21077,21078,21080,21082,21084,21086,21088,21090,21091,
+21093,21095,21097,21099,21101,21103,21104,21106,21108,21110,21112,21114,21116,
+21117,21119,21121,21123,21125,21127,21129,21130,21132,21134,21136,21138,21140,
+21142,21143,21145,21147,21149,21151,21153,21155,21156,21158,21160,21162,21164,
+21166,21167,21169,21171,21173,21175,21177,21179,21180,21182,21184,21186,21188,
+21190,21192,21193,21195,21197,21199,21201,21203,21204,21206,21208,21210,21212,
+21214,21216,21217,21219,21221,21223,21225,21227,21228,21230,21232,21234,21236,
+21238,21239,21241,21243,21245,21247,21249,21251,21252,21254,21256,21258,21260,
+21262,21263,21265,21267,21269,21271,21273,21274,21276,21278,21280,21282,21284,
+21285,21287,21289,21291,21293,21295,21296,21298,21300,21302,21304,21306,21308,
+21309,21311,21313,21315,21317,21319,21320,21322,21324,21326,21328,21330,21331,
+21333,21335,21337,21339,21341,21342,21344,21346,21348,21350,21351,21353,21355,
+21357,21359,21361,21362,21364,21366,21368,21370,21372,21373,21375,21377,21379,
+21381,21383,21384,21386,21388,21390,21392,21394,21395,21397,21399,21401,21403,
+21405,21406,21408,21410,21412,21414,21415,21417,21419,21421,21423,21425,21426,
+21428,21430,21432,21434,21436,21437,21439,21441,21443,21445,21446,21448,21450,
+21452,21454,21456,21457,21459,21461,21463,21465,21466,21468,21470,21472,21474,
+21476,21477,21479,21481,21483,21485,21486,21488,21490,21492,21494,21496,21497,
+21499,21501,21503,21505,21506,21508,21510,21512,21514,21516,21517,21519,21521,
+21523,21525,21526,21528,21530,21532,21534,21535,21537,21539,21541,21543,21545,
+21546,21548,21550,21552,21554,21555,21557,21559,21561,21563,21564,21566,21568,
+21570,21572,21573,21575,21577,21579,21581,21582,21584,21586,21588,21590,21592,
+21593,21595,21597,21599,21601,21602,21604,21606,21608,21610,21611,21613,21615,
+21617,21619,21620,21622,21624,21626,21628,21629,21631,21633,21635,21637,21638,
+21640,21642,21644,21646,21647,21649,21651,21653,21655,21656,21658,21660,21662,
+21664,21665,21667,21669,21671,21673,21674,21676,21678,21680,21682,21683,21685,
+21687,21689,21691,21692,21694,21696,21698,21700,21701,21703,21705,21707,21709,
+21710,21712,21714,21716,21718,21719,21721,21723,21725,21726,21728,21730,21732,
+21734,21735,21737,21739,21741,21743,21744,21746,21748,21750,21752,21753,21755,
+21757,21759,21761,21762,21764,21766,21768,21769,21771,21773,21775,21777,21778,
+21780,21782,21784,21786,21787,21789,21791,21793,21794,21796,21798,21800,21802,
+21803,21805,21807,21809,21811,21812,21814,21816,21818,21819,21821,21823,21825,
+21827,21828,21830,21832,21834,21836,21837,21839,21841,21843,21844,21846,21848,
+21850,21852,21853,21855,21857,21859,21860,21862,21864,21866,21868,21869,21871,
+21873,21875,21876,21878,21880,21882,21884,21885,21887,21889,21891,21892,21894,
+21896,21898,21900,21901,21903,21905,21907,21908,21910,21912,21914,21916,21917,
+21919,21921,21923,21924,21926,21928,21930,21932,21933,21935,21937,21939,21940,
+21942,21944,21946,21947,21949,21951,21953,21955,21956,21958,21960,21962,21963,
+21965,21967,21969,21970,21972,21974,21976,21978,21979,21981,21983,21985,21986,
+21988,21990,21992,21993,21995,21997,21999,22001,22002,22004,22006,22008,22009,
+22011,22013,22015,22016,22018,22020,22022,22023,22025,22027,22029,22031,22032,
+22034,22036,22038,22039,22041,22043,22045,22046,22048,22050,22052,22053,22055,
+22057,22059,22060,22062,22064,22066,22068,22069,22071,22073,22075,22076,22078,
+22080,22082,22083,22085,22087,22089,22090,22092,22094,22096,22097,22099,22101,
+22103,22104,22106,22108,22110,22111,22113,22115,22117,22118,22120,22122,22124,
+22125,22127,22129,22131,22132,22134,22136,22138,22140,22141,22143,22145,22147,
+22148,22150,22152,22154,22155,22157,22159,22161,22162,22164,22166,22168,22169,
+22171,22173,22175,22176,22178,22180,22182,22183,22185,22187,22189,22190,22192,
+22194,22196,22197,22199,22201,22203,22204,22206,22208,22209,22211,22213,22215,
+22216,22218,22220,22222,22223,22225,22227,22229,22230,22232,22234,22236,22237,
+22239,22241,22243,22244,22246,22248,22250,22251,22253,22255,22257,22258,22260,
+22262,22264,22265,22267,22269,22270,22272,22274,22276,22277,22279,22281,22283,
+22284,22286,22288,22290,22291,22293,22295,22297,22298,22300,22302,22304,22305,
+22307,22309,22310,22312,22314,22316,22317,22319,22321,22323,22324,22326,22328,
+22330,22331,22333,22335,22337,22338,22340,22342,22343,22345,22347,22349,22350,
+22352,22354,22356,22357,22359,22361,22363,22364,22366,22368,22369,22371,22373,
+22375,22376,22378,22380,22382,22383,22385,22387,22388,22390,22392,22394,22395,
+22397,22399,22401,22402,22404,22406,22407,22409,22411,22413,22414,22416,22418,
+22420,22421,22423,22425,22426,22428,22430,22432,22433,22435,22437,22439,22440,
+22442,22444,22445,22447,22449,22451,22452,22454,22456,22458,22459,22461,22463,
+22464,22466,22468,22470,22471,22473,22475,22476,22478,22480,22482,22483,22485,
+22487,22488,22490,22492,22494,22495,22497,22499,22501,22502,22504,22506,22507,
+22509,22511,22513,22514,22516,22518,22519,22521,22523,22525,22526,22528,22530,
+22531,22533,22535,22537,22538,22540,22542,22543,22545,22547,22549,22550,22552,
+22554,22555,22557,22559,22561,22562,22564,22566,22567,22569,22571,22573,22574,
+22576,22578,22579,22581,22583,22585,22586,22588,22590,22591,22593,22595,22597,
+22598,22600,22602,22603,22605,22607,22609,22610,22612,22614,22615,22617,22619,
+22620,22622,22624,22626,22627,22629,22631,22632,22634,22636,22638,22639,22641,
+22643,22644,22646,22648,22649,22651,22653,22655,22656,22658,22660,22661,22663,
+22665,22667,22668,22670,22672,22673,22675,22677,22678,22680,22682,22684,22685,
+22687,22689,22690,22692,22694,22695,22697,22699,22701,22702,22704,22706,22707,
+22709,22711,22712,22714,22716,22718,22719,22721,22723,22724,22726,22728,22729,
+22731,22733,22735,22736,22738,22740,22741,22743,22745,22746,22748,22750,22752,
+22753,22755,22757,22758,22760,22762,22763,22765,22767,22768,22770,22772,22774,
+22775,22777,22779,22780,22782,22784,22785,22787,22789,22790,22792,22794,22796,
+22797,22799,22801,22802,22804,22806,22807,22809,22811,22812,22814,22816,22818,
+22819,22821,22823,22824,22826,22828,22829,22831,22833,22834,22836,22838,22840,
+22841,22843,22845,22846,22848,22850,22851,22853,22855,22856,22858,22860,22861,
+22863,22865,22866,22868,22870,22872,22873,22875,22877,22878,22880,22882,22883,
+22885,22887,22888,22890,22892,22893,22895,22897,22898,22900,22902,22904,22905,
+22907,22909,22910,22912,22914,22915,22917,22919,22920,22922,22924,22925,22927,
+22929,22930,22932,22934,22935,22937,22939,22941,22942,22944,22946,22947,22949,
+22951,22952,22954,22956,22957,22959,22961,22962,22964,22966,22967,22969,22971,
+22972,22974,22976,22977,22979,22981,22982,22984,22986,22987,22989,22991,22992,
+22994,22996,22998,22999,23001,23003,23004,23006,23008,23009,23011,23013,23014,
+23016,23018,23019,23021,23023,23024,23026,23028,23029,23031,23033,23034,23036,
+23038,23039,23041,23043,23044,23046,23048,23049,23051,23053,23054,23056,23058,
+23059,23061,23063,23064,23066,23068,23069,23071,23073,23074,23076,23078,23079,
+23081,23083,23084,23086,23088,23089,23091,23093,23094,23096,23098,23099,23101,
+23103,23104,23106,23108,23109,23111,23113,23114,23116,23118,23119,23121,23123,
+23124,23126,23128,23129,23131,23133,23134,23136,23138,23139,23141,23143,23144,
+23146,23148,23149,23151,23153,23154,23156,23158,23159,23161,23163,23164,23166,
+23168,23169,23171,23172,23174,23176,23177,23179,23181,23182,23184,23186,23187,
+23189,23191,23192,23194,23196,23197,23199,23201,23202,23204,23206,23207,23209,
+23211,23212,23214,23216,23217,23219,23221,23222,23224,23226,23227,23229,23230,
+23232,23234,23235,23237,23239,23240,23242,23244,23245,23247,23249,23250,23252,
+23254,23255,23257,23259,23260,23262,23264,23265,23267,23268,23270,23272,23273,
+23275,23277,23278,23280,23282,23283,23285,23287,23288,23290,23292,23293,23295,
+23297,23298,23300,23301,23303,23305,23306,23308,23310,23311,23313,23315,23316,
+23318,23320,23321,23323,23324,23326,23328,23329,23331,23333,23334,23336,23338,
+23339,23341,23343,23344,23346,23348,23349,23351,23352,23354,23356,23357,23359,
+23361,23362,23364,23366,23367,23369,23371,23372,23374,23375,23377,23379,23380,
+23382,23384,23385,23387,23389,23390,23392,23393,23395,23397,23398,23400,23402,
+23403,23405,23407,23408,23410,23412,23413,23415,23416,23418,23420,23421,23423,
+23425,23426,23428,23430,23431,23433,23434,23436,23438,23439,23441,23443,23444,
+23446,23448,23449,23451,23452,23454,23456,23457,23459,23461,23462,23464,23466,
+23467,23469,23470,23472,23474,23475,23477,23479,23480,23482,23483,23485,23487,
+23488,23490,23492,23493,23495,23497,23498,23500,23501,23503,23505,23506,23508,
+23510,23511,23513,23514,23516,23518,23519,23521,23523,23524,23526,23527,23529,
+23531,23532,23534,23536,23537,23539,23541,23542,23544,23545,23547,23549,23550,
+23552,23554,23555,23557,23558,23560,23562,23563,23565,23567,23568,23570,23571,
+23573,23575,23576,23578,23580,23581,23583,23584,23586,23588,23589,23591,23593,
+23594,23596,23597,23599,23601,23602,23604,23606,23607,23609,23610,23612,23614,
+23615,23617,23618,23620,23622,23623,23625,23627,23628,23630,23631,23633,23635,
+23636,23638,23640,23641,23643,23644,23646,23648,23649,23651,23652,23654,23656,
+23657,23659,23661,23662,23664,23665,23667,23669,23670,23672,23674,23675,23677,
+23678,23680,23682,23683,23685,23686,23688,23690,23691,23693,23695,23696,23698,
+23699,23701,23703,23704,23706,23707,23709,23711,23712,23714,23715,23717,23719,
+23720,23722,23724,23725,23727,23728,23730,23732,23733,23735,23736,23738,23740,
+23741,23743,23744,23746,23748,23749,23751,23753,23754,23756,23757,23759,23761,
+23762,23764,23765,23767,23769,23770,23772,23773,23775,23777,23778,23780,23781,
+23783,23785,23786,23788,23790,23791,23793,23794,23796,23798,23799,23801,23802,
+23804,23806,23807,23809,23810,23812,23814,23815,23817,23818,23820,23822,23823,
+23825,23826,23828,23830,23831,23833,23834,23836,23838,23839,23841,23842,23844,
+23846,23847,23849,23850,23852,23854,23855,23857,23858,23860,23862,23863,23865,
+23867,23868,23870,23871,23873,23875,23876,23878,23879,23881,23882,23884,23886,
+23887,23889,23890,23892,23894,23895,23897,23898,23900,23902,23903,23905,23906,
+23908,23910,23911,23913,23914,23916,23918,23919,23921,23922,23924,23926,23927,
+23929,23930,23932,23934,23935,23937,23938,23940,23942,23943,23945,23946,23948,
+23950,23951,23953,23954,23956,23958,23959,23961,23962,23964,23965,23967,23969,
+23970,23972,23973,23975,23977,23978,23980,23981,23983,23985,23986,23988,23989,
+23991,23993,23994,23996,23997,23999,24000,24002,24004,24005,24007,24008,24010,
+24012,24013,24015,24016,24018,24020,24021,24023,24024,24026,24027,24029,24031,
+24032,24034,24035,24037,24039,24040,24042,24043,24045,24047,24048,24050,24051,
+24053,24054,24056,24058,24059,24061,24062,24064,24066,24067,24069,24070,24072,
+24073,24075,24077,24078,24080,24081,24083,24085,24086,24088,24089,24091,24092,
+24094,24096,24097,24099,24100,24102,24104,24105,24107,24108,24110,24111,24113,
+24115,24116,24118,24119,24121,24122,24124,24126,24127,24129,24130,24132,24134,
+24135,24137,24138,24140,24141,24143,24145,24146,24148,24149,24151,24152,24154,
+24156,24157,24159,24160,24162,24164,24165,24167,24168,24170,24171,24173,24175,
+24176,24178,24179,24181,24182,24184,24186,24187,24189,24190,24192,24193,24195,
+24197,24198,24200,24201,24203,24204,24206,24208,24209,24211,24212,24214,24215,
+24217,24219,24220,24222,24223,24225,24226,24228,24230,24231,24233,24234,24236,
+24237,24239,24241,24242,24244,24245,24247,24248,24250,24252,24253,24255,24256,
+24258,24259,24261,24263,24264,24266,24267,24269,24270,24272,24274,24275,24277,
+24278,24280,24281,24283,24285,24286,24288,24289,24291,24292,24294,24296,24297,
+24299,24300,24302,24303,24305,24306,24308,24310,24311,24313,24314,24316,24317,
+24319,24321,24322,24324,24325,24327,24328,24330,24332,24333,24335,24336,24338,
+24339,24341,24342,24344,24346,24347,24349,24350,24352,24353,24355,24356,24358,
+24360,24361,24363,24364,24366,24367,24369,24371,24372,24374,24375,24377,24378,
+24380,24381,24383,24385,24386,24388,24389,24391,24392,24394,24395,24397,24399,
+24400,24402,24403,24405,24406,24408,24410,24411,24413,24414,24416,24417,24419,
+24420,24422,24424,24425,24427,24428,24430,24431,24433,24434,24436,24438,24439,
+24441,24442,24444,24445,24447,24448,24450,24452,24453,24455,24456,24458,24459,
+24461,24462,24464,24465,24467,24469,24470,24472,24473,24475,24476,24478,24479,
+24481,24483,24484,24486,24487,24489,24490,24492,24493,24495,24497,24498,24500,
+24501,24503,24504,24506,24507,24509,24510,24512,24514,24515,24517,24518,24520,
+24521,24523,24524,24526,24528,24529,24531,24532,24534,24535,24537,24538,24540,
+24541,24543,24545,24546,24548,24549,24551,24552,24554,24555,24557,24558,24560,
+24562,24563,24565,24566,24568,24569,24571,24572,24574,24575,24577,24579,24580,
+24582,24583,24585,24586,24588,24589,24591,24592,24594,24596,24597,24599,24600,
+24602,24603,24605,24606,24608,24609,24611,24612,24614,24616,24617,24619,24620,
+24622,24623,24625,24626,24628,24629,24631,24633,24634,24636,24637,24639,24640,
+24642,24643,24645,24646,24648,24649,24651,24653,24654,24656,24657,24659,24660,
+24662,24663,24665,24666,24668,24669,24671,24673,24674,24676,24677,24679,24680,
+24682,24683,24685,24686,24688,24689,24691,24692,24694,24696,24697,24699,24700,
+24702,24703,24705,24706,24708,24709,24711,24712,24714,24715,24717,24719,24720,
+24722,24723,24725,24726,24728,24729,24731,24732,24734,24735,24737,24738,24740,
+24742,24743,24745,24746,24748,24749,24751,24752,24754,24755,24757,24758,24760,
+24761,24763,24765,24766,24768,24769,24771,24772,24774,24775,24777,24778,24780,
+24781,24783,24784,24786,24787,24789,24791,24792,24794,24795,24797,24798,24800,
+24801,24803,24804,24806,24807,24809,24810,24812,24813,24815,24816,24818,24820,
+24821,24823,24824,24826,24827,24829,24830,24832,24833,24835,24836,24838,24839,
+24841,24842,24844,24845,24847,24848,24850,24852,24853,24855,24856,24858,24859,
+24861,24862,24864,24865,24867,24868,24870,24871,24873,24874,24876,24877,24879,
+24880,24882,24883,24885,24887,24888,24890,24891,24893,24894,24896,24897,24899,
+24900,24902,24903,24905,24906,24908,24909,24911,24912,24914,24915,24917,24918,
+24920,24921,24923,24925,24926,24928,24929,24931,24932,24934,24935,24937,24938,
+24940,24941,24943,24944,24946,24947,24949,24950,24952,24953,24955,24956,24958,
+24959,24961,24962,24964,24965,24967,24968,24970,24972,24973,24975,24976,24978,
+24979,24981,24982,24984,24985,24987,24988,24990,24991,24993,24994,24996,24997,
+24999,25000,25002,25003,25005,25006,25008,25009,25011,25012,25014,25015,25017,
+25018,25020,25021,25023,25024,25026,25027,25029,25031,25032,25034,25035,25037,
+25038,25040,25041,25043,25044,25046,25047,25049,25050,25052,25053,25055,25056,
+25058,25059,25061,25062,25064,25065,25067,25068,25070,25071,25073,25074,25076,
+25077,25079,25080,25082,25083,25085,25086,25088,25089,25091,25092,25094,25095,
+25097,25098,25100,25101,25103,25104,25106,25107,25109,25110,25112,25113,25115,
+25116,25118,25119,25121,25122,25124,25125,25127,25128,25130,25131,25133,25134,
+25136,25137,25139,25140,25142,25143,25145,25146,25148,25149,25151,25152,25154,
+25155,25157,25158,25160,25161,25163,25164,25166,25167,25169,25170,25172,25173,
+25175,25176,25178,25179,25181,25182,25184,25185,25187,25188,25190,25191,25193,
+25194,25196,25197,25199,25200,25202,25203,25205,25206,25208,25209,25211,25212,
+25214,25215,25217,25218,25220,25221,25223,25224,25226,25227,25229,25230,25232,
+25233,25235,25236,25238,25239,25241,25242,25244,25245,25247,25248,25250,25251,
+25253,25254,25256,25257,25259,25260,25262,25263,25265,25266,25268,25269,25271,
+25272,25274,25275,25277,25278,25280,25281,25283,25284,25286,25287,25289,25290,
+25292,25293,25295,25296,25298,25299,25301,25302,25304,25305,25306,25308,25309,
+25311,25312,25314,25315,25317,25318,25320,25321,25323,25324,25326,25327,25329,
+25330,25332,25333,25335,25336,25338,25339,25341,25342,25344,25345,25347,25348,
+25350,25351,25353,25354,25356,25357,25359,25360,25362,25363,25365,25366,25367,
+25369,25370,25372,25373,25375,25376,25378,25379,25381,25382,25384,25385,25387,
+25388,25390,25391,25393,25394,25396,25397,25399,25400,25402,25403,25405,25406,
+25408,25409,25411,25412,25413,25415,25416,25418,25419,25421,25422,25424,25425,
+25427,25428,25430,25431,25433,25434,25436,25437,25439,25440,25442,25443,25445,
+25446,25448,25449,25451,25452,25453,25455,25456,25458,25459,25461,25462,25464,
+25465,25467,25468,25470,25471,25473,25474,25476,25477,25479,25480,25482,25483,
+25485,25486,25487,25489,25490,25492,25493,25495,25496,25498,25499,25501,25502,
+25504,25505,25507,25508,25510,25511,25513,25514,25516,25517,25518,25520,25521,
+25523,25524,25526,25527,25529,25530,25532,25533,25535,25536,25538,25539,25541,
+25542,25544,25545,25546,25548,25549,25551,25552,25554,25555,25557,25558,25560,
+25561,25563,25564,25566,25567,25569,25570,25571,25573,25574,25576,25577,25579,
+25580,25582,25583,25585,25586,25588,25589,25591,25592,25594,25595,25596,25598,
+25599,25601,25602,25604,25605,25607,25608,25610,25611,25613,25614,25616,25617,
+25619,25620,25621,25623,25624,25626,25627,25629,25630,25632,25633,25635,25636,
+25638,25639,25641,25642,25643,25645,25646,25648,25649,25651,25652,25654,25655,
+25657,25658,25660,25661,25662,25664,25665,25667,25668,25670,25671,25673,25674,
+25676,25677,25679,25680,25682,25683,25684,25686,25687,25689,25690,25692,25693,
+25695,25696,25698,25699,25701,25702,25703,25705,25706,25708,25709,25711,25712,
+25714,25715,25717,25718,25720,25721,25722,25724,25725,25727,25728,25730,25731,
+25733,25734,25736,25737,25739,25740,25741,25743,25744,25746,25747,25749,25750,
+25752,25753,25755,25756,25757,25759,25760,25762,25763,25765,25766,25768,25769,
+25771,25772,25774,25775,25776,25778,25779,25781,25782,25784,25785,25787,25788,
+25790,25791,25792,25794,25795,25797,25798,25800,25801,25803,25804,25806,25807,
+25808,25810,25811,25813,25814,25816,25817,25819,25820,25822,25823,25824,25826,
+25827,25829,25830,25832,25833,25835,25836,25838,25839,25840,25842,25843,25845,
+25846,25848,25849,25851,25852,25853,25855,25856,25858,25859,25861,25862,25864,
+25865,25867,25868,25869,25871,25872,25874,25875,25877,25878,25880,25881,25882,
+25884,25885,25887,25888,25890,25891,25893,25894,25896,25897,25898,25900,25901,
+25903,25904,25906,25907,25909,25910,25911,25913,25914,25916,25917,25919,25920,
+25922,25923,25924,25926,25927,25929,25930,25932,25933,25935,25936,25937,25939,
+25940,25942,25943,25945,25946,25948,25949,25951,25952,25953,25955,25956,25958,
+25959,25961,25962,25963,25965,25966,25968,25969,25971,25972,25974,25975,25976,
+25978,25979,25981,25982,25984,25985,25987,25988,25989,25991,25992,25994,25995,
+25997,25998,26000,26001,26002,26004,26005,26007,26008,26010,26011,26013,26014,
+26015,26017,26018,26020,26021,26023,26024,26025,26027,26028,26030,26031,26033,
+26034,26036,26037,26038,26040,26041,26043,26044,26046,26047,26049,26050,26051,
+26053,26054,26056,26057,26059,26060,26061,26063,26064,26066,26067,26069,26070,
+26072,26073,26074,26076,26077,26079,26080,26082,26083,26084,26086,26087,26089,
+26090,26092,26093,26094,26096,26097,26099,26100,26102,26103,26105,26106,26107,
+26109,26110,26112,26113,26115,26116,26117,26119,26120,26122,26123,26125,26126,
+26127,26129,26130,26132,26133,26135,26136,26137,26139,26140,26142,26143,26145,
+26146,26148,26149,26150,26152,26153,26155,26156,26158,26159,26160,26162,26163,
+26165,26166,26168,26169,26170,26172,26173,26175,26176,26178,26179,26180,26182,
+26183,26185,26186,26188,26189,26190,26192,26193,26195,26196,26198,26199,26200,
+26202,26203,26205,26206,26208,26209,26210,26212,26213,26215,26216,26218,26219,
+26220,26222,26223,26225,26226,26228,26229,26230,26232,26233,26235,26236,26237,
+26239,26240,26242,26243,26245,26246,26247,26249,26250,26252,26253,26255,26256,
+26257,26259,26260,26262,26263,26265,26266,26267,26269,26270,26272,26273,26275,
+26276,26277,26279,26280,26282,26283,26284,26286,26287,26289,26290,26292,26293,
+26294,26296,26297,26299,26300,26302,26303,26304,26306,26307,26309,26310,26311,
+26313,26314,26316,26317,26319,26320,26321,26323,26324,26326,26327,26329,26330,
+26331,26333,26334,26336,26337,26338,26340,26341,26343,26344,26346,26347,26348,
+26350,26351,26353,26354,26355,26357,26358,26360,26361,26363,26364,26365,26367,
+26368,26370,26371,26372,26374,26375,26377,26378,26380,26381,26382,26384,26385,
+26387,26388,26389,26391,26392,26394,26395,26397,26398,26399,26401,26402,26404,
+26405,26406,26408,26409,26411,26412,26413,26415,26416,26418,26419,26421,26422,
+26423,26425,26426,26428,26429,26430,26432,26433,26435,26436,26438,26439,26440,
+26442,26443,26445,26446,26447,26449,26450,26452,26453,26454,26456,26457,26459,
+26460,26462,26463,26464,26466,26467,26469,26470,26471,26473,26474,26476,26477,
+26478,26480,26481,26483,26484,26485,26487,26488,26490,26491,26493,26494,26495,
+26497,26498,26500,26501,26502,26504,26505,26507,26508,26509,26511,26512,26514,
+26515,26516,26518,26519,26521,26522,26523,26525,26526,26528,26529,26531,26532,
+26533,26535,26536,26538,26539,26540,26542,26543,26545,26546,26547,26549,26550,
+26552,26553,26554,26556,26557,26559,26560,26561,26563,26564,26566,26567,26568,
+26570,26571,26573,26574,26575,26577,26578,26580,26581,26582,26584,26585,26587,
+26588,26589,26591,26592,26594,26595,26596,26598,26599,26601,26602,26603,26605,
+26606,26608,26609,26610,26612,26613,26615,26616,26617,26619,26620,26622,26623,
+26624,26626,26627,26629,26630,26631,26633,26634,26636,26637,26638,26640,26641,
+26643,26644,26645,26647,26648,26650,26651,26652,26654,26655,26657,26658,26659,
+26661,26662,26664,26665,26666,26668,26669,26671,26672,26673,26675,26676,26678,
+26679,26680,26682,26683,26685,26686,26687,26689,26690,26692,26693,26694,26696,
+26697,26699,26700,26701,26703,26704,26706,26707,26708,26710,26711,26713,26714,
+26715,26717,26718,26719,26721,26722,26724,26725,26726,26728,26729,26731,26732,
+26733,26735,26736,26738,26739,26740,26742,26743,26745,26746,26747,26749,26750,
+26752,26753,26754,26756,26757,26758,26760,26761,26763,26764,26765,26767,26768,
+26770,26771,26772,26774,26775,26777,26778,26779,26781,26782,26783,26785,26786,
+26788,26789,26790,26792,26793,26795,26796,26797,26799,26800,26802,26803,26804,
+26806,26807,26808,26810,26811,26813,26814,26815,26817,26818,26820,26821,26822,
+26824,26825,26827,26828,26829,26831,26832,26833,26835,26836,26838,26839,26840,
+26842,26843,26845,26846,26847,26849,26850,26851,26853,26854,26856,26857,26858,
+26860,26861,26863,26864,26865,26867,26868,26869,26871,26872,26874,26875,26876,
+26878,26879,26881,26882,26883,26885,26886,26887,26889,26890,26892,26893,26894,
+26896,26897,26899,26900,26901,26903,26904,26905,26907,26908,26910,26911,26912,
+26914,26915,26916,26918,26919,26921,26922,26923,26925,26926,26928,26929,26930,
+26932,26933,26934,26936,26937,26939,26940,26941,26943,26944,26945,26947,26948,
+26950,26951,26952,26954,26955,26956,26958,26959,26961,26962,26963,26965,26966,
+26968,26969,26970,26972,26973,26974,26976,26977,26979,26980,26981,26983,26984,
+26985,26987,26988,26990,26991,26992,26994,26995,26996,26998,26999,27001,27002,
+27003,27005,27006,27007,27009,27010,27012,27013,27014,27016,27017,27018,27020,
+27021,27023,27024,27025,27027,27028,27029,27031,27032,27034,27035,27036,27038,
+27039,27040,27042,27043,27045,27046,27047,27049,27050,27051,27053,27054,27056,
+27057,27058,27060,27061,27062,27064,27065,27067,27068,27069,27071,27072,27073,
+27075,27076,27077,27079,27080,27082,27083,27084,27086,27087,27088,27090,27091,
+27093,27094,27095,27097,27098,27099,27101,27102,27104,27105,27106,27108,27109,
+27110,27112,27113,27114,27116,27117,27119,27120,27121,27123,27124,27125,27127,
+27128,27130,27131,27132,27134,27135,27136,27138,27139,27140,27142,27143,27145,
+27146,27147,27149,27150,27151,27153,27154,27155,27157,27158,27160,27161,27162,
+27164,27165,27166,27168,27169,27171,27172,27173,27175,27176,27177,27179,27180,
+27181,27183,27184,27186,27187,27188,27190,27191,27192,27194,27195,27196,27198,
+27199,27201,27202,27203,27205,27206,27207,27209,27210,27211,27213,27214,27216,
+27217,27218,27220,27221,27222,27224,27225,27226,27228,27229,27230,27232,27233,
+27235,27236,27237,27239,27240,27241,27243,27244,27245,27247,27248,27250,27251,
+27252,27254,27255,27256,27258,27259,27260,27262,27263,27264,27266,27267,27269,
+27270,27271,27273,27274,27275,27277,27278,27279,27281,27282,27284,27285,27286,
+27288,27289,27290,27292,27293,27294,27296,27297,27298,27300,27301,27303,27304,
+27305,27307,27308,27309,27311,27312,27313,27315,27316,27317,27319,27320,27322,
+27323,27324,27326,27327,27328,27330,27331,27332,27334,27335,27336,27338,27339,
+27340,27342,27343,27345,27346,27347,27349,27350,27351,27353,27354,27355,27357,
+27358,27359,27361,27362,27364,27365,27366,27368,27369,27370,27372,27373,27374,
+27376,27377,27378,27380,27381,27382,27384,27385,27387,27388,27389,27391,27392,
+27393,27395,27396,27397,27399,27400,27401,27403,27404,27405,27407,27408,27409,
+27411,27412,27414,27415,27416,27418,27419,27420,27422,27423,27424,27426,27427,
+27428,27430,27431,27432,27434,27435,27436,27438,27439,27441,27442,27443,27445,
+27446,27447,27449,27450,27451,27453,27454,27455,27457,27458,27459,27461,27462,
+27463,27465,27466,27467,27469,27470,27472,27473,27474,27476,27477,27478,27480,
+27481,27482,27484,27485,27486,27488,27489,27490,27492,27493,27494,27496,27497,
+27498,27500,27501,27502,27504,27505,27506,27508,27509,27511,27512,27513,27515,
+27516,27517,27519,27520,27521,27523,27524,27525,27527,27528,27529,27531,27532,
+27533,27535,27536,27537,27539,27540,27541,27543,27544,27545,27547,27548,27549,
+27551,27552,27554,27555,27556,27558,27559,27560,27562,27563,27564,27566,27567,
+27568,27570,27571,27572,27574,27575,27576,27578,27579,27580,27582,27583,27584,
+27586,27587,27588,27590,27591,27592,27594,27595,27596,27598,27599,27600,27602,
+27603,27604,27606,27607,27608,27610,27611,27612,27614,27615,27616,27618,27619,
+27620,27622,27623,27624,27626,27627,27629,27630,27631,27633,27634,27635,27637,
+27638,27639,27641,27642,27643,27645,27646,27647,27649,27650,27651,27653,27654,
+27655,27657,27658,27659,27661,27662,27663,27665,27666,27667,27669,27670,27671,
+27673,27674,27675,27677,27678,27679,27681,27682,27683,27685,27686,27687,27689,
+27690,27691,27693,27694,27695,27697,27698,27699,27701,27702,27703,27705,27706,
+27707,27709,27710,27711,27713,27714,27715,27717,27718,27719,27721,27722,27723,
+27725,27726,27727,27729,27730,27731,27733,27734,27735,27737,27738,27739,27741,
+27742,27743,27745,27746,27747,27749,27750,27751,27753,27754,27755,27757,27758,
+27759,27761,27762,27763,27764,27766,27767,27768,27770,27771,27772,27774,27775,
+27776,27778,27779,27780,27782,27783,27784,27786,27787,27788,27790,27791,27792,
+27794,27795,27796,27798,27799,27800,27802,27803,27804,27806,27807,27808,27810,
+27811,27812,27814,27815,27816,27818,27819,27820,27822,27823,27824,27826,27827,
+27828,27830,27831,27832,27833,27835,27836,27837,27839,27840,27841,27843,27844,
+27845,27847,27848,27849,27851,27852,27853,27855,27856,27857,27859,27860,27861,
+27863,27864,27865,27867,27868,27869,27871,27872,27873,27875,27876,27877,27879,
+27880,27881,27882,27884,27885,27886,27888,27889,27890,27892,27893,27894,27896,
+27897,27898,27900,27901,27902,27904,27905,27906,27908,27909,27910,27912,27913,
+27914,27915,27917,27918,27919,27921,27922,27923,27925,27926,27927,27929,27930,
+27931,27933,27934,27935,27937,27938,27939,27941,27942,27943,27945,27946,27947,
+27948,27950,27951,27952,27954,27955,27956,27958,27959,27960,27962,27963,27964,
+27966,27967,27968,27970,27971,27972,27974,27975,27976,27977,27979,27980,27981,
+27983,27984,27985,27987,27988,27989,27991,27992,27993,27995,27996,27997,27999,
+28000,28001,28002,28004,28005,28006,28008,28009,28010,28012,28013,28014,28016,
+28017,28018,28020,28021,28022,28023,28025,28026,28027,28029,28030,28031,28033,
+28034,28035,28037,28038,28039,28041,28042,28043,28045,28046,28047,28048,28050,
+28051,28052,28054,28055,28056,28058,28059,28060,28062,28063,28064,28066,28067,
+28068,28069,28071,28072,28073,28075,28076,28077,28079,28080,28081,28083,28084,
+28085,28086,28088,28089,28090,28092,28093,28094,28096,28097,28098,28100,28101,
+28102,28104,28105,28106,28107,28109,28110,28111,28113,28114,28115,28117,28118,
+28119,28121,28122,28123,28124,28126,28127,28128,28130,28131,28132,28134,28135,
+28136,28138,28139,28140,28141,28143,28144,28145,28147,28148,28149,28151,28152,
+28153,28155,28156,28157,28158,28160,28161,28162,28164,28165,28166,28168,28169,
+28170,28171,28173,28174,28175,28177,28178,28179,28181,28182,28183,28185,28186,
+28187,28188,28190,28191,28192,28194,28195,28196,28198,28199,28200,28201,28203,
+28204,28205,28207,28208,28209,28211,28212,28213,28215,28216,28217,28218,28220,
+28221,28222,28224,28225,28226,28228,28229,28230,28231,28233,28234,28235,28237,
+28238,28239,28241,28242,28243,28244,28246,28247,28248,28250,28251,28252,28254,
+28255,28256,28257,28259,28260,28261,28263,28264,28265,28267,28268,28269,28270,
+28272,28273,28274,28276,28277,28278,28280,28281,28282,28283,28285,28286,28287,
+28289,28290,28291,28293,28294,28295,28296,28298,28299,28300,28302,28303,28304,
+28306,28307,28308,28309,28311,28312,28313,28315,28316,28317,28319,28320,28321,
+28322,28324,28325,28326,28328,28329,28330,28331,28333,28334,28335,28337,28338,
+28339,28341,28342,28343,28344,28346,28347,28348,28350,28351,28352,28353,28355,
+28356,28357,28359,28360,28361,28363,28364,28365,28366,28368,28369,28370,28372,
+28373,28374,28375,28377,28378,28379,28381,28382,28383,28385,28386,28387,28388,
+28390,28391,28392,28394,28395,28396,28397,28399,28400,28401,28403,28404,28405,
+28407,28408,28409,28410,28412,28413,28414,28416,28417,28418,28419,28421,28422,
+28423,28425,28426,28427,28428,28430,28431,28432,28434,28435,28436,28438,28439,
+28440,28441,28443,28444,28445,28447,28448,28449,28450,28452,28453,28454,28456,
+28457,28458,28459,28461,28462,28463,28465,28466,28467,28468,28470,28471,28472,
+28474,28475,28476,28477,28479,28480,28481,28483,28484,28485,28486,28488,28489,
+28490,28492,28493,28494,28495,28497,28498,28499,28501,28502,28503,28504,28506,
+28507,28508,28510,28511,28512,28514,28515,28516,28517,28519,28520,28521,28523,
+28524,28525,28526,28528,28529,28530,28531,28533,28534,28535,28537,28538,28539,
+28540,28542,28543,28544,28546,28547,28548,28549,28551,28552,28553,28555,28556,
+28557,28558,28560,28561,28562,28564,28565,28566,28567,28569,28570,28571,28573,
+28574,28575,28576,28578,28579,28580,28582,28583,28584,28585,28587,28588,28589,
+28591,28592,28593,28594,28596,28597,28598,28599,28601,28602,28603,28605,28606,
+28607,28608,28610,28611,28612,28614,28615,28616,28617,28619,28620,28621,28623,
+28624,28625,28626,28628,28629,28630,28632,28633,28634,28635,28637,28638,28639,
+28640,28642,28643,28644,28646,28647,28648,28649,28651,28652,28653,28655,28656,
+28657,28658,28660,28661,28662,28663,28665,28666,28667,28669,28670,28671,28672,
+28674,28675,28676,28678,28679,28680,28681,28683,28684,28685,28686,28688,28689,
+28690,28692,28693,28694,28695,28697,28698,28699,28700,28702,28703,28704,28706,
+28707,28708,28709,28711,28712,28713,28715,28716,28717,28718,28720,28721,28722,
+28723,28725,28726,28727,28729,28730,28731,28732,28734,28735,28736,28737,28739,
+28740,28741,28743,28744,28745,28746,28748,28749,28750,28751,28753,28754,28755,
+28757,28758,28759,28760,28762,28763,28764,28765,28767,28768,28769,28771,28772,
+28773,28774,28776,28777,28778,28779,28781,28782,28783,28785,28786,28787,28788,
+28790,28791,28792,28793,28795,28796,28797,28798,28800,28801,28802,28804,28805,
+28806,28807,28809,28810,28811,28812,28814,28815,28816,28818,28819,28820,28821,
+28823,28824,28825,28826,28828,28829,28830,28831,28833,28834,28835,28837,28838,
+28839,28840,28842,28843,28844,28845,28847,28848,28849,28851,28852,28853,28854,
+28856,28857,28858,28859,28861,28862,28863,28864,28866,28867,28868,28870,28871,
+28872,28873,28875,28876,28877,28878,28880,28881,28882,28883,28885,28886,28887,
+28888,28890,28891,28892,28894,28895,28896,28897,28899,28900,28901,28902,28904,
+28905,28906,28907,28909,28910,28911,28913,28914,28915,28916,28918,28919,28920,
+28921,28923,28924,28925,28926,28928,28929,28930,28931,28933,28934,28935,28937,
+28938,28939,28940,28942,28943,28944,28945,28947,28948,28949,28950,28952,28953,
+28954,28955,28957,28958,28959,28960,28962,28963,28964,28966,28967,28968,28969,
+28971,28972,28973,28974,28976,28977,28978,28979,28981,28982,28983,28984,28986,
+28987,28988,28989,28991,28992,28993,28995,28996,28997,28998,29000,29001,29002,
+29003,29005,29006,29007,29008,29010,29011,29012,29013,29015,29016,29017,29018,
+29020,29021,29022,29023,29025,29026,29027,29028,29030,29031,29032,29034,29035,
+29036,29037,29039,29040,29041,29042,29044,29045,29046,29047,29049,29050,29051,
+29052,29054,29055,29056,29057,29059,29060,29061,29062,29064,29065,29066,29067,
+29069,29070,29071,29072,29074,29075,29076,29077,29079,29080,29081,29083,29084,
+29085,29086,29088,29089,29090,29091,29093,29094,29095,29096,29098,29099,29100,
+29101,29103,29104,29105,29106,29108,29109,29110,29111,29113,29114,29115,29116,
+29118,29119,29120,29121,29123,29124,29125,29126,29128,29129,29130,29131,29133,
+29134,29135,29136,29138,29139,29140,29141,29143,29144,29145,29146,29148,29149,
+29150,29151,29153,29154,29155,29156,29158,29159,29160,29161,29163,29164,29165,
+29166,29168,29169,29170,29171,29173,29174,29175,29176,29178,29179,29180,29181,
+29183,29184,29185,29186,29188,29189,29190,29191,29193,29194,29195,29196,29198,
+29199,29200,29201,29203,29204,29205,29206,29208,29209,29210,29211,29213,29214,
+29215,29216,29218,29219,29220,29221,29223,29224,29225,29226,29228,29229,29230,
+29231,29233,29234,29235,29236,29238,29239,29240,29241,29243,29244,29245,29246,
+29248,29249,29250,29251,29253,29254,29255,29256,29258,29259,29260,29261,29262,
+29264,29265,29266,29267,29269,29270,29271,29272,29274,29275,29276,29277,29279,
+29280,29281,29282,29284,29285,29286,29287,29289,29290,29291,29292,29294,29295,
+29296,29297,29299,29300,29301,29302,29304,29305,29306,29307,29309,29310,29311,
+29312,29313,29315,29316,29317,29318,29320,29321,29322,29323,29325,29326,29327,
+29328,29330,29331,29332,29333,29335,29336,29337,29338,29340,29341,29342,29343,
+29345,29346,29347,29348,29349,29351,29352,29353,29354,29356,29357,29358,29359,
+29361,29362,29363,29364,29366,29367,29368,29369,29371,29372,29373,29374,29376,
+29377,29378,29379,29380,29382,29383,29384,29385,29387,29388,29389,29390,29392,
+29393,29394,29395,29397,29398,29399,29400,29402,29403,29404,29405,29406,29408,
+29409,29410,29411,29413,29414,29415,29416,29418,29419,29420,29421,29423,29424,
+29425,29426,29428,29429,29430,29431,29432,29434,29435,29436,29437,29439,29440,
+29441,29442,29444,29445,29446,29447,29449,29450,29451,29452,29453,29455,29456,
+29457,29458,29460,29461,29462,29463,29465,29466,29467,29468,29470,29471,29472,
+29473,29474,29476,29477,29478,29479,29481,29482,29483,29484,29486,29487,29488,
+29489,29490,29492,29493,29494,29495,29497,29498,29499,29500,29502,29503,29504,
+29505,29507,29508,29509,29510,29511,29513,29514,29515,29516,29518,29519,29520,
+29521,29523,29524,29525,29526,29527,29529,29530,29531,29532,29534,29535,29536,
+29537,29539,29540,29541,29542,29543,29545,29546,29547,29548,29550,29551,29552,
+29553,29555,29556,29557,29558,29559,29561,29562,29563,29564,29566,29567,29568,
+29569,29570,29572,29573,29574,29575,29577,29578,29579,29580,29582,29583,29584,
+29585,29586,29588,29589,29590,29591,29593,29594,29595,29596,29598,29599,29600,
+29601,29602,29604,29605,29606,29607,29609,29610,29611,29612,29613,29615,29616,
+29617,29618,29620,29621,29622,29623,29625,29626,29627,29628,29629,29631,29632,
+29633,29634,29636,29637,29638,29639,29640,29642,29643,29644,29645,29647,29648,
+29649,29650,29651,29653,29654,29655,29656,29658,29659,29660,29661,29662,29664,
+29665,29666,29667,29669,29670,29671,29672,29673,29675,29676,29677,29678,29680,
+29681,29682,29683,29685,29686,29687,29688,29689,29691,29692,29693,29694,29696,
+29697,29698,29699,29700,29702,29703,29704,29705,29707,29708,29709,29710,29711,
+29713,29714,29715,29716,29718,29719,29720,29721,29722,29724,29725,29726,29727,
+29728,29730,29731,29732,29733,29735,29736,29737,29738,29739,29741,29742,29743,
+29744,29746,29747,29748,29749,29750,29752,29753,29754,29755,29757,29758,29759,
+29760,29761,29763,29764,29765,29766,29768,29769,29770,29771,29772,29774,29775,
+29776,29777,29778,29780,29781,29782,29783,29785,29786,29787,29788,29789,29791,
+29792,29793,29794,29796,29797,29798,29799,29800,29802,29803,29804,29805,29806,
+29808,29809,29810,29811,29813,29814,29815,29816,29817,29819,29820,29821,29822,
+29824,29825,29826,29827,29828,29830,29831,29832,29833,29834,29836,29837,29838,
+29839,29841,29842,29843,29844,29845,29847,29848,29849,29850,29851,29853,29854,
+29855,29856,29858,29859,29860,29861,29862,29864,29865,29866,29867,29868,29870,
+29871,29872,29873,29875,29876,29877,29878,29879,29881,29882,29883,29884,29885,
+29887,29888,29889,29890,29892,29893,29894,29895,29896,29898,29899,29900,29901,
+29902,29904,29905,29906,29907,29908,29910,29911,29912,29913,29915,29916,29917,
+29918,29919,29921,29922,29923,29924,29925,29927,29928,29929,29930,29931,29933,
+29934,29935,29936,29938,29939,29940,29941,29942,29944,29945,29946,29947,29948,
+29950,29951,29952,29953,29954,29956,29957,29958,29959,29961,29962,29963,29964,
+29965,29967,29968,29969,29970,29971,29973,29974,29975,29976,29977,29979,29980,
+29981,29982,29983,29985,29986,29987,29988,29990,29991,29992,29993,29994,29996,
+29997,29998,29999,30000,30002,30003,30004,30005,30006,30008,30009,30010,30011,
+30012,30014,30015,30016,30017,30018,30020,30021,30022,30023,30025,30026,30027,
+30028,30029,30031,30032,30033,30034,30035,30037,30038,30039,30040,30041,30043,
+30044,30045,30046,30047,30049,30050,30051,30052,30053,30055,30056,30057,30058,
+30059,30061,30062,30063,30064,30065,30067,30068,30069,30070,30072,30073,30074,
+30075,30076,30078,30079,30080,30081,30082,30084,30085,30086,30087,30088,30090,
+30091,30092,30093,30094,30096,30097,30098,30099,30100,30102,30103,30104,30105,
+30106,30108,30109,30110,30111,30112,30114,30115,30116,30117,30118,30120,30121,
+30122,30123,30124,30126,30127,30128,30129,30130,30132,30133,30134,30135,30136,
+30138,30139,30140,30141,30142,30144,30145,30146,30147,30148,30150,30151,30152,
+30153,30154,30156,30157,30158,30159,30160,30162,30163,30164,30165,30166,30168,
+30169,30170,30171,30172,30174,30175,30176,30177,30178,30180,30181,30182,30183,
+30184,30186,30187,30188,30189,30190,30192,30193,30194,30195,30196,30198,30199,
+30200,30201,30202,30204,30205,30206,30207,30208,30209,30211,30212,30213,30214,
+30215,30217,30218,30219,30220,30221,30223,30224,30225,30226,30227,30229,30230,
+30231,30232,30233,30235,30236,30237,30238,30239,30241,30242,30243,30244,30245,
+30247,30248,30249,30250,30251,30253,30254,30255,30256,30257,30259,30260,30261,
+30262,30263,30264,30266,30267,30268,30269,30270,30272,30273,30274,30275,30276,
+30278,30279,30280,30281,30282,30284,30285,30286,30287,30288,30290,30291,30292,
+30293,30294,30295,30297,30298,30299,30300,30301,30303,30304,30305,30306,30307,
+30309,30310,30311,30312,30313,30315,30316,30317,30318,30319,30321,30322,30323,
+30324,30325,30326,30328,30329,30330,30331,30332,30334,30335,30336,30337,30338,
+30340,30341,30342,30343,30344,30346,30347,30348,30349,30350,30351,30353,30354,
+30355,30356,30357,30359,30360,30361,30362,30363,30365,30366,30367,30368,30369,
+30370,30372,30373,30374,30375,30376,30378,30379,30380,30381,30382,30384,30385,
+30386,30387,30388,30390,30391,30392,30393,30394,30395,30397,30398,30399,30400,
+30401,30403,30404,30405,30406,30407,30408,30410,30411,30412,30413,30414,30416,
+30417,30418,30419,30420,30422,30423,30424,30425,30426,30427,30429,30430,30431,
+30432,30433,30435,30436,30437,30438,30439,30441,30442,30443,30444,30445,30446,
+30448,30449,30450,30451,30452,30454,30455,30456,30457,30458,30459,30461,30462,
+30463,30464,30465,30467,30468,30469,30470,30471,30472,30474,30475,30476,30477,
+30478,30480,30481,30482,30483,30484,30486,30487,30488,30489,30490,30491,30493,
+30494,30495,30496,30497,30499,30500,30501,30502,30503,30504,30506,30507,30508,
+30509,30510,30512,30513,30514,30515,30516,30517,30519,30520,30521,30522,30523,
+30525,30526,30527,30528,30529,30530,30532,30533,30534,30535,30536,30538,30539,
+30540,30541,30542,30543,30545,30546,30547,30548,30549,30550,30552,30553,30554,
+30555,30556,30558,30559,30560,30561,30562,30563,30565,30566,30567,30568,30569,
+30571,30572,30573,30574,30575,30576,30578,30579,30580,30581,30582,30584,30585,
+30586,30587,30588,30589,30591,30592,30593,30594,30595,30596,30598,30599,30600,
+30601,30602,30604,30605,30606,30607,30608,30609,30611,30612,30613,30614,30615,
+30616,30618,30619,30620,30621,30622,30624,30625,30626,30627,30628,30629,30631,
+30632,30633,30634,30635,30636,30638,30639,30640,30641,30642,30644,30645,30646,
+30647,30648,30649,30651,30652,30653,30654,30655,30656,30658,30659,30660,30661,
+30662,30663,30665,30666,30667,30668,30669,30671,30672,30673,30674,30675,30676,
+30678,30679,30680,30681,30682,30683,30685,30686,30687,30688,30689,30690,30692,
+30693,30694,30695,30696,30698,30699,30700,30701,30702,30703,30705,30706,30707,
+30708,30709,30710,30712,30713,30714,30715,30716,30717,30719,30720,30721,30722,
+30723,30724,30726,30727,30728,30729,30730,30732,30733,30734,30735,30736,30737,
+30739,30740,30741,30742,30743,30744,30746,30747,30748,30749,30750,30751,30753,
+30754,30755,30756,30757,30758,30760,30761,30762,30763,30764,30765,30767,30768,
+30769,30770,30771,30772,30774,30775,30776,30777,30778,30779,30781,30782,30783,
+30784,30785,30786,30788,30789,30790,30791,30792,30794,30795,30796,30797,30798,
+30799,30801,30802,30803,30804,30805,30806,30808,30809,30810,30811,30812,30813,
+30815,30816,30817,30818,30819,30820,30822,30823,30824,30825,30826,30827,30829,
+30830,30831,30832,30833,30834,30836,30837,30838,30839,30840,30841,30843,30844,
+30845,30846,30847,30848,30850,30851,30852,30853,30854,30855,30857,30858,30859,
+30860,30861,30862,30864,30865,30866,30867,30868,30869,30870,30872,30873,30874,
+30875,30876,30877,30879,30880,30881,30882,30883,30884,30886,30887,30888,30889,
+30890,30891,30893,30894,30895,30896,30897,30898,30900,30901,30902,30903,30904,
+30905,30907,30908,30909,30910,30911,30912,30914,30915,30916,30917,30918,30919,
+30921,30922,30923,30924,30925,30926,30927,30929,30930,30931,30932,30933,30934,
+30936,30937,30938,30939,30940,30941,30943,30944,30945,30946,30947,30948,30950,
+30951,30952,30953,30954,30955,30957,30958,30959,30960,30961,30962,30963,30965,
+30966,30967,30968,30969,30970,30972,30973,30974,30975,30976,30977,30979,30980,
+30981,30982,30983,30984,30986,30987,30988,30989,30990,30991,30992,30994,30995,
+30996,30997,30998,30999,31001,31002,31003,31004,31005,31006,31008,31009,31010,
+31011,31012,31013,31014,31016,31017,31018,31019,31020,31021,31023,31024,31025,
+31026,31027,31028,31030,31031,31032,31033,31034,31035,31036,31038,31039,31040,
+31041,31042,31043,31045,31046,31047,31048,31049,31050,31051,31053,31054,31055,
+31056,31057,31058,31060,31061,31062,31063,31064,31065,31067,31068,31069,31070,
+31071,31072,31073,31075,31076,31077,31078,31079,31080,31082,31083,31084,31085,
+31086,31087,31088,31090,31091,31092,31093,31094,31095,31097,31098,31099,31100,
+31101,31102,31103,31105,31106,31107,31108,31109,31110,31112,31113,31114,31115,
+31116,31117,31118,31120,31121,31122,31123,31124,31125,31127,31128,31129,31130,
+31131,31132,31133,31135,31136,31137,31138,31139,31140,31141,31143,31144,31145,
+31146,31147,31148,31150,31151,31152,31153,31154,31155,31156,31158,31159,31160,
+31161,31162,31163,31165,31166,31167,31168,31169,31170,31171,31173,31174,31175,
+31176,31177,31178,31179,31181,31182,31183,31184,31185,31186,31188,31189,31190,
+31191,31192,31193,31194,31196,31197,31198,31199,31200,31201,31202,31204,31205,
+31206,31207,31208,31209,31211,31212,31213,31214,31215,31216,31217,31219,31220,
+31221,31222,31223,31224,31225,31227,31228,31229,31230,31231,31232,31233,31235,
+31236,31237,31238,31239,31240,31242,31243,31244,31245,31246,31247,31248,31250,
+31251,31252,31253,31254,31255,31256,31258,31259,31260,31261,31262,31263,31264,
+31266,31267,31268,31269,31270,31271,31272,31274,31275,31276,31277,31278,31279,
+31280,31282,31283,31284,31285,31286,31287,31289,31290,31291,31292,31293,31294,
+31295,31297,31298,31299,31300,31301,31302,31303,31305,31306,31307,31308,31309,
+31310,31311,31313,31314,31315,31316,31317,31318,31319,31321,31322,31323,31324,
+31325,31326,31327,31329,31330,31331,31332,31333,31334,31335,31337,31338,31339,
+31340,31341,31342,31343,31345,31346,31347,31348,31349,31350,31351,31353,31354,
+31355,31356,31357,31358,31359,31361,31362,31363,31364,31365,31366,31367,31369,
+31370,31371,31372,31373,31374,31375,31377,31378,31379,31380,31381,31382,31383,
+31385,31386,31387,31388,31389,31390,31391,31392,31394,31395,31396,31397,31398,
+31399,31400,31402,31403,31404,31405,31406,31407,31408,31410,31411,31412,31413,
+31414,31415,31416,31418,31419,31420,31421,31422,31423,31424,31426,31427,31428,
+31429,31430,31431,31432,31434,31435,31436,31437,31438,31439,31440,31441,31443,
+31444,31445,31446,31447,31448,31449,31451,31452,31453,31454,31455,31456,31457,
+31459,31460,31461,31462,31463,31464,31465,31466,31468,31469,31470,31471,31472,
+31473,31474,31476,31477,31478,31479,31480,31481,31482,31484,31485,31486,31487,
+31488,31489,31490,31491,31493,31494,31495,31496,31497,31498,31499,31501,31502,
+31503,31504,31505,31506,31507,31509,31510,31511,31512,31513,31514,31515,31516,
+31518,31519,31520,31521,31522,31523,31524,31526,31527,31528,31529,31530,31531,
+31532,31533,31535,31536,31537,31538,31539,31540,31541,31543,31544,31545,31546,
+31547,31548,31549,31550,31552,31553,31554,31555,31556,31557,31558,31560,31561,
+31562,31563,31564,31565,31566,31567,31569,31570,31571,31572,31573,31574,31575,
+31577,31578,31579,31580,31581,31582,31583,31584,31586,31587,31588,31589,31590,
+31591,31592,31594,31595,31596,31597,31598,31599,31600,31601,31603,31604,31605,
+31606,31607,31608,31609,31610,31612,31613,31614,31615,31616,31617,31618,31620,
+31621,31622,31623,31624,31625,31626,31627,31629,31630,31631,31632,31633,31634,
+31635,31636,31638,31639,31640,31641,31642,31643,31644,31645,31647,31648,31649,
+31650,31651,31652,31653,31655,31656,31657,31658,31659,31660,31661,31662,31664,
+31665,31666,31667,31668,31669,31670,31671,31673,31674,31675,31676,31677,31678,
+31679,31680,31682,31683,31684,31685,31686,31687,31688,31689,31691,31692,31693,
+31694,31695,31696,31697,31698,31700,31701,31702,31703,31704,31705,31706,31707,
+31709,31710,31711,31712,31713,31714,31715,31717,31718,31719,31720,31721,31722,
+31723,31724,31726,31727,31728,31729,31730,31731,31732,31733,31735,31736,31737,
+31738,31739,31740,31741,31742,31744,31745,31746,31747,31748,31749,31750,31751,
+31753,31754,31755,31756,31757,31758,31759,31760,31761,31763,31764,31765,31766,
+31767,31768,31769,31770,31772,31773,31774,31775,31776,31777,31778,31779,31781,
+31782,31783,31784,31785,31786,31787,31788,31790,31791,31792,31793,31794,31795,
+31796,31797,31799,31800,31801,31802,31803,31804,31805,31806,31808,31809,31810,
+31811,31812,31813,31814,31815,31816,31818,31819,31820,31821,31822,31823,31824,
+31825,31827,31828,31829,31830,31831,31832,31833,31834,31836,31837,31838,31839,
+31840,31841,31842,31843,31845,31846,31847,31848,31849,31850,31851,31852,31853,
+31855,31856,31857,31858,31859,31860,31861,31862,31864,31865,31866,31867,31868,
+31869,31870,31871,31872,31874,31875,31876,31877,31878,31879,31880,31881,31883,
+31884,31885,31886,31887,31888,31889,31890,31892,31893,31894,31895,31896,31897,
+31898,31899,31900,31902,31903,31904,31905,31906,31907,31908,31909,31910,31912,
+31913,31914,31915,31916,31917,31918,31919,31921,31922,31923,31924,31925,31926,
+31927,31928,31929,31931,31932,31933,31934,31935,31936,31937,31938,31940,31941,
+31942,31943,31944,31945,31946,31947,31948,31950,31951,31952,31953,31954,31955,
+31956,31957,31958,31960,31961,31962,31963,31964,31965,31966,31967,31969,31970,
+31971,31972,31973,31974,31975,31976,31977,31979,31980,31981,31982,31983,31984,
+31985,31986,31987,31989,31990,31991,31992,31993,31994,31995,31996,31997,31999,
+32000,32001,32002,32003,32004,32005,32006,32007,32009,32010,32011,32012,32013,
+32014,32015,32016,32018,32019,32020,32021,32022,32023,32024,32025,32026,32028,
+32029,32030,32031,32032,32033,32034,32035,32036,32038,32039,32040,32041,32042,
+32043,32044,32045,32046,32048,32049,32050,32051,32052,32053,32054,32055,32056,
+32058,32059,32060,32061,32062,32063,32064,32065,32066,32068,32069,32070,32071,
+32072,32073,32074,32075,32076,32078,32079,32080,32081,32082,32083,32084,32085,
+32086,32087,32089,32090,32091,32092,32093,32094,32095,32096,32097,32099,32100,
+32101,32102,32103,32104,32105,32106,32107,32109,32110,32111,32112,32113,32114,
+32115,32116,32117,32119,32120,32121,32122,32123,32124,32125,32126,32127,32129,
+32130,32131,32132,32133,32134,32135,32136,32137,32138,32140,32141,32142,32143,
+32144,32145,32146,32147,32148,32150,32151,32152,32153,32154,32155,32156,32157,
+32158,32160,32161,32162,32163,32164,32165,32166,32167,32168,32169,32171,32172,
+32173,32174,32175,32176,32177,32178,32179,32181,32182,32183,32184,32185,32186,
+32187,32188,32189,32190,32192,32193,32194,32195,32196,32197,32198,32199,32200,
+32202,32203,32204,32205,32206,32207,32208,32209,32210,32211,32213,32214,32215,
+32216,32217,32218,32219,32220,32221,32222,32224,32225,32226,32227,32228,32229,
+32230,32231,32232,32234,32235,32236,32237,32238,32239,32240,32241,32242,32243,
+32245,32246,32247,32248,32249,32250,32251,32252,32253,32254,32256,32257,32258,
+32259,32260,32261,32262,32263,32264,32265,32267,32268,32269,32270,32271,32272,
+32273,32274,32275,32276,32278,32279,32280,32281,32282,32283,32284,32285,32286,
+32287,32289,32290,32291,32292,32293,32294,32295,32296,32297,32299,32300,32301,
+32302,32303,32304,32305,32306,32307,32308,32310,32311,32312,32313,32314,32315,
+32316,32317,32318,32319,32320,32322,32323,32324,32325,32326,32327,32328,32329,
+32330,32331,32333,32334,32335,32336,32337,32338,32339,32340,32341,32342,32344,
+32345,32346,32347,32348,32349,32350,32351,32352,32353,32355,32356,32357,32358,
+32359,32360,32361,32362,32363,32364,32366,32367,32368,32369,32370,32371,32372,
+32373,32374,32375,32376,32378,32379,32380,32381,32382,32383,32384,32385,32386,
+32387,32389,32390,32391,32392,32393,32394,32395,32396,32397,32398,32400,32401,
+32402,32403,32404,32405,32406,32407,32408,32409,32410,32412,32413,32414,32415,
+32416,32417,32418,32419,32420,32421,32423,32424,32425,32426,32427,32428,32429,
+32430,32431,32432,32433,32435,32436,32437,32438,32439,32440,32441,32442,32443,
+32444,32446,32447,32448,32449,32450,32451,32452,32453,32454,32455,32456,32458,
+32459,32460,32461,32462,32463,32464,32465,32466,32467,32468,32470,32471,32472,
+32473,32474,32475,32476,32477,32478,32479,32480,32482,32483,32484,32485,32486,
+32487,32488,32489,32490,32491,32493,32494,32495,32496,32497,32498,32499,32500,
+32501,32502,32503,32505,32506,32507,32508,32509,32510,32511,32512,32513,32514,
+32515,32517,32518,32519,32520,32521,32522,32523,32524,32525,32526,32527,32529,
+32530,32531,32532,32533,32534,32535,32536,32537,32538,32539,32541,32542,32543,
+32544,32545,32546,32547,32548,32549,32550,32551,32552,32554,32555,32556,32557,
+32558,32559,32560,32561,32562,32563,32564,32566,32567,32568,32569,32570,32571,
+32572,32573,32574,32575,32576,32578,32579,32580,32581,32582,32583,32584,32585,
+32586,32587,32588,32590,32591,32592,32593,32594,32595,32596,32597,32598,32599,
+32600,32601,32603,32604,32605,32606,32607,32608,32609,32610,32611,32612,32613,
+32615,32616,32617,32618,32619,32620,32621,32622,32623,32624,32625,32626,32628,
+32629,32630,32631,32632,32633,32634,32635,32636,32637,32638,32639,32641,32642,
+32643,32644,32645,32646,32647,32648,32649,32650,32651,32653,32654,32655,32656,
+32657,32658,32659,32660,32661,32662,32663,32664,32666,32667,32668,32669,32670,
+32671,32672,32673,32674,32675,32676,32677,32679,32680,32681,32682,32683,32684,
+32685,32686,32687,32688,32689,32690,32692,32693,32694,32695,32696,32697,32698,
+32699,32700,32701,32702,32703,32705,32706,32707,32708,32709,32710,32711,32712,
+32713,32714,32715,32716,32718,32719,32720,32721,32722,32723,32724,32725,32726,
+32727,32728,32729,32731,32732,32733,32734,32735,32736,32737,32738,32739,32740,
+32741,32742,32744,32745,32746,32747,32748,32749,32750,32751,32752,32753,32754,
+32755,32756,32758,32759,32760,32761,32762,32763,32764,32765,32766,32767,32768,
+32769,32771,32772,32773,32774,32775,32776,32777,32778,32779,32780,32781,32782,
+32783,32785,32786,32787,32788,32789,32790,32791,32792,32793,32794,32795,32796,
+32798,32799,32800,32801,32802,32803,32804,32805,32806,32807,32808,32809,32810,
+32812,32813,32814,32815,32816,32817,32818,32819,32820,32821,32822,32823,32824,
+32826,32827,32828,32829,32830,32831,32832,32833,32834,32835,32836,32837,32839,
+32840,32841,32842,32843,32844,32845,32846,32847,32848,32849,32850,32851,32853,
+32854,32855,32856,32857,32858,32859,32860,32861,32862,32863,32864,32865,32867,
+32868,32869,32870,32871,32872,32873,32874,32875,32876,32877,32878,32879,32880,
+32882,32883,32884,32885,32886,32887,32888,32889,32890,32891,32892,32893,32894,
+32896,32897,32898,32899,32900,32901,32902,32903,32904,32905,32906,32907,32908,
+32910,32911,32912,32913,32914,32915,32916,32917,32918,32919,32920,32921,32922,
+32923,32925,32926,32927,32928,32929,32930,32931,32932,32933,32934,32935,32936,
+32937,32939,32940,32941,32942,32943,32944,32945,32946,32947,32948,32949,32950,
+32951,32952,32954,32955,32956,32957,32958,32959,32960,32961,32962,32963,32964,
+32965,32966,32967,32969,32970,32971,32972,32973,32974,32975,32976,32977,32978,
+32979,32980,32981,32982,32984,32985,32986,32987,32988,32989,32990,32991,32992,
+32993,32994,32995,32996,32997,32999,33000,33001,33002,33003,33004,33005,33006,
+33007,33008,33009,33010,33011,33012,33014,33015,33016,33017,33018,33019,33020,
+33021,33022,33023,33024,33025,33026,33027,33029,33030,33031,33032,33033,33034,
+33035,33036,33037,33038,33039,33040,33041,33042,33043,33045,33046,33047,33048,
+33049,33050,33051,33052,33053,33054,33055,33056,33057,33058,33060,33061,33062,
+33063,33064,33065,33066,33067,33068,33069,33070,33071,33072,33073,33074,33076,
+33077,33078,33079,33080,33081,33082,33083,33084,33085,33086,33087,33088,33089,
+33090,33092,33093,33094,33095,33096,33097,33098,33099,33100,33101,33102,33103,
+33104,33105,33106,33108,33109,33110,33111,33112,33113,33114,33115,33116,33117,
+33118,33119,33120,33121,33122,33124,33125,33126,33127,33128,33129,33130,33131,
+33132,33133,33134,33135,33136,33137,33138,33140,33141,33142,33143,33144,33145,
+33146,33147,33148,33149,33150,33151,33152,33153,33154,33155,33157,33158,33159,
+33160,33161,33162,33163,33164,33165,33166,33167,33168,33169,33170,33171,33173,
+33174,33175,33176,33177,33178,33179,33180,33181,33182,33183,33184,33185,33186,
+33187,33188,33190,33191,33192,33193,33194,33195,33196,33197,33198,33199,33200,
+33201,33202,33203,33204,33205,33207,33208,33209,33210,33211,33212,33213,33214,
+33215,33216,33217,33218,33219,33220,33221,33222,33224,33225,33226,33227,33228,
+33229,33230,33231,33232,33233,33234,33235,33236,33237,33238,33239,33241,33242,
+33243,33244,33245,33246,33247,33248,33249,33250,33251,33252,33253,33254,33255,
+33256,33257,33259,33260,33261,33262,33263,33264,33265,33266,33267,33268,33269,
+33270,33271,33272,33273,33274,33276,33277,33278,33279,33280,33281,33282,33283,
+33284,33285,33286,33287,33288,33289,33290,33291,33292,33294,33295,33296,33297,
+33298,33299,33300,33301,33302,33303,33304,33305,33306,33307,33308,33309,33310,
+33312,33313,33314,33315,33316,33317,33318,33319,33320,33321,33322,33323,33324,
+33325,33326,33327,33328,33329,33331,33332,33333,33334,33335,33336,33337,33338,
+33339,33340,33341,33342,33343,33344,33345,33346,33347,33349,33350,33351,33352,
+33353,33354,33355,33356,33357,33358,33359,33360,33361,33362,33363,33364,33365,
+33366,33368,33369,33370,33371,33372,33373,33374,33375,33376,33377,33378,33379,
+33380,33381,33382,33383,33384,33385,33387,33388,33389,33390,33391,33392,33393,
+33394,33395,33396,33397,33398,33399,33400,33401,33402,33403,33404,33406,33407,
+33408,33409,33410,33411,33412,33413,33414,33415,33416,33417,33418,33419,33420,
+33421,33422,33423,33424,33426,33427,33428,33429,33430,33431,33432,33433,33434,
+33435,33436,33437,33438,33439,33440,33441,33442,33443,33445,33446,33447,33448,
+33449,33450,33451,33452,33453,33454,33455,33456,33457,33458,33459,33460,33461,
+33462,33463,33465,33466,33467,33468,33469,33470,33471,33472,33473,33474,33475,
+33476,33477,33478,33479,33480,33481,33482,33483,33484,33486,33487,33488,33489,
+33490,33491,33492,33493,33494,33495,33496,33497,33498,33499,33500,33501,33502,
+33503,33504,33505,33507,33508,33509,33510,33511,33512,33513,33514,33515,33516,
+33517,33518,33519,33520,33521,33522,33523,33524,33525,33526,33528,33529,33530,
+33531,33532,33533,33534,33535,33536,33537,33538,33539,33540,33541,33542,33543,
+33544,33545,33546,33547,33549,33550,33551,33552,33553,33554,33555,33556,33557,
+33558,33559,33560,33561,33562,33563,33564,33565,33566,33567,33568,33569,33571,
+33572,33573,33574,33575,33576,33577,33578,33579,33580,33581,33582,33583,33584,
+33585,33586,33587,33588,33589,33590,33591,33593,33594,33595,33596,33597,33598,
+33599,33600,33601,33602,33603,33604,33605,33606,33607,33608,33609,33610,33611,
+33612,33613,33615,33616,33617,33618,33619,33620,33621,33622,33623,33624,33625,
+33626,33627,33628,33629,33630,33631,33632,33633,33634,33635,33636,33638,33639,
+33640,33641,33642,33643,33644,33645,33646,33647,33648,33649,33650,33651,33652,
+33653,33654,33655,33656,33657,33658,33659,33661,33662,33663,33664,33665,33666,
+33667,33668,33669,33670,33671,33672,33673,33674,33675,33676,33677,33678,33679,
+33680,33681,33682,33683,33685,33686,33687,33688,33689,33690,33691,33692,33693,
+33694,33695,33696,33697,33698,33699,33700,33701,33702,33703,33704,33705,33706,
+33707,33709,33710,33711,33712,33713,33714,33715,33716,33717,33718,33719,33720,
+33721,33722,33723,33724,33725,33726,33727,33728,33729,33730,33731,33732,33734,
+33735,33736,33737,33738,33739,33740,33741,33742,33743,33744,33745,33746,33747,
+33748,33749,33750,33751,33752,33753,33754,33755,33756,33757,33758,33760,33761,
+33762,33763,33764,33765,33766,33767,33768,33769,33770,33771,33772,33773,33774,
+33775,33776,33777,33778,33779,33780,33781,33782,33783,33784,33786,33787,33788,
+33789,33790,33791,33792,33793,33794,33795,33796,33797,33798,33799,33800,33801,
+33802,33803,33804,33805,33806,33807,33808,33809,33810,33812,33813,33814,33815,
+33816,33817,33818,33819,33820,33821,33822,33823,33824,33825,33826,33827,33828,
+33829,33830,33831,33832,33833,33834,33835,33836,33837,33838,33840,33841,33842,
+33843,33844,33845,33846,33847,33848,33849,33850,33851,33852,33853,33854,33855,
+33856,33857,33858,33859,33860,33861,33862,33863,33864,33865,33866,33868,33869,
+33870,33871,33872,33873,33874,33875,33876,33877,33878,33879,33880,33881,33882,
+33883,33884,33885,33886,33887,33888,33889,33890,33891,33892,33893,33894,33895,
+33897,33898,33899,33900,33901,33902,33903,33904,33905,33906,33907,33908,33909,
+33910,33911,33912,33913,33914,33915,33916,33917,33918,33919,33920,33921,33922,
+33923,33924,33925,33927,33928,33929,33930,33931,33932,33933,33934,33935,33936,
+33937,33938,33939,33940,33941,33942,33943,33944,33945,33946,33947,33948,33949,
+33950,33951,33952,33953,33954,33955,33956,33958,33959,33960,33961,33962,33963,
+33964,33965,33966,33967,33968,33969,33970,33971,33972,33973,33974,33975,33976,
+33977,33978,33979,33980,33981,33982,33983,33984,33985,33986,33987,33988,33990,
+33991,33992,33993,33994,33995,33996,33997,33998,33999,34000,34001,34002,34003,
+34004,34005,34006,34007,34008,34009,34010,34011,34012,34013,34014,34015,34016,
+34017,34018,34019,34020,34021,34023,34024,34025,34026,34027,34028,34029,34030,
+34031,34032,34033,34034,34035,34036,34037,34038,34039,34040,34041,34042,34043,
+34044,34045,34046,34047,34048,34049,34050,34051,34052,34053,34054,34055,34056,
+34058,34059,34060,34061,34062,34063,34064,34065,34066,34067,34068,34069,34070,
+34071,34072,34073,34074,34075,34076,34077,34078,34079,34080,34081,34082,34083,
+34084,34085,34086,34087,34088,34089,34090,34091,34092,34094,34095,34096,34097,
+34098,34099,34100,34101,34102,34103,34104,34105,34106,34107,34108,34109,34110,
+34111,34112,34113,34114,34115,34116,34117,34118,34119,34120,34121,34122,34123,
+34124,34125,34126,34127,34128,34129,34130,34132,34133,34134,34135,34136,34137,
+34138,34139,34140,34141,34142,34143,34144,34145,34146,34147,34148,34149,34150,
+34151,34152,34153,34154,34155,34156,34157,34158,34159,34160,34161,34162,34163,
+34164,34165,34166,34167,34168,34169,34170,34171,34173,34174,34175,34176,34177,
+34178,34179,34180,34181,34182,34183,34184,34185,34186,34187,34188,34189,34190,
+34191,34192,34193,34194,34195,34196,34197,34198,34199,34200,34201,34202,34203,
+34204,34205,34206,34207,34208,34209,34210,34211,34212,34213,34214,34216,34217,
+34218,34219,34220,34221,34222,34223,34224,34225,34226,34227,34228,34229,34230,
+34231,34232,34233,34234,34235,34236,34237,34238,34239,34240,34241,34242,34243,
+34244,34245,34246,34247,34248,34249,34250,34251,34252,34253,34254,34255,34256,
+34257,34258,34259,34260,34262,34263,34264,34265,34266,34267,34268,34269,34270,
+34271,34272,34273,34274,34275,34276,34277,34278,34279,34280,34281,34282,34283,
+34284,34285,34286,34287,34288,34289,34290,34291,34292,34293,34294,34295,34296,
+34297,34298,34299,34300,34301,34302,34303,34304,34305,34306,34307,34308,34309,
+34310,34312,34313,34314,34315,34316,34317,34318,34319,34320,34321,34322,34323,
+34324,34325,34326,34327,34328,34329,34330,34331,34332,34333,34334,34335,34336,
+34337,34338,34339,34340,34341,34342,34343,34344,34345,34346,34347,34348,34349,
+34350,34351,34352,34353,34354,34355,34356,34357,34358,34359,34360,34361,34362,
+34363,34364,34365,34366,34368,34369,34370,34371,34372,34373,34374,34375,34376,
+34377,34378,34379,34380,34381,34382,34383,34384,34385,34386,34387,34388,34389,
+34390,34391,34392,34393,34394,34395,34396,34397,34398,34399,34400,34401,34402,
+34403,34404,34405,34406,34407,34408,34409,34410,34411,34412,34413,34414,34415,
+34416,34417,34418,34419,34420,34421,34422,34423,34424,34425,34426,34427,34428,
+34429,34431,34432,34433,34434,34435,34436,34437,34438,34439,34440,34441,34442,
+34443,34444,34445,34446,34447,34448,34449,34450,34451,34452,34453,34454,34455,
+34456,34457,34458,34459,34460,34461,34462,34463,34464,34465,34466,34467,34468,
+34469,34470,34471,34472,34473,34474,34475,34476,34477,34478,34479,34480,34481,
+34482,34483,34484,34485,34486,34487,34488,34489,34490,34491,34492,34493,34494,
+34495,34496,34497,34498,34499,34500,34501,34502,34503,34504,34506,34507,34508,
+34509,34510,34511,34512,34513,34514,34515,34516,34517,34518,34519,34520,34521,
+34522,34523,34524,34525,34526,34527,34528,34529,34530,34531,34532,34533,34534,
+34535,34536,34537,34538,34539,34540,34541,34542,34543,34544,34545,34546,34547,
+34548,34549,34550,34551,34552,34553,34554,34555,34556,34557,34558,34559,34560,
+34561,34562,34563,34564,34565,34566,34567,34568,34569,34570,34571,34572,34573,
+34574,34575,34576,34577,34578,34579,34580,34581,34582,34583,34584,34585,34586,
+34587,34588,34589,34590,34591,34592,34593,34594,34595,34596,34597,34598,34599,
+34600,34601,34602,34603,34605,34606,34607,34608,34609,34610,34611,34612,34613,
+34614,34615,34616,34617,34618,34619,34620,34621,34622,34623,34624,34625,34626,
+34627,34628,34629,34630,34631,34632,34633,34634,34635,34636,34637,34638,34639,
+34640,34641,34642,34643,34644,34645,34646,34647,34648,34649,34650,34651,34652,
+34653,34654,34655,34656,34657,34658,34659,34660,34661,34662,34663,34664,34665,
+34666,34667,34668,34669,34670,34671,34672,34673,34674,34675,34676,34677,34678,
+34679,34680,34681,34682,34683,34684,34685,34686,34687,34688,34689,34690,34691,
+34692,34693,34694,34695,34696,34697,34698,34699,34700,34701,34702,34703,34704,
+34705,34706,34707,34708,34709,34710,34711,34712,34713,34714,34715,34716,34717,
+34718,34719,34720,34721,34722,34723,34724,34725,34726,34727,34728,34729,34730,
+34731,34732,34733,34734,34735,34736,34737,34738,34739,34740,34741,34742,34743,
+34744,34745,34746,34747,34748,34749,34750,34751,34752,34753,34754,34755,34756,
+34757,34758,34759,34760,34761,34762,34763,34764,34765,34766,34767,34768,34769,
+34770,34771,34772,34773,34774,34775,34776,34777,34778,34779,34780,34781,34782,
+34783,34784,34785,34786,34787,34788,34789,34790,34791,34792,34793,34794,34795,
+34796,34797,34798,34799,34800,34801,34802,34803,34804,34805,34806,34807,34808,
+34809,34810,34811,34812,34813,34814,34815,34816,34817,34818,34819,34820,34821,
+34822,34823,34824,34825,34826,34827,34828,34829,34830,34831,34832,34833,34834,
+34835,34836,34837,34838,34839,34840,34841,34842,34843,34844,34845,34846,34847,
+34848,34849,34850,34851,34852,34853,34854,34855,34856,34857,34858,34859,34860,
+34861,34862,34863,34864,34865,34866,34867,34868,34869,34870,34871,34872,34873,
+34874,34875,34876,34877,34878,34879,34880,34881,34882,34883,34884,34885,34886,
+34887,34888,34889,34890,34891,34892,34893,34894,34895,34896,34897,34898,34899,
+34900,34901,34902,34903,34904,34905,34906,34907,34908,34909,34910,34911,34912,
+34913,34914,34915,34916,34917,34918,34919,34920,34921,34922,34923,34924,34925,
+34926,34927,34928,34929,34930,34931,34932,34933,34934,34935,34936,34937,34938,
+34939,34940,34941,34942,34943,34944,34945,34946,34947,34948,34949,34950,34951,
+34952,34953,34954,34955,34956,34957,34958,34959,34960,34961,34962,34963,34964,
+34965,34966,34967,34968,34969,34970,34971,34972,34973,34974,34975,34976,34977,
+34978,34979,34980,34981,34982,34983,34984,34985,34986,34987,34988,34989,34990,
+34991,34992,34993,34994,34995,34996,34997,34998,34999,35000,35001,35002,35003,
+35004,35005,35006,35007,35008,35009,35010,35011,35012,35013,35014,35015,35016,
+35017,35018,35019,35020,35021,35022,35023,35024,35025,35026,35027,35028,35029,
+35030,35031,35032,35033,35034,35035,35036,35037,35038,35039,35040,35041,35042,
+35043,35044,35045,35046,35047,35048,35049,35050,35051,35052,35053,35054,35055,
+35056,35057,35058,35059,35060,35061,35062,35062,35063,35064,35065,35066,35067,
+35068,35069,35070,35071,35072,35073,35074,35075,35076,35077,35078,35079,35080,
+35081,35082,35083,35084,35085,35086,35087,35088,35089,35090,35091,35092,35093,
+35094,35095,35096,35097,35098,35099,35100,35101,35102,35103,35104,35105,35106,
+35107,35108,35109,35110,35111,35112,35113,35114,35115,35116,35117,35118,35119,
+35120,35121,35122,35123,35124,35125,35126,35127,35128,35129,35130,35131,35132,
+35133,35134,35135,35136,35137,35138,35139,35140,35141,35142,35143,35144,35145,
+35146,35147,35148,35149,35150,35151,35152,35153,35154,35155,35156,35157,35158,
+35159,35160,35160,35161,35162,35163,35164,35165,35166,35167,35168,35169,35170,
+35171,35172,35173,35174,35175,35176,35177,35178,35179,35180,35181,35182,35183,
+35184,35185,35186,35187,35188,35189,35190,35191,35192,35193,35194,35195,35196,
+35197,35198,35199,35200,35201,35202,35203,35204,35205,35206,35207,35208,35209,
+35210,35211,35212,35213,35214,35215,35216,35217,35218,35219,35220,35221,35222,
+35223,35224,35225,35226,35227,35228,35229,35230,35231,35232,35233,35234,35235,
+35236,35236,35237,35238,35239,35240,35241,35242,35243,35244,35245,35246,35247,
+35248,35249,35250,35251,35252,35253,35254,35255,35256,35257,35258,35259,35260,
+35261,35262,35263,35264,35265,35266,35267,35268,35269,35270,35271,35272,35273,
+35274,35275,35276,35277,35278,35279,35280,35281,35282,35283,35284,35285,35286,
+35287,35288,35289,35290,35291,35292,35293,35294,35295,35296,35297,35298,35299,
+35299,35300,35301,35302,35303,35304,35305,35306,35307,35308,35309,35310,35311,
+35312,35313,35314,35315,35316,35317,35318,35319,35320,35321,35322,35323,35324,
+35325,35326,35327,35328,35329,35330,35331,35332,35333,35334,35335,35336,35337,
+35338,35339,35340,35341,35342,35343,35344,35345,35346,35347,35348,35349,35350,
+35351,35352,35353,35354,35354,35355,35356,35357,35358,35359,35360,35361,35362,
+35363,35364,35365,35366,35367,35368,35369,35370,35371,35372,35373,35374,35375,
+35376,35377,35378,35379,35380,35381,35382,35383,35384,35385,35386,35387,35388,
+35389,35390,35391,35392,35393,35394,35395,35396,35397,35398,35399,35400,35401,
+35402,35403,35404,35404,35405,35406,35407,35408,35409,35410,35411,35412,35413,
+35414,35415,35416,35417,35418,35419,35420,35421,35422,35423,35424,35425,35426,
+35427,35428,35429,35430,35431,35432,35433,35434,35435,35436,35437,35438,35439,
+35440,35441,35442,35443,35444,35445,35446,35447,35448,35449,35450,35450,35451,
+35452,35453,35454,35455,35456,35457,35458,35459,35460,35461,35462,35463,35464,
+35465,35466,35467,35468,35469,35470,35471,35472,35473,35474,35475,35476,35477,
+35478,35479,35480,35481,35482,35483,35484,35485,35486,35487,35488,35489,35490,
+35491,35492,35493,35493,35494,35495,35496,35497,35498,35499,35500,35501,35502,
+35503,35504,35505,35506,35507,35508,35509,35510,35511,35512,35513,35514,35515,
+35516,35517,35518,35519,35520,35521,35522,35523,35524,35525,35526,35527,35528,
+35529,35530,35531,35532,35533,35533,35534,35535,35536,35537,35538,35539,35540,
+35541,35542,35543,35544,35545,35546,35547,35548,35549,35550,35551,35552,35553,
+35554,35555,35556,35557,35558,35559,35560,35561,35562,35563,35564,35565,35566,
+35567,35568,35569,35570,35571,35571,35572,35573,35574,35575,35576,35577,35578,
+35579,35580,35581,35582,35583,35584,35585,35586,35587,35588,35589,35590,35591,
+35592,35593,35594,35595,35596,35597,35598,35599,35600,35601,35602,35603,35604,
+35605,35606,35607,35607,35608,35609,35610,35611,35612,35613,35614,35615,35616,
+35617,35618,35619,35620,35621,35622,35623,35624,35625,35626,35627,35628,35629,
+35630,35631,35632,35633,35634,35635,35636,35637,35638,35639,35640,35641,35642,
+35642,35643,35644,35645,35646,35647,35648,35649,35650,35651,35652,35653,35654,
+35655,35656,35657,35658,35659,35660,35661,35662,35663,35664,35665,35666,35667,
+35668,35669,35670,35671,35672,35673,35674,35675,35675,35676,35677,35678,35679,
+35680,35681,35682,35683,35684,35685,35686,35687,35688,35689,35690,35691,35692,
+35693,35694,35695,35696,35697,35698,35699,35700,35701,35702,35703,35704,35705,
+35706,35707,35707,35708,35709,35710,35711,35712,35713,35714,35715,35716,35717,
+35718,35719,35720,35721,35722,35723,35724,35725,35726,35727,35728,35729,35730,
+35731,35732,35733,35734,35735,35736,35737,35738,35738,35739,35740,35741,35742,
+35743,35744,35745,35746,35747,35748,35749,35750,35751,35752,35753,35754,35755,
+35756,35757,35758,35759,35760,35761,35762,35763,35764,35765,35766,35767,35767,
+35768,35769,35770,35771,35772,35773,35774,35775,35776,35777,35778,35779,35780,
+35781,35782,35783,35784,35785,35786,35787,35788,35789,35790,35791,35792,35793,
+35794,35795,35796,35796,35797,35798,35799,35800,35801,35802,35803,35804,35805,
+35806,35807,35808,35809,35810,35811,35812,35813,35814,35815,35816,35817,35818,
+35819,35820,35821,35822,35823,35824,35824,35825,35826,35827,35828,35829,35830,
+35831,35832,35833,35834,35835,35836,35837,35838,35839,35840,35841,35842,35843,
+35844,35845,35846,35847,35848,35849,35850,35851,35851,35852,35853,35854,35855,
+35856,35857,35858,35859,35860,35861,35862,35863,35864,35865,35866,35867,35868,
+35869,35870,35871,35872,35873,35874,35875,35876,35877,35878,35878,35879,35880,
+35881,35882,35883,35884,35885,35886,35887,35888,35889,35890,35891,35892,35893,
+35894,35895,35896,35897,35898,35899,35900,35901,35902,35903,35903,35904,35905,
+35906,35907,35908,35909,35910,35911,35912,35913,35914,35915,35916,35917,35918,
+35919,35920,35921,35922,35923,35924,35925,35926,35927,35928,35929,35929,35930,
+35931,35932,35933,35934,35935,35936,35937,35938,35939,35940,35941,35942,35943,
+35944,35945,35946,35947,35948,35949,35950,35951,35952,35953,35953,35954,35955,
+35956,35957,35958,35959,35960,35961,35962,35963,35964,35965,35966,35967,35968,
+35969,35970,35971,35972,35973,35974,35975,35976,35977,35977,35978,35979,35980,
+35981,35982,35983,35984,35985,35986,35987,35988,35989,35990,35991,35992,35993,
+35994,35995,35996,35997,35998,35999,36000,36001,36001,36002,36003,36004,36005,
+36006,36007,36008,36009,36010,36011,36012,36013,36014,36015,36016,36017,36018,
+36019,36020,36021,36022,36023,36024,36024,36025,36026,36027,36028,36029,36030,
+36031,36032,36033,36034,36035,36036,36037,36038,36039,36040,36041,36042,36043,
+36044,36045,36046,36047,36047,36048,36049,36050,36051,36052,36053,36054,36055,
+36056,36057,36058,36059,36060,36061,36062,36063,36064,36065,36066,36067,36068,
+36069,36069,36070,36071,36072,36073,36074,36075,36076,36077,36078,36079,36080,
+36081,36082,36083,36084,36085,36086,36087,36088,36089,36090,36091,36091,36092,
+36093,36094,36095,36096,36097,36098,36099,36100,36101,36102,36103,36104,36105,
+36106,36107,36108,36109,36110,36111,36112,36113,36113,36114,36115,36116,36117,
+36118,36119,36120,36121,36122,36123,36124,36125,36126,36127,36128,36129,36130,
+36131,36132,36133,36134,36134,36135,36136,36137,36138,36139,36140,36141,36142,
+36143,36144,36145,36146,36147,36148,36149,36150,36151,36152,36153,36154,36154,
+36155,36156,36157,36158,36159,36160,36161,36162,36163,36164,36165,36166,36167,
+36168,36169,36170,36171,36172,36173,36174,36175,36175,36176,36177,36178,36179,
+36180,36181,36182,36183,36184,36185,36186,36187,36188,36189,36190,36191,36192,
+36193,36194,36195,36195,36196,36197,36198,36199,36200,36201,36202,36203,36204,
+36205,36206,36207,36208,36209,36210,36211,36212,36213,36214,36215,36215,36216,
+36217,36218,36219,36220,36221,36222,36223,36224,36225,36226,36227,36228,36229,
+36230,36231,36232,36233,36234,36235,36235,36236,36237,36238,36239,36240,36241,
+36242,36243,36244,36245,36246,36247,36248,36249,36250,36251,36252,36253,36254,
+36254,36255,36256,36257,36258,36259,36260,36261,36262,36263,36264,36265,36266,
+36267,36268,36269,36270,36271,36272,36273,36273,36274,36275,36276,36277,36278,
+36279,36280,36281,36282,36283,36284,36285,36286,36287,36288,36289,36290,36291,
+36292,36292,36293,36294,36295,36296,36297,36298,36299,36300,36301,36302,36303,
+36304,36305,36306,36307,36308,36309,36310,36310,36311,36312,36313,36314,36315,
+36316,36317,36318,36319,36320,36321,36322,36323,36324,36325,36326,36327,36328,
+36329,36329,36330,36331,36332,36333,36334,36335,36336,36337,36338,36339,36340,
+36341,36342,36343,36344,36345,36346,36347,36347,36348,36349,36350,36351,36352,
+36353,36354,36355,36356,36357,36358,36359,36360,36361,36362,36363,36364,36365,
+36365,36366,36367,36368,36369,36370,36371,36372,36373,36374,36375,36376,36377,
+36378,36379,36380,36381,36382,36382,36383,36384,36385,36386,36387,36388,36389,
+36390,36391,36392,36393,36394,36395,36396,36397,36398,36399,36400,36400,36401,
+36402,36403,36404,36405,36406,36407,36408,36409,36410,36411,36412,36413,36414,
+36415,36416,36417,36417,36418,36419,36420,36421,36422,36423,36424,36425,36426,
+36427,36428,36429,36430,36431,36432,36433,36434,36434,36435,36436,36437,36438,
+36439,36440,36441,36442,36443,36444,36445,36446,36447,36448,36449,36450,36451,
+36451,36452,36453,36454,36455,36456,36457,36458,36459,36460,36461,36462,36463,
+36464,36465,36466,36467,36468,36468,36469,36470,36471,36472,36473,36474,36475,
+36476,36477,36478,36479,36480,36481,36482,36483,36484,36484,36485,36486,36487,
+36488,36489,36490,36491,36492,36493,36494,36495,36496,36497,36498,36499,36500,
+36501,36501,36502,36503,36504,36505,36506,36507,36508,36509,36510,36511,36512,
+36513,36514,36515,36516,36517,36517,36518,36519,36520,36521,36522,36523,36524,
+36525,36526,36527,36528,36529,36530,36531,36532,36533,36533,36534,36535,36536,
+36537,36538,36539,36540,36541,36542,36543,36544,36545,36546,36547,36548,36549,
+36549,36550,36551,36552,36553,36554,36555,36556,36557,36558,36559,36560,36561,
+36562,36563,36564,36565,36565,36566,36567,36568,36569,36570,36571,36572,36573,
+36574,36575,36576,36577,36578,36579,36580,36581,36581,36582,36583,36584,36585,
+36586,36587,36588,36589,36590,36591,36592,36593,36594,36595,36596,36596,36597,
+36598,36599,36600,36601,36602,36603,36604,36605,36606,36607,36608,36609,36610,
+36611,36611,36612,36613,36614,36615,36616,36617,36618,36619,36620,36621,36622,
+36623,36624,36625,36626,36627,36627,36628,36629,36630,36631,36632,36633,36634,
+36635,36636,36637,36638,36639,36640,36641,36642,36642,36643,36644,36645,36646,
+36647,36648,36649,36650,36651,36652,36653,36654,36655,36656,36657,36657,36658,
+36659,36660,36661,36662,36663,36664,36665,36666,36667,36668,36669,36670,36671,
+36672,36672,36673,36674,36675,36676,36677,36678,36679,36680,36681,36682,36683,
+36684,36685,36686,36686,36687,36688,36689,36690,36691,36692,36693,36694,36695,
+36696,36697,36698,36699,36700,36701,36701,36702,36703,36704,36705,36706,36707,
+36708,36709,36710,36711,36712,36713,36714,36715,36715,36716,36717,36718,36719,
+36720,36721,36722,36723,36724,36725,36726,36727,36728,36729,36730,36730,36731,
+36732,36733,36734,36735,36736,36737,36738,36739,36740,36741,36742,36743,36744,
+36744,36745,36746,36747,36748,36749,36750,36751,36752,36753,36754,36755,36756,
+36757,36758,36758,36759,36760,36761,36762,36763,36764,36765,36766,36767,36768,
+36769,36770,36771,36772,36772,36773,36774,36775,36776,36777,36778,36779,36780,
+36781,36782,36783,36784,36785,36786,36786,36787,36788,36789,36790,36791,36792,
+36793,36794,36795,36796,36797,36798,36799,36800,36800,36801,36802,36803,36804,
+36805,36806,36807,36808,36809,36810,36811,36812,36813,36814,36814,36815,36816,
+36817,36818,36819,36820,36821,36822,36823,36824,36825,36826,36827,36828,36828,
+36829,36830,36831,36832,36833,36834,36835,36836,36837,36838,36839,36840,36841,
+36841,36842,36843,36844,36845,36846,36847,36848,36849,36850,36851,36852,36853,
+36854,36855,36855,36856,36857,36858,36859,36860,36861,36862,36863,36864,36865,
+36866,36867,36868,36868,36869,36870,36871,36872,36873,36874,36875,36876,36877,
+36878,36879,36880,36881,36881,36882,36883,36884,36885,36886,36887,36888,36889,
+36890,36891,36892,36893,36894,36895,36895,36896,36897,36898,36899,36900,36901,
+36902,36903,36904,36905,36906,36907,36908,36908,36909,36910,36911,36912,36913,
+36914,36915,36916,36917,36918,36919,36920,36921,36921,36922,36923,36924,36925,
+36926,36927,36928,36929,36930,36931,36932,36933,36934,36934,36935,36936,36937,
+36938,36939,36940,36941,36942,36943,36944,36945,36946,36947,36947,36948,36949,
+36950,36951,36952,36953,36954,36955,36956,36957,36958,36959,36960,36960,36961,
+36962,36963,36964,36965,36966,36967,36968,36969,36970,36971,36972,36972,36973,
+36974,36975,36976,36977,36978,36979,36980,36981,36982,36983,36984,36985,36985,
+36986,36987,36988,36989,36990,36991,36992,36993,36994,36995,36996,36997,36998,
+36998,36999,37000,37001,37002,37003,37004,37005,37006,37007,37008,37009,37010,
+37010,37011,37012,37013,37014,37015,37016,37017,37018,37019,37020,37021,37022,
+37022,37023,37024,37025,37026,37027,37028,37029,37030,37031,37032,37033,37034,
+37035,37035,37036,37037,37038,37039,37040,37041,37042,37043,37044,37045,37046,
+37047,37047,37048,37049,37050,37051,37052,37053,37054,37055,37056,37057,37058,
+37059,37059,37060,37061,37062,37063,37064,37065,37066,37067,37068,37069,37070,
+37071,37072,37072,37073,37074,37075,37076,37077,37078,37079,37080,37081,37082,
+37083,37084,37084,37085,37086,37087,37088,37089,37090,37091,37092,37093,37094,
+37095,37096,37096,37097,37098,37099,37100,37101,37102,37103,37104,37105,37106,
+37107,37108,37108,37109,37110,37111,37112,37113,37114,37115,37116,37117,37118,
+37119,37120,37120,37121,37122,37123,37124,37125,37126,37127,37128,37129,37130,
+37131,37131,37132,37133,37134,37135,37136,37137,37138,37139,37140,37141,37142,
+37143,37143,37144,37145,37146,37147,37148,37149,37150,37151,37152,37153,37154,
+37155,37155,37156,37157,37158,37159,37160,37161,37162,37163,37164,37165,37166,
+37167,37167,37168,37169,37170,37171,37172,37173,37174,37175,37176,37177,37178,
+37178,37179,37180,37181,37182,37183,37184,37185,37186,37187,37188,37189,37190,
+37190,37191,37192,37193,37194,37195,37196,37197,37198,37199,37200,37201,37201,
+37202,37203,37204,37205,37206,37207,37208,37209,37210,37211,37212,37213,37213,
+37214,37215,37216,37217,37218,37219,37220,37221,37222,37223,37224,37224,37225,
+37226,37227,37228,37229,37230,37231,37232,37233,37234,37235,37235,37236,37237,
+37238,37239,37240,37241,37242,37243,37244,37245,37246,37247,37247,37248,37249,
+37250,37251,37252,37253,37254,37255,37256,37257,37258,37258,37259,37260,37261,
+37262,37263,37264,37265,37266,37267,37268,37269,37269,37270,37271,37272,37273,
+37274,37275,37276,37277,37278,37279,37280,37280,37281,37282,37283,37284,37285,
+37286,37287,37288,37289,37290,37291,37291,37292,37293,37294,37295,37296,37297,
+37298,37299,37300,37301,37302,37302,37303,37304,37305,37306,37307,37308,37309,
+37310,37311,37312,37313,37313,37314,37315,37316,37317,37318,37319,37320,37321,
+37322,37323,37324,37324,37325,37326,37327,37328,37329,37330,37331,37332,37333,
+37334,37335,37335,37336,37337,37338,37339,37340,37341,37342,37343,37344,37345,
+37346,37346,37347,37348,37349,37350,37351,37352,37353,37354,37355,37356,37356,
+37357,37358,37359,37360,37361,37362,37363,37364,37365,37366,37367,37367,37368,
+37369,37370,37371,37372,37373,37374,37375,37376,37377,37378,37378,37379,37380,
+37381,37382,37383,37384,37385,37386,37387,37388,37388,37389,37390,37391,37392,
+37393,37394,37395,37396,37397,37398,37399,37399,37400,37401,37402,37403,37404,
+37405,37406,37407,37408,37409,37410,37410,37411,37412,37413,37414,37415,37416,
+37417,37418,37419,37420,37420,37421,37422,37423,37424,37425,37426,37427,37428,
+37429,37430,37430,37431,37432,37433,37434,37435,37436,37437,37438,37439,37440,
+37441,37441,37442,37443,37444,37445,37446,37447,37448,37449,37450,37451,37451,
+37452,37453,37454,37455,37456,37457,37458,37459,37460,37461,37462,37462,37463,
+37464,37465,37466,37467,37468,37469,37470,37471,37472,37472,37473,37474,37475,
+37476,37477,37478,37479,37480,37481,37482,37482,37483,37484,37485,37486,37487,
+37488,37489,37490,37491,37492,37492,37493,37494,37495,37496,37497,37498,37499,
+37500,37501,37502,37502,37503,37504,37505,37506,37507,37508,37509,37510,37511,
+37512,37513,37513,37514,37515,37516,37517,37518,37519,37520,37521,37522,37523,
+37523,37524,37525,37526,37527,37528,37529,37530,37531,37532,37533,37533,37534,
+37535,37536,37537,37538,37539,37540,37541,37542,37543,37543,37544,37545,37546,
+37547,37548,37549,37550,37551,37552,37553,37553,37554,37555,37556,37557,37558,
+37559,37560,37561,37562,37563,37563,37564,37565,37566,37567,37568,37569,37570,
+37571,37572,37573,37573,37574,37575,37576,37577,37578,37579,37580,37581,37582,
+37582,37583,37584,37585,37586,37587,37588,37589,37590,37591,37592,37592,37593,
+37594,37595,37596,37597,37598,37599,37600,37601,37602,37602,37603,37604,37605,
+37606,37607,37608,37609,37610,37611,37612,37612,37613,37614,37615,37616,37617,
+37618,37619,37620,37621,37622,37622,37623,37624,37625,37626,37627,37628,37629,
+37630,37631,37631,37632,37633,37634,37635,37636,37637,37638,37639,37640,37641,
+37641,37642,37643,37644,37645,37646,37647,37648,37649,37650,37651,37651,37652,
+37653,37654,37655,37656,37657,37658,37659,37660,37660,37661,37662,37663,37664,
+37665,37666,37667,37668,37669,37670,37670,37671,37672,37673,37674,37675,37676,
+37677,37678,37679,37679,37680,37681,37682,37683,37684,37685,37686,37687,37688,
+37689,37689,37690,37691,37692,37693,37694,37695,37696,37697,37698,37698,37699,
+37700,37701,37702,37703,37704,37705,37706,37707,37708,37708,37709,37710,37711,
+37712,37713,37714,37715,37716,37717,37717,37718,37719,37720,37721,37722,37723,
+37724,37725,37726,37726,37727,37728,37729,37730,37731,37732,37733,37734,37735,
+37736,37736,37737,37738,37739,37740,37741,37742,37743,37744,37745,37745,37746,
+37747,37748,37749,37750,37751,37752,37753,37754,37754,37755,37756,37757,37758,
+37759,37760,37761,37762,37763,37764,37764,37765,37766,37767,37768,37769,37770,
+37771,37772,37773,37773,37774,37775,37776,37777,37778,37779,37780,37781,37782,
+37782,37783,37784,37785,37786,37787,37788,37789,37790,37791,37791,37792,37793,
+37794,37795,37796,37797,37798,37799,37800,37800,37801,37802,37803,37804,37805,
+37806,37807,37808,37809,37809,37810,37811,37812,37813,37814,37815,37816,37817,
+37818,37818,37819,37820,37821,37822,37823,37824,37825,37826,37827,37827,37828,
+37829,37830,37831,37832,37833,37834,37835,37836,37836,37837,37838,37839,37840,
+37841,37842,37843,37844,37845,37845,37846,37847,37848,37849,37850,37851,37852,
+37853,37854,37854,37855,37856,37857,37858,37859,37860,37861,37862,37863,37863,
+37864,37865,37866,37867,37868,37869,37870,37871,37872,37872,37873,37874,37875,
+37876,37877,37878,37879,37880,37881,37881,37882,37883,37884,37885,37886,37887,
+37888,37889,37890,37890,37891,37892,37893,37894,37895,37896,37897,37898,37899,
+37899,37900,37901,37902,37903,37904,37905,37906,37907,37908,37908,37909,37910,
+37911,37912,37913,37914,37915,37916,37916,37917,37918,37919,37920,37921,37922,
+37923,37924,37925,37925,37926,37927,37928,37929,37930,37931,37932,37933,37934,
+37934,37935,37936,37937,37938,37939,37940,37941,37942,37943,37943,37944,37945,
+37946,37947,37948,37949,37950,37951,37951,37952,37953,37954,37955,37956,37957,
+37958,37959,37960,37960,37961,37962,37963,37964,37965,37966,37967,37968,37969,
+37969,37970,37971,37972,37973,37974,37975,37976,37977,37977,37978,37979,37980,
+37981,37982,37983,37984,37985,37986,37986,37987,37988,37989,37990,37991,37992,
+37993,37994,37994,37995,37996,37997,37998,37999,38000,38001,38002,38003,38003,
+38004,38005,38006,38007,38008,38009,38010,38011,38011,38012,38013,38014,38015,
+38016,38017,38018,38019,38020,38020,38021,38022,38023,38024,38025,38026,38027,
+38028,38028,38029,38030,38031,38032,38033,38034,38035,38036,38037,38037,38038,
+38039,38040,38041,38042,38043,38044,38045,38045,38046,38047,38048,38049,38050,
+38051,38052,38053,38054,38054,38055,38056,38057,38058,38059,38060,38061,38062,
+38062,38063,38064,38065,38066,38067,38068,38069,38070,38070,38071,38072,38073,
+38074,38075,38076,38077,38078,38079,38079,38080,38081,38082,38083,38084,38085,
+38086,38087,38087,38088,38089,38090,38091,38092,38093,38094,38095,38095,38096,
+38097,38098,38099,38100,38101,38102,38103,38103,38104,38105,38106,38107,38108,
+38109,38110,38111,38112,38112,38113,38114,38115,38116,38117,38118,38119,38120,
+38120,38121,38122,38123,38124,38125,38126,38127,38128,38128,38129,38130,38131,
+38132,38133,38134,38135,38136,38136,38137,38138,38139,38140,38141,38142,38143,
+38144,38144,38145,38146,38147,38148,38149,38150,38151,38152,38153,38153,38154,
+38155,38156,38157,38158,38159,38160,38161,38161,38162,38163,38164,38165,38166,
+38167,38168,38169,38169,38170,38171,38172,38173,38174,38175,38176,38177,38177,
+38178,38179,38180,38181,38182,38183,38184,38185,38185,38186,38187,38188,38189,
+38190,38191,38192,38193,38193,38194,38195,38196,38197,38198,38199,38200,38201,
+38201,38202,38203,38204,38205,38206,38207,38208,38209,38209,38210,38211,38212,
+38213,38214,38215,38216,38217,38217,38218,38219,38220,38221,38222,38223,38224,
+38225,38225,38226,38227,38228,38229,38230,38231,38232,38233,38233,38234,38235,
+38236,38237,38238,38239,38240,38241,38241,38242,38243,38244,38245,38246,38247,
+38248,38249,38249,38250,38251,38252,38253,38254,38255,38256,38257,38257,38258,
+38259,38260,38261,38262,38263,38264,38265,38265,38266,38267,38268,38269,38270,
+38271,38272,38272,38273,38274,38275,38276,38277,38278,38279,38280,38280,38281,
+38282,38283,38284,38285,38286,38287,38288,38288,38289,38290,38291,38292,38293,
+38294,38295,38296,38296,38297,38298,38299,38300,38301,38302,38303,38304,38304,
+38305,38306,38307,38308,38309,38310,38311,38311,38312,38313,38314,38315,38316,
+38317,38318,38319,38319,38320,38321,38322,38323,38324,38325,38326,38327,38327,
+38328,38329,38330,38331,38332,38333,38334,38335,38335,38336,38337,38338,38339,
+38340,38341,38342,38342,38343,38344,38345,38346,38347,38348,38349,38350,38350,
+38351,38352,38353,38354,38355,38356,38357,38358,38358,38359,38360,38361,38362,
+38363,38364,38365,38365,38366,38367,38368,38369,38370,38371,38372,38373,38373,
+38374,38375,38376,38377,38378,38379,38380,38381,38381,38382,38383,38384,38385,
+38386,38387,38388,38388,38389,38390,38391,38392,38393,38394,38395,38396,38396,
+38397,38398,38399,38400,38401,38402,38403,38403,38404,38405,38406,38407,38408,
+38409,38410,38411,38411,38412,38413,38414,38415,38416,38417,38418,38418,38419,
+38420,38421,38422,38423,38424,38425,38426,38426,38427,38428,38429,38430,38431,
+38432,38433,38433,38434,38435,38436,38437,38438,38439,38440,38441,38441,38442,
+38443,38444,38445,38446,38447,38448,38448,38449,38450,38451,38452,38453,38454,
+38455,38456,38456,38457,38458,38459,38460,38461,38462,38463,38463,38464,38465,
+38466,38467,38468,38469,38470,38471,38471,38472,38473,38474,38475,38476,38477,
+38478,38478,38479,38480,38481,38482,38483,38484,38485,38485,38486,38487,38488,
+38489,38490,38491,38492,38493,38493,38494,38495,38496,38497,38498,38499,38500,
+38500,38501,38502,38503,38504,38505,38506,38507,38507,38508,38509,38510,38511,
+38512,38513,38514,38515,38515,38516,38517,38518,38519,38520,38521,38522,38522,
+38523,38524,38525,38526,38527,38528,38529,38529,38530,38531,38532,38533,38534,
+38535,38536,38537,38537,38538,38539,38540,38541,38542,38543,38544,38544,38545,
+38546,38547,38548,38549,38550,38551,38551,38552,38553,38554,38555,38556,38557,
+38558,38558,38559,38560,38561,38562,38563,38564,38565,38566,38566,38567,38568,
+38569,38570,38571,38572,38573,38573,38574,38575,38576,38577,38578,38579,38580,
+38580,38581,38582,38583,38584,38585,38586,38587,38587,38588,38589,38590,38591,
+38592,38593,38594,38594,38595,38596,38597,38598,38599,38600,38601,38602,38602,
+38603,38604,38605,38606,38607,38608,38609,38609,38610,38611,38612,38613,38614,
+38615,38616,38616,38617,38618,38619,38620,38621,38622,38623,38623,38624,38625,
+38626,38627,38628,38629,38630,38630,38631,38632,38633,38634,38635,38636,38637,
+38637,38638,38639,38640,38641,38642,38643,38644,38644,38645,38646,38647,38648,
+38649,38650,38651,38651,38652,38653,38654,38655,38656,38657,38658,38658,38659,
+38660,38661,38662,38663,38664,38665,38665,38666,38667,38668,38669,38670,38671,
+38672,38672,38673,38674,38675,38676,38677,38678,38679,38679,38680,38681,38682,
+38683,38684,38685,38686,38686,38687,38688,38689,38690,38691,38692,38693,38693,
+38694,38695,38696,38697,38698,38699,38700,38700,38701,38702,38703,38704,38705,
+38706,38707,38707,38708,38709,38710,38711,38712,38713,38714,38714,38715,38716,
+38717,38718,38719,38720,38721,38721,38722,38723,38724,38725,38726,38727,38728,
+38728,38729,38730,38731,38732,38733,38734,38735,38735,38736,38737,38738,38739,
+38740,38741,38742,38742,38743,38744,38745,38746,38747,38748,38749,38749,38750,
+38751,38752,38753,38754,38755,38756,38756,38757,38758,38759,38760,38761,38762,
+38762,38763,38764,38765,38766,38767,38768,38769,38769,38770,38771,38772,38773,
+38774,38775,38776,38776,38777,38778,38779,38780,38781,38782,38783,38783,38784,
+38785,38786,38787,38788,38789,38790,38790,38791,38792,38793,38794,38795,38796,
+38797,38797,38798,38799,38800,38801,38802,38803,38803,38804,38805,38806,38807,
+38808,38809,38810,38810,38811,38812,38813,38814,38815,38816,38817,38817,38818,
+38819,38820,38821,38822,38823,38824,38824,38825,38826,38827,38828,38829,38830,
+38830,38831,38832,38833,38834,38835,38836,38837,38837,38838,38839,38840,38841,
+38842,38843,38844,38844,38845,38846,38847,38848,38849,38850,38850,38851,38852,
+38853,38854,38855,38856,38857,38857,38858,38859,38860,38861,38862,38863,38864,
+38864,38865,38866,38867,38868,38869,38870,38871,38871,38872,38873,38874,38875,
+38876,38877,38877,38878,38879,38880,38881,38882,38883,38884,38884,38885,38886,
+38887,38888,38889,38890,38890,38891,38892,38893,38894,38895,38896,38897,38897,
+38898,38899,38900,38901,38902,38903,38904,38904,38905,38906,38907,38908,38909,
+38910,38910,38911,38912,38913,38914,38915,38916,38917,38917,38918,38919,38920,
+38921,38922,38923,38923,38924,38925,38926,38927,38928,38929,38930,38930,38931,
+38932,38933,38934,38935,38936,38937,38937,38938,38939,38940,38941,38942,38943,
+38943,38944,38945,38946,38947,38948,38949,38950,38950,38951,38952,38953,38954,
+38955,38956,38956,38957,38958,38959,38960,38961,38962,38963,38963,38964,38965,
+38966,38967,38968,38969,38969,38970,38971,38972,38973,38974,38975,38976,38976,
+38977,38978,38979,38980,38981,38982,38982,38983,38984,38985,38986,38987,38988,
+38989,38989,38990,38991,38992,38993,38994,38995,38995,38996,38997,38998,38999,
+39000,39001,39002,39002,39003,39004,39005,39006,39007,39008,39008,39009,39010,
+39011,39012,39013,39014,39014,39015,39016,39017,39018,39019,39020,39021,39021,
+39022,39023,39024,39025,39026,39027,39027,39028,39029,39030,39031,39032,39033,
+39034,39034,39035,39036,39037,39038,39039,39040,39040,39041,39042,39043,39044,
+39045,39046,39046,39047,39048,39049,39050,39051,39052,39053,39053,39054,39055,
+39056,39057,39058,39059,39059,39060,39061,39062,39063,39064,39065,39066,39066,
+39067,39068,39069,39070,39071,39072,39072,39073,39074,39075,39076,39077,39078,
+39078,39079,39080,39081,39082,39083,39084,39085,39085,39086,39087,39088,39089,
+39090,39091,39091,39092,39093,39094,39095,39096,39097,39097,39098,39099,39100,
+39101,39102,39103,39104,39104,39105,39106,39107,39108,39109,39110,39110,39111,
+39112,39113,39114,39115,39116,39116,39117,39118,39119,39120,39121,39122,39122,
+39123,39124,39125,39126,39127,39128,39129,39129,39130,39131,39132,39133,39134,
+39135,39135,39136,39137,39138,39139,39140,39141,39141,39142,39143,39144,39145,
+39146,39147,39147,39148,39149,39150,39151,39152,39153,39154,39154,39155,39156,
+39157,39158,39159,39160,39160,39161,39162,39163,39164,39165,39166,39166,39167,
+39168,39169,39170,39171,39172,39172,39173,39174,39175,39176,39177,39178,39178,
+39179,39180,39181,39182,39183,39184,39185,39185,39186,39187,39188,39189,39190,
+39191,39191,39192,39193,39194,39195,39196,39197,39197,39198,39199,39200,39201,
+39202,39203,39203,39204,39205,39206,39207,39208,39209,39209,39210,39211,39212,
+39213,39214,39215,39215,39216,39217,39218,39219,39220,39221,39221,39222,39223,
+39224,39225,39226,39227,39228,39228,39229,39230,39231,39232,39233,39234,39234,
+39235,39236,39237,39238,39239,39240,39240,39241,39242,39243,39244,39245,39246,
+39246,39247,39248,39249,39250,39251,39252,39252,39253,39254,39255,39256,39257,
+39258,39258,39259,39260,39261,39262,39263,39264,39264,39265,39266,39267,39268,
+39269,39270,39270,39271,39272,39273,39274,39275,39276,39276,39277,39278,39279,
+39280,39281,39282,39282,39283,39284,39285,39286,39287,39288,39288,39289,39290,
+39291,39292,39293,39294,39294,39295,39296,39297,39298,39299,39300,39300,39301,
+39302,39303,39304,39305,39306,39306,39307,39308,39309,39310,39311,39312,39312,
+39313,39314,39315,39316,39317,39318,39318,39319,39320,39321,39322,39323,39324,
+39324,39325,39326,39327,39328,39329,39330,39330,39331,39332,39333,39334,39335,
+39336,39336,39337,39338,39339,39340,39341,39342,39342,39343,39344,39345,39346,
+39347,39348,39348,39349,39350,39351,39352,39353,39354,39354,39355,39356,39357,
+39358,39359,39360,39360,39361,39362,39363,39364,39365,39366,39366,39367,39368,
+39369,39370,39371,39372,39372,39373,39374,39375,39376,39377,39378,39378,39379,
+39380,39381,39382,39383,39384,39384,39385,39386,39387,39388,39389,39389,39390,
+39391,39392,39393,39394,39395,39395,39396,39397,39398,39399,39400,39401,39401,
+39402,39403,39404,39405,39406,39407,39407,39408,39409,39410,39411,39412,39413,
+39413,39414,39415,39416,39417,39418,39419,39419,39420,39421,39422,39423,39424,
+39425,39425,39426,39427,39428,39429,39430,39430,39431,39432,39433,39434,39435,
+39436,39436,39437,39438,39439,39440,39441,39442,39442,39443,39444,39445,39446,
+39447,39448,39448,39449,39450,39451,39452,39453,39454,39454,39455,39456,39457,
+39458,39459,39460,39460,39461,39462,39463,39464,39465,39465,39466,39467,39468,
+39469,39470,39471,39471,39472,39473,39474,39475,39476,39477,39477,39478,39479,
+39480,39481,39482,39483,39483,39484,39485,39486,39487,39488,39488,39489,39490,
+39491,39492,39493,39494,39494,39495,39496,39497,39498,39499,39500,39500,39501,
+39502,39503,39504,39505,39506,39506,39507,39508,39509,39510,39511,39511,39512,
+39513,39514,39515,39516,39517,39517,39518,39519,39520,39521,39522,39523,39523,
+39524,39525,39526,39527,39528,39529,39529,39530,39531,39532,39533,39534,39534,
+39535,39536,39537,39538,39539,39540,39540,39541,39542,39543,39544,39545,39546,
+39546,39547,39548,39549,39550,39551,39551,39552,39553,39554,39555,39556,39557,
+39557,39558,39559,39560,39561,39562,39563,39563,39564,39565,39566,39567,39568,
+39568,39569,39570,39571,39572,39573,39574,39574,39575,39576,39577,39578,39579,
+39580,39580,39581,39582,39583,39584,39585,39585,39586,39587,39588,39589,39590,
+39591,39591,39592,39593,39594,39595,39596,39597,39597,39598,39599,39600,39601,
+39602,39602,39603,39604,39605,39606,39607,39608,39608,39609,39610,39611,39612,
+39613,39613,39614,39615,39616,39617,39618,39619,39619,39620,39621,39622,39623,
+39624,39625,39625,39626,39627,39628,39629,39630,39630,39631,39632,39633,39634,
+39635,39636,39636,39637,39638,39639,39640,39641,39641,39642,39643,39644,39645,
+39646,39647,39647,39648,39649,39650,39651,39652,39653,39653,39654,39655,39656,
+39657,39658,39658,39659,39660,39661,39662,39663,39664,39664,39665,39666,39667,
+39668,39669,39669,39670,39671,39672,39673,39674,39675,39675,39676,39677,39678,
+39679,39680,39680,39681,39682,39683,39684,39685,39686,39686,39687,39688,39689,
+39690,39691,39691,39692,39693,39694,39695,39696,39697,39697,39698,39699,39700,
+39701,39702,39702,39703,39704,39705,39706,39707,39708,39708,39709,39710,39711,
+39712,39713,39713,39714,39715,39716,39717,39718,39719,39719,39720,39721,39722,
+39723,39724,39724,39725,39726,39727,39728,39729,39730,39730,39731,39732,39733,
+39734,39735,39735,39736,39737,39738,39739,39740,39741,39741,39742,39743,39744,
+39745,39746,39746,39747,39748,39749,39750,39751,39752,39752,39753,39754,39755,
+39756,39757,39757,39758,39759,39760,39761,39762,39762,39763,39764,39765,39766,
+39767,39768,39768,39769,39770,39771,39772,39773,39773,39774,39775,39776,39777,
+39778,39779,39779,39780,39781,39782,39783,39784,39784,39785,39786,39787,39788,
+39789,39790,39790,39791,39792,39793,39794,39795,39795,39796,39797,39798,39799,
+39800,39800,39801,39802,39803,39804,39805,39806,39806,39807,39808,39809,39810,
+39811,39811,39812,39813,39814,39815,39816,39817,39817,39818,39819,39820,39821,
+39822,39822,39823,39824,39825,39826,39827,39827,39828,39829,39830,39831,39832,
+39833,39833,39834,39835,39836,39837,39838,39838,39839,39840,39841,39842,39843,
+39843,39844,39845,39846,39847,39848,39849,39849,39850,39851,39852,39853,39854,
+39854,39855,39856,39857,39858,39859,39859,39860,39861,39862,39863,39864,39865,
+39865,39866,39867,39868,39869,39870,39870,39871,39872,39873,39874,39875,39875,
+39876,39877,39878,39879,39880,39881,39881,39882,39883,39884,39885,39886,39886,
+39887,39888,39889,39890,39891,39891,39892,39893,39894,39895,39896,39896,39897,
+39898,39899,39900,39901,39902,39902,39903,39904,39905,39906,39907,39907,39908,
+39909,39910,39911,39912,39912,39913,39914,39915,39916,39917,39918,39918,39919,
+39920,39921,39922,39923,39923,39924,39925,39926,39927,39928,39928,39929,39930,
+39931,39932,39933,39933,39934,39935,39936,39937,39938,39939,39939,39940,39941,
+39942,39943,39944,39944,39945,39946,39947,39948,39949,39949,39950,39951,39952,
+39953,39954,39954,39955,39956,39957,39958,39959,39959,39960,39961,39962,39963,
+39964,39965,39965,39966,39967,39968,39969,39970,39970,39971,39972,39973,39974,
+39975,39975,39976,39977,39978,39979,39980,39980,39981,39982,39983,39984,39985,
+39986,39986,39987,39988,39989,39990,39991,39991,39992,39993,39994,39995,39996,
+39996,39997,39998,39999,40000,40001,40001,40002,40003,40004,40005,40006,40006,
+40007,40008,40009,40010,40011,40011,40012,40013,40014,40015,40016,40017,40017,
+40018,40019,40020,40021,40022,40022,40023,40024,40025,40026,40027,40027,40028,
+40029,40030,40031,40032,40032,40033,40034,40035,40036,40037,40037,40038,40039,
+40040,40041,40042,40042,40043,40044,40045,40046,40047,40047,40048,40049,40050,
+40051,40052,40053,40053,40054,40055,40056,40057,40058,40058,40059,40060,40061,
+40062,40063,40063,40064,40065,40066,40067,40068,40068,40069,40070,40071,40072,
+40073,40073,40074,40075,40076,40077,40078,40078,40079,40080,40081,40082,40083,
+40083,40084,40085,40086,40087,40088,40088,40089,40090,40091,40092,40093,40093,
+40094,40095,40096,40097,40098,40099,40099,40100,40101,40102,40103,40104,40104,
+40105,40106,40107,40108,40109,40109,40110,40111,40112,40113,40114,40114,40115,
+40116,40117,40118,40119,40119,40120,40121,40122,40123,40124,40124,40125,40126,
+40127,40128,40129,40129,40130,40131,40132,40133,40134,40134,40135,40136,40137,
+40138,40139,40139,40140,40141,40142,40143,40144,40144,40145,40146,40147,40148,
+40149,40149,40150,40151,40152,40153,40154,40154,40155,40156,40157,40158,40159,
+40159,40160,40161,40162,40163,40164,40164,40165,40166,40167,40168,40169,40169,
+40170,40171,40172,40173,40174,40174,40175,40176,40177,40178,40179,40179,40180,
+40181,40182,40183,40184,40184,40185,40186,40187,40188,40189,40189,40190,40191,
+40192,40193,40194,40194,40195,40196,40197,40198,40199,40199,40200,40201,40202,
+40203,40204,40204,40205,40206,40207,40208,40209,40209,40210,40211,40212,40213,
+40214,40214,40215,40216,40217,40218,40219,40219,40220,40221,40222,40223,40224,
+40224,40225,40226,40227,40228,40229,40229,40230,40231,40232,40233,40234,40234,
+40235,40236,40237,40238,40239,40239,40240,40241,40242,40243,40244,40244,40245,
+40246,40247,40248,40249,40249,40250,40251,40252,40253,40254,40254,40255,40256,
+40257,40258,40259,40259,40260,40261,40262,40263,40263,40264,40265,40266,40267,
+40268,40268,40269,40270,40271,40272,40273,40273,40274,40275,40276,40277,40278,
+40278,40279,40280,40281,40282,40283,40283,40284,40285,40286,40287,40288,40288,
+40289,40290,40291,40292,40293,40293,40294,40295,40296,40297,40298,40298,40299,
+40300,40301,40302,40303,40303,40304,40305,40306,40307,40308,40308,40309,40310,
+40311,40312,40312,40313,40314,40315,40316,40317,40317,40318,40319,40320,40321,
+40322,40322,40323,40324,40325,40326,40327,40327,40328,40329,40330,40331,40332,
+40332,40333,40334,40335,40336,40337,40337,40338,40339,40340,40341,40342,40342,
+40343,40344,40345,40346,40346,40347,40348,40349,40350,40351,40351,40352,40353,
+40354,40355,40356,40356,40357,40358,40359,40360,40361,40361,40362,40363,40364,
+40365,40366,40366,40367,40368,40369,40370,40371,40371,40372,40373,40374,40375,
+40375,40376,40377,40378,40379,40380,40380,40381,40382,40383,40384,40385,40385,
+40386,40387,40388,40389,40390,40390,40391,40392,40393,40394,40395,40395,40396,
+40397,40398,40399,40399,40400,40401,40402,40403,40404,40404,40405,40406,40407,
+40408,40409,40409,40410,40411,40412,40413,40414,40414,40415,40416,40417,40418,
+40419,40419,40420,40421,40422,40423,40423,40424,40425,40426,40427,40428,40428,
+40429,40430,40431,40432,40433,40433,40434,40435,40436,40437,40438,40438,40439,
+40440,40441,40442,40442,40443,40444,40445,40446,40447,40447,40448,40449,40450,
+40451,40452,40452,40453,40454,40455,40456,40457,40457,40458,40459,40460,40461,
+40461,40462,40463,40464,40465,40466,40466,40467,40468,40469,40470,40471,40471,
+40472,40473,40474,40475,40476,40476,40477,40478,40479,40480,40480,40481,40482,
+40483,40484,40485,40485,40486,40487,40488,40489,40490,40490,40491,40492,40493,
+40494,40495,40495,40496,40497,40498,40499,40499,40500,40501,40502,40503,40504,
+40504,40505,40506,40507,40508,40509,40509,40510,40511,40512,40513,40513,40514,
+40515,40516,40517,40518,40518,40519,40520,40521,40522,40523,40523,40524,40525,
+40526,40527,40527,40528,40529,40530,40531,40532,40532,40533,40534,40535,40536,
+40537,40537,40538,40539,40540,40541,40542,40542,40543,40544,40545,40546,40546,
+40547,40548,40549,40550,40551,40551,40552,40553,40554,40555,40556,40556,40557,
+40558,40559,40560,40560,40561,40562,40563,40564,40565,40565,40566,40567,40568,
+40569,40569,40570,40571,40572,40573,40574,40574,40575,40576,40577,40578,40579,
+40579,40580,40581,40582,40583,40583,40584,40585,40586,40587,40588,40588,40589,
+40590,40591,40592,40593,40593,40594,40595,40596,40597,40597,40598,40599,40600,
+40601,40602,40602,40603,40604,40605,40606,40607,40607,40608,40609,40610,40611,
+40611,40612,40613,40614,40615,40616,40616,40617,40618,40619,40620,40620,40621,
+40622,40623,40624,40625,40625,40626,40627,40628,40629,40630,40630,40631,40632,
+40633,40634,40634,40635,40636,40637,40638,40639,40639,40640,40641,40642,40643,
+40643,40644,40645,40646,40647,40648,40648,40649,40650,40651,40652,40653,40653,
+40654,40655,40656,40657,40657,40658,40659,40660,40661,40662,40662,40663,40664,
+40665,40666,40666,40667,40668,40669,40670,40671,40671,40672,40673,40674,40675,
+40675,40676,40677,40678,40679,40680,40680,40681,40682,40683,40684,40685,40685,
+40686,40687,40688,40689,40689,40690,40691,40692,40693,40694,40694,40695,40696,
+40697,40698,40698,40699,40700,40701,40702,40703,40703,40704,40705,40706,40707,
+40707,40708,40709,40710,40711,40712,40712,40713,40714,40715,40716,40716,40717,
+40718,40719,40720,40721,40721,40722,40723,40724,40725,40725,40726,40727,40728,
+40729,40730,40730,40731,40732,40733,40734,40735,40735,40736,40737,40738,40739,
+40739,40740,40741,40742,40743,40744,40744,40745,40746,40747,40748,40748,40749,
+40750,40751,40752,40753,40753,40754,40755,40756,40757,40757,40758,40759,40760,
+40761,40762,40762,40763,40764,40765,40766,40766,40767,40768,40769,40770,40771,
+40771,40772,40773,40774,40775,40775,40776,40777,40778,40779,40780,40780,40781,
+40782,40783,40784,40784,40785,40786,40787,40788,40788,40789,40790,40791,40792,
+40793,40793,40794,40795,40796,40797,40797,40798,40799,40800,40801,40802,40802,
+40803,40804,40805,40806,40806,40807,40808,40809,40810,40811,40811,40812,40813,
+40814,40815,40815,40816,40817,40818,40819,40820,40820,40821,40822,40823,40824,
+40824,40825,40826,40827,40828,40829,40829,40830,40831,40832,40833,40833,40834,
+40835,40836,40837,40837,40838,40839,40840,40841,40842,40842,40843,40844,40845,
+40846,40846,40847,40848,40849,40850,40851,40851,40852,40853,40854,40855,40855,
+40856,40857,40858,40859,40860,40860,40861,40862,40863,40864,40864,40865,40866,
+40867,40868,40868,40869,40870,40871,40872,40873,40873,40874,40875,40876,40877,
+40877,40878,40879,40880,40881,40882,40882,40883,40884,40885,40886,40886,40887,
+40888,40889,40890,40890,40891,40892,40893,40894,40895,40895,40896,40897,40898,
+40899,40899,40900,40901,40902,40903,40904,40904,40905,40906,40907,40908,40908,
+40909,40910,40911,40912,40912,40913,40914,40915,40916,40917,40917,40918,40919,
+40920,40921,40921,40922,40923,40924,40925,40926,40926,40927,40928,40929,40930,
+40930,40931,40932,40933,40934,40934,40935,40936,40937,40938,40939,40939,40940,
+40941,40942,40943,40943,40944,40945,40946,40947,40947,40948,40949,40950,40951,
+40952,40952,40953,40954,40955,40956,40956,40957,40958,40959,40960,40960,40961,
+40962,40963,40964,40965,40965,40966,40967,40968,40969,40969,40970,40971,40972,
+40973,40973,40974,40975,40976,40977,40978,40978,40979,40980,40981,40982,40982,
+40983,40984,40985,40986,40986,40987,40988,40989,40990,40991,40991,40992,40993,
+40994,40995,40995,40996,40997,40998,40999,40999,41000,41001,41002,41003,41004,
+41004,41005,41006,41007,41008,41008,41009,41010,41011,41012,41012,41013,41014,
+41015,41016,41017,41017,41018,41019,41020,41021,41021,41022,41023,41024,41025,
+41025,41026,41027,41028,41029,41030,41030,41031,41032,41033,41034,41034,41035,
+41036,41037,41038,41038,41039,41040,41041,41042,41042,41043,41044,41045,41046,
+41047,41047,41048,41049,41050,41051,41051,41052,41053,41054,41055,41055,41056,
+41057,41058,41059,41060,41060,41061,41062,41063,41064,41064,41065,41066,41067,
+41068,41068,41069,41070,41071,41072,41072,41073,41074,41075,41076,41077,41077,
+41078,41079,41080,41081,41081,41082,41083,41084,41085,41085,41086,41087,41088,
+41089,41089,41090,41091,41092,41093,41094,41094,41095,41096,41097,41098,41098,
+41099,41100,41101,41102,41102,41103,41104,41105,41106,41106,41107,41108,41109,
+41110,41111,41111,41112,41113,41114,41115,41115,41116,41117,41118,41119,41119,
+41120,41121,41122,41123,41123,41124,41125,41126,41127,41128,41128,41129,41130,
+41131,41132,41132,41133,41134,41135,41136,41136,41137,41138,41139,41140,41140,
+41141,41142,41143,41144,41145,41145,41146,41147,41148,41149,41149,41150,41151,
+41152,41153,41153,41154,41155,41156,41157,41157,41158,41159,41160,41161,41161,
+41162,41163,41164,41165,41166,41166,41167,41168,41169,41170,41170,41171,41172,
+41173,41174,41174,41175,41176,41177,41178,41178,41179,41180,41181,41182,41182,
+41183,41184,41185,41186,41187,41187,41188,41189,41190,41191,41191,41192,41193,
+41194,41195,41195,41196,41197,41198,41199,41199,41200,41201,41202,41203,41203,
+41204,41205,41206,41207,41207,41208,41209,41210,41211,41212,41212,41213,41214,
+41215,41216,41216,41217,41218,41219,41220,41220,41221,41222,41223,41224,41224,
+41225,41226,41227,41228,41228,41229,41230,41231,41232,41232,41233,41234,41235,
+41236,41237,41237,41238,41239,41240,41241,41241,41242,41243,41244,41245,41245,
+41246,41247,41248,41249,41249,41250,41251,41252,41253,41253,41254,41255,41256,
+41257,41257,41258,41259,41260,41261,41261,41262,41263,41264,41265,41266,41266,
+41267,41268,41269,41270,41270,41271,41272,41273,41274,41274,41275,41276,41277,
+41278,41278,41279,41280,41281,41282,41282,41283,41284,41285,41286,41286,41287,
+41288,41289,41290,41290,41291,41292,41293,41294,41294,41295,41296,41297,41298,
+41299,41299,41300,41301,41302,41303,41303,41304,41305,41306,41307,41307,41308,
+41309,41310,41311,41311,41312,41313,41314,41315,41315,41316,41317,41318,41319,
+41319,41320,41321,41322,41323,41323,41324,41325,41326,41327,41327,41328,41329,
+41330,41331,41331,41332,41333,41334,41335,41335,41336,41337,41338,41339,41340,
+41340,41341,41342,41343,41344,41344,41345,41346,41347,41348,41348,41349,41350,
+41351,41352,41352,41353,41354,41355,41356,41356,41357,41358,41359,41360,41360,
+41361,41362,41363,41364,41364,41365,41366,41367,41368,41368,41369,41370,41371,
+41372,41372,41373,41374,41375,41376,41376,41377,41378,41379,41380,41380,41381,
+41382,41383,41384,41384,41385,41386,41387,41388,41388,41389,41390,41391,41392,
+41392,41393,41394,41395,41396,41396,41397,41398,41399,41400,41401,41401,41402,
+41403,41404,41405,41405,41406,41407,41408,41409,41409,41410,41411,41412,41413,
+41413,41414,41415,41416,41417,41417,41418,41419,41420,41421,41421,41422,41423,
+41424,41425,41425,41426,41427,41428,41429,41429,41430,41431,41432,41433,41433,
+41434,41435,41436,41437,41437,41438,41439,41440,41441,41441,41442,41443,41444,
+41445,41445,41446,41447,41448,41449,41449,41450,41451,41452,41453,41453,41454,
+41455,41456,41457,41457,41458,41459,41460,41461,41461,41462,41463,41464,41465,
+41465,41466,41467,41468,41469,41469,41470,41471,41472,41473,41473,41474,41475,
+41476,41477,41477,41478,41479,41480,41481,41481,41482,41483,41484,41485,41485,
+41486,41487,41488,41489,41489,41490,41491,41492,41493,41493,41494,41495,41496,
+41497,41497,41498,41499,41500,41501,41501,41502,41503,41504,41505,41505,41506,
+41507,41508,41509,41509,41510,41511,41512,41513,41513,41514,41515,41516,41517,
+41517,41518,41519,41520,41521,41521,41522,41523,41524,41525,41525,41526,41527,
+41528,41529,41529,41530,41531,41532,41533,41533,41534,41535,41536,41537,41537,
+41538,41539,41540,41541,41541,41542,41543,41544,41545,41545,41546,41547,41548,
+41549,41549,41550,41551,41552,41553,41553,41554,41555,41556,41556,41557,41558,
+41559,41560,41560,41561,41562,41563,41564,41564,41565,41566,41567,41568,41568,
+41569,41570,41571,41572,41572,41573,41574,41575,41576,41576,41577,41578,41579,
+41580,41580,41581,41582,41583,41584,41584,41585,41586,41587,41588,41588,41589,
+41590,41591,41592,41592,41593,41594,41595,41596,41596,41597,41598,41599,41600,
+41600,41601,41602,41603,41604,41604,41605,41606,41607,41608,41608,41609,41610,
+41611,41612,41612,41613,41614,41615,41615,41616,41617,41618,41619,41619,41620,
+41621,41622,41623,41623,41624,41625,41626,41627,41627,41628,41629,41630,41631,
+41631,41632,41633,41634,41635,41635,41636,41637,41638,41639,41639,41640,41641,
+41642,41643,41643,41644,41645,41646,41647,41647,41648,41649,41650,41651,41651,
+41652,41653,41654,41654,41655,41656,41657,41658,41658,41659,41660,41661,41662,
+41662,41663,41664,41665,41666,41666,41667,41668,41669,41670,41670,41671,41672,
+41673,41674,41674,41675,41676,41677,41678,41678,41679,41680,41681,41682,41682,
+41683,41684,41685,41686,41686,41687,41688,41689,41689,41690,41691,41692,41693,
+41693,41694,41695,41696,41697,41697,41698,41699,41700,41701,41701,41702,41703,
+41704,41705,41705,41706,41707,41708,41709,41709,41710,41711,41712,41713,41713,
+41714,41715,41716,41716,41717,41718,41719,41720,41720,41721,41722,41723,41724,
+41724,41725,41726,41727,41728,41728,41729,41730,41731,41732,41732,41733,41734,
+41735,41736,41736,41737,41738,41739,41740,41740,41741,41742,41743,41743,41744,
+41745,41746,41747,41747,41748,41749,41750,41751,41751,41752,41753,41754,41755,
+41755,41756,41757,41758,41759,41759,41760,41761,41762,41763,41763,41764,41765,
+41766,41766,41767,41768,41769,41770,41770,41771,41772,41773,41774,41774,41775,
+41776,41777,41778,41778,41779,41780,41781,41782,41782,41783,41784,41785,41785,
+41786,41787,41788,41789,41789,41790,41791,41792,41793,41793,41794,41795,41796,
+41797,41797,41798,41799,41800,41801,41801,41802,41803,41804,41805,41805,41806,
+41807,41808,41808,41809,41810,41811,41812,41812,41813,41814,41815,41816,41816,
+41817,41818,41819,41820,41820,41821,41822,41823,41824,41824,41825,41826,41827,
+41827,41828,41829,41830,41831,41831,41832,41833,41834,41835,41835,41836,41837,
+41838,41839,41839,41840,41841,41842,41842,41843,41844,41845,41846,41846,41847,
+41848,41849,41850,41850,41851,41852,41853,41854,41854,41855,41856,41857,41858,
+41858,41859,41860,41861,41861,41862,41863,41864,41865,41865,41866,41867,41868,
+41869,41869,41870,41871,41872,41873,41873,41874,41875,41876,41876,41877,41878,
+41879,41880,41880,41881,41882,41883,41884,41884,41885,41886,41887,41888,41888,
+41889,41890,41891,41891,41892,41893,41894,41895,41895,41896,41897,41898,41899,
+41899,41900,41901,41902,41903,41903,41904,41905,41906,41906,41907,41908,41909,
+41910,41910,41911,41912,41913,41914,41914,41915,41916,41917,41918,41918,41919,
+41920,41921,41921,41922,41923,41924,41925,41925,41926,41927,41928,41929,41929,
+41930,41931,41932,41933,41933,41934,41935,41936,41936,41937,41938,41939,41940,
+41940,41941,41942,41943,41944,41944,41945,41946,41947,41948,41948,41949,41950,
+41951,41951,41952,41953,41954,41955,41955,41956,41957,41958,41959,41959,41960,
+41961,41962,41962,41963,41964,41965,41966,41966,41967,41968,41969,41970,41970,
+41971,41972,41973,41974,41974,41975,41976,41977,41977,41978,41979,41980,41981,
+41981,41982,41983,41984,41985,41985,41986,41987,41988,41988,41989,41990,41991,
+41992,41992,41993,41994,41995,41996,41996,41997,41998,41999,42000,42000,42001,
+42002,42003,42003,42004,42005,42006,42007,42007,42008,42009,42010,42011,42011,
+42012,42013,42014,42014,42015,42016,42017,42018,42018,42019,42020,42021,42022,
+42022,42023,42024,42025,42025,42026,42027,42028,42029,42029,42030,42031,42032,
+42033,42033,42034,42035,42036,42036,42037,42038,42039,42040,42040,42041,42042,
+42043,42044,42044,42045,42046,42047,42047,42048,42049,42050,42051,42051,42052,
+42053,42054,42055,42055,42056,42057,42058,42058,42059,42060,42061,42062,42062,
+42063,42064,42065,42066,42066,42067,42068,42069,42069,42070,42071,42072,42073,
+42073,42074,42075,42076,42077,42077,42078,42079,42080,42080,42081,42082,42083,
+42084,42084,42085,42086,42087,42088,42088,42089,42090,42091,42091,42092,42093,
+42094,42095,42095,42096,42097,42098,42099,42099,42100,42101,42102,42102,42103,
+42104,42105,42106,42106,42107,42108,42109,42110,42110,42111,42112,42113,42113,
+42114,42115,42116,42117,42117,42118,42119,42120,42121,42121,42122,42123,42124,
+42124,42125,42126,42127,42128,42128,42129,42130,42131,42131,42132,42133,42134,
+42135,42135,42136,42137,42138,42139,42139,42140,42141,42142,42142,42143,42144,
+42145,42146,42146,42147,42148,42149,42150,42150,42151,42152,42153,42153,42154,
+42155,42156,42157,42157,42158,42159,42160,42160,42161,42162,42163,42164,42164,
+42165,42166,42167,42168,42168,42169,42170,42171,42171,42172,42173,42174,42175,
+42175,42176,42177,42178,42178,42179,42180,42181,42182,42182,42183,42184,42185,
+42186,42186,42187,42188,42189,42189,42190,42191,42192,42193,42193,42194,42195,
+42196,42196,42197,42198,42199,42200,42200,42201,42202,42203,42204,42204,42205,
+42206,42207,42207,42208,42209,42210,42211,42211,42212,42213,42214,42214,42215,
+42216,42217,42218,42218,42219,42220,42221,42222,42222,42223,42224,42225,42225,
+42226,42227,42228,42229,42229,42230,42231,42232,42232,42233,42234,42235,42236,
+42236,42237,42238,42239,42239,42240,42241,42242,42243,42243,42244,42245,42246,
+42247,42247,42248,42249,42250,42250,42251,42252,42253,42254,42254,42255,42256,
+42257,42257,42258,42259,42260,42261,42261,42262,42263,42264,42264,42265,42266,
+42267,42268,42268,42269,42270,42271,42272,42272,42273,42274,42275,42275,42276,
+42277,42278,42279,42279,42280,42281,42282,42282,42283,42284,42285,42286,42286,
+42287,42288,42289,42289,42290,42291,42292,42293,42293,42294,42295,42296,42296,
+42297,42298,42299,42300,42300,42301,42302,42303,42304,42304,42305,42306,42307,
+42307,42308,42309,42310,42311,42311,42312,42313,42314,42314,42315,42316,42317,
+42318,42318,42319,42320,42321,42321,42322,42323,42324,42325,42325,42326,42327,
+42328,42328,42329,42330,42331,42332,42332,42333,42334,42335,42335,42336,42337,
+42338,42339,42339,42340,42341,42342,42342,42343,42344,42345,42346,42346,42347,
+42348,42349,42349,42350,42351,42352,42353,42353,42354,42355,42356,42356,42357,
+42358,42359,42360,42360,42361,42362,42363,42364,42364,42365,42366,42367,42367,
+42368,42369,42370,42371,42371,42372,42373,42374,42374,42375,42376,42377,42378,
+42378,42379,42380,42381,42381,42382,42383,42384,42385,42385,42386,42387,42388,
+42388,42389,42390,42391,42392,42392,42393,42394,42395,42395,42396,42397,42398,
+42399,42399,42400,42401,42402,42402,42403,42404,42405,42406,42406,42407,42408,
+42409,42409,42410,42411,42412,42413,42413,42414,42415,42416,42416,42417,42418,
+42419,42420,42420,42421,42422,42423,42423,42424,42425,42426,42426,42427,42428,
+42429,42430,42430,42431,42432,42433,42433,42434,42435,42436,42437,42437,42438,
+42439,42440,42440,42441,42442,42443,42444,42444,42445,42446,42447,42447,42448,
+42449,42450,42451,42451,42452,42453,42454,42454,42455,42456,42457,42458,42458,
+42459,42460,42461,42461,42462,42463,42464,42465,42465,42466,42467,42468,42468,
+42469,42470,42471,42472,42472,42473,42474,42475,42475,42476,42477,42478,42479,
+42479,42480,42481,42482,42482,42483,42484,42485,42485,42486,42487,42488,42489,
+42489,42490,42491,42492,42492,42493,42494,42495,42496,42496,42497,42498,42499,
+42499,42500,42501,42502,42503,42503,42504,42505,42506,42506,42507,42508,42509,
+42510,42510,42511,42512,42513,42513,42514,42515,42516,42517,42517,42518,42519,
+42520,42520,42521,42522,42523,42523,42524,42525,42526,42527,42527,42528,42529,
+42530,42530,42531,42532,42533,42534,42534,42535,42536,42537,42537,42538,42539,
+42540,42541,42541,42542,42543,42544,42544,42545,42546,42547,42547,42548,42549,
+42550,42551,42551,42552,42553,42554,42554,42555,42556,42557,42558,42558,42559,
+42560,42561,42561,42562,42563,42564,42565,42565,42566,42567,42568,42568,42569,
+42570,42571,42571,42572,42573,42574,42575,42575,42576,42577,42578,42578,42579,
+42580,42581,42582,42582,42583,42584,42585,42585,42586,42587,42588,42588,42589,
+42590,42591,42592,42592,42593,42594,42595,42595,42596,42597,42598,42599,42599,
+42600,42601,42602,42602,42603,42604,42605,42605,42606,42607,42608,42609,42609,
+42610,42611,42612,42612,42613,42614,42615,42616,42616,42617,42618,42619,42619,
+42620,42621,42622,42622,42623,42624,42625,42626,42626,42627,42628,42629,42629,
+42630,42631,42632,42633,42633,42634,42635,42636,42636,42637,42638,42639,42639,
+42640,42641,42642,42643,42643,42644,42645,42646,42646,42647,42648,42649,42650,
+42650,42651,42652,42653,42653,42654,42655,42656,42656,42657,42658,42659,42660,
+42660,42661,42662,42663,42663,42664,42665,42666,42666,42667,42668,42669,42670,
+42670,42671,42672,42673,42673,42674,42675,42676,42677,42677,42678,42679,42680,
+42680,42681,42682,42683,42683,42684,42685,42686,42687,42687,42688,42689,42690,
+42690,42691,42692,42693,42693,42694,42695,42696,42697,42697,42698,42699,42700,
+42700,42701,42702,42703,42703,42704,42705,42706,42707,42707,42708,42709,42710,
+42710,42711,42712,42713,42713,42714,42715,42716,42717,42717,42718,42719,42720,
+42720,42721,42722,42723,42724,42724,42725,42726,42727,42727,42728,42729,42730,
+42730,42731,42732,42733,42734,42734,42735,42736,42737,42737,42738,42739,42740,
+42740,42741,42742,42743,42744,42744,42745,42746,42747,42747,42748,42749,42750,
+42750,42751,42752,42753,42754,42754,42755,42756,42757,42757,42758,42759,42760,
+42760,42761,42762,42763,42764,42764,42765,42766,42767,42767,42768,42769,42770,
+42770,42771,42772,42773,42774,42774,42775,42776,42777,42777,42778,42779,42780,
+42780,42781,42782,42783,42784,42784,42785,42786,42787,42787,42788,42789,42790,
+42790,42791,42792,42793,42793,42794,42795,42796,42797,42797,42798,42799,42800,
+42800,42801,42802,42803,42803,42804,42805,42806,42807,42807,42808,42809,42810,
+42810,42811,42812,42813,42813,42814,42815,42816,42817,42817,42818,42819,42820,
+42820,42821,42822,42823,42823,42824,42825,42826,42827,42827,42828,42829,42830,
+42830,42831,42832,42833,42833,42834,42835,42836,42836,42837,42838,42839,42840,
+42840,42841,42842,42843,42843,42844,42845,42846,42846,42847,42848,42849,42850,
+42850,42851,42852,42853,42853,42854,42855,42856,42856,42857,42858,42859,42860,
+42860,42861,42862,42863,42863,42864,42865,42866,42866,42867,42868,42869,42869,
+42870,42871,42872,42873,42873,42874,42875,42876,42876,42877,42878,42879,42879,
+42880,42881,42882,42883,42883,42884,42885,42886,42886,42887,42888,42889,42889,
+42890,42891,42892,42892,42893,42894,42895,42896,42896,42897,42898,42899,42899,
+42900,42901,42902,42902,42903,42904,42905,42905,42906,42907,42908,42909,42909,
+42910,42911,42912,42912,42913,42914,42915,42915,42916,42917,42918,42919,42919,
+42920,42921,42922,42922,42923,42924,42925,42925,42926,42927,42928,42928,42929,
+42930,42931,42932,42932,42933,42934,42935,42935,42936,42937,42938,42938,42939,
+42940,42941,42941,42942,42943,42944,42945,42945,42946,42947,42948,42948,42949,
+42950,42951,42951,42952,42953,42954,42954,42955,42956,42957,42958,42958,42959,
+42960,42961,42961,42962,42963,42964,42964,42965,42966,42967,42967,42968,42969,
+42970,42971,42971,42972,42973,42974,42974,42975,42976,42977,42977,42978,42979,
+42980,42980,42981,42982,42983,42984,42984,42985,42986,42987,42987,42988,42989,
+42990,42990,42991,42992,42993,42993,42994,42995,42996,42996,42997,42998,42999,
+43000,43000,43001,43002,43003,43003,43004,43005,43006,43006,43007,43008,43009,
+43009,43010,43011,43012,43013,43013,43014,43015,43016,43016,43017,43018,43019,
+43019,43020,43021,43022,43022,43023,43024,43025,43025,43026,43027,43028,43029,
+43029,43030,43031,43032,43032,43033,43034,43035,43035,43036,43037,43038,43038,
+43039,43040,43041,43042,43042,43043,43044,43045,43045,43046,43047,43048,43048,
+43049,43050,43051,43051,43052,43053,43054,43054,43055,43056,43057,43058,43058,
+43059,43060,43061,43061,43062,43063,43064,43064,43065,43066,43067,43067,43068,
+43069,43070,43070,43071,43072,43073,43074,43074,43075,43076,43077,43077,43078,
+43079,43080,43080,43081,43082,43083,43083,43084,43085,43086,43086,43087,43088,
+43089,43090,43090,43091,43092,43093,43093,43094,43095,43096,43096,43097,43098,
+43099,43099,43100,43101,43102,43102,43103,43104,43105,43106,43106,43107,43108,
+43109,43109,43110,43111,43112,43112,43113,43114,43115,43115,43116,43117,43118,
+43118,43119,43120,43121,43121,43122,43123,43124,43125,43125,43126,43127,43128,
+43128,43129,43130,43131,43131,43132,43133,43134,43134,43135,43136,43137,43137,
+43138,43139,43140,43141,43141,43142,43143,43144,43144,43145,43146,43147,43147,
+43148,43149,43150,43150,43151,43152,43153,43153,43154,43155,43156,43156,43157,
+43158,43159,43160,43160,43161,43162,43163,43163,43164,43165,43166,43166,43167,
+43168,43169,43169,43170,43171,43172,43172,43173,43174,43175,43175,43176,43177,
+43178,43179,43179,43180,43181,43182,43182,43183,43184,43185,43185,43186,43187,
+43188,43188,43189,43190,43191,43191,43192,43193,43194,43194,43195,43196,43197,
+43197,43198,43199,43200,43201,43201,43202,43203,43204,43204,43205,43206,43207,
+43207,43208,43209,43210,43210,43211,43212,43213,43213,43214,43215,43216,43216,
+43217,43218,43219,43219,43220,43221,43222,43223,43223,43224,43225,43226,43226,
+43227,43228,43229,43229,43230,43231,43232,43232,43233,43234,43235,43235,43236,
+43237,43238,43238,43239,43240,43241,43241,43242,43243,43244,43245,43245,43246,
+43247,43248,43248,43249,43250,43251,43251,43252,43253,43254,43254,43255,43256,
+43257,43257,43258,43259,43260,43260,43261,43262,43263,43263,43264,43265,43266,
+43266,43267,43268,43269,43270,43270,43271,43272,43273,43273,43274,43275,43276,
+43276,43277,43278,43279,43279,43280,43281,43282,43282,43283,43284,43285,43285,
+43286,43287,43288,43288,43289,43290,43291,43291,43292,43293,43294,43295,43295,
+43296,43297,43298,43298,43299,43300,43301,43301,43302,43303,43304,43304,43305,
+43306,43307,43307,43308,43309,43310,43310,43311,43312,43313,43313,43314,43315,
+43316,43316,43317,43318,43319,43319,43320,43321,43322,43323,43323,43324,43325,
+43326,43326,43327,43328,43329,43329,43330,43331,43332,43332,43333,43334,43335,
+43335,43336,43337,43338,43338,43339,43340,43341,43341,43342,43343,43344,43344,
+43345,43346,43347,43347,43348,43349,43350,43350,43351,43352,43353,43353,43354,
+43355,43356,43357,43357,43358,43359,43360,43360,43361,43362,43363,43363,43364,
+43365,43366,43366,43367,43368,43369,43369,43370,43371,43372,43372,43373,43374,
+43375,43375,43376,43377,43378,43378,43379,43380,43381,43381,43382,43383,43384,
+43384,43385,43386,43387,43387,43388,43389,43390,43390,43391,43392,43393,43394,
+43394,43395,43396,43397,43397,43398,43399,43400,43400,43401,43402,43403,43403,
+43404,43405,43406,43406,43407,43408,43409,43409,43410,43411,43412,43412,43413,
+43414,43415,43415,43416,43417,43418,43418,43419,43420,43421,43421,43422,43423,
+43424,43424,43425,43426,43427,43427,43428,43429,43430,43430,43431,43432,43433,
+43433,43434,43435,43436,43437,43437,43438,43439,43440,43440,43441,43442,43443,
+43443,43444,43445,43446,43446,43447,43448,43449,43449,43450,43451,43452,43452,
+43453,43454,43455,43455,43456,43457,43458,43458,43459,43460,43461,43461,43462,
+43463,43464,43464,43465,43466,43467,43467,43468,43469,43470,43470,43471,43472,
+43473,43473,43474,43475,43476,43476,43477,43478,43479,43479,43480,43481,43482,
+43482,43483,43484,43485,43485,43486,43487,43488,43488,43489,43490,43491,43491,
+43492,43493,43494,43494,43495,43496,43497,43497,43498,43499,43500,43501,43501,
+43502,43503,43504,43504,43505,43506,43507,43507,43508,43509,43510,43510,43511,
+43512,43513,43513,43514,43515,43516,43516,43517,43518,43519,43519,43520,43521,
+43522,43522,43523,43524,43525,43525,43526,43527,43528,43528,43529,43530,43531,
+43531,43532,43533,43534,43534,43535,43536,43537,43537,43538,43539,43540,43540,
+43541,43542,43543,43543,43544,43545,43546,43546,43547,43548,43549,43549,43550,
+43551,43552,43552,43553,43554,43555,43555,43556,43557,43558,43558,43559,43560,
+43561,43561,43562,43563,43564,43564,43565,43566,43567,43567,43568,43569,43570,
+43570,43571,43572,43573,43573,43574,43575,43576,43576,43577,43578,43579,43579,
+43580,43581,43582,43582,43583,43584,43585,43585,43586,43587,43588,43588,43589,
+43590,43591,43591,43592,43593,43594,43594,43595,43596,43597,43597,43598,43599,
+43600,43600,43601,43602,43603,43603,43604,43605,43606,43606,43607,43608,43609,
+43609,43610,43611,43612,43612,43613,43614,43615,43615,43616,43617,43618,43618,
+43619,43620,43621,43621,43622,43623,43624,43624,43625,43626,43627,43627,43628,
+43629,43630,43630,43631,43632,43633,43633,43634,43635,43636,43636,43637,43638,
+43639,43639,43640,43641,43642,43642,43643,43644,43645,43645,43646,43647,43648,
+43648,43649,43650,43651,43651,43652,43653,43654,43654,43655,43656,43657,43657,
+43658,43659,43660,43660,43661,43662,43663,43663,43664,43665,43666,43666,43667,
+43668,43669,43669,43670,43671,43672,43672,43673,43674,43675,43675,43676,43677,
+43678,43678,43679,43680,43681,43681,43682,43683,43684,43684,43685,43686,43687,
+43687,43688,43689,43690,43690,43691,43692,43693,43693,43694,43695,43696,43696,
+43697,43698,43699,43699,43700,43701,43702,43702,43703,43704,43705,43705,43706,
+43707,43707,43708,43709,43710,43710,43711,43712,43713,43713,43714,43715,43716,
+43716,43717,43718,43719,43719,43720,43721,43722,43722,43723,43724,43725,43725,
+43726,43727,43728,43728,43729,43730,43731,43731,43732,43733,43734,43734,43735,
+43736,43737,43737,43738,43739,43740,43740,43741,43742,43743,43743,43744,43745,
+43746,43746,43747,43748,43749,43749,43750,43751,43752,43752,43753,43754,43755,
+43755,43756,43757,43758,43758,43759,43760,43761,43761,43762,43763,43764,43764,
+43765,43766,43767,43767,43768,43769,43769,43770,43771,43772,43772,43773,43774,
+43775,43775,43776,43777,43778,43778,43779,43780,43781,43781,43782,43783,43784,
+43784,43785,43786,43787,43787,43788,43789,43790,43790,43791,43792,43793,43793,
+43794,43795,43796,43796,43797,43798,43799,43799,43800,43801,43802,43802,43803,
+43804,43805,43805,43806,43807,43808,43808,43809,43810,43811,43811,43812,43813,
+43813,43814,43815,43816,43816,43817,43818,43819,43819,43820,43821,43822,43822,
+43823,43824,43825,43825,43826,43827,43828,43828,43829,43830,43831,43831,43832,
+43833,43834,43834,43835,43836,43837,43837,43838,43839,43840,43840,43841,43842,
+43843,43843,43844,43845,43846,43846,43847,43848,43849,43849,43850,43851,43851,
+43852,43853,43854,43854,43855,43856,43857,43857,43858,43859,43860,43860,43861,
+43862,43863,43863,43864,43865,43866,43866,43867,43868,43869,43869,43870,43871,
+43872,43872,43873,43874,43875,43875,43876,43877,43878,43878,43879,43880,43881,
+43881,43882,43883,43883,43884,43885,43886,43886,43887,43888,43889,43889,43890,
+43891,43892,43892,43893,43894,43895,43895,43896,43897,43898,43898,43899,43900,
+43901,43901,43902,43903,43904,43904,43905,43906,43907,43907,43908,43909,43910,
+43910,43911,43912,43912,43913,43914,43915,43915,43916,43917,43918,43918,43919,
+43920,43921,43921,43922,43923,43924,43924,43925,43926,43927,43927,43928,43929,
+43930,43930,43931,43932,43933,43933,43934,43935,43936,43936,43937,43938,43938,
+43939,43940,43941,43941,43942,43943,43944,43944,43945,43946,43947,43947,43948,
+43949,43950,43950,43951,43952,43953,43953,43954,43955,43956,43956,43957,43958,
+43959,43959,43960,43961,43961,43962,43963,43964,43964,43965,43966,43967,43967,
+43968,43969,43970,43970,43971,43972,43973,43973,43974,43975,43976,43976,43977,
+43978,43979,43979,43980,43981,43982,43982,43983,43984,43984,43985,43986,43987,
+43987,43988,43989,43990,43990,43991,43992,43993,43993,43994,43995,43996,43996,
+43997,43998,43999,43999,44000,44001,44002,44002,44003,44004,44004,44005,44006,
+44007,44007,44008,44009,44010,44010,44011,44012,44013,44013,44014,44015,44016,
+44016,44017,44018,44019,44019,44020,44021,44022,44022,44023,44024,44025,44025,
+44026,44027,44027,44028,44029,44030,44030,44031,44032,44033,44033,44034,44035,
+44036,44036,44037,44038,44039,44039,44040,44041,44042,44042,44043,44044,44044,
+44045,44046,44047,44047,44048,44049,44050,44050,44051,44052,44053,44053,44054,
+44055,44056,44056,44057,44058,44059,44059,44060,44061,44062,44062,44063,44064,
+44064,44065,44066,44067,44067,44068,44069,44070,44070,44071,44072,44073,44073,
+44074,44075,44076,44076,44077,44078,44079,44079,44080,44081,44081,44082,44083,
+44084,44084,44085,44086,44087,44087,44088,44089,44090,44090,44091,44092,44093,
+44093,44094,44095,44096,44096,44097,44098,44098,44099,44100,44101,44101,44102,
+44103,44104,44104,44105,44106,44107,44107,44108,44109,44110,44110,44111,44112,
+44113,44113,44114,44115,44115,44116,44117,44118,44118,44119,44120,44121,44121,
+44122,44123,44124,44124,44125,44126,44127,44127,44128,44129,44130,44130,44131,
+44132,44132,44133,44134,44135,44135,44136,44137,44138,44138,44139,44140,44141,
+44141,44142,44143,44144,44144,44145,44146,44146,44147,44148,44149,44149,44150,
+44151,44152,44152,44153,44154,44155,44155,44156,44157,44158,44158,44159,44160,
+44161,44161,44162,44163,44163,44164,44165,44166,44166,44167,44168,44169,44169,
+44170,44171,44172,44172,44173,44174,44175,44175,44176,44177,44177,44178,44179,
+44180,44180,44181,44182,44183,44183,44184,44185,44186,44186,44187,44188,44189,
+44189,44190,44191,44191,44192,44193,44194,44194,44195,44196,44197,44197,44198,
+44199,44200,44200,44201,44202,44203,44203,44204,44205,44205,44206,44207,44208,
+44208,44209,44210,44211,44211,44212,44213,44214,44214,44215,44216,44217,44217,
+44218,44219,44219,44220,44221,44222,44222,44223,44224,44225,44225,44226,44227,
+44228,44228,44229,44230,44231,44231,44232,44233,44233,44234,44235,44236,44236,
+44237,44238,44239,44239,44240,44241,44242,44242,44243,44244,44245,44245,44246,
+44247,44247,44248,44249,44250,44250,44251,44252,44253,44253,44254,44255,44256,
+44256,44257,44258,44258,44259,44260,44261,44261,44262,44263,44264,44264,44265,
+44266,44267,44267,44268,44269,44270,44270,44271,44272,44272,44273,44274,44275,
+44275,44276,44277,44278,44278,44279,44280,44281,44281,44282,44283,44283,44284,
+44285,44286,44286,44287,44288,44289,44289,44290,44291,44292,44292,44293,44294,
+44295,44295,44296,44297,44297,44298,44299,44300,44300,44301,44302,44303,44303,
+44304,44305,44306,44306,44307,44308,44308,44309,44310,44311,44311,44312,44313,
+44314,44314,44315,44316,44317,44317,44318,44319,44319,44320,44321,44322,44322,
+44323,44324,44325,44325,44326,44327,44328,44328,44329,44330,44331,44331,44332,
+44333,44333,44334,44335,44336,44336,44337,44338,44339,44339,44340,44341,44342,
+44342,44343,44344,44344,44345,44346,44347,44347,44348,44349,44350,44350,44351,
+44352,44353,44353,44354,44355,44355,44356,44357,44358,44358,44359,44360,44361,
+44361,44362,44363,44364,44364,44365,44366,44366,44367,44368,44369,44369,44370,
+44371,44372,44372,44373,44374,44375,44375,44376,44377,44377,44378,44379,44380,
+44380,44381,44382,44383,44383,44384,44385,44386,44386,44387,44388,44388,44389,
+44390,44391,44391,44392,44393,44394,44394,44395,44396,44397,44397,44398,44399,
+44399,44400,44401,44402,44402,44403,44404,44405,44405,44406,44407,44408,44408,
+44409,44410,44410,44411,44412,44413,44413,44414,44415,44416,44416,44417,44418,
+44418,44419,44420,44421,44421,44422,44423,44424,44424,44425,44426,44427,44427,
+44428,44429,44429,44430,44431,44432,44432,44433,44434,44435,44435,44436,44437,
+44438,44438,44439,44440,44440,44441,44442,44443,44443,44444,44445,44446,44446,
+44447,44448,44448,44449,44450,44451,44451,44452,44453,44454,44454,44455,44456,
+44457,44457,44458,44459,44459,44460,44461,44462,44462,44463,44464,44465,44465,
+44466,44467,44468,44468,44469,44470,44470,44471,44472,44473,44473,44474,44475,
+44476,44476,44477,44478,44478,44479,44480,44481,44481,44482,44483,44484,44484,
+44485,44486,44487,44487,44488,44489,44489,44490,44491,44492,44492,44493,44494,
+44495,44495,44496,44497,44497,44498,44499,44500,44500,44501,44502,44503,44503,
+44504,44505,44506,44506,44507,44508,44508,44509,44510,44511,44511,44512,44513,
+44514,44514,44515,44516,44516,44517,44518,44519,44519,44520,44521,44522,44522,
+44523,44524,44524,44525,44526,44527,44527,44528,44529,44530,44530,44531,44532,
+44533,44533,44534,44535,44535,44536,44537,44538,44538,44539,44540,44541,44541,
+44542,44543,44543,44544,44545,44546,44546,44547,44548,44549,44549,44550,44551,
+44551,44552,44553,44554,44554,44555,44556,44557,44557,44558,44559,44560,44560,
+44561,44562,44562,44563,44564,44565,44565,44566,44567,44568,44568,44569,44570,
+44570,44571,44572,44573,44573,44574,44575,44576,44576,44577,44578,44578,44579,
+44580,44581,44581,44582,44583,44584,44584,44585,44586,44586,44587,44588,44589,
+44589,44590,44591,44592,44592,44593,44594,44594,44595,44596,44597,44597,44598,
+44599,44600,44600,44601,44602,44603,44603,44604,44605,44605,44606,44607,44608,
+44608,44609,44610,44611,44611,44612,44613,44613,44614,44615,44616,44616,44617,
+44618,44619,44619,44620,44621,44621,44622,44623,44624,44624,44625,44626,44627,
+44627,44628,44629,44629,44630,44631,44632,44632,44633,44634,44635,44635,44636,
+44637,44637,44638,44639,44640,44640,44641,44642,44643,44643,44644,44645,44645,
+44646,44647,44648,44648,44649,44650,44651,44651,44652,44653,44653,44654,44655,
+44656,44656,44657,44658,44659,44659,44660,44661,44661,44662,44663,44664,44664,
+44665,44666,44667,44667,44668,44669,44669,44670,44671,44672,44672,44673,44674,
+44675,44675,44676,44677,44677,44678,44679,44680,44680,44681,44682,44683,44683,
+44684,44685,44685,44686,44687,44688,44688,44689,44690,44691,44691,44692,44693,
+44693,44694,44695,44696,44696,44697,44698,44699,44699,44700,44701,44701,44702,
+44703,44704,44704,44705,44706,44706,44707,44708,44709,44709,44710,44711,44712,
+44712,44713,44714,44714,44715,44716,44717,44717,44718,44719,44720,44720,44721,
+44722,44722,44723,44724,44725,44725,44726,44727,44728,44728,44729,44730,44730,
+44731,44732,44733,44733,44734,44735,44736,44736,44737,44738,44738,44739,44740,
+44741,44741,44742,44743,44744,44744,44745,44746,44746,44747,44748,44749,44749,
+44750,44751,44751,44752,44753,44754,44754,44755,44756,44757,44757,44758,44759,
+44759,44760,44761,44762,44762,44763,44764,44765,44765,44766,44767,44767,44768,
+44769,44770,44770,44771,44772,44773,44773,44774,44775,44775,44776,44777,44778,
+44778,44779,44780,44780,44781,44782,44783,44783,44784,44785,44786,44786,44787,
+44788,44788,44789,44790,44791,44791,44792,44793,44794,44794,44795,44796,44796,
+44797,44798,44799,44799,44800,44801,44801,44802,44803,44804,44804,44805,44806,
+44807,44807,44808,44809,44809,44810,44811,44812,44812,44813,44814,44815,44815,
+44816,44817,44817,44818,44819,44820,44820,44821,44822,44822,44823,44824,44825,
+44825,44826,44827,44828,44828,44829,44830,44830,44831,44832,44833,44833,44834,
+44835,44835,44836,44837,44838,44838,44839,44840,44841,44841,44842,44843,44843,
+44844,44845,44846,44846,44847,44848,44849,44849,44850,44851,44851,44852,44853,
+44854,44854,44855,44856,44856,44857,44858,44859,44859,44860,44861,44862,44862,
+44863,44864,44864,44865,44866,44867,44867,44868,44869,44869,44870,44871,44872,
+44872,44873,44874,44875,44875,44876,44877,44877,44878,44879,44880,44880,44881,
+44882,44882,44883,44884,44885,44885,44886,44887,44888,44888,44889,44890,44890,
+44891,44892,44893,44893,44894,44895,44895,44896,44897,44898,44898,44899,44900,
+44901,44901,44902,44903,44903,44904,44905,44906,44906,44907,44908,44908,44909,
+44910,44911,44911,44912,44913,44914,44914,44915,44916,44916,44917,44918,44919,
+44919,44920,44921,44921,44922,44923,44924,44924,44925,44926,44927,44927,44928,
+44929,44929,44930,44931,44932,44932,44933,44934,44934,44935,44936,44937,44937,
+44938,44939,44940,44940,44941,44942,44942,44943,44944,44945,44945,44946,44947,
+44947,44948,44949,44950,44950,44951,44952,44952,44953,44954,44955,44955,44956,
+44957,44958,44958,44959,44960,44960,44961,44962,44963,44963,44964,44965,44965,
+44966,44967,44968,44968,44969,44970,44971,44971,44972,44973,44973,44974,44975,
+44976,44976,44977,44978,44978,44979,44980,44981,44981,44982,44983,44983,44984,
+44985,44986,44986,44987,44988,44989,44989,44990,44991,44991,44992,44993,44994,
+44994,44995,44996,44996,44997,44998,44999,44999,45000,45001,45001,45002,45003,
+45004,45004,45005,45006,45007,45007,45008,45009,45009,45010,45011,45012,45012,
+45013,45014,45014,45015,45016,45017,45017,45018,45019,45019,45020,45021,45022,
+45022,45023,45024,45025,45025,45026,45027,45027,45028,45029,45030,45030,45031,
+45032,45032,45033,45034,45035,45035,45036,45037,45037,45038,45039,45040,45040,
+45041,45042,45042,45043,45044,45045,45045,45046,45047,45048,45048,45049,45050,
+45050,45051,45052,45053,45053,45054,45055,45055,45056,45057,45058,45058,45059,
+45060,45060,45061,45062,45063,45063,45064,45065,45065,45066,45067,45068,45068,
+45069,45070,45071,45071,45072,45073,45073,45074,45075,45076,45076,45077,45078,
+45078,45079,45080,45081,45081,45082,45083,45083,45084,45085,45086,45086,45087,
+45088,45088,45089,45090,45091,45091,45092,45093,45094,45094,45095,45096,45096,
+45097,45098,45099,45099,45100,45101,45101,45102,45103,45104,45104,45105,45106,
+45106,45107,45108,45109,45109,45110,45111,45111,45112,45113,45114,45114,45115,
+45116,45116,45117,45118,45119,45119,45120,45121,45121,45122,45123,45124,45124,
+45125,45126,45127,45127,45128,45129,45129,45130,45131,45132,45132,45133,45134,
+45134,45135,45136,45137,45137,45138,45139,45139,45140,45141,45142,45142,45143,
+45144,45144,45145,45146,45147,45147,45148,45149,45149,45150,45151,45152,45152,
+45153,45154,45154,45155,45156,45157,45157,45158,45159,45160,45160,45161,45162,
+45162,45163,45164,45165,45165,45166,45167,45167,45168,45169,45170,45170,45171,
+45172,45172,45173,45174,45175,45175,45176,45177,45177,45178,45179,45180,45180,
+45181,45182,45182,45183,45184,45185,45185,45186,45187,45187,45188,45189,45190,
+45190,45191,45192,45192,45193,45194,45195,45195,45196,45197,45197,45198,45199,
+45200,45200,45201,45202,45202,45203,45204,45205,45205,45206,45207,45207,45208,
+45209,45210,45210,45211,45212,45212,45213,45214,45215,45215,45216,45217,45218,
+45218,45219,45220,45220,45221,45222,45223,45223,45224,45225,45225,45226,45227,
+45228,45228,45229,45230,45230,45231,45232,45233,45233,45234,45235,45235,45236,
+45237,45238,45238,45239,45240,45240,45241,45242,45243,45243,45244,45245,45245,
+45246,45247,45248,45248,45249,45250,45250,45251,45252,45253,45253,45254,45255,
+45255,45256,45257,45258,45258,45259,45260,45260,45261,45262,45263,45263,45264,
+45265,45265,45266,45267,45268,45268,45269,45270,45270,45271,45272,45273,45273,
+45274,45275,45275,45276,45277,45278,45278,45279,45280,45280,45281,45282,45283,
+45283,45284,45285,45285,45286,45287,45288,45288,45289,45290,45290,45291,45292,
+45293,45293,45294,45295,45295,45296,45297,45298,45298,45299,45300,45300,45301,
+45302,45303,45303,45304,45305,45305,45306,45307,45308,45308,45309,45310,45310,
+45311,45312,45313,45313,45314,45315,45315,45316,45317,45318,45318,45319,45320,
+45320,45321,45322,45323,45323,45324,45325,45325,45326,45327,45328,45328,45329,
+45330,45330,45331,45332,45333,45333,45334,45335,45335,45336,45337,45337,45338,
+45339,45340,45340,45341,45342,45342,45343,45344,45345,45345,45346,45347,45347,
+45348,45349,45350,45350,45351,45352,45352,45353,45354,45355,45355,45356,45357,
+45357,45358,45359,45360,45360,45361,45362,45362,45363,45364,45365,45365,45366,
+45367,45367,45368,45369,45370,45370,45371,45372,45372,45373,45374,45375,45375,
+45376,45377,45377,45378,45379,45380,45380,45381,45382,45382,45383,45384,45385,
+45385,45386,45387,45387,45388,45389,45390,45390,45391,45392,45392,45393,45394,
+45394,45395,45396,45397,45397,45398,45399,45399,45400,45401,45402,45402,45403,
+45404,45404,45405,45406,45407,45407,45408,45409,45409,45410,45411,45412,45412,
+45413,45414,45414,45415,45416,45417,45417,45418,45419,45419,45420,45421,45422,
+45422,45423,45424,45424,45425,45426,45427,45427,45428,45429,45429,45430,45431,
+45431,45432,45433,45434,45434,45435,45436,45436,45437,45438,45439,45439,45440,
+45441,45441,45442,45443,45444,45444,45445,45446,45446,45447,45448,45449,45449,
+45450,45451,45451,45452,45453,45454,45454,45455,45456,45456,45457,45458,45458,
+45459,45460,45461,45461,45462,45463,45463,45464,45465,45466,45466,45467,45468,
+45468,45469,45470,45471,45471,45472,45473,45473,45474,45475,45476,45476,45477,
+45478,45478,45479,45480,45481,45481,45482,45483,45483,45484,45485,45485,45486,
+45487,45488,45488,45489,45490,45490,45491,45492,45493,45493,45494,45495,45495,
+45496,45497,45498,45498,45499,45500,45500,45501,45502,45503,45503,45504,45505,
+45505,45506,45507,45507,45508,45509,45510,45510,45511,45512,45512,45513,45514,
+45515,45515,45516,45517,45517,45518,45519,45520,45520,45521,45522,45522,45523,
+45524,45525,45525,45526,45527,45527,45528,45529,45529,45530,45531,45532,45532,
+45533,45534,45534,45535,45536,45537,45537,45538,45539,45539,45540,45541,45542,
+45542,45543,45544,45544,45545,45546,45546,45547,45548,45549,45549,45550,45551,
+45551,45552,45553,45554,45554,45555,45556,45556,45557,45558,45559,45559,45560,
+45561,45561,45562,45563,45564,45564,45565,45566,45566,45567,45568,45568,45569,
+45570,45571,45571,45572,45573,45573,45574,45575,45576,45576,45577,45578,45578,
+45579,45580,45581,45581,45582,45583,45583,45584,45585,45585,45586,45587,45588,
+45588,45589,45590,45590,45591,45592,45593,45593,45594,45595,45595,45596,45597,
+45597,45598,45599,45600,45600,45601,45602,45602,45603,45604,45605,45605,45606,
+45607,45607,45608,45609,45610,45610,45611,45612,45612,45613,45614,45614,45615,
+45616,45617,45617,45618,45619,45619,45620,45621,45622,45622,45623,45624,45624,
+45625,45626,45626,45627,45628,45629,45629,45630,45631,45631,45632,45633,45634,
+45634,45635,45636,45636,45637,45638,45639,45639,45640,45641,45641,45642,45643,
+45643,45644,45645,45646,45646,45647,45648,45648,45649,45650,45651,45651,45652,
+45653,45653,45654,45655,45655,45656,45657,45658,45658,45659,45660,45660,45661,
+45662,45663,45663,45664,45665,45665,45666,45667,45667,45668,45669,45670,45670,
+45671,45672,45672,45673,45674,45675,45675,45676,45677,45677,45678,45679,45679,
+45680,45681,45682,45682,45683,45684,45684,45685,45686,45687,45687,45688,45689,
+45689,45690,45691,45691,45692,45693,45694,45694,45695,45696,45696,45697,45698,
+45699,45699,45700,45701,45701,45702,45703,45703,45704,45705,45706,45706,45707,
+45708,45708,45709,45710,45711,45711,45712,45713,45713,45714,45715,45715,45716,
+45717,45718,45718,45719,45720,45720,45721,45722,45723,45723,45724,45725,45725,
+45726,45727,45727,45728,45729,45730,45730,45731,45732,45732,45733,45734,45735,
+45735,45736,45737,45737,45738,45739,45739,45740,45741,45742,45742,45743,45744,
+45744,45745,45746,45747,45747,45748,45749,45749,45750,45751,45751,45752,45753,
+45754,45754,45755,45756,45756,45757,45758,45758,45759,45760,45761,45761,45762,
+45763,45763,45764,45765,45766,45766,45767,45768,45768,45769,45770,45770,45771,
+45772,45773,45773,45774,45775,45775,45776,45777,45778,45778,45779,45780,45780,
+45781,45782,45782,45783,45784,45785,45785,45786,45787,45787,45788,45789,45789,
+45790,45791,45792,45792,45793,45794,45794,45795,45796,45797,45797,45798,45799,
+45799,45800,45801,45801,45802,45803,45804,45804,45805,45806,45806,45807,45808,
+45808,45809,45810,45811,45811,45812,45813,45813,45814,45815,45816,45816,45817,
+45818,45818,45819,45820,45820,45821,45822,45823,45823,45824,45825,45825,45826,
+45827,45827,45828,45829,45830,45830,45831,45832,45832,45833,45834,45834,45835,
+45836,45837,45837,45838,45839,45839,45840,45841,45842,45842,45843,45844,45844,
+45845,45846,45846,45847,45848,45849,45849,45850,45851,45851,45852,45853,45853,
+45854,45855,45856,45856,45857,45858,45858,45859,45860,45860,45861,45862,45863,
+45863,45864,45865,45865,45866,45867,45868,45868,45869,45870,45870,45871,45872,
+45872,45873,45874,45875,45875,45876,45877,45877,45878,45879,45879,45880,45881,
+45882,45882,45883,45884,45884,45885,45886,45886,45887,45888,45889,45889,45890,
+45891,45891,45892,45893,45894,45894,45895,45896,45896,45897,45898,45898,45899,
+45900,45901,45901,45902,45903,45903,45904,45905,45905,45906,45907,45908,45908,
+45909,45910,45910,45911,45912,45912,45913,45914,45915,45915,45916,45917,45917,
+45918,45919,45919,45920,45921,45922,45922,45923,45924,45924,45925,45926,45926,
+45927,45928,45929,45929,45930,45931,45931,45932,45933,45933,45934,45935,45936,
+45936,45937,45938,45938,45939,45940,45940,45941,45942,45943,45943,45944,45945,
+45945,45946,45947,45948,45948,45949,45950,45950,45951,45952,45952,45953,45954,
+45955,45955,45956,45957,45957,45958,45959,45959,45960,45961,45962,45962,45963,
+45964,45964,45965,45966,45966,45967,45968,45969,45969,45970,45971,45971,45972,
+45973,45973,45974,45975,45976,45976,45977,45978,45978,45979,45980,45980,45981,
+45982,45983,45983,45984,45985,45985,45986,45987,45987,45988,45989,45990,45990,
+45991,45992,45992,45993,45994,45994,45995,45996,45997,45997,45998,45999,45999,
+46000,46001,46001,46002,46003,46004,46004,46005,46006,46006,46007,46008,46008,
+46009,46010,46011,46011,46012,46013,46013,46014,46015,46015,46016,46017,46018,
+46018,46019,46020,46020,46021,46022,46022,46023,46024,46025,46025,46026,46027,
+46027,46028,46029,46029,46030,46031,46031,46032,46033,46034,46034,46035,46036,
+46036,46037,46038,46038,46039,46040,46041,46041,46042,46043,46043,46044,46045,
+46045,46046,46047,46048,46048,46049,46050,46050,46051,46052,46052,46053,46054,
+46055,46055,46056,46057,46057,46058,46059,46059,46060,46061,46062,46062,46063,
+46064,46064,46065,46066,46066,46067,46068,46069,46069,46070,46071,46071,46072,
+46073,46073,46074,46075,46076,46076,46077,46078,46078,46079,46080,46080,46081,
+46082,46082,46083,46084,46085,46085,46086,46087,46087,46088,46089,46089,46090,
+46091,46092,46092,46093,46094,46094,46095,46096,46096,46097,46098,46099,46099,
+46100,46101,46101,46102,46103,46103,46104,46105,46106,46106,46107,46108,46108,
+46109,46110,46110,46111,46112,46112,46113,46114,46115,46115,46116,46117,46117,
+46118,46119,46119,46120,46121,46122,46122,46123,46124,46124,46125,46126,46126,
+46127,46128,46129,46129,46130,46131,46131,46132,46133,46133,46134,46135,46136,
+46136,46137,46138,46138,46139,46140,46140,46141,46142,46142,46143,46144,46145,
+46145,46146,46147,46147,46148,46149,46149,46150,46151,46152,46152,46153,46154,
+46154,46155,46156,46156,46157,46158,46159,46159,46160,46161,46161,46162,46163,
+46163,46164,46165,46165,46166,46167,46168,46168,46169,46170,46170,46171,46172,
+46172,46173,46174,46175,46175,46176,46177,46177,46178,46179,46179,46180,46181,
+46181,46182,46183,46184,46184,46185,46186,46186,46187,46188,46188,46189,46190,
+46191,46191,46192,46193,46193,46194,46195,46195,46196,46197,46197,46198,46199,
+46200,46200,46201,46202,46202,46203,46204,46204,46205,46206,46207,46207,46208,
+46209,46209,46210,46211,46211,46212,46213,46213,46214,46215,46216,46216,46217,
+46218,46218,46219,46220,46220,46221,46222,46223,46223,46224,46225,46225,46226,
+46227,46227,46228,46229,46229,46230,46231,46232,46232,46233,46234,46234,46235,
+46236,46236,46237,46238,46239,46239,46240,46241,46241,46242,46243,46243,46244,
+46245,46245,46246,46247,46248,46248,46249,46250,46250,46251,46252,46252,46253,
+46254,46255,46255,46256,46257,46257,46258,46259,46259,46260,46261,46261,46262,
+46263,46264,46264,46265,46266,46266,46267,46268,46268,46269,46270,46270,46271,
+46272,46273,46273,46274,46275,46275,46276,46277,46277,46278,46279,46280,46280,
+46281,46282,46282,46283,46284,46284,46285,46286,46286,46287,46288,46289,46289,
+46290,46291,46291,46292,46293,46293,46294,46295,46295,46296,46297,46298,46298,
+46299,46300,46300,46301,46302,46302,46303,46304,46304,46305,46306,46307,46307,
+46308,46309,46309,46310,46311,46311,46312,46313,46314,46314,46315,46316,46316,
+46317,46318,46318,46319,46320,46320,46321,46322,46323,46323,46324,46325,46325,
+46326,46327,46327,46328,46329,46329,46330,46331,46332,46332,46333,46334,46334,
+46335,46336,46336,46337,46338,46338,46339,46340,46341,46341,46342,46343,46343,
+46344,46345,46345,46346,46347,46347,46348,46349,46350,46350,46351,46352,46352,
+46353,46354,46354,46355,46356,46356,46357,46358,46359,46359,46360,46361,46361,
+46362,46363,46363,46364,46365,46365,46366,46367,46368,46368,46369,46370,46370,
+46371,46372,46372,46373,46374,46374,46375,46376,46377,46377,46378,46379,46379,
+46380,46381,46381,46382,46383,46383,46384,46385,46386,46386,46387,46388,46388,
+46389,46390,46390,46391,46392,46392,46393,46394,46395,46395,46396,46397,46397,
+46398,46399,46399,46400,46401,46401,46402,46403,46404,46404,46405,46406,46406,
+46407,46408,46408,46409,46410,46410,46411,46412,46413,46413,46414,46415,46415,
+46416,46417,46417,46418,46419,46419,46420,46421,46422,46422,46423,46424,46424,
+46425,46426,46426,46427,46428,46428,46429,46430,46431,46431,46432,46433,46433,
+46434,46435,46435,46436,46437,46437,46438,46439,46440,46440,46441,46442,46442,
+46443,46444,46444,46445,46446,46446,46447,46448,46449,46449,46450,46451,46451,
+46452,46453,46453,46454,46455,46455,46456,46457,46457,46458,46459,46460,46460,
+46461,46462,46462,46463,46464,46464,46465,46466,46466,46467,46468,46469,46469,
+46470,46471,46471,46472,46473,46473,46474,46475,46475,46476,46477,46478,46478,
+46479,46480,46480,46481,46482,46482,46483,46484,46484,46485,46486,46486,46487,
+46488,46489,46489,46490,46491,46491,46492,46493,46493,46494,46495,46495,46496,
+46497,46498,46498,46499,46500,46500,46501,46502,46502,46503,46504,46504,46505,
+46506,46506,46507,46508,46509,46509,46510,46511,46511,46512,46513,46513,46514,
+46515,46515,46516,46517,46518,46518,46519,46520,46520,46521,46522,46522,46523,
+46524,46524,46525,46526,46526,46527,46528,46529,46529,46530,46531,46531,46532,
+46533,46533,46534,46535,46535,46536,46537,46538,46538,46539,46540,46540,46541,
+46542,46542,46543,46544,46544,46545,46546,46546,46547,46548,46549,46549,46550,
+46551,46551,46552,46553,46553,46554,46555,46555,46556,46557,46558,46558,46559,
+46560,46560,46561,46562,46562,46563,46564,46564,46565,46566,46566,46567,46568,
+46569,46569,46570,46571,46571,46572,46573,46573,46574,46575,46575,46576,46577,
+46577,46578,46579,46580,46580,46581,46582,46582,46583,46584,46584,46585,46586,
+46586,46587,46588,46588,46589,46590,46591,46591,46592,46593,46593,46594,46595,
+46595,46596,46597,46597,46598,46599,46600,46600,46601,46602,46602,46603,46604,
+46604,46605,46606,46606,46607,46608,46608,46609,46610,46611,46611,46612,46613,
+46613,46614,46615,46615,46616,46617,46617,46618,46619,46619,46620,46621,46622,
+46622,46623,46624,46624,46625,46626,46626,46627,46628,46628,46629,46630,46630,
+46631,46632,46633,46633,46634,46635,46635,46636,46637,46637,46638,46639,46639,
+46640,46641,46641,46642,46643,46644,46644,46645,46646,46646,46647,46648,46648,
+46649,46650,46650,46651,46652,46652,46653,46654,46655,46655,46656,46657,46657,
+46658,46659,46659,46660,46661,46661,46662,46663,46663,46664,46665,46665,46666,
+46667,46668,46668,46669,46670,46670,46671,46672,46672,46673,46674,46674,46675,
+46676,46676,46677,46678,46679,46679,46680,46681,46681,46682,46683,46683,46684,
+46685,46685,46686,46687,46687,46688,46689,46690,46690,46691,46692,46692,46693,
+46694,46694,46695,46696,46696,46697,46698,46698,46699,46700,46701,46701,46702,
+46703,46703,46704,46705,46705,46706,46707,46707,46708,46709,46709,46710,46711,
+46711,46712,46713,46714,46714,46715,46716,46716,46717,46718,46718,46719,46720,
+46720,46721,46722,46722,46723,46724,46725,46725,46726,46727,46727,46728,46729,
+46729,46730,46731,46731,46732,46733,46733,46734,46735,46735,46736,46737,46738,
+46738,46739,46740,46740,46741,46742,46742,46743,46744,46744,46745,46746,46746,
+46747,46748,46749,46749,46750,46751,46751,46752,46753,46753,46754,46755,46755,
+46756,46757,46757,46758,46759,46759,46760,46761,46762,46762,46763,46764,46764,
+46765,46766,46766,46767,46768,46768,46769,46770,46770,46771,46772,46772,46773,
+46774,46775,46775,46776,46777,46777,46778,46779,46779,46780,46781,46781,46782,
+46783,46783,46784,46785,46785,46786,46787,46788,46788,46789,46790,46790,46791,
+46792,46792,46793,46794,46794,46795,46796,46796,46797,46798,46798,46799,46800,
+46801,46801,46802,46803,46803,46804,46805,46805,46806,46807,46807,46808,46809,
+46809,46810,46811,46811,46812,46813,46814,46814,46815,46816,46816,46817,46818,
+46818,46819,46820,46820,46821,46822,46822,46823,46824,46824,46825,46826,46827,
+46827,46828,46829,46829,46830,46831,46831,46832,46833,46833,46834,46835,46835,
+46836,46837,46837,46838,46839,46840,46840,46841,46842,46842,46843,46844,46844,
+46845,46846,46846,46847,46848,46848,46849,46850,46850,46851,46852,46853,46853,
+46854,46855,46855,46856,46857,46857,46858,46859,46859,46860,46861,46861,46862,
+46863,46863,46864,46865,46865,46866,46867,46868,46868,46869,46870,46870,46871,
+46872,46872,46873,46874,46874,46875,46876,46876,46877,46878,46878,46879,46880,
+46881,46881,46882,46883,46883,46884,46885,46885,46886,46887,46887,46888,46889,
+46889,46890,46891,46891,46892,46893,46893,46894,46895,46896,46896,46897,46898,
+46898,46899,46900,46900,46901,46902,46902,46903,46904,46904,46905,46906,46906,
+46907,46908,46908,46909,46910,46911,46911,46912,46913,46913,46914,46915,46915,
+46916,46917,46917,46918,46919,46919,46920,46921,46921,46922,46923,46923,46924,
+46925,46926,46926,46927,46928,46928,46929,46930,46930,46931,46932,46932,46933,
+46934,46934,46935,46936,46936,46937,46938,46938,46939,46940,46941,46941,46942,
+46943,46943,46944,46945,46945,46946,46947,46947,46948,46949,46949,46950,46951,
+46951,46952,46953,46953,46954,46955,46956,46956,46957,46958,46958,46959,46960,
+46960,46961,46962,46962,46963,46964,46964,46965,46966,46966,46967,46968,46968,
+46969,46970,46971,46971,46972,46973,46973,46974,46975,46975,46976,46977,46977,
+46978,46979,46979,46980,46981,46981,46982,46983,46983,46984,46985,46985,46986,
+46987,46988,46988,46989,46990,46990,46991,46992,46992,46993,46994,46994,46995,
+46996,46996,46997,46998,46998,46999,47000,47000,47001,47002,47003,47003,47004,
+47005,47005,47006,47007,47007,47008,47009,47009,47010,47011,47011,47012,47013,
+47013,47014,47015,47015,47016,47017,47017,47018,47019,47020,47020,47021,47022,
+47022,47023,47024,47024,47025,47026,47026,47027,47028,47028,47029,47030,47030,
+47031,47032,47032,47033,47034,47034,47035,47036,47037,47037,47038,47039,47039,
+47040,47041,47041,47042,47043,47043,47044,47045,47045,47046,47047,47047,47048,
+47049,47049,47050,47051,47051,47052,47053,47054,47054,47055,47056,47056,47057,
+47058,47058,47059,47060,47060,47061,47062,47062,47063,47064,47064,47065,47066,
+47066,47067,47068,47068,47069,47070,47070,47071,47072,47073,47073,47074,47075,
+47075,47076,47077,47077,47078,47079,47079,47080,47081,47081,47082,47083,47083,
+47084,47085,47085,47086,47087,47087,47088,47089,47089,47090,47091,47092,47092,
+47093,47094,47094,47095,47096,47096,47097,47098,47098,47099,47100,47100,47101,
+47102,47102,47103,47104,47104,47105,47106,47106,47107,47108,47108,47109,47110,
+47111,47111,47112,47113,47113,47114,47115,47115,47116,47117,47117,47118,47119,
+47119,47120,47121,47121,47122,47123,47123,47124,47125,47125,47126,47127,47127,
+47128,47129,47130,47130,47131,47132,47132,47133,47134,47134,47135,47136,47136,
+47137,47138,47138,47139,47140,47140,47141,47142,47142,47143,47144,47144,47145,
+47146,47146,47147,47148,47149,47149,47150,47151,47151,47152,47153,47153,47154,
+47155,47155,47156,47157,47157,47158,47159,47159,47160,47161,47161,47162,47163,
+47163,47164,47165,47165,47166,47167,47167,47168,47169,47170,47170,47171,47172,
+47172,47173,47174,47174,47175,47176,47176,47177,47178,47178,47179,47180,47180,
+47181,47182,47182,47183,47184,47184,47185,47186,47186,47187,47188,47188,47189,
+47190,47190,47191,47192,47193,47193,47194,47195,47195,47196,47197,47197,47198,
+47199,47199,47200,47201,47201,47202,47203,47203,47204,47205,47205,47206,47207,
+47207,47208,47209,47209,47210,47211,47211,47212,47213,47214,47214,47215,47216,
+47216,47217,47218,47218,47219,47220,47220,47221,47222,47222,47223,47224,47224,
+47225,47226,47226,47227,47228,47228,47229,47230,47230,47231,47232,47232,47233,
+47234,47234,47235,47236,47236,47237,47238,47239,47239,47240,47241,47241,47242,
+47243,47243,47244,47245,47245,47246,47247,47247,47248,47249,47249,47250,47251,
+47251,47252,47253,47253,47254,47255,47255,47256,47257,47257,47258,47259,47259,
+47260,47261,47261,47262,47263,47264,47264,47265,47266,47266,47267,47268,47268,
+47269,47270,47270,47271,47272,47272,47273,47274,47274,47275,47276,47276,47277,
+47278,47278,47279,47280,47280,47281,47282,47282,47283,47284,47284,47285,47286,
+47286,47287,47288,47289,47289,47290,47291,47291,47292,47293,47293,47294,47295,
+47295,47296,47297,47297,47298,47299,47299,47300,47301,47301,47302,47303,47303,
+47304,47305,47305,47306,47307,47307,47308,47309,47309,47310,47311,47311,47312,
+47313,47313,47314,47315,47316,47316,47317,47318,47318,47319,47320,47320,47321,
+47322,47322,47323,47324,47324,47325,47326,47326,47327,47328,47328,47329,47330,
+47330,47331,47332,47332,47333,47334,47334,47335,47336,47336,47337,47338,47338,
+47339,47340,47340,47341,47342,47342,47343,47344,47344,47345,47346,47347,47347,
+47348,47349,47349,47350,47351,47351,47352,47353,47353,47354,47355,47355,47356,
+47357,47357,47358,47359,47359,47360,47361,47361,47362,47363,47363,47364,47365,
+47365,47366,47367,47367,47368,47369,47369,47370,47371,47371,47372,47373,47373,
+47374,47375,47375,47376,47377,47378,47378,47379,47380,47380,47381,47382,47382,
+47383,47384,47384,47385,47386,47386,47387,47388,47388,47389,47390,47390,47391,
+47392,47392,47393,47394,47394,47395,47396,47396,47397,47398,47398,47399,47400,
+47400,47401,47402,47402,47403,47404,47404,47405,47406,47406,47407,47408,47408,
+47409,47410,47410,47411,47412,47413,47413,47414,47415,47415,47416,47417,47417,
+47418,47419,47419,47420,47421,47421,47422,47423,47423,47424,47425,47425,47426,
+47427,47427,47428,47429,47429,47430,47431,47431,47432,47433,47433,47434,47435,
+47435,47436,47437,47437,47438,47439,47439,47440,47441,47441,47442,47443,47443,
+47444,47445,47445,47446,47447,47447,47448,47449,47449,47450,47451,47452,47452,
+47453,47454,47454,47455,47456,47456,47457,47458,47458,47459,47460,47460,47461,
+47462,47462,47463,47464,47464,47465,47466,47466,47467,47468,47468,47469,47470,
+47470,47471,47472,47472,47473,47474,47474,47475,47476,47476,47477,47478,47478,
+47479,47480,47480,47481,47482,47482,47483,47484,47484,47485,47486,47486,47487,
+47488,47488,47489,47490,47490,47491,47492,47492,47493,47494,47494,47495,47496,
+47497,47497,47498,47499,47499,47500,47501,47501,47502,47503,47503,47504,47505,
+47505,47506,47507,47507,47508,47509,47509,47510,47511,47511,47512,47513,47513,
+47514,47515,47515,47516,47517,47517,47518,47519,47519,47520,47521,47521,47522,
+47523,47523,47524,47525,47525,47526,47527,47527,47528,47529,47529,47530,47531,
+47531,47532,47533,47533,47534,47535,47535,47536,47537,47537,47538,47539,47539,
+47540,47541,47541,47542,47543,47543,47544,47545,47545,47546,47547,47547,47548,
+47549,47549,47550,47551,47552,47552,47553,47554,47554,47555,47556,47556,47557,
+47558,47558,47559,47560,47560,47561,47562,47562,47563,47564,47564,47565,47566,
+47566,47567,47568,47568,47569,47570,47570,47571,47572,47572,47573,47574,47574,
+47575,47576,47576,47577,47578,47578,47579,47580,47580,47581,47582,47582,47583,
+47584,47584,47585,47586,47586,47587,47588,47588,47589,47590,47590,47591,47592,
+47592,47593,47594,47594,47595,47596,47596,47597,47598,47598,47599,47600,47600,
+47601,47602,47602,47603,47604,47604,47605,47606,47606,47607,47608,47608,47609,
+47610,47610,47611,47612,47612,47613,47614,47614,47615,47616,47616,47617,47618,
+47618,47619,47620,47620,47621,47622,47622,47623,47624,47624,47625,47626,47626,
+47627,47628,47628,47629,47630,47631,47631,47632,47633,47633,47634,47635,47635,
+47636,47637,47637,47638,47639,47639,47640,47641,47641,47642,47643,47643,47644,
+47645,47645,47646,47647,47647,47648,47649,47649,47650,47651,47651,47652,47653,
+47653,47654,47655,47655,47656,47657,47657,47658,47659,47659,47660,47661,47661,
+47662,47663,47663,47664,47665,47665,47666,47667,47667,47668,47669,47669,47670,
+47671,47671,47672,47673,47673,47674,47675,47675,47676,47677,47677,47678,47679,
+47679,47680,47681,47681,47682,47683,47683,47684,47685,47685,47686,47687,47687,
+47688,47689,47689,47690,47691,47691,47692,47693,47693,47694,47695,47695,47696,
+47697,47697,47698,47699,47699,47700,47701,47701,47702,47703,47703,47704,47705,
+47705,47706,47707,47707,47708,47709,47709,47710,47711,47711,47712,47713,47713,
+47714,47715,47715,47716,47717,47717,47718,47719,47719,47720,47721,47721,47722,
+47723,47723,47724,47725,47725,47726,47727,47727,47728,47729,47729,47730,47731,
+47731,47732,47733,47733,47734,47735,47735,47736,47737,47737,47738,47739,47739,
+47740,47741,47741,47742,47743,47743,47744,47745,47745,47746,47747,47747,47748,
+47749,47749,47750,47751,47751,47752,47753,47753,47754,47755,47755,47756,47757,
+47757,47758,47759,47759,47760,47761,47761,47762,47763,47763,47764,47765,47765,
+47766,47767,47767,47768,47769,47769,47770,47771,47771,47772,47773,47773,47774,
+47775,47775,47776,47777,47777,47778,47779,47779,47780,47781,47781,47782,47783,
+47783,47784,47785,47785,47786,47787,47787,47788,47789,47789,47790,47791,47791,
+47792,47793,47793,47794,47795,47795,47796,47797,47797,47798,47799,47799,47800,
+47801,47801,47802,47803,47803,47804,47805,47805,47806,47807,47807,47808,47809,
+47809,47810,47811,47811,47812,47813,47813,47814,47815,47815,47816,47817,47817,
+47818,47819,47819,47820,47821,47821,47822,47823,47823,47824,47825,47825,47826,
+47827,47827,47828,47829,47829,47830,47831,47831,47832,47833,47833,47834,47835,
+47835,47836,47837,47837,47838,47839,47839,47840,47841,47841,47842,47843,47843,
+47844,47845,47845,47846,47847,47847,47848,47849,47849,47850,47851,47851,47852,
+47853,47853,47854,47855,47855,47856,47857,47857,47858,47859,47859,47860,47860,
+47861,47862,47862,47863,47864,47864,47865,47866,47866,47867,47868,47868,47869,
+47870,47870,47871,47872,47872,47873,47874,47874,47875,47876,47876,47877,47878,
+47878,47879,47880,47880,47881,47882,47882,47883,47884,47884,47885,47886,47886,
+47887,47888,47888,47889,47890,47890,47891,47892,47892,47893,47894,47894,47895,
+47896,47896,47897,47898,47898,47899,47900,47900,47901,47902,47902,47903,47904,
+47904,47905,47906,47906,47907,47908,47908,47909,47910,47910,47911,47912,47912,
+47913,47914,47914,47915,47916,47916,47917,47918,47918,47919,47920,47920,47921,
+47922,47922,47923,47924,47924,47925,47926,47926,47927,47928,47928,47929,47930,
+47930,47931,47932,47932,47933,47934,47934,47935,47936,47936,47937,47938,47938,
+47939,47939,47940,47941,47941,47942,47943,47943,47944,47945,47945,47946,47947,
+47947,47948,47949,47949,47950,47951,47951,47952,47953,47953,47954,47955,47955,
+47956,47957,47957,47958,47959,47959,47960,47961,47961,47962,47963,47963,47964,
+47965,47965,47966,47967,47967,47968,47969,47969,47970,47971,47971,47972,47973,
+47973,47974,47975,47975,47976,47977,47977,47978,47979,47979,47980,47981,47981,
+47982,47983,47983,47984,47985,47985,47986,47987,47987,47988,47989,47989,47990,
+47991,47991,47992,47993,47993,47994,47994,47995,47996,47996,47997,47998,47998,
+47999,48000,48000,48001,48002,48002,48003,48004,48004,48005,48006,48006,48007,
+48008,48008,48009,48010,48010,48011,48012,48012,48013,48014,48014,48015,48016,
+48016,48017,48018,48018,48019,48020,48020,48021,48022,48022,48023,48024,48024,
+48025,48026,48026,48027,48028,48028,48029,48030,48030,48031,48032,48032,48033,
+48034,48034,48035,48036,48036,48037,48038,48038,48039,48039,48040,48041,48041,
+48042,48043,48043,48044,48045,48045,48046,48047,48047,48048,48049,48049,48050,
+48051,48051,48052,48053,48053,48054,48055,48055,48056,48057,48057,48058,48059,
+48059,48060,48061,48061,48062,48063,48063,48064,48065,48065,48066,48067,48067,
+48068,48069,48069,48070,48071,48071,48072,48073,48073,48074,48075,48075,48076,
+48077,48077,48078,48078,48079,48080,48080,48081,48082,48082,48083,48084,48084,
+48085,48086,48086,48087,48088,48088,48089,48090,48090,48091,48092,48092,48093,
+48094,48094,48095,48096,48096,48097,48098,48098,48099,48100,48100,48101,48102,
+48102,48103,48104,48104,48105,48106,48106,48107,48108,48108,48109,48110,48110,
+48111,48112,48112,48113,48113,48114,48115,48115,48116,48117,48117,48118,48119,
+48119,48120,48121,48121,48122,48123,48123,48124,48125,48125,48126,48127,48127,
+48128,48129,48129,48130,48131,48131,48132,48133,48133,48134,48135,48135,48136,
+48137,48137,48138,48139,48139,48140,48141,48141,48142,48143,48143,48144,48144,
+48145,48146,48146,48147,48148,48148,48149,48150,48150,48151,48152,48152,48153,
+48154,48154,48155,48156,48156,48157,48158,48158,48159,48160,48160,48161,48162,
+48162,48163,48164,48164,48165,48166,48166,48167,48168,48168,48169,48170,48170,
+48171,48172,48172,48173,48173,48174,48175,48175,48176,48177,48177,48178,48179,
+48179,48180,48181,48181,48182,48183,48183,48184,48185,48185,48186,48187,48187,
+48188,48189,48189,48190,48191,48191,48192,48193,48193,48194,48195,48195,48196,
+48197,48197,48198,48199,48199,48200,48201,48201,48202,48202,48203,48204,48204,
+48205,48206,48206,48207,48208,48208,48209,48210,48210,48211,48212,48212,48213,
+48214,48214,48215,48216,48216,48217,48218,48218,48219,48220,48220,48221,48222,
+48222,48223,48224,48224,48225,48226,48226,48227,48228,48228,48229,48229,48230,
+48231,48231,48232,48233,48233,48234,48235,48235,48236,48237,48237,48238,48239,
+48239,48240,48241,48241,48242,48243,48243,48244,48245,48245,48246,48247,48247,
+48248,48249,48249,48250,48251,48251,48252,48252,48253,48254,48254,48255,48256,
+48256,48257,48258,48258,48259,48260,48260,48261,48262,48262,48263,48264,48264,
+48265,48266,48266,48267,48268,48268,48269,48270,48270,48271,48272,48272,48273,
+48274,48274,48275,48276,48276,48277,48277,48278,48279,48279,48280,48281,48281,
+48282,48283,48283,48284,48285,48285,48286,48287,48287,48288,48289,48289,48290,
+48291,48291,48292,48293,48293,48294,48295,48295,48296,48297,48297,48298,48298,
+48299,48300,48300,48301,48302,48302,48303,48304,48304,48305,48306,48306,48307,
+48308,48308,48309,48310,48310,48311,48312,48312,48313,48314,48314,48315,48316,
+48316,48317,48318,48318,48319,48320,48320,48321,48321,48322,48323,48323,48324,
+48325,48325,48326,48327,48327,48328,48329,48329,48330,48331,48331,48332,48333,
+48333,48334,48335,48335,48336,48337,48337,48338,48339,48339,48340,48341,48341,
+48342,48342,48343,48344,48344,48345,48346,48346,48347,48348,48348,48349,48350,
+48350,48351,48352,48352,48353,48354,48354,48355,48356,48356,48357,48358,48358,
+48359,48360,48360,48361,48361,48362,48363,48363,48364,48365,48365,48366,48367,
+48367,48368,48369,48369,48370,48371,48371,48372,48373,48373,48374,48375,48375,
+48376,48377,48377,48378,48379,48379,48380,48380,48381,48382,48382,48383,48384,
+48384,48385,48386,48386,48387,48388,48388,48389,48390,48390,48391,48392,48392,
+48393,48394,48394,48395,48396,48396,48397,48398,48398,48399,48399,48400,48401,
+48401,48402,48403,48403,48404,48405,48405,48406,48407,48407,48408,48409,48409,
+48410,48411,48411,48412,48413,48413,48414,48415,48415,48416,48417,48417,48418,
+48418,48419,48420,48420,48421,48422,48422,48423,48424,48424,48425,48426,48426,
+48427,48428,48428,48429,48430,48430,48431,48432,48432,48433,48434,48434,48435,
+48435,48436,48437,48437,48438,48439,48439,48440,48441,48441,48442,48443,48443,
+48444,48445,48445,48446,48447,48447,48448,48449,48449,48450,48451,48451,48452,
+48453,48453,48454,48454,48455,48456,48456,48457,48458,48458,48459,48460,48460,
+48461,48462,48462,48463,48464,48464,48465,48466,48466,48467,48468,48468,48469,
+48470,48470,48471,48471,48472,48473,48473,48474,48475,48475,48476,48477,48477,
+48478,48479,48479,48480,48481,48481,48482,48483,48483,48484,48485,48485,48486,
+48486,48487,48488,48488,48489,48490,48490,48491,48492,48492,48493,48494,48494,
+48495,48496,48496,48497,48498,48498,48499,48500,48500,48501,48502,48502,48503,
+48503,48504,48505,48505,48506,48507,48507,48508,48509,48509,48510,48511,48511,
+48512,48513,48513,48514,48515,48515,48516,48517,48517,48518,48518,48519,48520,
+48520,48521,48522,48522,48523,48524,48524,48525,48526,48526,48527,48528,48528,
+48529,48530,48530,48531,48532,48532,48533,48534,48534,48535,48535,48536,48537,
+48537,48538,48539,48539,48540,48541,48541,48542,48543,48543,48544,48545,48545,
+48546,48547,48547,48548,48549,48549,48550,48550,48551,48552,48552,48553,48554,
+48554,48555,48556,48556,48557,48558,48558,48559,48560,48560,48561,48562,48562,
+48563,48564,48564,48565,48565,48566,48567,48567,48568,48569,48569,48570,48571,
+48571,48572,48573,48573,48574,48575,48575,48576,48577,48577,48578,48579,48579,
+48580,48580,48581,48582,48582,48583,48584,48584,48585,48586,48586,48587,48588,
+48588,48589,48590,48590,48591,48592,48592,48593,48593,48594,48595,48595,48596,
+48597,48597,48598,48599,48599,48600,48601,48601,48602,48603,48603,48604,48605,
+48605,48606,48607,48607,48608,48608,48609,48610,48610,48611,48612,48612,48613,
+48614,48614,48615,48616,48616,48617,48618,48618,48619,48620,48620,48621,48622,
+48622,48623,48623,48624,48625,48625,48626,48627,48627,48628,48629,48629,48630,
+48631,48631,48632,48633,48633,48634,48635,48635,48636,48636,48637,48638,48638,
+48639,48640,48640,48641,48642,48642,48643,48644,48644,48645,48646,48646,48647,
+48648,48648,48649,48649,48650,48651,48651,48652,48653,48653,48654,48655,48655,
+48656,48657,48657,48658,48659,48659,48660,48661,48661,48662,48662,48663,48664,
+48664,48665,48666,48666,48667,48668,48668,48669,48670,48670,48671,48672,48672,
+48673,48674,48674,48675,48676,48676,48677,48677,48678,48679,48679,48680,48681,
+48681,48682,48683,48683,48684,48685,48685,48686,48687,48687,48688,48689,48689,
+48690,48690,48691,48692,48692,48693,48694,48694,48695,48696,48696,48697,48698,
+48698,48699,48700,48700,48701,48701,48702,48703,48703,48704,48705,48705,48706,
+48707,48707,48708,48709,48709,48710,48711,48711,48712,48713,48713,48714,48714,
+48715,48716,48716,48717,48718,48718,48719,48720,48720,48721,48722,48722,48723,
+48724,48724,48725,48726,48726,48727,48727,48728,48729,48729,48730,48731,48731,
+48732,48733,48733,48734,48735,48735,48736,48737,48737,48738,48739,48739,48740,
+48740,48741,48742,48742,48743,48744,48744,48745,48746,48746,48747,48748,48748,
+48749,48750,48750,48751,48751,48752,48753,48753,48754,48755,48755,48756,48757,
+48757,48758,48759,48759,48760,48761,48761,48762,48763,48763,48764,48764,48765,
+48766,48766,48767,48768,48768,48769,48770,48770,48771,48772,48772,48773,48774,
+48774,48775,48775,48776,48777,48777,48778,48779,48779,48780,48781,48781,48782,
+48783,48783,48784,48785,48785,48786,48787,48787,48788,48788,48789,48790,48790,
+48791,48792,48792,48793,48794,48794,48795,48796,48796,48797,48798,48798,48799,
+48799,48800,48801,48801,48802,48803,48803,48804,48805,48805,48806,48807,48807,
+48808,48809,48809,48810,48810,48811,48812,48812,48813,48814,48814,48815,48816,
+48816,48817,48818,48818,48819,48820,48820,48821,48821,48822,48823,48823,48824,
+48825,48825,48826,48827,48827,48828,48829,48829,48830,48831,48831,48832,48832,
+48833,48834,48834,48835,48836,48836,48837,48838,48838,48839,48840,48840,48841,
+48842,48842,48843,48843,48844,48845,48845,48846,48847,48847,48848,48849,48849,
+48850,48851,48851,48852,48853,48853,48854,48854,48855,48856,48856,48857,48858,
+48858,48859,48860,48860,48861,48862,48862,48863,48864,48864,48865,48865,48866,
+48867,48867,48868,48869,48869,48870,48871,48871,48872,48873,48873,48874,48875,
+48875,48876,48876,48877,48878,48878,48879,48880,48880,48881,48882,48882,48883,
+48884,48884,48885,48886,48886,48887,48887,48888,48889,48889,48890,48891,48891,
+48892,48893,48893,48894,48895,48895,48896,48897,48897,48898,48898,48899,48900,
+48900,48901,48902,48902,48903,48904,48904,48905,48906,48906,48907,48908,48908,
+48909,48909,48910,48911,48911,48912,48913,48913,48914,48915,48915,48916,48917,
+48917,48918,48918,48919,48920,48920,48921,48922,48922,48923,48924,48924,48925,
+48926,48926,48927,48928,48928,48929,48929,48930,48931,48931,48932,48933,48933,
+48934,48935,48935,48936,48937,48937,48938,48939,48939,48940,48940,48941,48942,
+48942,48943,48944,48944,48945,48946,48946,48947,48948,48948,48949,48949,48950,
+48951,48951,48952,48953,48953,48954,48955,48955,48956,48957,48957,48958,48959,
+48959,48960,48960,48961,48962,48962,48963,48964,48964,48965,48966,48966,48967,
+48968,48968,48969,48969,48970,48971,48971,48972,48973,48973,48974,48975,48975,
+48976,48977,48977,48978,48979,48979,48980,48980,48981,48982,48982,48983,48984,
+48984,48985,48986,48986,48987,48988,48988,48989,48989,48990,48991,48991,48992,
+48993,48993,48994,48995,48995,48996,48997,48997,48998,48999,48999,49000,49000,
+49001,49002,49002,49003,49004,49004,49005,49006,49006,49007,49008,49008,49009,
+49009,49010,49011,49011,49012,49013,49013,49014,49015,49015,49016,49017,49017,
+49018,49018,49019,49020,49020,49021,49022,49022,49023,49024,49024,49025,49026,
+49026,49027,49027,49028,49029,49029,49030,49031,49031,49032,49033,49033,49034,
+49035,49035,49036,49037,49037,49038,49038,49039,49040,49040,49041,49042,49042,
+49043,49044,49044,49045,49046,49046,49047,49047,49048,49049,49049,49050,49051,
+49051,49052,49053,49053,49054,49055,49055,49056,49056,49057,49058,49058,49059,
+49060,49060,49061,49062,49062,49063,49064,49064,49065,49065,49066,49067,49067,
+49068,49069,49069,49070,49071,49071,49072,49073,49073,49074,49074,49075,49076,
+49076,49077,49078,49078,49079,49080,49080,49081,49082,49082,49083,49083,49084,
+49085,49085,49086,49087,49087,49088,49089,49089,49090,49091,49091,49092,49092,
+49093,49094,49094,49095,49096,49096,49097,49098,49098,49099,49100,49100,49101,
+49101,49102,49103,49103,49104,49105,49105,49106,49107,49107,49108,49109,49109,
+49110,49110,49111,49112,49112,49113,49114,49114,49115,49116,49116,49117,49118,
+49118,49119,49119,49120,49121,49121,49122,49123,49123,49124,49125,49125,49126,
+49127,49127,49128,49128,49129,49130,49130,49131,49132,49132,49133,49134,49134,
+49135,49136,49136,49137,49137,49138,49139,49139,49140,49141,49141,49142,49143,
+49143,49144,49145,49145,49146,49146,49147,49148,49148,49149,49150,49150,49151,
+49152,49152,49153,49154,49154,49155,49155,49156,49157,49157,49158,49159,49159,
+49160,49161,49161,49162,49163,49163,49164,49164,49165,49166,49166,49167,49168,
+49168,49169,49170,49170,49171,49171,49172,49173,49173,49174,49175,49175,49176,
+49177,49177,49178,49179,49179,49180,49180,49181,49182,49182,49183,49184,49184,
+49185,49186,49186,49187,49188,49188,49189,49189,49190,49191,49191,49192,49193,
+49193,49194,49195,49195,49196,49196,49197,49198,49198,49199,49200,49200,49201,
+49202,49202,49203,49204,49204,49205,49205,49206,49207,49207,49208,49209,49209,
+49210,49211,49211,49212,49213,49213,49214,49214,49215,49216,49216,49217,49218,
+49218,49219,49220,49220,49221,49221,49222,49223,49223,49224,49225,49225,49226,
+49227,49227,49228,49229,49229,49230,49230,49231,49232,49232,49233,49234,49234,
+49235,49236,49236,49237,49238,49238,49239,49239,49240,49241,49241,49242,49243,
+49243,49244,49245,49245,49246,49246,49247,49248,49248,49249,49250,49250,49251,
+49252,49252,49253,49254,49254,49255,49255,49256,49257,49257,49258,49259,49259,
+49260,49261,49261,49262,49262,49263,49264,49264,49265,49266,49266,49267,49268,
+49268,49269,49270,49270,49271,49271,49272,49273,49273,49274,49275,49275,49276,
+49277,49277,49278,49278,49279,49280,49280,49281,49282,49282,49283,49284,49284,
+49285,49286,49286,49287,49287,49288,49289,49289,49290,49291,49291,49292,49293,
+49293,49294,49294,49295,49296,49296,49297,49298,49298,49299,49300,49300,49301,
+49301,49302,49303,49303,49304,49305,49305,49306,49307,49307,49308,49309,49309,
+49310,49310,49311,49312,49312,49313,49314,49314,49315,49316,49316,49317,49317,
+49318,49319,49319,49320,49321,49321,49322,49323,49323,49324,49325,49325,49326,
+49326,49327,49328,49328,49329,49330,49330,49331,49332,49332,49333,49333,49334,
+49335,49335,49336,49337,49337,49338,49339,49339,49340,49340,49341,49342,49342,
+49343,49344,49344,49345,49346,49346,49347,49348,49348,49349,49349,49350,49351,
+49351,49352,49353,49353,49354,49355,49355,49356,49356,49357,49358,49358,49359,
+49360,49360,49361,49362,49362,49363,49363,49364,49365,49365,49366,49367,49367,
+49368,49369,49369,49370,49370,49371,49372,49372,49373,49374,49374,49375,49376,
+49376,49377,49378,49378,49379,49379,49380,49381,49381,49382,49383,49383,49384,
+49385,49385,49386,49386,49387,49388,49388,49389,49390,49390,49391,49392,49392,
+49393,49393,49394,49395,49395,49396,49397,49397,49398,49399,49399,49400,49400,
+49401,49402,49402,49403,49404,49404,49405,49406,49406,49407,49407,49408,49409,
+49409,49410,49411,49411,49412,49413,49413,49414,49414,49415,49416,49416,49417,
+49418,49418,49419,49420,49420,49421,49422,49422,49423,49423,49424,49425,49425,
+49426,49427,49427,49428,49429,49429,49430,49430,49431,49432,49432,49433,49434,
+49434,49435,49436,49436,49437,49437,49438,49439,49439,49440,49441,49441,49442,
+49443,49443,49444,49444,49445,49446,49446,49447,49448,49448,49449,49450,49450,
+49451,49451,49452,49453,49453,49454,49455,49455,49456,49457,49457,49458,49458,
+49459,49460,49460,49461,49462,49462,49463,49464,49464,49465,49465,49466,49467,
+49467,49468,49469,49469,49470,49471,49471,49472,49472,49473,49474,49474,49475,
+49476,49476,49477,49478,49478,49479,49479,49480,49481,49481,49482,49483,49483,
+49484,49485,49485,49486,49486,49487,49488,49488,49489,49490,49490,49491,49492,
+49492,49493,49493,49494,49495,49495,49496,49497,49497,49498,49499,49499,49500,
+49500,49501,49502,49502,49503,49504,49504,49505,49506,49506,49507,49507,49508,
+49509,49509,49510,49511,49511,49512,49513,49513,49514,49514,49515,49516,49516,
+49517,49518,49518,49519,49520,49520,49521,49521,49522,49523,49523,49524,49525,
+49525,49526,49527,49527,49528,49528,49529,49530,49530,49531,49532,49532,49533,
+49534,49534,49535,49535,49536,49537,49537,49538,49539,49539,49540,49541,49541,
+49542,49542,49543,49544,49544,49545,49546,49546,49547,49547,49548,49549,49549,
+49550,49551,49551,49552,49553,49553,49554,49554,49555,49556,49556,49557,49558,
+49558,49559,49560,49560,49561,49561,49562,49563,49563,49564,49565,49565,49566,
+49567,49567,49568,49568,49569,49570,49570,49571,49572,49572,49573,49574,49574,
+49575,49575,49576,49577,49577,49578,49579,49579,49580,49581,49581,49582,49582,
+49583,49584,49584,49585,49586,49586,49587,49587,49588,49589,49589,49590,49591,
+49591,49592,49593,49593,49594,49594,49595,49596,49596,49597,49598,49598,49599,
+49600,49600,49601,49601,49602,49603,49603,49604,49605,49605,49606,49607,49607,
+49608,49608,49609,49610,49610,49611,49612,49612,49613,49614,49614,49615,49615,
+49616,49617,49617,49618,49619,49619,49620,49620,49621,49622,49622,49623,49624,
+49624,49625,49626,49626,49627,49627,49628,49629,49629,49630,49631,49631,49632,
+49633,49633,49634,49634,49635,49636,49636,49637,49638,49638,49639,49639,49640,
+49641,49641,49642,49643,49643,49644,49645,49645,49646,49646,49647,49648,49648,
+49649,49650,49650,49651,49652,49652,49653,49653,49654,49655,49655,49656,49657,
+49657,49658,49658,49659,49660,49660,49661,49662,49662,49663,49664,49664,49665,
+49665,49666,49667,49667,49668,49669,49669,49670,49671,49671,49672,49672,49673,
+49674,49674,49675,49676,49676,49677,49677,49678,49679,49679,49680,49681,49681,
+49682,49683,49683,49684,49684,49685,49686,49686,49687,49688,49688,49689,49690,
+49690,49691,49691,49692,49693,49693,49694,49695,49695,49696,49696,49697,49698,
+49698,49699,49700,49700,49701,49702,49702,49703,49703,49704,49705,49705,49706,
+49707,49707,49708,49709,49709,49710,49710,49711,49712,49712,49713,49714,49714,
+49715,49715,49716,49717,49717,49718,49719,49719,49720,49721,49721,49722,49722,
+49723,49724,49724,49725,49726,49726,49727,49727,49728,49729,49729,49730,49731,
+49731,49732,49733,49733,49734,49734,49735,49736,49736,49737,49738,49738,49739,
+49739,49740,49741,49741,49742,49743,49743,49744,49745,49745,49746,49746,49747,
+49748,49748,49749,49750,49750,49751,49751,49752,49753,49753,49754,49755,49755,
+49756,49757,49757,49758,49758,49759,49760,49760,49761,49762,49762,49763,49763,
+49764,49765,49765,49766,49767,49767,49768,49769,49769,49770,49770,49771,49772,
+49772,49773,49774,49774,49775,49775,49776,49777,49777,49778,49779,49779,49780,
+49781,49781,49782,49782,49783,49784,49784,49785,49786,49786,49787,49787,49788,
+49789,49789,49790,49791,49791,49792,49793,49793,49794,49794,49795,49796,49796,
+49797,49798,49798,49799,49799,49800,49801,49801,49802,49803,49803,49804,49805,
+49805,49806,49806,49807,49808,49808,49809,49810,49810,49811,49811,49812,49813,
+49813,49814,49815,49815,49816,49817,49817,49818,49818,49819,49820,49820,49821,
+49822,49822,49823,49823,49824,49825,49825,49826,49827,49827,49828,49828,49829,
+49830,49830,49831,49832,49832,49833,49834,49834,49835,49835,49836,49837,49837,
+49838,49839,49839,49840,49840,49841,49842,49842,49843,49844,49844,49845,49846,
+49846,49847,49847,49848,49849,49849,49850,49851,49851,49852,49852,49853,49854,
+49854,49855,49856,49856,49857,49857,49858,49859,49859,49860,49861,49861,49862,
+49863,49863,49864,49864,49865,49866,49866,49867,49868,49868,49869,49869,49870,
+49871,49871,49872,49873,49873,49874,49875,49875,49876,49876,49877,49878,49878,
+49879,49880,49880,49881,49881,49882,49883,49883,49884,49885,49885,49886,49886,
+49887,49888,49888,49889,49890,49890,49891,49892,49892,49893,49893,49894,49895,
+49895,49896,49897,49897,49898,49898,49899,49900,49900,49901,49902,49902,49903,
+49903,49904,49905,49905,49906,49907,49907,49908,49908,49909,49910,49910,49911,
+49912,49912,49913,49914,49914,49915,49915,49916,49917,49917,49918,49919,49919,
+49920,49920,49921,49922,49922,49923,49924,49924,49925,49925,49926,49927,49927,
+49928,49929,49929,49930,49931,49931,49932,49932,49933,49934,49934,49935,49936,
+49936,49937,49937,49938,49939,49939,49940,49941,49941,49942,49942,49943,49944,
+49944,49945,49946,49946,49947,49947,49948,49949,49949,49950,49951,49951,49952,
+49953,49953,49954,49954,49955,49956,49956,49957,49958,49958,49959,49959,49960,
+49961,49961,49962,49963,49963,49964,49964,49965,49966,49966,49967,49968,49968,
+49969,49969,49970,49971,49971,49972,49973,49973,49974,49975,49975,49976,49976,
+49977,49978,49978,49979,49980,49980,49981,49981,49982,49983,49983,49984,49985,
+49985,49986,49986,49987,49988,49988,49989,49990,49990,49991,49991,49992,49993,
+49993,49994,49995,49995,49996,49996,49997,49998,49998,49999,50000,50000,50001,
+50002,50002,50003,50003,50004,50005,50005,50006,50007,50007,50008,50008,50009,
+50010,50010,50011,50012,50012,50013,50013,50014,50015,50015,50016,50017,50017,
+50018,50018,50019,50020,50020,50021,50022,50022,50023,50023,50024,50025,50025,
+50026,50027,50027,50028,50028,50029,50030,50030,50031,50032,50032,50033,50034,
+50034,50035,50035,50036,50037,50037,50038,50039,50039,50040,50040,50041,50042,
+50042,50043,50044,50044,50045,50045,50046,50047,50047,50048,50049,50049,50050,
+50050,50051,50052,50052,50053,50054,50054,50055,50055,50056,50057,50057,50058,
+50059,50059,50060,50060,50061,50062,50062,50063,50064,50064,50065,50065,50066,
+50067,50067,50068,50069,50069,50070,50070,50071,50072,50072,50073,50074,50074,
+50075,50076,50076,50077,50077,50078,50079,50079,50080,50081,50081,50082,50082,
+50083,50084,50084,50085,50086,50086,50087,50087,50088,50089,50089,50090,50091,
+50091,50092,50092,50093,50094,50094,50095,50096,50096,50097,50097,50098,50099,
+50099,50100,50101,50101,50102,50102,50103,50104,50104,50105,50106,50106,50107,
+50107,50108,50109,50109,50110,50111,50111,50112,50112,50113,50114,50114,50115,
+50116,50116,50117,50117,50118,50119,50119,50120,50121,50121,50122,50122,50123,
+50124,50124,50125,50126,50126,50127,50127,50128,50129,50129,50130,50131,50131,
+50132,50132,50133,50134,50134,50135,50136,50136,50137,50137,50138,50139,50139,
+50140,50141,50141,50142,50142,50143,50144,50144,50145,50146,50146,50147,50147,
+50148,50149,50149,50150,50151,50151,50152,50152,50153,50154,50154,50155,50156,
+50156,50157,50157,50158,50159,50159,50160,50161,50161,50162,50162,50163,50164,
+50164,50165,50166,50166,50167,50167,50168,50169,50169,50170,50171,50171,50172,
+50172,50173,50174,50174,50175,50176,50176,50177,50177,50178,50179,50179,50180,
+50181,50181,50182,50182,50183,50184,50184,50185,50186,50186,50187,50187,50188,
+50189,50189,50190,50191,50191,50192,50192,50193,50194,50194,50195,50196,50196,
+50197,50197,50198,50199,50199,50200,50201,50201,50202,50202,50203,50204,50204,
+50205,50206,50206,50207,50207,50208,50209,50209,50210,50211,50211,50212,50212,
+50213,50214,50214,50215,50216,50216,50217,50217,50218,50219,50219,50220,50221,
+50221,50222,50222,50223,50224,50224,50225,50226,50226,50227,50227,50228,50229,
+50229,50230,50231,50231,50232,50232,50233,50234,50234,50235,50236,50236,50237,
+50237,50238,50239,50239,50240,50241,50241,50242,50242,50243,50244,50244,50245,
+50246,50246,50247,50247,50248,50249,50249,50250,50251,50251,50252,50252,50253,
+50254,50254,50255,50256,50256,50257,50257,50258,50259,50259,50260,50261,50261,
+50262,50262,50263,50264,50264,50265,50265,50266,50267,50267,50268,50269,50269,
+50270,50270,50271,50272,50272,50273,50274,50274,50275,50275,50276,50277,50277,
+50278,50279,50279,50280,50280,50281,50282,50282,50283,50284,50284,50285,50285,
+50286,50287,50287,50288,50289,50289,50290,50290,50291,50292,50292,50293,50294,
+50294,50295,50295,50296,50297,50297,50298,50299,50299,50300,50300,50301,50302,
+50302,50303,50304,50304,50305,50305,50306,50307,50307,50308,50308,50309,50310,
+50310,50311,50312,50312,50313,50313,50314,50315,50315,50316,50317,50317,50318,
+50318,50319,50320,50320,50321,50322,50322,50323,50323,50324,50325,50325,50326,
+50327,50327,50328,50328,50329,50330,50330,50331,50332,50332,50333,50333,50334,
+50335,50335,50336,50337,50337,50338,50338,50339,50340,50340,50341,50341,50342,
+50343,50343,50344,50345,50345,50346,50346,50347,50348,50348,50349,50350,50350,
+50351,50351,50352,50353,50353,50354,50355,50355,50356,50356,50357,50358,50358,
+50359,50360,50360,50361,50361,50362,50363,50363,50364,50364,50365,50366,50366,
+50367,50368,50368,50369,50369,50370,50371,50371,50372,50373,50373,50374,50374,
+50375,50376,50376,50377,50378,50378,50379,50379,50380,50381,50381,50382,50383,
+50383,50384,50384,50385,50386,50386,50387,50387,50388,50389,50389,50390,50391,
+50391,50392,50392,50393,50394,50394,50395,50396,50396,50397,50397,50398,50399,
+50399,50400,50401,50401,50402,50402,50403,50404,50404,50405,50406,50406,50407,
+50407,50408,50409,50409,50410,50410,50411,50412,50412,50413,50414,50414,50415,
+50415,50416,50417,50417,50418,50419,50419,50420,50420,50421,50422,50422,50423,
+50424,50424,50425,50425,50426,50427,50427,50428,50428,50429,50430,50430,50431,
+50432,50432,50433,50433,50434,50435,50435,50436,50437,50437,50438,50438,50439,
+50440,50440,50441,50442,50442,50443,50443,50444,50445,50445,50446,50446,50447,
+50448,50448,50449,50450,50450,50451,50451,50452,50453,50453,50454,50455,50455,
+50456,50456,50457,50458,50458,50459,50460,50460,50461,50461,50462,50463,50463,
+50464,50464,50465,50466,50466,50467,50468,50468,50469,50469,50470,50471,50471,
+50472,50473,50473,50474,50474,50475,50476,50476,50477,50477,50478,50479,50479,
+50480,50481,50481,50482,50482,50483,50484,50484,50485,50486,50486,50487,50487,
+50488,50489,50489,50490,50491,50491,50492,50492,50493,50494,50494,50495,50495,
+50496,50497,50497,50498,50499,50499,50500,50500,50501,50502,50502,50503,50504,
+50504,50505,50505,50506,50507,50507,50508,50508,50509,50510,50510,50511,50512,
+50512,50513,50513,50514,50515,50515,50516,50517,50517,50518,50518,50519,50520,
+50520,50521,50521,50522,50523,50523,50524,50525,50525,50526,50526,50527,50528,
+50528,50529,50530,50530,50531,50531,50532,50533,50533,50534,50534,50535,50536,
+50536,50537,50538,50538,50539,50539,50540,50541,50541,50542,50543,50543,50544,
+50544,50545,50546,50546,50547,50547,50548,50549,50549,50550,50551,50551,50552,
+50552,50553,50554,50554,50555,50556,50556,50557,50557,50558,50559,50559,50560,
+50560,50561,50562,50562,50563,50564,50564,50565,50565,50566,50567,50567,50568,
+50569,50569,50570,50570,50571,50572,50572,50573,50573,50574,50575,50575,50576,
+50577,50577,50578,50578,50579,50580,50580,50581,50582,50582,50583,50583,50584,
+50585,50585,50586,50586,50587,50588,50588,50589,50590,50590,50591,50591,50592,
+50593,50593,50594,50595,50595,50596,50596,50597,50598,50598,50599,50599,50600,
+50601,50601,50602,50603,50603,50604,50604,50605,50606,50606,50607,50607,50608,
+50609,50609,50610,50611,50611,50612,50612,50613,50614,50614,50615,50616,50616,
+50617,50617,50618,50619,50619,50620,50620,50621,50622,50622,50623,50624,50624,
+50625,50625,50626,50627,50627,50628,50628,50629,50630,50630,50631,50632,50632,
+50633,50633,50634,50635,50635,50636,50637,50637,50638,50638,50639,50640,50640,
+50641,50641,50642,50643,50643,50644,50645,50645,50646,50646,50647,50648,50648,
+50649,50649,50650,50651,50651,50652,50653,50653,50654,50654,50655,50656,50656,
+50657,50657,50658,50659,50659,50660,50661,50661,50662,50662,50663,50664,50664,
+50665,50666,50666,50667,50667,50668,50669,50669,50670,50670,50671,50672,50672,
+50673,50674,50674,50675,50675,50676,50677,50677,50678,50678,50679,50680,50680,
+50681,50682,50682,50683,50683,50684,50685,50685,50686,50686,50687,50688,50688,
+50689,50690,50690,50691,50691,50692,50693,50693,50694,50695,50695,50696,50696,
+50697,50698,50698,50699,50699,50700,50701,50701,50702,50703,50703,50704,50704,
+50705,50706,50706,50707,50707,50708,50709,50709,50710,50711,50711,50712,50712,
+50713,50714,50714,50715,50715,50716,50717,50717,50718,50719,50719,50720,50720,
+50721,50722,50722,50723,50723,50724,50725,50725,50726,50727,50727,50728,50728,
+50729,50730,50730,50731,50731,50732,50733,50733,50734,50735,50735,50736,50736,
+50737,50738,50738,50739,50739,50740,50741,50741,50742,50743,50743,50744,50744,
+50745,50746,50746,50747,50747,50748,50749,50749,50750,50751,50751,50752,50752,
+50753,50754,50754,50755,50755,50756,50757,50757,50758,50759,50759,50760,50760,
+50761,50762,50762,50763,50763,50764,50765,50765,50766,50767,50767,50768,50768,
+50769,50770,50770,50771,50771,50772,50773,50773,50774,50775,50775,50776,50776,
+50777,50778,50778,50779,50779,50780,50781,50781,50782,50783,50783,50784,50784,
+50785,50786,50786,50787,50787,50788,50789,50789,50790,50791,50791,50792,50792,
+50793,50794,50794,50795,50795,50796,50797,50797,50798,50799,50799,50800,50800,
+50801,50802,50802,50803,50803,50804,50805,50805,50806,50807,50807,50808,50808,
+50809,50810,50810,50811,50811,50812,50813,50813,50814,50815,50815,50816,50816,
+50817,50818,50818,50819,50819,50820,50821,50821,50822,50823,50823,50824,50824,
+50825,50826,50826,50827,50827,50828,50829,50829,50830,50831,50831,50832,50832,
+50833,50834,50834,50835,50835,50836,50837,50837,50838,50839,50839,50840,50840,
+50841,50842,50842,50843,50843,50844,50845,50845,50846,50846,50847,50848,50848,
+50849,50850,50850,50851,50851,50852,50853,50853,50854,50854,50855,50856,50856,
+50857,50858,50858,50859,50859,50860,50861,50861,50862,50862,50863,50864,50864,
+50865,50866,50866,50867,50867,50868,50869,50869,50870,50870,50871,50872,50872,
+50873,50874,50874,50875,50875,50876,50877,50877,50878,50878,50879,50880,50880,
+50881,50881,50882,50883,50883,50884,50885,50885,50886,50886,50887,50888,50888,
+50889,50889,50890,50891,50891,50892,50893,50893,50894,50894,50895,50896,50896,
+50897,50897,50898,50899,50899,50900,50900,50901,50902,50902,50903,50904,50904,
+50905,50905,50906,50907,50907,50908,50908,50909,50910,50910,50911,50912,50912,
+50913,50913,50914,50915,50915,50916,50916,50917,50918,50918,50919,50920,50920,
+50921,50921,50922,50923,50923,50924,50924,50925,50926,50926,50927,50927,50928,
+50929,50929,50930,50931,50931,50932,50932,50933,50934,50934,50935,50935,50936,
+50937,50937,50938,50939,50939,50940,50940,50941,50942,50942,50943,50943,50944,
+50945,50945,50946,50946,50947,50948,50948,50949,50950,50950,50951,50951,50952,
+50953,50953,50954,50954,50955,50956,50956,50957,50957,50958,50959,50959,50960,
+50961,50961,50962,50962,50963,50964,50964,50965,50965,50966,50967,50967,50968,
+50969,50969,50970,50970,50971,50972,50972,50973,50973,50974,50975,50975,50976,
+50976,50977,50978,50978,50979,50980,50980,50981,50981,50982,50983,50983,50984,
+50984,50985,50986,50986,50987,50987,50988,50989,50989,50990,50991,50991,50992,
+50992,50993,50994,50994,50995,50995,50996,50997,50997,50998,50998,50999,51000,
+51000,51001,51002,51002,51003,51003,51004,51005,51005,51006,51006,51007,51008,
+51008,51009,51010,51010,51011,51011,51012,51013,51013,51014,51014,51015,51016,
+51016,51017,51017,51018,51019,51019,51020,51021,51021,51022,51022,51023,51024,
+51024,51025,51025,51026,51027,51027,51028,51028,51029,51030,51030,51031,51032,
+51032,51033,51033,51034,51035,51035,51036,51036,51037,51038,51038,51039,51039,
+51040,51041,51041,51042,51043,51043,51044,51044,51045,51046,51046,51047,51047,
+51048,51049,51049,51050,51050,51051,51052,51052,51053,51054,51054,51055,51055,
+51056,51057,51057,51058,51058,51059,51060,51060,51061,51061,51062,51063,51063,
+51064,51065,51065,51066,51066,51067,51068,51068,51069,51069,51070,51071,51071,
+51072,51072,51073,51074,51074,51075,51075,51076,51077,51077,51078,51079,51079,
+51080,51080,51081,51082,51082,51083,51083,51084,51085,51085,51086,51086,51087,
+51088,51088,51089,51090,51090,51091,51091,51092,51093,51093,51094,51094,51095,
+51096,51096,51097,51097,51098,51099,51099,51100,51101,51101,51102,51102,51103,
+51104,51104,51105,51105,51106,51107,51107,51108,51108,51109,51110,51110,51111,
+51112,51112,51113,51113,51114,51115,51115,51116,51116,51117,51118,51118,51119,
+51119,51120,51121,51121,51122,51122,51123,51124,51124,51125,51126,51126,51127,
+51127,51128,51129,51129,51130,51130,51131,51132,51132,51133,51133,51134,51135,
+51135,51136,51137,51137,51138,51138,51139,51140,51140,51141,51141,51142,51143,
+51143,51144,51144,51145,51146,51146,51147,51147,51148,51149,51149,51150,51151,
+51151,51152,51152,51153,51154,51154,51155,51155,51156,51157,51157,51158,51158,
+51159,51160,51160,51161,51161,51162,51163,51163,51164,51165,51165,51166,51166,
+51167,51168,51168,51169,51169,51170,51171,51171,51172,51172,51173,51174,51174,
+51175,51175,51176,51177,51177,51178,51179,51179,51180,51180,51181,51182,51182,
+51183,51183,51184,51185,51185,51186,51186,51187,51188,51188,51189,51190,51190,
+51191,51191,51192,51193,51193,51194,51194,51195,51196,51196,51197,51197,51198,
+51199,51199,51200,51200,51201,51202,51202,51203,51203,51204,51205,51205,51206,
+51207,51207,51208,51208,51209,51210,51210,51211,51211,51212,51213,51213,51214,
+51214,51215,51216,51216,51217,51217,51218,51219,51219,51220,51221,51221,51222,
+51222,51223,51224,51224,51225,51225,51226,51227,51227,51228,51228,51229,51230,
+51230,51231,51231,51232,51233,51233,51234,51235,51235,51236,51236,51237,51238,
+51238,51239,51239,51240,51241,51241,51242,51242,51243,51244,51244,51245,51245,
+51246,51247,51247,51248,51249,51249,51250,51250,51251,51252,51252,51253,51253,
+51254,51255,51255,51256,51256,51257,51258,51258,51259,51259,51260,51261,51261,
+51262,51262,51263,51264,51264,51265,51266,51266,51267,51267,51268,51269,51269,
+51270,51270,51271,51272,51272,51273,51273,51274,51275,51275,51276,51276,51277,
+51278,51278,51279,51279,51280,51281,51281,51282,51283,51283,51284,51284,51285,
+51286,51286,51287,51287,51288,51289,51289,51290,51290,51291,51292,51292,51293,
+51293,51294,51295,51295,51296,51296,51297,51298,51298,51299,51300,51300,51301,
+51301,51302,51303,51303,51304,51304,51305,51306,51306,51307,51307,51308,51309,
+51309,51310,51310,51311,51312,51312,51313,51313,51314,51315,51315,51316,51317,
+51317,51318,51318,51319,51320,51320,51321,51321,51322,51323,51323,51324,51324,
+51325,51326,51326,51327,51327,51328,51329,51329,51330,51330,51331,51332,51332,
+51333,51334,51334,51335,51335,51336,51337,51337,51338,51338,51339,51340,51340,
+51341,51341,51342,51343,51343,51344,51344,51345,51346,51346,51347,51347,51348,
+51349,51349,51350,51350,51351,51352,51352,51353,51354,51354,51355,51355,51356,
+51357,51357,51358,51358,51359,51360,51360,51361,51361,51362,51363,51363,51364,
+51364,51365,51366,51366,51367,51367,51368,51369,51369,51370,51370,51371,51372,
+51372,51373,51374,51374,51375,51375,51376,51377,51377,51378,51378,51379,51380,
+51380,51381,51381,51382,51383,51383,51384,51384,51385,51386,51386,51387,51387,
+51388,51389,51389,51390,51390,51391,51392,51392,51393,51394,51394,51395,51395,
+51396,51397,51397,51398,51398,51399,51400,51400,51401,51401,51402,51403,51403,
+51404,51404,51405,51406,51406,51407,51407,51408,51409,51409,51410,51410,51411,
+51412,51412,51413,51413,51414,51415,51415,51416,51417,51417,51418,51418,51419,
+51420,51420,51421,51421,51422,51423,51423,51424,51424,51425,51426,51426,51427,
+51427,51428,51429,51429,51430,51430,51431,51432,51432,51433,51433,51434,51435,
+51435,51436,51436,51437,51438,51438,51439,51440,51440,51441,51441,51442,51443,
+51443,51444,51444,51445,51446,51446,51447,51447,51448,51449,51449,51450,51450,
+51451,51452,51452,51453,51453,51454,51455,51455,51456,51456,51457,51458,51458,
+51459,51459,51460,51461,51461,51462,51462,51463,51464,51464,51465,51466,51466,
+51467,51467,51468,51469,51469,51470,51470,51471,51472,51472,51473,51473,51474,
+51475,51475,51476,51476,51477,51478,51478,51479,51479,51480,51481,51481,51482,
+51482,51483,51484,51484,51485,51485,51486,51487,51487,51488,51488,51489,51490,
+51490,51491,51491,51492,51493,51493,51494,51495,51495,51496,51496,51497,51498,
+51498,51499,51499,51500,51501,51501,51502,51502,51503,51504,51504,51505,51505,
+51506,51507,51507,51508,51508,51509,51510,51510,51511,51511,51512,51513,51513,
+51514,51514,51515,51516,51516,51517,51517,51518,51519,51519,51520,51520,51521,
+51522,51522,51523,51523,51524,51525,51525,51526,51527,51527,51528,51528,51529,
+51530,51530,51531,51531,51532,51533,51533,51534,51534,51535,51536,51536,51537,
+51537,51538,51539,51539,51540,51540,51541,51542,51542,51543,51543,51544,51545,
+51545,51546,51546,51547,51548,51548,51549,51549,51550,51551,51551,51552,51552,
+51553,51554,51554,51555,51555,51556,51557,51557,51558,51558,51559,51560,51560,
+51561,51561,51562,51563,51563,51564,51565,51565,51566,51566,51567,51568,51568,
+51569,51569,51570,51571,51571,51572,51572,51573,51574,51574,51575,51575,51576,
+51577,51577,51578,51578,51579,51580,51580,51581,51581,51582,51583,51583,51584,
+51584,51585,51586,51586,51587,51587,51588,51589,51589,51590,51590,51591,51592,
+51592,51593,51593,51594,51595,51595,51596,51596,51597,51598,51598,51599,51599,
+51600,51601,51601,51602,51602,51603,51604,51604,51605,51605,51606,51607,51607,
+51608,51609,51609,51610,51610,51611,51612,51612,51613,51613,51614,51615,51615,
+51616,51616,51617,51618,51618,51619,51619,51620,51621,51621,51622,51622,51623,
+51624,51624,51625,51625,51626,51627,51627,51628,51628,51629,51630,51630,51631,
+51631,51632,51633,51633,51634,51634,51635,51636,51636,51637,51637,51638,51639,
+51639,51640,51640,51641,51642,51642,51643,51643,51644,51645,51645,51646,51646,
+51647,51648,51648,51649,51649,51650,51651,51651,51652,51652,51653,51654,51654,
+51655,51655,51656,51657,51657,51658,51658,51659,51660,51660,51661,51661,51662,
+51663,51663,51664,51664,51665,51666,51666,51667,51667,51668,51669,51669,51670,
+51670,51671,51672,51672,51673,51673,51674,51675,51675,51676,51677,51677,51678,
+51678,51679,51680,51680,51681,51681,51682,51683,51683,51684,51684,51685,51686,
+51686,51687,51687,51688,51689,51689,51690,51690,51691,51692,51692,51693,51693,
+51694,51695,51695,51696,51696,51697,51698,51698,51699,51699,51700,51701,51701,
+51702,51702,51703,51704,51704,51705,51705,51706,51707,51707,51708,51708,51709,
+51710,51710,51711,51711,51712,51713,51713,51714,51714,51715,51716,51716,51717,
+51717,51718,51719,51719,51720,51720,51721,51722,51722,51723,51723,51724,51725,
+51725,51726,51726,51727,51728,51728,51729,51729,51730,51731,51731,51732,51732,
+51733,51734,51734,51735,51735,51736,51737,51737,51738,51738,51739,51740,51740,
+51741,51741,51742,51743,51743,51744,51744,51745,51746,51746,51747,51747,51748,
+51749,51749,51750,51750,51751,51752,51752,51753,51753,51754,51755,51755,51756,
+51756,51757,51758,51758,51759,51759,51760,51761,51761,51762,51762,51763,51764,
+51764,51765,51765,51766,51767,51767,51768,51768,51769,51770,51770,51771,51771,
+51772,51773,51773,51774,51774,51775,51776,51776,51777,51777,51778,51779,51779,
+51780,51780,51781,51782,51782,51783,51783,51784,51785,51785,51786,51786,51787,
+51788,51788,51789,51789,51790,51791,51791,51792,51792,51793,51794,51794,51795,
+51795,51796,51797,51797,51798,51798,51799,51800,51800,51801,51801,51802,51803,
+51803,51804,51804,51805,51806,51806,51807,51807,51808,51809,51809,51810,51810,
+51811,51812,51812,51813,51813,51814,51815,51815,51816,51816,51817,51818,51818,
+51819,51819,51820,51821,51821,51822,51822,51823,51824,51824,51825,51825,51826,
+51827,51827,51828,51828,51829,51830,51830,51831,51831,51832,51833,51833,51834,
+51834,51835,51836,51836,51837,51837,51838,51839,51839,51840,51840,51841,51842,
+51842,51843,51843,51844,51844,51845,51846,51846,51847,51847,51848,51849,51849,
+51850,51850,51851,51852,51852,51853,51853,51854,51855,51855,51856,51856,51857,
+51858,51858,51859,51859,51860,51861,51861,51862,51862,51863,51864,51864,51865,
+51865,51866,51867,51867,51868,51868,51869,51870,51870,51871,51871,51872,51873,
+51873,51874,51874,51875,51876,51876,51877,51877,51878,51879,51879,51880,51880,
+51881,51882,51882,51883,51883,51884,51885,51885,51886,51886,51887,51888,51888,
+51889,51889,51890,51891,51891,51892,51892,51893,51894,51894,51895,51895,51896,
+51897,51897,51898,51898,51899,51900,51900,51901,51901,51902,51903,51903,51904,
+51904,51905,51906,51906,51907,51907,51908,51909,51909,51910,51910,51911,51911,
+51912,51913,51913,51914,51914,51915,51916,51916,51917,51917,51918,51919,51919,
+51920,51920,51921,51922,51922,51923,51923,51924,51925,51925,51926,51926,51927,
+51928,51928,51929,51929,51930,51931,51931,51932,51932,51933,51934,51934,51935,
+51935,51936,51937,51937,51938,51938,51939,51940,51940,51941,51941,51942,51943,
+51943,51944,51944,51945,51946,51946,51947,51947,51948,51949,51949,51950,51950,
+51951,51952,51952,51953,51953,51954,51955,51955,51956,51956,51957,51957,51958,
+51959,51959,51960,51960,51961,51962,51962,51963,51963,51964,51965,51965,51966,
+51966,51967,51968,51968,51969,51969,51970,51971,51971,51972,51972,51973,51974,
+51974,51975,51975,51976,51977,51977,51978,51978,51979,51980,51980,51981,51981,
+51982,51983,51983,51984,51984,51985,51986,51986,51987,51987,51988,51989,51989,
+51990,51990,51991,51992,51992,51993,51993,51994,51994,51995,51996,51996,51997,
+51997,51998,51999,51999,52000,52000,52001,52002,52002,52003,52003,52004,52005,
+52005,52006,52006,52007,52008,52008,52009,52009,52010,52011,52011,52012,52012,
+52013,52014,52014,52015,52015,52016,52017,52017,52018,52018,52019,52020,52020,
+52021,52021,52022,52023,52023,52024,52024,52025,52025,52026,52027,52027,52028,
+52028,52029,52030,52030,52031,52031,52032,52033,52033,52034,52034,52035,52036,
+52036,52037,52037,52038,52039,52039,52040,52040,52041,52042,52042,52043,52043,
+52044,52045,52045,52046,52046,52047,52048,52048,52049,52049,52050,52051,52051,
+52052,52052,52053,52053,52054,52055,52055,52056,52056,52057,52058,52058,52059,
+52059,52060,52061,52061,52062,52062,52063,52064,52064,52065,52065,52066,52067,
+52067,52068,52068,52069,52070,52070,52071,52071,52072,52073,52073,52074,52074,
+52075,52076,52076,52077,52077,52078,52078,52079,52080,52080,52081,52081,52082,
+52083,52083,52084,52084,52085,52086,52086,52087,52087,52088,52089,52089,52090,
+52090,52091,52092,52092,52093,52093,52094,52095,52095,52096,52096,52097,52098,
+52098,52099,52099,52100,52101,52101,52102,52102,52103,52103,52104,52105,52105,
+52106,52106,52107,52108,52108,52109,52109,52110,52111,52111,52112,52112,52113,
+52114,52114,52115,52115,52116,52117,52117,52118,52118,52119,52120,52120,52121,
+52121,52122,52123,52123,52124,52124,52125,52125,52126,52127,52127,52128,52128,
+52129,52130,52130,52131,52131,52132,52133,52133,52134,52134,52135,52136,52136,
+52137,52137,52138,52139,52139,52140,52140,52141,52142,52142,52143,52143,52144,
+52145,52145,52146,52146,52147,52147,52148,52149,52149,52150,52150,52151,52152,
+52152,52153,52153,52154,52155,52155,52156,52156,52157,52158,52158,52159,52159,
+52160,52161,52161,52162,52162,52163,52164,52164,52165,52165,52166,52166,52167,
+52168,52168,52169,52169,52170,52171,52171,52172,52172,52173,52174,52174,52175,
+52175,52176,52177,52177,52178,52178,52179,52180,52180,52181,52181,52182,52183,
+52183,52184,52184,52185,52185,52186,52187,52187,52188,52188,52189,52190,52190,
+52191,52191,52192,52193,52193,52194,52194,52195,52196,52196,52197,52197,52198,
+52199,52199,52200,52200,52201,52202,52202,52203,52203,52204,52204,52205,52206,
+52206,52207,52207,52208,52209,52209,52210,52210,52211,52212,52212,52213,52213,
+52214,52215,52215,52216,52216,52217,52218,52218,52219,52219,52220,52220,52221,
+52222,52222,52223,52223,52224,52225,52225,52226,52226,52227,52228,52228,52229,
+52229,52230,52231,52231,52232,52232,52233,52234,52234,52235,52235,52236,52236,
+52237,52238,52238,52239,52239,52240,52241,52241,52242,52242,52243,52244,52244,
+52245,52245,52246,52247,52247,52248,52248,52249,52250,52250,52251,52251,52252,
+52252,52253,52254,52254,52255,52255,52256,52257,52257,52258,52258,52259,52260,
+52260,52261,52261,52262,52263,52263,52264,52264,52265,52266,52266,52267,52267,
+52268,52268,52269,52270,52270,52271,52271,52272,52273,52273,52274,52274,52275,
+52276,52276,52277,52277,52278,52279,52279,52280,52280,52281,52282,52282,52283,
+52283,52284,52284,52285,52286,52286,52287,52287,52288,52289,52289,52290,52290,
+52291,52292,52292,52293,52293,52294,52295,52295,52296,52296,52297,52298,52298,
+52299,52299,52300,52300,52301,52302,52302,52303,52303,52304,52305,52305,52306,
+52306,52307,52308,52308,52309,52309,52310,52311,52311,52312,52312,52313,52313,
+52314,52315,52315,52316,52316,52317,52318,52318,52319,52319,52320,52321,52321,
+52322,52322,52323,52324,52324,52325,52325,52326,52327,52327,52328,52328,52329,
+52329,52330,52331,52331,52332,52332,52333,52334,52334,52335,52335,52336,52337,
+52337,52338,52338,52339,52340,52340,52341,52341,52342,52342,52343,52344,52344,
+52345,52345,52346,52347,52347,52348,52348,52349,52350,52350,52351,52351,52352,
+52353,52353,52354,52354,52355,52355,52356,52357,52357,52358,52358,52359,52360,
+52360,52361,52361,52362,52363,52363,52364,52364,52365,52366,52366,52367,52367,
+52368,52368,52369,52370,52370,52371,52371,52372,52373,52373,52374,52374,52375,
+52376,52376,52377,52377,52378,52379,52379,52380,52380,52381,52381,52382,52383,
+52383,52384,52384,52385,52386,52386,52387,52387,52388,52389,52389,52390,52390,
+52391,52392,52392,52393,52393,52394,52394,52395,52396,52396,52397,52397,52398,
+52399,52399,52400,52400,52401,52402,52402,52403,52403,52404,52405,52405,52406,
+52406,52407,52407,52408,52409,52409,52410,52410,52411,52412,52412,52413,52413,
+52414,52415,52415,52416,52416,52417,52417,52418,52419,52419,52420,52420,52421,
+52422,52422,52423,52423,52424,52425,52425,52426,52426,52427,52428,52428,52429,
+52429,52430,52430,52431,52432,52432,52433,52433,52434,52435,52435,52436,52436,
+52437,52438,52438,52439,52439,52440,52440,52441,52442,52442,52443,52443,52444,
+52445,52445,52446,52446,52447,52448,52448,52449,52449,52450,52451,52451,52452,
+52452,52453,52453,52454,52455,52455,52456,52456,52457,52458,52458,52459,52459,
+52460,52461,52461,52462,52462,52463,52463,52464,52465,52465,52466,52466,52467,
+52468,52468,52469,52469,52470,52471,52471,52472,52472,52473,52474,52474,52475,
+52475,52476,52476,52477,52478,52478,52479,52479,52480,52481,52481,52482,52482,
+52483,52484,52484,52485,52485,52486,52486,52487,52488,52488,52489,52489,52490,
+52491,52491,52492,52492,52493,52494,52494,52495,52495,52496,52496,52497,52498,
+52498,52499,52499,52500,52501,52501,52502,52502,52503,52504,52504,52505,52505,
+52506,52507,52507,52508,52508,52509,52509,52510,52511,52511,52512,52512,52513,
+52514,52514,52515,52515,52516,52517,52517,52518,52518,52519,52519,52520,52521,
+52521,52522,52522,52523,52524,52524,52525,52525,52526,52527,52527,52528,52528,
+52529,52529,52530,52531,52531,52532,52532,52533,52534,52534,52535,52535,52536,
+52537,52537,52538,52538,52539,52539,52540,52541,52541,52542,52542,52543,52544,
+52544,52545,52545,52546,52547,52547,52548,52548,52549,52549,52550,52551,52551,
+52552,52552,52553,52554,52554,52555,52555,52556,52557,52557,52558,52558,52559,
+52559,52560,52561,52561,52562,52562,52563,52564,52564,52565,52565,52566,52567,
+52567,52568,52568,52569,52569,52570,52571,52571,52572,52572,52573,52574,52574,
+52575,52575,52576,52577,52577,52578,52578,52579,52579,52580,52581,52581,52582,
+52582,52583,52584,52584,52585,52585,52586,52587,52587,52588,52588,52589,52589,
+52590,52591,52591,52592,52592,52593,52594,52594,52595,52595,52596,52596,52597,
+52598,52598,52599,52599,52600,52601,52601,52602,52602,52603,52604,52604,52605,
+52605,52606,52606,52607,52608,52608,52609,52609,52610,52611,52611,52612,52612,
+52613,52614,52614,52615,52615,52616,52616,52617,52618,52618,52619,52619,52620,
+52621,52621,52622,52622,52623,52624,52624,52625,52625,52626,52626,52627,52628,
+52628,52629,52629,52630,52631,52631,52632,52632,52633,52633,52634,52635,52635,
+52636,52636,52637,52638,52638,52639,52639,52640,52641,52641,52642,52642,52643,
+52643,52644,52645,52645,52646,52646,52647,52648,52648,52649,52649,52650,52651,
+52651,52652,52652,52653,52653,52654,52655,52655,52656,52656,52657,52658,52658,
+52659,52659,52660,52660,52661,52662,52662,52663,52663,52664,52665,52665,52666,
+52666,52667,52668,52668,52669,52669,52670,52670,52671,52672,52672,52673,52673,
+52674,52675,52675,52676,52676,52677,52677,52678,52679,52679,52680,52680,52681,
+52682,52682,52683,52683,52684,52685,52685,52686,52686,52687,52687,52688,52689,
+52689,52690,52690,52691,52692,52692,52693,52693,52694,52694,52695,52696,52696,
+52697,52697,52698,52699,52699,52700,52700,52701,52702,52702,52703,52703,52704,
+52704,52705,52706,52706,52707,52707,52708,52709,52709,52710,52710,52711,52711,
+52712,52713,52713,52714,52714,52715,52716,52716,52717,52717,52718,52719,52719,
+52720,52720,52721,52721,52722,52723,52723,52724,52724,52725,52726,52726,52727,
+52727,52728,52728,52729,52730,52730,52731,52731,52732,52733,52733,52734,52734,
+52735,52735,52736,52737,52737,52738,52738,52739,52740,52740,52741,52741,52742,
+52743,52743,52744,52744,52745,52745,52746,52747,52747,52748,52748,52749,52750,
+52750,52751,52751,52752,52752,52753,52754,52754,52755,52755,52756,52757,52757,
+52758,52758,52759,52759,52760,52761,52761,52762,52762,52763,52764,52764,52765,
+52765,52766,52767,52767,52768,52768,52769,52769,52770,52771,52771,52772,52772,
+52773,52774,52774,52775,52775,52776,52776,52777,52778,52778,52779,52779,52780,
+52781,52781,52782,52782,52783,52783,52784,52785,52785,52786,52786,52787,52788,
+52788,52789,52789,52790,52790,52791,52792,52792,52793,52793,52794,52795,52795,
+52796,52796,52797,52798,52798,52799,52799,52800,52800,52801,52802,52802,52803,
+52803,52804,52805,52805,52806,52806,52807,52807,52808,52809,52809,52810,52810,
+52811,52812,52812,52813,52813,52814,52814,52815,52816,52816,52817,52817,52818,
+52819,52819,52820,52820,52821,52821,52822,52823,52823,52824,52824,52825,52826,
+52826,52827,52827,52828,52828,52829,52830,52830,52831,52831,52832,52833,52833,
+52834,52834,52835,52835,52836,52837,52837,52838,52838,52839,52840,52840,52841,
+52841,52842,52842,52843,52844,52844,52845,52845,52846,52847,52847,52848,52848,
+52849,52849,52850,52851,52851,52852,52852,52853,52854,52854,52855,52855,52856,
+52857,52857,52858,52858,52859,52859,52860,52861,52861,52862,52862,52863,52864,
+52864,52865,52865,52866,52866,52867,52868,52868,52869,52869,52870,52871,52871,
+52872,52872,52873,52873,52874,52875,52875,52876,52876,52877,52878,52878,52879,
+52879,52880,52880,52881,52882,52882,52883,52883,52884,52885,52885,52886,52886,
+52887,52887,52888,52889,52889,52890,52890,52891,52892,52892,52893,52893,52894,
+52894,52895,52896,52896,52897,52897,52898,52899,52899,52900,52900,52901,52901,
+52902,52903,52903,52904,52904,52905,52906,52906,52907,52907,52908,52908,52909,
+52910,52910,52911,52911,52912,52913,52913,52914,52914,52915,52915,52916,52917,
+52917,52918,52918,52919,52919,52920,52921,52921,52922,52922,52923,52924,52924,
+52925,52925,52926,52926,52927,52928,52928,52929,52929,52930,52931,52931,52932,
+52932,52933,52933,52934,52935,52935,52936,52936,52937,52938,52938,52939,52939,
+52940,52940,52941,52942,52942,52943,52943,52944,52945,52945,52946,52946,52947,
+52947,52948,52949,52949,52950,52950,52951,52952,52952,52953,52953,52954,52954,
+52955,52956,52956,52957,52957,52958,52959,52959,52960,52960,52961,52961,52962,
+52963,52963,52964,52964,52965,52966,52966,52967,52967,52968,52968,52969,52970,
+52970,52971,52971,52972,52972,52973,52974,52974,52975,52975,52976,52977,52977,
+52978,52978,52979,52979,52980,52981,52981,52982,52982,52983,52984,52984,52985,
+52985,52986,52986,52987,52988,52988,52989,52989,52990,52991,52991,52992,52992,
+52993,52993,52994,52995,52995,52996,52996,52997,52998,52998,52999,52999,53000,
+53000,53001,53002,53002,53003,53003,53004,53004,53005,53006,53006,53007,53007,
+53008,53009,53009,53010,53010,53011,53011,53012,53013,53013,53014,53014,53015,
+53016,53016,53017,53017,53018,53018,53019,53020,53020,53021,53021,53022,53023,
+53023,53024,53024,53025,53025,53026,53027,53027,53028,53028,53029,53029,53030,
+53031,53031,53032,53032,53033,53034,53034,53035,53035,53036,53036,53037,53038,
+53038,53039,53039,53040,53041,53041,53042,53042,53043,53043,53044,53045,53045,
+53046,53046,53047,53048,53048,53049,53049,53050,53050,53051,53052,53052,53053,
+53053,53054,53054,53055,53056,53056,53057,53057,53058,53059,53059,53060,53060,
+53061,53061,53062,53063,53063,53064,53064,53065,53066,53066,53067,53067,53068,
+53068,53069,53070,53070,53071,53071,53072,53072,53073,53074,53074,53075,53075,
+53076,53077,53077,53078,53078,53079,53079,53080,53081,53081,53082,53082,53083,
+53084,53084,53085,53085,53086,53086,53087,53088,53088,53089,53089,53090,53090,
+53091,53092,53092,53093,53093,53094,53095,53095,53096,53096,53097,53097,53098,
+53099,53099,53100,53100,53101,53102,53102,53103,53103,53104,53104,53105,53106,
+53106,53107,53107,53108,53108,53109,53110,53110,53111,53111,53112,53113,53113,
+53114,53114,53115,53115,53116,53117,53117,53118,53118,53119,53119,53120,53121,
+53121,53122,53122,53123,53124,53124,53125,53125,53126,53126,53127,53128,53128,
+53129,53129,53130,53131,53131,53132,53132,53133,53133,53134,53135,53135,53136,
+53136,53137,53137,53138,53139,53139,53140,53140,53141,53142,53142,53143,53143,
+53144,53144,53145,53146,53146,53147,53147,53148,53148,53149,53150,53150,53151,
+53151,53152,53153,53153,53154,53154,53155,53155,53156,53157,53157,53158,53158,
+53159,53159,53160,53161,53161,53162,53162,53163,53164,53164,53165,53165,53166,
+53166,53167,53168,53168,53169,53169,53170,53170,53171,53172,53172,53173,53173,
+53174,53175,53175,53176,53176,53177,53177,53178,53179,53179,53180,53180,53181,
+53181,53182,53183,53183,53184,53184,53185,53186,53186,53187,53187,53188,53188,
+53189,53190,53190,53191,53191,53192,53192,53193,53194,53194,53195,53195,53196,
+53197,53197,53198,53198,53199,53199,53200,53201,53201,53202,53202,53203,53203,
+53204,53205,53205,53206,53206,53207,53208,53208,53209,53209,53210,53210,53211,
+53212,53212,53213,53213,53214,53214,53215,53216,53216,53217,53217,53218,53219,
+53219,53220,53220,53221,53221,53222,53223,53223,53224,53224,53225,53225,53226,
+53227,53227,53228,53228,53229,53230,53230,53231,53231,53232,53232,53233,53234,
+53234,53235,53235,53236,53236,53237,53238,53238,53239,53239,53240,53241,53241,
+53242,53242,53243,53243,53244,53245,53245,53246,53246,53247,53247,53248,53249,
+53249,53250,53250,53251,53251,53252,53253,53253,53254,53254,53255,53256,53256,
+53257,53257,53258,53258,53259,53260,53260,53261,53261,53262,53262,53263,53264,
+53264,53265,53265,53266,53267,53267,53268,53268,53269,53269,53270,53271,53271,
+53272,53272,53273,53273,53274,53275,53275,53276,53276,53277,53278,53278,53279,
+53279,53280,53280,53281,53282,53282,53283,53283,53284,53284,53285,53286,53286,
+53287,53287,53288,53288,53289,53290,53290,53291,53291,53292,53293,53293,53294,
+53294,53295,53295,53296,53297,53297,53298,53298,53299,53299,53300,53301,53301,
+53302,53302,53303,53303,53304,53305,53305,53306,53306,53307,53308,53308,53309,
+53309,53310,53310,53311,53312,53312,53313,53313,53314,53314,53315,53316,53316,
+53317,53317,53318,53318,53319,53320,53320,53321,53321,53322,53323,53323,53324,
+53324,53325,53325,53326,53327,53327,53328,53328,53329,53329,53330,53331,53331,
+53332,53332,53333,53333,53334,53335,53335,53336,53336,53337,53338,53338,53339,
+53339,53340,53340,53341,53342,53342,53343,53343,53344,53344,53345,53346,53346,
+53347,53347,53348,53348,53349,53350,53350,53351,53351,53352,53353,53353,53354,
+53354,53355,53355,53356,53357,53357,53358,53358,53359,53359,53360,53361,53361,
+53362,53362,53363,53363,53364,53365,53365,53366,53366,53367,53368,53368,53369,
+53369,53370,53370,53371,53372,53372,53373,53373,53374,53374,53375,53376,53376,
+53377,53377,53378,53378,53379,53380,53380,53381,53381,53382,53383,53383,53384,
+53384,53385,53385,53386,53387,53387,53388,53388,53389,53389,53390,53391,53391,
+53392,53392,53393,53393,53394,53395,53395,53396,53396,53397,53397,53398,53399,
+53399,53400,53400,53401,53402,53402,53403,53403,53404,53404,53405,53406,53406,
+53407,53407,53408,53408,53409,53410,53410,53411,53411,53412,53412,53413,53414,
+53414,53415,53415,53416,53416,53417,53418,53418,53419,53419,53420,53421,53421,
+53422,53422,53423,53423,53424,53425,53425,53426,53426,53427,53427,53428,53429,
+53429,53430,53430,53431,53431,53432,53433,53433,53434,53434,53435,53435,53436,
+53437,53437,53438,53438,53439,53440,53440,53441,53441,53442,53442,53443,53444,
+53444,53445,53445,53446,53446,53447,53448,53448,53449,53449,53450,53450,53451,
+53452,53452,53453,53453,53454,53454,53455,53456,53456,53457,53457,53458,53458,
+53459,53460,53460,53461,53461,53462,53463,53463,53464,53464,53465,53465,53466,
+53467,53467,53468,53468,53469,53469,53470,53471,53471,53472,53472,53473,53473,
+53474,53475,53475,53476,53476,53477,53477,53478,53479,53479,53480,53480,53481,
+53481,53482,53483,53483,53484,53484,53485,53486,53486,53487,53487,53488,53488,
+53489,53490,53490,53491,53491,53492,53492,53493,53494,53494,53495,53495,53496,
+53496,53497,53498,53498,53499,53499,53500,53500,53501,53502,53502,53503,53503,
+53504,53504,53505,53506,53506,53507,53507,53508,53508,53509,53510,53510,53511,
+53511,53512,53513,53513,53514,53514,53515,53515,53516,53517,53517,53518,53518,
+53519,53519,53520,53521,53521,53522,53522,53523,53523,53524,53525,53525,53526,
+53526,53527,53527,53528,53529,53529,53530,53530,53531,53531,53532,53533,53533,
+53534,53534,53535,53535,53536,53537,53537,53538,53538,53539,53540,53540,53541,
+53541,53542,53542,53543,53544,53544,53545,53545,53546,53546,53547,53548,53548,
+53549,53549,53550,53550,53551,53552,53552,53553,53553,53554,53554,53555,53556,
+53556,53557,53557,53558,53558,53559,53560,53560,53561,53561,53562,53562,53563,
+53564,53564,53565,53565,53566,53566,53567,53568,53568,53569,53569,53570,53570,
+53571,53572,53572,53573,53573,53574,53574,53575,53576,53576,53577,53577,53578,
+53579,53579,53580,53580,53581,53581,53582,53583,53583,53584,53584,53585,53585,
+53586,53587,53587,53588,53588,53589,53589,53590,53591,53591,53592,53592,53593,
+53593,53594,53595,53595,53596,53596,53597,53597,53598,53599,53599,53600,53600,
+53601,53601,53602,53603,53603,53604,53604,53605,53605,53606,53607,53607,53608,
+53608,53609,53609,53610,53611,53611,53612,53612,53613,53613,53614,53615,53615,
+53616,53616,53617,53617,53618,53619,53619,53620,53620,53621,53621,53622,53623,
+53623,53624,53624,53625,53626,53626,53627,53627,53628,53628,53629,53630,53630,
+53631,53631,53632,53632,53633,53634,53634,53635,53635,53636,53636,53637,53638,
+53638,53639,53639,53640,53640,53641,53642,53642,53643,53643,53644,53644,53645,
+53646,53646,53647,53647,53648,53648,53649,53650,53650,53651,53651,53652,53652,
+53653,53654,53654,53655,53655,53656,53656,53657,53658,53658,53659,53659,53660,
+53660,53661,53662,53662,53663,53663,53664,53664,53665,53666,53666,53667,53667,
+53668,53668,53669,53670,53670,53671,53671,53672,53672,53673,53674,53674,53675,
+53675,53676,53676,53677,53678,53678,53679,53679,53680,53680,53681,53682,53682,
+53683,53683,53684,53684,53685,53686,53686,53687,53687,53688,53688,53689,53690,
+53690,53691,53691,53692,53692,53693,53694,53694,53695,53695,53696,53696,53697,
+53698,53698,53699,53699,53700,53700,53701,53702,53702,53703,53703,53704,53704,
+53705,53706,53706,53707,53707,53708,53708,53709,53710,53710,53711,53711,53712,
+53712,53713,53714,53714,53715,53715,53716,53716,53717,53718,53718,53719,53719,
+53720,53720,53721,53722,53722,53723,53723,53724,53724,53725,53726,53726,53727,
+53727,53728,53728,53729,53730,53730,53731,53731,53732,53732,53733,53734,53734,
+53735,53735,53736,53736,53737,53738,53738,53739,53739,53740,53740,53741,53742,
+53742,53743,53743,53744,53744,53745,53746,53746,53747,53747,53748,53748,53749,
+53750,53750,53751,53751,53752,53752,53753,53754,53754,53755,53755,53756,53756,
+53757,53758,53758,53759,53759,53760,53760,53761,53762,53762,53763,53763,53764,
+53764,53765,53766,53766,53767,53767,53768,53768,53769,53770,53770,53771,53771,
+53772,53772,53773,53774,53774,53775,53775,53776,53776,53777,53778,53778,53779,
+53779,53780,53780,53781,53782,53782,53783,53783,53784,53784,53785,53786,53786,
+53787,53787,53788,53788,53789,53790,53790,53791,53791,53792,53792,53793,53794,
+53794,53795,53795,53796,53796,53797,53798,53798,53799,53799,53800,53800,53801,
+53802,53802,53803,53803,53804,53804,53805,53806,53806,53807,53807,53808,53808,
+53809,53810,53810,53811,53811,53812,53812,53813,53814,53814,53815,53815,53816,
+53816,53817,53818,53818,53819,53819,53820,53820,53821,53821,53822,53823,53823,
+53824,53824,53825,53825,53826,53827,53827,53828,53828,53829,53829,53830,53831,
+53831,53832,53832,53833,53833,53834,53835,53835,53836,53836,53837,53837,53838,
+53839,53839,53840,53840,53841,53841,53842,53843,53843,53844,53844,53845,53845,
+53846,53847,53847,53848,53848,53849,53849,53850,53851,53851,53852,53852,53853,
+53853,53854,53855,53855,53856,53856,53857,53857,53858,53859,53859,53860,53860,
+53861,53861,53862,53863,53863,53864,53864,53865,53865,53866,53867,53867,53868,
+53868,53869,53869,53870,53870,53871,53872,53872,53873,53873,53874,53874,53875,
+53876,53876,53877,53877,53878,53878,53879,53880,53880,53881,53881,53882,53882,
+53883,53884,53884,53885,53885,53886,53886,53887,53888,53888,53889,53889,53890,
+53890,53891,53892,53892,53893,53893,53894,53894,53895,53896,53896,53897,53897,
+53898,53898,53899,53900,53900,53901,53901,53902,53902,53903,53904,53904,53905,
+53905,53906,53906,53907,53907,53908,53909,53909,53910,53910,53911,53911,53912,
+53913,53913,53914,53914,53915,53915,53916,53917,53917,53918,53918,53919,53919,
+53920,53921,53921,53922,53922,53923,53923,53924,53925,53925,53926,53926,53927,
+53927,53928,53929,53929,53930,53930,53931,53931,53932,53933,53933,53934,53934,
+53935,53935,53936,53936,53937,53938,53938,53939,53939,53940,53940,53941,53942,
+53942,53943,53943,53944,53944,53945,53946,53946,53947,53947,53948,53948,53949,
+53950,53950,53951,53951,53952,53952,53953,53954,53954,53955,53955,53956,53956,
+53957,53958,53958,53959,53959,53960,53960,53961,53961,53962,53963,53963,53964,
+53964,53965,53965,53966,53967,53967,53968,53968,53969,53969,53970,53971,53971,
+53972,53972,53973,53973,53974,53975,53975,53976,53976,53977,53977,53978,53979,
+53979,53980,53980,53981,53981,53982,53983,53983,53984,53984,53985,53985,53986,
+53986,53987,53988,53988,53989,53989,53990,53990,53991,53992,53992,53993,53993,
+53994,53994,53995,53996,53996,53997,53997,53998,53998,53999,54000,54000,54001,
+54001,54002,54002,54003,54004,54004,54005,54005,54006,54006,54007,54007,54008,
+54009,54009,54010,54010,54011,54011,54012,54013,54013,54014,54014,54015,54015,
+54016,54017,54017,54018,54018,54019,54019,54020,54021,54021,54022,54022,54023,
+54023,54024,54024,54025,54026,54026,54027,54027,54028,54028,54029,54030,54030,
+54031,54031,54032,54032,54033,54034,54034,54035,54035,54036,54036,54037,54038,
+54038,54039,54039,54040,54040,54041,54042,54042,54043,54043,54044,54044,54045,
+54045,54046,54047,54047,54048,54048,54049,54049,54050,54051,54051,54052,54052,
+54053,54053,54054,54055,54055,54056,54056,54057,54057,54058,54059,54059,54060,
+54060,54061,54061,54062,54062,54063,54064,54064,54065,54065,54066,54066,54067,
+54068,54068,54069,54069,54070,54070,54071,54072,54072,54073,54073,54074,54074,
+54075,54076,54076,54077,54077,54078,54078,54079,54079,54080,54081,54081,54082,
+54082,54083,54083,54084,54085,54085,54086,54086,54087,54087,54088,54089,54089,
+54090,54090,54091,54091,54092,54093,54093,54094,54094,54095,54095,54096,54096,
+54097,54098,54098,54099,54099,54100,54100,54101,54102,54102,54103,54103,54104,
+54104,54105,54106,54106,54107,54107,54108,54108,54109,54109,54110,54111,54111,
+54112,54112,54113,54113,54114,54115,54115,54116,54116,54117,54117,54118,54119,
+54119,54120,54120,54121,54121,54122,54123,54123,54124,54124,54125,54125,54126,
+54126,54127,54128,54128,54129,54129,54130,54130,54131,54132,54132,54133,54133,
+54134,54134,54135,54136,54136,54137,54137,54138,54138,54139,54139,54140,54141,
+54141,54142,54142,54143,54143,54144,54145,54145,54146,54146,54147,54147,54148,
+54149,54149,54150,54150,54151,54151,54152,54152,54153,54154,54154,54155,54155,
+54156,54156,54157,54158,54158,54159,54159,54160,54160,54161,54162,54162,54163,
+54163,54164,54164,54165,54165,54166,54167,54167,54168,54168,54169,54169,54170,
+54171,54171,54172,54172,54173,54173,54174,54175,54175,54176,54176,54177,54177,
+54178,54178,54179,54180,54180,54181,54181,54182,54182,54183,54184,54184,54185,
+54185,54186,54186,54187,54188,54188,54189,54189,54190,54190,54191,54191,54192,
+54193,54193,54194,54194,54195,54195,54196,54197,54197,54198,54198,54199,54199,
+54200,54201,54201,54202,54202,54203,54203,54204,54204,54205,54206,54206,54207,
+54207,54208,54208,54209,54210,54210,54211,54211,54212,54212,54213,54214,54214,
+54215,54215,54216,54216,54217,54217,54218,54219,54219,54220,54220,54221,54221,
+54222,54223,54223,54224,54224,54225,54225,54226,54227,54227,54228,54228,54229,
+54229,54230,54230,54231,54232,54232,54233,54233,54234,54234,54235,54236,54236,
+54237,54237,54238,54238,54239,54239,54240,54241,54241,54242,54242,54243,54243,
+54244,54245,54245,54246,54246,54247,54247,54248,54249,54249,54250,54250,54251,
+54251,54252,54252,54253,54254,54254,54255,54255,54256,54256,54257,54258,54258,
+54259,54259,54260,54260,54261,54261,54262,54263,54263,54264,54264,54265,54265,
+54266,54267,54267,54268,54268,54269,54269,54270,54271,54271,54272,54272,54273,
+54273,54274,54274,54275,54276,54276,54277,54277,54278,54278,54279,54280,54280,
+54281,54281,54282,54282,54283,54283,54284,54285,54285,54286,54286,54287,54287,
+54288,54289,54289,54290,54290,54291,54291,54292,54292,54293,54294,54294,54295,
+54295,54296,54296,54297,54298,54298,54299,54299,54300,54300,54301,54302,54302,
+54303,54303,54304,54304,54305,54305,54306,54307,54307,54308,54308,54309,54309,
+54310,54311,54311,54312,54312,54313,54313,54314,54314,54315,54316,54316,54317,
+54317,54318,54318,54319,54320,54320,54321,54321,54322,54322,54323,54323,54324,
+54325,54325,54326,54326,54327,54327,54328,54329,54329,54330,54330,54331,54331,
+54332,54332,54333,54334,54334,54335,54335,54336,54336,54337,54338,54338,54339,
+54339,54340,54340,54341,54341,54342,54343,54343,54344,54344,54345,54345,54346,
+54347,54347,54348,54348,54349,54349,54350,54350,54351,54352,54352,54353,54353,
+54354,54354,54355,54356,54356,54357,54357,54358,54358,54359,54360,54360,54361,
+54361,54362,54362,54363,54363,54364,54365,54365,54366,54366,54367,54367,54368,
+54369,54369,54370,54370,54371,54371,54372,54372,54373,54374,54374,54375,54375,
+54376,54376,54377,54378,54378,54379,54379,54380,54380,54381,54381,54382,54383,
+54383,54384,54384,54385,54385,54386,54386,54387,54388,54388,54389,54389,54390,
+54390,54391,54392,54392,54393,54393,54394,54394,54395,54395,54396,54397,54397,
+54398,54398,54399,54399,54400,54401,54401,54402,54402,54403,54403,54404,54404,
+54405,54406,54406,54407,54407,54408,54408,54409,54410,54410,54411,54411,54412,
+54412,54413,54413,54414,54415,54415,54416,54416,54417,54417,54418,54419,54419,
+54420,54420,54421,54421,54422,54422,54423,54424,54424,54425,54425,54426,54426,
+54427,54428,54428,54429,54429,54430,54430,54431,54431,54432,54433,54433,54434,
+54434,54435,54435,54436,54437,54437,54438,54438,54439,54439,54440,54440,54441,
+54442,54442,54443,54443,54444,54444,54445,54445,54446,54447,54447,54448,54448,
+54449,54449,54450,54451,54451,54452,54452,54453,54453,54454,54454,54455,54456,
+54456,54457,54457,54458,54458,54459,54460,54460,54461,54461,54462,54462,54463,
+54463,54464,54465,54465,54466,54466,54467,54467,54468,54469,54469,54470,54470,
+54471,54471,54472,54472,54473,54474,54474,54475,54475,54476,54476,54477,54477,
+54478,54479,54479,54480,54480,54481,54481,54482,54483,54483,54484,54484,54485,
+54485,54486,54486,54487,54488,54488,54489,54489,54490,54490,54491,54492,54492,
+54493,54493,54494,54494,54495,54495,54496,54497,54497,54498,54498,54499,54499,
+54500,54500,54501,54502,54502,54503,54503,54504,54504,54505,54506,54506,54507,
+54507,54508,54508,54509,54509,54510,54511,54511,54512,54512,54513,54513,54514,
+54514,54515,54516,54516,54517,54517,54518,54518,54519,54520,54520,54521,54521,
+54522,54522,54523,54523,54524,54525,54525,54526,54526,54527,54527,54528,54529,
+54529,54530,54530,54531,54531,54532,54532,54533,54534,54534,54535,54535,54536,
+54536,54537,54537,54538,54539,54539,54540,54540,54541,54541,54542,54543,54543,
+54544,54544,54545,54545,54546,54546,54547,54548,54548,54549,54549,54550,54550,
+54551,54551,54552,54553,54553,54554,54554,54555,54555,54556,54557,54557,54558,
+54558,54559,54559,54560,54560,54561,54562,54562,54563,54563,54564,54564,54565,
+54565,54566,54567,54567,54568,54568,54569,54569,54570,54571,54571,54572,54572,
+54573,54573,54574,54574,54575,54576,54576,54577,54577,54578,54578,54579,54579,
+54580,54581,54581,54582,54582,54583,54583,54584,54585,54585,54586,54586,54587,
+54587,54588,54588,54589,54590,54590,54591,54591,54592,54592,54593,54593,54594,
+54595,54595,54596,54596,54597,54597,54598,54598,54599,54600,54600,54601,54601,
+54602,54602,54603,54604,54604,54605,54605,54606,54606,54607,54607,54608,54609,
+54609,54610,54610,54611,54611,54612,54612,54613,54614,54614,54615,54615,54616,
+54616,54617,54618,54618,54619,54619,54620,54620,54621,54621,54622,54623,54623,
+54624,54624,54625,54625,54626,54626,54627,54628,54628,54629,54629,54630,54630,
+54631,54631,54632,54633,54633,54634,54634,54635,54635,54636,54637,54637,54638,
+54638,54639,54639,54640,54640,54641,54642,54642,54643,54643,54644,54644,54645,
+54645,54646,54647,54647,54648,54648,54649,54649,54650,54650,54651,54652,54652,
+54653,54653,54654,54654,54655,54656,54656,54657,54657,54658,54658,54659,54659,
+54660,54661,54661,54662,54662,54663,54663,54664,54664,54665,54666,54666,54667,
+54667,54668,54668,54669,54669,54670,54671,54671,54672,54672,54673,54673,54674,
+54675,54675,54676,54676,54677,54677,54678,54678,54679,54680,54680,54681,54681,
+54682,54682,54683,54683,54684,54685,54685,54686,54686,54687,54687,54688,54688,
+54689,54690,54690,54691,54691,54692,54692,54693,54693,54694,54695,54695,54696,
+54696,54697,54697,54698,54699,54699,54700,54700,54701,54701,54702,54702,54703,
+54704,54704,54705,54705,54706,54706,54707,54707,54708,54709,54709,54710,54710,
+54711,54711,54712,54712,54713,54714,54714,54715,54715,54716,54716,54717,54717,
+54718,54719,54719,54720,54720,54721,54721,54722,54723,54723,54724,54724,54725,
+54725,54726,54726,54727,54728,54728,54729,54729,54730,54730,54731,54731,54732,
+54733,54733,54734,54734,54735,54735,54736,54736,54737,54738,54738,54739,54739,
+54740,54740,54741,54741,54742,54743,54743,54744,54744,54745,54745,54746,54746,
+54747,54748,54748,54749,54749,54750,54750,54751,54751,54752,54753,54753,54754,
+54754,54755,54755,54756,54757,54757,54758,54758,54759,54759,54760,54760,54761,
+54762,54762,54763,54763,54764,54764,54765,54765,54766,54767,54767,54768,54768,
+54769,54769,54770,54770,54771,54772,54772,54773,54773,54774,54774,54775,54775,
+54776,54777,54777,54778,54778,54779,54779,54780,54780,54781,54782,54782,54783,
+54783,54784,54784,54785,54785,54786,54787,54787,54788,54788,54789,54789,54790,
+54790,54791,54792,54792,54793,54793,54794,54794,54795,54796,54796,54797,54797,
+54798,54798,54799,54799,54800,54801,54801,54802,54802,54803,54803,54804,54804,
+54805,54806,54806,54807,54807,54808,54808,54809,54809,54810,54811,54811,54812,
+54812,54813,54813,54814,54814,54815,54816,54816,54817,54817,54818,54818,54819,
+54819,54820,54821,54821,54822,54822,54823,54823,54824,54824,54825,54826,54826,
+54827,54827,54828,54828,54829,54829,54830,54831,54831,54832,54832,54833,54833,
+54834,54834,54835,54836,54836,54837,54837,54838,54838,54839,54839,54840,54841,
+54841,54842,54842,54843,54843,54844,54844,54845,54846,54846,54847,54847,54848,
+54848,54849,54849,54850,54851,54851,54852,54852,54853,54853,54854,54854,54855,
+54856,54856,54857,54857,54858,54858,54859,54859,54860,54861,54861,54862,54862,
+54863,54863,54864,54864,54865,54866,54866,54867,54867,54868,54868,54869,54869,
+54870,54871,54871,54872,54872,54873,54873,54874,54874,54875,54876,54876,54877,
+54877,54878,54878,54879,54879,54880,54881,54881,54882,54882,54883,54883,54884,
+54884,54885,54886,54886,54887,54887,54888,54888,54889,54889,54890,54891,54891,
+54892,54892,54893,54893,54894,54894,54895,54896,54896,54897,54897,54898,54898,
+54899,54899,54900,54901,54901,54902,54902,54903,54903,54904,54904,54905,54906,
+54906,54907,54907,54908,54908,54909,54909,54910,54911,54911,54912,54912,54913,
+54913,54914,54914,54915,54916,54916,54917,54917,54918,54918,54919,54919,54920,
+54921,54921,54922,54922,54923,54923,54924,54924,54925,54926,54926,54927,54927,
+54928,54928,54929,54929,54930,54931,54931,54932,54932,54933,54933,54934,54934,
+54935,54936,54936,54937,54937,54938,54938,54939,54939,54940,54941,54941,54942,
+54942,54943,54943,54944,54944,54945,54946,54946,54947,54947,54948,54948,54949,
+54949,54950,54951,54951,54952,54952,54953,54953,54954,54954,54955,54956,54956,
+54957,54957,54958,54958,54959,54959,54960,54961,54961,54962,54962,54963,54963,
+54964,54964,54965,54966,54966,54967,54967,54968,54968,54969,54969,54970,54971,
+54971,54972,54972,54973,54973,54974,54974,54975,54976,54976,54977,54977,54978,
+54978,54979,54979,54980,54980,54981,54982,54982,54983,54983,54984,54984,54985,
+54985,54986,54987,54987,54988,54988,54989,54989,54990,54990,54991,54992,54992,
+54993,54993,54994,54994,54995,54995,54996,54997,54997,54998,54998,54999,54999,
+55000,55000,55001,55002,55002,55003,55003,55004,55004,55005,55005,55006,55007,
+55007,55008,55008,55009,55009,55010,55010,55011,55012,55012,55013,55013,55014,
+55014,55015,55015,55016,55017,55017,55018,55018,55019,55019,55020,55020,55021,
+55021,55022,55023,55023,55024,55024,55025,55025,55026,55026,55027,55028,55028,
+55029,55029,55030,55030,55031,55031,55032,55033,55033,55034,55034,55035,55035,
+55036,55036,55037,55038,55038,55039,55039,55040,55040,55041,55041,55042,55043,
+55043,55044,55044,55045,55045,55046,55046,55047,55048,55048,55049,55049,55050,
+55050,55051,55051,55052,55052,55053,55054,55054,55055,55055,55056,55056,55057,
+55057,55058,55059,55059,55060,55060,55061,55061,55062,55062,55063,55064,55064,
+55065,55065,55066,55066,55067,55067,55068,55069,55069,55070,55070,55071,55071,
+55072,55072,55073,55074,55074,55075,55075,55076,55076,55077,55077,55078,55078,
+55079,55080,55080,55081,55081,55082,55082,55083,55083,55084,55085,55085,55086,
+55086,55087,55087,55088,55088,55089,55090,55090,55091,55091,55092,55092,55093,
+55093,55094,55095,55095,55096,55096,55097,55097,55098,55098,55099,55100,55100,
+55101,55101,55102,55102,55103,55103,55104,55104,55105,55106,55106,55107,55107,
+55108,55108,55109,55109,55110,55111,55111,55112,55112,55113,55113,55114,55114,
+55115,55116,55116,55117,55117,55118,55118,55119,55119,55120,55121,55121,55122,
+55122,55123,55123,55124,55124,55125,55125,55126,55127,55127,55128,55128,55129,
+55129,55130,55130,55131,55132,55132,55133,55133,55134,55134,55135,55135,55136,
+55137,55137,55138,55138,55139,55139,55140,55140,55141,55141,55142,55143,55143,
+55144,55144,55145,55145,55146,55146,55147,55148,55148,55149,55149,55150,55150,
+55151,55151,55152,55153,55153,55154,55154,55155,55155,55156,55156,55157,55158,
+55158,55159,55159,55160,55160,55161,55161,55162,55162,55163,55164,55164,55165,
+55165,55166,55166,55167,55167,55168,55169,55169,55170,55170,55171,55171,55172,
+55172,55173,55174,55174,55175,55175,55176,55176,55177,55177,55178,55178,55179,
+55180,55180,55181,55181,55182,55182,55183,55183,55184,55185,55185,55186,55186,
+55187,55187,55188,55188,55189,55190,55190,55191,55191,55192,55192,55193,55193,
+55194,55194,55195,55196,55196,55197,55197,55198,55198,55199,55199,55200,55201,
+55201,55202,55202,55203,55203,55204,55204,55205,55205,55206,55207,55207,55208,
+55208,55209,55209,55210,55210,55211,55212,55212,55213,55213,55214,55214,55215,
+55215,55216,55217,55217,55218,55218,55219,55219,55220,55220,55221,55221,55222,
+55223,55223,55224,55224,55225,55225,55226,55226,55227,55228,55228,55229,55229,
+55230,55230,55231,55231,55232,55233,55233,55234,55234,55235,55235,55236,55236,
+55237,55237,55238,55239,55239,55240,55240,55241,55241,55242,55242,55243,55244,
+55244,55245,55245,55246,55246,55247,55247,55248,55248,55249,55250,55250,55251,
+55251,55252,55252,55253,55253,55254,55255,55255,55256,55256,55257,55257,55258,
+55258,55259,55259,55260,55261,55261,55262,55262,55263,55263,55264,55264,55265,
+55266,55266,55267,55267,55268,55268,55269,55269,55270,55271,55271,55272,55272,
+55273,55273,55274,55274,55275,55275,55276,55277,55277,55278,55278,55279,55279,
+55280,55280,55281,55282,55282,55283,55283,55284,55284,55285,55285,55286,55286,
+55287,55288,55288,55289,55289,55290,55290,55291,55291,55292,55293,55293,55294,
+55294,55295,55295,55296,55296,55297,55297,55298,55299,55299,55300,55300,55301,
+55301,55302,55302,55303,55304,55304,55305,55305,55306,55306,55307,55307,55308,
+55308,55309,55310,55310,55311,55311,55312,55312,55313,55313,55314,55315,55315,
+55316,55316,55317,55317,55318,55318,55319,55319,55320,55321,55321,55322,55322,
+55323,55323,55324,55324,55325,55326,55326,55327,55327,55328,55328,55329,55329,
+55330,55330,55331,55332,55332,55333,55333,55334,55334,55335,55335,55336,55337,
+55337,55338,55338,55339,55339,55340,55340,55341,55341,55342,55343,55343,55344,
+55344,55345,55345,55346,55346,55347,55348,55348,55349,55349,55350,55350,55351,
+55351,55352,55352,55353,55354,55354,55355,55355,55356,55356,55357,55357,55358,
+55358,55359,55360,55360,55361,55361,55362,55362,55363,55363,55364,55365,55365,
+55366,55366,55367,55367,55368,55368,55369,55369,55370,55371,55371,55372,55372,
+55373,55373,55374,55374,55375,55376,55376,55377,55377,55378,55378,55379,55379,
+55380,55380,55381,55382,55382,55383,55383,55384,55384,55385,55385,55386,55387,
+55387,55388,55388,55389,55389,55390,55390,55391,55391,55392,55393,55393,55394,
+55394,55395,55395,55396,55396,55397,55397,55398,55399,55399,55400,55400,55401,
+55401,55402,55402,55403,55404,55404,55405,55405,55406,55406,55407,55407,55408,
+55408,55409,55410,55410,55411,55411,55412,55412,55413,55413,55414,55414,55415,
+55416,55416,55417,55417,55418,55418,55419,55419,55420,55421,55421,55422,55422,
+55423,55423,55424,55424,55425,55425,55426,55427,55427,55428,55428,55429,55429,
+55430,55430,55431,55431,55432,55433,55433,55434,55434,55435,55435,55436,55436,
+55437,55438,55438,55439,55439,55440,55440,55441,55441,55442,55442,55443,55444,
+55444,55445,55445,55446,55446,55447,55447,55448,55448,55449,55450,55450,55451,
+55451,55452,55452,55453,55453,55454,55455,55455,55456,55456,55457,55457,55458,
+55458,55459,55459,55460,55461,55461,55462,55462,55463,55463,55464,55464,55465,
+55465,55466,55467,55467,55468,55468,55469,55469,55470,55470,55471,55472,55472,
+55473,55473,55474,55474,55475,55475,55476,55476,55477,55478,55478,55479,55479,
+55480,55480,55481,55481,55482,55482,55483,55484,55484,55485,55485,55486,55486,
+55487,55487,55488,55488,55489,55490,55490,55491,55491,55492,55492,55493,55493,
+55494,55495,55495,55496,55496,55497,55497,55498,55498,55499,55499,55500,55501,
+55501,55502,55502,55503,55503,55504,55504,55505,55505,55506,55507,55507,55508,
+55508,55509,55509,55510,55510,55511,55511,55512,55513,55513,55514,55514,55515,
+55515,55516,55516,55517,55518,55518,55519,55519,55520,55520,55521,55521,55522,
+55522,55523,55524,55524,55525,55525,55526,55526,55527,55527,55528,55528,55529,
+55530,55530,55531,55531,55532,55532,55533,55533,55534,55534,55535,55536,55536,
+55537,55537,55538,55538,55539,55539,55540,55540,55541,55542,55542,55543,55543,
+55544,55544,55545,55545,55546,55546,55547,55548,55548,55549,55549,55550,55550,
+55551,55551,55552,55553,55553,55554,55554,55555,55555,55556,55556,55557,55557,
+55558,55559,55559,55560,55560,55561,55561,55562,55562,55563,55563,55564,55565,
+55565,55566,55566,55567,55567,55568,55568,55569,55569,55570,55571,55571,55572,
+55572,55573,55573,55574,55574,55575,55575,55576,55577,55577,55578,55578,55579,
+55579,55580,55580,55581,55581,55582,55583,55583,55584,55584,55585,55585,55586,
+55586,55587,55587,55588,55589,55589,55590,55590,55591,55591,55592,55592,55593,
+55594,55594,55595,55595,55596,55596,55597,55597,55598,55598,55599,55600,55600,
+55601,55601,55602,55602,55603,55603,55604,55604,55605,55606,55606,55607,55607,
+55608,55608,55609,55609,55610,55610,55611,55612,55612,55613,55613,55614,55614,
+55615,55615,55616,55616,55617,55618,55618,55619,55619,55620,55620,55621,55621,
+55622,55622,55623,55624,55624,55625,55625,55626,55626,55627,55627,55628,55628,
+55629,55630,55630,55631,55631,55632,55632,55633,55633,55634,55634,55635,55636,
+55636,55637,55637,55638,55638,55639,55639,55640,55640,55641,55642,55642,55643,
+55643,55644,55644,55645,55645,55646,55646,55647,55648,55648,55649,55649,55650,
+55650,55651,55651,55652,55652,55653,55654,55654,55655,55655,55656,55656,55657,
+55657,55658,55658,55659,55660,55660,55661,55661,55662,55662,55663,55663,55664,
+55664,55665,55666,55666,55667,55667,55668,55668,55669,55669,55670,55670,55671,
+55672,55672,55673,55673,55674,55674,55675,55675,55676,55676,55677,55678,55678,
+55679,55679,55680,55680,55681,55681,55682,55682,55683,55684,55684,55685,55685,
+55686,55686,55687,55687,55688,55688,55689,55690,55690,55691,55691,55692,55692,
+55693,55693,55694,55694,55695,55696,55696,55697,55697,55698,55698,55699,55699,
+55700,55700,55701,55702,55702,55703,55703,55704,55704,55705,55705,55706,55706,
+55707,55708,55708,55709,55709,55710,55710,55711,55711,55712,55712,55713,55714,
+55714,55715,55715,55716,55716,55717,55717,55718,55718,55719,55720,55720,55721,
+55721,55722,55722,55723,55723,55724,55724,55725,55726,55726,55727,55727,55728,
+55728,55729,55729,55730,55730,55731,55731,55732,55733,55733,55734,55734,55735,
+55735,55736,55736,55737,55737,55738,55739,55739,55740,55740,55741,55741,55742,
+55742,55743,55743,55744,55745,55745,55746,55746,55747,55747,55748,55748,55749,
+55749,55750,55751,55751,55752,55752,55753,55753,55754,55754,55755,55755,55756,
+55757,55757,55758,55758,55759,55759,55760,55760,55761,55761,55762,55763,55763,
+55764,55764,55765,55765,55766,55766,55767,55767,55768,55769,55769,55770,55770,
+55771,55771,55772,55772,55773,55773,55774,55774,55775,55776,55776,55777,55777,
+55778,55778,55779,55779,55780,55780,55781,55782,55782,55783,55783,55784,55784,
+55785,55785,55786,55786,55787,55788,55788,55789,55789,55790,55790,55791,55791,
+55792,55792,55793,55794,55794,55795,55795,55796,55796,55797,55797,55798,55798,
+55799,55800,55800,55801,55801,55802,55802,55803,55803,55804,55804,55805,55805,
+55806,55807,55807,55808,55808,55809,55809,55810,55810,55811,55811,55812,55813,
+55813,55814,55814,55815,55815,55816,55816,55817,55817,55818,55819,55819,55820,
+55820,55821,55821,55822,55822,55823,55823,55824,55825,55825,55826,55826,55827,
+55827,55828,55828,55829,55829,55830,55830,55831,55832,55832,55833,55833,55834,
+55834,55835,55835,55836,55836,55837,55838,55838,55839,55839,55840,55840,55841,
+55841,55842,55842,55843,55844,55844,55845,55845,55846,55846,55847,55847,55848,
+55848,55849,55849,55850,55851,55851,55852,55852,55853,55853,55854,55854,55855,
+55855,55856,55857,55857,55858,55858,55859,55859,55860,55860,55861,55861,55862,
+55863,55863,55864,55864,55865,55865,55866,55866,55867,55867,55868,55868,55869,
+55870,55870,55871,55871,55872,55872,55873,55873,55874,55874,55875,55876,55876,
+55877,55877,55878,55878,55879,55879,55880,55880,55881,55882,55882,55883,55883,
+55884,55884,55885,55885,55886,55886,55887,55887,55888,55889,55889,55890,55890,
+55891,55891,55892,55892,55893,55893,55894,55895,55895,55896,55896,55897,55897,
+55898,55898,55899,55899,55900,55901,55901,55902,55902,55903,55903,55904,55904,
+55905,55905,55906,55906,55907,55908,55908,55909,55909,55910,55910,55911,55911,
+55912,55912,55913,55914,55914,55915,55915,55916,55916,55917,55917,55918,55918,
+55919,55919,55920,55921,55921,55922,55922,55923,55923,55924,55924,55925,55925,
+55926,55927,55927,55928,55928,55929,55929,55930,55930,55931,55931,55932,55932,
+55933,55934,55934,55935,55935,55936,55936,55937,55937,55938,55938,55939,55940,
+55940,55941,55941,55942,55942,55943,55943,55944,55944,55945,55945,55946,55947,
+55947,55948,55948,55949,55949,55950,55950,55951,55951,55952,55953,55953,55954,
+55954,55955,55955,55956,55956,55957,55957,55958,55958,55959,55960,55960,55961,
+55961,55962,55962,55963,55963,55964,55964,55965,55966,55966,55967,55967,55968,
+55968,55969,55969,55970,55970,55971,55971,55972,55973,55973,55974,55974,55975,
+55975,55976,55976,55977,55977,55978,55979,55979,55980,55980,55981,55981,55982,
+55982,55983,55983,55984,55984,55985,55986,55986,55987,55987,55988,55988,55989,
+55989,55990,55990,55991,55992,55992,55993,55993,55994,55994,55995,55995,55996,
+55996,55997,55997,55998,55999,55999,56000,56000,56001,56001,56002,56002,56003,
+56003,56004,56005,56005,56006,56006,56007,56007,56008,56008,56009,56009,56010,
+56010,56011,56012,56012,56013,56013,56014,56014,56015,56015,56016,56016,56017,
+56017,56018,56019,56019,56020,56020,56021,56021,56022,56022,56023,56023,56024,
+56025,56025,56026,56026,56027,56027,56028,56028,56029,56029,56030,56030,56031,
+56032,56032,56033,56033,56034,56034,56035,56035,56036,56036,56037,56037,56038,
+56039,56039,56040,56040,56041,56041,56042,56042,56043,56043,56044,56045,56045,
+56046,56046,56047,56047,56048,56048,56049,56049,56050,56050,56051,56052,56052,
+56053,56053,56054,56054,56055,56055,56056,56056,56057,56057,56058,56059,56059,
+56060,56060,56061,56061,56062,56062,56063,56063,56064,56065,56065,56066,56066,
+56067,56067,56068,56068,56069,56069,56070,56070,56071,56072,56072,56073,56073,
+56074,56074,56075,56075,56076,56076,56077,56077,56078,56079,56079,56080,56080,
+56081,56081,56082,56082,56083,56083,56084,56085,56085,56086,56086,56087,56087,
+56088,56088,56089,56089,56090,56090,56091,56092,56092,56093,56093,56094,56094,
+56095,56095,56096,56096,56097,56097,56098,56099,56099,56100,56100,56101,56101,
+56102,56102,56103,56103,56104,56104,56105,56106,56106,56107,56107,56108,56108,
+56109,56109,56110,56110,56111,56111,56112,56113,56113,56114,56114,56115,56115,
+56116,56116,56117,56117,56118,56119,56119,56120,56120,56121,56121,56122,56122,
+56123,56123,56124,56124,56125,56126,56126,56127,56127,56128,56128,56129,56129,
+56130,56130,56131,56131,56132,56133,56133,56134,56134,56135,56135,56136,56136,
+56137,56137,56138,56138,56139,56140,56140,56141,56141,56142,56142,56143,56143,
+56144,56144,56145,56145,56146,56147,56147,56148,56148,56149,56149,56150,56150,
+56151,56151,56152,56152,56153,56154,56154,56155,56155,56156,56156,56157,56157,
+56158,56158,56159,56160,56160,56161,56161,56162,56162,56163,56163,56164,56164,
+56165,56165,56166,56167,56167,56168,56168,56169,56169,56170,56170,56171,56171,
+56172,56172,56173,56174,56174,56175,56175,56176,56176,56177,56177,56178,56178,
+56179,56179,56180,56181,56181,56182,56182,56183,56183,56184,56184,56185,56185,
+56186,56186,56187,56188,56188,56189,56189,56190,56190,56191,56191,56192,56192,
+56193,56193,56194,56195,56195,56196,56196,56197,56197,56198,56198,56199,56199,
+56200,56200,56201,56202,56202,56203,56203,56204,56204,56205,56205,56206,56206,
+56207,56207,56208,56209,56209,56210,56210,56211,56211,56212,56212,56213,56213,
+56214,56214,56215,56216,56216,56217,56217,56218,56218,56219,56219,56220,56220,
+56221,56221,56222,56223,56223,56224,56224,56225,56225,56226,56226,56227,56227,
+56228,56228,56229,56230,56230,56231,56231,56232,56232,56233,56233,56234,56234,
+56235,56235,56236,56237,56237,56238,56238,56239,56239,56240,56240,56241,56241,
+56242,56242,56243,56244,56244,56245,56245,56246,56246,56247,56247,56248,56248,
+56249,56249,56250,56251,56251,56252,56252,56253,56253,56254,56254,56255,56255,
+56256,56256,56257,56257,56258,56259,56259,56260,56260,56261,56261,56262,56262,
+56263,56263,56264,56264,56265,56266,56266,56267,56267,56268,56268,56269,56269,
+56270,56270,56271,56271,56272,56273,56273,56274,56274,56275,56275,56276,56276,
+56277,56277,56278,56278,56279,56280,56280,56281,56281,56282,56282,56283,56283,
+56284,56284,56285,56285,56286,56287,56287,56288,56288,56289,56289,56290,56290,
+56291,56291,56292,56292,56293,56294,56294,56295,56295,56296,56296,56297,56297,
+56298,56298,56299,56299,56300,56301,56301,56302,56302,56303,56303,56304,56304,
+56305,56305,56306,56306,56307,56307,56308,56309,56309,56310,56310,56311,56311,
+56312,56312,56313,56313,56314,56314,56315,56316,56316,56317,56317,56318,56318,
+56319,56319,56320,56320,56321,56321,56322,56323,56323,56324,56324,56325,56325,
+56326,56326,56327,56327,56328,56328,56329,56330,56330,56331,56331,56332,56332,
+56333,56333,56334,56334,56335,56335,56336,56336,56337,56338,56338,56339,56339,
+56340,56340,56341,56341,56342,56342,56343,56343,56344,56345,56345,56346,56346,
+56347,56347,56348,56348,56349,56349,56350,56350,56351,56352,56352,56353,56353,
+56354,56354,56355,56355,56356,56356,56357,56357,56358,56358,56359,56360,56360,
+56361,56361,56362,56362,56363,56363,56364,56364,56365,56365,56366,56367,56367,
+56368,56368,56369,56369,56370,56370,56371,56371,56372,56372,56373,56374,56374,
+56375,56375,56376,56376,56377,56377,56378,56378,56379,56379,56380,56380,56381,
+56382,56382,56383,56383,56384,56384,56385,56385,56386,56386,56387,56387,56388,
+56389,56389,56390,56390,56391,56391,56392,56392,56393,56393,56394,56394,56395,
+56395,56396,56397,56397,56398,56398,56399,56399,56400,56400,56401,56401,56402,
+56402,56403,56404,56404,56405,56405,56406,56406,56407,56407,56408,56408,56409,
+56409,56410,56411,56411,56412,56412,56413,56413,56414,56414,56415,56415,56416,
+56416,56417,56417,56418,56419,56419,56420,56420,56421,56421,56422,56422,56423,
+56423,56424,56424,56425,56426,56426,56427,56427,56428,56428,56429,56429,56430,
+56430,56431,56431,56432,56432,56433,56434,56434,56435,56435,56436,56436,56437,
+56437,56438,56438,56439,56439,56440,56441,56441,56442,56442,56443,56443,56444,
+56444,56445,56445,56446,56446,56447,56447,56448,56449,56449,56450,56450,56451,
+56451,56452,56452,56453,56453,56454,56454,56455,56456,56456,56457,56457,56458,
+56458,56459,56459,56460,56460,56461,56461,56462,56462,56463,56464,56464,56465,
+56465,56466,56466,56467,56467,56468,56468,56469,56469,56470,56470,56471,56472,
+56472,56473,56473,56474,56474,56475,56475,56476,56476,56477,56477,56478,56479,
+56479,56480,56480,56481,56481,56482,56482,56483,56483,56484,56484,56485,56485,
+56486,56487,56487,56488,56488,56489,56489,56490,56490,56491,56491,56492,56492,
+56493,56493,56494,56495,56495,56496,56496,56497,56497,56498,56498,56499,56499,
+56500,56500,56501,56502,56502,56503,56503,56504,56504,56505,56505,56506,56506,
+56507,56507,56508,56508,56509,56510,56510,56511,56511,56512,56512,56513,56513,
+56514,56514,56515,56515,56516,56516,56517,56518,56518,56519,56519,56520,56520,
+56521,56521,56522,56522,56523,56523,56524,56525,56525,56526,56526,56527,56527,
+56528,56528,56529,56529,56530,56530,56531,56531,56532,56533,56533,56534,56534,
+56535,56535,56536,56536,56537,56537,56538,56538,56539,56539,56540,56541,56541,
+56542,56542,56543,56543,56544,56544,56545,56545,56546,56546,56547,56547,56548,
+56549,56549,56550,56550,56551,56551,56552,56552,56553,56553,56554,56554,56555,
+56555,56556,56557,56557,56558,56558,56559,56559,56560,56560,56561,56561,56562,
+56562,56563,56564,56564,56565,56565,56566,56566,56567,56567,56568,56568,56569,
+56569,56570,56570,56571,56572,56572,56573,56573,56574,56574,56575,56575,56576,
+56576,56577,56577,56578,56578,56579,56580,56580,56581,56581,56582,56582,56583,
+56583,56584,56584,56585,56585,56586,56586,56587,56588,56588,56589,56589,56590,
+56590,56591,56591,56592,56592,56593,56593,56594,56594,56595,56596,56596,56597,
+56597,56598,56598,56599,56599,56600,56600,56601,56601,56602,56602,56603,56604,
+56604,56605,56605,56606,56606,56607,56607,56608,56608,56609,56609,56610,56610,
+56611,56612,56612,56613,56613,56614,56614,56615,56615,56616,56616,56617,56617,
+56618,56618,56619,56620,56620,56621,56621,56622,56622,56623,56623,56624,56624,
+56625,56625,56626,56626,56627,56628,56628,56629,56629,56630,56630,56631,56631,
+56632,56632,56633,56633,56634,56634,56635,56636,56636,56637,56637,56638,56638,
+56639,56639,56640,56640,56641,56641,56642,56642,56643,56644,56644,56645,56645,
+56646,56646,56647,56647,56648,56648,56649,56649,56650,56650,56651,56652,56652,
+56653,56653,56654,56654,56655,56655,56656,56656,56657,56657,56658,56658,56659,
+56660,56660,56661,56661,56662,56662,56663,56663,56664,56664,56665,56665,56666,
+56666,56667,56668,56668,56669,56669,56670,56670,56671,56671,56672,56672,56673,
+56673,56674,56674,56675,56676,56676,56677,56677,56678,56678,56679,56679,56680,
+56680,56681,56681,56682,56682,56683,56683,56684,56685,56685,56686,56686,56687,
+56687,56688,56688,56689,56689,56690,56690,56691,56691,56692,56693,56693,56694,
+56694,56695,56695,56696,56696,56697,56697,56698,56698,56699,56699,56700,56701,
+56701,56702,56702,56703,56703,56704,56704,56705,56705,56706,56706,56707,56707,
+56708,56709,56709,56710,56710,56711,56711,56712,56712,56713,56713,56714,56714,
+56715,56715,56716,56716,56717,56718,56718,56719,56719,56720,56720,56721,56721,
+56722,56722,56723,56723,56724,56724,56725,56726,56726,56727,56727,56728,56728,
+56729,56729,56730,56730,56731,56731,56732,56732,56733,56734,56734,56735,56735,
+56736,56736,56737,56737,56738,56738,56739,56739,56740,56740,56741,56741,56742,
+56743,56743,56744,56744,56745,56745,56746,56746,56747,56747,56748,56748,56749,
+56749,56750,56751,56751,56752,56752,56753,56753,56754,56754,56755,56755,56756,
+56756,56757,56757,56758,56759,56759,56760,56760,56761,56761,56762,56762,56763,
+56763,56764,56764,56765,56765,56766,56766,56767,56768,56768,56769,56769,56770,
+56770,56771,56771,56772,56772,56773,56773,56774,56774,56775,56776,56776,56777,
+56777,56778,56778,56779,56779,56780,56780,56781,56781,56782,56782,56783,56783,
+56784,56785,56785,56786,56786,56787,56787,56788,56788,56789,56789,56790,56790,
+56791,56791,56792,56793,56793,56794,56794,56795,56795,56796,56796,56797,56797,
+56798,56798,56799,56799,56800,56800,56801,56802,56802,56803,56803,56804,56804,
+56805,56805,56806,56806,56807,56807,56808,56808,56809,56810,56810,56811,56811,
+56812,56812,56813,56813,56814,56814,56815,56815,56816,56816,56817,56817,56818,
+56819,56819,56820,56820,56821,56821,56822,56822,56823,56823,56824,56824,56825,
+56825,56826,56827,56827,56828,56828,56829,56829,56830,56830,56831,56831,56832,
+56832,56833,56833,56834,56834,56835,56836,56836,56837,56837,56838,56838,56839,
+56839,56840,56840,56841,56841,56842,56842,56843,56843,56844,56845,56845,56846,
+56846,56847,56847,56848,56848,56849,56849,56850,56850,56851,56851,56852,56853,
+56853,56854,56854,56855,56855,56856,56856,56857,56857,56858,56858,56859,56859,
+56860,56860,56861,56862,56862,56863,56863,56864,56864,56865,56865,56866,56866,
+56867,56867,56868,56868,56869,56869,56870,56871,56871,56872,56872,56873,56873,
+56874,56874,56875,56875,56876,56876,56877,56877,56878,56878,56879,56880,56880,
+56881,56881,56882,56882,56883,56883,56884,56884,56885,56885,56886,56886,56887,
+56887,56888,56889,56889,56890,56890,56891,56891,56892,56892,56893,56893,56894,
+56894,56895,56895,56896,56897,56897,56898,56898,56899,56899,56900,56900,56901,
+56901,56902,56902,56903,56903,56904,56904,56905,56906,56906,56907,56907,56908,
+56908,56909,56909,56910,56910,56911,56911,56912,56912,56913,56913,56914,56915,
+56915,56916,56916,56917,56917,56918,56918,56919,56919,56920,56920,56921,56921,
+56922,56922,56923,56924,56924,56925,56925,56926,56926,56927,56927,56928,56928,
+56929,56929,56930,56930,56931,56931,56932,56933,56933,56934,56934,56935,56935,
+56936,56936,56937,56937,56938,56938,56939,56939,56940,56940,56941,56942,56942,
+56943,56943,56944,56944,56945,56945,56946,56946,56947,56947,56948,56948,56949,
+56949,56950,56951,56951,56952,56952,56953,56953,56954,56954,56955,56955,56956,
+56956,56957,56957,56958,56958,56959,56960,56960,56961,56961,56962,56962,56963,
+56963,56964,56964,56965,56965,56966,56966,56967,56967,56968,56969,56969,56970,
+56970,56971,56971,56972,56972,56973,56973,56974,56974,56975,56975,56976,56976,
+56977,56978,56978,56979,56979,56980,56980,56981,56981,56982,56982,56983,56983,
+56984,56984,56985,56985,56986,56986,56987,56988,56988,56989,56989,56990,56990,
+56991,56991,56992,56992,56993,56993,56994,56994,56995,56995,56996,56997,56997,
+56998,56998,56999,56999,57000,57000,57001,57001,57002,57002,57003,57003,57004,
+57004,57005,57006,57006,57007,57007,57008,57008,57009,57009,57010,57010,57011,
+57011,57012,57012,57013,57013,57014,57015,57015,57016,57016,57017,57017,57018,
+57018,57019,57019,57020,57020,57021,57021,57022,57022,57023,57023,57024,57025,
+57025,57026,57026,57027,57027,57028,57028,57029,57029,57030,57030,57031,57031,
+57032,57032,57033,57034,57034,57035,57035,57036,57036,57037,57037,57038,57038,
+57039,57039,57040,57040,57041,57041,57042,57043,57043,57044,57044,57045,57045,
+57046,57046,57047,57047,57048,57048,57049,57049,57050,57050,57051,57051,57052,
+57053,57053,57054,57054,57055,57055,57056,57056,57057,57057,57058,57058,57059,
+57059,57060,57060,57061,57062,57062,57063,57063,57064,57064,57065,57065,57066,
+57066,57067,57067,57068,57068,57069,57069,57070,57070,57071,57072,57072,57073,
+57073,57074,57074,57075,57075,57076,57076,57077,57077,57078,57078,57079,57079,
+57080,57081,57081,57082,57082,57083,57083,57084,57084,57085,57085,57086,57086,
+57087,57087,57088,57088,57089,57089,57090,57091,57091,57092,57092,57093,57093,
+57094,57094,57095,57095,57096,57096,57097,57097,57098,57098,57099,57100,57100,
+57101,57101,57102,57102,57103,57103,57104,57104,57105,57105,57106,57106,57107,
+57107,57108,57108,57109,57110,57110,57111,57111,57112,57112,57113,57113,57114,
+57114,57115,57115,57116,57116,57117,57117,57118,57118,57119,57120,57120,57121,
+57121,57122,57122,57123,57123,57124,57124,57125,57125,57126,57126,57127,57127,
+57128,57129,57129,57130,57130,57131,57131,57132,57132,57133,57133,57134,57134,
+57135,57135,57136,57136,57137,57137,57138,57139,57139,57140,57140,57141,57141,
+57142,57142,57143,57143,57144,57144,57145,57145,57146,57146,57147,57147,57148,
+57149,57149,57150,57150,57151,57151,57152,57152,57153,57153,57154,57154,57155,
+57155,57156,57156,57157,57157,57158,57159,57159,57160,57160,57161,57161,57162,
+57162,57163,57163,57164,57164,57165,57165,57166,57166,57167,57167,57168,57169,
+57169,57170,57170,57171,57171,57172,57172,57173,57173,57174,57174,57175,57175,
+57176,57176,57177,57177,57178,57179,57179,57180,57180,57181,57181,57182,57182,
+57183,57183,57184,57184,57185,57185,57186,57186,57187,57187,57188,57189,57189,
+57190,57190,57191,57191,57192,57192,57193,57193,57194,57194,57195,57195,57196,
+57196,57197,57197,57198,57199,57199,57200,57200,57201,57201,57202,57202,57203,
+57203,57204,57204,57205,57205,57206,57206,57207,57207,57208,57209,57209,57210,
+57210,57211,57211,57212,57212,57213,57213,57214,57214,57215,57215,57216,57216,
+57217,57217,57218,57219,57219,57220,57220,57221,57221,57222,57222,57223,57223,
+57224,57224,57225,57225,57226,57226,57227,57227,57228,57229,57229,57230,57230,
+57231,57231,57232,57232,57233,57233,57234,57234,57235,57235,57236,57236,57237,
+57237,57238,57239,57239,57240,57240,57241,57241,57242,57242,57243,57243,57244,
+57244,57245,57245,57246,57246,57247,57247,57248,57249,57249,57250,57250,57251,
+57251,57252,57252,57253,57253,57254,57254,57255,57255,57256,57256,57257,57257,
+57258,57258,57259,57260,57260,57261,57261,57262,57262,57263,57263,57264,57264,
+57265,57265,57266,57266,57267,57267,57268,57268,57269,57270,57270,57271,57271,
+57272,57272,57273,57273,57274,57274,57275,57275,57276,57276,57277,57277,57278,
+57278,57279,57280,57280,57281,57281,57282,57282,57283,57283,57284,57284,57285,
+57285,57286,57286,57287,57287,57288,57288,57289,57289,57290,57291,57291,57292,
+57292,57293,57293,57294,57294,57295,57295,57296,57296,57297,57297,57298,57298,
+57299,57299,57300,57301,57301,57302,57302,57303,57303,57304,57304,57305,57305,
+57306,57306,57307,57307,57308,57308,57309,57309,57310,57310,57311,57312,57312,
+57313,57313,57314,57314,57315,57315,57316,57316,57317,57317,57318,57318,57319,
+57319,57320,57320,57321,57322,57322,57323,57323,57324,57324,57325,57325,57326,
+57326,57327,57327,57328,57328,57329,57329,57330,57330,57331,57331,57332,57333,
+57333,57334,57334,57335,57335,57336,57336,57337,57337,57338,57338,57339,57339,
+57340,57340,57341,57341,57342,57342,57343,57344,57344,57345,57345,57346,57346,
+57347,57347,57348,57348,57349,57349,57350,57350,57351,57351,57352,57352,57353,
+57354,57354,57355,57355,57356,57356,57357,57357,57358,57358,57359,57359,57360,
+57360,57361,57361,57362,57362,57363,57363,57364,57365,57365,57366,57366,57367,
+57367,57368,57368,57369,57369,57370,57370,57371,57371,57372,57372,57373,57373,
+57374,57374,57375,57376,57376,57377,57377,57378,57378,57379,57379,57380,57380,
+57381,57381,57382,57382,57383,57383,57384,57384,57385,57385,57386,57387,57387,
+57388,57388,57389,57389,57390,57390,57391,57391,57392,57392,57393,57393,57394,
+57394,57395,57395,57396,57396,57397,57398,57398,57399,57399,57400,57400,57401,
+57401,57402,57402,57403,57403,57404,57404,57405,57405,57406,57406,57407,57407,
+57408,57409,57409,57410,57410,57411,57411,57412,57412,57413,57413,57414,57414,
+57415,57415,57416,57416,57417,57417,57418,57418,57419,57420,57420,57421,57421,
+57422,57422,57423,57423,57424,57424,57425,57425,57426,57426,57427,57427,57428,
+57428,57429,57429,57430,57431,57431,57432,57432,57433,57433,57434,57434,57435,
+57435,57436,57436,57437,57437,57438,57438,57439,57439,57440,57440,57441,57442,
+57442,57443,57443,57444,57444,57445,57445,57446,57446,57447,57447,57448,57448,
+57449,57449,57450,57450,57451,57451,57452,57452,57453,57454,57454,57455,57455,
+57456,57456,57457,57457,57458,57458,57459,57459,57460,57460,57461,57461,57462,
+57462,57463,57463,57464,57465,57465,57466,57466,57467,57467,57468,57468,57469,
+57469,57470,57470,57471,57471,57472,57472,57473,57473,57474,57474,57475,57476,
+57476,57477,57477,57478,57478,57479,57479,57480,57480,57481,57481,57482,57482,
+57483,57483,57484,57484,57485,57485,57486,57486,57487,57488,57488,57489,57489,
+57490,57490,57491,57491,57492,57492,57493,57493,57494,57494,57495,57495,57496,
+57496,57497,57497,57498,57499,57499,57500,57500,57501,57501,57502,57502,57503,
+57503,57504,57504,57505,57505,57506,57506,57507,57507,57508,57508,57509,57509,
+57510,57511,57511,57512,57512,57513,57513,57514,57514,57515,57515,57516,57516,
+57517,57517,57518,57518,57519,57519,57520,57520,57521,57522,57522,57523,57523,
+57524,57524,57525,57525,57526,57526,57527,57527,57528,57528,57529,57529,57530,
+57530,57531,57531,57532,57532,57533,57534,57534,57535,57535,57536,57536,57537,
+57537,57538,57538,57539,57539,57540,57540,57541,57541,57542,57542,57543,57543,
+57544,57544,57545,57546,57546,57547,57547,57548,57548,57549,57549,57550,57550,
+57551,57551,57552,57552,57553,57553,57554,57554,57555,57555,57556,57556,57557,
+57558,57558,57559,57559,57560,57560,57561,57561,57562,57562,57563,57563,57564,
+57564,57565,57565,57566,57566,57567,57567,57568,57568,57569,57570,57570,57571,
+57571,57572,57572,57573,57573,57574,57574,57575,57575,57576,57576,57577,57577,
+57578,57578,57579,57579,57580,57580,57581,57582,57582,57583,57583,57584,57584,
+57585,57585,57586,57586,57587,57587,57588,57588,57589,57589,57590,57590,57591,
+57591,57592,57592,57593,57594,57594,57595,57595,57596,57596,57597,57597,57598,
+57598,57599,57599,57600,57600,57601,57601,57602,57602,57603,57603,57604,57604,
+57605,57606,57606,57607,57607,57608,57608,57609,57609,57610,57610,57611,57611,
+57612,57612,57613,57613,57614,57614,57615,57615,57616,57616,57617,57618,57618,
+57619,57619,57620,57620,57621,57621,57622,57622,57623,57623,57624,57624,57625,
+57625,57626,57626,57627,57627,57628,57628,57629,57629,57630,57631,57631,57632,
+57632,57633,57633,57634,57634,57635,57635,57636,57636,57637,57637,57638,57638,
+57639,57639,57640,57640,57641,57641,57642,57643,57643,57644,57644,57645,57645,
+57646,57646,57647,57647,57648,57648,57649,57649,57650,57650,57651,57651,57652,
+57652,57653,57653,57654,57654,57655,57656,57656,57657,57657,57658,57658,57659,
+57659,57660,57660,57661,57661,57662,57662,57663,57663,57664,57664,57665,57665,
+57666,57666,57667,57668,57668,57669,57669,57670,57670,57671,57671,57672,57672,
+57673,57673,57674,57674,57675,57675,57676,57676,57677,57677,57678,57678,57679,
+57679,57680,57681,57681,57682,57682,57683,57683,57684,57684,57685,57685,57686,
+57686,57687,57687,57688,57688,57689,57689,57690,57690,57691,57691,57692,57692,
+57693,57694,57694,57695,57695,57696,57696,57697,57697,57698,57698,57699,57699,
+57700,57700,57701,57701,57702,57702,57703,57703,57704,57704,57705,57705,57706,
+57707,57707,57708,57708,57709,57709,57710,57710,57711,57711,57712,57712,57713,
+57713,57714,57714,57715,57715,57716,57716,57717,57717,57718,57718,57719,57720,
+57720,57721,57721,57722,57722,57723,57723,57724,57724,57725,57725,57726,57726,
+57727,57727,57728,57728,57729,57729,57730,57730,57731,57731,57732,57733,57733,
+57734,57734,57735,57735,57736,57736,57737,57737,57738,57738,57739,57739,57740,
+57740,57741,57741,57742,57742,57743,57743,57744,57744,57745,57746,57746,57747,
+57747,57748,57748,57749,57749,57750,57750,57751,57751,57752,57752,57753,57753,
+57754,57754,57755,57755,57756,57756,57757,57757,57758,57759,57759,57760,57760,
+57761,57761,57762,57762,57763,57763,57764,57764,57765,57765,57766,57766,57767,
+57767,57768,57768,57769,57769,57770,57770,57771,57772,57772,57773,57773,57774,
+57774,57775,57775,57776,57776,57777,57777,57778,57778,57779,57779,57780,57780,
+57781,57781,57782,57782,57783,57783,57784,57784,57785,57786,57786,57787,57787,
+57788,57788,57789,57789,57790,57790,57791,57791,57792,57792,57793,57793,57794,
+57794,57795,57795,57796,57796,57797,57797,57798,57799,57799,57800,57800,57801,
+57801,57802,57802,57803,57803,57804,57804,57805,57805,57806,57806,57807,57807,
+57808,57808,57809,57809,57810,57810,57811,57811,57812,57813,57813,57814,57814,
+57815,57815,57816,57816,57817,57817,57818,57818,57819,57819,57820,57820,57821,
+57821,57822,57822,57823,57823,57824,57824,57825,57825,57826,57827,57827,57828,
+57828,57829,57829,57830,57830,57831,57831,57832,57832,57833,57833,57834,57834,
+57835,57835,57836,57836,57837,57837,57838,57838,57839,57839,57840,57841,57841,
+57842,57842,57843,57843,57844,57844,57845,57845,57846,57846,57847,57847,57848,
+57848,57849,57849,57850,57850,57851,57851,57852,57852,57853,57853,57854,57855,
+57855,57856,57856,57857,57857,57858,57858,57859,57859,57860,57860,57861,57861,
+57862,57862,57863,57863,57864,57864,57865,57865,57866,57866,57867,57867,57868,
+57869,57869,57870,57870,57871,57871,57872,57872,57873,57873,57874,57874,57875,
+57875,57876,57876,57877,57877,57878,57878,57879,57879,57880,57880,57881,57881,
+57882,57883,57883,57884,57884,57885,57885,57886,57886,57887,57887,57888,57888,
+57889,57889,57890,57890,57891,57891,57892,57892,57893,57893,57894,57894,57895,
+57895,57896,57896,57897,57898,57898,57899,57899,57900,57900,57901,57901,57902,
+57902,57903,57903,57904,57904,57905,57905,57906,57906,57907,57907,57908,57908,
+57909,57909,57910,57910,57911,57912,57912,57913,57913,57914,57914,57915,57915,
+57916,57916,57917,57917,57918,57918,57919,57919,57920,57920,57921,57921,57922,
+57922,57923,57923,57924,57924,57925,57925,57926,57927,57927,57928,57928,57929,
+57929,57930,57930,57931,57931,57932,57932,57933,57933,57934,57934,57935,57935,
+57936,57936,57937,57937,57938,57938,57939,57939,57940,57940,57941,57942,57942,
+57943,57943,57944,57944,57945,57945,57946,57946,57947,57947,57948,57948,57949,
+57949,57950,57950,57951,57951,57952,57952,57953,57953,57954,57954,57955,57955,
+57956,57957,57957,57958,57958,57959,57959,57960,57960,57961,57961,57962,57962,
+57963,57963,57964,57964,57965,57965,57966,57966,57967,57967,57968,57968,57969,
+57969,57970,57970,57971,57972,57972,57973,57973,57974,57974,57975,57975,57976,
+57976,57977,57977,57978,57978,57979,57979,57980,57980,57981,57981,57982,57982,
+57983,57983,57984,57984,57985,57985,57986,57987,57987,57988,57988,57989,57989,
+57990,57990,57991,57991,57992,57992,57993,57993,57994,57994,57995,57995,57996,
+57996,57997,57997,57998,57998,57999,57999,58000,58000,58001,58001,58002,58003,
+58003,58004,58004,58005,58005,58006,58006,58007,58007,58008,58008,58009,58009,
+58010,58010,58011,58011,58012,58012,58013,58013,58014,58014,58015,58015,58016,
+58016,58017,58018,58018,58019,58019,58020,58020,58021,58021,58022,58022,58023,
+58023,58024,58024,58025,58025,58026,58026,58027,58027,58028,58028,58029,58029,
+58030,58030,58031,58031,58032,58032,58033,58034,58034,58035,58035,58036,58036,
+58037,58037,58038,58038,58039,58039,58040,58040,58041,58041,58042,58042,58043,
+58043,58044,58044,58045,58045,58046,58046,58047,58047,58048,58048,58049,58050,
+58050,58051,58051,58052,58052,58053,58053,58054,58054,58055,58055,58056,58056,
+58057,58057,58058,58058,58059,58059,58060,58060,58061,58061,58062,58062,58063,
+58063,58064,58064,58065,58066,58066,58067,58067,58068,58068,58069,58069,58070,
+58070,58071,58071,58072,58072,58073,58073,58074,58074,58075,58075,58076,58076,
+58077,58077,58078,58078,58079,58079,58080,58080,58081,58081,58082,58083,58083,
+58084,58084,58085,58085,58086,58086,58087,58087,58088,58088,58089,58089,58090,
+58090,58091,58091,58092,58092,58093,58093,58094,58094,58095,58095,58096,58096,
+58097,58097,58098,58099,58099,58100,58100,58101,58101,58102,58102,58103,58103,
+58104,58104,58105,58105,58106,58106,58107,58107,58108,58108,58109,58109,58110,
+58110,58111,58111,58112,58112,58113,58113,58114,58114,58115,58116,58116,58117,
+58117,58118,58118,58119,58119,58120,58120,58121,58121,58122,58122,58123,58123,
+58124,58124,58125,58125,58126,58126,58127,58127,58128,58128,58129,58129,58130,
+58130,58131,58131,58132,58133,58133,58134,58134,58135,58135,58136,58136,58137,
+58137,58138,58138,58139,58139,58140,58140,58141,58141,58142,58142,58143,58143,
+58144,58144,58145,58145,58146,58146,58147,58147,58148,58148,58149,58150,58150,
+58151,58151,58152,58152,58153,58153,58154,58154,58155,58155,58156,58156,58157,
+58157,58158,58158,58159,58159,58160,58160,58161,58161,58162,58162,58163,58163,
+58164,58164,58165,58165,58166,58167,58167,58168,58168,58169,58169,58170,58170,
+58171,58171,58172,58172,58173,58173,58174,58174,58175,58175,58176,58176,58177,
+58177,58178,58178,58179,58179,58180,58180,58181,58181,58182,58182,58183,58183,
+58184,58185,58185,58186,58186,58187,58187,58188,58188,58189,58189,58190,58190,
+58191,58191,58192,58192,58193,58193,58194,58194,58195,58195,58196,58196,58197,
+58197,58198,58198,58199,58199,58200,58200,58201,58201,58202,58203,58203,58204,
+58204,58205,58205,58206,58206,58207,58207,58208,58208,58209,58209,58210,58210,
+58211,58211,58212,58212,58213,58213,58214,58214,58215,58215,58216,58216,58217,
+58217,58218,58218,58219,58219,58220,58221,58221,58222,58222,58223,58223,58224,
+58224,58225,58225,58226,58226,58227,58227,58228,58228,58229,58229,58230,58230,
+58231,58231,58232,58232,58233,58233,58234,58234,58235,58235,58236,58236,58237,
+58237,58238,58239,58239,58240,58240,58241,58241,58242,58242,58243,58243,58244,
+58244,58245,58245,58246,58246,58247,58247,58248,58248,58249,58249,58250,58250,
+58251,58251,58252,58252,58253,58253,58254,58254,58255,58255,58256,58256,58257,
+58258,58258,58259,58259,58260,58260,58261,58261,58262,58262,58263,58263,58264,
+58264,58265,58265,58266,58266,58267,58267,58268,58268,58269,58269,58270,58270,
+58271,58271,58272,58272,58273,58273,58274,58274,58275,58275,58276,58277,58277,
+58278,58278,58279,58279,58280,58280,58281,58281,58282,58282,58283,58283,58284,
+58284,58285,58285,58286,58286,58287,58287,58288,58288,58289,58289,58290,58290,
+58291,58291,58292,58292,58293,58293,58294,58294,58295,58296,58296,58297,58297,
+58298,58298,58299,58299,58300,58300,58301,58301,58302,58302,58303,58303,58304,
+58304,58305,58305,58306,58306,58307,58307,58308,58308,58309,58309,58310,58310,
+58311,58311,58312,58312,58313,58313,58314,58314,58315,58316,58316,58317,58317,
+58318,58318,58319,58319,58320,58320,58321,58321,58322,58322,58323,58323,58324,
+58324,58325,58325,58326,58326,58327,58327,58328,58328,58329,58329,58330,58330,
+58331,58331,58332,58332,58333,58333,58334,58334,58335,58336,58336,58337,58337,
+58338,58338,58339,58339,58340,58340,58341,58341,58342,58342,58343,58343,58344,
+58344,58345,58345,58346,58346,58347,58347,58348,58348,58349,58349,58350,58350,
+58351,58351,58352,58352,58353,58353,58354,58354,58355,58356,58356,58357,58357,
+58358,58358,58359,58359,58360,58360,58361,58361,58362,58362,58363,58363,58364,
+58364,58365,58365,58366,58366,58367,58367,58368,58368,58369,58369,58370,58370,
+58371,58371,58372,58372,58373,58373,58374,58374,58375,58375,58376,58377,58377,
+58378,58378,58379,58379,58380,58380,58381,58381,58382,58382,58383,58383,58384,
+58384,58385,58385,58386,58386,58387,58387,58388,58388,58389,58389,58390,58390,
+58391,58391,58392,58392,58393,58393,58394,58394,58395,58395,58396,58396,58397,
+58398,58398,58399,58399,58400,58400,58401,58401,58402,58402,58403,58403,58404,
+58404,58405,58405,58406,58406,58407,58407,58408,58408,58409,58409,58410,58410,
+58411,58411,58412,58412,58413,58413,58414,58414,58415,58415,58416,58416,58417,
+58417,58418,58419,58419,58420,58420,58421,58421,58422,58422,58423,58423,58424,
+58424,58425,58425,58426,58426,58427,58427,58428,58428,58429,58429,58430,58430,
+58431,58431,58432,58432,58433,58433,58434,58434,58435,58435,58436,58436,58437,
+58437,58438,58438,58439,58439,58440,58441,58441,58442,58442,58443,58443,58444,
+58444,58445,58445,58446,58446,58447,58447,58448,58448,58449,58449,58450,58450,
+58451,58451,58452,58452,58453,58453,58454,58454,58455,58455,58456,58456,58457,
+58457,58458,58458,58459,58459,58460,58460,58461,58461,58462,58463,58463,58464,
+58464,58465,58465,58466,58466,58467,58467,58468,58468,58469,58469,58470,58470,
+58471,58471,58472,58472,58473,58473,58474,58474,58475,58475,58476,58476,58477,
+58477,58478,58478,58479,58479,58480,58480,58481,58481,58482,58482,58483,58483,
+58484,58484,58485,58486,58486,58487,58487,58488,58488,58489,58489,58490,58490,
+58491,58491,58492,58492,58493,58493,58494,58494,58495,58495,58496,58496,58497,
+58497,58498,58498,58499,58499,58500,58500,58501,58501,58502,58502,58503,58503,
+58504,58504,58505,58505,58506,58506,58507,58507,58508,58508,58509,58510,58510,
+58511,58511,58512,58512,58513,58513,58514,58514,58515,58515,58516,58516,58517,
+58517,58518,58518,58519,58519,58520,58520,58521,58521,58522,58522,58523,58523,
+58524,58524,58525,58525,58526,58526,58527,58527,58528,58528,58529,58529,58530,
+58530,58531,58531,58532,58532,58533,58534,58534,58535,58535,58536,58536,58537,
+58537,58538,58538,58539,58539,58540,58540,58541,58541,58542,58542,58543,58543,
+58544,58544,58545,58545,58546,58546,58547,58547,58548,58548,58549,58549,58550,
+58550,58551,58551,58552,58552,58553,58553,58554,58554,58555,58555,58556,58556,
+58557,58557,58558,58559,58559,58560,58560,58561,58561,58562,58562,58563,58563,
+58564,58564,58565,58565,58566,58566,58567,58567,58568,58568,58569,58569,58570,
+58570,58571,58571,58572,58572,58573,58573,58574,58574,58575,58575,58576,58576,
+58577,58577,58578,58578,58579,58579,58580,58580,58581,58581,58582,58582,58583,
+58584,58584,58585,58585,58586,58586,58587,58587,58588,58588,58589,58589,58590,
+58590,58591,58591,58592,58592,58593,58593,58594,58594,58595,58595,58596,58596,
+58597,58597,58598,58598,58599,58599,58600,58600,58601,58601,58602,58602,58603,
+58603,58604,58604,58605,58605,58606,58606,58607,58607,58608,58608,58609,58610,
+58610,58611,58611,58612,58612,58613,58613,58614,58614,58615,58615,58616,58616,
+58617,58617,58618,58618,58619,58619,58620,58620,58621,58621,58622,58622,58623,
+58623,58624,58624,58625,58625,58626,58626,58627,58627,58628,58628,58629,58629,
+58630,58630,58631,58631,58632,58632,58633,58633,58634,58634,58635,58635,58636,
+58637,58637,58638,58638,58639,58639,58640,58640,58641,58641,58642,58642,58643,
+58643,58644,58644,58645,58645,58646,58646,58647,58647,58648,58648,58649,58649,
+58650,58650,58651,58651,58652,58652,58653,58653,58654,58654,58655,58655,58656,
+58656,58657,58657,58658,58658,58659,58659,58660,58660,58661,58661,58662,58662,
+58663,58663,58664,58665,58665,58666,58666,58667,58667,58668,58668,58669,58669,
+58670,58670,58671,58671,58672,58672,58673,58673,58674,58674,58675,58675,58676,
+58676,58677,58677,58678,58678,58679,58679,58680,58680,58681,58681,58682,58682,
+58683,58683,58684,58684,58685,58685,58686,58686,58687,58687,58688,58688,58689,
+58689,58690,58690,58691,58691,58692,58692,58693,58694,58694,58695,58695,58696,
+58696,58697,58697,58698,58698,58699,58699,58700,58700,58701,58701,58702,58702,
+58703,58703,58704,58704,58705,58705,58706,58706,58707,58707,58708,58708,58709,
+58709,58710,58710,58711,58711,58712,58712,58713,58713,58714,58714,58715,58715,
+58716,58716,58717,58717,58718,58718,58719,58719,58720,58720,58721,58721,58722,
+58722,58723,58724,58724,58725,58725,58726,58726,58727,58727,58728,58728,58729,
+58729,58730,58730,58731,58731,58732,58732,58733,58733,58734,58734,58735,58735,
+58736,58736,58737,58737,58738,58738,58739,58739,58740,58740,58741,58741,58742,
+58742,58743,58743,58744,58744,58745,58745,58746,58746,58747,58747,58748,58748,
+58749,58749,58750,58750,58751,58751,58752,58752,58753,58753,58754,58755,58755,
+58756,58756,58757,58757,58758,58758,58759,58759,58760,58760,58761,58761,58762,
+58762,58763,58763,58764,58764,58765,58765,58766,58766,58767,58767,58768,58768,
+58769,58769,58770,58770,58771,58771,58772,58772,58773,58773,58774,58774,58775,
+58775,58776,58776,58777,58777,58778,58778,58779,58779,58780,58780,58781,58781,
+58782,58782,58783,58783,58784,58784,58785,58785,58786,58786,58787,58788,58788,
+58789,58789,58790,58790,58791,58791,58792,58792,58793,58793,58794,58794,58795,
+58795,58796,58796,58797,58797,58798,58798,58799,58799,58800,58800,58801,58801,
+58802,58802,58803,58803,58804,58804,58805,58805,58806,58806,58807,58807,58808,
+58808,58809,58809,58810,58810,58811,58811,58812,58812,58813,58813,58814,58814,
+58815,58815,58816,58816,58817,58817,58818,58818,58819,58819,58820,58820,58821,
+58821,58822,58823,58823,58824,58824,58825,58825,58826,58826,58827,58827,58828,
+58828,58829,58829,58830,58830,58831,58831,58832,58832,58833,58833,58834,58834,
+58835,58835,58836,58836,58837,58837,58838,58838,58839,58839,58840,58840,58841,
+58841,58842,58842,58843,58843,58844,58844,58845,58845,58846,58846,58847,58847,
+58848,58848,58849,58849,58850,58850,58851,58851,58852,58852,58853,58853,58854,
+58854,58855,58855,58856,58856,58857,58857,58858,58859,58859,58860,58860,58861,
+58861,58862,58862,58863,58863,58864,58864,58865,58865,58866,58866,58867,58867,
+58868,58868,58869,58869,58870,58870,58871,58871,58872,58872,58873,58873,58874,
+58874,58875,58875,58876,58876,58877,58877,58878,58878,58879,58879,58880,58880,
+58881,58881,58882,58882,58883,58883,58884,58884,58885,58885,58886,58886,58887,
+58887,58888,58888,58889,58889,58890,58890,58891,58891,58892,58892,58893,58893,
+58894,58894,58895,58895,58896,58896,58897,58898,58898,58899,58899,58900,58900,
+58901,58901,58902,58902,58903,58903,58904,58904,58905,58905,58906,58906,58907,
+58907,58908,58908,58909,58909,58910,58910,58911,58911,58912,58912,58913,58913,
+58914,58914,58915,58915,58916,58916,58917,58917,58918,58918,58919,58919,58920,
+58920,58921,58921,58922,58922,58923,58923,58924,58924,58925,58925,58926,58926,
+58927,58927,58928,58928,58929,58929,58930,58930,58931,58931,58932,58932,58933,
+58933,58934,58934,58935,58935,58936,58936,58937,58937,58938,58938,58939,58940,
+58940,58941,58941,58942,58942,58943,58943,58944,58944,58945,58945,58946,58946,
+58947,58947,58948,58948,58949,58949,58950,58950,58951,58951,58952,58952,58953,
+58953,58954,58954,58955,58955,58956,58956,58957,58957,58958,58958,58959,58959,
+58960,58960,58961,58961,58962,58962,58963,58963,58964,58964,58965,58965,58966,
+58966,58967,58967,58968,58968,58969,58969,58970,58970,58971,58971,58972,58972,
+58973,58973,58974,58974,58975,58975,58976,58976,58977,58977,58978,58978,58979,
+58979,58980,58980,58981,58981,58982,58982,58983,58983,58984,58985,58985,58986,
+58986,58987,58987,58988,58988,58989,58989,58990,58990,58991,58991,58992,58992,
+58993,58993,58994,58994,58995,58995,58996,58996,58997,58997,58998,58998,58999,
+58999,59000,59000,59001,59001,59002,59002,59003,59003,59004,59004,59005,59005,
+59006,59006,59007,59007,59008,59008,59009,59009,59010,59010,59011,59011,59012,
+59012,59013,59013,59014,59014,59015,59015,59016,59016,59017,59017,59018,59018,
+59019,59019,59020,59020,59021,59021,59022,59022,59023,59023,59024,59024,59025,
+59025,59026,59026,59027,59027,59028,59028,59029,59029,59030,59030,59031,59031,
+59032,59032,59033,59033,59034,59035,59035,59036,59036,59037,59037,59038,59038,
+59039,59039,59040,59040,59041,59041,59042,59042,59043,59043,59044,59044,59045,
+59045,59046,59046,59047,59047,59048,59048,59049,59049,59050,59050,59051,59051,
+59052,59052,59053,59053,59054,59054,59055,59055,59056,59056,59057,59057,59058,
+59058,59059,59059,59060,59060,59061,59061,59062,59062,59063,59063,59064,59064,
+59065,59065,59066,59066,59067,59067,59068,59068,59069,59069,59070,59070,59071,
+59071,59072,59072,59073,59073,59074,59074,59075,59075,59076,59076,59077,59077,
+59078,59078,59079,59079,59080,59080,59081,59081,59082,59082,59083,59083,59084,
+59084,59085,59085,59086,59086,59087,59087,59088,59088,59089,59089,59090,59090,
+59091,59092,59092,59093,59093,59094,59094,59095,59095,59096,59096,59097,59097,
+59098,59098,59099,59099,59100,59100,59101,59101,59102,59102,59103,59103,59104,
+59104,59105,59105,59106,59106,59107,59107,59108,59108,59109,59109,59110,59110,
+59111,59111,59112,59112,59113,59113,59114,59114,59115,59115,59116,59116,59117,
+59117,59118,59118,59119,59119,59120,59120,59121,59121,59122,59122,59123,59123,
+59124,59124,59125,59125,59126,59126,59127,59127,59128,59128,59129,59129,59130,
+59130,59131,59131,59132,59132,59133,59133,59134,59134,59135,59135,59136,59136,
+59137,59137,59138,59138,59139,59139,59140,59140,59141,59141,59142,59142,59143,
+59143,59144,59144,59145,59145,59146,59146,59147,59147,59148,59148,59149,59149,
+59150,59150,59151,59151,59152,59152,59153,59153,59154,59154,59155,59155,59156,
+59156,59157,59157,59158,59158,59159,59160,59160,59161,59161,59162,59162,59163,
+59163,59164,59164,59165,59165,59166,59166,59167,59167,59168,59168,59169,59169,
+59170,59170,59171,59171,59172,59172,59173,59173,59174,59174,59175,59175,59176,
+59176,59177,59177,59178,59178,59179,59179,59180,59180,59181,59181,59182,59182,
+59183,59183,59184,59184,59185,59185,59186,59186,59187,59187,59188,59188,59189,
+59189,59190,59190,59191,59191,59192,59192,59193,59193,59194,59194,59195,59195,
+59196,59196,59197,59197,59198,59198,59199,59199,59200,59200,59201,59201,59202,
+59202,59203,59203,59204,59204,59205,59205,59206,59206,59207,59207,59208,59208,
+59209,59209,59210,59210,59211,59211,59212,59212,59213,59213,59214,59214,59215,
+59215,59216,59216,59217,59217,59218,59218,59219,59219,59220,59220,59221,59221,
+59222,59222,59223,59223,59224,59224,59225,59225,59226,59226,59227,59227,59228,
+59228,59229,59229,59230,59230,59231,59231,59232,59232,59233,59233,59234,59234,
+59235,59235,59236,59236,59237,59237,59238,59238,59239,59239,59240,59240,59241,
+59241,59242,59242,59243,59243,59244,59244,59245,59245,59246,59247,59247,59248,
+59248,59249,59249,59250,59250,59251,59251,59252,59252,59253,59253,59254,59254,
+59255,59255,59256,59256,59257,59257,59258,59258,59259,59259,59260,59260,59261,
+59261,59262,59262,59263,59263,59264,59264,59265,59265,59266,59266,59267,59267,
+59268,59268,59269,59269,59270,59270,59271,59271,59272,59272,59273,59273,59274,
+59274,59275,59275,59276,59276,59277,59277,59278,59278,59279,59279,59280,59280,
+59281,59281,59282,59282,59283,59283,59284,59284,59285,59285,59286,59286,59287,
+59287,59288,59288,59289,59289,59290,59290,59291,59291,59292,59292,59293,59293,
+59294,59294,59295,59295,59296,59296,59297,59297,59298,59298,59299,59299,59300,
+59300,59301,59301,59302,59302,59303,59303,59304,59304,59305,59305,59306,59306,
+59307,59307,59308,59308,59309,59309,59310,59310,59311,59311,59312,59312,59313,
+59313,59314,59314,59315,59315,59316,59316,59317,59317,59318,59318,59319,59319,
+59320,59320,59321,59321,59322,59322,59323,59323,59324,59324,59325,59325,59326,
+59326,59327,59327,59328,59328,59329,59329,59330,59330,59331,59331,59332,59332,
+59333,59333,59334,59334,59335,59335,59336,59336,59337,59337,59338,59338,59339,
+59339,59340,59340,59341,59341,59342,59342,59343,59343,59344,59344,59345,59345,
+59346,59346,59347,59347,59348,59348,59349,59349,59350,59350,59351,59351,59352,
+59352,59353,59353,59354,59354,59355,59355,59356,59356,59357,59357,59358,59358,
+59359,59359,59360,59360,59361,59361,59362,59362,59363,59363,59364,59364,59365,
+59365,59366,59366,59367,59367,59368,59368,59369,59369,59370,59370,59371,59371,
+59372,59372,59373,59373,59374,59374,59375,59375,59376,59376,59377,59377,59378,
+59378,59379,59379,59380,59380,59381,59381,59382,59382,59383,59383,59384,59384,
+59385,59385,59386,59386,59387,59387,59388,59388,59389,59389,59390,59390,59391,
+59391,59392,59392,59393,59393,59394,59394,59395,59395,59396,59396,59397,59397,
+59398,59398,59399,59399,59400,59400,59401,59401,59402,59402,59403,59403,59404,
+59404,59405,59405,59406,59406,59407,59407,59408,59408,59409,59409,59410,59410,
+59411,59411,59412,59412,59413,59413,59414,59414,59415,59415,59416,59416,59417,
+59417,59418,59418,59419,59419,59420,59420,59421,59421,59422,59422,59423,59423,
+59424,59424,59425,59425,59426,59426,59427,59427,59428,59428,59429,59429,59430,
+59430,59431,59431,59432,59432,59433,59433,59434,59434,59435,59435,59436,59436,
+59437,59437,59438,59438,59439,59439,59440,59440,59441,59441,59442,59442,59443,
+59443,59444,59444,59445,59445,59446,59446,59447,59447,59448,59448,59449,59449,
+59450,59450,59451,59452,59452,59453,59453,59454,59454,59455,59455,59456,59456,
+59457,59457,59458,59458,59459,59459,59460,59460,59461,59461,59462,59462,59463,
+59463,59464,59464,59465,59465,59466,59466,59467,59467,59467,59468,59468,59469,
+59469,59470,59470,59471,59471,59472,59472,59473,59473,59474,59474,59475,59475,
+59476,59476,59477,59477,59478,59478,59479,59479,59480,59480,59481,59481,59482,
+59482,59483,59483,59484,59484,59485,59485,59486,59486,59487,59487,59488,59488,
+59489,59489,59490,59490,59491,59491,59492,59492,59493,59493,59494,59494,59495,
+59495,59496,59496,59497,59497,59498,59498,59499,59499,59500,59500,59501,59501,
+59502,59502,59503,59503,59504,59504,59505,59505,59506,59506,59507,59507,59508,
+59508,59509,59509,59510,59510,59511,59511,59512,59512,59513,59513,59514,59514,
+59515,59515,59516,59516,59517,59517,59518,59518,59519,59519,59520,59520,59521,
+59521,59522,59522,59523,59523,59524,59524,59525,59525,59526,59526,59527,59527,
+59528,59528,59529,59529,59530,59530,59531,59531,59532,59532,59533,59533,59534,
+59534,59535,59535,59536,59536,59537,59537,59538,59538,59539,59539,59540,59540,
+59541,59541,59542,59542,59543,59543,59544,59544,59545,59545,59546,59546,59547,
+59547,59548,59548,59549,59549,59550,59550,59551,59551,59552,59552,59553,59553,
+59554,59554,59555,59555,59556,59556,59557,59557,59558,59558,59559,59559,59560,
+59560,59561,59561,59562,59562,59563,59563,59564,59564,59565,59565,59566,59566,
+59567,59567,59568,59568,59569,59569,59570,59570,59571,59571,59572,59572,59573,
+59573,59574,59574,59575,59575,59576,59576,59577,59577,59578,59578,59579,59579,
+59580,59580,59581,59581,59582,59582,59583,59583,59584,59584,59585,59585,59586,
+59586,59587,59587,59588,59588,59589,59589,59590,59590,59591,59591,59592,59592,
+59593,59593,59594,59594,59595,59595,59596,59596,59597,59597,59598,59598,59599,
+59599,59600,59600,59601,59601,59602,59602,59603,59603,59604,59604,59605,59605,
+59606,59606,59607,59607,59608,59608,59609,59609,59610,59610,59611,59611,59612,
+59612,59613,59613,59614,59614,59615,59615,59616,59616,59617,59617,59618,59618,
+59619,59619,59620,59620,59621,59621,59622,59622,59623,59623,59624,59624,59625,
+59625,59626,59626,59627,59627,59628,59628,59629,59629,59630,59630,59631,59631,
+59632,59632,59633,59633,59634,59634,59635,59635,59636,59636,59637,59637,59638,
+59638,59639,59639,59640,59640,59641,59641,59642,59642,59643,59643,59644,59644,
+59645,59645,59646,59646,59647,59647,59648,59648,59649,59649,59650,59650,59651,
+59651,59652,59652,59653,59653,59654,59654,59655,59655,59656,59656,59657,59657,
+59658,59658,59659,59659,59660,59660,59661,59661,59662,59662,59663,59663,59664,
+59664,59665,59665,59666,59666,59667,59667,59668,59668,59669,59669,59670,59670,
+59671,59671,59671,59672,59672,59673,59673,59674,59674,59675,59675,59676,59676,
+59677,59677,59678,59678,59679,59679,59680,59680,59681,59681,59682,59682,59683,
+59683,59684,59684,59685,59685,59686,59686,59687,59687,59688,59688,59689,59689,
+59690,59690,59691,59691,59692,59692,59693,59693,59694,59694,59695,59695,59696,
+59696,59697,59697,59698,59698,59699,59699,59700,59700,59701,59701,59702,59702,
+59703,59703,59704,59704,59705,59705,59706,59706,59707,59707,59708,59708,59709,
+59709,59710,59710,59711,59711,59712,59712,59713,59713,59714,59714,59715,59715,
+59716,59716,59717,59717,59718,59718,59719,59719,59720,59720,59721,59721,59722,
+59722,59723,59723,59724,59724,59725,59725,59726,59726,59727,59727,59728,59728,
+59729,59729,59730,59730,59731,59731,59732,59732,59733,59733,59734,59734,59735,
+59735,59736,59736,59737,59737,59738,59738,59739,59739,59740,59740,59741,59741,
+59742,59742,59743,59743,59744,59744,59745,59745,59746,59746,59747,59747,59748,
+59748,59749,59749,59750,59750,59751,59751,59752,59752,59753,59753,59754,59754,
+59755,59755,59756,59756,59757,59757,59758,59758,59759,59759,59759,59760,59760,
+59761,59761,59762,59762,59763,59763,59764,59764,59765,59765,59766,59766,59767,
+59767,59768,59768,59769,59769,59770,59770,59771,59771,59772,59772,59773,59773,
+59774,59774,59775,59775,59776,59776,59777,59777,59778,59778,59779,59779,59780,
+59780,59781,59781,59782,59782,59783,59783,59784,59784,59785,59785,59786,59786,
+59787,59787,59788,59788,59789,59789,59790,59790,59791,59791,59792,59792,59793,
+59793,59794,59794,59795,59795,59796,59796,59797,59797,59798,59798,59799,59799,
+59800,59800,59801,59801,59802,59802,59803,59803,59804,59804,59805,59805,59806,
+59806,59807,59807,59808,59808,59809,59809,59810,59810,59811,59811,59812,59812,
+59813,59813,59814,59814,59815,59815,59816,59816,59817,59817,59818,59818,59819,
+59819,59820,59820,59821,59821,59822,59822,59823,59823,59824,59824,59825,59825,
+59826,59826,59826,59827,59827,59828,59828,59829,59829,59830,59830,59831,59831,
+59832,59832,59833,59833,59834,59834,59835,59835,59836,59836,59837,59837,59838,
+59838,59839,59839,59840,59840,59841,59841,59842,59842,59843,59843,59844,59844,
+59845,59845,59846,59846,59847,59847,59848,59848,59849,59849,59850,59850,59851,
+59851,59852,59852,59853,59853,59854,59854,59855,59855,59856,59856,59857,59857,
+59858,59858,59859,59859,59860,59860,59861,59861,59862,59862,59863,59863,59864,
+59864,59865,59865,59866,59866,59867,59867,59868,59868,59869,59869,59870,59870,
+59871,59871,59872,59872,59873,59873,59874,59874,59875,59875,59876,59876,59877,
+59877,59878,59878,59879,59879,59880,59880,59881,59881,59882,59882,59883,59883,
+59883,59884,59884,59885,59885,59886,59886,59887,59887,59888,59888,59889,59889,
+59890,59890,59891,59891,59892,59892,59893,59893,59894,59894,59895,59895,59896,
+59896,59897,59897,59898,59898,59899,59899,59900,59900,59901,59901,59902,59902,
+59903,59903,59904,59904,59905,59905,59906,59906,59907,59907,59908,59908,59909,
+59909,59910,59910,59911,59911,59912,59912,59913,59913,59914,59914,59915,59915,
+59916,59916,59917,59917,59918,59918,59919,59919,59920,59920,59921,59921,59922,
+59922,59923,59923,59924,59924,59925,59925,59926,59926,59927,59927,59928,59928,
+59929,59929,59930,59930,59931,59931,59932,59932,59933,59933,59933,59934,59934,
+59935,59935,59936,59936,59937,59937,59938,59938,59939,59939,59940,59940,59941,
+59941,59942,59942,59943,59943,59944,59944,59945,59945,59946,59946,59947,59947,
+59948,59948,59949,59949,59950,59950,59951,59951,59952,59952,59953,59953,59954,
+59954,59955,59955,59956,59956,59957,59957,59958,59958,59959,59959,59960,59960,
+59961,59961,59962,59962,59963,59963,59964,59964,59965,59965,59966,59966,59967,
+59967,59968,59968,59969,59969,59970,59970,59971,59971,59972,59972,59973,59973,
+59974,59974,59975,59975,59976,59976,59977,59977,59978,59978,59978,59979,59979,
+59980,59980,59981,59981,59982,59982,59983,59983,59984,59984,59985,59985,59986,
+59986,59987,59987,59988,59988,59989,59989,59990,59990,59991,59991,59992,59992,
+59993,59993,59994,59994,59995,59995,59996,59996,59997,59997,59998,59998,59999,
+59999,60000,60000,60001,60001,60002,60002,60003,60003,60004,60004,60005,60005,
+60006,60006,60007,60007,60008,60008,60009,60009,60010,60010,60011,60011,60012,
+60012,60013,60013,60014,60014,60015,60015,60016,60016,60017,60017,60018,60018,
+60019,60019,60020,60020,60020,60021,60021,60022,60022,60023,60023,60024,60024,
+60025,60025,60026,60026,60027,60027,60028,60028,60029,60029,60030,60030,60031,
+60031,60032,60032,60033,60033,60034,60034,60035,60035,60036,60036,60037,60037,
+60038,60038,60039,60039,60040,60040,60041,60041,60042,60042,60043,60043,60044,
+60044,60045,60045,60046,60046,60047,60047,60048,60048,60049,60049,60050,60050,
+60051,60051,60052,60052,60053,60053,60054,60054,60055,60055,60056,60056,60057,
+60057,60058,60058,60059,60059,60059,60060,60060,60061,60061,60062,60062,60063,
+60063,60064,60064,60065,60065,60066,60066,60067,60067,60068,60068,60069,60069,
+60070,60070,60071,60071,60072,60072,60073,60073,60074,60074,60075,60075,60076,
+60076,60077,60077,60078,60078,60079,60079,60080,60080,60081,60081,60082,60082,
+60083,60083,60084,60084,60085,60085,60086,60086,60087,60087,60088,60088,60089,
+60089,60090,60090,60091,60091,60092,60092,60093,60093,60094,60094,60095,60095,
+60095,60096,60096,60097,60097,60098,60098,60099,60099,60100,60100,60101,60101,
+60102,60102,60103,60103,60104,60104,60105,60105,60106,60106,60107,60107,60108,
+60108,60109,60109,60110,60110,60111,60111,60112,60112,60113,60113,60114,60114,
+60115,60115,60116,60116,60117,60117,60118,60118,60119,60119,60120,60120,60121,
+60121,60122,60122,60123,60123,60124,60124,60125,60125,60126,60126,60127,60127,
+60128,60128,60129,60129,60129,60130,60130,60131,60131,60132,60132,60133,60133,
+60134,60134,60135,60135,60136,60136,60137,60137,60138,60138,60139,60139,60140,
+60140,60141,60141,60142,60142,60143,60143,60144,60144,60145,60145,60146,60146,
+60147,60147,60148,60148,60149,60149,60150,60150,60151,60151,60152,60152,60153,
+60153,60154,60154,60155,60155,60156,60156,60157,60157,60158,60158,60159,60159,
+60160,60160,60161,60161,60162,60162,60162,60163,60163,60164,60164,60165,60165,
+60166,60166,60167,60167,60168,60168,60169,60169,60170,60170,60171,60171,60172,
+60172,60173,60173,60174,60174,60175,60175,60176,60176,60177,60177,60178,60178,
+60179,60179,60180,60180,60181,60181,60182,60182,60183,60183,60184,60184,60185,
+60185,60186,60186,60187,60187,60188,60188,60189,60189,60190,60190,60191,60191,
+60192,60192,60193,60193,60193,60194,60194,60195,60195,60196,60196,60197,60197,
+60198,60198,60199,60199,60200,60200,60201,60201,60202,60202,60203,60203,60204,
+60204,60205,60205,60206,60206,60207,60207,60208,60208,60209,60209,60210,60210,
+60211,60211,60212,60212,60213,60213,60214,60214,60215,60215,60216,60216,60217,
+60217,60218,60218,60219,60219,60220,60220,60221,60221,60222,60222,60223,60223,
+60223,60224,60224,60225,60225,60226,60226,60227,60227,60228,60228,60229,60229,
+60230,60230,60231,60231,60232,60232,60233,60233,60234,60234,60235,60235,60236,
+60236,60237,60237,60238,60238,60239,60239,60240,60240,60241,60241,60242,60242,
+60243,60243,60244,60244,60245,60245,60246,60246,60247,60247,60248,60248,60249,
+60249,60250,60250,60251,60251,60252,60252,60252,60253,60253,60254,60254,60255,
+60255,60256,60256,60257,60257,60258,60258,60259,60259,60260,60260,60261,60261,
+60262,60262,60263,60263,60264,60264,60265,60265,60266,60266,60267,60267,60268,
+60268,60269,60269,60270,60270,60271,60271,60272,60272,60273,60273,60274,60274,
+60275,60275,60276,60276,60277,60277,60278,60278,60279,60279,60280,60280,60280,
+60281,60281,60282,60282,60283,60283,60284,60284,60285,60285,60286,60286,60287,
+60287,60288,60288,60289,60289,60290,60290,60291,60291,60292,60292,60293,60293,
+60294,60294,60295,60295,60296,60296,60297,60297,60298,60298,60299,60299,60300,
+60300,60301,60301,60302,60302,60303,60303,60304,60304,60305,60305,60306,60306,
+60307,60307,60307,60308,60308,60309,60309,60310,60310,60311,60311,60312,60312,
+60313,60313,60314,60314,60315,60315,60316,60316,60317,60317,60318,60318,60319,
+60319,60320,60320,60321,60321,60322,60322,60323,60323,60324,60324,60325,60325,
+60326,60326,60327,60327,60328,60328,60329,60329,60330,60330,60331,60331,60332,
+60332,60333,60333,60333,60334,60334,60335,60335,60336,60336,60337,60337,60338,
+60338,60339,60339,60340,60340,60341,60341,60342,60342,60343,60343,60344,60344,
+60345,60345,60346,60346,60347,60347,60348,60348,60349,60349,60350,60350,60351,
+60351,60352,60352,60353,60353,60354,60354,60355,60355,60356,60356,60357,60357,
+60358,60358,60358,60359,60359,60360,60360,60361,60361,60362,60362,60363,60363,
+60364,60364,60365,60365,60366,60366,60367,60367,60368,60368,60369,60369,60370,
+60370,60371,60371,60372,60372,60373,60373,60374,60374,60375,60375,60376,60376,
+60377,60377,60378,60378,60379,60379,60380,60380,60381,60381,60382,60382,60383,
+60383,60383,60384,60384,60385,60385,60386,60386,60387,60387,60388,60388,60389,
+60389,60390,60390,60391,60391,60392,60392,60393,60393,60394,60394,60395,60395,
+60396,60396,60397,60397,60398,60398,60399,60399,60400,60400,60401,60401,60402,
+60402,60403,60403,60404,60404,60405,60405,60406,60406,60407,60407,60407,60408,
+60408,60409,60409,60410,60410,60411,60411,60412,60412,60413,60413,60414,60414,
+60415,60415,60416,60416,60417,60417,60418,60418,60419,60419,60420,60420,60421,
+60421,60422,60422,60423,60423,60424,60424,60425,60425,60426,60426,60427,60427,
+60428,60428,60429,60429,60430,60430,60430,60431,60431,60432,60432,60433,60433,
+60434,60434,60435,60435,60436,60436,60437,60437,60438,60438,60439,60439,60440,
+60440,60441,60441,60442,60442,60443,60443,60444,60444,60445,60445,60446,60446,
+60447,60447,60448,60448,60449,60449,60450,60450,60451,60451,60452,60452,60453,
+60453,60453,60454,60454,60455,60455,60456,60456,60457,60457,60458,60458,60459,
+60459,60460,60460,60461,60461,60462,60462,60463,60463,60464,60464,60465,60465,
+60466,60466,60467,60467,60468,60468,60469,60469,60470,60470,60471,60471,60472,
+60472,60473,60473,60474,60474,60475,60475,60476,60476,60476,60477,60477,60478,
+60478,60479,60479,60480,60480,60481,60481,60482,60482,60483,60483,60484,60484,
+60485,60485,60486,60486,60487,60487,60488,60488,60489,60489,60490,60490,60491,
+60491,60492,60492,60493,60493,60494,60494,60495,60495,60496,60496,60497,60497,
+60497,60498,60498,60499,60499,60500,60500,60501,60501,60502,60502,60503,60503,
+60504,60504,60505,60505,60506,60506,60507,60507,60508,60508,60509,60509,60510,
+60510,60511,60511,60512,60512,60513,60513,60514,60514,60515,60515,60516,60516,
+60517,60517,60518,60518,60519,60519,60519,60520,60520,60521,60521,60522,60522,
+60523,60523,60524,60524,60525,60525,60526,60526,60527,60527,60528,60528,60529,
+60529,60530,60530,60531,60531,60532,60532,60533,60533,60534,60534,60535,60535,
+60536,60536,60537,60537,60538,60538,60539,60539,60540,60540,60540,60541,60541,
+60542,60542,60543,60543,60544,60544,60545,60545,60546,60546,60547,60547,60548,
+60548,60549,60549,60550,60550,60551,60551,60552,60552,60553,60553,60554,60554,
+60555,60555,60556,60556,60557,60557,60558,60558,60559,60559,60560,60560,60560,
+60561,60561,60562,60562,60563,60563,60564,60564,60565,60565,60566,60566,60567,
+60567,60568,60568,60569,60569,60570,60570,60571,60571,60572,60572,60573,60573,
+60574,60574,60575,60575,60576,60576,60577,60577,60578,60578,60579,60579,60580,
+60580,60580,60581,60581,60582,60582,60583,60583,60584,60584,60585,60585,60586,
+60586,60587,60587,60588,60588,60589,60589,60590,60590,60591,60591,60592,60592,
+60593,60593,60594,60594,60595,60595,60596,60596,60597,60597,60598,60598,60599,
+60599,60600,60600,60600,60601,60601,60602,60602,60603,60603,60604,60604,60605,
+60605,60606,60606,60607,60607,60608,60608,60609,60609,60610,60610,60611,60611,
+60612,60612,60613,60613,60614,60614,60615,60615,60616,60616,60617,60617,60618,
+60618,60619,60619,60620,60620,60620,60621,60621,60622,60622,60623,60623,60624,
+60624,60625,60625,60626,60626,60627,60627,60628,60628,60629,60629,60630,60630,
+60631,60631,60632,60632,60633,60633,60634,60634,60635,60635,60636,60636,60637,
+60637,60638,60638,60639,60639,60639,60640,60640,60641,60641,60642,60642,60643,
+60643,60644,60644,60645,60645,60646,60646,60647,60647,60648,60648,60649,60649,
+60650,60650,60651,60651,60652,60652,60653,60653,60654,60654,60655,60655,60656,
+60656,60657,60657,60658,60658,60658,60659,60659,60660,60660,60661,60661,60662,
+60662,60663,60663,60664,60664,60665,60665,60666,60666,60667,60667,60668,60668,
+60669,60669,60670,60670,60671,60671,60672,60672,60673,60673,60674,60674,60675,
+60675,60676,60676,60676,60677,60677,60678,60678,60679,60679,60680,60680,60681,
+60681,60682,60682,60683,60683,60684,60684,60685,60685,60686,60686,60687,60687,
+60688,60688,60689,60689,60690,60690,60691,60691,60692,60692,60693,60693,60694,
+60694,60695,60695,60695,60696,60696,60697,60697,60698,60698,60699,60699,60700,
+60700,60701,60701,60702,60702,60703,60703,60704,60704,60705,60705,60706,60706,
+60707,60707,60708,60708,60709,60709,60710,60710,60711,60711,60712,60712,60713,
+60713,60713,60714,60714,60715,60715,60716,60716,60717,60717,60718,60718,60719,
+60719,60720,60720,60721,60721,60722,60722,60723,60723,60724,60724,60725,60725,
+60726,60726,60727,60727,60728,60728,60729,60729,60730,60730,60730,60731,60731,
+60732,60732,60733,60733,60734,60734,60735,60735,60736,60736,60737,60737,60738,
+60738,60739,60739,60740,60740,60741,60741,60742,60742,60743,60743,60744,60744,
+60745,60745,60746,60746,60747,60747,60748,60748,60748,60749,60749,60750,60750,
+60751,60751,60752,60752,60753,60753,60754,60754,60755,60755,60756,60756,60757,
+60757,60758,60758,60759,60759,60760,60760,60761,60761,60762,60762,60763,60763,
+60764,60764,60765,60765,60765,60766,60766,60767,60767,60768,60768,60769,60769,
+60770,60770,60771,60771,60772,60772,60773,60773,60774,60774,60775,60775,60776,
+60776,60777,60777,60778,60778,60779,60779,60780,60780,60781,60781,60782,60782,
+60782,60783,60783,60784,60784,60785,60785,60786,60786,60787,60787,60788,60788,
+60789,60789,60790,60790,60791,60791,60792,60792,60793,60793,60794,60794,60795,
+60795,60796,60796,60797,60797,60798,60798,60799,60799,60799,60800,60800,60801,
+60801,60802,60802,60803,60803,60804,60804,60805,60805,60806,60806,60807,60807,
+60808,60808,60809,60809,60810,60810,60811,60811,60812,60812,60813,60813,60814,
+60814,60815,60815,60816,60816,60816,60817,60817,60818,60818,60819,60819,60820,
+60820,60821,60821,60822,60822,60823,60823,60824,60824,60825,60825,60826,60826,
+60827,60827,60828,60828,60829,60829,60830,60830,60831,60831,60832,60832,60832,
+60833,60833,60834,60834,60835,60835,60836,60836,60837,60837,60838,60838,60839,
+60839,60840,60840,60841,60841,60842,60842,60843,60843,60844,60844,60845,60845,
+60846,60846,60847,60847,60848,60848,60848,60849,60849,60850,60850,60851,60851,
+60852,60852,60853,60853,60854,60854,60855,60855,60856,60856,60857,60857,60858,
+60858,60859,60859,60860,60860,60861,60861,60862,60862,60863,60863,60864,60864,
+60864,60865,60865,60866,60866,60867,60867,60868,60868,60869,60869,60870,60870,
+60871,60871,60872,60872,60873,60873,60874,60874,60875,60875,60876,60876,60877,
+60877,60878,60878,60879,60879,60880,60880,60880,60881,60881,60882,60882,60883,
+60883,60884,60884,60885,60885,60886,60886,60887,60887,60888,60888,60889,60889,
+60890,60890,60891,60891,60892,60892,60893,60893,60894,60894,60895,60895,60896,
+60896,60896,60897,60897,60898,60898,60899,60899,60900,60900,60901,60901,60902,
+60902,60903,60903,60904,60904,60905,60905,60906,60906,60907,60907,60908,60908,
+60909,60909,60910,60910,60911,60911,60911,60912,60912,60913,60913,60914,60914,
+60915,60915,60916,60916,60917,60917,60918,60918,60919,60919,60920,60920,60921,
+60921,60922,60922,60923,60923,60924,60924,60925,60925,60926,60926,60927,60927,
+60927,60928,60928,60929,60929,60930,60930,60931,60931,60932,60932,60933,60933,
+60934,60934,60935,60935,60936,60936,60937,60937,60938,60938,60939,60939,60940,
+60940,60941,60941,60942,60942,60942,60943,60943,60944,60944,60945,60945,60946,
+60946,60947,60947,60948,60948,60949,60949,60950,60950,60951,60951,60952,60952,
+60953,60953,60954,60954,60955,60955,60956,60956,60957,60957,60957,60958,60958,
+60959,60959,60960,60960,60961,60961,60962,60962,60963,60963,60964,60964,60965,
+60965,60966,60966,60967,60967,60968,60968,60969,60969,60970,60970,60971,60971,
+60972,60972,60972,60973,60973,60974,60974,60975,60975,60976,60976,60977,60977,
+60978,60978,60979,60979,60980,60980,60981,60981,60982,60982,60983,60983,60984,
+60984,60985,60985,60986,60986,60987,60987,60987,60988,60988,60989,60989,60990,
+60990,60991,60991,60992,60992,60993,60993,60994,60994,60995,60995,60996,60996,
+60997,60997,60998,60998,60999,60999,61000,61000,61001,61001,61001,61002,61002,
+61003,61003,61004,61004,61005,61005,61006,61006,61007,61007,61008,61008,61009,
+61009,61010,61010,61011,61011,61012,61012,61013,61013,61014,61014,61015,61015,
+61016,61016,61016,61017,61017,61018,61018,61019,61019,61020,61020,61021,61021,
+61022,61022,61023,61023,61024,61024,61025,61025,61026,61026,61027,61027,61028,
+61028,61029,61029,61030,61030,61030,61031,61031,61032,61032,61033,61033,61034,
+61034,61035,61035,61036,61036,61037,61037,61038,61038,61039,61039,61040,61040,
+61041,61041,61042,61042,61043,61043,61044,61044,61044,61045,61045,61046,61046,
+61047,61047,61048,61048,61049,61049,61050,61050,61051,61051,61052,61052,61053,
+61053,61054,61054,61055,61055,61056,61056,61057,61057,61058,61058,61058,61059,
+61059,61060,61060,61061,61061,61062,61062,61063,61063,61064,61064,61065,61065,
+61066,61066,61067,61067,61068,61068,61069,61069,61070,61070,61071,61071,61072,
+61072,61072,61073,61073,61074,61074,61075,61075,61076,61076,61077,61077,61078,
+61078,61079,61079,61080,61080,61081,61081,61082,61082,61083,61083,61084,61084,
+61085,61085,61086,61086,61086,61087,61087,61088,61088,61089,61089,61090,61090,
+61091,61091,61092,61092,61093,61093,61094,61094,61095,61095,61096,61096,61097,
+61097,61098,61098,61099,61099,61100,61100,61100,61101,61101,61102,61102,61103,
+61103,61104,61104,61105,61105,61106,61106,61107,61107,61108,61108,61109,61109,
+61110,61110,61111,61111,61112,61112,61113,61113,61113,61114,61114,61115,61115,
+61116,61116,61117,61117,61118,61118,61119,61119,61120,61120,61121,61121,61122,
+61122,61123,61123,61124,61124,61125,61125,61126,61126,61127,61127,61127,61128,
+61128,61129,61129,61130,61130,61131,61131,61132,61132,61133,61133,61134,61134,
+61135,61135,61136,61136,61137,61137,61138,61138,61139,61139,61140,61140,61140,
+61141,61141,61142,61142,61143,61143,61144,61144,61145,61145,61146,61146,61147,
+61147,61148,61148,61149,61149,61150,61150,61151,61151,61152,61152,61153,61153,
+61154,61154,61154,61155,61155,61156,61156,61157,61157,61158,61158,61159,61159,
+61160,61160,61161,61161,61162,61162,61163,61163,61164,61164,61165,61165,61166,
+61166,61167,61167,61167,61168,61168,61169,61169,61170,61170,61171,61171,61172,
+61172,61173,61173,61174,61174,61175,61175,61176,61176,61177,61177,61178,61178,
+61179,61179,61180,61180,61180,61181,61181,61182,61182,61183,61183,61184,61184,
+61185,61185,61186,61186,61187,61187,61188,61188,61189,61189,61190,61190,61191,
+61191,61192,61192,61193,61193,61193,61194,61194,61195,61195,61196,61196,61197,
+61197,61198,61198,61199,61199,61200,61200,61201,61201,61202,61202,61203,61203,
+61204,61204,61205,61205,61206,61206,61206,61207,61207,61208,61208,61209,61209,
+61210,61210,61211,61211,61212,61212,61213,61213,61214,61214,61215,61215,61216,
+61216,61217,61217,61218,61218,61218,61219,61219,61220,61220,61221,61221,61222,
+61222,61223,61223,61224,61224,61225,61225,61226,61226,61227,61227,61228,61228,
+61229,61229,61230,61230,61231,61231,61231,61232,61232,61233,61233,61234,61234,
+61235,61235,61236,61236,61237,61237,61238,61238,61239,61239,61240,61240,61241,
+61241,61242,61242,61243,61243,61244,61244,61244,61245,61245,61246,61246,61247,
+61247,61248,61248,61249,61249,61250,61250,61251,61251,61252,61252,61253,61253,
+61254,61254,61255,61255,61256,61256,61256,61257,61257,61258,61258,61259,61259,
+61260,61260,61261,61261,61262,61262,61263,61263,61264,61264,61265,61265,61266,
+61266,61267,61267,61268,61268,61269,61269,61269,61270,61270,61271,61271,61272,
+61272,61273,61273,61274,61274,61275,61275,61276,61276,61277,61277,61278,61278,
+61279,61279,61280,61280,61281,61281,61281,61282,61282,61283,61283,61284,61284,
+61285,61285,61286,61286,61287,61287,61288,61288,61289,61289,61290,61290,61291,
+61291,61292,61292,61293,61293,61293,61294,61294,61295,61295,61296,61296,61297,
+61297,61298,61298,61299,61299,61300,61300,61301,61301,61302,61302,61303,61303,
+61304,61304,61305,61305,61305,61306,61306,61307,61307,61308,61308,61309,61309,
+61310,61310,61311,61311,61312,61312,61313,61313,61314,61314,61315,61315,61316,
+61316,61317,61317,61317,61318,61318,61319,61319,61320,61320,61321,61321,61322,
+61322,61323,61323,61324,61324,61325,61325,61326,61326,61327,61327,61328,61328,
+61329,61329,61329,61330,61330,61331,61331,61332,61332,61333,61333,61334,61334,
+61335,61335,61336,61336,61337,61337,61338,61338,61339,61339,61340,61340,61341,
+61341,61341,61342,61342,61343,61343,61344,61344,61345,61345,61346,61346,61347,
+61347,61348,61348,61349,61349,61350,61350,61351,61351,61352,61352,61353,61353,
+61353,61354,61354,61355,61355,61356,61356,61357,61357,61358,61358,61359,61359,
+61360,61360,61361,61361,61362,61362,61363,61363,61364,61364,61365,61365,61365,
+61366,61366,61367,61367,61368,61368,61369,61369,61370,61370,61371,61371,61372,
+61372,61373,61373,61374,61374,61375,61375,61376,61376,61377,61377,61377,61378,
+61378,61379,61379,61380,61380,61381,61381,61382,61382,61383,61383,61384,61384,
+61385,61385,61386,61386,61387,61387,61388,61388,61388,61389,61389,61390,61390,
+61391,61391,61392,61392,61393,61393,61394,61394,61395,61395,61396,61396,61397,
+61397,61398,61398,61399,61399,61400,61400,61400,61401,61401,61402,61402,61403,
+61403,61404,61404,61405,61405,61406,61406,61407,61407,61408,61408,61409,61409,
+61410,61410,61411,61411,61411,61412,61412,61413,61413,61414,61414,61415,61415,
+61416,61416,61417,61417,61418,61418,61419,61419,61420,61420,61421,61421,61422,
+61422,61423,61423,61423,61424,61424,61425,61425,61426,61426,61427,61427,61428,
+61428,61429,61429,61430,61430,61431,61431,61432,61432,61433,61433,61434,61434,
+61434,61435,61435,61436,61436,61437,61437,61438,61438,61439,61439,61440,61440,
+61441,61441,61442,61442,61443,61443,61444,61444,61445,61445,61445,61446,61446,
+61447,61447,61448,61448,61449,61449,61450,61450,61451,61451,61452,61452,61453,
+61453,61454,61454,61455,61455,61456,61456,61457,61457,61457,61458,61458,61459,
+61459,61460,61460,61461,61461,61462,61462,61463,61463,61464,61464,61465,61465,
+61466,61466,61467,61467,61468,61468,61468,61469,61469,61470,61470,61471,61471,
+61472,61472,61473,61473,61474,61474,61475,61475,61476,61476,61477,61477,61478,
+61478,61479,61479,61479,61480,61480,61481,61481,61482,61482,61483,61483,61484,
+61484,61485,61485,61486,61486,61487,61487,61488,61488,61489,61489,61490,61490,
+61490,61491,61491,61492,61492,61493,61493,61494,61494,61495,61495,61496,61496,
+61497,61497,61498,61498,61499,61499,61500,61500,61501,61501,61501,61502,61502,
+61503,61503,61504,61504,61505,61505,61506,61506,61507,61507,61508,61508,61509,
+61509,61510,61510,61511,61511,61512,61512,61512,61513,61513,61514,61514,61515,
+61515,61516,61516,61517,61517,61518,61518,61519,61519,61520,61520,61521,61521,
+61522,61522,61523,61523,61523,61524,61524,61525,61525,61526,61526,61527,61527,
+61528,61528,61529,61529,61530,61530,61531,61531,61532,61532,61533,61533,61534,
+61534,61534,61535,61535,61536,61536,61537,61537,61538,61538,61539,61539,61540,
+61540,61541,61541,61542,61542,61543,61543,61544,61544,61544,61545,61545,61546,
+61546,61547,61547,61548,61548,61549,61549,61550,61550,61551,61551,61552,61552,
+61553,61553,61554,61554,61555,61555,61555,61556,61556,61557,61557,61558,61558,
+61559,61559,61560,61560,61561,61561,61562,61562,61563,61563,61564,61564,61565,
+61565,61566,61566,61566,61567,61567,61568,61568,61569,61569,61570,61570,61571,
+61571,61572,61572,61573,61573,61574,61574,61575,61575,61576,61576,61576,61577,
+61577,61578,61578,61579,61579,61580,61580,61581,61581,61582,61582,61583,61583,
+61584,61584,61585,61585,61586,61586,61587,61587,61587,61588,61588,61589,61589,
+61590,61590,61591,61591,61592,61592,61593,61593,61594,61594,61595,61595,61596,
+61596,61597,61597,61597,61598,61598,61599,61599,61600,61600,61601,61601,61602,
+61602,61603,61603,61604,61604,61605,61605,61606,61606,61607,61607,61608,61608,
+61608,61609,61609,61610,61610,61611,61611,61612,61612,61613,61613,61614,61614,
+61615,61615,61616,61616,61617,61617,61618,61618,61618,61619,61619,61620,61620,
+61621,61621,61622,61622,61623,61623,61624,61624,61625,61625,61626,61626,61627,
+61627,61628,61628,61628,61629,61629,61630,61630,61631,61631,61632,61632,61633,
+61633,61634,61634,61635,61635,61636,61636,61637,61637,61638,61638,61639,61639,
+61639,61640,61640,61641,61641,61642,61642,61643,61643,61644,61644,61645,61645,
+61646,61646,61647,61647,61648,61648,61649,61649,61649,61650,61650,61651,61651,
+61652,61652,61653,61653,61654,61654,61655,61655,61656,61656,61657,61657,61658,
+61658,61659,61659,61659,61660,61660,61661,61661,61662,61662,61663,61663,61664,
+61664,61665,61665,61666,61666,61667,61667,61668,61668,61669,61669,61669,61670,
+61670,61671,61671,61672,61672,61673,61673,61674,61674,61675,61675,61676,61676,
+61677,61677,61678,61678,61679,61679,61679,61680,61680,61681,61681,61682,61682,
+61683,61683,61684,61684,61685,61685,61686,61686,61687,61687,61688,61688,61689,
+61689,61689,61690,61690,61691,61691,61692,61692,61693,61693,61694,61694,61695,
+61695,61696,61696,61697,61697,61698,61698,61699,61699,61699,61700,61700,61701,
+61701,61702,61702,61703,61703,61704,61704,61705,61705,61706,61706,61707,61707,
+61708,61708,61709,61709,61709,61710,61710,61711,61711,61712,61712,61713,61713,
+61714,61714,61715,61715,61716,61716,61717,61717,61718,61718,61719,61719,61719,
+61720,61720,61721,61721,61722,61722,61723,61723,61724,61724,61725,61725,61726,
+61726,61727,61727,61728,61728,61729,61729,61729,61730,61730,61731,61731,61732,
+61732,61733,61733,61734,61734,61735,61735,61736,61736,61737,61737,61738,61738,
+61739,61739,61739,61740,61740,61741,61741,61742,61742,61743,61743,61744,61744,
+61745,61745,61746,61746,61747,61747,61748,61748,61749,61749,61749,61750,61750,
+61751,61751,61752,61752,61753,61753,61754,61754,61755,61755,61756,61756,61757,
+61757,61758,61758,61759,61759,61759,61760,61760,61761,61761,61762,61762,61763,
+61763,61764,61764,61765,61765,61766,61766,61767,61767,61768,61768,61768,61769,
+61769,61770,61770,61771,61771,61772,61772,61773,61773,61774,61774,61775,61775,
+61776,61776,61777,61777,61778,61778,61778,61779,61779,61780,61780,61781,61781,
+61782,61782,61783,61783,61784,61784,61785,61785,61786,61786,61787,61787,61788,
+61788,61788,61789,61789,61790,61790,61791,61791,61792,61792,61793,61793,61794,
+61794,61795,61795,61796,61796,61797,61797,61797,61798,61798,61799,61799,61800,
+61800,61801,61801,61802,61802,61803,61803,61804,61804,61805,61805,61806,61806,
+61807,61807,61807,61808,61808,61809,61809,61810,61810,61811,61811,61812,61812,
+61813,61813,61814,61814,61815,61815,61816,61816,61816,61817,61817,61818,61818,
+61819,61819,61820,61820,61821,61821,61822,61822,61823,61823,61824,61824,61825,
+61825,61826,61826,61826,61827,61827,61828,61828,61829,61829,61830,61830,61831,
+61831,61832,61832,61833,61833,61834,61834,61835,61835,61835,61836,61836,61837,
+61837,61838,61838,61839,61839,61840,61840,61841,61841,61842,61842,61843,61843,
+61844,61844,61844,61845,61845,61846,61846,61847,61847,61848,61848,61849,61849,
+61850,61850,61851,61851,61852,61852,61853,61853,61854,61854,61854,61855,61855,
+61856,61856,61857,61857,61858,61858,61859,61859,61860,61860,61861,61861,61862,
+61862,61863,61863,61863,61864,61864,61865,61865,61866,61866,61867,61867,61868,
+61868,61869,61869,61870,61870,61871,61871,61872,61872,61872,61873,61873,61874,
+61874,61875,61875,61876,61876,61877,61877,61878,61878,61879,61879,61880,61880,
+61881,61881,61882,61882,61882,61883,61883,61884,61884,61885,61885,61886,61886,
+61887,61887,61888,61888,61889,61889,61890,61890,61891,61891,61891,61892,61892,
+61893,61893,61894,61894,61895,61895,61896,61896,61897,61897,61898,61898,61899,
+61899,61900,61900,61900,61901,61901,61902,61902,61903,61903,61904,61904,61905,
+61905,61906,61906,61907,61907,61908,61908,61909,61909,61909,61910,61910,61911,
+61911,61912,61912,61913,61913,61914,61914,61915,61915,61916,61916,61917,61917,
+61918,61918,61918,61919,61919,61920,61920,61921,61921,61922,61922,61923,61923,
+61924,61924,61925,61925,61926,61926,61927,61927,61927,61928,61928,61929,61929,
+61930,61930,61931,61931,61932,61932,61933,61933,61934,61934,61935,61935,61936,
+61936,61936,61937,61937,61938,61938,61939,61939,61940,61940,61941,61941,61942,
+61942,61943,61943,61944,61944,61945,61945,61945,61946,61946,61947,61947,61948,
+61948,61949,61949,61950,61950,61951,61951,61952,61952,61953,61953,61954,61954,
+61954,61955,61955,61956,61956,61957,61957,61958,61958,61959,61959,61960,61960,
+61961,61961,61962,61962,61963,61963,61963,61964,61964,61965,61965,61966,61966,
+61967,61967,61968,61968,61969,61969,61970,61970,61971,61971,61972,61972,61972,
+61973,61973,61974,61974,61975,61975,61976,61976,61977,61977,61978,61978,61979,
+61979,61980,61980,61981,61981,61981,61982,61982,61983,61983,61984,61984,61985,
+61985,61986,61986,61987,61987,61988,61988,61989,61989,61990,61990,61990,61991,
+61991,61992,61992,61993,61993,61994,61994,61995,61995,61996,61996,61997,61997,
+61998,61998,61999,61999,61999,62000,62000,62001,62001,62002,62002,62003,62003,
+62004,62004,62005,62005,62006,62006,62007,62007,62007,62008,62008,62009,62009,
+62010,62010,62011,62011,62012,62012,62013,62013,62014,62014,62015,62015,62016,
+62016,62016,62017,62017,62018,62018,62019,62019,62020,62020,62021,62021,62022,
+62022,62023,62023,62024,62024,62025,62025,62025,62026,62026,62027,62027,62028,
+62028,62029,62029,62030,62030,62031,62031,62032,62032,62033,62033,62034,62034,
+62034,62035,62035,62036,62036,62037,62037,62038,62038,62039,62039,62040,62040,
+62041,62041,62042,62042,62042,62043,62043,62044,62044,62045,62045,62046,62046,
+62047,62047,62048,62048,62049,62049,62050,62050,62051,62051,62051,62052,62052,
+62053,62053,62054,62054,62055,62055,62056,62056,62057,62057,62058,62058,62059,
+62059,62060,62060,62060,62061,62061,62062,62062,62063,62063,62064,62064,62065,
+62065,62066,62066,62067,62067,62068,62068,62068,62069,62069,62070,62070,62071,
+62071,62072,62072,62073,62073,62074,62074,62075,62075,62076,62076,62077,62077,
+62077,62078,62078,62079,62079,62080,62080,62081,62081,62082,62082,62083,62083,
+62084,62084,62085,62085,62085,62086,62086,62087,62087,62088,62088,62089,62089,
+62090,62090,62091,62091,62092,62092,62093,62093,62094,62094,62094,62095,62095,
+62096,62096,62097,62097,62098,62098,62099,62099,62100,62100,62101,62101,62102,
+62102,62102,62103,62103,62104,62104,62105,62105,62106,62106,62107,62107,62108,
+62108,62109,62109,62110,62110,62111,62111,62111,62112,62112,62113,62113,62114,
+62114,62115,62115,62116,62116,62117,62117,62118,62118,62119,62119,62119,62120,
+62120,62121,62121,62122,62122,62123,62123,62124,62124,62125,62125,62126,62126,
+62127,62127,62127,62128,62128,62129,62129,62130,62130,62131,62131,62132,62132,
+62133,62133,62134,62134,62135,62135,62136,62136,62136,62137,62137,62138,62138,
+62139,62139,62140,62140,62141,62141,62142,62142,62143,62143,62144,62144,62144,
+62145,62145,62146,62146,62147,62147,62148,62148,62149,62149,62150,62150,62151,
+62151,62152,62152,62152,62153,62153,62154,62154,62155,62155,62156,62156,62157,
+62157,62158,62158,62159,62159,62160,62160,62161,62161,62161,62162,62162,62163,
+62163,62164,62164,62165,62165,62166,62166,62167,62167,62168,62168,62169,62169,
+62169,62170,62170,62171,62171,62172,62172,62173,62173,62174,62174,62175,62175,
+62176,62176,62177,62177,62177,62178,62178,62179,62179,62180,62180,62181,62181,
+62182,62182,62183,62183,62184,62184,62185,62185,62185,62186,62186,62187,62187,
+62188,62188,62189,62189,62190,62190,62191,62191,62192,62192,62193,62193,62193,
+62194,62194,62195,62195,62196,62196,62197,62197,62198,62198,62199,62199,62200,
+62200,62201,62201,62202,62202,62202,62203,62203,62204,62204,62205,62205,62206,
+62206,62207,62207,62208,62208,62209,62209,62210,62210,62210,62211,62211,62212,
+62212,62213,62213,62214,62214,62215,62215,62216,62216,62217,62217,62218,62218,
+62218,62219,62219,62220,62220,62221,62221,62222,62222,62223,62223,62224,62224,
+62225,62225,62226,62226,62226,62227,62227,62228,62228,62229,62229,62230,62230,
+62231,62231,62232,62232,62233,62233,62234,62234,62234,62235,62235,62236,62236,
+62237,62237,62238,62238,62239,62239,62240,62240,62241,62241,62242,62242,62242,
+62243,62243,62244,62244,62245,62245,62246,62246,62247,62247,62248,62248,62249,
+62249,62250,62250,62250,62251,62251,62252,62252,62253,62253,62254,62254,62255,
+62255,62256,62256,62257,62257,62258,62258,62258,62259,62259,62260,62260,62261,
+62261,62262,62262,62263,62263,62264,62264,62265,62265,62266,62266,62266,62267,
+62267,62268,62268,62269,62269,62270,62270,62271,62271,62272,62272,62273,62273,
+62274,62274,62274,62275,62275,62276,62276,62277,62277,62278,62278,62279,62279,
+62280,62280,62281,62281,62282,62282,62282,62283,62283,62284,62284,62285,62285,
+62286,62286,62287,62287,62288,62288,62289,62289,62290,62290,62290,62291,62291,
+62292,62292,62293,62293,62294,62294,62295,62295,62296,62296,62297,62297,62298,
+62298,62298,62299,62299,62300,62300,62301,62301,62302,62302,62303,62303,62304,
+62304,62305,62305,62305,62306,62306,62307,62307,62308,62308,62309,62309,62310,
+62310,62311,62311,62312,62312,62313,62313,62313,62314,62314,62315,62315,62316,
+62316,62317,62317,62318,62318,62319,62319,62320,62320,62321,62321,62321,62322,
+62322,62323,62323,62324,62324,62325,62325,62326,62326,62327,62327,62328,62328,
+62329,62329,62329,62330,62330,62331,62331,62332,62332,62333,62333,62334,62334,
+62335,62335,62336,62336,62337,62337,62337,62338,62338,62339,62339,62340,62340,
+62341,62341,62342,62342,62343,62343,62344,62344,62344,62345,62345,62346,62346,
+62347,62347,62348,62348,62349,62349,62350,62350,62351,62351,62352,62352,62352,
+62353,62353,62354,62354,62355,62355,62356,62356,62357,62357,62358,62358,62359,
+62359,62360,62360,62360,62361,62361,62362,62362,62363,62363,62364,62364,62365,
+62365,62366,62366,62367,62367,62368,62368,62368,62369,62369,62370,62370,62371,
+62371,62372,62372,62373,62373,62374,62374,62375,62375,62375,62376,62376,62377,
+62377,62378,62378,62379,62379,62380,62380,62381,62381,62382,62382,62383,62383,
+62383,62384,62384,62385,62385,62386,62386,62387,62387,62388,62388,62389,62389,
+62390,62390,62390,62391,62391,62392,62392,62393,62393,62394,62394,62395,62395,
+62396,62396,62397,62397,62398,62398,62398,62399,62399,62400,62400,62401,62401,
+62402,62402,62403,62403,62404,62404,62405,62405,62406,62406,62406,62407,62407,
+62408,62408,62409,62409,62410,62410,62411,62411,62412,62412,62413,62413,62413,
+62414,62414,62415,62415,62416,62416,62417,62417,62418,62418,62419,62419,62420,
+62420,62421,62421,62421,62422,62422,62423,62423,62424,62424,62425,62425,62426,
+62426,62427,62427,62428,62428,62428,62429,62429,62430,62430,62431,62431,62432,
+62432,62433,62433,62434,62434,62435,62435,62436,62436,62436,62437,62437,62438,
+62438,62439,62439,62440,62440,62441,62441,62442,62442,62443,62443,62443,62444,
+62444,62445,62445,62446,62446,62447,62447,62448,62448,62449,62449,62450,62450,
+62451,62451,62451,62452,62452,62453,62453,62454,62454,62455,62455,62456,62456,
+62457,62457,62458,62458,62458,62459,62459,62460,62460,62461,62461,62462,62462,
+62463,62463,62464,62464,62465,62465,62466,62466,62466,62467,62467,62468,62468,
+62469,62469,62470,62470,62471,62471,62472,62472,62473,62473,62473,62474,62474,
+62475,62475,62476,62476,62477,62477,62478,62478,62479,62479,62480,62480,62480,
+62481,62481,62482,62482,62483,62483,62484,62484,62485,62485,62486,62486,62487,
+62487,62488,62488,62488,62489,62489,62490,62490,62491,62491,62492,62492,62493,
+62493,62494,62494,62495,62495,62495,62496,62496,62497,62497,62498,62498,62499,
+62499,62500,62500,62501,62501,62502,62502,62502,62503,62503,62504,62504,62505,
+62505,62506,62506,62507,62507,62508,62508,62509,62509,62510,62510,62510,62511,
+62511,62512,62512,62513,62513,62514,62514,62515,62515,62516,62516,62517,62517,
+62517,62518,62518,62519,62519,62520,62520,62521,62521,62522,62522,62523,62523,
+62524,62524,62524,62525,62525,62526,62526,62527,62527,62528,62528,62529,62529,
+62530,62530,62531,62531,62532,62532,62532,62533,62533,62534,62534,62535,62535,
+62536,62536,62537,62537,62538,62538,62539,62539,62539,62540,62540,62541,62541,
+62542,62542,62543,62543,62544,62544,62545,62545,62546,62546,62546,62547,62547,
+62548,62548,62549,62549,62550,62550,62551,62551,62552,62552,62553,62553,62553,
+62554,62554,62555,62555,62556,62556,62557,62557,62558,62558,62559,62559,62560,
+62560,62561,62561,62561,62562,62562,62563,62563,62564,62564,62565,62565,62566,
+62566,62567,62567,62568,62568,62568,62569,62569,62570,62570,62571,62571,62572,
+62572,62573,62573,62574,62574,62575,62575,62575,62576,62576,62577,62577,62578,
+62578,62579,62579,62580,62580,62581,62581,62582,62582,62582,62583,62583,62584,
+62584,62585,62585,62586,62586,62587,62587,62588,62588,62589,62589,62589,62590,
+62590,62591,62591,62592,62592,62593,62593,62594,62594,62595,62595,62596,62596,
+62596,62597,62597,62598,62598,62599,62599,62600,62600,62601,62601,62602,62602,
+62603,62603,62603,62604,62604,62605,62605,62606,62606,62607,62607,62608,62608,
+62609,62609,62610,62610,62610,62611,62611,62612,62612,62613,62613,62614,62614,
+62615,62615,62616,62616,62617,62617,62618,62618,62618,62619,62619,62620,62620,
+62621,62621,62622,62622,62623,62623,62624,62624,62625,62625,62625,62626,62626,
+62627,62627,62628,62628,62629,62629,62630,62630,62631,62631,62632,62632,62632,
+62633,62633,62634,62634,62635,62635,62636,62636,62637,62637,62638,62638,62639,
+62639,62639,62640,62640,62641,62641,62642,62642,62643,62643,62644,62644,62645,
+62645,62646,62646,62646,62647,62647,62648,62648,62649,62649,62650,62650,62651,
+62651,62652,62652,62653,62653,62653,62654,62654,62655,62655,62656,62656,62657,
+62657,62658,62658,62659,62659,62660,62660,62660,62661,62661,62662,62662,62663,
+62663,62664,62664,62665,62665,62666,62666,62667,62667,62667,62668,62668,62669,
+62669,62670,62670,62671,62671,62672,62672,62673,62673,62674,62674,62674,62675,
+62675,62676,62676,62677,62677,62678,62678,62679,62679,62680,62680,62680,62681,
+62681,62682,62682,62683,62683,62684,62684,62685,62685,62686,62686,62687,62687,
+62687,62688,62688,62689,62689,62690,62690,62691,62691,62692,62692,62693,62693,
+62694,62694,62694,62695,62695,62696,62696,62697,62697,62698,62698,62699,62699,
+62700,62700,62701,62701,62701,62702,62702,62703,62703,62704,62704,62705,62705,
+62706,62706,62707,62707,62708,62708,62708,62709,62709,62710,62710,62711,62711,
+62712,62712,62713,62713,62714,62714,62715,62715,62715,62716,62716,62717,62717,
+62718,62718,62719,62719,62720,62720,62721,62721,62722,62722,62722,62723,62723,
+62724,62724,62725,62725,62726,62726,62727,62727,62728,62728,62729,62729,62729,
+62730,62730,62731,62731,62732,62732,62733,62733,62734,62734,62735,62735,62735,
+62736,62736,62737,62737,62738,62738,62739,62739,62740,62740,62741,62741,62742,
+62742,62742,62743,62743,62744,62744,62745,62745,62746,62746,62747,62747,62748,
+62748,62749,62749,62749,62750,62750,62751,62751,62752,62752,62753,62753,62754,
+62754,62755,62755,62756,62756,62756,62757,62757,62758,62758,62759,62759,62760,
+62760,62761,62761,62762,62762,62762,62763,62763,62764,62764,62765,62765,62766,
+62766,62767,62767,62768,62768,62769,62769,62769,62770,62770,62771,62771,62772,
+62772,62773,62773,62774,62774,62775,62775,62776,62776,62776,62777,62777,62778,
+62778,62779,62779,62780,62780,62781,62781,62782,62782,62783,62783,62783,62784,
+62784,62785,62785,62786,62786,62787,62787,62788,62788,62789,62789,62789,62790,
+62790,62791,62791,62792,62792,62793,62793,62794,62794,62795,62795,62796,62796,
+62796,62797,62797,62798,62798,62799,62799,62800,62800,62801,62801,62802,62802,
+62803,62803,62803,62804,62804,62805,62805,62806,62806,62807,62807,62808,62808,
+62809,62809,62809,62810,62810,62811,62811,62812,62812,62813,62813,62814,62814,
+62815,62815,62816,62816,62816,62817,62817,62818,62818,62819,62819,62820,62820,
+62821,62821,62822,62822,62823,62823,62823,62824,62824,62825,62825,62826,62826,
+62827,62827,62828,62828,62829,62829,62829,62830,62830,62831,62831,62832,62832,
+62833,62833,62834,62834,62835,62835,62836,62836,62836,62837,62837,62838,62838,
+62839,62839,62840,62840,62841,62841,62842,62842,62842,62843,62843,62844,62844,
+62845,62845,62846,62846,62847,62847,62848,62848,62849,62849,62849,62850,62850,
+62851,62851,62852,62852,62853,62853,62854,62854,62855,62855,62856,62856,62856,
+62857,62857,62858,62858,62859,62859,62860,62860,62861,62861,62862,62862,62862,
+62863,62863,62864,62864,62865,62865,62866,62866,62867,62867,62868,62868,62869,
+62869,62869,62870,62870,62871,62871,62872,62872,62873,62873,62874,62874,62875,
+62875,62875,62876,62876,62877,62877,62878,62878,62879,62879,62880,62880,62881,
+62881,62882,62882,62882,62883,62883,62884,62884,62885,62885,62886,62886,62887,
+62887,62888,62888,62888,62889,62889,62890,62890,62891,62891,62892,62892,62893,
+62893,62894,62894,62895,62895,62895,62896,62896,62897,62897,62898,62898,62899,
+62899,62900,62900,62901,62901,62901,62902,62902,62903,62903,62904,62904,62905,
+62905,62906,62906,62907,62907,62908,62908,62908,62909,62909,62910,62910,62911,
+62911,62912,62912,62913,62913,62914,62914,62914,62915,62915,62916,62916,62917,
+62917,62918,62918,62919,62919,62920,62920,62921,62921,62921,62922,62922,62923,
+62923,62924,62924,62925,62925,62926,62926,62927,62927,62927,62928,62928,62929,
+62929,62930,62930,62931,62931,62932,62932,62933,62933,62933,62934,62934,62935,
+62935,62936,62936,62937,62937,62938,62938,62939,62939,62940,62940,62940,62941,
+62941,62942,62942,62943,62943,62944,62944,62945,62945,62946,62946,62946,62947,
+62947,62948,62948,62949,62949,62950,62950,62951,62951,62952,62952,62953,62953,
+62953,62954,62954,62955,62955,62956,62956,62957,62957,62958,62958,62959,62959,
+62959,62960,62960,62961,62961,62962,62962,62963,62963,62964,62964,62965,62965,
+62965,62966,62966,62967,62967,62968,62968,62969,62969,62970,62970,62971,62971,
+62972,62972,62972,62973,62973,62974,62974,62975,62975,62976,62976,62977,62977,
+62978,62978,62978,62979,62979,62980,62980,62981,62981,62982,62982,62983,62983,
+62984,62984,62984,62985,62985,62986,62986,62987,62987,62988,62988,62989,62989,
+62990,62990,62991,62991,62991,62992,62992,62993,62993,62994,62994,62995,62995,
+62996,62996,62997,62997,62997,62998,62998,62999,62999,63000,63000,63001,63001,
+63002,63002,63003,63003,63003,63004,63004,63005,63005,63006,63006,63007,63007,
+63008,63008,63009,63009,63010,63010,63010,63011,63011,63012,63012,63013,63013,
+63014,63014,63015,63015,63016,63016,63016,63017,63017,63018,63018,63019,63019,
+63020,63020,63021,63021,63022,63022,63022,63023,63023,63024,63024,63025,63025,
+63026,63026,63027,63027,63028,63028,63028,63029,63029,63030,63030,63031,63031,
+63032,63032,63033,63033,63034,63034,63035,63035,63035,63036,63036,63037,63037,
+63038,63038,63039,63039,63040,63040,63041,63041,63041,63042,63042,63043,63043,
+63044,63044,63045,63045,63046,63046,63047,63047,63047,63048,63048,63049,63049,
+63050,63050,63051,63051,63052,63052,63053,63053,63053,63054,63054,63055,63055,
+63056,63056,63057,63057,63058,63058,63059,63059,63059,63060,63060,63061,63061,
+63062,63062,63063,63063,63064,63064,63065,63065,63066,63066,63066,63067,63067,
+63068,63068,63069,63069,63070,63070,63071,63071,63072,63072,63072,63073,63073,
+63074,63074,63075,63075,63076,63076,63077,63077,63078,63078,63078,63079,63079,
+63080,63080,63081,63081,63082,63082,63083,63083,63084,63084,63084,63085,63085,
+63086,63086,63087,63087,63088,63088,63089,63089,63090,63090,63090,63091,63091,
+63092,63092,63093,63093,63094,63094,63095,63095,63096,63096,63096,63097,63097,
+63098,63098,63099,63099,63100,63100,63101,63101,63102,63102,63102,63103,63103,
+63104,63104,63105,63105,63106,63106,63107,63107,63108,63108,63109,63109,63109,
+63110,63110,63111,63111,63112,63112,63113,63113,63114,63114,63115,63115,63115,
+63116,63116,63117,63117,63118,63118,63119,63119,63120,63120,63121,63121,63121,
+63122,63122,63123,63123,63124,63124,63125,63125,63126,63126,63127,63127,63127,
+63128,63128,63129,63129,63130,63130,63131,63131,63132,63132,63133,63133,63133,
+63134,63134,63135,63135,63136,63136,63137,63137,63138,63138,63139,63139,63139,
+63140,63140,63141,63141,63142,63142,63143,63143,63144,63144,63145,63145,63145,
+63146,63146,63147,63147,63148,63148,63149,63149,63150,63150,63151,63151,63151,
+63152,63152,63153,63153,63154,63154,63155,63155,63156,63156,63157,63157,63157,
+63158,63158,63159,63159,63160,63160,63161,63161,63162,63162,63163,63163,63163,
+63164,63164,63165,63165,63166,63166,63167,63167,63168,63168,63169,63169,63169,
+63170,63170,63171,63171,63172,63172,63173,63173,63174,63174,63175,63175,63175,
+63176,63176,63177,63177,63178,63178,63179,63179,63180,63180,63181,63181,63181,
+63182,63182,63183,63183,63184,63184,63185,63185,63186,63186,63187,63187,63187,
+63188,63188,63189,63189,63190,63190,63191,63191,63192,63192,63193,63193,63193,
+63194,63194,63195,63195,63196,63196,63197,63197,63198,63198,63199,63199,63199,
+63200,63200,63201,63201,63202,63202,63203,63203,63204,63204,63205,63205,63205,
+63206,63206,63207,63207,63208,63208,63209,63209,63210,63210,63211,63211,63211,
+63212,63212,63213,63213,63214,63214,63215,63215,63216,63216,63217,63217,63217,
+63218,63218,63219,63219,63220,63220,63221,63221,63222,63222,63223,63223,63223,
+63224,63224,63225,63225,63226,63226,63227,63227,63228,63228,63229,63229,63229,
+63230,63230,63231,63231,63232,63232,63233,63233,63234,63234,63234,63235,63235,
+63236,63236,63237,63237,63238,63238,63239,63239,63240,63240,63240,63241,63241,
+63242,63242,63243,63243,63244,63244,63245,63245,63246,63246,63246,63247,63247,
+63248,63248,63249,63249,63250,63250,63251,63251,63252,63252,63252,63253,63253,
+63254,63254,63255,63255,63256,63256,63257,63257,63258,63258,63258,63259,63259,
+63260,63260,63261,63261,63262,63262,63263,63263,63264,63264,63264,63265,63265,
+63266,63266,63267,63267,63268,63268,63269,63269,63270,63270,63270,63271,63271,
+63272,63272,63273,63273,63274,63274,63275,63275,63276,63276,63276,63277,63277,
+63278,63278,63279,63279,63280,63280,63281,63281,63281,63282,63282,63283,63283,
+63284,63284,63285,63285,63286,63286,63287,63287,63287,63288,63288,63289,63289,
+63290,63290,63291,63291,63292,63292,63293,63293,63293,63294,63294,63295,63295,
+63296,63296,63297,63297,63298,63298,63299,63299,63299,63300,63300,63301,63301,
+63302,63302,63303,63303,63304,63304,63305,63305,63305,63306,63306,63307,63307,
+63308,63308,63309,63309,63310,63310,63310,63311,63311,63312,63312,63313,63313,
+63314,63314,63315,63315,63316,63316,63316,63317,63317,63318,63318,63319,63319,
+63320,63320,63321,63321,63322,63322,63322,63323,63323,63324,63324,63325,63325,
+63326,63326,63327,63327,63328,63328,63328,63329,63329,63330,63330,63331,63331,
+63332,63332,63333,63333,63333,63334,63334,63335,63335,63336,63336,63337,63337,
+63338,63338,63339,63339,63339,63340,63340,63341,63341,63342,63342,63343,63343,
+63344,63344,63345,63345,63345,63346,63346,63347,63347,63348,63348,63349,63349,
+63350,63350,63351,63351,63351,63352,63352,63353,63353,63354,63354,63355,63355,
+63356,63356,63356,63357,63357,63358,63358,63359,63359,63360,63360,63361,63361,
+63362,63362,63362,63363,63363,63364,63364,63365,63365,63366,63366,63367,63367,
+63368,63368,63368,63369,63369,63370,63370,63371,63371,63372,63372,63373,63373,
+63373,63374,63374,63375,63375,63376,63376,63377,63377,63378,63378,63379,63379,
+63379,63380,63380,63381,63381,63382,63382,63383,63383,63384,63384,63385,63385,
+63385,63386,63386,63387,63387,63388,63388,63389,63389,63390,63390,63390,63391,
+63391,63392,63392,63393,63393,63394,63394,63395,63395,63396,63396,63396,63397,
+63397,63398,63398,63399,63399,63400,63400,63401,63401,63402,63402,63402,63403,
+63403,63404,63404,63405,63405,63406,63406,63407,63407,63407,63408,63408,63409,
+63409,63410,63410,63411,63411,63412,63412,63413,63413,63413,63414,63414,63415,
+63415,63416,63416,63417,63417,63418,63418,63419,63419,63419,63420,63420,63421,
+63421,63422,63422,63423,63423,63424,63424,63424,63425,63425,63426,63426,63427,
+63427,63428,63428,63429,63429,63430,63430,63430,63431,63431,63432,63432,63433,
+63433,63434,63434,63435,63435,63435,63436,63436,63437,63437,63438,63438,63439,
+63439,63440,63440,63441,63441,63441,63442,63442,63443,63443,63444,63444,63445,
+63445,63446,63446,63447,63447,63447,63448,63448,63449,63449,63450,63450,63451,
+63451,63452,63452,63452,63453,63453,63454,63454,63455,63455,63456,63456,63457,
+63457,63458,63458,63458,63459,63459,63460,63460,63461,63461,63462,63462,63463,
+63463,63463,63464,63464,63465,63465,63466,63466,63467,63467,63468,63468,63469,
+63469,63469,63470,63470,63471,63471,63472,63472,63473,63473,63474,63474,63474,
+63475,63475,63476,63476,63477,63477,63478,63478,63479,63479,63480,63480,63480,
+63481,63481,63482,63482,63483,63483,63484,63484,63485,63485,63485,63486,63486,
+63487,63487,63488,63488,63489,63489,63490,63490,63491,63491,63491,63492,63492,
+63493,63493,63494,63494,63495,63495,63496,63496,63496,63497,63497,63498,63498,
+63499,63499,63500,63500,63501,63501,63502,63502,63502,63503,63503,63504,63504,
+63505,63505,63506,63506,63507,63507,63507,63508,63508,63509,63509,63510,63510,
+63511,63511,63512,63512,63513,63513,63513,63514,63514,63515,63515,63516,63516,
+63517,63517,63518,63518,63518,63519,63519,63520,63520,63521,63521,63522,63522,
+63523,63523,63524,63524,63524,63525,63525,63526,63526,63527,63527,63528,63528,
+63529,63529,63529,63530,63530,63531,63531,63532,63532,63533,63533,63534,63534,
+63535,63535,63535,63536,63536,63537,63537,63538,63538,63539,63539,63540,63540,
+63540,63541,63541,63542,63542,63543,63543,63544,63544,63545,63545,63546,63546,
+63546,63547,63547,63548,63548,63549,63549,63550,63550,63551,63551,63551,63552,
+63552,63553,63553,63554,63554,63555,63555,63556,63556,63557,63557,63557,63558,
+63558,63559,63559,63560,63560,63561,63561,63562,63562,63562,63563,63563,63564,
+63564,63565,63565,63566,63566,63567,63567,63567,63568,63568,63569,63569,63570,
+63570,63571,63571,63572,63572,63573,63573,63573,63574,63574,63575,63575,63576,
+63576,63577,63577,63578,63578,63578,63579,63579,63580,63580,63581,63581,63582,
+63582,63583,63583,63584,63584,63584,63585,63585,63586,63586,63587,63587,63588,
+63588,63589,63589,63589,63590,63590,63591,63591,63592,63592,63593,63593,63594,
+63594,63594,63595,63595,63596,63596,63597,63597,63598,63598,63599,63599,63600,
+63600,63600,63601,63601,63602,63602,63603,63603,63604,63604,63605,63605,63605,
+63606,63606,63607,63607,63608,63608,63609,63609,63610,63610,63611,63611,63611,
+63612,63612,63613,63613,63614,63614,63615,63615,63616,63616,63616,63617,63617,
+63618,63618,63619,63619,63620,63620,63621,63621,63621,63622,63622,63623,63623,
+63624,63624,63625,63625,63626,63626,63627,63627,63627,63628,63628,63629,63629,
+63630,63630,63631,63631,63632,63632,63632,63633,63633,63634,63634,63635,63635,
+63636,63636,63637,63637,63637,63638,63638,63639,63639,63640,63640,63641,63641,
+63642,63642,63643,63643,63643,63644,63644,63645,63645,63646,63646,63647,63647,
+63648,63648,63648,63649,63649,63650,63650,63651,63651,63652,63652,63653,63653,
+63653,63654,63654,63655,63655,63656,63656,63657,63657,63658,63658,63658,63659,
+63659,63660,63660,63661,63661,63662,63662,63663,63663,63664,63664,63664,63665,
+63665,63666,63666,63667,63667,63668,63668,63669,63669,63669,63670,63670,63671,
+63671,63672,63672,63673,63673,63674,63674,63674,63675,63675,63676,63676,63677,
+63677,63678,63678,63679,63679,63680,63680,63680,63681,63681,63682,63682,63683,
+63683,63684,63684,63685,63685,63685,63686,63686,63687,63687,63688,63688,63689,
+63689,63690,63690,63690,63691,63691,63692,63692,63693,63693,63694,63694,63695,
+63695,63695,63696,63696,63697,63697,63698,63698,63699,63699,63700,63700,63701,
+63701,63701,63702,63702,63703,63703,63704,63704,63705,63705,63706,63706,63706,
+63707,63707,63708,63708,63709,63709,63710,63710,63711,63711,63711,63712,63712,
+63713,63713,63714,63714,63715,63715,63716,63716,63716,63717,63717,63718,63718,
+63719,63719,63720,63720,63721,63721,63722,63722,63722,63723,63723,63724,63724,
+63725,63725,63726,63726,63727,63727,63727,63728,63728,63729,63729,63730,63730,
+63731,63731,63732,63732,63732,63733,63733,63734,63734,63735,63735,63736,63736,
+63737,63737,63737,63738,63738,63739,63739,63740,63740,63741,63741,63742,63742,
+63742,63743,63743,63744,63744,63745,63745,63746,63746,63747,63747,63748,63748,
+63748,63749,63749,63750,63750,63751,63751,63752,63752,63753,63753,63753,63754,
+63754,63755,63755,63756,63756,63757,63757,63758,63758,63758,63759,63759,63760,
+63760,63761,63761,63762,63762,63763,63763,63763,63764,63764,63765,63765,63766,
+63766,63767,63767,63768,63768,63768,63769,63769,63770,63770,63771,63771,63772,
+63772,63773,63773,63773,63774,63774,63775,63775,63776,63776,63777,63777,63778,
+63778,63779,63779,63779,63780,63780,63781,63781,63782,63782,63783,63783,63784,
+63784,63784,63785,63785,63786,63786,63787,63787,63788,63788,63789,63789,63789,
+63790,63790,63791,63791,63792,63792,63793,63793,63794,63794,63794,63795,63795,
+63796,63796,63797,63797,63798,63798,63799,63799,63799,63800,63800,63801,63801,
+63802,63802,63803,63803,63804,63804,63804,63805,63805,63806,63806,63807,63807,
+63808,63808,63809,63809,63809,63810,63810,63811,63811,63812,63812,63813,63813,
+63814,63814,63814,63815,63815,63816,63816,63817,63817,63818,63818,63819,63819,
+63819,63820,63820,63821,63821,63822,63822,63823,63823,63824,63824,63825,63825,
+63825,63826,63826,63827,63827,63828,63828,63829,63829,63830,63830,63830,63831,
+63831,63832,63832,63833,63833,63834,63834,63835,63835,63835,63836,63836,63837,
+63837,63838,63838,63839,63839,63840,63840,63840,63841,63841,63842,63842,63843,
+63843,63844,63844,63845,63845,63845,63846,63846,63847,63847,63848,63848,63849,
+63849,63850,63850,63850,63851,63851,63852,63852,63853,63853,63854,63854,63855,
+63855,63855,63856,63856,63857,63857,63858,63858,63859,63859,63860,63860,63860,
+63861,63861,63862,63862,63863,63863,63864,63864,63865,63865,63865,63866,63866,
+63867,63867,63868,63868,63869,63869,63870,63870,63870,63871,63871,63872,63872,
+63873,63873,63874,63874,63875,63875,63875,63876,63876,63877,63877,63878,63878,
+63879,63879,63880,63880,63880,63881,63881,63882,63882,63883,63883,63884,63884,
+63885,63885,63885,63886,63886,63887,63887,63888,63888,63889,63889,63890,63890,
+63890,63891,63891,63892,63892,63893,63893,63894,63894,63895,63895,63895,63896,
+63896,63897,63897,63898,63898,63899,63899,63900,63900,63900,63901,63901,63902,
+63902,63903,63903,63904,63904,63905,63905,63905,63906,63906,63907,63907,63908,
+63908,63909,63909,63910,63910,63910,63911,63911,63912,63912,63913,63913,63914,
+63914,63915,63915,63915,63916,63916,63917,63917,63918,63918,63919,63919,63920,
+63920,63920,63921,63921,63922,63922,63923,63923,63924,63924,63925,63925,63925,
+63926,63926,63927,63927,63928,63928,63929,63929,63930,63930,63930,63931,63931,
+63932,63932,63933,63933,63934,63934,63935,63935,63935,63936,63936,63937,63937,
+63938,63938,63939,63939,63940,63940,63940,63941,63941,63942,63942,63943,63943,
+63944,63944,63945,63945,63945,63946,63946,63947,63947,63948,63948,63949,63949,
+63950,63950,63950,63951,63951,63952,63952,63953,63953,63954,63954,63955,63955,
+63955,63956,63956,63957,63957,63958,63958,63959,63959,63960,63960,63960,63961,
+63961,63962,63962,63963,63963,63964,63964,63965,63965,63965,63966,63966,63967,
+63967,63968,63968,63969,63969,63970,63970,63970,63971,63971,63972,63972,63973,
+63973,63974,63974,63975,63975,63975,63976,63976,63977,63977,63978,63978,63979,
+63979,63980,63980,63980,63981,63981,63982,63982,63983,63983,63984,63984,63984,
+63985,63985,63986,63986,63987,63987,63988,63988,63989,63989,63989,63990,63990,
+63991,63991,63992,63992,63993,63993,63994,63994,63994,63995,63995,63996,63996,
+63997,63997,63998,63998,63999,63999,63999,64000,64000,64001,64001,64002,64002,
+64003,64003,64004,64004,64004,64005,64005,64006,64006,64007,64007,64008,64008,
+64009,64009,64009,64010,64010,64011,64011,64012,64012,64013,64013,64014,64014,
+64014,64015,64015,64016,64016,64017,64017,64018,64018,64019,64019,64019,64020,
+64020,64021,64021,64022,64022,64023,64023,64024,64024,64024,64025,64025,64026,
+64026,64027,64027,64028,64028,64028,64029,64029,64030,64030,64031,64031,64032,
+64032,64033,64033,64033,64034,64034,64035,64035,64036,64036,64037,64037,64038,
+64038,64038,64039,64039,64040,64040,64041,64041,64042,64042,64043,64043,64043,
+64044,64044,64045,64045,64046,64046,64047,64047,64048,64048,64048,64049,64049,
+64050,64050,64051,64051,64052,64052,64053,64053,64053,64054,64054,64055,64055,
+64056,64056,64057,64057,64057,64058,64058,64059,64059,64060,64060,64061,64061,
+64062,64062,64062,64063,64063,64064,64064,64065,64065,64066,64066,64067,64067,
+64067,64068,64068,64069,64069,64070,64070,64071,64071,64072,64072,64072,64073,
+64073,64074,64074,64075,64075,64076,64076,64077,64077,64077,64078,64078,64079,
+64079,64080,64080,64081,64081,64082,64082,64082,64083,64083,64084,64084,64085,
+64085,64086,64086,64086,64087,64087,64088,64088,64089,64089,64090,64090,64091,
+64091,64091,64092,64092,64093,64093,64094,64094,64095,64095,64096,64096,64096,
+64097,64097,64098,64098,64099,64099,64100,64100,64101,64101,64101,64102,64102,
+64103,64103,64104,64104,64105,64105,64106,64106,64106,64107,64107,64108,64108,
+64109,64109,64110,64110,64110,64111,64111,64112,64112,64113,64113,64114,64114,
+64115,64115,64115,64116,64116,64117,64117,64118,64118,64119,64119,64120,64120,
+64120,64121,64121,64122,64122,64123,64123,64124,64124,64125,64125,64125,64126,
+64126,64127,64127,64128,64128,64129,64129,64129,64130,64130,64131,64131,64132,
+64132,64133,64133,64134,64134,64134,64135,64135,64136,64136,64137,64137,64138,
+64138,64139,64139,64139,64140,64140,64141,64141,64142,64142,64143,64143,64144,
+64144,64144,64145,64145,64146,64146,64147,64147,64148,64148,64148,64149,64149,
+64150,64150,64151,64151,64152,64152,64153,64153,64153,64154,64154,64155,64155,
+64156,64156,64157,64157,64158,64158,64158,64159,64159,64160,64160,64161,64161,
+64162,64162,64163,64163,64163,64164,64164,64165,64165,64166,64166,64167,64167,
+64167,64168,64168,64169,64169,64170,64170,64171,64171,64172,64172,64172,64173,
+64173,64174,64174,64175,64175,64176,64176,64177,64177,64177,64178,64178,64179,
+64179,64180,64180,64181,64181,64181,64182,64182,64183,64183,64184,64184,64185,
+64185,64186,64186,64186,64187,64187,64188,64188,64189,64189,64190,64190,64191,
+64191,64191,64192,64192,64193,64193,64194,64194,64195,64195,64195,64196,64196,
+64197,64197,64198,64198,64199,64199,64200,64200,64200,64201,64201,64202,64202,
+64203,64203,64204,64204,64205,64205,64205,64206,64206,64207,64207,64208,64208,
+64209,64209,64209,64210,64210,64211,64211,64212,64212,64213,64213,64214,64214,
+64214,64215,64215,64216,64216,64217,64217,64218,64218,64219,64219,64219,64220,
+64220,64221,64221,64222,64222,64223,64223,64223,64224,64224,64225,64225,64226,
+64226,64227,64227,64228,64228,64228,64229,64229,64230,64230,64231,64231,64232,
+64232,64233,64233,64233,64234,64234,64235,64235,64236,64236,64237,64237,64237,
+64238,64238,64239,64239,64240,64240,64241,64241,64242,64242,64242,64243,64243,
+64244,64244,64245,64245,64246,64246,64247,64247,64247,64248,64248,64249,64249,
+64250,64250,64251,64251,64251,64252,64252,64253,64253,64254,64254,64255,64255,
+64256,64256,64256,64257,64257,64258,64258,64259,64259,64260,64260,64261,64261,
+64261,64262,64262,64263,64263,64264,64264,64265,64265,64265,64266,64266,64267,
+64267,64268,64268,64269,64269,64270,64270,64270,64271,64271,64272,64272,64273,
+64273,64274,64274,64274,64275,64275,64276,64276,64277,64277,64278,64278,64279,
+64279,64279,64280,64280,64281,64281,64282,64282,64283,64283,64284,64284,64284,
+64285,64285,64286,64286,64287,64287,64288,64288,64288,64289,64289,64290,64290,
+64291,64291,64292,64292,64293,64293,64293,64294,64294,64295,64295,64296,64296,
+64297,64297,64297,64298,64298,64299,64299,64300,64300,64301,64301,64302,64302,
+64302,64303,64303,64304,64304,64305,64305,64306,64306,64307,64307,64307,64308,
+64308,64309,64309,64310,64310,64311,64311,64311,64312,64312,64313,64313,64314,
+64314,64315,64315,64316,64316,64316,64317,64317,64318,64318,64319,64319,64320,
+64320,64320,64321,64321,64322,64322,64323,64323,64324,64324,64325,64325,64325,
+64326,64326,64327,64327,64328,64328,64329,64329,64329,64330,64330,64331,64331,
+64332,64332,64333,64333,64334,64334,64334,64335,64335,64336,64336,64337,64337,
+64338,64338,64339,64339,64339,64340,64340,64341,64341,64342,64342,64343,64343,
+64343,64344,64344,64345,64345,64346,64346,64347,64347,64348,64348,64348,64349,
+64349,64350,64350,64351,64351,64352,64352,64352,64353,64353,64354,64354,64355,
+64355,64356,64356,64357,64357,64357,64358,64358,64359,64359,64360,64360,64361,
+64361,64361,64362,64362,64363,64363,64364,64364,64365,64365,64366,64366,64366,
+64367,64367,64368,64368,64369,64369,64370,64370,64370,64371,64371,64372,64372,
+64373,64373,64374,64374,64375,64375,64375,64376,64376,64377,64377,64378,64378,
+64379,64379,64379,64380,64380,64381,64381,64382,64382,64383,64383,64384,64384,
+64384,64385,64385,64386,64386,64387,64387,64388,64388,64388,64389,64389,64390,
+64390,64391,64391,64392,64392,64393,64393,64393,64394,64394,64395,64395,64396,
+64396,64397,64397,64397,64398,64398,64399,64399,64400,64400,64401,64401,64402,
+64402,64402,64403,64403,64404,64404,64405,64405,64406,64406,64406,64407,64407,
+64408,64408,64409,64409,64410,64410,64411,64411,64411,64412,64412,64413,64413,
+64414,64414,64415,64415,64415,64416,64416,64417,64417,64418,64418,64419,64419,
+64420,64420,64420,64421,64421,64422,64422,64423,64423,64424,64424,64424,64425,
+64425,64426,64426,64427,64427,64428,64428,64429,64429,64429,64430,64430,64431,
+64431,64432,64432,64433,64433,64433,64434,64434,64435,64435,64436,64436,64437,
+64437,64438,64438,64438,64439,64439,64440,64440,64441,64441,64442,64442,64442,
+64443,64443,64444,64444,64445,64445,64446,64446,64446,64447,64447,64448,64448,
+64449,64449,64450,64450,64451,64451,64451,64452,64452,64453,64453,64454,64454,
+64455,64455,64455,64456,64456,64457,64457,64458,64458,64459,64459,64460,64460,
+64460,64461,64461,64462,64462,64463,64463,64464,64464,64464,64465,64465,64466,
+64466,64467,64467,64468,64468,64469,64469,64469,64470,64470,64471,64471,64472,
+64472,64473,64473,64473,64474,64474,64475,64475,64476,64476,64477,64477,64477,
+64478,64478,64479,64479,64480,64480,64481,64481,64482,64482,64482,64483,64483,
+64484,64484,64485,64485,64486,64486,64486,64487,64487,64488,64488,64489,64489,
+64490,64490,64491,64491,64491,64492,64492,64493,64493,64494,64494,64495,64495,
+64495,64496,64496,64497,64497,64498,64498,64499,64499,64500,64500,64500,64501,
+64501,64502,64502,64503,64503,64504,64504,64504,64505,64505,64506,64506,64507,
+64507,64508,64508,64508,64509,64509,64510,64510,64511,64511,64512,64512,64513,
+64513,64513,64514,64514,64515,64515,64516,64516,64517,64517,64517,64518,64518,
+64519,64519,64520,64520,64521,64521,64521,64522,64522,64523,64523,64524,64524,
+64525,64525,64526,64526,64526,64527,64527,64528,64528,64529,64529,64530,64530,
+64530,64531,64531,64532,64532,64533,64533,64534,64534,64535,64535,64535,64536,
+64536,64537,64537,64538,64538,64539,64539,64539,64540,64540,64541,64541,64542,
+64542,64543,64543,64543,64544,64544,64545,64545,64546,64546,64547,64547,64548,
+64548,64548,64549,64549,64550,64550,64551,64551,64552,64552,64552,64553,64553,
+64554,64554,64555,64555,64556,64556,64556,64557,64557,64558,64558,64559,64559,
+64560,64560,64561,64561,64561,64562,64562,64563,64563,64564,64564,64565,64565,
+64565,64566,64566,64567,64567,64568,64568,64569,64569,64569,64570,64570,64571,
+64571,64572,64572,64573,64573,64574,64574,64574,64575,64575,64576,64576,64577,
+64577,64578,64578,64578,64579,64579,64580,64580,64581,64581,64582,64582,64582,
+64583,64583,64584,64584,64585,64585,64586,64586,64587,64587,64587,64588,64588,
+64589,64589,64590,64590,64591,64591,64591,64592,64592,64593,64593,64594,64594,
+64595,64595,64595,64596,64596,64597,64597,64598,64598,64599,64599,64600,64600,
+64600,64601,64601,64602,64602,64603,64603,64604,64604,64604,64605,64605,64606,
+64606,64607,64607,64608,64608,64608,64609,64609,64610,64610,64611,64611,64612,
+64612,64613,64613,64613,64614,64614,64615,64615,64616,64616,64617,64617,64617,
+64618,64618,64619,64619,64620,64620,64621,64621,64621,64622,64622,64623,64623,
+64624,64624,64625,64625,64625,64626,64626,64627,64627,64628,64628,64629,64629,
+64630,64630,64630,64631,64631,64632,64632,64633,64633,64634,64634,64634,64635,
+64635,64636,64636,64637,64637,64638,64638,64638,64639,64639,64640,64640,64641,
+64641,64642,64642,64643,64643,64643,64644,64644,64645,64645,64646,64646,64647,
+64647,64647,64648,64648,64649,64649,64650,64650,64651,64651,64651,64652,64652,
+64653,64653,64654,64654,64655,64655,64655,64656,64656,64657,64657,64658,64658,
+64659,64659,64660,64660,64660,64661,64661,64662,64662,64663,64663,64664,64664,
+64664,64665,64665,64666,64666,64667,64667,64668,64668,64668,64669,64669,64670,
+64670,64671,64671,64672,64672,64672,64673,64673,64674,64674,64675,64675,64676,
+64676,64677,64677,64677,64678,64678,64679,64679,64680,64680,64681,64681,64681,
+64682,64682,64683,64683,64684,64684,64685,64685,64685,64686,64686,64687,64687,
+64688,64688,64689,64689,64689,64690,64690,64691,64691,64692,64692,64693,64693,
+64694,64694,64694,64695,64695,64696,64696,64697,64697,64698,64698,64698,64699,
+64699,64700,64700,64701,64701,64702,64702,64702,64703,64703,64704,64704,64705,
+64705,64706,64706,64706,64707,64707,64708,64708,64709,64709,64710,64710,64711,
+64711,64711,64712,64712,64713,64713,64714,64714,64715,64715,64715,64716,64716,
+64717,64717,64718,64718,64719,64719,64719,64720,64720,64721,64721,64722,64722,
+64723,64723,64723,64724,64724,64725,64725,64726,64726,64727,64727,64727,64728,
+64728,64729,64729,64730,64730,64731,64731,64732,64732,64732,64733,64733,64734,
+64734,64735,64735,64736,64736,64736,64737,64737,64738,64738,64739,64739,64740,
+64740,64740,64741,64741,64742,64742,64743,64743,64744,64744,64744,64745,64745,
+64746,64746,64747,64747,64748,64748,64748,64749,64749,64750,64750,64751,64751,
+64752,64752,64753,64753,64753,64754,64754,64755,64755,64756,64756,64757,64757,
+64757,64758,64758,64759,64759,64760,64760,64761,64761,64761,64762,64762,64763,
+64763,64764,64764,64765,64765,64765,64766,64766,64767,64767,64768,64768,64769,
+64769,64769,64770,64770,64771,64771,64772,64772,64773,64773,64773,64774,64774,
+64775,64775,64776,64776,64777,64777,64778,64778,64778,64779,64779,64780,64780,
+64781,64781,64782,64782,64782,64783,64783,64784,64784,64785,64785,64786,64786,
+64786,64787,64787,64788,64788,64789,64789,64790,64790,64790,64791,64791,64792,
+64792,64793,64793,64794,64794,64794,64795,64795,64796,64796,64797,64797,64798,
+64798,64798,64799,64799,64800,64800,64801,64801,64802,64802,64803,64803,64803,
+64804,64804,64805,64805,64806,64806,64807,64807,64807,64808,64808,64809,64809,
+64810,64810,64811,64811,64811,64812,64812,64813,64813,64814,64814,64815,64815,
+64815,64816,64816,64817,64817,64818,64818,64819,64819,64819,64820,64820,64821,
+64821,64822,64822,64823,64823,64823,64824,64824,64825,64825,64826,64826,64827,
+64827,64827,64828,64828,64829,64829,64830,64830,64831,64831,64832,64832,64832,
+64833,64833,64834,64834,64835,64835,64836,64836,64836,64837,64837,64838,64838,
+64839,64839,64840,64840,64840,64841,64841,64842,64842,64843,64843,64844,64844,
+64844,64845,64845,64846,64846,64847,64847,64848,64848,64848,64849,64849,64850,
+64850,64851,64851,64852,64852,64852,64853,64853,64854,64854,64855,64855,64856,
+64856,64856,64857,64857,64858,64858,64859,64859,64860,64860,64860,64861,64861,
+64862,64862,64863,64863,64864,64864,64864,64865,64865,64866,64866,64867,64867,
+64868,64868,64869,64869,64869,64870,64870,64871,64871,64872,64872,64873,64873,
+64873,64874,64874,64875,64875,64876,64876,64877,64877,64877,64878,64878,64879,
+64879,64880,64880,64881,64881,64881,64882,64882,64883,64883,64884,64884,64885,
+64885,64885,64886,64886,64887,64887,64888,64888,64889,64889,64889,64890,64890,
+64891,64891,64892,64892,64893,64893,64893,64894,64894,64895,64895,64896,64896,
+64897,64897,64897,64898,64898,64899,64899,64900,64900,64901,64901,64901,64902,
+64902,64903,64903,64904,64904,64905,64905,64905,64906,64906,64907,64907,64908,
+64908,64909,64909,64909,64910,64910,64911,64911,64912,64912,64913,64913,64913,
+64914,64914,64915,64915,64916,64916,64917,64917,64917,64918,64918,64919,64919,
+64920,64920,64921,64921,64921,64922,64922,64923,64923,64924,64924,64925,64925,
+64926,64926,64926,64927,64927,64928,64928,64929,64929,64930,64930,64930,64931,
+64931,64932,64932,64933,64933,64934,64934,64934,64935,64935,64936,64936,64937,
+64937,64938,64938,64938,64939,64939,64940,64940,64941,64941,64942,64942,64942,
+64943,64943,64944,64944,64945,64945,64946,64946,64946,64947,64947,64948,64948,
+64949,64949,64950,64950,64950,64951,64951,64952,64952,64953,64953,64954,64954,
+64954,64955,64955,64956,64956,64957,64957,64958,64958,64958,64959,64959,64960,
+64960,64961,64961,64962,64962,64962,64963,64963,64964,64964,64965,64965,64966,
+64966,64966,64967,64967,64968,64968,64969,64969,64970,64970,64970,64971,64971,
+64972,64972,64973,64973,64974,64974,64974,64975,64975,64976,64976,64977,64977,
+64978,64978,64978,64979,64979,64980,64980,64981,64981,64982,64982,64982,64983,
+64983,64984,64984,64985,64985,64986,64986,64986,64987,64987,64988,64988,64989,
+64989,64990,64990,64990,64991,64991,64992,64992,64993,64993,64994,64994,64994,
+64995,64995,64996,64996,64997,64997,64998,64998,64998,64999,64999,65000,65000,
+65001,65001,65002,65002,65002,65003,65003,65004,65004,65005,65005,65006,65006,
+65006,65007,65007,65008,65008,65009,65009,65010,65010,65010,65011,65011,65012,
+65012,65013,65013,65014,65014,65014,65015,65015,65016,65016,65017,65017,65018,
+65018,65018,65019,65019,65020,65020,65021,65021,65022,65022,65022,65023,65023,
+65024,65024,65025,65025,65026,65026,65026,65027,65027,65028,65028,65029,65029,
+65030,65030,65030,65031,65031,65032,65032,65033,65033,65034,65034,65034,65035,
+65035,65036,65036,65037,65037,65038,65038,65038,65039,65039,65040,65040,65041,
+65041,65042,65042,65042,65043,65043,65044,65044,65045,65045,65046,65046,65046,
+65047,65047,65048,65048,65049,65049,65050,65050,65050,65051,65051,65052,65052,
+65053,65053,65054,65054,65054,65055,65055,65056,65056,65057,65057,65058,65058,
+65058,65059,65059,65060,65060,65061,65061,65062,65062,65062,65063,65063,65064,
+65064,65065,65065,65065,65066,65066,65067,65067,65068,65068,65069,65069,65069,
+65070,65070,65071,65071,65072,65072,65073,65073,65073,65074,65074,65075,65075,
+65076,65076,65077,65077,65077,65078,65078,65079,65079,65080,65080,65081,65081,
+65081,65082,65082,65083,65083,65084,65084,65085,65085,65085,65086,65086,65087,
+65087,65088,65088,65089,65089,65089,65090,65090,65091,65091,65092,65092,65093,
+65093,65093,65094,65094,65095,65095,65096,65096,65097,65097,65097,65098,65098,
+65099,65099,65100,65100,65101,65101,65101,65102,65102,65103,65103,65104,65104,
+65105,65105,65105,65106,65106,65107,65107,65108,65108,65109,65109,65109,65110,
+65110,65111,65111,65112,65112,65113,65113,65113,65114,65114,65115,65115,65116,
+65116,65117,65117,65117,65118,65118,65119,65119,65120,65120,65120,65121,65121,
+65122,65122,65123,65123,65124,65124,65124,65125,65125,65126,65126,65127,65127,
+65128,65128,65128,65129,65129,65130,65130,65131,65131,65132,65132,65132,65133,
+65133,65134,65134,65135,65135,65136,65136,65136,65137,65137,65138,65138,65139,
+65139,65140,65140,65140,65141,65141,65142,65142,65143,65143,65144,65144,65144,
+65145,65145,65146,65146,65147,65147,65148,65148,65148,65149,65149,65150,65150,
+65151,65151,65152,65152,65152,65153,65153,65154,65154,65155,65155,65156,65156,
+65156,65157,65157,65158,65158,65159,65159,65159,65160,65160,65161,65161,65162,
+65162,65163,65163,65163,65164,65164,65165,65165,65166,65166,65167,65167,65167,
+65168,65168,65169,65169,65170,65170,65171,65171,65171,65172,65172,65173,65173,
+65174,65174,65175,65175,65175,65176,65176,65177,65177,65178,65178,65179,65179,
+65179,65180,65180,65181,65181,65182,65182,65183,65183,65183,65184,65184,65185,
+65185,65186,65186,65187,65187,65187,65188,65188,65189,65189,65190,65190,65190,
+65191,65191,65192,65192,65193,65193,65194,65194,65194,65195,65195,65196,65196,
+65197,65197,65198,65198,65198,65199,65199,65200,65200,65201,65201,65202,65202,
+65202,65203,65203,65204,65204,65205,65205,65206,65206,65206,65207,65207,65208,
+65208,65209,65209,65210,65210,65210,65211,65211,65212,65212,65213,65213,65213,
+65214,65214,65215,65215,65216,65216,65217,65217,65217,65218,65218,65219,65219,
+65220,65220,65221,65221,65221,65222,65222,65223,65223,65224,65224,65225,65225,
+65225,65226,65226,65227,65227,65228,65228,65229,65229,65229,65230,65230,65231,
+65231,65232,65232,65233,65233,65233,65234,65234,65235,65235,65236,65236,65237,
+65237,65237,65238,65238,65239,65239,65240,65240,65240,65241,65241,65242,65242,
+65243,65243,65244,65244,65244,65245,65245,65246,65246,65247,65247,65248,65248,
+65248,65249,65249,65250,65250,65251,65251,65252,65252,65252,65253,65253,65254,
+65254,65255,65255,65256,65256,65256,65257,65257,65258,65258,65259,65259,65259,
+65260,65260,65261,65261,65262,65262,65263,65263,65263,65264,65264,65265,65265,
+65266,65266,65267,65267,65267,65268,65268,65269,65269,65270,65270,65271,65271,
+65271,65272,65272,65273,65273,65274,65274,65275,65275,65275,65276,65276,65277,
+65277,65278,65278,65278,65279,65279,65280,65280,65281,65281,65282,65282,65282,
+65283,65283,65284,65284,65285,65285,65286,65286,65286,65287,65287,65288,65288,
+65289,65289,65290,65290,65290,65291,65291,65292,65292,65293,65293,65294,65294,
+65294,65295,65295,65296,65296,65297,65297,65297,65298,65298,65299,65299,65300,
+65300,65301,65301,65301,65302,65302,65303,65303,65304,65304,65305,65305,65305,
+65306,65306,65307,65307,65308,65308,65309,65309,65309,65310,65310,65311,65311,
+65312,65312,65313,65313,65313,65314,65314,65315,65315,65316,65316,65316,65317,
+65317,65318,65318,65319,65319,65320,65320,65320,65321,65321,65322,65322,65323,
+65323,65324,65324,65324,65325,65325,65326,65326,65327,65327,65328,65328,65328,
+65329,65329,65330,65330,65331,65331,65331,65332,65332,65333,65333,65334,65334,
+65335,65335,65335,65336,65336,65337,65337,65338,65338,65339,65339,65339,65340,
+65340,65341,65341,65342,65342,65343,65343,65343,65344,65344,65345,65345,65346,
+65346,65346,65347,65347,65348,65348,65349,65349,65350,65350,65350,65351,65351,
+65352,65352,65353,65353,65354,65354,65354,65355,65355,65356,65356,65357,65357,
+65358,65358,65358,65359,65359,65360,65360,65361,65361,65361,65362,65362,65363,
+65363,65364,65364,65365,65365,65365,65366,65366,65367,65367,65368,65368,65369,
+65369,65369,65370,65370,65371,65371,65372,65372,65373,65373,65373,65374,65374,
+65375,65375,65376,65376,65376,65377,65377,65378,65378,65379,65379,65380,65380,
+65380,65381,65381,65382,65382,65383,65383,65384,65384,65384,65385,65385,65386,
+65386,65387,65387,65388,65388,65388,65389,65389,65390,65390,65391,65391,65391,
+65392,65392,65393,65393,65394,65394,65395,65395,65395,65396,65396,65397,65397,
+65398,65398,65399,65399,65399,65400,65400,65401,65401,65402,65402,65403,65403,
+65403,65404,65404,65405,65405,65406,65406,65406,65407,65407,65408,65408,65409,
+65409,65410,65410,65410,65411,65411,65412,65412,65413,65413,65414,65414,65414,
+65415,65415,65416,65416,65417,65417,65417,65418,65418,65419,65419,65420,65420,
+65421,65421,65421,65422,65422,65423,65423,65424,65424,65425,65425,65425,65426,
+65426,65427,65427,65428,65428,65428,65429,65429,65430,65430,65431,65431,65432,
+65432,65432,65433,65433,65434,65434,65435,65435,65436,65436,65436,65437,65437,
+65438,65438,65439,65439,65440,65440,65440,65441,65441,65442,65442,65443,65443,
+65443,65444,65444,65445,65445,65446,65446,65447,65447,65447,65448,65448,65449,
+65449,65450,65450,65451,65451,65451,65452,65452,65453,65453,65454,65454,65454,
+65455,65455,65456,65456,65457,65457,65458,65458,65458,65459,65459,65460,65460,
+65461,65461,65462,65462,65462,65463,65463,65464,65464,65465,65465,65465,65466,
+65466,65467,65467,65468,65468,65469,65469,65469,65470,65470,65471,65471,65472,
+65472,65473,65473,65473,65474,65474,65475,65475,65476,65476,65476,65477,65477,
+65478,65478,65479,65479,65480,65480,65480,65481,65481,65482,65482,65483,65483,
+65484,65484,65484,65485,65485,65486,65486,65487,65487,65487,65488,65488,65489,
+65489,65490,65490,65491,65491,65491,65492,65492,65493,65493,65494,65494,65495,
+65495,65495,65496,65496,65497,65497,65498,65498,65498,65499,65499,65500,65500,
+65501,65501,65502,65502,65502,65503,65503,65504,65504,65505,65505,65506,65506,
+65506,65507,65507,65508,65508,65509,65509,65509,65510,65510,65511,65511,65512,
+65512,65513,65513,65513,65514,65514,65515,65515,65516,65516,65517,65517,65517,
+65518,65518,65519,65519,65520,65520,65520,65521,65521,65522,65522,65523,65523,
+65524,65524,65524,65525,65525,65526,65526,65527,65527,65528,65528,65528,65529,
+65529,65530,65530,65531,65531,65531,65532,65532,65533,65533,65534,65534,65535,
+65535
+};
+
--- /dev/null
+/* babl - dynamically extendable universal pixel conversion library.
+ * Copyright (C) 2012 Øyvind Kolås.
+ *
+ * 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 3 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, see
+ * <http://www.gnu.org/licenses/>.
+ */
+
+#include <stdlib.h>
+#include "babl.h"
+
+#include "base/util.h"
+#include "extensions/cairo-tables.h"
+
+int init (void);
+
+static inline long
+conv_rgba8_cairo24_le (unsigned char *src, unsigned char *dst, long samples)
+{
+ long n = samples;
+ while (n--)
+ {
+ dst[0] = src[2];
+ dst[1] = src[1];
+ dst[2] = src[0];
+ dst[3] = src[0];
+ src+=4;
+ dst+=4;
+ }
+ return samples;
+}
+
+static inline long
+conv_rgb8_cairo24_le (unsigned char *src, unsigned char *dst, long samples)
+{
+ long n = samples;
+ while (n--)
+ {
+ dst[0] = src[2];
+ dst[1] = src[1];
+ dst[2] = src[0];
+ dst[3] = src[0];
+ src+=3;
+ dst+=4;
+ }
+ return samples;
+}
+
+static inline long
+conv_rgbA8_premul_cairo32_le (unsigned char *src, unsigned char *dst, long samples)
+{
+ long n = samples;
+ while (n--)
+ {
+ dst[0] = src[2];
+ dst[1] = src[1];
+ dst[2] = src[0];
+ dst[3] = src[3];
+ src+=4;
+ dst+=4;
+ }
+ return samples;
+}
+
+static inline long
+conv_rgbA8_cairo32_le (unsigned char *src, unsigned char *dst, long samples)
+{
+ long n = samples;
+ while (n--)
+ {
+#define div_255(a) ((((a)+127)+(((a)+127)>>8))>>8)
+ dst[0] = div_255 (src[2] * src[3]);
+ dst[1] = div_255 (src[1] * src[3]);
+ dst[2] = div_255 (src[0] * src[3]);
+#undef div_255
+ dst[3] = src[3];
+ src+=4;
+ dst+=4;
+ }
+ return samples;
+}
+
+static inline unsigned char
+conv_rgbafloat_cairo32_map (float value,
+ float alpha)
+{
+ unsigned short index;
+ float result;
+ if (value < 0.0)
+ return 0;
+ else if (value > 1.0)
+ return 0xFF;
+ index = (unsigned short)(value * 0xFFFF);
+ result = linear_to_gamma16[index] / 257.0; /* 65535.0 / 255.0 */
+
+ return (result * alpha) + 0.5f;
+}
+
+static long
+conv_rgbafloat_cairo32_le (unsigned char *src_char,
+ unsigned char *dst,
+ long samples)
+{
+ long n = samples;
+ float *src = (float*)src_char;
+
+ while (n--)
+ {
+ if (src[3] < BABL_ALPHA_THRESHOLD)
+ {
+ *(int *)dst = 0;
+ }
+ else
+ {
+ if (src[3] >= 1.0)
+ {
+ dst[0] = conv_rgbafloat_cairo32_map (src[2], 1.0f);
+ dst[1] = conv_rgbafloat_cairo32_map (src[1], 1.0f);
+ dst[2] = conv_rgbafloat_cairo32_map (src[0], 1.0f);
+ dst[3] = 0xFF;
+ }
+ else
+ {
+ dst[0] = conv_rgbafloat_cairo32_map (src[2], src[3]);
+ dst[1] = conv_rgbafloat_cairo32_map (src[1], src[3]);
+ dst[2] = conv_rgbafloat_cairo32_map (src[0], src[3]);
+ dst[3] = src[3] * 0xFF + 0.5f;
+ }
+ }
+
+ src += 4;
+ dst += 4;
+ }
+ return samples;
+}
+
+int
+init (void)
+{
+ int testint = 23;
+ char *testchar = (char*) &testint;
+ int littleendian = (testchar[0] == 23);
+
+ if (littleendian)
+ {
+ const Babl *f32 = babl_format_new (
+ "name", "cairo-ARGB32",
+ babl_model ("R'aG'aB'aA"),
+ babl_type ("u8"),
+ babl_component ("B'a"),
+ babl_component ("G'a"),
+ babl_component ("R'a"),
+ babl_component ("A"),
+ NULL
+ );
+
+ const Babl *f24 = babl_format_new (
+ "name", "cairo-RGB24",
+ babl_model ("R'G'B'"),
+ babl_type ("u8"),
+ babl_component ("B'"),
+ babl_component ("G'"),
+ babl_component ("R'"),
+ babl_component ("PAD"),
+ NULL
+ );
+
+ babl_conversion_new (babl_format ("R'aG'aB'aA u8"), f32, "linear",
+ conv_rgbA8_premul_cairo32_le, NULL);
+ babl_conversion_new (babl_format ("R'G'B'A u8"), f32, "linear",
+ conv_rgbA8_cairo32_le, NULL);
+
+ babl_conversion_new (babl_format ("RGBA float"), f32, "linear",
+ conv_rgbafloat_cairo32_le, NULL);
+
+ babl_conversion_new (babl_format ("R'G'B'A u8"), f24, "linear",
+ conv_rgba8_cairo24_le, NULL);
+ babl_conversion_new (babl_format ("R'G'B' u8"), f24, "linear",
+ conv_rgb8_cairo24_le, NULL);
+ }
+ else
+ {
+ babl_format_new (
+ "name", "cairo-ARGB32",
+ babl_model ("R'aG'aB'aA"),
+ babl_type ("u8"),
+ babl_component ("A"),
+ babl_component ("R'a"),
+ babl_component ("G'a"),
+ babl_component ("B'a"),
+ NULL
+ );
+ babl_format_new (
+ "name", "cairo-RGB24",
+ babl_model ("R'G'B'"),
+ babl_type ("u8"),
+ babl_component ("PAD"),
+ babl_component ("R'"),
+ babl_component ("G'"),
+ babl_component ("B'"),
+ NULL
+ );
+ }
+ babl_format_new (
+ "name", "cairo-A8",
+ babl_model ("YA"),
+ babl_type ("u8"),
+ babl_component ("A"),
+ NULL
+ );
+ return 0;
+}
--- /dev/null
+/* babl - dynamically extendable universal pixel conversion library.
+ * Copyright (C) 2012, Øyvind Kolås
+ *
+ * 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 3 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, see
+ * <http://www.gnu.org/licenses/>.
+ */
+
+#include "config.h"
+
+#include <stdint.h>
+#include <stdlib.h>
+
+#include "babl.h"
+#include "babl-cpuaccel.h"
+#include "extensions/util.h"
+#include "base/util.h"
+
+#define INLINE inline
+
+#define LSHIFT 2
+
+typedef float (* BablLookupFunction) (float value,
+ void *data);
+#define babl_LOOKUP_MAX_ENTRIES (819200)
+
+typedef struct BablLookup
+{
+ BablLookupFunction function;
+ void *data;
+ int shift;
+ uint32_t positive_min, positive_max, negative_min, negative_max;
+ uint32_t bitmask[babl_LOOKUP_MAX_ENTRIES/32];
+ float table[];
+} BablLookup;
+
+
+static BablLookup *babl_lookup_new (BablLookupFunction function,
+ void * data,
+ float start,
+ float end,
+ float precision);
+#if 0
+static void babl_lookup_free (BablLookup *lookup);
+#endif
+
+
+static inline float
+babl_lookup (BablLookup *lookup,
+ float number)
+{
+ union
+ {
+ float f;
+ uint32_t i;
+ } u;
+ uint32_t i;
+
+ u.f = number;
+ i = (u.i << LSHIFT )>> lookup->shift;
+
+ if (i > lookup->positive_min &&
+ i < lookup->positive_max)
+ i = i - lookup->positive_min;
+ else if (i > lookup->negative_min &&
+ i < lookup->negative_max)
+ i = i - lookup->negative_min + (lookup->positive_max - lookup->positive_min);
+ else
+ return lookup->function (number, lookup->data);
+
+ if (!(lookup->bitmask[i/32] & (1<<(i & 31))))
+ {
+ /* XXX: should look up the value in the middle of the range
+ * that yields a given value,
+ *
+ * potentially even do linear interpolation between
+ * the two neighbour values to get away with a tiny
+ * lookup table..
+ */
+ lookup->table[i]= lookup->function (number, lookup->data);
+ lookup->bitmask[i/32] |= (1<<(i & 31));
+ }
+
+ return lookup->table[i];
+}
+
+static BablLookup *
+babl_lookup_new (BablLookupFunction function,
+ void * data,
+ float start,
+ float end,
+ float precision)
+{
+ BablLookup *lookup;
+ union
+ {
+ float f;
+ uint32_t i;
+ } u;
+ int positive_min, positive_max, negative_min, negative_max;
+ int shift;
+
+ /* normalize input parameters */
+ if (start > end)
+ { /* swap */
+ u.f = start;
+ start = end;
+ end = u.f;
+ }
+
+ if (precision <= 0.000005) shift = 0; /* checked for later */
+ else if (precision <= 0.000010) shift = 8;
+ else if (precision <= 0.000020) shift = 9;
+ else if (precision <= 0.000040) shift = 10;
+ else if (precision <= 0.000081) shift = 11;
+ else if (precision <= 0.000161) shift = 12;
+ else if (precision <= 0.000324) shift = 14;
+ else if (precision <= 0.000649) shift = 15;
+ else shift = 16; /* a bit better than 8bit sRGB quality */
+
+ /* Adjust slightly away from 0.0, saving many entries close to 0, this
+ * causes lookups very close to zero to be passed directly to the
+ * function instead.
+ */
+ if (start == 0.0)
+ start = precision;
+ if (end == 0.0)
+ end = -precision;
+
+ /* Compute start and */
+
+ if (start < 0.0 || end < 0.0)
+ {
+ if (end < 0.0)
+ {
+ u.f = start;
+ positive_max = (u.i << LSHIFT) >> shift;
+ u.f = end;
+ positive_min = (u.i << LSHIFT) >> shift;
+ negative_min = positive_max;
+ negative_max = positive_max;
+ }
+ else
+ {
+ u.f = 0 - precision;
+ positive_min = (u.i << LSHIFT) >> shift;
+ u.f = start;
+ positive_max = (u.i << LSHIFT) >> shift;
+
+ u.f = 0 + precision;
+ negative_min = (u.i << LSHIFT) >> shift;
+ u.f = end;
+ negative_max = (u.i << LSHIFT) >> shift;
+ }
+ }
+ else
+ {
+ u.f = start;
+ positive_min = (u.i << LSHIFT) >> shift;
+ u.f = end;
+ positive_max = (u.i << LSHIFT) >> shift;
+ negative_min = positive_max;
+ negative_max = positive_max;
+ }
+
+ if (shift == 0) /* short circuit, do not use ranges */
+ {
+ positive_min = positive_max = negative_min = negative_max = 0;
+ }
+
+ if ((positive_max-positive_min) + (negative_max-negative_min) > babl_LOOKUP_MAX_ENTRIES)
+ {
+ /* Reduce the size of the cache tables to fit within the bittable
+ * budget (the maximum allocation is around 2.18mb of memory
+ */
+
+ int diff = (positive_max-positive_min) + (negative_max-negative_min) - babl_LOOKUP_MAX_ENTRIES;
+
+ if (negative_max - negative_min > 0)
+ {
+ if (negative_max - negative_min >= diff)
+ {
+ negative_max -= diff;
+ diff = 0;
+ }
+ else
+ {
+ diff -= negative_max - negative_min;
+ negative_max = negative_min;
+ }
+ }
+ if (diff)
+ positive_max-=diff;
+ }
+
+ lookup = calloc (sizeof (BablLookup) + sizeof (float) *
+ ((positive_max-positive_min)+
+ (negative_max-negative_min)), 1);
+
+ lookup->positive_min = positive_min;
+ lookup->positive_max = positive_max;
+ lookup->negative_min = negative_min;
+ lookup->negative_max = negative_max;
+ lookup->shift = shift;
+ lookup->function = function;
+ lookup->data = data;
+
+ return lookup;
+}
+
+static BablLookup *fast_pow = NULL;
+
+static inline float core_lookup (float val, void *userdata)
+{
+ return linear_to_gamma_2_2 (val);
+}
+
+static float
+linear_to_gamma_2_2_lut (float val)
+{
+ return babl_lookup (fast_pow, val);
+}
+
+
+static BablLookup *fast_rpow = NULL;
+
+static inline float core_rlookup (float val, void *userdata)
+{
+ return gamma_2_2_to_linear (val);
+}
+
+static float
+gamma_2_2_to_linear_lut (float val)
+{
+ return babl_lookup (fast_rpow, val);
+}
+
+#if 0
+static void
+babl_lookup_free (BablLookup *lookup)
+{
+ free (lookup);
+}
+#endif
+
+static INLINE long
+conv_rgbaF_linear_rgbAF_gamma (unsigned char *src,
+ unsigned char *dst,
+ long samples)
+{
+ float *fsrc = (float *) src;
+ float *fdst = (float *) dst;
+ int n = samples;
+
+ while (n--)
+ {
+ float alpha = fsrc[3];
+ *fdst++ = linear_to_gamma_2_2_lut (*fsrc++) * alpha;
+ *fdst++ = linear_to_gamma_2_2_lut (*fsrc++) * alpha;
+ *fdst++ = linear_to_gamma_2_2_lut (*fsrc++) * alpha;
+ *fdst++ = *fsrc++;
+ }
+ return samples;
+}
+
+static INLINE long
+conv_rgbAF_linear_rgbAF_gamma (unsigned char *src,
+ unsigned char *dst,
+ long samples)
+{
+ float *fsrc = (float *) src;
+ float *fdst = (float *) dst;
+ int n = samples;
+
+ while (n--)
+ {
+ float alpha = fsrc[3];
+ if (alpha < BABL_ALPHA_THRESHOLD)
+ {
+ *fdst++ = 0.0;
+ *fdst++ = 0.0;
+ *fdst++ = 0.0;
+ *fdst++ = 0.0;
+ fsrc+=4;
+ }
+ else if (alpha >= 1.0)
+ {
+ *fdst++ = linear_to_gamma_2_2_lut (*fsrc++);
+ *fdst++ = linear_to_gamma_2_2_lut (*fsrc++);
+ *fdst++ = linear_to_gamma_2_2_lut (*fsrc++);
+ *fdst++ = *fsrc++;
+ }
+ else
+ {
+ float alpha_recip = 1.0 / alpha;
+ *fdst++ = linear_to_gamma_2_2_lut (*fsrc++ * alpha_recip) * alpha;
+ *fdst++ = linear_to_gamma_2_2_lut (*fsrc++ * alpha_recip) * alpha;
+ *fdst++ = linear_to_gamma_2_2_lut (*fsrc++ * alpha_recip) * alpha;
+ *fdst++ = *fsrc++;
+ }
+ }
+ return samples;
+}
+
+static INLINE long
+conv_rgbaF_linear_rgbaF_gamma (unsigned char *src,
+ unsigned char *dst,
+ long samples)
+{
+ float *fsrc = (float *) src;
+ float *fdst = (float *) dst;
+ int n = samples;
+
+ while (n--)
+ {
+ *fdst++ = linear_to_gamma_2_2_lut (*fsrc++);
+ *fdst++ = linear_to_gamma_2_2_lut (*fsrc++);
+ *fdst++ = linear_to_gamma_2_2_lut (*fsrc++);
+ *fdst++ = *fsrc++;
+ }
+ return samples;
+}
+
+static INLINE long
+conv_rgbF_linear_rgbF_gamma (unsigned char *src,
+ unsigned char *dst,
+ long samples)
+{
+ float *fsrc = (float *) src;
+ float *fdst = (float *) dst;
+ int n = samples;
+
+ while (n--)
+ {
+ *fdst++ = linear_to_gamma_2_2_lut (*fsrc++);
+ *fdst++ = linear_to_gamma_2_2_lut (*fsrc++);
+ *fdst++ = linear_to_gamma_2_2_lut (*fsrc++);
+ }
+ return samples;
+}
+
+
+static INLINE long
+conv_rgbaF_gamma_rgbaF_linear (unsigned char *src,
+ unsigned char *dst,
+ long samples)
+{
+ float *fsrc = (float *) src;
+ float *fdst = (float *) dst;
+ int n = samples;
+
+ while (n--)
+ {
+ *fdst++ = gamma_2_2_to_linear_lut (*fsrc++);
+ *fdst++ = gamma_2_2_to_linear_lut (*fsrc++);
+ *fdst++ = gamma_2_2_to_linear_lut (*fsrc++);
+ *fdst++ = *fsrc++;
+ }
+ return samples;
+}
+
+static INLINE long
+conv_rgbF_gamma_rgbF_linear (unsigned char *src,
+ unsigned char *dst,
+ long samples)
+{
+ float *fsrc = (float *) src;
+ float *fdst = (float *) dst;
+ int n = samples;
+
+ while (n--)
+ {
+ *fdst++ = gamma_2_2_to_linear_lut (*fsrc++);
+ *fdst++ = gamma_2_2_to_linear_lut (*fsrc++);
+ *fdst++ = gamma_2_2_to_linear_lut (*fsrc++);
+ }
+ return samples;
+}
+
+#define o(src, dst) \
+ babl_conversion_new (src, dst, "linear", conv_ ## src ## _ ## dst, NULL)
+
+int init (void);
+
+int
+init (void)
+{
+ const Babl *rgbaF_linear = babl_format_new (
+ babl_model ("RGBA"),
+ babl_type ("float"),
+ babl_component ("R"),
+ babl_component ("G"),
+ babl_component ("B"),
+ babl_component ("A"),
+ NULL);
+ const Babl *rgbAF_linear = babl_format_new (
+ babl_model ("RaGaBaA"),
+ babl_type ("float"),
+ babl_component ("Ra"),
+ babl_component ("Ga"),
+ babl_component ("Ba"),
+ babl_component ("A"),
+ NULL);
+ const Babl *rgbaF_gamma = babl_format_new (
+ babl_model ("R'G'B'A"),
+ babl_type ("float"),
+ babl_component ("R'"),
+ babl_component ("G'"),
+ babl_component ("B'"),
+ babl_component ("A"),
+ NULL);
+ const Babl *rgbAF_gamma = babl_format_new (
+ babl_model ("R'aG'aB'aA"),
+ babl_type ("float"),
+ babl_component ("R'a"),
+ babl_component ("G'a"),
+ babl_component ("B'a"),
+ babl_component ("A"),
+ NULL);
+ const Babl *rgbF_linear = babl_format_new (
+ babl_model ("RGB"),
+ babl_type ("float"),
+ babl_component ("R"),
+ babl_component ("G"),
+ babl_component ("B"),
+ NULL);
+ const Babl *rgbF_gamma = babl_format_new (
+ babl_model ("R'G'B'"),
+ babl_type ("float"),
+ babl_component ("R'"),
+ babl_component ("G'"),
+ babl_component ("B'"),
+ NULL);
+
+ {
+ float f;
+ float a;
+
+ fast_pow = babl_lookup_new (core_lookup, NULL, 0.0, 1.0, 0.0001);
+ fast_rpow = babl_lookup_new (core_rlookup, NULL, 0.0, 1.0, 0.0001);
+
+ for (f = 0.0; f < 1.0; f+= 0.00001)
+ {
+ a = linear_to_gamma_2_2_lut (f);
+ a = gamma_2_2_to_linear_lut (f);
+ }
+ if (a < -10)
+ f = 2;
+
+ }
+
+ o (rgbAF_linear, rgbAF_gamma);
+ o (rgbaF_linear, rgbAF_gamma);
+ o (rgbaF_linear, rgbaF_gamma);
+ o (rgbaF_gamma, rgbaF_linear);
+ o (rgbF_linear, rgbF_gamma);
+ o (rgbF_gamma, rgbF_linear);
+
+ return 0;
+}
+
--- /dev/null
+/* babl - dynamically extendable universal pixel conversion library.
+ * Copyright (C) 2015 Daniel Sabo
+ * 2016 Øyvind Kolås
+ *
+ * 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 3 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, see
+ * <http://www.gnu.org/licenses/>.
+ */
+
+/* Copyright: (c) 2009 by James Tursa, All Rights Reserved
+ *
+ * This code uses the BSD License:
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the distribution
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * halfprecision converts the input argument to/from a half precision floating
+ * point bit pattern corresponding to IEEE 754r. The bit pattern is stored in a
+ * uint16 class variable. Please note that halfprecision is *not* a class. That
+ * is, you cannot do any arithmetic with the half precision bit patterns.
+ * halfprecision is simply a function that converts the IEEE 754r half precision
+ * bit pattern to/from other numeric MATLAB variables. You can, however, take
+ * the half precision bit patterns, convert them to single or double, do the
+ * operation, and then convert the result back manually.
+ *
+ * 1 bit sign bit
+ * 5 bits exponent, biased by 15
+ * 10 bits mantissa, hidden leading bit, normalized to 1.0
+ *
+ * Special floating point bit patterns recognized and supported:
+ *
+ * All exponent bits zero:
+ * - If all mantissa bits are zero, then number is zero (possibly signed)
+ * - Otherwise, number is a denormalized bit pattern
+ *
+ * All exponent bits set to 1:
+ * - If all mantissa bits are zero, then number is +Infinity or -Infinity
+ * - Otherwise, number is NaN (Not a Number)
+ */
+
+#include "config.h"
+
+#include <stdint.h>
+#include <stdlib.h>
+
+#include "babl.h"
+#include "extensions/util.h"
+
+static void halfp2singles(void *target, const void *source, long numel)
+{
+ uint16_t *hp = (uint16_t *) source; // Type pun input as an unsigned 16-bit int
+ uint32_t *xp = (uint32_t *) target; // Type pun output as an unsigned 32-bit int
+ uint16_t h, hs, he, hm;
+ uint32_t xs, xe, xm;
+ int32_t xes;
+ int e;
+
+ if( source == NULL || target == NULL ) // Nothing to convert (e.g., imag part of pure real)
+ return;
+ while( numel-- ) {
+ h = *hp++;
+ if( (h & 0x7FFFu) == 0 ) { // Signed zero
+ *xp++ = ((uint32_t) h) << 16; // Return the signed zero
+ } else { // Not zero
+ hs = h & 0x8000u; // Pick off sign bit
+ he = h & 0x7C00u; // Pick off exponent bits
+ hm = h & 0x03FFu; // Pick off mantissa bits
+ if( he == 0 ) { // Denormal will convert to normalized
+ e = -1; // The following loop figures out how much extra to adjust the exponent
+ do {
+ e++;
+ hm <<= 1;
+ } while( (hm & 0x0400u) == 0 ); // Shift until leading bit overflows into exponent bit
+ xs = ((uint32_t) hs) << 16; // Sign bit
+ xes = ((int32_t) (he >> 10)) - 15 + 127 - e; // Exponent unbias the halfp, then bias the single
+ xe = (uint32_t) (xes << 23); // Exponent
+ xm = ((uint32_t) (hm & 0x03FFu)) << 13; // Mantissa
+ *xp++ = (xs | xe | xm); // Combine sign bit, exponent bits, and mantissa bits
+ } else if( he == 0x7C00u ) { // Inf or NaN (all the exponent bits are set)
+ if( hm == 0 ) { // If mantissa is zero ...
+ *xp++ = (((uint32_t) hs) << 16) | ((uint32_t) 0x7F800000u); // Signed Inf
+ } else {
+ *xp++ = (uint32_t) 0xFFC00000u; // NaN, only 1st mantissa bit set
+ }
+ } else { // Normalized number
+ xs = ((uint32_t) hs) << 16; // Sign bit
+ xes = ((int32_t) (he >> 10)) - 15 + 127; // Exponent unbias the halfp, then bias the single
+ xe = (uint32_t) (xes << 23); // Exponent
+ xm = ((uint32_t) hm) << 13; // Mantissa
+ *xp++ = (xs | xe | xm); // Combine sign bit, exponent bits, and mantissa bits
+ }
+ }
+ }
+}
+
+static void singles2halfp(void *target, const void *source, long numel)
+{
+ uint16_t *hp = (uint16_t *) target; // Type pun output as an unsigned 16-bit int
+ uint32_t *xp = (uint32_t *) source; // Type pun input as an unsigned 32-bit int
+ uint16_t hs, he, hm;
+ uint32_t x, xs, xe, xm;
+ int hes;
+
+ if( source == NULL || target == NULL ) { // Nothing to convert (e.g., imag part of pure real)
+ return;
+ }
+ while( numel-- ) {
+ x = *xp++;
+ if( (x & 0x7FFFFFFFu) == 0 ) { // Signed zero
+ *hp++ = (uint16_t) (x >> 16); // Return the signed zero
+ } else { // Not zero
+ xs = x & 0x80000000u; // Pick off sign bit
+ xe = x & 0x7F800000u; // Pick off exponent bits
+ xm = x & 0x007FFFFFu; // Pick off mantissa bits
+ if( xe == 0 ) { // Denormal will underflow, return a signed zero
+ *hp++ = (uint16_t) (xs >> 16);
+ } else if( xe == 0x7F800000u ) { // Inf or NaN (all the exponent bits are set)
+ if( xm == 0 ) { // If mantissa is zero ...
+ *hp++ = (uint16_t) ((xs >> 16) | 0x7C00u); // Signed Inf
+ } else {
+ *hp++ = (uint16_t) 0xFE00u; // NaN, only 1st mantissa bit set
+ }
+ } else { // Normalized number
+ hs = (uint16_t) (xs >> 16); // Sign bit
+ hes = ((int)(xe >> 23)) - 127 + 15; // Exponent unbias the single, then bias the halfp
+ if( hes >= 0x1F ) { // Overflow
+ *hp++ = (uint16_t) ((xs >> 16) | 0x7C00u); // Signed Inf
+ } else if( hes <= 0 ) { // Underflow
+ if( (14 - hes) > 24 ) { // Mantissa shifted all the way off & no rounding possibility
+ hm = (uint16_t) 0u; // Set mantissa to zero
+ } else {
+ xm |= 0x00800000u; // Add the hidden leading bit
+ hm = (uint16_t) (xm >> (14 - hes)); // Mantissa
+ if( (xm >> (13 - hes)) & 0x00000001u ) // Check for rounding
+ hm += (uint16_t) 1u; // Round, might overflow into exp bit, but this is OK
+ }
+ *hp++ = (hs | hm); // Combine sign bit and mantissa bits, biased exponent is zero
+ } else {
+ he = (uint16_t) (hes << 10); // Exponent
+ hm = (uint16_t) (xm >> 13); // Mantissa
+ if( xm & 0x00001000u ) // Check for rounding
+ *hp++ = (hs | he | hm) + (uint16_t) 1u; // Round, might overflow to inf, this is OK
+ else
+ *hp++ = (hs | he | hm); // No rounding
+ }
+ }
+ }
+ }
+}
+
+static inline long
+conv_yHalf_yF (const uint16_t *src, float *dst, long samples)
+{
+ halfp2singles(dst, src, samples);
+ return samples;
+}
+
+static long
+conv_yaHalf_yaF (const uint16_t *src, float *dst, long samples)
+{
+ return conv_yHalf_yF (src, dst, samples * 2) / 2;
+}
+
+static long
+conv_rgbHalf_rgbF (const uint16_t *src, float *dst, long samples)
+{
+ return conv_yHalf_yF (src, dst, samples * 3) / 3;
+}
+
+static long
+conv_rgbaHalf_rgbaF (const uint16_t *src, float *dst, long samples)
+{
+ return conv_yHalf_yF (src, dst, samples * 4) / 4;
+}
+
+static inline long
+conv_yF_yHalf (const float *src, uint16_t *dst, long samples)
+{
+ singles2halfp (dst, src, samples);
+ return samples;
+}
+
+static long
+conv_yaF_yaHalf (const float *src, uint16_t *dst, long samples)
+{
+ return conv_yF_yHalf (src, dst, samples * 2) / 2;
+}
+
+static long
+conv_rgbF_rgbHalf (const float *src, uint16_t *dst, long samples)
+{
+ return conv_yF_yHalf (src, dst, samples * 3) / 3;
+}
+
+static long
+conv_rgbaF_rgbaHalf (const float *src, uint16_t *dst, long samples)
+{
+ return conv_yF_yHalf (src, dst, samples * 4) / 4;
+}
+
+int init (void);
+
+int
+init (void)
+{
+ const Babl *rgbaF_linear = babl_format_new (
+ babl_model ("RGBA"),
+ babl_type ("float"),
+ babl_component ("R"),
+ babl_component ("G"),
+ babl_component ("B"),
+ babl_component ("A"),
+ NULL);
+ const Babl *rgbaHalf_linear = babl_format_new (
+ babl_model ("RGBA"),
+ babl_type ("half"),
+ babl_component ("R"),
+ babl_component ("G"),
+ babl_component ("B"),
+ babl_component ("A"),
+ NULL);
+ const Babl *rgbaF_gamma = babl_format_new (
+ babl_model ("R'G'B'A"),
+ babl_type ("float"),
+ babl_component ("R'"),
+ babl_component ("G'"),
+ babl_component ("B'"),
+ babl_component ("A"),
+ NULL);
+ const Babl *rgbaHalf_gamma = babl_format_new (
+ babl_model ("R'G'B'A"),
+ babl_type ("half"),
+ babl_component ("R'"),
+ babl_component ("G'"),
+ babl_component ("B'"),
+ babl_component ("A"),
+ NULL);
+ const Babl *rgbF_linear = babl_format_new (
+ babl_model ("RGB"),
+ babl_type ("float"),
+ babl_component ("R"),
+ babl_component ("G"),
+ babl_component ("B"),
+ NULL);
+ const Babl *rgbHalf_linear = babl_format_new (
+ babl_model ("RGB"),
+ babl_type ("half"),
+ babl_component ("R"),
+ babl_component ("G"),
+ babl_component ("B"),
+ NULL);
+ const Babl *rgbF_gamma = babl_format_new (
+ babl_model ("R'G'B'"),
+ babl_type ("float"),
+ babl_component ("R'"),
+ babl_component ("G'"),
+ babl_component ("B'"),
+ NULL);
+ const Babl *rgbHalf_gamma = babl_format_new (
+ babl_model ("R'G'B'"),
+ babl_type ("half"),
+ babl_component ("R'"),
+ babl_component ("G'"),
+ babl_component ("B'"),
+ NULL);
+ const Babl *yaF_linear = babl_format_new (
+ babl_model ("YA"),
+ babl_type ("float"),
+ babl_component ("Y"),
+ babl_component ("A"),
+ NULL);
+ const Babl *yaHalf_linear = babl_format_new (
+ babl_model ("YA"),
+ babl_type ("half"),
+ babl_component ("Y"),
+ babl_component ("A"),
+ NULL);
+ const Babl *yaF_gamma = babl_format_new (
+ babl_model ("Y'A"),
+ babl_type ("float"),
+ babl_component ("Y'"),
+ babl_component ("A"),
+ NULL);
+ const Babl *yaHalf_gamma = babl_format_new (
+ babl_model ("Y'A"),
+ babl_type ("half"),
+ babl_component ("Y'"),
+ babl_component ("A"),
+ NULL);
+ const Babl *yF_linear = babl_format_new (
+ babl_model ("Y"),
+ babl_type ("float"),
+ babl_component ("Y"),
+ NULL);
+ const Babl *yHalf_linear = babl_format_new (
+ babl_model ("Y"),
+ babl_type ("half"),
+ babl_component ("Y"),
+ NULL);
+ const Babl *yF_gamma = babl_format_new (
+ babl_model ("Y'"),
+ babl_type ("float"),
+ babl_component ("Y'"),
+ NULL);
+ const Babl *yHalf_gamma = babl_format_new (
+ babl_model ("Y'"),
+ babl_type ("half"),
+ babl_component ("Y'"),
+ NULL);
+
+#define CONV(src, dst) \
+{ \
+ babl_conversion_new (src ## _linear, dst ## _linear, "linear", conv_ ## src ## _ ## dst, NULL); \
+ babl_conversion_new (src ## _gamma, dst ## _gamma, "linear", conv_ ## src ## _ ## dst, NULL); \
+}
+
+ CONV(rgbaHalf, rgbaF);
+ CONV(rgbHalf, rgbF);
+ CONV(yaHalf, yaF);
+ CONV(yHalf, yF);
+ CONV(rgbaF, rgbaHalf);
+ CONV(rgbF, rgbHalf);
+ CONV(yaF, yaHalf);
+ CONV(yF, yHalf);
+
+ return 0;
+}
--- /dev/null
+/* babl - dynamically extendable universal pixel conversion library.
+ * Copyright (C) 2012, Øyvind Kolås
+ *
+ * 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 3 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, see
+ * <http://www.gnu.org/licenses/>.
+ */
+
+#include "config.h"
+
+#include <stdint.h>
+#include <stdlib.h>
+
+#include "babl.h"
+#include "babl-cpuaccel.h"
+#include "extensions/util.h"
+#include "base/util.h"
+
+#define INLINE inline
+
+
+static INLINE long
+conv_rgbaF_linear_rgbAF_gamma (unsigned char *src,
+ unsigned char *dst,
+ long samples)
+{
+ float *fsrc = (float *) src;
+ float *fdst = (float *) dst;
+ int n = samples;
+
+ while (n--)
+ {
+ float alpha = fsrc[3];
+ *fdst++ = babl_linear_to_gamma_2_2 (*fsrc++) * alpha;
+ *fdst++ = babl_linear_to_gamma_2_2 (*fsrc++) * alpha;
+ *fdst++ = babl_linear_to_gamma_2_2 (*fsrc++) * alpha;
+ *fdst++ = *fsrc++;
+ }
+ return samples;
+}
+
+static INLINE long
+conv_rgbAF_linear_rgbAF_gamma (unsigned char *src,
+ unsigned char *dst,
+ long samples)
+{
+ float *fsrc = (float *) src;
+ float *fdst = (float *) dst;
+ int n = samples;
+
+ while (n--)
+ {
+ float alpha = fsrc[3];
+ if (alpha < BABL_ALPHA_THRESHOLD)
+ {
+ *fdst++ = 0.0;
+ *fdst++ = 0.0;
+ *fdst++ = 0.0;
+ *fdst++ = 0.0;
+ fsrc+=4;
+ }
+ else if (alpha >= 1.0)
+ {
+ *fdst++ = babl_linear_to_gamma_2_2 (*fsrc++);
+ *fdst++ = babl_linear_to_gamma_2_2 (*fsrc++);
+ *fdst++ = babl_linear_to_gamma_2_2 (*fsrc++);
+ *fdst++ = *fsrc++;
+ }
+ else
+ {
+ float alpha_recip = 1.0 / alpha;
+ *fdst++ = babl_linear_to_gamma_2_2 (*fsrc++ * alpha_recip) * alpha;
+ *fdst++ = babl_linear_to_gamma_2_2 (*fsrc++ * alpha_recip) * alpha;
+ *fdst++ = babl_linear_to_gamma_2_2 (*fsrc++ * alpha_recip) * alpha;
+ *fdst++ = *fsrc++;
+ }
+ }
+ return samples;
+}
+
+static INLINE long
+conv_rgbaF_linear_rgbaF_gamma (unsigned char *src,
+ unsigned char *dst,
+ long samples)
+{
+ float *fsrc = (float *) src;
+ float *fdst = (float *) dst;
+ int n = samples;
+
+ while (n--)
+ {
+ *fdst++ = babl_linear_to_gamma_2_2 (*fsrc++);
+ *fdst++ = babl_linear_to_gamma_2_2 (*fsrc++);
+ *fdst++ = babl_linear_to_gamma_2_2 (*fsrc++);
+ *fdst++ = *fsrc++;
+ }
+ return samples;
+}
+
+static INLINE long
+conv_rgbF_linear_rgbF_gamma (unsigned char *src,
+ unsigned char *dst,
+ long samples)
+{
+ float *fsrc = (float *) src;
+ float *fdst = (float *) dst;
+ int n = samples;
+
+ while (n--)
+ {
+ *fdst++ = babl_linear_to_gamma_2_2 (*fsrc++);
+ *fdst++ = babl_linear_to_gamma_2_2 (*fsrc++);
+ *fdst++ = babl_linear_to_gamma_2_2 (*fsrc++);
+ }
+ return samples;
+}
+
+
+static INLINE long
+conv_rgbaF_gamma_rgbaF_linear (unsigned char *src,
+ unsigned char *dst,
+ long samples)
+{
+ float *fsrc = (float *) src;
+ float *fdst = (float *) dst;
+ int n = samples;
+
+ while (n--)
+ {
+ *fdst++ = babl_gamma_2_2_to_linear (*fsrc++);
+ *fdst++ = babl_gamma_2_2_to_linear (*fsrc++);
+ *fdst++ = babl_gamma_2_2_to_linear (*fsrc++);
+ *fdst++ = *fsrc++;
+ }
+ return samples;
+}
+
+static INLINE long
+conv_rgbF_gamma_rgbF_linear (unsigned char *src,
+ unsigned char *dst,
+ long samples)
+{
+ float *fsrc = (float *) src;
+ float *fdst = (float *) dst;
+ int n = samples;
+
+ while (n--)
+ {
+ *fdst++ = babl_gamma_2_2_to_linear (*fsrc++);
+ *fdst++ = babl_gamma_2_2_to_linear (*fsrc++);
+ *fdst++ = babl_gamma_2_2_to_linear (*fsrc++);
+ }
+ return samples;
+}
+
+#define o(src, dst) \
+ babl_conversion_new (src, dst, "linear", conv_ ## src ## _ ## dst, NULL)
+
+int init (void);
+
+int
+init (void)
+{
+ const Babl *rgbaF_linear = babl_format_new (
+ babl_model ("RGBA"),
+ babl_type ("float"),
+ babl_component ("R"),
+ babl_component ("G"),
+ babl_component ("B"),
+ babl_component ("A"),
+ NULL);
+ const Babl *rgbAF_linear = babl_format_new (
+ babl_model ("RaGaBaA"),
+ babl_type ("float"),
+ babl_component ("Ra"),
+ babl_component ("Ga"),
+ babl_component ("Ba"),
+ babl_component ("A"),
+ NULL);
+ const Babl *rgbaF_gamma = babl_format_new (
+ babl_model ("R'G'B'A"),
+ babl_type ("float"),
+ babl_component ("R'"),
+ babl_component ("G'"),
+ babl_component ("B'"),
+ babl_component ("A"),
+ NULL);
+ const Babl *rgbAF_gamma = babl_format_new (
+ babl_model ("R'aG'aB'aA"),
+ babl_type ("float"),
+ babl_component ("R'a"),
+ babl_component ("G'a"),
+ babl_component ("B'a"),
+ babl_component ("A"),
+ NULL);
+ const Babl *rgbF_linear = babl_format_new (
+ babl_model ("RGB"),
+ babl_type ("float"),
+ babl_component ("R"),
+ babl_component ("G"),
+ babl_component ("B"),
+ NULL);
+ const Babl *rgbF_gamma = babl_format_new (
+ babl_model ("R'G'B'"),
+ babl_type ("float"),
+ babl_component ("R'"),
+ babl_component ("G'"),
+ babl_component ("B'"),
+ NULL);
+
+ o (rgbAF_linear, rgbAF_gamma);
+ o (rgbaF_linear, rgbAF_gamma);
+ o (rgbaF_linear, rgbaF_gamma);
+ o (rgbaF_gamma, rgbaF_linear);
+ o (rgbF_linear, rgbF_gamma);
+ o (rgbF_gamma, rgbF_linear);
+
+ return 0;
+}
+
--- /dev/null
+/*
+ * This file was part of gggl, it implements a variety of pixel conversion
+ * functions that are usable with babl, the file needs more cleanup, but the
+ * conversion functions that are usable gets used by babl.
+ *
+ * GGGL 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 3 of the License, or
+ * (at your option) any later version.
+ *
+ * GGGL 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 GGGL; if not, see <http://www.gnu.org/licenses/>.
+ *
+ * Rights are granted to use this shared object in libraries covered by
+ * LGPL. (exception added, during import into babl CVS.)
+ *
+ * Copyright 2003, 2004, 2005, 2007 Øyvind Kolås <pippin@gimp.org>
+ */
+
+/*
+ * Implemented according to information read from:
+ *
+ * http://www.cinenet.net/~spitzak/conversion/sketches_0265.pdf
+ *
+ * initially ignoring any diffusion, to keep the implementation
+ * smaller, and interchangeable with the non optimized version.
+ *
+ * due to ability to be able to relicence gggl under a different
+ * licence than GPL, I avoided the temptation to look at the
+ * source files in the same location, in case I was going to
+ * need this piece of code for projects where GPL compatibility
+ * was a must.
+ *
+ * TODO: error diffusion,
+ */
+
+#include <stdlib.h>
+#include <stdint.h>
+
+#include "config.h"
+#include "babl.h"
+
+#include "base/util.h"
+#include "extensions/util.h"
+
+
+#define INLINE inline
+
+/* lookup tables used in conversion */
+
+static float table_8_F[1 << 8];
+static float table_8g_F[1 << 8];
+static unsigned char table_F_8[1 << 17];
+static unsigned char table_F_8g[1 << 17];
+
+static int table_inited = 0;
+
+static void
+table_init (void)
+{
+ if (table_inited)
+ return;
+ table_inited = 1;
+
+ /* fill tables for conversion from integer to float */
+ {
+ int i;
+ for (i = 0; i < 1 << 8; i++)
+ {
+ float direct = i / 255.0;
+ table_8_F[i] = direct;
+ table_8g_F[i] = gamma_2_2_to_linear (direct);
+ }
+ }
+ /* fill tables for conversion from float to integer */
+ {
+ union
+ {
+ float f;
+ uint32_t s;
+ } u;
+ u.f = 0.0;
+
+ //u.s[0] = 0;
+
+ for (u.s = 0; u.s < 4294900000U; u.s += 32768)
+ {
+ int c;
+ int cg;
+
+ if (u.f <= 0.0)
+ {
+ c = 0;
+ cg = 0;
+ }
+ else
+ {
+ c = (u.f * 255.1619) + 0.5;
+ cg = (linear_to_gamma_2_2 (u.f) * 255.1619) + 0.5;
+ if (cg > 255) cg = 255;
+ if (c > 255) c = 255;
+ }
+
+ table_F_8[(u.s >> 15) & ((1 << 17)-1)] = c;
+ table_F_8g[(u.s >> 15) & ((1 << 17)-1)] = cg;
+ }
+ }
+#if 0
+ /* fix tables to ensure 1:1 conversions back and forth */
+ if (0)
+ {
+ int i;
+ for (i = 0; i < 256; i++)
+ {
+ float f;
+ unsigned short *hi = ((unsigned short *) (void *) &f);
+ unsigned short *lo = ((unsigned short *) (void *) &f);
+
+ f = table_8_F[i];
+ *lo = 0;
+ table_F_8[*hi] = i;
+ f = table_8g_F[i];
+ *lo = 0;
+ table_F_8g[*hi] = i;
+ }
+ }
+#endif
+}
+
+/* function to find the index in table for a float */
+static unsigned int
+gggl_float_to_index16 (float f)
+{
+ union
+ {
+ float f;
+ uint32_t s;
+ } u;
+ u.f = f;
+ return (u.s >> 15) & ((1 << 17)-1);
+}
+
+static INLINE long
+conv_F_8 (unsigned char *src, unsigned char *dst, long samples)
+{
+ long n = samples;
+
+ if (!table_inited)
+ table_init ();
+ while (n--)
+ {
+ register float f = (*(float *) src);
+ *(unsigned char *) dst = table_F_8[gggl_float_to_index16 (f)];
+ dst += 1;
+ src += 4;
+ }
+ return samples;
+}
+
+
+static INLINE long
+conv_F_8g (unsigned char *src, unsigned char *dst, long samples)
+{
+ long n = samples;
+
+ if (!table_inited)
+ table_init ();
+ while (n--)
+ {
+ register float f = (*(float *) src);
+ *(unsigned char *) dst = table_F_8g[gggl_float_to_index16 (f)];
+ dst += 1;
+ src += 4;
+ }
+ return samples;
+}
+
+
+static INLINE long
+conv_8_F (unsigned char *src, unsigned char *dst, long samples)
+{
+ long n = samples;
+
+ if (!table_inited)
+ table_init ();
+ while (n--)
+ {
+ (*(float *) dst) = table_8_F[*(unsigned char *) src];
+ dst += 4;
+ src += 1;
+ }
+ return samples;
+}
+
+
+static INLINE long
+conv_rgbaF_rgb8 (unsigned char *src, unsigned char *dst, long samples)
+{
+ long n = samples;
+
+ while (n--)
+ {
+ register float f = (*(float *) src);
+ *(unsigned char *) dst = table_F_8g[gggl_float_to_index16 (f)];
+ src += 4;
+ dst += 1;
+
+ f = (*(float *) src);
+ *(unsigned char *) dst = table_F_8g[gggl_float_to_index16 (f)];
+ src += 4;
+ dst += 1;
+
+ f = (*(float *) src);
+ *(unsigned char *) dst = table_F_8g[gggl_float_to_index16 (f)];
+ src += 4;
+ dst += 1;
+
+ src += 4;
+ }
+ return samples;
+}
+
+
+static INLINE long
+conv_rgbaF_rgba8 (unsigned char *src, unsigned char *dst, long samples)
+{
+ long n = samples;
+
+ while (n--)
+ {
+ register float f = (*(float *) src);
+ *(unsigned char *) dst = table_F_8g[gggl_float_to_index16 (f)];
+ src += 4;
+ dst += 1;
+
+ f = (*(float *) src);
+ *(unsigned char *) dst = table_F_8g[gggl_float_to_index16 (f)];
+ src += 4;
+ dst += 1;
+
+ f = (*(float *) src);
+ *(unsigned char *) dst = table_F_8g[gggl_float_to_index16 (f)];
+ src += 4;
+ dst += 1;
+
+ f = (*(float *) src);
+ *(unsigned char *) dst = table_F_8[gggl_float_to_index16 (f)];
+ src += 4;
+ dst += 1;
+ }
+ return samples;
+}
+
+#define conv_rgbaF_rgbP8 conv_rgbaF_rgba8
+
+static INLINE long
+conv_rgbF_rgb8 (unsigned char *src, unsigned char *dst, long samples)
+{
+ conv_F_8g (src, dst, samples * 3);
+ return samples;
+}
+
+static INLINE long
+conv_gaF_ga8 (unsigned char *src, unsigned char *dst, long samples)
+{
+ conv_F_8 (src, dst, samples * 2);
+ return samples;
+}
+
+#define conv_rgbAF_rgbA8 conv_rgbaF_rgba8
+#define conv_gF_g8 conv_F_8
+#define conv_gAF_gA8 conv_gaF_ga8
+
+
+static INLINE long
+conv_rgba8_rgbaF (unsigned char *src, unsigned char *dst, long samples)
+{
+ long n = samples;
+
+ while (n--)
+ {
+ (*(float *) dst) = table_8g_F[*(unsigned char *) src];
+ dst += 4;
+ src += 1;
+
+ (*(float *) dst) = table_8g_F[*(unsigned char *) src];
+ dst += 4;
+ src += 1;
+
+ (*(float *) dst) = table_8g_F[*(unsigned char *) src];
+ dst += 4;
+ src += 1;
+
+ (*(float *) dst) = table_8_F[*(unsigned char *) src];
+ dst += 4;
+ src += 1;
+ }
+ return samples;
+}
+
+static INLINE long
+conv_rgb8_rgbaF (unsigned char *src, unsigned char *dst, long samples)
+{
+ long n = samples;
+
+ while (n--)
+ {
+ (*(float *) dst) = table_8g_F[*(unsigned char *) src];
+ dst += 4;
+ src += 1;
+
+ (*(float *) dst) = table_8g_F[*(unsigned char *) src];
+ dst += 4;
+ src += 1;
+
+ (*(float *) dst) = table_8g_F[*(unsigned char *) src];
+ dst += 4;
+ src += 1;
+
+ (*(float *) dst) = 1.0;
+ dst += 4;
+ }
+ return samples;
+}
+
+static long
+conv_rgbAF_rgb8 (unsigned char *srcc,
+ unsigned char *dstc,
+ long samples)
+{
+ float *src = (void *) srcc;
+ unsigned char *dst = (void *) dstc;
+ long n = samples;
+
+ while (n--)
+ {
+ float alpha = src[3];
+ if (alpha < BABL_ALPHA_THRESHOLD)
+ {
+ dst[0] = 0;
+ dst[1] = 0;
+ dst[2] = 0;
+ }
+ else
+ {
+ float alpha_recip = 1.0 / alpha;
+ dst[0] = table_F_8g[gggl_float_to_index16 (src[0] * alpha_recip)];
+ dst[1] = table_F_8g[gggl_float_to_index16 (src[1] * alpha_recip)];
+ dst[2] = table_F_8g[gggl_float_to_index16 (src[2] * alpha_recip)];
+ }
+ src += 4;
+ dst += 3;
+ }
+ return samples;
+}
+
+static long
+conv_bgrA8_rgba8 (unsigned char *srcc,
+ unsigned char *dstc,
+ long samples)
+{
+ unsigned char *src = (void *) srcc;
+ unsigned char *dst = (void *) dstc;
+ long n = samples;
+
+ while (n--)
+ {
+ unsigned char alpha = src[3];
+ dst[0] = alpha ? (src[2] * 255 / alpha) : 0;
+ dst[1] = alpha ? (src[1] * 255 / alpha) : 0;
+ dst[2] = alpha ? (src[0] * 255 / alpha) : 0;
+ dst[3] = alpha;
+ src += 4;
+ dst += 4;
+ }
+ return samples;
+}
+
+
+static long
+conv_rgbaF_rgbAF (unsigned char *srcc,
+ unsigned char *dstc,
+ long samples)
+{
+ float *src = (void *) srcc;
+ float *dst = (void *) dstc;
+ long n = samples;
+
+ while (n--)
+ {
+ float alpha = src[3];
+ dst[0] = src[0] * alpha;
+ dst[1] = src[1] * alpha;
+ dst[2] = src[2] * alpha;
+ dst[3] = alpha;
+ src += 4;
+ dst += 4;
+ }
+ return samples;
+}
+
+
+static long
+conv_rgbAF_rgbaF (unsigned char *srcc,
+ unsigned char *dstc,
+ long samples)
+{
+ float *src = (void *) srcc;
+ float *dst = (void *) dstc;
+ long n = samples;
+
+ while (n--)
+ {
+ float alpha = src[3];
+ float recip;
+ if (alpha < BABL_ALPHA_THRESHOLD)
+ recip = 0.0;
+ else
+ recip = 1.0/alpha;
+ dst[0] = src[0] * recip;
+ dst[1] = src[1] * recip;
+ dst[2] = src[2] * recip;
+ dst[3] = alpha;
+ src += 4;
+ dst += 4;
+ }
+ return samples;
+}
+
+
+
+static long
+conv_rgbAF_lrgba8 (unsigned char *srcc,
+ unsigned char *dstc,
+ long samples)
+{
+ float *src = (void *) srcc;
+ unsigned char *dst = (void *) dstc;
+ long n = samples;
+
+ while (n--)
+ {
+ float alpha = src[3];
+ float recip = (1.0/alpha);
+ if (alpha < BABL_ALPHA_THRESHOLD)
+ {
+ dst[0] = dst[1] = dst[2] = dst[3] = 0;
+ }
+ else
+ {
+ dst[0] = table_F_8[gggl_float_to_index16 (src[0] * recip)];
+ dst[1] = table_F_8[gggl_float_to_index16 (src[1] * recip)];
+ dst[2] = table_F_8[gggl_float_to_index16 (src[2] * recip)];
+ dst[3] = table_F_8[gggl_float_to_index16 (alpha)];
+ }
+ src += 4;
+ dst += 4;
+ }
+ return samples;
+}
+
+#define conv_rgb8_rgbAF conv_rgb8_rgbaF
+#define conv_gamma_rgbaF_gamma_rgbAF conv_rgbaF_rgbAF
+#define conv_gamma_rgbAF_gamma_rgbaF conv_rgbAF_rgbaF
+
+int init (void);
+
+int
+init (void)
+{
+ const Babl *rgbaF = babl_format_new (
+ babl_model ("RGBA"),
+ babl_type ("float"),
+ babl_component ("R"),
+ babl_component ("G"),
+ babl_component ("B"),
+ babl_component ("A"),
+ NULL);
+ const Babl *rgbAF = babl_format_new (
+ babl_model ("RaGaBaA"),
+ babl_type ("float"),
+ babl_component ("Ra"),
+ babl_component ("Ga"),
+ babl_component ("Ba"),
+ babl_component ("A"),
+ NULL);
+
+
+ const Babl *gamma_rgbaF = babl_format_new (
+ babl_model ("R'G'B'A"),
+ babl_type ("float"),
+ babl_component ("R'"),
+ babl_component ("G'"),
+ babl_component ("B'"),
+ babl_component ("A"),
+ NULL);
+ const Babl *gamma_rgbAF = babl_format_new (
+ babl_model ("R'aG'aB'aA"),
+ babl_type ("float"),
+ babl_component ("R'a"),
+ babl_component ("G'a"),
+ babl_component ("B'a"),
+ babl_component ("A"),
+ NULL);
+
+ const Babl *lrgba8 = babl_format_new (
+ babl_model ("RGBA"),
+ babl_type ("u8"),
+ babl_component ("R"),
+ babl_component ("G"),
+ babl_component ("B"),
+ babl_component ("A"),
+ NULL);
+
+ const Babl *rgba8 = babl_format_new (
+ babl_model ("R'G'B'A"),
+ babl_type ("u8"),
+ babl_component ("R'"),
+ babl_component ("G'"),
+ babl_component ("B'"),
+ babl_component ("A"),
+ NULL);
+ const Babl *bgrA8 = babl_format_new (
+ "name", "B'aG'aR'aA u8",
+ babl_model ("R'aG'aB'aA"),
+ babl_type ("u8"),
+ babl_component ("B'a"),
+ babl_component ("G'a"),
+ babl_component ("R'a"),
+ babl_component ("A"),
+ NULL);
+ const Babl *rgb8 = babl_format_new (
+ babl_model ("R'G'B'"),
+ babl_type ("u8"),
+ babl_component ("R'"),
+ babl_component ("G'"),
+ babl_component ("B'"),
+ NULL);
+
+ table_init ();
+
+#define o(src, dst) \
+ babl_conversion_new (src, dst, "linear", conv_ ## src ## _ ## dst, NULL)
+
+ o (rgbaF, rgbAF);
+ o (rgbAF, rgbaF);
+
+ o (gamma_rgbaF, gamma_rgbAF);
+ o (gamma_rgbAF, gamma_rgbaF);
+
+ o (rgbAF, lrgba8);
+ o (rgb8, rgbaF);
+ o (rgb8, rgbAF);
+ o (rgba8, rgbaF);
+ o (rgbaF, rgb8);
+ o (rgbAF, rgb8);
+ o (bgrA8, rgba8);
+
+ return 0;
+}
--- /dev/null
+/*
+ * This file was part of gggl, it implements a variety of pixel conversion
+ * functions that are usable with babl, the file needs more cleanup, and
+ * doesn't return the number of samples processed as a long, like it's
+ * supposed to.
+ *
+ * GGGL 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 3 of the License, or
+ * (at your option) any later version.
+ *
+ * GGGL 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 GGGL; if not, see <http://www.gnu.org/licenses/>.
+ *
+ * Rights are granted to use this shared object in libraries covered by
+ * LGPL. (exception added, during import into babl CVS.)
+ *
+ * Copyright 2003, 2004, 2005 Øyvind Kolås <pippin@gimp.org>
+ */
+
+#define _POSIX_C_SOURCE 200112L
+
+#include "config.h"
+#include <math.h>
+#include <string.h>
+
+#include "babl.h"
+#include "extensions/util.h"
+
+/*
+ * Implemented according to information read from:
+ *
+ * http://www.cinenet.net/~spitzak/conversion/sketches_0265.pdf
+ *
+ * initially ignoring any diffusion, to keep the implementation
+ * smaller, and interchangeable with the non optimized version.
+ *
+ * due to ability to be able to relicence gggl under a different
+ * licence than GPL, I avoided the temptation to look at the
+ * source files in the same location, in case I was going to
+ * need this piece of code for projects where GPL compatibility
+ * was a must.
+ *
+ * TODO: error diffusion,
+ * gamma correction (not really,. gamma correction belongs in seperate ops,.
+ */
+
+static long
+conv_F_8 (unsigned char *src, unsigned char *dst, long samples)
+{
+ long n = samples;
+
+ while (n--)
+ {
+ float f = ((*(float *) src));
+ if (f < 0.0)
+ {
+ *(unsigned char *) dst = 0;
+ }
+ else if (f > 1.0)
+ {
+ *(unsigned char *) dst = 255;
+ }
+ else
+ {
+ *(unsigned char *) dst = lrint (f * 255.0);
+ }
+ dst += 1;
+ src += 4;
+ }
+ return samples;
+}
+
+static long
+conv_F_16 (unsigned char *src, unsigned char *dst, long samples)
+{
+ long n = samples;
+
+ while (n--)
+ {
+ float f = ((*(float *) src));
+ if (f < 0.0)
+ {
+ *(unsigned short *) dst = 0;
+ }
+ else if (f > 1.0)
+ {
+ *(unsigned short *) dst = 65535;
+ }
+ else
+ {
+ *(unsigned short *) dst = lrint (f * 65535.0);
+ }
+ dst += 2;
+ src += 4;
+ }
+ return samples;
+}
+
+
+
+static long
+conv_8_F (unsigned char *src, unsigned char *dst, long samples)
+{
+ long n = samples;
+
+ while (n--)
+ {
+ (*(float *) dst) = (*(unsigned char *) src / 255.0);
+ dst += 4;
+ src += 1;
+ }
+ return samples;
+}
+
+static long
+conv_16_F (unsigned char *src, unsigned char *dst, long samples)
+{
+ long n = samples;
+
+ while (n--)
+ {
+ (*(float *) dst) = *(unsigned short *) src / 65535.0;
+ dst += 4;
+ src += 2;
+ }
+ return samples;
+}
+
+static long
+conv_F_D (unsigned char *src, unsigned char *dst, long samples)
+{
+ long n = samples;
+
+ while (n--)
+ {
+ *(double *) dst = ((*(float *) src));
+ dst += 8;
+ src += 4;
+ }
+ return samples;
+}
+
+static long
+conv_D_F (unsigned char *src, unsigned char *dst, long samples)
+{
+ long n = samples;
+
+ while (n--)
+ {
+ *(float *) dst = ((*(double *) src));
+ dst += 4;
+ src += 8;
+ }
+ return samples;
+}
+static long
+conv_16_8 (unsigned char *src, unsigned char *dst, long samples)
+{
+ long n = samples;
+
+ while (n--)
+ {
+#define div_257(a) ((((a)+128)-(((a)+128)>>8))>>8)
+ (*(unsigned char *) dst) = div_257 (*(unsigned short *) src);
+ dst += 1;
+ src += 2;
+ }
+ return samples;
+}
+
+static long
+conv_8_16 (unsigned char *src, unsigned char *dst, long samples)
+{
+ long n = samples;
+
+ while (n--)
+ {
+ (*(unsigned short *) dst) = ((*(unsigned char *) src) << 8) | *src;
+ dst += 2;
+ src += 1;
+ }
+ return samples;
+}
+
+/*********/
+static long
+conv_rgbaF_rgba8 (unsigned char *src, unsigned char *dst, long samples)
+{
+ conv_F_8 (src, dst, samples * 4);
+ return samples;
+}
+
+#define conv_rgbaF_rgbP8 conv_rgbaF_rgba8
+
+static long
+conv_rgbF_rgb8 (unsigned char *src, unsigned char *dst, long samples)
+{
+ conv_F_8 (src, dst, samples * 3);
+ return samples;
+}
+
+static long
+conv_gaF_ga8 (unsigned char *src, unsigned char *dst, long samples)
+{
+ conv_F_8 (src, dst, samples * 2);
+ return samples;
+}
+
+#define conv_rgbAF_rgbA8 conv_rgbaF_rgba8
+#define conv_gF_g8 conv_F_8
+#define conv_gAF_gA8 conv_gaF_ga8
+
+static long
+conv_rgbaF_rgba16 (unsigned char *src, unsigned char *dst, long samples)
+{
+ conv_F_16 (src, dst, samples * 4);
+ return samples;
+}
+
+static long
+conv_rgbaF_rgbaD (unsigned char *src, unsigned char *dst, long samples)
+{
+ conv_F_D (src, dst, samples * 4);
+ return samples;
+}
+
+static long
+conv_rgbaD_rgbaF (unsigned char *src, unsigned char *dst, long samples)
+{
+ conv_D_F (src, dst, samples * 4);
+ return samples;
+}
+
+static long
+conv_rgbF_rgb16 (unsigned char *src, unsigned char *dst, long samples)
+{
+ conv_F_16 (src, dst, samples * 3);
+ return samples;
+}
+
+static long
+conv_gaF_ga16 (unsigned char *src, unsigned char *dst, long samples)
+{
+ conv_F_16 (src, dst, samples * 2);
+ return samples;
+}
+
+#define conv_rgbAF_rgbAD conv_rgbaF_rgbaD
+#define conv_rgbAD_rgbAD conv_rgbaD_rgbaF
+#define conv_rgbAF_rgbA16 conv_rgbaF_rgba16
+#define conv_gF_g16 conv_F_16
+#define conv_gAF_gA16 conv_gaF_ga16
+
+static long
+conv_rgba8_rgbaF (unsigned char *src, unsigned char *dst, long samples)
+{
+ conv_8_F (src, dst, samples * 4);
+ return samples;
+}
+
+static long
+conv_rgb8_rgbF (unsigned char *src, unsigned char *dst, long samples)
+{
+ conv_8_F (src, dst, samples * 3);
+ return samples;
+}
+
+static long
+conv_ga8_gaF (unsigned char *src, unsigned char *dst, long samples)
+{
+ conv_8_F (src, dst, samples * 2);
+ return samples;
+}
+
+#define conv_rgbA8_rgbAF conv_rgba8_rgbaF
+#define conv_gA8_gAF conv_ga8_gaF
+#define conv_g8_gF conv_8_F
+
+static long
+conv_rgba16_rgbaF (unsigned char *src, unsigned char *dst, long samples)
+{
+ conv_16_F (src, dst, samples * 4);
+ return samples;
+}
+
+static long
+conv_rgb16_rgbF (unsigned char *src, unsigned char *dst, long samples)
+{
+ conv_16_F (src, dst, samples * 3);
+ return samples;
+}
+
+static long
+conv_ga16_gaF (unsigned char *src, unsigned char *dst, long samples)
+{
+ conv_16_F (src, dst, samples * 2);
+ return samples;
+}
+
+#define conv_rgbA16_rgbAF conv_rgba16_rgbaF
+#define conv_gA16_gAF conv_ga16_gaF
+#define conv_g16_gF conv_16_F
+
+static long
+conv_rgba16_rgba8 (unsigned char *src, unsigned char *dst, long samples)
+{
+ conv_16_8 (src, dst, samples * 4);
+ return samples;
+}
+
+static long
+conv_rgb16_rgb8 (unsigned char *src, unsigned char *dst, long samples)
+{
+ conv_16_8 (src, dst, samples * 3);
+ return samples;
+}
+
+static long
+conv_ga16_ga8 (unsigned char *src, unsigned char *dst, long samples)
+{
+ conv_16_8 (src, dst, samples * 2);
+ return samples;
+}
+
+#define conv_rgbA16_rgbA8 conv_rgba16_rgba8
+#define conv_gA16_gA8 conv_ga16_ga8
+#define conv_g16_g8 conv_16_8
+
+static long
+conv_rgba8_rgba16 (unsigned char *src, unsigned char *dst, long samples)
+{
+ conv_8_16 (src, dst, samples * 4);
+ return samples;
+}
+
+static long
+conv_rgb8_rgb16 (unsigned char *src, unsigned char *dst, long samples)
+{
+ conv_8_16 (src, dst, samples * 3);
+ return samples;
+}
+
+static long
+conv_ga8_ga16 (unsigned char *src, unsigned char *dst, long samples)
+{
+ conv_8_16 (src, dst, samples * 2);
+ return samples;
+}
+
+#define conv_rgbA8_rgbA16 conv_rgba8_rgba16
+#define conv_gA8_gA16 conv_ga8_ga16
+#define conv_g8_g16 conv_8_16
+
+/* alpha conversions */
+
+static long
+conv_gaF_gAF (unsigned char *src, unsigned char *dst, long samples)
+{
+ long n = samples;
+
+ while (n--)
+ {
+ float alpha = (*(float *) (src + 4));
+
+ *(float *) dst = ((*(float *) src) * alpha);
+ dst += 4;
+ src += 4;
+ *(float *) dst = alpha;
+ dst += 4;
+ src += 4;
+ }
+ return samples;
+}
+
+static long
+conv_gAF_gaF (unsigned char *src, unsigned char *dst, long samples)
+{
+ long n = samples;
+
+ while (n--)
+ {
+ float alpha = (*(float *) (src + 4));
+
+ *(float *) dst = ((*(float *) src) / alpha);
+ dst += 4;
+ src += 4;
+ *(float *) dst = alpha;
+ dst += 4;
+ src += 4;
+ }
+ return samples;
+}
+
+/* alpha stripping and adding */
+
+static long
+conv_rgbaF_rgbF (unsigned char *src, unsigned char *dst, long samples)
+{
+ long n = samples;
+
+ while (n--)
+ {
+ *(int *) dst = (*(int *) src);
+ dst += 4;
+ src += 4;
+ *(int *) dst = (*(int *) src);
+ dst += 4;
+ src += 4;
+ *(int *) dst = (*(int *) src);
+ dst += 4;
+ src += 4;
+ src += 4;
+ }
+ return samples;
+}
+
+static long
+conv_rgbF_rgbaF (unsigned char *src, unsigned char *dst, long samples)
+{
+ long n = samples;
+
+ while (n--)
+ {
+ *(int *) dst = (*(int *) src);
+ dst += 4;
+ src += 4;
+ *(int *) dst = (*(int *) src);
+ dst += 4;
+ src += 4;
+ *(int *) dst = (*(int *) src);
+ dst += 4;
+ src += 4;
+ *(float *) dst = 1.0;
+ dst += 4;
+ }
+ return samples;
+}
+
+static long
+conv_gaF_gF (unsigned char *src, unsigned char *dst, long samples)
+{
+ long n = samples;
+
+ while (n--)
+ {
+ *(int *) dst = (*(int *) src);
+ dst += 4;
+ src += 4;
+ src += 4;
+ }
+ return samples;
+}
+
+static long
+conv_gF_gaF (unsigned char *src, unsigned char *dst, long samples)
+{
+ long n = samples;
+
+ while (n--)
+ {
+ *(int *) dst = (*(int *) src);
+ dst += 4;
+ src += 4;
+ *(float *) dst = 1.0;
+ dst += 4;
+ }
+ return samples;
+}
+
+#define conv_gF_gAF conv_gF_gaF
+
+#define conv_rgbF_rgbAF conv_rgbF_rgbaF
+
+/* colorchannel dropping and adding */
+
+static long
+conv_gF_rgbF (unsigned char *src, unsigned char *dst, long samples)
+{
+ long n = samples;
+
+ while (n--)
+ {
+ int c;
+
+ for (c = 0; c < 3; c++)
+ {
+ (*(int *) dst) = (*(int *) src);
+ dst += 4;
+ }
+ src += 4;
+ }
+ return samples;
+}
+
+static long
+conv_gaF_rgbaF (unsigned char *src, unsigned char *dst, long samples)
+{
+ long n = samples;
+
+ while (n--)
+ {
+ int c;
+
+ for (c = 0; c < 3; c++)
+ {
+ (*(int *) dst) = (*(int *) src);
+ dst += 4;
+ }
+ src += 4;
+ (*(int *) dst) = (*(int *) src);
+ dst += 4;
+ src += 4;
+ }
+ return samples;
+}
+
+#define conv_gAF_rgbAF conv_gaF_rgbaF
+
+/* other conversions coded for some optimisation reason or sumthin */
+
+static long
+conv_rgbaF_rgbA8 (unsigned char *src, unsigned char *dst, long samples)
+{
+ long n = samples;
+
+ while (n--)
+ {
+ float alpha = (*(float *) (src + (4 * 3)));
+ int c;
+
+ for (c = 0; c < 3; c++)
+ {
+ *(unsigned char *) dst = lrint (((*(float *) src) * alpha) * 255.0);
+ dst += 1;
+ src += 4;
+ }
+ *(unsigned char *) dst = lrint (alpha * 255.0);
+ dst++;
+ src += 4;
+ }
+ return samples;
+}
+
+static long
+conv_rgbaF_rgb8 (unsigned char *src, unsigned char *dst, long samples)
+{
+ long n = samples;
+
+ while (n--)
+ {
+ int c;
+
+ for (c = 0; c < 3; c++)
+ {
+ *(unsigned char *) dst = lrint ((*(float *) src) * 255.0);
+ dst += 1;
+ src += 4;
+ }
+ src += 4;
+ }
+ return samples;
+}
+
+static long
+conv_rgbaF_rgb16 (unsigned char *src, unsigned char *dst, long samples)
+{
+ long n = samples;
+
+ while (n--)
+ {
+ int c;
+
+ for (c = 0; c < 3; c++)
+ {
+ *(unsigned short *) dst = lrint ((*(float *) src) * 65535.0);
+ dst += 2;
+ src += 4;
+ }
+ src += 4;
+ }
+ return samples;
+}
+
+static long
+conv_rgba8_rgbA8 (unsigned char *src, unsigned char *dst, long samples)
+{
+ long n = samples;
+
+ while (n--)
+ {
+ if (src[3] == 255)
+ {
+ *(unsigned int *) dst = *(unsigned int *) src;
+ }
+ else if (src[3] == 0)
+ {
+ *(unsigned int *) dst = 0;
+ }
+ else
+ {
+#define div_255(a) ((((a)+127)+(((a)+127)>>8))>>8)
+ dst[0] = div_255 (src[0] * src[3]);
+ dst[1] = div_255 (src[1] * src[3]);
+ dst[2] = div_255 (src[2] * src[3]);
+ dst[3] = src[3];
+ }
+ dst += 4;
+ src += 4;
+ }
+ return samples;
+}
+
+static long
+conv_rgbA8_rgba8 (unsigned char *src, unsigned char *dst, long samples)
+{
+ long n = samples;
+
+ while (n--)
+ {
+ if (src[3] == 255)
+ {
+ *(unsigned int *) dst = *(unsigned int *) src;
+ dst += 4;
+ }
+ else if (src[3] == 0)
+ {
+ *(unsigned int *) dst = 0;
+ dst += 4;
+ }
+ else
+ {
+ unsigned int aa = ((255 << 16) + (src[3] >> 1)) / src[3];
+ *dst++ = (src[0] * aa + 0x8000) >> 16;
+ *dst++ = (src[1] * aa + 0x8000) >> 16;
+ *dst++ = (src[2] * aa + 0x8000) >> 16;
+ *dst++ = src[3];
+ }
+ src += 4;
+ }
+ return samples;
+}
+
+static long
+conv_rgb8_rgba8 (unsigned char *src, unsigned char *dst, long samples)
+{
+ long n = samples;
+
+ while (n--)
+ {
+ dst[0] = src[0];
+ dst[1] = src[1];
+ dst[2] = src[2];
+ dst[3] = 255;
+ src += 3;
+ dst += 4;
+ }
+
+ return samples;
+}
+
+#define conv_rgb8_rgbA8 conv_rgb8_rgba8
+
+static long
+conv_rgba8_rgb8 (unsigned char *src, unsigned char *dst, long samples)
+{
+ long n = samples;
+
+ while (n--)
+ {
+ dst[0] = src[0];
+ dst[1] = src[1];
+ dst[2] = src[2];
+ src += 4;
+ dst += 3;
+ }
+ return samples;
+}
+
+int init (void);
+
+int
+init (void)
+{
+ const Babl *rgbaF = babl_format_new (
+ babl_model ("RGBA"),
+ babl_type ("float"),
+ babl_component ("R"),
+ babl_component ("G"),
+ babl_component ("B"),
+ babl_component ("A"),
+ NULL);
+ const Babl *rgba16 = babl_format_new (
+ babl_model ("RGBA"),
+ babl_type ("u16"),
+ babl_component ("R"),
+ babl_component ("G"),
+ babl_component ("B"),
+ babl_component ("A"),
+ NULL);
+ const Babl *rgbaD = babl_format_new (
+ babl_model ("RGBA"),
+ babl_type ("double"),
+ babl_component ("R"),
+ babl_component ("G"),
+ babl_component ("B"),
+ babl_component ("A"),
+ NULL);
+ const Babl *rgba8 = babl_format_new (
+ babl_model ("RGBA"),
+ babl_type ("u8"),
+ babl_component ("R"),
+ babl_component ("G"),
+ babl_component ("B"),
+ babl_component ("A"),
+ NULL);
+ const Babl *rgbAF = babl_format_new (
+ babl_model ("RaGaBaA"),
+ babl_type ("float"),
+ babl_component ("Ra"),
+ babl_component ("Ga"),
+ babl_component ("Ba"),
+ babl_component ("A"),
+ NULL);
+ const Babl *rgbA16 = babl_format_new (
+ babl_model ("RaGaBaA"),
+ babl_type ("u16"),
+ babl_component ("Ra"),
+ babl_component ("Ga"),
+ babl_component ("Ba"),
+ babl_component ("A"),
+ NULL);
+ const Babl *rgbA8 = babl_format_new (
+ babl_model ("RaGaBaA"),
+ babl_type ("u8"),
+ babl_component ("Ra"),
+ babl_component ("Ga"),
+ babl_component ("Ba"),
+ babl_component ("A"),
+ NULL);
+ const Babl *rgbF = babl_format_new (
+ babl_model ("RGB"),
+ babl_type ("float"),
+ babl_component ("R"),
+ babl_component ("G"),
+ babl_component ("B"),
+ NULL);
+ const Babl *rgb16 = babl_format_new (
+ babl_model ("RGB"),
+ babl_type ("u16"),
+ babl_component ("R"),
+ babl_component ("G"),
+ babl_component ("B"),
+ NULL);
+ const Babl *rgb8 = babl_format_new (
+ babl_model ("RGB"),
+ babl_type ("u8"),
+ babl_component ("R"),
+ babl_component ("G"),
+ babl_component ("B"),
+ NULL);
+ const Babl *gaF = babl_format_new (
+ babl_model ("YA"),
+ babl_type ("float"),
+ babl_component ("Y"),
+ babl_component ("A"),
+ NULL);
+ const Babl *gAF = babl_format_new (
+ babl_model ("YaA"),
+ babl_type ("float"),
+ babl_component ("Ya"),
+ babl_component ("A"),
+ NULL);
+ const Babl *gF = babl_format_new (
+ babl_model ("Y"),
+ babl_type ("float"),
+ babl_component ("Y"),
+ NULL);
+ const Babl *ga16 = babl_format_new (
+ babl_model ("YA"),
+ babl_type ("u16"),
+ babl_component ("Y"),
+ babl_component ("A"),
+ NULL);
+ const Babl *gA16 = babl_format_new (
+ babl_model ("YaA"),
+ babl_type ("u16"),
+ babl_component ("Ya"),
+ babl_component ("A"),
+ NULL);
+ const Babl *g16 = babl_format_new (
+ babl_model ("Y"),
+ babl_type ("u16"),
+ babl_component ("Y"),
+ NULL);
+ const Babl *ga8 = babl_format_new (
+ babl_model ("YA"),
+ babl_type ("u8"),
+ babl_component ("Y"),
+ babl_component ("A"),
+ NULL);
+ const Babl *gA8 = babl_format_new (
+ babl_model ("YaA"),
+ babl_type ("u8"),
+ babl_component ("Ya"),
+ babl_component ("A"),
+ NULL);
+ const Babl *g8 = babl_format_new (
+ babl_model ("Y"),
+ babl_type ("u8"),
+ babl_component ("Y"),
+ NULL);
+
+#define o(src, dst) \
+ babl_conversion_new (src, dst, "linear", conv_ ## src ## _ ## dst, NULL)
+
+ o (rgbaF, rgbaD);
+ o (rgbaD, rgbaF);
+ o (rgbaF, rgba8);
+ o (rgba8, rgbaF);
+ o (rgbaF, rgba16);
+ o (rgba16, rgbaF);
+ o (rgbAF, rgbA8);
+ o (rgbA8, rgbAF);
+ o (rgbAF, rgbA16);
+ o (rgbA16, rgbAF);
+ o (rgbF, rgb8);
+ o (rgb8, rgbF);
+ o (rgbF, rgb16);
+ o (rgb16, rgbF);
+ o (rgba8, rgba16);
+ o (rgba16, rgba8);
+ o (rgbA8, rgbA16);
+ o (rgbA16, rgbA8);
+ o (rgb8, rgb16);
+ o (rgb16, rgb8);
+ o (gaF, ga8);
+ o (gAF, gA8);
+ o (gF, g8);
+ o (ga8, gaF);
+ o (gA8, gAF);
+ o (g8, gF);
+ o (gaF, ga16);
+ o (gAF, gA16);
+ o (gF, g16);
+ o (ga16, gaF);
+ o (gA16, gAF);
+ o (g16, gF);
+ o (ga16, ga8);
+ o (g16, g8);
+ o (ga8, ga16);
+ o (gA8, gA16);
+ o (g8, g16);
+ o (gaF, gAF);
+ o (gAF, gaF);
+ o (rgbaF, rgbF);
+ o (gaF, gF);
+ o (rgbF, rgbaF);
+ o (rgbF, rgbAF);
+ o (gF, gaF);
+ o (gF, gAF);
+ o (gF, rgbF);
+ o (gaF, rgbaF);
+ o (gAF, rgbAF);
+ o (rgbaF, rgb8);
+ o (rgbA8, rgba8);
+ o (rgba8, rgbA8);
+ o (rgbaF, rgb16);
+ o (rgb8, rgba8);
+ o (rgb8, rgbA8);
+ o (rgba8, rgb8);
+ o (rgbaF, rgbA8);
+
+ return 0;
+}
--- /dev/null
+/*
+ * This file was part of gggl, it implements a variety of pixel conversion
+ * functions that are usable with babl, the file needs more cleanup, and
+ * doesn't return the number of samples processed as a long, like it's
+ * supposed to.
+ *
+ * GGGL 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 3 of the License, or
+ * (at your option) any later version.
+ *
+ * GGGL 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 GGGL; if not, see <http://www.gnu.org/licenses/>.
+ *
+ * Rights are granted to use this shared object in libraries covered by
+ * LGPL. (exception added, during import into babl CVS.)
+ *
+ * Copyright 2003, 2004, 2005 Øyvind Kolås <pippin@gimp.org>
+ */
+
+#define _POSIX_C_SOURCE 200112L
+
+#include "config.h"
+#include <math.h>
+#include <string.h>
+
+#include "babl.h"
+#include "extensions/util.h"
+
+/*
+ * Implemented according to information read from:
+ *
+ * http://www.cinenet.net/~spitzak/conversion/sketches_0265.pdf
+ *
+ * initially ignoring any diffusion, to keep the implementation
+ * smaller, and interchangeable with the non optimized version.
+ *
+ * due to ability to be able to relicence gggl under a different
+ * licence than GPL, I avoided the temptation to look at the
+ * source files in the same location, in case I was going to
+ * need this piece of code for projects where GPL compatibility
+ * was a must.
+ *
+ * TODO: error diffusion,
+ * gamma correction (not really,. gamma correction belongs in seperate ops,.
+ */
+
+/* lookup tables used in conversion */
+
+static float table_8_F[1 << 8];
+static float table_16_F[1 << 16];
+static unsigned char table_F_8[1 << 16];
+static unsigned short table_F_16[1 << 16];
+
+
+static int table_inited = 0;
+
+static void
+table_init (void)
+{
+ int i;
+
+ if (table_inited)
+ return;
+ table_inited = 1;
+
+ /* fill tables for conversion from integer to float */
+ for (i = 0; i < 1 << 8; i++)
+ {
+ table_8_F[i] = (i * 1.0) / 255.0;
+ }
+ for (i = 0; i < 1 << 16; i++)
+ {
+ table_16_F[i] = (i * 1.0) / 65535.0;
+ }
+ /* fill tables for conversion from float to integer */
+ {
+ union
+ {
+ float f;
+ unsigned short s[2];
+ } u;
+ u.f = 0.0;
+
+ u.s[0] = 0x8000;
+
+ for (i = 0; i < 1 << 16; i++)
+ {
+ unsigned char c;
+ unsigned short s;
+
+ u.s[1] = i;
+
+ if (u.f <= 0.0)
+ {
+ c = 0;
+ s = 0;
+ }
+ else if (u.f >= 1.0)
+ {
+ c = 255;
+ s = 65535;
+ }
+ else
+ {
+ c = lrint (u.f * 255.0);
+ s = lrint (u.f * 65535.0);
+ }
+
+ /*fprintf (stderr, "%2.3f=%03i %05i ", f, c, (*hi));
+ / if (! ((*hi)%9))
+ / fprintf (stderr, "\n"); */
+
+ table_F_8[u.s[1]] = c;
+ table_F_16[u.s[1]] = s;
+ }
+ }
+ /* fix tables to ensure 1:1 conversions back and forth */
+ if (0)
+ { /*FIXME: probably not the right way to do it,.. must sit down and scribble on paper */
+ int i;
+ for (i = 0; i < 256; i++)
+ {
+ float f = table_8_F[i];
+ unsigned short *hi = ((unsigned short *) (void *) &f);
+ unsigned short *lo = ((unsigned short *) (void *) &f);
+ *lo = 0;
+ table_F_8[(*hi)] = i;
+ }
+ }
+}
+
+/* function to find the index in table for a float */
+static unsigned int
+gggl_float_to_index16 (float f)
+{
+ union
+ {
+ float f;
+ unsigned short s[2];
+ } u;
+ u.f = f;
+ return u.s[1];
+}
+
+
+static long
+conv_F_8 (unsigned char *src, unsigned char *dst, long samples)
+{
+ long n = samples;
+
+ if (!table_inited)
+ table_init ();
+ while (n--)
+ {
+ register float f = (*(float *) src);
+ *(unsigned char *) dst = table_F_8[gggl_float_to_index16 (f)];
+ dst += 1;
+ src += 4;
+ }
+ return samples;
+}
+
+static long
+conv_F_16 (unsigned char *src, unsigned char *dst, long samples)
+{
+ long n = samples;
+
+ if (!table_inited)
+ table_init ();
+ while (n--)
+ {
+ register float f = (*(float *) src);
+ *(unsigned short *) dst = table_F_16[gggl_float_to_index16 (f)];
+ dst += 2;
+ src += 4;
+ }
+ return samples;
+}
+
+static long
+conv_8_F (unsigned char *src, unsigned char *dst, long samples)
+{
+ long n = samples;
+
+ if (!table_inited)
+ table_init ();
+ while (n--)
+ {
+ (*(float *) dst) = table_8_F[*(unsigned char *) src];
+ dst += 4;
+ src += 1;
+ }
+ return samples;
+}
+
+static long
+conv_16_F (unsigned char *src, unsigned char *dst, long samples)
+{
+ long n = samples;
+
+ if (!table_inited)
+ table_init ();
+ while (n--)
+ {
+ (*(float *) dst) = table_16_F[*(unsigned short *) src];
+ dst += 4;
+ src += 2;
+ }
+ return samples;
+}
+
+/*********/
+static long
+conv_rgbaF_rgba8 (unsigned char *src, unsigned char *dst, long samples)
+{
+ conv_F_8 (src, dst, samples * 4);
+ return samples;
+}
+
+#define conv_rgbaF_rgbP8 conv_rgbaF_rgba8
+
+static long
+conv_rgbF_rgb8 (unsigned char *src, unsigned char *dst, long samples)
+{
+ conv_F_8 (src, dst, samples * 3);
+ return samples;
+}
+
+static long
+conv_gaF_ga8 (unsigned char *src, unsigned char *dst, long samples)
+{
+ conv_F_8 (src, dst, samples * 2);
+ return samples;
+}
+
+#define conv_rgbAF_rgbA8 conv_rgbaF_rgba8
+#define conv_gF_g8 conv_F_8
+#define conv_gAF_gA8 conv_gaF_ga8
+
+static long
+conv_rgbaF_rgba16 (unsigned char *src, unsigned char *dst, long samples)
+{
+ conv_F_16 (src, dst, samples * 4);
+ return samples;
+}
+
+static long
+conv_rgbF_rgb16 (unsigned char *src, unsigned char *dst, long samples)
+{
+ conv_F_16 (src, dst, samples * 3);
+ return samples;
+}
+
+static long
+conv_gaF_ga16 (unsigned char *src, unsigned char *dst, long samples)
+{
+ conv_F_16 (src, dst, samples * 2);
+ return samples;
+}
+
+#define conv_rgbAF_rgbA16 conv_rgbaF_rgba16
+#define conv_gF_g16 conv_F_16
+#define conv_gAF_gA16 conv_gaF_ga16
+
+static long
+conv_rgba8_rgbaF (unsigned char *src, unsigned char *dst, long samples)
+{
+ conv_8_F (src, dst, samples * 4);
+ return samples;
+}
+
+static long
+conv_rgb8_rgbF (unsigned char *src, unsigned char *dst, long samples)
+{
+ conv_8_F (src, dst, samples * 3);
+ return samples;
+}
+
+static long
+conv_ga8_gaF (unsigned char *src, unsigned char *dst, long samples)
+{
+ conv_8_F (src, dst, samples * 2);
+ return samples;
+}
+
+#define conv_rgbA8_rgbAF conv_rgba8_rgbaF
+#define conv_gA8_gAF conv_ga8_gaF
+#define conv_g8_gF conv_8_F
+
+static long
+conv_rgba16_rgbaF (unsigned char *src, unsigned char *dst, long samples)
+{
+ conv_16_F (src, dst, samples * 4);
+ return samples;
+}
+
+static long
+conv_rgb16_rgbF (unsigned char *src, unsigned char *dst, long samples)
+{
+ conv_16_F (src, dst, samples * 3);
+ return samples;
+}
+
+static long
+conv_ga16_gaF (unsigned char *src, unsigned char *dst, long samples)
+{
+ conv_16_F (src, dst, samples * 2);
+ return samples;
+}
+
+#define conv_rgbA16_rgbAF conv_rgba16_rgbaF
+#define conv_gA16_gAF conv_ga16_gaF
+#define conv_g16_gF conv_16_F
+
+int init (void);
+
+int
+init (void)
+{
+ const Babl *rgbaF = babl_format_new (
+ babl_model ("RGBA"),
+ babl_type ("float"),
+ babl_component ("R"),
+ babl_component ("G"),
+ babl_component ("B"),
+ babl_component ("A"),
+ NULL);
+ const Babl *rgba16 = babl_format_new (
+ babl_model ("RGBA"),
+ babl_type ("u16"),
+ babl_component ("R"),
+ babl_component ("G"),
+ babl_component ("B"),
+ babl_component ("A"),
+ NULL);
+ const Babl *rgba8 = babl_format_new (
+ babl_model ("RGBA"),
+ babl_type ("u8"),
+ babl_component ("R"),
+ babl_component ("G"),
+ babl_component ("B"),
+ babl_component ("A"),
+ NULL);
+ const Babl *rgbAF = babl_format_new (
+ babl_model ("RaGaBaA"),
+ babl_type ("float"),
+ babl_component ("Ra"),
+ babl_component ("Ga"),
+ babl_component ("Ba"),
+ babl_component ("A"),
+ NULL);
+ const Babl *rgbA16 = babl_format_new (
+ babl_model ("RaGaBaA"),
+ babl_type ("u16"),
+ babl_component ("Ra"),
+ babl_component ("Ga"),
+ babl_component ("Ba"),
+ babl_component ("A"),
+ NULL);
+ const Babl *rgbA8 = babl_format_new (
+ babl_model ("RaGaBaA"),
+ babl_type ("u8"),
+ babl_component ("Ra"),
+ babl_component ("Ga"),
+ babl_component ("Ba"),
+ babl_component ("A"),
+ NULL);
+ const Babl *rgbF = babl_format_new (
+ babl_model ("RGB"),
+ babl_type ("float"),
+ babl_component ("R"),
+ babl_component ("G"),
+ babl_component ("B"),
+ NULL);
+ const Babl *rgb16 = babl_format_new (
+ babl_model ("RGB"),
+ babl_type ("u16"),
+ babl_component ("R"),
+ babl_component ("G"),
+ babl_component ("B"),
+ NULL);
+ const Babl *rgb8 = babl_format_new (
+ babl_model ("RGB"),
+ babl_type ("u8"),
+ babl_component ("R"),
+ babl_component ("G"),
+ babl_component ("B"),
+ NULL);
+ const Babl *gaF = babl_format_new (
+ babl_model ("YA"),
+ babl_type ("float"),
+ babl_component ("Y"),
+ babl_component ("A"),
+ NULL);
+ const Babl *gAF = babl_format_new (
+ babl_model ("YaA"),
+ babl_type ("float"),
+ babl_component ("Ya"),
+ babl_component ("A"),
+ NULL);
+ const Babl *gF = babl_format_new (
+ babl_model ("Y"),
+ babl_type ("float"),
+ babl_component ("Y"),
+ NULL);
+ const Babl *ga16 = babl_format_new (
+ babl_model ("YA"),
+ babl_type ("u16"),
+ babl_component ("Y"),
+ babl_component ("A"),
+ NULL);
+ const Babl *gA16 = babl_format_new (
+ babl_model ("YaA"),
+ babl_type ("u16"),
+ babl_component ("Ya"),
+ babl_component ("A"),
+ NULL);
+ const Babl *g16 = babl_format_new (
+ babl_model ("Y"),
+ babl_type ("u16"),
+ babl_component ("Y"),
+ NULL);
+ const Babl *ga8 = babl_format_new (
+ babl_model ("YA"),
+ babl_type ("u8"),
+ babl_component ("Y"),
+ babl_component ("A"),
+ NULL);
+ const Babl *gA8 = babl_format_new (
+ babl_model ("YaA"),
+ babl_type ("u8"),
+ babl_component ("Ya"),
+ babl_component ("A"),
+ NULL);
+ const Babl *g8 = babl_format_new (
+ babl_model ("Y"),
+ babl_type ("u8"),
+ babl_component ("Y"),
+ NULL);
+
+#define o(src, dst) \
+ babl_conversion_new (src, dst, "linear", conv_ ## src ## _ ## dst, NULL)
+
+ o (rgbaF, rgba8);
+ o (rgba8, rgbaF);
+ o (rgbaF, rgba16);
+ o (rgba16, rgbaF);
+ o (rgbAF, rgbA8);
+ o (rgbA8, rgbAF);
+ o (rgbAF, rgbA16);
+ o (rgbA16, rgbAF);
+ o (rgbF, rgb8);
+ o (rgb8, rgbF);
+ o (rgbF, rgb16);
+ o (rgb16, rgbF);
+ o (gaF, ga8);
+ o (gAF, gA8);
+ o (gF, g8);
+ o (ga8, gaF);
+ o (gA8, gAF);
+ o (g8, gF);
+ o (gaF, ga16);
+ o (gAF, gA16);
+ o (gF, g16);
+ o (ga16, gaF);
+ o (gA16, gAF);
+ o (g16, gF);
+
+ if (!table_inited)
+ table_init ();
+
+ return 0;
+}
--- /dev/null
+/*
+ * This file was part of gggl, it implements a variety of pixel conversion
+ * functions that are usable with babl, the file needs more cleanup.
+ *
+ * GGGL 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 3 of the License, or
+ * (at your option) any later version.
+ *
+ * GGGL 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 GGGL; if not, see <http://www.gnu.org/licenses/>.
+ *
+ * Rights are granted to use this shared object in libraries covered by
+ * LGPL. (exception added, during import into babl CVS.)
+ *
+ * Copyright 2003, 2004, 2005 Øyvind Kolås <pippin@gimp.org>
+ */
+
+#define _POSIX_C_SOURCE 200112L
+
+#include "config.h"
+#include <math.h>
+#include <string.h>
+#include <stdint.h>
+
+#include "babl.h"
+#include "extensions/util.h"
+
+/*
+ * Implemented according to information read from:
+ *
+ * http://www.cinenet.net/~spitzak/conversion/sketches_0265.pdf
+ *
+ * initially ignoring any diffusion, to keep the implementation
+ * smaller, and interchangeable with the non optimized version.
+ *
+ * due to ability to be able to relicence gggl under a different
+ * licence than GPL, I avoided the temptation to look at the
+ * source files in the same location, in case I was going to
+ * need this piece of code for projects where GPL compatibility
+ * was a must.
+ *
+ * TODO: error diffusion,
+ * gamma correction (not really,. gamma correction belongs in seperate ops,.
+ */
+
+/* lookup tables used in conversion */
+
+static float table_8_F[1 << 8];
+static float table_16_F[1 << 16];
+static unsigned char table_F_8[1 << 16];
+static unsigned short table_F_16[1 << 16];
+
+static uint32_t *table_8_F_int = NULL;
+
+static int table_inited = 0;
+
+static void
+table_init (void)
+{
+ if (table_inited)
+ return;
+
+ table_8_F_int = (void*)(table_8_F);
+
+ table_inited = 1;
+
+ /* fill tables for conversion from integer to float */
+ {
+ int i;
+ for (i = 0; i < 1 << 8; i++)
+ {
+ table_8_F[i] = (i * 1.0) / 255.0;
+ }
+ for (i = 0; i < 1 << 16; i++)
+ table_16_F[i] = (i * 1.0) / 65535.0;
+ }
+ /* fill tables for conversion from float to integer */
+ {
+ union
+ {
+ float f;
+ unsigned short s[2];
+ } u;
+ u.f = 0.0;
+
+ u.s[0] = 0x8000;
+
+ for (u.s[1] = 0; u.s[1] < 65535; u.s[1] += 1)
+ {
+ unsigned char c;
+ unsigned short s;
+
+ if (u.f <= 0.0)
+ {
+ c = 0;
+ s = 0;
+ }
+ else if (u.f >= 1.0)
+ {
+ c = 255;
+ s = 65535;
+ }
+ else
+ {
+ c = lrint (u.f * 255.0);
+ s = lrint (u.f * 65535.0);
+ }
+
+ /*fprintf (stderr, "%2.3f=%03i %05i ", f, c, (*hi));
+ / if (! ((*hi)%9))
+ / fprintf (stderr, "\n"); */
+
+ table_F_8[u.s[1]] = c;
+ table_F_16[u.s[1]] = s;
+ }
+ }
+ /* fix tables to ensure 1:1 conversions back and forth */
+ if (0)
+ { /*FIXME: probably not the right way to do it,.. must sit down and scribble on paper */
+ int i;
+ for (i = 0; i < 256; i++)
+ {
+ float f = table_8_F[i];
+ unsigned short *hi = ((unsigned short *) (void *) &f);
+ unsigned short *lo = ((unsigned short *) (void *) &f);
+ *lo = 0;
+ table_F_8[(*hi)] = i;
+ }
+ }
+}
+
+/* function to find the index in table for a float */
+static unsigned int
+gggl_float_to_index16 (float f)
+{
+ union
+ {
+ float f;
+ unsigned short s[2];
+ } u;
+ u.f = f;
+ return u.s[1];
+}
+
+static long
+conv_F_8 (unsigned char *src, unsigned char *dst, long samples)
+{
+ long n = samples;
+
+ if (!table_inited)
+ table_init ();
+ while (n--)
+ {
+ register float f = (*(float *) src);
+ *(unsigned char *) dst = table_F_8[gggl_float_to_index16 (f)];
+ dst += 1;
+ src += 4;
+ }
+ return samples;
+}
+
+static long
+conv_F_16 (unsigned char *src, unsigned char *dst, long samples)
+{
+ long n = samples;
+
+ if (!table_inited)
+ table_init ();
+ while (n--)
+ {
+ register float f = (*(float *) src);
+ *(unsigned short *) dst = table_F_16[gggl_float_to_index16 (f)];
+ dst += 2;
+ src += 4;
+ }
+ return samples;
+}
+
+static long
+conv_8_F (unsigned char *src, unsigned char *dst, long samples)
+{
+ long n = samples;
+
+ if (!table_inited)
+ table_init ();
+ while (n--)
+ {
+ (*(uint32_t *) dst) = table_8_F_int[*(unsigned char *) src];
+ dst += 4;
+ src += 1;
+ }
+ return samples;
+}
+
+static long
+conv_rgb8_rgbaF (unsigned char *src, unsigned char *dst, long samples)
+{
+ long n = samples;
+
+ if (!table_inited)
+ table_init ();
+ while (n--)
+ {
+ (*(uint32_t *) dst) = table_8_F_int[*(unsigned char *) src];
+ dst += 4;
+ src += 1;
+ (*(uint32_t *) dst) = table_8_F_int[*(unsigned char *) src];
+ dst += 4;
+ src += 1;
+ (*(uint32_t *) dst) = table_8_F_int[*(unsigned char *) src];
+ dst += 4;
+ src += 1;
+ (*(float *) dst) = 1.0;
+ dst += 4;
+ }
+ return samples;
+}
+
+static long
+conv_16_F (unsigned char *src, unsigned char *dst, long samples)
+{
+ long n = samples;
+
+ if (!table_inited)
+ table_init ();
+ while (n--)
+ {
+ (*(float *) dst) = table_16_F[*(unsigned short *) src];
+ dst += 4;
+ src += 2;
+ }
+ return samples;
+}
+
+static long
+conv_rgbaF_rgb8 (unsigned char *src, unsigned char *dst, long samples)
+{
+ long n = samples;
+
+ while (n--)
+ {
+ register float f = (*(float *) src);
+ *(unsigned char *) dst = table_F_8[gggl_float_to_index16 (f)];
+ src += 4;
+ dst += 1;
+
+ f = (*(float *) src);
+ *(unsigned char *) dst = table_F_8[gggl_float_to_index16 (f)];
+ src += 4;
+ dst += 1;
+
+ f = (*(float *) src);
+ *(unsigned char *) dst = table_F_8[gggl_float_to_index16 (f)];
+ src += 4;
+ dst += 1;
+
+ src += 4;
+ }
+ return samples;
+}
+
+
+/*********/
+static long
+conv_rgbaF_rgba8 (unsigned char *src, unsigned char *dst, long samples)
+{
+ conv_F_8 (src, dst, samples * 4);
+ return samples;
+}
+
+static long
+conv_rgbF_rgb8 (unsigned char *src, unsigned char *dst, long samples)
+{
+ conv_F_8 (src, dst, samples * 3);
+ return samples;
+}
+
+static long
+conv_gaF_ga8 (unsigned char *src, unsigned char *dst, long samples)
+{
+ conv_F_8 (src, dst, samples * 2);
+ return samples;
+}
+
+#define conv_rgbAF_rgbA8 conv_rgbaF_rgba8
+#define conv_gF_g8 conv_F_8
+#define conv_gAF_gA8 conv_gaF_ga8
+
+static long
+conv_rgbaF_rgba16 (unsigned char *src, unsigned char *dst, long samples)
+{
+ conv_F_16 (src, dst, samples * 4);
+ return samples;
+}
+
+static long
+conv_rgbF_rgb16 (unsigned char *src, unsigned char *dst, long samples)
+{
+ conv_F_16 (src, dst, samples * 3);
+ return samples;
+}
+
+static long
+conv_gaF_ga16 (unsigned char *src, unsigned char *dst, long samples)
+{
+ conv_F_16 (src, dst, samples * 2);
+ return samples;
+}
+
+#define conv_rgbAF_rgbA16 conv_rgbaF_rgba16
+#define conv_gF_g16 conv_F_16
+#define conv_gAF_gA16 conv_gaF_ga16
+
+static long
+conv_rgba8_rgbaF (unsigned char *src, unsigned char *dst, long samples)
+{
+ return conv_8_F (src, dst, samples * 4) / 4;
+}
+
+
+static long
+conv_rgb8_rgbF (unsigned char *src, unsigned char *dst, long samples)
+{
+ return conv_8_F (src, dst, samples * 3) / 3;
+}
+
+static long
+conv_ga8_gaF (unsigned char *src, unsigned char *dst, long samples)
+{
+ return conv_8_F (src, dst, samples * 2) / 2;
+}
+
+#define conv_rgbA8_rgbAF conv_rgba8_rgbaF
+#define conv_gA8_gAF conv_ga8_gaF
+#define conv_g8_gF conv_8_F
+
+static long
+conv_rgba16_rgbaF (unsigned char *src, unsigned char *dst, long samples)
+{
+ conv_16_F (src, dst, samples * 4);
+ return samples;
+}
+
+static long
+conv_rgb16_rgbF (unsigned char *src, unsigned char *dst, long samples)
+{
+ conv_16_F (src, dst, samples * 3);
+ return samples;
+}
+
+static long
+conv_ga16_gaF (unsigned char *src, unsigned char *dst, long samples)
+{
+ conv_16_F (src, dst, samples * 2);
+ return samples;
+}
+
+#define conv_rgbA16_rgbAF conv_rgba16_rgbaF
+#define conv_gA16_gAF conv_ga16_gaF
+#define conv_g16_gF conv_16_F
+
+int init (void);
+
+int
+init (void)
+{
+ const Babl *rgbaF = babl_format_new (
+ babl_model ("R'G'B'A"),
+ babl_type ("float"),
+ babl_component ("R'"),
+ babl_component ("G'"),
+ babl_component ("B'"),
+ babl_component ("A"),
+ NULL);
+ const Babl *rgba16 = babl_format_new (
+ babl_model ("R'G'B'A"),
+ babl_type ("u16"),
+ babl_component ("R'"),
+ babl_component ("G'"),
+ babl_component ("B'"),
+ babl_component ("A"),
+ NULL);
+ const Babl *rgba8 = babl_format_new (
+ babl_model ("R'G'B'A"),
+ babl_type ("u8"),
+ babl_component ("R'"),
+ babl_component ("G'"),
+ babl_component ("B'"),
+ babl_component ("A"),
+ NULL);
+ const Babl *rgbAF = babl_format_new (
+ babl_model ("R'aG'aB'aA"),
+ babl_type ("float"),
+ babl_component ("R'a"),
+ babl_component ("G'a"),
+ babl_component ("B'a"),
+ babl_component ("A"),
+ NULL);
+ const Babl *rgbA16 = babl_format_new (
+ babl_model ("R'aG'aB'aA"),
+ babl_type ("u16"),
+ babl_component ("R'a"),
+ babl_component ("G'a"),
+ babl_component ("B'a"),
+ babl_component ("A"),
+ NULL);
+ const Babl *rgbA8 = babl_format_new (
+ babl_model ("R'aG'aB'aA"),
+ babl_type ("u8"),
+ babl_component ("R'a"),
+ babl_component ("G'a"),
+ babl_component ("B'a"),
+ babl_component ("A"),
+ NULL);
+ const Babl *rgbF = babl_format_new (
+ babl_model ("R'G'B'"),
+ babl_type ("float"),
+ babl_component ("R'"),
+ babl_component ("G'"),
+ babl_component ("B'"),
+ NULL);
+ const Babl *rgb16 = babl_format_new (
+ babl_model ("R'G'B'"),
+ babl_type ("u16"),
+ babl_component ("R'"),
+ babl_component ("G'"),
+ babl_component ("B'"),
+ NULL);
+ const Babl *rgb8 = babl_format_new (
+ babl_model ("R'G'B'"),
+ babl_type ("u8"),
+ babl_component ("R'"),
+ babl_component ("G'"),
+ babl_component ("B'"),
+ NULL);
+ const Babl *gaF = babl_format_new (
+ babl_model ("Y'A"),
+ babl_type ("float"),
+ babl_component ("Y'"),
+ babl_component ("A"),
+ NULL);
+ const Babl *gAF = babl_format_new (
+ babl_model ("Y'aA"),
+ babl_type ("float"),
+ babl_component ("Y'a"),
+ babl_component ("A"),
+ NULL);
+ const Babl *gF = babl_format_new (
+ babl_model ("Y'"),
+ babl_type ("float"),
+ babl_component ("Y'"),
+ NULL);
+ const Babl *ga16 = babl_format_new (
+ babl_model ("Y'A"),
+ babl_type ("u16"),
+ babl_component ("Y'"),
+ babl_component ("A"),
+ NULL);
+ const Babl *gA16 = babl_format_new (
+ babl_model ("Y'aA"),
+ babl_type ("u16"),
+ babl_component ("Y'a"),
+ babl_component ("A"),
+ NULL);
+ const Babl *g16 = babl_format_new (
+ babl_model ("Y'"),
+ babl_type ("u16"),
+ babl_component ("Y'"),
+ NULL);
+ const Babl *ga8 = babl_format_new (
+ babl_model ("Y'A"),
+ babl_type ("u8"),
+ babl_component ("Y'"),
+ babl_component ("A"),
+ NULL);
+ const Babl *gA8 = babl_format_new (
+ babl_model ("Y'aA"),
+ babl_type ("u8"),
+ babl_component ("Y'a"),
+ babl_component ("A"),
+ NULL);
+ const Babl *g8 = babl_format_new (
+ babl_model ("Y'"),
+ babl_type ("u8"),
+ babl_component ("Y'"),
+ NULL);
+
+#define o(src, dst) \
+ babl_conversion_new (src, dst, "linear", conv_ ## src ## _ ## dst, NULL)
+
+ o (rgbaF, rgba8);
+ o (rgba8, rgbaF);
+ o (rgbaF, rgba16);
+ o (rgba16, rgbaF);
+ o (rgbAF, rgbA8);
+ o (rgbA8, rgbAF);
+ o (rgbAF, rgbA16);
+ o (rgbA16, rgbAF);
+ o (rgbF, rgb8);
+ o (rgb8, rgbF);
+ o (rgbF, rgb16);
+ o (rgb16, rgbF);
+ o (gaF, ga8);
+ o (gAF, gA8);
+ o (gF, g8);
+ o (ga8, gaF);
+ o (gA8, gAF);
+ o (g8, gF);
+ o (gaF, ga16);
+ o (gAF, gA16);
+ o (gF, g16);
+ o (ga16, gaF);
+ o (gA16, gAF);
+ o (g16, gF);
+ o (rgbaF, rgb8);
+ o (rgb8, rgbaF);
+
+ if (!table_inited)
+ table_init ();
+
+ return 0;
+}
--- /dev/null
+/*
+ * This file was part of gggl, it implements a variety of pixel conversion
+ * functions that are usable with babl, the file needs more cleanup.
+ *
+ * GGGL 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 3 of the License, or
+ * (at your option) any later version.
+ *
+ * GGGL 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 GGGL; if not, see <http://www.gnu.org/licenses/>.
+ *
+ * Rights are granted to use this shared object in libraries covered by
+ * LGPL. (exception added, during import into babl CVS.)
+ *
+ * Copyright 2003, 2004, 2005 Øyvind Kolås <pippin@gimp.org>
+ */
+
+#define _POSIX_C_SOURCE 200112L
+
+#include "config.h"
+#include <math.h>
+#include <string.h>
+#include <stdint.h>
+
+#include "babl.h"
+#include "extensions/util.h"
+
+/*
+ * Implemented according to information read from:
+ *
+ * http://www.cinenet.net/~spitzak/conversion/sketches_0265.pdf
+ *
+ * initially ignoring any diffusion, to keep the implementation
+ * smaller, and interchangeable with the non optimized version.
+ *
+ * due to ability to be able to relicence gggl under a different
+ * licence than GPL, I avoided the temptation to look at the
+ * source files in the same location, in case I was going to
+ * need this piece of code for projects where GPL compatibility
+ * was a must.
+ *
+ * TODO: error diffusion,
+ * gamma correction (not really,. gamma correction belongs in seperate ops,.
+ */
+
+static long
+conv_F_8 (unsigned char *src, unsigned char *dst, long samples)
+{
+ long n = samples;
+
+ while (n--)
+ {
+ float f = ((*(float *) src));
+ int uval = lrint (f * 255.0);
+
+ if (uval < 0) uval = 0;
+ if (uval > 255) uval = 255;
+ *(unsigned char *) dst = uval;
+
+ dst += 1;
+ src += 4;
+ }
+ return samples;
+}
+
+static long
+conv_F_16 (unsigned char *src, unsigned char *dst, long samples)
+{
+ long n = samples;
+
+ while (n--)
+ {
+ float f = ((*(float *) src));
+ if (f < 0.0)
+ {
+ *(unsigned short *) dst = 0;
+ }
+ else if (f > 1.0)
+ {
+ *(unsigned short *) dst = 65535;
+ }
+ else
+ {
+ *(unsigned short *) dst = lrint (f * 65535.0);
+ }
+ dst += 2;
+ src += 4;
+ }
+ return samples;
+}
+
+static long
+conv_8_F (unsigned char *src, unsigned char *dst, long samples)
+{
+ long n = samples;
+
+ while (n--)
+ {
+ (*(float *) dst) = ((*(unsigned char *) src) / 255.0);
+ dst += 4;
+ src += 1;
+ }
+ return samples;
+}
+
+static long
+conv_16_F (unsigned char *src, unsigned char *dst, long samples)
+{
+ long n = samples;
+
+ while (n--)
+ {
+ (*(float *) dst) = *(unsigned short *) src / 65535.0;
+ dst += 4;
+ src += 2;
+ }
+ return samples;
+}
+
+static long
+conv_rgbaF_rgb8 (unsigned char *src, unsigned char *dst, long samples)
+{
+ long n = samples;
+
+ while (n--)
+ {
+ int c;
+
+ for (c = 0; c < 3; c++)
+ {
+ int val = rint ((*(float *) src) * 255.0);
+ if (val < 0)
+ *(unsigned char *) dst = 0;
+ else if (val > 255)
+ *(unsigned char *) dst = 255;
+ else
+ *(unsigned char *) dst = val;
+ dst += 1;
+ src += 4;
+ }
+ src += 4;
+ }
+ return samples;
+}
+
+static long
+conv_F_D (unsigned char *src, unsigned char *dst, long samples)
+{
+ long n = samples;
+
+ while (n--)
+ {
+ *(double *) dst = ((*(float *) src));
+ dst += 8;
+ src += 4;
+ }
+ return samples;
+}
+
+static long
+conv_D_F (unsigned char *src, unsigned char *dst, long samples)
+{
+ long n = samples;
+
+ while (n--)
+ {
+ *(float *) dst = ((*(double *) src));
+ dst += 4;
+ src += 8;
+ }
+ return samples;
+}
+
+static long
+conv_16_8 (unsigned char *src, unsigned char *dst, long samples)
+{
+ long n = samples;
+
+ while (n--)
+ {
+#define div_257(a) ((((a)+128)-(((a)+128)>>8))>>8)
+ (*(unsigned char *) dst) = div_257 (*(unsigned short *) src);
+ dst += 1;
+ src += 2;
+ }
+ return samples;
+}
+
+static long
+conv_8_16 (unsigned char *src, unsigned char *dst, long samples)
+{
+ long n = samples;
+
+ while (n--)
+ {
+ (*(unsigned short *) dst) = ((*(unsigned char *) src) << 8) | *src;
+ dst += 2;
+ src += 1;
+ }
+ return samples;
+}
+
+
+/*********/
+static long
+conv_rgbaF_rgba8 (unsigned char *src, unsigned char *dst, long samples)
+{
+ conv_F_8 (src, dst, samples * 4);
+ return samples;
+}
+
+static long
+conv_rgbF_rgb8 (unsigned char *src, unsigned char *dst, long samples)
+{
+ conv_F_8 (src, dst, samples * 3);
+ return samples;
+}
+
+static long
+conv_gaF_ga8 (unsigned char *src, unsigned char *dst, long samples)
+{
+ conv_F_8 (src, dst, samples * 2);
+ return samples;
+}
+
+#define conv_rgbAF_rgbA8 conv_rgbaF_rgba8
+#define conv_gF_g8 conv_F_8
+#define conv_gAF_gA8 conv_gaF_ga8
+
+static long
+conv_rgbaF_rgba16 (unsigned char *src, unsigned char *dst, long samples)
+{
+ conv_F_16 (src, dst, samples * 4);
+ return samples;
+}
+
+static long
+conv_rgbF_rgb16 (unsigned char *src, unsigned char *dst, long samples)
+{
+ conv_F_16 (src, dst, samples * 3);
+ return samples;
+}
+
+static long
+conv_gaF_ga16 (unsigned char *src, unsigned char *dst, long samples)
+{
+ conv_F_16 (src, dst, samples * 2);
+ return samples;
+}
+
+#define conv_rgbAF_rgbA16 conv_rgbaF_rgba16
+#define conv_gF_g16 conv_F_16
+#define conv_gAF_gA16 conv_gaF_ga16
+
+static long
+conv_rgba8_rgbaF (unsigned char *src, unsigned char *dst, long samples)
+{
+ return conv_8_F (src, dst, samples * 4) / 4;
+}
+
+
+static long
+conv_rgb8_rgbF (unsigned char *src, unsigned char *dst, long samples)
+{
+ return conv_8_F (src, dst, samples * 3) / 3;
+}
+
+static long
+conv_ga8_gaF (unsigned char *src, unsigned char *dst, long samples)
+{
+ return conv_8_F (src, dst, samples * 2) / 2;
+}
+
+#define conv_rgbA8_rgbAF conv_rgba8_rgbaF
+#define conv_gA8_gAF conv_ga8_gaF
+#define conv_g8_gF conv_8_F
+
+static long
+conv_rgbaF_rgbaD (unsigned char *src, unsigned char *dst, long samples)
+{
+ conv_F_D (src, dst, samples * 4);
+ return samples;
+}
+
+static long
+conv_rgbaD_rgbaF (unsigned char *src, unsigned char *dst, long samples)
+{
+ conv_D_F (src, dst, samples * 4);
+ return samples;
+}
+
+static long
+conv_rgba16_rgbaF (unsigned char *src, unsigned char *dst, long samples)
+{
+ conv_16_F (src, dst, samples * 4);
+ return samples;
+}
+
+static long
+conv_rgb16_rgbF (unsigned char *src, unsigned char *dst, long samples)
+{
+ conv_16_F (src, dst, samples * 3);
+ return samples;
+}
+
+static long
+conv_ga16_gaF (unsigned char *src, unsigned char *dst, long samples)
+{
+ conv_16_F (src, dst, samples * 2);
+ return samples;
+}
+
+#define conv_rgbA16_rgbAF conv_rgba16_rgbaF
+#define conv_gA16_gAF conv_ga16_gaF
+#define conv_g16_gF conv_16_F
+
+static long
+conv_rgba16_rgba8 (unsigned char *src, unsigned char *dst, long samples)
+{
+ conv_16_8 (src, dst, samples * 4);
+ return samples;
+}
+
+static long
+conv_rgb16_rgb8 (unsigned char *src, unsigned char *dst, long samples)
+{
+ conv_16_8 (src, dst, samples * 3);
+ return samples;
+}
+
+static long
+conv_ga16_ga8 (unsigned char *src, unsigned char *dst, long samples)
+{
+ conv_16_8 (src, dst, samples * 2);
+ return samples;
+}
+
+#define conv_rgbA16_rgbA8 conv_rgba16_rgba8
+#define conv_gA16_gA8 conv_ga16_ga8
+#define conv_g16_g8 conv_16_8
+
+static long
+conv_rgba8_rgba16 (unsigned char *src, unsigned char *dst, long samples)
+{
+ conv_8_16 (src, dst, samples * 4);
+ return samples;
+}
+
+static long
+conv_rgb8_rgb16 (unsigned char *src, unsigned char *dst, long samples)
+{
+ conv_8_16 (src, dst, samples * 3);
+ return samples;
+}
+
+static long
+conv_ga8_ga16 (unsigned char *src, unsigned char *dst, long samples)
+{
+ conv_8_16 (src, dst, samples * 2);
+ return samples;
+}
+
+#define conv_rgbA8_rgbA16 conv_rgba8_rgba16
+#define conv_gA8_gA16 conv_ga8_ga16
+#define conv_g8_g16 conv_8_16
+
+/* alpha conversions */
+
+static long
+conv_gaF_gAF (unsigned char *src, unsigned char *dst, long samples)
+{
+ long n = samples;
+
+ while (n--)
+ {
+ float alpha = (*(float *) (src + 4));
+
+ *(float *) dst = ((*(float *) src) * alpha);
+ dst += 4;
+ src += 4;
+ *(float *) dst = alpha;
+ dst += 4;
+ src += 4;
+ }
+ return samples;
+}
+
+static long
+conv_gAF_gaF (unsigned char *src, unsigned char *dst, long samples)
+{
+ long n = samples;
+
+ while (n--)
+ {
+ float alpha = (*(float *) (src + 4));
+
+ *(float *) dst = ((*(float *) src) / alpha);
+ dst += 4;
+ src += 4;
+ *(float *) dst = alpha;
+ dst += 4;
+ src += 4;
+ }
+ return samples;
+}
+
+/* alpha stripping and adding */
+
+static long
+conv_rgbaF_rgbF (unsigned char *src, unsigned char *dst, long samples)
+{
+ long n = samples;
+
+ while (n--)
+ {
+ *(uint32_t *) dst = (*(uint32_t *) src);
+ dst += 4;
+ src += 4;
+ *(uint32_t *) dst = (*(uint32_t *) src);
+ dst += 4;
+ src += 4;
+ *(uint32_t *) dst = (*(uint32_t *) src);
+ dst += 4;
+ src += 4;
+ src += 4;
+ }
+ return samples;
+}
+
+static long
+conv_rgbF_rgbaF (unsigned char *src, unsigned char *dst, long samples)
+{
+ long n = samples;
+
+ while (n--)
+ {
+ *(uint32_t *) dst = (*(uint32_t *) src);
+ src += 4;
+ dst += 4;
+ *(uint32_t *) dst = (*(uint32_t *) src);
+ src += 4;
+ dst += 4;
+ *(uint32_t *) dst = (*(uint32_t *) src);
+ src += 4;
+ dst += 4;
+ *(float *) dst = 1.0;
+ dst += 4;
+ }
+ return samples;
+}
+
+#define conv_rgbF_rgbAF conv_rgbF_rgbaF
+
+
+static long
+conv_gaF_gF (unsigned char *src, unsigned char *dst, long samples)
+{
+ long n = samples;
+
+ while (n--)
+ {
+ *(int *) dst = (*(int *) src);
+ dst += 4;
+ src += 4;
+ src += 4;
+ }
+ return samples;
+}
+
+static long
+conv_gF_gaF (unsigned char *src, unsigned char *dst, long samples)
+{
+ long n = samples;
+
+ while (n--)
+ {
+ *(float *) dst = (*(float *) src);
+ dst += 4;
+ src += 4;
+ *(float *) dst = 1.0;
+ dst += 4;
+ }
+ return samples;
+}
+
+#define conv_gF_gAF conv_gF_gaF
+
+#define conv_rgbF_rgbAF conv_rgbF_rgbaF
+
+/* colorchannel dropping and adding */
+
+static long
+conv_gF_rgbF (unsigned char *src, unsigned char *dst, long samples)
+{
+ long n = samples;
+
+ while (n--)
+ {
+ int c;
+
+ for (c = 0; c < 3; c++)
+ {
+ (*(float *) dst) = (*(float *) src);
+ dst += 4;
+ }
+ src += 4;
+ }
+ return samples;
+}
+
+static long
+conv_gaF_rgbaF (unsigned char *src, unsigned char *dst, long samples)
+{
+ long n = samples;
+
+ while (n--)
+ {
+ int c;
+
+ for (c = 0; c < 3; c++)
+ {
+ (*(int *) dst) = (*(int *) src);
+ dst += 4;
+ }
+ src += 4;
+ (*(int *) dst) = (*(int *) src);
+ dst += 4;
+ src += 4;
+ }
+ return samples;
+}
+
+#define conv_gAF_rgbAF conv_gaF_rgbaF
+
+/* other conversions coded for some optimisation reason or sumthin */
+
+
+static long
+conv_rgbaF_rgbA8 (unsigned char *src, unsigned char *dst, long samples)
+{
+ long n = samples;
+
+ while (n--)
+ {
+ float alpha = (*(float *) (src + (4 * 3)));
+ int c;
+
+ for (c = 0; c < 3; c++)
+ {
+ *(unsigned char *) dst = lrint (((*(float *) src) * alpha) * 255.0);
+ dst += 1;
+ src += 4;
+ }
+ *(unsigned char *) dst = lrint (alpha * 255.0);
+ dst++;
+ src += 4;
+ }
+ return samples;
+}
+
+static long
+conv_rgbaF_rgb16 (unsigned char *src, unsigned char *dst, long samples)
+{
+ long n = samples;
+
+ while (n--)
+ {
+ int c;
+
+ for (c = 0; c < 3; c++)
+ {
+ *(unsigned short *) dst = lrint ((*(float *) src) * 65535.0);
+ dst += 2;
+ src += 4;
+ }
+ src += 4;
+ }
+ return samples;
+}
+
+static long
+conv_rgbA16_rgbaF (unsigned char *src, unsigned char *dst, long samples)
+{
+ long n = samples;
+
+ while (n--)
+ {
+ float alpha = (((unsigned short *) src)[3]) / 65535.0;
+ int c;
+
+ for (c = 0; c < 3; c++)
+ {
+ (*(float *) dst) = (*(unsigned short *) src / 65535.0) / alpha;
+ dst += 4;
+ src += 2;
+ }
+ *(float *) dst = alpha;
+ dst += 4;
+ src += 2;
+ }
+ return samples;
+}
+
+/*
+ static long
+ conv_rgb8_rgbaF (unsigned char *src,
+ unsigned char *dst,
+ int samples)
+ {
+ long n=samples;
+ while (n--) {
+ int c;
+
+ for (c = 0; c < 3; c++) {
+ (*(float *) dst) = *(unsigned char *) src / 255.0;
+ dst += 4;
+ src += 1;
+ }
+ (*(float *) dst) = 1.0;
+ dst += 4;
+ }
+ return samples;
+ }
+
+ static long
+ conv_g8_rgbaF (unsigned char *src,
+ unsigned char *dst,
+ int samples)
+ {
+ long n=samples;
+ while (n--) {
+ int c;
+
+ for (c = 0; c < 3; c++) {
+ (*(float *) dst) = *(unsigned char *) src / 255.0;
+ dst += 4;
+ }
+ src += 1;
+ (*(float *) dst) = 1.0;
+ dst += 4;
+ }
+ return samples;
+ }
+
+ static long
+ conv_rgb16_rgbaF (unsigned char *src,
+ unsigned char *dst,
+ int samples)
+ {
+ long n=samples;
+ while (n--) {
+ int c;
+
+ for (c = 0; c < 3; c++) {
+ *(float *) dst = (*(unsigned short *) src) / 65535.0;
+ src += 2;
+ dst += 4;
+ }
+ *(float *) dst = 1.0;
+ src += 2;
+ dst += 4;
+ }
+ return samples;
+ }
+
+ static long
+ conv_gF_rgbaF (unsigned char *src,
+ unsigned char *dst,
+ int samples)
+ {
+ long n=samples;
+ while (n--) {
+ (*(float *) dst) = (*(float *) src);
+ dst += 4;
+ (*(float *) dst) = (*(float *) src);
+ dst += 4;
+ (*(float *) dst) = (*(float *) src);
+ dst += 4;
+ (*(float *) dst) = 1.0;
+ dst += 4;
+ src += 4;
+
+ }
+ return samples;
+ }
+ */
+static long
+conv_rgba8_rgbA8 (unsigned char *src, unsigned char *dst, long samples)
+{
+ long n = samples;
+
+ while (n--)
+ {
+ if (src[3] == 255)
+ {
+ *(unsigned int *) dst = *(unsigned int *) src;
+ }
+ else if (src[3] == 0)
+ {
+ *(unsigned int *) dst = 0;
+ }
+ else
+ {
+#define div_255(a) ((((a)+127)+(((a)+127)>>8))>>8)
+ dst[0] = div_255 (src[0] * src[3]);
+ dst[1] = div_255 (src[1] * src[3]);
+ dst[2] = div_255 (src[2] * src[3]);
+ dst[3] = src[3];
+ }
+ dst += 4;
+ src += 4;
+ }
+ return samples;
+}
+
+static long
+conv_rgbA8_rgba8 (unsigned char *src, unsigned char *dst, long samples)
+{
+ long n = samples;
+
+ while (n--)
+ {
+ if (src[3] == 255)
+ {
+ *(unsigned int *) dst = *(unsigned int *) src;
+ dst += 4;
+ }
+ else if (src[3] == 0)
+ {
+ *(unsigned int *) dst = 0;
+ dst += 4;
+ }
+ else
+ {
+ unsigned int aa = ((255 << 16) + (src[3] >> 1)) / src[3];
+ *dst++ = (src[0] * aa + 0x8000) >> 16;
+ *dst++ = (src[1] * aa + 0x8000) >> 16;
+ *dst++ = (src[2] * aa + 0x8000) >> 16;
+ *dst++ = src[3];
+ }
+ src += 4;
+ }
+ return samples;
+}
+
+static long
+conv_rgb8_rgba8 (unsigned char *src, unsigned char *dst, long samples)
+{
+ long n = samples-1;
+ while (n--)
+ {
+ *(unsigned int *) dst = (*(unsigned int *) src) | (255 << 24);
+ src += 3;
+ dst += 4;
+ }
+ dst[0] = src[0];
+ dst[1] = src[1];
+ dst[2] = src[2];
+ dst[3] = 255;
+ return samples;
+}
+
+#define conv_rgb8_rgbA8 conv_rgb8_rgba8
+
+static long
+conv_rgba8_rgb8 (unsigned char *src, unsigned char *dst, long samples)
+{
+ long n = samples;
+
+ while (n--)
+ {
+ dst[0] = src[0];
+ dst[1] = src[1];
+ dst[2] = src[2];
+ src += 4;
+ dst += 3;
+ }
+ return samples;
+}
+
+static long
+conv_rgbA8_rgb8 (unsigned char *src, unsigned char *dst, long samples)
+{
+ long n = samples;
+
+ while (n--)
+ {
+ int alpha = src[3];
+ if (alpha == 255)
+ {
+ *dst++ = src[0];
+ *dst++ = src[1];
+ *dst++ = src[2];
+ }
+ else if (alpha == 0)
+ {
+ *dst++ = 0;
+ *dst++ = 0;
+ *dst++ = 0;
+ }
+ else
+ {
+ unsigned int aa = ((255 << 16) + (alpha >> 1)) / alpha;
+ *dst++ = (src[0] * aa + 0x8000) >> 16;
+ *dst++ = (src[1] * aa + 0x8000) >> 16;
+ *dst++ = (src[2] * aa + 0x8000) >> 16;
+ }
+ src += 4;
+ }
+ return samples;
+}
+
+#ifndef byteclamp
+#define byteclamp(j) do { if (j < 0) j = 0;else if (j > 255) j = 255; } while (0)
+#endif
+
+#define YUV82RGB8(Y, U, V, R, G, B) do { \
+ R = ((Y << 15) + 37355 * (V - 128)) >> 15; \
+ G = ((Y << 15) - 12911 * (U - 128) - 19038 * (V - 128)) >> 15; \
+ B = ((Y << 15) + 66454 * (U - 128)) >> 15; \
+ byteclamp (R); \
+ byteclamp (G); \
+ byteclamp (B); \
+ } while (0)
+
+#define RGB82YUV8(R, G, B, Y, U, V) do { \
+ Y = ((9798 * R + 19234 * G + 3736 * B) >> 15) + 000; \
+ U = ((-4817 * R - 9470 * G + 14320 * B) >> 15) + 128; \
+ V = ((20152 * R - 16875 * G - 3277 * B) >> 15) + 128; \
+ byteclamp (Y); \
+ byteclamp (U); \
+ byteclamp (V); \
+ } while (0)
+
+
+
+ static long
+conv_yuvaF_rgbaF (unsigned char *src, unsigned char *dst, long samples)
+{
+ float *src_f = (float *) src;
+ float *dst_f = (float *) dst;
+ long n = samples;
+
+ while (n--)
+ {
+ float Y, U, V;
+ float R, G, B;
+
+ Y = src_f[0];
+ U = src_f[1];
+ V = src_f[2];
+
+ R = Y + 1.40200 * (V /*-0.5*/);
+ G = Y - 0.34414 * (U /*-0.5*/) -0.71414 * (V /*-0.5*/);
+ B = Y + 1.77200 * (U /*-0.5*/);
+
+ dst_f[0] = R;
+ dst_f[1] = G;
+ dst_f[2] = B;
+ dst_f[3] = src_f[3];
+
+ dst_f += 4;
+ src_f += 4;
+ }
+ return samples;
+}
+
+
+static long
+conv_yuvF_rgbF (unsigned char *src, unsigned char *dst, long samples)
+{
+ float *src_f = (float *) src;
+ float *dst_f = (float *) dst;
+ long n = samples;
+
+ while (n--)
+ {
+ float Y, U, V;
+ float R, G, B;
+
+ Y = src_f[0];
+ U = src_f[1];
+ V = src_f[2];
+
+ R = Y + 1.40200 * (V /*-0.5*/);
+ G = Y - 0.34414 * (U /*-0.5*/) -0.71414 * (V /*-0.5*/);
+ B = Y + 1.77200 * (U /*-0.5*/);
+
+ dst_f[0] = R;
+ dst_f[1] = G;
+ dst_f[2] = B;
+
+ dst_f += 3;
+ src_f += 3;
+ }
+ return samples;
+}
+
+int init (void);
+
+int
+init (void)
+{
+ const Babl *rgbaD = babl_format_new (
+ babl_model ("R'G'B'A"),
+ babl_type ("double"),
+ babl_component ("R'"),
+ babl_component ("G'"),
+ babl_component ("B'"),
+ babl_component ("A"),
+ NULL);
+ const Babl *rgbaF = babl_format_new (
+ babl_model ("R'G'B'A"),
+ babl_type ("float"),
+ babl_component ("R'"),
+ babl_component ("G'"),
+ babl_component ("B'"),
+ babl_component ("A"),
+ NULL);
+ const Babl *rgba16 = babl_format_new (
+ babl_model ("R'G'B'A"),
+ babl_type ("u16"),
+ babl_component ("R'"),
+ babl_component ("G'"),
+ babl_component ("B'"),
+ babl_component ("A"),
+ NULL);
+ const Babl *rgba8 = babl_format_new (
+ babl_model ("R'G'B'A"),
+ babl_type ("u8"),
+ babl_component ("R'"),
+ babl_component ("G'"),
+ babl_component ("B'"),
+ babl_component ("A"),
+ NULL);
+ const Babl *rgbAF = babl_format_new (
+ babl_model ("R'aG'aB'aA"),
+ babl_type ("float"),
+ babl_component ("R'a"),
+ babl_component ("G'a"),
+ babl_component ("B'a"),
+ babl_component ("A"),
+ NULL);
+ const Babl *rgbA16 = babl_format_new (
+ babl_model ("R'aG'aB'aA"),
+ babl_type ("u16"),
+ babl_component ("R'a"),
+ babl_component ("G'a"),
+ babl_component ("B'a"),
+ babl_component ("A"),
+ NULL);
+ const Babl *rgbA8 = babl_format_new (
+ babl_model ("R'aG'aB'aA"),
+ babl_type ("u8"),
+ babl_component ("R'a"),
+ babl_component ("G'a"),
+ babl_component ("B'a"),
+ babl_component ("A"),
+ NULL);
+ const Babl *rgbF = babl_format_new (
+ babl_model ("R'G'B'"),
+ babl_type ("float"),
+ babl_component ("R'"),
+ babl_component ("G'"),
+ babl_component ("B'"),
+ NULL);
+ const Babl *rgb16 = babl_format_new (
+ babl_model ("R'G'B'"),
+ babl_type ("u16"),
+ babl_component ("R'"),
+ babl_component ("G'"),
+ babl_component ("B'"),
+ NULL);
+ const Babl *rgb8 = babl_format_new (
+ babl_model ("R'G'B'"),
+ babl_type ("u8"),
+ babl_component ("R'"),
+ babl_component ("G'"),
+ babl_component ("B'"),
+ NULL);
+ const Babl *gaF = babl_format_new (
+ babl_model ("Y'A"),
+ babl_type ("float"),
+ babl_component ("Y'"),
+ babl_component ("A"),
+ NULL);
+ const Babl *gAF = babl_format_new (
+ babl_model ("Y'aA"),
+ babl_type ("float"),
+ babl_component ("Y'a"),
+ babl_component ("A"),
+ NULL);
+ const Babl *gF = babl_format_new (
+ babl_model ("Y'"),
+ babl_type ("float"),
+ babl_component ("Y'"),
+ NULL);
+ const Babl *ga16 = babl_format_new (
+ babl_model ("Y'A"),
+ babl_type ("u16"),
+ babl_component ("Y'"),
+ babl_component ("A"),
+ NULL);
+ const Babl *gA16 = babl_format_new (
+ babl_model ("Y'aA"),
+ babl_type ("u16"),
+ babl_component ("Y'a"),
+ babl_component ("A"),
+ NULL);
+ const Babl *g16 = babl_format_new (
+ babl_model ("Y'"),
+ babl_type ("u16"),
+ babl_component ("Y'"),
+ NULL);
+ const Babl *ga8 = babl_format_new (
+ babl_model ("Y'A"),
+ babl_type ("u8"),
+ babl_component ("Y'"),
+ babl_component ("A"),
+ NULL);
+ const Babl *gA8 = babl_format_new (
+ babl_model ("Y'aA"),
+ babl_type ("u8"),
+ babl_component ("Y'a"),
+ babl_component ("A"),
+ NULL);
+ const Babl *g8 = babl_format_new (
+ babl_model ("Y'"),
+ babl_type ("u8"),
+ babl_component ("Y'"),
+ NULL);
+ const Babl *yuvF = babl_format_new (
+ babl_model ("Y'CbCr"),
+ babl_type ("float"),
+ babl_component ("Y'"),
+ babl_type ("float"),
+ babl_component ("Cb"),
+ babl_component ("Cr"),
+ NULL);
+ const Babl *yuvaF = babl_format_new (
+ babl_model ("Y'CbCrA"),
+ babl_type ("float"),
+ babl_component ("Y'"),
+ babl_type ("float"),
+ babl_component ("Cb"),
+ babl_component ("Cr"),
+ babl_component ("A"),
+ NULL);
+
+#define o(src, dst) \
+ babl_conversion_new (src, dst, "linear", conv_ ## src ## _ ## dst, NULL)
+
+ o (rgbaF, rgba8);
+ o (rgba8, rgbaF);
+ o (rgbaF, rgba16);
+ o (rgba16, rgbaF);
+ o (rgbAF, rgbA8);
+ o (rgbA8, rgbAF);
+ o (rgbAF, rgbA16);
+ o (rgbA16, rgbAF);
+ o (rgbF, rgb8);
+ o (rgb8, rgbF);
+ o (rgbF, rgb16);
+ o (rgb16, rgbF);
+ o (rgba8, rgba16);
+ o (rgba16, rgba8);
+ o (rgbA8, rgbA16);
+ o (rgbA16, rgbA8);
+ o (rgb8, rgb16);
+ o (rgb16, rgb8);
+ o (gaF, ga8);
+ o (gAF, gA8);
+ o (gF, g8);
+ o (ga8, gaF);
+ o (gA8, gAF);
+ o (g8, gF);
+ o (gaF, ga16);
+ o (gAF, gA16);
+ o (gF, g16);
+ o (ga16, gaF);
+ o (gA16, gAF);
+ o (g16, gF);
+ o (ga16, ga8);
+ o (g16, g8);
+ o (yuvF, rgbF);
+ o (yuvaF, rgbaF);
+ o (ga8, ga16);
+ o (gA8, gA16);
+ o (g8, g16);
+ o (gaF, gAF);
+ o (gAF, gaF);
+ o (rgbaF, rgbF);
+ o (gaF, gF);
+ o (rgbF, rgbaF);
+ o (rgbF, rgbAF);
+ o (gF, gaF);
+ o (gF, gAF);
+ o (gF, rgbF);
+ o (gaF, rgbaF);
+ o (gAF, rgbAF);
+ o (rgbaF, rgb8);
+ o (rgbA8, rgba8);
+ o (rgba8, rgbA8);
+ o (rgbaF, rgb16);
+ o (rgb8, rgba8);
+ o (rgb8, rgbA8);
+ o (rgbA8, rgb8);
+ o (rgba8, rgb8);
+ o (rgbaF, rgbA8);
+ o (rgbA16, rgbaF);
+ o (rgbaF, rgbaD);
+ o (rgbaD, rgbaF);
+
+ return 0;
+}
--- /dev/null
+/* babl - dynamically extendable universal pixel conversion library.
+ * Copyright (C) 2005, Øyvind Kolås.
+ *
+ * Optimized 8bit conversion routines as used by legacy GIMP code.
+ * Copyright (C) 2008 Sven Neumann
+ *
+ * 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 3 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, see
+ * <http://www.gnu.org/licenses/>.
+ */
+
+#include "config.h"
+#include <stdio.h>
+
+#include "babl.h"
+
+#include "base/util.h"
+#include "extensions/util.h"
+
+#define INLINE inline
+
+
+/* lookup tables used in conversion */
+
+static float lut_linear[1 << 8];
+static float lut_gamma_2_2[1 << 8];
+
+
+static void
+tables_init (void)
+{
+ int i;
+
+ /* fill tables for conversion from 8 bit integer to float */
+ for (i = 0; i < 1 << 8; i++)
+ {
+ double value = i / 255.0;
+
+ lut_linear[i] = value;
+ lut_gamma_2_2[i] = gamma_2_2_to_linear (value);
+ }
+}
+
+static INLINE long
+u8_linear_to_float_linear (unsigned char *src,
+ unsigned char *dst,
+ long samples)
+{
+ float *d = (float *) dst;
+ long n = samples;
+
+ while (n--)
+ *d++ = lut_linear[*src++];
+
+ return samples;
+}
+
+
+static INLINE long
+u8_linear_to_float_linear_premul (unsigned char *src,
+ unsigned char *dst,
+ long samples)
+{
+ float *d = (float *) dst;
+ long n = samples;
+
+ while (n--)
+ {
+ float alpha = lut_linear[src[3]];
+ d[0] = lut_linear[src[0]] * alpha;
+ d[1] = lut_linear[src[1]] * alpha;
+ d[2] = lut_linear[src[2]] * alpha;
+ d[3] = alpha;
+ src += 4;
+ d += 4;
+ }
+ return samples;
+}
+
+static INLINE long
+u8_gamma_2_2_to_float_linear (unsigned char *src,
+ unsigned char *dst,
+ long samples)
+{
+ float *d = (float *) dst;
+ long n = samples;
+
+ while (n--)
+ *d++ = lut_gamma_2_2[*src++];
+
+ return samples;
+}
+
+static INLINE long
+conv_rgba8_linear_rgbaF_linear (unsigned char *src,
+ unsigned char *dst,
+ long samples)
+{
+ u8_linear_to_float_linear (src, dst, samples * 4);
+
+ return samples;
+}
+
+static INLINE long
+conv_rgba8_linear_ragabaaF_linear (unsigned char *src,
+ unsigned char *dst,
+ long samples)
+{
+ u8_linear_to_float_linear_premul (src, dst, samples);
+
+ return samples;
+}
+
+
+static INLINE long
+conv_rgba8_gamma_2_2_rgbaF_linear (unsigned char *src,
+ unsigned char *dst,
+ long samples)
+{
+ float *d = (float *) dst;
+ long n = samples;
+
+ while (n--)
+ {
+ *d++ = lut_gamma_2_2[*src++];
+ *d++ = lut_gamma_2_2[*src++];
+ *d++ = lut_gamma_2_2[*src++];
+ *d++ = lut_linear[*src++];
+ }
+
+ return samples;
+}
+
+static INLINE long
+conv_rgb8_linear_rgbF_linear (unsigned char *src,
+ unsigned char *dst,
+ long samples)
+{
+ u8_linear_to_float_linear (src, dst, samples * 3);
+
+ return samples;
+}
+
+static INLINE long
+conv_rgb8_gamma_2_2_rgbF_linear (unsigned char *src,
+ unsigned char *dst,
+ long samples)
+{
+ u8_gamma_2_2_to_float_linear (src, dst, samples * 3);
+
+ return samples;
+}
+
+static INLINE long
+conv_rgb8_linear_rgbaF_linear (unsigned char *src,
+ unsigned char *dst,
+ long samples)
+{
+ float *d = (float *) dst;
+ long n = samples;
+
+ while (n--)
+ {
+ *d++ = lut_linear[*src++];
+ *d++ = lut_linear[*src++];
+ *d++ = lut_linear[*src++];
+ *d++ = 1.0;
+ }
+
+ return samples;
+}
+
+#define conv_rgb8_linear_ragabaaF_linear conv_rgb8_linear_rgbaF_linear
+
+static INLINE long
+conv_rgb8_gamma_2_2_rgbaF_linear (unsigned char *src,
+ unsigned char *dst,
+ long samples)
+{
+ float *d = (float *) dst;
+ long n = samples;
+
+ while (n--)
+ {
+ *d++ = lut_gamma_2_2[*src++];
+ *d++ = lut_gamma_2_2[*src++];
+ *d++ = lut_gamma_2_2[*src++];
+ *d++ = 1.0;
+ }
+
+ return samples;
+}
+
+static INLINE long
+conv_ga8_linear_gaF_linear (unsigned char *src,
+ unsigned char *dst,
+ long samples)
+{
+ u8_linear_to_float_linear (src, dst, samples * 2);
+
+ return samples;
+}
+
+static INLINE long
+conv_ga8_gamma_2_2_gaF_linear (unsigned char *src,
+ unsigned char *dst,
+ long samples)
+{
+ float *d = (float *) dst;
+ long n = samples;
+
+ while (n--)
+ {
+ *d++ = lut_gamma_2_2[*src++];
+ *d++ = lut_linear[*src++];
+ }
+
+ return samples;
+}
+
+static INLINE long
+conv_ga8_linear_rgbaF_linear (unsigned char *src,
+ unsigned char *dst,
+ long samples)
+{
+ float *d = (float *) dst;
+ long n = samples;
+
+ while (n--)
+ {
+ float value = lut_linear[*src++];
+
+ *d++ = value;
+ *d++ = value;
+ *d++ = value;
+ *d++ = lut_linear[*src++];
+ }
+
+ return samples;
+}
+
+static INLINE long
+conv_ga8_gamma_2_2_rgbaF_linear (unsigned char *src,
+ unsigned char *dst,
+ long samples)
+{
+ float *d = (float *) dst;
+ long n = samples;
+
+ while (n--)
+ {
+ float value = lut_gamma_2_2[*src++];
+
+ *d++ = value;
+ *d++ = value;
+ *d++ = value;
+ *d++ = lut_linear[*src++];
+ }
+
+ return samples;
+}
+
+static INLINE long
+conv_g8_linear_gF_linear (unsigned char *src,
+ unsigned char *dst,
+ long samples)
+{
+ u8_linear_to_float_linear (src, dst, samples);
+
+ return samples;
+}
+
+static INLINE long
+conv_g8_gamma_2_2_gF_linear (unsigned char *src,
+ unsigned char *dst,
+ long samples)
+{
+ u8_gamma_2_2_to_float_linear (src, dst, samples);
+
+ return samples;
+}
+
+static INLINE long
+conv_g8_linear_rgbaF_linear (unsigned char *src,
+ unsigned char *dst,
+ long samples)
+{
+ float *d = (float *) dst;
+ long n = samples;
+
+ while (n--)
+ {
+ float value = lut_linear[*src++];
+
+ *d++ = value;
+ *d++ = value;
+ *d++ = value;
+ *d++ = 1.0;
+ }
+
+ return samples;
+}
+static INLINE long
+conv_g8_gamma_2_2_rgbaF_linear (unsigned char *src,
+ unsigned char *dst,
+ long samples)
+{
+ float *d = (float *) dst;
+ long n = samples;
+
+ while (n--)
+ {
+ float value = lut_gamma_2_2[*src++];
+
+ *d++ = value;
+ *d++ = value;
+ *d++ = value;
+ *d++ = 1.0;
+ }
+
+ return samples;
+}
+
+static INLINE long
+conv_rgbaF_linear_rgb8_linear (unsigned char *src,
+ unsigned char *dst,
+ long samples)
+{
+ float *fsrc = (float *) src;
+ long n = samples;
+ long int v;
+
+ while (n--)
+ {
+ v = rint (*fsrc++ * 255.0);
+ *dst++ = (v < 0) ? 0 : ((v > 255) ? 255 : v);
+
+ v = rint (*fsrc++ * 255.0);
+ *dst++ = (v < 0) ? 0 : ((v > 255) ? 255 : v);
+
+ v = rint (*fsrc++ * 255.0);
+ *dst++ = (v < 0) ? 0 : ((v > 255) ? 255 : v);
+
+ fsrc++;
+ }
+
+ return samples;
+}
+
+static INLINE long
+conv_rgbaF_linear_rgba8_linear (unsigned char *src,
+ unsigned char *dst,
+ long samples)
+{
+ float *fsrc = (float *) src;
+ long n = samples;
+ long int v;
+
+ while (n--)
+ {
+ v = rint (*fsrc++ * 255.0);
+ *dst++ = (v < 0) ? 0 : ((v > 255) ? 255 : v);
+
+ v = rint (*fsrc++ * 255.0);
+ *dst++ = (v < 0) ? 0 : ((v > 255) ? 255 : v);
+
+ v = rint (*fsrc++ * 255.0);
+ *dst++ = (v < 0) ? 0 : ((v > 255) ? 255 : v);
+
+ v = rint (*fsrc++ * 255.0);
+ *dst++ = (v < 0) ? 0 : ((v > 255) ? 255 : v);
+ }
+
+ return samples;
+}
+
+int init (void);
+
+int
+init (void)
+{
+ const Babl *ragabaaF_linear = babl_format_new (
+ babl_model ("RaGaBaA"),
+ babl_type ("float"),
+ babl_component ("Ra"),
+ babl_component ("Ga"),
+ babl_component ("Ba"),
+ babl_component ("A"),
+ NULL);
+ const Babl *rgbaF_linear = babl_format_new (
+ babl_model ("RGBA"),
+ babl_type ("float"),
+ babl_component ("R"),
+ babl_component ("G"),
+ babl_component ("B"),
+ babl_component ("A"),
+ NULL);
+ const Babl *rgba8_linear = babl_format_new (
+ babl_model ("RGBA"),
+ babl_type ("u8"),
+ babl_component ("R"),
+ babl_component ("G"),
+ babl_component ("B"),
+ babl_component ("A"),
+ NULL);
+ const Babl *rgba8_gamma_2_2 = babl_format_new (
+ babl_model ("R'G'B'A"),
+ babl_type ("u8"),
+ babl_component ("R'"),
+ babl_component ("G'"),
+ babl_component ("B'"),
+ babl_component ("A"),
+ NULL);
+ const Babl *rgbF_linear = babl_format_new (
+ babl_model ("RGB"),
+ babl_type ("float"),
+ babl_component ("R"),
+ babl_component ("G"),
+ babl_component ("B"),
+ NULL);
+ const Babl *rgb8_linear = babl_format_new (
+ babl_model ("RGB"),
+ babl_type ("u8"),
+ babl_component ("R"),
+ babl_component ("G"),
+ babl_component ("B"),
+ NULL);
+ const Babl *rgb8_gamma_2_2 = babl_format_new (
+ babl_model ("R'G'B'"),
+ babl_type ("u8"),
+ babl_component ("R'"),
+ babl_component ("G'"),
+ babl_component ("B'"),
+ NULL);
+ const Babl *gaF_linear = babl_format_new (
+ babl_model ("YA"),
+ babl_type ("float"),
+ babl_component ("Y"),
+ babl_component ("A"),
+ NULL);
+ const Babl *ga8_linear = babl_format_new (
+ babl_model ("YA"),
+ babl_type ("u8"),
+ babl_component ("Y"),
+ babl_component ("A"),
+ NULL);
+ const Babl *ga8_gamma_2_2 = babl_format_new (
+ babl_model ("Y'A"),
+ babl_type ("u8"),
+ babl_component ("Y'"),
+ babl_component ("A"),
+ NULL);
+ const Babl *gF_linear = babl_format_new (
+ babl_model ("Y"),
+ babl_type ("float"),
+ babl_component ("Y"),
+ NULL);
+ const Babl *g8_linear = babl_format_new (
+ babl_model ("Y"),
+ babl_type ("u8"),
+ babl_component ("Y"),
+ NULL);
+ const Babl *g8_gamma_2_2 = babl_format_new (
+ babl_model ("Y'"),
+ babl_type ("u8"),
+ babl_component ("Y'"),
+ NULL);
+
+ tables_init ();
+
+#define o(src, dst) \
+ babl_conversion_new (src, dst, "linear", conv_ ## src ## _ ## dst, NULL)
+
+ o (rgba8_linear, ragabaaF_linear);
+ o (rgba8_linear, rgbaF_linear);
+ o (rgba8_gamma_2_2, rgbaF_linear);
+
+ o (rgb8_linear, rgbF_linear);
+ o (rgb8_gamma_2_2, rgbF_linear);
+ o (rgb8_linear, rgbaF_linear);
+ o (rgb8_linear, ragabaaF_linear);
+ o (rgb8_gamma_2_2, rgbaF_linear);
+
+ o (ga8_linear, gaF_linear);
+ o (ga8_gamma_2_2, gaF_linear);
+ o (ga8_linear, rgbaF_linear);
+ o (ga8_gamma_2_2, rgbaF_linear);
+
+ o (g8_linear, gF_linear);
+ o (g8_gamma_2_2, gF_linear);
+ o (g8_linear, rgbaF_linear);
+ o (g8_gamma_2_2, rgbaF_linear);
+
+ o (rgbaF_linear, rgb8_linear);
+ o (rgbaF_linear, rgba8_linear);
+
+ return 0;
+}
--- /dev/null
+/* babl - dynamically extendable universal pixel conversion library.
+ * Copyright (C) 2013, Daniel Sabo
+ *
+ * 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 3 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, see
+ * <http://www.gnu.org/licenses/>.
+ */
+
+#include "config.h"
+#include <stdio.h>
+
+#include "babl.h"
+
+#include "base/util.h"
+#include "base/rgb-constants.h"
+#include "extensions/util.h"
+
+/* There was some debate on #gimp about whether these constants
+ * are accurate, for now I've elected to just follow whatever
+ * babl/base does.
+ * - Daniel
+ */
+
+/* Float versions of the double constants in rgb-constants.h */
+static const float RGB_LUMINANCE_RED_FLOAT = RGB_LUMINANCE_RED;
+static const float RGB_LUMINANCE_GREEN_FLOAT = RGB_LUMINANCE_GREEN;
+static const float RGB_LUMINANCE_BLUE_FLOAT = RGB_LUMINANCE_BLUE;
+
+static long
+conv_rgbaF_linear_y8_linear (unsigned char *src,
+ unsigned char *dst,
+ long samples)
+{
+ static const float RGB_LUMINANCE_RED_FLOAT = RGB_LUMINANCE_RED;
+ static const float RGB_LUMINANCE_GREEN_FLOAT = RGB_LUMINANCE_GREEN;
+ static const float RGB_LUMINANCE_BLUE_FLOAT = RGB_LUMINANCE_BLUE;
+
+ float *s = (float *) src;
+ long n = samples;
+
+ while (n--)
+ {
+ float value;
+ long int v;
+ value = *s++ * RGB_LUMINANCE_RED_FLOAT;
+ value += *s++ * RGB_LUMINANCE_GREEN_FLOAT;
+ value += *s++ * RGB_LUMINANCE_BLUE_FLOAT;
+ s++;
+
+ v = rint (value * 255.0);
+ *dst++ = (v < 0) ? 0 : ((v > 255) ? 255 : v);
+ }
+
+ return samples;
+}
+
+static long
+conv_rgbaF_linear_yF_linear (unsigned char *src,
+ unsigned char *dst,
+ long samples)
+{
+
+ float *s = (float *) src;
+ float *d = (float *) dst;
+ long n = samples;
+
+ while (n--)
+ {
+ float value;
+ value = *s++ * RGB_LUMINANCE_RED_FLOAT;
+ value += *s++ * RGB_LUMINANCE_GREEN_FLOAT;
+ value += *s++ * RGB_LUMINANCE_BLUE_FLOAT;
+ s++;
+ *d++ = value;
+ }
+
+ return samples;
+}
+
+static long
+conv_rgbaF_linear_yaF_linear (unsigned char *src,
+ unsigned char *dst,
+ long samples)
+{
+
+ float *s = (float *) src;
+ float *d = (float *) dst;
+ long n = samples;
+
+ while (n--)
+ {
+ float value;
+ value = *s++ * RGB_LUMINANCE_RED_FLOAT;
+ value += *s++ * RGB_LUMINANCE_GREEN_FLOAT;
+ value += *s++ * RGB_LUMINANCE_BLUE_FLOAT;
+ *d++ = value;
+ *d++ = *s++; /* alpha */
+ }
+
+ return samples;
+}
+
+int init (void);
+
+int
+init (void)
+{
+ babl_conversion_new (babl_format ("RGBA float"),
+ babl_format ("Y u8"),
+ "linear",
+ conv_rgbaF_linear_y8_linear,
+ NULL);
+
+ babl_conversion_new (babl_format ("RGBA float"),
+ babl_format ("Y float"),
+ "linear",
+ conv_rgbaF_linear_yF_linear,
+ NULL);
+
+ babl_conversion_new (babl_format ("RGBA float"),
+ babl_format ("YA float"),
+ "linear",
+ conv_rgbaF_linear_yaF_linear,
+ NULL);
+
+ return 0;
+}
--- /dev/null
+/* babl - dynamically extendable universal pixel conversion library.
+ * Copyright (C) 2005, Øyvind Kolås.
+ *
+ * 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 3 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, see
+ * <http://www.gnu.org/licenses/>.
+ */
+
+#include "config.h"
+#include <math.h>
+#include <string.h>
+
+#include "babl.h"
+#include "base/util.h"
+
+
+static long rgba_to_cmyk (char *src,
+ char *dst,
+ long n);
+
+static long cmyk_to_rgba (char *src,
+ char *dst,
+ long n);
+
+static long rgba_to_cmy (char *src,
+ char *dst,
+ long n);
+
+static long cmy_to_rgba (char *src,
+ char *dst,
+ long n);
+
+int init (void);
+
+int
+init (void)
+{
+ babl_component_new ("cyan", NULL);
+ babl_component_new ("yellow", NULL);
+ babl_component_new ("magenta", NULL);
+ babl_component_new ("key", NULL);
+
+ babl_model_new (
+ "name", "CMYK",
+ babl_component ("cyan"),
+ babl_component ("magenta"),
+ babl_component ("yellow"),
+ babl_component ("key"),
+ NULL
+ );
+ babl_model_new (
+ "name", "CMY",
+ babl_component ("cyan"),
+ babl_component ("magenta"),
+ babl_component ("yellow"),
+ NULL
+ );
+
+ babl_conversion_new (
+ babl_model ("RGBA"),
+ babl_model ("CMYK"),
+ "linear", rgba_to_cmyk,
+ NULL
+ );
+ babl_conversion_new (
+ babl_model ("CMYK"),
+ babl_model ("RGBA"),
+ "linear", cmyk_to_rgba,
+ NULL
+ );
+ babl_conversion_new (
+ babl_model ("RGBA"),
+ babl_model ("CMY"),
+ "linear", rgba_to_cmy,
+ NULL
+ );
+ babl_conversion_new (
+ babl_model ("CMY"),
+ babl_model ("RGBA"),
+ "linear", cmy_to_rgba,
+ NULL
+ );
+
+ babl_format_new (
+ "name", "CMYK float",
+ babl_model ("CMYK"),
+ babl_type ("float"),
+ babl_component ("cyan"),
+ babl_component ("magenta"),
+ babl_component ("yellow"),
+ babl_component ("key"),
+ NULL
+ );
+ babl_format_new (
+ "name", "CMY float",
+ babl_model ("CMY"),
+ babl_type ("float"),
+ babl_component ("cyan"),
+ babl_component ("magenta"),
+ babl_component ("yellow"),
+ NULL
+ );
+
+ babl_format_new (
+ "name", "CMYK u8",
+ babl_model ("CMYK"),
+ babl_type ("u8"),
+ babl_component ("cyan"),
+ babl_component ("magenta"),
+ babl_component ("yellow"),
+ babl_component ("key"),
+ NULL
+ );
+
+ return 0;
+}
+
+
+static long
+rgba_to_cmyk (char *src,
+ char *dst,
+ long n)
+{
+ while (n--)
+ {
+ double red = linear_to_gamma_2_2 (((double *) src)[0]);
+ double green = linear_to_gamma_2_2 (((double *) src)[1]);
+ double blue = linear_to_gamma_2_2 (((double *) src)[2]);
+
+ double cyan, magenta, yellow, key;
+
+ double pullout = 1.0;
+
+ cyan = 1.0 - red;
+ magenta = 1.0 - green;
+ yellow = 1.0 - blue;
+
+ key = 1.0;
+ if (cyan < key) key = cyan;
+ if (magenta < key) key = magenta;
+ if (yellow < key) key = yellow;
+
+ key *= pullout;
+
+ if (key < 1.0)
+ {
+ cyan = (cyan - key) / (1.0 - key);
+ magenta = (magenta - key) / (1.0 - key);
+ yellow = (yellow - key) / (1.0 - key);
+ }
+ else
+ {
+ cyan = 0.0;
+ magenta = 0.0;
+ yellow = 0.0;
+ }
+
+ ((double *) dst)[0] = cyan;
+ ((double *) dst)[1] = magenta;
+ ((double *) dst)[2] = yellow;
+ ((double *) dst)[3] = key;
+
+ src += 4 * sizeof (double);
+ dst += 4 * sizeof (double);
+ }
+ return n;
+}
+
+static long
+cmyk_to_rgba (char *src,
+ char *dst,
+ long n)
+{
+ while (n--)
+ {
+ double cyan = ((double *) src)[0];
+ double magenta = ((double *) src)[1];
+ double yellow = ((double *) src)[2];
+ double key = ((double *) src)[3];
+
+ double red, green, blue;
+
+ if (key < 1.0)
+ {
+ cyan = cyan * (1.0 - key) + key;
+ magenta = magenta * (1.0 - key) + key;
+ yellow = yellow * (1.0 - key) + key;
+ }
+ else
+ {
+ cyan = magenta = yellow = 1.0;
+ }
+
+ red = 1.0 - cyan;
+ green = 1.0 - magenta;
+ blue = 1.0 - yellow;
+
+ ((double *) dst)[0] = gamma_2_2_to_linear (red);
+ ((double *) dst)[1] = gamma_2_2_to_linear (green);
+ ((double *) dst)[2] = gamma_2_2_to_linear (blue);
+
+ ((double *) dst)[3] = 1.0;
+
+ src += 4 * sizeof (double);
+ dst += 4 * sizeof (double);
+ }
+ return n;
+}
+
+static long
+rgba_to_cmy (char *src,
+ char *dst,
+ long n)
+{
+ while (n--)
+ {
+ double red = linear_to_gamma_2_2 (((double *) src)[0]);
+ double green = linear_to_gamma_2_2 (((double *) src)[1]);
+ double blue = linear_to_gamma_2_2 (((double *) src)[2]);
+
+ double cyan, magenta, yellow;
+
+ cyan = 1.0 - red;
+ magenta = 1.0 - green;
+ yellow = 1.0 - blue;
+
+ ((double *) dst)[0] = cyan;
+ ((double *) dst)[1] = magenta;
+ ((double *) dst)[2] = yellow;
+
+ src += 4 * sizeof (double);
+ dst += 3 * sizeof (double);
+ }
+ return n;
+}
+
+static long
+cmy_to_rgba (char *src,
+ char *dst,
+ long n)
+{
+ while (n--)
+ {
+ double cyan = ((double *) src)[0];
+ double magenta = ((double *) src)[1];
+ double yellow = ((double *) src)[2];
+
+ double red, green, blue;
+
+ red = 1.0 - cyan;
+ green = 1.0 - magenta;
+ blue = 1.0 - yellow;
+
+ ((double *) dst)[0] = gamma_2_2_to_linear (red);
+ ((double *) dst)[1] = gamma_2_2_to_linear (green);
+ ((double *) dst)[2] = gamma_2_2_to_linear (blue);
+
+ ((double *) dst)[3] = 1.0;
+
+ src += 3 * sizeof (double);
+ dst += 4 * sizeof (double);
+ }
+ return n;
+}
--- /dev/null
+#include <stdlib.h>
+#include <stdint.h>
+#include "babl.h"
+
+int init (void);
+
+static inline long
+float_to_u8 (unsigned char *src_char, unsigned char *dst, long samples)
+{
+ float *src = (float *)src_char;
+ long n = samples;
+ while (n--)
+ {
+ float r = src[0];
+ float g = src[1];
+ float b = src[2];
+ float a = src[3];
+
+ dst[0] = (r >= 1.0f) ? 0xFF : ((r <= 0.0f) ? 0x0 : 0xFF * r + 0.5f);
+ dst[1] = (g >= 1.0f) ? 0xFF : ((g <= 0.0f) ? 0x0 : 0xFF * g + 0.5f);
+ dst[2] = (b >= 1.0f) ? 0xFF : ((b <= 0.0f) ? 0x0 : 0xFF * b + 0.5f);
+ dst[3] = (a >= 1.0f) ? 0xFF : ((a <= 0.0f) ? 0x0 : 0xFF * a + 0.5f);
+
+ dst += 4;
+ src += 4;
+ }
+ return samples;
+}
+
+static inline long
+float_pre_to_u8_pre (unsigned char *src_char, unsigned char *dst, long samples)
+{
+ float *src = (float *)src_char;
+ long n = samples;
+ while (n--)
+ {
+ float r = src[0];
+ float g = src[1];
+ float b = src[2];
+ float a = src[3];
+
+ if (a > 1.0f) {
+ r /= a;
+ g /= a;
+ b /= a;
+ a /= a;
+ }
+
+ dst[0] = (r >= 1.0f) ? 0xFF : ((r <= 0.0f) ? 0x0 : 0xFF * r + 0.5f);
+ dst[1] = (g >= 1.0f) ? 0xFF : ((g <= 0.0f) ? 0x0 : 0xFF * g + 0.5f);
+ dst[2] = (b >= 1.0f) ? 0xFF : ((b <= 0.0f) ? 0x0 : 0xFF * b + 0.5f);
+ dst[3] = (a >= 1.0f) ? 0xFF : ((a <= 0.0f) ? 0x0 : 0xFF * a + 0.5f);
+
+ dst += 4;
+ src += 4;
+
+ }
+ return samples;
+}
+
+static inline long
+float_to_u16 (unsigned char *src_char, unsigned char *dst_char, long samples)
+{
+ float *src = (float *)src_char;
+ uint16_t *dst = (uint16_t *)dst_char;
+ long n = samples;
+ while (n--)
+ {
+ float r = src[0];
+ float g = src[1];
+ float b = src[2];
+ float a = src[3];
+
+ dst[0] = (r >= 1.0f) ? 0xFFFF : ((r <= 0.0f) ? 0x0 : 0xFFFF * r + 0.5f);
+ dst[1] = (g >= 1.0f) ? 0xFFFF : ((g <= 0.0f) ? 0x0 : 0xFFFF * g + 0.5f);
+ dst[2] = (b >= 1.0f) ? 0xFFFF : ((b <= 0.0f) ? 0x0 : 0xFFFF * b + 0.5f);
+ dst[3] = (a >= 1.0f) ? 0xFFFF : ((a <= 0.0f) ? 0x0 : 0xFFFF * a + 0.5f);
+
+ dst += 4;
+ src += 4;
+ }
+ return samples;
+}
+
+static inline long
+float_pre_to_u16_pre (unsigned char *src_char, unsigned char *dst_char, long samples)
+{
+ float *src = (float *)src_char;
+ uint16_t *dst = (uint16_t *)dst_char;
+ long n = samples;
+ while (n--)
+ {
+ float r = src[0];
+ float g = src[1];
+ float b = src[2];
+ float a = src[3];
+
+ if (a > 1.0f) {
+ r /= a;
+ g /= a;
+ b /= a;
+ a /= a;
+ }
+
+ dst[0] = (r >= 1.0f) ? 0xFFFF : ((r <= 0.0f) ? 0x0 : 0xFFFF * r + 0.5f);
+ dst[1] = (g >= 1.0f) ? 0xFFFF : ((g <= 0.0f) ? 0x0 : 0xFFFF * g + 0.5f);
+ dst[2] = (b >= 1.0f) ? 0xFFFF : ((b <= 0.0f) ? 0x0 : 0xFFFF * b + 0.5f);
+ dst[3] = (a >= 1.0f) ? 0xFFFF : ((a <= 0.0f) ? 0x0 : 0xFFFF * a + 0.5f);
+
+ dst += 4;
+ src += 4;
+ }
+ return samples;
+}
+
+int
+init (void)
+{
+ /* float and u8 */
+ babl_conversion_new (babl_format ("R'G'B'A float"),
+ babl_format ("R'G'B'A u8"),
+ "linear",
+ float_to_u8,
+ NULL);
+ babl_conversion_new (babl_format ("RGBA float"),
+ babl_format ("RGBA u8"),
+ "linear",
+ float_to_u8,
+ NULL);
+ babl_conversion_new (babl_format ("R'aG'aB'aA float"),
+ babl_format ("R'aG'aB'aA u8"),
+ "linear",
+ float_pre_to_u8_pre,
+ NULL);
+ babl_conversion_new (babl_format ("RaGaBaA float"),
+ babl_format ("RaGaBaA u8"),
+ "linear",
+ float_pre_to_u8_pre,
+ NULL);
+
+ /* float and u16 */
+ babl_conversion_new (babl_format ("R'G'B'A float"),
+ babl_format ("R'G'B'A u16"),
+ "linear",
+ float_to_u16,
+ NULL);
+ babl_conversion_new (babl_format ("RGBA float"),
+ babl_format ("RGBA u16"),
+ "linear",
+ float_to_u16,
+ NULL);
+ babl_conversion_new (babl_format ("R'aG'aB'aA float"),
+ babl_format ("R'aG'aB'aA u16"),
+ "linear",
+ float_pre_to_u16_pre,
+ NULL);
+ babl_conversion_new (babl_format ("RaGaBaA float"),
+ babl_format ("RaGaBaA u16"),
+ "linear",
+ float_pre_to_u16_pre,
+ NULL);
+
+ return 0;
+}
--- /dev/null
+/* babl - dynamically extendable universal pixel conversion library.
+ * Copyright (C) 2015 Daniel Sabo
+ *
+ * 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 3 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, see
+ * <http://www.gnu.org/licenses/>.
+ */
+
+#include "config.h"
+
+#if defined(USE_SSE4_1) && defined(USE_F16C) && defined(ARCH_X86_64)
+
+#include <immintrin.h>
+
+#include <stdint.h>
+#include <stdlib.h>
+
+#include "babl.h"
+#include "babl-cpuaccel.h"
+#include "extensions/util.h"
+
+static inline long
+conv_yHalf_yF (const uint16_t *src, float *dst, long samples)
+{
+ const uint64_t *s_vec;
+ __v4sf *d_vec;
+
+ long n = samples;
+
+ s_vec = (const uint64_t *)src;
+ d_vec = (__v4sf *)dst;
+
+ while (n >= 4)
+ {
+ __m128i in_val = _mm_insert_epi64((__m128i)_mm_setzero_ps(), *s_vec++, 0);
+ __v4sf out_val = (__v4sf)_mm_cvtph_ps(in_val);
+ _mm_storeu_ps((float *)d_vec++, out_val);
+ n -= 4;
+ }
+
+ src = (const uint16_t *)s_vec;
+ dst = (float *)d_vec;
+
+ while (n)
+ {
+ __m128i in_val = _mm_insert_epi16((__m128i)_mm_setzero_ps(), *src++, 0);
+ __v4sf out_val = (__v4sf)_mm_cvtph_ps(in_val);
+ _mm_store_ss(dst++, out_val);
+ n -= 1;
+ }
+
+ return samples;
+}
+
+static long
+conv_yaHalf_yaF (const uint16_t *src, float *dst, long samples)
+{
+ return conv_yHalf_yF (src, dst, samples * 2) / 2;
+}
+
+static long
+conv_rgbHalf_rgbF (const uint16_t *src, float *dst, long samples)
+{
+ return conv_yHalf_yF (src, dst, samples * 3) / 3;
+}
+
+static long
+conv_rgbaHalf_rgbaF (const uint16_t *src, float *dst, long samples)
+{
+ return conv_yHalf_yF (src, dst, samples * 4) / 4;
+}
+
+static inline long
+conv_yF_yHalf (const float *src, uint16_t *dst, long samples)
+{
+ const __v4sf *s_vec;
+ uint64_t *d_vec;
+
+ long n = samples;
+
+ s_vec = (const __v4sf *)src;
+ d_vec = (uint64_t *)dst;
+
+ while (n >= 4)
+ {
+ __m128 in_val = _mm_loadu_ps((float *)s_vec++);
+ __m128i out_val = _mm_cvtps_ph(in_val, _MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
+ _mm_storel_epi64((__m128i *)d_vec++, out_val);
+ n -= 4;
+ }
+
+ src = (const float *)s_vec;
+ dst = (uint16_t *)d_vec;
+
+ while (n)
+ {
+ __m128 in_val = _mm_load_ss(src++);
+ __m128i out_val = _mm_cvtps_ph(in_val, _MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
+ *dst++ = _mm_extract_epi16(out_val, 0);
+ n -= 1;
+ }
+
+ return samples;
+}
+
+static long
+conv_yaF_yaHalf (const float *src, uint16_t *dst, long samples)
+{
+ return conv_yF_yHalf (src, dst, samples * 2) / 2;
+}
+
+static long
+conv_rgbF_rgbHalf (const float *src, uint16_t *dst, long samples)
+{
+ return conv_yF_yHalf (src, dst, samples * 3) / 3;
+}
+
+static long
+conv_rgbaF_rgbaHalf (const float *src, uint16_t *dst, long samples)
+{
+ return conv_yF_yHalf (src, dst, samples * 4) / 4;
+}
+
+#endif /* defined(USE_SSE4_1) && defined(USE_F16C) && defined(ARCH_X86_64) */
+
+int init (void);
+
+int
+init (void)
+{
+#if defined(USE_SSE4_1) && defined(USE_F16C) && defined(ARCH_X86_64)
+ const Babl *rgbaF_linear = babl_format_new (
+ babl_model ("RGBA"),
+ babl_type ("float"),
+ babl_component ("R"),
+ babl_component ("G"),
+ babl_component ("B"),
+ babl_component ("A"),
+ NULL);
+ const Babl *rgbaHalf_linear = babl_format_new (
+ babl_model ("RGBA"),
+ babl_type ("half"),
+ babl_component ("R"),
+ babl_component ("G"),
+ babl_component ("B"),
+ babl_component ("A"),
+ NULL);
+ const Babl *rgbaF_gamma = babl_format_new (
+ babl_model ("R'G'B'A"),
+ babl_type ("float"),
+ babl_component ("R'"),
+ babl_component ("G'"),
+ babl_component ("B'"),
+ babl_component ("A"),
+ NULL);
+ const Babl *rgbaHalf_gamma = babl_format_new (
+ babl_model ("R'G'B'A"),
+ babl_type ("half"),
+ babl_component ("R'"),
+ babl_component ("G'"),
+ babl_component ("B'"),
+ babl_component ("A"),
+ NULL);
+ const Babl *rgbF_linear = babl_format_new (
+ babl_model ("RGB"),
+ babl_type ("float"),
+ babl_component ("R"),
+ babl_component ("G"),
+ babl_component ("B"),
+ NULL);
+ const Babl *rgbHalf_linear = babl_format_new (
+ babl_model ("RGB"),
+ babl_type ("half"),
+ babl_component ("R"),
+ babl_component ("G"),
+ babl_component ("B"),
+ NULL);
+ const Babl *rgbF_gamma = babl_format_new (
+ babl_model ("R'G'B'"),
+ babl_type ("float"),
+ babl_component ("R'"),
+ babl_component ("G'"),
+ babl_component ("B'"),
+ NULL);
+ const Babl *rgbHalf_gamma = babl_format_new (
+ babl_model ("R'G'B'"),
+ babl_type ("half"),
+ babl_component ("R'"),
+ babl_component ("G'"),
+ babl_component ("B'"),
+ NULL);
+ const Babl *yaF_linear = babl_format_new (
+ babl_model ("YA"),
+ babl_type ("float"),
+ babl_component ("Y"),
+ babl_component ("A"),
+ NULL);
+ const Babl *yaHalf_linear = babl_format_new (
+ babl_model ("YA"),
+ babl_type ("half"),
+ babl_component ("Y"),
+ babl_component ("A"),
+ NULL);
+ const Babl *yaF_gamma = babl_format_new (
+ babl_model ("Y'A"),
+ babl_type ("float"),
+ babl_component ("Y'"),
+ babl_component ("A"),
+ NULL);
+ const Babl *yaHalf_gamma = babl_format_new (
+ babl_model ("Y'A"),
+ babl_type ("half"),
+ babl_component ("Y'"),
+ babl_component ("A"),
+ NULL);
+ const Babl *yF_linear = babl_format_new (
+ babl_model ("Y"),
+ babl_type ("float"),
+ babl_component ("Y"),
+ NULL);
+ const Babl *yHalf_linear = babl_format_new (
+ babl_model ("Y"),
+ babl_type ("half"),
+ babl_component ("Y"),
+ NULL);
+ const Babl *yF_gamma = babl_format_new (
+ babl_model ("Y'"),
+ babl_type ("float"),
+ babl_component ("Y'"),
+ NULL);
+ const Babl *yHalf_gamma = babl_format_new (
+ babl_model ("Y'"),
+ babl_type ("half"),
+ babl_component ("Y'"),
+ NULL);
+
+#define CONV(src, dst) \
+{ \
+ babl_conversion_new (src ## _linear, dst ## _linear, "linear", conv_ ## src ## _ ## dst, NULL); \
+ babl_conversion_new (src ## _gamma, dst ## _gamma, "linear", conv_ ## src ## _ ## dst, NULL); \
+}
+
+ if ((babl_cpu_accel_get_support () & BABL_CPU_ACCEL_X86_SSE4_1) &&
+ (babl_cpu_accel_get_support () & BABL_CPU_ACCEL_X86_F16C))
+ {
+ CONV(rgbaHalf, rgbaF);
+ CONV(rgbHalf, rgbF);
+ CONV(yaHalf, yaF);
+ CONV(yHalf, yF);
+ CONV(rgbaF, rgbaHalf);
+ CONV(rgbF, rgbHalf);
+ CONV(yaF, yaHalf);
+ CONV(yF, yHalf);
+ }
+
+#endif /* defined(USE_SSE4_1) && defined(USE_F16C) && defined(ARCH_X86_64) */
+
+ return 0;
+}
+
--- /dev/null
+/* babl - dynamically extendable universal pixel conversion library.
+ * Copyright (C) 2013 Massimo Valentini
+ * Copyright (C) 2013 Daniel Sabo
+ * Copyright (C) 2013 Loren Merritt
+ *
+ * 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 3 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, see
+ * <http://www.gnu.org/licenses/>.
+ */
+
+#include "config.h"
+
+#if defined(USE_SSE2)
+
+/* SSE 2 */
+#include <emmintrin.h>
+
+#include <stdint.h>
+#include <stdlib.h>
+
+#include "babl.h"
+#include "babl-cpuaccel.h"
+#include "base/util.h"
+#include "extensions/util.h"
+
+#define Q(a) { a, a, a, a }
+
+static const float BABL_ALPHA_THRESHOLD_FLOAT = (float)BABL_ALPHA_THRESHOLD;
+
+static long
+conv_rgbaF_linear_rgbAF_linear (const float *src, float *dst, long samples)
+{
+ long i = 0;
+ long remainder;
+
+ if (((uintptr_t)src % 16) + ((uintptr_t)dst % 16) == 0)
+ {
+ const long n = (samples / 2) * 2;
+ const __v4sf *s = (const __v4sf*) src;
+ __v4sf *d = (__v4sf*)dst;
+
+ for ( ; i < n; i += 2)
+ {
+ __v4sf rbaa0, rbaa1;
+
+ __v4sf rgba0 = *s++;
+ __v4sf rgba1 = *s++;
+
+ /* Expand alpha */
+ __v4sf aaaa0 = (__v4sf)_mm_shuffle_epi32((__m128i)rgba0, _MM_SHUFFLE(3, 3, 3, 3));
+ __v4sf aaaa1 = (__v4sf)_mm_shuffle_epi32((__m128i)rgba1, _MM_SHUFFLE(3, 3, 3, 3));
+
+ /* Premultiply */
+ rgba0 = rgba0 * aaaa0;
+ rgba1 = rgba1 * aaaa1;
+
+ /* Shuffle the original alpha value back in */
+ rbaa0 = _mm_shuffle_ps(rgba0, aaaa0, _MM_SHUFFLE(0, 0, 2, 0));
+ rbaa1 = _mm_shuffle_ps(rgba1, aaaa1, _MM_SHUFFLE(0, 0, 2, 0));
+
+ rgba0 = _mm_shuffle_ps(rgba0, rbaa0, _MM_SHUFFLE(2, 1, 1, 0));
+ rgba1 = _mm_shuffle_ps(rgba1, rbaa1, _MM_SHUFFLE(2, 1, 1, 0));
+
+ *d++ = rgba0;
+ *d++ = rgba1;
+ }
+ _mm_empty ();
+ }
+
+ dst += i * 4;
+ src += i * 4;
+ remainder = samples - i;
+ while (remainder--)
+ {
+ const float a = src[3];
+ dst[0] = src[0] * a;
+ dst[1] = src[1] * a;
+ dst[2] = src[2] * a;
+ dst[3] = a;
+
+ src += 4;
+ dst += 4;
+ }
+
+ return samples;
+}
+
+static long
+conv_rgbAF_linear_rgbaF_linear_shuffle (const float *src, float *dst, long samples)
+{
+ long i = 0;
+ long remainder;
+
+ if (((uintptr_t)src % 16) + ((uintptr_t)dst % 16) == 0)
+ {
+ const long n = samples;
+ const __v4sf *s = (const __v4sf*) src;
+ __v4sf *d = (__v4sf*)dst;
+
+ for ( ; i < n; i += 1)
+ {
+ __v4sf pre_rgba0, rgba0, rbaa0, raaaa0;
+
+ float alpha0 = ((float *)s)[3];
+ pre_rgba0 = *s;
+
+ if (alpha0 <= BABL_ALPHA_THRESHOLD_FLOAT)
+ {
+ /* Zero RGB */
+ rgba0 = _mm_setzero_ps();
+ }
+ else
+ {
+ float recip0 = 1.0f/alpha0;
+
+ /* Expand reciprocal */
+ raaaa0 = _mm_load1_ps(&recip0);
+
+ /* Un-Premultiply */
+ rgba0 = pre_rgba0 * raaaa0;
+ }
+
+ /* Shuffle the original alpha value back in */
+ rbaa0 = _mm_shuffle_ps(rgba0, pre_rgba0, _MM_SHUFFLE(3, 3, 2, 0));
+ rgba0 = _mm_shuffle_ps(rgba0, rbaa0, _MM_SHUFFLE(2, 1, 1, 0));
+
+ s++;
+ *d++ = rgba0;
+ }
+ _mm_empty ();
+ }
+
+ dst += i * 4;
+ src += i * 4;
+ remainder = samples - i;
+ while (remainder--)
+ {
+ float alpha = src[3];
+ float recip;
+ if (alpha <= 0.0f)
+ recip = 0.0f;
+ else
+ recip = 1.0f/alpha;
+ dst[0] = src[0] * recip;
+ dst[1] = src[1] * recip;
+ dst[2] = src[2] * recip;
+ dst[3] = alpha;
+
+ src += 4;
+ dst += 4;
+ }
+
+ return samples;
+}
+
+static long
+conv_rgbAF_linear_rgbaF_linear_spin (const float *src, float *dst, long samples)
+{
+ long i = 0;
+ long remainder;
+
+ if (((uintptr_t)src % 16) + ((uintptr_t)dst % 16) == 0)
+ {
+ const long n = samples;
+ const __v4sf *s = (const __v4sf*) src;
+ __v4sf *d = (__v4sf*)dst;
+ const __v4sf zero = _mm_set_ss (BABL_ALPHA_THRESHOLD_FLOAT);
+ const __v4sf one = _mm_set_ss(1.0f);
+
+ for ( ; i < n; i += 1)
+ {
+ __v4sf pre_abgr0, abgr0, rgba0, raaaa0;
+
+
+ rgba0 = *s;
+ /* Rotate to ABGR */
+ pre_abgr0 = (__v4sf)_mm_shuffle_epi32((__m128i)rgba0, _MM_SHUFFLE(0, 1, 2, 3));
+
+ if (_mm_ucomile_ss(pre_abgr0, zero))
+ {
+ /* Zero RGB */
+ abgr0 = zero;
+ }
+ else
+ {
+ /* Un-Premultiply */
+ raaaa0 = _mm_div_ss(one, pre_abgr0);
+
+ /* Expand reciprocal */
+ raaaa0 = (__v4sf)_mm_shuffle_epi32((__m128i)raaaa0, _MM_SHUFFLE(0, 0, 0, 0));
+
+ /* Un-Premultiply */
+ abgr0 = pre_abgr0 * raaaa0;
+ }
+
+ /* Move the original alpha value back in */
+ abgr0 = _mm_move_ss(abgr0, pre_abgr0);
+
+ /* Rotate to ABGR */
+ rgba0 = (__v4sf)_mm_shuffle_epi32((__m128i)abgr0, _MM_SHUFFLE(0, 1, 2, 3));
+
+ *d++ = rgba0;
+ s++;
+ }
+ _mm_empty ();
+ }
+
+ dst += i * 4;
+ src += i * 4;
+ remainder = samples - i;
+ while (remainder--)
+ {
+ float alpha = src[3];
+ float recip;
+ if (alpha <= 0.0f)
+ recip = 0.0f;
+ else
+ recip = 1.0f/alpha;
+ dst[0] = src[0] * recip;
+ dst[1] = src[1] * recip;
+ dst[2] = src[2] * recip;
+ dst[3] = alpha;
+
+ src += 4;
+ dst += 4;
+ }
+
+ return samples;
+}
+
+#define splat4f(x) ((__v4sf){x,x,x,x})
+#define splat4i(x) ((__v4si){x,x,x,x})
+#define FLT_ONE 0x3f800000 // ((union {float f; int i;}){1.0f}).i
+#define FLT_MANTISSA (1<<23)
+
+static inline __v4sf
+init_newton (__v4sf x, double exponent, double c0, double c1, double c2)
+{
+ double norm = exponent*M_LN2/FLT_MANTISSA;
+ __v4sf y = _mm_cvtepi32_ps((__m128i)((__v4si)x - splat4i(FLT_ONE)));
+ return splat4f(c0) + splat4f(c1*norm)*y + splat4f(c2*norm*norm)*y*y;
+}
+
+static inline __v4sf
+pow_1_24 (__v4sf x)
+{
+ __v4sf y, z;
+ y = init_newton (x, -1./12, 0.9976800269, 0.9885126933, 0.5908575383);
+ x = _mm_sqrt_ps (x);
+ /* newton's method for x^(-1/6) */
+ z = splat4f (1.f/6.f) * x;
+ y = splat4f (7.f/6.f) * y - z * ((y*y)*(y*y)*(y*y*y));
+ y = splat4f (7.f/6.f) * y - z * ((y*y)*(y*y)*(y*y*y));
+ return x*y;
+}
+
+static inline __v4sf
+pow_24 (__v4sf x)
+{
+ __v4sf y, z;
+ y = init_newton (x, -1./5, 0.9953189663, 0.9594345146, 0.6742970332);
+ /* newton's method for x^(-1/5) */
+ z = splat4f (1.f/5.f) * x;
+ y = splat4f (6.f/5.f) * y - z * ((y*y*y)*(y*y*y));
+ y = splat4f (6.f/5.f) * y - z * ((y*y*y)*(y*y*y));
+ x *= y;
+ return x*x*x;
+}
+
+static inline __v4sf
+linear_to_gamma_2_2_sse2 (__v4sf x)
+{
+ __v4sf curve = pow_1_24 (x) * splat4f (1.055f) - splat4f (0.055f);
+ __v4sf line = x * splat4f (12.92f);
+ __v4sf mask = _mm_cmpgt_ps (x, splat4f (0.003130804954f));
+ return _mm_or_ps (_mm_and_ps (mask, curve), _mm_andnot_ps (mask, line));
+}
+
+static inline __v4sf
+gamma_2_2_to_linear_sse2 (__v4sf x)
+{
+ __v4sf curve = pow_24 ((x + splat4f (0.055f)) * splat4f (1/1.055f));
+ __v4sf line = x * splat4f (1/12.92f);
+ __v4sf mask = _mm_cmpgt_ps (x, splat4f (0.04045f));
+ return _mm_or_ps (_mm_and_ps (mask, curve), _mm_andnot_ps (mask, line));
+}
+
+#define GAMMA_RGBA(func, munge) \
+static long \
+func (const float *src, float *dst, long samples)\
+{\
+ int i = samples;\
+ if (((uintptr_t)src % 16) + ((uintptr_t)dst % 16) == 0)\
+ {\
+ for (; i > 3; i -= 4, src += 16, dst += 16)\
+ {\
+ /* Pack the rgb components from 4 pixels into 3 vectors, gammafy, unpack. */\
+ __v4sf x0 = _mm_load_ps (src);\
+ __v4sf x1 = _mm_load_ps (src+4);\
+ __v4sf x2 = _mm_load_ps (src+8);\
+ __v4sf x3 = _mm_load_ps (src+12);\
+ __v4sf y0 = _mm_movelh_ps (x0, x1);\
+ __v4sf y1 = _mm_movelh_ps (x2, x3);\
+ __v4sf z0 = _mm_unpackhi_ps (x0, x1);\
+ __v4sf z1 = _mm_unpackhi_ps (x2, x3);\
+ __v4sf y2 = _mm_movelh_ps (z0, z1);\
+ __v4sf y3 = _mm_movehl_ps (z1, z0);\
+ y0 = munge (y0);\
+ _mm_storel_pi ((__m64*)(dst), y0);\
+ _mm_storeh_pi ((__m64*)(dst+4), y0);\
+ y1 = munge (y1);\
+ _mm_storel_pi ((__m64*)(dst+8), y1);\
+ _mm_storeh_pi ((__m64*)(dst+12), y1);\
+ y2 = munge (y2);\
+ z0 = _mm_unpacklo_ps (y2, y3);\
+ z1 = _mm_unpackhi_ps (y2, y3);\
+ _mm_storel_pi ((__m64*)(dst+2), z0);\
+ _mm_storeh_pi ((__m64*)(dst+6), z0);\
+ _mm_storel_pi ((__m64*)(dst+10), z1);\
+ _mm_storeh_pi ((__m64*)(dst+14), z1);\
+ }\
+ for (; i > 0; i--, src += 4, dst += 4)\
+ {\
+ __v4sf x = munge (_mm_load_ps (src));\
+ float a = src[3];\
+ _mm_store_ps (dst, x);\
+ dst[3] = a;\
+ }\
+ }\
+ else\
+ {\
+ for (; i > 0; i--, src += 4, dst += 4)\
+ {\
+ __v4sf x = munge (_mm_loadu_ps (src));\
+ float a = src[3];\
+ _mm_storeu_ps (dst, x);\
+ dst[3] = a;\
+ }\
+ }\
+ return samples;\
+}
+
+GAMMA_RGBA(conv_rgbaF_linear_rgbaF_gamma, linear_to_gamma_2_2_sse2)
+GAMMA_RGBA(conv_rgbaF_gamma_rgbaF_linear, gamma_2_2_to_linear_sse2)
+
+#define YA_APPLY(load, store, convert) \
+{ \
+ __v4sf yyaa0, yyaa1; \
+ __v4sf yaya0 = load ((float *)s++); \
+ __v4sf yaya1 = load ((float *)s++); \
+ __v4sf yyyy01 = _mm_shuffle_ps (yaya0, yaya1, _MM_SHUFFLE(0, 2, 0, 2)); \
+\
+ yyyy01 = convert (yyyy01); \
+\
+ yyaa0 = _mm_shuffle_ps (yyyy01, yaya0, _MM_SHUFFLE(3, 1, 0, 1)); \
+ yaya0 = (__v4sf)_mm_shuffle_epi32((__m128i)yyaa0, _MM_SHUFFLE(3, 1, 2, 0)); \
+ yyaa1 = _mm_shuffle_ps (yyyy01, yaya1, _MM_SHUFFLE(3, 1, 2, 3)); \
+ yaya1 = (__v4sf)_mm_shuffle_epi32((__m128i)yyaa1, _MM_SHUFFLE(3, 1, 2, 0)); \
+\
+ store ((float *)d++, yaya0); \
+ store ((float *)d++, yaya1); \
+}\
+
+static long
+conv_yaF_linear_yaF_gamma (const float *src, float *dst, long samples)
+{
+ long total = samples;
+
+ const __v4sf *s = (const __v4sf*)src;
+ __v4sf *d = (__v4sf*)dst;
+
+ if (((uintptr_t)src % 16) + ((uintptr_t)dst % 16) == 0)
+ {
+ while (samples > 4)
+ {
+ YA_APPLY (_mm_load_ps, _mm_store_ps, linear_to_gamma_2_2_sse2);
+ samples -= 4;
+ }
+ }
+ else
+ {
+ while (samples > 4)
+ {
+ YA_APPLY (_mm_loadu_ps, _mm_storeu_ps, linear_to_gamma_2_2_sse2);
+ samples -= 4;
+ }
+ }
+
+ src = (const float *)s;
+ dst = (float *)d;
+
+ while (samples--)
+ {
+ *dst++ = babl_linear_to_gamma_2_2 (*src++);
+ *dst++ = *src++;
+ }
+
+ return total;
+}
+
+
+static long
+conv_yaF_gamma_yaF_linear (const float *src, float *dst, long samples)
+{
+ long total = samples;
+
+ const __v4sf *s = (const __v4sf*)src;
+ __v4sf *d = (__v4sf*)dst;
+
+ if (((uintptr_t)src % 16) + ((uintptr_t)dst % 16) == 0)
+ {
+ while (samples > 4)
+ {
+ YA_APPLY (_mm_load_ps, _mm_store_ps, gamma_2_2_to_linear_sse2);
+ samples -= 4;
+ }
+ }
+ else
+ {
+ while (samples > 4)
+ {
+ YA_APPLY (_mm_loadu_ps, _mm_storeu_ps, gamma_2_2_to_linear_sse2);
+ samples -= 4;
+ }
+ }
+
+ src = (const float *)s;
+ dst = (float *)d;
+
+ while (samples--)
+ {
+ *dst++ = babl_gamma_2_2_to_linear (*src++);
+ *dst++ = *src++;
+ }
+
+ return total;
+}
+
+static inline long
+conv_yF_linear_yF_gamma (const float *src, float *dst, long samples)
+{
+ long total = samples;
+
+ const __v4sf *s = (const __v4sf*)src;
+ __v4sf *d = (__v4sf*)dst;
+
+ if (((uintptr_t)src % 16) + ((uintptr_t)dst % 16) == 0)
+ {
+ while (samples > 4)
+ {
+ __v4sf rgba0 = _mm_load_ps ((float *)s++);
+ rgba0 = linear_to_gamma_2_2_sse2 (rgba0);
+ _mm_store_ps ((float *)d++, rgba0);
+ samples -= 4;
+ }
+ }
+ else
+ {
+ while (samples > 4)
+ {
+ __v4sf rgba0 = _mm_loadu_ps ((float *)s++);
+ rgba0 = linear_to_gamma_2_2_sse2 (rgba0);
+ _mm_storeu_ps ((float *)d++, rgba0);
+ samples -= 4;
+ }
+ }
+
+ src = (const float *)s;
+ dst = (float *)d;
+
+ while (samples--)
+ {
+ *dst++ = babl_linear_to_gamma_2_2 (*src++);
+ }
+
+ return total;
+}
+
+static inline long
+conv_yF_gamma_yF_linear (const float *src, float *dst, long samples)
+{
+ long total = samples;
+
+ const __v4sf *s = (const __v4sf*)src;
+ __v4sf *d = (__v4sf*)dst;
+
+ if (((uintptr_t)src % 16) + ((uintptr_t)dst % 16) == 0)
+ {
+ while (samples > 4)
+ {
+ __v4sf rgba0 = _mm_load_ps ((float *)s++);
+ rgba0 = gamma_2_2_to_linear_sse2 (rgba0);
+ _mm_store_ps ((float *)d++, rgba0);
+ samples -= 4;
+ }
+ }
+ else
+ {
+ while (samples > 4)
+ {
+ __v4sf rgba0 = _mm_loadu_ps ((float *)s++);
+ rgba0 = gamma_2_2_to_linear_sse2 (rgba0);
+ _mm_storeu_ps ((float *)d++, rgba0);
+ samples -= 4;
+ }
+ }
+
+ src = (const float *)s;
+ dst = (float *)d;
+
+ while (samples--)
+ {
+ *dst++ = babl_gamma_2_2_to_linear (*src++);
+ }
+
+ return total;
+}
+
+
+static long
+conv_rgbF_linear_rgbF_gamma (const float *src, float *dst, long samples)
+{
+ return conv_yF_linear_yF_gamma (src, dst, samples * 3) / 3;
+}
+
+
+static long
+conv_rgbF_gamma_rgbF_linear (const float *src, float *dst, long samples)
+{
+ return conv_yF_gamma_yF_linear (src, dst, samples * 3) / 3;
+}
+
+#endif /* defined(USE_SSE2) */
+
+#define o(src, dst) \
+ babl_conversion_new (src, dst, "linear", conv_ ## src ## _ ## dst, NULL)
+
+int init (void);
+
+int
+init (void)
+{
+#if defined(USE_SSE2)
+
+ const Babl *rgbaF_linear = babl_format_new (
+ babl_model ("RGBA"),
+ babl_type ("float"),
+ babl_component ("R"),
+ babl_component ("G"),
+ babl_component ("B"),
+ babl_component ("A"),
+ NULL);
+ const Babl *rgbAF_linear = babl_format_new (
+ babl_model ("RaGaBaA"),
+ babl_type ("float"),
+ babl_component ("Ra"),
+ babl_component ("Ga"),
+ babl_component ("Ba"),
+ babl_component ("A"),
+ NULL);
+ const Babl *rgbAF_gamma = babl_format_new (
+ babl_model ("R'aG'aB'aA"),
+ babl_type ("float"),
+ babl_component ("R'a"),
+ babl_component ("G'a"),
+ babl_component ("B'a"),
+ babl_component ("A"),
+ NULL);
+ const Babl *rgbaF_gamma = babl_format_new (
+ babl_model ("R'G'B'A"),
+ babl_type ("float"),
+ babl_component ("R'"),
+ babl_component ("G'"),
+ babl_component ("B'"),
+ babl_component ("A"),
+ NULL);
+ const Babl *rgbF_linear = babl_format_new (
+ babl_model ("RGB"),
+ babl_type ("float"),
+ babl_component ("R"),
+ babl_component ("G"),
+ babl_component ("B"),
+ NULL);
+ const Babl *rgbF_gamma = babl_format_new (
+ babl_model ("R'G'B'"),
+ babl_type ("float"),
+ babl_component ("R'"),
+ babl_component ("G'"),
+ babl_component ("B'"),
+ NULL);
+ const Babl *yaF_linear = babl_format_new (
+ babl_model ("YA"),
+ babl_type ("float"),
+ babl_component ("Y"),
+ babl_component ("A"),
+ NULL);
+ const Babl *yaF_gamma = babl_format_new (
+ babl_model ("Y'A"),
+ babl_type ("float"),
+ babl_component ("Y'"),
+ babl_component ("A"),
+ NULL);
+ const Babl *yF_linear = babl_format_new (
+ babl_model ("Y"),
+ babl_type ("float"),
+ babl_component ("Y"),
+ NULL);
+ const Babl *yF_gamma = babl_format_new (
+ babl_model ("Y'"),
+ babl_type ("float"),
+ babl_component ("Y'"),
+ NULL);
+
+ if ((babl_cpu_accel_get_support () & BABL_CPU_ACCEL_X86_SSE) &&
+ (babl_cpu_accel_get_support () & BABL_CPU_ACCEL_X86_SSE2))
+
+ {
+ babl_conversion_new(rgbaF_linear,
+ rgbAF_linear,
+ "linear",
+ conv_rgbaF_linear_rgbAF_linear,
+ NULL);
+
+ babl_conversion_new(rgbaF_gamma,
+ rgbAF_gamma,
+ "linear",
+ conv_rgbaF_linear_rgbAF_linear,
+ NULL);
+
+ /* Which of these is faster varies by CPU, and the difference
+ * is big enough that it's worthwhile to include both and
+ * let them fight it out in the babl benchmarks.
+ */
+ babl_conversion_new(rgbAF_linear,
+ rgbaF_linear,
+ "linear",
+ conv_rgbAF_linear_rgbaF_linear_shuffle,
+ NULL);
+ babl_conversion_new(rgbAF_gamma,
+ rgbaF_gamma,
+ "linear",
+ conv_rgbAF_linear_rgbaF_linear_shuffle,
+ NULL);
+
+ babl_conversion_new(rgbAF_linear,
+ rgbaF_linear,
+ "linear",
+ conv_rgbAF_linear_rgbaF_linear_spin,
+ NULL);
+
+ o (yF_linear, yF_gamma);
+ o (yF_gamma, yF_linear);
+
+ o (yaF_linear, yaF_gamma);
+ o (yaF_gamma, yaF_linear);
+
+ o (rgbF_linear, rgbF_gamma);
+ o (rgbF_gamma, rgbF_linear);
+
+ o (rgbaF_linear, rgbaF_gamma);
+ o (rgbaF_gamma, rgbaF_linear);
+ }
+
+#endif /* defined(USE_SSE2) */
+
+ return 0;
+}
+
--- /dev/null
+/* babl - dynamically extendable universal pixel conversion library.
+ * Copyright (C) 2013 Massimo Valentini
+ * Copyright (C) 2013 Daniel Sabo
+ *
+ * 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 3 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, see
+ * <http://www.gnu.org/licenses/>.
+ */
+
+#include "config.h"
+
+#if defined(USE_SSE2)
+
+/* SSE 2 */
+#include <emmintrin.h>
+
+#include <stdint.h>
+#include <stdlib.h>
+
+#include "babl.h"
+#include "babl-cpuaccel.h"
+#include "extensions/util.h"
+
+#define Q(a) { a, a, a, a }
+static const __v4sf u16_float = Q (1.f / 65535);
+
+static long
+conv_rgba16_rgbaF (const uint16_t *src, float *dst, long samples)
+{
+ long i = 0;
+
+ if (((uintptr_t)src % 16) + ((uintptr_t)dst % 16) == 0)
+ {
+ long n = (samples / 2) * 2;
+ const __m128i *s = (const __m128i*) src;
+ __v4sf *d = (__v4sf*) dst;
+
+ for (; i < n / 2; i++)
+ {
+ /* Expand shorts to ints by loading zero in the high bits */
+ const __m128i t0 = _mm_unpacklo_epi16 (s[i + 0], (__m128i)_mm_setzero_ps());
+ const __m128i t1 = _mm_unpackhi_epi16 (s[i + 0], (__m128i)_mm_setzero_ps());
+
+ /* Convert to float */
+ const __m128 u0 = _mm_cvtepi32_ps (t0);
+ const __m128 u1 = _mm_cvtepi32_ps (t1);
+
+ const __v4sf rgba0 = u0 * u16_float;
+ const __v4sf rgba1 = u1 * u16_float;
+
+ d[2 * i + 0] = rgba0;
+ d[2 * i + 1] = rgba1;
+ }
+ _mm_empty();
+ }
+
+ for (i *= 2 * 4; i != 4 * samples; i++)
+ dst[i] = src[i] * (1.f / 65535);
+
+ return samples;
+}
+
+static long
+conv_rgba16_rgbAF (const uint16_t *src, float *dst, long samples)
+{
+ long i = 0;
+ long remainder;
+
+ if (((uintptr_t)src % 16) + ((uintptr_t)dst % 16) == 0)
+ {
+ long n = (samples / 2) * 2;
+ const __m128i *s = (const __m128i*) src;
+ __v4sf *d = (__v4sf*) dst;
+
+ const __v4sf max_mask = { 0.0f, 0.0f, 0.0f, 1.0f };
+
+ for (; i < n / 2; i++)
+ {
+ /* Expand shorts to ints by loading zero in the high bits */
+ const __m128i t0 = _mm_unpacklo_epi16 (s[i + 0], (__m128i)_mm_setzero_ps());
+ const __m128i t1 = _mm_unpackhi_epi16 (s[i + 0], (__m128i)_mm_setzero_ps());
+
+ /* Convert to float */
+ const __m128 u0 = _mm_cvtepi32_ps (t0);
+ const __m128 u1 = _mm_cvtepi32_ps (t1);
+
+ /* Multiply by 1 / 65535 */
+ __v4sf rgba0 = u0 * u16_float;
+ __v4sf rgba1 = u1 * u16_float;
+
+ /* Expand alpha */
+ __v4sf aaaa0 = (__v4sf)_mm_shuffle_epi32((__m128i)rgba0, _MM_SHUFFLE(3, 3, 3, 3));
+ __v4sf aaaa1 = (__v4sf)_mm_shuffle_epi32((__m128i)rgba1, _MM_SHUFFLE(3, 3, 3, 3));
+
+ /* Set the value in the alpha slot to 1.0, we know max is sufficent because alpha was a short */
+ aaaa0 = _mm_max_ps(aaaa0, max_mask);
+ aaaa1 = _mm_max_ps(aaaa1, max_mask);
+
+ /* Premultiply */
+ rgba0 = rgba0 * aaaa0;
+ rgba1 = rgba1 * aaaa1;
+
+ d[2 * i + 0] = rgba0;
+ d[2 * i + 1] = rgba1;
+ }
+ _mm_empty();
+ }
+
+ dst += i * 2 * 4;
+ src += i * 2 * 4;
+ remainder = samples - (i * 2);
+ while (remainder--)
+ {
+ const float a = src[3] / 65535.0f;
+ const float a_term = a / 65535.0f;
+ dst[0] = src[0] * a_term;
+ dst[1] = src[1] * a_term;
+ dst[2] = src[2] * a_term;
+ dst[3] = a;
+
+ src += 4;
+ dst += 4;
+ }
+
+ return samples;
+}
+
+#endif /* defined(USE_SSE2) */
+
+int init (void);
+
+int
+init (void)
+{
+#if defined(USE_SSE2)
+
+ const Babl *rgbaF_linear = babl_format_new (
+ babl_model ("RGBA"),
+ babl_type ("float"),
+ babl_component ("R"),
+ babl_component ("G"),
+ babl_component ("B"),
+ babl_component ("A"),
+ NULL);
+ const Babl *rgbAF_linear = babl_format_new (
+ babl_model ("RaGaBaA"),
+ babl_type ("float"),
+ babl_component ("Ra"),
+ babl_component ("Ga"),
+ babl_component ("Ba"),
+ babl_component ("A"),
+ NULL);
+ const Babl *rgba16_linear = babl_format_new (
+ babl_model ("RGBA"),
+ babl_type ("u16"),
+ babl_component ("R"),
+ babl_component ("G"),
+ babl_component ("B"),
+ babl_component ("A"),
+ NULL);
+
+ const Babl *rgbaF_gamma = babl_format_new (
+ babl_model ("R'G'B'A"),
+ babl_type ("float"),
+ babl_component ("R'"),
+ babl_component ("G'"),
+ babl_component ("B'"),
+ babl_component ("A"),
+ NULL);
+ const Babl *rgbAF_gamma = babl_format_new (
+ babl_model ("R'aG'aB'aA"),
+ babl_type ("float"),
+ babl_component ("R'a"),
+ babl_component ("G'a"),
+ babl_component ("B'a"),
+ babl_component ("A"),
+ NULL);
+ const Babl *rgba16_gamma = babl_format_new (
+ babl_model ("R'G'B'A"),
+ babl_type ("u16"),
+ babl_component ("R'"),
+ babl_component ("G'"),
+ babl_component ("B'"),
+ babl_component ("A"),
+ NULL);
+
+#define CONV(src, dst) \
+{ \
+ babl_conversion_new (src ## _linear, dst ## _linear, "linear", conv_ ## src ## _ ## dst, NULL); \
+ babl_conversion_new (src ## _gamma, dst ## _gamma, "linear", conv_ ## src ## _ ## dst, NULL); \
+}
+
+ if ((babl_cpu_accel_get_support () & BABL_CPU_ACCEL_X86_SSE) &&
+ (babl_cpu_accel_get_support () & BABL_CPU_ACCEL_X86_SSE2))
+ {
+ CONV (rgba16, rgbaF);
+ CONV (rgba16, rgbAF);
+ }
+
+#endif /* defined(USE_SSE2) */
+
+ return 0;
+}
+
--- /dev/null
+/* babl - dynamically extendable universal pixel conversion library.
+ * Copyright (C) 2013 Daniel Sabo
+ *
+ * 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 3 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, see
+ * <http://www.gnu.org/licenses/>.
+ */
+
+#include "config.h"
+
+#if defined(USE_SSE2)
+
+/* SSE 2 */
+#include <emmintrin.h>
+
+#include <stdint.h>
+#include <stdlib.h>
+
+#include "babl.h"
+#include "babl-cpuaccel.h"
+#include "extensions/util.h"
+
+static inline long
+conv_yF_y8 (const float *src, uint8_t *dst, long samples)
+{
+ const __v4sf *s_vec;
+ __m128i *d_vec;
+ uint32_t *d_int;
+
+ long n = samples;
+
+ const __v4sf byte_fill = _mm_set_ps1(255.0f);
+ const __v4sf half = _mm_set_ps1(0.5);
+
+ while (((uintptr_t)src % 16) && n > 0)
+ {
+ /* Work through the unaligned floats */
+ float y = *src++;
+ *dst++ = (y >= 1.0f) ? 0xFF : ((y <= 0.0f) ? 0x0 : 0xFF * y + 0.5f);
+
+ n -= 1;
+ }
+
+ s_vec = (__v4sf *)src;
+ d_vec = (__m128i *)dst;
+
+ /* Aligned chunks */
+
+ while (n > 16)
+ {
+ __v4sf yyyy0, yyyy1, yyyy2, yyyy3;
+ __m128i i32_0, i32_1, i32_2, i32_3;
+ __m128i i16_01, i16_23;
+ __m128i mm_ints;
+
+ /* Add 0.5 and truncate, to match C rounding behavior.
+ *
+ * The _mm_min_ps is needed because _mm_packs_epi32 uses
+ * signed saturation, the unsigned version wasn't added
+ * until SSE4.
+ */
+ yyyy0 = *s_vec++ * byte_fill + half;
+ yyyy0 = _mm_min_ps(yyyy0, byte_fill);
+ i32_0 = _mm_cvttps_epi32 ((__m128)yyyy0);
+
+ yyyy1 = *s_vec++ * byte_fill + half;
+ yyyy1 = _mm_min_ps(yyyy1, byte_fill);
+ i32_1 = _mm_cvttps_epi32 ((__m128)yyyy1);
+
+ i16_01 = _mm_packs_epi32 (i32_0, i32_1);
+
+ yyyy2 = *s_vec++ * byte_fill + half;
+ yyyy2 = _mm_min_ps(yyyy2, byte_fill);
+ i32_2 = _mm_cvttps_epi32 ((__m128)yyyy2);
+
+ yyyy3 = *s_vec++ * byte_fill + half;
+ yyyy3 = _mm_min_ps(yyyy3, byte_fill);
+ i32_3 = _mm_cvttps_epi32 ((__m128)yyyy3);
+
+ i16_23 = _mm_packs_epi32 (i32_2, i32_3);
+
+ mm_ints = _mm_packus_epi16 (i16_01, i16_23);
+
+ _mm_storeu_si128 (d_vec++, mm_ints);
+
+ n -= 16;
+ }
+
+ d_int = (uint32_t *)d_vec;
+
+ while (n > 4)
+ {
+ __v4sf yyyy0;
+ __m128i mm_ints;
+
+ yyyy0 = *s_vec++ * byte_fill + half;
+ yyyy0 = _mm_min_ps(yyyy0, byte_fill);
+ mm_ints = _mm_cvttps_epi32 ((__m128)yyyy0);
+ mm_ints = _mm_packs_epi32 (mm_ints, mm_ints);
+ mm_ints = _mm_packus_epi16 (mm_ints, mm_ints);
+ _mm_store_ss ((float *)d_int++, (__v4sf)mm_ints);
+
+ n -= 4;
+ }
+
+ src = (float *)s_vec;
+ dst = (uint8_t *)d_int;
+
+ while (n > 0)
+ {
+ float y = *src++;
+ *dst++ = (y >= 1.0f) ? 0xFF : ((y <= 0.0f) ? 0x0 : 0xFF * y + 0.5f);
+
+ n -= 1;
+ }
+
+ return samples;
+}
+
+static long
+conv_yaF_ya8 (const float *src, uint8_t *dst, long samples)
+{
+ return conv_yF_y8 (src, dst, samples * 2) / 2;
+}
+
+
+static long
+conv_rgbF_rgb8 (const float *src, uint8_t *dst, long samples)
+{
+ return conv_yF_y8 (src, dst, samples * 3) / 3;
+}
+
+static long
+conv_rgbaF_rgba8 (const float *src, uint8_t *dst, long samples)
+{
+ return conv_yF_y8 (src, dst, samples * 4) / 4;
+}
+
+#endif
+
+int init (void);
+
+int
+init (void)
+{
+#if defined(USE_SSE2)
+ const Babl *rgbaF_linear = babl_format_new (
+ babl_model ("RGBA"),
+ babl_type ("float"),
+ babl_component ("R"),
+ babl_component ("G"),
+ babl_component ("B"),
+ babl_component ("A"),
+ NULL);
+ const Babl *rgba8_linear = babl_format_new (
+ babl_model ("RGBA"),
+ babl_type ("u8"),
+ babl_component ("R"),
+ babl_component ("G"),
+ babl_component ("B"),
+ babl_component ("A"),
+ NULL);
+ const Babl *rgbaF_gamma = babl_format_new (
+ babl_model ("R'G'B'A"),
+ babl_type ("float"),
+ babl_component ("R'"),
+ babl_component ("G'"),
+ babl_component ("B'"),
+ babl_component ("A"),
+ NULL);
+ const Babl *rgba8_gamma = babl_format_new (
+ babl_model ("R'G'B'A"),
+ babl_type ("u8"),
+ babl_component ("R'"),
+ babl_component ("G'"),
+ babl_component ("B'"),
+ babl_component ("A"),
+ NULL);
+ const Babl *rgbF_linear = babl_format_new (
+ babl_model ("RGB"),
+ babl_type ("float"),
+ babl_component ("R"),
+ babl_component ("G"),
+ babl_component ("B"),
+ NULL);
+ const Babl *rgb8_linear = babl_format_new (
+ babl_model ("RGB"),
+ babl_type ("u8"),
+ babl_component ("R"),
+ babl_component ("G"),
+ babl_component ("B"),
+ NULL);
+ const Babl *rgbF_gamma = babl_format_new (
+ babl_model ("R'G'B'"),
+ babl_type ("float"),
+ babl_component ("R'"),
+ babl_component ("G'"),
+ babl_component ("B'"),
+ NULL);
+ const Babl *rgb8_gamma = babl_format_new (
+ babl_model ("R'G'B'"),
+ babl_type ("u8"),
+ babl_component ("R'"),
+ babl_component ("G'"),
+ babl_component ("B'"),
+ NULL);
+ const Babl *yaF_linear = babl_format_new (
+ babl_model ("YA"),
+ babl_type ("float"),
+ babl_component ("Y"),
+ babl_component ("A"),
+ NULL);
+ const Babl *ya8_linear = babl_format_new (
+ babl_model ("YA"),
+ babl_type ("u8"),
+ babl_component ("Y"),
+ babl_component ("A"),
+ NULL);
+ const Babl *yaF_gamma = babl_format_new (
+ babl_model ("Y'A"),
+ babl_type ("float"),
+ babl_component ("Y'"),
+ babl_component ("A"),
+ NULL);
+ const Babl *ya8_gamma = babl_format_new (
+ babl_model ("Y'A"),
+ babl_type ("u8"),
+ babl_component ("Y'"),
+ babl_component ("A"),
+ NULL);
+ const Babl *yF_linear = babl_format_new (
+ babl_model ("Y"),
+ babl_type ("float"),
+ babl_component ("Y"),
+ NULL);
+ const Babl *y8_linear = babl_format_new (
+ babl_model ("Y"),
+ babl_type ("u8"),
+ babl_component ("Y"),
+ NULL);
+ const Babl *yF_gamma = babl_format_new (
+ babl_model ("Y'"),
+ babl_type ("float"),
+ babl_component ("Y'"),
+ NULL);
+ const Babl *y8_gamma = babl_format_new (
+ babl_model ("Y'"),
+ babl_type ("u8"),
+ babl_component ("Y'"),
+ NULL);
+
+#define CONV(src, dst) \
+{ \
+ babl_conversion_new (src ## _linear, dst ## _linear, "linear", conv_ ## src ## _ ## dst, NULL); \
+ babl_conversion_new (src ## _gamma, dst ## _gamma, "linear", conv_ ## src ## _ ## dst, NULL); \
+}
+
+ if ((babl_cpu_accel_get_support () & BABL_CPU_ACCEL_X86_SSE2))
+ {
+ CONV(rgbaF, rgba8);
+ CONV(rgbF, rgb8);
+ CONV(yaF, ya8);
+ CONV(yF, y8);
+ }
+
+#endif
+
+ return 0;
+}
+
--- /dev/null
+/* babl - dynamically extendable universal pixel conversion library.
+ * Copyright (C) 2013 Daniel Sabo
+ *
+ * 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 3 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, see
+ * <http://www.gnu.org/licenses/>.
+ */
+
+#include "config.h"
+
+#if defined(USE_SSE4_1)
+
+/* SSE 4 */
+#include <smmintrin.h>
+
+#include <stdint.h>
+#include <stdlib.h>
+
+#include "babl.h"
+#include "babl-cpuaccel.h"
+#include "extensions/util.h"
+
+static inline long
+conv_y8_yF (const uint8_t *src, float *dst, long samples)
+{
+ const float factor = 1.0f / 255.0f;
+ const __v4sf factor_vec = {1.0f / 255.0f, 1.0f / 255.0f, 1.0f / 255.0f, 1.0f / 255.0f};
+ const uint32_t *s_vec;
+ __v4sf *d_vec;
+
+ long n = samples;
+
+ s_vec = (const uint32_t *)src;
+ d_vec = (__v4sf *)dst;
+
+ while (n >= 4)
+ {
+ __m128i in_val;
+ __v4sf out_val;
+ in_val = _mm_insert_epi32 (in_val, *s_vec++, 0);
+ in_val = _mm_cvtepu8_epi32 (in_val);
+ out_val = _mm_cvtepi32_ps (in_val) * factor_vec;
+ _mm_storeu_ps ((float *)d_vec++, out_val);
+ n -= 4;
+ }
+
+ src = (const uint8_t *)s_vec;
+ dst = (float *)d_vec;
+
+ while (n)
+ {
+ *dst++ = (float)(*src++) * factor;
+ n -= 1;
+ }
+
+ return samples;
+}
+
+static long
+conv_ya8_yaF (const uint8_t *src, float *dst, long samples)
+{
+ return conv_y8_yF (src, dst, samples * 2) / 2;
+}
+
+static long
+conv_rgb8_rgbF (const uint8_t *src, float *dst, long samples)
+{
+ return conv_y8_yF (src, dst, samples * 3) / 3;
+}
+
+static long
+conv_rgba8_rgbaF (const uint8_t *src, float *dst, long samples)
+{
+ return conv_y8_yF (src, dst, samples * 4) / 4;
+}
+
+#endif
+
+int init (void);
+
+int
+init (void)
+{
+#if defined(USE_SSE4_1)
+ const Babl *rgbaF_linear = babl_format_new (
+ babl_model ("RGBA"),
+ babl_type ("float"),
+ babl_component ("R"),
+ babl_component ("G"),
+ babl_component ("B"),
+ babl_component ("A"),
+ NULL);
+ const Babl *rgba8_linear = babl_format_new (
+ babl_model ("RGBA"),
+ babl_type ("u8"),
+ babl_component ("R"),
+ babl_component ("G"),
+ babl_component ("B"),
+ babl_component ("A"),
+ NULL);
+ const Babl *rgbaF_gamma = babl_format_new (
+ babl_model ("R'G'B'A"),
+ babl_type ("float"),
+ babl_component ("R'"),
+ babl_component ("G'"),
+ babl_component ("B'"),
+ babl_component ("A"),
+ NULL);
+ const Babl *rgba8_gamma = babl_format_new (
+ babl_model ("R'G'B'A"),
+ babl_type ("u8"),
+ babl_component ("R'"),
+ babl_component ("G'"),
+ babl_component ("B'"),
+ babl_component ("A"),
+ NULL);
+ const Babl *rgbF_linear = babl_format_new (
+ babl_model ("RGB"),
+ babl_type ("float"),
+ babl_component ("R"),
+ babl_component ("G"),
+ babl_component ("B"),
+ NULL);
+ const Babl *rgb8_linear = babl_format_new (
+ babl_model ("RGB"),
+ babl_type ("u8"),
+ babl_component ("R"),
+ babl_component ("G"),
+ babl_component ("B"),
+ NULL);
+ const Babl *rgbF_gamma = babl_format_new (
+ babl_model ("R'G'B'"),
+ babl_type ("float"),
+ babl_component ("R'"),
+ babl_component ("G'"),
+ babl_component ("B'"),
+ NULL);
+ const Babl *rgb8_gamma = babl_format_new (
+ babl_model ("R'G'B'"),
+ babl_type ("u8"),
+ babl_component ("R'"),
+ babl_component ("G'"),
+ babl_component ("B'"),
+ NULL);
+ const Babl *yaF_linear = babl_format_new (
+ babl_model ("YA"),
+ babl_type ("float"),
+ babl_component ("Y"),
+ babl_component ("A"),
+ NULL);
+ const Babl *ya8_linear = babl_format_new (
+ babl_model ("YA"),
+ babl_type ("u8"),
+ babl_component ("Y"),
+ babl_component ("A"),
+ NULL);
+ const Babl *yaF_gamma = babl_format_new (
+ babl_model ("Y'A"),
+ babl_type ("float"),
+ babl_component ("Y'"),
+ babl_component ("A"),
+ NULL);
+ const Babl *ya8_gamma = babl_format_new (
+ babl_model ("Y'A"),
+ babl_type ("u8"),
+ babl_component ("Y'"),
+ babl_component ("A"),
+ NULL);
+ const Babl *yF_linear = babl_format_new (
+ babl_model ("Y"),
+ babl_type ("float"),
+ babl_component ("Y"),
+ NULL);
+ const Babl *y8_linear = babl_format_new (
+ babl_model ("Y"),
+ babl_type ("u8"),
+ babl_component ("Y"),
+ NULL);
+ const Babl *yF_gamma = babl_format_new (
+ babl_model ("Y'"),
+ babl_type ("float"),
+ babl_component ("Y'"),
+ NULL);
+ const Babl *y8_gamma = babl_format_new (
+ babl_model ("Y'"),
+ babl_type ("u8"),
+ babl_component ("Y'"),
+ NULL);
+
+#define CONV(src, dst) \
+{ \
+ babl_conversion_new (src ## _linear, dst ## _linear, "linear", conv_ ## src ## _ ## dst, NULL); \
+ babl_conversion_new (src ## _gamma, dst ## _gamma, "linear", conv_ ## src ## _ ## dst, NULL); \
+}
+
+ if ((babl_cpu_accel_get_support () & BABL_CPU_ACCEL_X86_SSE4_1))
+ {
+ CONV(rgba8, rgbaF);
+ CONV(rgb8, rgbF);
+ CONV(ya8, yaF);
+ CONV(y8, yF);
+ }
+
+#endif
+
+ return 0;
+}
+
--- /dev/null
+/* Gamma table generated from a babl conversion of Y to Y' */
+static const unsigned char linear_to_gamma[65536] =
+{
+0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,
+2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,4,4,4,4,4,4,4,
+4,4,4,4,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,6,6,6,6,6,6,
+6,6,6,6,6,6,6,6,6,6,6,6,6,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,
+8,8,8,8,8,8,8,8,8,8,8,8,8,8,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,10,10,10,10,
+10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,11,11,11,11,11,11,11,11,11,11,
+11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,
+12,12,12,12,12,12,12,12,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,
+13,13,13,13,13,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,
+14,14,14,14,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,
+15,15,15,15,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,
+16,16,16,16,16,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,
+17,17,17,17,17,17,17,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,
+18,18,18,18,18,18,18,18,18,18,18,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,
+19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,20,20,20,20,20,20,20,20,20,20,
+20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,21,21,21,21,
+21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,
+21,21,21,21,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,
+22,22,22,22,22,22,22,22,22,22,22,22,22,23,23,23,23,23,23,23,23,23,23,23,23,23,
+23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,24,24,24,
+24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,
+24,24,24,24,24,24,24,24,24,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,
+25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,26,26,26,26,
+26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,
+26,26,26,26,26,26,26,26,26,26,26,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,
+27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,
+27,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,
+28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,29,29,29,29,29,29,29,29,
+29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,
+29,29,29,29,29,29,29,29,29,29,29,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,
+30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,
+30,30,30,30,30,30,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,
+31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,
+31,31,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,
+32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,33,
+33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,
+33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,34,34,
+34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,
+34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,35,35,
+35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,
+35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,
+36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,
+36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,
+36,36,36,36,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,
+37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,
+37,37,37,37,37,37,37,37,37,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,
+38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,
+38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,39,39,39,39,39,39,39,39,39,39,39,
+39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,
+39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,40,40,40,
+40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,
+40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,
+40,40,40,40,40,40,40,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,
+41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,
+41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,42,42,42,42,42,42,42,
+42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,
+42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,
+42,42,42,42,42,42,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,
+43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,
+43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,44,44,44,44,44,44,
+44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,
+44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,
+44,44,44,44,44,44,44,44,44,44,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,
+45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,
+45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,
+45,45,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,
+46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,
+46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,47,47,47,47,
+47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,
+47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,
+47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,48,48,48,48,48,48,48,48,48,
+48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,
+48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,
+48,48,48,48,48,48,48,48,48,48,48,48,48,48,49,49,49,49,49,49,49,49,49,49,49,49,
+49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,
+49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,
+49,49,49,49,49,49,49,49,49,49,49,49,49,50,50,50,50,50,50,50,50,50,50,50,50,50,
+50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,
+50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,
+50,50,50,50,50,50,50,50,50,50,50,50,50,51,51,51,51,51,51,51,51,51,51,51,51,51,
+51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,
+51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,
+51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,52,52,52,52,52,52,52,52,52,52,52,
+52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,
+52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,
+52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,53,53,53,53,53,53,53,
+53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,
+53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,
+53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,54,
+54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,
+54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,
+54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,
+54,54,54,54,54,54,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,
+55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,
+55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,
+55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,56,56,56,56,56,56,56,56,56,56,56,
+56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,
+56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,
+56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,
+57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,
+57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,
+57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,
+57,57,57,57,57,57,57,57,57,57,57,57,58,58,58,58,58,58,58,58,58,58,58,58,58,58,
+58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,
+58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,
+58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,
+58,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,
+59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,
+59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,
+59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,60,60,60,60,60,60,60,60,60,
+60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,
+60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,
+60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,
+60,60,60,60,60,60,60,60,60,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,
+61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,
+61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,
+61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,
+61,61,61,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,
+62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,
+62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,
+62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,63,63,
+63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,
+63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,
+63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,
+63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,64,64,64,64,
+64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,
+64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,
+64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,
+64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,65,65,65,65,65,
+65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,
+65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,
+65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,
+65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,66,66,66,
+66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,
+66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,
+66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,
+66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,
+67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,
+67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,
+67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,
+67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,
+67,67,67,67,67,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,
+68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,
+68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,
+68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,
+68,68,68,68,68,68,68,68,68,68,68,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,
+69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,
+69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,
+69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,
+69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,70,70,70,70,70,70,
+70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,
+70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,
+70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,
+70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,
+70,70,70,70,70,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,
+71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,
+71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,
+71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,
+71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,72,72,72,72,72,72,72,72,72,
+72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,
+72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,
+72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,
+72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,
+72,72,72,72,72,72,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,
+73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,
+73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,
+73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,
+73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,74,74,74,74,
+74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,
+74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,
+74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,
+74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,
+74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,75,75,75,75,75,75,75,75,75,75,75,
+75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,
+75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,
+75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,
+75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,
+75,75,75,75,75,75,75,75,75,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,
+76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,
+76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,
+76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,
+76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,
+76,76,76,76,76,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,
+77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,
+77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,
+77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,
+77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,
+77,77,77,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,
+78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,
+78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,
+78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,
+78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,
+78,78,78,78,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,
+79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,
+79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,
+79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,
+79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,
+79,79,79,79,79,79,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,
+80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,
+80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,
+80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,
+80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,
+80,80,80,80,80,80,80,80,80,80,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,
+81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,
+81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,
+81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,
+81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,
+81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,82,82,82,82,82,82,82,82,82,82,
+82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,
+82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,
+82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,
+82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,
+82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,83,83,
+83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,
+83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,
+83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,
+83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,
+83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,
+83,83,83,83,83,83,83,83,83,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,
+84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,
+84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,
+84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,
+84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,
+84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,85,85,85,85,85,
+85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,
+85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,
+85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,
+85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,
+85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,
+85,85,85,85,85,85,85,85,85,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,
+86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,
+86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,
+86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,
+86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,
+86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,
+87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,
+87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,
+87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,
+87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,
+87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,
+87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,88,88,88,88,88,88,88,88,
+88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,
+88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,
+88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,
+88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,
+88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,
+88,88,88,88,88,88,88,88,88,88,88,88,89,89,89,89,89,89,89,89,89,89,89,89,89,89,
+89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,
+89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,
+89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,
+89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,
+89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,
+89,89,89,89,89,89,89,89,89,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,
+90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,
+90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,
+90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,
+90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,
+90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,
+90,90,90,90,90,90,90,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,
+91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,
+91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,
+91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,
+91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,
+91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,
+91,91,91,91,91,91,91,91,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,
+92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,
+92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,
+92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,
+92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,
+92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,
+92,92,92,92,92,92,92,92,92,92,92,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,
+93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,
+93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,
+93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,
+93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,
+93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,
+93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,94,94,94,94,94,94,94,94,94,94,
+94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,
+94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,
+94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,
+94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,
+94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,
+94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,95,95,95,
+95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,
+95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,
+95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,
+95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,
+95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,
+95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,
+95,95,95,95,95,95,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,
+96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,
+96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,
+96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,
+96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,
+96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,
+96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,97,97,97,97,97,97,97,97,97,
+97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,
+97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,
+97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,
+97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,
+97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,
+97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,
+97,97,97,97,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,
+98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,
+98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,
+98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,
+98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,
+98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,
+98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,99,99,99,99,99,99,
+99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,
+99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,
+99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,
+99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,
+99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,
+99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,
+99,99,99,99,99,99,99,99,99,99,99,99,100,100,100,100,100,100,100,100,100,100,100,
+100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
+100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
+100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
+100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
+100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
+100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
+100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
+100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
+100,100,100,100,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,
+101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,
+101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,
+101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,
+101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,
+101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,
+101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,
+101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,
+101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,
+101,101,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,
+102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,
+102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,
+102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,
+102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,
+102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,
+102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,
+102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,
+102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,
+102,102,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,
+103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,
+103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,
+103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,
+103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,
+103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,
+103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,
+103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,
+103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,
+103,103,103,103,103,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,
+104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,
+104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,
+104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,
+104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,
+104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,
+104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,
+104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,
+104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,
+104,104,104,104,104,104,104,104,104,105,105,105,105,105,105,105,105,105,105,105,
+105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,
+105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,
+105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,
+105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,
+105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,
+105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,
+105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,
+105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,
+105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,106,106,106,106,
+106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,
+106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,
+106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,
+106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,
+106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,
+106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,
+106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,
+106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,
+106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,
+106,106,106,106,106,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,
+107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,
+107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,
+107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,
+107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,
+107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,
+107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,
+107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,
+107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,
+107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,108,108,108,108,
+108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,
+108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,
+108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,
+108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,
+108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,
+108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,
+108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,
+108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,
+108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,
+108,108,108,108,108,108,108,108,108,109,109,109,109,109,109,109,109,109,109,109,
+109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
+109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
+109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
+109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
+109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
+109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
+109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
+109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
+109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
+109,109,109,109,109,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,
+110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,
+110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,
+110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,
+110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,
+110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,
+110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,
+110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,
+110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,
+110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,
+110,110,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,
+111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,
+111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,
+111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,
+111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,
+111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,
+111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,
+111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,
+111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,
+111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,
+111,111,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,
+112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,
+112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,
+112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,
+112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,
+112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,
+112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,
+112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,
+112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,
+112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,
+112,112,112,112,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,
+113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,
+113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,
+113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,
+113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,
+113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,
+113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,
+113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,
+113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,
+113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,
+113,113,113,113,113,113,113,113,113,114,114,114,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,115,115,115,115,
+115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,
+115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,
+115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,
+115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,
+115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,
+115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,
+115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,
+115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,
+115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,
+115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,
+115,115,115,115,115,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,
+116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,
+116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,
+116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,
+116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,
+116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,
+116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,
+116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,
+116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,
+116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,
+116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,117,117,117,117,
+117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,
+117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,
+117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,
+117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,
+117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,
+117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,
+117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,
+117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,
+117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,
+117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,
+117,117,117,117,117,117,117,117,117,118,118,118,118,118,118,118,118,118,118,118,
+118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,
+118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,
+118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,
+118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,
+118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,
+118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,
+118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,
+118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,
+118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,
+118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,
+118,118,118,118,118,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,
+119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,
+119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,
+119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,
+119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,
+119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,
+119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,
+119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,
+119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,
+119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,
+119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,
+119,119,119,120,120,120,120,120,120,120,120,120,120,120,120,120,120,120,120,120,
+120,120,120,120,120,120,120,120,120,120,120,120,120,120,120,120,120,120,120,120,
+120,120,120,120,120,120,120,120,120,120,120,120,120,120,120,120,120,120,120,120,
+120,120,120,120,120,120,120,120,120,120,120,120,120,120,120,120,120,120,120,120,
+120,120,120,120,120,120,120,120,120,120,120,120,120,120,120,120,120,120,120,120,
+120,120,120,120,120,120,120,120,120,120,120,120,120,120,120,120,120,120,120,120,
+120,120,120,120,120,120,120,120,120,120,120,120,120,120,120,120,120,120,120,120,
+120,120,120,120,120,120,120,120,120,120,120,120,120,120,120,120,120,120,120,120,
+120,120,120,120,120,120,120,120,120,120,120,120,120,120,120,120,120,120,120,120,
+120,120,120,120,120,120,120,120,120,120,120,120,120,120,120,120,120,120,120,120,
+120,120,120,120,120,120,120,120,120,120,120,120,120,120,120,120,120,120,120,120,
+120,120,120,120,121,121,121,121,121,121,121,121,121,121,121,121,121,121,121,121,
+121,121,121,121,121,121,121,121,121,121,121,121,121,121,121,121,121,121,121,121,
+121,121,121,121,121,121,121,121,121,121,121,121,121,121,121,121,121,121,121,121,
+121,121,121,121,121,121,121,121,121,121,121,121,121,121,121,121,121,121,121,121,
+121,121,121,121,121,121,121,121,121,121,121,121,121,121,121,121,121,121,121,121,
+121,121,121,121,121,121,121,121,121,121,121,121,121,121,121,121,121,121,121,121,
+121,121,121,121,121,121,121,121,121,121,121,121,121,121,121,121,121,121,121,121,
+121,121,121,121,121,121,121,121,121,121,121,121,121,121,121,121,121,121,121,121,
+121,121,121,121,121,121,121,121,121,121,121,121,121,121,121,121,121,121,121,121,
+121,121,121,121,121,121,121,121,121,121,121,121,121,121,121,121,121,121,121,121,
+121,121,121,121,121,121,121,121,121,121,121,121,121,121,121,121,121,121,121,121,
+121,121,121,121,121,121,121,122,122,122,122,122,122,122,122,122,122,122,122,122,
+122,122,122,122,122,122,122,122,122,122,122,122,122,122,122,122,122,122,122,122,
+122,122,122,122,122,122,122,122,122,122,122,122,122,122,122,122,122,122,122,122,
+122,122,122,122,122,122,122,122,122,122,122,122,122,122,122,122,122,122,122,122,
+122,122,122,122,122,122,122,122,122,122,122,122,122,122,122,122,122,122,122,122,
+122,122,122,122,122,122,122,122,122,122,122,122,122,122,122,122,122,122,122,122,
+122,122,122,122,122,122,122,122,122,122,122,122,122,122,122,122,122,122,122,122,
+122,122,122,122,122,122,122,122,122,122,122,122,122,122,122,122,122,122,122,122,
+122,122,122,122,122,122,122,122,122,122,122,122,122,122,122,122,122,122,122,122,
+122,122,122,122,122,122,122,122,122,122,122,122,122,122,122,122,122,122,122,122,
+122,122,122,122,122,122,122,122,122,122,122,122,122,122,122,122,122,122,122,122,
+122,122,122,122,122,122,122,122,122,122,122,122,123,123,123,123,123,123,123,123,
+123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,
+123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,
+123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,
+123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,
+123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,
+123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,
+123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,
+123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,
+123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,
+123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,
+123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,124,
+124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,
+124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,
+124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,
+124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,
+124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,
+124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,
+124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,
+124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,
+124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,
+124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,
+124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,
+124,124,124,124,124,124,124,124,124,125,125,125,125,125,125,125,125,125,125,125,
+125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,
+125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,
+125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,
+125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,
+125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,
+125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,
+125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,
+125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,
+125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,
+125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,
+125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,
+125,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,
+126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,
+126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,
+126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,
+126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,
+126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,
+126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,
+126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,
+126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,
+126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,
+126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,
+126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,127,127,127,127,127,
+127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
+127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
+127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
+127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
+127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
+127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
+127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
+127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
+127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
+127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
+127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,
+127,127,127,127,127,127,127,127,127,127,127,127,128,128,128,128,128,128,128,128,
+128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,
+128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,
+128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,
+128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,
+128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,
+128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,
+128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,
+128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,
+128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,
+128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,
+128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,
+128,128,128,128,128,128,128,128,128,128,128,129,129,129,129,129,129,129,129,129,
+129,129,129,129,129,129,129,129,129,129,129,129,129,129,129,129,129,129,129,129,
+129,129,129,129,129,129,129,129,129,129,129,129,129,129,129,129,129,129,129,129,
+129,129,129,129,129,129,129,129,129,129,129,129,129,129,129,129,129,129,129,129,
+129,129,129,129,129,129,129,129,129,129,129,129,129,129,129,129,129,129,129,129,
+129,129,129,129,129,129,129,129,129,129,129,129,129,129,129,129,129,129,129,129,
+129,129,129,129,129,129,129,129,129,129,129,129,129,129,129,129,129,129,129,129,
+129,129,129,129,129,129,129,129,129,129,129,129,129,129,129,129,129,129,129,129,
+129,129,129,129,129,129,129,129,129,129,129,129,129,129,129,129,129,129,129,129,
+129,129,129,129,129,129,129,129,129,129,129,129,129,129,129,129,129,129,129,129,
+129,129,129,129,129,129,129,129,129,129,129,129,129,129,129,129,129,129,129,129,
+129,129,129,129,129,129,129,129,129,129,129,129,129,129,129,129,129,129,129,129,
+129,129,129,129,129,129,129,129,129,129,129,129,130,130,130,130,130,130,130,130,
+130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,
+130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,
+130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,
+130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,
+130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,
+130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,
+130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,
+130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,
+130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,
+130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,
+130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,
+130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,131,131,131,131,
+131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,
+131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,
+131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,
+131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,
+131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,
+131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,
+131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,
+131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,
+131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,
+131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,
+131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,
+131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,
+131,131,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,
+132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,
+132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,
+132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,
+132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,
+132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,
+132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,
+132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,
+132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,
+132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,
+132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,
+132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,
+132,132,132,132,132,132,132,132,132,132,132,133,133,133,133,133,133,133,133,133,
+133,133,133,133,133,133,133,133,133,133,133,133,133,133,133,133,133,133,133,133,
+133,133,133,133,133,133,133,133,133,133,133,133,133,133,133,133,133,133,133,133,
+133,133,133,133,133,133,133,133,133,133,133,133,133,133,133,133,133,133,133,133,
+133,133,133,133,133,133,133,133,133,133,133,133,133,133,133,133,133,133,133,133,
+133,133,133,133,133,133,133,133,133,133,133,133,133,133,133,133,133,133,133,133,
+133,133,133,133,133,133,133,133,133,133,133,133,133,133,133,133,133,133,133,133,
+133,133,133,133,133,133,133,133,133,133,133,133,133,133,133,133,133,133,133,133,
+133,133,133,133,133,133,133,133,133,133,133,133,133,133,133,133,133,133,133,133,
+133,133,133,133,133,133,133,133,133,133,133,133,133,133,133,133,133,133,133,133,
+133,133,133,133,133,133,133,133,133,133,133,133,133,133,133,133,133,133,133,133,
+133,133,133,133,133,133,133,133,133,133,133,133,133,133,133,133,133,133,133,133,
+133,133,133,133,133,133,133,133,133,133,133,133,133,133,133,133,133,133,133,133,
+133,133,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,
+134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,
+134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,
+134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,
+134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,
+134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,
+134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,
+134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,
+134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,
+134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,
+134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,
+134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,
+134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,135,135,135,135,135,
+135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,
+135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,
+135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,
+135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,
+135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,
+135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,
+135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,
+135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,
+135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,
+135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,
+135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,
+135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,
+135,135,135,135,135,135,135,135,135,135,135,136,136,136,136,136,136,136,136,136,
+136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,
+136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,
+136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,
+136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,
+136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,
+136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,
+136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,
+136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,
+136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,
+136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,
+136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,
+136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,
+136,136,136,136,136,136,136,136,136,137,137,137,137,137,137,137,137,137,137,137,
+137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,
+137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,
+137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,
+137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,
+137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,
+137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,
+137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,
+137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,
+137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,
+137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,
+137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,
+137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,
+137,137,137,137,137,137,137,137,137,138,138,138,138,138,138,138,138,138,138,138,
+138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,
+138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,
+138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,
+138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,
+138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,
+138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,
+138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,
+138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,
+138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,
+138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,
+138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,
+138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,
+138,138,138,138,138,138,138,138,138,138,138,138,139,139,139,139,139,139,139,139,
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,140,140,
+140,140,140,140,140,140,140,140,140,140,140,140,140,140,140,140,140,140,140,140,
+140,140,140,140,140,140,140,140,140,140,140,140,140,140,140,140,140,140,140,140,
+140,140,140,140,140,140,140,140,140,140,140,140,140,140,140,140,140,140,140,140,
+140,140,140,140,140,140,140,140,140,140,140,140,140,140,140,140,140,140,140,140,
+140,140,140,140,140,140,140,140,140,140,140,140,140,140,140,140,140,140,140,140,
+140,140,140,140,140,140,140,140,140,140,140,140,140,140,140,140,140,140,140,140,
+140,140,140,140,140,140,140,140,140,140,140,140,140,140,140,140,140,140,140,140,
+140,140,140,140,140,140,140,140,140,140,140,140,140,140,140,140,140,140,140,140,
+140,140,140,140,140,140,140,140,140,140,140,140,140,140,140,140,140,140,140,140,
+140,140,140,140,140,140,140,140,140,140,140,140,140,140,140,140,140,140,140,140,
+140,140,140,140,140,140,140,140,140,140,140,140,140,140,140,140,140,140,140,140,
+140,140,140,140,140,140,140,140,140,140,140,140,140,140,140,140,140,140,140,140,
+140,140,140,140,140,140,140,140,140,140,140,140,140,140,140,140,140,140,140,140,
+140,140,140,140,140,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,
+141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,
+141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,
+141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,
+141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,
+141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,
+141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,
+141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,
+141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,
+141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,
+141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,
+141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,
+141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,
+141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,142,142,142,142,
+142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,
+142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,
+142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,
+142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,
+142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,
+142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,
+142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,
+142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,
+142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,
+142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,
+142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,
+142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,
+142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,
+142,142,142,142,142,142,142,142,143,143,143,143,143,143,143,143,143,143,143,143,
+143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,
+143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,
+143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,
+143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,
+143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,
+143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,
+143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,
+143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,
+143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,
+143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,
+143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,
+143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,
+143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,
+143,143,143,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,
+144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,
+144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,
+144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,
+144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,
+144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,
+144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,
+144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,
+144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,
+144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,
+144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,
+144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,
+144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,
+144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,
+144,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,
+145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,
+145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,
+145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,
+145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,
+145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,
+145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,
+145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,
+145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,
+145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,
+145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,
+145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,
+145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,
+145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,
+145,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,
+146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,
+146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,
+146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,
+146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,
+146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,
+146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,
+146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,
+146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,
+146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,
+146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,
+146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,
+146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,
+146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,
+146,146,146,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,
+147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,
+147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,
+147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,
+147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,
+147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,
+147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,
+147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,
+147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,
+147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,
+147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,
+147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,
+147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,
+147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,
+147,147,147,147,147,147,147,147,148,148,148,148,148,148,148,148,148,148,148,148,
+148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,
+148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,
+148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,
+148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,
+148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,
+148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,
+148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,
+148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,
+148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,
+148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,
+148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,
+148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,
+148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,
+148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,149,149,149,149,
+149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,
+149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,
+149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,
+149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,
+149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,
+149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,
+149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,
+149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,
+149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,
+149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,
+149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,
+149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,
+149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,
+149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,
+149,149,149,149,149,149,150,150,150,150,150,150,150,150,150,150,150,150,150,150,
+150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,
+150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,
+150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,
+150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,
+150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,
+150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,
+150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,
+150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,
+150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,
+150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,
+150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,
+150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,
+150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,
+150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,151,151,
+151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,
+151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,
+151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,
+151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,
+151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,
+151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,
+151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,
+151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,
+151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,
+151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,
+151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,
+151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,
+151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,
+151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,
+151,151,151,151,151,151,151,151,151,151,151,151,151,152,152,152,152,152,152,152,
+152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,
+152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,
+152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,
+152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,
+152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,
+152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,
+152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,
+152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,
+152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,
+152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,
+152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,
+152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,
+152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,
+152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,
+152,152,152,152,152,152,152,152,152,152,152,153,153,153,153,153,153,153,153,153,
+153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,
+153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,
+153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,
+153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,
+153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,
+153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,
+153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,
+153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,
+153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,
+153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,
+153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,
+153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,
+153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,
+153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,
+153,153,153,153,153,153,153,153,153,153,153,154,154,154,154,154,154,154,154,154,
+154,154,154,154,154,154,154,154,154,154,154,154,154,154,154,154,154,154,154,154,
+154,154,154,154,154,154,154,154,154,154,154,154,154,154,154,154,154,154,154,154,
+154,154,154,154,154,154,154,154,154,154,154,154,154,154,154,154,154,154,154,154,
+154,154,154,154,154,154,154,154,154,154,154,154,154,154,154,154,154,154,154,154,
+154,154,154,154,154,154,154,154,154,154,154,154,154,154,154,154,154,154,154,154,
+154,154,154,154,154,154,154,154,154,154,154,154,154,154,154,154,154,154,154,154,
+154,154,154,154,154,154,154,154,154,154,154,154,154,154,154,154,154,154,154,154,
+154,154,154,154,154,154,154,154,154,154,154,154,154,154,154,154,154,154,154,154,
+154,154,154,154,154,154,154,154,154,154,154,154,154,154,154,154,154,154,154,154,
+154,154,154,154,154,154,154,154,154,154,154,154,154,154,154,154,154,154,154,154,
+154,154,154,154,154,154,154,154,154,154,154,154,154,154,154,154,154,154,154,154,
+154,154,154,154,154,154,154,154,154,154,154,154,154,154,154,154,154,154,154,154,
+154,154,154,154,154,154,154,154,154,154,154,154,154,154,154,154,154,154,154,154,
+154,154,154,154,154,154,154,154,154,154,154,154,154,154,154,154,154,154,154,154,
+154,154,154,154,154,154,154,154,154,154,154,154,154,155,155,155,155,155,155,155,
+155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,
+155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,
+155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,
+155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,
+155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,
+155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,
+155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,
+155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,
+155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,
+155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,
+155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,
+155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,
+155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,
+155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,
+155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,156,156,
+156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,
+156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,
+156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,
+156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,
+156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,
+156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,
+156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,
+156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,
+156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,
+156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,
+156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,
+156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,
+156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,
+156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,
+156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,
+156,156,156,156,156,156,157,157,157,157,157,157,157,157,157,157,157,157,157,157,
+157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,
+157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,
+157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,
+157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,
+157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,
+157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,
+157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,
+157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,
+157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,
+157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,
+157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,
+157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,
+157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,
+157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,
+157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,158,158,158,158,
+158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,
+158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,
+158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,
+158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,
+158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,
+158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,
+158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,
+158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,
+158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,
+158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,
+158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,
+158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,
+158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,
+158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,
+158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,
+158,158,158,158,158,158,158,158,159,159,159,159,159,159,159,159,159,159,159,159,
+159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,
+159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,
+159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,
+159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,
+159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,
+159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,
+159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,
+159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,
+159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,
+159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,
+159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,
+159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,
+159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,
+159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,
+159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,
+159,159,159,159,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,
+160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,
+160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,
+160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,
+160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,
+160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,
+160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,
+160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,
+160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,
+160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,
+160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,
+160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,
+160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,
+160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,
+160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,
+160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,
+160,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,
+161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,
+161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,
+161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,
+161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,
+161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,
+161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,
+161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,
+161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,
+161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,
+161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,
+161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,
+161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,
+161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,
+161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,
+161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,
+161,161,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,
+162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,
+162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,
+162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,
+162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,
+162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,
+162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,
+162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,
+162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,
+162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,
+162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,
+162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,
+162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,
+162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,
+162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,
+162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,
+162,162,162,162,163,163,163,163,163,163,163,163,163,163,163,163,163,163,163,163,
+163,163,163,163,163,163,163,163,163,163,163,163,163,163,163,163,163,163,163,163,
+163,163,163,163,163,163,163,163,163,163,163,163,163,163,163,163,163,163,163,163,
+163,163,163,163,163,163,163,163,163,163,163,163,163,163,163,163,163,163,163,163,
+163,163,163,163,163,163,163,163,163,163,163,163,163,163,163,163,163,163,163,163,
+163,163,163,163,163,163,163,163,163,163,163,163,163,163,163,163,163,163,163,163,
+163,163,163,163,163,163,163,163,163,163,163,163,163,163,163,163,163,163,163,163,
+163,163,163,163,163,163,163,163,163,163,163,163,163,163,163,163,163,163,163,163,
+163,163,163,163,163,163,163,163,163,163,163,163,163,163,163,163,163,163,163,163,
+163,163,163,163,163,163,163,163,163,163,163,163,163,163,163,163,163,163,163,163,
+163,163,163,163,163,163,163,163,163,163,163,163,163,163,163,163,163,163,163,163,
+163,163,163,163,163,163,163,163,163,163,163,163,163,163,163,163,163,163,163,163,
+163,163,163,163,163,163,163,163,163,163,163,163,163,163,163,163,163,163,163,163,
+163,163,163,163,163,163,163,163,163,163,163,163,163,163,163,163,163,163,163,163,
+163,163,163,163,163,163,163,163,163,163,163,163,163,163,163,163,163,163,163,163,
+163,163,163,163,163,163,163,163,163,163,163,163,163,163,163,163,163,163,163,163,
+163,163,163,163,163,163,163,163,163,163,164,164,164,164,164,164,164,164,164,164,
+164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,
+164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,
+164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,
+164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,
+164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,
+164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,
+164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,
+164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,
+164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,
+164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,
+164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,
+164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,
+164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,
+164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,
+164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,
+164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,165,165,
+165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,
+165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,
+165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,
+165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,
+165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,
+165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,
+165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,
+165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,
+165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,
+165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,
+165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,
+165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,
+165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,
+165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,
+165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,
+165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,
+165,165,165,165,165,165,165,165,166,166,166,166,166,166,166,166,166,166,166,166,
+166,166,166,166,166,166,166,166,166,166,166,166,166,166,166,166,166,166,166,166,
+166,166,166,166,166,166,166,166,166,166,166,166,166,166,166,166,166,166,166,166,
+166,166,166,166,166,166,166,166,166,166,166,166,166,166,166,166,166,166,166,166,
+166,166,166,166,166,166,166,166,166,166,166,166,166,166,166,166,166,166,166,166,
+166,166,166,166,166,166,166,166,166,166,166,166,166,166,166,166,166,166,166,166,
+166,166,166,166,166,166,166,166,166,166,166,166,166,166,166,166,166,166,166,166,
+166,166,166,166,166,166,166,166,166,166,166,166,166,166,166,166,166,166,166,166,
+166,166,166,166,166,166,166,166,166,166,166,166,166,166,166,166,166,166,166,166,
+166,166,166,166,166,166,166,166,166,166,166,166,166,166,166,166,166,166,166,166,
+166,166,166,166,166,166,166,166,166,166,166,166,166,166,166,166,166,166,166,166,
+166,166,166,166,166,166,166,166,166,166,166,166,166,166,166,166,166,166,166,166,
+166,166,166,166,166,166,166,166,166,166,166,166,166,166,166,166,166,166,166,166,
+166,166,166,166,166,166,166,166,166,166,166,166,166,166,166,166,166,166,166,166,
+166,166,166,166,166,166,166,166,166,166,166,166,166,166,166,166,166,166,166,166,
+166,166,166,166,166,166,166,166,166,166,166,166,166,166,166,166,166,166,166,166,
+166,166,166,166,166,166,166,166,166,166,166,166,166,166,166,166,166,166,166,166,
+166,166,167,167,167,167,167,167,167,167,167,167,167,167,167,167,167,167,167,167,
+167,167,167,167,167,167,167,167,167,167,167,167,167,167,167,167,167,167,167,167,
+167,167,167,167,167,167,167,167,167,167,167,167,167,167,167,167,167,167,167,167,
+167,167,167,167,167,167,167,167,167,167,167,167,167,167,167,167,167,167,167,167,
+167,167,167,167,167,167,167,167,167,167,167,167,167,167,167,167,167,167,167,167,
+167,167,167,167,167,167,167,167,167,167,167,167,167,167,167,167,167,167,167,167,
+167,167,167,167,167,167,167,167,167,167,167,167,167,167,167,167,167,167,167,167,
+167,167,167,167,167,167,167,167,167,167,167,167,167,167,167,167,167,167,167,167,
+167,167,167,167,167,167,167,167,167,167,167,167,167,167,167,167,167,167,167,167,
+167,167,167,167,167,167,167,167,167,167,167,167,167,167,167,167,167,167,167,167,
+167,167,167,167,167,167,167,167,167,167,167,167,167,167,167,167,167,167,167,167,
+167,167,167,167,167,167,167,167,167,167,167,167,167,167,167,167,167,167,167,167,
+167,167,167,167,167,167,167,167,167,167,167,167,167,167,167,167,167,167,167,167,
+167,167,167,167,167,167,167,167,167,167,167,167,167,167,167,167,167,167,167,167,
+167,167,167,167,167,167,167,167,167,167,167,167,167,167,167,167,167,167,167,167,
+167,167,167,167,167,167,167,167,167,167,167,167,167,167,167,167,167,167,167,167,
+167,167,167,167,167,167,167,167,167,167,167,167,167,167,167,167,167,168,168,168,
+168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,
+168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,
+168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,
+168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,
+168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,
+168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,
+168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,
+168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,
+168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,
+168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,
+168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,
+168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,
+168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,
+168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,
+168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,
+168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,
+168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,169,169,169,169,
+169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,
+169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,
+169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,
+169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,
+169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,
+169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,
+169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,
+169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,
+169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,
+169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,
+169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,
+169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,
+169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,
+169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,
+169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,
+169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,
+169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,170,170,170,
+170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,
+170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,
+170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,
+170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,
+170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,
+170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,
+170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,
+170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,
+170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,
+170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,
+170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,
+170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,
+170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,
+170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,
+170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,
+170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,
+170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,
+171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,
+171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,
+171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,
+171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,
+171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,
+171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,
+171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,
+171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,
+171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,
+171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,
+171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,
+171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,
+171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,
+171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,
+171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,
+171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,
+171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,
+171,171,171,171,171,171,172,172,172,172,172,172,172,172,172,172,172,172,172,172,
+172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,
+172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,
+172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,
+172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,
+172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,
+172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,
+172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,
+172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,
+172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,
+172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,
+172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,
+172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,
+172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,
+172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,
+172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,
+172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,
+172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,173,173,173,173,173,
+173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,
+173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,
+173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,
+173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,
+173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,
+173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,
+173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,
+173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,
+173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,
+173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,
+173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,
+173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,
+173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,
+173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,
+173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,
+173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,
+173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,
+173,173,173,173,173,173,173,174,174,174,174,174,174,174,174,174,174,174,174,174,
+174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,
+174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,
+174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,
+174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,
+174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,
+174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,
+174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,
+174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,
+174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,
+174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,
+174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,
+174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,
+174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,
+174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,
+174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,
+174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,
+174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,
+174,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,
+175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,
+175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,
+175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,
+175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,
+175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,
+175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,
+175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,
+175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,
+175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,
+175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,
+175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,
+175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,
+175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,
+175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,
+175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,
+175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,
+175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,176,176,176,
+176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,
+176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,
+176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,
+176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,
+176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,
+176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,
+176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,
+176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,
+176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,
+176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,
+176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,
+176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,
+176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,
+176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,
+176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,
+176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,
+176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,
+176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,177,177,177,
+177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,
+177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,
+177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,
+177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,
+177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,
+177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,
+177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,
+177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,
+177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,
+177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,
+177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,
+177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,
+177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,
+177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,
+177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,
+177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,
+177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,
+177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,178,
+178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,
+178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,
+178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,
+178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,
+178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,
+178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,
+178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,
+178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,
+178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,
+178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,
+178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,
+178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,
+178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,
+178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,
+178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,
+178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,
+178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,
+178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,
+178,178,178,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,
+179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,
+179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,
+179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,
+179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,
+179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,
+179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,
+179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,
+179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,
+179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,
+179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,
+179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,
+179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,
+179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,
+179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,
+179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,
+179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,
+179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,
+179,179,179,179,179,179,179,179,179,179,179,180,180,180,180,180,180,180,180,180,
+180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,
+180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,
+180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,
+180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,
+180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,
+180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,
+180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,
+180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,
+180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,
+180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,
+180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,
+180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,
+180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,
+180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,
+180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,
+180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,
+180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,
+180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,
+180,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,
+181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,
+181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,
+181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,
+181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,
+181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,
+181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,
+181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,
+181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,
+181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,
+181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,
+181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,
+181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,
+181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,
+181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,
+181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,
+181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,
+181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,
+181,181,181,181,181,181,181,181,181,181,181,181,181,182,182,182,182,182,182,182,
+182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,
+182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,
+182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,
+182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,
+182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,
+182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,
+182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,
+182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,
+182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,
+182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,
+182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,
+182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,
+182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,
+182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,
+182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,
+182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,
+182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,
+182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,
+182,182,182,182,182,182,182,182,182,183,183,183,183,183,183,183,183,183,183,183,
+183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,
+183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,
+183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,
+183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,
+183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,
+183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,
+183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,
+183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,
+183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,
+183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,
+183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,
+183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,
+183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,
+183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,
+183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,
+183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,
+183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,
+183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,
+183,183,183,183,183,183,183,184,184,184,184,184,184,184,184,184,184,184,184,184,
+184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,
+184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,
+184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,
+184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,
+184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,
+184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,
+184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,
+184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,
+184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,
+184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,
+184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,
+184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,
+184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,
+184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,
+184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,
+184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,
+184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,
+184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,
+184,184,184,184,184,184,184,185,185,185,185,185,185,185,185,185,185,185,185,185,
+185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,
+185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,
+185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,
+185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,
+185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,
+185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,
+185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,
+185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,
+185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,
+185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,
+185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,
+185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,
+185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,
+185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,
+185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,
+185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,
+185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,
+185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,
+185,185,185,185,185,185,185,185,185,185,185,186,186,186,186,186,186,186,186,186,
+186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,
+186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,
+186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,
+186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,
+186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,
+186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,
+186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,
+186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,
+186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,
+186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,
+186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,
+186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,
+186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,
+186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,
+186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,
+186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,
+186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,
+186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,
+186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,187,187,187,
+187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,
+187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,
+187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,
+187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,
+187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,
+187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,
+187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,
+187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,
+187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,
+187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,
+187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,
+187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,
+187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,
+187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,
+187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,
+187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,
+187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,
+187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,
+187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,
+187,187,187,187,187,187,188,188,188,188,188,188,188,188,188,188,188,188,188,188,
+188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,
+188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,
+188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,
+188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,
+188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,
+188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,
+188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,
+188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,
+188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,
+188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,
+188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,
+188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,
+188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,
+188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,
+188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,
+188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,
+188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,
+188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,
+188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,189,189,189,
+189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,
+189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,
+189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,
+189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,
+189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,
+189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,
+189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,
+189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,
+189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,
+189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,
+189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,
+189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,
+189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,
+189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,
+189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,
+189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,
+189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,
+189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,
+189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,
+189,189,189,189,189,189,189,189,189,189,189,189,190,190,190,190,190,190,190,190,
+190,190,190,190,190,190,190,190,190,190,190,190,190,190,190,190,190,190,190,190,
+190,190,190,190,190,190,190,190,190,190,190,190,190,190,190,190,190,190,190,190,
+190,190,190,190,190,190,190,190,190,190,190,190,190,190,190,190,190,190,190,190,
+190,190,190,190,190,190,190,190,190,190,190,190,190,190,190,190,190,190,190,190,
+190,190,190,190,190,190,190,190,190,190,190,190,190,190,190,190,190,190,190,190,
+190,190,190,190,190,190,190,190,190,190,190,190,190,190,190,190,190,190,190,190,
+190,190,190,190,190,190,190,190,190,190,190,190,190,190,190,190,190,190,190,190,
+190,190,190,190,190,190,190,190,190,190,190,190,190,190,190,190,190,190,190,190,
+190,190,190,190,190,190,190,190,190,190,190,190,190,190,190,190,190,190,190,190,
+190,190,190,190,190,190,190,190,190,190,190,190,190,190,190,190,190,190,190,190,
+190,190,190,190,190,190,190,190,190,190,190,190,190,190,190,190,190,190,190,190,
+190,190,190,190,190,190,190,190,190,190,190,190,190,190,190,190,190,190,190,190,
+190,190,190,190,190,190,190,190,190,190,190,190,190,190,190,190,190,190,190,190,
+190,190,190,190,190,190,190,190,190,190,190,190,190,190,190,190,190,190,190,190,
+190,190,190,190,190,190,190,190,190,190,190,190,190,190,190,190,190,190,190,190,
+190,190,190,190,190,190,190,190,190,190,190,190,190,190,190,190,190,190,190,190,
+190,190,190,190,190,190,190,190,190,190,190,190,190,190,190,190,190,190,190,190,
+190,190,190,190,190,190,190,190,190,190,190,190,190,190,190,190,190,190,190,190,
+190,190,190,190,190,190,190,190,190,190,190,190,190,190,190,190,190,190,190,190,
+190,190,190,190,190,190,190,190,191,191,191,191,191,191,191,191,191,191,191,191,
+191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,
+191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,
+191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,
+191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,
+191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,
+191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,
+191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,
+191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,
+191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,
+191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,
+191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,
+191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,
+191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,
+191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,
+191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,
+191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,
+191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,
+191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,
+191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,
+191,191,191,191,191,191,191,191,192,192,192,192,192,192,192,192,192,192,192,192,
+192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,
+192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,
+192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,
+192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,
+192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,
+192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,
+192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,
+192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,
+192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,
+192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,
+192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,
+192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,
+192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,
+192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,
+192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,
+192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,
+192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,
+192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,
+192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,
+192,192,192,192,192,192,192,192,192,192,192,193,193,193,193,193,193,193,193,193,
+193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,
+193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,
+193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,
+193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,
+193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,
+193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,
+193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,
+193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,
+193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,
+193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,
+193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,
+193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,
+193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,
+193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,
+193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,
+193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,
+193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,
+193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,
+193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,
+193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,194,194,194,194,
+194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,
+194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,
+194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,
+194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,
+194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,
+194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,
+194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,
+194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,
+194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,
+194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,
+194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,
+194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,
+194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,
+194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,
+194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,
+194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,
+194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,
+194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,
+194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,
+194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,
+194,194,194,194,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,
+195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,
+195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,
+195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,
+195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,
+195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,
+195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,
+195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,
+195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,
+195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,
+195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,
+195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,
+195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,
+195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,
+195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,
+195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,
+195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,
+195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,
+195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,
+195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,
+195,195,195,195,195,195,195,195,195,195,195,195,195,195,196,196,196,196,196,196,
+196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,
+196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,
+196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,
+196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,
+196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,
+196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,
+196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,
+196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,
+196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,
+196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,
+196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,
+196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,
+196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,
+196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,
+196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,
+196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,
+196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,
+196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,
+196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,
+196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,
+196,196,196,196,196,196,196,196,197,197,197,197,197,197,197,197,197,197,197,197,
+197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,
+197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,
+197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,
+197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,
+197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,
+197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,
+197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,
+197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,
+197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,
+197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,
+197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,
+197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,
+197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,
+197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,
+197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,
+197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,
+197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,
+197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,
+197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,
+197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,
+197,197,197,197,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,
+198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,
+198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,
+198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,
+198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,
+198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,
+198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,
+198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,
+198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,
+198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,
+198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,
+198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,
+198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,
+198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,
+198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,
+198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,
+198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,
+198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,
+198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,
+198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,
+198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,
+198,198,198,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,
+199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,
+199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,
+199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,
+199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,
+199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,
+199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,
+199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,
+199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,
+199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,
+199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,
+199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,
+199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,
+199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,
+199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,
+199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,
+199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,
+199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,
+199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,
+199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,
+199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,
+199,199,199,199,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,
+200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,
+200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,
+200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,
+200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,
+200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,
+200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,
+200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,
+200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,
+200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,
+200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,
+200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,
+200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,
+200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,
+200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,
+200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,
+200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,
+200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,
+200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,
+200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,
+200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,
+200,200,200,200,200,200,200,200,200,201,201,201,201,201,201,201,201,201,201,201,
+201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,
+201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,
+201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,
+201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,
+201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,
+201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,
+201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,
+201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,
+201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,
+201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,
+201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,
+201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,
+201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,
+201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,
+201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,
+201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,
+201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,
+201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,
+201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,
+201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,
+201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,202,202,202,202,
+202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,
+202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,
+202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,
+202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,
+202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,
+202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,
+202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,
+202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,
+202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,
+202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,
+202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,
+202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,
+202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,
+202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,
+202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,
+202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,
+202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,
+202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,
+202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,
+202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,
+202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,
+202,202,202,202,202,202,203,203,203,203,203,203,203,203,203,203,203,203,203,203,
+203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,
+203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,
+203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,
+203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,
+203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,
+203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,
+203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,
+203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,
+203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,
+203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,
+203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,
+203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,
+203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,
+203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,
+203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,
+203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,
+203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,
+203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,
+203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,
+203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,
+203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,204,
+204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,
+204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,
+204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,
+204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,
+204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,
+204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,
+204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,
+204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,
+204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,
+204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,
+204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,
+204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,
+204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,
+204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,
+204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,
+204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,
+204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,
+204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,
+204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,
+204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,
+204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,
+204,204,204,204,204,204,204,204,204,204,204,204,204,204,205,205,205,205,205,205,
+205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,
+205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,
+205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,
+205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,
+205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,
+205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,
+205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,
+205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,
+205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,
+205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,
+205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,
+205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,
+205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,
+205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,
+205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,
+205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,
+205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,
+205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,
+205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,
+205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,
+205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,
+205,205,205,205,205,205,205,205,205,205,205,205,205,206,206,206,206,206,206,206,
+206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,
+206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,
+206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,
+206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,
+206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,
+206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,
+206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,
+206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,
+206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,
+206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,
+206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,
+206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,
+206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,
+206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,
+206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,
+206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,
+206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,
+206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,
+206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,
+206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,
+206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,
+206,206,206,206,206,206,206,206,206,206,206,206,206,206,207,207,207,207,207,207,
+207,207,207,207,207,207,207,207,207,207,207,207,207,207,207,207,207,207,207,207,
+207,207,207,207,207,207,207,207,207,207,207,207,207,207,207,207,207,207,207,207,
+207,207,207,207,207,207,207,207,207,207,207,207,207,207,207,207,207,207,207,207,
+207,207,207,207,207,207,207,207,207,207,207,207,207,207,207,207,207,207,207,207,
+207,207,207,207,207,207,207,207,207,207,207,207,207,207,207,207,207,207,207,207,
+207,207,207,207,207,207,207,207,207,207,207,207,207,207,207,207,207,207,207,207,
+207,207,207,207,207,207,207,207,207,207,207,207,207,207,207,207,207,207,207,207,
+207,207,207,207,207,207,207,207,207,207,207,207,207,207,207,207,207,207,207,207,
+207,207,207,207,207,207,207,207,207,207,207,207,207,207,207,207,207,207,207,207,
+207,207,207,207,207,207,207,207,207,207,207,207,207,207,207,207,207,207,207,207,
+207,207,207,207,207,207,207,207,207,207,207,207,207,207,207,207,207,207,207,207,
+207,207,207,207,207,207,207,207,207,207,207,207,207,207,207,207,207,207,207,207,
+207,207,207,207,207,207,207,207,207,207,207,207,207,207,207,207,207,207,207,207,
+207,207,207,207,207,207,207,207,207,207,207,207,207,207,207,207,207,207,207,207,
+207,207,207,207,207,207,207,207,207,207,207,207,207,207,207,207,207,207,207,207,
+207,207,207,207,207,207,207,207,207,207,207,207,207,207,207,207,207,207,207,207,
+207,207,207,207,207,207,207,207,207,207,207,207,207,207,207,207,207,207,207,207,
+207,207,207,207,207,207,207,207,207,207,207,207,207,207,207,207,207,207,207,207,
+207,207,207,207,207,207,207,207,207,207,207,207,207,207,207,207,207,207,207,207,
+207,207,207,207,207,207,207,207,207,207,207,207,207,207,207,207,207,207,207,207,
+207,207,207,207,207,207,207,207,207,207,207,207,207,207,207,207,207,207,207,207,
+207,207,207,207,207,207,207,207,207,207,207,207,207,207,207,207,207,207,208,208,
+208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,
+208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,
+208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,
+208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,
+208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,
+208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,
+208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,
+208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,
+208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,
+208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,
+208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,
+208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,
+208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,
+208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,
+208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,
+208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,
+208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,
+208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,
+208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,
+208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,
+208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,
+208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,
+208,208,208,208,208,209,209,209,209,209,209,209,209,209,209,209,209,209,209,209,
+209,209,209,209,209,209,209,209,209,209,209,209,209,209,209,209,209,209,209,209,
+209,209,209,209,209,209,209,209,209,209,209,209,209,209,209,209,209,209,209,209,
+209,209,209,209,209,209,209,209,209,209,209,209,209,209,209,209,209,209,209,209,
+209,209,209,209,209,209,209,209,209,209,209,209,209,209,209,209,209,209,209,209,
+209,209,209,209,209,209,209,209,209,209,209,209,209,209,209,209,209,209,209,209,
+209,209,209,209,209,209,209,209,209,209,209,209,209,209,209,209,209,209,209,209,
+209,209,209,209,209,209,209,209,209,209,209,209,209,209,209,209,209,209,209,209,
+209,209,209,209,209,209,209,209,209,209,209,209,209,209,209,209,209,209,209,209,
+209,209,209,209,209,209,209,209,209,209,209,209,209,209,209,209,209,209,209,209,
+209,209,209,209,209,209,209,209,209,209,209,209,209,209,209,209,209,209,209,209,
+209,209,209,209,209,209,209,209,209,209,209,209,209,209,209,209,209,209,209,209,
+209,209,209,209,209,209,209,209,209,209,209,209,209,209,209,209,209,209,209,209,
+209,209,209,209,209,209,209,209,209,209,209,209,209,209,209,209,209,209,209,209,
+209,209,209,209,209,209,209,209,209,209,209,209,209,209,209,209,209,209,209,209,
+209,209,209,209,209,209,209,209,209,209,209,209,209,209,209,209,209,209,209,209,
+209,209,209,209,209,209,209,209,209,209,209,209,209,209,209,209,209,209,209,209,
+209,209,209,209,209,209,209,209,209,209,209,209,209,209,209,209,209,209,209,209,
+209,209,209,209,209,209,209,209,209,209,209,209,209,209,209,209,209,209,209,209,
+209,209,209,209,209,209,209,209,209,209,209,209,209,209,209,209,209,209,209,209,
+209,209,209,209,209,209,209,209,209,209,209,209,209,209,209,209,209,209,209,209,
+209,209,209,209,209,209,209,209,209,209,209,209,209,209,209,209,209,209,209,209,
+209,209,209,209,209,209,209,209,209,209,209,209,209,209,209,210,210,210,210,210,
+210,210,210,210,210,210,210,210,210,210,210,210,210,210,210,210,210,210,210,210,
+210,210,210,210,210,210,210,210,210,210,210,210,210,210,210,210,210,210,210,210,
+210,210,210,210,210,210,210,210,210,210,210,210,210,210,210,210,210,210,210,210,
+210,210,210,210,210,210,210,210,210,210,210,210,210,210,210,210,210,210,210,210,
+210,210,210,210,210,210,210,210,210,210,210,210,210,210,210,210,210,210,210,210,
+210,210,210,210,210,210,210,210,210,210,210,210,210,210,210,210,210,210,210,210,
+210,210,210,210,210,210,210,210,210,210,210,210,210,210,210,210,210,210,210,210,
+210,210,210,210,210,210,210,210,210,210,210,210,210,210,210,210,210,210,210,210,
+210,210,210,210,210,210,210,210,210,210,210,210,210,210,210,210,210,210,210,210,
+210,210,210,210,210,210,210,210,210,210,210,210,210,210,210,210,210,210,210,210,
+210,210,210,210,210,210,210,210,210,210,210,210,210,210,210,210,210,210,210,210,
+210,210,210,210,210,210,210,210,210,210,210,210,210,210,210,210,210,210,210,210,
+210,210,210,210,210,210,210,210,210,210,210,210,210,210,210,210,210,210,210,210,
+210,210,210,210,210,210,210,210,210,210,210,210,210,210,210,210,210,210,210,210,
+210,210,210,210,210,210,210,210,210,210,210,210,210,210,210,210,210,210,210,210,
+210,210,210,210,210,210,210,210,210,210,210,210,210,210,210,210,210,210,210,210,
+210,210,210,210,210,210,210,210,210,210,210,210,210,210,210,210,210,210,210,210,
+210,210,210,210,210,210,210,210,210,210,210,210,210,210,210,210,210,210,210,210,
+210,210,210,210,210,210,210,210,210,210,210,210,210,210,210,210,210,210,210,210,
+210,210,210,210,210,210,210,210,210,210,210,210,210,210,210,210,210,210,210,210,
+210,210,210,210,210,210,210,210,210,210,210,210,210,210,210,210,210,210,210,210,
+210,210,210,210,210,210,210,210,210,210,210,210,210,210,210,210,210,210,210,210,
+210,210,210,210,210,210,210,211,211,211,211,211,211,211,211,211,211,211,211,211,
+211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,
+211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,
+211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,
+211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,
+211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,
+211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,
+211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,
+211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,
+211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,
+211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,
+211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,
+211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,
+211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,
+211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,
+211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,
+211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,
+211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,
+211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,
+211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,
+211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,
+211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,
+211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,
+211,211,212,212,212,212,212,212,212,212,212,212,212,212,212,212,212,212,212,212,
+212,212,212,212,212,212,212,212,212,212,212,212,212,212,212,212,212,212,212,212,
+212,212,212,212,212,212,212,212,212,212,212,212,212,212,212,212,212,212,212,212,
+212,212,212,212,212,212,212,212,212,212,212,212,212,212,212,212,212,212,212,212,
+212,212,212,212,212,212,212,212,212,212,212,212,212,212,212,212,212,212,212,212,
+212,212,212,212,212,212,212,212,212,212,212,212,212,212,212,212,212,212,212,212,
+212,212,212,212,212,212,212,212,212,212,212,212,212,212,212,212,212,212,212,212,
+212,212,212,212,212,212,212,212,212,212,212,212,212,212,212,212,212,212,212,212,
+212,212,212,212,212,212,212,212,212,212,212,212,212,212,212,212,212,212,212,212,
+212,212,212,212,212,212,212,212,212,212,212,212,212,212,212,212,212,212,212,212,
+212,212,212,212,212,212,212,212,212,212,212,212,212,212,212,212,212,212,212,212,
+212,212,212,212,212,212,212,212,212,212,212,212,212,212,212,212,212,212,212,212,
+212,212,212,212,212,212,212,212,212,212,212,212,212,212,212,212,212,212,212,212,
+212,212,212,212,212,212,212,212,212,212,212,212,212,212,212,212,212,212,212,212,
+212,212,212,212,212,212,212,212,212,212,212,212,212,212,212,212,212,212,212,212,
+212,212,212,212,212,212,212,212,212,212,212,212,212,212,212,212,212,212,212,212,
+212,212,212,212,212,212,212,212,212,212,212,212,212,212,212,212,212,212,212,212,
+212,212,212,212,212,212,212,212,212,212,212,212,212,212,212,212,212,212,212,212,
+212,212,212,212,212,212,212,212,212,212,212,212,212,212,212,212,212,212,212,212,
+212,212,212,212,212,212,212,212,212,212,212,212,212,212,212,212,212,212,212,212,
+212,212,212,212,212,212,212,212,212,212,212,212,212,212,212,212,212,212,212,212,
+212,212,212,212,212,212,212,212,212,212,212,212,212,212,212,212,212,212,212,212,
+212,212,212,212,212,212,212,212,212,212,212,212,212,212,212,212,212,212,212,212,
+212,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,
+213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,
+213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,
+213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,
+213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,
+213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,
+213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,
+213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,
+213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,
+213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,
+213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,
+213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,
+213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,
+213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,
+213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,
+213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,
+213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,
+213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,
+213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,
+213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,
+213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,
+213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,
+213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,
+213,213,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,
+214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,
+214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,
+214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,
+214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,
+214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,
+214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,
+214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,
+214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,
+214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,
+214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,
+214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,
+214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,
+214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,
+214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,
+214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,
+214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,
+214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,
+214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,
+214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,
+214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,
+214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,
+214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,
+214,214,214,214,214,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,
+215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,
+215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,
+215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,
+215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,
+215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,
+215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,
+215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,
+215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,
+215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,
+215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,
+215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,
+215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,
+215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,
+215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,
+215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,
+215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,
+215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,
+215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,
+215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,
+215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,
+215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,
+215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,
+215,215,215,215,215,215,215,215,215,215,215,215,216,216,216,216,216,216,216,216,
+216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,
+216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,
+216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,
+216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,
+216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,
+216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,
+216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,
+216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,
+216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,
+216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,
+216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,
+216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,
+216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,
+216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,
+216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,
+216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,
+216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,
+216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,
+216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,
+216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,
+216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,
+216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,
+216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,
+216,216,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,
+217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,
+217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,
+217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,
+217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,
+217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,
+217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,
+217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,
+217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,
+217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,
+217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,
+217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,
+217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,
+217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,
+217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,
+217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,
+217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,
+217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,
+217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,
+217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,
+217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,
+217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,
+217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,
+217,217,217,217,217,217,217,217,217,217,217,217,217,217,218,218,218,218,218,218,
+218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,
+218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,
+218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,
+218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,
+218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,
+218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,
+218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,
+218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,
+218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,
+218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,
+218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,
+218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,
+218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,
+218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,
+218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,
+218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,
+218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,
+218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,
+218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,
+218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,
+218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,
+218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,
+218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,
+218,218,218,218,218,218,218,218,218,219,219,219,219,219,219,219,219,219,219,219,
+219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,
+219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,
+219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,
+219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,
+219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,
+219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,
+219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,
+219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,
+219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,
+219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,
+219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,
+219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,
+219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,
+219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,
+219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,
+219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,
+219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,
+219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,
+219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,
+219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,
+219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,
+219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,
+219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,
+219,219,219,219,219,219,219,220,220,220,220,220,220,220,220,220,220,220,220,220,
+220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,
+220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,
+220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,
+220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,
+220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,
+220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,
+220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,
+220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,
+220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,
+220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,
+220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,
+220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,
+220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,
+220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,
+220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,
+220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,
+220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,
+220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,
+220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,
+220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,
+220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,
+220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,
+220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,
+220,220,220,220,220,220,220,220,221,221,221,221,221,221,221,221,221,221,221,221,
+221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,
+221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,
+221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,
+221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,
+221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,
+221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,
+221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,
+221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,
+221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,
+221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,
+221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,
+221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,
+221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,
+221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,
+221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,
+221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,
+221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,
+221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,
+221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,
+221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,
+221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,
+221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,
+221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,
+221,221,221,221,221,221,221,221,221,221,221,221,222,222,222,222,222,222,222,222,
+222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,
+222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,
+222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,
+222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,
+222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,
+222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,
+222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,
+222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,
+222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,
+222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,
+222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,
+222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,
+222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,
+222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,
+222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,
+222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,
+222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,
+222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,
+222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,
+222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,
+222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,
+222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,
+222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,
+222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,223,
+223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,
+223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,
+223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,
+223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,
+223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,
+223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,
+223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,
+223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,
+223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,
+223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,
+223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,
+223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,
+223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,
+223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,
+223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,
+223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,
+223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,
+223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,
+223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,
+223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,
+223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,
+223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,
+223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,
+223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,
+223,223,223,223,223,223,223,223,223,224,224,224,224,224,224,224,224,224,224,224,
+224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,
+224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,
+224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,
+224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,
+224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,
+224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,
+224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,
+224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,
+224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,
+224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,
+224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,
+224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,
+224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,
+224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,
+224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,
+224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,
+224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,
+224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,
+224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,
+224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,
+224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,
+224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,
+224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,
+224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,
+224,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,
+225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,
+225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,
+225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,
+225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,
+225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,
+225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,
+225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,
+225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,
+225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,
+225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,
+225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,
+225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,
+225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,
+225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,
+225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,
+225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,
+225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,
+225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,
+225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,
+225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,
+225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,
+225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,
+225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,
+225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,226,226,226,
+226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,
+226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,
+226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,
+226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,
+226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,
+226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,
+226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,
+226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,
+226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,
+226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,
+226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,
+226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,
+226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,
+226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,
+226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,
+226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,
+226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,
+226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,
+226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,
+226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,
+226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,
+226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,
+226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,
+226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,
+226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,227,227,227,227,227,
+227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,
+227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,
+227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,
+227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,
+227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,
+227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,
+227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,
+227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,
+227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,
+227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,
+227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,
+227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,
+227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,
+227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,
+227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,
+227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,
+227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,
+227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,
+227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,
+227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,
+227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,
+227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,
+227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,
+227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,
+227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,228,228,228,228,
+228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,
+228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,
+228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,
+228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,
+228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,
+228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,
+228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,
+228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,
+228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,
+228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,
+228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,
+228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,
+228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,
+228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,
+228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,
+228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,
+228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,
+228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,
+228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,
+228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,
+228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,
+228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,
+228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,
+228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,
+228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,
+229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,
+229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,
+229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,
+229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,
+229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,
+229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,
+229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,
+229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,
+229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,
+229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,
+229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,
+229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,
+229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,
+229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,
+229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,
+229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,
+229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,
+229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,
+229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,
+229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,
+229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,
+229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,
+229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,
+229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,
+229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,
+229,229,229,229,229,229,229,229,230,230,230,230,230,230,230,230,230,230,230,230,
+230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,
+230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,
+230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,
+230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,
+230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,
+230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,
+230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,
+230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,
+230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,
+230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,
+230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,
+230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,
+230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,
+230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,
+230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,
+230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,
+230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,
+230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,
+230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,
+230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,
+230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,
+230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,
+230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,
+230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,
+230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,231,231,
+231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,
+231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,
+231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,
+231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,
+231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,
+231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,
+231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,
+231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,
+231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,
+231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,
+231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,
+231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,
+231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,
+231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,
+231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,
+231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,
+231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,
+231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,
+231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,
+231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,
+231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,
+231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,
+231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,
+231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,
+231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,
+231,231,231,231,231,231,231,231,231,231,231,232,232,232,232,232,232,232,232,232,
+232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,
+232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,
+232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,
+232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,
+232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,
+232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,
+232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,
+232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,
+232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,
+232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,
+232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,
+232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,
+232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,
+232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,
+232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,
+232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,
+232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,
+232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,
+232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,
+232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,
+232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,
+232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,
+232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,
+232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,
+232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,
+232,232,232,232,232,232,233,233,233,233,233,233,233,233,233,233,233,233,233,233,
+233,233,233,233,233,233,233,233,233,233,233,233,233,233,233,233,233,233,233,233,
+233,233,233,233,233,233,233,233,233,233,233,233,233,233,233,233,233,233,233,233,
+233,233,233,233,233,233,233,233,233,233,233,233,233,233,233,233,233,233,233,233,
+233,233,233,233,233,233,233,233,233,233,233,233,233,233,233,233,233,233,233,233,
+233,233,233,233,233,233,233,233,233,233,233,233,233,233,233,233,233,233,233,233,
+233,233,233,233,233,233,233,233,233,233,233,233,233,233,233,233,233,233,233,233,
+233,233,233,233,233,233,233,233,233,233,233,233,233,233,233,233,233,233,233,233,
+233,233,233,233,233,233,233,233,233,233,233,233,233,233,233,233,233,233,233,233,
+233,233,233,233,233,233,233,233,233,233,233,233,233,233,233,233,233,233,233,233,
+233,233,233,233,233,233,233,233,233,233,233,233,233,233,233,233,233,233,233,233,
+233,233,233,233,233,233,233,233,233,233,233,233,233,233,233,233,233,233,233,233,
+233,233,233,233,233,233,233,233,233,233,233,233,233,233,233,233,233,233,233,233,
+233,233,233,233,233,233,233,233,233,233,233,233,233,233,233,233,233,233,233,233,
+233,233,233,233,233,233,233,233,233,233,233,233,233,233,233,233,233,233,233,233,
+233,233,233,233,233,233,233,233,233,233,233,233,233,233,233,233,233,233,233,233,
+233,233,233,233,233,233,233,233,233,233,233,233,233,233,233,233,233,233,233,233,
+233,233,233,233,233,233,233,233,233,233,233,233,233,233,233,233,233,233,233,233,
+233,233,233,233,233,233,233,233,233,233,233,233,233,233,233,233,233,233,233,233,
+233,233,233,233,233,233,233,233,233,233,233,233,233,233,233,233,233,233,233,233,
+233,233,233,233,233,233,233,233,233,233,233,233,233,233,233,233,233,233,233,233,
+233,233,233,233,233,233,233,233,233,233,233,233,233,233,233,233,233,233,233,233,
+233,233,233,233,233,233,233,233,233,233,233,233,233,233,233,233,233,233,233,233,
+233,233,233,233,233,233,233,233,233,233,233,233,233,233,233,233,233,233,233,233,
+233,233,233,233,233,233,233,233,233,233,233,233,233,233,233,233,233,233,233,233,
+233,233,233,233,233,233,233,233,233,233,233,233,233,233,233,233,233,233,233,233,
+233,233,233,233,233,234,234,234,234,234,234,234,234,234,234,234,234,234,234,234,
+234,234,234,234,234,234,234,234,234,234,234,234,234,234,234,234,234,234,234,234,
+234,234,234,234,234,234,234,234,234,234,234,234,234,234,234,234,234,234,234,234,
+234,234,234,234,234,234,234,234,234,234,234,234,234,234,234,234,234,234,234,234,
+234,234,234,234,234,234,234,234,234,234,234,234,234,234,234,234,234,234,234,234,
+234,234,234,234,234,234,234,234,234,234,234,234,234,234,234,234,234,234,234,234,
+234,234,234,234,234,234,234,234,234,234,234,234,234,234,234,234,234,234,234,234,
+234,234,234,234,234,234,234,234,234,234,234,234,234,234,234,234,234,234,234,234,
+234,234,234,234,234,234,234,234,234,234,234,234,234,234,234,234,234,234,234,234,
+234,234,234,234,234,234,234,234,234,234,234,234,234,234,234,234,234,234,234,234,
+234,234,234,234,234,234,234,234,234,234,234,234,234,234,234,234,234,234,234,234,
+234,234,234,234,234,234,234,234,234,234,234,234,234,234,234,234,234,234,234,234,
+234,234,234,234,234,234,234,234,234,234,234,234,234,234,234,234,234,234,234,234,
+234,234,234,234,234,234,234,234,234,234,234,234,234,234,234,234,234,234,234,234,
+234,234,234,234,234,234,234,234,234,234,234,234,234,234,234,234,234,234,234,234,
+234,234,234,234,234,234,234,234,234,234,234,234,234,234,234,234,234,234,234,234,
+234,234,234,234,234,234,234,234,234,234,234,234,234,234,234,234,234,234,234,234,
+234,234,234,234,234,234,234,234,234,234,234,234,234,234,234,234,234,234,234,234,
+234,234,234,234,234,234,234,234,234,234,234,234,234,234,234,234,234,234,234,234,
+234,234,234,234,234,234,234,234,234,234,234,234,234,234,234,234,234,234,234,234,
+234,234,234,234,234,234,234,234,234,234,234,234,234,234,234,234,234,234,234,234,
+234,234,234,234,234,234,234,234,234,234,234,234,234,234,234,234,234,234,234,234,
+234,234,234,234,234,234,234,234,234,234,234,234,234,234,234,234,234,234,234,234,
+234,234,234,234,234,234,234,234,234,234,234,234,234,234,234,234,234,234,234,234,
+234,234,234,234,234,234,234,234,234,234,234,234,234,234,234,234,234,234,234,234,
+234,234,234,234,234,234,234,234,234,234,234,234,234,234,234,234,234,234,234,234,
+234,234,234,234,234,234,234,235,235,235,235,235,235,235,235,235,235,235,235,235,
+235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,
+235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,
+235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,
+235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,
+235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,
+235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,
+235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,
+235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,
+235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,
+235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,
+235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,
+235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,
+235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,
+235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,
+235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,
+235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,
+235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,
+235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,
+235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,
+235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,
+235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,
+235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,
+235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,
+235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,
+235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,
+235,235,235,235,235,235,235,235,235,235,235,235,236,236,236,236,236,236,236,236,
+236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,
+236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,
+236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,
+236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,
+236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,
+236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,
+236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,
+236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,
+236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,
+236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,
+236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,
+236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,
+236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,
+236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,
+236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,
+236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,
+236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,
+236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,
+236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,
+236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,
+236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,
+236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,
+236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,
+236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,
+236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,
+236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,237,
+237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,
+237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,
+237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,
+237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,
+237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,
+237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,
+237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,
+237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,
+237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,
+237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,
+237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,
+237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,
+237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,
+237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,
+237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,
+237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,
+237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,
+237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,
+237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,
+237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,
+237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,
+237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,
+237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,
+237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,
+237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,
+237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,
+237,237,237,237,237,237,237,237,237,237,238,238,238,238,238,238,238,238,238,238,
+238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,
+238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,
+238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,
+238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,
+238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,
+238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,
+238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,
+238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,
+238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,
+238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,
+238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,
+238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,
+238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,
+238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,
+238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,
+238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,
+238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,
+238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,
+238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,
+238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,
+238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,
+238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,
+238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,
+238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,
+238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,
+238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,
+238,238,238,238,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,
+239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,
+239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,
+239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,
+239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,
+239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,
+239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,
+239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,
+239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,
+239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,
+239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,
+239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,
+239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,
+239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,
+239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,
+239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,
+239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,
+239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,
+239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,
+239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,
+239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,
+239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,
+239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,
+239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,
+239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,
+239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,
+239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,
+240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,
+240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,
+240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,
+240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,
+240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,
+240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,
+240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,
+240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,
+240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,
+240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,
+240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,
+240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,
+240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,
+240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,
+240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,
+240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,
+240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,
+240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,
+240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,
+240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,
+240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,
+240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,
+240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,
+240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,
+240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,
+240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,
+240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,
+241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,
+241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,
+241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,
+241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,
+241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,
+241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,
+241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,
+241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,
+241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,
+241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,
+241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,
+241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,
+241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,
+241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,
+241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,
+241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,
+241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,
+241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,
+241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,
+241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,
+241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,
+241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,
+241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,
+241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,
+241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,
+241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,
+241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,
+241,241,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,
+242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,
+242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,
+242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,
+242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,
+242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,
+242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,
+242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,
+242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,
+242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,
+242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,
+242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,
+242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,
+242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,
+242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,
+242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,
+242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,
+242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,
+242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,
+242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,
+242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,
+242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,
+242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,
+242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,
+242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,
+242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,
+242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,
+242,242,242,242,242,242,242,242,243,243,243,243,243,243,243,243,243,243,243,243,
+243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,
+243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,
+243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,
+243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,
+243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,
+243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,
+243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,
+243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,
+243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,
+243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,
+243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,
+243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,
+243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,
+243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,
+243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,
+243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,
+243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,
+243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,
+243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,
+243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,
+243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,
+243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,
+243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,
+243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,
+243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,
+243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,
+243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,244,244,244,244,
+244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,
+244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,
+244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,
+244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,
+244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,
+244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,
+244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,
+244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,
+244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,
+244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,
+244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,
+244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,
+244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,
+244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,
+244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,
+244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,
+244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,
+244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,
+244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,
+244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,
+244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,
+244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,
+244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,
+244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,
+244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,
+244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,
+244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,
+244,244,244,244,244,244,244,244,245,245,245,245,245,245,245,245,245,245,245,245,
+245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,
+245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,
+245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,
+245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,
+245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,
+245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,
+245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,
+245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,
+245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,
+245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,
+245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,
+245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,
+245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,
+245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,
+245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,
+245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,
+245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,
+245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,
+245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,
+245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,
+245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,
+245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,
+245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,
+245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,
+245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,
+245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,
+245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,
+245,245,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,
+246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,
+246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,
+246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,
+246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,
+246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,
+246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,
+246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,
+246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,
+246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,
+246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,
+246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,
+246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,
+246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,
+246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,
+246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,
+246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,
+246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,
+246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,
+246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,
+246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,
+246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,
+246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,
+246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,
+246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,
+246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,
+246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,
+246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,247,
+247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,
+247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,
+247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,
+247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,
+247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,
+247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,
+247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,
+247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,
+247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,
+247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,
+247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,
+247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,
+247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,
+247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,
+247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,
+247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,
+247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,
+247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,
+247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,
+247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,
+247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,
+247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,
+247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,
+247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,
+247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,
+247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,
+247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,
+247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,
+248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,
+248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,
+248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,
+248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,
+248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,
+248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,
+248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,
+248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,
+248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,
+248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,
+248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,
+248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,
+248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,
+248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,
+248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,
+248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,
+248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,
+248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,
+248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,
+248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,
+248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,
+248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,
+248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,
+248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,
+248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,
+248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,
+248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,
+248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,
+248,248,248,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,
+249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,
+249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,
+249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,
+249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,
+249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,
+249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,
+249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,
+249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,
+249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,
+249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,
+249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,
+249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,
+249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,
+249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,
+249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,
+249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,
+249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,
+249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,
+249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,
+249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,
+249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,
+249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,
+249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,
+249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,
+249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,
+249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,
+249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,
+249,249,249,249,249,249,249,249,249,249,250,250,250,250,250,250,250,250,250,250,
+250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,
+250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,
+250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,
+250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,
+250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,
+250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,
+250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,
+250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,
+250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,
+250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,
+250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,
+250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,
+250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,
+250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,
+250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,
+250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,
+250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,
+250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,
+250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,
+250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,
+250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,
+250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,
+250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,
+250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,
+250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,
+250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,
+250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,
+250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,251,
+251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,
+251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,
+251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,
+251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,
+251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,
+251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,
+251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,
+251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,
+251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,
+251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,
+251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,
+251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,
+251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,
+251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,
+251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,
+251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,
+251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,
+251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,
+251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,
+251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,
+251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,
+251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,
+251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,
+251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,
+251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,
+251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,
+251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,
+251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,
+251,251,251,251,251,251,251,251,251,251,251,251,252,252,252,252,252,252,252,252,
+252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,
+252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,
+252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,
+252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,
+252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,
+252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,
+252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,
+252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,
+252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,
+252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,
+252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,
+252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,
+252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,
+252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,
+252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,
+252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,
+252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,
+252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,
+252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,
+252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,
+252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,
+252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,
+252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,
+252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,
+252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,
+252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,
+252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,
+252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,
+252,252,252,252,252,252,252,253,253,253,253,253,253,253,253,253,253,253,253,253,
+253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,
+253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,
+253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,
+253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,
+253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,
+253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,
+253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,
+253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,
+253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,
+253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,
+253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,
+253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,
+253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,
+253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,
+253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,
+253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,
+253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,
+253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,
+253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,
+253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,
+253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,
+253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,
+253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,
+253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,
+253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,
+253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,
+253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,
+253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,
+253,253,253,253,253,253,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
+254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
+254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
+254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
+254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
+254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
+254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
+254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
+254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
+254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
+254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
+254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
+254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
+254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
+254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
+254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
+254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
+254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
+254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
+254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
+254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
+254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
+254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
+254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
+254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
+254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
+254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
+254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
+254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
+254,254,254,254,254,254,254,254,255,255,255,255,255,255,255,255,255,255,255,255,
+255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255
+};
+
+static const float u8_gamma_minimums[257] =
+{
+0.0,
+0x1.3e6p-13, /* 0.000152, 1 */
+0x1.dd7p-12, /* 0.000455, 2 */
+0x1.8dd8p-11, /* 0.000759, 3 */
+0x1.168p-10, /* 0.001062, 4 */
+0x1.661p-10, /* 0.001366, 5 */
+0x1.b5ap-10, /* 0.001669, 6 */
+0x1.029ap-9, /* 0.001973, 7 */
+0x1.2a62p-9, /* 0.002276, 8 */
+0x1.522ap-9, /* 0.002580, 9 */
+0x1.79f4p-9, /* 0.002884, 10 */
+0x1.a1e6p-9, /* 0.003188, 11 */
+0x1.cbf8p-9, /* 0.003509, 12 */
+0x1.f86ap-9, /* 0.003848, 13 */
+0x1.13a1p-8, /* 0.004206, 14 */
+0x1.2c47p-8, /* 0.004582, 15 */
+0x1.462ap-8, /* 0.004977, 16 */
+0x1.614fp-8, /* 0.005391, 17 */
+0x1.7dbap-8, /* 0.005825, 18 */
+0x1.9b6fp-8, /* 0.006278, 19 */
+0x1.ba73p-8, /* 0.006751, 20 */
+0x1.dacap-8, /* 0.007245, 21 */
+0x1.fc77p-8, /* 0.007759, 22 */
+0x1.0fbf8p-7, /* 0.008293, 23 */
+0x1.21f28p-7, /* 0.008848, 24 */
+0x1.34d68p-7, /* 0.009425, 25 */
+0x1.486ep-7, /* 0.010023, 26 */
+0x1.5cbap-7, /* 0.010642, 27 */
+0x1.71bc8p-7, /* 0.011283, 28 */
+0x1.87778p-7, /* 0.011947, 29 */
+0x1.9dedp-7, /* 0.012632, 30 */
+0x1.b51ep-7, /* 0.013340, 31 */
+0x1.cd0dp-7, /* 0.014070, 32 */
+0x1.e5bbp-7, /* 0.014823, 33 */
+0x1.ff2a8p-7, /* 0.015600, 34 */
+0x1.0cae4p-6, /* 0.016399, 35 */
+0x1.1a294p-6, /* 0.017222, 36 */
+0x1.28074p-6, /* 0.018068, 37 */
+0x1.3649p-6, /* 0.018938, 38 */
+0x1.44ef8p-6, /* 0.019832, 39 */
+0x1.53fbp-6, /* 0.020751, 40 */
+0x1.636ccp-6, /* 0.021693, 41 */
+0x1.73454p-6, /* 0.022661, 42 */
+0x1.83858p-6, /* 0.023652, 43 */
+0x1.942dcp-6, /* 0.024669, 44 */
+0x1.a53f8p-6, /* 0.025711, 45 */
+0x1.b6bacp-6, /* 0.026778, 46 */
+0x1.c8a08p-6, /* 0.027870, 47 */
+0x1.daf18p-6, /* 0.028988, 48 */
+0x1.edae8p-6, /* 0.030132, 49 */
+0x1.006cp-5, /* 0.031301, 50 */
+0x1.0a378p-5, /* 0.032497, 51 */
+0x1.1439ep-5, /* 0.033719, 52 */
+0x1.1e73ap-5, /* 0.034967, 53 */
+0x1.28e52p-5, /* 0.036242, 54 */
+0x1.338eap-5, /* 0.037544, 55 */
+0x1.3e706p-5, /* 0.038872, 56 */
+0x1.498aep-5, /* 0.040227, 57 */
+0x1.54de6p-5, /* 0.041610, 58 */
+0x1.606b2p-5, /* 0.043020, 59 */
+0x1.6c318p-5, /* 0.044457, 60 */
+0x1.7831ep-5, /* 0.045922, 61 */
+0x1.846c8p-5, /* 0.047415, 62 */
+0x1.90e1ap-5, /* 0.048936, 63 */
+0x1.9d91ap-5, /* 0.050484, 64 */
+0x1.aa7dp-5, /* 0.052062, 65 */
+0x1.b7a3cp-5, /* 0.053667, 66 */
+0x1.c5064p-5, /* 0.055301, 67 */
+0x1.d2a4ep-5, /* 0.056963, 68 */
+0x1.e08p-5, /* 0.058655, 69 */
+0x1.ee97ap-5, /* 0.060375, 70 */
+0x1.fcec6p-5, /* 0.062124, 71 */
+0x1.05bf3p-4, /* 0.063903, 72 */
+0x1.0d26fp-4, /* 0.065711, 73 */
+0x1.14adap-4, /* 0.067548, 74 */
+0x1.1c536p-4, /* 0.069415, 75 */
+0x1.24185p-4, /* 0.071312, 76 */
+0x1.2bfcap-4, /* 0.073239, 77 */
+0x1.34007p-4, /* 0.075196, 78 */
+0x1.3c23ep-4, /* 0.077183, 79 */
+0x1.44671p-4, /* 0.079200, 80 */
+0x1.4cca3p-4, /* 0.081248, 81 */
+0x1.554d5p-4, /* 0.083326, 82 */
+0x1.5df0ap-4, /* 0.085435, 83 */
+0x1.66b44p-4, /* 0.087574, 84 */
+0x1.6f984p-4, /* 0.089745, 85 */
+0x1.789cep-4, /* 0.091946, 86 */
+0x1.81c23p-4, /* 0.094179, 87 */
+0x1.8b085p-4, /* 0.096443, 88 */
+0x1.946f7p-4, /* 0.098739, 89 */
+0x1.9df7bp-4, /* 0.101066, 90 */
+0x1.a7a12p-4, /* 0.103425, 91 */
+0x1.b16bfp-4, /* 0.105816, 92 */
+0x1.bb584p-4, /* 0.108238, 93 */
+0x1.c5662p-4, /* 0.110693, 94 */
+0x1.cf95cp-4, /* 0.113180, 95 */
+0x1.d9e74p-4, /* 0.115699, 96 */
+0x1.e45abp-4, /* 0.118251, 97 */
+0x1.eef03p-4, /* 0.120835, 98 */
+0x1.f9a8p-4, /* 0.123451, 99 */
+0x1.02411p-3, /* 0.126101, 100 */
+0x1.07bf68p-3, /* 0.128783, 101 */
+0x1.0d4f08p-3, /* 0.131498, 102 */
+0x1.12eff8p-3, /* 0.134247, 103 */
+0x1.18a25p-3, /* 0.137028, 104 */
+0x1.1e6628p-3, /* 0.139843, 105 */
+0x1.243b88p-3, /* 0.142692, 106 */
+0x1.2a228p-3, /* 0.145574, 107 */
+0x1.301b28p-3, /* 0.148489, 108 */
+0x1.36258p-3, /* 0.151439, 109 */
+0x1.3c41ap-3, /* 0.154422, 110 */
+0x1.426f98p-3, /* 0.157439, 111 */
+0x1.48af7p-3, /* 0.160491, 112 */
+0x1.4f014p-3, /* 0.163577, 113 */
+0x1.556508p-3, /* 0.166697, 114 */
+0x1.5bdaep-3, /* 0.169851, 115 */
+0x1.6262dp-3, /* 0.173040, 116 */
+0x1.68fcfp-3, /* 0.176264, 117 */
+0x1.6fa948p-3, /* 0.179522, 118 */
+0x1.7667ep-3, /* 0.182815, 119 */
+0x1.7d38d8p-3, /* 0.186144, 120 */
+0x1.841c28p-3, /* 0.189507, 121 */
+0x1.8b11f8p-3, /* 0.192905, 122 */
+0x1.921a4p-3, /* 0.196339, 123 */
+0x1.99352p-3, /* 0.199808, 124 */
+0x1.a06298p-3, /* 0.203313, 125 */
+0x1.a7a2b8p-3, /* 0.206853, 126 */
+0x1.aef598p-3, /* 0.210429, 127 */
+0x1.b65b38p-3, /* 0.214041, 128 */
+0x1.bdd3bp-3, /* 0.217689, 129 */
+0x1.c55f08p-3, /* 0.221373, 130 */
+0x1.ccfd5p-3, /* 0.225093, 131 */
+0x1.d4ae88p-3, /* 0.228849, 132 */
+0x1.dc72dp-3, /* 0.232641, 133 */
+0x1.e44a28p-3, /* 0.236470, 134 */
+0x1.ec34ap-3, /* 0.240335, 135 */
+0x1.f43258p-3, /* 0.244237, 136 */
+0x1.fc435p-3, /* 0.248175, 137 */
+0x1.0233c4p-2, /* 0.252151, 138 */
+0x1.064f98p-2, /* 0.256163, 139 */
+0x1.0a7518p-2, /* 0.260212, 140 */
+0x1.0ea45p-2, /* 0.264299, 141 */
+0x1.12dd44p-2, /* 0.268422, 142 */
+0x1.172p-2, /* 0.272583, 143 */
+0x1.1b6c84p-2, /* 0.276781, 144 */
+0x1.1fc2ep-2, /* 0.281017, 145 */
+0x1.242314p-2, /* 0.285290, 146 */
+0x1.288d28p-2, /* 0.289601, 147 */
+0x1.2d0124p-2, /* 0.293950, 148 */
+0x1.317f0cp-2, /* 0.298336, 149 */
+0x1.3606e8p-2, /* 0.302761, 150 */
+0x1.3a98cp-2, /* 0.307223, 151 */
+0x1.3f3498p-2, /* 0.311724, 152 */
+0x1.43da74p-2, /* 0.316263, 153 */
+0x1.488a5cp-2, /* 0.320840, 154 */
+0x1.4d4454p-2, /* 0.325456, 155 */
+0x1.520864p-2, /* 0.330110, 156 */
+0x1.56d694p-2, /* 0.334803, 157 */
+0x1.5baee8p-2, /* 0.339534, 158 */
+0x1.60916p-2, /* 0.344305, 159 */
+0x1.657e0cp-2, /* 0.349114, 160 */
+0x1.6a74fp-2, /* 0.353962, 161 */
+0x1.6f760cp-2, /* 0.358849, 162 */
+0x1.748168p-2, /* 0.363775, 163 */
+0x1.79971p-2, /* 0.368740, 164 */
+0x1.7eb704p-2, /* 0.373745, 165 */
+0x1.83e15p-2, /* 0.378789, 166 */
+0x1.8915fp-2, /* 0.383873, 167 */
+0x1.8e54f4p-2, /* 0.388996, 168 */
+0x1.939e6p-2, /* 0.394159, 169 */
+0x1.98f238p-2, /* 0.399361, 170 */
+0x1.9e508p-2, /* 0.404604, 171 */
+0x1.a3b94p-2, /* 0.409886, 172 */
+0x1.a92c8p-2, /* 0.415209, 173 */
+0x1.aeaa44p-2, /* 0.420571, 174 */
+0x1.b4329p-2, /* 0.425974, 175 */
+0x1.b9c56cp-2, /* 0.431417, 176 */
+0x1.bf62d8p-2, /* 0.436900, 177 */
+0x1.c50aep-2, /* 0.442424, 178 */
+0x1.cabd88p-2, /* 0.447989, 179 */
+0x1.d07ad4p-2, /* 0.453594, 180 */
+0x1.d642c8p-2, /* 0.459239, 181 */
+0x1.dc156cp-2, /* 0.464925, 182 */
+0x1.e1f2c4p-2, /* 0.470653, 183 */
+0x1.e7dad8p-2, /* 0.476421, 184 */
+0x1.edcdacp-2, /* 0.482230, 185 */
+0x1.f3cb4cp-2, /* 0.488080, 186 */
+0x1.f9d3bcp-2, /* 0.493972, 187 */
+0x1.ffe70cp-2, /* 0.499905, 188 */
+0x1.03028cp-1, /* 0.505879, 189 */
+0x1.06170ap-1, /* 0.511895, 190 */
+0x1.0930f8p-1, /* 0.517952, 191 */
+0x1.0c5058p-1, /* 0.524050, 192 */
+0x1.0f752ep-1, /* 0.530191, 193 */
+0x1.129f7cp-1, /* 0.536373, 194 */
+0x1.15cf44p-1, /* 0.542597, 195 */
+0x1.19048cp-1, /* 0.548863, 196 */
+0x1.1c3f56p-1, /* 0.555171, 197 */
+0x1.1f7fa4p-1, /* 0.561521, 198 */
+0x1.22c578p-1, /* 0.567913, 199 */
+0x1.2610d8p-1, /* 0.574347, 200 */
+0x1.2961c2p-1, /* 0.580824, 201 */
+0x1.2cb83ep-1, /* 0.587343, 202 */
+0x1.30144cp-1, /* 0.593905, 203 */
+0x1.3375eep-1, /* 0.600509, 204 */
+0x1.36dd26p-1, /* 0.607156, 205 */
+0x1.3a49fap-1, /* 0.613846, 206 */
+0x1.3dbc6ap-1, /* 0.620578, 207 */
+0x1.413478p-1, /* 0.627353, 208 */
+0x1.44b228p-1, /* 0.634172, 209 */
+0x1.48357cp-1, /* 0.641033, 210 */
+0x1.4bbe76p-1, /* 0.647937, 211 */
+0x1.4f4d18p-1, /* 0.654885, 212 */
+0x1.52e168p-1, /* 0.661876, 213 */
+0x1.567b64p-1, /* 0.668910, 214 */
+0x1.5a1b1p-1, /* 0.675988, 215 */
+0x1.5dc07p-1, /* 0.683109, 216 */
+0x1.616b86p-1, /* 0.690273, 217 */
+0x1.651c54p-1, /* 0.697482, 218 */
+0x1.68d2dcp-1, /* 0.704734, 219 */
+0x1.6c8f22p-1, /* 0.712030, 220 */
+0x1.705126p-1, /* 0.719369, 221 */
+0x1.7418eep-1, /* 0.726753, 222 */
+0x1.77e67ap-1, /* 0.734180, 223 */
+0x1.7bb9cep-1, /* 0.741652, 224 */
+0x1.7f92eap-1, /* 0.749168, 225 */
+0x1.8371d6p-1, /* 0.756728, 226 */
+0x1.87568ep-1, /* 0.764332, 227 */
+0x1.8b411ap-1, /* 0.771981, 228 */
+0x1.8f317ap-1, /* 0.779674, 229 */
+0x1.9327bp-1, /* 0.787412, 230 */
+0x1.9723cp-1, /* 0.795195, 231 */
+0x1.9b25aap-1, /* 0.803022, 232 */
+0x1.9f2d74p-1, /* 0.810894, 233 */
+0x1.a33b1ep-1, /* 0.818810, 234 */
+0x1.a74eacp-1, /* 0.826772, 235 */
+0x1.ab682p-1, /* 0.834779, 236 */
+0x1.af877cp-1, /* 0.842831, 237 */
+0x1.b3accp-1, /* 0.850927, 238 */
+0x1.b7d7f2p-1, /* 0.859069, 239 */
+0x1.bc0914p-1, /* 0.867257, 240 */
+0x1.c04026p-1, /* 0.875489, 241 */
+0x1.c47d2ap-1, /* 0.883767, 242 */
+0x1.c8c024p-1, /* 0.892091, 243 */
+0x1.cd0918p-1, /* 0.900460, 244 */
+0x1.d15804p-1, /* 0.908875, 245 */
+0x1.d5acecp-1, /* 0.917335, 246 */
+0x1.da07d4p-1, /* 0.925841, 247 */
+0x1.de68bcp-1, /* 0.934393, 248 */
+0x1.e2cfa8p-1, /* 0.942991, 249 */
+0x1.e73c9ap-1, /* 0.951634, 250 */
+0x1.ebaf96p-1, /* 0.960324, 251 */
+0x1.f0289ep-1, /* 0.969060, 252 */
+0x1.f4a7b6p-1, /* 0.977842, 253 */
+0x1.f92cep-1, /* 0.986670, 254 */
+0x1.fdb822p-1, /* 0.995545, 255 */
+999.0
+};
--- /dev/null
+/* babl - dynamically extendable universal pixel conversion library.
+ * Copyright (C) 2013, Daniel Sabo
+ *
+ * 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 3 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, see
+ * <http://www.gnu.org/licenses/>.
+ */
+
+#include <stdlib.h>
+#include "babl.h"
+
+#include "base/util.h"
+#include "extensions/two-table-tables.h"
+
+static inline unsigned char
+conv_float_u8_two_table_map (float value)
+{
+ unsigned short index;
+ unsigned char result;
+ if (value < 0.0f)
+ return 0;
+ else if (value > 1.0f)
+ return 0xFF;
+ index = (unsigned short)(value * 0xFFFF);
+ result = linear_to_gamma[index];
+
+ if (value < u8_gamma_minimums[result])
+ result -= 1;
+ else if (value >= u8_gamma_minimums[result+1])
+ result += 1;
+
+ return result;
+}
+
+static long
+conv_rgbafloat_linear_cairo24_le (unsigned char *src_char,
+ unsigned char *dst,
+ long samples)
+{
+ long n = samples;
+ float *src = (float*)src_char;
+
+ while (n--)
+ {
+ if (src[3] < BABL_ALPHA_THRESHOLD)
+ {
+ *(int *)dst = 0;
+ }
+ else
+ {
+ dst[0] = conv_float_u8_two_table_map (src[2]);
+ dst[1] = conv_float_u8_two_table_map (src[1]);
+ dst[2] = conv_float_u8_two_table_map (src[0]);
+ }
+ src += 4;
+ dst += 4;
+ }
+ return samples;
+}
+
+static long
+conv_rgbfloat_linear_cairo24_le (unsigned char *src_char,
+ unsigned char *dst,
+ long samples)
+{
+ long n = samples;
+ float *src = (float*)src_char;
+
+ while (n--)
+ {
+ dst[0] = conv_float_u8_two_table_map (src[2]);
+ dst[1] = conv_float_u8_two_table_map (src[1]);
+ dst[2] = conv_float_u8_two_table_map (src[0]);
+
+ src += 3;
+ dst += 4;
+ }
+ return samples;
+}
+
+static long
+conv_rgbafloat_linear_rgbu8_gamma (unsigned char *src_char,
+ unsigned char *dst,
+ long samples)
+{
+ long n = samples;
+ float *src = (float*)src_char;
+
+ while (n--)
+ {
+ if (src[3] < BABL_ALPHA_THRESHOLD)
+ {
+ dst[0] = 0;
+ dst[1] = 0;
+ dst[2] = 0;
+ }
+ else
+ {
+ dst[0] = conv_float_u8_two_table_map (src[0]);
+ dst[1] = conv_float_u8_two_table_map (src[1]);
+ dst[2] = conv_float_u8_two_table_map (src[2]);
+ }
+ src += 4;
+ dst += 3;
+ }
+ return samples;
+}
+
+static long
+conv_rgbfloat_linear_rgbu8_gamma (unsigned char *src_char,
+ unsigned char *dst,
+ long samples)
+{
+ long n = samples;
+ float *src = (float*)src_char;
+
+ while (n--)
+ {
+ dst[0] = conv_float_u8_two_table_map (src[0]);
+ dst[1] = conv_float_u8_two_table_map (src[1]);
+ dst[2] = conv_float_u8_two_table_map (src[2]);
+
+ src += 3;
+ dst += 3;
+ }
+ return samples;
+}
+
+static long
+conv_yfloat_linear_yu8_gamma (unsigned char *src_char,
+ unsigned char *dst,
+ long samples)
+{
+ long n = samples;
+ float *src = (float*)src_char;
+
+ while (n--)
+ {
+ *dst++ = conv_float_u8_two_table_map (*src++);
+ }
+ return samples;
+}
+
+static long
+conv_yafloat_linear_yau8_gamma (unsigned char *src_char,
+ unsigned char *dst,
+ long samples)
+{
+ long n = samples;
+ float *src = (float*)src_char;
+
+ while (n--)
+ {
+ long int alpha;
+ *dst++ = conv_float_u8_two_table_map (*src++);
+
+ alpha = rint (*src++ * 255.0);
+ *dst++ = (alpha < 0) ? 0 : ((alpha > 255) ? 255 : alpha);
+ }
+ return samples;
+}
+
+int init (void);
+
+int
+init (void)
+{
+ int testint = 23;
+ char *testchar = (char*) &testint;
+ int littleendian = (testchar[0] == 23);
+
+ if (littleendian)
+ {
+ const Babl *f24 = babl_format_new (
+ "name", "cairo-RGB24",
+ babl_model ("R'G'B'"),
+ babl_type ("u8"),
+ babl_component ("B'"),
+ babl_component ("G'"),
+ babl_component ("R'"),
+ babl_component ("PAD"),
+ NULL
+ );
+
+ babl_conversion_new (babl_format ("RGB float"),
+ f24,
+ "linear",
+ conv_rgbfloat_linear_cairo24_le,
+ NULL);
+
+ babl_conversion_new (babl_format ("RGBA float"),
+ f24,
+ "linear",
+ conv_rgbafloat_linear_cairo24_le,
+ NULL);
+ }
+
+ babl_conversion_new (babl_format ("RGBA float"),
+ babl_format ("R'G'B' u8"),
+ "linear",
+ conv_rgbafloat_linear_rgbu8_gamma,
+ NULL);
+
+ babl_conversion_new (babl_format ("RGB float"),
+ babl_format ("R'G'B' u8"),
+ "linear",
+ conv_rgbfloat_linear_rgbu8_gamma,
+ NULL);
+
+ babl_conversion_new (babl_format ("Y float"),
+ babl_format ("Y' u8"),
+ "linear",
+ conv_yfloat_linear_yu8_gamma,
+ NULL);
+
+ babl_conversion_new (babl_format ("YA float"),
+ babl_format ("Y'A u8"),
+ "linear",
+ conv_yafloat_linear_yau8_gamma,
+ NULL);
+
+ return 0;
+}
--- /dev/null
+/* babl - dynamically extendable universal pixel conversion library.
+ * Copyright (C) 2005, Øyvind Kolås.
+ *
+ * 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 3 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, see
+ * <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef _UTIL_H
+#define _UTIL_H
+
+#include <assert.h>
+#include <math.h>
+
+#ifndef BABL_LIBRARY
+#error "config.h must be included prior to util.h"
+#endif
+
+#ifndef HAVE_RINT
+# define rint(f) (floor (((double) (f)) + 0.5))
+#endif
+
+
+#define BABL_PLANAR_SANITY \
+ { \
+ assert(src_bands>0); \
+ assert(dst_bands>0); \
+ assert(src); \
+ assert(*src); \
+ assert(dst); \
+ assert(*dst); \
+ assert(n>0); \
+ assert(*src_pitch); \
+ }
+
+#define BABL_PLANAR_STEP \
+ { \
+ int i; \
+ for (i=0; i< src_bands; i++) \
+ src[i]+=src_pitch[i]; \
+ for (i=0; i< dst_bands; i++) \
+ dst[i]+=dst_pitch[i]; \
+ }
+
+#endif
+
--- /dev/null
+/* babl - dynamically extendable universal pixel conversion library.
+ *
+ * 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 3 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, see
+ * <http://www.gnu.org/licenses/>.
+ */
+
+#include "config.h"
+
+#include <math.h>
+#include <string.h>
+
+#include "babl.h"
+#include "base/util.h"
+
+
+static void components (void);
+static void models (void);
+static void conversions (void);
+static void formats (void);
+
+int init (void);
+
+
+int
+init (void)
+{
+ components ();
+ models ();
+ conversions ();
+ formats ();
+
+ return 0;
+}
+
+
+static void
+components (void)
+{
+ babl_component_new ("alpha", NULL);
+}
+
+
+static void
+models (void)
+{
+ babl_model_new (
+ "name", "Y'CbCr709",
+ babl_component ("Y'"),
+ babl_component ("Cb"),
+ babl_component ("Cr"),
+ NULL);
+
+ babl_model_new (
+ "name", "Y'CbCrA709",
+ babl_component ("Y'"),
+ babl_component ("Cb"),
+ babl_component ("Cr"),
+ babl_component ("alpha"),
+ NULL);
+}
+
+
+static long
+rgba_to_ycbcra709 (char *src,
+ char *dst,
+ long n)
+{
+ while (n--)
+ {
+ double red = ((double *) src)[0];
+ double green = ((double *) src)[1];
+ double blue = ((double *) src)[2];
+ double alpha = ((double *) src)[3];
+
+ double luminance, cb, cr;
+
+ red = linear_to_gamma_2_2 (red);
+ green = linear_to_gamma_2_2 (green);
+ blue = linear_to_gamma_2_2 (blue);
+
+ luminance = 0.2126 * red + 0.7152 * green + 0.0722 * blue;
+ cb = (blue - luminance) / 1.8556;
+ cr = (red - luminance) / 1.5748;
+
+ ((double *) dst)[0] = luminance;
+ ((double *) dst)[1] = cb;
+ ((double *) dst)[2] = cr;
+ ((double *) dst)[3] = alpha;
+
+ src += sizeof (double) * 4;
+ dst += sizeof (double) * 4;
+ }
+ return n;
+}
+
+
+static long
+rgba_to_ycbcr709 (char *src,
+ char *dst,
+ long n)
+{
+ while (n--)
+ {
+ double red = ((double *) src)[0];
+ double green = ((double *) src)[1];
+ double blue = ((double *) src)[2];
+
+ double luminance, cb, cr;
+
+ red = linear_to_gamma_2_2 (red);
+ green = linear_to_gamma_2_2 (green);
+ blue = linear_to_gamma_2_2 (blue);
+
+ luminance = 0.2126 * red + 0.7152 * green + 0.0722 * blue;
+ cb = (blue - luminance) / 1.8556;
+ cr = (red - luminance) / 1.5748;
+
+ ((double *) dst)[0] = luminance;
+ ((double *) dst)[1] = cb;
+ ((double *) dst)[2] = cr;
+
+ src += sizeof (double) * 4;
+ dst += sizeof (double) * 3;
+ }
+ return n;
+}
+
+
+static long
+ycbcra709_to_rgba (char *src,
+ char *dst,
+ long n)
+{
+ while (n--)
+ {
+ double luminance = ((double *) src)[0];
+ double cb = ((double *) src)[1];
+ double cr = ((double *) src)[2];
+ double alpha = ((double *) src)[3];
+
+ double red, green, blue;
+
+ red = 1.0 * luminance + 0.0 * cb + 1.5748 * cr;
+ green = 1.0 * luminance - 0.1873 * cb - 0.4681 * cr;
+ blue = 1.0 * luminance + 1.8556 * cb + 0.0 * cr;
+
+ red = gamma_2_2_to_linear (red);
+ green = gamma_2_2_to_linear (green);
+ blue = gamma_2_2_to_linear (blue);
+
+ ((double *) dst)[0] = red;
+ ((double *) dst)[1] = green;
+ ((double *) dst)[2] = blue;
+ ((double *) dst)[3] = alpha;
+
+ src += sizeof (double) * 4;
+ dst += sizeof (double) * 4;
+ }
+ return n;
+}
+
+
+static long
+ycbcr709_to_rgba (char *src,
+ char *dst,
+ long n)
+{
+ while (n--)
+ {
+ double luminance = ((double *) src)[0];
+ double cb = ((double *) src)[1];
+ double cr = ((double *) src)[2];
+
+ double red, green, blue;
+
+ red = 1.0 * luminance + 0.0 * cb + 1.5748 * cr;
+ green = 1.0 * luminance - 0.1873 * cb - 0.4681 * cr;
+ blue = 1.0 * luminance + 1.8556 * cb + 0.0 * cr;
+
+ red = gamma_2_2_to_linear (red);
+ green = gamma_2_2_to_linear (green);
+ blue = gamma_2_2_to_linear (blue);
+
+ ((double *) dst)[0] = red;
+ ((double *) dst)[1] = green;
+ ((double *) dst)[2] = blue;
+ ((double *) dst)[3] = 1.0;
+
+ src += sizeof (double) * 3;
+ dst += sizeof (double) * 4;
+ }
+ return n;
+}
+
+
+static void
+conversions (void)
+{
+ babl_conversion_new (
+ babl_model ("RGBA"),
+ babl_model ("Y'CbCr709"),
+ "linear", rgba_to_ycbcr709,
+ NULL
+ );
+ babl_conversion_new (
+ babl_model ("RGBA"),
+ babl_model ("Y'CbCrA709"),
+ "linear", rgba_to_ycbcra709,
+ NULL
+ );
+ babl_conversion_new (
+ babl_model ("Y'CbCrA709"),
+ babl_model ("RGBA"),
+ "linear", ycbcra709_to_rgba,
+ NULL
+ );
+ babl_conversion_new (
+ babl_model ("Y'CbCr709"),
+ babl_model ("RGBA"),
+ "linear", ycbcr709_to_rgba,
+ NULL
+ );
+}
+
+
+static void
+formats (void)
+{
+ babl_format_new (
+ babl_model ("Y'CbCrA709"),
+ babl_type ("float"),
+ babl_component ("Y'"),
+ babl_type ("float"),
+ babl_component ("Cb"),
+ babl_component ("Cr"),
+ babl_component ("alpha"),
+ NULL);
+
+ babl_format_new (
+ babl_model ("Y'CbCr709"),
+ babl_type ("float"),
+ babl_component ("Y'"),
+ babl_type ("float"),
+ babl_component ("Cb"),
+ babl_component ("Cr"),
+ NULL);
+}
--- /dev/null
+#!/bin/sh
+# install - install a program, script, or datafile
+
+scriptversion=2013-12-25.23; # UTC
+
+# This originates from X11R5 (mit/util/scripts/install.sh), which was
+# later released in X11R6 (xc/config/util/install.sh) with the
+# following copyright and license.
+#
+# Copyright (C) 1994 X Consortium
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to
+# deal in the Software without restriction, including without limitation the
+# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+# sell copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC-
+# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+#
+# Except as contained in this notice, the name of the X Consortium shall not
+# be used in advertising or otherwise to promote the sale, use or other deal-
+# ings in this Software without prior written authorization from the X Consor-
+# tium.
+#
+#
+# FSF changes to this file are in the public domain.
+#
+# Calling this script install-sh is preferred over install.sh, to prevent
+# 'make' implicit rules from creating a file called install from it
+# when there is no Makefile.
+#
+# This script is compatible with the BSD install script, but was written
+# from scratch.
+
+tab=' '
+nl='
+'
+IFS=" $tab$nl"
+
+# Set DOITPROG to "echo" to test this script.
+
+doit=${DOITPROG-}
+doit_exec=${doit:-exec}
+
+# Put in absolute file names if you don't have them in your path;
+# or use environment vars.
+
+chgrpprog=${CHGRPPROG-chgrp}
+chmodprog=${CHMODPROG-chmod}
+chownprog=${CHOWNPROG-chown}
+cmpprog=${CMPPROG-cmp}
+cpprog=${CPPROG-cp}
+mkdirprog=${MKDIRPROG-mkdir}
+mvprog=${MVPROG-mv}
+rmprog=${RMPROG-rm}
+stripprog=${STRIPPROG-strip}
+
+posix_mkdir=
+
+# Desired mode of installed file.
+mode=0755
+
+chgrpcmd=
+chmodcmd=$chmodprog
+chowncmd=
+mvcmd=$mvprog
+rmcmd="$rmprog -f"
+stripcmd=
+
+src=
+dst=
+dir_arg=
+dst_arg=
+
+copy_on_change=false
+is_target_a_directory=possibly
+
+usage="\
+Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE
+ or: $0 [OPTION]... SRCFILES... DIRECTORY
+ or: $0 [OPTION]... -t DIRECTORY SRCFILES...
+ or: $0 [OPTION]... -d DIRECTORIES...
+
+In the 1st form, copy SRCFILE to DSTFILE.
+In the 2nd and 3rd, copy all SRCFILES to DIRECTORY.
+In the 4th, create DIRECTORIES.
+
+Options:
+ --help display this help and exit.
+ --version display version info and exit.
+
+ -c (ignored)
+ -C install only if different (preserve the last data modification time)
+ -d create directories instead of installing files.
+ -g GROUP $chgrpprog installed files to GROUP.
+ -m MODE $chmodprog installed files to MODE.
+ -o USER $chownprog installed files to USER.
+ -s $stripprog installed files.
+ -t DIRECTORY install into DIRECTORY.
+ -T report an error if DSTFILE is a directory.
+
+Environment variables override the default commands:
+ CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG
+ RMPROG STRIPPROG
+"
+
+while test $# -ne 0; do
+ case $1 in
+ -c) ;;
+
+ -C) copy_on_change=true;;
+
+ -d) dir_arg=true;;
+
+ -g) chgrpcmd="$chgrpprog $2"
+ shift;;
+
+ --help) echo "$usage"; exit $?;;
+
+ -m) mode=$2
+ case $mode in
+ *' '* | *"$tab"* | *"$nl"* | *'*'* | *'?'* | *'['*)
+ echo "$0: invalid mode: $mode" >&2
+ exit 1;;
+ esac
+ shift;;
+
+ -o) chowncmd="$chownprog $2"
+ shift;;
+
+ -s) stripcmd=$stripprog;;
+
+ -t)
+ is_target_a_directory=always
+ dst_arg=$2
+ # Protect names problematic for 'test' and other utilities.
+ case $dst_arg in
+ -* | [=\(\)!]) dst_arg=./$dst_arg;;
+ esac
+ shift;;
+
+ -T) is_target_a_directory=never;;
+
+ --version) echo "$0 $scriptversion"; exit $?;;
+
+ --) shift
+ break;;
+
+ -*) echo "$0: invalid option: $1" >&2
+ exit 1;;
+
+ *) break;;
+ esac
+ shift
+done
+
+# We allow the use of options -d and -T together, by making -d
+# take the precedence; this is for compatibility with GNU install.
+
+if test -n "$dir_arg"; then
+ if test -n "$dst_arg"; then
+ echo "$0: target directory not allowed when installing a directory." >&2
+ exit 1
+ fi
+fi
+
+if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then
+ # When -d is used, all remaining arguments are directories to create.
+ # When -t is used, the destination is already specified.
+ # Otherwise, the last argument is the destination. Remove it from $@.
+ for arg
+ do
+ if test -n "$dst_arg"; then
+ # $@ is not empty: it contains at least $arg.
+ set fnord "$@" "$dst_arg"
+ shift # fnord
+ fi
+ shift # arg
+ dst_arg=$arg
+ # Protect names problematic for 'test' and other utilities.
+ case $dst_arg in
+ -* | [=\(\)!]) dst_arg=./$dst_arg;;
+ esac
+ done
+fi
+
+if test $# -eq 0; then
+ if test -z "$dir_arg"; then
+ echo "$0: no input file specified." >&2
+ exit 1
+ fi
+ # It's OK to call 'install-sh -d' without argument.
+ # This can happen when creating conditional directories.
+ exit 0
+fi
+
+if test -z "$dir_arg"; then
+ if test $# -gt 1 || test "$is_target_a_directory" = always; then
+ if test ! -d "$dst_arg"; then
+ echo "$0: $dst_arg: Is not a directory." >&2
+ exit 1
+ fi
+ fi
+fi
+
+if test -z "$dir_arg"; then
+ do_exit='(exit $ret); exit $ret'
+ trap "ret=129; $do_exit" 1
+ trap "ret=130; $do_exit" 2
+ trap "ret=141; $do_exit" 13
+ trap "ret=143; $do_exit" 15
+
+ # Set umask so as not to create temps with too-generous modes.
+ # However, 'strip' requires both read and write access to temps.
+ case $mode in
+ # Optimize common cases.
+ *644) cp_umask=133;;
+ *755) cp_umask=22;;
+
+ *[0-7])
+ if test -z "$stripcmd"; then
+ u_plus_rw=
+ else
+ u_plus_rw='% 200'
+ fi
+ cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;;
+ *)
+ if test -z "$stripcmd"; then
+ u_plus_rw=
+ else
+ u_plus_rw=,u+rw
+ fi
+ cp_umask=$mode$u_plus_rw;;
+ esac
+fi
+
+for src
+do
+ # Protect names problematic for 'test' and other utilities.
+ case $src in
+ -* | [=\(\)!]) src=./$src;;
+ esac
+
+ if test -n "$dir_arg"; then
+ dst=$src
+ dstdir=$dst
+ test -d "$dstdir"
+ dstdir_status=$?
+ else
+
+ # Waiting for this to be detected by the "$cpprog $src $dsttmp" command
+ # might cause directories to be created, which would be especially bad
+ # if $src (and thus $dsttmp) contains '*'.
+ if test ! -f "$src" && test ! -d "$src"; then
+ echo "$0: $src does not exist." >&2
+ exit 1
+ fi
+
+ if test -z "$dst_arg"; then
+ echo "$0: no destination specified." >&2
+ exit 1
+ fi
+ dst=$dst_arg
+
+ # If destination is a directory, append the input filename; won't work
+ # if double slashes aren't ignored.
+ if test -d "$dst"; then
+ if test "$is_target_a_directory" = never; then
+ echo "$0: $dst_arg: Is a directory" >&2
+ exit 1
+ fi
+ dstdir=$dst
+ dst=$dstdir/`basename "$src"`
+ dstdir_status=0
+ else
+ dstdir=`dirname "$dst"`
+ test -d "$dstdir"
+ dstdir_status=$?
+ fi
+ fi
+
+ obsolete_mkdir_used=false
+
+ if test $dstdir_status != 0; then
+ case $posix_mkdir in
+ '')
+ # Create intermediate dirs using mode 755 as modified by the umask.
+ # This is like FreeBSD 'install' as of 1997-10-28.
+ umask=`umask`
+ case $stripcmd.$umask in
+ # Optimize common cases.
+ *[2367][2367]) mkdir_umask=$umask;;
+ .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;;
+
+ *[0-7])
+ mkdir_umask=`expr $umask + 22 \
+ - $umask % 100 % 40 + $umask % 20 \
+ - $umask % 10 % 4 + $umask % 2
+ `;;
+ *) mkdir_umask=$umask,go-w;;
+ esac
+
+ # With -d, create the new directory with the user-specified mode.
+ # Otherwise, rely on $mkdir_umask.
+ if test -n "$dir_arg"; then
+ mkdir_mode=-m$mode
+ else
+ mkdir_mode=
+ fi
+
+ posix_mkdir=false
+ case $umask in
+ *[123567][0-7][0-7])
+ # POSIX mkdir -p sets u+wx bits regardless of umask, which
+ # is incompatible with FreeBSD 'install' when (umask & 300) != 0.
+ ;;
+ *)
+ tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
+ trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0
+
+ if (umask $mkdir_umask &&
+ exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1
+ then
+ if test -z "$dir_arg" || {
+ # Check for POSIX incompatibilities with -m.
+ # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
+ # other-writable bit of parent directory when it shouldn't.
+ # FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
+ ls_ld_tmpdir=`ls -ld "$tmpdir"`
+ case $ls_ld_tmpdir in
+ d????-?r-*) different_mode=700;;
+ d????-?--*) different_mode=755;;
+ *) false;;
+ esac &&
+ $mkdirprog -m$different_mode -p -- "$tmpdir" && {
+ ls_ld_tmpdir_1=`ls -ld "$tmpdir"`
+ test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
+ }
+ }
+ then posix_mkdir=:
+ fi
+ rmdir "$tmpdir/d" "$tmpdir"
+ else
+ # Remove any dirs left behind by ancient mkdir implementations.
+ rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null
+ fi
+ trap '' 0;;
+ esac;;
+ esac
+
+ if
+ $posix_mkdir && (
+ umask $mkdir_umask &&
+ $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir"
+ )
+ then :
+ else
+
+ # The umask is ridiculous, or mkdir does not conform to POSIX,
+ # or it failed possibly due to a race condition. Create the
+ # directory the slow way, step by step, checking for races as we go.
+
+ case $dstdir in
+ /*) prefix='/';;
+ [-=\(\)!]*) prefix='./';;
+ *) prefix='';;
+ esac
+
+ oIFS=$IFS
+ IFS=/
+ set -f
+ set fnord $dstdir
+ shift
+ set +f
+ IFS=$oIFS
+
+ prefixes=
+
+ for d
+ do
+ test X"$d" = X && continue
+
+ prefix=$prefix$d
+ if test -d "$prefix"; then
+ prefixes=
+ else
+ if $posix_mkdir; then
+ (umask=$mkdir_umask &&
+ $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break
+ # Don't fail if two instances are running concurrently.
+ test -d "$prefix" || exit 1
+ else
+ case $prefix in
+ *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;;
+ *) qprefix=$prefix;;
+ esac
+ prefixes="$prefixes '$qprefix'"
+ fi
+ fi
+ prefix=$prefix/
+ done
+
+ if test -n "$prefixes"; then
+ # Don't fail if two instances are running concurrently.
+ (umask $mkdir_umask &&
+ eval "\$doit_exec \$mkdirprog $prefixes") ||
+ test -d "$dstdir" || exit 1
+ obsolete_mkdir_used=true
+ fi
+ fi
+ fi
+
+ if test -n "$dir_arg"; then
+ { test -z "$chowncmd" || $doit $chowncmd "$dst"; } &&
+ { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } &&
+ { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false ||
+ test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1
+ else
+
+ # Make a couple of temp file names in the proper directory.
+ dsttmp=$dstdir/_inst.$$_
+ rmtmp=$dstdir/_rm.$$_
+
+ # Trap to clean up those temp files at exit.
+ trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0
+
+ # Copy the file name to the temp name.
+ (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") &&
+
+ # and set any options; do chmod last to preserve setuid bits.
+ #
+ # If any of these fail, we abort the whole thing. If we want to
+ # ignore errors from any of these, just make sure not to ignore
+ # errors from the above "$doit $cpprog $src $dsttmp" command.
+ #
+ { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } &&
+ { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } &&
+ { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } &&
+ { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } &&
+
+ # If -C, don't bother to copy if it wouldn't change the file.
+ if $copy_on_change &&
+ old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` &&
+ new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` &&
+ set -f &&
+ set X $old && old=:$2:$4:$5:$6 &&
+ set X $new && new=:$2:$4:$5:$6 &&
+ set +f &&
+ test "$old" = "$new" &&
+ $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1
+ then
+ rm -f "$dsttmp"
+ else
+ # Rename the file to the real destination.
+ $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null ||
+
+ # The rename failed, perhaps because mv can't rename something else
+ # to itself, or perhaps because mv is so ancient that it does not
+ # support -f.
+ {
+ # Now remove or move aside any old file at destination location.
+ # We try this two ways since rm can't unlink itself on some
+ # systems and the destination file might be busy for other
+ # reasons. In this case, the final cleanup might fail but the new
+ # file should still install successfully.
+ {
+ test ! -f "$dst" ||
+ $doit $rmcmd -f "$dst" 2>/dev/null ||
+ { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null &&
+ { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; }
+ } ||
+ { echo "$0: cannot unlink or rename $dst" >&2
+ (exit 1); exit 1
+ }
+ } &&
+
+ # Now rename the file to the real destination.
+ $doit $mvcmd "$dsttmp" "$dst"
+ }
+ fi || exit 1
+
+ trap '' 0
+ fi
+done
+
+# Local variables:
+# 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:
--- /dev/null
+#! /bin/sh
+## DO NOT EDIT - This file generated from ./build-aux/ltmain.in
+## by inline-source v2014-01-03.01
+
+# libtool (GNU libtool) 2.4.6
+# Provide generalized library-building support services.
+# Written by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
+
+# Copyright (C) 1996-2015 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.
+
+# GNU Libtool is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# As a special exception to the GNU General Public License,
+# if you distribute this file as part of a program or library that
+# is built using GNU Libtool, you may include this file under the
+# same distribution terms that you use for the rest of that program.
+#
+# GNU Libtool is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+
+PROGRAM=libtool
+PACKAGE=libtool
+VERSION=2.4.6
+package_revision=2.4.6
+
+
+## ------ ##
+## Usage. ##
+## ------ ##
+
+# Run './libtool --help' for help with using this script from the
+# command line.
+
+
+## ------------------------------- ##
+## User overridable command paths. ##
+## ------------------------------- ##
+
+# After configure completes, it has a better idea of some of the
+# shell tools we need than the defaults used by the functions shared
+# with bootstrap, so set those here where they can still be over-
+# ridden by the user, but otherwise take precedence.
+
+: ${AUTOCONF="autoconf"}
+: ${AUTOMAKE="automake"}
+
+
+## -------------------------- ##
+## Source external libraries. ##
+## -------------------------- ##
+
+# Much of our low-level functionality needs to be sourced from external
+# libraries, which are installed to $pkgauxdir.
+
+# Set a version string for this script.
+scriptversion=2015-01-20.17; # UTC
+
+# General shell script boiler plate, and helper functions.
+# Written by Gary V. Vaughan, 2004
+
+# Copyright (C) 2004-2015 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.
+
+# 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 3 of the License, or
+# (at your option) any later version.
+
+# As a special exception to the GNU General Public License, if you distribute
+# this file as part of a program or library that is built using GNU Libtool,
+# you may include this file under the same distribution terms that you use
+# for the rest of that program.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNES 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 <http://www.gnu.org/licenses/>.
+
+# Please report bugs or propose patches to gary@gnu.org.
+
+
+## ------ ##
+## Usage. ##
+## ------ ##
+
+# Evaluate this file near the top of your script to gain access to
+# the functions and variables defined here:
+#
+# . `echo "$0" | ${SED-sed} 's|[^/]*$||'`/build-aux/funclib.sh
+#
+# If you need to override any of the default environment variable
+# settings, do that before evaluating this file.
+
+
+## -------------------- ##
+## Shell normalisation. ##
+## -------------------- ##
+
+# Some shells need a little help to be as Bourne compatible as possible.
+# Before doing anything else, make sure all that help has been provided!
+
+DUALCASE=1; export DUALCASE # for MKS sh
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
+ emulate sh
+ NULLCMD=:
+ # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
+ # is contrary to our usage. Disable this feature.
+ alias -g '${1+"$@"}'='"$@"'
+ setopt NO_GLOB_SUBST
+else
+ case `(set -o) 2>/dev/null` in *posix*) set -o posix ;; esac
+fi
+
+# NLS nuisances: We save the old values in case they are required later.
+_G_user_locale=
+_G_safe_locale=
+for _G_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
+do
+ eval "if test set = \"\${$_G_var+set}\"; then
+ save_$_G_var=\$$_G_var
+ $_G_var=C
+ export $_G_var
+ _G_user_locale=\"$_G_var=\\\$save_\$_G_var; \$_G_user_locale\"
+ _G_safe_locale=\"$_G_var=C; \$_G_safe_locale\"
+ fi"
+done
+
+# CDPATH.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+# Make sure IFS has a sensible default
+sp=' '
+nl='
+'
+IFS="$sp $nl"
+
+# There are apparently some retarded systems that use ';' as a PATH separator!
+if test "${PATH_SEPARATOR+set}" != set; then
+ PATH_SEPARATOR=:
+ (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
+ (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
+ PATH_SEPARATOR=';'
+ }
+fi
+
+
+
+## ------------------------- ##
+## Locate command utilities. ##
+## ------------------------- ##
+
+
+# func_executable_p FILE
+# ----------------------
+# Check that FILE is an executable regular file.
+func_executable_p ()
+{
+ test -f "$1" && test -x "$1"
+}
+
+
+# func_path_progs PROGS_LIST CHECK_FUNC [PATH]
+# --------------------------------------------
+# Search for either a program that responds to --version with output
+# containing "GNU", or else returned by CHECK_FUNC otherwise, by
+# trying all the directories in PATH with each of the elements of
+# PROGS_LIST.
+#
+# CHECK_FUNC should accept the path to a candidate program, and
+# set $func_check_prog_result if it truncates its output less than
+# $_G_path_prog_max characters.
+func_path_progs ()
+{
+ _G_progs_list=$1
+ _G_check_func=$2
+ _G_PATH=${3-"$PATH"}
+
+ _G_path_prog_max=0
+ _G_path_prog_found=false
+ _G_save_IFS=$IFS; IFS=${PATH_SEPARATOR-:}
+ for _G_dir in $_G_PATH; do
+ IFS=$_G_save_IFS
+ test -z "$_G_dir" && _G_dir=.
+ for _G_prog_name in $_G_progs_list; do
+ for _exeext in '' .EXE; do
+ _G_path_prog=$_G_dir/$_G_prog_name$_exeext
+ func_executable_p "$_G_path_prog" || continue
+ case `"$_G_path_prog" --version 2>&1` in
+ *GNU*) func_path_progs_result=$_G_path_prog _G_path_prog_found=: ;;
+ *) $_G_check_func $_G_path_prog
+ func_path_progs_result=$func_check_prog_result
+ ;;
+ esac
+ $_G_path_prog_found && break 3
+ done
+ done
+ done
+ IFS=$_G_save_IFS
+ test -z "$func_path_progs_result" && {
+ echo "no acceptable sed could be found in \$PATH" >&2
+ exit 1
+ }
+}
+
+
+# We want to be able to use the functions in this file before configure
+# has figured out where the best binaries are kept, which means we have
+# to search for them ourselves - except when the results are already set
+# where we skip the searches.
+
+# Unless the user overrides by setting SED, search the path for either GNU
+# sed, or the sed that truncates its output the least.
+test -z "$SED" && {
+ _G_sed_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/
+ for _G_i in 1 2 3 4 5 6 7; do
+ _G_sed_script=$_G_sed_script$nl$_G_sed_script
+ done
+ echo "$_G_sed_script" 2>/dev/null | sed 99q >conftest.sed
+ _G_sed_script=
+
+ func_check_prog_sed ()
+ {
+ _G_path_prog=$1
+
+ _G_count=0
+ printf 0123456789 >conftest.in
+ while :
+ do
+ cat conftest.in conftest.in >conftest.tmp
+ mv conftest.tmp conftest.in
+ cp conftest.in conftest.nl
+ echo '' >> conftest.nl
+ "$_G_path_prog" -f conftest.sed <conftest.nl >conftest.out 2>/dev/null || break
+ diff conftest.out conftest.nl >/dev/null 2>&1 || break
+ _G_count=`expr $_G_count + 1`
+ if test "$_G_count" -gt "$_G_path_prog_max"; then
+ # Best one so far, save it but keep looking for a better one
+ func_check_prog_result=$_G_path_prog
+ _G_path_prog_max=$_G_count
+ fi
+ # 10*(2^10) chars as input seems more than enough
+ test 10 -lt "$_G_count" && break
+ done
+ rm -f conftest.in conftest.tmp conftest.nl conftest.out
+ }
+
+ func_path_progs "sed gsed" func_check_prog_sed $PATH:/usr/xpg4/bin
+ rm -f conftest.sed
+ SED=$func_path_progs_result
+}
+
+
+# Unless the user overrides by setting GREP, search the path for either GNU
+# grep, or the grep that truncates its output the least.
+test -z "$GREP" && {
+ func_check_prog_grep ()
+ {
+ _G_path_prog=$1
+
+ _G_count=0
+ _G_path_prog_max=0
+ printf 0123456789 >conftest.in
+ while :
+ do
+ cat conftest.in conftest.in >conftest.tmp
+ mv conftest.tmp conftest.in
+ cp conftest.in conftest.nl
+ echo 'GREP' >> conftest.nl
+ "$_G_path_prog" -e 'GREP$' -e '-(cannot match)-' <conftest.nl >conftest.out 2>/dev/null || break
+ diff conftest.out conftest.nl >/dev/null 2>&1 || break
+ _G_count=`expr $_G_count + 1`
+ if test "$_G_count" -gt "$_G_path_prog_max"; then
+ # Best one so far, save it but keep looking for a better one
+ func_check_prog_result=$_G_path_prog
+ _G_path_prog_max=$_G_count
+ fi
+ # 10*(2^10) chars as input seems more than enough
+ test 10 -lt "$_G_count" && break
+ done
+ rm -f conftest.in conftest.tmp conftest.nl conftest.out
+ }
+
+ func_path_progs "grep ggrep" func_check_prog_grep $PATH:/usr/xpg4/bin
+ GREP=$func_path_progs_result
+}
+
+
+## ------------------------------- ##
+## User overridable command paths. ##
+## ------------------------------- ##
+
+# All uppercase variable names are used for environment variables. These
+# variables can be overridden by the user before calling a script that
+# uses them if a suitable command of that name is not already available
+# in the command search PATH.
+
+: ${CP="cp -f"}
+: ${ECHO="printf %s\n"}
+: ${EGREP="$GREP -E"}
+: ${FGREP="$GREP -F"}
+: ${LN_S="ln -s"}
+: ${MAKE="make"}
+: ${MKDIR="mkdir"}
+: ${MV="mv -f"}
+: ${RM="rm -f"}
+: ${SHELL="${CONFIG_SHELL-/bin/sh}"}
+
+
+## -------------------- ##
+## Useful sed snippets. ##
+## -------------------- ##
+
+sed_dirname='s|/[^/]*$||'
+sed_basename='s|^.*/||'
+
+# Sed substitution that helps us do robust quoting. It backslashifies
+# metacharacters that are still active within double-quoted strings.
+sed_quote_subst='s|\([`"$\\]\)|\\\1|g'
+
+# Same as above, but do not quote variable references.
+sed_double_quote_subst='s/\(["`\\]\)/\\\1/g'
+
+# Sed substitution that turns a string into a regex matching for the
+# string literally.
+sed_make_literal_regex='s|[].[^$\\*\/]|\\&|g'
+
+# Sed substitution that converts a w32 file name or path
+# that contains forward slashes, into one that contains
+# (escaped) backslashes. A very naive implementation.
+sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g'
+
+# Re-'\' parameter expansions in output of sed_double_quote_subst that
+# were '\'-ed in input to the same. If an odd number of '\' preceded a
+# '$' in input to sed_double_quote_subst, that '$' was protected from
+# expansion. Since each input '\' is now two '\'s, look for any number
+# of runs of four '\'s followed by two '\'s and then a '$'. '\' that '$'.
+_G_bs='\\'
+_G_bs2='\\\\'
+_G_bs4='\\\\\\\\'
+_G_dollar='\$'
+sed_double_backslash="\
+ s/$_G_bs4/&\\
+/g
+ s/^$_G_bs2$_G_dollar/$_G_bs&/
+ s/\\([^$_G_bs]\\)$_G_bs2$_G_dollar/\\1$_G_bs2$_G_bs$_G_dollar/g
+ s/\n//g"
+
+
+## ----------------- ##
+## Global variables. ##
+## ----------------- ##
+
+# Except for the global variables explicitly listed below, the following
+# functions in the '^func_' namespace, and the '^require_' namespace
+# variables initialised in the 'Resource management' section, sourcing
+# this file will not pollute your global namespace with anything
+# else. There's no portable way to scope variables in Bourne shell
+# though, so actually running these functions will sometimes place
+# results into a variable named after the function, and often use
+# temporary variables in the '^_G_' namespace. If you are careful to
+# avoid using those namespaces casually in your sourcing script, things
+# should continue to work as you expect. And, of course, you can freely
+# overwrite any of the functions or variables defined here before
+# calling anything to customize them.
+
+EXIT_SUCCESS=0
+EXIT_FAILURE=1
+EXIT_MISMATCH=63 # $? = 63 is used to indicate version mismatch to missing.
+EXIT_SKIP=77 # $? = 77 is used to indicate a skipped test to automake.
+
+# Allow overriding, eg assuming that you follow the convention of
+# putting '$debug_cmd' at the start of all your functions, you can get
+# bash to show function call trace with:
+#
+# debug_cmd='eval echo "${FUNCNAME[0]} $*" >&2' bash your-script-name
+debug_cmd=${debug_cmd-":"}
+exit_cmd=:
+
+# By convention, finish your script with:
+#
+# exit $exit_status
+#
+# so that you can set exit_status to non-zero if you want to indicate
+# something went wrong during execution without actually bailing out at
+# the point of failure.
+exit_status=$EXIT_SUCCESS
+
+# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh
+# is ksh but when the shell is invoked as "sh" and the current value of
+# the _XPG environment variable is not equal to 1 (one), the special
+# positional parameter $0, within a function call, is the name of the
+# function.
+progpath=$0
+
+# The name of this program.
+progname=`$ECHO "$progpath" |$SED "$sed_basename"`
+
+# Make sure we have an absolute progpath for reexecution:
+case $progpath in
+ [\\/]*|[A-Za-z]:\\*) ;;
+ *[\\/]*)
+ progdir=`$ECHO "$progpath" |$SED "$sed_dirname"`
+ progdir=`cd "$progdir" && pwd`
+ progpath=$progdir/$progname
+ ;;
+ *)
+ _G_IFS=$IFS
+ IFS=${PATH_SEPARATOR-:}
+ for progdir in $PATH; do
+ IFS=$_G_IFS
+ test -x "$progdir/$progname" && break
+ done
+ IFS=$_G_IFS
+ test -n "$progdir" || progdir=`pwd`
+ progpath=$progdir/$progname
+ ;;
+esac
+
+
+## ----------------- ##
+## Standard options. ##
+## ----------------- ##
+
+# The following options affect the operation of the functions defined
+# below, and should be set appropriately depending on run-time para-
+# meters passed on the command line.
+
+opt_dry_run=false
+opt_quiet=false
+opt_verbose=false
+
+# Categories 'all' and 'none' are always available. Append any others
+# you will pass as the first argument to func_warning from your own
+# code.
+warning_categories=
+
+# By default, display warnings according to 'opt_warning_types'. Set
+# 'warning_func' to ':' to elide all warnings, or func_fatal_error to
+# treat the next displayed warning as a fatal error.
+warning_func=func_warn_and_continue
+
+# Set to 'all' to display all warnings, 'none' to suppress all
+# warnings, or a space delimited list of some subset of
+# 'warning_categories' to display only the listed warnings.
+opt_warning_types=all
+
+
+## -------------------- ##
+## Resource management. ##
+## -------------------- ##
+
+# This section contains definitions for functions that each ensure a
+# particular resource (a file, or a non-empty configuration variable for
+# example) is available, and if appropriate to extract default values
+# from pertinent package files. Call them using their associated
+# 'require_*' variable to ensure that they are executed, at most, once.
+#
+# It's entirely deliberate that calling these functions can set
+# variables that don't obey the namespace limitations obeyed by the rest
+# of this file, in order that that they be as useful as possible to
+# callers.
+
+
+# require_term_colors
+# -------------------
+# Allow display of bold text on terminals that support it.
+require_term_colors=func_require_term_colors
+func_require_term_colors ()
+{
+ $debug_cmd
+
+ test -t 1 && {
+ # COLORTERM and USE_ANSI_COLORS environment variables take
+ # precedence, because most terminfo databases neglect to describe
+ # whether color sequences are supported.
+ test -n "${COLORTERM+set}" && : ${USE_ANSI_COLORS="1"}
+
+ if test 1 = "$USE_ANSI_COLORS"; then
+ # Standard ANSI escape sequences
+ tc_reset='\e[0m'
+ tc_bold='\e[1m'; tc_standout='\e[7m'
+ tc_red='\e[31m'; tc_green='\e[32m'
+ tc_blue='\e[34m'; tc_cyan='\e[36m'
+ else
+ # Otherwise trust the terminfo database after all.
+ test -n "`tput sgr0 2>/dev/null`" && {
+ tc_reset=`tput sgr0`
+ test -n "`tput bold 2>/dev/null`" && tc_bold=`tput bold`
+ tc_standout=$tc_bold
+ test -n "`tput smso 2>/dev/null`" && tc_standout=`tput smso`
+ test -n "`tput setaf 1 2>/dev/null`" && tc_red=`tput setaf 1`
+ test -n "`tput setaf 2 2>/dev/null`" && tc_green=`tput setaf 2`
+ test -n "`tput setaf 4 2>/dev/null`" && tc_blue=`tput setaf 4`
+ test -n "`tput setaf 5 2>/dev/null`" && tc_cyan=`tput setaf 5`
+ }
+ fi
+ }
+
+ require_term_colors=:
+}
+
+
+## ----------------- ##
+## Function library. ##
+## ----------------- ##
+
+# This section contains a variety of useful functions to call in your
+# scripts. Take note of the portable wrappers for features provided by
+# some modern shells, which will fall back to slower equivalents on
+# less featureful shells.
+
+
+# func_append VAR VALUE
+# ---------------------
+# Append VALUE onto the existing contents of VAR.
+
+ # We should try to minimise forks, especially on Windows where they are
+ # unreasonably slow, so skip the feature probes when bash or zsh are
+ # being used:
+ if test set = "${BASH_VERSION+set}${ZSH_VERSION+set}"; then
+ : ${_G_HAVE_ARITH_OP="yes"}
+ : ${_G_HAVE_XSI_OPS="yes"}
+ # The += operator was introduced in bash 3.1
+ case $BASH_VERSION in
+ [12].* | 3.0 | 3.0*) ;;
+ *)
+ : ${_G_HAVE_PLUSEQ_OP="yes"}
+ ;;
+ esac
+ fi
+
+ # _G_HAVE_PLUSEQ_OP
+ # Can be empty, in which case the shell is probed, "yes" if += is
+ # useable or anything else if it does not work.
+ test -z "$_G_HAVE_PLUSEQ_OP" \
+ && (eval 'x=a; x+=" b"; test "a b" = "$x"') 2>/dev/null \
+ && _G_HAVE_PLUSEQ_OP=yes
+
+if test yes = "$_G_HAVE_PLUSEQ_OP"
+then
+ # This is an XSI compatible shell, allowing a faster implementation...
+ eval 'func_append ()
+ {
+ $debug_cmd
+
+ eval "$1+=\$2"
+ }'
+else
+ # ...otherwise fall back to using expr, which is often a shell builtin.
+ func_append ()
+ {
+ $debug_cmd
+
+ eval "$1=\$$1\$2"
+ }
+fi
+
+
+# func_append_quoted VAR VALUE
+# ----------------------------
+# Quote VALUE and append to the end of shell variable VAR, separated
+# by a space.
+if test yes = "$_G_HAVE_PLUSEQ_OP"; then
+ eval 'func_append_quoted ()
+ {
+ $debug_cmd
+
+ func_quote_for_eval "$2"
+ eval "$1+=\\ \$func_quote_for_eval_result"
+ }'
+else
+ func_append_quoted ()
+ {
+ $debug_cmd
+
+ func_quote_for_eval "$2"
+ eval "$1=\$$1\\ \$func_quote_for_eval_result"
+ }
+fi
+
+
+# func_append_uniq VAR VALUE
+# --------------------------
+# Append unique VALUE onto the existing contents of VAR, assuming
+# entries are delimited by the first character of VALUE. For example:
+#
+# func_append_uniq options " --another-option option-argument"
+#
+# will only append to $options if " --another-option option-argument "
+# is not already present somewhere in $options already (note spaces at
+# each end implied by leading space in second argument).
+func_append_uniq ()
+{
+ $debug_cmd
+
+ eval _G_current_value='`$ECHO $'$1'`'
+ _G_delim=`expr "$2" : '\(.\)'`
+
+ case $_G_delim$_G_current_value$_G_delim in
+ *"$2$_G_delim"*) ;;
+ *) func_append "$@" ;;
+ esac
+}
+
+
+# func_arith TERM...
+# ------------------
+# Set func_arith_result to the result of evaluating TERMs.
+ test -z "$_G_HAVE_ARITH_OP" \
+ && (eval 'test 2 = $(( 1 + 1 ))') 2>/dev/null \
+ && _G_HAVE_ARITH_OP=yes
+
+if test yes = "$_G_HAVE_ARITH_OP"; then
+ eval 'func_arith ()
+ {
+ $debug_cmd
+
+ func_arith_result=$(( $* ))
+ }'
+else
+ func_arith ()
+ {
+ $debug_cmd
+
+ func_arith_result=`expr "$@"`
+ }
+fi
+
+
+# func_basename FILE
+# ------------------
+# Set func_basename_result to FILE with everything up to and including
+# the last / stripped.
+if test yes = "$_G_HAVE_XSI_OPS"; then
+ # If this shell supports suffix pattern removal, then use it to avoid
+ # forking. Hide the definitions single quotes in case the shell chokes
+ # on unsupported syntax...
+ _b='func_basename_result=${1##*/}'
+ _d='case $1 in
+ */*) func_dirname_result=${1%/*}$2 ;;
+ * ) func_dirname_result=$3 ;;
+ esac'
+
+else
+ # ...otherwise fall back to using sed.
+ _b='func_basename_result=`$ECHO "$1" |$SED "$sed_basename"`'
+ _d='func_dirname_result=`$ECHO "$1" |$SED "$sed_dirname"`
+ if test "X$func_dirname_result" = "X$1"; then
+ func_dirname_result=$3
+ else
+ func_append func_dirname_result "$2"
+ fi'
+fi
+
+eval 'func_basename ()
+{
+ $debug_cmd
+
+ '"$_b"'
+}'
+
+
+# func_dirname FILE APPEND NONDIR_REPLACEMENT
+# -------------------------------------------
+# Compute the dirname of FILE. If nonempty, add APPEND to the result,
+# otherwise set result to NONDIR_REPLACEMENT.
+eval 'func_dirname ()
+{
+ $debug_cmd
+
+ '"$_d"'
+}'
+
+
+# func_dirname_and_basename FILE APPEND NONDIR_REPLACEMENT
+# --------------------------------------------------------
+# Perform func_basename and func_dirname in a single function
+# call:
+# dirname: Compute the dirname of FILE. If nonempty,
+# add APPEND to the result, otherwise set result
+# to NONDIR_REPLACEMENT.
+# value returned in "$func_dirname_result"
+# basename: Compute filename of FILE.
+# value retuned in "$func_basename_result"
+# For efficiency, we do not delegate to the functions above but instead
+# duplicate the functionality here.
+eval 'func_dirname_and_basename ()
+{
+ $debug_cmd
+
+ '"$_b"'
+ '"$_d"'
+}'
+
+
+# func_echo ARG...
+# ----------------
+# Echo program name prefixed message.
+func_echo ()
+{
+ $debug_cmd
+
+ _G_message=$*
+
+ func_echo_IFS=$IFS
+ IFS=$nl
+ for _G_line in $_G_message; do
+ IFS=$func_echo_IFS
+ $ECHO "$progname: $_G_line"
+ done
+ IFS=$func_echo_IFS
+}
+
+
+# func_echo_all ARG...
+# --------------------
+# Invoke $ECHO with all args, space-separated.
+func_echo_all ()
+{
+ $ECHO "$*"
+}
+
+
+# func_echo_infix_1 INFIX ARG...
+# ------------------------------
+# Echo program name, followed by INFIX on the first line, with any
+# additional lines not showing INFIX.
+func_echo_infix_1 ()
+{
+ $debug_cmd
+
+ $require_term_colors
+
+ _G_infix=$1; shift
+ _G_indent=$_G_infix
+ _G_prefix="$progname: $_G_infix: "
+ _G_message=$*
+
+ # Strip color escape sequences before counting printable length
+ for _G_tc in "$tc_reset" "$tc_bold" "$tc_standout" "$tc_red" "$tc_green" "$tc_blue" "$tc_cyan"
+ do
+ test -n "$_G_tc" && {
+ _G_esc_tc=`$ECHO "$_G_tc" | $SED "$sed_make_literal_regex"`
+ _G_indent=`$ECHO "$_G_indent" | $SED "s|$_G_esc_tc||g"`
+ }
+ done
+ _G_indent="$progname: "`echo "$_G_indent" | $SED 's|.| |g'`" " ## exclude from sc_prohibit_nested_quotes
+
+ func_echo_infix_1_IFS=$IFS
+ IFS=$nl
+ for _G_line in $_G_message; do
+ IFS=$func_echo_infix_1_IFS
+ $ECHO "$_G_prefix$tc_bold$_G_line$tc_reset" >&2
+ _G_prefix=$_G_indent
+ done
+ IFS=$func_echo_infix_1_IFS
+}
+
+
+# func_error ARG...
+# -----------------
+# Echo program name prefixed message to standard error.
+func_error ()
+{
+ $debug_cmd
+
+ $require_term_colors
+
+ func_echo_infix_1 " $tc_standout${tc_red}error$tc_reset" "$*" >&2
+}
+
+
+# func_fatal_error ARG...
+# -----------------------
+# Echo program name prefixed message to standard error, and exit.
+func_fatal_error ()
+{
+ $debug_cmd
+
+ func_error "$*"
+ exit $EXIT_FAILURE
+}
+
+
+# func_grep EXPRESSION FILENAME
+# -----------------------------
+# Check whether EXPRESSION matches any line of FILENAME, without output.
+func_grep ()
+{
+ $debug_cmd
+
+ $GREP "$1" "$2" >/dev/null 2>&1
+}
+
+
+# func_len STRING
+# ---------------
+# Set func_len_result to the length of STRING. STRING may not
+# start with a hyphen.
+ test -z "$_G_HAVE_XSI_OPS" \
+ && (eval 'x=a/b/c;
+ test 5aa/bb/cc = "${#x}${x%%/*}${x%/*}${x#*/}${x##*/}"') 2>/dev/null \
+ && _G_HAVE_XSI_OPS=yes
+
+if test yes = "$_G_HAVE_XSI_OPS"; then
+ eval 'func_len ()
+ {
+ $debug_cmd
+
+ func_len_result=${#1}
+ }'
+else
+ func_len ()
+ {
+ $debug_cmd
+
+ func_len_result=`expr "$1" : ".*" 2>/dev/null || echo $max_cmd_len`
+ }
+fi
+
+
+# func_mkdir_p DIRECTORY-PATH
+# ---------------------------
+# Make sure the entire path to DIRECTORY-PATH is available.
+func_mkdir_p ()
+{
+ $debug_cmd
+
+ _G_directory_path=$1
+ _G_dir_list=
+
+ if test -n "$_G_directory_path" && test : != "$opt_dry_run"; then
+
+ # Protect directory names starting with '-'
+ case $_G_directory_path in
+ -*) _G_directory_path=./$_G_directory_path ;;
+ esac
+
+ # While some portion of DIR does not yet exist...
+ while test ! -d "$_G_directory_path"; do
+ # ...make a list in topmost first order. Use a colon delimited
+ # list incase some portion of path contains whitespace.
+ _G_dir_list=$_G_directory_path:$_G_dir_list
+
+ # If the last portion added has no slash in it, the list is done
+ case $_G_directory_path in */*) ;; *) break ;; esac
+
+ # ...otherwise throw away the child directory and loop
+ _G_directory_path=`$ECHO "$_G_directory_path" | $SED -e "$sed_dirname"`
+ done
+ _G_dir_list=`$ECHO "$_G_dir_list" | $SED 's|:*$||'`
+
+ func_mkdir_p_IFS=$IFS; IFS=:
+ for _G_dir in $_G_dir_list; do
+ IFS=$func_mkdir_p_IFS
+ # mkdir can fail with a 'File exist' error if two processes
+ # try to create one of the directories concurrently. Don't
+ # stop in that case!
+ $MKDIR "$_G_dir" 2>/dev/null || :
+ done
+ IFS=$func_mkdir_p_IFS
+
+ # Bail out if we (or some other process) failed to create a directory.
+ test -d "$_G_directory_path" || \
+ func_fatal_error "Failed to create '$1'"
+ fi
+}
+
+
+# func_mktempdir [BASENAME]
+# -------------------------
+# Make a temporary directory that won't clash with other running
+# libtool processes, and avoids race conditions if possible. If
+# given, BASENAME is the basename for that directory.
+func_mktempdir ()
+{
+ $debug_cmd
+
+ _G_template=${TMPDIR-/tmp}/${1-$progname}
+
+ if test : = "$opt_dry_run"; then
+ # Return a directory name, but don't create it in dry-run mode
+ _G_tmpdir=$_G_template-$$
+ else
+
+ # If mktemp works, use that first and foremost
+ _G_tmpdir=`mktemp -d "$_G_template-XXXXXXXX" 2>/dev/null`
+
+ if test ! -d "$_G_tmpdir"; then
+ # Failing that, at least try and use $RANDOM to avoid a race
+ _G_tmpdir=$_G_template-${RANDOM-0}$$
+
+ func_mktempdir_umask=`umask`
+ umask 0077
+ $MKDIR "$_G_tmpdir"
+ umask $func_mktempdir_umask
+ fi
+
+ # If we're not in dry-run mode, bomb out on failure
+ test -d "$_G_tmpdir" || \
+ func_fatal_error "cannot create temporary directory '$_G_tmpdir'"
+ fi
+
+ $ECHO "$_G_tmpdir"
+}
+
+
+# func_normal_abspath PATH
+# ------------------------
+# Remove doubled-up and trailing slashes, "." path components,
+# and cancel out any ".." path components in PATH after making
+# it an absolute path.
+func_normal_abspath ()
+{
+ $debug_cmd
+
+ # These SED scripts presuppose an absolute path with a trailing slash.
+ _G_pathcar='s|^/\([^/]*\).*$|\1|'
+ _G_pathcdr='s|^/[^/]*||'
+ _G_removedotparts=':dotsl
+ s|/\./|/|g
+ t dotsl
+ s|/\.$|/|'
+ _G_collapseslashes='s|/\{1,\}|/|g'
+ _G_finalslash='s|/*$|/|'
+
+ # Start from root dir and reassemble the path.
+ func_normal_abspath_result=
+ func_normal_abspath_tpath=$1
+ func_normal_abspath_altnamespace=
+ case $func_normal_abspath_tpath in
+ "")
+ # Empty path, that just means $cwd.
+ func_stripname '' '/' "`pwd`"
+ func_normal_abspath_result=$func_stripname_result
+ return
+ ;;
+ # The next three entries are used to spot a run of precisely
+ # two leading slashes without using negated character classes;
+ # we take advantage of case's first-match behaviour.
+ ///*)
+ # Unusual form of absolute path, do nothing.
+ ;;
+ //*)
+ # Not necessarily an ordinary path; POSIX reserves leading '//'
+ # and for example Cygwin uses it to access remote file shares
+ # over CIFS/SMB, so we conserve a leading double slash if found.
+ func_normal_abspath_altnamespace=/
+ ;;
+ /*)
+ # Absolute path, do nothing.
+ ;;
+ *)
+ # Relative path, prepend $cwd.
+ func_normal_abspath_tpath=`pwd`/$func_normal_abspath_tpath
+ ;;
+ esac
+
+ # Cancel out all the simple stuff to save iterations. We also want
+ # the path to end with a slash for ease of parsing, so make sure
+ # there is one (and only one) here.
+ func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \
+ -e "$_G_removedotparts" -e "$_G_collapseslashes" -e "$_G_finalslash"`
+ while :; do
+ # Processed it all yet?
+ if test / = "$func_normal_abspath_tpath"; then
+ # If we ascended to the root using ".." the result may be empty now.
+ if test -z "$func_normal_abspath_result"; then
+ func_normal_abspath_result=/
+ fi
+ break
+ fi
+ func_normal_abspath_tcomponent=`$ECHO "$func_normal_abspath_tpath" | $SED \
+ -e "$_G_pathcar"`
+ func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \
+ -e "$_G_pathcdr"`
+ # Figure out what to do with it
+ case $func_normal_abspath_tcomponent in
+ "")
+ # Trailing empty path component, ignore it.
+ ;;
+ ..)
+ # Parent dir; strip last assembled component from result.
+ func_dirname "$func_normal_abspath_result"
+ func_normal_abspath_result=$func_dirname_result
+ ;;
+ *)
+ # Actual path component, append it.
+ func_append func_normal_abspath_result "/$func_normal_abspath_tcomponent"
+ ;;
+ esac
+ done
+ # Restore leading double-slash if one was found on entry.
+ func_normal_abspath_result=$func_normal_abspath_altnamespace$func_normal_abspath_result
+}
+
+
+# func_notquiet ARG...
+# --------------------
+# Echo program name prefixed message only when not in quiet mode.
+func_notquiet ()
+{
+ $debug_cmd
+
+ $opt_quiet || func_echo ${1+"$@"}
+
+ # A bug in bash halts the script if the last line of a function
+ # fails when set -e is in force, so we need another command to
+ # work around that:
+ :
+}
+
+
+# func_relative_path SRCDIR DSTDIR
+# --------------------------------
+# Set func_relative_path_result to the relative path from SRCDIR to DSTDIR.
+func_relative_path ()
+{
+ $debug_cmd
+
+ func_relative_path_result=
+ func_normal_abspath "$1"
+ func_relative_path_tlibdir=$func_normal_abspath_result
+ func_normal_abspath "$2"
+ func_relative_path_tbindir=$func_normal_abspath_result
+
+ # Ascend the tree starting from libdir
+ while :; do
+ # check if we have found a prefix of bindir
+ case $func_relative_path_tbindir in
+ $func_relative_path_tlibdir)
+ # found an exact match
+ func_relative_path_tcancelled=
+ break
+ ;;
+ $func_relative_path_tlibdir*)
+ # found a matching prefix
+ func_stripname "$func_relative_path_tlibdir" '' "$func_relative_path_tbindir"
+ func_relative_path_tcancelled=$func_stripname_result
+ if test -z "$func_relative_path_result"; then
+ func_relative_path_result=.
+ fi
+ break
+ ;;
+ *)
+ func_dirname $func_relative_path_tlibdir
+ func_relative_path_tlibdir=$func_dirname_result
+ if test -z "$func_relative_path_tlibdir"; then
+ # Have to descend all the way to the root!
+ func_relative_path_result=../$func_relative_path_result
+ func_relative_path_tcancelled=$func_relative_path_tbindir
+ break
+ fi
+ func_relative_path_result=../$func_relative_path_result
+ ;;
+ esac
+ done
+
+ # Now calculate path; take care to avoid doubling-up slashes.
+ func_stripname '' '/' "$func_relative_path_result"
+ func_relative_path_result=$func_stripname_result
+ func_stripname '/' '/' "$func_relative_path_tcancelled"
+ if test -n "$func_stripname_result"; then
+ func_append func_relative_path_result "/$func_stripname_result"
+ fi
+
+ # Normalisation. If bindir is libdir, return '.' else relative path.
+ if test -n "$func_relative_path_result"; then
+ func_stripname './' '' "$func_relative_path_result"
+ func_relative_path_result=$func_stripname_result
+ fi
+
+ test -n "$func_relative_path_result" || func_relative_path_result=.
+
+ :
+}
+
+
+# func_quote_for_eval ARG...
+# --------------------------
+# Aesthetically quote ARGs to be evaled later.
+# This function returns two values:
+# i) func_quote_for_eval_result
+# double-quoted, suitable for a subsequent eval
+# ii) func_quote_for_eval_unquoted_result
+# has all characters that are still active within double
+# quotes backslashified.
+func_quote_for_eval ()
+{
+ $debug_cmd
+
+ func_quote_for_eval_unquoted_result=
+ func_quote_for_eval_result=
+ while test 0 -lt $#; do
+ case $1 in
+ *[\\\`\"\$]*)
+ _G_unquoted_arg=`printf '%s\n' "$1" |$SED "$sed_quote_subst"` ;;
+ *)
+ _G_unquoted_arg=$1 ;;
+ esac
+ if test -n "$func_quote_for_eval_unquoted_result"; then
+ func_append func_quote_for_eval_unquoted_result " $_G_unquoted_arg"
+ else
+ func_append func_quote_for_eval_unquoted_result "$_G_unquoted_arg"
+ fi
+
+ case $_G_unquoted_arg in
+ # Double-quote args containing shell metacharacters to delay
+ # word splitting, command substitution and variable expansion
+ # for a subsequent eval.
+ # Many Bourne shells cannot handle close brackets correctly
+ # in scan sets, so we specify it separately.
+ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
+ _G_quoted_arg=\"$_G_unquoted_arg\"
+ ;;
+ *)
+ _G_quoted_arg=$_G_unquoted_arg
+ ;;
+ esac
+
+ if test -n "$func_quote_for_eval_result"; then
+ func_append func_quote_for_eval_result " $_G_quoted_arg"
+ else
+ func_append func_quote_for_eval_result "$_G_quoted_arg"
+ fi
+ shift
+ done
+}
+
+
+# func_quote_for_expand ARG
+# -------------------------
+# Aesthetically quote ARG to be evaled later; same as above,
+# but do not quote variable references.
+func_quote_for_expand ()
+{
+ $debug_cmd
+
+ case $1 in
+ *[\\\`\"]*)
+ _G_arg=`$ECHO "$1" | $SED \
+ -e "$sed_double_quote_subst" -e "$sed_double_backslash"` ;;
+ *)
+ _G_arg=$1 ;;
+ esac
+
+ case $_G_arg in
+ # Double-quote args containing shell metacharacters to delay
+ # word splitting and command substitution for a subsequent eval.
+ # Many Bourne shells cannot handle close brackets correctly
+ # in scan sets, so we specify it separately.
+ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
+ _G_arg=\"$_G_arg\"
+ ;;
+ esac
+
+ func_quote_for_expand_result=$_G_arg
+}
+
+
+# func_stripname PREFIX SUFFIX NAME
+# ---------------------------------
+# strip PREFIX and SUFFIX from NAME, and store in func_stripname_result.
+# PREFIX and SUFFIX must not contain globbing or regex special
+# characters, hashes, percent signs, but SUFFIX may contain a leading
+# dot (in which case that matches only a dot).
+if test yes = "$_G_HAVE_XSI_OPS"; then
+ eval 'func_stripname ()
+ {
+ $debug_cmd
+
+ # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are
+ # positional parameters, so assign one to ordinary variable first.
+ func_stripname_result=$3
+ func_stripname_result=${func_stripname_result#"$1"}
+ func_stripname_result=${func_stripname_result%"$2"}
+ }'
+else
+ func_stripname ()
+ {
+ $debug_cmd
+
+ case $2 in
+ .*) func_stripname_result=`$ECHO "$3" | $SED -e "s%^$1%%" -e "s%\\\\$2\$%%"`;;
+ *) func_stripname_result=`$ECHO "$3" | $SED -e "s%^$1%%" -e "s%$2\$%%"`;;
+ esac
+ }
+fi
+
+
+# func_show_eval CMD [FAIL_EXP]
+# -----------------------------
+# Unless opt_quiet is true, then output CMD. Then, if opt_dryrun is
+# not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP
+# is given, then evaluate it.
+func_show_eval ()
+{
+ $debug_cmd
+
+ _G_cmd=$1
+ _G_fail_exp=${2-':'}
+
+ func_quote_for_expand "$_G_cmd"
+ eval "func_notquiet $func_quote_for_expand_result"
+
+ $opt_dry_run || {
+ eval "$_G_cmd"
+ _G_status=$?
+ if test 0 -ne "$_G_status"; then
+ eval "(exit $_G_status); $_G_fail_exp"
+ fi
+ }
+}
+
+
+# func_show_eval_locale CMD [FAIL_EXP]
+# ------------------------------------
+# Unless opt_quiet is true, then output CMD. Then, if opt_dryrun is
+# not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP
+# is given, then evaluate it. Use the saved locale for evaluation.
+func_show_eval_locale ()
+{
+ $debug_cmd
+
+ _G_cmd=$1
+ _G_fail_exp=${2-':'}
+
+ $opt_quiet || {
+ func_quote_for_expand "$_G_cmd"
+ eval "func_echo $func_quote_for_expand_result"
+ }
+
+ $opt_dry_run || {
+ eval "$_G_user_locale
+ $_G_cmd"
+ _G_status=$?
+ eval "$_G_safe_locale"
+ if test 0 -ne "$_G_status"; then
+ eval "(exit $_G_status); $_G_fail_exp"
+ fi
+ }
+}
+
+
+# func_tr_sh
+# ----------
+# Turn $1 into a string suitable for a shell variable name.
+# Result is stored in $func_tr_sh_result. All characters
+# not in the set a-zA-Z0-9_ are replaced with '_'. Further,
+# if $1 begins with a digit, a '_' is prepended as well.
+func_tr_sh ()
+{
+ $debug_cmd
+
+ case $1 in
+ [0-9]* | *[!a-zA-Z0-9_]*)
+ func_tr_sh_result=`$ECHO "$1" | $SED -e 's/^\([0-9]\)/_\1/' -e 's/[^a-zA-Z0-9_]/_/g'`
+ ;;
+ * )
+ func_tr_sh_result=$1
+ ;;
+ esac
+}
+
+
+# func_verbose ARG...
+# -------------------
+# Echo program name prefixed message in verbose mode only.
+func_verbose ()
+{
+ $debug_cmd
+
+ $opt_verbose && func_echo "$*"
+
+ :
+}
+
+
+# func_warn_and_continue ARG...
+# -----------------------------
+# Echo program name prefixed warning message to standard error.
+func_warn_and_continue ()
+{
+ $debug_cmd
+
+ $require_term_colors
+
+ func_echo_infix_1 "${tc_red}warning$tc_reset" "$*" >&2
+}
+
+
+# func_warning CATEGORY ARG...
+# ----------------------------
+# Echo program name prefixed warning message to standard error. Warning
+# messages can be filtered according to CATEGORY, where this function
+# elides messages where CATEGORY is not listed in the global variable
+# 'opt_warning_types'.
+func_warning ()
+{
+ $debug_cmd
+
+ # CATEGORY must be in the warning_categories list!
+ case " $warning_categories " in
+ *" $1 "*) ;;
+ *) func_internal_error "invalid warning category '$1'" ;;
+ esac
+
+ _G_category=$1
+ shift
+
+ case " $opt_warning_types " in
+ *" $_G_category "*) $warning_func ${1+"$@"} ;;
+ esac
+}
+
+
+# func_sort_ver VER1 VER2
+# -----------------------
+# 'sort -V' is not generally available.
+# Note this deviates from the version comparison in automake
+# in that it treats 1.5 < 1.5.0, and treats 1.4.4a < 1.4-p3a
+# but this should suffice as we won't be specifying old
+# version formats or redundant trailing .0 in bootstrap.conf.
+# If we did want full compatibility then we should probably
+# use m4_version_compare from autoconf.
+func_sort_ver ()
+{
+ $debug_cmd
+
+ printf '%s\n%s\n' "$1" "$2" \
+ | sort -t. -k 1,1n -k 2,2n -k 3,3n -k 4,4n -k 5,5n -k 6,6n -k 7,7n -k 8,8n -k 9,9n
+}
+
+# func_lt_ver PREV CURR
+# ---------------------
+# Return true if PREV and CURR are in the correct order according to
+# func_sort_ver, otherwise false. Use it like this:
+#
+# func_lt_ver "$prev_ver" "$proposed_ver" || func_fatal_error "..."
+func_lt_ver ()
+{
+ $debug_cmd
+
+ test "x$1" = x`func_sort_ver "$1" "$2" | $SED 1q`
+}
+
+
+# Local variables:
+# mode: shell-script
+# sh-indentation: 2
+# eval: (add-hook 'before-save-hook 'time-stamp)
+# time-stamp-pattern: "10/scriptversion=%:y-%02m-%02d.%02H; # UTC"
+# time-stamp-time-zone: "UTC"
+# End:
+#! /bin/sh
+
+# Set a version string for this script.
+scriptversion=2014-01-07.03; # UTC
+
+# A portable, pluggable option parser for Bourne shell.
+# Written by Gary V. Vaughan, 2010
+
+# Copyright (C) 2010-2015 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.
+
+# 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 3 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, see <http://www.gnu.org/licenses/>.
+
+# Please report bugs or propose patches to gary@gnu.org.
+
+
+## ------ ##
+## Usage. ##
+## ------ ##
+
+# This file is a library for parsing options in your shell scripts along
+# with assorted other useful supporting features that you can make use
+# of too.
+#
+# For the simplest scripts you might need only:
+#
+# #!/bin/sh
+# . relative/path/to/funclib.sh
+# . relative/path/to/options-parser
+# scriptversion=1.0
+# func_options ${1+"$@"}
+# eval set dummy "$func_options_result"; shift
+# ...rest of your script...
+#
+# In order for the '--version' option to work, you will need to have a
+# suitably formatted comment like the one at the top of this file
+# starting with '# Written by ' and ending with '# warranty; '.
+#
+# For '-h' and '--help' to work, you will also need a one line
+# description of your script's purpose in a comment directly above the
+# '# Written by ' line, like the one at the top of this file.
+#
+# The default options also support '--debug', which will turn on shell
+# execution tracing (see the comment above debug_cmd below for another
+# use), and '--verbose' and the func_verbose function to allow your script
+# to display verbose messages only when your user has specified
+# '--verbose'.
+#
+# After sourcing this file, you can plug processing for additional
+# options by amending the variables from the 'Configuration' section
+# below, and following the instructions in the 'Option parsing'
+# section further down.
+
+## -------------- ##
+## Configuration. ##
+## -------------- ##
+
+# You should override these variables in your script after sourcing this
+# file so that they reflect the customisations you have added to the
+# option parser.
+
+# The usage line for option parsing errors and the start of '-h' and
+# '--help' output messages. You can embed shell variables for delayed
+# expansion at the time the message is displayed, but you will need to
+# quote other shell meta-characters carefully to prevent them being
+# expanded when the contents are evaled.
+usage='$progpath [OPTION]...'
+
+# Short help message in response to '-h' and '--help'. Add to this or
+# override it after sourcing this library to reflect the full set of
+# options your script accepts.
+usage_message="\
+ --debug enable verbose shell tracing
+ -W, --warnings=CATEGORY
+ report the warnings falling in CATEGORY [all]
+ -v, --verbose verbosely report processing
+ --version print version information and exit
+ -h, --help print short or long help message and exit
+"
+
+# Additional text appended to 'usage_message' in response to '--help'.
+long_help_message="
+Warning categories include:
+ 'all' show all warnings
+ 'none' turn off all the warnings
+ 'error' warnings are treated as fatal errors"
+
+# Help message printed before fatal option parsing errors.
+fatal_help="Try '\$progname --help' for more information."
+
+
+
+## ------------------------- ##
+## Hook function management. ##
+## ------------------------- ##
+
+# This section contains functions for adding, removing, and running hooks
+# to the main code. A hook is just a named list of of function, that can
+# be run in order later on.
+
+# func_hookable FUNC_NAME
+# -----------------------
+# Declare that FUNC_NAME will run hooks added with
+# 'func_add_hook FUNC_NAME ...'.
+func_hookable ()
+{
+ $debug_cmd
+
+ func_append hookable_fns " $1"
+}
+
+
+# func_add_hook FUNC_NAME HOOK_FUNC
+# ---------------------------------
+# Request that FUNC_NAME call HOOK_FUNC before it returns. FUNC_NAME must
+# first have been declared "hookable" by a call to 'func_hookable'.
+func_add_hook ()
+{
+ $debug_cmd
+
+ case " $hookable_fns " in
+ *" $1 "*) ;;
+ *) func_fatal_error "'$1' does not accept hook functions." ;;
+ esac
+
+ eval func_append ${1}_hooks '" $2"'
+}
+
+
+# func_remove_hook FUNC_NAME HOOK_FUNC
+# ------------------------------------
+# Remove HOOK_FUNC from the list of functions called by FUNC_NAME.
+func_remove_hook ()
+{
+ $debug_cmd
+
+ eval ${1}_hooks='`$ECHO "\$'$1'_hooks" |$SED "s| '$2'||"`'
+}
+
+
+# func_run_hooks FUNC_NAME [ARG]...
+# ---------------------------------
+# Run all hook functions registered to FUNC_NAME.
+# It is assumed that the list of hook functions contains nothing more
+# than a whitespace-delimited list of legal shell function names, and
+# no effort is wasted trying to catch shell meta-characters or preserve
+# whitespace.
+func_run_hooks ()
+{
+ $debug_cmd
+
+ case " $hookable_fns " in
+ *" $1 "*) ;;
+ *) func_fatal_error "'$1' does not support hook funcions.n" ;;
+ esac
+
+ eval _G_hook_fns=\$$1_hooks; shift
+
+ for _G_hook in $_G_hook_fns; do
+ eval $_G_hook '"$@"'
+
+ # store returned options list back into positional
+ # parameters for next 'cmd' execution.
+ eval _G_hook_result=\$${_G_hook}_result
+ eval set dummy "$_G_hook_result"; shift
+ done
+
+ func_quote_for_eval ${1+"$@"}
+ func_run_hooks_result=$func_quote_for_eval_result
+}
+
+
+
+## --------------- ##
+## Option parsing. ##
+## --------------- ##
+
+# In order to add your own option parsing hooks, you must accept the
+# full positional parameter list in your hook function, remove any
+# options that you action, and then pass back the remaining unprocessed
+# options in '<hooked_function_name>_result', escaped suitably for
+# 'eval'. Like this:
+#
+# my_options_prep ()
+# {
+# $debug_cmd
+#
+# # Extend the existing usage message.
+# usage_message=$usage_message'
+# -s, --silent don'\''t print informational messages
+# '
+#
+# func_quote_for_eval ${1+"$@"}
+# my_options_prep_result=$func_quote_for_eval_result
+# }
+# func_add_hook func_options_prep my_options_prep
+#
+#
+# my_silent_option ()
+# {
+# $debug_cmd
+#
+# # Note that for efficiency, we parse as many options as we can
+# # recognise in a loop before passing the remainder back to the
+# # caller on the first unrecognised argument we encounter.
+# while test $# -gt 0; do
+# opt=$1; shift
+# case $opt in
+# --silent|-s) opt_silent=: ;;
+# # Separate non-argument short options:
+# -s*) func_split_short_opt "$_G_opt"
+# set dummy "$func_split_short_opt_name" \
+# "-$func_split_short_opt_arg" ${1+"$@"}
+# shift
+# ;;
+# *) set dummy "$_G_opt" "$*"; shift; break ;;
+# esac
+# done
+#
+# func_quote_for_eval ${1+"$@"}
+# my_silent_option_result=$func_quote_for_eval_result
+# }
+# func_add_hook func_parse_options my_silent_option
+#
+#
+# my_option_validation ()
+# {
+# $debug_cmd
+#
+# $opt_silent && $opt_verbose && func_fatal_help "\
+# '--silent' and '--verbose' options are mutually exclusive."
+#
+# func_quote_for_eval ${1+"$@"}
+# my_option_validation_result=$func_quote_for_eval_result
+# }
+# func_add_hook func_validate_options my_option_validation
+#
+# You'll alse need to manually amend $usage_message to reflect the extra
+# options you parse. It's preferable to append if you can, so that
+# multiple option parsing hooks can be added safely.
+
+
+# func_options [ARG]...
+# ---------------------
+# All the functions called inside func_options are hookable. See the
+# individual implementations for details.
+func_hookable func_options
+func_options ()
+{
+ $debug_cmd
+
+ func_options_prep ${1+"$@"}
+ eval func_parse_options \
+ ${func_options_prep_result+"$func_options_prep_result"}
+ eval func_validate_options \
+ ${func_parse_options_result+"$func_parse_options_result"}
+
+ eval func_run_hooks func_options \
+ ${func_validate_options_result+"$func_validate_options_result"}
+
+ # save modified positional parameters for caller
+ func_options_result=$func_run_hooks_result
+}
+
+
+# func_options_prep [ARG]...
+# --------------------------
+# All initialisations required before starting the option parse loop.
+# Note that when calling hook functions, we pass through the list of
+# positional parameters. If a hook function modifies that list, and
+# needs to propogate that back to rest of this script, then the complete
+# modified list must be put in 'func_run_hooks_result' before
+# returning.
+func_hookable func_options_prep
+func_options_prep ()
+{
+ $debug_cmd
+
+ # Option defaults:
+ opt_verbose=false
+ opt_warning_types=
+
+ func_run_hooks func_options_prep ${1+"$@"}
+
+ # save modified positional parameters for caller
+ func_options_prep_result=$func_run_hooks_result
+}
+
+
+# func_parse_options [ARG]...
+# ---------------------------
+# The main option parsing loop.
+func_hookable func_parse_options
+func_parse_options ()
+{
+ $debug_cmd
+
+ func_parse_options_result=
+
+ # this just eases exit handling
+ while test $# -gt 0; do
+ # Defer to hook functions for initial option parsing, so they
+ # get priority in the event of reusing an option name.
+ func_run_hooks func_parse_options ${1+"$@"}
+
+ # Adjust func_parse_options positional parameters to match
+ eval set dummy "$func_run_hooks_result"; shift
+
+ # Break out of the loop if we already parsed every option.
+ test $# -gt 0 || break
+
+ _G_opt=$1
+ shift
+ case $_G_opt in
+ --debug|-x) debug_cmd='set -x'
+ func_echo "enabling shell trace mode"
+ $debug_cmd
+ ;;
+
+ --no-warnings|--no-warning|--no-warn)
+ set dummy --warnings none ${1+"$@"}
+ shift
+ ;;
+
+ --warnings|--warning|-W)
+ test $# = 0 && func_missing_arg $_G_opt && break
+ case " $warning_categories $1" in
+ *" $1 "*)
+ # trailing space prevents matching last $1 above
+ func_append_uniq opt_warning_types " $1"
+ ;;
+ *all)
+ opt_warning_types=$warning_categories
+ ;;
+ *none)
+ opt_warning_types=none
+ warning_func=:
+ ;;
+ *error)
+ opt_warning_types=$warning_categories
+ warning_func=func_fatal_error
+ ;;
+ *)
+ func_fatal_error \
+ "unsupported warning category: '$1'"
+ ;;
+ esac
+ shift
+ ;;
+
+ --verbose|-v) opt_verbose=: ;;
+ --version) func_version ;;
+ -\?|-h) func_usage ;;
+ --help) func_help ;;
+
+ # Separate optargs to long options (plugins may need this):
+ --*=*) func_split_equals "$_G_opt"
+ set dummy "$func_split_equals_lhs" \
+ "$func_split_equals_rhs" ${1+"$@"}
+ shift
+ ;;
+
+ # Separate optargs to short options:
+ -W*)
+ func_split_short_opt "$_G_opt"
+ set dummy "$func_split_short_opt_name" \
+ "$func_split_short_opt_arg" ${1+"$@"}
+ shift
+ ;;
+
+ # Separate non-argument short options:
+ -\?*|-h*|-v*|-x*)
+ func_split_short_opt "$_G_opt"
+ set dummy "$func_split_short_opt_name" \
+ "-$func_split_short_opt_arg" ${1+"$@"}
+ shift
+ ;;
+
+ --) break ;;
+ -*) func_fatal_help "unrecognised option: '$_G_opt'" ;;
+ *) set dummy "$_G_opt" ${1+"$@"}; shift; break ;;
+ esac
+ done
+
+ # save modified positional parameters for caller
+ func_quote_for_eval ${1+"$@"}
+ func_parse_options_result=$func_quote_for_eval_result
+}
+
+
+# func_validate_options [ARG]...
+# ------------------------------
+# Perform any sanity checks on option settings and/or unconsumed
+# arguments.
+func_hookable func_validate_options
+func_validate_options ()
+{
+ $debug_cmd
+
+ # Display all warnings if -W was not given.
+ test -n "$opt_warning_types" || opt_warning_types=" $warning_categories"
+
+ func_run_hooks func_validate_options ${1+"$@"}
+
+ # Bail if the options were screwed!
+ $exit_cmd $EXIT_FAILURE
+
+ # save modified positional parameters for caller
+ func_validate_options_result=$func_run_hooks_result
+}
+
+
+
+## ----------------- ##
+## Helper functions. ##
+## ----------------- ##
+
+# This section contains the helper functions used by the rest of the
+# hookable option parser framework in ascii-betical order.
+
+
+# func_fatal_help ARG...
+# ----------------------
+# Echo program name prefixed message to standard error, followed by
+# a help hint, and exit.
+func_fatal_help ()
+{
+ $debug_cmd
+
+ eval \$ECHO \""Usage: $usage"\"
+ eval \$ECHO \""$fatal_help"\"
+ func_error ${1+"$@"}
+ exit $EXIT_FAILURE
+}
+
+
+# func_help
+# ---------
+# Echo long help message to standard output and exit.
+func_help ()
+{
+ $debug_cmd
+
+ func_usage_message
+ $ECHO "$long_help_message"
+ exit 0
+}
+
+
+# func_missing_arg ARGNAME
+# ------------------------
+# Echo program name prefixed message to standard error and set global
+# exit_cmd.
+func_missing_arg ()
+{
+ $debug_cmd
+
+ func_error "Missing argument for '$1'."
+ exit_cmd=exit
+}
+
+
+# func_split_equals STRING
+# ------------------------
+# Set func_split_equals_lhs and func_split_equals_rhs shell variables after
+# splitting STRING at the '=' sign.
+test -z "$_G_HAVE_XSI_OPS" \
+ && (eval 'x=a/b/c;
+ test 5aa/bb/cc = "${#x}${x%%/*}${x%/*}${x#*/}${x##*/}"') 2>/dev/null \
+ && _G_HAVE_XSI_OPS=yes
+
+if test yes = "$_G_HAVE_XSI_OPS"
+then
+ # This is an XSI compatible shell, allowing a faster implementation...
+ eval 'func_split_equals ()
+ {
+ $debug_cmd
+
+ func_split_equals_lhs=${1%%=*}
+ func_split_equals_rhs=${1#*=}
+ test "x$func_split_equals_lhs" = "x$1" \
+ && func_split_equals_rhs=
+ }'
+else
+ # ...otherwise fall back to using expr, which is often a shell builtin.
+ func_split_equals ()
+ {
+ $debug_cmd
+
+ func_split_equals_lhs=`expr "x$1" : 'x\([^=]*\)'`
+ func_split_equals_rhs=
+ test "x$func_split_equals_lhs" = "x$1" \
+ || func_split_equals_rhs=`expr "x$1" : 'x[^=]*=\(.*\)$'`
+ }
+fi #func_split_equals
+
+
+# func_split_short_opt SHORTOPT
+# -----------------------------
+# Set func_split_short_opt_name and func_split_short_opt_arg shell
+# variables after splitting SHORTOPT after the 2nd character.
+if test yes = "$_G_HAVE_XSI_OPS"
+then
+ # This is an XSI compatible shell, allowing a faster implementation...
+ eval 'func_split_short_opt ()
+ {
+ $debug_cmd
+
+ func_split_short_opt_arg=${1#??}
+ func_split_short_opt_name=${1%"$func_split_short_opt_arg"}
+ }'
+else
+ # ...otherwise fall back to using expr, which is often a shell builtin.
+ func_split_short_opt ()
+ {
+ $debug_cmd
+
+ func_split_short_opt_name=`expr "x$1" : 'x-\(.\)'`
+ func_split_short_opt_arg=`expr "x$1" : 'x-.\(.*\)$'`
+ }
+fi #func_split_short_opt
+
+
+# func_usage
+# ----------
+# Echo short help message to standard output and exit.
+func_usage ()
+{
+ $debug_cmd
+
+ func_usage_message
+ $ECHO "Run '$progname --help |${PAGER-more}' for full usage"
+ exit 0
+}
+
+
+# func_usage_message
+# ------------------
+# Echo short help message to standard output.
+func_usage_message ()
+{
+ $debug_cmd
+
+ eval \$ECHO \""Usage: $usage"\"
+ echo
+ $SED -n 's|^# ||
+ /^Written by/{
+ x;p;x
+ }
+ h
+ /^Written by/q' < "$progpath"
+ echo
+ eval \$ECHO \""$usage_message"\"
+}
+
+
+# func_version
+# ------------
+# Echo version message to standard output and exit.
+func_version ()
+{
+ $debug_cmd
+
+ printf '%s\n' "$progname $scriptversion"
+ $SED -n '
+ /(C)/!b go
+ :more
+ /\./!{
+ N
+ s|\n# | |
+ b more
+ }
+ :go
+ /^# Written by /,/# warranty; / {
+ s|^# ||
+ s|^# *$||
+ s|\((C)\)[ 0-9,-]*[ ,-]\([1-9][0-9]* \)|\1 \2|
+ p
+ }
+ /^# Written by / {
+ s|^# ||
+ p
+ }
+ /^warranty; /q' < "$progpath"
+
+ exit $?
+}
+
+
+# Local variables:
+# mode: shell-script
+# sh-indentation: 2
+# eval: (add-hook 'before-save-hook 'time-stamp)
+# time-stamp-pattern: "10/scriptversion=%:y-%02m-%02d.%02H; # UTC"
+# time-stamp-time-zone: "UTC"
+# End:
+
+# Set a version string.
+scriptversion='(GNU libtool) 2.4.6'
+
+
+# func_echo ARG...
+# ----------------
+# Libtool also displays the current mode in messages, so override
+# funclib.sh func_echo with this custom definition.
+func_echo ()
+{
+ $debug_cmd
+
+ _G_message=$*
+
+ func_echo_IFS=$IFS
+ IFS=$nl
+ for _G_line in $_G_message; do
+ IFS=$func_echo_IFS
+ $ECHO "$progname${opt_mode+: $opt_mode}: $_G_line"
+ done
+ IFS=$func_echo_IFS
+}
+
+
+# func_warning ARG...
+# -------------------
+# Libtool warnings are not categorized, so override funclib.sh
+# func_warning with this simpler definition.
+func_warning ()
+{
+ $debug_cmd
+
+ $warning_func ${1+"$@"}
+}
+
+
+## ---------------- ##
+## Options parsing. ##
+## ---------------- ##
+
+# Hook in the functions to make sure our own options are parsed during
+# the option parsing loop.
+
+usage='$progpath [OPTION]... [MODE-ARG]...'
+
+# Short help message in response to '-h'.
+usage_message="Options:
+ --config show all configuration variables
+ --debug enable verbose shell tracing
+ -n, --dry-run display commands without modifying any files
+ --features display basic configuration information and exit
+ --mode=MODE use operation mode MODE
+ --no-warnings equivalent to '-Wnone'
+ --preserve-dup-deps don't remove duplicate dependency libraries
+ --quiet, --silent don't print informational messages
+ --tag=TAG use configuration variables from tag TAG
+ -v, --verbose print more informational messages than default
+ --version print version information
+ -W, --warnings=CATEGORY report the warnings falling in CATEGORY [all]
+ -h, --help, --help-all print short, long, or detailed help message
+"
+
+# Additional text appended to 'usage_message' in response to '--help'.
+func_help ()
+{
+ $debug_cmd
+
+ func_usage_message
+ $ECHO "$long_help_message
+
+MODE must be one of the following:
+
+ clean remove files from the build directory
+ compile compile a source file into a libtool object
+ execute automatically set library path, then run a program
+ finish complete the installation of libtool libraries
+ install install libraries or executables
+ link create a library or an executable
+ uninstall remove libraries from an installed directory
+
+MODE-ARGS vary depending on the MODE. When passed as first option,
+'--mode=MODE' may be abbreviated as 'MODE' or a unique abbreviation of that.
+Try '$progname --help --mode=MODE' for a more detailed description of MODE.
+
+When reporting a bug, please describe a test case to reproduce it and
+include the following information:
+
+ host-triplet: $host
+ shell: $SHELL
+ compiler: $LTCC
+ compiler flags: $LTCFLAGS
+ linker: $LD (gnu? $with_gnu_ld)
+ version: $progname (GNU libtool) 2.4.6
+ automake: `($AUTOMAKE --version) 2>/dev/null |$SED 1q`
+ autoconf: `($AUTOCONF --version) 2>/dev/null |$SED 1q`
+
+Report bugs to <bug-libtool@gnu.org>.
+GNU libtool home page: <http://www.gnu.org/software/libtool/>.
+General help using GNU software: <http://www.gnu.org/gethelp/>."
+ exit 0
+}
+
+
+# func_lo2o OBJECT-NAME
+# ---------------------
+# Transform OBJECT-NAME from a '.lo' suffix to the platform specific
+# object suffix.
+
+lo2o=s/\\.lo\$/.$objext/
+o2lo=s/\\.$objext\$/.lo/
+
+if test yes = "$_G_HAVE_XSI_OPS"; then
+ eval 'func_lo2o ()
+ {
+ case $1 in
+ *.lo) func_lo2o_result=${1%.lo}.$objext ;;
+ * ) func_lo2o_result=$1 ;;
+ esac
+ }'
+
+ # func_xform LIBOBJ-OR-SOURCE
+ # ---------------------------
+ # Transform LIBOBJ-OR-SOURCE from a '.o' or '.c' (or otherwise)
+ # suffix to a '.lo' libtool-object suffix.
+ eval 'func_xform ()
+ {
+ func_xform_result=${1%.*}.lo
+ }'
+else
+ # ...otherwise fall back to using sed.
+ func_lo2o ()
+ {
+ func_lo2o_result=`$ECHO "$1" | $SED "$lo2o"`
+ }
+
+ func_xform ()
+ {
+ func_xform_result=`$ECHO "$1" | $SED 's|\.[^.]*$|.lo|'`
+ }
+fi
+
+
+# func_fatal_configuration ARG...
+# -------------------------------
+# Echo program name prefixed message to standard error, followed by
+# a configuration failure hint, and exit.
+func_fatal_configuration ()
+{
+ func__fatal_error ${1+"$@"} \
+ "See the $PACKAGE documentation for more information." \
+ "Fatal configuration error."
+}
+
+
+# func_config
+# -----------
+# Display the configuration for all the tags in this script.
+func_config ()
+{
+ re_begincf='^# ### BEGIN LIBTOOL'
+ re_endcf='^# ### END LIBTOOL'
+
+ # Default configuration.
+ $SED "1,/$re_begincf CONFIG/d;/$re_endcf CONFIG/,\$d" < "$progpath"
+
+ # Now print the configurations for the tags.
+ for tagname in $taglist; do
+ $SED -n "/$re_begincf TAG CONFIG: $tagname\$/,/$re_endcf TAG CONFIG: $tagname\$/p" < "$progpath"
+ done
+
+ exit $?
+}
+
+
+# func_features
+# -------------
+# Display the features supported by this script.
+func_features ()
+{
+ echo "host: $host"
+ if test yes = "$build_libtool_libs"; then
+ echo "enable shared libraries"
+ else
+ echo "disable shared libraries"
+ fi
+ if test yes = "$build_old_libs"; then
+ echo "enable static libraries"
+ else
+ echo "disable static libraries"
+ fi
+
+ exit $?
+}
+
+
+# func_enable_tag TAGNAME
+# -----------------------
+# Verify that TAGNAME is valid, and either flag an error and exit, or
+# enable the TAGNAME tag. We also add TAGNAME to the global $taglist
+# variable here.
+func_enable_tag ()
+{
+ # Global variable:
+ tagname=$1
+
+ re_begincf="^# ### BEGIN LIBTOOL TAG CONFIG: $tagname\$"
+ re_endcf="^# ### END LIBTOOL TAG CONFIG: $tagname\$"
+ sed_extractcf=/$re_begincf/,/$re_endcf/p
+
+ # Validate tagname.
+ case $tagname in
+ *[!-_A-Za-z0-9,/]*)
+ func_fatal_error "invalid tag name: $tagname"
+ ;;
+ esac
+
+ # Don't test for the "default" C tag, as we know it's
+ # there but not specially marked.
+ case $tagname in
+ CC) ;;
+ *)
+ if $GREP "$re_begincf" "$progpath" >/dev/null 2>&1; then
+ taglist="$taglist $tagname"
+
+ # Evaluate the configuration. Be careful to quote the path
+ # and the sed script, to avoid splitting on whitespace, but
+ # also don't use non-portable quotes within backquotes within
+ # quotes we have to do it in 2 steps:
+ extractedcf=`$SED -n -e "$sed_extractcf" < "$progpath"`
+ eval "$extractedcf"
+ else
+ func_error "ignoring unknown tag $tagname"
+ fi
+ ;;
+ esac
+}
+
+
+# func_check_version_match
+# ------------------------
+# Ensure that we are using m4 macros, and libtool script from the same
+# release of libtool.
+func_check_version_match ()
+{
+ if test "$package_revision" != "$macro_revision"; then
+ if test "$VERSION" != "$macro_version"; then
+ if test -z "$macro_version"; then
+ cat >&2 <<_LT_EOF
+$progname: Version mismatch error. This is $PACKAGE $VERSION, but the
+$progname: definition of this LT_INIT comes from an older release.
+$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION
+$progname: and run autoconf again.
+_LT_EOF
+ else
+ cat >&2 <<_LT_EOF
+$progname: Version mismatch error. This is $PACKAGE $VERSION, but the
+$progname: definition of this LT_INIT comes from $PACKAGE $macro_version.
+$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION
+$progname: and run autoconf again.
+_LT_EOF
+ fi
+ else
+ cat >&2 <<_LT_EOF
+$progname: Version mismatch error. This is $PACKAGE $VERSION, revision $package_revision,
+$progname: but the definition of this LT_INIT comes from revision $macro_revision.
+$progname: You should recreate aclocal.m4 with macros from revision $package_revision
+$progname: of $PACKAGE $VERSION and run autoconf again.
+_LT_EOF
+ fi
+
+ exit $EXIT_MISMATCH
+ fi
+}
+
+
+# libtool_options_prep [ARG]...
+# -----------------------------
+# Preparation for options parsed by libtool.
+libtool_options_prep ()
+{
+ $debug_mode
+
+ # Option defaults:
+ opt_config=false
+ opt_dlopen=
+ opt_dry_run=false
+ opt_help=false
+ opt_mode=
+ opt_preserve_dup_deps=false
+ opt_quiet=false
+
+ nonopt=
+ preserve_args=
+
+ # Shorthand for --mode=foo, only valid as the first argument
+ case $1 in
+ clean|clea|cle|cl)
+ shift; set dummy --mode clean ${1+"$@"}; shift
+ ;;
+ compile|compil|compi|comp|com|co|c)
+ shift; set dummy --mode compile ${1+"$@"}; shift
+ ;;
+ execute|execut|execu|exec|exe|ex|e)
+ shift; set dummy --mode execute ${1+"$@"}; shift
+ ;;
+ finish|finis|fini|fin|fi|f)
+ shift; set dummy --mode finish ${1+"$@"}; shift
+ ;;
+ install|instal|insta|inst|ins|in|i)
+ shift; set dummy --mode install ${1+"$@"}; shift
+ ;;
+ link|lin|li|l)
+ shift; set dummy --mode link ${1+"$@"}; shift
+ ;;
+ uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u)
+ shift; set dummy --mode uninstall ${1+"$@"}; shift
+ ;;
+ esac
+
+ # Pass back the list of options.
+ func_quote_for_eval ${1+"$@"}
+ libtool_options_prep_result=$func_quote_for_eval_result
+}
+func_add_hook func_options_prep libtool_options_prep
+
+
+# libtool_parse_options [ARG]...
+# ---------------------------------
+# Provide handling for libtool specific options.
+libtool_parse_options ()
+{
+ $debug_cmd
+
+ # Perform our own loop to consume as many options as possible in
+ # each iteration.
+ while test $# -gt 0; do
+ _G_opt=$1
+ shift
+ case $_G_opt in
+ --dry-run|--dryrun|-n)
+ opt_dry_run=:
+ ;;
+
+ --config) func_config ;;
+
+ --dlopen|-dlopen)
+ opt_dlopen="${opt_dlopen+$opt_dlopen
+}$1"
+ shift
+ ;;
+
+ --preserve-dup-deps)
+ opt_preserve_dup_deps=: ;;
+
+ --features) func_features ;;
+
+ --finish) set dummy --mode finish ${1+"$@"}; shift ;;
+
+ --help) opt_help=: ;;
+
+ --help-all) opt_help=': help-all' ;;
+
+ --mode) test $# = 0 && func_missing_arg $_G_opt && break
+ opt_mode=$1
+ case $1 in
+ # Valid mode arguments:
+ clean|compile|execute|finish|install|link|relink|uninstall) ;;
+
+ # Catch anything else as an error
+ *) func_error "invalid argument for $_G_opt"
+ exit_cmd=exit
+ break
+ ;;
+ esac
+ shift
+ ;;
+
+ --no-silent|--no-quiet)
+ opt_quiet=false
+ func_append preserve_args " $_G_opt"
+ ;;
+
+ --no-warnings|--no-warning|--no-warn)
+ opt_warning=false
+ func_append preserve_args " $_G_opt"
+ ;;
+
+ --no-verbose)
+ opt_verbose=false
+ func_append preserve_args " $_G_opt"
+ ;;
+
+ --silent|--quiet)
+ opt_quiet=:
+ opt_verbose=false
+ func_append preserve_args " $_G_opt"
+ ;;
+
+ --tag) test $# = 0 && func_missing_arg $_G_opt && break
+ opt_tag=$1
+ func_append preserve_args " $_G_opt $1"
+ func_enable_tag "$1"
+ shift
+ ;;
+
+ --verbose|-v) opt_quiet=false
+ opt_verbose=:
+ func_append preserve_args " $_G_opt"
+ ;;
+
+ # An option not handled by this hook function:
+ *) set dummy "$_G_opt" ${1+"$@"}; shift; break ;;
+ esac
+ done
+
+
+ # save modified positional parameters for caller
+ func_quote_for_eval ${1+"$@"}
+ libtool_parse_options_result=$func_quote_for_eval_result
+}
+func_add_hook func_parse_options libtool_parse_options
+
+
+
+# libtool_validate_options [ARG]...
+# ---------------------------------
+# Perform any sanity checks on option settings and/or unconsumed
+# arguments.
+libtool_validate_options ()
+{
+ # save first non-option argument
+ if test 0 -lt $#; then
+ nonopt=$1
+ shift
+ fi
+
+ # preserve --debug
+ test : = "$debug_cmd" || func_append preserve_args " --debug"
+
+ case $host in
+ # Solaris2 added to fix http://debbugs.gnu.org/cgi/bugreport.cgi?bug=16452
+ # see also: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59788
+ *cygwin* | *mingw* | *pw32* | *cegcc* | *solaris2* | *os2*)
+ # don't eliminate duplications in $postdeps and $predeps
+ opt_duplicate_compiler_generated_deps=:
+ ;;
+ *)
+ opt_duplicate_compiler_generated_deps=$opt_preserve_dup_deps
+ ;;
+ esac
+
+ $opt_help || {
+ # Sanity checks first:
+ func_check_version_match
+
+ test yes != "$build_libtool_libs" \
+ && test yes != "$build_old_libs" \
+ && func_fatal_configuration "not configured to build any kind of library"
+
+ # Darwin sucks
+ eval std_shrext=\"$shrext_cmds\"
+
+ # Only execute mode is allowed to have -dlopen flags.
+ if test -n "$opt_dlopen" && test execute != "$opt_mode"; then
+ func_error "unrecognized option '-dlopen'"
+ $ECHO "$help" 1>&2
+ exit $EXIT_FAILURE
+ fi
+
+ # Change the help message to a mode-specific one.
+ generic_help=$help
+ help="Try '$progname --help --mode=$opt_mode' for more information."
+ }
+
+ # Pass back the unparsed argument list
+ func_quote_for_eval ${1+"$@"}
+ libtool_validate_options_result=$func_quote_for_eval_result
+}
+func_add_hook func_validate_options libtool_validate_options
+
+
+# Process options as early as possible so that --help and --version
+# can return quickly.
+func_options ${1+"$@"}
+eval set dummy "$func_options_result"; shift
+
+
+
+## ----------- ##
+## Main. ##
+## ----------- ##
+
+magic='%%%MAGIC variable%%%'
+magic_exe='%%%MAGIC EXE variable%%%'
+
+# Global variables.
+extracted_archives=
+extracted_serial=0
+
+# If this variable is set in any of the actions, the command in it
+# will be execed at the end. This prevents here-documents from being
+# left over by shells.
+exec_cmd=
+
+
+# A function that is used when there is no print builtin or printf.
+func_fallback_echo ()
+{
+ eval 'cat <<_LTECHO_EOF
+$1
+_LTECHO_EOF'
+}
+
+# func_generated_by_libtool
+# True iff stdin has been generated by Libtool. This function is only
+# a basic sanity check; it will hardly flush out determined imposters.
+func_generated_by_libtool_p ()
+{
+ $GREP "^# Generated by .*$PACKAGE" > /dev/null 2>&1
+}
+
+# func_lalib_p file
+# True iff FILE is a libtool '.la' library or '.lo' object file.
+# This function is only a basic sanity check; it will hardly flush out
+# determined imposters.
+func_lalib_p ()
+{
+ test -f "$1" &&
+ $SED -e 4q "$1" 2>/dev/null | func_generated_by_libtool_p
+}
+
+# func_lalib_unsafe_p file
+# True iff FILE is a libtool '.la' library or '.lo' object file.
+# This function implements the same check as func_lalib_p without
+# resorting to external programs. To this end, it redirects stdin and
+# closes it afterwards, without saving the original file descriptor.
+# As a safety measure, use it only where a negative result would be
+# fatal anyway. Works if 'file' does not exist.
+func_lalib_unsafe_p ()
+{
+ lalib_p=no
+ if test -f "$1" && test -r "$1" && exec 5<&0 <"$1"; then
+ for lalib_p_l in 1 2 3 4
+ do
+ read lalib_p_line
+ case $lalib_p_line in
+ \#\ Generated\ by\ *$PACKAGE* ) lalib_p=yes; break;;
+ esac
+ done
+ exec 0<&5 5<&-
+ fi
+ test yes = "$lalib_p"
+}
+
+# func_ltwrapper_script_p file
+# True iff FILE is a libtool wrapper script
+# This function is only a basic sanity check; it will hardly flush out
+# determined imposters.
+func_ltwrapper_script_p ()
+{
+ test -f "$1" &&
+ $lt_truncate_bin < "$1" 2>/dev/null | func_generated_by_libtool_p
+}
+
+# func_ltwrapper_executable_p file
+# True iff FILE is a libtool wrapper executable
+# This function is only a basic sanity check; it will hardly flush out
+# determined imposters.
+func_ltwrapper_executable_p ()
+{
+ func_ltwrapper_exec_suffix=
+ case $1 in
+ *.exe) ;;
+ *) func_ltwrapper_exec_suffix=.exe ;;
+ esac
+ $GREP "$magic_exe" "$1$func_ltwrapper_exec_suffix" >/dev/null 2>&1
+}
+
+# func_ltwrapper_scriptname file
+# Assumes file is an ltwrapper_executable
+# uses $file to determine the appropriate filename for a
+# temporary ltwrapper_script.
+func_ltwrapper_scriptname ()
+{
+ func_dirname_and_basename "$1" "" "."
+ func_stripname '' '.exe' "$func_basename_result"
+ func_ltwrapper_scriptname_result=$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper
+}
+
+# func_ltwrapper_p file
+# True iff FILE is a libtool wrapper script or wrapper executable
+# This function is only a basic sanity check; it will hardly flush out
+# determined imposters.
+func_ltwrapper_p ()
+{
+ func_ltwrapper_script_p "$1" || func_ltwrapper_executable_p "$1"
+}
+
+
+# func_execute_cmds commands fail_cmd
+# Execute tilde-delimited COMMANDS.
+# If FAIL_CMD is given, eval that upon failure.
+# FAIL_CMD may read-access the current command in variable CMD!
+func_execute_cmds ()
+{
+ $debug_cmd
+
+ save_ifs=$IFS; IFS='~'
+ for cmd in $1; do
+ IFS=$sp$nl
+ eval cmd=\"$cmd\"
+ IFS=$save_ifs
+ func_show_eval "$cmd" "${2-:}"
+ done
+ IFS=$save_ifs
+}
+
+
+# func_source file
+# Source FILE, adding directory component if necessary.
+# Note that it is not necessary on cygwin/mingw to append a dot to
+# FILE even if both FILE and FILE.exe exist: automatic-append-.exe
+# behavior happens only for exec(3), not for open(2)! Also, sourcing
+# 'FILE.' does not work on cygwin managed mounts.
+func_source ()
+{
+ $debug_cmd
+
+ case $1 in
+ */* | *\\*) . "$1" ;;
+ *) . "./$1" ;;
+ esac
+}
+
+
+# func_resolve_sysroot PATH
+# Replace a leading = in PATH with a sysroot. Store the result into
+# func_resolve_sysroot_result
+func_resolve_sysroot ()
+{
+ func_resolve_sysroot_result=$1
+ case $func_resolve_sysroot_result in
+ =*)
+ func_stripname '=' '' "$func_resolve_sysroot_result"
+ func_resolve_sysroot_result=$lt_sysroot$func_stripname_result
+ ;;
+ esac
+}
+
+# func_replace_sysroot PATH
+# If PATH begins with the sysroot, replace it with = and
+# store the result into func_replace_sysroot_result.
+func_replace_sysroot ()
+{
+ case $lt_sysroot:$1 in
+ ?*:"$lt_sysroot"*)
+ func_stripname "$lt_sysroot" '' "$1"
+ func_replace_sysroot_result='='$func_stripname_result
+ ;;
+ *)
+ # Including no sysroot.
+ func_replace_sysroot_result=$1
+ ;;
+ esac
+}
+
+# func_infer_tag arg
+# Infer tagged configuration to use if any are available and
+# if one wasn't chosen via the "--tag" command line option.
+# Only attempt this if the compiler in the base compile
+# command doesn't match the default compiler.
+# arg is usually of the form 'gcc ...'
+func_infer_tag ()
+{
+ $debug_cmd
+
+ if test -n "$available_tags" && test -z "$tagname"; then
+ CC_quoted=
+ for arg in $CC; do
+ func_append_quoted CC_quoted "$arg"
+ done
+ CC_expanded=`func_echo_all $CC`
+ CC_quoted_expanded=`func_echo_all $CC_quoted`
+ case $@ in
+ # Blanks in the command may have been stripped by the calling shell,
+ # but not from the CC environment variable when configure was run.
+ " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \
+ " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) ;;
+ # Blanks at the start of $base_compile will cause this to fail
+ # if we don't check for them as well.
+ *)
+ for z in $available_tags; do
+ if $GREP "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then
+ # Evaluate the configuration.
+ eval "`$SED -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`"
+ CC_quoted=
+ for arg in $CC; do
+ # Double-quote args containing other shell metacharacters.
+ func_append_quoted CC_quoted "$arg"
+ done
+ CC_expanded=`func_echo_all $CC`
+ CC_quoted_expanded=`func_echo_all $CC_quoted`
+ case "$@ " in
+ " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \
+ " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*)
+ # The compiler in the base compile command matches
+ # the one in the tagged configuration.
+ # Assume this is the tagged configuration we want.
+ tagname=$z
+ break
+ ;;
+ esac
+ fi
+ done
+ # If $tagname still isn't set, then no tagged configuration
+ # was found and let the user know that the "--tag" command
+ # line option must be used.
+ if test -z "$tagname"; then
+ func_echo "unable to infer tagged configuration"
+ func_fatal_error "specify a tag with '--tag'"
+# else
+# func_verbose "using $tagname tagged configuration"
+ fi
+ ;;
+ esac
+ fi
+}
+
+
+
+# func_write_libtool_object output_name pic_name nonpic_name
+# Create a libtool object file (analogous to a ".la" file),
+# but don't create it if we're doing a dry run.
+func_write_libtool_object ()
+{
+ write_libobj=$1
+ if test yes = "$build_libtool_libs"; then
+ write_lobj=\'$2\'
+ else
+ write_lobj=none
+ fi
+
+ if test yes = "$build_old_libs"; then
+ write_oldobj=\'$3\'
+ else
+ write_oldobj=none
+ fi
+
+ $opt_dry_run || {
+ cat >${write_libobj}T <<EOF
+# $write_libobj - a libtool object file
+# Generated by $PROGRAM (GNU $PACKAGE) $VERSION
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object=$write_lobj
+
+# Name of the non-PIC object
+non_pic_object=$write_oldobj
+
+EOF
+ $MV "${write_libobj}T" "$write_libobj"
+ }
+}
+
+
+##################################################
+# FILE NAME AND PATH CONVERSION HELPER FUNCTIONS #
+##################################################
+
+# func_convert_core_file_wine_to_w32 ARG
+# Helper function used by file name conversion functions when $build is *nix,
+# and $host is mingw, cygwin, or some other w32 environment. Relies on a
+# correctly configured wine environment available, with the winepath program
+# in $build's $PATH.
+#
+# ARG is the $build file name to be converted to w32 format.
+# Result is available in $func_convert_core_file_wine_to_w32_result, and will
+# be empty on error (or when ARG is empty)
+func_convert_core_file_wine_to_w32 ()
+{
+ $debug_cmd
+
+ func_convert_core_file_wine_to_w32_result=$1
+ if test -n "$1"; then
+ # Unfortunately, winepath does not exit with a non-zero error code, so we
+ # are forced to check the contents of stdout. On the other hand, if the
+ # command is not found, the shell will set an exit code of 127 and print
+ # *an error message* to stdout. So we must check for both error code of
+ # zero AND non-empty stdout, which explains the odd construction:
+ func_convert_core_file_wine_to_w32_tmp=`winepath -w "$1" 2>/dev/null`
+ if test "$?" -eq 0 && test -n "$func_convert_core_file_wine_to_w32_tmp"; then
+ func_convert_core_file_wine_to_w32_result=`$ECHO "$func_convert_core_file_wine_to_w32_tmp" |
+ $SED -e "$sed_naive_backslashify"`
+ else
+ func_convert_core_file_wine_to_w32_result=
+ fi
+ fi
+}
+# end: func_convert_core_file_wine_to_w32
+
+
+# func_convert_core_path_wine_to_w32 ARG
+# Helper function used by path conversion functions when $build is *nix, and
+# $host is mingw, cygwin, or some other w32 environment. Relies on a correctly
+# configured wine environment available, with the winepath program in $build's
+# $PATH. Assumes ARG has no leading or trailing path separator characters.
+#
+# ARG is path to be converted from $build format to win32.
+# Result is available in $func_convert_core_path_wine_to_w32_result.
+# Unconvertible file (directory) names in ARG are skipped; if no directory names
+# are convertible, then the result may be empty.
+func_convert_core_path_wine_to_w32 ()
+{
+ $debug_cmd
+
+ # unfortunately, winepath doesn't convert paths, only file names
+ func_convert_core_path_wine_to_w32_result=
+ if test -n "$1"; then
+ oldIFS=$IFS
+ IFS=:
+ for func_convert_core_path_wine_to_w32_f in $1; do
+ IFS=$oldIFS
+ func_convert_core_file_wine_to_w32 "$func_convert_core_path_wine_to_w32_f"
+ if test -n "$func_convert_core_file_wine_to_w32_result"; then
+ if test -z "$func_convert_core_path_wine_to_w32_result"; then
+ func_convert_core_path_wine_to_w32_result=$func_convert_core_file_wine_to_w32_result
+ else
+ func_append func_convert_core_path_wine_to_w32_result ";$func_convert_core_file_wine_to_w32_result"
+ fi
+ fi
+ done
+ IFS=$oldIFS
+ fi
+}
+# end: func_convert_core_path_wine_to_w32
+
+
+# func_cygpath ARGS...
+# Wrapper around calling the cygpath program via LT_CYGPATH. This is used when
+# when (1) $build is *nix and Cygwin is hosted via a wine environment; or (2)
+# $build is MSYS and $host is Cygwin, or (3) $build is Cygwin. In case (1) or
+# (2), returns the Cygwin file name or path in func_cygpath_result (input
+# file name or path is assumed to be in w32 format, as previously converted
+# from $build's *nix or MSYS format). In case (3), returns the w32 file name
+# or path in func_cygpath_result (input file name or path is assumed to be in
+# Cygwin format). Returns an empty string on error.
+#
+# ARGS are passed to cygpath, with the last one being the file name or path to
+# be converted.
+#
+# Specify the absolute *nix (or w32) name to cygpath in the LT_CYGPATH
+# environment variable; do not put it in $PATH.
+func_cygpath ()
+{
+ $debug_cmd
+
+ if test -n "$LT_CYGPATH" && test -f "$LT_CYGPATH"; then
+ func_cygpath_result=`$LT_CYGPATH "$@" 2>/dev/null`
+ if test "$?" -ne 0; then
+ # on failure, ensure result is empty
+ func_cygpath_result=
+ fi
+ else
+ func_cygpath_result=
+ func_error "LT_CYGPATH is empty or specifies non-existent file: '$LT_CYGPATH'"
+ fi
+}
+#end: func_cygpath
+
+
+# func_convert_core_msys_to_w32 ARG
+# Convert file name or path ARG from MSYS format to w32 format. Return
+# result in func_convert_core_msys_to_w32_result.
+func_convert_core_msys_to_w32 ()
+{
+ $debug_cmd
+
+ # awkward: cmd appends spaces to result
+ func_convert_core_msys_to_w32_result=`( cmd //c echo "$1" ) 2>/dev/null |
+ $SED -e 's/[ ]*$//' -e "$sed_naive_backslashify"`
+}
+#end: func_convert_core_msys_to_w32
+
+
+# func_convert_file_check ARG1 ARG2
+# Verify that ARG1 (a file name in $build format) was converted to $host
+# format in ARG2. Otherwise, emit an error message, but continue (resetting
+# func_to_host_file_result to ARG1).
+func_convert_file_check ()
+{
+ $debug_cmd
+
+ if test -z "$2" && test -n "$1"; then
+ func_error "Could not determine host file name corresponding to"
+ func_error " '$1'"
+ func_error "Continuing, but uninstalled executables may not work."
+ # Fallback:
+ func_to_host_file_result=$1
+ fi
+}
+# end func_convert_file_check
+
+
+# func_convert_path_check FROM_PATHSEP TO_PATHSEP FROM_PATH TO_PATH
+# Verify that FROM_PATH (a path in $build format) was converted to $host
+# format in TO_PATH. Otherwise, emit an error message, but continue, resetting
+# func_to_host_file_result to a simplistic fallback value (see below).
+func_convert_path_check ()
+{
+ $debug_cmd
+
+ if test -z "$4" && test -n "$3"; then
+ func_error "Could not determine the host path corresponding to"
+ func_error " '$3'"
+ func_error "Continuing, but uninstalled executables may not work."
+ # Fallback. This is a deliberately simplistic "conversion" and
+ # should not be "improved". See libtool.info.
+ if test "x$1" != "x$2"; then
+ lt_replace_pathsep_chars="s|$1|$2|g"
+ func_to_host_path_result=`echo "$3" |
+ $SED -e "$lt_replace_pathsep_chars"`
+ else
+ func_to_host_path_result=$3
+ fi
+ fi
+}
+# end func_convert_path_check
+
+
+# func_convert_path_front_back_pathsep FRONTPAT BACKPAT REPL ORIG
+# Modifies func_to_host_path_result by prepending REPL if ORIG matches FRONTPAT
+# and appending REPL if ORIG matches BACKPAT.
+func_convert_path_front_back_pathsep ()
+{
+ $debug_cmd
+
+ case $4 in
+ $1 ) func_to_host_path_result=$3$func_to_host_path_result
+ ;;
+ esac
+ case $4 in
+ $2 ) func_append func_to_host_path_result "$3"
+ ;;
+ esac
+}
+# end func_convert_path_front_back_pathsep
+
+
+##################################################
+# $build to $host FILE NAME CONVERSION FUNCTIONS #
+##################################################
+# invoked via '$to_host_file_cmd ARG'
+#
+# In each case, ARG is the path to be converted from $build to $host format.
+# Result will be available in $func_to_host_file_result.
+
+
+# func_to_host_file ARG
+# Converts the file name ARG from $build format to $host format. Return result
+# in func_to_host_file_result.
+func_to_host_file ()
+{
+ $debug_cmd
+
+ $to_host_file_cmd "$1"
+}
+# end func_to_host_file
+
+
+# func_to_tool_file ARG LAZY
+# converts the file name ARG from $build format to toolchain format. Return
+# result in func_to_tool_file_result. If the conversion in use is listed
+# in (the comma separated) LAZY, no conversion takes place.
+func_to_tool_file ()
+{
+ $debug_cmd
+
+ case ,$2, in
+ *,"$to_tool_file_cmd",*)
+ func_to_tool_file_result=$1
+ ;;
+ *)
+ $to_tool_file_cmd "$1"
+ func_to_tool_file_result=$func_to_host_file_result
+ ;;
+ esac
+}
+# end func_to_tool_file
+
+
+# func_convert_file_noop ARG
+# Copy ARG to func_to_host_file_result.
+func_convert_file_noop ()
+{
+ func_to_host_file_result=$1
+}
+# end func_convert_file_noop
+
+
+# func_convert_file_msys_to_w32 ARG
+# Convert file name ARG from (mingw) MSYS to (mingw) w32 format; automatic
+# conversion to w32 is not available inside the cwrapper. Returns result in
+# func_to_host_file_result.
+func_convert_file_msys_to_w32 ()
+{
+ $debug_cmd
+
+ func_to_host_file_result=$1
+ if test -n "$1"; then
+ func_convert_core_msys_to_w32 "$1"
+ func_to_host_file_result=$func_convert_core_msys_to_w32_result
+ fi
+ func_convert_file_check "$1" "$func_to_host_file_result"
+}
+# end func_convert_file_msys_to_w32
+
+
+# func_convert_file_cygwin_to_w32 ARG
+# Convert file name ARG from Cygwin to w32 format. Returns result in
+# func_to_host_file_result.
+func_convert_file_cygwin_to_w32 ()
+{
+ $debug_cmd
+
+ func_to_host_file_result=$1
+ if test -n "$1"; then
+ # because $build is cygwin, we call "the" cygpath in $PATH; no need to use
+ # LT_CYGPATH in this case.
+ func_to_host_file_result=`cygpath -m "$1"`
+ fi
+ func_convert_file_check "$1" "$func_to_host_file_result"
+}
+# end func_convert_file_cygwin_to_w32
+
+
+# func_convert_file_nix_to_w32 ARG
+# Convert file name ARG from *nix to w32 format. Requires a wine environment
+# and a working winepath. Returns result in func_to_host_file_result.
+func_convert_file_nix_to_w32 ()
+{
+ $debug_cmd
+
+ func_to_host_file_result=$1
+ if test -n "$1"; then
+ func_convert_core_file_wine_to_w32 "$1"
+ func_to_host_file_result=$func_convert_core_file_wine_to_w32_result
+ fi
+ func_convert_file_check "$1" "$func_to_host_file_result"
+}
+# end func_convert_file_nix_to_w32
+
+
+# func_convert_file_msys_to_cygwin ARG
+# Convert file name ARG from MSYS to Cygwin format. Requires LT_CYGPATH set.
+# Returns result in func_to_host_file_result.
+func_convert_file_msys_to_cygwin ()
+{
+ $debug_cmd
+
+ func_to_host_file_result=$1
+ if test -n "$1"; then
+ func_convert_core_msys_to_w32 "$1"
+ func_cygpath -u "$func_convert_core_msys_to_w32_result"
+ func_to_host_file_result=$func_cygpath_result
+ fi
+ func_convert_file_check "$1" "$func_to_host_file_result"
+}
+# end func_convert_file_msys_to_cygwin
+
+
+# func_convert_file_nix_to_cygwin ARG
+# Convert file name ARG from *nix to Cygwin format. Requires Cygwin installed
+# in a wine environment, working winepath, and LT_CYGPATH set. Returns result
+# in func_to_host_file_result.
+func_convert_file_nix_to_cygwin ()
+{
+ $debug_cmd
+
+ func_to_host_file_result=$1
+ if test -n "$1"; then
+ # convert from *nix to w32, then use cygpath to convert from w32 to cygwin.
+ func_convert_core_file_wine_to_w32 "$1"
+ func_cygpath -u "$func_convert_core_file_wine_to_w32_result"
+ func_to_host_file_result=$func_cygpath_result
+ fi
+ func_convert_file_check "$1" "$func_to_host_file_result"
+}
+# end func_convert_file_nix_to_cygwin
+
+
+#############################################
+# $build to $host PATH CONVERSION FUNCTIONS #
+#############################################
+# invoked via '$to_host_path_cmd ARG'
+#
+# In each case, ARG is the path to be converted from $build to $host format.
+# The result will be available in $func_to_host_path_result.
+#
+# Path separators are also converted from $build format to $host format. If
+# ARG begins or ends with a path separator character, it is preserved (but
+# converted to $host format) on output.
+#
+# All path conversion functions are named using the following convention:
+# file name conversion function : func_convert_file_X_to_Y ()
+# path conversion function : func_convert_path_X_to_Y ()
+# where, for any given $build/$host combination the 'X_to_Y' value is the
+# same. If conversion functions are added for new $build/$host combinations,
+# the two new functions must follow this pattern, or func_init_to_host_path_cmd
+# will break.
+
+
+# func_init_to_host_path_cmd
+# Ensures that function "pointer" variable $to_host_path_cmd is set to the
+# appropriate value, based on the value of $to_host_file_cmd.
+to_host_path_cmd=
+func_init_to_host_path_cmd ()
+{
+ $debug_cmd
+
+ if test -z "$to_host_path_cmd"; then
+ func_stripname 'func_convert_file_' '' "$to_host_file_cmd"
+ to_host_path_cmd=func_convert_path_$func_stripname_result
+ fi
+}
+
+
+# func_to_host_path ARG
+# Converts the path ARG from $build format to $host format. Return result
+# in func_to_host_path_result.
+func_to_host_path ()
+{
+ $debug_cmd
+
+ func_init_to_host_path_cmd
+ $to_host_path_cmd "$1"
+}
+# end func_to_host_path
+
+
+# func_convert_path_noop ARG
+# Copy ARG to func_to_host_path_result.
+func_convert_path_noop ()
+{
+ func_to_host_path_result=$1
+}
+# end func_convert_path_noop
+
+
+# func_convert_path_msys_to_w32 ARG
+# Convert path ARG from (mingw) MSYS to (mingw) w32 format; automatic
+# conversion to w32 is not available inside the cwrapper. Returns result in
+# func_to_host_path_result.
+func_convert_path_msys_to_w32 ()
+{
+ $debug_cmd
+
+ func_to_host_path_result=$1
+ if test -n "$1"; then
+ # Remove leading and trailing path separator characters from ARG. MSYS
+ # behavior is inconsistent here; cygpath turns them into '.;' and ';.';
+ # and winepath ignores them completely.
+ func_stripname : : "$1"
+ func_to_host_path_tmp1=$func_stripname_result
+ func_convert_core_msys_to_w32 "$func_to_host_path_tmp1"
+ func_to_host_path_result=$func_convert_core_msys_to_w32_result
+ func_convert_path_check : ";" \
+ "$func_to_host_path_tmp1" "$func_to_host_path_result"
+ func_convert_path_front_back_pathsep ":*" "*:" ";" "$1"
+ fi
+}
+# end func_convert_path_msys_to_w32
+
+
+# func_convert_path_cygwin_to_w32 ARG
+# Convert path ARG from Cygwin to w32 format. Returns result in
+# func_to_host_file_result.
+func_convert_path_cygwin_to_w32 ()
+{
+ $debug_cmd
+
+ func_to_host_path_result=$1
+ if test -n "$1"; then
+ # See func_convert_path_msys_to_w32:
+ func_stripname : : "$1"
+ func_to_host_path_tmp1=$func_stripname_result
+ func_to_host_path_result=`cygpath -m -p "$func_to_host_path_tmp1"`
+ func_convert_path_check : ";" \
+ "$func_to_host_path_tmp1" "$func_to_host_path_result"
+ func_convert_path_front_back_pathsep ":*" "*:" ";" "$1"
+ fi
+}
+# end func_convert_path_cygwin_to_w32
+
+
+# func_convert_path_nix_to_w32 ARG
+# Convert path ARG from *nix to w32 format. Requires a wine environment and
+# a working winepath. Returns result in func_to_host_file_result.
+func_convert_path_nix_to_w32 ()
+{
+ $debug_cmd
+
+ func_to_host_path_result=$1
+ if test -n "$1"; then
+ # See func_convert_path_msys_to_w32:
+ func_stripname : : "$1"
+ func_to_host_path_tmp1=$func_stripname_result
+ func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1"
+ func_to_host_path_result=$func_convert_core_path_wine_to_w32_result
+ func_convert_path_check : ";" \
+ "$func_to_host_path_tmp1" "$func_to_host_path_result"
+ func_convert_path_front_back_pathsep ":*" "*:" ";" "$1"
+ fi
+}
+# end func_convert_path_nix_to_w32
+
+
+# func_convert_path_msys_to_cygwin ARG
+# Convert path ARG from MSYS to Cygwin format. Requires LT_CYGPATH set.
+# Returns result in func_to_host_file_result.
+func_convert_path_msys_to_cygwin ()
+{
+ $debug_cmd
+
+ func_to_host_path_result=$1
+ if test -n "$1"; then
+ # See func_convert_path_msys_to_w32:
+ func_stripname : : "$1"
+ func_to_host_path_tmp1=$func_stripname_result
+ func_convert_core_msys_to_w32 "$func_to_host_path_tmp1"
+ func_cygpath -u -p "$func_convert_core_msys_to_w32_result"
+ func_to_host_path_result=$func_cygpath_result
+ func_convert_path_check : : \
+ "$func_to_host_path_tmp1" "$func_to_host_path_result"
+ func_convert_path_front_back_pathsep ":*" "*:" : "$1"
+ fi
+}
+# end func_convert_path_msys_to_cygwin
+
+
+# func_convert_path_nix_to_cygwin ARG
+# Convert path ARG from *nix to Cygwin format. Requires Cygwin installed in a
+# a wine environment, working winepath, and LT_CYGPATH set. Returns result in
+# func_to_host_file_result.
+func_convert_path_nix_to_cygwin ()
+{
+ $debug_cmd
+
+ func_to_host_path_result=$1
+ if test -n "$1"; then
+ # Remove leading and trailing path separator characters from
+ # ARG. msys behavior is inconsistent here, cygpath turns them
+ # into '.;' and ';.', and winepath ignores them completely.
+ func_stripname : : "$1"
+ func_to_host_path_tmp1=$func_stripname_result
+ func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1"
+ func_cygpath -u -p "$func_convert_core_path_wine_to_w32_result"
+ func_to_host_path_result=$func_cygpath_result
+ func_convert_path_check : : \
+ "$func_to_host_path_tmp1" "$func_to_host_path_result"
+ func_convert_path_front_back_pathsep ":*" "*:" : "$1"
+ fi
+}
+# end func_convert_path_nix_to_cygwin
+
+
+# func_dll_def_p FILE
+# True iff FILE is a Windows DLL '.def' file.
+# Keep in sync with _LT_DLL_DEF_P in libtool.m4
+func_dll_def_p ()
+{
+ $debug_cmd
+
+ func_dll_def_p_tmp=`$SED -n \
+ -e 's/^[ ]*//' \
+ -e '/^\(;.*\)*$/d' \
+ -e 's/^\(EXPORTS\|LIBRARY\)\([ ].*\)*$/DEF/p' \
+ -e q \
+ "$1"`
+ test DEF = "$func_dll_def_p_tmp"
+}
+
+
+# func_mode_compile arg...
+func_mode_compile ()
+{
+ $debug_cmd
+
+ # Get the compilation command and the source file.
+ base_compile=
+ srcfile=$nonopt # always keep a non-empty value in "srcfile"
+ suppress_opt=yes
+ suppress_output=
+ arg_mode=normal
+ libobj=
+ later=
+ pie_flag=
+
+ for arg
+ do
+ case $arg_mode in
+ arg )
+ # do not "continue". Instead, add this to base_compile
+ lastarg=$arg
+ arg_mode=normal
+ ;;
+
+ target )
+ libobj=$arg
+ arg_mode=normal
+ continue
+ ;;
+
+ normal )
+ # Accept any command-line options.
+ case $arg in
+ -o)
+ test -n "$libobj" && \
+ func_fatal_error "you cannot specify '-o' more than once"
+ arg_mode=target
+ continue
+ ;;
+
+ -pie | -fpie | -fPIE)
+ func_append pie_flag " $arg"
+ continue
+ ;;
+
+ -shared | -static | -prefer-pic | -prefer-non-pic)
+ func_append later " $arg"
+ continue
+ ;;
+
+ -no-suppress)
+ suppress_opt=no
+ continue
+ ;;
+
+ -Xcompiler)
+ arg_mode=arg # the next one goes into the "base_compile" arg list
+ continue # The current "srcfile" will either be retained or
+ ;; # replaced later. I would guess that would be a bug.
+
+ -Wc,*)
+ func_stripname '-Wc,' '' "$arg"
+ args=$func_stripname_result
+ lastarg=
+ save_ifs=$IFS; IFS=,
+ for arg in $args; do
+ IFS=$save_ifs
+ func_append_quoted lastarg "$arg"
+ done
+ IFS=$save_ifs
+ func_stripname ' ' '' "$lastarg"
+ lastarg=$func_stripname_result
+
+ # Add the arguments to base_compile.
+ func_append base_compile " $lastarg"
+ continue
+ ;;
+
+ *)
+ # Accept the current argument as the source file.
+ # The previous "srcfile" becomes the current argument.
+ #
+ lastarg=$srcfile
+ srcfile=$arg
+ ;;
+ esac # case $arg
+ ;;
+ esac # case $arg_mode
+
+ # Aesthetically quote the previous argument.
+ func_append_quoted base_compile "$lastarg"
+ done # for arg
+
+ case $arg_mode in
+ arg)
+ func_fatal_error "you must specify an argument for -Xcompile"
+ ;;
+ target)
+ func_fatal_error "you must specify a target with '-o'"
+ ;;
+ *)
+ # Get the name of the library object.
+ test -z "$libobj" && {
+ func_basename "$srcfile"
+ libobj=$func_basename_result
+ }
+ ;;
+ esac
+
+ # Recognize several different file suffixes.
+ # If the user specifies -o file.o, it is replaced with file.lo
+ case $libobj in
+ *.[cCFSifmso] | \
+ *.ada | *.adb | *.ads | *.asm | \
+ *.c++ | *.cc | *.ii | *.class | *.cpp | *.cxx | \
+ *.[fF][09]? | *.for | *.java | *.go | *.obj | *.sx | *.cu | *.cup)
+ func_xform "$libobj"
+ libobj=$func_xform_result
+ ;;
+ esac
+
+ case $libobj in
+ *.lo) func_lo2o "$libobj"; obj=$func_lo2o_result ;;
+ *)
+ func_fatal_error "cannot determine name of library object from '$libobj'"
+ ;;
+ esac
+
+ func_infer_tag $base_compile
+
+ for arg in $later; do
+ case $arg in
+ -shared)
+ test yes = "$build_libtool_libs" \
+ || func_fatal_configuration "cannot build a shared library"
+ build_old_libs=no
+ continue
+ ;;
+
+ -static)
+ build_libtool_libs=no
+ build_old_libs=yes
+ continue
+ ;;
+
+ -prefer-pic)
+ pic_mode=yes
+ continue
+ ;;
+
+ -prefer-non-pic)
+ pic_mode=no
+ continue
+ ;;
+ esac
+ done
+
+ func_quote_for_eval "$libobj"
+ test "X$libobj" != "X$func_quote_for_eval_result" \
+ && $ECHO "X$libobj" | $GREP '[]~#^*{};<>?"'"'"' &()|`$[]' \
+ && func_warning "libobj name '$libobj' may not contain shell special characters."
+ func_dirname_and_basename "$obj" "/" ""
+ objname=$func_basename_result
+ xdir=$func_dirname_result
+ lobj=$xdir$objdir/$objname
+
+ test -z "$base_compile" && \
+ func_fatal_help "you must specify a compilation command"
+
+ # Delete any leftover library objects.
+ if test yes = "$build_old_libs"; then
+ removelist="$obj $lobj $libobj ${libobj}T"
+ else
+ removelist="$lobj $libobj ${libobj}T"
+ fi
+
+ # On Cygwin there's no "real" PIC flag so we must build both object types
+ case $host_os in
+ cygwin* | mingw* | pw32* | os2* | cegcc*)
+ pic_mode=default
+ ;;
+ esac
+ if test no = "$pic_mode" && test pass_all != "$deplibs_check_method"; then
+ # non-PIC code in shared libraries is not supported
+ pic_mode=default
+ fi
+
+ # Calculate the filename of the output object if compiler does
+ # not support -o with -c
+ if test no = "$compiler_c_o"; then
+ output_obj=`$ECHO "$srcfile" | $SED 's%^.*/%%; s%\.[^.]*$%%'`.$objext
+ lockfile=$output_obj.lock
+ else
+ output_obj=
+ need_locks=no
+ lockfile=
+ fi
+
+ # Lock this critical section if it is needed
+ # We use this script file to make the link, it avoids creating a new file
+ if test yes = "$need_locks"; then
+ until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do
+ func_echo "Waiting for $lockfile to be removed"
+ sleep 2
+ done
+ elif test warn = "$need_locks"; then
+ if test -f "$lockfile"; then
+ $ECHO "\
+*** ERROR, $lockfile exists and contains:
+`cat $lockfile 2>/dev/null`
+
+This indicates that another process is trying to use the same
+temporary object file, and libtool could not work around it because
+your compiler does not support '-c' and '-o' together. If you
+repeat this compilation, it may succeed, by chance, but you had better
+avoid parallel builds (make -j) in this platform, or get a better
+compiler."
+
+ $opt_dry_run || $RM $removelist
+ exit $EXIT_FAILURE
+ fi
+ func_append removelist " $output_obj"
+ $ECHO "$srcfile" > "$lockfile"
+ fi
+
+ $opt_dry_run || $RM $removelist
+ func_append removelist " $lockfile"
+ trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15
+
+ func_to_tool_file "$srcfile" func_convert_file_msys_to_w32
+ srcfile=$func_to_tool_file_result
+ func_quote_for_eval "$srcfile"
+ qsrcfile=$func_quote_for_eval_result
+
+ # Only build a PIC object if we are building libtool libraries.
+ if test yes = "$build_libtool_libs"; then
+ # Without this assignment, base_compile gets emptied.
+ fbsd_hideous_sh_bug=$base_compile
+
+ if test no != "$pic_mode"; then
+ command="$base_compile $qsrcfile $pic_flag"
+ else
+ # Don't build PIC code
+ command="$base_compile $qsrcfile"
+ fi
+
+ func_mkdir_p "$xdir$objdir"
+
+ if test -z "$output_obj"; then
+ # Place PIC objects in $objdir
+ func_append command " -o $lobj"
+ fi
+
+ func_show_eval_locale "$command" \
+ 'test -n "$output_obj" && $RM $removelist; exit $EXIT_FAILURE'
+
+ if test warn = "$need_locks" &&
+ test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
+ $ECHO "\
+*** ERROR, $lockfile contains:
+`cat $lockfile 2>/dev/null`
+
+but it should contain:
+$srcfile
+
+This indicates that another process is trying to use the same
+temporary object file, and libtool could not work around it because
+your compiler does not support '-c' and '-o' together. If you
+repeat this compilation, it may succeed, by chance, but you had better
+avoid parallel builds (make -j) in this platform, or get a better
+compiler."
+
+ $opt_dry_run || $RM $removelist
+ exit $EXIT_FAILURE
+ fi
+
+ # Just move the object if needed, then go on to compile the next one
+ if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then
+ func_show_eval '$MV "$output_obj" "$lobj"' \
+ 'error=$?; $opt_dry_run || $RM $removelist; exit $error'
+ fi
+
+ # Allow error messages only from the first compilation.
+ if test yes = "$suppress_opt"; then
+ suppress_output=' >/dev/null 2>&1'
+ fi
+ fi
+
+ # Only build a position-dependent object if we build old libraries.
+ if test yes = "$build_old_libs"; then
+ if test yes != "$pic_mode"; then
+ # Don't build PIC code
+ command="$base_compile $qsrcfile$pie_flag"
+ else
+ command="$base_compile $qsrcfile $pic_flag"
+ fi
+ if test yes = "$compiler_c_o"; then
+ func_append command " -o $obj"
+ fi
+
+ # Suppress compiler output if we already did a PIC compilation.
+ func_append command "$suppress_output"
+ func_show_eval_locale "$command" \
+ '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE'
+
+ if test warn = "$need_locks" &&
+ test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
+ $ECHO "\
+*** ERROR, $lockfile contains:
+`cat $lockfile 2>/dev/null`
+
+but it should contain:
+$srcfile
+
+This indicates that another process is trying to use the same
+temporary object file, and libtool could not work around it because
+your compiler does not support '-c' and '-o' together. If you
+repeat this compilation, it may succeed, by chance, but you had better
+avoid parallel builds (make -j) in this platform, or get a better
+compiler."
+
+ $opt_dry_run || $RM $removelist
+ exit $EXIT_FAILURE
+ fi
+
+ # Just move the object if needed
+ if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then
+ func_show_eval '$MV "$output_obj" "$obj"' \
+ 'error=$?; $opt_dry_run || $RM $removelist; exit $error'
+ fi
+ fi
+
+ $opt_dry_run || {
+ func_write_libtool_object "$libobj" "$objdir/$objname" "$objname"
+
+ # Unlock the critical section if it was locked
+ if test no != "$need_locks"; then
+ removelist=$lockfile
+ $RM "$lockfile"
+ fi
+ }
+
+ exit $EXIT_SUCCESS
+}
+
+$opt_help || {
+ test compile = "$opt_mode" && func_mode_compile ${1+"$@"}
+}
+
+func_mode_help ()
+{
+ # We need to display help for each of the modes.
+ case $opt_mode in
+ "")
+ # Generic help is extracted from the usage comments
+ # at the start of this file.
+ func_help
+ ;;
+
+ clean)
+ $ECHO \
+"Usage: $progname [OPTION]... --mode=clean RM [RM-OPTION]... FILE...
+
+Remove files from the build directory.
+
+RM is the name of the program to use to delete files associated with each FILE
+(typically '/bin/rm'). RM-OPTIONS are options (such as '-f') to be passed
+to RM.
+
+If FILE is a libtool library, object or program, all the files associated
+with it are deleted. Otherwise, only FILE itself is deleted using RM."
+ ;;
+
+ compile)
+ $ECHO \
+"Usage: $progname [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE
+
+Compile a source file into a libtool library object.
+
+This mode accepts the following additional options:
+
+ -o OUTPUT-FILE set the output file name to OUTPUT-FILE
+ -no-suppress do not suppress compiler output for multiple passes
+ -prefer-pic try to build PIC objects only
+ -prefer-non-pic try to build non-PIC objects only
+ -shared do not build a '.o' file suitable for static linking
+ -static only build a '.o' file suitable for static linking
+ -Wc,FLAG pass FLAG directly to the compiler
+
+COMPILE-COMMAND is a command to be used in creating a 'standard' object file
+from the given SOURCEFILE.
+
+The output file name is determined by removing the directory component from
+SOURCEFILE, then substituting the C source code suffix '.c' with the
+library object suffix, '.lo'."
+ ;;
+
+ execute)
+ $ECHO \
+"Usage: $progname [OPTION]... --mode=execute COMMAND [ARGS]...
+
+Automatically set library path, then run a program.
+
+This mode accepts the following additional options:
+
+ -dlopen FILE add the directory containing FILE to the library path
+
+This mode sets the library path environment variable according to '-dlopen'
+flags.
+
+If any of the ARGS are libtool executable wrappers, then they are translated
+into their corresponding uninstalled binary, and any of their required library
+directories are added to the library path.
+
+Then, COMMAND is executed, with ARGS as arguments."
+ ;;
+
+ finish)
+ $ECHO \
+"Usage: $progname [OPTION]... --mode=finish [LIBDIR]...
+
+Complete the installation of libtool libraries.
+
+Each LIBDIR is a directory that contains libtool libraries.
+
+The commands that this mode executes may require superuser privileges. Use
+the '--dry-run' option if you just want to see what would be executed."
+ ;;
+
+ install)
+ $ECHO \
+"Usage: $progname [OPTION]... --mode=install INSTALL-COMMAND...
+
+Install executables or libraries.
+
+INSTALL-COMMAND is the installation command. The first component should be
+either the 'install' or 'cp' program.
+
+The following components of INSTALL-COMMAND are treated specially:
+
+ -inst-prefix-dir PREFIX-DIR Use PREFIX-DIR as a staging area for installation
+
+The rest of the components are interpreted as arguments to that command (only
+BSD-compatible install options are recognized)."
+ ;;
+
+ link)
+ $ECHO \
+"Usage: $progname [OPTION]... --mode=link LINK-COMMAND...
+
+Link object files or libraries together to form another library, or to
+create an executable program.
+
+LINK-COMMAND is a command using the C compiler that you would use to create
+a program from several object files.
+
+The following components of LINK-COMMAND are treated specially:
+
+ -all-static do not do any dynamic linking at all
+ -avoid-version do not add a version suffix if possible
+ -bindir BINDIR specify path to binaries directory (for systems where
+ libraries must be found in the PATH setting at runtime)
+ -dlopen FILE '-dlpreopen' FILE if it cannot be dlopened at runtime
+ -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols
+ -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3)
+ -export-symbols SYMFILE
+ try to export only the symbols listed in SYMFILE
+ -export-symbols-regex REGEX
+ try to export only the symbols matching REGEX
+ -LLIBDIR search LIBDIR for required installed libraries
+ -lNAME OUTPUT-FILE requires the installed library libNAME
+ -module build a library that can dlopened
+ -no-fast-install disable the fast-install mode
+ -no-install link a not-installable executable
+ -no-undefined declare that a library does not refer to external symbols
+ -o OUTPUT-FILE create OUTPUT-FILE from the specified objects
+ -objectlist FILE use a list of object files found in FILE to specify objects
+ -os2dllname NAME force a short DLL name on OS/2 (no effect on other OSes)
+ -precious-files-regex REGEX
+ don't remove output files matching REGEX
+ -release RELEASE specify package release information
+ -rpath LIBDIR the created library will eventually be installed in LIBDIR
+ -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries
+ -shared only do dynamic linking of libtool libraries
+ -shrext SUFFIX override the standard shared library file extension
+ -static do not do any dynamic linking of uninstalled libtool libraries
+ -static-libtool-libs
+ do not do any dynamic linking of libtool libraries
+ -version-info CURRENT[:REVISION[:AGE]]
+ specify library version info [each variable defaults to 0]
+ -weak LIBNAME declare that the target provides the LIBNAME interface
+ -Wc,FLAG
+ -Xcompiler FLAG pass linker-specific FLAG directly to the compiler
+ -Wl,FLAG
+ -Xlinker FLAG pass linker-specific FLAG directly to the linker
+ -XCClinker FLAG pass link-specific FLAG to the compiler driver (CC)
+
+All other options (arguments beginning with '-') are ignored.
+
+Every other argument is treated as a filename. Files ending in '.la' are
+treated as uninstalled libtool libraries, other files are standard or library
+object files.
+
+If the OUTPUT-FILE ends in '.la', then a libtool library is created,
+only library objects ('.lo' files) may be specified, and '-rpath' is
+required, except when creating a convenience library.
+
+If OUTPUT-FILE ends in '.a' or '.lib', then a standard library is created
+using 'ar' and 'ranlib', or on Windows using 'lib'.
+
+If OUTPUT-FILE ends in '.lo' or '.$objext', then a reloadable object file
+is created, otherwise an executable program is created."
+ ;;
+
+ uninstall)
+ $ECHO \
+"Usage: $progname [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE...
+
+Remove libraries from an installation directory.
+
+RM is the name of the program to use to delete files associated with each FILE
+(typically '/bin/rm'). RM-OPTIONS are options (such as '-f') to be passed
+to RM.
+
+If FILE is a libtool library, all the files associated with it are deleted.
+Otherwise, only FILE itself is deleted using RM."
+ ;;
+
+ *)
+ func_fatal_help "invalid operation mode '$opt_mode'"
+ ;;
+ esac
+
+ echo
+ $ECHO "Try '$progname --help' for more information about other modes."
+}
+
+# Now that we've collected a possible --mode arg, show help if necessary
+if $opt_help; then
+ if test : = "$opt_help"; then
+ func_mode_help
+ else
+ {
+ func_help noexit
+ for opt_mode in compile link execute install finish uninstall clean; do
+ func_mode_help
+ done
+ } | $SED -n '1p; 2,$s/^Usage:/ or: /p'
+ {
+ func_help noexit
+ for opt_mode in compile link execute install finish uninstall clean; do
+ echo
+ func_mode_help
+ done
+ } |
+ $SED '1d
+ /^When reporting/,/^Report/{
+ H
+ d
+ }
+ $x
+ /information about other modes/d
+ /more detailed .*MODE/d
+ s/^Usage:.*--mode=\([^ ]*\) .*/Description of \1 mode:/'
+ fi
+ exit $?
+fi
+
+
+# func_mode_execute arg...
+func_mode_execute ()
+{
+ $debug_cmd
+
+ # The first argument is the command name.
+ cmd=$nonopt
+ test -z "$cmd" && \
+ func_fatal_help "you must specify a COMMAND"
+
+ # Handle -dlopen flags immediately.
+ for file in $opt_dlopen; do
+ test -f "$file" \
+ || func_fatal_help "'$file' is not a file"
+
+ dir=
+ case $file in
+ *.la)
+ func_resolve_sysroot "$file"
+ file=$func_resolve_sysroot_result
+
+ # Check to see that this really is a libtool archive.
+ func_lalib_unsafe_p "$file" \
+ || func_fatal_help "'$lib' is not a valid libtool archive"
+
+ # Read the libtool library.
+ dlname=
+ library_names=
+ func_source "$file"
+
+ # Skip this library if it cannot be dlopened.
+ if test -z "$dlname"; then
+ # Warn if it was a shared library.
+ test -n "$library_names" && \
+ func_warning "'$file' was not linked with '-export-dynamic'"
+ continue
+ fi
+
+ func_dirname "$file" "" "."
+ dir=$func_dirname_result
+
+ if test -f "$dir/$objdir/$dlname"; then
+ func_append dir "/$objdir"
+ else
+ if test ! -f "$dir/$dlname"; then
+ func_fatal_error "cannot find '$dlname' in '$dir' or '$dir/$objdir'"
+ fi
+ fi
+ ;;
+
+ *.lo)
+ # Just add the directory containing the .lo file.
+ func_dirname "$file" "" "."
+ dir=$func_dirname_result
+ ;;
+
+ *)
+ func_warning "'-dlopen' is ignored for non-libtool libraries and objects"
+ continue
+ ;;
+ esac
+
+ # Get the absolute pathname.
+ absdir=`cd "$dir" && pwd`
+ test -n "$absdir" && dir=$absdir
+
+ # Now add the directory to shlibpath_var.
+ if eval "test -z \"\$$shlibpath_var\""; then
+ eval "$shlibpath_var=\"\$dir\""
+ else
+ eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\""
+ fi
+ done
+
+ # This variable tells wrapper scripts just to set shlibpath_var
+ # rather than running their programs.
+ libtool_execute_magic=$magic
+
+ # Check if any of the arguments is a wrapper script.
+ args=
+ for file
+ do
+ case $file in
+ -* | *.la | *.lo ) ;;
+ *)
+ # Do a test to see if this is really a libtool program.
+ if func_ltwrapper_script_p "$file"; then
+ func_source "$file"
+ # Transform arg to wrapped name.
+ file=$progdir/$program
+ elif func_ltwrapper_executable_p "$file"; then
+ func_ltwrapper_scriptname "$file"
+ func_source "$func_ltwrapper_scriptname_result"
+ # Transform arg to wrapped name.
+ file=$progdir/$program
+ fi
+ ;;
+ esac
+ # Quote arguments (to preserve shell metacharacters).
+ func_append_quoted args "$file"
+ done
+
+ if $opt_dry_run; then
+ # Display what would be done.
+ if test -n "$shlibpath_var"; then
+ eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\""
+ echo "export $shlibpath_var"
+ fi
+ $ECHO "$cmd$args"
+ exit $EXIT_SUCCESS
+ else
+ if test -n "$shlibpath_var"; then
+ # Export the shlibpath_var.
+ eval "export $shlibpath_var"
+ fi
+
+ # Restore saved environment variables
+ for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
+ do
+ eval "if test \"\${save_$lt_var+set}\" = set; then
+ $lt_var=\$save_$lt_var; export $lt_var
+ else
+ $lt_unset $lt_var
+ fi"
+ done
+
+ # Now prepare to actually exec the command.
+ exec_cmd=\$cmd$args
+ fi
+}
+
+test execute = "$opt_mode" && func_mode_execute ${1+"$@"}
+
+
+# func_mode_finish arg...
+func_mode_finish ()
+{
+ $debug_cmd
+
+ libs=
+ libdirs=
+ admincmds=
+
+ for opt in "$nonopt" ${1+"$@"}
+ do
+ if test -d "$opt"; then
+ func_append libdirs " $opt"
+
+ elif test -f "$opt"; then
+ if func_lalib_unsafe_p "$opt"; then
+ func_append libs " $opt"
+ else
+ func_warning "'$opt' is not a valid libtool archive"
+ fi
+
+ else
+ func_fatal_error "invalid argument '$opt'"
+ fi
+ done
+
+ if test -n "$libs"; then
+ if test -n "$lt_sysroot"; then
+ sysroot_regex=`$ECHO "$lt_sysroot" | $SED "$sed_make_literal_regex"`
+ sysroot_cmd="s/\([ ']\)$sysroot_regex/\1/g;"
+ else
+ sysroot_cmd=
+ fi
+
+ # Remove sysroot references
+ if $opt_dry_run; then
+ for lib in $libs; do
+ echo "removing references to $lt_sysroot and '=' prefixes from $lib"
+ done
+ else
+ tmpdir=`func_mktempdir`
+ for lib in $libs; do
+ $SED -e "$sysroot_cmd s/\([ ']-[LR]\)=/\1/g; s/\([ ']\)=/\1/g" $lib \
+ > $tmpdir/tmp-la
+ mv -f $tmpdir/tmp-la $lib
+ done
+ ${RM}r "$tmpdir"
+ fi
+ fi
+
+ if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
+ for libdir in $libdirs; do
+ if test -n "$finish_cmds"; then
+ # Do each command in the finish commands.
+ func_execute_cmds "$finish_cmds" 'admincmds="$admincmds
+'"$cmd"'"'
+ fi
+ if test -n "$finish_eval"; then
+ # Do the single finish_eval.
+ eval cmds=\"$finish_eval\"
+ $opt_dry_run || eval "$cmds" || func_append admincmds "
+ $cmds"
+ fi
+ done
+ fi
+
+ # Exit here if they wanted silent mode.
+ $opt_quiet && exit $EXIT_SUCCESS
+
+ if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
+ echo "----------------------------------------------------------------------"
+ echo "Libraries have been installed in:"
+ for libdir in $libdirs; do
+ $ECHO " $libdir"
+ done
+ echo
+ echo "If you ever happen to want to link against installed libraries"
+ echo "in a given directory, LIBDIR, you must either use libtool, and"
+ echo "specify the full pathname of the library, or use the '-LLIBDIR'"
+ echo "flag during linking and do at least one of the following:"
+ if test -n "$shlibpath_var"; then
+ echo " - add LIBDIR to the '$shlibpath_var' environment variable"
+ echo " during execution"
+ fi
+ if test -n "$runpath_var"; then
+ echo " - add LIBDIR to the '$runpath_var' environment variable"
+ echo " during linking"
+ fi
+ if test -n "$hardcode_libdir_flag_spec"; then
+ libdir=LIBDIR
+ eval flag=\"$hardcode_libdir_flag_spec\"
+
+ $ECHO " - use the '$flag' linker flag"
+ fi
+ if test -n "$admincmds"; then
+ $ECHO " - have your system administrator run these commands:$admincmds"
+ fi
+ if test -f /etc/ld.so.conf; then
+ echo " - have your system administrator add LIBDIR to '/etc/ld.so.conf'"
+ fi
+ echo
+
+ echo "See any operating system documentation about shared libraries for"
+ case $host in
+ solaris2.[6789]|solaris2.1[0-9])
+ echo "more information, such as the ld(1), crle(1) and ld.so(8) manual"
+ echo "pages."
+ ;;
+ *)
+ echo "more information, such as the ld(1) and ld.so(8) manual pages."
+ ;;
+ esac
+ echo "----------------------------------------------------------------------"
+ fi
+ exit $EXIT_SUCCESS
+}
+
+test finish = "$opt_mode" && func_mode_finish ${1+"$@"}
+
+
+# func_mode_install arg...
+func_mode_install ()
+{
+ $debug_cmd
+
+ # There may be an optional sh(1) argument at the beginning of
+ # install_prog (especially on Windows NT).
+ if test "$SHELL" = "$nonopt" || test /bin/sh = "$nonopt" ||
+ # Allow the use of GNU shtool's install command.
+ case $nonopt in *shtool*) :;; *) false;; esac
+ then
+ # Aesthetically quote it.
+ func_quote_for_eval "$nonopt"
+ install_prog="$func_quote_for_eval_result "
+ arg=$1
+ shift
+ else
+ install_prog=
+ arg=$nonopt
+ fi
+
+ # The real first argument should be the name of the installation program.
+ # Aesthetically quote it.
+ func_quote_for_eval "$arg"
+ func_append install_prog "$func_quote_for_eval_result"
+ install_shared_prog=$install_prog
+ case " $install_prog " in
+ *[\\\ /]cp\ *) install_cp=: ;;
+ *) install_cp=false ;;
+ esac
+
+ # We need to accept at least all the BSD install flags.
+ dest=
+ files=
+ opts=
+ prev=
+ install_type=
+ isdir=false
+ stripme=
+ no_mode=:
+ for arg
+ do
+ arg2=
+ if test -n "$dest"; then
+ func_append files " $dest"
+ dest=$arg
+ continue
+ fi
+
+ case $arg in
+ -d) isdir=: ;;
+ -f)
+ if $install_cp; then :; else
+ prev=$arg
+ fi
+ ;;
+ -g | -m | -o)
+ prev=$arg
+ ;;
+ -s)
+ stripme=" -s"
+ continue
+ ;;
+ -*)
+ ;;
+ *)
+ # If the previous option needed an argument, then skip it.
+ if test -n "$prev"; then
+ if test X-m = "X$prev" && test -n "$install_override_mode"; then
+ arg2=$install_override_mode
+ no_mode=false
+ fi
+ prev=
+ else
+ dest=$arg
+ continue
+ fi
+ ;;
+ esac
+
+ # Aesthetically quote the argument.
+ func_quote_for_eval "$arg"
+ func_append install_prog " $func_quote_for_eval_result"
+ if test -n "$arg2"; then
+ func_quote_for_eval "$arg2"
+ fi
+ func_append install_shared_prog " $func_quote_for_eval_result"
+ done
+
+ test -z "$install_prog" && \
+ func_fatal_help "you must specify an install program"
+
+ test -n "$prev" && \
+ func_fatal_help "the '$prev' option requires an argument"
+
+ if test -n "$install_override_mode" && $no_mode; then
+ if $install_cp; then :; else
+ func_quote_for_eval "$install_override_mode"
+ func_append install_shared_prog " -m $func_quote_for_eval_result"
+ fi
+ fi
+
+ if test -z "$files"; then
+ if test -z "$dest"; then
+ func_fatal_help "no file or destination specified"
+ else
+ func_fatal_help "you must specify a destination"
+ fi
+ fi
+
+ # Strip any trailing slash from the destination.
+ func_stripname '' '/' "$dest"
+ dest=$func_stripname_result
+
+ # Check to see that the destination is a directory.
+ test -d "$dest" && isdir=:
+ if $isdir; then
+ destdir=$dest
+ destname=
+ else
+ func_dirname_and_basename "$dest" "" "."
+ destdir=$func_dirname_result
+ destname=$func_basename_result
+
+ # Not a directory, so check to see that there is only one file specified.
+ set dummy $files; shift
+ test "$#" -gt 1 && \
+ func_fatal_help "'$dest' is not a directory"
+ fi
+ case $destdir in
+ [\\/]* | [A-Za-z]:[\\/]*) ;;
+ *)
+ for file in $files; do
+ case $file in
+ *.lo) ;;
+ *)
+ func_fatal_help "'$destdir' must be an absolute directory name"
+ ;;
+ esac
+ done
+ ;;
+ esac
+
+ # This variable tells wrapper scripts just to set variables rather
+ # than running their programs.
+ libtool_install_magic=$magic
+
+ staticlibs=
+ future_libdirs=
+ current_libdirs=
+ for file in $files; do
+
+ # Do each installation.
+ case $file in
+ *.$libext)
+ # Do the static libraries later.
+ func_append staticlibs " $file"
+ ;;
+
+ *.la)
+ func_resolve_sysroot "$file"
+ file=$func_resolve_sysroot_result
+
+ # Check to see that this really is a libtool archive.
+ func_lalib_unsafe_p "$file" \
+ || func_fatal_help "'$file' is not a valid libtool archive"
+
+ library_names=
+ old_library=
+ relink_command=
+ func_source "$file"
+
+ # Add the libdir to current_libdirs if it is the destination.
+ if test "X$destdir" = "X$libdir"; then
+ case "$current_libdirs " in
+ *" $libdir "*) ;;
+ *) func_append current_libdirs " $libdir" ;;
+ esac
+ else
+ # Note the libdir as a future libdir.
+ case "$future_libdirs " in
+ *" $libdir "*) ;;
+ *) func_append future_libdirs " $libdir" ;;
+ esac
+ fi
+
+ func_dirname "$file" "/" ""
+ dir=$func_dirname_result
+ func_append dir "$objdir"
+
+ if test -n "$relink_command"; then
+ # Determine the prefix the user has applied to our future dir.
+ inst_prefix_dir=`$ECHO "$destdir" | $SED -e "s%$libdir\$%%"`
+
+ # Don't allow the user to place us outside of our expected
+ # location b/c this prevents finding dependent libraries that
+ # are installed to the same prefix.
+ # At present, this check doesn't affect windows .dll's that
+ # are installed into $libdir/../bin (currently, that works fine)
+ # but it's something to keep an eye on.
+ test "$inst_prefix_dir" = "$destdir" && \
+ func_fatal_error "error: cannot install '$file' to a directory not ending in $libdir"
+
+ if test -n "$inst_prefix_dir"; then
+ # Stick the inst_prefix_dir data into the link command.
+ relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"`
+ else
+ relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%%"`
+ fi
+
+ func_warning "relinking '$file'"
+ func_show_eval "$relink_command" \
+ 'func_fatal_error "error: relink '\''$file'\'' with the above command before installing it"'
+ fi
+
+ # See the names of the shared library.
+ set dummy $library_names; shift
+ if test -n "$1"; then
+ realname=$1
+ shift
+
+ srcname=$realname
+ test -n "$relink_command" && srcname=${realname}T
+
+ # Install the shared library and build the symlinks.
+ func_show_eval "$install_shared_prog $dir/$srcname $destdir/$realname" \
+ 'exit $?'
+ tstripme=$stripme
+ case $host_os in
+ cygwin* | mingw* | pw32* | cegcc*)
+ case $realname in
+ *.dll.a)
+ tstripme=
+ ;;
+ esac
+ ;;
+ os2*)
+ case $realname in
+ *_dll.a)
+ tstripme=
+ ;;
+ esac
+ ;;
+ esac
+ if test -n "$tstripme" && test -n "$striplib"; then
+ func_show_eval "$striplib $destdir/$realname" 'exit $?'
+ fi
+
+ if test "$#" -gt 0; then
+ # Delete the old symlinks, and create new ones.
+ # Try 'ln -sf' first, because the 'ln' binary might depend on
+ # the symlink we replace! Solaris /bin/ln does not understand -f,
+ # so we also need to try rm && ln -s.
+ for linkname
+ do
+ test "$linkname" != "$realname" \
+ && func_show_eval "(cd $destdir && { $LN_S -f $realname $linkname || { $RM $linkname && $LN_S $realname $linkname; }; })"
+ done
+ fi
+
+ # Do each command in the postinstall commands.
+ lib=$destdir/$realname
+ func_execute_cmds "$postinstall_cmds" 'exit $?'
+ fi
+
+ # Install the pseudo-library for information purposes.
+ func_basename "$file"
+ name=$func_basename_result
+ instname=$dir/${name}i
+ func_show_eval "$install_prog $instname $destdir/$name" 'exit $?'
+
+ # Maybe install the static library, too.
+ test -n "$old_library" && func_append staticlibs " $dir/$old_library"
+ ;;
+
+ *.lo)
+ # Install (i.e. copy) a libtool object.
+
+ # Figure out destination file name, if it wasn't already specified.
+ if test -n "$destname"; then
+ destfile=$destdir/$destname
+ else
+ func_basename "$file"
+ destfile=$func_basename_result
+ destfile=$destdir/$destfile
+ fi
+
+ # Deduce the name of the destination old-style object file.
+ case $destfile in
+ *.lo)
+ func_lo2o "$destfile"
+ staticdest=$func_lo2o_result
+ ;;
+ *.$objext)
+ staticdest=$destfile
+ destfile=
+ ;;
+ *)
+ func_fatal_help "cannot copy a libtool object to '$destfile'"
+ ;;
+ esac
+
+ # Install the libtool object if requested.
+ test -n "$destfile" && \
+ func_show_eval "$install_prog $file $destfile" 'exit $?'
+
+ # Install the old object if enabled.
+ if test yes = "$build_old_libs"; then
+ # Deduce the name of the old-style object file.
+ func_lo2o "$file"
+ staticobj=$func_lo2o_result
+ func_show_eval "$install_prog \$staticobj \$staticdest" 'exit $?'
+ fi
+ exit $EXIT_SUCCESS
+ ;;
+
+ *)
+ # Figure out destination file name, if it wasn't already specified.
+ if test -n "$destname"; then
+ destfile=$destdir/$destname
+ else
+ func_basename "$file"
+ destfile=$func_basename_result
+ destfile=$destdir/$destfile
+ fi
+
+ # If the file is missing, and there is a .exe on the end, strip it
+ # because it is most likely a libtool script we actually want to
+ # install
+ stripped_ext=
+ case $file in
+ *.exe)
+ if test ! -f "$file"; then
+ func_stripname '' '.exe' "$file"
+ file=$func_stripname_result
+ stripped_ext=.exe
+ fi
+ ;;
+ esac
+
+ # Do a test to see if this is really a libtool program.
+ case $host in
+ *cygwin* | *mingw*)
+ if func_ltwrapper_executable_p "$file"; then
+ func_ltwrapper_scriptname "$file"
+ wrapper=$func_ltwrapper_scriptname_result
+ else
+ func_stripname '' '.exe' "$file"
+ wrapper=$func_stripname_result
+ fi
+ ;;
+ *)
+ wrapper=$file
+ ;;
+ esac
+ if func_ltwrapper_script_p "$wrapper"; then
+ notinst_deplibs=
+ relink_command=
+
+ func_source "$wrapper"
+
+ # Check the variables that should have been set.
+ test -z "$generated_by_libtool_version" && \
+ func_fatal_error "invalid libtool wrapper script '$wrapper'"
+
+ finalize=:
+ for lib in $notinst_deplibs; do
+ # Check to see that each library is installed.
+ libdir=
+ if test -f "$lib"; then
+ func_source "$lib"
+ fi
+ libfile=$libdir/`$ECHO "$lib" | $SED 's%^.*/%%g'`
+ if test -n "$libdir" && test ! -f "$libfile"; then
+ func_warning "'$lib' has not been installed in '$libdir'"
+ finalize=false
+ fi
+ done
+
+ relink_command=
+ func_source "$wrapper"
+
+ outputname=
+ if test no = "$fast_install" && test -n "$relink_command"; then
+ $opt_dry_run || {
+ if $finalize; then
+ tmpdir=`func_mktempdir`
+ func_basename "$file$stripped_ext"
+ file=$func_basename_result
+ outputname=$tmpdir/$file
+ # Replace the output file specification.
+ relink_command=`$ECHO "$relink_command" | $SED 's%@OUTPUT@%'"$outputname"'%g'`
+
+ $opt_quiet || {
+ func_quote_for_expand "$relink_command"
+ eval "func_echo $func_quote_for_expand_result"
+ }
+ if eval "$relink_command"; then :
+ else
+ func_error "error: relink '$file' with the above command before installing it"
+ $opt_dry_run || ${RM}r "$tmpdir"
+ continue
+ fi
+ file=$outputname
+ else
+ func_warning "cannot relink '$file'"
+ fi
+ }
+ else
+ # Install the binary that we compiled earlier.
+ file=`$ECHO "$file$stripped_ext" | $SED "s%\([^/]*\)$%$objdir/\1%"`
+ fi
+ fi
+
+ # remove .exe since cygwin /usr/bin/install will append another
+ # one anyway
+ case $install_prog,$host in
+ */usr/bin/install*,*cygwin*)
+ case $file:$destfile in
+ *.exe:*.exe)
+ # this is ok
+ ;;
+ *.exe:*)
+ destfile=$destfile.exe
+ ;;
+ *:*.exe)
+ func_stripname '' '.exe' "$destfile"
+ destfile=$func_stripname_result
+ ;;
+ esac
+ ;;
+ esac
+ func_show_eval "$install_prog\$stripme \$file \$destfile" 'exit $?'
+ $opt_dry_run || if test -n "$outputname"; then
+ ${RM}r "$tmpdir"
+ fi
+ ;;
+ esac
+ done
+
+ for file in $staticlibs; do
+ func_basename "$file"
+ name=$func_basename_result
+
+ # Set up the ranlib parameters.
+ oldlib=$destdir/$name
+ func_to_tool_file "$oldlib" func_convert_file_msys_to_w32
+ tool_oldlib=$func_to_tool_file_result
+
+ func_show_eval "$install_prog \$file \$oldlib" 'exit $?'
+
+ if test -n "$stripme" && test -n "$old_striplib"; then
+ func_show_eval "$old_striplib $tool_oldlib" 'exit $?'
+ fi
+
+ # Do each command in the postinstall commands.
+ func_execute_cmds "$old_postinstall_cmds" 'exit $?'
+ done
+
+ test -n "$future_libdirs" && \
+ func_warning "remember to run '$progname --finish$future_libdirs'"
+
+ if test -n "$current_libdirs"; then
+ # Maybe just do a dry run.
+ $opt_dry_run && current_libdirs=" -n$current_libdirs"
+ exec_cmd='$SHELL "$progpath" $preserve_args --finish$current_libdirs'
+ else
+ exit $EXIT_SUCCESS
+ fi
+}
+
+test install = "$opt_mode" && func_mode_install ${1+"$@"}
+
+
+# func_generate_dlsyms outputname originator pic_p
+# Extract symbols from dlprefiles and create ${outputname}S.o with
+# a dlpreopen symbol table.
+func_generate_dlsyms ()
+{
+ $debug_cmd
+
+ my_outputname=$1
+ my_originator=$2
+ my_pic_p=${3-false}
+ my_prefix=`$ECHO "$my_originator" | $SED 's%[^a-zA-Z0-9]%_%g'`
+ my_dlsyms=
+
+ if test -n "$dlfiles$dlprefiles" || test no != "$dlself"; then
+ if test -n "$NM" && test -n "$global_symbol_pipe"; then
+ my_dlsyms=${my_outputname}S.c
+ else
+ func_error "not configured to extract global symbols from dlpreopened files"
+ fi
+ fi
+
+ if test -n "$my_dlsyms"; then
+ case $my_dlsyms in
+ "") ;;
+ *.c)
+ # Discover the nlist of each of the dlfiles.
+ nlist=$output_objdir/$my_outputname.nm
+
+ func_show_eval "$RM $nlist ${nlist}S ${nlist}T"
+
+ # Parse the name list into a source file.
+ func_verbose "creating $output_objdir/$my_dlsyms"
+
+ $opt_dry_run || $ECHO > "$output_objdir/$my_dlsyms" "\
+/* $my_dlsyms - symbol resolution table for '$my_outputname' dlsym emulation. */
+/* Generated by $PROGRAM (GNU $PACKAGE) $VERSION */
+
+#ifdef __cplusplus
+extern \"C\" {
+#endif
+
+#if defined __GNUC__ && (((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4)) || (__GNUC__ > 4))
+#pragma GCC diagnostic ignored \"-Wstrict-prototypes\"
+#endif
+
+/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */
+#if defined _WIN32 || defined __CYGWIN__ || defined _WIN32_WCE
+/* DATA imports from DLLs on WIN32 can't be const, because runtime
+ relocations are performed -- see ld's documentation on pseudo-relocs. */
+# define LT_DLSYM_CONST
+#elif defined __osf__
+/* This system does not cope well with relocations in const data. */
+# define LT_DLSYM_CONST
+#else
+# define LT_DLSYM_CONST const
+#endif
+
+#define STREQ(s1, s2) (strcmp ((s1), (s2)) == 0)
+
+/* External symbol declarations for the compiler. */\
+"
+
+ if test yes = "$dlself"; then
+ func_verbose "generating symbol list for '$output'"
+
+ $opt_dry_run || echo ': @PROGRAM@ ' > "$nlist"
+
+ # Add our own program objects to the symbol list.
+ progfiles=`$ECHO "$objs$old_deplibs" | $SP2NL | $SED "$lo2o" | $NL2SP`
+ for progfile in $progfiles; do
+ func_to_tool_file "$progfile" func_convert_file_msys_to_w32
+ func_verbose "extracting global C symbols from '$func_to_tool_file_result'"
+ $opt_dry_run || eval "$NM $func_to_tool_file_result | $global_symbol_pipe >> '$nlist'"
+ done
+
+ if test -n "$exclude_expsyms"; then
+ $opt_dry_run || {
+ eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T'
+ eval '$MV "$nlist"T "$nlist"'
+ }
+ fi
+
+ if test -n "$export_symbols_regex"; then
+ $opt_dry_run || {
+ eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T'
+ eval '$MV "$nlist"T "$nlist"'
+ }
+ fi
+
+ # Prepare the list of exported symbols
+ if test -z "$export_symbols"; then
+ export_symbols=$output_objdir/$outputname.exp
+ $opt_dry_run || {
+ $RM $export_symbols
+ eval "$SED -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"'
+ case $host in
+ *cygwin* | *mingw* | *cegcc* )
+ eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
+ eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"'
+ ;;
+ esac
+ }
+ else
+ $opt_dry_run || {
+ eval "$SED -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"'
+ eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T'
+ eval '$MV "$nlist"T "$nlist"'
+ case $host in
+ *cygwin* | *mingw* | *cegcc* )
+ eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
+ eval 'cat "$nlist" >> "$output_objdir/$outputname.def"'
+ ;;
+ esac
+ }
+ fi
+ fi
+
+ for dlprefile in $dlprefiles; do
+ func_verbose "extracting global C symbols from '$dlprefile'"
+ func_basename "$dlprefile"
+ name=$func_basename_result
+ case $host in
+ *cygwin* | *mingw* | *cegcc* )
+ # if an import library, we need to obtain dlname
+ if func_win32_import_lib_p "$dlprefile"; then
+ func_tr_sh "$dlprefile"
+ eval "curr_lafile=\$libfile_$func_tr_sh_result"
+ dlprefile_dlbasename=
+ if test -n "$curr_lafile" && func_lalib_p "$curr_lafile"; then
+ # Use subshell, to avoid clobbering current variable values
+ dlprefile_dlname=`source "$curr_lafile" && echo "$dlname"`
+ if test -n "$dlprefile_dlname"; then
+ func_basename "$dlprefile_dlname"
+ dlprefile_dlbasename=$func_basename_result
+ else
+ # no lafile. user explicitly requested -dlpreopen <import library>.
+ $sharedlib_from_linklib_cmd "$dlprefile"
+ dlprefile_dlbasename=$sharedlib_from_linklib_result
+ fi
+ fi
+ $opt_dry_run || {
+ if test -n "$dlprefile_dlbasename"; then
+ eval '$ECHO ": $dlprefile_dlbasename" >> "$nlist"'
+ else
+ func_warning "Could not compute DLL name from $name"
+ eval '$ECHO ": $name " >> "$nlist"'
+ fi
+ func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32
+ eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe |
+ $SED -e '/I __imp/d' -e 's/I __nm_/D /;s/_nm__//' >> '$nlist'"
+ }
+ else # not an import lib
+ $opt_dry_run || {
+ eval '$ECHO ": $name " >> "$nlist"'
+ func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32
+ eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'"
+ }
+ fi
+ ;;
+ *)
+ $opt_dry_run || {
+ eval '$ECHO ": $name " >> "$nlist"'
+ func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32
+ eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'"
+ }
+ ;;
+ esac
+ done
+
+ $opt_dry_run || {
+ # Make sure we have at least an empty file.
+ test -f "$nlist" || : > "$nlist"
+
+ if test -n "$exclude_expsyms"; then
+ $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T
+ $MV "$nlist"T "$nlist"
+ fi
+
+ # Try sorting and uniquifying the output.
+ if $GREP -v "^: " < "$nlist" |
+ if sort -k 3 </dev/null >/dev/null 2>&1; then
+ sort -k 3
+ else
+ sort +2
+ fi |
+ uniq > "$nlist"S; then
+ :
+ else
+ $GREP -v "^: " < "$nlist" > "$nlist"S
+ fi
+
+ if test -f "$nlist"S; then
+ eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$my_dlsyms"'
+ else
+ echo '/* NONE */' >> "$output_objdir/$my_dlsyms"
+ fi
+
+ func_show_eval '$RM "${nlist}I"'
+ if test -n "$global_symbol_to_import"; then
+ eval "$global_symbol_to_import"' < "$nlist"S > "$nlist"I'
+ fi
+
+ echo >> "$output_objdir/$my_dlsyms" "\
+
+/* The mapping between symbol names and symbols. */
+typedef struct {
+ const char *name;
+ void *address;
+} lt_dlsymlist;
+extern LT_DLSYM_CONST lt_dlsymlist
+lt_${my_prefix}_LTX_preloaded_symbols[];\
+"
+
+ if test -s "$nlist"I; then
+ echo >> "$output_objdir/$my_dlsyms" "\
+static void lt_syminit(void)
+{
+ LT_DLSYM_CONST lt_dlsymlist *symbol = lt_${my_prefix}_LTX_preloaded_symbols;
+ for (; symbol->name; ++symbol)
+ {"
+ $SED 's/.*/ if (STREQ (symbol->name, \"&\")) symbol->address = (void *) \&&;/' < "$nlist"I >> "$output_objdir/$my_dlsyms"
+ echo >> "$output_objdir/$my_dlsyms" "\
+ }
+}"
+ fi
+ echo >> "$output_objdir/$my_dlsyms" "\
+LT_DLSYM_CONST lt_dlsymlist
+lt_${my_prefix}_LTX_preloaded_symbols[] =
+{ {\"$my_originator\", (void *) 0},"
+
+ if test -s "$nlist"I; then
+ echo >> "$output_objdir/$my_dlsyms" "\
+ {\"@INIT@\", (void *) <_syminit},"
+ fi
+
+ case $need_lib_prefix in
+ no)
+ eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$my_dlsyms"
+ ;;
+ *)
+ eval "$global_symbol_to_c_name_address_lib_prefix" < "$nlist" >> "$output_objdir/$my_dlsyms"
+ ;;
+ esac
+ echo >> "$output_objdir/$my_dlsyms" "\
+ {0, (void *) 0}
+};
+
+/* This works around a problem in FreeBSD linker */
+#ifdef FREEBSD_WORKAROUND
+static const void *lt_preloaded_setup() {
+ return lt_${my_prefix}_LTX_preloaded_symbols;
+}
+#endif
+
+#ifdef __cplusplus
+}
+#endif\
+"
+ } # !$opt_dry_run
+
+ pic_flag_for_symtable=
+ case "$compile_command " in
+ *" -static "*) ;;
+ *)
+ case $host in
+ # compiling the symbol table file with pic_flag works around
+ # a FreeBSD bug that causes programs to crash when -lm is
+ # linked before any other PIC object. But we must not use
+ # pic_flag when linking with -static. The problem exists in
+ # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1.
+ *-*-freebsd2.*|*-*-freebsd3.0*|*-*-freebsdelf3.0*)
+ pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND" ;;
+ *-*-hpux*)
+ pic_flag_for_symtable=" $pic_flag" ;;
+ *)
+ $my_pic_p && pic_flag_for_symtable=" $pic_flag"
+ ;;
+ esac
+ ;;
+ esac
+ symtab_cflags=
+ for arg in $LTCFLAGS; do
+ case $arg in
+ -pie | -fpie | -fPIE) ;;
+ *) func_append symtab_cflags " $arg" ;;
+ esac
+ done
+
+ # Now compile the dynamic symbol file.
+ func_show_eval '(cd $output_objdir && $LTCC$symtab_cflags -c$no_builtin_flag$pic_flag_for_symtable "$my_dlsyms")' 'exit $?'
+
+ # Clean up the generated files.
+ func_show_eval '$RM "$output_objdir/$my_dlsyms" "$nlist" "${nlist}S" "${nlist}T" "${nlist}I"'
+
+ # Transform the symbol file into the correct name.
+ symfileobj=$output_objdir/${my_outputname}S.$objext
+ case $host in
+ *cygwin* | *mingw* | *cegcc* )
+ if test -f "$output_objdir/$my_outputname.def"; then
+ compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"`
+ finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"`
+ else
+ compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"`
+ finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"`
+ fi
+ ;;
+ *)
+ compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"`
+ finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"`
+ ;;
+ esac
+ ;;
+ *)
+ func_fatal_error "unknown suffix for '$my_dlsyms'"
+ ;;
+ esac
+ else
+ # We keep going just in case the user didn't refer to
+ # lt_preloaded_symbols. The linker will fail if global_symbol_pipe
+ # really was required.
+
+ # Nullify the symbol file.
+ compile_command=`$ECHO "$compile_command" | $SED "s% @SYMFILE@%%"`
+ finalize_command=`$ECHO "$finalize_command" | $SED "s% @SYMFILE@%%"`
+ fi
+}
+
+# func_cygming_gnu_implib_p ARG
+# This predicate returns with zero status (TRUE) if
+# ARG is a GNU/binutils-style import library. Returns
+# with nonzero status (FALSE) otherwise.
+func_cygming_gnu_implib_p ()
+{
+ $debug_cmd
+
+ func_to_tool_file "$1" func_convert_file_msys_to_w32
+ func_cygming_gnu_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $EGREP ' (_head_[A-Za-z0-9_]+_[ad]l*|[A-Za-z0-9_]+_[ad]l*_iname)$'`
+ test -n "$func_cygming_gnu_implib_tmp"
+}
+
+# func_cygming_ms_implib_p ARG
+# This predicate returns with zero status (TRUE) if
+# ARG is an MS-style import library. Returns
+# with nonzero status (FALSE) otherwise.
+func_cygming_ms_implib_p ()
+{
+ $debug_cmd
+
+ func_to_tool_file "$1" func_convert_file_msys_to_w32
+ func_cygming_ms_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $GREP '_NULL_IMPORT_DESCRIPTOR'`
+ test -n "$func_cygming_ms_implib_tmp"
+}
+
+# func_win32_libid arg
+# return the library type of file 'arg'
+#
+# Need a lot of goo to handle *both* DLLs and import libs
+# Has to be a shell function in order to 'eat' the argument
+# that is supplied when $file_magic_command is called.
+# Despite the name, also deal with 64 bit binaries.
+func_win32_libid ()
+{
+ $debug_cmd
+
+ win32_libid_type=unknown
+ win32_fileres=`file -L $1 2>/dev/null`
+ case $win32_fileres in
+ *ar\ archive\ import\ library*) # definitely import
+ win32_libid_type="x86 archive import"
+ ;;
+ *ar\ archive*) # could be an import, or static
+ # Keep the egrep pattern in sync with the one in _LT_CHECK_MAGIC_METHOD.
+ if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null |
+ $EGREP 'file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' >/dev/null; then
+ case $nm_interface in
+ "MS dumpbin")
+ if func_cygming_ms_implib_p "$1" ||
+ func_cygming_gnu_implib_p "$1"
+ then
+ win32_nmres=import
+ else
+ win32_nmres=
+ fi
+ ;;
+ *)
+ func_to_tool_file "$1" func_convert_file_msys_to_w32
+ win32_nmres=`eval $NM -f posix -A \"$func_to_tool_file_result\" |
+ $SED -n -e '
+ 1,100{
+ / I /{
+ s|.*|import|
+ p
+ q
+ }
+ }'`
+ ;;
+ esac
+ case $win32_nmres in
+ import*) win32_libid_type="x86 archive import";;
+ *) win32_libid_type="x86 archive static";;
+ esac
+ fi
+ ;;
+ *DLL*)
+ win32_libid_type="x86 DLL"
+ ;;
+ *executable*) # but shell scripts are "executable" too...
+ case $win32_fileres in
+ *MS\ Windows\ PE\ Intel*)
+ win32_libid_type="x86 DLL"
+ ;;
+ esac
+ ;;
+ esac
+ $ECHO "$win32_libid_type"
+}
+
+# func_cygming_dll_for_implib ARG
+#
+# Platform-specific function to extract the
+# name of the DLL associated with the specified
+# import library ARG.
+# Invoked by eval'ing the libtool variable
+# $sharedlib_from_linklib_cmd
+# Result is available in the variable
+# $sharedlib_from_linklib_result
+func_cygming_dll_for_implib ()
+{
+ $debug_cmd
+
+ sharedlib_from_linklib_result=`$DLLTOOL --identify-strict --identify "$1"`
+}
+
+# func_cygming_dll_for_implib_fallback_core SECTION_NAME LIBNAMEs
+#
+# The is the core of a fallback implementation of a
+# platform-specific function to extract the name of the
+# DLL associated with the specified import library LIBNAME.
+#
+# SECTION_NAME is either .idata$6 or .idata$7, depending
+# on the platform and compiler that created the implib.
+#
+# Echos the name of the DLL associated with the
+# specified import library.
+func_cygming_dll_for_implib_fallback_core ()
+{
+ $debug_cmd
+
+ match_literal=`$ECHO "$1" | $SED "$sed_make_literal_regex"`
+ $OBJDUMP -s --section "$1" "$2" 2>/dev/null |
+ $SED '/^Contents of section '"$match_literal"':/{
+ # Place marker at beginning of archive member dllname section
+ s/.*/====MARK====/
+ p
+ d
+ }
+ # These lines can sometimes be longer than 43 characters, but
+ # are always uninteresting
+ /:[ ]*file format pe[i]\{,1\}-/d
+ /^In archive [^:]*:/d
+ # Ensure marker is printed
+ /^====MARK====/p
+ # Remove all lines with less than 43 characters
+ /^.\{43\}/!d
+ # From remaining lines, remove first 43 characters
+ s/^.\{43\}//' |
+ $SED -n '
+ # Join marker and all lines until next marker into a single line
+ /^====MARK====/ b para
+ H
+ $ b para
+ b
+ :para
+ x
+ s/\n//g
+ # Remove the marker
+ s/^====MARK====//
+ # Remove trailing dots and whitespace
+ s/[\. \t]*$//
+ # Print
+ /./p' |
+ # we now have a list, one entry per line, of the stringified
+ # contents of the appropriate section of all members of the
+ # archive that possess that section. Heuristic: eliminate
+ # all those that have a first or second character that is
+ # a '.' (that is, objdump's representation of an unprintable
+ # character.) This should work for all archives with less than
+ # 0x302f exports -- but will fail for DLLs whose name actually
+ # begins with a literal '.' or a single character followed by
+ # a '.'.
+ #
+ # Of those that remain, print the first one.
+ $SED -e '/^\./d;/^.\./d;q'
+}
+
+# func_cygming_dll_for_implib_fallback ARG
+# Platform-specific function to extract the
+# name of the DLL associated with the specified
+# import library ARG.
+#
+# This fallback implementation is for use when $DLLTOOL
+# does not support the --identify-strict option.
+# Invoked by eval'ing the libtool variable
+# $sharedlib_from_linklib_cmd
+# Result is available in the variable
+# $sharedlib_from_linklib_result
+func_cygming_dll_for_implib_fallback ()
+{
+ $debug_cmd
+
+ if func_cygming_gnu_implib_p "$1"; then
+ # binutils import library
+ sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$7' "$1"`
+ elif func_cygming_ms_implib_p "$1"; then
+ # ms-generated import library
+ sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$6' "$1"`
+ else
+ # unknown
+ sharedlib_from_linklib_result=
+ fi
+}
+
+
+# func_extract_an_archive dir oldlib
+func_extract_an_archive ()
+{
+ $debug_cmd
+
+ f_ex_an_ar_dir=$1; shift
+ f_ex_an_ar_oldlib=$1
+ if test yes = "$lock_old_archive_extraction"; then
+ lockfile=$f_ex_an_ar_oldlib.lock
+ until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do
+ func_echo "Waiting for $lockfile to be removed"
+ sleep 2
+ done
+ fi
+ func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" \
+ 'stat=$?; rm -f "$lockfile"; exit $stat'
+ if test yes = "$lock_old_archive_extraction"; then
+ $opt_dry_run || rm -f "$lockfile"
+ fi
+ if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then
+ :
+ else
+ func_fatal_error "object name conflicts in archive: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib"
+ fi
+}
+
+
+# func_extract_archives gentop oldlib ...
+func_extract_archives ()
+{
+ $debug_cmd
+
+ my_gentop=$1; shift
+ my_oldlibs=${1+"$@"}
+ my_oldobjs=
+ my_xlib=
+ my_xabs=
+ my_xdir=
+
+ for my_xlib in $my_oldlibs; do
+ # Extract the objects.
+ case $my_xlib in
+ [\\/]* | [A-Za-z]:[\\/]*) my_xabs=$my_xlib ;;
+ *) my_xabs=`pwd`"/$my_xlib" ;;
+ esac
+ func_basename "$my_xlib"
+ my_xlib=$func_basename_result
+ my_xlib_u=$my_xlib
+ while :; do
+ case " $extracted_archives " in
+ *" $my_xlib_u "*)
+ func_arith $extracted_serial + 1
+ extracted_serial=$func_arith_result
+ my_xlib_u=lt$extracted_serial-$my_xlib ;;
+ *) break ;;
+ esac
+ done
+ extracted_archives="$extracted_archives $my_xlib_u"
+ my_xdir=$my_gentop/$my_xlib_u
+
+ func_mkdir_p "$my_xdir"
+
+ case $host in
+ *-darwin*)
+ func_verbose "Extracting $my_xabs"
+ # Do not bother doing anything if just a dry run
+ $opt_dry_run || {
+ darwin_orig_dir=`pwd`
+ cd $my_xdir || exit $?
+ darwin_archive=$my_xabs
+ darwin_curdir=`pwd`
+ func_basename "$darwin_archive"
+ darwin_base_archive=$func_basename_result
+ darwin_arches=`$LIPO -info "$darwin_archive" 2>/dev/null | $GREP Architectures 2>/dev/null || true`
+ if test -n "$darwin_arches"; then
+ darwin_arches=`$ECHO "$darwin_arches" | $SED -e 's/.*are://'`
+ darwin_arch=
+ func_verbose "$darwin_base_archive has multiple architectures $darwin_arches"
+ for darwin_arch in $darwin_arches; do
+ func_mkdir_p "unfat-$$/$darwin_base_archive-$darwin_arch"
+ $LIPO -thin $darwin_arch -output "unfat-$$/$darwin_base_archive-$darwin_arch/$darwin_base_archive" "$darwin_archive"
+ cd "unfat-$$/$darwin_base_archive-$darwin_arch"
+ func_extract_an_archive "`pwd`" "$darwin_base_archive"
+ cd "$darwin_curdir"
+ $RM "unfat-$$/$darwin_base_archive-$darwin_arch/$darwin_base_archive"
+ done # $darwin_arches
+ ## Okay now we've a bunch of thin objects, gotta fatten them up :)
+ darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print | $SED -e "$sed_basename" | sort -u`
+ darwin_file=
+ darwin_files=
+ for darwin_file in $darwin_filelist; do
+ darwin_files=`find unfat-$$ -name $darwin_file -print | sort | $NL2SP`
+ $LIPO -create -output "$darwin_file" $darwin_files
+ done # $darwin_filelist
+ $RM -rf unfat-$$
+ cd "$darwin_orig_dir"
+ else
+ cd $darwin_orig_dir
+ func_extract_an_archive "$my_xdir" "$my_xabs"
+ fi # $darwin_arches
+ } # !$opt_dry_run
+ ;;
+ *)
+ func_extract_an_archive "$my_xdir" "$my_xabs"
+ ;;
+ esac
+ my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | sort | $NL2SP`
+ done
+
+ func_extract_archives_result=$my_oldobjs
+}
+
+
+# func_emit_wrapper [arg=no]
+#
+# Emit a libtool wrapper script on stdout.
+# Don't directly open a file because we may want to
+# incorporate the script contents within a cygwin/mingw
+# wrapper executable. Must ONLY be called from within
+# func_mode_link because it depends on a number of variables
+# set therein.
+#
+# ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR
+# variable will take. If 'yes', then the emitted script
+# will assume that the directory where it is stored is
+# the $objdir directory. This is a cygwin/mingw-specific
+# behavior.
+func_emit_wrapper ()
+{
+ func_emit_wrapper_arg1=${1-no}
+
+ $ECHO "\
+#! $SHELL
+
+# $output - temporary wrapper script for $objdir/$outputname
+# Generated by $PROGRAM (GNU $PACKAGE) $VERSION
+#
+# The $output program cannot be directly executed until all the libtool
+# libraries that it depends on are installed.
+#
+# This wrapper script should never be moved out of the build directory.
+# If it is, it will not operate correctly.
+
+# Sed substitution that helps us do robust quoting. It backslashifies
+# metacharacters that are still active within double-quoted strings.
+sed_quote_subst='$sed_quote_subst'
+
+# Be Bourne compatible
+if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then
+ emulate sh
+ NULLCMD=:
+ # Zsh 3.x and 4.x performs word splitting on \${1+\"\$@\"}, which
+ # is contrary to our usage. Disable this feature.
+ alias -g '\${1+\"\$@\"}'='\"\$@\"'
+ setopt NO_GLOB_SUBST
+else
+ case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac
+fi
+BIN_SH=xpg4; export BIN_SH # for Tru64
+DUALCASE=1; export DUALCASE # for MKS sh
+
+# The HP-UX ksh and POSIX shell print the target directory to stdout
+# if CDPATH is set.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+relink_command=\"$relink_command\"
+
+# This environment variable determines our operation mode.
+if test \"\$libtool_install_magic\" = \"$magic\"; then
+ # install mode needs the following variables:
+ generated_by_libtool_version='$macro_version'
+ notinst_deplibs='$notinst_deplibs'
+else
+ # When we are sourced in execute mode, \$file and \$ECHO are already set.
+ if test \"\$libtool_execute_magic\" != \"$magic\"; then
+ file=\"\$0\""
+
+ qECHO=`$ECHO "$ECHO" | $SED "$sed_quote_subst"`
+ $ECHO "\
+
+# A function that is used when there is no print builtin or printf.
+func_fallback_echo ()
+{
+ eval 'cat <<_LTECHO_EOF
+\$1
+_LTECHO_EOF'
+}
+ ECHO=\"$qECHO\"
+ fi
+
+# Very basic option parsing. These options are (a) specific to
+# the libtool wrapper, (b) are identical between the wrapper
+# /script/ and the wrapper /executable/ that is used only on
+# windows platforms, and (c) all begin with the string "--lt-"
+# (application programs are unlikely to have options that match
+# this pattern).
+#
+# There are only two supported options: --lt-debug and
+# --lt-dump-script. There is, deliberately, no --lt-help.
+#
+# The first argument to this parsing function should be the
+# script's $0 value, followed by "$@".
+lt_option_debug=
+func_parse_lt_options ()
+{
+ lt_script_arg0=\$0
+ shift
+ for lt_opt
+ do
+ case \"\$lt_opt\" in
+ --lt-debug) lt_option_debug=1 ;;
+ --lt-dump-script)
+ lt_dump_D=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%/[^/]*$%%'\`
+ test \"X\$lt_dump_D\" = \"X\$lt_script_arg0\" && lt_dump_D=.
+ lt_dump_F=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%^.*/%%'\`
+ cat \"\$lt_dump_D/\$lt_dump_F\"
+ exit 0
+ ;;
+ --lt-*)
+ \$ECHO \"Unrecognized --lt- option: '\$lt_opt'\" 1>&2
+ exit 1
+ ;;
+ esac
+ done
+
+ # Print the debug banner immediately:
+ if test -n \"\$lt_option_debug\"; then
+ echo \"$outputname:$output:\$LINENO: libtool wrapper (GNU $PACKAGE) $VERSION\" 1>&2
+ fi
+}
+
+# Used when --lt-debug. Prints its arguments to stdout
+# (redirection is the responsibility of the caller)
+func_lt_dump_args ()
+{
+ lt_dump_args_N=1;
+ for lt_arg
+ do
+ \$ECHO \"$outputname:$output:\$LINENO: newargv[\$lt_dump_args_N]: \$lt_arg\"
+ lt_dump_args_N=\`expr \$lt_dump_args_N + 1\`
+ done
+}
+
+# Core function for launching the target application
+func_exec_program_core ()
+{
+"
+ case $host in
+ # Backslashes separate directories on plain windows
+ *-*-mingw | *-*-os2* | *-cegcc*)
+ $ECHO "\
+ if test -n \"\$lt_option_debug\"; then
+ \$ECHO \"$outputname:$output:\$LINENO: newargv[0]: \$progdir\\\\\$program\" 1>&2
+ func_lt_dump_args \${1+\"\$@\"} 1>&2
+ fi
+ exec \"\$progdir\\\\\$program\" \${1+\"\$@\"}
+"
+ ;;
+
+ *)
+ $ECHO "\
+ if test -n \"\$lt_option_debug\"; then
+ \$ECHO \"$outputname:$output:\$LINENO: newargv[0]: \$progdir/\$program\" 1>&2
+ func_lt_dump_args \${1+\"\$@\"} 1>&2
+ fi
+ exec \"\$progdir/\$program\" \${1+\"\$@\"}
+"
+ ;;
+ esac
+ $ECHO "\
+ \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2
+ exit 1
+}
+
+# A function to encapsulate launching the target application
+# Strips options in the --lt-* namespace from \$@ and
+# launches target application with the remaining arguments.
+func_exec_program ()
+{
+ case \" \$* \" in
+ *\\ --lt-*)
+ for lt_wr_arg
+ do
+ case \$lt_wr_arg in
+ --lt-*) ;;
+ *) set x \"\$@\" \"\$lt_wr_arg\"; shift;;
+ esac
+ shift
+ done ;;
+ esac
+ func_exec_program_core \${1+\"\$@\"}
+}
+
+ # Parse options
+ func_parse_lt_options \"\$0\" \${1+\"\$@\"}
+
+ # Find the directory that this script lives in.
+ thisdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*$%%'\`
+ test \"x\$thisdir\" = \"x\$file\" && thisdir=.
+
+ # Follow symbolic links until we get to the real thisdir.
+ file=\`ls -ld \"\$file\" | $SED -n 's/.*-> //p'\`
+ while test -n \"\$file\"; do
+ destdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*\$%%'\`
+
+ # If there was a directory component, then change thisdir.
+ if test \"x\$destdir\" != \"x\$file\"; then
+ case \"\$destdir\" in
+ [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;;
+ *) thisdir=\"\$thisdir/\$destdir\" ;;
+ esac
+ fi
+
+ file=\`\$ECHO \"\$file\" | $SED 's%^.*/%%'\`
+ file=\`ls -ld \"\$thisdir/\$file\" | $SED -n 's/.*-> //p'\`
+ done
+
+ # Usually 'no', except on cygwin/mingw when embedded into
+ # the cwrapper.
+ WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_arg1
+ if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then
+ # special case for '.'
+ if test \"\$thisdir\" = \".\"; then
+ thisdir=\`pwd\`
+ fi
+ # remove .libs from thisdir
+ case \"\$thisdir\" in
+ *[\\\\/]$objdir ) thisdir=\`\$ECHO \"\$thisdir\" | $SED 's%[\\\\/][^\\\\/]*$%%'\` ;;
+ $objdir ) thisdir=. ;;
+ esac
+ fi
+
+ # Try to get the absolute directory name.
+ absdir=\`cd \"\$thisdir\" && pwd\`
+ test -n \"\$absdir\" && thisdir=\"\$absdir\"
+"
+
+ if test yes = "$fast_install"; then
+ $ECHO "\
+ program=lt-'$outputname'$exeext
+ progdir=\"\$thisdir/$objdir\"
+
+ if test ! -f \"\$progdir/\$program\" ||
+ { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | $SED 1q\`; \\
+ test \"X\$file\" != \"X\$progdir/\$program\"; }; then
+
+ file=\"\$\$-\$program\"
+
+ if test ! -d \"\$progdir\"; then
+ $MKDIR \"\$progdir\"
+ else
+ $RM \"\$progdir/\$file\"
+ fi"
+
+ $ECHO "\
+
+ # relink executable if necessary
+ if test -n \"\$relink_command\"; then
+ if relink_command_output=\`eval \$relink_command 2>&1\`; then :
+ else
+ \$ECHO \"\$relink_command_output\" >&2
+ $RM \"\$progdir/\$file\"
+ exit 1
+ fi
+ fi
+
+ $MV \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null ||
+ { $RM \"\$progdir/\$program\";
+ $MV \"\$progdir/\$file\" \"\$progdir/\$program\"; }
+ $RM \"\$progdir/\$file\"
+ fi"
+ else
+ $ECHO "\
+ program='$outputname'
+ progdir=\"\$thisdir/$objdir\"
+"
+ fi
+
+ $ECHO "\
+
+ if test -f \"\$progdir/\$program\"; then"
+
+ # fixup the dll searchpath if we need to.
+ #
+ # Fix the DLL searchpath if we need to. Do this before prepending
+ # to shlibpath, because on Windows, both are PATH and uninstalled
+ # libraries must come first.
+ if test -n "$dllsearchpath"; then
+ $ECHO "\
+ # Add the dll search path components to the executable PATH
+ PATH=$dllsearchpath:\$PATH
+"
+ fi
+
+ # Export our shlibpath_var if we have one.
+ if test yes = "$shlibpath_overrides_runpath" && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
+ $ECHO "\
+ # Add our own library path to $shlibpath_var
+ $shlibpath_var=\"$temp_rpath\$$shlibpath_var\"
+
+ # Some systems cannot cope with colon-terminated $shlibpath_var
+ # The second colon is a workaround for a bug in BeOS R4 sed
+ $shlibpath_var=\`\$ECHO \"\$$shlibpath_var\" | $SED 's/::*\$//'\`
+
+ export $shlibpath_var
+"
+ fi
+
+ $ECHO "\
+ if test \"\$libtool_execute_magic\" != \"$magic\"; then
+ # Run the actual program with our arguments.
+ func_exec_program \${1+\"\$@\"}
+ fi
+ else
+ # The program doesn't exist.
+ \$ECHO \"\$0: error: '\$progdir/\$program' does not exist\" 1>&2
+ \$ECHO \"This script is just a wrapper for \$program.\" 1>&2
+ \$ECHO \"See the $PACKAGE documentation for more information.\" 1>&2
+ exit 1
+ fi
+fi\
+"
+}
+
+
+# func_emit_cwrapperexe_src
+# emit the source code for a wrapper executable on stdout
+# Must ONLY be called from within func_mode_link because
+# it depends on a number of variable set therein.
+func_emit_cwrapperexe_src ()
+{
+ cat <<EOF
+
+/* $cwrappersource - temporary wrapper executable for $objdir/$outputname
+ Generated by $PROGRAM (GNU $PACKAGE) $VERSION
+
+ The $output program cannot be directly executed until all the libtool
+ libraries that it depends on are installed.
+
+ This wrapper executable should never be moved out of the build directory.
+ If it is, it will not operate correctly.
+*/
+EOF
+ cat <<"EOF"
+#ifdef _MSC_VER
+# define _CRT_SECURE_NO_DEPRECATE 1
+#endif
+#include <stdio.h>
+#include <stdlib.h>
+#ifdef _MSC_VER
+# include <direct.h>
+# include <process.h>
+# include <io.h>
+#else
+# include <unistd.h>
+# include <stdint.h>
+# ifdef __CYGWIN__
+# include <io.h>
+# endif
+#endif
+#include <malloc.h>
+#include <stdarg.h>
+#include <assert.h>
+#include <string.h>
+#include <ctype.h>
+#include <errno.h>
+#include <fcntl.h>
+#include <sys/stat.h>
+
+#define STREQ(s1, s2) (strcmp ((s1), (s2)) == 0)
+
+/* declarations of non-ANSI functions */
+#if defined __MINGW32__
+# ifdef __STRICT_ANSI__
+int _putenv (const char *);
+# endif
+#elif defined __CYGWIN__
+# ifdef __STRICT_ANSI__
+char *realpath (const char *, char *);
+int putenv (char *);
+int setenv (const char *, const char *, int);
+# endif
+/* #elif defined other_platform || defined ... */
+#endif
+
+/* portability defines, excluding path handling macros */
+#if defined _MSC_VER
+# define setmode _setmode
+# define stat _stat
+# define chmod _chmod
+# define getcwd _getcwd
+# define putenv _putenv
+# define S_IXUSR _S_IEXEC
+#elif defined __MINGW32__
+# define setmode _setmode
+# define stat _stat
+# define chmod _chmod
+# define getcwd _getcwd
+# define putenv _putenv
+#elif defined __CYGWIN__
+# define HAVE_SETENV
+# define FOPEN_WB "wb"
+/* #elif defined other platforms ... */
+#endif
+
+#if defined PATH_MAX
+# define LT_PATHMAX PATH_MAX
+#elif defined MAXPATHLEN
+# define LT_PATHMAX MAXPATHLEN
+#else
+# define LT_PATHMAX 1024
+#endif
+
+#ifndef S_IXOTH
+# define S_IXOTH 0
+#endif
+#ifndef S_IXGRP
+# define S_IXGRP 0
+#endif
+
+/* path handling portability macros */
+#ifndef DIR_SEPARATOR
+# define DIR_SEPARATOR '/'
+# define PATH_SEPARATOR ':'
+#endif
+
+#if defined _WIN32 || defined __MSDOS__ || defined __DJGPP__ || \
+ defined __OS2__
+# define HAVE_DOS_BASED_FILE_SYSTEM
+# define FOPEN_WB "wb"
+# ifndef DIR_SEPARATOR_2
+# define DIR_SEPARATOR_2 '\\'
+# endif
+# ifndef PATH_SEPARATOR_2
+# define PATH_SEPARATOR_2 ';'
+# endif
+#endif
+
+#ifndef DIR_SEPARATOR_2
+# define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR)
+#else /* DIR_SEPARATOR_2 */
+# define IS_DIR_SEPARATOR(ch) \
+ (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2))
+#endif /* DIR_SEPARATOR_2 */
+
+#ifndef PATH_SEPARATOR_2
+# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR)
+#else /* PATH_SEPARATOR_2 */
+# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2)
+#endif /* PATH_SEPARATOR_2 */
+
+#ifndef FOPEN_WB
+# define FOPEN_WB "w"
+#endif
+#ifndef _O_BINARY
+# define _O_BINARY 0
+#endif
+
+#define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type)))
+#define XFREE(stale) do { \
+ if (stale) { free (stale); stale = 0; } \
+} while (0)
+
+#if defined LT_DEBUGWRAPPER
+static int lt_debug = 1;
+#else
+static int lt_debug = 0;
+#endif
+
+const char *program_name = "libtool-wrapper"; /* in case xstrdup fails */
+
+void *xmalloc (size_t num);
+char *xstrdup (const char *string);
+const char *base_name (const char *name);
+char *find_executable (const char *wrapper);
+char *chase_symlinks (const char *pathspec);
+int make_executable (const char *path);
+int check_executable (const char *path);
+char *strendzap (char *str, const char *pat);
+void lt_debugprintf (const char *file, int line, const char *fmt, ...);
+void lt_fatal (const char *file, int line, const char *message, ...);
+static const char *nonnull (const char *s);
+static const char *nonempty (const char *s);
+void lt_setenv (const char *name, const char *value);
+char *lt_extend_str (const char *orig_value, const char *add, int to_end);
+void lt_update_exe_path (const char *name, const char *value);
+void lt_update_lib_path (const char *name, const char *value);
+char **prepare_spawn (char **argv);
+void lt_dump_script (FILE *f);
+EOF
+
+ cat <<EOF
+#if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 5)
+# define externally_visible volatile
+#else
+# define externally_visible __attribute__((externally_visible)) volatile
+#endif
+externally_visible const char * MAGIC_EXE = "$magic_exe";
+const char * LIB_PATH_VARNAME = "$shlibpath_var";
+EOF
+
+ if test yes = "$shlibpath_overrides_runpath" && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
+ func_to_host_path "$temp_rpath"
+ cat <<EOF
+const char * LIB_PATH_VALUE = "$func_to_host_path_result";
+EOF
+ else
+ cat <<"EOF"
+const char * LIB_PATH_VALUE = "";
+EOF
+ fi
+
+ if test -n "$dllsearchpath"; then
+ func_to_host_path "$dllsearchpath:"
+ cat <<EOF
+const char * EXE_PATH_VARNAME = "PATH";
+const char * EXE_PATH_VALUE = "$func_to_host_path_result";
+EOF
+ else
+ cat <<"EOF"
+const char * EXE_PATH_VARNAME = "";
+const char * EXE_PATH_VALUE = "";
+EOF
+ fi
+
+ if test yes = "$fast_install"; then
+ cat <<EOF
+const char * TARGET_PROGRAM_NAME = "lt-$outputname"; /* hopefully, no .exe */
+EOF
+ else
+ cat <<EOF
+const char * TARGET_PROGRAM_NAME = "$outputname"; /* hopefully, no .exe */
+EOF
+ fi
+
+
+ cat <<"EOF"
+
+#define LTWRAPPER_OPTION_PREFIX "--lt-"
+
+static const char *ltwrapper_option_prefix = LTWRAPPER_OPTION_PREFIX;
+static const char *dumpscript_opt = LTWRAPPER_OPTION_PREFIX "dump-script";
+static const char *debug_opt = LTWRAPPER_OPTION_PREFIX "debug";
+
+int
+main (int argc, char *argv[])
+{
+ char **newargz;
+ int newargc;
+ char *tmp_pathspec;
+ char *actual_cwrapper_path;
+ char *actual_cwrapper_name;
+ char *target_name;
+ char *lt_argv_zero;
+ int rval = 127;
+
+ int i;
+
+ program_name = (char *) xstrdup (base_name (argv[0]));
+ newargz = XMALLOC (char *, (size_t) argc + 1);
+
+ /* very simple arg parsing; don't want to rely on getopt
+ * also, copy all non cwrapper options to newargz, except
+ * argz[0], which is handled differently
+ */
+ newargc=0;
+ for (i = 1; i < argc; i++)
+ {
+ if (STREQ (argv[i], dumpscript_opt))
+ {
+EOF
+ case $host in
+ *mingw* | *cygwin* )
+ # make stdout use "unix" line endings
+ echo " setmode(1,_O_BINARY);"
+ ;;
+ esac
+
+ cat <<"EOF"
+ lt_dump_script (stdout);
+ return 0;
+ }
+ if (STREQ (argv[i], debug_opt))
+ {
+ lt_debug = 1;
+ continue;
+ }
+ if (STREQ (argv[i], ltwrapper_option_prefix))
+ {
+ /* however, if there is an option in the LTWRAPPER_OPTION_PREFIX
+ namespace, but it is not one of the ones we know about and
+ have already dealt with, above (inluding dump-script), then
+ report an error. Otherwise, targets might begin to believe
+ they are allowed to use options in the LTWRAPPER_OPTION_PREFIX
+ namespace. The first time any user complains about this, we'll
+ need to make LTWRAPPER_OPTION_PREFIX a configure-time option
+ or a configure.ac-settable value.
+ */
+ lt_fatal (__FILE__, __LINE__,
+ "unrecognized %s option: '%s'",
+ ltwrapper_option_prefix, argv[i]);
+ }
+ /* otherwise ... */
+ newargz[++newargc] = xstrdup (argv[i]);
+ }
+ newargz[++newargc] = NULL;
+
+EOF
+ cat <<EOF
+ /* The GNU banner must be the first non-error debug message */
+ lt_debugprintf (__FILE__, __LINE__, "libtool wrapper (GNU $PACKAGE) $VERSION\n");
+EOF
+ cat <<"EOF"
+ lt_debugprintf (__FILE__, __LINE__, "(main) argv[0]: %s\n", argv[0]);
+ lt_debugprintf (__FILE__, __LINE__, "(main) program_name: %s\n", program_name);
+
+ tmp_pathspec = find_executable (argv[0]);
+ if (tmp_pathspec == NULL)
+ lt_fatal (__FILE__, __LINE__, "couldn't find %s", argv[0]);
+ lt_debugprintf (__FILE__, __LINE__,
+ "(main) found exe (before symlink chase) at: %s\n",
+ tmp_pathspec);
+
+ actual_cwrapper_path = chase_symlinks (tmp_pathspec);
+ lt_debugprintf (__FILE__, __LINE__,
+ "(main) found exe (after symlink chase) at: %s\n",
+ actual_cwrapper_path);
+ XFREE (tmp_pathspec);
+
+ actual_cwrapper_name = xstrdup (base_name (actual_cwrapper_path));
+ strendzap (actual_cwrapper_path, actual_cwrapper_name);
+
+ /* wrapper name transforms */
+ strendzap (actual_cwrapper_name, ".exe");
+ tmp_pathspec = lt_extend_str (actual_cwrapper_name, ".exe", 1);
+ XFREE (actual_cwrapper_name);
+ actual_cwrapper_name = tmp_pathspec;
+ tmp_pathspec = 0;
+
+ /* target_name transforms -- use actual target program name; might have lt- prefix */
+ target_name = xstrdup (base_name (TARGET_PROGRAM_NAME));
+ strendzap (target_name, ".exe");
+ tmp_pathspec = lt_extend_str (target_name, ".exe", 1);
+ XFREE (target_name);
+ target_name = tmp_pathspec;
+ tmp_pathspec = 0;
+
+ lt_debugprintf (__FILE__, __LINE__,
+ "(main) libtool target name: %s\n",
+ target_name);
+EOF
+
+ cat <<EOF
+ newargz[0] =
+ XMALLOC (char, (strlen (actual_cwrapper_path) +
+ strlen ("$objdir") + 1 + strlen (actual_cwrapper_name) + 1));
+ strcpy (newargz[0], actual_cwrapper_path);
+ strcat (newargz[0], "$objdir");
+ strcat (newargz[0], "/");
+EOF
+
+ cat <<"EOF"
+ /* stop here, and copy so we don't have to do this twice */
+ tmp_pathspec = xstrdup (newargz[0]);
+
+ /* do NOT want the lt- prefix here, so use actual_cwrapper_name */
+ strcat (newargz[0], actual_cwrapper_name);
+
+ /* DO want the lt- prefix here if it exists, so use target_name */
+ lt_argv_zero = lt_extend_str (tmp_pathspec, target_name, 1);
+ XFREE (tmp_pathspec);
+ tmp_pathspec = NULL;
+EOF
+
+ case $host_os in
+ mingw*)
+ cat <<"EOF"
+ {
+ char* p;
+ while ((p = strchr (newargz[0], '\\')) != NULL)
+ {
+ *p = '/';
+ }
+ while ((p = strchr (lt_argv_zero, '\\')) != NULL)
+ {
+ *p = '/';
+ }
+ }
+EOF
+ ;;
+ esac
+
+ cat <<"EOF"
+ XFREE (target_name);
+ XFREE (actual_cwrapper_path);
+ XFREE (actual_cwrapper_name);
+
+ lt_setenv ("BIN_SH", "xpg4"); /* for Tru64 */
+ lt_setenv ("DUALCASE", "1"); /* for MSK sh */
+ /* Update the DLL searchpath. EXE_PATH_VALUE ($dllsearchpath) must
+ be prepended before (that is, appear after) LIB_PATH_VALUE ($temp_rpath)
+ because on Windows, both *_VARNAMEs are PATH but uninstalled
+ libraries must come first. */
+ lt_update_exe_path (EXE_PATH_VARNAME, EXE_PATH_VALUE);
+ lt_update_lib_path (LIB_PATH_VARNAME, LIB_PATH_VALUE);
+
+ lt_debugprintf (__FILE__, __LINE__, "(main) lt_argv_zero: %s\n",
+ nonnull (lt_argv_zero));
+ for (i = 0; i < newargc; i++)
+ {
+ lt_debugprintf (__FILE__, __LINE__, "(main) newargz[%d]: %s\n",
+ i, nonnull (newargz[i]));
+ }
+
+EOF
+
+ case $host_os in
+ mingw*)
+ cat <<"EOF"
+ /* execv doesn't actually work on mingw as expected on unix */
+ newargz = prepare_spawn (newargz);
+ rval = (int) _spawnv (_P_WAIT, lt_argv_zero, (const char * const *) newargz);
+ if (rval == -1)
+ {
+ /* failed to start process */
+ lt_debugprintf (__FILE__, __LINE__,
+ "(main) failed to launch target \"%s\": %s\n",
+ lt_argv_zero, nonnull (strerror (errno)));
+ return 127;
+ }
+ return rval;
+EOF
+ ;;
+ *)
+ cat <<"EOF"
+ execv (lt_argv_zero, newargz);
+ return rval; /* =127, but avoids unused variable warning */
+EOF
+ ;;
+ esac
+
+ cat <<"EOF"
+}
+
+void *
+xmalloc (size_t num)
+{
+ void *p = (void *) malloc (num);
+ if (!p)
+ lt_fatal (__FILE__, __LINE__, "memory exhausted");
+
+ return p;
+}
+
+char *
+xstrdup (const char *string)
+{
+ return string ? strcpy ((char *) xmalloc (strlen (string) + 1),
+ string) : NULL;
+}
+
+const char *
+base_name (const char *name)
+{
+ const char *base;
+
+#if defined HAVE_DOS_BASED_FILE_SYSTEM
+ /* Skip over the disk name in MSDOS pathnames. */
+ if (isalpha ((unsigned char) name[0]) && name[1] == ':')
+ name += 2;
+#endif
+
+ for (base = name; *name; name++)
+ if (IS_DIR_SEPARATOR (*name))
+ base = name + 1;
+ return base;
+}
+
+int
+check_executable (const char *path)
+{
+ struct stat st;
+
+ lt_debugprintf (__FILE__, __LINE__, "(check_executable): %s\n",
+ nonempty (path));
+ if ((!path) || (!*path))
+ return 0;
+
+ if ((stat (path, &st) >= 0)
+ && (st.st_mode & (S_IXUSR | S_IXGRP | S_IXOTH)))
+ return 1;
+ else
+ return 0;
+}
+
+int
+make_executable (const char *path)
+{
+ int rval = 0;
+ struct stat st;
+
+ lt_debugprintf (__FILE__, __LINE__, "(make_executable): %s\n",
+ nonempty (path));
+ if ((!path) || (!*path))
+ return 0;
+
+ if (stat (path, &st) >= 0)
+ {
+ rval = chmod (path, st.st_mode | S_IXOTH | S_IXGRP | S_IXUSR);
+ }
+ return rval;
+}
+
+/* Searches for the full path of the wrapper. Returns
+ newly allocated full path name if found, NULL otherwise
+ Does not chase symlinks, even on platforms that support them.
+*/
+char *
+find_executable (const char *wrapper)
+{
+ int has_slash = 0;
+ const char *p;
+ const char *p_next;
+ /* static buffer for getcwd */
+ char tmp[LT_PATHMAX + 1];
+ size_t tmp_len;
+ char *concat_name;
+
+ lt_debugprintf (__FILE__, __LINE__, "(find_executable): %s\n",
+ nonempty (wrapper));
+
+ if ((wrapper == NULL) || (*wrapper == '\0'))
+ return NULL;
+
+ /* Absolute path? */
+#if defined HAVE_DOS_BASED_FILE_SYSTEM
+ if (isalpha ((unsigned char) wrapper[0]) && wrapper[1] == ':')
+ {
+ concat_name = xstrdup (wrapper);
+ if (check_executable (concat_name))
+ return concat_name;
+ XFREE (concat_name);
+ }
+ else
+ {
+#endif
+ if (IS_DIR_SEPARATOR (wrapper[0]))
+ {
+ concat_name = xstrdup (wrapper);
+ if (check_executable (concat_name))
+ return concat_name;
+ XFREE (concat_name);
+ }
+#if defined HAVE_DOS_BASED_FILE_SYSTEM
+ }
+#endif
+
+ for (p = wrapper; *p; p++)
+ if (*p == '/')
+ {
+ has_slash = 1;
+ break;
+ }
+ if (!has_slash)
+ {
+ /* no slashes; search PATH */
+ const char *path = getenv ("PATH");
+ if (path != NULL)
+ {
+ for (p = path; *p; p = p_next)
+ {
+ const char *q;
+ size_t p_len;
+ for (q = p; *q; q++)
+ if (IS_PATH_SEPARATOR (*q))
+ break;
+ p_len = (size_t) (q - p);
+ p_next = (*q == '\0' ? q : q + 1);
+ if (p_len == 0)
+ {
+ /* empty path: current directory */
+ if (getcwd (tmp, LT_PATHMAX) == NULL)
+ lt_fatal (__FILE__, __LINE__, "getcwd failed: %s",
+ nonnull (strerror (errno)));
+ tmp_len = strlen (tmp);
+ concat_name =
+ XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1);
+ memcpy (concat_name, tmp, tmp_len);
+ concat_name[tmp_len] = '/';
+ strcpy (concat_name + tmp_len + 1, wrapper);
+ }
+ else
+ {
+ concat_name =
+ XMALLOC (char, p_len + 1 + strlen (wrapper) + 1);
+ memcpy (concat_name, p, p_len);
+ concat_name[p_len] = '/';
+ strcpy (concat_name + p_len + 1, wrapper);
+ }
+ if (check_executable (concat_name))
+ return concat_name;
+ XFREE (concat_name);
+ }
+ }
+ /* not found in PATH; assume curdir */
+ }
+ /* Relative path | not found in path: prepend cwd */
+ if (getcwd (tmp, LT_PATHMAX) == NULL)
+ lt_fatal (__FILE__, __LINE__, "getcwd failed: %s",
+ nonnull (strerror (errno)));
+ tmp_len = strlen (tmp);
+ concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1);
+ memcpy (concat_name, tmp, tmp_len);
+ concat_name[tmp_len] = '/';
+ strcpy (concat_name + tmp_len + 1, wrapper);
+
+ if (check_executable (concat_name))
+ return concat_name;
+ XFREE (concat_name);
+ return NULL;
+}
+
+char *
+chase_symlinks (const char *pathspec)
+{
+#ifndef S_ISLNK
+ return xstrdup (pathspec);
+#else
+ char buf[LT_PATHMAX];
+ struct stat s;
+ char *tmp_pathspec = xstrdup (pathspec);
+ char *p;
+ int has_symlinks = 0;
+ while (strlen (tmp_pathspec) && !has_symlinks)
+ {
+ lt_debugprintf (__FILE__, __LINE__,
+ "checking path component for symlinks: %s\n",
+ tmp_pathspec);
+ if (lstat (tmp_pathspec, &s) == 0)
+ {
+ if (S_ISLNK (s.st_mode) != 0)
+ {
+ has_symlinks = 1;
+ break;
+ }
+
+ /* search backwards for last DIR_SEPARATOR */
+ p = tmp_pathspec + strlen (tmp_pathspec) - 1;
+ while ((p > tmp_pathspec) && (!IS_DIR_SEPARATOR (*p)))
+ p--;
+ if ((p == tmp_pathspec) && (!IS_DIR_SEPARATOR (*p)))
+ {
+ /* no more DIR_SEPARATORS left */
+ break;
+ }
+ *p = '\0';
+ }
+ else
+ {
+ lt_fatal (__FILE__, __LINE__,
+ "error accessing file \"%s\": %s",
+ tmp_pathspec, nonnull (strerror (errno)));
+ }
+ }
+ XFREE (tmp_pathspec);
+
+ if (!has_symlinks)
+ {
+ return xstrdup (pathspec);
+ }
+
+ tmp_pathspec = realpath (pathspec, buf);
+ if (tmp_pathspec == 0)
+ {
+ lt_fatal (__FILE__, __LINE__,
+ "could not follow symlinks for %s", pathspec);
+ }
+ return xstrdup (tmp_pathspec);
+#endif
+}
+
+char *
+strendzap (char *str, const char *pat)
+{
+ size_t len, patlen;
+
+ assert (str != NULL);
+ assert (pat != NULL);
+
+ len = strlen (str);
+ patlen = strlen (pat);
+
+ if (patlen <= len)
+ {
+ str += len - patlen;
+ if (STREQ (str, pat))
+ *str = '\0';
+ }
+ return str;
+}
+
+void
+lt_debugprintf (const char *file, int line, const char *fmt, ...)
+{
+ va_list args;
+ if (lt_debug)
+ {
+ (void) fprintf (stderr, "%s:%s:%d: ", program_name, file, line);
+ va_start (args, fmt);
+ (void) vfprintf (stderr, fmt, args);
+ va_end (args);
+ }
+}
+
+static void
+lt_error_core (int exit_status, const char *file,
+ int line, const char *mode,
+ const char *message, va_list ap)
+{
+ fprintf (stderr, "%s:%s:%d: %s: ", program_name, file, line, mode);
+ vfprintf (stderr, message, ap);
+ fprintf (stderr, ".\n");
+
+ if (exit_status >= 0)
+ exit (exit_status);
+}
+
+void
+lt_fatal (const char *file, int line, const char *message, ...)
+{
+ va_list ap;
+ va_start (ap, message);
+ lt_error_core (EXIT_FAILURE, file, line, "FATAL", message, ap);
+ va_end (ap);
+}
+
+static const char *
+nonnull (const char *s)
+{
+ return s ? s : "(null)";
+}
+
+static const char *
+nonempty (const char *s)
+{
+ return (s && !*s) ? "(empty)" : nonnull (s);
+}
+
+void
+lt_setenv (const char *name, const char *value)
+{
+ lt_debugprintf (__FILE__, __LINE__,
+ "(lt_setenv) setting '%s' to '%s'\n",
+ nonnull (name), nonnull (value));
+ {
+#ifdef HAVE_SETENV
+ /* always make a copy, for consistency with !HAVE_SETENV */
+ char *str = xstrdup (value);
+ setenv (name, str, 1);
+#else
+ size_t len = strlen (name) + 1 + strlen (value) + 1;
+ char *str = XMALLOC (char, len);
+ sprintf (str, "%s=%s", name, value);
+ if (putenv (str) != EXIT_SUCCESS)
+ {
+ XFREE (str);
+ }
+#endif
+ }
+}
+
+char *
+lt_extend_str (const char *orig_value, const char *add, int to_end)
+{
+ char *new_value;
+ if (orig_value && *orig_value)
+ {
+ size_t orig_value_len = strlen (orig_value);
+ size_t add_len = strlen (add);
+ new_value = XMALLOC (char, add_len + orig_value_len + 1);
+ if (to_end)
+ {
+ strcpy (new_value, orig_value);
+ strcpy (new_value + orig_value_len, add);
+ }
+ else
+ {
+ strcpy (new_value, add);
+ strcpy (new_value + add_len, orig_value);
+ }
+ }
+ else
+ {
+ new_value = xstrdup (add);
+ }
+ return new_value;
+}
+
+void
+lt_update_exe_path (const char *name, const char *value)
+{
+ lt_debugprintf (__FILE__, __LINE__,
+ "(lt_update_exe_path) modifying '%s' by prepending '%s'\n",
+ nonnull (name), nonnull (value));
+
+ if (name && *name && value && *value)
+ {
+ char *new_value = lt_extend_str (getenv (name), value, 0);
+ /* some systems can't cope with a ':'-terminated path #' */
+ size_t len = strlen (new_value);
+ while ((len > 0) && IS_PATH_SEPARATOR (new_value[len-1]))
+ {
+ new_value[--len] = '\0';
+ }
+ lt_setenv (name, new_value);
+ XFREE (new_value);
+ }
+}
+
+void
+lt_update_lib_path (const char *name, const char *value)
+{
+ lt_debugprintf (__FILE__, __LINE__,
+ "(lt_update_lib_path) modifying '%s' by prepending '%s'\n",
+ nonnull (name), nonnull (value));
+
+ if (name && *name && value && *value)
+ {
+ char *new_value = lt_extend_str (getenv (name), value, 0);
+ lt_setenv (name, new_value);
+ XFREE (new_value);
+ }
+}
+
+EOF
+ case $host_os in
+ mingw*)
+ cat <<"EOF"
+
+/* Prepares an argument vector before calling spawn().
+ Note that spawn() does not by itself call the command interpreter
+ (getenv ("COMSPEC") != NULL ? getenv ("COMSPEC") :
+ ({ OSVERSIONINFO v; v.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
+ GetVersionEx(&v);
+ v.dwPlatformId == VER_PLATFORM_WIN32_NT;
+ }) ? "cmd.exe" : "command.com").
+ Instead it simply concatenates the arguments, separated by ' ', and calls
+ CreateProcess(). We must quote the arguments since Win32 CreateProcess()
+ interprets characters like ' ', '\t', '\\', '"' (but not '<' and '>') in a
+ special way:
+ - Space and tab are interpreted as delimiters. They are not treated as
+ delimiters if they are surrounded by double quotes: "...".
+ - Unescaped double quotes are removed from the input. Their only effect is
+ that within double quotes, space and tab are treated like normal
+ characters.
+ - Backslashes not followed by double quotes are not special.
+ - But 2*n+1 backslashes followed by a double quote become
+ n backslashes followed by a double quote (n >= 0):
+ \" -> "
+ \\\" -> \"
+ \\\\\" -> \\"
+ */
+#define SHELL_SPECIAL_CHARS "\"\\ \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037"
+#define SHELL_SPACE_CHARS " \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037"
+char **
+prepare_spawn (char **argv)
+{
+ size_t argc;
+ char **new_argv;
+ size_t i;
+
+ /* Count number of arguments. */
+ for (argc = 0; argv[argc] != NULL; argc++)
+ ;
+
+ /* Allocate new argument vector. */
+ new_argv = XMALLOC (char *, argc + 1);
+
+ /* Put quoted arguments into the new argument vector. */
+ for (i = 0; i < argc; i++)
+ {
+ const char *string = argv[i];
+
+ if (string[0] == '\0')
+ new_argv[i] = xstrdup ("\"\"");
+ else if (strpbrk (string, SHELL_SPECIAL_CHARS) != NULL)
+ {
+ int quote_around = (strpbrk (string, SHELL_SPACE_CHARS) != NULL);
+ size_t length;
+ unsigned int backslashes;
+ const char *s;
+ char *quoted_string;
+ char *p;
+
+ length = 0;
+ backslashes = 0;
+ if (quote_around)
+ length++;
+ for (s = string; *s != '\0'; s++)
+ {
+ char c = *s;
+ if (c == '"')
+ length += backslashes + 1;
+ length++;
+ if (c == '\\')
+ backslashes++;
+ else
+ backslashes = 0;
+ }
+ if (quote_around)
+ length += backslashes + 1;
+
+ quoted_string = XMALLOC (char, length + 1);
+
+ p = quoted_string;
+ backslashes = 0;
+ if (quote_around)
+ *p++ = '"';
+ for (s = string; *s != '\0'; s++)
+ {
+ char c = *s;
+ if (c == '"')
+ {
+ unsigned int j;
+ for (j = backslashes + 1; j > 0; j--)
+ *p++ = '\\';
+ }
+ *p++ = c;
+ if (c == '\\')
+ backslashes++;
+ else
+ backslashes = 0;
+ }
+ if (quote_around)
+ {
+ unsigned int j;
+ for (j = backslashes; j > 0; j--)
+ *p++ = '\\';
+ *p++ = '"';
+ }
+ *p = '\0';
+
+ new_argv[i] = quoted_string;
+ }
+ else
+ new_argv[i] = (char *) string;
+ }
+ new_argv[argc] = NULL;
+
+ return new_argv;
+}
+EOF
+ ;;
+ esac
+
+ cat <<"EOF"
+void lt_dump_script (FILE* f)
+{
+EOF
+ func_emit_wrapper yes |
+ $SED -n -e '
+s/^\(.\{79\}\)\(..*\)/\1\
+\2/
+h
+s/\([\\"]\)/\\\1/g
+s/$/\\n/
+s/\([^\n]*\).*/ fputs ("\1", f);/p
+g
+D'
+ cat <<"EOF"
+}
+EOF
+}
+# end: func_emit_cwrapperexe_src
+
+# func_win32_import_lib_p ARG
+# True if ARG is an import lib, as indicated by $file_magic_cmd
+func_win32_import_lib_p ()
+{
+ $debug_cmd
+
+ case `eval $file_magic_cmd \"\$1\" 2>/dev/null | $SED -e 10q` in
+ *import*) : ;;
+ *) false ;;
+ esac
+}
+
+# func_suncc_cstd_abi
+# !!ONLY CALL THIS FOR SUN CC AFTER $compile_command IS FULLY EXPANDED!!
+# Several compiler flags select an ABI that is incompatible with the
+# Cstd library. Avoid specifying it if any are in CXXFLAGS.
+func_suncc_cstd_abi ()
+{
+ $debug_cmd
+
+ case " $compile_command " in
+ *" -compat=g "*|*\ -std=c++[0-9][0-9]\ *|*" -library=stdcxx4 "*|*" -library=stlport4 "*)
+ suncc_use_cstd_abi=no
+ ;;
+ *)
+ suncc_use_cstd_abi=yes
+ ;;
+ esac
+}
+
+# func_mode_link arg...
+func_mode_link ()
+{
+ $debug_cmd
+
+ case $host in
+ *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*)
+ # It is impossible to link a dll without this setting, and
+ # we shouldn't force the makefile maintainer to figure out
+ # what system we are compiling for in order to pass an extra
+ # flag for every libtool invocation.
+ # allow_undefined=no
+
+ # FIXME: Unfortunately, there are problems with the above when trying
+ # to make a dll that has undefined symbols, in which case not
+ # even a static library is built. For now, we need to specify
+ # -no-undefined on the libtool link line when we can be certain
+ # that all symbols are satisfied, otherwise we get a static library.
+ allow_undefined=yes
+ ;;
+ *)
+ allow_undefined=yes
+ ;;
+ esac
+ libtool_args=$nonopt
+ base_compile="$nonopt $@"
+ compile_command=$nonopt
+ finalize_command=$nonopt
+
+ compile_rpath=
+ finalize_rpath=
+ compile_shlibpath=
+ finalize_shlibpath=
+ convenience=
+ old_convenience=
+ deplibs=
+ old_deplibs=
+ compiler_flags=
+ linker_flags=
+ dllsearchpath=
+ lib_search_path=`pwd`
+ inst_prefix_dir=
+ new_inherited_linker_flags=
+
+ avoid_version=no
+ bindir=
+ dlfiles=
+ dlprefiles=
+ dlself=no
+ export_dynamic=no
+ export_symbols=
+ export_symbols_regex=
+ generated=
+ libobjs=
+ ltlibs=
+ module=no
+ no_install=no
+ objs=
+ os2dllname=
+ non_pic_objects=
+ precious_files_regex=
+ prefer_static_libs=no
+ preload=false
+ prev=
+ prevarg=
+ release=
+ rpath=
+ xrpath=
+ perm_rpath=
+ temp_rpath=
+ thread_safe=no
+ vinfo=
+ vinfo_number=no
+ weak_libs=
+ single_module=$wl-single_module
+ func_infer_tag $base_compile
+
+ # We need to know -static, to get the right output filenames.
+ for arg
+ do
+ case $arg in
+ -shared)
+ test yes != "$build_libtool_libs" \
+ && func_fatal_configuration "cannot build a shared library"
+ build_old_libs=no
+ break
+ ;;
+ -all-static | -static | -static-libtool-libs)
+ case $arg in
+ -all-static)
+ if test yes = "$build_libtool_libs" && test -z "$link_static_flag"; then
+ func_warning "complete static linking is impossible in this configuration"
+ fi
+ if test -n "$link_static_flag"; then
+ dlopen_self=$dlopen_self_static
+ fi
+ prefer_static_libs=yes
+ ;;
+ -static)
+ if test -z "$pic_flag" && test -n "$link_static_flag"; then
+ dlopen_self=$dlopen_self_static
+ fi
+ prefer_static_libs=built
+ ;;
+ -static-libtool-libs)
+ if test -z "$pic_flag" && test -n "$link_static_flag"; then
+ dlopen_self=$dlopen_self_static
+ fi
+ prefer_static_libs=yes
+ ;;
+ esac
+ build_libtool_libs=no
+ build_old_libs=yes
+ break
+ ;;
+ esac
+ done
+
+ # See if our shared archives depend on static archives.
+ test -n "$old_archive_from_new_cmds" && build_old_libs=yes
+
+ # Go through the arguments, transforming them on the way.
+ while test "$#" -gt 0; do
+ arg=$1
+ shift
+ func_quote_for_eval "$arg"
+ qarg=$func_quote_for_eval_unquoted_result
+ func_append libtool_args " $func_quote_for_eval_result"
+
+ # If the previous option needs an argument, assign it.
+ if test -n "$prev"; then
+ case $prev in
+ output)
+ func_append compile_command " @OUTPUT@"
+ func_append finalize_command " @OUTPUT@"
+ ;;
+ esac
+
+ case $prev in
+ bindir)
+ bindir=$arg
+ prev=
+ continue
+ ;;
+ dlfiles|dlprefiles)
+ $preload || {
+ # Add the symbol object into the linking commands.
+ func_append compile_command " @SYMFILE@"
+ func_append finalize_command " @SYMFILE@"
+ preload=:
+ }
+ case $arg in
+ *.la | *.lo) ;; # We handle these cases below.
+ force)
+ if test no = "$dlself"; then
+ dlself=needless
+ export_dynamic=yes
+ fi
+ prev=
+ continue
+ ;;
+ self)
+ if test dlprefiles = "$prev"; then
+ dlself=yes
+ elif test dlfiles = "$prev" && test yes != "$dlopen_self"; then
+ dlself=yes
+ else
+ dlself=needless
+ export_dynamic=yes
+ fi
+ prev=
+ continue
+ ;;
+ *)
+ if test dlfiles = "$prev"; then
+ func_append dlfiles " $arg"
+ else
+ func_append dlprefiles " $arg"
+ fi
+ prev=
+ continue
+ ;;
+ esac
+ ;;
+ expsyms)
+ export_symbols=$arg
+ test -f "$arg" \
+ || func_fatal_error "symbol file '$arg' does not exist"
+ prev=
+ continue
+ ;;
+ expsyms_regex)
+ export_symbols_regex=$arg
+ prev=
+ continue
+ ;;
+ framework)
+ case $host in
+ *-*-darwin*)
+ case "$deplibs " in
+ *" $qarg.ltframework "*) ;;
+ *) func_append deplibs " $qarg.ltframework" # this is fixed later
+ ;;
+ esac
+ ;;
+ esac
+ prev=
+ continue
+ ;;
+ inst_prefix)
+ inst_prefix_dir=$arg
+ prev=
+ continue
+ ;;
+ mllvm)
+ # Clang does not use LLVM to link, so we can simply discard any
+ # '-mllvm $arg' options when doing the link step.
+ prev=
+ continue
+ ;;
+ objectlist)
+ if test -f "$arg"; then
+ save_arg=$arg
+ moreargs=
+ for fil in `cat "$save_arg"`
+ do
+# func_append moreargs " $fil"
+ arg=$fil
+ # A libtool-controlled object.
+
+ # Check to see that this really is a libtool object.
+ if func_lalib_unsafe_p "$arg"; then
+ pic_object=
+ non_pic_object=
+
+ # Read the .lo file
+ func_source "$arg"
+
+ if test -z "$pic_object" ||
+ test -z "$non_pic_object" ||
+ test none = "$pic_object" &&
+ test none = "$non_pic_object"; then
+ func_fatal_error "cannot find name of object for '$arg'"
+ fi
+
+ # Extract subdirectory from the argument.
+ func_dirname "$arg" "/" ""
+ xdir=$func_dirname_result
+
+ if test none != "$pic_object"; then
+ # Prepend the subdirectory the object is found in.
+ pic_object=$xdir$pic_object
+
+ if test dlfiles = "$prev"; then
+ if test yes = "$build_libtool_libs" && test yes = "$dlopen_support"; then
+ func_append dlfiles " $pic_object"
+ prev=
+ continue
+ else
+ # If libtool objects are unsupported, then we need to preload.
+ prev=dlprefiles
+ fi
+ fi
+
+ # CHECK ME: I think I busted this. -Ossama
+ if test dlprefiles = "$prev"; then
+ # Preload the old-style object.
+ func_append dlprefiles " $pic_object"
+ prev=
+ fi
+
+ # A PIC object.
+ func_append libobjs " $pic_object"
+ arg=$pic_object
+ fi
+
+ # Non-PIC object.
+ if test none != "$non_pic_object"; then
+ # Prepend the subdirectory the object is found in.
+ non_pic_object=$xdir$non_pic_object
+
+ # A standard non-PIC object
+ func_append non_pic_objects " $non_pic_object"
+ if test -z "$pic_object" || test none = "$pic_object"; then
+ arg=$non_pic_object
+ fi
+ else
+ # If the PIC object exists, use it instead.
+ # $xdir was prepended to $pic_object above.
+ non_pic_object=$pic_object
+ func_append non_pic_objects " $non_pic_object"
+ fi
+ else
+ # Only an error if not doing a dry-run.
+ if $opt_dry_run; then
+ # Extract subdirectory from the argument.
+ func_dirname "$arg" "/" ""
+ xdir=$func_dirname_result
+
+ func_lo2o "$arg"
+ pic_object=$xdir$objdir/$func_lo2o_result
+ non_pic_object=$xdir$func_lo2o_result
+ func_append libobjs " $pic_object"
+ func_append non_pic_objects " $non_pic_object"
+ else
+ func_fatal_error "'$arg' is not a valid libtool object"
+ fi
+ fi
+ done
+ else
+ func_fatal_error "link input file '$arg' does not exist"
+ fi
+ arg=$save_arg
+ prev=
+ continue
+ ;;
+ os2dllname)
+ os2dllname=$arg
+ prev=
+ continue
+ ;;
+ precious_regex)
+ precious_files_regex=$arg
+ prev=
+ continue
+ ;;
+ release)
+ release=-$arg
+ prev=
+ continue
+ ;;
+ rpath | xrpath)
+ # We need an absolute path.
+ case $arg in
+ [\\/]* | [A-Za-z]:[\\/]*) ;;
+ *)
+ func_fatal_error "only absolute run-paths are allowed"
+ ;;
+ esac
+ if test rpath = "$prev"; then
+ case "$rpath " in
+ *" $arg "*) ;;
+ *) func_append rpath " $arg" ;;
+ esac
+ else
+ case "$xrpath " in
+ *" $arg "*) ;;
+ *) func_append xrpath " $arg" ;;
+ esac
+ fi
+ prev=
+ continue
+ ;;
+ shrext)
+ shrext_cmds=$arg
+ prev=
+ continue
+ ;;
+ weak)
+ func_append weak_libs " $arg"
+ prev=
+ continue
+ ;;
+ xcclinker)
+ func_append linker_flags " $qarg"
+ func_append compiler_flags " $qarg"
+ prev=
+ func_append compile_command " $qarg"
+ func_append finalize_command " $qarg"
+ continue
+ ;;
+ xcompiler)
+ func_append compiler_flags " $qarg"
+ prev=
+ func_append compile_command " $qarg"
+ func_append finalize_command " $qarg"
+ continue
+ ;;
+ xlinker)
+ func_append linker_flags " $qarg"
+ func_append compiler_flags " $wl$qarg"
+ prev=
+ func_append compile_command " $wl$qarg"
+ func_append finalize_command " $wl$qarg"
+ continue
+ ;;
+ *)
+ eval "$prev=\"\$arg\""
+ prev=
+ continue
+ ;;
+ esac
+ fi # test -n "$prev"
+
+ prevarg=$arg
+
+ case $arg in
+ -all-static)
+ if test -n "$link_static_flag"; then
+ # See comment for -static flag below, for more details.
+ func_append compile_command " $link_static_flag"
+ func_append finalize_command " $link_static_flag"
+ fi
+ continue
+ ;;
+
+ -allow-undefined)
+ # FIXME: remove this flag sometime in the future.
+ func_fatal_error "'-allow-undefined' must not be used because it is the default"
+ ;;
+
+ -avoid-version)
+ avoid_version=yes
+ continue
+ ;;
+
+ -bindir)
+ prev=bindir
+ continue
+ ;;
+
+ -dlopen)
+ prev=dlfiles
+ continue
+ ;;
+
+ -dlpreopen)
+ prev=dlprefiles
+ continue
+ ;;
+
+ -export-dynamic)
+ export_dynamic=yes
+ continue
+ ;;
+
+ -export-symbols | -export-symbols-regex)
+ if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
+ func_fatal_error "more than one -exported-symbols argument is not allowed"
+ fi
+ if test X-export-symbols = "X$arg"; then
+ prev=expsyms
+ else
+ prev=expsyms_regex
+ fi
+ continue
+ ;;
+
+ -framework)
+ prev=framework
+ continue
+ ;;
+
+ -inst-prefix-dir)
+ prev=inst_prefix
+ continue
+ ;;
+
+ # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:*
+ # so, if we see these flags be careful not to treat them like -L
+ -L[A-Z][A-Z]*:*)
+ case $with_gcc/$host in
+ no/*-*-irix* | /*-*-irix*)
+ func_append compile_command " $arg"
+ func_append finalize_command " $arg"
+ ;;
+ esac
+ continue
+ ;;
+
+ -L*)
+ func_stripname "-L" '' "$arg"
+ if test -z "$func_stripname_result"; then
+ if test "$#" -gt 0; then
+ func_fatal_error "require no space between '-L' and '$1'"
+ else
+ func_fatal_error "need path for '-L' option"
+ fi
+ fi
+ func_resolve_sysroot "$func_stripname_result"
+ dir=$func_resolve_sysroot_result
+ # We need an absolute path.
+ case $dir in
+ [\\/]* | [A-Za-z]:[\\/]*) ;;
+ *)
+ absdir=`cd "$dir" && pwd`
+ test -z "$absdir" && \
+ func_fatal_error "cannot determine absolute directory name of '$dir'"
+ dir=$absdir
+ ;;
+ esac
+ case "$deplibs " in
+ *" -L$dir "* | *" $arg "*)
+ # Will only happen for absolute or sysroot arguments
+ ;;
+ *)
+ # Preserve sysroot, but never include relative directories
+ case $dir in
+ [\\/]* | [A-Za-z]:[\\/]* | =*) func_append deplibs " $arg" ;;
+ *) func_append deplibs " -L$dir" ;;
+ esac
+ func_append lib_search_path " $dir"
+ ;;
+ esac
+ case $host in
+ *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*)
+ testbindir=`$ECHO "$dir" | $SED 's*/lib$*/bin*'`
+ case :$dllsearchpath: in
+ *":$dir:"*) ;;
+ ::) dllsearchpath=$dir;;
+ *) func_append dllsearchpath ":$dir";;
+ esac
+ case :$dllsearchpath: in
+ *":$testbindir:"*) ;;
+ ::) dllsearchpath=$testbindir;;
+ *) func_append dllsearchpath ":$testbindir";;
+ esac
+ ;;
+ esac
+ continue
+ ;;
+
+ -l*)
+ if test X-lc = "X$arg" || test X-lm = "X$arg"; then
+ case $host in
+ *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc* | *-*-haiku*)
+ # These systems don't actually have a C or math library (as such)
+ continue
+ ;;
+ *-*-os2*)
+ # These systems don't actually have a C library (as such)
+ test X-lc = "X$arg" && continue
+ ;;
+ *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* | *-*-bitrig*)
+ # Do not include libc due to us having libc/libc_r.
+ test X-lc = "X$arg" && continue
+ ;;
+ *-*-rhapsody* | *-*-darwin1.[012])
+ # Rhapsody C and math libraries are in the System framework
+ func_append deplibs " System.ltframework"
+ continue
+ ;;
+ *-*-sco3.2v5* | *-*-sco5v6*)
+ # Causes problems with __ctype
+ test X-lc = "X$arg" && continue
+ ;;
+ *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*)
+ # Compiler inserts libc in the correct place for threads to work
+ test X-lc = "X$arg" && continue
+ ;;
+ esac
+ elif test X-lc_r = "X$arg"; then
+ case $host in
+ *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* | *-*-bitrig*)
+ # Do not include libc_r directly, use -pthread flag.
+ continue
+ ;;
+ esac
+ fi
+ func_append deplibs " $arg"
+ continue
+ ;;
+
+ -mllvm)
+ prev=mllvm
+ continue
+ ;;
+
+ -module)
+ module=yes
+ continue
+ ;;
+
+ # Tru64 UNIX uses -model [arg] to determine the layout of C++
+ # classes, name mangling, and exception handling.
+ # Darwin uses the -arch flag to determine output architecture.
+ -model|-arch|-isysroot|--sysroot)
+ func_append compiler_flags " $arg"
+ func_append compile_command " $arg"
+ func_append finalize_command " $arg"
+ prev=xcompiler
+ continue
+ ;;
+
+ -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \
+ |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*)
+ func_append compiler_flags " $arg"
+ func_append compile_command " $arg"
+ func_append finalize_command " $arg"
+ case "$new_inherited_linker_flags " in
+ *" $arg "*) ;;
+ * ) func_append new_inherited_linker_flags " $arg" ;;
+ esac
+ continue
+ ;;
+
+ -multi_module)
+ single_module=$wl-multi_module
+ continue
+ ;;
+
+ -no-fast-install)
+ fast_install=no
+ continue
+ ;;
+
+ -no-install)
+ case $host in
+ *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin* | *-cegcc*)
+ # The PATH hackery in wrapper scripts is required on Windows
+ # and Darwin in order for the loader to find any dlls it needs.
+ func_warning "'-no-install' is ignored for $host"
+ func_warning "assuming '-no-fast-install' instead"
+ fast_install=no
+ ;;
+ *) no_install=yes ;;
+ esac
+ continue
+ ;;
+
+ -no-undefined)
+ allow_undefined=no
+ continue
+ ;;
+
+ -objectlist)
+ prev=objectlist
+ continue
+ ;;
+
+ -os2dllname)
+ prev=os2dllname
+ continue
+ ;;
+
+ -o) prev=output ;;
+
+ -precious-files-regex)
+ prev=precious_regex
+ continue
+ ;;
+
+ -release)
+ prev=release
+ continue
+ ;;
+
+ -rpath)
+ prev=rpath
+ continue
+ ;;
+
+ -R)
+ prev=xrpath
+ continue
+ ;;
+
+ -R*)
+ func_stripname '-R' '' "$arg"
+ dir=$func_stripname_result
+ # We need an absolute path.
+ case $dir in
+ [\\/]* | [A-Za-z]:[\\/]*) ;;
+ =*)
+ func_stripname '=' '' "$dir"
+ dir=$lt_sysroot$func_stripname_result
+ ;;
+ *)
+ func_fatal_error "only absolute run-paths are allowed"
+ ;;
+ esac
+ case "$xrpath " in
+ *" $dir "*) ;;
+ *) func_append xrpath " $dir" ;;
+ esac
+ continue
+ ;;
+
+ -shared)
+ # The effects of -shared are defined in a previous loop.
+ continue
+ ;;
+
+ -shrext)
+ prev=shrext
+ continue
+ ;;
+
+ -static | -static-libtool-libs)
+ # The effects of -static are defined in a previous loop.
+ # We used to do the same as -all-static on platforms that
+ # didn't have a PIC flag, but the assumption that the effects
+ # would be equivalent was wrong. It would break on at least
+ # Digital Unix and AIX.
+ continue
+ ;;
+
+ -thread-safe)
+ thread_safe=yes
+ continue
+ ;;
+
+ -version-info)
+ prev=vinfo
+ continue
+ ;;
+
+ -version-number)
+ prev=vinfo
+ vinfo_number=yes
+ continue
+ ;;
+
+ -weak)
+ prev=weak
+ continue
+ ;;
+
+ -Wc,*)
+ func_stripname '-Wc,' '' "$arg"
+ args=$func_stripname_result
+ arg=
+ save_ifs=$IFS; IFS=,
+ for flag in $args; do
+ IFS=$save_ifs
+ func_quote_for_eval "$flag"
+ func_append arg " $func_quote_for_eval_result"
+ func_append compiler_flags " $func_quote_for_eval_result"
+ done
+ IFS=$save_ifs
+ func_stripname ' ' '' "$arg"
+ arg=$func_stripname_result
+ ;;
+
+ -Wl,*)
+ func_stripname '-Wl,' '' "$arg"
+ args=$func_stripname_result
+ arg=
+ save_ifs=$IFS; IFS=,
+ for flag in $args; do
+ IFS=$save_ifs
+ func_quote_for_eval "$flag"
+ func_append arg " $wl$func_quote_for_eval_result"
+ func_append compiler_flags " $wl$func_quote_for_eval_result"
+ func_append linker_flags " $func_quote_for_eval_result"
+ done
+ IFS=$save_ifs
+ func_stripname ' ' '' "$arg"
+ arg=$func_stripname_result
+ ;;
+
+ -Xcompiler)
+ prev=xcompiler
+ continue
+ ;;
+
+ -Xlinker)
+ prev=xlinker
+ continue
+ ;;
+
+ -XCClinker)
+ prev=xcclinker
+ continue
+ ;;
+
+ # -msg_* for osf cc
+ -msg_*)
+ func_quote_for_eval "$arg"
+ arg=$func_quote_for_eval_result
+ ;;
+
+ # Flags to be passed through unchanged, with rationale:
+ # -64, -mips[0-9] enable 64-bit mode for the SGI compiler
+ # -r[0-9][0-9]* specify processor for the SGI compiler
+ # -xarch=*, -xtarget=* enable 64-bit mode for the Sun compiler
+ # +DA*, +DD* enable 64-bit mode for the HP compiler
+ # -q* compiler args for the IBM compiler
+ # -m*, -t[45]*, -txscale* architecture-specific flags for GCC
+ # -F/path path to uninstalled frameworks, gcc on darwin
+ # -p, -pg, --coverage, -fprofile-* profiling flags for GCC
+ # -fstack-protector* stack protector flags for GCC
+ # @file GCC response files
+ # -tp=* Portland pgcc target processor selection
+ # --sysroot=* for sysroot support
+ # -O*, -g*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization
+ # -stdlib=* select c++ std lib with clang
+ -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \
+ -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \
+ -O*|-g*|-flto*|-fwhopr*|-fuse-linker-plugin|-fstack-protector*|-stdlib=*)
+ func_quote_for_eval "$arg"
+ arg=$func_quote_for_eval_result
+ func_append compile_command " $arg"
+ func_append finalize_command " $arg"
+ func_append compiler_flags " $arg"
+ continue
+ ;;
+
+ -Z*)
+ if test os2 = "`expr $host : '.*\(os2\)'`"; then
+ # OS/2 uses -Zxxx to specify OS/2-specific options
+ compiler_flags="$compiler_flags $arg"
+ func_append compile_command " $arg"
+ func_append finalize_command " $arg"
+ case $arg in
+ -Zlinker | -Zstack)
+ prev=xcompiler
+ ;;
+ esac
+ continue
+ else
+ # Otherwise treat like 'Some other compiler flag' below
+ func_quote_for_eval "$arg"
+ arg=$func_quote_for_eval_result
+ fi
+ ;;
+
+ # Some other compiler flag.
+ -* | +*)
+ func_quote_for_eval "$arg"
+ arg=$func_quote_for_eval_result
+ ;;
+
+ *.$objext)
+ # A standard object.
+ func_append objs " $arg"
+ ;;
+
+ *.lo)
+ # A libtool-controlled object.
+
+ # Check to see that this really is a libtool object.
+ if func_lalib_unsafe_p "$arg"; then
+ pic_object=
+ non_pic_object=
+
+ # Read the .lo file
+ func_source "$arg"
+
+ if test -z "$pic_object" ||
+ test -z "$non_pic_object" ||
+ test none = "$pic_object" &&
+ test none = "$non_pic_object"; then
+ func_fatal_error "cannot find name of object for '$arg'"
+ fi
+
+ # Extract subdirectory from the argument.
+ func_dirname "$arg" "/" ""
+ xdir=$func_dirname_result
+
+ test none = "$pic_object" || {
+ # Prepend the subdirectory the object is found in.
+ pic_object=$xdir$pic_object
+
+ if test dlfiles = "$prev"; then
+ if test yes = "$build_libtool_libs" && test yes = "$dlopen_support"; then
+ func_append dlfiles " $pic_object"
+ prev=
+ continue
+ else
+ # If libtool objects are unsupported, then we need to preload.
+ prev=dlprefiles
+ fi
+ fi
+
+ # CHECK ME: I think I busted this. -Ossama
+ if test dlprefiles = "$prev"; then
+ # Preload the old-style object.
+ func_append dlprefiles " $pic_object"
+ prev=
+ fi
+
+ # A PIC object.
+ func_append libobjs " $pic_object"
+ arg=$pic_object
+ }
+
+ # Non-PIC object.
+ if test none != "$non_pic_object"; then
+ # Prepend the subdirectory the object is found in.
+ non_pic_object=$xdir$non_pic_object
+
+ # A standard non-PIC object
+ func_append non_pic_objects " $non_pic_object"
+ if test -z "$pic_object" || test none = "$pic_object"; then
+ arg=$non_pic_object
+ fi
+ else
+ # If the PIC object exists, use it instead.
+ # $xdir was prepended to $pic_object above.
+ non_pic_object=$pic_object
+ func_append non_pic_objects " $non_pic_object"
+ fi
+ else
+ # Only an error if not doing a dry-run.
+ if $opt_dry_run; then
+ # Extract subdirectory from the argument.
+ func_dirname "$arg" "/" ""
+ xdir=$func_dirname_result
+
+ func_lo2o "$arg"
+ pic_object=$xdir$objdir/$func_lo2o_result
+ non_pic_object=$xdir$func_lo2o_result
+ func_append libobjs " $pic_object"
+ func_append non_pic_objects " $non_pic_object"
+ else
+ func_fatal_error "'$arg' is not a valid libtool object"
+ fi
+ fi
+ ;;
+
+ *.$libext)
+ # An archive.
+ func_append deplibs " $arg"
+ func_append old_deplibs " $arg"
+ continue
+ ;;
+
+ *.la)
+ # A libtool-controlled library.
+
+ func_resolve_sysroot "$arg"
+ if test dlfiles = "$prev"; then
+ # This library was specified with -dlopen.
+ func_append dlfiles " $func_resolve_sysroot_result"
+ prev=
+ elif test dlprefiles = "$prev"; then
+ # The library was specified with -dlpreopen.
+ func_append dlprefiles " $func_resolve_sysroot_result"
+ prev=
+ else
+ func_append deplibs " $func_resolve_sysroot_result"
+ fi
+ continue
+ ;;
+
+ # Some other compiler argument.
+ *)
+ # Unknown arguments in both finalize_command and compile_command need
+ # to be aesthetically quoted because they are evaled later.
+ func_quote_for_eval "$arg"
+ arg=$func_quote_for_eval_result
+ ;;
+ esac # arg
+
+ # Now actually substitute the argument into the commands.
+ if test -n "$arg"; then
+ func_append compile_command " $arg"
+ func_append finalize_command " $arg"
+ fi
+ done # argument parsing loop
+
+ test -n "$prev" && \
+ func_fatal_help "the '$prevarg' option requires an argument"
+
+ if test yes = "$export_dynamic" && test -n "$export_dynamic_flag_spec"; then
+ eval arg=\"$export_dynamic_flag_spec\"
+ func_append compile_command " $arg"
+ func_append finalize_command " $arg"
+ fi
+
+ oldlibs=
+ # calculate the name of the file, without its directory
+ func_basename "$output"
+ outputname=$func_basename_result
+ libobjs_save=$libobjs
+
+ if test -n "$shlibpath_var"; then
+ # get the directories listed in $shlibpath_var
+ eval shlib_search_path=\`\$ECHO \"\$$shlibpath_var\" \| \$SED \'s/:/ /g\'\`
+ else
+ shlib_search_path=
+ fi
+ eval sys_lib_search_path=\"$sys_lib_search_path_spec\"
+ eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\"
+
+ # Definition is injected by LT_CONFIG during libtool generation.
+ func_munge_path_list sys_lib_dlsearch_path "$LT_SYS_LIBRARY_PATH"
+
+ func_dirname "$output" "/" ""
+ output_objdir=$func_dirname_result$objdir
+ func_to_tool_file "$output_objdir/"
+ tool_output_objdir=$func_to_tool_file_result
+ # Create the object directory.
+ func_mkdir_p "$output_objdir"
+
+ # Determine the type of output
+ case $output in
+ "")
+ func_fatal_help "you must specify an output file"
+ ;;
+ *.$libext) linkmode=oldlib ;;
+ *.lo | *.$objext) linkmode=obj ;;
+ *.la) linkmode=lib ;;
+ *) linkmode=prog ;; # Anything else should be a program.
+ esac
+
+ specialdeplibs=
+
+ libs=
+ # Find all interdependent deplibs by searching for libraries
+ # that are linked more than once (e.g. -la -lb -la)
+ for deplib in $deplibs; do
+ if $opt_preserve_dup_deps; then
+ case "$libs " in
+ *" $deplib "*) func_append specialdeplibs " $deplib" ;;
+ esac
+ fi
+ func_append libs " $deplib"
+ done
+
+ if test lib = "$linkmode"; then
+ libs="$predeps $libs $compiler_lib_search_path $postdeps"
+
+ # Compute libraries that are listed more than once in $predeps
+ # $postdeps and mark them as special (i.e., whose duplicates are
+ # not to be eliminated).
+ pre_post_deps=
+ if $opt_duplicate_compiler_generated_deps; then
+ for pre_post_dep in $predeps $postdeps; do
+ case "$pre_post_deps " in
+ *" $pre_post_dep "*) func_append specialdeplibs " $pre_post_deps" ;;
+ esac
+ func_append pre_post_deps " $pre_post_dep"
+ done
+ fi
+ pre_post_deps=
+ fi
+
+ deplibs=
+ newdependency_libs=
+ newlib_search_path=
+ need_relink=no # whether we're linking any uninstalled libtool libraries
+ notinst_deplibs= # not-installed libtool libraries
+ notinst_path= # paths that contain not-installed libtool libraries
+
+ case $linkmode in
+ lib)
+ passes="conv dlpreopen link"
+ for file in $dlfiles $dlprefiles; do
+ case $file in
+ *.la) ;;
+ *)
+ func_fatal_help "libraries can '-dlopen' only libtool libraries: $file"
+ ;;
+ esac
+ done
+ ;;
+ prog)
+ compile_deplibs=
+ finalize_deplibs=
+ alldeplibs=false
+ newdlfiles=
+ newdlprefiles=
+ passes="conv scan dlopen dlpreopen link"
+ ;;
+ *) passes="conv"
+ ;;
+ esac
+
+ for pass in $passes; do
+ # The preopen pass in lib mode reverses $deplibs; put it back here
+ # so that -L comes before libs that need it for instance...
+ if test lib,link = "$linkmode,$pass"; then
+ ## FIXME: Find the place where the list is rebuilt in the wrong
+ ## order, and fix it there properly
+ tmp_deplibs=
+ for deplib in $deplibs; do
+ tmp_deplibs="$deplib $tmp_deplibs"
+ done
+ deplibs=$tmp_deplibs
+ fi
+
+ if test lib,link = "$linkmode,$pass" ||
+ test prog,scan = "$linkmode,$pass"; then
+ libs=$deplibs
+ deplibs=
+ fi
+ if test prog = "$linkmode"; then
+ case $pass in
+ dlopen) libs=$dlfiles ;;
+ dlpreopen) libs=$dlprefiles ;;
+ link) libs="$deplibs %DEPLIBS% $dependency_libs" ;;
+ esac
+ fi
+ if test lib,dlpreopen = "$linkmode,$pass"; then
+ # Collect and forward deplibs of preopened libtool libs
+ for lib in $dlprefiles; do
+ # Ignore non-libtool-libs
+ dependency_libs=
+ func_resolve_sysroot "$lib"
+ case $lib in
+ *.la) func_source "$func_resolve_sysroot_result" ;;
+ esac
+
+ # Collect preopened libtool deplibs, except any this library
+ # has declared as weak libs
+ for deplib in $dependency_libs; do
+ func_basename "$deplib"
+ deplib_base=$func_basename_result
+ case " $weak_libs " in
+ *" $deplib_base "*) ;;
+ *) func_append deplibs " $deplib" ;;
+ esac
+ done
+ done
+ libs=$dlprefiles
+ fi
+ if test dlopen = "$pass"; then
+ # Collect dlpreopened libraries
+ save_deplibs=$deplibs
+ deplibs=
+ fi
+
+ for deplib in $libs; do
+ lib=
+ found=false
+ case $deplib in
+ -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \
+ |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*)
+ if test prog,link = "$linkmode,$pass"; then
+ compile_deplibs="$deplib $compile_deplibs"
+ finalize_deplibs="$deplib $finalize_deplibs"
+ else
+ func_append compiler_flags " $deplib"
+ if test lib = "$linkmode"; then
+ case "$new_inherited_linker_flags " in
+ *" $deplib "*) ;;
+ * ) func_append new_inherited_linker_flags " $deplib" ;;
+ esac
+ fi
+ fi
+ continue
+ ;;
+ -l*)
+ if test lib != "$linkmode" && test prog != "$linkmode"; then
+ func_warning "'-l' is ignored for archives/objects"
+ continue
+ fi
+ func_stripname '-l' '' "$deplib"
+ name=$func_stripname_result
+ if test lib = "$linkmode"; then
+ searchdirs="$newlib_search_path $lib_search_path $compiler_lib_search_dirs $sys_lib_search_path $shlib_search_path"
+ else
+ searchdirs="$newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path"
+ fi
+ for searchdir in $searchdirs; do
+ for search_ext in .la $std_shrext .so .a; do
+ # Search the libtool library
+ lib=$searchdir/lib$name$search_ext
+ if test -f "$lib"; then
+ if test .la = "$search_ext"; then
+ found=:
+ else
+ found=false
+ fi
+ break 2
+ fi
+ done
+ done
+ if $found; then
+ # deplib is a libtool library
+ # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib,
+ # We need to do some special things here, and not later.
+ if test yes = "$allow_libtool_libs_with_static_runtimes"; then
+ case " $predeps $postdeps " in
+ *" $deplib "*)
+ if func_lalib_p "$lib"; then
+ library_names=
+ old_library=
+ func_source "$lib"
+ for l in $old_library $library_names; do
+ ll=$l
+ done
+ if test "X$ll" = "X$old_library"; then # only static version available
+ found=false
+ func_dirname "$lib" "" "."
+ ladir=$func_dirname_result
+ lib=$ladir/$old_library
+ if test prog,link = "$linkmode,$pass"; then
+ compile_deplibs="$deplib $compile_deplibs"
+ finalize_deplibs="$deplib $finalize_deplibs"
+ else
+ deplibs="$deplib $deplibs"
+ test lib = "$linkmode" && newdependency_libs="$deplib $newdependency_libs"
+ fi
+ continue
+ fi
+ fi
+ ;;
+ *) ;;
+ esac
+ fi
+ else
+ # deplib doesn't seem to be a libtool library
+ if test prog,link = "$linkmode,$pass"; then
+ compile_deplibs="$deplib $compile_deplibs"
+ finalize_deplibs="$deplib $finalize_deplibs"
+ else
+ deplibs="$deplib $deplibs"
+ test lib = "$linkmode" && newdependency_libs="$deplib $newdependency_libs"
+ fi
+ continue
+ fi
+ ;; # -l
+ *.ltframework)
+ if test prog,link = "$linkmode,$pass"; then
+ compile_deplibs="$deplib $compile_deplibs"
+ finalize_deplibs="$deplib $finalize_deplibs"
+ else
+ deplibs="$deplib $deplibs"
+ if test lib = "$linkmode"; then
+ case "$new_inherited_linker_flags " in
+ *" $deplib "*) ;;
+ * ) func_append new_inherited_linker_flags " $deplib" ;;
+ esac
+ fi
+ fi
+ continue
+ ;;
+ -L*)
+ case $linkmode in
+ lib)
+ deplibs="$deplib $deplibs"
+ test conv = "$pass" && continue
+ newdependency_libs="$deplib $newdependency_libs"
+ func_stripname '-L' '' "$deplib"
+ func_resolve_sysroot "$func_stripname_result"
+ func_append newlib_search_path " $func_resolve_sysroot_result"
+ ;;
+ prog)
+ if test conv = "$pass"; then
+ deplibs="$deplib $deplibs"
+ continue
+ fi
+ if test scan = "$pass"; then
+ deplibs="$deplib $deplibs"
+ else
+ compile_deplibs="$deplib $compile_deplibs"
+ finalize_deplibs="$deplib $finalize_deplibs"
+ fi
+ func_stripname '-L' '' "$deplib"
+ func_resolve_sysroot "$func_stripname_result"
+ func_append newlib_search_path " $func_resolve_sysroot_result"
+ ;;
+ *)
+ func_warning "'-L' is ignored for archives/objects"
+ ;;
+ esac # linkmode
+ continue
+ ;; # -L
+ -R*)
+ if test link = "$pass"; then
+ func_stripname '-R' '' "$deplib"
+ func_resolve_sysroot "$func_stripname_result"
+ dir=$func_resolve_sysroot_result
+ # Make sure the xrpath contains only unique directories.
+ case "$xrpath " in
+ *" $dir "*) ;;
+ *) func_append xrpath " $dir" ;;
+ esac
+ fi
+ deplibs="$deplib $deplibs"
+ continue
+ ;;
+ *.la)
+ func_resolve_sysroot "$deplib"
+ lib=$func_resolve_sysroot_result
+ ;;
+ *.$libext)
+ if test conv = "$pass"; then
+ deplibs="$deplib $deplibs"
+ continue
+ fi
+ case $linkmode in
+ lib)
+ # Linking convenience modules into shared libraries is allowed,
+ # but linking other static libraries is non-portable.
+ case " $dlpreconveniencelibs " in
+ *" $deplib "*) ;;
+ *)
+ valid_a_lib=false
+ case $deplibs_check_method in
+ match_pattern*)
+ set dummy $deplibs_check_method; shift
+ match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`
+ if eval "\$ECHO \"$deplib\"" 2>/dev/null | $SED 10q \
+ | $EGREP "$match_pattern_regex" > /dev/null; then
+ valid_a_lib=:
+ fi
+ ;;
+ pass_all)
+ valid_a_lib=:
+ ;;
+ esac
+ if $valid_a_lib; then
+ echo
+ $ECHO "*** Warning: Linking the shared library $output against the"
+ $ECHO "*** static library $deplib is not portable!"
+ deplibs="$deplib $deplibs"
+ else
+ echo
+ $ECHO "*** Warning: Trying to link with static lib archive $deplib."
+ echo "*** I have the capability to make that library automatically link in when"
+ echo "*** you link to this library. But I can only do this if you have a"
+ echo "*** shared version of the library, which you do not appear to have"
+ echo "*** because the file extensions .$libext of this argument makes me believe"
+ echo "*** that it is just a static archive that I should not use here."
+ fi
+ ;;
+ esac
+ continue
+ ;;
+ prog)
+ if test link != "$pass"; then
+ deplibs="$deplib $deplibs"
+ else
+ compile_deplibs="$deplib $compile_deplibs"
+ finalize_deplibs="$deplib $finalize_deplibs"
+ fi
+ continue
+ ;;
+ esac # linkmode
+ ;; # *.$libext
+ *.lo | *.$objext)
+ if test conv = "$pass"; then
+ deplibs="$deplib $deplibs"
+ elif test prog = "$linkmode"; then
+ if test dlpreopen = "$pass" || test yes != "$dlopen_support" || test no = "$build_libtool_libs"; then
+ # If there is no dlopen support or we're linking statically,
+ # we need to preload.
+ func_append newdlprefiles " $deplib"
+ compile_deplibs="$deplib $compile_deplibs"
+ finalize_deplibs="$deplib $finalize_deplibs"
+ else
+ func_append newdlfiles " $deplib"
+ fi
+ fi
+ continue
+ ;;
+ %DEPLIBS%)
+ alldeplibs=:
+ continue
+ ;;
+ esac # case $deplib
+
+ $found || test -f "$lib" \
+ || func_fatal_error "cannot find the library '$lib' or unhandled argument '$deplib'"
+
+ # Check to see that this really is a libtool archive.
+ func_lalib_unsafe_p "$lib" \
+ || func_fatal_error "'$lib' is not a valid libtool archive"
+
+ func_dirname "$lib" "" "."
+ ladir=$func_dirname_result
+
+ dlname=
+ dlopen=
+ dlpreopen=
+ libdir=
+ library_names=
+ old_library=
+ inherited_linker_flags=
+ # If the library was installed with an old release of libtool,
+ # it will not redefine variables installed, or shouldnotlink
+ installed=yes
+ shouldnotlink=no
+ avoidtemprpath=
+
+
+ # Read the .la file
+ func_source "$lib"
+
+ # Convert "-framework foo" to "foo.ltframework"
+ if test -n "$inherited_linker_flags"; then
+ tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" | $SED 's/-framework \([^ $]*\)/\1.ltframework/g'`
+ for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do
+ case " $new_inherited_linker_flags " in
+ *" $tmp_inherited_linker_flag "*) ;;
+ *) func_append new_inherited_linker_flags " $tmp_inherited_linker_flag";;
+ esac
+ done
+ fi
+ dependency_libs=`$ECHO " $dependency_libs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
+ if test lib,link = "$linkmode,$pass" ||
+ test prog,scan = "$linkmode,$pass" ||
+ { test prog != "$linkmode" && test lib != "$linkmode"; }; then
+ test -n "$dlopen" && func_append dlfiles " $dlopen"
+ test -n "$dlpreopen" && func_append dlprefiles " $dlpreopen"
+ fi
+
+ if test conv = "$pass"; then
+ # Only check for convenience libraries
+ deplibs="$lib $deplibs"
+ if test -z "$libdir"; then
+ if test -z "$old_library"; then
+ func_fatal_error "cannot find name of link library for '$lib'"
+ fi
+ # It is a libtool convenience library, so add in its objects.
+ func_append convenience " $ladir/$objdir/$old_library"
+ func_append old_convenience " $ladir/$objdir/$old_library"
+ elif test prog != "$linkmode" && test lib != "$linkmode"; then
+ func_fatal_error "'$lib' is not a convenience library"
+ fi
+ tmp_libs=
+ for deplib in $dependency_libs; do
+ deplibs="$deplib $deplibs"
+ if $opt_preserve_dup_deps; then
+ case "$tmp_libs " in
+ *" $deplib "*) func_append specialdeplibs " $deplib" ;;
+ esac
+ fi
+ func_append tmp_libs " $deplib"
+ done
+ continue
+ fi # $pass = conv
+
+
+ # Get the name of the library we link against.
+ linklib=
+ if test -n "$old_library" &&
+ { test yes = "$prefer_static_libs" ||
+ test built,no = "$prefer_static_libs,$installed"; }; then
+ linklib=$old_library
+ else
+ for l in $old_library $library_names; do
+ linklib=$l
+ done
+ fi
+ if test -z "$linklib"; then
+ func_fatal_error "cannot find name of link library for '$lib'"
+ fi
+
+ # This library was specified with -dlopen.
+ if test dlopen = "$pass"; then
+ test -z "$libdir" \
+ && func_fatal_error "cannot -dlopen a convenience library: '$lib'"
+ if test -z "$dlname" ||
+ test yes != "$dlopen_support" ||
+ test no = "$build_libtool_libs"
+ then
+ # If there is no dlname, no dlopen support or we're linking
+ # statically, we need to preload. We also need to preload any
+ # dependent libraries so libltdl's deplib preloader doesn't
+ # bomb out in the load deplibs phase.
+ func_append dlprefiles " $lib $dependency_libs"
+ else
+ func_append newdlfiles " $lib"
+ fi
+ continue
+ fi # $pass = dlopen
+
+ # We need an absolute path.
+ case $ladir in
+ [\\/]* | [A-Za-z]:[\\/]*) abs_ladir=$ladir ;;
+ *)
+ abs_ladir=`cd "$ladir" && pwd`
+ if test -z "$abs_ladir"; then
+ func_warning "cannot determine absolute directory name of '$ladir'"
+ func_warning "passing it literally to the linker, although it might fail"
+ abs_ladir=$ladir
+ fi
+ ;;
+ esac
+ func_basename "$lib"
+ laname=$func_basename_result
+
+ # Find the relevant object directory and library name.
+ if test yes = "$installed"; then
+ if test ! -f "$lt_sysroot$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then
+ func_warning "library '$lib' was moved."
+ dir=$ladir
+ absdir=$abs_ladir
+ libdir=$abs_ladir
+ else
+ dir=$lt_sysroot$libdir
+ absdir=$lt_sysroot$libdir
+ fi
+ test yes = "$hardcode_automatic" && avoidtemprpath=yes
+ else
+ if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then
+ dir=$ladir
+ absdir=$abs_ladir
+ # Remove this search path later
+ func_append notinst_path " $abs_ladir"
+ else
+ dir=$ladir/$objdir
+ absdir=$abs_ladir/$objdir
+ # Remove this search path later
+ func_append notinst_path " $abs_ladir"
+ fi
+ fi # $installed = yes
+ func_stripname 'lib' '.la' "$laname"
+ name=$func_stripname_result
+
+ # This library was specified with -dlpreopen.
+ if test dlpreopen = "$pass"; then
+ if test -z "$libdir" && test prog = "$linkmode"; then
+ func_fatal_error "only libraries may -dlpreopen a convenience library: '$lib'"
+ fi
+ case $host in
+ # special handling for platforms with PE-DLLs.
+ *cygwin* | *mingw* | *cegcc* )
+ # Linker will automatically link against shared library if both
+ # static and shared are present. Therefore, ensure we extract
+ # symbols from the import library if a shared library is present
+ # (otherwise, the dlopen module name will be incorrect). We do
+ # this by putting the import library name into $newdlprefiles.
+ # We recover the dlopen module name by 'saving' the la file
+ # name in a special purpose variable, and (later) extracting the
+ # dlname from the la file.
+ if test -n "$dlname"; then
+ func_tr_sh "$dir/$linklib"
+ eval "libfile_$func_tr_sh_result=\$abs_ladir/\$laname"
+ func_append newdlprefiles " $dir/$linklib"
+ else
+ func_append newdlprefiles " $dir/$old_library"
+ # Keep a list of preopened convenience libraries to check
+ # that they are being used correctly in the link pass.
+ test -z "$libdir" && \
+ func_append dlpreconveniencelibs " $dir/$old_library"
+ fi
+ ;;
+ * )
+ # Prefer using a static library (so that no silly _DYNAMIC symbols
+ # are required to link).
+ if test -n "$old_library"; then
+ func_append newdlprefiles " $dir/$old_library"
+ # Keep a list of preopened convenience libraries to check
+ # that they are being used correctly in the link pass.
+ test -z "$libdir" && \
+ func_append dlpreconveniencelibs " $dir/$old_library"
+ # Otherwise, use the dlname, so that lt_dlopen finds it.
+ elif test -n "$dlname"; then
+ func_append newdlprefiles " $dir/$dlname"
+ else
+ func_append newdlprefiles " $dir/$linklib"
+ fi
+ ;;
+ esac
+ fi # $pass = dlpreopen
+
+ if test -z "$libdir"; then
+ # Link the convenience library
+ if test lib = "$linkmode"; then
+ deplibs="$dir/$old_library $deplibs"
+ elif test prog,link = "$linkmode,$pass"; then
+ compile_deplibs="$dir/$old_library $compile_deplibs"
+ finalize_deplibs="$dir/$old_library $finalize_deplibs"
+ else
+ deplibs="$lib $deplibs" # used for prog,scan pass
+ fi
+ continue
+ fi
+
+
+ if test prog = "$linkmode" && test link != "$pass"; then
+ func_append newlib_search_path " $ladir"
+ deplibs="$lib $deplibs"
+
+ linkalldeplibs=false
+ if test no != "$link_all_deplibs" || test -z "$library_names" ||
+ test no = "$build_libtool_libs"; then
+ linkalldeplibs=:
+ fi
+
+ tmp_libs=
+ for deplib in $dependency_libs; do
+ case $deplib in
+ -L*) func_stripname '-L' '' "$deplib"
+ func_resolve_sysroot "$func_stripname_result"
+ func_append newlib_search_path " $func_resolve_sysroot_result"
+ ;;
+ esac
+ # Need to link against all dependency_libs?
+ if $linkalldeplibs; then
+ deplibs="$deplib $deplibs"
+ else
+ # Need to hardcode shared library paths
+ # or/and link against static libraries
+ newdependency_libs="$deplib $newdependency_libs"
+ fi
+ if $opt_preserve_dup_deps; then
+ case "$tmp_libs " in
+ *" $deplib "*) func_append specialdeplibs " $deplib" ;;
+ esac
+ fi
+ func_append tmp_libs " $deplib"
+ done # for deplib
+ continue
+ fi # $linkmode = prog...
+
+ if test prog,link = "$linkmode,$pass"; then
+ if test -n "$library_names" &&
+ { { test no = "$prefer_static_libs" ||
+ test built,yes = "$prefer_static_libs,$installed"; } ||
+ test -z "$old_library"; }; then
+ # We need to hardcode the library path
+ if test -n "$shlibpath_var" && test -z "$avoidtemprpath"; then
+ # Make sure the rpath contains only unique directories.
+ case $temp_rpath: in
+ *"$absdir:"*) ;;
+ *) func_append temp_rpath "$absdir:" ;;
+ esac
+ fi
+
+ # Hardcode the library path.
+ # Skip directories that are in the system default run-time
+ # search path.
+ case " $sys_lib_dlsearch_path " in
+ *" $absdir "*) ;;
+ *)
+ case "$compile_rpath " in
+ *" $absdir "*) ;;
+ *) func_append compile_rpath " $absdir" ;;
+ esac
+ ;;
+ esac
+ case " $sys_lib_dlsearch_path " in
+ *" $libdir "*) ;;
+ *)
+ case "$finalize_rpath " in
+ *" $libdir "*) ;;
+ *) func_append finalize_rpath " $libdir" ;;
+ esac
+ ;;
+ esac
+ fi # $linkmode,$pass = prog,link...
+
+ if $alldeplibs &&
+ { test pass_all = "$deplibs_check_method" ||
+ { test yes = "$build_libtool_libs" &&
+ test -n "$library_names"; }; }; then
+ # We only need to search for static libraries
+ continue
+ fi
+ fi
+
+ link_static=no # Whether the deplib will be linked statically
+ use_static_libs=$prefer_static_libs
+ if test built = "$use_static_libs" && test yes = "$installed"; then
+ use_static_libs=no
+ fi
+ if test -n "$library_names" &&
+ { test no = "$use_static_libs" || test -z "$old_library"; }; then
+ case $host in
+ *cygwin* | *mingw* | *cegcc* | *os2*)
+ # No point in relinking DLLs because paths are not encoded
+ func_append notinst_deplibs " $lib"
+ need_relink=no
+ ;;
+ *)
+ if test no = "$installed"; then
+ func_append notinst_deplibs " $lib"
+ need_relink=yes
+ fi
+ ;;
+ esac
+ # This is a shared library
+
+ # Warn about portability, can't link against -module's on some
+ # systems (darwin). Don't bleat about dlopened modules though!
+ dlopenmodule=
+ for dlpremoduletest in $dlprefiles; do
+ if test "X$dlpremoduletest" = "X$lib"; then
+ dlopenmodule=$dlpremoduletest
+ break
+ fi
+ done
+ if test -z "$dlopenmodule" && test yes = "$shouldnotlink" && test link = "$pass"; then
+ echo
+ if test prog = "$linkmode"; then
+ $ECHO "*** Warning: Linking the executable $output against the loadable module"
+ else
+ $ECHO "*** Warning: Linking the shared library $output against the loadable module"
+ fi
+ $ECHO "*** $linklib is not portable!"
+ fi
+ if test lib = "$linkmode" &&
+ test yes = "$hardcode_into_libs"; then
+ # Hardcode the library path.
+ # Skip directories that are in the system default run-time
+ # search path.
+ case " $sys_lib_dlsearch_path " in
+ *" $absdir "*) ;;
+ *)
+ case "$compile_rpath " in
+ *" $absdir "*) ;;
+ *) func_append compile_rpath " $absdir" ;;
+ esac
+ ;;
+ esac
+ case " $sys_lib_dlsearch_path " in
+ *" $libdir "*) ;;
+ *)
+ case "$finalize_rpath " in
+ *" $libdir "*) ;;
+ *) func_append finalize_rpath " $libdir" ;;
+ esac
+ ;;
+ esac
+ fi
+
+ if test -n "$old_archive_from_expsyms_cmds"; then
+ # figure out the soname
+ set dummy $library_names
+ shift
+ realname=$1
+ shift
+ libname=`eval "\\$ECHO \"$libname_spec\""`
+ # use dlname if we got it. it's perfectly good, no?
+ if test -n "$dlname"; then
+ soname=$dlname
+ elif test -n "$soname_spec"; then
+ # bleh windows
+ case $host in
+ *cygwin* | mingw* | *cegcc* | *os2*)
+ func_arith $current - $age
+ major=$func_arith_result
+ versuffix=-$major
+ ;;
+ esac
+ eval soname=\"$soname_spec\"
+ else
+ soname=$realname
+ fi
+
+ # Make a new name for the extract_expsyms_cmds to use
+ soroot=$soname
+ func_basename "$soroot"
+ soname=$func_basename_result
+ func_stripname 'lib' '.dll' "$soname"
+ newlib=libimp-$func_stripname_result.a
+
+ # If the library has no export list, then create one now
+ if test -f "$output_objdir/$soname-def"; then :
+ else
+ func_verbose "extracting exported symbol list from '$soname'"
+ func_execute_cmds "$extract_expsyms_cmds" 'exit $?'
+ fi
+
+ # Create $newlib
+ if test -f "$output_objdir/$newlib"; then :; else
+ func_verbose "generating import library for '$soname'"
+ func_execute_cmds "$old_archive_from_expsyms_cmds" 'exit $?'
+ fi
+ # make sure the library variables are pointing to the new library
+ dir=$output_objdir
+ linklib=$newlib
+ fi # test -n "$old_archive_from_expsyms_cmds"
+
+ if test prog = "$linkmode" || test relink != "$opt_mode"; then
+ add_shlibpath=
+ add_dir=
+ add=
+ lib_linked=yes
+ case $hardcode_action in
+ immediate | unsupported)
+ if test no = "$hardcode_direct"; then
+ add=$dir/$linklib
+ case $host in
+ *-*-sco3.2v5.0.[024]*) add_dir=-L$dir ;;
+ *-*-sysv4*uw2*) add_dir=-L$dir ;;
+ *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \
+ *-*-unixware7*) add_dir=-L$dir ;;
+ *-*-darwin* )
+ # if the lib is a (non-dlopened) module then we cannot
+ # link against it, someone is ignoring the earlier warnings
+ if /usr/bin/file -L $add 2> /dev/null |
+ $GREP ": [^:]* bundle" >/dev/null; then
+ if test "X$dlopenmodule" != "X$lib"; then
+ $ECHO "*** Warning: lib $linklib is a module, not a shared library"
+ if test -z "$old_library"; then
+ echo
+ echo "*** And there doesn't seem to be a static archive available"
+ echo "*** The link will probably fail, sorry"
+ else
+ add=$dir/$old_library
+ fi
+ elif test -n "$old_library"; then
+ add=$dir/$old_library
+ fi
+ fi
+ esac
+ elif test no = "$hardcode_minus_L"; then
+ case $host in
+ *-*-sunos*) add_shlibpath=$dir ;;
+ esac
+ add_dir=-L$dir
+ add=-l$name
+ elif test no = "$hardcode_shlibpath_var"; then
+ add_shlibpath=$dir
+ add=-l$name
+ else
+ lib_linked=no
+ fi
+ ;;
+ relink)
+ if test yes = "$hardcode_direct" &&
+ test no = "$hardcode_direct_absolute"; then
+ add=$dir/$linklib
+ elif test yes = "$hardcode_minus_L"; then
+ add_dir=-L$absdir
+ # Try looking first in the location we're being installed to.
+ if test -n "$inst_prefix_dir"; then
+ case $libdir in
+ [\\/]*)
+ func_append add_dir " -L$inst_prefix_dir$libdir"
+ ;;
+ esac
+ fi
+ add=-l$name
+ elif test yes = "$hardcode_shlibpath_var"; then
+ add_shlibpath=$dir
+ add=-l$name
+ else
+ lib_linked=no
+ fi
+ ;;
+ *) lib_linked=no ;;
+ esac
+
+ if test yes != "$lib_linked"; then
+ func_fatal_configuration "unsupported hardcode properties"
+ fi
+
+ if test -n "$add_shlibpath"; then
+ case :$compile_shlibpath: in
+ *":$add_shlibpath:"*) ;;
+ *) func_append compile_shlibpath "$add_shlibpath:" ;;
+ esac
+ fi
+ if test prog = "$linkmode"; then
+ test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs"
+ test -n "$add" && compile_deplibs="$add $compile_deplibs"
+ else
+ test -n "$add_dir" && deplibs="$add_dir $deplibs"
+ test -n "$add" && deplibs="$add $deplibs"
+ if test yes != "$hardcode_direct" &&
+ test yes != "$hardcode_minus_L" &&
+ test yes = "$hardcode_shlibpath_var"; then
+ case :$finalize_shlibpath: in
+ *":$libdir:"*) ;;
+ *) func_append finalize_shlibpath "$libdir:" ;;
+ esac
+ fi
+ fi
+ fi
+
+ if test prog = "$linkmode" || test relink = "$opt_mode"; then
+ add_shlibpath=
+ add_dir=
+ add=
+ # Finalize command for both is simple: just hardcode it.
+ if test yes = "$hardcode_direct" &&
+ test no = "$hardcode_direct_absolute"; then
+ add=$libdir/$linklib
+ elif test yes = "$hardcode_minus_L"; then
+ add_dir=-L$libdir
+ add=-l$name
+ elif test yes = "$hardcode_shlibpath_var"; then
+ case :$finalize_shlibpath: in
+ *":$libdir:"*) ;;
+ *) func_append finalize_shlibpath "$libdir:" ;;
+ esac
+ add=-l$name
+ elif test yes = "$hardcode_automatic"; then
+ if test -n "$inst_prefix_dir" &&
+ test -f "$inst_prefix_dir$libdir/$linklib"; then
+ add=$inst_prefix_dir$libdir/$linklib
+ else
+ add=$libdir/$linklib
+ fi
+ else
+ # We cannot seem to hardcode it, guess we'll fake it.
+ add_dir=-L$libdir
+ # Try looking first in the location we're being installed to.
+ if test -n "$inst_prefix_dir"; then
+ case $libdir in
+ [\\/]*)
+ func_append add_dir " -L$inst_prefix_dir$libdir"
+ ;;
+ esac
+ fi
+ add=-l$name
+ fi
+
+ if test prog = "$linkmode"; then
+ test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs"
+ test -n "$add" && finalize_deplibs="$add $finalize_deplibs"
+ else
+ test -n "$add_dir" && deplibs="$add_dir $deplibs"
+ test -n "$add" && deplibs="$add $deplibs"
+ fi
+ fi
+ elif test prog = "$linkmode"; then
+ # Here we assume that one of hardcode_direct or hardcode_minus_L
+ # is not unsupported. This is valid on all known static and
+ # shared platforms.
+ if test unsupported != "$hardcode_direct"; then
+ test -n "$old_library" && linklib=$old_library
+ compile_deplibs="$dir/$linklib $compile_deplibs"
+ finalize_deplibs="$dir/$linklib $finalize_deplibs"
+ else
+ compile_deplibs="-l$name -L$dir $compile_deplibs"
+ finalize_deplibs="-l$name -L$dir $finalize_deplibs"
+ fi
+ elif test yes = "$build_libtool_libs"; then
+ # Not a shared library
+ if test pass_all != "$deplibs_check_method"; then
+ # We're trying link a shared library against a static one
+ # but the system doesn't support it.
+
+ # Just print a warning and add the library to dependency_libs so
+ # that the program can be linked against the static library.
+ echo
+ $ECHO "*** Warning: This system cannot link to static lib archive $lib."
+ echo "*** I have the capability to make that library automatically link in when"
+ echo "*** you link to this library. But I can only do this if you have a"
+ echo "*** shared version of the library, which you do not appear to have."
+ if test yes = "$module"; then
+ echo "*** But as you try to build a module library, libtool will still create "
+ echo "*** a static module, that should work as long as the dlopening application"
+ echo "*** is linked with the -dlopen flag to resolve symbols at runtime."
+ if test -z "$global_symbol_pipe"; then
+ echo
+ echo "*** However, this would only work if libtool was able to extract symbol"
+ echo "*** lists from a program, using 'nm' or equivalent, but libtool could"
+ echo "*** not find such a program. So, this module is probably useless."
+ echo "*** 'nm' from GNU binutils and a full rebuild may help."
+ fi
+ if test no = "$build_old_libs"; then
+ build_libtool_libs=module
+ build_old_libs=yes
+ else
+ build_libtool_libs=no
+ fi
+ fi
+ else
+ deplibs="$dir/$old_library $deplibs"
+ link_static=yes
+ fi
+ fi # link shared/static library?
+
+ if test lib = "$linkmode"; then
+ if test -n "$dependency_libs" &&
+ { test yes != "$hardcode_into_libs" ||
+ test yes = "$build_old_libs" ||
+ test yes = "$link_static"; }; then
+ # Extract -R from dependency_libs
+ temp_deplibs=
+ for libdir in $dependency_libs; do
+ case $libdir in
+ -R*) func_stripname '-R' '' "$libdir"
+ temp_xrpath=$func_stripname_result
+ case " $xrpath " in
+ *" $temp_xrpath "*) ;;
+ *) func_append xrpath " $temp_xrpath";;
+ esac;;
+ *) func_append temp_deplibs " $libdir";;
+ esac
+ done
+ dependency_libs=$temp_deplibs
+ fi
+
+ func_append newlib_search_path " $absdir"
+ # Link against this library
+ test no = "$link_static" && newdependency_libs="$abs_ladir/$laname $newdependency_libs"
+ # ... and its dependency_libs
+ tmp_libs=
+ for deplib in $dependency_libs; do
+ newdependency_libs="$deplib $newdependency_libs"
+ case $deplib in
+ -L*) func_stripname '-L' '' "$deplib"
+ func_resolve_sysroot "$func_stripname_result";;
+ *) func_resolve_sysroot "$deplib" ;;
+ esac
+ if $opt_preserve_dup_deps; then
+ case "$tmp_libs " in
+ *" $func_resolve_sysroot_result "*)
+ func_append specialdeplibs " $func_resolve_sysroot_result" ;;
+ esac
+ fi
+ func_append tmp_libs " $func_resolve_sysroot_result"
+ done
+
+ if test no != "$link_all_deplibs"; then
+ # Add the search paths of all dependency libraries
+ for deplib in $dependency_libs; do
+ path=
+ case $deplib in
+ -L*) path=$deplib ;;
+ *.la)
+ func_resolve_sysroot "$deplib"
+ deplib=$func_resolve_sysroot_result
+ func_dirname "$deplib" "" "."
+ dir=$func_dirname_result
+ # We need an absolute path.
+ case $dir in
+ [\\/]* | [A-Za-z]:[\\/]*) absdir=$dir ;;
+ *)
+ absdir=`cd "$dir" && pwd`
+ if test -z "$absdir"; then
+ func_warning "cannot determine absolute directory name of '$dir'"
+ absdir=$dir
+ fi
+ ;;
+ esac
+ if $GREP "^installed=no" $deplib > /dev/null; then
+ case $host in
+ *-*-darwin*)
+ depdepl=
+ eval deplibrary_names=`$SED -n -e 's/^library_names=\(.*\)$/\1/p' $deplib`
+ if test -n "$deplibrary_names"; then
+ for tmp in $deplibrary_names; do
+ depdepl=$tmp
+ done
+ if test -f "$absdir/$objdir/$depdepl"; then
+ depdepl=$absdir/$objdir/$depdepl
+ darwin_install_name=`$OTOOL -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'`
+ if test -z "$darwin_install_name"; then
+ darwin_install_name=`$OTOOL64 -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'`
+ fi
+ func_append compiler_flags " $wl-dylib_file $wl$darwin_install_name:$depdepl"
+ func_append linker_flags " -dylib_file $darwin_install_name:$depdepl"
+ path=
+ fi
+ fi
+ ;;
+ *)
+ path=-L$absdir/$objdir
+ ;;
+ esac
+ else
+ eval libdir=`$SED -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
+ test -z "$libdir" && \
+ func_fatal_error "'$deplib' is not a valid libtool archive"
+ test "$absdir" != "$libdir" && \
+ func_warning "'$deplib' seems to be moved"
+
+ path=-L$absdir
+ fi
+ ;;
+ esac
+ case " $deplibs " in
+ *" $path "*) ;;
+ *) deplibs="$path $deplibs" ;;
+ esac
+ done
+ fi # link_all_deplibs != no
+ fi # linkmode = lib
+ done # for deplib in $libs
+ if test link = "$pass"; then
+ if test prog = "$linkmode"; then
+ compile_deplibs="$new_inherited_linker_flags $compile_deplibs"
+ finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs"
+ else
+ compiler_flags="$compiler_flags "`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
+ fi
+ fi
+ dependency_libs=$newdependency_libs
+ if test dlpreopen = "$pass"; then
+ # Link the dlpreopened libraries before other libraries
+ for deplib in $save_deplibs; do
+ deplibs="$deplib $deplibs"
+ done
+ fi
+ if test dlopen != "$pass"; then
+ test conv = "$pass" || {
+ # Make sure lib_search_path contains only unique directories.
+ lib_search_path=
+ for dir in $newlib_search_path; do
+ case "$lib_search_path " in
+ *" $dir "*) ;;
+ *) func_append lib_search_path " $dir" ;;
+ esac
+ done
+ newlib_search_path=
+ }
+
+ if test prog,link = "$linkmode,$pass"; then
+ vars="compile_deplibs finalize_deplibs"
+ else
+ vars=deplibs
+ fi
+ for var in $vars dependency_libs; do
+ # Add libraries to $var in reverse order
+ eval tmp_libs=\"\$$var\"
+ new_libs=
+ for deplib in $tmp_libs; do
+ # FIXME: Pedantically, this is the right thing to do, so
+ # that some nasty dependency loop isn't accidentally
+ # broken:
+ #new_libs="$deplib $new_libs"
+ # Pragmatically, this seems to cause very few problems in
+ # practice:
+ case $deplib in
+ -L*) new_libs="$deplib $new_libs" ;;
+ -R*) ;;
+ *)
+ # And here is the reason: when a library appears more
+ # than once as an explicit dependence of a library, or
+ # is implicitly linked in more than once by the
+ # compiler, it is considered special, and multiple
+ # occurrences thereof are not removed. Compare this
+ # with having the same library being listed as a
+ # dependency of multiple other libraries: in this case,
+ # we know (pedantically, we assume) the library does not
+ # need to be listed more than once, so we keep only the
+ # last copy. This is not always right, but it is rare
+ # enough that we require users that really mean to play
+ # such unportable linking tricks to link the library
+ # using -Wl,-lname, so that libtool does not consider it
+ # for duplicate removal.
+ case " $specialdeplibs " in
+ *" $deplib "*) new_libs="$deplib $new_libs" ;;
+ *)
+ case " $new_libs " in
+ *" $deplib "*) ;;
+ *) new_libs="$deplib $new_libs" ;;
+ esac
+ ;;
+ esac
+ ;;
+ esac
+ done
+ tmp_libs=
+ for deplib in $new_libs; do
+ case $deplib in
+ -L*)
+ case " $tmp_libs " in
+ *" $deplib "*) ;;
+ *) func_append tmp_libs " $deplib" ;;
+ esac
+ ;;
+ *) func_append tmp_libs " $deplib" ;;
+ esac
+ done
+ eval $var=\"$tmp_libs\"
+ done # for var
+ fi
+
+ # Add Sun CC postdeps if required:
+ test CXX = "$tagname" && {
+ case $host_os in
+ linux*)
+ case `$CC -V 2>&1 | sed 5q` in
+ *Sun\ C*) # Sun C++ 5.9
+ func_suncc_cstd_abi
+
+ if test no != "$suncc_use_cstd_abi"; then
+ func_append postdeps ' -library=Cstd -library=Crun'
+ fi
+ ;;
+ esac
+ ;;
+
+ solaris*)
+ func_cc_basename "$CC"
+ case $func_cc_basename_result in
+ CC* | sunCC*)
+ func_suncc_cstd_abi
+
+ if test no != "$suncc_use_cstd_abi"; then
+ func_append postdeps ' -library=Cstd -library=Crun'
+ fi
+ ;;
+ esac
+ ;;
+ esac
+ }
+
+ # Last step: remove runtime libs from dependency_libs
+ # (they stay in deplibs)
+ tmp_libs=
+ for i in $dependency_libs; do
+ case " $predeps $postdeps $compiler_lib_search_path " in
+ *" $i "*)
+ i=
+ ;;
+ esac
+ if test -n "$i"; then
+ func_append tmp_libs " $i"
+ fi
+ done
+ dependency_libs=$tmp_libs
+ done # for pass
+ if test prog = "$linkmode"; then
+ dlfiles=$newdlfiles
+ fi
+ if test prog = "$linkmode" || test lib = "$linkmode"; then
+ dlprefiles=$newdlprefiles
+ fi
+
+ case $linkmode in
+ oldlib)
+ if test -n "$dlfiles$dlprefiles" || test no != "$dlself"; then
+ func_warning "'-dlopen' is ignored for archives"
+ fi
+
+ case " $deplibs" in
+ *\ -l* | *\ -L*)
+ func_warning "'-l' and '-L' are ignored for archives" ;;
+ esac
+
+ test -n "$rpath" && \
+ func_warning "'-rpath' is ignored for archives"
+
+ test -n "$xrpath" && \
+ func_warning "'-R' is ignored for archives"
+
+ test -n "$vinfo" && \
+ func_warning "'-version-info/-version-number' is ignored for archives"
+
+ test -n "$release" && \
+ func_warning "'-release' is ignored for archives"
+
+ test -n "$export_symbols$export_symbols_regex" && \
+ func_warning "'-export-symbols' is ignored for archives"
+
+ # Now set the variables for building old libraries.
+ build_libtool_libs=no
+ oldlibs=$output
+ func_append objs "$old_deplibs"
+ ;;
+
+ lib)
+ # Make sure we only generate libraries of the form 'libNAME.la'.
+ case $outputname in
+ lib*)
+ func_stripname 'lib' '.la' "$outputname"
+ name=$func_stripname_result
+ eval shared_ext=\"$shrext_cmds\"
+ eval libname=\"$libname_spec\"
+ ;;
+ *)
+ test no = "$module" \
+ && func_fatal_help "libtool library '$output' must begin with 'lib'"
+
+ if test no != "$need_lib_prefix"; then
+ # Add the "lib" prefix for modules if required
+ func_stripname '' '.la' "$outputname"
+ name=$func_stripname_result
+ eval shared_ext=\"$shrext_cmds\"
+ eval libname=\"$libname_spec\"
+ else
+ func_stripname '' '.la' "$outputname"
+ libname=$func_stripname_result
+ fi
+ ;;
+ esac
+
+ if test -n "$objs"; then
+ if test pass_all != "$deplibs_check_method"; then
+ func_fatal_error "cannot build libtool library '$output' from non-libtool objects on this host:$objs"
+ else
+ echo
+ $ECHO "*** Warning: Linking the shared library $output against the non-libtool"
+ $ECHO "*** objects $objs is not portable!"
+ func_append libobjs " $objs"
+ fi
+ fi
+
+ test no = "$dlself" \
+ || func_warning "'-dlopen self' is ignored for libtool libraries"
+
+ set dummy $rpath
+ shift
+ test 1 -lt "$#" \
+ && func_warning "ignoring multiple '-rpath's for a libtool library"
+
+ install_libdir=$1
+
+ oldlibs=
+ if test -z "$rpath"; then
+ if test yes = "$build_libtool_libs"; then
+ # Building a libtool convenience library.
+ # Some compilers have problems with a '.al' extension so
+ # convenience libraries should have the same extension an
+ # archive normally would.
+ oldlibs="$output_objdir/$libname.$libext $oldlibs"
+ build_libtool_libs=convenience
+ build_old_libs=yes
+ fi
+
+ test -n "$vinfo" && \
+ func_warning "'-version-info/-version-number' is ignored for convenience libraries"
+
+ test -n "$release" && \
+ func_warning "'-release' is ignored for convenience libraries"
+ else
+
+ # Parse the version information argument.
+ save_ifs=$IFS; IFS=:
+ set dummy $vinfo 0 0 0
+ shift
+ IFS=$save_ifs
+
+ test -n "$7" && \
+ func_fatal_help "too many parameters to '-version-info'"
+
+ # convert absolute version numbers to libtool ages
+ # this retains compatibility with .la files and attempts
+ # to make the code below a bit more comprehensible
+
+ case $vinfo_number in
+ yes)
+ number_major=$1
+ number_minor=$2
+ number_revision=$3
+ #
+ # There are really only two kinds -- those that
+ # use the current revision as the major version
+ # and those that subtract age and use age as
+ # a minor version. But, then there is irix
+ # that has an extra 1 added just for fun
+ #
+ case $version_type in
+ # correct linux to gnu/linux during the next big refactor
+ darwin|freebsd-elf|linux|osf|windows|none)
+ func_arith $number_major + $number_minor
+ current=$func_arith_result
+ age=$number_minor
+ revision=$number_revision
+ ;;
+ freebsd-aout|qnx|sunos)
+ current=$number_major
+ revision=$number_minor
+ age=0
+ ;;
+ irix|nonstopux)
+ func_arith $number_major + $number_minor
+ current=$func_arith_result
+ age=$number_minor
+ revision=$number_minor
+ lt_irix_increment=no
+ ;;
+ esac
+ ;;
+ no)
+ current=$1
+ revision=$2
+ age=$3
+ ;;
+ esac
+
+ # Check that each of the things are valid numbers.
+ case $current in
+ 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
+ *)
+ func_error "CURRENT '$current' must be a nonnegative integer"
+ func_fatal_error "'$vinfo' is not valid version information"
+ ;;
+ esac
+
+ case $revision in
+ 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
+ *)
+ func_error "REVISION '$revision' must be a nonnegative integer"
+ func_fatal_error "'$vinfo' is not valid version information"
+ ;;
+ esac
+
+ case $age in
+ 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
+ *)
+ func_error "AGE '$age' must be a nonnegative integer"
+ func_fatal_error "'$vinfo' is not valid version information"
+ ;;
+ esac
+
+ if test "$age" -gt "$current"; then
+ func_error "AGE '$age' is greater than the current interface number '$current'"
+ func_fatal_error "'$vinfo' is not valid version information"
+ fi
+
+ # Calculate the version variables.
+ major=
+ versuffix=
+ verstring=
+ case $version_type in
+ none) ;;
+
+ darwin)
+ # Like Linux, but with the current version available in
+ # verstring for coding it into the library header
+ func_arith $current - $age
+ major=.$func_arith_result
+ versuffix=$major.$age.$revision
+ # Darwin ld doesn't like 0 for these options...
+ func_arith $current + 1
+ minor_current=$func_arith_result
+ xlcverstring="$wl-compatibility_version $wl$minor_current $wl-current_version $wl$minor_current.$revision"
+ verstring="-compatibility_version $minor_current -current_version $minor_current.$revision"
+ # On Darwin other compilers
+ case $CC in
+ nagfor*)
+ verstring="$wl-compatibility_version $wl$minor_current $wl-current_version $wl$minor_current.$revision"
+ ;;
+ *)
+ verstring="-compatibility_version $minor_current -current_version $minor_current.$revision"
+ ;;
+ esac
+ ;;
+
+ freebsd-aout)
+ major=.$current
+ versuffix=.$current.$revision
+ ;;
+
+ freebsd-elf)
+ func_arith $current - $age
+ major=.$func_arith_result
+ versuffix=$major.$age.$revision
+ ;;
+
+ irix | nonstopux)
+ if test no = "$lt_irix_increment"; then
+ func_arith $current - $age
+ else
+ func_arith $current - $age + 1
+ fi
+ major=$func_arith_result
+
+ case $version_type in
+ nonstopux) verstring_prefix=nonstopux ;;
+ *) verstring_prefix=sgi ;;
+ esac
+ verstring=$verstring_prefix$major.$revision
+
+ # Add in all the interfaces that we are compatible with.
+ loop=$revision
+ while test 0 -ne "$loop"; do
+ func_arith $revision - $loop
+ iface=$func_arith_result
+ func_arith $loop - 1
+ loop=$func_arith_result
+ verstring=$verstring_prefix$major.$iface:$verstring
+ done
+
+ # Before this point, $major must not contain '.'.
+ major=.$major
+ versuffix=$major.$revision
+ ;;
+
+ linux) # correct to gnu/linux during the next big refactor
+ func_arith $current - $age
+ major=.$func_arith_result
+ versuffix=$major.$age.$revision
+ ;;
+
+ osf)
+ func_arith $current - $age
+ major=.$func_arith_result
+ versuffix=.$current.$age.$revision
+ verstring=$current.$age.$revision
+
+ # Add in all the interfaces that we are compatible with.
+ loop=$age
+ while test 0 -ne "$loop"; do
+ func_arith $current - $loop
+ iface=$func_arith_result
+ func_arith $loop - 1
+ loop=$func_arith_result
+ verstring=$verstring:$iface.0
+ done
+
+ # Make executables depend on our current version.
+ func_append verstring ":$current.0"
+ ;;
+
+ qnx)
+ major=.$current
+ versuffix=.$current
+ ;;
+
+ sco)
+ major=.$current
+ versuffix=.$current
+ ;;
+
+ sunos)
+ major=.$current
+ versuffix=.$current.$revision
+ ;;
+
+ windows)
+ # Use '-' rather than '.', since we only want one
+ # extension on DOS 8.3 file systems.
+ func_arith $current - $age
+ major=$func_arith_result
+ versuffix=-$major
+ ;;
+
+ *)
+ func_fatal_configuration "unknown library version type '$version_type'"
+ ;;
+ esac
+
+ # Clear the version info if we defaulted, and they specified a release.
+ if test -z "$vinfo" && test -n "$release"; then
+ major=
+ case $version_type in
+ darwin)
+ # we can't check for "0.0" in archive_cmds due to quoting
+ # problems, so we reset it completely
+ verstring=
+ ;;
+ *)
+ verstring=0.0
+ ;;
+ esac
+ if test no = "$need_version"; then
+ versuffix=
+ else
+ versuffix=.0.0
+ fi
+ fi
+
+ # Remove version info from name if versioning should be avoided
+ if test yes,no = "$avoid_version,$need_version"; then
+ major=
+ versuffix=
+ verstring=
+ fi
+
+ # Check to see if the archive will have undefined symbols.
+ if test yes = "$allow_undefined"; then
+ if test unsupported = "$allow_undefined_flag"; then
+ if test yes = "$build_old_libs"; then
+ func_warning "undefined symbols not allowed in $host shared libraries; building static only"
+ build_libtool_libs=no
+ else
+ func_fatal_error "can't build $host shared library unless -no-undefined is specified"
+ fi
+ fi
+ else
+ # Don't allow undefined symbols.
+ allow_undefined_flag=$no_undefined_flag
+ fi
+
+ fi
+
+ func_generate_dlsyms "$libname" "$libname" :
+ func_append libobjs " $symfileobj"
+ test " " = "$libobjs" && libobjs=
+
+ if test relink != "$opt_mode"; then
+ # Remove our outputs, but don't remove object files since they
+ # may have been created when compiling PIC objects.
+ removelist=
+ tempremovelist=`$ECHO "$output_objdir/*"`
+ for p in $tempremovelist; do
+ case $p in
+ *.$objext | *.gcno)
+ ;;
+ $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/$libname$release.*)
+ if test -n "$precious_files_regex"; then
+ if $ECHO "$p" | $EGREP -e "$precious_files_regex" >/dev/null 2>&1
+ then
+ continue
+ fi
+ fi
+ func_append removelist " $p"
+ ;;
+ *) ;;
+ esac
+ done
+ test -n "$removelist" && \
+ func_show_eval "${RM}r \$removelist"
+ fi
+
+ # Now set the variables for building old libraries.
+ if test yes = "$build_old_libs" && test convenience != "$build_libtool_libs"; then
+ func_append oldlibs " $output_objdir/$libname.$libext"
+
+ # Transform .lo files to .o files.
+ oldobjs="$objs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.$libext$/d; $lo2o" | $NL2SP`
+ fi
+
+ # Eliminate all temporary directories.
+ #for path in $notinst_path; do
+ # lib_search_path=`$ECHO "$lib_search_path " | $SED "s% $path % %g"`
+ # deplibs=`$ECHO "$deplibs " | $SED "s% -L$path % %g"`
+ # dependency_libs=`$ECHO "$dependency_libs " | $SED "s% -L$path % %g"`
+ #done
+
+ if test -n "$xrpath"; then
+ # If the user specified any rpath flags, then add them.
+ temp_xrpath=
+ for libdir in $xrpath; do
+ func_replace_sysroot "$libdir"
+ func_append temp_xrpath " -R$func_replace_sysroot_result"
+ case "$finalize_rpath " in
+ *" $libdir "*) ;;
+ *) func_append finalize_rpath " $libdir" ;;
+ esac
+ done
+ if test yes != "$hardcode_into_libs" || test yes = "$build_old_libs"; then
+ dependency_libs="$temp_xrpath $dependency_libs"
+ fi
+ fi
+
+ # Make sure dlfiles contains only unique files that won't be dlpreopened
+ old_dlfiles=$dlfiles
+ dlfiles=
+ for lib in $old_dlfiles; do
+ case " $dlprefiles $dlfiles " in
+ *" $lib "*) ;;
+ *) func_append dlfiles " $lib" ;;
+ esac
+ done
+
+ # Make sure dlprefiles contains only unique files
+ old_dlprefiles=$dlprefiles
+ dlprefiles=
+ for lib in $old_dlprefiles; do
+ case "$dlprefiles " in
+ *" $lib "*) ;;
+ *) func_append dlprefiles " $lib" ;;
+ esac
+ done
+
+ if test yes = "$build_libtool_libs"; then
+ if test -n "$rpath"; then
+ case $host in
+ *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc* | *-*-haiku*)
+ # these systems don't actually have a c library (as such)!
+ ;;
+ *-*-rhapsody* | *-*-darwin1.[012])
+ # Rhapsody C library is in the System framework
+ func_append deplibs " System.ltframework"
+ ;;
+ *-*-netbsd*)
+ # Don't link with libc until the a.out ld.so is fixed.
+ ;;
+ *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
+ # Do not include libc due to us having libc/libc_r.
+ ;;
+ *-*-sco3.2v5* | *-*-sco5v6*)
+ # Causes problems with __ctype
+ ;;
+ *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*)
+ # Compiler inserts libc in the correct place for threads to work
+ ;;
+ *)
+ # Add libc to deplibs on all other systems if necessary.
+ if test yes = "$build_libtool_need_lc"; then
+ func_append deplibs " -lc"
+ fi
+ ;;
+ esac
+ fi
+
+ # Transform deplibs into only deplibs that can be linked in shared.
+ name_save=$name
+ libname_save=$libname
+ release_save=$release
+ versuffix_save=$versuffix
+ major_save=$major
+ # I'm not sure if I'm treating the release correctly. I think
+ # release should show up in the -l (ie -lgmp5) so we don't want to
+ # add it in twice. Is that correct?
+ release=
+ versuffix=
+ major=
+ newdeplibs=
+ droppeddeps=no
+ case $deplibs_check_method in
+ pass_all)
+ # Don't check for shared/static. Everything works.
+ # This might be a little naive. We might want to check
+ # whether the library exists or not. But this is on
+ # osf3 & osf4 and I'm not really sure... Just
+ # implementing what was already the behavior.
+ newdeplibs=$deplibs
+ ;;
+ test_compile)
+ # This code stresses the "libraries are programs" paradigm to its
+ # limits. Maybe even breaks it. We compile a program, linking it
+ # against the deplibs as a proxy for the library. Then we can check
+ # whether they linked in statically or dynamically with ldd.
+ $opt_dry_run || $RM conftest.c
+ cat > conftest.c <<EOF
+ int main() { return 0; }
+EOF
+ $opt_dry_run || $RM conftest
+ if $LTCC $LTCFLAGS -o conftest conftest.c $deplibs; then
+ ldd_output=`ldd conftest`
+ for i in $deplibs; do
+ case $i in
+ -l*)
+ func_stripname -l '' "$i"
+ name=$func_stripname_result
+ if test yes = "$allow_libtool_libs_with_static_runtimes"; then
+ case " $predeps $postdeps " in
+ *" $i "*)
+ func_append newdeplibs " $i"
+ i=
+ ;;
+ esac
+ fi
+ if test -n "$i"; then
+ libname=`eval "\\$ECHO \"$libname_spec\""`
+ deplib_matches=`eval "\\$ECHO \"$library_names_spec\""`
+ set dummy $deplib_matches; shift
+ deplib_match=$1
+ if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0; then
+ func_append newdeplibs " $i"
+ else
+ droppeddeps=yes
+ echo
+ $ECHO "*** Warning: dynamic linker does not accept needed library $i."
+ echo "*** I have the capability to make that library automatically link in when"
+ echo "*** you link to this library. But I can only do this if you have a"
+ echo "*** shared version of the library, which I believe you do not have"
+ echo "*** because a test_compile did reveal that the linker did not use it for"
+ echo "*** its dynamic dependency list that programs get resolved with at runtime."
+ fi
+ fi
+ ;;
+ *)
+ func_append newdeplibs " $i"
+ ;;
+ esac
+ done
+ else
+ # Error occurred in the first compile. Let's try to salvage
+ # the situation: Compile a separate program for each library.
+ for i in $deplibs; do
+ case $i in
+ -l*)
+ func_stripname -l '' "$i"
+ name=$func_stripname_result
+ $opt_dry_run || $RM conftest
+ if $LTCC $LTCFLAGS -o conftest conftest.c $i; then
+ ldd_output=`ldd conftest`
+ if test yes = "$allow_libtool_libs_with_static_runtimes"; then
+ case " $predeps $postdeps " in
+ *" $i "*)
+ func_append newdeplibs " $i"
+ i=
+ ;;
+ esac
+ fi
+ if test -n "$i"; then
+ libname=`eval "\\$ECHO \"$libname_spec\""`
+ deplib_matches=`eval "\\$ECHO \"$library_names_spec\""`
+ set dummy $deplib_matches; shift
+ deplib_match=$1
+ if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0; then
+ func_append newdeplibs " $i"
+ else
+ droppeddeps=yes
+ echo
+ $ECHO "*** Warning: dynamic linker does not accept needed library $i."
+ echo "*** I have the capability to make that library automatically link in when"
+ echo "*** you link to this library. But I can only do this if you have a"
+ echo "*** shared version of the library, which you do not appear to have"
+ echo "*** because a test_compile did reveal that the linker did not use this one"
+ echo "*** as a dynamic dependency that programs can get resolved with at runtime."
+ fi
+ fi
+ else
+ droppeddeps=yes
+ echo
+ $ECHO "*** Warning! Library $i is needed by this library but I was not able to"
+ echo "*** make it link in! You will probably need to install it or some"
+ echo "*** library that it depends on before this library will be fully"
+ echo "*** functional. Installing it before continuing would be even better."
+ fi
+ ;;
+ *)
+ func_append newdeplibs " $i"
+ ;;
+ esac
+ done
+ fi
+ ;;
+ file_magic*)
+ set dummy $deplibs_check_method; shift
+ file_magic_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`
+ for a_deplib in $deplibs; do
+ case $a_deplib in
+ -l*)
+ func_stripname -l '' "$a_deplib"
+ name=$func_stripname_result
+ if test yes = "$allow_libtool_libs_with_static_runtimes"; then
+ case " $predeps $postdeps " in
+ *" $a_deplib "*)
+ func_append newdeplibs " $a_deplib"
+ a_deplib=
+ ;;
+ esac
+ fi
+ if test -n "$a_deplib"; then
+ libname=`eval "\\$ECHO \"$libname_spec\""`
+ if test -n "$file_magic_glob"; then
+ libnameglob=`func_echo_all "$libname" | $SED -e $file_magic_glob`
+ else
+ libnameglob=$libname
+ fi
+ test yes = "$want_nocaseglob" && nocaseglob=`shopt -p nocaseglob`
+ for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
+ if test yes = "$want_nocaseglob"; then
+ shopt -s nocaseglob
+ potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null`
+ $nocaseglob
+ else
+ potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null`
+ fi
+ for potent_lib in $potential_libs; do
+ # Follow soft links.
+ if ls -lLd "$potent_lib" 2>/dev/null |
+ $GREP " -> " >/dev/null; then
+ continue
+ fi
+ # The statement above tries to avoid entering an
+ # endless loop below, in case of cyclic links.
+ # We might still enter an endless loop, since a link
+ # loop can be closed while we follow links,
+ # but so what?
+ potlib=$potent_lib
+ while test -h "$potlib" 2>/dev/null; do
+ potliblink=`ls -ld $potlib | $SED 's/.* -> //'`
+ case $potliblink in
+ [\\/]* | [A-Za-z]:[\\/]*) potlib=$potliblink;;
+ *) potlib=`$ECHO "$potlib" | $SED 's|[^/]*$||'`"$potliblink";;
+ esac
+ done
+ if eval $file_magic_cmd \"\$potlib\" 2>/dev/null |
+ $SED -e 10q |
+ $EGREP "$file_magic_regex" > /dev/null; then
+ func_append newdeplibs " $a_deplib"
+ a_deplib=
+ break 2
+ fi
+ done
+ done
+ fi
+ if test -n "$a_deplib"; then
+ droppeddeps=yes
+ echo
+ $ECHO "*** Warning: linker path does not have real file for library $a_deplib."
+ echo "*** I have the capability to make that library automatically link in when"
+ echo "*** you link to this library. But I can only do this if you have a"
+ echo "*** shared version of the library, which you do not appear to have"
+ echo "*** because I did check the linker path looking for a file starting"
+ if test -z "$potlib"; then
+ $ECHO "*** with $libname but no candidates were found. (...for file magic test)"
+ else
+ $ECHO "*** with $libname and none of the candidates passed a file format test"
+ $ECHO "*** using a file magic. Last file checked: $potlib"
+ fi
+ fi
+ ;;
+ *)
+ # Add a -L argument.
+ func_append newdeplibs " $a_deplib"
+ ;;
+ esac
+ done # Gone through all deplibs.
+ ;;
+ match_pattern*)
+ set dummy $deplibs_check_method; shift
+ match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`
+ for a_deplib in $deplibs; do
+ case $a_deplib in
+ -l*)
+ func_stripname -l '' "$a_deplib"
+ name=$func_stripname_result
+ if test yes = "$allow_libtool_libs_with_static_runtimes"; then
+ case " $predeps $postdeps " in
+ *" $a_deplib "*)
+ func_append newdeplibs " $a_deplib"
+ a_deplib=
+ ;;
+ esac
+ fi
+ if test -n "$a_deplib"; then
+ libname=`eval "\\$ECHO \"$libname_spec\""`
+ for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
+ potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
+ for potent_lib in $potential_libs; do
+ potlib=$potent_lib # see symlink-check above in file_magic test
+ if eval "\$ECHO \"$potent_lib\"" 2>/dev/null | $SED 10q | \
+ $EGREP "$match_pattern_regex" > /dev/null; then
+ func_append newdeplibs " $a_deplib"
+ a_deplib=
+ break 2
+ fi
+ done
+ done
+ fi
+ if test -n "$a_deplib"; then
+ droppeddeps=yes
+ echo
+ $ECHO "*** Warning: linker path does not have real file for library $a_deplib."
+ echo "*** I have the capability to make that library automatically link in when"
+ echo "*** you link to this library. But I can only do this if you have a"
+ echo "*** shared version of the library, which you do not appear to have"
+ echo "*** because I did check the linker path looking for a file starting"
+ if test -z "$potlib"; then
+ $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)"
+ else
+ $ECHO "*** with $libname and none of the candidates passed a file format test"
+ $ECHO "*** using a regex pattern. Last file checked: $potlib"
+ fi
+ fi
+ ;;
+ *)
+ # Add a -L argument.
+ func_append newdeplibs " $a_deplib"
+ ;;
+ esac
+ done # Gone through all deplibs.
+ ;;
+ none | unknown | *)
+ newdeplibs=
+ tmp_deplibs=`$ECHO " $deplibs" | $SED 's/ -lc$//; s/ -[LR][^ ]*//g'`
+ if test yes = "$allow_libtool_libs_with_static_runtimes"; then
+ for i in $predeps $postdeps; do
+ # can't use Xsed below, because $i might contain '/'
+ tmp_deplibs=`$ECHO " $tmp_deplibs" | $SED "s|$i||"`
+ done
+ fi
+ case $tmp_deplibs in
+ *[!\ \ ]*)
+ echo
+ if test none = "$deplibs_check_method"; then
+ echo "*** Warning: inter-library dependencies are not supported in this platform."
+ else
+ echo "*** Warning: inter-library dependencies are not known to be supported."
+ fi
+ echo "*** All declared inter-library dependencies are being dropped."
+ droppeddeps=yes
+ ;;
+ esac
+ ;;
+ esac
+ versuffix=$versuffix_save
+ major=$major_save
+ release=$release_save
+ libname=$libname_save
+ name=$name_save
+
+ case $host in
+ *-*-rhapsody* | *-*-darwin1.[012])
+ # On Rhapsody replace the C library with the System framework
+ newdeplibs=`$ECHO " $newdeplibs" | $SED 's/ -lc / System.ltframework /'`
+ ;;
+ esac
+
+ if test yes = "$droppeddeps"; then
+ if test yes = "$module"; then
+ echo
+ echo "*** Warning: libtool could not satisfy all declared inter-library"
+ $ECHO "*** dependencies of module $libname. Therefore, libtool will create"
+ echo "*** a static module, that should work as long as the dlopening"
+ echo "*** application is linked with the -dlopen flag."
+ if test -z "$global_symbol_pipe"; then
+ echo
+ echo "*** However, this would only work if libtool was able to extract symbol"
+ echo "*** lists from a program, using 'nm' or equivalent, but libtool could"
+ echo "*** not find such a program. So, this module is probably useless."
+ echo "*** 'nm' from GNU binutils and a full rebuild may help."
+ fi
+ if test no = "$build_old_libs"; then
+ oldlibs=$output_objdir/$libname.$libext
+ build_libtool_libs=module
+ build_old_libs=yes
+ else
+ build_libtool_libs=no
+ fi
+ else
+ echo "*** The inter-library dependencies that have been dropped here will be"
+ echo "*** automatically added whenever a program is linked with this library"
+ echo "*** or is declared to -dlopen it."
+
+ if test no = "$allow_undefined"; then
+ echo
+ echo "*** Since this library must not contain undefined symbols,"
+ echo "*** because either the platform does not support them or"
+ echo "*** it was explicitly requested with -no-undefined,"
+ echo "*** libtool will only create a static version of it."
+ if test no = "$build_old_libs"; then
+ oldlibs=$output_objdir/$libname.$libext
+ build_libtool_libs=module
+ build_old_libs=yes
+ else
+ build_libtool_libs=no
+ fi
+ fi
+ fi
+ fi
+ # Done checking deplibs!
+ deplibs=$newdeplibs
+ fi
+ # Time to change all our "foo.ltframework" stuff back to "-framework foo"
+ case $host in
+ *-*-darwin*)
+ newdeplibs=`$ECHO " $newdeplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
+ new_inherited_linker_flags=`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
+ deplibs=`$ECHO " $deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
+ ;;
+ esac
+
+ # move library search paths that coincide with paths to not yet
+ # installed libraries to the beginning of the library search list
+ new_libs=
+ for path in $notinst_path; do
+ case " $new_libs " in
+ *" -L$path/$objdir "*) ;;
+ *)
+ case " $deplibs " in
+ *" -L$path/$objdir "*)
+ func_append new_libs " -L$path/$objdir" ;;
+ esac
+ ;;
+ esac
+ done
+ for deplib in $deplibs; do
+ case $deplib in
+ -L*)
+ case " $new_libs " in
+ *" $deplib "*) ;;
+ *) func_append new_libs " $deplib" ;;
+ esac
+ ;;
+ *) func_append new_libs " $deplib" ;;
+ esac
+ done
+ deplibs=$new_libs
+
+ # All the library-specific variables (install_libdir is set above).
+ library_names=
+ old_library=
+ dlname=
+
+ # Test again, we may have decided not to build it any more
+ if test yes = "$build_libtool_libs"; then
+ # Remove $wl instances when linking with ld.
+ # FIXME: should test the right _cmds variable.
+ case $archive_cmds in
+ *\$LD\ *) wl= ;;
+ esac
+ if test yes = "$hardcode_into_libs"; then
+ # Hardcode the library paths
+ hardcode_libdirs=
+ dep_rpath=
+ rpath=$finalize_rpath
+ test relink = "$opt_mode" || rpath=$compile_rpath$rpath
+ for libdir in $rpath; do
+ if test -n "$hardcode_libdir_flag_spec"; then
+ if test -n "$hardcode_libdir_separator"; then
+ func_replace_sysroot "$libdir"
+ libdir=$func_replace_sysroot_result
+ if test -z "$hardcode_libdirs"; then
+ hardcode_libdirs=$libdir
+ else
+ # Just accumulate the unique libdirs.
+ case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
+ *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
+ ;;
+ *)
+ func_append hardcode_libdirs "$hardcode_libdir_separator$libdir"
+ ;;
+ esac
+ fi
+ else
+ eval flag=\"$hardcode_libdir_flag_spec\"
+ func_append dep_rpath " $flag"
+ fi
+ elif test -n "$runpath_var"; then
+ case "$perm_rpath " in
+ *" $libdir "*) ;;
+ *) func_append perm_rpath " $libdir" ;;
+ esac
+ fi
+ done
+ # Substitute the hardcoded libdirs into the rpath.
+ if test -n "$hardcode_libdir_separator" &&
+ test -n "$hardcode_libdirs"; then
+ libdir=$hardcode_libdirs
+ eval "dep_rpath=\"$hardcode_libdir_flag_spec\""
+ fi
+ if test -n "$runpath_var" && test -n "$perm_rpath"; then
+ # We should set the runpath_var.
+ rpath=
+ for dir in $perm_rpath; do
+ func_append rpath "$dir:"
+ done
+ eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var"
+ fi
+ test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs"
+ fi
+
+ shlibpath=$finalize_shlibpath
+ test relink = "$opt_mode" || shlibpath=$compile_shlibpath$shlibpath
+ if test -n "$shlibpath"; then
+ eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var"
+ fi
+
+ # Get the real and link names of the library.
+ eval shared_ext=\"$shrext_cmds\"
+ eval library_names=\"$library_names_spec\"
+ set dummy $library_names
+ shift
+ realname=$1
+ shift
+
+ if test -n "$soname_spec"; then
+ eval soname=\"$soname_spec\"
+ else
+ soname=$realname
+ fi
+ if test -z "$dlname"; then
+ dlname=$soname
+ fi
+
+ lib=$output_objdir/$realname
+ linknames=
+ for link
+ do
+ func_append linknames " $link"
+ done
+
+ # Use standard objects if they are pic
+ test -z "$pic_flag" && libobjs=`$ECHO "$libobjs" | $SP2NL | $SED "$lo2o" | $NL2SP`
+ test "X$libobjs" = "X " && libobjs=
+
+ delfiles=
+ if test -n "$export_symbols" && test -n "$include_expsyms"; then
+ $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp"
+ export_symbols=$output_objdir/$libname.uexp
+ func_append delfiles " $export_symbols"
+ fi
+
+ orig_export_symbols=
+ case $host_os in
+ cygwin* | mingw* | cegcc*)
+ if test -n "$export_symbols" && test -z "$export_symbols_regex"; then
+ # exporting using user supplied symfile
+ func_dll_def_p "$export_symbols" || {
+ # and it's NOT already a .def file. Must figure out
+ # which of the given symbols are data symbols and tag
+ # them as such. So, trigger use of export_symbols_cmds.
+ # export_symbols gets reassigned inside the "prepare
+ # the list of exported symbols" if statement, so the
+ # include_expsyms logic still works.
+ orig_export_symbols=$export_symbols
+ export_symbols=
+ always_export_symbols=yes
+ }
+ fi
+ ;;
+ esac
+
+ # Prepare the list of exported symbols
+ if test -z "$export_symbols"; then
+ if test yes = "$always_export_symbols" || test -n "$export_symbols_regex"; then
+ func_verbose "generating symbol list for '$libname.la'"
+ export_symbols=$output_objdir/$libname.exp
+ $opt_dry_run || $RM $export_symbols
+ cmds=$export_symbols_cmds
+ save_ifs=$IFS; IFS='~'
+ for cmd1 in $cmds; do
+ IFS=$save_ifs
+ # Take the normal branch if the nm_file_list_spec branch
+ # doesn't work or if tool conversion is not needed.
+ case $nm_file_list_spec~$to_tool_file_cmd in
+ *~func_convert_file_noop | *~func_convert_file_msys_to_w32 | ~*)
+ try_normal_branch=yes
+ eval cmd=\"$cmd1\"
+ func_len " $cmd"
+ len=$func_len_result
+ ;;
+ *)
+ try_normal_branch=no
+ ;;
+ esac
+ if test yes = "$try_normal_branch" \
+ && { test "$len" -lt "$max_cmd_len" \
+ || test "$max_cmd_len" -le -1; }
+ then
+ func_show_eval "$cmd" 'exit $?'
+ skipped_export=false
+ elif test -n "$nm_file_list_spec"; then
+ func_basename "$output"
+ output_la=$func_basename_result
+ save_libobjs=$libobjs
+ save_output=$output
+ output=$output_objdir/$output_la.nm
+ func_to_tool_file "$output"
+ libobjs=$nm_file_list_spec$func_to_tool_file_result
+ func_append delfiles " $output"
+ func_verbose "creating $NM input file list: $output"
+ for obj in $save_libobjs; do
+ func_to_tool_file "$obj"
+ $ECHO "$func_to_tool_file_result"
+ done > "$output"
+ eval cmd=\"$cmd1\"
+ func_show_eval "$cmd" 'exit $?'
+ output=$save_output
+ libobjs=$save_libobjs
+ skipped_export=false
+ else
+ # The command line is too long to execute in one step.
+ func_verbose "using reloadable object file for export list..."
+ skipped_export=:
+ # Break out early, otherwise skipped_export may be
+ # set to false by a later but shorter cmd.
+ break
+ fi
+ done
+ IFS=$save_ifs
+ if test -n "$export_symbols_regex" && test : != "$skipped_export"; then
+ func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
+ func_show_eval '$MV "${export_symbols}T" "$export_symbols"'
+ fi
+ fi
+ fi
+
+ if test -n "$export_symbols" && test -n "$include_expsyms"; then
+ tmp_export_symbols=$export_symbols
+ test -n "$orig_export_symbols" && tmp_export_symbols=$orig_export_symbols
+ $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"'
+ fi
+
+ if test : != "$skipped_export" && test -n "$orig_export_symbols"; then
+ # The given exports_symbols file has to be filtered, so filter it.
+ func_verbose "filter symbol list for '$libname.la' to tag DATA exports"
+ # FIXME: $output_objdir/$libname.filter potentially contains lots of
+ # 's' commands, which not all seds can handle. GNU sed should be fine
+ # though. Also, the filter scales superlinearly with the number of
+ # global variables. join(1) would be nice here, but unfortunately
+ # isn't a blessed tool.
+ $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter
+ func_append delfiles " $export_symbols $output_objdir/$libname.filter"
+ export_symbols=$output_objdir/$libname.def
+ $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols
+ fi
+
+ tmp_deplibs=
+ for test_deplib in $deplibs; do
+ case " $convenience " in
+ *" $test_deplib "*) ;;
+ *)
+ func_append tmp_deplibs " $test_deplib"
+ ;;
+ esac
+ done
+ deplibs=$tmp_deplibs
+
+ if test -n "$convenience"; then
+ if test -n "$whole_archive_flag_spec" &&
+ test yes = "$compiler_needs_object" &&
+ test -z "$libobjs"; then
+ # extract the archives, so we have objects to list.
+ # TODO: could optimize this to just extract one archive.
+ whole_archive_flag_spec=
+ fi
+ if test -n "$whole_archive_flag_spec"; then
+ save_libobjs=$libobjs
+ eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
+ test "X$libobjs" = "X " && libobjs=
+ else
+ gentop=$output_objdir/${outputname}x
+ func_append generated " $gentop"
+
+ func_extract_archives $gentop $convenience
+ func_append libobjs " $func_extract_archives_result"
+ test "X$libobjs" = "X " && libobjs=
+ fi
+ fi
+
+ if test yes = "$thread_safe" && test -n "$thread_safe_flag_spec"; then
+ eval flag=\"$thread_safe_flag_spec\"
+ func_append linker_flags " $flag"
+ fi
+
+ # Make a backup of the uninstalled library when relinking
+ if test relink = "$opt_mode"; then
+ $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $?
+ fi
+
+ # Do each of the archive commands.
+ if test yes = "$module" && test -n "$module_cmds"; then
+ if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
+ eval test_cmds=\"$module_expsym_cmds\"
+ cmds=$module_expsym_cmds
+ else
+ eval test_cmds=\"$module_cmds\"
+ cmds=$module_cmds
+ fi
+ else
+ if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
+ eval test_cmds=\"$archive_expsym_cmds\"
+ cmds=$archive_expsym_cmds
+ else
+ eval test_cmds=\"$archive_cmds\"
+ cmds=$archive_cmds
+ fi
+ fi
+
+ if test : != "$skipped_export" &&
+ func_len " $test_cmds" &&
+ len=$func_len_result &&
+ test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then
+ :
+ else
+ # The command line is too long to link in one step, link piecewise
+ # or, if using GNU ld and skipped_export is not :, use a linker
+ # script.
+
+ # Save the value of $output and $libobjs because we want to
+ # use them later. If we have whole_archive_flag_spec, we
+ # want to use save_libobjs as it was before
+ # whole_archive_flag_spec was expanded, because we can't
+ # assume the linker understands whole_archive_flag_spec.
+ # This may have to be revisited, in case too many
+ # convenience libraries get linked in and end up exceeding
+ # the spec.
+ if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then
+ save_libobjs=$libobjs
+ fi
+ save_output=$output
+ func_basename "$output"
+ output_la=$func_basename_result
+
+ # Clear the reloadable object creation command queue and
+ # initialize k to one.
+ test_cmds=
+ concat_cmds=
+ objlist=
+ last_robj=
+ k=1
+
+ if test -n "$save_libobjs" && test : != "$skipped_export" && test yes = "$with_gnu_ld"; then
+ output=$output_objdir/$output_la.lnkscript
+ func_verbose "creating GNU ld script: $output"
+ echo 'INPUT (' > $output
+ for obj in $save_libobjs
+ do
+ func_to_tool_file "$obj"
+ $ECHO "$func_to_tool_file_result" >> $output
+ done
+ echo ')' >> $output
+ func_append delfiles " $output"
+ func_to_tool_file "$output"
+ output=$func_to_tool_file_result
+ elif test -n "$save_libobjs" && test : != "$skipped_export" && test -n "$file_list_spec"; then
+ output=$output_objdir/$output_la.lnk
+ func_verbose "creating linker input file list: $output"
+ : > $output
+ set x $save_libobjs
+ shift
+ firstobj=
+ if test yes = "$compiler_needs_object"; then
+ firstobj="$1 "
+ shift
+ fi
+ for obj
+ do
+ func_to_tool_file "$obj"
+ $ECHO "$func_to_tool_file_result" >> $output
+ done
+ func_append delfiles " $output"
+ func_to_tool_file "$output"
+ output=$firstobj\"$file_list_spec$func_to_tool_file_result\"
+ else
+ if test -n "$save_libobjs"; then
+ func_verbose "creating reloadable object files..."
+ output=$output_objdir/$output_la-$k.$objext
+ eval test_cmds=\"$reload_cmds\"
+ func_len " $test_cmds"
+ len0=$func_len_result
+ len=$len0
+
+ # Loop over the list of objects to be linked.
+ for obj in $save_libobjs
+ do
+ func_len " $obj"
+ func_arith $len + $func_len_result
+ len=$func_arith_result
+ if test -z "$objlist" ||
+ test "$len" -lt "$max_cmd_len"; then
+ func_append objlist " $obj"
+ else
+ # The command $test_cmds is almost too long, add a
+ # command to the queue.
+ if test 1 -eq "$k"; then
+ # The first file doesn't have a previous command to add.
+ reload_objs=$objlist
+ eval concat_cmds=\"$reload_cmds\"
+ else
+ # All subsequent reloadable object files will link in
+ # the last one created.
+ reload_objs="$objlist $last_robj"
+ eval concat_cmds=\"\$concat_cmds~$reload_cmds~\$RM $last_robj\"
+ fi
+ last_robj=$output_objdir/$output_la-$k.$objext
+ func_arith $k + 1
+ k=$func_arith_result
+ output=$output_objdir/$output_la-$k.$objext
+ objlist=" $obj"
+ func_len " $last_robj"
+ func_arith $len0 + $func_len_result
+ len=$func_arith_result
+ fi
+ done
+ # Handle the remaining objects by creating one last
+ # reloadable object file. All subsequent reloadable object
+ # files will link in the last one created.
+ test -z "$concat_cmds" || concat_cmds=$concat_cmds~
+ reload_objs="$objlist $last_robj"
+ eval concat_cmds=\"\$concat_cmds$reload_cmds\"
+ if test -n "$last_robj"; then
+ eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\"
+ fi
+ func_append delfiles " $output"
+
+ else
+ output=
+ fi
+
+ ${skipped_export-false} && {
+ func_verbose "generating symbol list for '$libname.la'"
+ export_symbols=$output_objdir/$libname.exp
+ $opt_dry_run || $RM $export_symbols
+ libobjs=$output
+ # Append the command to create the export file.
+ test -z "$concat_cmds" || concat_cmds=$concat_cmds~
+ eval concat_cmds=\"\$concat_cmds$export_symbols_cmds\"
+ if test -n "$last_robj"; then
+ eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\"
+ fi
+ }
+
+ test -n "$save_libobjs" &&
+ func_verbose "creating a temporary reloadable object file: $output"
+
+ # Loop through the commands generated above and execute them.
+ save_ifs=$IFS; IFS='~'
+ for cmd in $concat_cmds; do
+ IFS=$save_ifs
+ $opt_quiet || {
+ func_quote_for_expand "$cmd"
+ eval "func_echo $func_quote_for_expand_result"
+ }
+ $opt_dry_run || eval "$cmd" || {
+ lt_exit=$?
+
+ # Restore the uninstalled library and exit
+ if test relink = "$opt_mode"; then
+ ( cd "$output_objdir" && \
+ $RM "${realname}T" && \
+ $MV "${realname}U" "$realname" )
+ fi
+
+ exit $lt_exit
+ }
+ done
+ IFS=$save_ifs
+
+ if test -n "$export_symbols_regex" && ${skipped_export-false}; then
+ func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
+ func_show_eval '$MV "${export_symbols}T" "$export_symbols"'
+ fi
+ fi
+
+ ${skipped_export-false} && {
+ if test -n "$export_symbols" && test -n "$include_expsyms"; then
+ tmp_export_symbols=$export_symbols
+ test -n "$orig_export_symbols" && tmp_export_symbols=$orig_export_symbols
+ $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"'
+ fi
+
+ if test -n "$orig_export_symbols"; then
+ # The given exports_symbols file has to be filtered, so filter it.
+ func_verbose "filter symbol list for '$libname.la' to tag DATA exports"
+ # FIXME: $output_objdir/$libname.filter potentially contains lots of
+ # 's' commands, which not all seds can handle. GNU sed should be fine
+ # though. Also, the filter scales superlinearly with the number of
+ # global variables. join(1) would be nice here, but unfortunately
+ # isn't a blessed tool.
+ $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter
+ func_append delfiles " $export_symbols $output_objdir/$libname.filter"
+ export_symbols=$output_objdir/$libname.def
+ $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols
+ fi
+ }
+
+ libobjs=$output
+ # Restore the value of output.
+ output=$save_output
+
+ if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then
+ eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
+ test "X$libobjs" = "X " && libobjs=
+ fi
+ # Expand the library linking commands again to reset the
+ # value of $libobjs for piecewise linking.
+
+ # Do each of the archive commands.
+ if test yes = "$module" && test -n "$module_cmds"; then
+ if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
+ cmds=$module_expsym_cmds
+ else
+ cmds=$module_cmds
+ fi
+ else
+ if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
+ cmds=$archive_expsym_cmds
+ else
+ cmds=$archive_cmds
+ fi
+ fi
+ fi
+
+ if test -n "$delfiles"; then
+ # Append the command to remove temporary files to $cmds.
+ eval cmds=\"\$cmds~\$RM $delfiles\"
+ fi
+
+ # Add any objects from preloaded convenience libraries
+ if test -n "$dlprefiles"; then
+ gentop=$output_objdir/${outputname}x
+ func_append generated " $gentop"
+
+ func_extract_archives $gentop $dlprefiles
+ func_append libobjs " $func_extract_archives_result"
+ test "X$libobjs" = "X " && libobjs=
+ fi
+
+ save_ifs=$IFS; IFS='~'
+ for cmd in $cmds; do
+ IFS=$sp$nl
+ eval cmd=\"$cmd\"
+ IFS=$save_ifs
+ $opt_quiet || {
+ func_quote_for_expand "$cmd"
+ eval "func_echo $func_quote_for_expand_result"
+ }
+ $opt_dry_run || eval "$cmd" || {
+ lt_exit=$?
+
+ # Restore the uninstalled library and exit
+ if test relink = "$opt_mode"; then
+ ( cd "$output_objdir" && \
+ $RM "${realname}T" && \
+ $MV "${realname}U" "$realname" )
+ fi
+
+ exit $lt_exit
+ }
+ done
+ IFS=$save_ifs
+
+ # Restore the uninstalled library and exit
+ if test relink = "$opt_mode"; then
+ $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $?
+
+ if test -n "$convenience"; then
+ if test -z "$whole_archive_flag_spec"; then
+ func_show_eval '${RM}r "$gentop"'
+ fi
+ fi
+
+ exit $EXIT_SUCCESS
+ fi
+
+ # Create links to the real library.
+ for linkname in $linknames; do
+ if test "$realname" != "$linkname"; then
+ func_show_eval '(cd "$output_objdir" && $RM "$linkname" && $LN_S "$realname" "$linkname")' 'exit $?'
+ fi
+ done
+
+ # If -module or -export-dynamic was specified, set the dlname.
+ if test yes = "$module" || test yes = "$export_dynamic"; then
+ # On all known operating systems, these are identical.
+ dlname=$soname
+ fi
+ fi
+ ;;
+
+ obj)
+ if test -n "$dlfiles$dlprefiles" || test no != "$dlself"; then
+ func_warning "'-dlopen' is ignored for objects"
+ fi
+
+ case " $deplibs" in
+ *\ -l* | *\ -L*)
+ func_warning "'-l' and '-L' are ignored for objects" ;;
+ esac
+
+ test -n "$rpath" && \
+ func_warning "'-rpath' is ignored for objects"
+
+ test -n "$xrpath" && \
+ func_warning "'-R' is ignored for objects"
+
+ test -n "$vinfo" && \
+ func_warning "'-version-info' is ignored for objects"
+
+ test -n "$release" && \
+ func_warning "'-release' is ignored for objects"
+
+ case $output in
+ *.lo)
+ test -n "$objs$old_deplibs" && \
+ func_fatal_error "cannot build library object '$output' from non-libtool objects"
+
+ libobj=$output
+ func_lo2o "$libobj"
+ obj=$func_lo2o_result
+ ;;
+ *)
+ libobj=
+ obj=$output
+ ;;
+ esac
+
+ # Delete the old objects.
+ $opt_dry_run || $RM $obj $libobj
+
+ # Objects from convenience libraries. This assumes
+ # single-version convenience libraries. Whenever we create
+ # different ones for PIC/non-PIC, this we'll have to duplicate
+ # the extraction.
+ reload_conv_objs=
+ gentop=
+ # if reload_cmds runs $LD directly, get rid of -Wl from
+ # whole_archive_flag_spec and hope we can get by with turning comma
+ # into space.
+ case $reload_cmds in
+ *\$LD[\ \$]*) wl= ;;
+ esac
+ if test -n "$convenience"; then
+ if test -n "$whole_archive_flag_spec"; then
+ eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\"
+ test -n "$wl" || tmp_whole_archive_flags=`$ECHO "$tmp_whole_archive_flags" | $SED 's|,| |g'`
+ reload_conv_objs=$reload_objs\ $tmp_whole_archive_flags
+ else
+ gentop=$output_objdir/${obj}x
+ func_append generated " $gentop"
+
+ func_extract_archives $gentop $convenience
+ reload_conv_objs="$reload_objs $func_extract_archives_result"
+ fi
+ fi
+
+ # If we're not building shared, we need to use non_pic_objs
+ test yes = "$build_libtool_libs" || libobjs=$non_pic_objects
+
+ # Create the old-style object.
+ reload_objs=$objs$old_deplibs' '`$ECHO "$libobjs" | $SP2NL | $SED "/\.$libext$/d; /\.lib$/d; $lo2o" | $NL2SP`' '$reload_conv_objs
+
+ output=$obj
+ func_execute_cmds "$reload_cmds" 'exit $?'
+
+ # Exit if we aren't doing a library object file.
+ if test -z "$libobj"; then
+ if test -n "$gentop"; then
+ func_show_eval '${RM}r "$gentop"'
+ fi
+
+ exit $EXIT_SUCCESS
+ fi
+
+ test yes = "$build_libtool_libs" || {
+ if test -n "$gentop"; then
+ func_show_eval '${RM}r "$gentop"'
+ fi
+
+ # Create an invalid libtool object if no PIC, so that we don't
+ # accidentally link it into a program.
+ # $show "echo timestamp > $libobj"
+ # $opt_dry_run || eval "echo timestamp > $libobj" || exit $?
+ exit $EXIT_SUCCESS
+ }
+
+ if test -n "$pic_flag" || test default != "$pic_mode"; then
+ # Only do commands if we really have different PIC objects.
+ reload_objs="$libobjs $reload_conv_objs"
+ output=$libobj
+ func_execute_cmds "$reload_cmds" 'exit $?'
+ fi
+
+ if test -n "$gentop"; then
+ func_show_eval '${RM}r "$gentop"'
+ fi
+
+ exit $EXIT_SUCCESS
+ ;;
+
+ prog)
+ case $host in
+ *cygwin*) func_stripname '' '.exe' "$output"
+ output=$func_stripname_result.exe;;
+ esac
+ test -n "$vinfo" && \
+ func_warning "'-version-info' is ignored for programs"
+
+ test -n "$release" && \
+ func_warning "'-release' is ignored for programs"
+
+ $preload \
+ && test unknown,unknown,unknown = "$dlopen_support,$dlopen_self,$dlopen_self_static" \
+ && func_warning "'LT_INIT([dlopen])' not used. Assuming no dlopen support."
+
+ case $host in
+ *-*-rhapsody* | *-*-darwin1.[012])
+ # On Rhapsody replace the C library is the System framework
+ compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's/ -lc / System.ltframework /'`
+ finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's/ -lc / System.ltframework /'`
+ ;;
+ esac
+
+ case $host in
+ *-*-darwin*)
+ # Don't allow lazy linking, it breaks C++ global constructors
+ # But is supposedly fixed on 10.4 or later (yay!).
+ if test CXX = "$tagname"; then
+ case ${MACOSX_DEPLOYMENT_TARGET-10.0} in
+ 10.[0123])
+ func_append compile_command " $wl-bind_at_load"
+ func_append finalize_command " $wl-bind_at_load"
+ ;;
+ esac
+ fi
+ # Time to change all our "foo.ltframework" stuff back to "-framework foo"
+ compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
+ finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
+ ;;
+ esac
+
+
+ # move library search paths that coincide with paths to not yet
+ # installed libraries to the beginning of the library search list
+ new_libs=
+ for path in $notinst_path; do
+ case " $new_libs " in
+ *" -L$path/$objdir "*) ;;
+ *)
+ case " $compile_deplibs " in
+ *" -L$path/$objdir "*)
+ func_append new_libs " -L$path/$objdir" ;;
+ esac
+ ;;
+ esac
+ done
+ for deplib in $compile_deplibs; do
+ case $deplib in
+ -L*)
+ case " $new_libs " in
+ *" $deplib "*) ;;
+ *) func_append new_libs " $deplib" ;;
+ esac
+ ;;
+ *) func_append new_libs " $deplib" ;;
+ esac
+ done
+ compile_deplibs=$new_libs
+
+
+ func_append compile_command " $compile_deplibs"
+ func_append finalize_command " $finalize_deplibs"
+
+ if test -n "$rpath$xrpath"; then
+ # If the user specified any rpath flags, then add them.
+ for libdir in $rpath $xrpath; do
+ # This is the magic to use -rpath.
+ case "$finalize_rpath " in
+ *" $libdir "*) ;;
+ *) func_append finalize_rpath " $libdir" ;;
+ esac
+ done
+ fi
+
+ # Now hardcode the library paths
+ rpath=
+ hardcode_libdirs=
+ for libdir in $compile_rpath $finalize_rpath; do
+ if test -n "$hardcode_libdir_flag_spec"; then
+ if test -n "$hardcode_libdir_separator"; then
+ if test -z "$hardcode_libdirs"; then
+ hardcode_libdirs=$libdir
+ else
+ # Just accumulate the unique libdirs.
+ case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
+ *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
+ ;;
+ *)
+ func_append hardcode_libdirs "$hardcode_libdir_separator$libdir"
+ ;;
+ esac
+ fi
+ else
+ eval flag=\"$hardcode_libdir_flag_spec\"
+ func_append rpath " $flag"
+ fi
+ elif test -n "$runpath_var"; then
+ case "$perm_rpath " in
+ *" $libdir "*) ;;
+ *) func_append perm_rpath " $libdir" ;;
+ esac
+ fi
+ case $host in
+ *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*)
+ testbindir=`$ECHO "$libdir" | $SED -e 's*/lib$*/bin*'`
+ case :$dllsearchpath: in
+ *":$libdir:"*) ;;
+ ::) dllsearchpath=$libdir;;
+ *) func_append dllsearchpath ":$libdir";;
+ esac
+ case :$dllsearchpath: in
+ *":$testbindir:"*) ;;
+ ::) dllsearchpath=$testbindir;;
+ *) func_append dllsearchpath ":$testbindir";;
+ esac
+ ;;
+ esac
+ done
+ # Substitute the hardcoded libdirs into the rpath.
+ if test -n "$hardcode_libdir_separator" &&
+ test -n "$hardcode_libdirs"; then
+ libdir=$hardcode_libdirs
+ eval rpath=\" $hardcode_libdir_flag_spec\"
+ fi
+ compile_rpath=$rpath
+
+ rpath=
+ hardcode_libdirs=
+ for libdir in $finalize_rpath; do
+ if test -n "$hardcode_libdir_flag_spec"; then
+ if test -n "$hardcode_libdir_separator"; then
+ if test -z "$hardcode_libdirs"; then
+ hardcode_libdirs=$libdir
+ else
+ # Just accumulate the unique libdirs.
+ case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
+ *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
+ ;;
+ *)
+ func_append hardcode_libdirs "$hardcode_libdir_separator$libdir"
+ ;;
+ esac
+ fi
+ else
+ eval flag=\"$hardcode_libdir_flag_spec\"
+ func_append rpath " $flag"
+ fi
+ elif test -n "$runpath_var"; then
+ case "$finalize_perm_rpath " in
+ *" $libdir "*) ;;
+ *) func_append finalize_perm_rpath " $libdir" ;;
+ esac
+ fi
+ done
+ # Substitute the hardcoded libdirs into the rpath.
+ if test -n "$hardcode_libdir_separator" &&
+ test -n "$hardcode_libdirs"; then
+ libdir=$hardcode_libdirs
+ eval rpath=\" $hardcode_libdir_flag_spec\"
+ fi
+ finalize_rpath=$rpath
+
+ if test -n "$libobjs" && test yes = "$build_old_libs"; then
+ # Transform all the library objects into standard objects.
+ compile_command=`$ECHO "$compile_command" | $SP2NL | $SED "$lo2o" | $NL2SP`
+ finalize_command=`$ECHO "$finalize_command" | $SP2NL | $SED "$lo2o" | $NL2SP`
+ fi
+
+ func_generate_dlsyms "$outputname" "@PROGRAM@" false
+
+ # template prelinking step
+ if test -n "$prelink_cmds"; then
+ func_execute_cmds "$prelink_cmds" 'exit $?'
+ fi
+
+ wrappers_required=:
+ case $host in
+ *cegcc* | *mingw32ce*)
+ # Disable wrappers for cegcc and mingw32ce hosts, we are cross compiling anyway.
+ wrappers_required=false
+ ;;
+ *cygwin* | *mingw* )
+ test yes = "$build_libtool_libs" || wrappers_required=false
+ ;;
+ *)
+ if test no = "$need_relink" || test yes != "$build_libtool_libs"; then
+ wrappers_required=false
+ fi
+ ;;
+ esac
+ $wrappers_required || {
+ # Replace the output file specification.
+ compile_command=`$ECHO "$compile_command" | $SED 's%@OUTPUT@%'"$output"'%g'`
+ link_command=$compile_command$compile_rpath
+
+ # We have no uninstalled library dependencies, so finalize right now.
+ exit_status=0
+ func_show_eval "$link_command" 'exit_status=$?'
+
+ if test -n "$postlink_cmds"; then
+ func_to_tool_file "$output"
+ postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'`
+ func_execute_cmds "$postlink_cmds" 'exit $?'
+ fi
+
+ # Delete the generated files.
+ if test -f "$output_objdir/${outputname}S.$objext"; then
+ func_show_eval '$RM "$output_objdir/${outputname}S.$objext"'
+ fi
+
+ exit $exit_status
+ }
+
+ if test -n "$compile_shlibpath$finalize_shlibpath"; then
+ compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command"
+ fi
+ if test -n "$finalize_shlibpath"; then
+ finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command"
+ fi
+
+ compile_var=
+ finalize_var=
+ if test -n "$runpath_var"; then
+ if test -n "$perm_rpath"; then
+ # We should set the runpath_var.
+ rpath=
+ for dir in $perm_rpath; do
+ func_append rpath "$dir:"
+ done
+ compile_var="$runpath_var=\"$rpath\$$runpath_var\" "
+ fi
+ if test -n "$finalize_perm_rpath"; then
+ # We should set the runpath_var.
+ rpath=
+ for dir in $finalize_perm_rpath; do
+ func_append rpath "$dir:"
+ done
+ finalize_var="$runpath_var=\"$rpath\$$runpath_var\" "
+ fi
+ fi
+
+ if test yes = "$no_install"; then
+ # We don't need to create a wrapper script.
+ link_command=$compile_var$compile_command$compile_rpath
+ # Replace the output file specification.
+ link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output"'%g'`
+ # Delete the old output file.
+ $opt_dry_run || $RM $output
+ # Link the executable and exit
+ func_show_eval "$link_command" 'exit $?'
+
+ if test -n "$postlink_cmds"; then
+ func_to_tool_file "$output"
+ postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'`
+ func_execute_cmds "$postlink_cmds" 'exit $?'
+ fi
+
+ exit $EXIT_SUCCESS
+ fi
+
+ case $hardcode_action,$fast_install in
+ relink,*)
+ # Fast installation is not supported
+ link_command=$compile_var$compile_command$compile_rpath
+ relink_command=$finalize_var$finalize_command$finalize_rpath
+
+ func_warning "this platform does not like uninstalled shared libraries"
+ func_warning "'$output' will be relinked during installation"
+ ;;
+ *,yes)
+ link_command=$finalize_var$compile_command$finalize_rpath
+ relink_command=`$ECHO "$compile_var$compile_command$compile_rpath" | $SED 's%@OUTPUT@%\$progdir/\$file%g'`
+ ;;
+ *,no)
+ link_command=$compile_var$compile_command$compile_rpath
+ relink_command=$finalize_var$finalize_command$finalize_rpath
+ ;;
+ *,needless)
+ link_command=$finalize_var$compile_command$finalize_rpath
+ relink_command=
+ ;;
+ esac
+
+ # Replace the output file specification.
+ link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'`
+
+ # Delete the old output files.
+ $opt_dry_run || $RM $output $output_objdir/$outputname $output_objdir/lt-$outputname
+
+ func_show_eval "$link_command" 'exit $?'
+
+ if test -n "$postlink_cmds"; then
+ func_to_tool_file "$output_objdir/$outputname"
+ postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'`
+ func_execute_cmds "$postlink_cmds" 'exit $?'
+ fi
+
+ # Now create the wrapper script.
+ func_verbose "creating $output"
+
+ # Quote the relink command for shipping.
+ if test -n "$relink_command"; then
+ # Preserve any variables that may affect compiler behavior
+ for var in $variables_saved_for_relink; do
+ if eval test -z \"\${$var+set}\"; then
+ relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command"
+ elif eval var_value=\$$var; test -z "$var_value"; then
+ relink_command="$var=; export $var; $relink_command"
+ else
+ func_quote_for_eval "$var_value"
+ relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command"
+ fi
+ done
+ relink_command="(cd `pwd`; $relink_command)"
+ relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"`
+ fi
+
+ # Only actually do things if not in dry run mode.
+ $opt_dry_run || {
+ # win32 will think the script is a binary if it has
+ # a .exe suffix, so we strip it off here.
+ case $output in
+ *.exe) func_stripname '' '.exe' "$output"
+ output=$func_stripname_result ;;
+ esac
+ # test for cygwin because mv fails w/o .exe extensions
+ case $host in
+ *cygwin*)
+ exeext=.exe
+ func_stripname '' '.exe' "$outputname"
+ outputname=$func_stripname_result ;;
+ *) exeext= ;;
+ esac
+ case $host in
+ *cygwin* | *mingw* )
+ func_dirname_and_basename "$output" "" "."
+ output_name=$func_basename_result
+ output_path=$func_dirname_result
+ cwrappersource=$output_path/$objdir/lt-$output_name.c
+ cwrapper=$output_path/$output_name.exe
+ $RM $cwrappersource $cwrapper
+ trap "$RM $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15
+
+ func_emit_cwrapperexe_src > $cwrappersource
+
+ # The wrapper executable is built using the $host compiler,
+ # because it contains $host paths and files. If cross-
+ # compiling, it, like the target executable, must be
+ # executed on the $host or under an emulation environment.
+ $opt_dry_run || {
+ $LTCC $LTCFLAGS -o $cwrapper $cwrappersource
+ $STRIP $cwrapper
+ }
+
+ # Now, create the wrapper script for func_source use:
+ func_ltwrapper_scriptname $cwrapper
+ $RM $func_ltwrapper_scriptname_result
+ trap "$RM $func_ltwrapper_scriptname_result; exit $EXIT_FAILURE" 1 2 15
+ $opt_dry_run || {
+ # note: this script will not be executed, so do not chmod.
+ if test "x$build" = "x$host"; then
+ $cwrapper --lt-dump-script > $func_ltwrapper_scriptname_result
+ else
+ func_emit_wrapper no > $func_ltwrapper_scriptname_result
+ fi
+ }
+ ;;
+ * )
+ $RM $output
+ trap "$RM $output; exit $EXIT_FAILURE" 1 2 15
+
+ func_emit_wrapper no > $output
+ chmod +x $output
+ ;;
+ esac
+ }
+ exit $EXIT_SUCCESS
+ ;;
+ esac
+
+ # See if we need to build an old-fashioned archive.
+ for oldlib in $oldlibs; do
+
+ case $build_libtool_libs in
+ convenience)
+ oldobjs="$libobjs_save $symfileobj"
+ addlibs=$convenience
+ build_libtool_libs=no
+ ;;
+ module)
+ oldobjs=$libobjs_save
+ addlibs=$old_convenience
+ build_libtool_libs=no
+ ;;
+ *)
+ oldobjs="$old_deplibs $non_pic_objects"
+ $preload && test -f "$symfileobj" \
+ && func_append oldobjs " $symfileobj"
+ addlibs=$old_convenience
+ ;;
+ esac
+
+ if test -n "$addlibs"; then
+ gentop=$output_objdir/${outputname}x
+ func_append generated " $gentop"
+
+ func_extract_archives $gentop $addlibs
+ func_append oldobjs " $func_extract_archives_result"
+ fi
+
+ # Do each command in the archive commands.
+ if test -n "$old_archive_from_new_cmds" && test yes = "$build_libtool_libs"; then
+ cmds=$old_archive_from_new_cmds
+ else
+
+ # Add any objects from preloaded convenience libraries
+ if test -n "$dlprefiles"; then
+ gentop=$output_objdir/${outputname}x
+ func_append generated " $gentop"
+
+ func_extract_archives $gentop $dlprefiles
+ func_append oldobjs " $func_extract_archives_result"
+ fi
+
+ # POSIX demands no paths to be encoded in archives. We have
+ # to avoid creating archives with duplicate basenames if we
+ # might have to extract them afterwards, e.g., when creating a
+ # static archive out of a convenience library, or when linking
+ # the entirety of a libtool archive into another (currently
+ # not supported by libtool).
+ if (for obj in $oldobjs
+ do
+ func_basename "$obj"
+ $ECHO "$func_basename_result"
+ done | sort | sort -uc >/dev/null 2>&1); then
+ :
+ else
+ echo "copying selected object files to avoid basename conflicts..."
+ gentop=$output_objdir/${outputname}x
+ func_append generated " $gentop"
+ func_mkdir_p "$gentop"
+ save_oldobjs=$oldobjs
+ oldobjs=
+ counter=1
+ for obj in $save_oldobjs
+ do
+ func_basename "$obj"
+ objbase=$func_basename_result
+ case " $oldobjs " in
+ " ") oldobjs=$obj ;;
+ *[\ /]"$objbase "*)
+ while :; do
+ # Make sure we don't pick an alternate name that also
+ # overlaps.
+ newobj=lt$counter-$objbase
+ func_arith $counter + 1
+ counter=$func_arith_result
+ case " $oldobjs " in
+ *[\ /]"$newobj "*) ;;
+ *) if test ! -f "$gentop/$newobj"; then break; fi ;;
+ esac
+ done
+ func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj"
+ func_append oldobjs " $gentop/$newobj"
+ ;;
+ *) func_append oldobjs " $obj" ;;
+ esac
+ done
+ fi
+ func_to_tool_file "$oldlib" func_convert_file_msys_to_w32
+ tool_oldlib=$func_to_tool_file_result
+ eval cmds=\"$old_archive_cmds\"
+
+ func_len " $cmds"
+ len=$func_len_result
+ if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then
+ cmds=$old_archive_cmds
+ elif test -n "$archiver_list_spec"; then
+ func_verbose "using command file archive linking..."
+ for obj in $oldobjs
+ do
+ func_to_tool_file "$obj"
+ $ECHO "$func_to_tool_file_result"
+ done > $output_objdir/$libname.libcmd
+ func_to_tool_file "$output_objdir/$libname.libcmd"
+ oldobjs=" $archiver_list_spec$func_to_tool_file_result"
+ cmds=$old_archive_cmds
+ else
+ # the command line is too long to link in one step, link in parts
+ func_verbose "using piecewise archive linking..."
+ save_RANLIB=$RANLIB
+ RANLIB=:
+ objlist=
+ concat_cmds=
+ save_oldobjs=$oldobjs
+ oldobjs=
+ # Is there a better way of finding the last object in the list?
+ for obj in $save_oldobjs
+ do
+ last_oldobj=$obj
+ done
+ eval test_cmds=\"$old_archive_cmds\"
+ func_len " $test_cmds"
+ len0=$func_len_result
+ len=$len0
+ for obj in $save_oldobjs
+ do
+ func_len " $obj"
+ func_arith $len + $func_len_result
+ len=$func_arith_result
+ func_append objlist " $obj"
+ if test "$len" -lt "$max_cmd_len"; then
+ :
+ else
+ # the above command should be used before it gets too long
+ oldobjs=$objlist
+ if test "$obj" = "$last_oldobj"; then
+ RANLIB=$save_RANLIB
+ fi
+ test -z "$concat_cmds" || concat_cmds=$concat_cmds~
+ eval concat_cmds=\"\$concat_cmds$old_archive_cmds\"
+ objlist=
+ len=$len0
+ fi
+ done
+ RANLIB=$save_RANLIB
+ oldobjs=$objlist
+ if test -z "$oldobjs"; then
+ eval cmds=\"\$concat_cmds\"
+ else
+ eval cmds=\"\$concat_cmds~\$old_archive_cmds\"
+ fi
+ fi
+ fi
+ func_execute_cmds "$cmds" 'exit $?'
+ done
+
+ test -n "$generated" && \
+ func_show_eval "${RM}r$generated"
+
+ # Now create the libtool archive.
+ case $output in
+ *.la)
+ old_library=
+ test yes = "$build_old_libs" && old_library=$libname.$libext
+ func_verbose "creating $output"
+
+ # Preserve any variables that may affect compiler behavior
+ for var in $variables_saved_for_relink; do
+ if eval test -z \"\${$var+set}\"; then
+ relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command"
+ elif eval var_value=\$$var; test -z "$var_value"; then
+ relink_command="$var=; export $var; $relink_command"
+ else
+ func_quote_for_eval "$var_value"
+ relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command"
+ fi
+ done
+ # Quote the link command for shipping.
+ relink_command="(cd `pwd`; $SHELL \"$progpath\" $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)"
+ relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"`
+ if test yes = "$hardcode_automatic"; then
+ relink_command=
+ fi
+
+ # Only create the output if not a dry run.
+ $opt_dry_run || {
+ for installed in no yes; do
+ if test yes = "$installed"; then
+ if test -z "$install_libdir"; then
+ break
+ fi
+ output=$output_objdir/${outputname}i
+ # Replace all uninstalled libtool libraries with the installed ones
+ newdependency_libs=
+ for deplib in $dependency_libs; do
+ case $deplib in
+ *.la)
+ func_basename "$deplib"
+ name=$func_basename_result
+ func_resolve_sysroot "$deplib"
+ eval libdir=`$SED -n -e 's/^libdir=\(.*\)$/\1/p' $func_resolve_sysroot_result`
+ test -z "$libdir" && \
+ func_fatal_error "'$deplib' is not a valid libtool archive"
+ func_append newdependency_libs " ${lt_sysroot:+=}$libdir/$name"
+ ;;
+ -L*)
+ func_stripname -L '' "$deplib"
+ func_replace_sysroot "$func_stripname_result"
+ func_append newdependency_libs " -L$func_replace_sysroot_result"
+ ;;
+ -R*)
+ func_stripname -R '' "$deplib"
+ func_replace_sysroot "$func_stripname_result"
+ func_append newdependency_libs " -R$func_replace_sysroot_result"
+ ;;
+ *) func_append newdependency_libs " $deplib" ;;
+ esac
+ done
+ dependency_libs=$newdependency_libs
+ newdlfiles=
+
+ for lib in $dlfiles; do
+ case $lib in
+ *.la)
+ func_basename "$lib"
+ name=$func_basename_result
+ eval libdir=`$SED -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
+ test -z "$libdir" && \
+ func_fatal_error "'$lib' is not a valid libtool archive"
+ func_append newdlfiles " ${lt_sysroot:+=}$libdir/$name"
+ ;;
+ *) func_append newdlfiles " $lib" ;;
+ esac
+ done
+ dlfiles=$newdlfiles
+ newdlprefiles=
+ for lib in $dlprefiles; do
+ case $lib in
+ *.la)
+ # Only pass preopened files to the pseudo-archive (for
+ # eventual linking with the app. that links it) if we
+ # didn't already link the preopened objects directly into
+ # the library:
+ func_basename "$lib"
+ name=$func_basename_result
+ eval libdir=`$SED -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
+ test -z "$libdir" && \
+ func_fatal_error "'$lib' is not a valid libtool archive"
+ func_append newdlprefiles " ${lt_sysroot:+=}$libdir/$name"
+ ;;
+ esac
+ done
+ dlprefiles=$newdlprefiles
+ else
+ newdlfiles=
+ for lib in $dlfiles; do
+ case $lib in
+ [\\/]* | [A-Za-z]:[\\/]*) abs=$lib ;;
+ *) abs=`pwd`"/$lib" ;;
+ esac
+ func_append newdlfiles " $abs"
+ done
+ dlfiles=$newdlfiles
+ newdlprefiles=
+ for lib in $dlprefiles; do
+ case $lib in
+ [\\/]* | [A-Za-z]:[\\/]*) abs=$lib ;;
+ *) abs=`pwd`"/$lib" ;;
+ esac
+ func_append newdlprefiles " $abs"
+ done
+ dlprefiles=$newdlprefiles
+ fi
+ $RM $output
+ # place dlname in correct position for cygwin
+ # In fact, it would be nice if we could use this code for all target
+ # systems that can't hard-code library paths into their executables
+ # and that have no shared library path variable independent of PATH,
+ # but it turns out we can't easily determine that from inspecting
+ # libtool variables, so we have to hard-code the OSs to which it
+ # applies here; at the moment, that means platforms that use the PE
+ # object format with DLL files. See the long comment at the top of
+ # tests/bindir.at for full details.
+ tdlname=$dlname
+ case $host,$output,$installed,$module,$dlname in
+ *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll)
+ # If a -bindir argument was supplied, place the dll there.
+ if test -n "$bindir"; then
+ func_relative_path "$install_libdir" "$bindir"
+ tdlname=$func_relative_path_result/$dlname
+ else
+ # Otherwise fall back on heuristic.
+ tdlname=../bin/$dlname
+ fi
+ ;;
+ esac
+ $ECHO > $output "\
+# $outputname - a libtool library file
+# Generated by $PROGRAM (GNU $PACKAGE) $VERSION
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# The name that we can dlopen(3).
+dlname='$tdlname'
+
+# Names of this library.
+library_names='$library_names'
+
+# The name of the static archive.
+old_library='$old_library'
+
+# Linker flags that cannot go in dependency_libs.
+inherited_linker_flags='$new_inherited_linker_flags'
+
+# Libraries that this one depends upon.
+dependency_libs='$dependency_libs'
+
+# Names of additional weak libraries provided by this library
+weak_library_names='$weak_libs'
+
+# Version information for $libname.
+current=$current
+age=$age
+revision=$revision
+
+# Is this an already installed library?
+installed=$installed
+
+# Should we warn about portability when linking against -modules?
+shouldnotlink=$module
+
+# Files to dlopen/dlpreopen
+dlopen='$dlfiles'
+dlpreopen='$dlprefiles'
+
+# Directory that this library needs to be installed in:
+libdir='$install_libdir'"
+ if test no,yes = "$installed,$need_relink"; then
+ $ECHO >> $output "\
+relink_command=\"$relink_command\""
+ fi
+ done
+ }
+
+ # Do a symbolic link so that the libtool archive can be found in
+ # LD_LIBRARY_PATH before the program is installed.
+ func_show_eval '( cd "$output_objdir" && $RM "$outputname" && $LN_S "../$outputname" "$outputname" )' 'exit $?'
+ ;;
+ esac
+ exit $EXIT_SUCCESS
+}
+
+if test link = "$opt_mode" || test relink = "$opt_mode"; then
+ func_mode_link ${1+"$@"}
+fi
+
+
+# func_mode_uninstall arg...
+func_mode_uninstall ()
+{
+ $debug_cmd
+
+ RM=$nonopt
+ files=
+ rmforce=false
+ exit_status=0
+
+ # This variable tells wrapper scripts just to set variables rather
+ # than running their programs.
+ libtool_install_magic=$magic
+
+ for arg
+ do
+ case $arg in
+ -f) func_append RM " $arg"; rmforce=: ;;
+ -*) func_append RM " $arg" ;;
+ *) func_append files " $arg" ;;
+ esac
+ done
+
+ test -z "$RM" && \
+ func_fatal_help "you must specify an RM program"
+
+ rmdirs=
+
+ for file in $files; do
+ func_dirname "$file" "" "."
+ dir=$func_dirname_result
+ if test . = "$dir"; then
+ odir=$objdir
+ else
+ odir=$dir/$objdir
+ fi
+ func_basename "$file"
+ name=$func_basename_result
+ test uninstall = "$opt_mode" && odir=$dir
+
+ # Remember odir for removal later, being careful to avoid duplicates
+ if test clean = "$opt_mode"; then
+ case " $rmdirs " in
+ *" $odir "*) ;;
+ *) func_append rmdirs " $odir" ;;
+ esac
+ fi
+
+ # Don't error if the file doesn't exist and rm -f was used.
+ if { test -L "$file"; } >/dev/null 2>&1 ||
+ { test -h "$file"; } >/dev/null 2>&1 ||
+ test -f "$file"; then
+ :
+ elif test -d "$file"; then
+ exit_status=1
+ continue
+ elif $rmforce; then
+ continue
+ fi
+
+ rmfiles=$file
+
+ case $name in
+ *.la)
+ # Possibly a libtool archive, so verify it.
+ if func_lalib_p "$file"; then
+ func_source $dir/$name
+
+ # Delete the libtool libraries and symlinks.
+ for n in $library_names; do
+ func_append rmfiles " $odir/$n"
+ done
+ test -n "$old_library" && func_append rmfiles " $odir/$old_library"
+
+ case $opt_mode in
+ clean)
+ case " $library_names " in
+ *" $dlname "*) ;;
+ *) test -n "$dlname" && func_append rmfiles " $odir/$dlname" ;;
+ esac
+ test -n "$libdir" && func_append rmfiles " $odir/$name $odir/${name}i"
+ ;;
+ uninstall)
+ if test -n "$library_names"; then
+ # Do each command in the postuninstall commands.
+ func_execute_cmds "$postuninstall_cmds" '$rmforce || exit_status=1'
+ fi
+
+ if test -n "$old_library"; then
+ # Do each command in the old_postuninstall commands.
+ func_execute_cmds "$old_postuninstall_cmds" '$rmforce || exit_status=1'
+ fi
+ # FIXME: should reinstall the best remaining shared library.
+ ;;
+ esac
+ fi
+ ;;
+
+ *.lo)
+ # Possibly a libtool object, so verify it.
+ if func_lalib_p "$file"; then
+
+ # Read the .lo file
+ func_source $dir/$name
+
+ # Add PIC object to the list of files to remove.
+ if test -n "$pic_object" && test none != "$pic_object"; then
+ func_append rmfiles " $dir/$pic_object"
+ fi
+
+ # Add non-PIC object to the list of files to remove.
+ if test -n "$non_pic_object" && test none != "$non_pic_object"; then
+ func_append rmfiles " $dir/$non_pic_object"
+ fi
+ fi
+ ;;
+
+ *)
+ if test clean = "$opt_mode"; then
+ noexename=$name
+ case $file in
+ *.exe)
+ func_stripname '' '.exe' "$file"
+ file=$func_stripname_result
+ func_stripname '' '.exe' "$name"
+ noexename=$func_stripname_result
+ # $file with .exe has already been added to rmfiles,
+ # add $file without .exe
+ func_append rmfiles " $file"
+ ;;
+ esac
+ # Do a test to see if this is a libtool program.
+ if func_ltwrapper_p "$file"; then
+ if func_ltwrapper_executable_p "$file"; then
+ func_ltwrapper_scriptname "$file"
+ relink_command=
+ func_source $func_ltwrapper_scriptname_result
+ func_append rmfiles " $func_ltwrapper_scriptname_result"
+ else
+ relink_command=
+ func_source $dir/$noexename
+ fi
+
+ # note $name still contains .exe if it was in $file originally
+ # as does the version of $file that was added into $rmfiles
+ func_append rmfiles " $odir/$name $odir/${name}S.$objext"
+ if test yes = "$fast_install" && test -n "$relink_command"; then
+ func_append rmfiles " $odir/lt-$name"
+ fi
+ if test "X$noexename" != "X$name"; then
+ func_append rmfiles " $odir/lt-$noexename.c"
+ fi
+ fi
+ fi
+ ;;
+ esac
+ func_show_eval "$RM $rmfiles" 'exit_status=1'
+ done
+
+ # Try to remove the $objdir's in the directories where we deleted files
+ for dir in $rmdirs; do
+ if test -d "$dir"; then
+ func_show_eval "rmdir $dir >/dev/null 2>&1"
+ fi
+ done
+
+ exit $exit_status
+}
+
+if test uninstall = "$opt_mode" || test clean = "$opt_mode"; then
+ func_mode_uninstall ${1+"$@"}
+fi
+
+test -z "$opt_mode" && {
+ help=$generic_help
+ func_fatal_help "you must specify a MODE"
+}
+
+test -z "$exec_cmd" && \
+ func_fatal_help "invalid operation mode '$opt_mode'"
+
+if test -n "$exec_cmd"; then
+ eval exec "$exec_cmd"
+ exit $EXIT_FAILURE
+fi
+
+exit $exit_status
+
+
+# The TAGs below are defined such that we never get into a situation
+# where we disable both kinds of libraries. Given conflicting
+# choices, we go for a static library, that is the most portable,
+# since we can't tell whether shared libraries were disabled because
+# the user asked for that or because the platform doesn't support
+# them. This is particularly important on AIX, because we don't
+# support having both static and shared libraries enabled at the same
+# time on that platform, so we default to a shared-only configuration.
+# If a disable-shared tag is given, we'll fallback to a static-only
+# configuration. But we'll never go from static-only to shared-only.
+
+# ### BEGIN LIBTOOL TAG CONFIG: disable-shared
+build_libtool_libs=no
+build_old_libs=yes
+# ### END LIBTOOL TAG CONFIG: disable-shared
+
+# ### BEGIN LIBTOOL TAG CONFIG: disable-static
+build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac`
+# ### END LIBTOOL TAG CONFIG: disable-static
+
+# Local Variables:
+# mode:shell-script
+# sh-indentation:2
+# End:
--- /dev/null
+# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*-
+#
+# Copyright (C) 1996-2001, 2003-2015 Free Software Foundation, Inc.
+# Written by Gordon Matzigkeit, 1996
+#
+# This file is free software; the Free Software Foundation gives
+# unlimited permission to copy and/or distribute it, with or without
+# modifications, as long as this notice is preserved.
+
+m4_define([_LT_COPYING], [dnl
+# Copyright (C) 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.
+
+# GNU Libtool is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of of the License, or
+# (at your option) any later version.
+#
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program or library that is built
+# using GNU Libtool, you may include this file under the same
+# distribution terms that you use for the rest of that program.
+#
+# GNU Libtool is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+])
+
+# serial 58 LT_INIT
+
+
+# LT_PREREQ(VERSION)
+# ------------------
+# Complain and exit if this libtool version is less that VERSION.
+m4_defun([LT_PREREQ],
+[m4_if(m4_version_compare(m4_defn([LT_PACKAGE_VERSION]), [$1]), -1,
+ [m4_default([$3],
+ [m4_fatal([Libtool version $1 or higher is required],
+ 63)])],
+ [$2])])
+
+
+# _LT_CHECK_BUILDDIR
+# ------------------
+# Complain if the absolute build directory name contains unusual characters
+m4_defun([_LT_CHECK_BUILDDIR],
+[case `pwd` in
+ *\ * | *\ *)
+ AC_MSG_WARN([Libtool does not cope well with whitespace in `pwd`]) ;;
+esac
+])
+
+
+# LT_INIT([OPTIONS])
+# ------------------
+AC_DEFUN([LT_INIT],
+[AC_PREREQ([2.62])dnl We use AC_PATH_PROGS_FEATURE_CHECK
+AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl
+AC_BEFORE([$0], [LT_LANG])dnl
+AC_BEFORE([$0], [LT_OUTPUT])dnl
+AC_BEFORE([$0], [LTDL_INIT])dnl
+m4_require([_LT_CHECK_BUILDDIR])dnl
+
+dnl Autoconf doesn't catch unexpanded LT_ macros by default:
+m4_pattern_forbid([^_?LT_[A-Z_]+$])dnl
+m4_pattern_allow([^(_LT_EOF|LT_DLGLOBAL|LT_DLLAZY_OR_NOW|LT_MULTI_MODULE)$])dnl
+dnl aclocal doesn't pull ltoptions.m4, ltsugar.m4, or ltversion.m4
+dnl unless we require an AC_DEFUNed macro:
+AC_REQUIRE([LTOPTIONS_VERSION])dnl
+AC_REQUIRE([LTSUGAR_VERSION])dnl
+AC_REQUIRE([LTVERSION_VERSION])dnl
+AC_REQUIRE([LTOBSOLETE_VERSION])dnl
+m4_require([_LT_PROG_LTMAIN])dnl
+
+_LT_SHELL_INIT([SHELL=${CONFIG_SHELL-/bin/sh}])
+
+dnl Parse OPTIONS
+_LT_SET_OPTIONS([$0], [$1])
+
+# This can be used to rebuild libtool when needed
+LIBTOOL_DEPS=$ltmain
+
+# Always use our own libtool.
+LIBTOOL='$(SHELL) $(top_builddir)/libtool'
+AC_SUBST(LIBTOOL)dnl
+
+_LT_SETUP
+
+# Only expand once:
+m4_define([LT_INIT])
+])# LT_INIT
+
+# Old names:
+AU_ALIAS([AC_PROG_LIBTOOL], [LT_INIT])
+AU_ALIAS([AM_PROG_LIBTOOL], [LT_INIT])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_PROG_LIBTOOL], [])
+dnl AC_DEFUN([AM_PROG_LIBTOOL], [])
+
+
+# _LT_PREPARE_CC_BASENAME
+# -----------------------
+m4_defun([_LT_PREPARE_CC_BASENAME], [
+# Calculate cc_basename. Skip known compiler wrappers and cross-prefix.
+func_cc_basename ()
+{
+ for cc_temp in @S|@*""; do
+ case $cc_temp in
+ compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;;
+ distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;;
+ \-*) ;;
+ *) break;;
+ esac
+ done
+ func_cc_basename_result=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"`
+}
+])# _LT_PREPARE_CC_BASENAME
+
+
+# _LT_CC_BASENAME(CC)
+# -------------------
+# It would be clearer to call AC_REQUIREs from _LT_PREPARE_CC_BASENAME,
+# but that macro is also expanded into generated libtool script, which
+# arranges for $SED and $ECHO to be set by different means.
+m4_defun([_LT_CC_BASENAME],
+[m4_require([_LT_PREPARE_CC_BASENAME])dnl
+AC_REQUIRE([_LT_DECL_SED])dnl
+AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])dnl
+func_cc_basename $1
+cc_basename=$func_cc_basename_result
+])
+
+
+# _LT_FILEUTILS_DEFAULTS
+# ----------------------
+# It is okay to use these file commands and assume they have been set
+# sensibly after 'm4_require([_LT_FILEUTILS_DEFAULTS])'.
+m4_defun([_LT_FILEUTILS_DEFAULTS],
+[: ${CP="cp -f"}
+: ${MV="mv -f"}
+: ${RM="rm -f"}
+])# _LT_FILEUTILS_DEFAULTS
+
+
+# _LT_SETUP
+# ---------
+m4_defun([_LT_SETUP],
+[AC_REQUIRE([AC_CANONICAL_HOST])dnl
+AC_REQUIRE([AC_CANONICAL_BUILD])dnl
+AC_REQUIRE([_LT_PREPARE_SED_QUOTE_VARS])dnl
+AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])dnl
+
+_LT_DECL([], [PATH_SEPARATOR], [1], [The PATH separator for the build system])dnl
+dnl
+_LT_DECL([], [host_alias], [0], [The host system])dnl
+_LT_DECL([], [host], [0])dnl
+_LT_DECL([], [host_os], [0])dnl
+dnl
+_LT_DECL([], [build_alias], [0], [The build system])dnl
+_LT_DECL([], [build], [0])dnl
+_LT_DECL([], [build_os], [0])dnl
+dnl
+AC_REQUIRE([AC_PROG_CC])dnl
+AC_REQUIRE([LT_PATH_LD])dnl
+AC_REQUIRE([LT_PATH_NM])dnl
+dnl
+AC_REQUIRE([AC_PROG_LN_S])dnl
+test -z "$LN_S" && LN_S="ln -s"
+_LT_DECL([], [LN_S], [1], [Whether we need soft or hard links])dnl
+dnl
+AC_REQUIRE([LT_CMD_MAX_LEN])dnl
+_LT_DECL([objext], [ac_objext], [0], [Object file suffix (normally "o")])dnl
+_LT_DECL([], [exeext], [0], [Executable file suffix (normally "")])dnl
+dnl
+m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+m4_require([_LT_CHECK_SHELL_FEATURES])dnl
+m4_require([_LT_PATH_CONVERSION_FUNCTIONS])dnl
+m4_require([_LT_CMD_RELOAD])dnl
+m4_require([_LT_CHECK_MAGIC_METHOD])dnl
+m4_require([_LT_CHECK_SHAREDLIB_FROM_LINKLIB])dnl
+m4_require([_LT_CMD_OLD_ARCHIVE])dnl
+m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl
+m4_require([_LT_WITH_SYSROOT])dnl
+m4_require([_LT_CMD_TRUNCATE])dnl
+
+_LT_CONFIG_LIBTOOL_INIT([
+# See if we are running on zsh, and set the options that allow our
+# commands through without removal of \ escapes INIT.
+if test -n "\${ZSH_VERSION+set}"; then
+ setopt NO_GLOB_SUBST
+fi
+])
+if test -n "${ZSH_VERSION+set}"; then
+ setopt NO_GLOB_SUBST
+fi
+
+_LT_CHECK_OBJDIR
+
+m4_require([_LT_TAG_COMPILER])dnl
+
+case $host_os in
+aix3*)
+ # AIX sometimes has problems with the GCC collect2 program. For some
+ # reason, if we set the COLLECT_NAMES environment variable, the problems
+ # vanish in a puff of smoke.
+ if test set != "${COLLECT_NAMES+set}"; then
+ COLLECT_NAMES=
+ export COLLECT_NAMES
+ fi
+ ;;
+esac
+
+# Global variables:
+ofile=libtool
+can_build_shared=yes
+
+# All known linkers require a '.a' archive for static linking (except MSVC,
+# which needs '.lib').
+libext=a
+
+with_gnu_ld=$lt_cv_prog_gnu_ld
+
+old_CC=$CC
+old_CFLAGS=$CFLAGS
+
+# Set sane defaults for various variables
+test -z "$CC" && CC=cc
+test -z "$LTCC" && LTCC=$CC
+test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS
+test -z "$LD" && LD=ld
+test -z "$ac_objext" && ac_objext=o
+
+_LT_CC_BASENAME([$compiler])
+
+# Only perform the check for file, if the check method requires it
+test -z "$MAGIC_CMD" && MAGIC_CMD=file
+case $deplibs_check_method in
+file_magic*)
+ if test "$file_magic_cmd" = '$MAGIC_CMD'; then
+ _LT_PATH_MAGIC
+ fi
+ ;;
+esac
+
+# Use C for the default configuration in the libtool script
+LT_SUPPORTED_TAG([CC])
+_LT_LANG_C_CONFIG
+_LT_LANG_DEFAULT_CONFIG
+_LT_CONFIG_COMMANDS
+])# _LT_SETUP
+
+
+# _LT_PREPARE_SED_QUOTE_VARS
+# --------------------------
+# Define a few sed substitution that help us do robust quoting.
+m4_defun([_LT_PREPARE_SED_QUOTE_VARS],
+[# Backslashify metacharacters that are still active within
+# double-quoted strings.
+sed_quote_subst='s/\([["`$\\]]\)/\\\1/g'
+
+# Same as above, but do not quote variable references.
+double_quote_subst='s/\([["`\\]]\)/\\\1/g'
+
+# Sed substitution to delay expansion of an escaped shell variable in a
+# double_quote_subst'ed string.
+delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'
+
+# Sed substitution to delay expansion of an escaped single quote.
+delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g'
+
+# Sed substitution to avoid accidental globbing in evaled expressions
+no_glob_subst='s/\*/\\\*/g'
+])
+
+# _LT_PROG_LTMAIN
+# ---------------
+# Note that this code is called both from 'configure', and 'config.status'
+# now that we use AC_CONFIG_COMMANDS to generate libtool. Notably,
+# 'config.status' has no value for ac_aux_dir unless we are using Automake,
+# so we pass a copy along to make sure it has a sensible value anyway.
+m4_defun([_LT_PROG_LTMAIN],
+[m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([ltmain.sh])])dnl
+_LT_CONFIG_LIBTOOL_INIT([ac_aux_dir='$ac_aux_dir'])
+ltmain=$ac_aux_dir/ltmain.sh
+])# _LT_PROG_LTMAIN
+
+
+## ------------------------------------- ##
+## Accumulate code for creating libtool. ##
+## ------------------------------------- ##
+
+# So that we can recreate a full libtool script including additional
+# tags, we accumulate the chunks of code to send to AC_CONFIG_COMMANDS
+# in macros and then make a single call at the end using the 'libtool'
+# label.
+
+
+# _LT_CONFIG_LIBTOOL_INIT([INIT-COMMANDS])
+# ----------------------------------------
+# Register INIT-COMMANDS to be passed to AC_CONFIG_COMMANDS later.
+m4_define([_LT_CONFIG_LIBTOOL_INIT],
+[m4_ifval([$1],
+ [m4_append([_LT_OUTPUT_LIBTOOL_INIT],
+ [$1
+])])])
+
+# Initialize.
+m4_define([_LT_OUTPUT_LIBTOOL_INIT])
+
+
+# _LT_CONFIG_LIBTOOL([COMMANDS])
+# ------------------------------
+# Register COMMANDS to be passed to AC_CONFIG_COMMANDS later.
+m4_define([_LT_CONFIG_LIBTOOL],
+[m4_ifval([$1],
+ [m4_append([_LT_OUTPUT_LIBTOOL_COMMANDS],
+ [$1
+])])])
+
+# Initialize.
+m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS])
+
+
+# _LT_CONFIG_SAVE_COMMANDS([COMMANDS], [INIT_COMMANDS])
+# -----------------------------------------------------
+m4_defun([_LT_CONFIG_SAVE_COMMANDS],
+[_LT_CONFIG_LIBTOOL([$1])
+_LT_CONFIG_LIBTOOL_INIT([$2])
+])
+
+
+# _LT_FORMAT_COMMENT([COMMENT])
+# -----------------------------
+# Add leading comment marks to the start of each line, and a trailing
+# full-stop to the whole comment if one is not present already.
+m4_define([_LT_FORMAT_COMMENT],
+[m4_ifval([$1], [
+m4_bpatsubst([m4_bpatsubst([$1], [^ *], [# ])],
+ [['`$\]], [\\\&])]m4_bmatch([$1], [[!?.]$], [], [.])
+)])
+
+
+
+## ------------------------ ##
+## FIXME: Eliminate VARNAME ##
+## ------------------------ ##
+
+
+# _LT_DECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION], [IS-TAGGED?])
+# -------------------------------------------------------------------
+# CONFIGNAME is the name given to the value in the libtool script.
+# VARNAME is the (base) name used in the configure script.
+# VALUE may be 0, 1 or 2 for a computed quote escaped value based on
+# VARNAME. Any other value will be used directly.
+m4_define([_LT_DECL],
+[lt_if_append_uniq([lt_decl_varnames], [$2], [, ],
+ [lt_dict_add_subkey([lt_decl_dict], [$2], [libtool_name],
+ [m4_ifval([$1], [$1], [$2])])
+ lt_dict_add_subkey([lt_decl_dict], [$2], [value], [$3])
+ m4_ifval([$4],
+ [lt_dict_add_subkey([lt_decl_dict], [$2], [description], [$4])])
+ lt_dict_add_subkey([lt_decl_dict], [$2],
+ [tagged?], [m4_ifval([$5], [yes], [no])])])
+])
+
+
+# _LT_TAGDECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION])
+# --------------------------------------------------------
+m4_define([_LT_TAGDECL], [_LT_DECL([$1], [$2], [$3], [$4], [yes])])
+
+
+# lt_decl_tag_varnames([SEPARATOR], [VARNAME1...])
+# ------------------------------------------------
+m4_define([lt_decl_tag_varnames],
+[_lt_decl_filter([tagged?], [yes], $@)])
+
+
+# _lt_decl_filter(SUBKEY, VALUE, [SEPARATOR], [VARNAME1..])
+# ---------------------------------------------------------
+m4_define([_lt_decl_filter],
+[m4_case([$#],
+ [0], [m4_fatal([$0: too few arguments: $#])],
+ [1], [m4_fatal([$0: too few arguments: $#: $1])],
+ [2], [lt_dict_filter([lt_decl_dict], [$1], [$2], [], lt_decl_varnames)],
+ [3], [lt_dict_filter([lt_decl_dict], [$1], [$2], [$3], lt_decl_varnames)],
+ [lt_dict_filter([lt_decl_dict], $@)])[]dnl
+])
+
+
+# lt_decl_quote_varnames([SEPARATOR], [VARNAME1...])
+# --------------------------------------------------
+m4_define([lt_decl_quote_varnames],
+[_lt_decl_filter([value], [1], $@)])
+
+
+# lt_decl_dquote_varnames([SEPARATOR], [VARNAME1...])
+# ---------------------------------------------------
+m4_define([lt_decl_dquote_varnames],
+[_lt_decl_filter([value], [2], $@)])
+
+
+# lt_decl_varnames_tagged([SEPARATOR], [VARNAME1...])
+# ---------------------------------------------------
+m4_define([lt_decl_varnames_tagged],
+[m4_assert([$# <= 2])dnl
+_$0(m4_quote(m4_default([$1], [[, ]])),
+ m4_ifval([$2], [[$2]], [m4_dquote(lt_decl_tag_varnames)]),
+ m4_split(m4_normalize(m4_quote(_LT_TAGS)), [ ]))])
+m4_define([_lt_decl_varnames_tagged],
+[m4_ifval([$3], [lt_combine([$1], [$2], [_], $3)])])
+
+
+# lt_decl_all_varnames([SEPARATOR], [VARNAME1...])
+# ------------------------------------------------
+m4_define([lt_decl_all_varnames],
+[_$0(m4_quote(m4_default([$1], [[, ]])),
+ m4_if([$2], [],
+ m4_quote(lt_decl_varnames),
+ m4_quote(m4_shift($@))))[]dnl
+])
+m4_define([_lt_decl_all_varnames],
+[lt_join($@, lt_decl_varnames_tagged([$1],
+ lt_decl_tag_varnames([[, ]], m4_shift($@))))dnl
+])
+
+
+# _LT_CONFIG_STATUS_DECLARE([VARNAME])
+# ------------------------------------
+# Quote a variable value, and forward it to 'config.status' so that its
+# declaration there will have the same value as in 'configure'. VARNAME
+# must have a single quote delimited value for this to work.
+m4_define([_LT_CONFIG_STATUS_DECLARE],
+[$1='`$ECHO "$][$1" | $SED "$delay_single_quote_subst"`'])
+
+
+# _LT_CONFIG_STATUS_DECLARATIONS
+# ------------------------------
+# We delimit libtool config variables with single quotes, so when
+# we write them to config.status, we have to be sure to quote all
+# embedded single quotes properly. In configure, this macro expands
+# each variable declared with _LT_DECL (and _LT_TAGDECL) into:
+#
+# <var>='`$ECHO "$<var>" | $SED "$delay_single_quote_subst"`'
+m4_defun([_LT_CONFIG_STATUS_DECLARATIONS],
+[m4_foreach([_lt_var], m4_quote(lt_decl_all_varnames),
+ [m4_n([_LT_CONFIG_STATUS_DECLARE(_lt_var)])])])
+
+
+# _LT_LIBTOOL_TAGS
+# ----------------
+# Output comment and list of tags supported by the script
+m4_defun([_LT_LIBTOOL_TAGS],
+[_LT_FORMAT_COMMENT([The names of the tagged configurations supported by this script])dnl
+available_tags='_LT_TAGS'dnl
+])
+
+
+# _LT_LIBTOOL_DECLARE(VARNAME, [TAG])
+# -----------------------------------
+# Extract the dictionary values for VARNAME (optionally with TAG) and
+# expand to a commented shell variable setting:
+#
+# # Some comment about what VAR is for.
+# visible_name=$lt_internal_name
+m4_define([_LT_LIBTOOL_DECLARE],
+[_LT_FORMAT_COMMENT(m4_quote(lt_dict_fetch([lt_decl_dict], [$1],
+ [description])))[]dnl
+m4_pushdef([_libtool_name],
+ m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [libtool_name])))[]dnl
+m4_case(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [value])),
+ [0], [_libtool_name=[$]$1],
+ [1], [_libtool_name=$lt_[]$1],
+ [2], [_libtool_name=$lt_[]$1],
+ [_libtool_name=lt_dict_fetch([lt_decl_dict], [$1], [value])])[]dnl
+m4_ifval([$2], [_$2])[]m4_popdef([_libtool_name])[]dnl
+])
+
+
+# _LT_LIBTOOL_CONFIG_VARS
+# -----------------------
+# Produce commented declarations of non-tagged libtool config variables
+# suitable for insertion in the LIBTOOL CONFIG section of the 'libtool'
+# script. Tagged libtool config variables (even for the LIBTOOL CONFIG
+# section) are produced by _LT_LIBTOOL_TAG_VARS.
+m4_defun([_LT_LIBTOOL_CONFIG_VARS],
+[m4_foreach([_lt_var],
+ m4_quote(_lt_decl_filter([tagged?], [no], [], lt_decl_varnames)),
+ [m4_n([_LT_LIBTOOL_DECLARE(_lt_var)])])])
+
+
+# _LT_LIBTOOL_TAG_VARS(TAG)
+# -------------------------
+m4_define([_LT_LIBTOOL_TAG_VARS],
+[m4_foreach([_lt_var], m4_quote(lt_decl_tag_varnames),
+ [m4_n([_LT_LIBTOOL_DECLARE(_lt_var, [$1])])])])
+
+
+# _LT_TAGVAR(VARNAME, [TAGNAME])
+# ------------------------------
+m4_define([_LT_TAGVAR], [m4_ifval([$2], [$1_$2], [$1])])
+
+
+# _LT_CONFIG_COMMANDS
+# -------------------
+# Send accumulated output to $CONFIG_STATUS. Thanks to the lists of
+# variables for single and double quote escaping we saved from calls
+# to _LT_DECL, we can put quote escaped variables declarations
+# into 'config.status', and then the shell code to quote escape them in
+# for loops in 'config.status'. Finally, any additional code accumulated
+# from calls to _LT_CONFIG_LIBTOOL_INIT is expanded.
+m4_defun([_LT_CONFIG_COMMANDS],
+[AC_PROVIDE_IFELSE([LT_OUTPUT],
+ dnl If the libtool generation code has been placed in $CONFIG_LT,
+ dnl instead of duplicating it all over again into config.status,
+ dnl then we will have config.status run $CONFIG_LT later, so it
+ dnl needs to know what name is stored there:
+ [AC_CONFIG_COMMANDS([libtool],
+ [$SHELL $CONFIG_LT || AS_EXIT(1)], [CONFIG_LT='$CONFIG_LT'])],
+ dnl If the libtool generation code is destined for config.status,
+ dnl expand the accumulated commands and init code now:
+ [AC_CONFIG_COMMANDS([libtool],
+ [_LT_OUTPUT_LIBTOOL_COMMANDS], [_LT_OUTPUT_LIBTOOL_COMMANDS_INIT])])
+])#_LT_CONFIG_COMMANDS
+
+
+# Initialize.
+m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS_INIT],
+[
+
+# The HP-UX ksh and POSIX shell print the target directory to stdout
+# if CDPATH is set.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+sed_quote_subst='$sed_quote_subst'
+double_quote_subst='$double_quote_subst'
+delay_variable_subst='$delay_variable_subst'
+_LT_CONFIG_STATUS_DECLARATIONS
+LTCC='$LTCC'
+LTCFLAGS='$LTCFLAGS'
+compiler='$compiler_DEFAULT'
+
+# A function that is used when there is no print builtin or printf.
+func_fallback_echo ()
+{
+ eval 'cat <<_LTECHO_EOF
+\$[]1
+_LTECHO_EOF'
+}
+
+# Quote evaled strings.
+for var in lt_decl_all_varnames([[ \
+]], lt_decl_quote_varnames); do
+ case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
+ *[[\\\\\\\`\\"\\\$]]*)
+ eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes
+ ;;
+ *)
+ eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
+ ;;
+ esac
+done
+
+# Double-quote double-evaled strings.
+for var in lt_decl_all_varnames([[ \
+]], lt_decl_dquote_varnames); do
+ case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
+ *[[\\\\\\\`\\"\\\$]]*)
+ eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes
+ ;;
+ *)
+ eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
+ ;;
+ esac
+done
+
+_LT_OUTPUT_LIBTOOL_INIT
+])
+
+# _LT_GENERATED_FILE_INIT(FILE, [COMMENT])
+# ------------------------------------
+# Generate a child script FILE with all initialization necessary to
+# reuse the environment learned by the parent script, and make the
+# file executable. If COMMENT is supplied, it is inserted after the
+# '#!' sequence but before initialization text begins. After this
+# macro, additional text can be appended to FILE to form the body of
+# the child script. The macro ends with non-zero status if the
+# file could not be fully written (such as if the disk is full).
+m4_ifdef([AS_INIT_GENERATED],
+[m4_defun([_LT_GENERATED_FILE_INIT],[AS_INIT_GENERATED($@)])],
+[m4_defun([_LT_GENERATED_FILE_INIT],
+[m4_require([AS_PREPARE])]dnl
+[m4_pushdef([AS_MESSAGE_LOG_FD])]dnl
+[lt_write_fail=0
+cat >$1 <<_ASEOF || lt_write_fail=1
+#! $SHELL
+# Generated by $as_me.
+$2
+SHELL=\${CONFIG_SHELL-$SHELL}
+export SHELL
+_ASEOF
+cat >>$1 <<\_ASEOF || lt_write_fail=1
+AS_SHELL_SANITIZE
+_AS_PREPARE
+exec AS_MESSAGE_FD>&1
+_ASEOF
+test 0 = "$lt_write_fail" && chmod +x $1[]dnl
+m4_popdef([AS_MESSAGE_LOG_FD])])])# _LT_GENERATED_FILE_INIT
+
+# LT_OUTPUT
+# ---------
+# This macro allows early generation of the libtool script (before
+# AC_OUTPUT is called), incase it is used in configure for compilation
+# tests.
+AC_DEFUN([LT_OUTPUT],
+[: ${CONFIG_LT=./config.lt}
+AC_MSG_NOTICE([creating $CONFIG_LT])
+_LT_GENERATED_FILE_INIT(["$CONFIG_LT"],
+[# Run this file to recreate a libtool stub with the current configuration.])
+
+cat >>"$CONFIG_LT" <<\_LTEOF
+lt_cl_silent=false
+exec AS_MESSAGE_LOG_FD>>config.log
+{
+ echo
+ AS_BOX([Running $as_me.])
+} >&AS_MESSAGE_LOG_FD
+
+lt_cl_help="\
+'$as_me' creates a local libtool stub from the current configuration,
+for use in further configure time tests before the real libtool is
+generated.
+
+Usage: $[0] [[OPTIONS]]
+
+ -h, --help print this help, then exit
+ -V, --version print version number, then exit
+ -q, --quiet do not print progress messages
+ -d, --debug don't remove temporary files
+
+Report bugs to <bug-libtool@gnu.org>."
+
+lt_cl_version="\
+m4_ifset([AC_PACKAGE_NAME], [AC_PACKAGE_NAME ])config.lt[]dnl
+m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION])
+configured by $[0], generated by m4_PACKAGE_STRING.
+
+Copyright (C) 2011 Free Software Foundation, Inc.
+This config.lt script is free software; the Free Software Foundation
+gives unlimited permision to copy, distribute and modify it."
+
+while test 0 != $[#]
+do
+ case $[1] in
+ --version | --v* | -V )
+ echo "$lt_cl_version"; exit 0 ;;
+ --help | --h* | -h )
+ echo "$lt_cl_help"; exit 0 ;;
+ --debug | --d* | -d )
+ debug=: ;;
+ --quiet | --q* | --silent | --s* | -q )
+ lt_cl_silent=: ;;
+
+ -*) AC_MSG_ERROR([unrecognized option: $[1]
+Try '$[0] --help' for more information.]) ;;
+
+ *) AC_MSG_ERROR([unrecognized argument: $[1]
+Try '$[0] --help' for more information.]) ;;
+ esac
+ shift
+done
+
+if $lt_cl_silent; then
+ exec AS_MESSAGE_FD>/dev/null
+fi
+_LTEOF
+
+cat >>"$CONFIG_LT" <<_LTEOF
+_LT_OUTPUT_LIBTOOL_COMMANDS_INIT
+_LTEOF
+
+cat >>"$CONFIG_LT" <<\_LTEOF
+AC_MSG_NOTICE([creating $ofile])
+_LT_OUTPUT_LIBTOOL_COMMANDS
+AS_EXIT(0)
+_LTEOF
+chmod +x "$CONFIG_LT"
+
+# configure is writing to config.log, but config.lt does its own redirection,
+# appending to config.log, which fails on DOS, as config.log is still kept
+# open by configure. Here we exec the FD to /dev/null, effectively closing
+# config.log, so it can be properly (re)opened and appended to by config.lt.
+lt_cl_success=:
+test yes = "$silent" &&
+ lt_config_lt_args="$lt_config_lt_args --quiet"
+exec AS_MESSAGE_LOG_FD>/dev/null
+$SHELL "$CONFIG_LT" $lt_config_lt_args || lt_cl_success=false
+exec AS_MESSAGE_LOG_FD>>config.log
+$lt_cl_success || AS_EXIT(1)
+])# LT_OUTPUT
+
+
+# _LT_CONFIG(TAG)
+# ---------------
+# If TAG is the built-in tag, create an initial libtool script with a
+# default configuration from the untagged config vars. Otherwise add code
+# to config.status for appending the configuration named by TAG from the
+# matching tagged config vars.
+m4_defun([_LT_CONFIG],
+[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+_LT_CONFIG_SAVE_COMMANDS([
+ m4_define([_LT_TAG], m4_if([$1], [], [C], [$1]))dnl
+ m4_if(_LT_TAG, [C], [
+ # See if we are running on zsh, and set the options that allow our
+ # commands through without removal of \ escapes.
+ if test -n "${ZSH_VERSION+set}"; then
+ setopt NO_GLOB_SUBST
+ fi
+
+ cfgfile=${ofile}T
+ trap "$RM \"$cfgfile\"; exit 1" 1 2 15
+ $RM "$cfgfile"
+
+ cat <<_LT_EOF >> "$cfgfile"
+#! $SHELL
+# Generated automatically by $as_me ($PACKAGE) $VERSION
+# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
+# NOTE: Changes made to this file will be lost: look at ltmain.sh.
+
+# Provide generalized library-building support services.
+# Written by Gordon Matzigkeit, 1996
+
+_LT_COPYING
+_LT_LIBTOOL_TAGS
+
+# Configured defaults for sys_lib_dlsearch_path munging.
+: \${LT_SYS_LIBRARY_PATH="$configure_time_lt_sys_library_path"}
+
+# ### BEGIN LIBTOOL CONFIG
+_LT_LIBTOOL_CONFIG_VARS
+_LT_LIBTOOL_TAG_VARS
+# ### END LIBTOOL CONFIG
+
+_LT_EOF
+
+ cat <<'_LT_EOF' >> "$cfgfile"
+
+# ### BEGIN FUNCTIONS SHARED WITH CONFIGURE
+
+_LT_PREPARE_MUNGE_PATH_LIST
+_LT_PREPARE_CC_BASENAME
+
+# ### END FUNCTIONS SHARED WITH CONFIGURE
+
+_LT_EOF
+
+ case $host_os in
+ aix3*)
+ cat <<\_LT_EOF >> "$cfgfile"
+# AIX sometimes has problems with the GCC collect2 program. For some
+# reason, if we set the COLLECT_NAMES environment variable, the problems
+# vanish in a puff of smoke.
+if test set != "${COLLECT_NAMES+set}"; then
+ COLLECT_NAMES=
+ export COLLECT_NAMES
+fi
+_LT_EOF
+ ;;
+ esac
+
+ _LT_PROG_LTMAIN
+
+ # We use sed instead of cat because bash on DJGPP gets confused if
+ # if finds mixed CR/LF and LF-only lines. Since sed operates in
+ # text mode, it properly converts lines to CR/LF. This bash problem
+ # is reportedly fixed, but why not run on old versions too?
+ sed '$q' "$ltmain" >> "$cfgfile" \
+ || (rm -f "$cfgfile"; exit 1)
+
+ mv -f "$cfgfile" "$ofile" ||
+ (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile")
+ chmod +x "$ofile"
+],
+[cat <<_LT_EOF >> "$ofile"
+
+dnl Unfortunately we have to use $1 here, since _LT_TAG is not expanded
+dnl in a comment (ie after a #).
+# ### BEGIN LIBTOOL TAG CONFIG: $1
+_LT_LIBTOOL_TAG_VARS(_LT_TAG)
+# ### END LIBTOOL TAG CONFIG: $1
+_LT_EOF
+])dnl /m4_if
+],
+[m4_if([$1], [], [
+ PACKAGE='$PACKAGE'
+ VERSION='$VERSION'
+ RM='$RM'
+ ofile='$ofile'], [])
+])dnl /_LT_CONFIG_SAVE_COMMANDS
+])# _LT_CONFIG
+
+
+# LT_SUPPORTED_TAG(TAG)
+# ---------------------
+# Trace this macro to discover what tags are supported by the libtool
+# --tag option, using:
+# autoconf --trace 'LT_SUPPORTED_TAG:$1'
+AC_DEFUN([LT_SUPPORTED_TAG], [])
+
+
+# C support is built-in for now
+m4_define([_LT_LANG_C_enabled], [])
+m4_define([_LT_TAGS], [])
+
+
+# LT_LANG(LANG)
+# -------------
+# Enable libtool support for the given language if not already enabled.
+AC_DEFUN([LT_LANG],
+[AC_BEFORE([$0], [LT_OUTPUT])dnl
+m4_case([$1],
+ [C], [_LT_LANG(C)],
+ [C++], [_LT_LANG(CXX)],
+ [Go], [_LT_LANG(GO)],
+ [Java], [_LT_LANG(GCJ)],
+ [Fortran 77], [_LT_LANG(F77)],
+ [Fortran], [_LT_LANG(FC)],
+ [Windows Resource], [_LT_LANG(RC)],
+ [m4_ifdef([_LT_LANG_]$1[_CONFIG],
+ [_LT_LANG($1)],
+ [m4_fatal([$0: unsupported language: "$1"])])])dnl
+])# LT_LANG
+
+
+# _LT_LANG(LANGNAME)
+# ------------------
+m4_defun([_LT_LANG],
+[m4_ifdef([_LT_LANG_]$1[_enabled], [],
+ [LT_SUPPORTED_TAG([$1])dnl
+ m4_append([_LT_TAGS], [$1 ])dnl
+ m4_define([_LT_LANG_]$1[_enabled], [])dnl
+ _LT_LANG_$1_CONFIG($1)])dnl
+])# _LT_LANG
+
+
+m4_ifndef([AC_PROG_GO], [
+############################################################
+# NOTE: This macro has been submitted for inclusion into #
+# GNU Autoconf as AC_PROG_GO. When it is available in #
+# a released version of Autoconf we should remove this #
+# macro and use it instead. #
+############################################################
+m4_defun([AC_PROG_GO],
+[AC_LANG_PUSH(Go)dnl
+AC_ARG_VAR([GOC], [Go compiler command])dnl
+AC_ARG_VAR([GOFLAGS], [Go compiler flags])dnl
+_AC_ARG_VAR_LDFLAGS()dnl
+AC_CHECK_TOOL(GOC, gccgo)
+if test -z "$GOC"; then
+ if test -n "$ac_tool_prefix"; then
+ AC_CHECK_PROG(GOC, [${ac_tool_prefix}gccgo], [${ac_tool_prefix}gccgo])
+ fi
+fi
+if test -z "$GOC"; then
+ AC_CHECK_PROG(GOC, gccgo, gccgo, false)
+fi
+])#m4_defun
+])#m4_ifndef
+
+
+# _LT_LANG_DEFAULT_CONFIG
+# -----------------------
+m4_defun([_LT_LANG_DEFAULT_CONFIG],
+[AC_PROVIDE_IFELSE([AC_PROG_CXX],
+ [LT_LANG(CXX)],
+ [m4_define([AC_PROG_CXX], defn([AC_PROG_CXX])[LT_LANG(CXX)])])
+
+AC_PROVIDE_IFELSE([AC_PROG_F77],
+ [LT_LANG(F77)],
+ [m4_define([AC_PROG_F77], defn([AC_PROG_F77])[LT_LANG(F77)])])
+
+AC_PROVIDE_IFELSE([AC_PROG_FC],
+ [LT_LANG(FC)],
+ [m4_define([AC_PROG_FC], defn([AC_PROG_FC])[LT_LANG(FC)])])
+
+dnl The call to [A][M_PROG_GCJ] is quoted like that to stop aclocal
+dnl pulling things in needlessly.
+AC_PROVIDE_IFELSE([AC_PROG_GCJ],
+ [LT_LANG(GCJ)],
+ [AC_PROVIDE_IFELSE([A][M_PROG_GCJ],
+ [LT_LANG(GCJ)],
+ [AC_PROVIDE_IFELSE([LT_PROG_GCJ],
+ [LT_LANG(GCJ)],
+ [m4_ifdef([AC_PROG_GCJ],
+ [m4_define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[LT_LANG(GCJ)])])
+ m4_ifdef([A][M_PROG_GCJ],
+ [m4_define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[LT_LANG(GCJ)])])
+ m4_ifdef([LT_PROG_GCJ],
+ [m4_define([LT_PROG_GCJ], defn([LT_PROG_GCJ])[LT_LANG(GCJ)])])])])])
+
+AC_PROVIDE_IFELSE([AC_PROG_GO],
+ [LT_LANG(GO)],
+ [m4_define([AC_PROG_GO], defn([AC_PROG_GO])[LT_LANG(GO)])])
+
+AC_PROVIDE_IFELSE([LT_PROG_RC],
+ [LT_LANG(RC)],
+ [m4_define([LT_PROG_RC], defn([LT_PROG_RC])[LT_LANG(RC)])])
+])# _LT_LANG_DEFAULT_CONFIG
+
+# Obsolete macros:
+AU_DEFUN([AC_LIBTOOL_CXX], [LT_LANG(C++)])
+AU_DEFUN([AC_LIBTOOL_F77], [LT_LANG(Fortran 77)])
+AU_DEFUN([AC_LIBTOOL_FC], [LT_LANG(Fortran)])
+AU_DEFUN([AC_LIBTOOL_GCJ], [LT_LANG(Java)])
+AU_DEFUN([AC_LIBTOOL_RC], [LT_LANG(Windows Resource)])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_LIBTOOL_CXX], [])
+dnl AC_DEFUN([AC_LIBTOOL_F77], [])
+dnl AC_DEFUN([AC_LIBTOOL_FC], [])
+dnl AC_DEFUN([AC_LIBTOOL_GCJ], [])
+dnl AC_DEFUN([AC_LIBTOOL_RC], [])
+
+
+# _LT_TAG_COMPILER
+# ----------------
+m4_defun([_LT_TAG_COMPILER],
+[AC_REQUIRE([AC_PROG_CC])dnl
+
+_LT_DECL([LTCC], [CC], [1], [A C compiler])dnl
+_LT_DECL([LTCFLAGS], [CFLAGS], [1], [LTCC compiler flags])dnl
+_LT_TAGDECL([CC], [compiler], [1], [A language specific compiler])dnl
+_LT_TAGDECL([with_gcc], [GCC], [0], [Is the compiler the GNU compiler?])dnl
+
+# If no C compiler was specified, use CC.
+LTCC=${LTCC-"$CC"}
+
+# If no C compiler flags were specified, use CFLAGS.
+LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
+
+# Allow CC to be a program name with arguments.
+compiler=$CC
+])# _LT_TAG_COMPILER
+
+
+# _LT_COMPILER_BOILERPLATE
+# ------------------------
+# Check for compiler boilerplate output or warnings with
+# the simple compiler test code.
+m4_defun([_LT_COMPILER_BOILERPLATE],
+[m4_require([_LT_DECL_SED])dnl
+ac_outfile=conftest.$ac_objext
+echo "$lt_simple_compile_test_code" >conftest.$ac_ext
+eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
+_lt_compiler_boilerplate=`cat conftest.err`
+$RM conftest*
+])# _LT_COMPILER_BOILERPLATE
+
+
+# _LT_LINKER_BOILERPLATE
+# ----------------------
+# Check for linker boilerplate output or warnings with
+# the simple link test code.
+m4_defun([_LT_LINKER_BOILERPLATE],
+[m4_require([_LT_DECL_SED])dnl
+ac_outfile=conftest.$ac_objext
+echo "$lt_simple_link_test_code" >conftest.$ac_ext
+eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
+_lt_linker_boilerplate=`cat conftest.err`
+$RM -r conftest*
+])# _LT_LINKER_BOILERPLATE
+
+# _LT_REQUIRED_DARWIN_CHECKS
+# -------------------------
+m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[
+ case $host_os in
+ rhapsody* | darwin*)
+ AC_CHECK_TOOL([DSYMUTIL], [dsymutil], [:])
+ AC_CHECK_TOOL([NMEDIT], [nmedit], [:])
+ AC_CHECK_TOOL([LIPO], [lipo], [:])
+ AC_CHECK_TOOL([OTOOL], [otool], [:])
+ AC_CHECK_TOOL([OTOOL64], [otool64], [:])
+ _LT_DECL([], [DSYMUTIL], [1],
+ [Tool to manipulate archived DWARF debug symbol files on Mac OS X])
+ _LT_DECL([], [NMEDIT], [1],
+ [Tool to change global to local symbols on Mac OS X])
+ _LT_DECL([], [LIPO], [1],
+ [Tool to manipulate fat objects and archives on Mac OS X])
+ _LT_DECL([], [OTOOL], [1],
+ [ldd/readelf like tool for Mach-O binaries on Mac OS X])
+ _LT_DECL([], [OTOOL64], [1],
+ [ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4])
+
+ AC_CACHE_CHECK([for -single_module linker flag],[lt_cv_apple_cc_single_mod],
+ [lt_cv_apple_cc_single_mod=no
+ if test -z "$LT_MULTI_MODULE"; then
+ # By default we will add the -single_module flag. You can override
+ # by either setting the environment variable LT_MULTI_MODULE
+ # non-empty at configure time, or by adding -multi_module to the
+ # link flags.
+ rm -rf libconftest.dylib*
+ echo "int foo(void){return 1;}" > conftest.c
+ echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
+-dynamiclib -Wl,-single_module conftest.c" >&AS_MESSAGE_LOG_FD
+ $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
+ -dynamiclib -Wl,-single_module conftest.c 2>conftest.err
+ _lt_result=$?
+ # If there is a non-empty error log, and "single_module"
+ # appears in it, assume the flag caused a linker warning
+ if test -s conftest.err && $GREP single_module conftest.err; then
+ cat conftest.err >&AS_MESSAGE_LOG_FD
+ # Otherwise, if the output was created with a 0 exit code from
+ # the compiler, it worked.
+ elif test -f libconftest.dylib && test 0 = "$_lt_result"; then
+ lt_cv_apple_cc_single_mod=yes
+ else
+ cat conftest.err >&AS_MESSAGE_LOG_FD
+ fi
+ rm -rf libconftest.dylib*
+ rm -f conftest.*
+ fi])
+
+ AC_CACHE_CHECK([for -exported_symbols_list linker flag],
+ [lt_cv_ld_exported_symbols_list],
+ [lt_cv_ld_exported_symbols_list=no
+ save_LDFLAGS=$LDFLAGS
+ echo "_main" > conftest.sym
+ LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym"
+ AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])],
+ [lt_cv_ld_exported_symbols_list=yes],
+ [lt_cv_ld_exported_symbols_list=no])
+ LDFLAGS=$save_LDFLAGS
+ ])
+
+ AC_CACHE_CHECK([for -force_load linker flag],[lt_cv_ld_force_load],
+ [lt_cv_ld_force_load=no
+ cat > conftest.c << _LT_EOF
+int forced_loaded() { return 2;}
+_LT_EOF
+ echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&AS_MESSAGE_LOG_FD
+ $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&AS_MESSAGE_LOG_FD
+ echo "$AR cru libconftest.a conftest.o" >&AS_MESSAGE_LOG_FD
+ $AR cru libconftest.a conftest.o 2>&AS_MESSAGE_LOG_FD
+ echo "$RANLIB libconftest.a" >&AS_MESSAGE_LOG_FD
+ $RANLIB libconftest.a 2>&AS_MESSAGE_LOG_FD
+ cat > conftest.c << _LT_EOF
+int main() { return 0;}
+_LT_EOF
+ echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&AS_MESSAGE_LOG_FD
+ $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err
+ _lt_result=$?
+ if test -s conftest.err && $GREP force_load conftest.err; then
+ cat conftest.err >&AS_MESSAGE_LOG_FD
+ elif test -f conftest && test 0 = "$_lt_result" && $GREP forced_load conftest >/dev/null 2>&1; then
+ lt_cv_ld_force_load=yes
+ else
+ cat conftest.err >&AS_MESSAGE_LOG_FD
+ fi
+ rm -f conftest.err libconftest.a conftest conftest.c
+ rm -rf conftest.dSYM
+ ])
+ case $host_os in
+ rhapsody* | darwin1.[[012]])
+ _lt_dar_allow_undefined='$wl-undefined ${wl}suppress' ;;
+ darwin1.*)
+ _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;;
+ darwin*) # darwin 5.x on
+ # if running on 10.5 or later, the deployment target defaults
+ # to the OS version, if on x86, and 10.4, the deployment
+ # target defaults to 10.4. Don't you love it?
+ case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in
+ 10.0,*86*-darwin8*|10.0,*-darwin[[91]]*)
+ _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;;
+ 10.[[012]][[,.]]*)
+ _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;;
+ 10.*)
+ _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;;
+ esac
+ ;;
+ esac
+ if test yes = "$lt_cv_apple_cc_single_mod"; then
+ _lt_dar_single_mod='$single_module'
+ fi
+ if test yes = "$lt_cv_ld_exported_symbols_list"; then
+ _lt_dar_export_syms=' $wl-exported_symbols_list,$output_objdir/$libname-symbols.expsym'
+ else
+ _lt_dar_export_syms='~$NMEDIT -s $output_objdir/$libname-symbols.expsym $lib'
+ fi
+ if test : != "$DSYMUTIL" && test no = "$lt_cv_ld_force_load"; then
+ _lt_dsymutil='~$DSYMUTIL $lib || :'
+ else
+ _lt_dsymutil=
+ fi
+ ;;
+ esac
+])
+
+
+# _LT_DARWIN_LINKER_FEATURES([TAG])
+# ---------------------------------
+# Checks for linker and compiler features on darwin
+m4_defun([_LT_DARWIN_LINKER_FEATURES],
+[
+ m4_require([_LT_REQUIRED_DARWIN_CHECKS])
+ _LT_TAGVAR(archive_cmds_need_lc, $1)=no
+ _LT_TAGVAR(hardcode_direct, $1)=no
+ _LT_TAGVAR(hardcode_automatic, $1)=yes
+ _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
+ if test yes = "$lt_cv_ld_force_load"; then
+ _LT_TAGVAR(whole_archive_flag_spec, $1)='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience $wl-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`'
+ m4_case([$1], [F77], [_LT_TAGVAR(compiler_needs_object, $1)=yes],
+ [FC], [_LT_TAGVAR(compiler_needs_object, $1)=yes])
+ else
+ _LT_TAGVAR(whole_archive_flag_spec, $1)=''
+ fi
+ _LT_TAGVAR(link_all_deplibs, $1)=yes
+ _LT_TAGVAR(allow_undefined_flag, $1)=$_lt_dar_allow_undefined
+ case $cc_basename in
+ ifort*|nagfor*) _lt_dar_can_shared=yes ;;
+ *) _lt_dar_can_shared=$GCC ;;
+ esac
+ if test yes = "$_lt_dar_can_shared"; then
+ output_verbose_link_cmd=func_echo_all
+ _LT_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dsymutil"
+ _LT_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dsymutil"
+ _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dar_export_syms$_lt_dsymutil"
+ _LT_TAGVAR(module_expsym_cmds, $1)="sed -e 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dar_export_syms$_lt_dsymutil"
+ m4_if([$1], [CXX],
+[ if test yes != "$lt_cv_apple_cc_single_mod"; then
+ _LT_TAGVAR(archive_cmds, $1)="\$CC -r -keep_private_externs -nostdlib -o \$lib-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$lib-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring$_lt_dsymutil"
+ _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \$lib-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$lib-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring$_lt_dar_export_syms$_lt_dsymutil"
+ fi
+],[])
+ else
+ _LT_TAGVAR(ld_shlibs, $1)=no
+ fi
+])
+
+# _LT_SYS_MODULE_PATH_AIX([TAGNAME])
+# ----------------------------------
+# Links a minimal program and checks the executable
+# for the system default hardcoded library path. In most cases,
+# this is /usr/lib:/lib, but when the MPI compilers are used
+# the location of the communication and MPI libs are included too.
+# If we don't find anything, use the default library path according
+# to the aix ld manual.
+# Store the results from the different compilers for each TAGNAME.
+# Allow to override them for all tags through lt_cv_aix_libpath.
+m4_defun([_LT_SYS_MODULE_PATH_AIX],
+[m4_require([_LT_DECL_SED])dnl
+if test set = "${lt_cv_aix_libpath+set}"; then
+ aix_libpath=$lt_cv_aix_libpath
+else
+ AC_CACHE_VAL([_LT_TAGVAR([lt_cv_aix_libpath_], [$1])],
+ [AC_LINK_IFELSE([AC_LANG_PROGRAM],[
+ lt_aix_libpath_sed='[
+ /Import File Strings/,/^$/ {
+ /^0/ {
+ s/^0 *\([^ ]*\) *$/\1/
+ p
+ }
+ }]'
+ _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+ # Check for a 64-bit object if we didn't find anything.
+ if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then
+ _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+ fi],[])
+ if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then
+ _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=/usr/lib:/lib
+ fi
+ ])
+ aix_libpath=$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])
+fi
+])# _LT_SYS_MODULE_PATH_AIX
+
+
+# _LT_SHELL_INIT(ARG)
+# -------------------
+m4_define([_LT_SHELL_INIT],
+[m4_divert_text([M4SH-INIT], [$1
+])])# _LT_SHELL_INIT
+
+
+
+# _LT_PROG_ECHO_BACKSLASH
+# -----------------------
+# Find how we can fake an echo command that does not interpret backslash.
+# In particular, with Autoconf 2.60 or later we add some code to the start
+# of the generated configure script that will find a shell with a builtin
+# printf (that we can use as an echo command).
+m4_defun([_LT_PROG_ECHO_BACKSLASH],
+[ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO
+ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO
+
+AC_MSG_CHECKING([how to print strings])
+# Test print first, because it will be a builtin if present.
+if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \
+ test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then
+ ECHO='print -r --'
+elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then
+ ECHO='printf %s\n'
+else
+ # Use this function as a fallback that always works.
+ func_fallback_echo ()
+ {
+ eval 'cat <<_LTECHO_EOF
+$[]1
+_LTECHO_EOF'
+ }
+ ECHO='func_fallback_echo'
+fi
+
+# func_echo_all arg...
+# Invoke $ECHO with all args, space-separated.
+func_echo_all ()
+{
+ $ECHO "$*"
+}
+
+case $ECHO in
+ printf*) AC_MSG_RESULT([printf]) ;;
+ print*) AC_MSG_RESULT([print -r]) ;;
+ *) AC_MSG_RESULT([cat]) ;;
+esac
+
+m4_ifdef([_AS_DETECT_SUGGESTED],
+[_AS_DETECT_SUGGESTED([
+ test -n "${ZSH_VERSION+set}${BASH_VERSION+set}" || (
+ ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+ ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO
+ ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO
+ PATH=/empty FPATH=/empty; export PATH FPATH
+ test "X`printf %s $ECHO`" = "X$ECHO" \
+ || test "X`print -r -- $ECHO`" = "X$ECHO" )])])
+
+_LT_DECL([], [SHELL], [1], [Shell to use when invoking shell scripts])
+_LT_DECL([], [ECHO], [1], [An echo program that protects backslashes])
+])# _LT_PROG_ECHO_BACKSLASH
+
+
+# _LT_WITH_SYSROOT
+# ----------------
+AC_DEFUN([_LT_WITH_SYSROOT],
+[AC_MSG_CHECKING([for sysroot])
+AC_ARG_WITH([sysroot],
+[AS_HELP_STRING([--with-sysroot@<:@=DIR@:>@],
+ [Search for dependent libraries within DIR (or the compiler's sysroot
+ if not specified).])],
+[], [with_sysroot=no])
+
+dnl lt_sysroot will always be passed unquoted. We quote it here
+dnl in case the user passed a directory name.
+lt_sysroot=
+case $with_sysroot in #(
+ yes)
+ if test yes = "$GCC"; then
+ lt_sysroot=`$CC --print-sysroot 2>/dev/null`
+ fi
+ ;; #(
+ /*)
+ lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"`
+ ;; #(
+ no|'')
+ ;; #(
+ *)
+ AC_MSG_RESULT([$with_sysroot])
+ AC_MSG_ERROR([The sysroot must be an absolute path.])
+ ;;
+esac
+
+ AC_MSG_RESULT([${lt_sysroot:-no}])
+_LT_DECL([], [lt_sysroot], [0], [The root where to search for ]dnl
+[dependent libraries, and where our libraries should be installed.])])
+
+# _LT_ENABLE_LOCK
+# ---------------
+m4_defun([_LT_ENABLE_LOCK],
+[AC_ARG_ENABLE([libtool-lock],
+ [AS_HELP_STRING([--disable-libtool-lock],
+ [avoid locking (might break parallel builds)])])
+test no = "$enable_libtool_lock" || enable_libtool_lock=yes
+
+# Some flags need to be propagated to the compiler or linker for good
+# libtool support.
+case $host in
+ia64-*-hpux*)
+ # Find out what ABI is being produced by ac_compile, and set mode
+ # options accordingly.
+ echo 'int i;' > conftest.$ac_ext
+ if AC_TRY_EVAL(ac_compile); then
+ case `/usr/bin/file conftest.$ac_objext` in
+ *ELF-32*)
+ HPUX_IA64_MODE=32
+ ;;
+ *ELF-64*)
+ HPUX_IA64_MODE=64
+ ;;
+ esac
+ fi
+ rm -rf conftest*
+ ;;
+*-*-irix6*)
+ # Find out what ABI is being produced by ac_compile, and set linker
+ # options accordingly.
+ echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext
+ if AC_TRY_EVAL(ac_compile); then
+ if test yes = "$lt_cv_prog_gnu_ld"; then
+ case `/usr/bin/file conftest.$ac_objext` in
+ *32-bit*)
+ LD="${LD-ld} -melf32bsmip"
+ ;;
+ *N32*)
+ LD="${LD-ld} -melf32bmipn32"
+ ;;
+ *64-bit*)
+ LD="${LD-ld} -melf64bmip"
+ ;;
+ esac
+ else
+ case `/usr/bin/file conftest.$ac_objext` in
+ *32-bit*)
+ LD="${LD-ld} -32"
+ ;;
+ *N32*)
+ LD="${LD-ld} -n32"
+ ;;
+ *64-bit*)
+ LD="${LD-ld} -64"
+ ;;
+ esac
+ fi
+ fi
+ rm -rf conftest*
+ ;;
+
+mips64*-*linux*)
+ # Find out what ABI is being produced by ac_compile, and set linker
+ # options accordingly.
+ echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext
+ if AC_TRY_EVAL(ac_compile); then
+ emul=elf
+ case `/usr/bin/file conftest.$ac_objext` in
+ *32-bit*)
+ emul="${emul}32"
+ ;;
+ *64-bit*)
+ emul="${emul}64"
+ ;;
+ esac
+ case `/usr/bin/file conftest.$ac_objext` in
+ *MSB*)
+ emul="${emul}btsmip"
+ ;;
+ *LSB*)
+ emul="${emul}ltsmip"
+ ;;
+ esac
+ case `/usr/bin/file conftest.$ac_objext` in
+ *N32*)
+ emul="${emul}n32"
+ ;;
+ esac
+ LD="${LD-ld} -m $emul"
+ fi
+ rm -rf conftest*
+ ;;
+
+x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \
+s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
+ # Find out what ABI is being produced by ac_compile, and set linker
+ # options accordingly. Note that the listed cases only cover the
+ # situations where additional linker options are needed (such as when
+ # doing 32-bit compilation for a host where ld defaults to 64-bit, or
+ # vice versa); the common cases where no linker options are needed do
+ # not appear in the list.
+ echo 'int i;' > conftest.$ac_ext
+ if AC_TRY_EVAL(ac_compile); then
+ case `/usr/bin/file conftest.o` in
+ *32-bit*)
+ case $host in
+ x86_64-*kfreebsd*-gnu)
+ LD="${LD-ld} -m elf_i386_fbsd"
+ ;;
+ x86_64-*linux*)
+ case `/usr/bin/file conftest.o` in
+ *x86-64*)
+ LD="${LD-ld} -m elf32_x86_64"
+ ;;
+ *)
+ LD="${LD-ld} -m elf_i386"
+ ;;
+ esac
+ ;;
+ powerpc64le-*linux*)
+ LD="${LD-ld} -m elf32lppclinux"
+ ;;
+ powerpc64-*linux*)
+ LD="${LD-ld} -m elf32ppclinux"
+ ;;
+ s390x-*linux*)
+ LD="${LD-ld} -m elf_s390"
+ ;;
+ sparc64-*linux*)
+ LD="${LD-ld} -m elf32_sparc"
+ ;;
+ esac
+ ;;
+ *64-bit*)
+ case $host in
+ x86_64-*kfreebsd*-gnu)
+ LD="${LD-ld} -m elf_x86_64_fbsd"
+ ;;
+ x86_64-*linux*)
+ LD="${LD-ld} -m elf_x86_64"
+ ;;
+ powerpcle-*linux*)
+ LD="${LD-ld} -m elf64lppc"
+ ;;
+ powerpc-*linux*)
+ LD="${LD-ld} -m elf64ppc"
+ ;;
+ s390*-*linux*|s390*-*tpf*)
+ LD="${LD-ld} -m elf64_s390"
+ ;;
+ sparc*-*linux*)
+ LD="${LD-ld} -m elf64_sparc"
+ ;;
+ esac
+ ;;
+ esac
+ fi
+ rm -rf conftest*
+ ;;
+
+*-*-sco3.2v5*)
+ # On SCO OpenServer 5, we need -belf to get full-featured binaries.
+ SAVE_CFLAGS=$CFLAGS
+ CFLAGS="$CFLAGS -belf"
+ AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf,
+ [AC_LANG_PUSH(C)
+ AC_LINK_IFELSE([AC_LANG_PROGRAM([[]],[[]])],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no])
+ AC_LANG_POP])
+ if test yes != "$lt_cv_cc_needs_belf"; then
+ # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
+ CFLAGS=$SAVE_CFLAGS
+ fi
+ ;;
+*-*solaris*)
+ # Find out what ABI is being produced by ac_compile, and set linker
+ # options accordingly.
+ echo 'int i;' > conftest.$ac_ext
+ if AC_TRY_EVAL(ac_compile); then
+ case `/usr/bin/file conftest.o` in
+ *64-bit*)
+ case $lt_cv_prog_gnu_ld in
+ yes*)
+ case $host in
+ i?86-*-solaris*|x86_64-*-solaris*)
+ LD="${LD-ld} -m elf_x86_64"
+ ;;
+ sparc*-*-solaris*)
+ LD="${LD-ld} -m elf64_sparc"
+ ;;
+ esac
+ # GNU ld 2.21 introduced _sol2 emulations. Use them if available.
+ if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then
+ LD=${LD-ld}_sol2
+ fi
+ ;;
+ *)
+ if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then
+ LD="${LD-ld} -64"
+ fi
+ ;;
+ esac
+ ;;
+ esac
+ fi
+ rm -rf conftest*
+ ;;
+esac
+
+need_locks=$enable_libtool_lock
+])# _LT_ENABLE_LOCK
+
+
+# _LT_PROG_AR
+# -----------
+m4_defun([_LT_PROG_AR],
+[AC_CHECK_TOOLS(AR, [ar], false)
+: ${AR=ar}
+: ${AR_FLAGS=cru}
+_LT_DECL([], [AR], [1], [The archiver])
+_LT_DECL([], [AR_FLAGS], [1], [Flags to create an archive])
+
+AC_CACHE_CHECK([for archiver @FILE support], [lt_cv_ar_at_file],
+ [lt_cv_ar_at_file=no
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM],
+ [echo conftest.$ac_objext > conftest.lst
+ lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&AS_MESSAGE_LOG_FD'
+ AC_TRY_EVAL([lt_ar_try])
+ if test 0 -eq "$ac_status"; then
+ # Ensure the archiver fails upon bogus file names.
+ rm -f conftest.$ac_objext libconftest.a
+ AC_TRY_EVAL([lt_ar_try])
+ if test 0 -ne "$ac_status"; then
+ lt_cv_ar_at_file=@
+ fi
+ fi
+ rm -f conftest.* libconftest.a
+ ])
+ ])
+
+if test no = "$lt_cv_ar_at_file"; then
+ archiver_list_spec=
+else
+ archiver_list_spec=$lt_cv_ar_at_file
+fi
+_LT_DECL([], [archiver_list_spec], [1],
+ [How to feed a file listing to the archiver])
+])# _LT_PROG_AR
+
+
+# _LT_CMD_OLD_ARCHIVE
+# -------------------
+m4_defun([_LT_CMD_OLD_ARCHIVE],
+[_LT_PROG_AR
+
+AC_CHECK_TOOL(STRIP, strip, :)
+test -z "$STRIP" && STRIP=:
+_LT_DECL([], [STRIP], [1], [A symbol stripping program])
+
+AC_CHECK_TOOL(RANLIB, ranlib, :)
+test -z "$RANLIB" && RANLIB=:
+_LT_DECL([], [RANLIB], [1],
+ [Commands used to install an old-style archive])
+
+# Determine commands to create old-style static archives.
+old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs'
+old_postinstall_cmds='chmod 644 $oldlib'
+old_postuninstall_cmds=
+
+if test -n "$RANLIB"; then
+ case $host_os in
+ bitrig* | openbsd*)
+ old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib"
+ ;;
+ *)
+ old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib"
+ ;;
+ esac
+ old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib"
+fi
+
+case $host_os in
+ darwin*)
+ lock_old_archive_extraction=yes ;;
+ *)
+ lock_old_archive_extraction=no ;;
+esac
+_LT_DECL([], [old_postinstall_cmds], [2])
+_LT_DECL([], [old_postuninstall_cmds], [2])
+_LT_TAGDECL([], [old_archive_cmds], [2],
+ [Commands used to build an old-style archive])
+_LT_DECL([], [lock_old_archive_extraction], [0],
+ [Whether to use a lock for old archive extraction])
+])# _LT_CMD_OLD_ARCHIVE
+
+
+# _LT_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS,
+# [OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE])
+# ----------------------------------------------------------------
+# Check whether the given compiler option works
+AC_DEFUN([_LT_COMPILER_OPTION],
+[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+m4_require([_LT_DECL_SED])dnl
+AC_CACHE_CHECK([$1], [$2],
+ [$2=no
+ m4_if([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4])
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+ lt_compiler_flag="$3" ## exclude from sc_useless_quotes_in_assignment
+ # Insert the option either (1) after the last *FLAGS variable, or
+ # (2) before a word containing "conftest.", or (3) at the end.
+ # Note that $ac_compile itself does not contain backslashes and begins
+ # with a dollar sign (not a hyphen), so the echo should work correctly.
+ # The option is referenced via a variable to avoid confusing sed.
+ lt_compile=`echo "$ac_compile" | $SED \
+ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+ -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \
+ -e 's:$: $lt_compiler_flag:'`
+ (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD)
+ (eval "$lt_compile" 2>conftest.err)
+ ac_status=$?
+ cat conftest.err >&AS_MESSAGE_LOG_FD
+ echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
+ if (exit $ac_status) && test -s "$ac_outfile"; then
+ # The compiler can only warn and ignore the option if not recognized
+ # So say no if there are warnings other than the usual output.
+ $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp
+ $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+ if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
+ $2=yes
+ fi
+ fi
+ $RM conftest*
+])
+
+if test yes = "[$]$2"; then
+ m4_if([$5], , :, [$5])
+else
+ m4_if([$6], , :, [$6])
+fi
+])# _LT_COMPILER_OPTION
+
+# Old name:
+AU_ALIAS([AC_LIBTOOL_COMPILER_OPTION], [_LT_COMPILER_OPTION])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION], [])
+
+
+# _LT_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS,
+# [ACTION-SUCCESS], [ACTION-FAILURE])
+# ----------------------------------------------------
+# Check whether the given linker option works
+AC_DEFUN([_LT_LINKER_OPTION],
+[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+m4_require([_LT_DECL_SED])dnl
+AC_CACHE_CHECK([$1], [$2],
+ [$2=no
+ save_LDFLAGS=$LDFLAGS
+ LDFLAGS="$LDFLAGS $3"
+ echo "$lt_simple_link_test_code" > conftest.$ac_ext
+ if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
+ # The linker can only warn and ignore the option if not recognized
+ # So say no if there are warnings
+ if test -s conftest.err; then
+ # Append any errors to the config.log.
+ cat conftest.err 1>&AS_MESSAGE_LOG_FD
+ $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp
+ $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+ if diff conftest.exp conftest.er2 >/dev/null; then
+ $2=yes
+ fi
+ else
+ $2=yes
+ fi
+ fi
+ $RM -r conftest*
+ LDFLAGS=$save_LDFLAGS
+])
+
+if test yes = "[$]$2"; then
+ m4_if([$4], , :, [$4])
+else
+ m4_if([$5], , :, [$5])
+fi
+])# _LT_LINKER_OPTION
+
+# Old name:
+AU_ALIAS([AC_LIBTOOL_LINKER_OPTION], [_LT_LINKER_OPTION])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_LIBTOOL_LINKER_OPTION], [])
+
+
+# LT_CMD_MAX_LEN
+#---------------
+AC_DEFUN([LT_CMD_MAX_LEN],
+[AC_REQUIRE([AC_CANONICAL_HOST])dnl
+# find the maximum length of command line arguments
+AC_MSG_CHECKING([the maximum length of command line arguments])
+AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl
+ i=0
+ teststring=ABCD
+
+ case $build_os in
+ msdosdjgpp*)
+ # On DJGPP, this test can blow up pretty badly due to problems in libc
+ # (any single argument exceeding 2000 bytes causes a buffer overrun
+ # during glob expansion). Even if it were fixed, the result of this
+ # check would be larger than it should be.
+ lt_cv_sys_max_cmd_len=12288; # 12K is about right
+ ;;
+
+ gnu*)
+ # Under GNU Hurd, this test is not required because there is
+ # no limit to the length of command line arguments.
+ # Libtool will interpret -1 as no limit whatsoever
+ lt_cv_sys_max_cmd_len=-1;
+ ;;
+
+ cygwin* | mingw* | cegcc*)
+ # On Win9x/ME, this test blows up -- it succeeds, but takes
+ # about 5 minutes as the teststring grows exponentially.
+ # Worse, since 9x/ME are not pre-emptively multitasking,
+ # you end up with a "frozen" computer, even though with patience
+ # the test eventually succeeds (with a max line length of 256k).
+ # Instead, let's just punt: use the minimum linelength reported by
+ # all of the supported platforms: 8192 (on NT/2K/XP).
+ lt_cv_sys_max_cmd_len=8192;
+ ;;
+
+ mint*)
+ # On MiNT this can take a long time and run out of memory.
+ lt_cv_sys_max_cmd_len=8192;
+ ;;
+
+ amigaos*)
+ # On AmigaOS with pdksh, this test takes hours, literally.
+ # So we just punt and use a minimum line length of 8192.
+ lt_cv_sys_max_cmd_len=8192;
+ ;;
+
+ bitrig* | darwin* | dragonfly* | freebsd* | netbsd* | openbsd*)
+ # This has been around since 386BSD, at least. Likely further.
+ if test -x /sbin/sysctl; then
+ lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax`
+ elif test -x /usr/sbin/sysctl; then
+ lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax`
+ else
+ lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs
+ fi
+ # And add a safety zone
+ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
+ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
+ ;;
+
+ interix*)
+ # We know the value 262144 and hardcode it with a safety zone (like BSD)
+ lt_cv_sys_max_cmd_len=196608
+ ;;
+
+ os2*)
+ # The test takes a long time on OS/2.
+ lt_cv_sys_max_cmd_len=8192
+ ;;
+
+ osf*)
+ # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure
+ # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not
+ # nice to cause kernel panics so lets avoid the loop below.
+ # First set a reasonable default.
+ lt_cv_sys_max_cmd_len=16384
+ #
+ if test -x /sbin/sysconfig; then
+ case `/sbin/sysconfig -q proc exec_disable_arg_limit` in
+ *1*) lt_cv_sys_max_cmd_len=-1 ;;
+ esac
+ fi
+ ;;
+ sco3.2v5*)
+ lt_cv_sys_max_cmd_len=102400
+ ;;
+ sysv5* | sco5v6* | sysv4.2uw2*)
+ kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null`
+ if test -n "$kargmax"; then
+ lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[[ ]]//'`
+ else
+ lt_cv_sys_max_cmd_len=32768
+ fi
+ ;;
+ *)
+ lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null`
+ if test -n "$lt_cv_sys_max_cmd_len" && \
+ test undefined != "$lt_cv_sys_max_cmd_len"; then
+ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
+ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
+ else
+ # Make teststring a little bigger before we do anything with it.
+ # a 1K string should be a reasonable start.
+ for i in 1 2 3 4 5 6 7 8; do
+ teststring=$teststring$teststring
+ done
+ SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}}
+ # If test is not a shell built-in, we'll probably end up computing a
+ # maximum length that is only half of the actual maximum length, but
+ # we can't tell.
+ while { test X`env echo "$teststring$teststring" 2>/dev/null` \
+ = "X$teststring$teststring"; } >/dev/null 2>&1 &&
+ test 17 != "$i" # 1/2 MB should be enough
+ do
+ i=`expr $i + 1`
+ teststring=$teststring$teststring
+ done
+ # Only check the string length outside the loop.
+ lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1`
+ teststring=
+ # Add a significant safety factor because C++ compilers can tack on
+ # massive amounts of additional arguments before passing them to the
+ # linker. It appears as though 1/2 is a usable value.
+ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2`
+ fi
+ ;;
+ esac
+])
+if test -n "$lt_cv_sys_max_cmd_len"; then
+ AC_MSG_RESULT($lt_cv_sys_max_cmd_len)
+else
+ AC_MSG_RESULT(none)
+fi
+max_cmd_len=$lt_cv_sys_max_cmd_len
+_LT_DECL([], [max_cmd_len], [0],
+ [What is the maximum length of a command?])
+])# LT_CMD_MAX_LEN
+
+# Old name:
+AU_ALIAS([AC_LIBTOOL_SYS_MAX_CMD_LEN], [LT_CMD_MAX_LEN])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], [])
+
+
+# _LT_HEADER_DLFCN
+# ----------------
+m4_defun([_LT_HEADER_DLFCN],
+[AC_CHECK_HEADERS([dlfcn.h], [], [], [AC_INCLUDES_DEFAULT])dnl
+])# _LT_HEADER_DLFCN
+
+
+# _LT_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE,
+# ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING)
+# ----------------------------------------------------------------
+m4_defun([_LT_TRY_DLOPEN_SELF],
+[m4_require([_LT_HEADER_DLFCN])dnl
+if test yes = "$cross_compiling"; then :
+ [$4]
+else
+ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
+ lt_status=$lt_dlunknown
+ cat > conftest.$ac_ext <<_LT_EOF
+[#line $LINENO "configure"
+#include "confdefs.h"
+
+#if HAVE_DLFCN_H
+#include <dlfcn.h>
+#endif
+
+#include <stdio.h>
+
+#ifdef RTLD_GLOBAL
+# define LT_DLGLOBAL RTLD_GLOBAL
+#else
+# ifdef DL_GLOBAL
+# define LT_DLGLOBAL DL_GLOBAL
+# else
+# define LT_DLGLOBAL 0
+# endif
+#endif
+
+/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
+ find out it does not work in some platform. */
+#ifndef LT_DLLAZY_OR_NOW
+# ifdef RTLD_LAZY
+# define LT_DLLAZY_OR_NOW RTLD_LAZY
+# else
+# ifdef DL_LAZY
+# define LT_DLLAZY_OR_NOW DL_LAZY
+# else
+# ifdef RTLD_NOW
+# define LT_DLLAZY_OR_NOW RTLD_NOW
+# else
+# ifdef DL_NOW
+# define LT_DLLAZY_OR_NOW DL_NOW
+# else
+# define LT_DLLAZY_OR_NOW 0
+# endif
+# endif
+# endif
+# endif
+#endif
+
+/* When -fvisibility=hidden is used, assume the code has been annotated
+ correspondingly for the symbols needed. */
+#if defined __GNUC__ && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
+int fnord () __attribute__((visibility("default")));
+#endif
+
+int fnord () { return 42; }
+int main ()
+{
+ void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
+ int status = $lt_dlunknown;
+
+ if (self)
+ {
+ if (dlsym (self,"fnord")) status = $lt_dlno_uscore;
+ else
+ {
+ if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
+ else puts (dlerror ());
+ }
+ /* dlclose (self); */
+ }
+ else
+ puts (dlerror ());
+
+ return status;
+}]
+_LT_EOF
+ if AC_TRY_EVAL(ac_link) && test -s "conftest$ac_exeext" 2>/dev/null; then
+ (./conftest; exit; ) >&AS_MESSAGE_LOG_FD 2>/dev/null
+ lt_status=$?
+ case x$lt_status in
+ x$lt_dlno_uscore) $1 ;;
+ x$lt_dlneed_uscore) $2 ;;
+ x$lt_dlunknown|x*) $3 ;;
+ esac
+ else :
+ # compilation failed
+ $3
+ fi
+fi
+rm -fr conftest*
+])# _LT_TRY_DLOPEN_SELF
+
+
+# LT_SYS_DLOPEN_SELF
+# ------------------
+AC_DEFUN([LT_SYS_DLOPEN_SELF],
+[m4_require([_LT_HEADER_DLFCN])dnl
+if test yes != "$enable_dlopen"; then
+ enable_dlopen=unknown
+ enable_dlopen_self=unknown
+ enable_dlopen_self_static=unknown
+else
+ lt_cv_dlopen=no
+ lt_cv_dlopen_libs=
+
+ case $host_os in
+ beos*)
+ lt_cv_dlopen=load_add_on
+ lt_cv_dlopen_libs=
+ lt_cv_dlopen_self=yes
+ ;;
+
+ mingw* | pw32* | cegcc*)
+ lt_cv_dlopen=LoadLibrary
+ lt_cv_dlopen_libs=
+ ;;
+
+ cygwin*)
+ lt_cv_dlopen=dlopen
+ lt_cv_dlopen_libs=
+ ;;
+
+ darwin*)
+ # if libdl is installed we need to link against it
+ AC_CHECK_LIB([dl], [dlopen],
+ [lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl],[
+ lt_cv_dlopen=dyld
+ lt_cv_dlopen_libs=
+ lt_cv_dlopen_self=yes
+ ])
+ ;;
+
+ tpf*)
+ # Don't try to run any link tests for TPF. We know it's impossible
+ # because TPF is a cross-compiler, and we know how we open DSOs.
+ lt_cv_dlopen=dlopen
+ lt_cv_dlopen_libs=
+ lt_cv_dlopen_self=no
+ ;;
+
+ *)
+ AC_CHECK_FUNC([shl_load],
+ [lt_cv_dlopen=shl_load],
+ [AC_CHECK_LIB([dld], [shl_load],
+ [lt_cv_dlopen=shl_load lt_cv_dlopen_libs=-ldld],
+ [AC_CHECK_FUNC([dlopen],
+ [lt_cv_dlopen=dlopen],
+ [AC_CHECK_LIB([dl], [dlopen],
+ [lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl],
+ [AC_CHECK_LIB([svld], [dlopen],
+ [lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-lsvld],
+ [AC_CHECK_LIB([dld], [dld_link],
+ [lt_cv_dlopen=dld_link lt_cv_dlopen_libs=-ldld])
+ ])
+ ])
+ ])
+ ])
+ ])
+ ;;
+ esac
+
+ if test no = "$lt_cv_dlopen"; then
+ enable_dlopen=no
+ else
+ enable_dlopen=yes
+ fi
+
+ case $lt_cv_dlopen in
+ dlopen)
+ save_CPPFLAGS=$CPPFLAGS
+ test yes = "$ac_cv_header_dlfcn_h" && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
+
+ save_LDFLAGS=$LDFLAGS
+ wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\"
+
+ save_LIBS=$LIBS
+ LIBS="$lt_cv_dlopen_libs $LIBS"
+
+ AC_CACHE_CHECK([whether a program can dlopen itself],
+ lt_cv_dlopen_self, [dnl
+ _LT_TRY_DLOPEN_SELF(
+ lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes,
+ lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross)
+ ])
+
+ if test yes = "$lt_cv_dlopen_self"; then
+ wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\"
+ AC_CACHE_CHECK([whether a statically linked program can dlopen itself],
+ lt_cv_dlopen_self_static, [dnl
+ _LT_TRY_DLOPEN_SELF(
+ lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes,
+ lt_cv_dlopen_self_static=no, lt_cv_dlopen_self_static=cross)
+ ])
+ fi
+
+ CPPFLAGS=$save_CPPFLAGS
+ LDFLAGS=$save_LDFLAGS
+ LIBS=$save_LIBS
+ ;;
+ esac
+
+ case $lt_cv_dlopen_self in
+ yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;;
+ *) enable_dlopen_self=unknown ;;
+ esac
+
+ case $lt_cv_dlopen_self_static in
+ yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;;
+ *) enable_dlopen_self_static=unknown ;;
+ esac
+fi
+_LT_DECL([dlopen_support], [enable_dlopen], [0],
+ [Whether dlopen is supported])
+_LT_DECL([dlopen_self], [enable_dlopen_self], [0],
+ [Whether dlopen of programs is supported])
+_LT_DECL([dlopen_self_static], [enable_dlopen_self_static], [0],
+ [Whether dlopen of statically linked programs is supported])
+])# LT_SYS_DLOPEN_SELF
+
+# Old name:
+AU_ALIAS([AC_LIBTOOL_DLOPEN_SELF], [LT_SYS_DLOPEN_SELF])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF], [])
+
+
+# _LT_COMPILER_C_O([TAGNAME])
+# ---------------------------
+# Check to see if options -c and -o are simultaneously supported by compiler.
+# This macro does not hard code the compiler like AC_PROG_CC_C_O.
+m4_defun([_LT_COMPILER_C_O],
+[m4_require([_LT_DECL_SED])dnl
+m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+m4_require([_LT_TAG_COMPILER])dnl
+AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext],
+ [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)],
+ [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=no
+ $RM -r conftest 2>/dev/null
+ mkdir conftest
+ cd conftest
+ mkdir out
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+ lt_compiler_flag="-o out/conftest2.$ac_objext"
+ # Insert the option either (1) after the last *FLAGS variable, or
+ # (2) before a word containing "conftest.", or (3) at the end.
+ # Note that $ac_compile itself does not contain backslashes and begins
+ # with a dollar sign (not a hyphen), so the echo should work correctly.
+ lt_compile=`echo "$ac_compile" | $SED \
+ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+ -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \
+ -e 's:$: $lt_compiler_flag:'`
+ (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD)
+ (eval "$lt_compile" 2>out/conftest.err)
+ ac_status=$?
+ cat out/conftest.err >&AS_MESSAGE_LOG_FD
+ echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
+ if (exit $ac_status) && test -s out/conftest2.$ac_objext
+ then
+ # The compiler can only warn and ignore the option if not recognized
+ # So say no if there are warnings
+ $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp
+ $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
+ if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
+ _LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes
+ fi
+ fi
+ chmod u+w . 2>&AS_MESSAGE_LOG_FD
+ $RM conftest*
+ # SGI C++ compiler will create directory out/ii_files/ for
+ # template instantiation
+ test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files
+ $RM out/* && rmdir out
+ cd ..
+ $RM -r conftest
+ $RM conftest*
+])
+_LT_TAGDECL([compiler_c_o], [lt_cv_prog_compiler_c_o], [1],
+ [Does compiler simultaneously support -c and -o options?])
+])# _LT_COMPILER_C_O
+
+
+# _LT_COMPILER_FILE_LOCKS([TAGNAME])
+# ----------------------------------
+# Check to see if we can do hard links to lock some files if needed
+m4_defun([_LT_COMPILER_FILE_LOCKS],
+[m4_require([_LT_ENABLE_LOCK])dnl
+m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+_LT_COMPILER_C_O([$1])
+
+hard_links=nottested
+if test no = "$_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)" && test no != "$need_locks"; then
+ # do not overwrite the value of need_locks provided by the user
+ AC_MSG_CHECKING([if we can lock with hard links])
+ hard_links=yes
+ $RM conftest*
+ ln conftest.a conftest.b 2>/dev/null && hard_links=no
+ touch conftest.a
+ ln conftest.a conftest.b 2>&5 || hard_links=no
+ ln conftest.a conftest.b 2>/dev/null && hard_links=no
+ AC_MSG_RESULT([$hard_links])
+ if test no = "$hard_links"; then
+ AC_MSG_WARN(['$CC' does not support '-c -o', so 'make -j' may be unsafe])
+ need_locks=warn
+ fi
+else
+ need_locks=no
+fi
+_LT_DECL([], [need_locks], [1], [Must we lock files when doing compilation?])
+])# _LT_COMPILER_FILE_LOCKS
+
+
+# _LT_CHECK_OBJDIR
+# ----------------
+m4_defun([_LT_CHECK_OBJDIR],
+[AC_CACHE_CHECK([for objdir], [lt_cv_objdir],
+[rm -f .libs 2>/dev/null
+mkdir .libs 2>/dev/null
+if test -d .libs; then
+ lt_cv_objdir=.libs
+else
+ # MS-DOS does not allow filenames that begin with a dot.
+ lt_cv_objdir=_libs
+fi
+rmdir .libs 2>/dev/null])
+objdir=$lt_cv_objdir
+_LT_DECL([], [objdir], [0],
+ [The name of the directory that contains temporary libtool files])dnl
+m4_pattern_allow([LT_OBJDIR])dnl
+AC_DEFINE_UNQUOTED([LT_OBJDIR], "$lt_cv_objdir/",
+ [Define to the sub-directory where libtool stores uninstalled libraries.])
+])# _LT_CHECK_OBJDIR
+
+
+# _LT_LINKER_HARDCODE_LIBPATH([TAGNAME])
+# --------------------------------------
+# Check hardcoding attributes.
+m4_defun([_LT_LINKER_HARDCODE_LIBPATH],
+[AC_MSG_CHECKING([how to hardcode library paths into programs])
+_LT_TAGVAR(hardcode_action, $1)=
+if test -n "$_LT_TAGVAR(hardcode_libdir_flag_spec, $1)" ||
+ test -n "$_LT_TAGVAR(runpath_var, $1)" ||
+ test yes = "$_LT_TAGVAR(hardcode_automatic, $1)"; then
+
+ # We can hardcode non-existent directories.
+ if test no != "$_LT_TAGVAR(hardcode_direct, $1)" &&
+ # If the only mechanism to avoid hardcoding is shlibpath_var, we
+ # have to relink, otherwise we might link with an installed library
+ # when we should be linking with a yet-to-be-installed one
+ ## test no != "$_LT_TAGVAR(hardcode_shlibpath_var, $1)" &&
+ test no != "$_LT_TAGVAR(hardcode_minus_L, $1)"; then
+ # Linking always hardcodes the temporary library directory.
+ _LT_TAGVAR(hardcode_action, $1)=relink
+ else
+ # We can link without hardcoding, and we can hardcode nonexisting dirs.
+ _LT_TAGVAR(hardcode_action, $1)=immediate
+ fi
+else
+ # We cannot hardcode anything, or else we can only hardcode existing
+ # directories.
+ _LT_TAGVAR(hardcode_action, $1)=unsupported
+fi
+AC_MSG_RESULT([$_LT_TAGVAR(hardcode_action, $1)])
+
+if test relink = "$_LT_TAGVAR(hardcode_action, $1)" ||
+ test yes = "$_LT_TAGVAR(inherit_rpath, $1)"; then
+ # Fast installation is not supported
+ enable_fast_install=no
+elif test yes = "$shlibpath_overrides_runpath" ||
+ test no = "$enable_shared"; then
+ # Fast installation is not necessary
+ enable_fast_install=needless
+fi
+_LT_TAGDECL([], [hardcode_action], [0],
+ [How to hardcode a shared library path into an executable])
+])# _LT_LINKER_HARDCODE_LIBPATH
+
+
+# _LT_CMD_STRIPLIB
+# ----------------
+m4_defun([_LT_CMD_STRIPLIB],
+[m4_require([_LT_DECL_EGREP])
+striplib=
+old_striplib=
+AC_MSG_CHECKING([whether stripping libraries is possible])
+if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then
+ test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
+ test -z "$striplib" && striplib="$STRIP --strip-unneeded"
+ AC_MSG_RESULT([yes])
+else
+# FIXME - insert some real tests, host_os isn't really good enough
+ case $host_os in
+ darwin*)
+ if test -n "$STRIP"; then
+ striplib="$STRIP -x"
+ old_striplib="$STRIP -S"
+ AC_MSG_RESULT([yes])
+ else
+ AC_MSG_RESULT([no])
+ fi
+ ;;
+ *)
+ AC_MSG_RESULT([no])
+ ;;
+ esac
+fi
+_LT_DECL([], [old_striplib], [1], [Commands to strip libraries])
+_LT_DECL([], [striplib], [1])
+])# _LT_CMD_STRIPLIB
+
+
+# _LT_PREPARE_MUNGE_PATH_LIST
+# ---------------------------
+# Make sure func_munge_path_list() is defined correctly.
+m4_defun([_LT_PREPARE_MUNGE_PATH_LIST],
+[[# func_munge_path_list VARIABLE PATH
+# -----------------------------------
+# VARIABLE is name of variable containing _space_ separated list of
+# directories to be munged by the contents of PATH, which is string
+# having a format:
+# "DIR[:DIR]:"
+# string "DIR[ DIR]" will be prepended to VARIABLE
+# ":DIR[:DIR]"
+# string "DIR[ DIR]" will be appended to VARIABLE
+# "DIRP[:DIRP]::[DIRA:]DIRA"
+# string "DIRP[ DIRP]" will be prepended to VARIABLE and string
+# "DIRA[ DIRA]" will be appended to VARIABLE
+# "DIR[:DIR]"
+# VARIABLE will be replaced by "DIR[ DIR]"
+func_munge_path_list ()
+{
+ case x@S|@2 in
+ x)
+ ;;
+ *:)
+ eval @S|@1=\"`$ECHO @S|@2 | $SED 's/:/ /g'` \@S|@@S|@1\"
+ ;;
+ x:*)
+ eval @S|@1=\"\@S|@@S|@1 `$ECHO @S|@2 | $SED 's/:/ /g'`\"
+ ;;
+ *::*)
+ eval @S|@1=\"\@S|@@S|@1\ `$ECHO @S|@2 | $SED -e 's/.*:://' -e 's/:/ /g'`\"
+ eval @S|@1=\"`$ECHO @S|@2 | $SED -e 's/::.*//' -e 's/:/ /g'`\ \@S|@@S|@1\"
+ ;;
+ *)
+ eval @S|@1=\"`$ECHO @S|@2 | $SED 's/:/ /g'`\"
+ ;;
+ esac
+}
+]])# _LT_PREPARE_PATH_LIST
+
+
+# _LT_SYS_DYNAMIC_LINKER([TAG])
+# -----------------------------
+# PORTME Fill in your ld.so characteristics
+m4_defun([_LT_SYS_DYNAMIC_LINKER],
+[AC_REQUIRE([AC_CANONICAL_HOST])dnl
+m4_require([_LT_DECL_EGREP])dnl
+m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+m4_require([_LT_DECL_OBJDUMP])dnl
+m4_require([_LT_DECL_SED])dnl
+m4_require([_LT_CHECK_SHELL_FEATURES])dnl
+m4_require([_LT_PREPARE_MUNGE_PATH_LIST])dnl
+AC_MSG_CHECKING([dynamic linker characteristics])
+m4_if([$1],
+ [], [
+if test yes = "$GCC"; then
+ case $host_os in
+ darwin*) lt_awk_arg='/^libraries:/,/LR/' ;;
+ *) lt_awk_arg='/^libraries:/' ;;
+ esac
+ case $host_os in
+ mingw* | cegcc*) lt_sed_strip_eq='s|=\([[A-Za-z]]:\)|\1|g' ;;
+ *) lt_sed_strip_eq='s|=/|/|g' ;;
+ esac
+ lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq`
+ case $lt_search_path_spec in
+ *\;*)
+ # if the path contains ";" then we assume it to be the separator
+ # otherwise default to the standard path separator (i.e. ":") - it is
+ # assumed that no part of a normal pathname contains ";" but that should
+ # okay in the real world where ";" in dirpaths is itself problematic.
+ lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'`
+ ;;
+ *)
+ lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"`
+ ;;
+ esac
+ # Ok, now we have the path, separated by spaces, we can step through it
+ # and add multilib dir if necessary...
+ lt_tmp_lt_search_path_spec=
+ lt_multi_os_dir=/`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null`
+ # ...but if some path component already ends with the multilib dir we assume
+ # that all is fine and trust -print-search-dirs as is (GCC 4.2? or newer).
+ case "$lt_multi_os_dir; $lt_search_path_spec " in
+ "/; "* | "/.; "* | "/./; "* | *"$lt_multi_os_dir "* | *"$lt_multi_os_dir/ "*)
+ lt_multi_os_dir=
+ ;;
+ esac
+ for lt_sys_path in $lt_search_path_spec; do
+ if test -d "$lt_sys_path$lt_multi_os_dir"; then
+ lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path$lt_multi_os_dir"
+ elif test -n "$lt_multi_os_dir"; then
+ test -d "$lt_sys_path" && \
+ lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path"
+ fi
+ done
+ lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk '
+BEGIN {RS = " "; FS = "/|\n";} {
+ lt_foo = "";
+ lt_count = 0;
+ for (lt_i = NF; lt_i > 0; lt_i--) {
+ if ($lt_i != "" && $lt_i != ".") {
+ if ($lt_i == "..") {
+ lt_count++;
+ } else {
+ if (lt_count == 0) {
+ lt_foo = "/" $lt_i lt_foo;
+ } else {
+ lt_count--;
+ }
+ }
+ }
+ }
+ if (lt_foo != "") { lt_freq[[lt_foo]]++; }
+ if (lt_freq[[lt_foo]] == 1) { print lt_foo; }
+}'`
+ # AWK program above erroneously prepends '/' to C:/dos/paths
+ # for these hosts.
+ case $host_os in
+ mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\
+ $SED 's|/\([[A-Za-z]]:\)|\1|g'` ;;
+ esac
+ sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP`
+else
+ sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
+fi])
+library_names_spec=
+libname_spec='lib$name'
+soname_spec=
+shrext_cmds=.so
+postinstall_cmds=
+postuninstall_cmds=
+finish_cmds=
+finish_eval=
+shlibpath_var=
+shlibpath_overrides_runpath=unknown
+version_type=none
+dynamic_linker="$host_os ld.so"
+sys_lib_dlsearch_path_spec="/lib /usr/lib"
+need_lib_prefix=unknown
+hardcode_into_libs=no
+
+# when you set need_version to no, make sure it does not cause -set_version
+# flags to be left without arguments
+need_version=unknown
+
+AC_ARG_VAR([LT_SYS_LIBRARY_PATH],
+[User-defined run-time library search path.])
+
+case $host_os in
+aix3*)
+ version_type=linux # correct to gnu/linux during the next big refactor
+ library_names_spec='$libname$release$shared_ext$versuffix $libname.a'
+ shlibpath_var=LIBPATH
+
+ # AIX 3 has no versioning support, so we append a major version to the name.
+ soname_spec='$libname$release$shared_ext$major'
+ ;;
+
+aix[[4-9]]*)
+ version_type=linux # correct to gnu/linux during the next big refactor
+ need_lib_prefix=no
+ need_version=no
+ hardcode_into_libs=yes
+ if test ia64 = "$host_cpu"; then
+ # AIX 5 supports IA64
+ library_names_spec='$libname$release$shared_ext$major $libname$release$shared_ext$versuffix $libname$shared_ext'
+ shlibpath_var=LD_LIBRARY_PATH
+ else
+ # With GCC up to 2.95.x, collect2 would create an import file
+ # for dependence libraries. The import file would start with
+ # the line '#! .'. This would cause the generated library to
+ # depend on '.', always an invalid library. This was fixed in
+ # development snapshots of GCC prior to 3.0.
+ case $host_os in
+ aix4 | aix4.[[01]] | aix4.[[01]].*)
+ if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
+ echo ' yes '
+ echo '#endif'; } | $CC -E - | $GREP yes > /dev/null; then
+ :
+ else
+ can_build_shared=no
+ fi
+ ;;
+ esac
+ # Using Import Files as archive members, it is possible to support
+ # filename-based versioning of shared library archives on AIX. While
+ # this would work for both with and without runtime linking, it will
+ # prevent static linking of such archives. So we do filename-based
+ # shared library versioning with .so extension only, which is used
+ # when both runtime linking and shared linking is enabled.
+ # Unfortunately, runtime linking may impact performance, so we do
+ # not want this to be the default eventually. Also, we use the
+ # versioned .so libs for executables only if there is the -brtl
+ # linker flag in LDFLAGS as well, or --with-aix-soname=svr4 only.
+ # To allow for filename-based versioning support, we need to create
+ # libNAME.so.V as an archive file, containing:
+ # *) an Import File, referring to the versioned filename of the
+ # archive as well as the shared archive member, telling the
+ # bitwidth (32 or 64) of that shared object, and providing the
+ # list of exported symbols of that shared object, eventually
+ # decorated with the 'weak' keyword
+ # *) the shared object with the F_LOADONLY flag set, to really avoid
+ # it being seen by the linker.
+ # At run time we better use the real file rather than another symlink,
+ # but for link time we create the symlink libNAME.so -> libNAME.so.V
+
+ case $with_aix_soname,$aix_use_runtimelinking in
+ # AIX (on Power*) has no versioning support, so currently we cannot hardcode correct
+ # soname into executable. Probably we can add versioning support to
+ # collect2, so additional links can be useful in future.
+ aix,yes) # traditional libtool
+ dynamic_linker='AIX unversionable lib.so'
+ # If using run time linking (on AIX 4.2 or later) use lib<name>.so
+ # instead of lib<name>.a to let people know that these are not
+ # typical AIX shared libraries.
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ ;;
+ aix,no) # traditional AIX only
+ dynamic_linker='AIX lib.a[(]lib.so.V[)]'
+ # We preserve .a as extension for shared libraries through AIX4.2
+ # and later when we are not doing run time linking.
+ library_names_spec='$libname$release.a $libname.a'
+ soname_spec='$libname$release$shared_ext$major'
+ ;;
+ svr4,*) # full svr4 only
+ dynamic_linker="AIX lib.so.V[(]$shared_archive_member_spec.o[)]"
+ library_names_spec='$libname$release$shared_ext$major $libname$shared_ext'
+ # We do not specify a path in Import Files, so LIBPATH fires.
+ shlibpath_overrides_runpath=yes
+ ;;
+ *,yes) # both, prefer svr4
+ dynamic_linker="AIX lib.so.V[(]$shared_archive_member_spec.o[)], lib.a[(]lib.so.V[)]"
+ library_names_spec='$libname$release$shared_ext$major $libname$shared_ext'
+ # unpreferred sharedlib libNAME.a needs extra handling
+ postinstall_cmds='test -n "$linkname" || linkname="$realname"~func_stripname "" ".so" "$linkname"~$install_shared_prog "$dir/$func_stripname_result.$libext" "$destdir/$func_stripname_result.$libext"~test -z "$tstripme" || test -z "$striplib" || $striplib "$destdir/$func_stripname_result.$libext"'
+ postuninstall_cmds='for n in $library_names $old_library; do :; done~func_stripname "" ".so" "$n"~test "$func_stripname_result" = "$n" || func_append rmfiles " $odir/$func_stripname_result.$libext"'
+ # We do not specify a path in Import Files, so LIBPATH fires.
+ shlibpath_overrides_runpath=yes
+ ;;
+ *,no) # both, prefer aix
+ dynamic_linker="AIX lib.a[(]lib.so.V[)], lib.so.V[(]$shared_archive_member_spec.o[)]"
+ library_names_spec='$libname$release.a $libname.a'
+ soname_spec='$libname$release$shared_ext$major'
+ # unpreferred sharedlib libNAME.so.V and symlink libNAME.so need extra handling
+ postinstall_cmds='test -z "$dlname" || $install_shared_prog $dir/$dlname $destdir/$dlname~test -z "$tstripme" || test -z "$striplib" || $striplib $destdir/$dlname~test -n "$linkname" || linkname=$realname~func_stripname "" ".a" "$linkname"~(cd "$destdir" && $LN_S -f $dlname $func_stripname_result.so)'
+ postuninstall_cmds='test -z "$dlname" || func_append rmfiles " $odir/$dlname"~for n in $old_library $library_names; do :; done~func_stripname "" ".a" "$n"~func_append rmfiles " $odir/$func_stripname_result.so"'
+ ;;
+ esac
+ shlibpath_var=LIBPATH
+ fi
+ ;;
+
+amigaos*)
+ case $host_cpu in
+ powerpc)
+ # Since July 2007 AmigaOS4 officially supports .so libraries.
+ # When compiling the executable, add -use-dynld -Lsobjs: to the compileline.
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ ;;
+ m68k)
+ library_names_spec='$libname.ixlibrary $libname.a'
+ # Create ${libname}_ixlibrary.a entries in /sys/libs.
+ finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
+ ;;
+ esac
+ ;;
+
+beos*)
+ library_names_spec='$libname$shared_ext'
+ dynamic_linker="$host_os ld.so"
+ shlibpath_var=LIBRARY_PATH
+ ;;
+
+bsdi[[45]]*)
+ version_type=linux # correct to gnu/linux during the next big refactor
+ need_version=no
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
+ sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
+ # the default ld.so.conf also contains /usr/contrib/lib and
+ # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
+ # libtool to hard-code these into programs
+ ;;
+
+cygwin* | mingw* | pw32* | cegcc*)
+ version_type=windows
+ shrext_cmds=.dll
+ need_version=no
+ need_lib_prefix=no
+
+ case $GCC,$cc_basename in
+ yes,*)
+ # gcc
+ library_names_spec='$libname.dll.a'
+ # DLL is installed to $(libdir)/../bin by postinstall_cmds
+ postinstall_cmds='base_file=`basename \$file`~
+ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~
+ dldir=$destdir/`dirname \$dlpath`~
+ test -d \$dldir || mkdir -p \$dldir~
+ $install_prog $dir/$dlname \$dldir/$dlname~
+ chmod a+x \$dldir/$dlname~
+ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then
+ eval '\''$striplib \$dldir/$dlname'\'' || exit \$?;
+ fi'
+ postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
+ dlpath=$dir/\$dldll~
+ $RM \$dlpath'
+ shlibpath_overrides_runpath=yes
+
+ case $host_os in
+ cygwin*)
+ # Cygwin DLLs use 'cyg' prefix rather than 'lib'
+ soname_spec='`echo $libname | sed -e 's/^lib/cyg/'``echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext'
+m4_if([$1], [],[
+ sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"])
+ ;;
+ mingw* | cegcc*)
+ # MinGW DLLs use traditional 'lib' prefix
+ soname_spec='$libname`echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext'
+ ;;
+ pw32*)
+ # pw32 DLLs use 'pw' prefix rather than 'lib'
+ library_names_spec='`echo $libname | sed -e 's/^lib/pw/'``echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext'
+ ;;
+ esac
+ dynamic_linker='Win32 ld.exe'
+ ;;
+
+ *,cl*)
+ # Native MSVC
+ libname_spec='$name'
+ soname_spec='$libname`echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext'
+ library_names_spec='$libname.dll.lib'
+
+ case $build_os in
+ mingw*)
+ sys_lib_search_path_spec=
+ lt_save_ifs=$IFS
+ IFS=';'
+ for lt_path in $LIB
+ do
+ IFS=$lt_save_ifs
+ # Let DOS variable expansion print the short 8.3 style file name.
+ lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"`
+ sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path"
+ done
+ IFS=$lt_save_ifs
+ # Convert to MSYS style.
+ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([[a-zA-Z]]\\):| /\\1|g' -e 's|^ ||'`
+ ;;
+ cygwin*)
+ # Convert to unix form, then to dos form, then back to unix form
+ # but this time dos style (no spaces!) so that the unix form looks
+ # like /cygdrive/c/PROGRA~1:/cygdr...
+ sys_lib_search_path_spec=`cygpath --path --unix "$LIB"`
+ sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null`
+ sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
+ ;;
+ *)
+ sys_lib_search_path_spec=$LIB
+ if $ECHO "$sys_lib_search_path_spec" | [$GREP ';[c-zC-Z]:/' >/dev/null]; then
+ # It is most probably a Windows format PATH.
+ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
+ else
+ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
+ fi
+ # FIXME: find the short name or the path components, as spaces are
+ # common. (e.g. "Program Files" -> "PROGRA~1")
+ ;;
+ esac
+
+ # DLL is installed to $(libdir)/../bin by postinstall_cmds
+ postinstall_cmds='base_file=`basename \$file`~
+ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~
+ dldir=$destdir/`dirname \$dlpath`~
+ test -d \$dldir || mkdir -p \$dldir~
+ $install_prog $dir/$dlname \$dldir/$dlname'
+ postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
+ dlpath=$dir/\$dldll~
+ $RM \$dlpath'
+ shlibpath_overrides_runpath=yes
+ dynamic_linker='Win32 link.exe'
+ ;;
+
+ *)
+ # Assume MSVC wrapper
+ library_names_spec='$libname`echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext $libname.lib'
+ dynamic_linker='Win32 ld.exe'
+ ;;
+ esac
+ # FIXME: first we should search . and the directory the executable is in
+ shlibpath_var=PATH
+ ;;
+
+darwin* | rhapsody*)
+ dynamic_linker="$host_os dyld"
+ version_type=darwin
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='$libname$release$major$shared_ext $libname$shared_ext'
+ soname_spec='$libname$release$major$shared_ext'
+ shlibpath_overrides_runpath=yes
+ shlibpath_var=DYLD_LIBRARY_PATH
+ shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`'
+m4_if([$1], [],[
+ sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"])
+ sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
+ ;;
+
+dgux*)
+ version_type=linux # correct to gnu/linux during the next big refactor
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ ;;
+
+freebsd* | dragonfly*)
+ # DragonFly does not have aout. When/if they implement a new
+ # versioning mechanism, adjust this.
+ if test -x /usr/bin/objformat; then
+ objformat=`/usr/bin/objformat`
+ else
+ case $host_os in
+ freebsd[[23]].*) objformat=aout ;;
+ *) objformat=elf ;;
+ esac
+ fi
+ version_type=freebsd-$objformat
+ case $version_type in
+ freebsd-elf*)
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ need_version=no
+ need_lib_prefix=no
+ ;;
+ freebsd-*)
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix'
+ need_version=yes
+ ;;
+ esac
+ shlibpath_var=LD_LIBRARY_PATH
+ case $host_os in
+ freebsd2.*)
+ shlibpath_overrides_runpath=yes
+ ;;
+ freebsd3.[[01]]* | freebsdelf3.[[01]]*)
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ ;;
+ freebsd3.[[2-9]]* | freebsdelf3.[[2-9]]* | \
+ freebsd4.[[0-5]] | freebsdelf4.[[0-5]] | freebsd4.1.1 | freebsdelf4.1.1)
+ shlibpath_overrides_runpath=no
+ hardcode_into_libs=yes
+ ;;
+ *) # from 4.6 on, and DragonFly
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ ;;
+ esac
+ ;;
+
+haiku*)
+ version_type=linux # correct to gnu/linux during the next big refactor
+ need_lib_prefix=no
+ need_version=no
+ dynamic_linker="$host_os runtime_loader"
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ shlibpath_var=LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+ sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib'
+ hardcode_into_libs=yes
+ ;;
+
+hpux9* | hpux10* | hpux11*)
+ # Give a soname corresponding to the major version so that dld.sl refuses to
+ # link against other versions.
+ version_type=sunos
+ need_lib_prefix=no
+ need_version=no
+ case $host_cpu in
+ ia64*)
+ shrext_cmds='.so'
+ hardcode_into_libs=yes
+ dynamic_linker="$host_os dld.so"
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ if test 32 = "$HPUX_IA64_MODE"; then
+ sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
+ sys_lib_dlsearch_path_spec=/usr/lib/hpux32
+ else
+ sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
+ sys_lib_dlsearch_path_spec=/usr/lib/hpux64
+ fi
+ ;;
+ hppa*64*)
+ shrext_cmds='.sl'
+ hardcode_into_libs=yes
+ dynamic_linker="$host_os dld.sl"
+ shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
+ shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
+ sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+ ;;
+ *)
+ shrext_cmds='.sl'
+ dynamic_linker="$host_os dld.sl"
+ shlibpath_var=SHLIB_PATH
+ shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ ;;
+ esac
+ # HP-UX runs *really* slowly unless shared libraries are mode 555, ...
+ postinstall_cmds='chmod 555 $lib'
+ # or fails outright, so override atomically:
+ install_override_mode=555
+ ;;
+
+interix[[3-9]]*)
+ version_type=linux # correct to gnu/linux during the next big refactor
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+ hardcode_into_libs=yes
+ ;;
+
+irix5* | irix6* | nonstopux*)
+ case $host_os in
+ nonstopux*) version_type=nonstopux ;;
+ *)
+ if test yes = "$lt_cv_prog_gnu_ld"; then
+ version_type=linux # correct to gnu/linux during the next big refactor
+ else
+ version_type=irix
+ fi ;;
+ esac
+ need_lib_prefix=no
+ need_version=no
+ soname_spec='$libname$release$shared_ext$major'
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$release$shared_ext $libname$shared_ext'
+ case $host_os in
+ irix5* | nonstopux*)
+ libsuff= shlibsuff=
+ ;;
+ *)
+ case $LD in # libtool.m4 will add one of these switches to LD
+ *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
+ libsuff= shlibsuff= libmagic=32-bit;;
+ *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
+ libsuff=32 shlibsuff=N32 libmagic=N32;;
+ *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
+ libsuff=64 shlibsuff=64 libmagic=64-bit;;
+ *) libsuff= shlibsuff= libmagic=never-match;;
+ esac
+ ;;
+ esac
+ shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
+ shlibpath_overrides_runpath=no
+ sys_lib_search_path_spec="/usr/lib$libsuff /lib$libsuff /usr/local/lib$libsuff"
+ sys_lib_dlsearch_path_spec="/usr/lib$libsuff /lib$libsuff"
+ hardcode_into_libs=yes
+ ;;
+
+# No shared lib support for Linux oldld, aout, or coff.
+linux*oldld* | linux*aout* | linux*coff*)
+ dynamic_linker=no
+ ;;
+
+linux*android*)
+ version_type=none # Android doesn't support versioned libraries.
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='$libname$release$shared_ext'
+ soname_spec='$libname$release$shared_ext'
+ finish_cmds=
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+
+ # This implies no fast_install, which is unacceptable.
+ # Some rework will be needed to allow for fast_install
+ # before this can be enabled.
+ hardcode_into_libs=yes
+
+ dynamic_linker='Android linker'
+ # Don't embed -rpath directories since the linker doesn't support them.
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+ ;;
+
+# This must be glibc/ELF.
+linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
+ version_type=linux # correct to gnu/linux during the next big refactor
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+
+ # Some binutils ld are patched to set DT_RUNPATH
+ AC_CACHE_VAL([lt_cv_shlibpath_overrides_runpath],
+ [lt_cv_shlibpath_overrides_runpath=no
+ save_LDFLAGS=$LDFLAGS
+ save_libdir=$libdir
+ eval "libdir=/foo; wl=\"$_LT_TAGVAR(lt_prog_compiler_wl, $1)\"; \
+ LDFLAGS=\"\$LDFLAGS $_LT_TAGVAR(hardcode_libdir_flag_spec, $1)\""
+ AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])],
+ [AS_IF([ ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null],
+ [lt_cv_shlibpath_overrides_runpath=yes])])
+ LDFLAGS=$save_LDFLAGS
+ libdir=$save_libdir
+ ])
+ shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath
+
+ # This implies no fast_install, which is unacceptable.
+ # Some rework will be needed to allow for fast_install
+ # before this can be enabled.
+ hardcode_into_libs=yes
+
+ # Add ABI-specific directories to the system library path.
+ sys_lib_dlsearch_path_spec="/lib64 /usr/lib64 /lib /usr/lib"
+
+ # Ideally, we could use ldconfig to report *all* directores which are
+ # searched for libraries, however this is still not possible. Aside from not
+ # being certain /sbin/ldconfig is available, command
+ # 'ldconfig -N -X -v | grep ^/' on 64bit Fedora does not report /usr/lib64,
+ # even though it is searched at run-time. Try to do the best guess by
+ # appending ld.so.conf contents (and includes) to the search path.
+ if test -f /etc/ld.so.conf; then
+ lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '`
+ sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec $lt_ld_extra"
+ fi
+
+ # We used to test for /lib/ld.so.1 and disable shared libraries on
+ # powerpc, because MkLinux only supported shared libraries with the
+ # GNU dynamic linker. Since this was broken with cross compilers,
+ # most powerpc-linux boxes support dynamic linking these days and
+ # people can always --disable-shared, the test was removed, and we
+ # assume the GNU/Linux dynamic linker is in use.
+ dynamic_linker='GNU/Linux ld.so'
+ ;;
+
+netbsd*)
+ version_type=sunos
+ need_lib_prefix=no
+ need_version=no
+ if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+ dynamic_linker='NetBSD (a.out) ld.so'
+ else
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ dynamic_linker='NetBSD ld.elf_so'
+ fi
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ ;;
+
+newsos6)
+ version_type=linux # correct to gnu/linux during the next big refactor
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ ;;
+
+*nto* | *qnx*)
+ version_type=qnx
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+ hardcode_into_libs=yes
+ dynamic_linker='ldqnx.so'
+ ;;
+
+openbsd* | bitrig*)
+ version_type=sunos
+ sys_lib_dlsearch_path_spec=/usr/lib
+ need_lib_prefix=no
+ if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then
+ need_version=no
+ else
+ need_version=yes
+ fi
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ ;;
+
+os2*)
+ libname_spec='$name'
+ version_type=windows
+ shrext_cmds=.dll
+ need_version=no
+ need_lib_prefix=no
+ # OS/2 can only load a DLL with a base name of 8 characters or less.
+ soname_spec='`test -n "$os2dllname" && libname="$os2dllname";
+ v=$($ECHO $release$versuffix | tr -d .-);
+ n=$($ECHO $libname | cut -b -$((8 - ${#v})) | tr . _);
+ $ECHO $n$v`$shared_ext'
+ library_names_spec='${libname}_dll.$libext'
+ dynamic_linker='OS/2 ld.exe'
+ shlibpath_var=BEGINLIBPATH
+ sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
+ sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+ postinstall_cmds='base_file=`basename \$file`~
+ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; $ECHO \$dlname'\''`~
+ dldir=$destdir/`dirname \$dlpath`~
+ test -d \$dldir || mkdir -p \$dldir~
+ $install_prog $dir/$dlname \$dldir/$dlname~
+ chmod a+x \$dldir/$dlname~
+ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then
+ eval '\''$striplib \$dldir/$dlname'\'' || exit \$?;
+ fi'
+ postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; $ECHO \$dlname'\''`~
+ dlpath=$dir/\$dldll~
+ $RM \$dlpath'
+ ;;
+
+osf3* | osf4* | osf5*)
+ version_type=osf
+ need_lib_prefix=no
+ need_version=no
+ soname_spec='$libname$release$shared_ext$major'
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ shlibpath_var=LD_LIBRARY_PATH
+ sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
+ sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+ ;;
+
+rdos*)
+ dynamic_linker=no
+ ;;
+
+solaris*)
+ version_type=linux # correct to gnu/linux during the next big refactor
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ # ldd complains unless libraries are executable
+ postinstall_cmds='chmod +x $lib'
+ ;;
+
+sunos4*)
+ version_type=sunos
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix'
+ finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ if test yes = "$with_gnu_ld"; then
+ need_lib_prefix=no
+ fi
+ need_version=yes
+ ;;
+
+sysv4 | sysv4.3*)
+ version_type=linux # correct to gnu/linux during the next big refactor
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ case $host_vendor in
+ sni)
+ shlibpath_overrides_runpath=no
+ need_lib_prefix=no
+ runpath_var=LD_RUN_PATH
+ ;;
+ siemens)
+ need_lib_prefix=no
+ ;;
+ motorola)
+ need_lib_prefix=no
+ need_version=no
+ shlibpath_overrides_runpath=no
+ sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
+ ;;
+ esac
+ ;;
+
+sysv4*MP*)
+ if test -d /usr/nec; then
+ version_type=linux # correct to gnu/linux during the next big refactor
+ library_names_spec='$libname$shared_ext.$versuffix $libname$shared_ext.$major $libname$shared_ext'
+ soname_spec='$libname$shared_ext.$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ fi
+ ;;
+
+sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
+ version_type=sco
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ if test yes = "$with_gnu_ld"; then
+ sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib'
+ else
+ sys_lib_search_path_spec='/usr/ccs/lib /usr/lib'
+ case $host_os in
+ sco3.2v5*)
+ sys_lib_search_path_spec="$sys_lib_search_path_spec /lib"
+ ;;
+ esac
+ fi
+ sys_lib_dlsearch_path_spec='/usr/lib'
+ ;;
+
+tpf*)
+ # TPF is a cross-target only. Preferred cross-host = GNU/Linux.
+ version_type=linux # correct to gnu/linux during the next big refactor
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+ hardcode_into_libs=yes
+ ;;
+
+uts4*)
+ version_type=linux # correct to gnu/linux during the next big refactor
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ ;;
+
+*)
+ dynamic_linker=no
+ ;;
+esac
+AC_MSG_RESULT([$dynamic_linker])
+test no = "$dynamic_linker" && can_build_shared=no
+
+variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
+if test yes = "$GCC"; then
+ variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
+fi
+
+if test set = "${lt_cv_sys_lib_search_path_spec+set}"; then
+ sys_lib_search_path_spec=$lt_cv_sys_lib_search_path_spec
+fi
+
+if test set = "${lt_cv_sys_lib_dlsearch_path_spec+set}"; then
+ sys_lib_dlsearch_path_spec=$lt_cv_sys_lib_dlsearch_path_spec
+fi
+
+# remember unaugmented sys_lib_dlsearch_path content for libtool script decls...
+configure_time_dlsearch_path=$sys_lib_dlsearch_path_spec
+
+# ... but it needs LT_SYS_LIBRARY_PATH munging for other configure-time code
+func_munge_path_list sys_lib_dlsearch_path_spec "$LT_SYS_LIBRARY_PATH"
+
+# to be used as default LT_SYS_LIBRARY_PATH value in generated libtool
+configure_time_lt_sys_library_path=$LT_SYS_LIBRARY_PATH
+
+_LT_DECL([], [variables_saved_for_relink], [1],
+ [Variables whose values should be saved in libtool wrapper scripts and
+ restored at link time])
+_LT_DECL([], [need_lib_prefix], [0],
+ [Do we need the "lib" prefix for modules?])
+_LT_DECL([], [need_version], [0], [Do we need a version for libraries?])
+_LT_DECL([], [version_type], [0], [Library versioning type])
+_LT_DECL([], [runpath_var], [0], [Shared library runtime path variable])
+_LT_DECL([], [shlibpath_var], [0],[Shared library path variable])
+_LT_DECL([], [shlibpath_overrides_runpath], [0],
+ [Is shlibpath searched before the hard-coded library search path?])
+_LT_DECL([], [libname_spec], [1], [Format of library name prefix])
+_LT_DECL([], [library_names_spec], [1],
+ [[List of archive names. First name is the real one, the rest are links.
+ The last name is the one that the linker finds with -lNAME]])
+_LT_DECL([], [soname_spec], [1],
+ [[The coded name of the library, if different from the real name]])
+_LT_DECL([], [install_override_mode], [1],
+ [Permission mode override for installation of shared libraries])
+_LT_DECL([], [postinstall_cmds], [2],
+ [Command to use after installation of a shared archive])
+_LT_DECL([], [postuninstall_cmds], [2],
+ [Command to use after uninstallation of a shared archive])
+_LT_DECL([], [finish_cmds], [2],
+ [Commands used to finish a libtool library installation in a directory])
+_LT_DECL([], [finish_eval], [1],
+ [[As "finish_cmds", except a single script fragment to be evaled but
+ not shown]])
+_LT_DECL([], [hardcode_into_libs], [0],
+ [Whether we should hardcode library paths into libraries])
+_LT_DECL([], [sys_lib_search_path_spec], [2],
+ [Compile-time system search path for libraries])
+_LT_DECL([sys_lib_dlsearch_path_spec], [configure_time_dlsearch_path], [2],
+ [Detected run-time system search path for libraries])
+_LT_DECL([], [configure_time_lt_sys_library_path], [2],
+ [Explicit LT_SYS_LIBRARY_PATH set during ./configure time])
+])# _LT_SYS_DYNAMIC_LINKER
+
+
+# _LT_PATH_TOOL_PREFIX(TOOL)
+# --------------------------
+# find a file program that can recognize shared library
+AC_DEFUN([_LT_PATH_TOOL_PREFIX],
+[m4_require([_LT_DECL_EGREP])dnl
+AC_MSG_CHECKING([for $1])
+AC_CACHE_VAL(lt_cv_path_MAGIC_CMD,
+[case $MAGIC_CMD in
+[[\\/*] | ?:[\\/]*])
+ lt_cv_path_MAGIC_CMD=$MAGIC_CMD # Let the user override the test with a path.
+ ;;
+*)
+ lt_save_MAGIC_CMD=$MAGIC_CMD
+ lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR
+dnl $ac_dummy forces splitting on constant user-supplied paths.
+dnl POSIX.2 word splitting is done only on the output of word expansions,
+dnl not every word. This closes a longstanding sh security hole.
+ ac_dummy="m4_if([$2], , $PATH, [$2])"
+ for ac_dir in $ac_dummy; do
+ IFS=$lt_save_ifs
+ test -z "$ac_dir" && ac_dir=.
+ if test -f "$ac_dir/$1"; then
+ lt_cv_path_MAGIC_CMD=$ac_dir/"$1"
+ if test -n "$file_magic_test_file"; then
+ case $deplibs_check_method in
+ "file_magic "*)
+ file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"`
+ MAGIC_CMD=$lt_cv_path_MAGIC_CMD
+ if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
+ $EGREP "$file_magic_regex" > /dev/null; then
+ :
+ else
+ cat <<_LT_EOF 1>&2
+
+*** Warning: the command libtool uses to detect shared libraries,
+*** $file_magic_cmd, produces output that libtool cannot recognize.
+*** The result is that libtool may fail to recognize shared libraries
+*** as such. This will affect the creation of libtool libraries that
+*** depend on shared libraries, but programs linked with such libtool
+*** libraries will work regardless of this problem. Nevertheless, you
+*** may want to report the problem to your system manager and/or to
+*** bug-libtool@gnu.org
+
+_LT_EOF
+ fi ;;
+ esac
+ fi
+ break
+ fi
+ done
+ IFS=$lt_save_ifs
+ MAGIC_CMD=$lt_save_MAGIC_CMD
+ ;;
+esac])
+MAGIC_CMD=$lt_cv_path_MAGIC_CMD
+if test -n "$MAGIC_CMD"; then
+ AC_MSG_RESULT($MAGIC_CMD)
+else
+ AC_MSG_RESULT(no)
+fi
+_LT_DECL([], [MAGIC_CMD], [0],
+ [Used to examine libraries when file_magic_cmd begins with "file"])dnl
+])# _LT_PATH_TOOL_PREFIX
+
+# Old name:
+AU_ALIAS([AC_PATH_TOOL_PREFIX], [_LT_PATH_TOOL_PREFIX])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_PATH_TOOL_PREFIX], [])
+
+
+# _LT_PATH_MAGIC
+# --------------
+# find a file program that can recognize a shared library
+m4_defun([_LT_PATH_MAGIC],
+[_LT_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PATH)
+if test -z "$lt_cv_path_MAGIC_CMD"; then
+ if test -n "$ac_tool_prefix"; then
+ _LT_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH)
+ else
+ MAGIC_CMD=:
+ fi
+fi
+])# _LT_PATH_MAGIC
+
+
+# LT_PATH_LD
+# ----------
+# find the pathname to the GNU or non-GNU linker
+AC_DEFUN([LT_PATH_LD],
+[AC_REQUIRE([AC_PROG_CC])dnl
+AC_REQUIRE([AC_CANONICAL_HOST])dnl
+AC_REQUIRE([AC_CANONICAL_BUILD])dnl
+m4_require([_LT_DECL_SED])dnl
+m4_require([_LT_DECL_EGREP])dnl
+m4_require([_LT_PROG_ECHO_BACKSLASH])dnl
+
+AC_ARG_WITH([gnu-ld],
+ [AS_HELP_STRING([--with-gnu-ld],
+ [assume the C compiler uses GNU ld @<:@default=no@:>@])],
+ [test no = "$withval" || with_gnu_ld=yes],
+ [with_gnu_ld=no])dnl
+
+ac_prog=ld
+if test yes = "$GCC"; then
+ # Check if gcc -print-prog-name=ld gives a path.
+ AC_MSG_CHECKING([for ld used by $CC])
+ case $host in
+ *-*-mingw*)
+ # gcc leaves a trailing carriage return, which upsets mingw
+ ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
+ *)
+ ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
+ esac
+ case $ac_prog in
+ # Accept absolute paths.
+ [[\\/]]* | ?:[[\\/]]*)
+ re_direlt='/[[^/]][[^/]]*/\.\./'
+ # Canonicalize the pathname of ld
+ ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'`
+ while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do
+ ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"`
+ done
+ test -z "$LD" && LD=$ac_prog
+ ;;
+ "")
+ # If it fails, then pretend we aren't using GCC.
+ ac_prog=ld
+ ;;
+ *)
+ # If it is relative, then search for the first ld in PATH.
+ with_gnu_ld=unknown
+ ;;
+ esac
+elif test yes = "$with_gnu_ld"; then
+ AC_MSG_CHECKING([for GNU ld])
+else
+ AC_MSG_CHECKING([for non-GNU ld])
+fi
+AC_CACHE_VAL(lt_cv_path_LD,
+[if test -z "$LD"; then
+ lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR
+ for ac_dir in $PATH; do
+ IFS=$lt_save_ifs
+ test -z "$ac_dir" && ac_dir=.
+ if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
+ lt_cv_path_LD=$ac_dir/$ac_prog
+ # Check to see if the program is GNU ld. I'd rather use --version,
+ # but apparently some variants of GNU ld only accept -v.
+ # Break only if it was the GNU/non-GNU ld that we prefer.
+ case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in
+ *GNU* | *'with BFD'*)
+ test no != "$with_gnu_ld" && break
+ ;;
+ *)
+ test yes != "$with_gnu_ld" && break
+ ;;
+ esac
+ fi
+ done
+ IFS=$lt_save_ifs
+else
+ lt_cv_path_LD=$LD # Let the user override the test with a path.
+fi])
+LD=$lt_cv_path_LD
+if test -n "$LD"; then
+ AC_MSG_RESULT($LD)
+else
+ AC_MSG_RESULT(no)
+fi
+test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH])
+_LT_PATH_LD_GNU
+AC_SUBST([LD])
+
+_LT_TAGDECL([], [LD], [1], [The linker used to build libraries])
+])# LT_PATH_LD
+
+# Old names:
+AU_ALIAS([AM_PROG_LD], [LT_PATH_LD])
+AU_ALIAS([AC_PROG_LD], [LT_PATH_LD])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AM_PROG_LD], [])
+dnl AC_DEFUN([AC_PROG_LD], [])
+
+
+# _LT_PATH_LD_GNU
+#- --------------
+m4_defun([_LT_PATH_LD_GNU],
+[AC_CACHE_CHECK([if the linker ($LD) is GNU ld], lt_cv_prog_gnu_ld,
+[# I'd rather use --version here, but apparently some GNU lds only accept -v.
+case `$LD -v 2>&1 </dev/null` in
+*GNU* | *'with BFD'*)
+ lt_cv_prog_gnu_ld=yes
+ ;;
+*)
+ lt_cv_prog_gnu_ld=no
+ ;;
+esac])
+with_gnu_ld=$lt_cv_prog_gnu_ld
+])# _LT_PATH_LD_GNU
+
+
+# _LT_CMD_RELOAD
+# --------------
+# find reload flag for linker
+# -- PORTME Some linkers may need a different reload flag.
+m4_defun([_LT_CMD_RELOAD],
+[AC_CACHE_CHECK([for $LD option to reload object files],
+ lt_cv_ld_reload_flag,
+ [lt_cv_ld_reload_flag='-r'])
+reload_flag=$lt_cv_ld_reload_flag
+case $reload_flag in
+"" | " "*) ;;
+*) reload_flag=" $reload_flag" ;;
+esac
+reload_cmds='$LD$reload_flag -o $output$reload_objs'
+case $host_os in
+ cygwin* | mingw* | pw32* | cegcc*)
+ if test yes != "$GCC"; then
+ reload_cmds=false
+ fi
+ ;;
+ darwin*)
+ if test yes = "$GCC"; then
+ reload_cmds='$LTCC $LTCFLAGS -nostdlib $wl-r -o $output$reload_objs'
+ else
+ reload_cmds='$LD$reload_flag -o $output$reload_objs'
+ fi
+ ;;
+esac
+_LT_TAGDECL([], [reload_flag], [1], [How to create reloadable object files])dnl
+_LT_TAGDECL([], [reload_cmds], [2])dnl
+])# _LT_CMD_RELOAD
+
+
+# _LT_PATH_DD
+# -----------
+# find a working dd
+m4_defun([_LT_PATH_DD],
+[AC_CACHE_CHECK([for a working dd], [ac_cv_path_lt_DD],
+[printf 0123456789abcdef0123456789abcdef >conftest.i
+cat conftest.i conftest.i >conftest2.i
+: ${lt_DD:=$DD}
+AC_PATH_PROGS_FEATURE_CHECK([lt_DD], [dd],
+[if "$ac_path_lt_DD" bs=32 count=1 <conftest2.i >conftest.out 2>/dev/null; then
+ cmp -s conftest.i conftest.out \
+ && ac_cv_path_lt_DD="$ac_path_lt_DD" ac_path_lt_DD_found=:
+fi])
+rm -f conftest.i conftest2.i conftest.out])
+])# _LT_PATH_DD
+
+
+# _LT_CMD_TRUNCATE
+# ----------------
+# find command to truncate a binary pipe
+m4_defun([_LT_CMD_TRUNCATE],
+[m4_require([_LT_PATH_DD])
+AC_CACHE_CHECK([how to truncate binary pipes], [lt_cv_truncate_bin],
+[printf 0123456789abcdef0123456789abcdef >conftest.i
+cat conftest.i conftest.i >conftest2.i
+lt_cv_truncate_bin=
+if "$ac_cv_path_lt_DD" bs=32 count=1 <conftest2.i >conftest.out 2>/dev/null; then
+ cmp -s conftest.i conftest.out \
+ && lt_cv_truncate_bin="$ac_cv_path_lt_DD bs=4096 count=1"
+fi
+rm -f conftest.i conftest2.i conftest.out
+test -z "$lt_cv_truncate_bin" && lt_cv_truncate_bin="$SED -e 4q"])
+_LT_DECL([lt_truncate_bin], [lt_cv_truncate_bin], [1],
+ [Command to truncate a binary pipe])
+])# _LT_CMD_TRUNCATE
+
+
+# _LT_CHECK_MAGIC_METHOD
+# ----------------------
+# how to check for library dependencies
+# -- PORTME fill in with the dynamic library characteristics
+m4_defun([_LT_CHECK_MAGIC_METHOD],
+[m4_require([_LT_DECL_EGREP])
+m4_require([_LT_DECL_OBJDUMP])
+AC_CACHE_CHECK([how to recognize dependent libraries],
+lt_cv_deplibs_check_method,
+[lt_cv_file_magic_cmd='$MAGIC_CMD'
+lt_cv_file_magic_test_file=
+lt_cv_deplibs_check_method='unknown'
+# Need to set the preceding variable on all platforms that support
+# interlibrary dependencies.
+# 'none' -- dependencies not supported.
+# 'unknown' -- same as none, but documents that we really don't know.
+# 'pass_all' -- all dependencies passed with no checks.
+# 'test_compile' -- check by making test program.
+# 'file_magic [[regex]]' -- check by looking for files in library path
+# that responds to the $file_magic_cmd with a given extended regex.
+# If you have 'file' or equivalent on your system and you're not sure
+# whether 'pass_all' will *always* work, you probably want this one.
+
+case $host_os in
+aix[[4-9]]*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+beos*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+bsdi[[45]]*)
+ lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib)'
+ lt_cv_file_magic_cmd='/usr/bin/file -L'
+ lt_cv_file_magic_test_file=/shlib/libc.so
+ ;;
+
+cygwin*)
+ # func_win32_libid is a shell function defined in ltmain.sh
+ lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
+ lt_cv_file_magic_cmd='func_win32_libid'
+ ;;
+
+mingw* | pw32*)
+ # Base MSYS/MinGW do not provide the 'file' command needed by
+ # func_win32_libid shell function, so use a weaker test based on 'objdump',
+ # unless we find 'file', for example because we are cross-compiling.
+ if ( file / ) >/dev/null 2>&1; then
+ lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
+ lt_cv_file_magic_cmd='func_win32_libid'
+ else
+ # Keep this pattern in sync with the one in func_win32_libid.
+ lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)'
+ lt_cv_file_magic_cmd='$OBJDUMP -f'
+ fi
+ ;;
+
+cegcc*)
+ # use the weaker test based on 'objdump'. See mingw*.
+ lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?'
+ lt_cv_file_magic_cmd='$OBJDUMP -f'
+ ;;
+
+darwin* | rhapsody*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+freebsd* | dragonfly*)
+ if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
+ case $host_cpu in
+ i*86 )
+ # Not sure whether the presence of OpenBSD here was a mistake.
+ # Let's accept both of them until this is cleared up.
+ lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[[3-9]]86 (compact )?demand paged shared library'
+ lt_cv_file_magic_cmd=/usr/bin/file
+ lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
+ ;;
+ esac
+ else
+ lt_cv_deplibs_check_method=pass_all
+ fi
+ ;;
+
+haiku*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+hpux10.20* | hpux11*)
+ lt_cv_file_magic_cmd=/usr/bin/file
+ case $host_cpu in
+ ia64*)
+ lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64'
+ lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so
+ ;;
+ hppa*64*)
+ [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]']
+ lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl
+ ;;
+ *)
+ lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]]\.[[0-9]]) shared library'
+ lt_cv_file_magic_test_file=/usr/lib/libc.sl
+ ;;
+ esac
+ ;;
+
+interix[[3-9]]*)
+ # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here
+ lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|\.a)$'
+ ;;
+
+irix5* | irix6* | nonstopux*)
+ case $LD in
+ *-32|*"-32 ") libmagic=32-bit;;
+ *-n32|*"-n32 ") libmagic=N32;;
+ *-64|*"-64 ") libmagic=64-bit;;
+ *) libmagic=never-match;;
+ esac
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+# This must be glibc/ELF.
+linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+netbsd*)
+ if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
+ lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$'
+ else
+ lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|_pic\.a)$'
+ fi
+ ;;
+
+newos6*)
+ lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)'
+ lt_cv_file_magic_cmd=/usr/bin/file
+ lt_cv_file_magic_test_file=/usr/lib/libnls.so
+ ;;
+
+*nto* | *qnx*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+openbsd* | bitrig*)
+ if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then
+ lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|\.so|_pic\.a)$'
+ else
+ lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$'
+ fi
+ ;;
+
+osf3* | osf4* | osf5*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+rdos*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+solaris*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+sysv4 | sysv4.3*)
+ case $host_vendor in
+ motorola)
+ lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib) M[[0-9]][[0-9]]* Version [[0-9]]'
+ lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*`
+ ;;
+ ncr)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+ sequent)
+ lt_cv_file_magic_cmd='/bin/file'
+ lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )'
+ ;;
+ sni)
+ lt_cv_file_magic_cmd='/bin/file'
+ lt_cv_deplibs_check_method="file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB dynamic lib"
+ lt_cv_file_magic_test_file=/lib/libc.so
+ ;;
+ siemens)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+ pc)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+ esac
+ ;;
+
+tpf*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+os2*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+esac
+])
+
+file_magic_glob=
+want_nocaseglob=no
+if test "$build" = "$host"; then
+ case $host_os in
+ mingw* | pw32*)
+ if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then
+ want_nocaseglob=yes
+ else
+ file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[[\1]]\/[[\1]]\/g;/g"`
+ fi
+ ;;
+ esac
+fi
+
+file_magic_cmd=$lt_cv_file_magic_cmd
+deplibs_check_method=$lt_cv_deplibs_check_method
+test -z "$deplibs_check_method" && deplibs_check_method=unknown
+
+_LT_DECL([], [deplibs_check_method], [1],
+ [Method to check whether dependent libraries are shared objects])
+_LT_DECL([], [file_magic_cmd], [1],
+ [Command to use when deplibs_check_method = "file_magic"])
+_LT_DECL([], [file_magic_glob], [1],
+ [How to find potential files when deplibs_check_method = "file_magic"])
+_LT_DECL([], [want_nocaseglob], [1],
+ [Find potential files using nocaseglob when deplibs_check_method = "file_magic"])
+])# _LT_CHECK_MAGIC_METHOD
+
+
+# LT_PATH_NM
+# ----------
+# find the pathname to a BSD- or MS-compatible name lister
+AC_DEFUN([LT_PATH_NM],
+[AC_REQUIRE([AC_PROG_CC])dnl
+AC_CACHE_CHECK([for BSD- or MS-compatible name lister (nm)], lt_cv_path_NM,
+[if test -n "$NM"; then
+ # Let the user override the test.
+ lt_cv_path_NM=$NM
+else
+ lt_nm_to_check=${ac_tool_prefix}nm
+ if test -n "$ac_tool_prefix" && test "$build" = "$host"; then
+ lt_nm_to_check="$lt_nm_to_check nm"
+ fi
+ for lt_tmp_nm in $lt_nm_to_check; do
+ lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR
+ for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do
+ IFS=$lt_save_ifs
+ test -z "$ac_dir" && ac_dir=.
+ tmp_nm=$ac_dir/$lt_tmp_nm
+ if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext"; then
+ # Check to see if the nm accepts a BSD-compat flag.
+ # Adding the 'sed 1q' prevents false positives on HP-UX, which says:
+ # nm: unknown option "B" ignored
+ # Tru64's nm complains that /dev/null is an invalid object file
+ # MSYS converts /dev/null to NUL, MinGW nm treats NUL as empty
+ case $build_os in
+ mingw*) lt_bad_file=conftest.nm/nofile ;;
+ *) lt_bad_file=/dev/null ;;
+ esac
+ case `"$tmp_nm" -B $lt_bad_file 2>&1 | sed '1q'` in
+ *$lt_bad_file* | *'Invalid file or object type'*)
+ lt_cv_path_NM="$tmp_nm -B"
+ break 2
+ ;;
+ *)
+ case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in
+ */dev/null*)
+ lt_cv_path_NM="$tmp_nm -p"
+ break 2
+ ;;
+ *)
+ lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but
+ continue # so that we can try to find one that supports BSD flags
+ ;;
+ esac
+ ;;
+ esac
+ fi
+ done
+ IFS=$lt_save_ifs
+ done
+ : ${lt_cv_path_NM=no}
+fi])
+if test no != "$lt_cv_path_NM"; then
+ NM=$lt_cv_path_NM
+else
+ # Didn't find any BSD compatible name lister, look for dumpbin.
+ if test -n "$DUMPBIN"; then :
+ # Let the user override the test.
+ else
+ AC_CHECK_TOOLS(DUMPBIN, [dumpbin "link -dump"], :)
+ case `$DUMPBIN -symbols -headers /dev/null 2>&1 | sed '1q'` in
+ *COFF*)
+ DUMPBIN="$DUMPBIN -symbols -headers"
+ ;;
+ *)
+ DUMPBIN=:
+ ;;
+ esac
+ fi
+ AC_SUBST([DUMPBIN])
+ if test : != "$DUMPBIN"; then
+ NM=$DUMPBIN
+ fi
+fi
+test -z "$NM" && NM=nm
+AC_SUBST([NM])
+_LT_DECL([], [NM], [1], [A BSD- or MS-compatible name lister])dnl
+
+AC_CACHE_CHECK([the name lister ($NM) interface], [lt_cv_nm_interface],
+ [lt_cv_nm_interface="BSD nm"
+ echo "int some_variable = 0;" > conftest.$ac_ext
+ (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&AS_MESSAGE_LOG_FD)
+ (eval "$ac_compile" 2>conftest.err)
+ cat conftest.err >&AS_MESSAGE_LOG_FD
+ (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&AS_MESSAGE_LOG_FD)
+ (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out)
+ cat conftest.err >&AS_MESSAGE_LOG_FD
+ (eval echo "\"\$as_me:$LINENO: output\"" >&AS_MESSAGE_LOG_FD)
+ cat conftest.out >&AS_MESSAGE_LOG_FD
+ if $GREP 'External.*some_variable' conftest.out > /dev/null; then
+ lt_cv_nm_interface="MS dumpbin"
+ fi
+ rm -f conftest*])
+])# LT_PATH_NM
+
+# Old names:
+AU_ALIAS([AM_PROG_NM], [LT_PATH_NM])
+AU_ALIAS([AC_PROG_NM], [LT_PATH_NM])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AM_PROG_NM], [])
+dnl AC_DEFUN([AC_PROG_NM], [])
+
+# _LT_CHECK_SHAREDLIB_FROM_LINKLIB
+# --------------------------------
+# how to determine the name of the shared library
+# associated with a specific link library.
+# -- PORTME fill in with the dynamic library characteristics
+m4_defun([_LT_CHECK_SHAREDLIB_FROM_LINKLIB],
+[m4_require([_LT_DECL_EGREP])
+m4_require([_LT_DECL_OBJDUMP])
+m4_require([_LT_DECL_DLLTOOL])
+AC_CACHE_CHECK([how to associate runtime and link libraries],
+lt_cv_sharedlib_from_linklib_cmd,
+[lt_cv_sharedlib_from_linklib_cmd='unknown'
+
+case $host_os in
+cygwin* | mingw* | pw32* | cegcc*)
+ # two different shell functions defined in ltmain.sh;
+ # decide which one to use based on capabilities of $DLLTOOL
+ case `$DLLTOOL --help 2>&1` in
+ *--identify-strict*)
+ lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib
+ ;;
+ *)
+ lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback
+ ;;
+ esac
+ ;;
+*)
+ # fallback: assume linklib IS sharedlib
+ lt_cv_sharedlib_from_linklib_cmd=$ECHO
+ ;;
+esac
+])
+sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd
+test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO
+
+_LT_DECL([], [sharedlib_from_linklib_cmd], [1],
+ [Command to associate shared and link libraries])
+])# _LT_CHECK_SHAREDLIB_FROM_LINKLIB
+
+
+# _LT_PATH_MANIFEST_TOOL
+# ----------------------
+# locate the manifest tool
+m4_defun([_LT_PATH_MANIFEST_TOOL],
+[AC_CHECK_TOOL(MANIFEST_TOOL, mt, :)
+test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt
+AC_CACHE_CHECK([if $MANIFEST_TOOL is a manifest tool], [lt_cv_path_mainfest_tool],
+ [lt_cv_path_mainfest_tool=no
+ echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&AS_MESSAGE_LOG_FD
+ $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out
+ cat conftest.err >&AS_MESSAGE_LOG_FD
+ if $GREP 'Manifest Tool' conftest.out > /dev/null; then
+ lt_cv_path_mainfest_tool=yes
+ fi
+ rm -f conftest*])
+if test yes != "$lt_cv_path_mainfest_tool"; then
+ MANIFEST_TOOL=:
+fi
+_LT_DECL([], [MANIFEST_TOOL], [1], [Manifest tool])dnl
+])# _LT_PATH_MANIFEST_TOOL
+
+
+# _LT_DLL_DEF_P([FILE])
+# ---------------------
+# True iff FILE is a Windows DLL '.def' file.
+# Keep in sync with func_dll_def_p in the libtool script
+AC_DEFUN([_LT_DLL_DEF_P],
+[dnl
+ test DEF = "`$SED -n dnl
+ -e '\''s/^[[ ]]*//'\'' dnl Strip leading whitespace
+ -e '\''/^\(;.*\)*$/d'\'' dnl Delete empty lines and comments
+ -e '\''s/^\(EXPORTS\|LIBRARY\)\([[ ]].*\)*$/DEF/p'\'' dnl
+ -e q dnl Only consider the first "real" line
+ $1`" dnl
+])# _LT_DLL_DEF_P
+
+
+# LT_LIB_M
+# --------
+# check for math library
+AC_DEFUN([LT_LIB_M],
+[AC_REQUIRE([AC_CANONICAL_HOST])dnl
+LIBM=
+case $host in
+*-*-beos* | *-*-cegcc* | *-*-cygwin* | *-*-haiku* | *-*-pw32* | *-*-darwin*)
+ # These system don't have libm, or don't need it
+ ;;
+*-ncr-sysv4.3*)
+ AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM=-lmw)
+ AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm")
+ ;;
+*)
+ AC_CHECK_LIB(m, cos, LIBM=-lm)
+ ;;
+esac
+AC_SUBST([LIBM])
+])# LT_LIB_M
+
+# Old name:
+AU_ALIAS([AC_CHECK_LIBM], [LT_LIB_M])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_CHECK_LIBM], [])
+
+
+# _LT_COMPILER_NO_RTTI([TAGNAME])
+# -------------------------------
+m4_defun([_LT_COMPILER_NO_RTTI],
+[m4_require([_LT_TAG_COMPILER])dnl
+
+_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=
+
+if test yes = "$GCC"; then
+ case $cc_basename in
+ nvcc*)
+ _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -Xcompiler -fno-builtin' ;;
+ *)
+ _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' ;;
+ esac
+
+ _LT_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions],
+ lt_cv_prog_compiler_rtti_exceptions,
+ [-fno-rtti -fno-exceptions], [],
+ [_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"])
+fi
+_LT_TAGDECL([no_builtin_flag], [lt_prog_compiler_no_builtin_flag], [1],
+ [Compiler flag to turn off builtin functions])
+])# _LT_COMPILER_NO_RTTI
+
+
+# _LT_CMD_GLOBAL_SYMBOLS
+# ----------------------
+m4_defun([_LT_CMD_GLOBAL_SYMBOLS],
+[AC_REQUIRE([AC_CANONICAL_HOST])dnl
+AC_REQUIRE([AC_PROG_CC])dnl
+AC_REQUIRE([AC_PROG_AWK])dnl
+AC_REQUIRE([LT_PATH_NM])dnl
+AC_REQUIRE([LT_PATH_LD])dnl
+m4_require([_LT_DECL_SED])dnl
+m4_require([_LT_DECL_EGREP])dnl
+m4_require([_LT_TAG_COMPILER])dnl
+
+# Check for command to grab the raw symbol name followed by C symbol from nm.
+AC_MSG_CHECKING([command to parse $NM output from $compiler object])
+AC_CACHE_VAL([lt_cv_sys_global_symbol_pipe],
+[
+# These are sane defaults that work on at least a few old systems.
+# [They come from Ultrix. What could be older than Ultrix?!! ;)]
+
+# Character class describing NM global symbol codes.
+symcode='[[BCDEGRST]]'
+
+# Regexp to match symbols that can be accessed directly from C.
+sympat='\([[_A-Za-z]][[_A-Za-z0-9]]*\)'
+
+# Define system-specific variables.
+case $host_os in
+aix*)
+ symcode='[[BCDT]]'
+ ;;
+cygwin* | mingw* | pw32* | cegcc*)
+ symcode='[[ABCDGISTW]]'
+ ;;
+hpux*)
+ if test ia64 = "$host_cpu"; then
+ symcode='[[ABCDEGRST]]'
+ fi
+ ;;
+irix* | nonstopux*)
+ symcode='[[BCDEGRST]]'
+ ;;
+osf*)
+ symcode='[[BCDEGQRST]]'
+ ;;
+solaris*)
+ symcode='[[BDRT]]'
+ ;;
+sco3.2v5*)
+ symcode='[[DT]]'
+ ;;
+sysv4.2uw2*)
+ symcode='[[DT]]'
+ ;;
+sysv5* | sco5v6* | unixware* | OpenUNIX*)
+ symcode='[[ABDT]]'
+ ;;
+sysv4)
+ symcode='[[DFNSTU]]'
+ ;;
+esac
+
+# If we're using GNU nm, then use its standard symbol codes.
+case `$NM -V 2>&1` in
+*GNU* | *'with BFD'*)
+ symcode='[[ABCDGIRSTW]]' ;;
+esac
+
+if test "$lt_cv_nm_interface" = "MS dumpbin"; then
+ # Gets list of data symbols to import.
+ lt_cv_sys_global_symbol_to_import="sed -n -e 's/^I .* \(.*\)$/\1/p'"
+ # Adjust the below global symbol transforms to fixup imported variables.
+ lt_cdecl_hook=" -e 's/^I .* \(.*\)$/extern __declspec(dllimport) char \1;/p'"
+ lt_c_name_hook=" -e 's/^I .* \(.*\)$/ {\"\1\", (void *) 0},/p'"
+ lt_c_name_lib_hook="\
+ -e 's/^I .* \(lib.*\)$/ {\"\1\", (void *) 0},/p'\
+ -e 's/^I .* \(.*\)$/ {\"lib\1\", (void *) 0},/p'"
+else
+ # Disable hooks by default.
+ lt_cv_sys_global_symbol_to_import=
+ lt_cdecl_hook=
+ lt_c_name_hook=
+ lt_c_name_lib_hook=
+fi
+
+# Transform an extracted symbol line into a proper C declaration.
+# Some systems (esp. on ia64) link data and code symbols differently,
+# so use this general approach.
+lt_cv_sys_global_symbol_to_cdecl="sed -n"\
+$lt_cdecl_hook\
+" -e 's/^T .* \(.*\)$/extern int \1();/p'"\
+" -e 's/^$symcode$symcode* .* \(.*\)$/extern char \1;/p'"
+
+# Transform an extracted symbol line into symbol name and symbol address
+lt_cv_sys_global_symbol_to_c_name_address="sed -n"\
+$lt_c_name_hook\
+" -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\
+" -e 's/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/p'"
+
+# Transform an extracted symbol line into symbol name with lib prefix and
+# symbol address.
+lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n"\
+$lt_c_name_lib_hook\
+" -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\
+" -e 's/^$symcode$symcode* .* \(lib.*\)$/ {\"\1\", (void *) \&\1},/p'"\
+" -e 's/^$symcode$symcode* .* \(.*\)$/ {\"lib\1\", (void *) \&\1},/p'"
+
+# Handle CRLF in mingw tool chain
+opt_cr=
+case $build_os in
+mingw*)
+ opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp
+ ;;
+esac
+
+# Try without a prefix underscore, then with it.
+for ac_symprfx in "" "_"; do
+
+ # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol.
+ symxfrm="\\1 $ac_symprfx\\2 \\2"
+
+ # Write the raw and C identifiers.
+ if test "$lt_cv_nm_interface" = "MS dumpbin"; then
+ # Fake it for dumpbin and say T for any non-static function,
+ # D for any global variable and I for any imported variable.
+ # Also find C++ and __fastcall symbols from MSVC++,
+ # which start with @ or ?.
+ lt_cv_sys_global_symbol_pipe="$AWK ['"\
+" {last_section=section; section=\$ 3};"\
+" /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\
+" /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\
+" /^ *Symbol name *: /{split(\$ 0,sn,\":\"); si=substr(sn[2],2)};"\
+" /^ *Type *: code/{print \"T\",si,substr(si,length(prfx))};"\
+" /^ *Type *: data/{print \"I\",si,substr(si,length(prfx))};"\
+" \$ 0!~/External *\|/{next};"\
+" / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\
+" {if(hide[section]) next};"\
+" {f=\"D\"}; \$ 0~/\(\).*\|/{f=\"T\"};"\
+" {split(\$ 0,a,/\||\r/); split(a[2],s)};"\
+" s[1]~/^[@?]/{print f,s[1],s[1]; next};"\
+" s[1]~prfx {split(s[1],t,\"@\"); print f,t[1],substr(t[1],length(prfx))}"\
+" ' prfx=^$ac_symprfx]"
+ else
+ lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
+ fi
+ lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'"
+
+ # Check to see that the pipe works correctly.
+ pipe_works=no
+
+ rm -f conftest*
+ cat > conftest.$ac_ext <<_LT_EOF
+#ifdef __cplusplus
+extern "C" {
+#endif
+char nm_test_var;
+void nm_test_func(void);
+void nm_test_func(void){}
+#ifdef __cplusplus
+}
+#endif
+int main(){nm_test_var='a';nm_test_func();return(0);}
+_LT_EOF
+
+ if AC_TRY_EVAL(ac_compile); then
+ # Now try to grab the symbols.
+ nlist=conftest.nm
+ if AC_TRY_EVAL(NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) && test -s "$nlist"; then
+ # Try sorting and uniquifying the output.
+ if sort "$nlist" | uniq > "$nlist"T; then
+ mv -f "$nlist"T "$nlist"
+ else
+ rm -f "$nlist"T
+ fi
+
+ # Make sure that we snagged all the symbols we need.
+ if $GREP ' nm_test_var$' "$nlist" >/dev/null; then
+ if $GREP ' nm_test_func$' "$nlist" >/dev/null; then
+ cat <<_LT_EOF > conftest.$ac_ext
+/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */
+#if defined _WIN32 || defined __CYGWIN__ || defined _WIN32_WCE
+/* DATA imports from DLLs on WIN32 can't be const, because runtime
+ relocations are performed -- see ld's documentation on pseudo-relocs. */
+# define LT@&t@_DLSYM_CONST
+#elif defined __osf__
+/* This system does not cope well with relocations in const data. */
+# define LT@&t@_DLSYM_CONST
+#else
+# define LT@&t@_DLSYM_CONST const
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+_LT_EOF
+ # Now generate the symbol file.
+ eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext'
+
+ cat <<_LT_EOF >> conftest.$ac_ext
+
+/* The mapping between symbol names and symbols. */
+LT@&t@_DLSYM_CONST struct {
+ const char *name;
+ void *address;
+}
+lt__PROGRAM__LTX_preloaded_symbols[[]] =
+{
+ { "@PROGRAM@", (void *) 0 },
+_LT_EOF
+ $SED "s/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext
+ cat <<\_LT_EOF >> conftest.$ac_ext
+ {0, (void *) 0}
+};
+
+/* This works around a problem in FreeBSD linker */
+#ifdef FREEBSD_WORKAROUND
+static const void *lt_preloaded_setup() {
+ return lt__PROGRAM__LTX_preloaded_symbols;
+}
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+_LT_EOF
+ # Now try linking the two files.
+ mv conftest.$ac_objext conftstm.$ac_objext
+ lt_globsym_save_LIBS=$LIBS
+ lt_globsym_save_CFLAGS=$CFLAGS
+ LIBS=conftstm.$ac_objext
+ CFLAGS="$CFLAGS$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)"
+ if AC_TRY_EVAL(ac_link) && test -s conftest$ac_exeext; then
+ pipe_works=yes
+ fi
+ LIBS=$lt_globsym_save_LIBS
+ CFLAGS=$lt_globsym_save_CFLAGS
+ else
+ echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD
+ fi
+ else
+ echo "cannot find nm_test_var in $nlist" >&AS_MESSAGE_LOG_FD
+ fi
+ else
+ echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD
+ fi
+ else
+ echo "$progname: failed program was:" >&AS_MESSAGE_LOG_FD
+ cat conftest.$ac_ext >&5
+ fi
+ rm -rf conftest* conftst*
+
+ # Do not use the global_symbol_pipe unless it works.
+ if test yes = "$pipe_works"; then
+ break
+ else
+ lt_cv_sys_global_symbol_pipe=
+ fi
+done
+])
+if test -z "$lt_cv_sys_global_symbol_pipe"; then
+ lt_cv_sys_global_symbol_to_cdecl=
+fi
+if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then
+ AC_MSG_RESULT(failed)
+else
+ AC_MSG_RESULT(ok)
+fi
+
+# Response file support.
+if test "$lt_cv_nm_interface" = "MS dumpbin"; then
+ nm_file_list_spec='@'
+elif $NM --help 2>/dev/null | grep '[[@]]FILE' >/dev/null; then
+ nm_file_list_spec='@'
+fi
+
+_LT_DECL([global_symbol_pipe], [lt_cv_sys_global_symbol_pipe], [1],
+ [Take the output of nm and produce a listing of raw symbols and C names])
+_LT_DECL([global_symbol_to_cdecl], [lt_cv_sys_global_symbol_to_cdecl], [1],
+ [Transform the output of nm in a proper C declaration])
+_LT_DECL([global_symbol_to_import], [lt_cv_sys_global_symbol_to_import], [1],
+ [Transform the output of nm into a list of symbols to manually relocate])
+_LT_DECL([global_symbol_to_c_name_address],
+ [lt_cv_sys_global_symbol_to_c_name_address], [1],
+ [Transform the output of nm in a C name address pair])
+_LT_DECL([global_symbol_to_c_name_address_lib_prefix],
+ [lt_cv_sys_global_symbol_to_c_name_address_lib_prefix], [1],
+ [Transform the output of nm in a C name address pair when lib prefix is needed])
+_LT_DECL([nm_interface], [lt_cv_nm_interface], [1],
+ [The name lister interface])
+_LT_DECL([], [nm_file_list_spec], [1],
+ [Specify filename containing input files for $NM])
+]) # _LT_CMD_GLOBAL_SYMBOLS
+
+
+# _LT_COMPILER_PIC([TAGNAME])
+# ---------------------------
+m4_defun([_LT_COMPILER_PIC],
+[m4_require([_LT_TAG_COMPILER])dnl
+_LT_TAGVAR(lt_prog_compiler_wl, $1)=
+_LT_TAGVAR(lt_prog_compiler_pic, $1)=
+_LT_TAGVAR(lt_prog_compiler_static, $1)=
+
+m4_if([$1], [CXX], [
+ # C++ specific cases for pic, static, wl, etc.
+ if test yes = "$GXX"; then
+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
+
+ case $host_os in
+ aix*)
+ # All AIX code is PIC.
+ if test ia64 = "$host_cpu"; then
+ # AIX 5 now supports IA64 processor
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+ fi
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+ ;;
+
+ amigaos*)
+ case $host_cpu in
+ powerpc)
+ # see comment about AmigaOS4 .so support
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+ ;;
+ m68k)
+ # FIXME: we need at least 68020 code to build shared libraries, but
+ # adding the '-m68020' flag to GCC prevents building anything better,
+ # like '-m68040'.
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4'
+ ;;
+ esac
+ ;;
+
+ beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
+ # PIC is the default for these OSes.
+ ;;
+ mingw* | cygwin* | os2* | pw32* | cegcc*)
+ # This hack is so that the source file can tell whether it is being
+ # built for inclusion in a dll (and should export symbols for example).
+ # Although the cygwin gcc ignores -fPIC, still need this for old-style
+ # (--disable-auto-import) libraries
+ m4_if([$1], [GCJ], [],
+ [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'])
+ case $host_os in
+ os2*)
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-static'
+ ;;
+ esac
+ ;;
+ darwin* | rhapsody*)
+ # PIC is the default on this platform
+ # Common symbols not allowed in MH_DYLIB files
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common'
+ ;;
+ *djgpp*)
+ # DJGPP does not support shared libraries at all
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)=
+ ;;
+ haiku*)
+ # PIC is the default for Haiku.
+ # The "-static" flag exists, but is broken.
+ _LT_TAGVAR(lt_prog_compiler_static, $1)=
+ ;;
+ interix[[3-9]]*)
+ # Interix 3.x gcc -fpic/-fPIC options generate broken code.
+ # Instead, we relocate shared libraries at runtime.
+ ;;
+ sysv4*MP*)
+ if test -d /usr/nec; then
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic
+ fi
+ ;;
+ hpux*)
+ # PIC is the default for 64-bit PA HP-UX, but not for 32-bit
+ # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag
+ # sets the default TLS model and affects inlining.
+ case $host_cpu in
+ hppa*64*)
+ ;;
+ *)
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+ ;;
+ esac
+ ;;
+ *qnx* | *nto*)
+ # QNX uses GNU C++, but need to define -shared option too, otherwise
+ # it will coredump.
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared'
+ ;;
+ *)
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+ ;;
+ esac
+ else
+ case $host_os in
+ aix[[4-9]]*)
+ # All AIX code is PIC.
+ if test ia64 = "$host_cpu"; then
+ # AIX 5 now supports IA64 processor
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+ else
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp'
+ fi
+ ;;
+ chorus*)
+ case $cc_basename in
+ cxch68*)
+ # Green Hills C++ Compiler
+ # _LT_TAGVAR(lt_prog_compiler_static, $1)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a"
+ ;;
+ esac
+ ;;
+ mingw* | cygwin* | os2* | pw32* | cegcc*)
+ # This hack is so that the source file can tell whether it is being
+ # built for inclusion in a dll (and should export symbols for example).
+ m4_if([$1], [GCJ], [],
+ [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'])
+ ;;
+ dgux*)
+ case $cc_basename in
+ ec++*)
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+ ;;
+ ghcx*)
+ # Green Hills C++ Compiler
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
+ ;;
+ *)
+ ;;
+ esac
+ ;;
+ freebsd* | dragonfly*)
+ # FreeBSD uses GNU C++
+ ;;
+ hpux9* | hpux10* | hpux11*)
+ case $cc_basename in
+ CC*)
+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-a ${wl}archive'
+ if test ia64 != "$host_cpu"; then
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
+ fi
+ ;;
+ aCC*)
+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-a ${wl}archive'
+ case $host_cpu in
+ hppa*64*|ia64*)
+ # +Z the default
+ ;;
+ *)
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
+ ;;
+ esac
+ ;;
+ *)
+ ;;
+ esac
+ ;;
+ interix*)
+ # This is c89, which is MS Visual C++ (no shared libs)
+ # Anyone wants to do a port?
+ ;;
+ irix5* | irix6* | nonstopux*)
+ case $cc_basename in
+ CC*)
+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+ # CC pic flag -KPIC is the default.
+ ;;
+ *)
+ ;;
+ esac
+ ;;
+ linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
+ case $cc_basename in
+ KCC*)
+ # KAI C++ Compiler
+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,'
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+ ;;
+ ecpc* )
+ # old Intel C++ for x86_64, which still supported -KPIC.
+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
+ ;;
+ icpc* )
+ # Intel C++, used to be incompatible with GCC.
+ # ICC 10 doesn't accept -KPIC any more.
+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
+ ;;
+ pgCC* | pgcpp*)
+ # Portland Group C++ compiler
+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic'
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+ ;;
+ cxx*)
+ # Compaq C++
+ # Make sure the PIC flag is empty. It appears that all Alpha
+ # Linux and Compaq Tru64 Unix objects are PIC.
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)=
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+ ;;
+ xlc* | xlC* | bgxl[[cC]]* | mpixl[[cC]]*)
+ # IBM XL 8.0, 9.0 on PPC and BlueGene
+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic'
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink'
+ ;;
+ *)
+ case `$CC -V 2>&1 | sed 5q` in
+ *Sun\ C*)
+ # Sun C++ 5.9
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
+ ;;
+ esac
+ ;;
+ esac
+ ;;
+ lynxos*)
+ ;;
+ m88k*)
+ ;;
+ mvs*)
+ case $cc_basename in
+ cxx*)
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall'
+ ;;
+ *)
+ ;;
+ esac
+ ;;
+ netbsd*)
+ ;;
+ *qnx* | *nto*)
+ # QNX uses GNU C++, but need to define -shared option too, otherwise
+ # it will coredump.
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared'
+ ;;
+ osf3* | osf4* | osf5*)
+ case $cc_basename in
+ KCC*)
+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,'
+ ;;
+ RCC*)
+ # Rational C++ 2.4.1
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
+ ;;
+ cxx*)
+ # Digital/Compaq C++
+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ # Make sure the PIC flag is empty. It appears that all Alpha
+ # Linux and Compaq Tru64 Unix objects are PIC.
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)=
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+ ;;
+ *)
+ ;;
+ esac
+ ;;
+ psos*)
+ ;;
+ solaris*)
+ case $cc_basename in
+ CC* | sunCC*)
+ # Sun C++ 4.2, 5.x and Centerline C++
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
+ ;;
+ gcx*)
+ # Green Hills C++ Compiler
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC'
+ ;;
+ *)
+ ;;
+ esac
+ ;;
+ sunos4*)
+ case $cc_basename in
+ CC*)
+ # Sun C++ 4.x
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+ ;;
+ lcc*)
+ # Lucid
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
+ ;;
+ *)
+ ;;
+ esac
+ ;;
+ sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
+ case $cc_basename in
+ CC*)
+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+ ;;
+ esac
+ ;;
+ tandem*)
+ case $cc_basename in
+ NCC*)
+ # NonStop-UX NCC 3.20
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+ ;;
+ *)
+ ;;
+ esac
+ ;;
+ vxworks*)
+ ;;
+ *)
+ _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
+ ;;
+ esac
+ fi
+],
+[
+ if test yes = "$GCC"; then
+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
+
+ case $host_os in
+ aix*)
+ # All AIX code is PIC.
+ if test ia64 = "$host_cpu"; then
+ # AIX 5 now supports IA64 processor
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+ fi
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+ ;;
+
+ amigaos*)
+ case $host_cpu in
+ powerpc)
+ # see comment about AmigaOS4 .so support
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+ ;;
+ m68k)
+ # FIXME: we need at least 68020 code to build shared libraries, but
+ # adding the '-m68020' flag to GCC prevents building anything better,
+ # like '-m68040'.
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4'
+ ;;
+ esac
+ ;;
+
+ beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
+ # PIC is the default for these OSes.
+ ;;
+
+ mingw* | cygwin* | pw32* | os2* | cegcc*)
+ # This hack is so that the source file can tell whether it is being
+ # built for inclusion in a dll (and should export symbols for example).
+ # Although the cygwin gcc ignores -fPIC, still need this for old-style
+ # (--disable-auto-import) libraries
+ m4_if([$1], [GCJ], [],
+ [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'])
+ case $host_os in
+ os2*)
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-static'
+ ;;
+ esac
+ ;;
+
+ darwin* | rhapsody*)
+ # PIC is the default on this platform
+ # Common symbols not allowed in MH_DYLIB files
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common'
+ ;;
+
+ haiku*)
+ # PIC is the default for Haiku.
+ # The "-static" flag exists, but is broken.
+ _LT_TAGVAR(lt_prog_compiler_static, $1)=
+ ;;
+
+ hpux*)
+ # PIC is the default for 64-bit PA HP-UX, but not for 32-bit
+ # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag
+ # sets the default TLS model and affects inlining.
+ case $host_cpu in
+ hppa*64*)
+ # +Z the default
+ ;;
+ *)
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+ ;;
+ esac
+ ;;
+
+ interix[[3-9]]*)
+ # Interix 3.x gcc -fpic/-fPIC options generate broken code.
+ # Instead, we relocate shared libraries at runtime.
+ ;;
+
+ msdosdjgpp*)
+ # Just because we use GCC doesn't mean we suddenly get shared libraries
+ # on systems that don't support them.
+ _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
+ enable_shared=no
+ ;;
+
+ *nto* | *qnx*)
+ # QNX uses GNU C++, but need to define -shared option too, otherwise
+ # it will coredump.
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared'
+ ;;
+
+ sysv4*MP*)
+ if test -d /usr/nec; then
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic
+ fi
+ ;;
+
+ *)
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+ ;;
+ esac
+
+ case $cc_basename in
+ nvcc*) # Cuda Compiler Driver 2.2
+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Xlinker '
+ if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)="-Xcompiler $_LT_TAGVAR(lt_prog_compiler_pic, $1)"
+ fi
+ ;;
+ esac
+ else
+ # PORTME Check for flag to pass linker flags through the system compiler.
+ case $host_os in
+ aix*)
+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ if test ia64 = "$host_cpu"; then
+ # AIX 5 now supports IA64 processor
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+ else
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp'
+ fi
+ ;;
+
+ darwin* | rhapsody*)
+ # PIC is the default on this platform
+ # Common symbols not allowed in MH_DYLIB files
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common'
+ case $cc_basename in
+ nagfor*)
+ # NAG Fortran compiler
+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,-Wl,,'
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC'
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+ ;;
+ esac
+ ;;
+
+ mingw* | cygwin* | pw32* | os2* | cegcc*)
+ # This hack is so that the source file can tell whether it is being
+ # built for inclusion in a dll (and should export symbols for example).
+ m4_if([$1], [GCJ], [],
+ [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'])
+ case $host_os in
+ os2*)
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-static'
+ ;;
+ esac
+ ;;
+
+ hpux9* | hpux10* | hpux11*)
+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
+ # not for PA HP-UX.
+ case $host_cpu in
+ hppa*64*|ia64*)
+ # +Z the default
+ ;;
+ *)
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
+ ;;
+ esac
+ # Is there a better lt_prog_compiler_static that works with the bundled CC?
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-a ${wl}archive'
+ ;;
+
+ irix5* | irix6* | nonstopux*)
+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ # PIC (with -KPIC) is the default.
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+ ;;
+
+ linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
+ case $cc_basename in
+ # old Intel for x86_64, which still supported -KPIC.
+ ecc*)
+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
+ ;;
+ # icc used to be incompatible with GCC.
+ # ICC 10 doesn't accept -KPIC any more.
+ icc* | ifort*)
+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
+ ;;
+ # Lahey Fortran 8.1.
+ lf95*)
+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='--shared'
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='--static'
+ ;;
+ nagfor*)
+ # NAG Fortran compiler
+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,-Wl,,'
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC'
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+ ;;
+ tcc*)
+ # Fabrice Bellard et al's Tiny C Compiler
+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
+ ;;
+ pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*)
+ # Portland Group compilers (*not* the Pentium gcc compiler,
+ # which looks to be a dead project)
+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic'
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+ ;;
+ ccc*)
+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ # All Alpha code is PIC.
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+ ;;
+ xl* | bgxl* | bgf* | mpixl*)
+ # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene
+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic'
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink'
+ ;;
+ *)
+ case `$CC -V 2>&1 | sed 5q` in
+ *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [[1-7]].* | *Sun*Fortran*\ 8.[[0-3]]*)
+ # Sun Fortran 8.3 passes all unrecognized flags to the linker
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+ _LT_TAGVAR(lt_prog_compiler_wl, $1)=''
+ ;;
+ *Sun\ F* | *Sun*Fortran*)
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
+ ;;
+ *Sun\ C*)
+ # Sun C 5.9
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ ;;
+ *Intel*\ [[CF]]*Compiler*)
+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
+ ;;
+ *Portland\ Group*)
+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic'
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+ ;;
+ esac
+ ;;
+ esac
+ ;;
+
+ newsos6)
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+ ;;
+
+ *nto* | *qnx*)
+ # QNX uses GNU C++, but need to define -shared option too, otherwise
+ # it will coredump.
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared'
+ ;;
+
+ osf3* | osf4* | osf5*)
+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ # All OSF/1 code is PIC.
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+ ;;
+
+ rdos*)
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+ ;;
+
+ solaris*)
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+ case $cc_basename in
+ f77* | f90* | f95* | sunf77* | sunf90* | sunf95*)
+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';;
+ *)
+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';;
+ esac
+ ;;
+
+ sunos4*)
+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC'
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+ ;;
+
+ sysv4 | sysv4.2uw2* | sysv4.3*)
+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+ ;;
+
+ sysv4*MP*)
+ if test -d /usr/nec; then
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic'
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+ fi
+ ;;
+
+ sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+ ;;
+
+ unicos*)
+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
+ ;;
+
+ uts4*)
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+ ;;
+
+ *)
+ _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
+ ;;
+ esac
+ fi
+])
+case $host_os in
+ # For platforms that do not support PIC, -DPIC is meaningless:
+ *djgpp*)
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)=
+ ;;
+ *)
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])"
+ ;;
+esac
+
+AC_CACHE_CHECK([for $compiler option to produce PIC],
+ [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)],
+ [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_prog_compiler_pic, $1)])
+_LT_TAGVAR(lt_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)
+
+#
+# Check to make sure the PIC flag actually works.
+#
+if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then
+ _LT_COMPILER_OPTION([if $compiler PIC flag $_LT_TAGVAR(lt_prog_compiler_pic, $1) works],
+ [_LT_TAGVAR(lt_cv_prog_compiler_pic_works, $1)],
+ [$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])], [],
+ [case $_LT_TAGVAR(lt_prog_compiler_pic, $1) in
+ "" | " "*) ;;
+ *) _LT_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_TAGVAR(lt_prog_compiler_pic, $1)" ;;
+ esac],
+ [_LT_TAGVAR(lt_prog_compiler_pic, $1)=
+ _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no])
+fi
+_LT_TAGDECL([pic_flag], [lt_prog_compiler_pic], [1],
+ [Additional compiler flags for building library objects])
+
+_LT_TAGDECL([wl], [lt_prog_compiler_wl], [1],
+ [How to pass a linker flag through the compiler])
+#
+# Check to make sure the static flag actually works.
+#
+wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) eval lt_tmp_static_flag=\"$_LT_TAGVAR(lt_prog_compiler_static, $1)\"
+_LT_LINKER_OPTION([if $compiler static flag $lt_tmp_static_flag works],
+ _LT_TAGVAR(lt_cv_prog_compiler_static_works, $1),
+ $lt_tmp_static_flag,
+ [],
+ [_LT_TAGVAR(lt_prog_compiler_static, $1)=])
+_LT_TAGDECL([link_static_flag], [lt_prog_compiler_static], [1],
+ [Compiler flag to prevent dynamic linking])
+])# _LT_COMPILER_PIC
+
+
+# _LT_LINKER_SHLIBS([TAGNAME])
+# ----------------------------
+# See if the linker supports building shared libraries.
+m4_defun([_LT_LINKER_SHLIBS],
+[AC_REQUIRE([LT_PATH_LD])dnl
+AC_REQUIRE([LT_PATH_NM])dnl
+m4_require([_LT_PATH_MANIFEST_TOOL])dnl
+m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+m4_require([_LT_DECL_EGREP])dnl
+m4_require([_LT_DECL_SED])dnl
+m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl
+m4_require([_LT_TAG_COMPILER])dnl
+AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries])
+m4_if([$1], [CXX], [
+ _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+ _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*']
+ case $host_os in
+ aix[[4-9]]*)
+ # If we're using GNU nm, then we don't want the "-C" option.
+ # -C means demangle to GNU nm, but means don't demangle to AIX nm.
+ # Without the "-l" option, or with the "-B" option, AIX nm treats
+ # weak defined symbols like other global defined symbols, whereas
+ # GNU nm marks them as "W".
+ # While the 'weak' keyword is ignored in the Export File, we need
+ # it in the Import File for the 'aix-soname' feature, so we have
+ # to replace the "-B" option with "-P" for AIX nm.
+ if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
+ _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols'
+ else
+ _LT_TAGVAR(export_symbols_cmds, $1)='`func_echo_all $NM | $SED -e '\''s/B\([[^B]]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && ([substr](\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols'
+ fi
+ ;;
+ pw32*)
+ _LT_TAGVAR(export_symbols_cmds, $1)=$ltdll_cmds
+ ;;
+ cygwin* | mingw* | cegcc*)
+ case $cc_basename in
+ cl*)
+ _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*'
+ ;;
+ *)
+ _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols'
+ _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname']
+ ;;
+ esac
+ ;;
+ *)
+ _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+ ;;
+ esac
+], [
+ runpath_var=
+ _LT_TAGVAR(allow_undefined_flag, $1)=
+ _LT_TAGVAR(always_export_symbols, $1)=no
+ _LT_TAGVAR(archive_cmds, $1)=
+ _LT_TAGVAR(archive_expsym_cmds, $1)=
+ _LT_TAGVAR(compiler_needs_object, $1)=no
+ _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no
+ _LT_TAGVAR(export_dynamic_flag_spec, $1)=
+ _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+ _LT_TAGVAR(hardcode_automatic, $1)=no
+ _LT_TAGVAR(hardcode_direct, $1)=no
+ _LT_TAGVAR(hardcode_direct_absolute, $1)=no
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
+ _LT_TAGVAR(hardcode_libdir_separator, $1)=
+ _LT_TAGVAR(hardcode_minus_L, $1)=no
+ _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
+ _LT_TAGVAR(inherit_rpath, $1)=no
+ _LT_TAGVAR(link_all_deplibs, $1)=unknown
+ _LT_TAGVAR(module_cmds, $1)=
+ _LT_TAGVAR(module_expsym_cmds, $1)=
+ _LT_TAGVAR(old_archive_from_new_cmds, $1)=
+ _LT_TAGVAR(old_archive_from_expsyms_cmds, $1)=
+ _LT_TAGVAR(thread_safe_flag_spec, $1)=
+ _LT_TAGVAR(whole_archive_flag_spec, $1)=
+ # include_expsyms should be a list of space-separated symbols to be *always*
+ # included in the symbol list
+ _LT_TAGVAR(include_expsyms, $1)=
+ # exclude_expsyms can be an extended regexp of symbols to exclude
+ # it will be wrapped by ' (' and ')$', so one must not match beginning or
+ # end of line. Example: 'a|bc|.*d.*' will exclude the symbols 'a' and 'bc',
+ # as well as any symbol that contains 'd'.
+ _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*']
+ # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
+ # platforms (ab)use it in PIC code, but their linkers get confused if
+ # the symbol is explicitly referenced. Since portable code cannot
+ # rely on this symbol name, it's probably fine to never include it in
+ # preloaded symbol tables.
+ # Exclude shared library initialization/finalization symbols.
+dnl Note also adjust exclude_expsyms for C++ above.
+ extract_expsyms_cmds=
+
+ case $host_os in
+ cygwin* | mingw* | pw32* | cegcc*)
+ # FIXME: the MSVC++ port hasn't been tested in a loooong time
+ # When not using gcc, we currently assume that we are using
+ # Microsoft Visual C++.
+ if test yes != "$GCC"; then
+ with_gnu_ld=no
+ fi
+ ;;
+ interix*)
+ # we just hope/assume this is gcc and not c89 (= MSVC++)
+ with_gnu_ld=yes
+ ;;
+ openbsd* | bitrig*)
+ with_gnu_ld=no
+ ;;
+ esac
+
+ _LT_TAGVAR(ld_shlibs, $1)=yes
+
+ # On some targets, GNU ld is compatible enough with the native linker
+ # that we're better off using the native interface for both.
+ lt_use_gnu_ld_interface=no
+ if test yes = "$with_gnu_ld"; then
+ case $host_os in
+ aix*)
+ # The AIX port of GNU ld has always aspired to compatibility
+ # with the native linker. However, as the warning in the GNU ld
+ # block says, versions before 2.19.5* couldn't really create working
+ # shared libraries, regardless of the interface used.
+ case `$LD -v 2>&1` in
+ *\ \(GNU\ Binutils\)\ 2.19.5*) ;;
+ *\ \(GNU\ Binutils\)\ 2.[[2-9]]*) ;;
+ *\ \(GNU\ Binutils\)\ [[3-9]]*) ;;
+ *)
+ lt_use_gnu_ld_interface=yes
+ ;;
+ esac
+ ;;
+ *)
+ lt_use_gnu_ld_interface=yes
+ ;;
+ esac
+ fi
+
+ if test yes = "$lt_use_gnu_ld_interface"; then
+ # If archive_cmds runs LD, not CC, wlarc should be empty
+ wlarc='$wl'
+
+ # Set some defaults for GNU ld with shared library support. These
+ # are reset later if shared libraries are not supported. Putting them
+ # here allows them to be overridden if necessary.
+ runpath_var=LD_RUN_PATH
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir'
+ _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic'
+ # ancient GNU ld didn't support --whole-archive et. al.
+ if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then
+ _LT_TAGVAR(whole_archive_flag_spec, $1)=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive'
+ else
+ _LT_TAGVAR(whole_archive_flag_spec, $1)=
+ fi
+ supports_anon_versioning=no
+ case `$LD -v | $SED -e 's/([^)]\+)\s\+//' 2>&1` in
+ *GNU\ gold*) supports_anon_versioning=yes ;;
+ *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11
+ *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
+ *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ...
+ *\ 2.11.*) ;; # other 2.11 versions
+ *) supports_anon_versioning=yes ;;
+ esac
+
+ # See if GNU ld supports shared libraries.
+ case $host_os in
+ aix[[3-9]]*)
+ # On AIX/PPC, the GNU linker is very broken
+ if test ia64 != "$host_cpu"; then
+ _LT_TAGVAR(ld_shlibs, $1)=no
+ cat <<_LT_EOF 1>&2
+
+*** Warning: the GNU linker, at least up to release 2.19, is reported
+*** to be unable to reliably create shared libraries on AIX.
+*** Therefore, libtool is disabling shared libraries support. If you
+*** really care for shared libraries, you may want to install binutils
+*** 2.20 or above, or modify your PATH so that a non-GNU linker is found.
+*** You will then need to restart the configuration process.
+
+_LT_EOF
+ fi
+ ;;
+
+ amigaos*)
+ case $host_cpu in
+ powerpc)
+ # see comment about AmigaOS4 .so support
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+ _LT_TAGVAR(archive_expsym_cmds, $1)=''
+ ;;
+ m68k)
+ _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+ _LT_TAGVAR(hardcode_minus_L, $1)=yes
+ ;;
+ esac
+ ;;
+
+ beos*)
+ if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+ _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+ # Joseph Beckenbach <jrb3@best.com> says some releases of gcc
+ # support --undefined. This deserves some investigation. FIXME
+ _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+ else
+ _LT_TAGVAR(ld_shlibs, $1)=no
+ fi
+ ;;
+
+ cygwin* | mingw* | pw32* | cegcc*)
+ # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
+ # as there is no search path for DLLs.
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+ _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-all-symbols'
+ _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+ _LT_TAGVAR(always_export_symbols, $1)=no
+ _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+ _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols'
+ _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname']
+
+ if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+ # If the export-symbols file already is a .def file, use it as
+ # is; otherwise, prepend EXPORTS...
+ _LT_TAGVAR(archive_expsym_cmds, $1)='if _LT_DLL_DEF_P([$export_symbols]); then
+ cp $export_symbols $output_objdir/$soname.def;
+ else
+ echo EXPORTS > $output_objdir/$soname.def;
+ cat $export_symbols >> $output_objdir/$soname.def;
+ fi~
+ $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+ else
+ _LT_TAGVAR(ld_shlibs, $1)=no
+ fi
+ ;;
+
+ haiku*)
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+ _LT_TAGVAR(link_all_deplibs, $1)=yes
+ ;;
+
+ os2*)
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+ _LT_TAGVAR(hardcode_minus_L, $1)=yes
+ _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+ shrext_cmds=.dll
+ _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~
+ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~
+ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~
+ $ECHO EXPORTS >> $output_objdir/$libname.def~
+ emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~
+ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~
+ emximp -o $lib $output_objdir/$libname.def'
+ _LT_TAGVAR(archive_expsym_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~
+ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~
+ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~
+ $ECHO EXPORTS >> $output_objdir/$libname.def~
+ prefix_cmds="$SED"~
+ if test EXPORTS = "`$SED 1q $export_symbols`"; then
+ prefix_cmds="$prefix_cmds -e 1d";
+ fi~
+ prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~
+ cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~
+ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~
+ emximp -o $lib $output_objdir/$libname.def'
+ _LT_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def'
+ _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+ ;;
+
+ interix[[3-9]]*)
+ _LT_TAGVAR(hardcode_direct, $1)=no
+ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir'
+ _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E'
+ # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
+ # Instead, shared libraries are loaded at an image base (0x10000000 by
+ # default) and relocated if they conflict, which is a slow very memory
+ # consuming and fragmenting process. To avoid this, we pick a random,
+ # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
+ # time. Moving up from 0x10000000 also allows more sbrk(2) space.
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+ _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+ ;;
+
+ gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu)
+ tmp_diet=no
+ if test linux-dietlibc = "$host_os"; then
+ case $cc_basename in
+ diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn)
+ esac
+ fi
+ if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \
+ && test no = "$tmp_diet"
+ then
+ tmp_addflag=' $pic_flag'
+ tmp_sharedflag='-shared'
+ case $cc_basename,$host_cpu in
+ pgcc*) # Portland Group C compiler
+ _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
+ tmp_addflag=' $pic_flag'
+ ;;
+ pgf77* | pgf90* | pgf95* | pgfortran*)
+ # Portland Group f77 and f90 compilers
+ _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
+ tmp_addflag=' $pic_flag -Mnomain' ;;
+ ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64
+ tmp_addflag=' -i_dynamic' ;;
+ efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64
+ tmp_addflag=' -i_dynamic -nofor_main' ;;
+ ifc* | ifort*) # Intel Fortran compiler
+ tmp_addflag=' -nofor_main' ;;
+ lf95*) # Lahey Fortran 8.1
+ _LT_TAGVAR(whole_archive_flag_spec, $1)=
+ tmp_sharedflag='--shared' ;;
+ nagfor*) # NAGFOR 5.3
+ tmp_sharedflag='-Wl,-shared' ;;
+ xl[[cC]]* | bgxl[[cC]]* | mpixl[[cC]]*) # IBM XL C 8.0 on PPC (deal with xlf below)
+ tmp_sharedflag='-qmkshrobj'
+ tmp_addflag= ;;
+ nvcc*) # Cuda Compiler Driver 2.2
+ _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
+ _LT_TAGVAR(compiler_needs_object, $1)=yes
+ ;;
+ esac
+ case `$CC -V 2>&1 | sed 5q` in
+ *Sun\ C*) # Sun C 5.9
+ _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
+ _LT_TAGVAR(compiler_needs_object, $1)=yes
+ tmp_sharedflag='-G' ;;
+ *Sun\ F*) # Sun Fortran 8.3
+ tmp_sharedflag='-G' ;;
+ esac
+ _LT_TAGVAR(archive_cmds, $1)='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+
+ if test yes = "$supports_anon_versioning"; then
+ _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~
+ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+ echo "local: *; };" >> $output_objdir/$libname.ver~
+ $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib'
+ fi
+
+ case $cc_basename in
+ tcc*)
+ _LT_TAGVAR(export_dynamic_flag_spec, $1)='-rdynamic'
+ ;;
+ xlf* | bgf* | bgxlf* | mpixlf*)
+ # IBM XL Fortran 10.1 on PPC cannot create shared libs itself
+ _LT_TAGVAR(whole_archive_flag_spec, $1)='--whole-archive$convenience --no-whole-archive'
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir'
+ _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib'
+ if test yes = "$supports_anon_versioning"; then
+ _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~
+ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+ echo "local: *; };" >> $output_objdir/$libname.ver~
+ $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'
+ fi
+ ;;
+ esac
+ else
+ _LT_TAGVAR(ld_shlibs, $1)=no
+ fi
+ ;;
+
+ netbsd*)
+ if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
+ _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
+ wlarc=
+ else
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
+ fi
+ ;;
+
+ solaris*)
+ if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then
+ _LT_TAGVAR(ld_shlibs, $1)=no
+ cat <<_LT_EOF 1>&2
+
+*** Warning: The releases 2.8.* of the GNU linker cannot reliably
+*** create shared libraries on Solaris systems. Therefore, libtool
+*** is disabling shared libraries support. We urge you to upgrade GNU
+*** binutils to release 2.9.1 or newer. Another option is to modify
+*** your PATH or compiler configuration so that the native linker is
+*** used, and then restart.
+
+_LT_EOF
+ elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
+ else
+ _LT_TAGVAR(ld_shlibs, $1)=no
+ fi
+ ;;
+
+ sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*)
+ case `$LD -v 2>&1` in
+ *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.1[[0-5]].*)
+ _LT_TAGVAR(ld_shlibs, $1)=no
+ cat <<_LT_EOF 1>&2
+
+*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 cannot
+*** reliably create shared libraries on SCO systems. Therefore, libtool
+*** is disabling shared libraries support. We urge you to upgrade GNU
+*** binutils to release 2.16.91.0.3 or newer. Another option is to modify
+*** your PATH or compiler configuration so that the native linker is
+*** used, and then restart.
+
+_LT_EOF
+ ;;
+ *)
+ # For security reasons, it is highly recommended that you always
+ # use absolute paths for naming shared libraries, and exclude the
+ # DT_RUNPATH tag from executables and libraries. But doing so
+ # requires that you compile everything twice, which is a pain.
+ if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir'
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
+ else
+ _LT_TAGVAR(ld_shlibs, $1)=no
+ fi
+ ;;
+ esac
+ ;;
+
+ sunos4*)
+ _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+ wlarc=
+ _LT_TAGVAR(hardcode_direct, $1)=yes
+ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+ ;;
+
+ *)
+ if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
+ else
+ _LT_TAGVAR(ld_shlibs, $1)=no
+ fi
+ ;;
+ esac
+
+ if test no = "$_LT_TAGVAR(ld_shlibs, $1)"; then
+ runpath_var=
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
+ _LT_TAGVAR(export_dynamic_flag_spec, $1)=
+ _LT_TAGVAR(whole_archive_flag_spec, $1)=
+ fi
+ else
+ # PORTME fill in a description of your system's linker (not GNU ld)
+ case $host_os in
+ aix3*)
+ _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+ _LT_TAGVAR(always_export_symbols, $1)=yes
+ _LT_TAGVAR(archive_expsym_cmds, $1)='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname'
+ # Note: this linker hardcodes the directories in LIBPATH if there
+ # are no directories specified by -L.
+ _LT_TAGVAR(hardcode_minus_L, $1)=yes
+ if test yes = "$GCC" && test -z "$lt_prog_compiler_static"; then
+ # Neither direct hardcoding nor static linking is supported with a
+ # broken collect2.
+ _LT_TAGVAR(hardcode_direct, $1)=unsupported
+ fi
+ ;;
+
+ aix[[4-9]]*)
+ if test ia64 = "$host_cpu"; then
+ # On IA64, the linker does run time linking by default, so we don't
+ # have to do anything special.
+ aix_use_runtimelinking=no
+ exp_sym_flag='-Bexport'
+ no_entry_flag=
+ else
+ # If we're using GNU nm, then we don't want the "-C" option.
+ # -C means demangle to GNU nm, but means don't demangle to AIX nm.
+ # Without the "-l" option, or with the "-B" option, AIX nm treats
+ # weak defined symbols like other global defined symbols, whereas
+ # GNU nm marks them as "W".
+ # While the 'weak' keyword is ignored in the Export File, we need
+ # it in the Import File for the 'aix-soname' feature, so we have
+ # to replace the "-B" option with "-P" for AIX nm.
+ if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
+ _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols'
+ else
+ _LT_TAGVAR(export_symbols_cmds, $1)='`func_echo_all $NM | $SED -e '\''s/B\([[^B]]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && ([substr](\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols'
+ fi
+ aix_use_runtimelinking=no
+
+ # Test if we are trying to use run time linking or normal
+ # AIX style linking. If -brtl is somewhere in LDFLAGS, we
+ # have runtime linking enabled, and use it for executables.
+ # For shared libraries, we enable/disable runtime linking
+ # depending on the kind of the shared library created -
+ # when "with_aix_soname,aix_use_runtimelinking" is:
+ # "aix,no" lib.a(lib.so.V) shared, rtl:no, for executables
+ # "aix,yes" lib.so shared, rtl:yes, for executables
+ # lib.a static archive
+ # "both,no" lib.so.V(shr.o) shared, rtl:yes
+ # lib.a(lib.so.V) shared, rtl:no, for executables
+ # "both,yes" lib.so.V(shr.o) shared, rtl:yes, for executables
+ # lib.a(lib.so.V) shared, rtl:no
+ # "svr4,*" lib.so.V(shr.o) shared, rtl:yes, for executables
+ # lib.a static archive
+ case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*)
+ for ld_flag in $LDFLAGS; do
+ if (test x-brtl = "x$ld_flag" || test x-Wl,-brtl = "x$ld_flag"); then
+ aix_use_runtimelinking=yes
+ break
+ fi
+ done
+ if test svr4,no = "$with_aix_soname,$aix_use_runtimelinking"; then
+ # With aix-soname=svr4, we create the lib.so.V shared archives only,
+ # so we don't have lib.a shared libs to link our executables.
+ # We have to force runtime linking in this case.
+ aix_use_runtimelinking=yes
+ LDFLAGS="$LDFLAGS -Wl,-brtl"
+ fi
+ ;;
+ esac
+
+ exp_sym_flag='-bexport'
+ no_entry_flag='-bnoentry'
+ fi
+
+ # When large executables or shared objects are built, AIX ld can
+ # have problems creating the table of contents. If linking a library
+ # or program results in "error TOC overflow" add -mminimal-toc to
+ # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not
+ # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
+
+ _LT_TAGVAR(archive_cmds, $1)=''
+ _LT_TAGVAR(hardcode_direct, $1)=yes
+ _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
+ _LT_TAGVAR(hardcode_libdir_separator, $1)=':'
+ _LT_TAGVAR(link_all_deplibs, $1)=yes
+ _LT_TAGVAR(file_list_spec, $1)='$wl-f,'
+ case $with_aix_soname,$aix_use_runtimelinking in
+ aix,*) ;; # traditional, no import file
+ svr4,* | *,yes) # use import file
+ # The Import File defines what to hardcode.
+ _LT_TAGVAR(hardcode_direct, $1)=no
+ _LT_TAGVAR(hardcode_direct_absolute, $1)=no
+ ;;
+ esac
+
+ if test yes = "$GCC"; then
+ case $host_os in aix4.[[012]]|aix4.[[012]].*)
+ # We only want to do this on AIX 4.2 and lower, the check
+ # below for broken collect2 doesn't work under 4.3+
+ collect2name=`$CC -print-prog-name=collect2`
+ if test -f "$collect2name" &&
+ strings "$collect2name" | $GREP resolve_lib_name >/dev/null
+ then
+ # We have reworked collect2
+ :
+ else
+ # We have old collect2
+ _LT_TAGVAR(hardcode_direct, $1)=unsupported
+ # It fails to find uninstalled libraries when the uninstalled
+ # path is not listed in the libpath. Setting hardcode_minus_L
+ # to unsupported forces relinking
+ _LT_TAGVAR(hardcode_minus_L, $1)=yes
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+ _LT_TAGVAR(hardcode_libdir_separator, $1)=
+ fi
+ ;;
+ esac
+ shared_flag='-shared'
+ if test yes = "$aix_use_runtimelinking"; then
+ shared_flag="$shared_flag "'$wl-G'
+ fi
+ # Need to ensure runtime linking is disabled for the traditional
+ # shared library, or the linker may eventually find shared libraries
+ # /with/ Import File - we do not want to mix them.
+ shared_flag_aix='-shared'
+ shared_flag_svr4='-shared $wl-G'
+ else
+ # not using gcc
+ if test ia64 = "$host_cpu"; then
+ # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
+ # chokes on -Wl,-G. The following line is correct:
+ shared_flag='-G'
+ else
+ if test yes = "$aix_use_runtimelinking"; then
+ shared_flag='$wl-G'
+ else
+ shared_flag='$wl-bM:SRE'
+ fi
+ shared_flag_aix='$wl-bM:SRE'
+ shared_flag_svr4='$wl-G'
+ fi
+ fi
+
+ _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-bexpall'
+ # It seems that -bexpall does not export symbols beginning with
+ # underscore (_), so it is better to generate a list of symbols to export.
+ _LT_TAGVAR(always_export_symbols, $1)=yes
+ if test aix,yes = "$with_aix_soname,$aix_use_runtimelinking"; then
+ # Warning - without using the other runtime loading flags (-brtl),
+ # -berok will link without error, but may produce a broken library.
+ _LT_TAGVAR(allow_undefined_flag, $1)='-berok'
+ # Determine the default libpath from the value encoded in an
+ # empty executable.
+ _LT_SYS_MODULE_PATH_AIX([$1])
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-blibpath:$libdir:'"$aix_libpath"
+ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs $wl'$no_entry_flag' $compiler_flags `if test -n "$allow_undefined_flag"; then func_echo_all "$wl$allow_undefined_flag"; else :; fi` $wl'$exp_sym_flag:\$export_symbols' '$shared_flag
+ else
+ if test ia64 = "$host_cpu"; then
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R $libdir:/usr/lib:/lib'
+ _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs"
+ _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\$wl$no_entry_flag"' $compiler_flags $wl$allow_undefined_flag '"\$wl$exp_sym_flag:\$export_symbols"
+ else
+ # Determine the default libpath from the value encoded in an
+ # empty executable.
+ _LT_SYS_MODULE_PATH_AIX([$1])
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-blibpath:$libdir:'"$aix_libpath"
+ # Warning - without using the other run time loading flags,
+ # -berok will link without error, but may produce a broken library.
+ _LT_TAGVAR(no_undefined_flag, $1)=' $wl-bernotok'
+ _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-berok'
+ if test yes = "$with_gnu_ld"; then
+ # We only use this code for GNU lds that support --whole-archive.
+ _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive$convenience $wl--no-whole-archive'
+ else
+ # Exported symbols can be pulled into shared objects from archives
+ _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience'
+ fi
+ _LT_TAGVAR(archive_cmds_need_lc, $1)=yes
+ _LT_TAGVAR(archive_expsym_cmds, $1)='$RM -r $output_objdir/$realname.d~$MKDIR $output_objdir/$realname.d'
+ # -brtl affects multiple linker settings, -berok does not and is overridden later
+ compiler_flags_filtered='`func_echo_all "$compiler_flags " | $SED -e "s%-brtl\\([[, ]]\\)%-berok\\1%g"`'
+ if test svr4 != "$with_aix_soname"; then
+ # This is similar to how AIX traditionally builds its shared libraries.
+ _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$CC '$shared_flag_aix' -o $output_objdir/$realname.d/$soname $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$realname.d/$soname'
+ fi
+ if test aix != "$with_aix_soname"; then
+ _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$CC '$shared_flag_svr4' -o $output_objdir/$realname.d/$shared_archive_member_spec.o $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$STRIP -e $output_objdir/$realname.d/$shared_archive_member_spec.o~( func_echo_all "#! $soname($shared_archive_member_spec.o)"; if test shr_64 = "$shared_archive_member_spec"; then func_echo_all "# 64"; else func_echo_all "# 32"; fi; cat $export_symbols ) > $output_objdir/$realname.d/$shared_archive_member_spec.imp~$AR $AR_FLAGS $output_objdir/$soname $output_objdir/$realname.d/$shared_archive_member_spec.o $output_objdir/$realname.d/$shared_archive_member_spec.imp'
+ else
+ # used by -dlpreopen to get the symbols
+ _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$MV $output_objdir/$realname.d/$soname $output_objdir'
+ fi
+ _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$RM -r $output_objdir/$realname.d'
+ fi
+ fi
+ ;;
+
+ amigaos*)
+ case $host_cpu in
+ powerpc)
+ # see comment about AmigaOS4 .so support
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+ _LT_TAGVAR(archive_expsym_cmds, $1)=''
+ ;;
+ m68k)
+ _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+ _LT_TAGVAR(hardcode_minus_L, $1)=yes
+ ;;
+ esac
+ ;;
+
+ bsdi[[45]]*)
+ _LT_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic
+ ;;
+
+ cygwin* | mingw* | pw32* | cegcc*)
+ # When not using gcc, we currently assume that we are using
+ # Microsoft Visual C++.
+ # hardcode_libdir_flag_spec is actually meaningless, as there is
+ # no search path for DLLs.
+ case $cc_basename in
+ cl*)
+ # Native MSVC
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
+ _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+ _LT_TAGVAR(always_export_symbols, $1)=yes
+ _LT_TAGVAR(file_list_spec, $1)='@'
+ # Tell ltmain to make .lib files, not .a files.
+ libext=lib
+ # Tell ltmain to make .dll files, not .so files.
+ shrext_cmds=.dll
+ # FIXME: Setting linknames here is a bad hack.
+ _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~linknames='
+ _LT_TAGVAR(archive_expsym_cmds, $1)='if _LT_DLL_DEF_P([$export_symbols]); then
+ cp "$export_symbols" "$output_objdir/$soname.def";
+ echo "$tool_output_objdir$soname.def" > "$output_objdir/$soname.exp";
+ else
+ $SED -e '\''s/^/-link -EXPORT:/'\'' < $export_symbols > $output_objdir/$soname.exp;
+ fi~
+ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~
+ linknames='
+ # The linker will not automatically build a static lib if we build a DLL.
+ # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true'
+ _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+ _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*'
+ _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1,DATA/'\'' | $SED -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols'
+ # Don't use ranlib
+ _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib'
+ _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~
+ lt_tool_outputfile="@TOOL_OUTPUT@"~
+ case $lt_outputfile in
+ *.exe|*.EXE) ;;
+ *)
+ lt_outputfile=$lt_outputfile.exe
+ lt_tool_outputfile=$lt_tool_outputfile.exe
+ ;;
+ esac~
+ if test : != "$MANIFEST_TOOL" && test -f "$lt_outputfile.manifest"; then
+ $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1;
+ $RM "$lt_outputfile.manifest";
+ fi'
+ ;;
+ *)
+ # Assume MSVC wrapper
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
+ _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+ # Tell ltmain to make .lib files, not .a files.
+ libext=lib
+ # Tell ltmain to make .dll files, not .so files.
+ shrext_cmds=.dll
+ # FIXME: Setting linknames here is a bad hack.
+ _LT_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames='
+ # The linker will automatically build a .lib file if we build a DLL.
+ _LT_TAGVAR(old_archive_from_new_cmds, $1)='true'
+ # FIXME: Should let the user specify the lib program.
+ _LT_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs'
+ _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+ ;;
+ esac
+ ;;
+
+ darwin* | rhapsody*)
+ _LT_DARWIN_LINKER_FEATURES($1)
+ ;;
+
+ dgux*)
+ _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+ ;;
+
+ # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
+ # support. Future versions do this automatically, but an explicit c++rt0.o
+ # does not break anything, and helps significantly (at the cost of a little
+ # extra space).
+ freebsd2.2*)
+ _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o'
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+ _LT_TAGVAR(hardcode_direct, $1)=yes
+ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+ ;;
+
+ # Unfortunately, older versions of FreeBSD 2 do not have this feature.
+ freebsd2.*)
+ _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+ _LT_TAGVAR(hardcode_direct, $1)=yes
+ _LT_TAGVAR(hardcode_minus_L, $1)=yes
+ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+ ;;
+
+ # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
+ freebsd* | dragonfly*)
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+ _LT_TAGVAR(hardcode_direct, $1)=yes
+ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+ ;;
+
+ hpux9*)
+ if test yes = "$GCC"; then
+ _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared $pic_flag $wl+b $wl$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib'
+ else
+ _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib'
+ fi
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir'
+ _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+ _LT_TAGVAR(hardcode_direct, $1)=yes
+
+ # hardcode_minus_L: Not really in the search PATH,
+ # but as the default location of the library.
+ _LT_TAGVAR(hardcode_minus_L, $1)=yes
+ _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E'
+ ;;
+
+ hpux10*)
+ if test yes,no = "$GCC,$with_gnu_ld"; then
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+ else
+ _LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
+ fi
+ if test no = "$with_gnu_ld"; then
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir'
+ _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+ _LT_TAGVAR(hardcode_direct, $1)=yes
+ _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
+ _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E'
+ # hardcode_minus_L: Not really in the search PATH,
+ # but as the default location of the library.
+ _LT_TAGVAR(hardcode_minus_L, $1)=yes
+ fi
+ ;;
+
+ hpux11*)
+ if test yes,no = "$GCC,$with_gnu_ld"; then
+ case $host_cpu in
+ hppa*64*)
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl+h $wl$soname -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ ia64*)
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ *)
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ esac
+ else
+ case $host_cpu in
+ hppa*64*)
+ _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ ia64*)
+ _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ *)
+ m4_if($1, [], [
+ # Older versions of the 11.00 compiler do not understand -b yet
+ # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does)
+ _LT_LINKER_OPTION([if $CC understands -b],
+ _LT_TAGVAR(lt_cv_prog_compiler__b, $1), [-b],
+ [_LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags'],
+ [_LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'])],
+ [_LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags'])
+ ;;
+ esac
+ fi
+ if test no = "$with_gnu_ld"; then
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir'
+ _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+
+ case $host_cpu in
+ hppa*64*|ia64*)
+ _LT_TAGVAR(hardcode_direct, $1)=no
+ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+ ;;
+ *)
+ _LT_TAGVAR(hardcode_direct, $1)=yes
+ _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
+ _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E'
+
+ # hardcode_minus_L: Not really in the search PATH,
+ # but as the default location of the library.
+ _LT_TAGVAR(hardcode_minus_L, $1)=yes
+ ;;
+ esac
+ fi
+ ;;
+
+ irix5* | irix6* | nonstopux*)
+ if test yes = "$GCC"; then
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib'
+ # Try to use the -exported_symbol ld option, if it does not
+ # work, assume that -exports_file does not work either and
+ # implicitly export all symbols.
+ # This should be the same for all languages, so no per-tag cache variable.
+ AC_CACHE_CHECK([whether the $host_os linker accepts -exported_symbol],
+ [lt_cv_irix_exported_symbol],
+ [save_LDFLAGS=$LDFLAGS
+ LDFLAGS="$LDFLAGS -shared $wl-exported_symbol ${wl}foo $wl-update_registry $wl/dev/null"
+ AC_LINK_IFELSE(
+ [AC_LANG_SOURCE(
+ [AC_LANG_CASE([C], [[int foo (void) { return 0; }]],
+ [C++], [[int foo (void) { return 0; }]],
+ [Fortran 77], [[
+ subroutine foo
+ end]],
+ [Fortran], [[
+ subroutine foo
+ end]])])],
+ [lt_cv_irix_exported_symbol=yes],
+ [lt_cv_irix_exported_symbol=no])
+ LDFLAGS=$save_LDFLAGS])
+ if test yes = "$lt_cv_irix_exported_symbol"; then
+ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations $wl-exports_file $wl$export_symbols -o $lib'
+ fi
+ else
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib'
+ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -exports_file $export_symbols -o $lib'
+ fi
+ _LT_TAGVAR(archive_cmds_need_lc, $1)='no'
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir'
+ _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+ _LT_TAGVAR(inherit_rpath, $1)=yes
+ _LT_TAGVAR(link_all_deplibs, $1)=yes
+ ;;
+
+ linux*)
+ case $cc_basename in
+ tcc*)
+ # Fabrice Bellard et al's Tiny C Compiler
+ _LT_TAGVAR(ld_shlibs, $1)=yes
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ esac
+ ;;
+
+ netbsd*)
+ if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
+ _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out
+ else
+ _LT_TAGVAR(archive_cmds, $1)='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF
+ fi
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+ _LT_TAGVAR(hardcode_direct, $1)=yes
+ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+ ;;
+
+ newsos6)
+ _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ _LT_TAGVAR(hardcode_direct, $1)=yes
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir'
+ _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+ ;;
+
+ *nto* | *qnx*)
+ ;;
+
+ openbsd* | bitrig*)
+ if test -f /usr/libexec/ld.so; then
+ _LT_TAGVAR(hardcode_direct, $1)=yes
+ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+ _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
+ if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags $wl-retain-symbols-file,$export_symbols'
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir'
+ _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E'
+ else
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir'
+ fi
+ else
+ _LT_TAGVAR(ld_shlibs, $1)=no
+ fi
+ ;;
+
+ os2*)
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+ _LT_TAGVAR(hardcode_minus_L, $1)=yes
+ _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+ shrext_cmds=.dll
+ _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~
+ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~
+ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~
+ $ECHO EXPORTS >> $output_objdir/$libname.def~
+ emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~
+ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~
+ emximp -o $lib $output_objdir/$libname.def'
+ _LT_TAGVAR(archive_expsym_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~
+ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~
+ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~
+ $ECHO EXPORTS >> $output_objdir/$libname.def~
+ prefix_cmds="$SED"~
+ if test EXPORTS = "`$SED 1q $export_symbols`"; then
+ prefix_cmds="$prefix_cmds -e 1d";
+ fi~
+ prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~
+ cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~
+ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~
+ emximp -o $lib $output_objdir/$libname.def'
+ _LT_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def'
+ _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+ ;;
+
+ osf3*)
+ if test yes = "$GCC"; then
+ _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-expect_unresolved $wl\*'
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib'
+ else
+ _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib'
+ fi
+ _LT_TAGVAR(archive_cmds_need_lc, $1)='no'
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir'
+ _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+ ;;
+
+ osf4* | osf5*) # as osf3* with the addition of -msym flag
+ if test yes = "$GCC"; then
+ _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-expect_unresolved $wl\*'
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $pic_flag $libobjs $deplibs $compiler_flags $wl-msym $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib'
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir'
+ else
+ _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib'
+ _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~
+ $CC -shared$allow_undefined_flag $wl-input $wl$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib~$RM $lib.exp'
+
+ # Both c and cxx compiler support -rpath directly
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
+ fi
+ _LT_TAGVAR(archive_cmds_need_lc, $1)='no'
+ _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+ ;;
+
+ solaris*)
+ _LT_TAGVAR(no_undefined_flag, $1)=' -z defs'
+ if test yes = "$GCC"; then
+ wlarc='$wl'
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $wl-z ${wl}text $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags'
+ _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+ $CC -shared $pic_flag $wl-z ${wl}text $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
+ else
+ case `$CC -V 2>&1` in
+ *"Compilers 5.0"*)
+ wlarc=''
+ _LT_TAGVAR(archive_cmds, $1)='$LD -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+ $LD -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp'
+ ;;
+ *)
+ wlarc='$wl'
+ _LT_TAGVAR(archive_cmds, $1)='$CC -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $compiler_flags'
+ _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+ $CC -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
+ ;;
+ esac
+ fi
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+ case $host_os in
+ solaris2.[[0-5]] | solaris2.[[0-5]].*) ;;
+ *)
+ # The compiler driver will combine and reorder linker options,
+ # but understands '-z linker_flag'. GCC discards it without '$wl',
+ # but is careful enough not to reorder.
+ # Supported since Solaris 2.6 (maybe 2.5.1?)
+ if test yes = "$GCC"; then
+ _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl-z ${wl}allextract$convenience $wl-z ${wl}defaultextract'
+ else
+ _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract'
+ fi
+ ;;
+ esac
+ _LT_TAGVAR(link_all_deplibs, $1)=yes
+ ;;
+
+ sunos4*)
+ if test sequent = "$host_vendor"; then
+ # Use $CC to link under sequent, because it throws in some extra .o
+ # files that make .init and .fini sections work.
+ _LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h $soname -o $lib $libobjs $deplibs $compiler_flags'
+ else
+ _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags'
+ fi
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+ _LT_TAGVAR(hardcode_direct, $1)=yes
+ _LT_TAGVAR(hardcode_minus_L, $1)=yes
+ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+ ;;
+
+ sysv4)
+ case $host_vendor in
+ sni)
+ _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ _LT_TAGVAR(hardcode_direct, $1)=yes # is this really true???
+ ;;
+ siemens)
+ ## LD is ld it makes a PLAMLIB
+ ## CC just makes a GrossModule.
+ _LT_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags'
+ _LT_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs'
+ _LT_TAGVAR(hardcode_direct, $1)=no
+ ;;
+ motorola)
+ _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ _LT_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie
+ ;;
+ esac
+ runpath_var='LD_RUN_PATH'
+ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+ ;;
+
+ sysv4.3*)
+ _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+ _LT_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport'
+ ;;
+
+ sysv4*MP*)
+ if test -d /usr/nec; then
+ _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+ runpath_var=LD_RUN_PATH
+ hardcode_runpath_var=yes
+ _LT_TAGVAR(ld_shlibs, $1)=yes
+ fi
+ ;;
+
+ sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*)
+ _LT_TAGVAR(no_undefined_flag, $1)='$wl-z,text'
+ _LT_TAGVAR(archive_cmds_need_lc, $1)=no
+ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+ runpath_var='LD_RUN_PATH'
+
+ if test yes = "$GCC"; then
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ else
+ _LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ fi
+ ;;
+
+ sysv5* | sco3.2v5* | sco5v6*)
+ # Note: We CANNOT use -z defs as we might desire, because we do not
+ # link with -lc, and that would cause any symbols used from libc to
+ # always be unresolved, which means just about no library would
+ # ever link correctly. If we're not using GNU ld we use -z text
+ # though, which does catch some bad symbols but isn't as heavy-handed
+ # as -z defs.
+ _LT_TAGVAR(no_undefined_flag, $1)='$wl-z,text'
+ _LT_TAGVAR(allow_undefined_flag, $1)='$wl-z,nodefs'
+ _LT_TAGVAR(archive_cmds_need_lc, $1)=no
+ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R,$libdir'
+ _LT_TAGVAR(hardcode_libdir_separator, $1)=':'
+ _LT_TAGVAR(link_all_deplibs, $1)=yes
+ _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-Bexport'
+ runpath_var='LD_RUN_PATH'
+
+ if test yes = "$GCC"; then
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ else
+ _LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ fi
+ ;;
+
+ uts4*)
+ _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+ ;;
+
+ *)
+ _LT_TAGVAR(ld_shlibs, $1)=no
+ ;;
+ esac
+
+ if test sni = "$host_vendor"; then
+ case $host in
+ sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+ _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-Blargedynsym'
+ ;;
+ esac
+ fi
+ fi
+])
+AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)])
+test no = "$_LT_TAGVAR(ld_shlibs, $1)" && can_build_shared=no
+
+_LT_TAGVAR(with_gnu_ld, $1)=$with_gnu_ld
+
+_LT_DECL([], [libext], [0], [Old archive suffix (normally "a")])dnl
+_LT_DECL([], [shrext_cmds], [1], [Shared library suffix (normally ".so")])dnl
+_LT_DECL([], [extract_expsyms_cmds], [2],
+ [The commands to extract the exported symbol list from a shared archive])
+
+#
+# Do we need to explicitly link libc?
+#
+case "x$_LT_TAGVAR(archive_cmds_need_lc, $1)" in
+x|xyes)
+ # Assume -lc should be added
+ _LT_TAGVAR(archive_cmds_need_lc, $1)=yes
+
+ if test yes,yes = "$GCC,$enable_shared"; then
+ case $_LT_TAGVAR(archive_cmds, $1) in
+ *'~'*)
+ # FIXME: we may have to deal with multi-command sequences.
+ ;;
+ '$CC '*)
+ # Test whether the compiler implicitly links with -lc since on some
+ # systems, -lgcc has to come before -lc. If gcc already passes -lc
+ # to ld, don't add -lc before -lgcc.
+ AC_CACHE_CHECK([whether -lc should be explicitly linked in],
+ [lt_cv_]_LT_TAGVAR(archive_cmds_need_lc, $1),
+ [$RM conftest*
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+ if AC_TRY_EVAL(ac_compile) 2>conftest.err; then
+ soname=conftest
+ lib=conftest
+ libobjs=conftest.$ac_objext
+ deplibs=
+ wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1)
+ pic_flag=$_LT_TAGVAR(lt_prog_compiler_pic, $1)
+ compiler_flags=-v
+ linker_flags=-v
+ verstring=
+ output_objdir=.
+ libname=conftest
+ lt_save_allow_undefined_flag=$_LT_TAGVAR(allow_undefined_flag, $1)
+ _LT_TAGVAR(allow_undefined_flag, $1)=
+ if AC_TRY_EVAL(_LT_TAGVAR(archive_cmds, $1) 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1)
+ then
+ lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=no
+ else
+ lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=yes
+ fi
+ _LT_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag
+ else
+ cat conftest.err 1>&5
+ fi
+ $RM conftest*
+ ])
+ _LT_TAGVAR(archive_cmds_need_lc, $1)=$lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)
+ ;;
+ esac
+ fi
+ ;;
+esac
+
+_LT_TAGDECL([build_libtool_need_lc], [archive_cmds_need_lc], [0],
+ [Whether or not to add -lc for building shared libraries])
+_LT_TAGDECL([allow_libtool_libs_with_static_runtimes],
+ [enable_shared_with_static_runtimes], [0],
+ [Whether or not to disallow shared libs when runtime libs are static])
+_LT_TAGDECL([], [export_dynamic_flag_spec], [1],
+ [Compiler flag to allow reflexive dlopens])
+_LT_TAGDECL([], [whole_archive_flag_spec], [1],
+ [Compiler flag to generate shared objects directly from archives])
+_LT_TAGDECL([], [compiler_needs_object], [1],
+ [Whether the compiler copes with passing no objects directly])
+_LT_TAGDECL([], [old_archive_from_new_cmds], [2],
+ [Create an old-style archive from a shared archive])
+_LT_TAGDECL([], [old_archive_from_expsyms_cmds], [2],
+ [Create a temporary old-style archive to link instead of a shared archive])
+_LT_TAGDECL([], [archive_cmds], [2], [Commands used to build a shared archive])
+_LT_TAGDECL([], [archive_expsym_cmds], [2])
+_LT_TAGDECL([], [module_cmds], [2],
+ [Commands used to build a loadable module if different from building
+ a shared archive.])
+_LT_TAGDECL([], [module_expsym_cmds], [2])
+_LT_TAGDECL([], [with_gnu_ld], [1],
+ [Whether we are building with GNU ld or not])
+_LT_TAGDECL([], [allow_undefined_flag], [1],
+ [Flag that allows shared libraries with undefined symbols to be built])
+_LT_TAGDECL([], [no_undefined_flag], [1],
+ [Flag that enforces no undefined symbols])
+_LT_TAGDECL([], [hardcode_libdir_flag_spec], [1],
+ [Flag to hardcode $libdir into a binary during linking.
+ This must work even if $libdir does not exist])
+_LT_TAGDECL([], [hardcode_libdir_separator], [1],
+ [Whether we need a single "-rpath" flag with a separated argument])
+_LT_TAGDECL([], [hardcode_direct], [0],
+ [Set to "yes" if using DIR/libNAME$shared_ext during linking hardcodes
+ DIR into the resulting binary])
+_LT_TAGDECL([], [hardcode_direct_absolute], [0],
+ [Set to "yes" if using DIR/libNAME$shared_ext during linking hardcodes
+ DIR into the resulting binary and the resulting library dependency is
+ "absolute", i.e impossible to change by setting $shlibpath_var if the
+ library is relocated])
+_LT_TAGDECL([], [hardcode_minus_L], [0],
+ [Set to "yes" if using the -LDIR flag during linking hardcodes DIR
+ into the resulting binary])
+_LT_TAGDECL([], [hardcode_shlibpath_var], [0],
+ [Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR
+ into the resulting binary])
+_LT_TAGDECL([], [hardcode_automatic], [0],
+ [Set to "yes" if building a shared library automatically hardcodes DIR
+ into the library and all subsequent libraries and executables linked
+ against it])
+_LT_TAGDECL([], [inherit_rpath], [0],
+ [Set to yes if linker adds runtime paths of dependent libraries
+ to runtime path list])
+_LT_TAGDECL([], [link_all_deplibs], [0],
+ [Whether libtool must link a program against all its dependency libraries])
+_LT_TAGDECL([], [always_export_symbols], [0],
+ [Set to "yes" if exported symbols are required])
+_LT_TAGDECL([], [export_symbols_cmds], [2],
+ [The commands to list exported symbols])
+_LT_TAGDECL([], [exclude_expsyms], [1],
+ [Symbols that should not be listed in the preloaded symbols])
+_LT_TAGDECL([], [include_expsyms], [1],
+ [Symbols that must always be exported])
+_LT_TAGDECL([], [prelink_cmds], [2],
+ [Commands necessary for linking programs (against libraries) with templates])
+_LT_TAGDECL([], [postlink_cmds], [2],
+ [Commands necessary for finishing linking programs])
+_LT_TAGDECL([], [file_list_spec], [1],
+ [Specify filename containing input files])
+dnl FIXME: Not yet implemented
+dnl _LT_TAGDECL([], [thread_safe_flag_spec], [1],
+dnl [Compiler flag to generate thread safe objects])
+])# _LT_LINKER_SHLIBS
+
+
+# _LT_LANG_C_CONFIG([TAG])
+# ------------------------
+# Ensure that the configuration variables for a C compiler are suitably
+# defined. These variables are subsequently used by _LT_CONFIG to write
+# the compiler configuration to 'libtool'.
+m4_defun([_LT_LANG_C_CONFIG],
+[m4_require([_LT_DECL_EGREP])dnl
+lt_save_CC=$CC
+AC_LANG_PUSH(C)
+
+# Source file extension for C test sources.
+ac_ext=c
+
+# Object file extension for compiled C test sources.
+objext=o
+_LT_TAGVAR(objext, $1)=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code="int some_variable = 0;"
+
+# Code to be used in simple link tests
+lt_simple_link_test_code='int main(){return(0);}'
+
+_LT_TAG_COMPILER
+# Save the default compiler, since it gets overwritten when the other
+# tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP.
+compiler_DEFAULT=$CC
+
+# save warnings/boilerplate of simple test code
+_LT_COMPILER_BOILERPLATE
+_LT_LINKER_BOILERPLATE
+
+## CAVEAT EMPTOR:
+## There is no encapsulation within the following macros, do not change
+## the running order or otherwise move them around unless you know exactly
+## what you are doing...
+if test -n "$compiler"; then
+ _LT_COMPILER_NO_RTTI($1)
+ _LT_COMPILER_PIC($1)
+ _LT_COMPILER_C_O($1)
+ _LT_COMPILER_FILE_LOCKS($1)
+ _LT_LINKER_SHLIBS($1)
+ _LT_SYS_DYNAMIC_LINKER($1)
+ _LT_LINKER_HARDCODE_LIBPATH($1)
+ LT_SYS_DLOPEN_SELF
+ _LT_CMD_STRIPLIB
+
+ # Report what library types will actually be built
+ AC_MSG_CHECKING([if libtool supports shared libraries])
+ AC_MSG_RESULT([$can_build_shared])
+
+ AC_MSG_CHECKING([whether to build shared libraries])
+ test no = "$can_build_shared" && enable_shared=no
+
+ # On AIX, shared libraries and static libraries use the same namespace, and
+ # are all built from PIC.
+ case $host_os in
+ aix3*)
+ test yes = "$enable_shared" && enable_static=no
+ if test -n "$RANLIB"; then
+ archive_cmds="$archive_cmds~\$RANLIB \$lib"
+ postinstall_cmds='$RANLIB $lib'
+ fi
+ ;;
+
+ aix[[4-9]]*)
+ if test ia64 != "$host_cpu"; then
+ case $enable_shared,$with_aix_soname,$aix_use_runtimelinking in
+ yes,aix,yes) ;; # shared object as lib.so file only
+ yes,svr4,*) ;; # shared object as lib.so archive member only
+ yes,*) enable_static=no ;; # shared object in lib.a archive as well
+ esac
+ fi
+ ;;
+ esac
+ AC_MSG_RESULT([$enable_shared])
+
+ AC_MSG_CHECKING([whether to build static libraries])
+ # Make sure either enable_shared or enable_static is yes.
+ test yes = "$enable_shared" || enable_static=yes
+ AC_MSG_RESULT([$enable_static])
+
+ _LT_CONFIG($1)
+fi
+AC_LANG_POP
+CC=$lt_save_CC
+])# _LT_LANG_C_CONFIG
+
+
+# _LT_LANG_CXX_CONFIG([TAG])
+# --------------------------
+# Ensure that the configuration variables for a C++ compiler are suitably
+# defined. These variables are subsequently used by _LT_CONFIG to write
+# the compiler configuration to 'libtool'.
+m4_defun([_LT_LANG_CXX_CONFIG],
+[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+m4_require([_LT_DECL_EGREP])dnl
+m4_require([_LT_PATH_MANIFEST_TOOL])dnl
+if test -n "$CXX" && ( test no != "$CXX" &&
+ ( (test g++ = "$CXX" && `g++ -v >/dev/null 2>&1` ) ||
+ (test g++ != "$CXX"))); then
+ AC_PROG_CXXCPP
+else
+ _lt_caught_CXX_error=yes
+fi
+
+AC_LANG_PUSH(C++)
+_LT_TAGVAR(archive_cmds_need_lc, $1)=no
+_LT_TAGVAR(allow_undefined_flag, $1)=
+_LT_TAGVAR(always_export_symbols, $1)=no
+_LT_TAGVAR(archive_expsym_cmds, $1)=
+_LT_TAGVAR(compiler_needs_object, $1)=no
+_LT_TAGVAR(export_dynamic_flag_spec, $1)=
+_LT_TAGVAR(hardcode_direct, $1)=no
+_LT_TAGVAR(hardcode_direct_absolute, $1)=no
+_LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
+_LT_TAGVAR(hardcode_libdir_separator, $1)=
+_LT_TAGVAR(hardcode_minus_L, $1)=no
+_LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
+_LT_TAGVAR(hardcode_automatic, $1)=no
+_LT_TAGVAR(inherit_rpath, $1)=no
+_LT_TAGVAR(module_cmds, $1)=
+_LT_TAGVAR(module_expsym_cmds, $1)=
+_LT_TAGVAR(link_all_deplibs, $1)=unknown
+_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
+_LT_TAGVAR(reload_flag, $1)=$reload_flag
+_LT_TAGVAR(reload_cmds, $1)=$reload_cmds
+_LT_TAGVAR(no_undefined_flag, $1)=
+_LT_TAGVAR(whole_archive_flag_spec, $1)=
+_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no
+
+# Source file extension for C++ test sources.
+ac_ext=cpp
+
+# Object file extension for compiled C++ test sources.
+objext=o
+_LT_TAGVAR(objext, $1)=$objext
+
+# No sense in running all these tests if we already determined that
+# the CXX compiler isn't working. Some variables (like enable_shared)
+# are currently assumed to apply to all compilers on this platform,
+# and will be corrupted by setting them based on a non-working compiler.
+if test yes != "$_lt_caught_CXX_error"; then
+ # Code to be used in simple compile tests
+ lt_simple_compile_test_code="int some_variable = 0;"
+
+ # Code to be used in simple link tests
+ lt_simple_link_test_code='int main(int, char *[[]]) { return(0); }'
+
+ # ltmain only uses $CC for tagged configurations so make sure $CC is set.
+ _LT_TAG_COMPILER
+
+ # save warnings/boilerplate of simple test code
+ _LT_COMPILER_BOILERPLATE
+ _LT_LINKER_BOILERPLATE
+
+ # Allow CC to be a program name with arguments.
+ lt_save_CC=$CC
+ lt_save_CFLAGS=$CFLAGS
+ lt_save_LD=$LD
+ lt_save_GCC=$GCC
+ GCC=$GXX
+ lt_save_with_gnu_ld=$with_gnu_ld
+ lt_save_path_LD=$lt_cv_path_LD
+ if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then
+ lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx
+ else
+ $as_unset lt_cv_prog_gnu_ld
+ fi
+ if test -n "${lt_cv_path_LDCXX+set}"; then
+ lt_cv_path_LD=$lt_cv_path_LDCXX
+ else
+ $as_unset lt_cv_path_LD
+ fi
+ test -z "${LDCXX+set}" || LD=$LDCXX
+ CC=${CXX-"c++"}
+ CFLAGS=$CXXFLAGS
+ compiler=$CC
+ _LT_TAGVAR(compiler, $1)=$CC
+ _LT_CC_BASENAME([$compiler])
+
+ if test -n "$compiler"; then
+ # We don't want -fno-exception when compiling C++ code, so set the
+ # no_builtin_flag separately
+ if test yes = "$GXX"; then
+ _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin'
+ else
+ _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=
+ fi
+
+ if test yes = "$GXX"; then
+ # Set up default GNU C++ configuration
+
+ LT_PATH_LD
+
+ # Check if GNU C++ uses GNU ld as the underlying linker, since the
+ # archiving commands below assume that GNU ld is being used.
+ if test yes = "$with_gnu_ld"; then
+ _LT_TAGVAR(archive_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib'
+ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
+
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir'
+ _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic'
+
+ # If archive_cmds runs LD, not CC, wlarc should be empty
+ # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to
+ # investigate it a little bit more. (MM)
+ wlarc='$wl'
+
+ # ancient GNU ld didn't support --whole-archive et. al.
+ if eval "`$CC -print-prog-name=ld` --help 2>&1" |
+ $GREP 'no-whole-archive' > /dev/null; then
+ _LT_TAGVAR(whole_archive_flag_spec, $1)=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive'
+ else
+ _LT_TAGVAR(whole_archive_flag_spec, $1)=
+ fi
+ else
+ with_gnu_ld=no
+ wlarc=
+
+ # A generic and very simple default shared library creation
+ # command for GNU C++ for the case where it uses the native
+ # linker, instead of GNU ld. If possible, this setting should
+ # overridden to take advantage of the native linker features on
+ # the platform it is being used on.
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
+ fi
+
+ # Commands to make compiler produce verbose output that lists
+ # what "hidden" libraries, object files and flags are used when
+ # linking a shared library.
+ output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
+
+ else
+ GXX=no
+ with_gnu_ld=no
+ wlarc=
+ fi
+
+ # PORTME: fill in a description of your system's C++ link characteristics
+ AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries])
+ _LT_TAGVAR(ld_shlibs, $1)=yes
+ case $host_os in
+ aix3*)
+ # FIXME: insert proper C++ library support
+ _LT_TAGVAR(ld_shlibs, $1)=no
+ ;;
+ aix[[4-9]]*)
+ if test ia64 = "$host_cpu"; then
+ # On IA64, the linker does run time linking by default, so we don't
+ # have to do anything special.
+ aix_use_runtimelinking=no
+ exp_sym_flag='-Bexport'
+ no_entry_flag=
+ else
+ aix_use_runtimelinking=no
+
+ # Test if we are trying to use run time linking or normal
+ # AIX style linking. If -brtl is somewhere in LDFLAGS, we
+ # have runtime linking enabled, and use it for executables.
+ # For shared libraries, we enable/disable runtime linking
+ # depending on the kind of the shared library created -
+ # when "with_aix_soname,aix_use_runtimelinking" is:
+ # "aix,no" lib.a(lib.so.V) shared, rtl:no, for executables
+ # "aix,yes" lib.so shared, rtl:yes, for executables
+ # lib.a static archive
+ # "both,no" lib.so.V(shr.o) shared, rtl:yes
+ # lib.a(lib.so.V) shared, rtl:no, for executables
+ # "both,yes" lib.so.V(shr.o) shared, rtl:yes, for executables
+ # lib.a(lib.so.V) shared, rtl:no
+ # "svr4,*" lib.so.V(shr.o) shared, rtl:yes, for executables
+ # lib.a static archive
+ case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*)
+ for ld_flag in $LDFLAGS; do
+ case $ld_flag in
+ *-brtl*)
+ aix_use_runtimelinking=yes
+ break
+ ;;
+ esac
+ done
+ if test svr4,no = "$with_aix_soname,$aix_use_runtimelinking"; then
+ # With aix-soname=svr4, we create the lib.so.V shared archives only,
+ # so we don't have lib.a shared libs to link our executables.
+ # We have to force runtime linking in this case.
+ aix_use_runtimelinking=yes
+ LDFLAGS="$LDFLAGS -Wl,-brtl"
+ fi
+ ;;
+ esac
+
+ exp_sym_flag='-bexport'
+ no_entry_flag='-bnoentry'
+ fi
+
+ # When large executables or shared objects are built, AIX ld can
+ # have problems creating the table of contents. If linking a library
+ # or program results in "error TOC overflow" add -mminimal-toc to
+ # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not
+ # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
+
+ _LT_TAGVAR(archive_cmds, $1)=''
+ _LT_TAGVAR(hardcode_direct, $1)=yes
+ _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
+ _LT_TAGVAR(hardcode_libdir_separator, $1)=':'
+ _LT_TAGVAR(link_all_deplibs, $1)=yes
+ _LT_TAGVAR(file_list_spec, $1)='$wl-f,'
+ case $with_aix_soname,$aix_use_runtimelinking in
+ aix,*) ;; # no import file
+ svr4,* | *,yes) # use import file
+ # The Import File defines what to hardcode.
+ _LT_TAGVAR(hardcode_direct, $1)=no
+ _LT_TAGVAR(hardcode_direct_absolute, $1)=no
+ ;;
+ esac
+
+ if test yes = "$GXX"; then
+ case $host_os in aix4.[[012]]|aix4.[[012]].*)
+ # We only want to do this on AIX 4.2 and lower, the check
+ # below for broken collect2 doesn't work under 4.3+
+ collect2name=`$CC -print-prog-name=collect2`
+ if test -f "$collect2name" &&
+ strings "$collect2name" | $GREP resolve_lib_name >/dev/null
+ then
+ # We have reworked collect2
+ :
+ else
+ # We have old collect2
+ _LT_TAGVAR(hardcode_direct, $1)=unsupported
+ # It fails to find uninstalled libraries when the uninstalled
+ # path is not listed in the libpath. Setting hardcode_minus_L
+ # to unsupported forces relinking
+ _LT_TAGVAR(hardcode_minus_L, $1)=yes
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+ _LT_TAGVAR(hardcode_libdir_separator, $1)=
+ fi
+ esac
+ shared_flag='-shared'
+ if test yes = "$aix_use_runtimelinking"; then
+ shared_flag=$shared_flag' $wl-G'
+ fi
+ # Need to ensure runtime linking is disabled for the traditional
+ # shared library, or the linker may eventually find shared libraries
+ # /with/ Import File - we do not want to mix them.
+ shared_flag_aix='-shared'
+ shared_flag_svr4='-shared $wl-G'
+ else
+ # not using gcc
+ if test ia64 = "$host_cpu"; then
+ # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
+ # chokes on -Wl,-G. The following line is correct:
+ shared_flag='-G'
+ else
+ if test yes = "$aix_use_runtimelinking"; then
+ shared_flag='$wl-G'
+ else
+ shared_flag='$wl-bM:SRE'
+ fi
+ shared_flag_aix='$wl-bM:SRE'
+ shared_flag_svr4='$wl-G'
+ fi
+ fi
+
+ _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-bexpall'
+ # It seems that -bexpall does not export symbols beginning with
+ # underscore (_), so it is better to generate a list of symbols to
+ # export.
+ _LT_TAGVAR(always_export_symbols, $1)=yes
+ if test aix,yes = "$with_aix_soname,$aix_use_runtimelinking"; then
+ # Warning - without using the other runtime loading flags (-brtl),
+ # -berok will link without error, but may produce a broken library.
+ # The "-G" linker flag allows undefined symbols.
+ _LT_TAGVAR(no_undefined_flag, $1)='-bernotok'
+ # Determine the default libpath from the value encoded in an empty
+ # executable.
+ _LT_SYS_MODULE_PATH_AIX([$1])
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-blibpath:$libdir:'"$aix_libpath"
+
+ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs $wl'$no_entry_flag' $compiler_flags `if test -n "$allow_undefined_flag"; then func_echo_all "$wl$allow_undefined_flag"; else :; fi` $wl'$exp_sym_flag:\$export_symbols' '$shared_flag
+ else
+ if test ia64 = "$host_cpu"; then
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R $libdir:/usr/lib:/lib'
+ _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs"
+ _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\$wl$no_entry_flag"' $compiler_flags $wl$allow_undefined_flag '"\$wl$exp_sym_flag:\$export_symbols"
+ else
+ # Determine the default libpath from the value encoded in an
+ # empty executable.
+ _LT_SYS_MODULE_PATH_AIX([$1])
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-blibpath:$libdir:'"$aix_libpath"
+ # Warning - without using the other run time loading flags,
+ # -berok will link without error, but may produce a broken library.
+ _LT_TAGVAR(no_undefined_flag, $1)=' $wl-bernotok'
+ _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-berok'
+ if test yes = "$with_gnu_ld"; then
+ # We only use this code for GNU lds that support --whole-archive.
+ _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive$convenience $wl--no-whole-archive'
+ else
+ # Exported symbols can be pulled into shared objects from archives
+ _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience'
+ fi
+ _LT_TAGVAR(archive_cmds_need_lc, $1)=yes
+ _LT_TAGVAR(archive_expsym_cmds, $1)='$RM -r $output_objdir/$realname.d~$MKDIR $output_objdir/$realname.d'
+ # -brtl affects multiple linker settings, -berok does not and is overridden later
+ compiler_flags_filtered='`func_echo_all "$compiler_flags " | $SED -e "s%-brtl\\([[, ]]\\)%-berok\\1%g"`'
+ if test svr4 != "$with_aix_soname"; then
+ # This is similar to how AIX traditionally builds its shared
+ # libraries. Need -bnortl late, we may have -brtl in LDFLAGS.
+ _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$CC '$shared_flag_aix' -o $output_objdir/$realname.d/$soname $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$realname.d/$soname'
+ fi
+ if test aix != "$with_aix_soname"; then
+ _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$CC '$shared_flag_svr4' -o $output_objdir/$realname.d/$shared_archive_member_spec.o $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$STRIP -e $output_objdir/$realname.d/$shared_archive_member_spec.o~( func_echo_all "#! $soname($shared_archive_member_spec.o)"; if test shr_64 = "$shared_archive_member_spec"; then func_echo_all "# 64"; else func_echo_all "# 32"; fi; cat $export_symbols ) > $output_objdir/$realname.d/$shared_archive_member_spec.imp~$AR $AR_FLAGS $output_objdir/$soname $output_objdir/$realname.d/$shared_archive_member_spec.o $output_objdir/$realname.d/$shared_archive_member_spec.imp'
+ else
+ # used by -dlpreopen to get the symbols
+ _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$MV $output_objdir/$realname.d/$soname $output_objdir'
+ fi
+ _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$RM -r $output_objdir/$realname.d'
+ fi
+ fi
+ ;;
+
+ beos*)
+ if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+ _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+ # Joseph Beckenbach <jrb3@best.com> says some releases of gcc
+ # support --undefined. This deserves some investigation. FIXME
+ _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+ else
+ _LT_TAGVAR(ld_shlibs, $1)=no
+ fi
+ ;;
+
+ chorus*)
+ case $cc_basename in
+ *)
+ # FIXME: insert proper C++ library support
+ _LT_TAGVAR(ld_shlibs, $1)=no
+ ;;
+ esac
+ ;;
+
+ cygwin* | mingw* | pw32* | cegcc*)
+ case $GXX,$cc_basename in
+ ,cl* | no,cl*)
+ # Native MSVC
+ # hardcode_libdir_flag_spec is actually meaningless, as there is
+ # no search path for DLLs.
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
+ _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+ _LT_TAGVAR(always_export_symbols, $1)=yes
+ _LT_TAGVAR(file_list_spec, $1)='@'
+ # Tell ltmain to make .lib files, not .a files.
+ libext=lib
+ # Tell ltmain to make .dll files, not .so files.
+ shrext_cmds=.dll
+ # FIXME: Setting linknames here is a bad hack.
+ _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~linknames='
+ _LT_TAGVAR(archive_expsym_cmds, $1)='if _LT_DLL_DEF_P([$export_symbols]); then
+ cp "$export_symbols" "$output_objdir/$soname.def";
+ echo "$tool_output_objdir$soname.def" > "$output_objdir/$soname.exp";
+ else
+ $SED -e '\''s/^/-link -EXPORT:/'\'' < $export_symbols > $output_objdir/$soname.exp;
+ fi~
+ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~
+ linknames='
+ # The linker will not automatically build a static lib if we build a DLL.
+ # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true'
+ _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+ # Don't use ranlib
+ _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib'
+ _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~
+ lt_tool_outputfile="@TOOL_OUTPUT@"~
+ case $lt_outputfile in
+ *.exe|*.EXE) ;;
+ *)
+ lt_outputfile=$lt_outputfile.exe
+ lt_tool_outputfile=$lt_tool_outputfile.exe
+ ;;
+ esac~
+ func_to_tool_file "$lt_outputfile"~
+ if test : != "$MANIFEST_TOOL" && test -f "$lt_outputfile.manifest"; then
+ $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1;
+ $RM "$lt_outputfile.manifest";
+ fi'
+ ;;
+ *)
+ # g++
+ # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
+ # as there is no search path for DLLs.
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+ _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-all-symbols'
+ _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+ _LT_TAGVAR(always_export_symbols, $1)=no
+ _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+
+ if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+ # If the export-symbols file already is a .def file, use it as
+ # is; otherwise, prepend EXPORTS...
+ _LT_TAGVAR(archive_expsym_cmds, $1)='if _LT_DLL_DEF_P([$export_symbols]); then
+ cp $export_symbols $output_objdir/$soname.def;
+ else
+ echo EXPORTS > $output_objdir/$soname.def;
+ cat $export_symbols >> $output_objdir/$soname.def;
+ fi~
+ $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+ else
+ _LT_TAGVAR(ld_shlibs, $1)=no
+ fi
+ ;;
+ esac
+ ;;
+ darwin* | rhapsody*)
+ _LT_DARWIN_LINKER_FEATURES($1)
+ ;;
+
+ os2*)
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+ _LT_TAGVAR(hardcode_minus_L, $1)=yes
+ _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+ shrext_cmds=.dll
+ _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~
+ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~
+ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~
+ $ECHO EXPORTS >> $output_objdir/$libname.def~
+ emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~
+ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~
+ emximp -o $lib $output_objdir/$libname.def'
+ _LT_TAGVAR(archive_expsym_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~
+ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~
+ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~
+ $ECHO EXPORTS >> $output_objdir/$libname.def~
+ prefix_cmds="$SED"~
+ if test EXPORTS = "`$SED 1q $export_symbols`"; then
+ prefix_cmds="$prefix_cmds -e 1d";
+ fi~
+ prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~
+ cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~
+ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~
+ emximp -o $lib $output_objdir/$libname.def'
+ _LT_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def'
+ _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+ ;;
+
+ dgux*)
+ case $cc_basename in
+ ec++*)
+ # FIXME: insert proper C++ library support
+ _LT_TAGVAR(ld_shlibs, $1)=no
+ ;;
+ ghcx*)
+ # Green Hills C++ Compiler
+ # FIXME: insert proper C++ library support
+ _LT_TAGVAR(ld_shlibs, $1)=no
+ ;;
+ *)
+ # FIXME: insert proper C++ library support
+ _LT_TAGVAR(ld_shlibs, $1)=no
+ ;;
+ esac
+ ;;
+
+ freebsd2.*)
+ # C++ shared libraries reported to be fairly broken before
+ # switch to ELF
+ _LT_TAGVAR(ld_shlibs, $1)=no
+ ;;
+
+ freebsd-elf*)
+ _LT_TAGVAR(archive_cmds_need_lc, $1)=no
+ ;;
+
+ freebsd* | dragonfly*)
+ # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF
+ # conventions
+ _LT_TAGVAR(ld_shlibs, $1)=yes
+ ;;
+
+ haiku*)
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+ _LT_TAGVAR(link_all_deplibs, $1)=yes
+ ;;
+
+ hpux9*)
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir'
+ _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+ _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E'
+ _LT_TAGVAR(hardcode_direct, $1)=yes
+ _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH,
+ # but as the default
+ # location of the library.
+
+ case $cc_basename in
+ CC*)
+ # FIXME: insert proper C++ library support
+ _LT_TAGVAR(ld_shlibs, $1)=no
+ ;;
+ aCC*)
+ _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -b $wl+b $wl$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib'
+ # Commands to make compiler produce verbose output that lists
+ # what "hidden" libraries, object files and flags are used when
+ # linking a shared library.
+ #
+ # There doesn't appear to be a way to prevent this compiler from
+ # explicitly linking system object files so we need to strip them
+ # from the output so that they don't get included in the library
+ # dependencies.
+ output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
+ ;;
+ *)
+ if test yes = "$GXX"; then
+ _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -nostdlib $pic_flag $wl+b $wl$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib'
+ else
+ # FIXME: insert proper C++ library support
+ _LT_TAGVAR(ld_shlibs, $1)=no
+ fi
+ ;;
+ esac
+ ;;
+
+ hpux10*|hpux11*)
+ if test no = "$with_gnu_ld"; then
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir'
+ _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+
+ case $host_cpu in
+ hppa*64*|ia64*)
+ ;;
+ *)
+ _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E'
+ ;;
+ esac
+ fi
+ case $host_cpu in
+ hppa*64*|ia64*)
+ _LT_TAGVAR(hardcode_direct, $1)=no
+ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+ ;;
+ *)
+ _LT_TAGVAR(hardcode_direct, $1)=yes
+ _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
+ _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH,
+ # but as the default
+ # location of the library.
+ ;;
+ esac
+
+ case $cc_basename in
+ CC*)
+ # FIXME: insert proper C++ library support
+ _LT_TAGVAR(ld_shlibs, $1)=no
+ ;;
+ aCC*)
+ case $host_cpu in
+ hppa*64*)
+ _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+ ;;
+ ia64*)
+ _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+ ;;
+ *)
+ _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+ ;;
+ esac
+ # Commands to make compiler produce verbose output that lists
+ # what "hidden" libraries, object files and flags are used when
+ # linking a shared library.
+ #
+ # There doesn't appear to be a way to prevent this compiler from
+ # explicitly linking system object files so we need to strip them
+ # from the output so that they don't get included in the library
+ # dependencies.
+ output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
+ ;;
+ *)
+ if test yes = "$GXX"; then
+ if test no = "$with_gnu_ld"; then
+ case $host_cpu in
+ hppa*64*)
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC $wl+h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+ ;;
+ ia64*)
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag $wl+h $wl$soname $wl+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+ ;;
+ *)
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+ ;;
+ esac
+ fi
+ else
+ # FIXME: insert proper C++ library support
+ _LT_TAGVAR(ld_shlibs, $1)=no
+ fi
+ ;;
+ esac
+ ;;
+
+ interix[[3-9]]*)
+ _LT_TAGVAR(hardcode_direct, $1)=no
+ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir'
+ _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E'
+ # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
+ # Instead, shared libraries are loaded at an image base (0x10000000 by
+ # default) and relocated if they conflict, which is a slow very memory
+ # consuming and fragmenting process. To avoid this, we pick a random,
+ # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
+ # time. Moving up from 0x10000000 also allows more sbrk(2) space.
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+ _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+ ;;
+ irix5* | irix6*)
+ case $cc_basename in
+ CC*)
+ # SGI C++
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib'
+
+ # Archives containing C++ object files must be created using
+ # "CC -ar", where "CC" is the IRIX C++ compiler. This is
+ # necessary to make sure instantiated templates are included
+ # in the archive.
+ _LT_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs'
+ ;;
+ *)
+ if test yes = "$GXX"; then
+ if test no = "$with_gnu_ld"; then
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib'
+ else
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` -o $lib'
+ fi
+ fi
+ _LT_TAGVAR(link_all_deplibs, $1)=yes
+ ;;
+ esac
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir'
+ _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+ _LT_TAGVAR(inherit_rpath, $1)=yes
+ ;;
+
+ linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
+ case $cc_basename in
+ KCC*)
+ # Kuck and Associates, Inc. (KAI) C++ Compiler
+
+ # KCC will only create a shared library if the output file
+ # ends with ".so" (or ".sl" for HP-UX), so rename the library
+ # to its proper name (with version) after linking.
+ _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\$tempext\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
+ _LT_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\$tempext\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib $wl-retain-symbols-file,$export_symbols; mv \$templib $lib'
+ # Commands to make compiler produce verbose output that lists
+ # what "hidden" libraries, object files and flags are used when
+ # linking a shared library.
+ #
+ # There doesn't appear to be a way to prevent this compiler from
+ # explicitly linking system object files so we need to strip them
+ # from the output so that they don't get included in the library
+ # dependencies.
+ output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
+
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir'
+ _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic'
+
+ # Archives containing C++ object files must be created using
+ # "CC -Bstatic", where "CC" is the KAI C++ compiler.
+ _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs'
+ ;;
+ icpc* | ecpc* )
+ # Intel C++
+ with_gnu_ld=yes
+ # version 8.0 and above of icpc choke on multiply defined symbols
+ # if we add $predep_objects and $postdep_objects, however 7.1 and
+ # earlier do not add the objects themselves.
+ case `$CC -V 2>&1` in
+ *"Version 7."*)
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib'
+ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
+ ;;
+ *) # Version 8.0 or newer
+ tmp_idyn=
+ case $host_cpu in
+ ia64*) tmp_idyn=' -i_dynamic';;
+ esac
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
+ ;;
+ esac
+ _LT_TAGVAR(archive_cmds_need_lc, $1)=no
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir'
+ _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic'
+ _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive$convenience $wl--no-whole-archive'
+ ;;
+ pgCC* | pgcpp*)
+ # Portland Group C++ compiler
+ case `$CC -V` in
+ *pgCC\ [[1-5]].* | *pgcpp\ [[1-5]].*)
+ _LT_TAGVAR(prelink_cmds, $1)='tpldir=Template.dir~
+ rm -rf $tpldir~
+ $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~
+ compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"'
+ _LT_TAGVAR(old_archive_cmds, $1)='tpldir=Template.dir~
+ rm -rf $tpldir~
+ $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~
+ $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~
+ $RANLIB $oldlib'
+ _LT_TAGVAR(archive_cmds, $1)='tpldir=Template.dir~
+ rm -rf $tpldir~
+ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
+ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib'
+ _LT_TAGVAR(archive_expsym_cmds, $1)='tpldir=Template.dir~
+ rm -rf $tpldir~
+ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
+ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
+ ;;
+ *) # Version 6 and above use weak symbols
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib'
+ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
+ ;;
+ esac
+
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl--rpath $wl$libdir'
+ _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic'
+ _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
+ ;;
+ cxx*)
+ # Compaq C++
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib'
+ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib $wl-retain-symbols-file $wl$export_symbols'
+
+ runpath_var=LD_RUN_PATH
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
+ _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+
+ # Commands to make compiler produce verbose output that lists
+ # what "hidden" libraries, object files and flags are used when
+ # linking a shared library.
+ #
+ # There doesn't appear to be a way to prevent this compiler from
+ # explicitly linking system object files so we need to strip them
+ # from the output so that they don't get included in the library
+ # dependencies.
+ output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "X$list" | $Xsed'
+ ;;
+ xl* | mpixl* | bgxl*)
+ # IBM XL 8.0 on PPC, with GNU ld
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir'
+ _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic'
+ _LT_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+ if test yes = "$supports_anon_versioning"; then
+ _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~
+ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+ echo "local: *; };" >> $output_objdir/$libname.ver~
+ $CC -qmkshrobj $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib'
+ fi
+ ;;
+ *)
+ case `$CC -V 2>&1 | sed 5q` in
+ *Sun\ C*)
+ # Sun C++ 5.9
+ _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs'
+ _LT_TAGVAR(archive_cmds, $1)='$CC -G$allow_undefined_flag -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G$allow_undefined_flag -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-retain-symbols-file $wl$export_symbols'
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+ _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
+ _LT_TAGVAR(compiler_needs_object, $1)=yes
+
+ # Not sure whether something based on
+ # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1
+ # would be better.
+ output_verbose_link_cmd='func_echo_all'
+
+ # Archives containing C++ object files must be created using
+ # "CC -xar", where "CC" is the Sun C++ compiler. This is
+ # necessary to make sure instantiated templates are included
+ # in the archive.
+ _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs'
+ ;;
+ esac
+ ;;
+ esac
+ ;;
+
+ lynxos*)
+ # FIXME: insert proper C++ library support
+ _LT_TAGVAR(ld_shlibs, $1)=no
+ ;;
+
+ m88k*)
+ # FIXME: insert proper C++ library support
+ _LT_TAGVAR(ld_shlibs, $1)=no
+ ;;
+
+ mvs*)
+ case $cc_basename in
+ cxx*)
+ # FIXME: insert proper C++ library support
+ _LT_TAGVAR(ld_shlibs, $1)=no
+ ;;
+ *)
+ # FIXME: insert proper C++ library support
+ _LT_TAGVAR(ld_shlibs, $1)=no
+ ;;
+ esac
+ ;;
+
+ netbsd*)
+ if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
+ _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags'
+ wlarc=
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+ _LT_TAGVAR(hardcode_direct, $1)=yes
+ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+ fi
+ # Workaround some broken pre-1.5 toolchains
+ output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"'
+ ;;
+
+ *nto* | *qnx*)
+ _LT_TAGVAR(ld_shlibs, $1)=yes
+ ;;
+
+ openbsd* | bitrig*)
+ if test -f /usr/libexec/ld.so; then
+ _LT_TAGVAR(hardcode_direct, $1)=yes
+ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+ _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir'
+ if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`"; then
+ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-retain-symbols-file,$export_symbols -o $lib'
+ _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E'
+ _LT_TAGVAR(whole_archive_flag_spec, $1)=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive'
+ fi
+ output_verbose_link_cmd=func_echo_all
+ else
+ _LT_TAGVAR(ld_shlibs, $1)=no
+ fi
+ ;;
+
+ osf3* | osf4* | osf5*)
+ case $cc_basename in
+ KCC*)
+ # Kuck and Associates, Inc. (KAI) C++ Compiler
+
+ # KCC will only create a shared library if the output file
+ # ends with ".so" (or ".sl" for HP-UX), so rename the library
+ # to its proper name (with version) after linking.
+ _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\$tempext\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
+
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir'
+ _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+
+ # Archives containing C++ object files must be created using
+ # the KAI C++ compiler.
+ case $host in
+ osf3*) _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ;;
+ *) _LT_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs' ;;
+ esac
+ ;;
+ RCC*)
+ # Rational C++ 2.4.1
+ # FIXME: insert proper C++ library support
+ _LT_TAGVAR(ld_shlibs, $1)=no
+ ;;
+ cxx*)
+ case $host in
+ osf3*)
+ _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-expect_unresolved $wl\*'
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $soname `test -n "$verstring" && func_echo_all "$wl-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib'
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir'
+ ;;
+ *)
+ _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib'
+ _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~
+ echo "-hidden">> $lib.exp~
+ $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname $wl-input $wl$lib.exp `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib~
+ $RM $lib.exp'
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
+ ;;
+ esac
+
+ _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+
+ # Commands to make compiler produce verbose output that lists
+ # what "hidden" libraries, object files and flags are used when
+ # linking a shared library.
+ #
+ # There doesn't appear to be a way to prevent this compiler from
+ # explicitly linking system object files so we need to strip them
+ # from the output so that they don't get included in the library
+ # dependencies.
+ output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
+ ;;
+ *)
+ if test yes,no = "$GXX,$with_gnu_ld"; then
+ _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-expect_unresolved $wl\*'
+ case $host in
+ osf3*)
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib'
+ ;;
+ *)
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-msym $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib'
+ ;;
+ esac
+
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir'
+ _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+
+ # Commands to make compiler produce verbose output that lists
+ # what "hidden" libraries, object files and flags are used when
+ # linking a shared library.
+ output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
+
+ else
+ # FIXME: insert proper C++ library support
+ _LT_TAGVAR(ld_shlibs, $1)=no
+ fi
+ ;;
+ esac
+ ;;
+
+ psos*)
+ # FIXME: insert proper C++ library support
+ _LT_TAGVAR(ld_shlibs, $1)=no
+ ;;
+
+ sunos4*)
+ case $cc_basename in
+ CC*)
+ # Sun C++ 4.x
+ # FIXME: insert proper C++ library support
+ _LT_TAGVAR(ld_shlibs, $1)=no
+ ;;
+ lcc*)
+ # Lucid
+ # FIXME: insert proper C++ library support
+ _LT_TAGVAR(ld_shlibs, $1)=no
+ ;;
+ *)
+ # FIXME: insert proper C++ library support
+ _LT_TAGVAR(ld_shlibs, $1)=no
+ ;;
+ esac
+ ;;
+
+ solaris*)
+ case $cc_basename in
+ CC* | sunCC*)
+ # Sun C++ 4.2, 5.x and Centerline C++
+ _LT_TAGVAR(archive_cmds_need_lc,$1)=yes
+ _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs'
+ _LT_TAGVAR(archive_cmds, $1)='$CC -G$allow_undefined_flag -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+ _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+ $CC -G$allow_undefined_flag $wl-M $wl$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
+
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+ case $host_os in
+ solaris2.[[0-5]] | solaris2.[[0-5]].*) ;;
+ *)
+ # The compiler driver will combine and reorder linker options,
+ # but understands '-z linker_flag'.
+ # Supported since Solaris 2.6 (maybe 2.5.1?)
+ _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract'
+ ;;
+ esac
+ _LT_TAGVAR(link_all_deplibs, $1)=yes
+
+ output_verbose_link_cmd='func_echo_all'
+
+ # Archives containing C++ object files must be created using
+ # "CC -xar", where "CC" is the Sun C++ compiler. This is
+ # necessary to make sure instantiated templates are included
+ # in the archive.
+ _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs'
+ ;;
+ gcx*)
+ # Green Hills C++ Compiler
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-h $wl$soname -o $lib'
+
+ # The C++ compiler must be used to create the archive.
+ _LT_TAGVAR(old_archive_cmds, $1)='$CC $LDFLAGS -archive -o $oldlib $oldobjs'
+ ;;
+ *)
+ # GNU C++ compiler with Solaris linker
+ if test yes,no = "$GXX,$with_gnu_ld"; then
+ _LT_TAGVAR(no_undefined_flag, $1)=' $wl-z ${wl}defs'
+ if $CC --version | $GREP -v '^2\.7' > /dev/null; then
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-h $wl$soname -o $lib'
+ _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+ $CC -shared $pic_flag -nostdlib $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
+
+ # Commands to make compiler produce verbose output that lists
+ # what "hidden" libraries, object files and flags are used when
+ # linking a shared library.
+ output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
+ else
+ # g++ 2.7 appears to require '-G' NOT '-shared' on this
+ # platform.
+ _LT_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-h $wl$soname -o $lib'
+ _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+ $CC -G -nostdlib $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
+
+ # Commands to make compiler produce verbose output that lists
+ # what "hidden" libraries, object files and flags are used when
+ # linking a shared library.
+ output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
+ fi
+
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R $wl$libdir'
+ case $host_os in
+ solaris2.[[0-5]] | solaris2.[[0-5]].*) ;;
+ *)
+ _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl-z ${wl}allextract$convenience $wl-z ${wl}defaultextract'
+ ;;
+ esac
+ fi
+ ;;
+ esac
+ ;;
+
+ sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*)
+ _LT_TAGVAR(no_undefined_flag, $1)='$wl-z,text'
+ _LT_TAGVAR(archive_cmds_need_lc, $1)=no
+ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+ runpath_var='LD_RUN_PATH'
+
+ case $cc_basename in
+ CC*)
+ _LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ *)
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ esac
+ ;;
+
+ sysv5* | sco3.2v5* | sco5v6*)
+ # Note: We CANNOT use -z defs as we might desire, because we do not
+ # link with -lc, and that would cause any symbols used from libc to
+ # always be unresolved, which means just about no library would
+ # ever link correctly. If we're not using GNU ld we use -z text
+ # though, which does catch some bad symbols but isn't as heavy-handed
+ # as -z defs.
+ _LT_TAGVAR(no_undefined_flag, $1)='$wl-z,text'
+ _LT_TAGVAR(allow_undefined_flag, $1)='$wl-z,nodefs'
+ _LT_TAGVAR(archive_cmds_need_lc, $1)=no
+ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R,$libdir'
+ _LT_TAGVAR(hardcode_libdir_separator, $1)=':'
+ _LT_TAGVAR(link_all_deplibs, $1)=yes
+ _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-Bexport'
+ runpath_var='LD_RUN_PATH'
+
+ case $cc_basename in
+ CC*)
+ _LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ _LT_TAGVAR(old_archive_cmds, $1)='$CC -Tprelink_objects $oldobjs~
+ '"$_LT_TAGVAR(old_archive_cmds, $1)"
+ _LT_TAGVAR(reload_cmds, $1)='$CC -Tprelink_objects $reload_objs~
+ '"$_LT_TAGVAR(reload_cmds, $1)"
+ ;;
+ *)
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ esac
+ ;;
+
+ tandem*)
+ case $cc_basename in
+ NCC*)
+ # NonStop-UX NCC 3.20
+ # FIXME: insert proper C++ library support
+ _LT_TAGVAR(ld_shlibs, $1)=no
+ ;;
+ *)
+ # FIXME: insert proper C++ library support
+ _LT_TAGVAR(ld_shlibs, $1)=no
+ ;;
+ esac
+ ;;
+
+ vxworks*)
+ # FIXME: insert proper C++ library support
+ _LT_TAGVAR(ld_shlibs, $1)=no
+ ;;
+
+ *)
+ # FIXME: insert proper C++ library support
+ _LT_TAGVAR(ld_shlibs, $1)=no
+ ;;
+ esac
+
+ AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)])
+ test no = "$_LT_TAGVAR(ld_shlibs, $1)" && can_build_shared=no
+
+ _LT_TAGVAR(GCC, $1)=$GXX
+ _LT_TAGVAR(LD, $1)=$LD
+
+ ## CAVEAT EMPTOR:
+ ## There is no encapsulation within the following macros, do not change
+ ## the running order or otherwise move them around unless you know exactly
+ ## what you are doing...
+ _LT_SYS_HIDDEN_LIBDEPS($1)
+ _LT_COMPILER_PIC($1)
+ _LT_COMPILER_C_O($1)
+ _LT_COMPILER_FILE_LOCKS($1)
+ _LT_LINKER_SHLIBS($1)
+ _LT_SYS_DYNAMIC_LINKER($1)
+ _LT_LINKER_HARDCODE_LIBPATH($1)
+
+ _LT_CONFIG($1)
+ fi # test -n "$compiler"
+
+ CC=$lt_save_CC
+ CFLAGS=$lt_save_CFLAGS
+ LDCXX=$LD
+ LD=$lt_save_LD
+ GCC=$lt_save_GCC
+ with_gnu_ld=$lt_save_with_gnu_ld
+ lt_cv_path_LDCXX=$lt_cv_path_LD
+ lt_cv_path_LD=$lt_save_path_LD
+ lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld
+ lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld
+fi # test yes != "$_lt_caught_CXX_error"
+
+AC_LANG_POP
+])# _LT_LANG_CXX_CONFIG
+
+
+# _LT_FUNC_STRIPNAME_CNF
+# ----------------------
+# func_stripname_cnf prefix suffix name
+# strip PREFIX and SUFFIX off of NAME.
+# PREFIX and SUFFIX must not contain globbing or regex special
+# characters, hashes, percent signs, but SUFFIX may contain a leading
+# dot (in which case that matches only a dot).
+#
+# This function is identical to the (non-XSI) version of func_stripname,
+# except this one can be used by m4 code that may be executed by configure,
+# rather than the libtool script.
+m4_defun([_LT_FUNC_STRIPNAME_CNF],[dnl
+AC_REQUIRE([_LT_DECL_SED])
+AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])
+func_stripname_cnf ()
+{
+ case @S|@2 in
+ .*) func_stripname_result=`$ECHO "@S|@3" | $SED "s%^@S|@1%%; s%\\\\@S|@2\$%%"`;;
+ *) func_stripname_result=`$ECHO "@S|@3" | $SED "s%^@S|@1%%; s%@S|@2\$%%"`;;
+ esac
+} # func_stripname_cnf
+])# _LT_FUNC_STRIPNAME_CNF
+
+
+# _LT_SYS_HIDDEN_LIBDEPS([TAGNAME])
+# ---------------------------------
+# Figure out "hidden" library dependencies from verbose
+# compiler output when linking a shared library.
+# Parse the compiler output and extract the necessary
+# objects, libraries and library flags.
+m4_defun([_LT_SYS_HIDDEN_LIBDEPS],
+[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+AC_REQUIRE([_LT_FUNC_STRIPNAME_CNF])dnl
+# Dependencies to place before and after the object being linked:
+_LT_TAGVAR(predep_objects, $1)=
+_LT_TAGVAR(postdep_objects, $1)=
+_LT_TAGVAR(predeps, $1)=
+_LT_TAGVAR(postdeps, $1)=
+_LT_TAGVAR(compiler_lib_search_path, $1)=
+
+dnl we can't use the lt_simple_compile_test_code here,
+dnl because it contains code intended for an executable,
+dnl not a library. It's possible we should let each
+dnl tag define a new lt_????_link_test_code variable,
+dnl but it's only used here...
+m4_if([$1], [], [cat > conftest.$ac_ext <<_LT_EOF
+int a;
+void foo (void) { a = 0; }
+_LT_EOF
+], [$1], [CXX], [cat > conftest.$ac_ext <<_LT_EOF
+class Foo
+{
+public:
+ Foo (void) { a = 0; }
+private:
+ int a;
+};
+_LT_EOF
+], [$1], [F77], [cat > conftest.$ac_ext <<_LT_EOF
+ subroutine foo
+ implicit none
+ integer*4 a
+ a=0
+ return
+ end
+_LT_EOF
+], [$1], [FC], [cat > conftest.$ac_ext <<_LT_EOF
+ subroutine foo
+ implicit none
+ integer a
+ a=0
+ return
+ end
+_LT_EOF
+], [$1], [GCJ], [cat > conftest.$ac_ext <<_LT_EOF
+public class foo {
+ private int a;
+ public void bar (void) {
+ a = 0;
+ }
+};
+_LT_EOF
+], [$1], [GO], [cat > conftest.$ac_ext <<_LT_EOF
+package foo
+func foo() {
+}
+_LT_EOF
+])
+
+_lt_libdeps_save_CFLAGS=$CFLAGS
+case "$CC $CFLAGS " in #(
+*\ -flto*\ *) CFLAGS="$CFLAGS -fno-lto" ;;
+*\ -fwhopr*\ *) CFLAGS="$CFLAGS -fno-whopr" ;;
+*\ -fuse-linker-plugin*\ *) CFLAGS="$CFLAGS -fno-use-linker-plugin" ;;
+esac
+
+dnl Parse the compiler output and extract the necessary
+dnl objects, libraries and library flags.
+if AC_TRY_EVAL(ac_compile); then
+ # Parse the compiler output and extract the necessary
+ # objects, libraries and library flags.
+
+ # Sentinel used to keep track of whether or not we are before
+ # the conftest object file.
+ pre_test_object_deps_done=no
+
+ for p in `eval "$output_verbose_link_cmd"`; do
+ case $prev$p in
+
+ -L* | -R* | -l*)
+ # Some compilers place space between "-{L,R}" and the path.
+ # Remove the space.
+ if test x-L = "$p" ||
+ test x-R = "$p"; then
+ prev=$p
+ continue
+ fi
+
+ # Expand the sysroot to ease extracting the directories later.
+ if test -z "$prev"; then
+ case $p in
+ -L*) func_stripname_cnf '-L' '' "$p"; prev=-L; p=$func_stripname_result ;;
+ -R*) func_stripname_cnf '-R' '' "$p"; prev=-R; p=$func_stripname_result ;;
+ -l*) func_stripname_cnf '-l' '' "$p"; prev=-l; p=$func_stripname_result ;;
+ esac
+ fi
+ case $p in
+ =*) func_stripname_cnf '=' '' "$p"; p=$lt_sysroot$func_stripname_result ;;
+ esac
+ if test no = "$pre_test_object_deps_done"; then
+ case $prev in
+ -L | -R)
+ # Internal compiler library paths should come after those
+ # provided the user. The postdeps already come after the
+ # user supplied libs so there is no need to process them.
+ if test -z "$_LT_TAGVAR(compiler_lib_search_path, $1)"; then
+ _LT_TAGVAR(compiler_lib_search_path, $1)=$prev$p
+ else
+ _LT_TAGVAR(compiler_lib_search_path, $1)="${_LT_TAGVAR(compiler_lib_search_path, $1)} $prev$p"
+ fi
+ ;;
+ # The "-l" case would never come before the object being
+ # linked, so don't bother handling this case.
+ esac
+ else
+ if test -z "$_LT_TAGVAR(postdeps, $1)"; then
+ _LT_TAGVAR(postdeps, $1)=$prev$p
+ else
+ _LT_TAGVAR(postdeps, $1)="${_LT_TAGVAR(postdeps, $1)} $prev$p"
+ fi
+ fi
+ prev=
+ ;;
+
+ *.lto.$objext) ;; # Ignore GCC LTO objects
+ *.$objext)
+ # This assumes that the test object file only shows up
+ # once in the compiler output.
+ if test "$p" = "conftest.$objext"; then
+ pre_test_object_deps_done=yes
+ continue
+ fi
+
+ if test no = "$pre_test_object_deps_done"; then
+ if test -z "$_LT_TAGVAR(predep_objects, $1)"; then
+ _LT_TAGVAR(predep_objects, $1)=$p
+ else
+ _LT_TAGVAR(predep_objects, $1)="$_LT_TAGVAR(predep_objects, $1) $p"
+ fi
+ else
+ if test -z "$_LT_TAGVAR(postdep_objects, $1)"; then
+ _LT_TAGVAR(postdep_objects, $1)=$p
+ else
+ _LT_TAGVAR(postdep_objects, $1)="$_LT_TAGVAR(postdep_objects, $1) $p"
+ fi
+ fi
+ ;;
+
+ *) ;; # Ignore the rest.
+
+ esac
+ done
+
+ # Clean up.
+ rm -f a.out a.exe
+else
+ echo "libtool.m4: error: problem compiling $1 test program"
+fi
+
+$RM -f confest.$objext
+CFLAGS=$_lt_libdeps_save_CFLAGS
+
+# PORTME: override above test on systems where it is broken
+m4_if([$1], [CXX],
+[case $host_os in
+interix[[3-9]]*)
+ # Interix 3.5 installs completely hosed .la files for C++, so rather than
+ # hack all around it, let's just trust "g++" to DTRT.
+ _LT_TAGVAR(predep_objects,$1)=
+ _LT_TAGVAR(postdep_objects,$1)=
+ _LT_TAGVAR(postdeps,$1)=
+ ;;
+esac
+])
+
+case " $_LT_TAGVAR(postdeps, $1) " in
+*" -lc "*) _LT_TAGVAR(archive_cmds_need_lc, $1)=no ;;
+esac
+ _LT_TAGVAR(compiler_lib_search_dirs, $1)=
+if test -n "${_LT_TAGVAR(compiler_lib_search_path, $1)}"; then
+ _LT_TAGVAR(compiler_lib_search_dirs, $1)=`echo " ${_LT_TAGVAR(compiler_lib_search_path, $1)}" | $SED -e 's! -L! !g' -e 's!^ !!'`
+fi
+_LT_TAGDECL([], [compiler_lib_search_dirs], [1],
+ [The directories searched by this compiler when creating a shared library])
+_LT_TAGDECL([], [predep_objects], [1],
+ [Dependencies to place before and after the objects being linked to
+ create a shared library])
+_LT_TAGDECL([], [postdep_objects], [1])
+_LT_TAGDECL([], [predeps], [1])
+_LT_TAGDECL([], [postdeps], [1])
+_LT_TAGDECL([], [compiler_lib_search_path], [1],
+ [The library search path used internally by the compiler when linking
+ a shared library])
+])# _LT_SYS_HIDDEN_LIBDEPS
+
+
+# _LT_LANG_F77_CONFIG([TAG])
+# --------------------------
+# Ensure that the configuration variables for a Fortran 77 compiler are
+# suitably defined. These variables are subsequently used by _LT_CONFIG
+# to write the compiler configuration to 'libtool'.
+m4_defun([_LT_LANG_F77_CONFIG],
+[AC_LANG_PUSH(Fortran 77)
+if test -z "$F77" || test no = "$F77"; then
+ _lt_disable_F77=yes
+fi
+
+_LT_TAGVAR(archive_cmds_need_lc, $1)=no
+_LT_TAGVAR(allow_undefined_flag, $1)=
+_LT_TAGVAR(always_export_symbols, $1)=no
+_LT_TAGVAR(archive_expsym_cmds, $1)=
+_LT_TAGVAR(export_dynamic_flag_spec, $1)=
+_LT_TAGVAR(hardcode_direct, $1)=no
+_LT_TAGVAR(hardcode_direct_absolute, $1)=no
+_LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
+_LT_TAGVAR(hardcode_libdir_separator, $1)=
+_LT_TAGVAR(hardcode_minus_L, $1)=no
+_LT_TAGVAR(hardcode_automatic, $1)=no
+_LT_TAGVAR(inherit_rpath, $1)=no
+_LT_TAGVAR(module_cmds, $1)=
+_LT_TAGVAR(module_expsym_cmds, $1)=
+_LT_TAGVAR(link_all_deplibs, $1)=unknown
+_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
+_LT_TAGVAR(reload_flag, $1)=$reload_flag
+_LT_TAGVAR(reload_cmds, $1)=$reload_cmds
+_LT_TAGVAR(no_undefined_flag, $1)=
+_LT_TAGVAR(whole_archive_flag_spec, $1)=
+_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no
+
+# Source file extension for f77 test sources.
+ac_ext=f
+
+# Object file extension for compiled f77 test sources.
+objext=o
+_LT_TAGVAR(objext, $1)=$objext
+
+# No sense in running all these tests if we already determined that
+# the F77 compiler isn't working. Some variables (like enable_shared)
+# are currently assumed to apply to all compilers on this platform,
+# and will be corrupted by setting them based on a non-working compiler.
+if test yes != "$_lt_disable_F77"; then
+ # Code to be used in simple compile tests
+ lt_simple_compile_test_code="\
+ subroutine t
+ return
+ end
+"
+
+ # Code to be used in simple link tests
+ lt_simple_link_test_code="\
+ program t
+ end
+"
+
+ # ltmain only uses $CC for tagged configurations so make sure $CC is set.
+ _LT_TAG_COMPILER
+
+ # save warnings/boilerplate of simple test code
+ _LT_COMPILER_BOILERPLATE
+ _LT_LINKER_BOILERPLATE
+
+ # Allow CC to be a program name with arguments.
+ lt_save_CC=$CC
+ lt_save_GCC=$GCC
+ lt_save_CFLAGS=$CFLAGS
+ CC=${F77-"f77"}
+ CFLAGS=$FFLAGS
+ compiler=$CC
+ _LT_TAGVAR(compiler, $1)=$CC
+ _LT_CC_BASENAME([$compiler])
+ GCC=$G77
+ if test -n "$compiler"; then
+ AC_MSG_CHECKING([if libtool supports shared libraries])
+ AC_MSG_RESULT([$can_build_shared])
+
+ AC_MSG_CHECKING([whether to build shared libraries])
+ test no = "$can_build_shared" && enable_shared=no
+
+ # On AIX, shared libraries and static libraries use the same namespace, and
+ # are all built from PIC.
+ case $host_os in
+ aix3*)
+ test yes = "$enable_shared" && enable_static=no
+ if test -n "$RANLIB"; then
+ archive_cmds="$archive_cmds~\$RANLIB \$lib"
+ postinstall_cmds='$RANLIB $lib'
+ fi
+ ;;
+ aix[[4-9]]*)
+ if test ia64 != "$host_cpu"; then
+ case $enable_shared,$with_aix_soname,$aix_use_runtimelinking in
+ yes,aix,yes) ;; # shared object as lib.so file only
+ yes,svr4,*) ;; # shared object as lib.so archive member only
+ yes,*) enable_static=no ;; # shared object in lib.a archive as well
+ esac
+ fi
+ ;;
+ esac
+ AC_MSG_RESULT([$enable_shared])
+
+ AC_MSG_CHECKING([whether to build static libraries])
+ # Make sure either enable_shared or enable_static is yes.
+ test yes = "$enable_shared" || enable_static=yes
+ AC_MSG_RESULT([$enable_static])
+
+ _LT_TAGVAR(GCC, $1)=$G77
+ _LT_TAGVAR(LD, $1)=$LD
+
+ ## CAVEAT EMPTOR:
+ ## There is no encapsulation within the following macros, do not change
+ ## the running order or otherwise move them around unless you know exactly
+ ## what you are doing...
+ _LT_COMPILER_PIC($1)
+ _LT_COMPILER_C_O($1)
+ _LT_COMPILER_FILE_LOCKS($1)
+ _LT_LINKER_SHLIBS($1)
+ _LT_SYS_DYNAMIC_LINKER($1)
+ _LT_LINKER_HARDCODE_LIBPATH($1)
+
+ _LT_CONFIG($1)
+ fi # test -n "$compiler"
+
+ GCC=$lt_save_GCC
+ CC=$lt_save_CC
+ CFLAGS=$lt_save_CFLAGS
+fi # test yes != "$_lt_disable_F77"
+
+AC_LANG_POP
+])# _LT_LANG_F77_CONFIG
+
+
+# _LT_LANG_FC_CONFIG([TAG])
+# -------------------------
+# Ensure that the configuration variables for a Fortran compiler are
+# suitably defined. These variables are subsequently used by _LT_CONFIG
+# to write the compiler configuration to 'libtool'.
+m4_defun([_LT_LANG_FC_CONFIG],
+[AC_LANG_PUSH(Fortran)
+
+if test -z "$FC" || test no = "$FC"; then
+ _lt_disable_FC=yes
+fi
+
+_LT_TAGVAR(archive_cmds_need_lc, $1)=no
+_LT_TAGVAR(allow_undefined_flag, $1)=
+_LT_TAGVAR(always_export_symbols, $1)=no
+_LT_TAGVAR(archive_expsym_cmds, $1)=
+_LT_TAGVAR(export_dynamic_flag_spec, $1)=
+_LT_TAGVAR(hardcode_direct, $1)=no
+_LT_TAGVAR(hardcode_direct_absolute, $1)=no
+_LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
+_LT_TAGVAR(hardcode_libdir_separator, $1)=
+_LT_TAGVAR(hardcode_minus_L, $1)=no
+_LT_TAGVAR(hardcode_automatic, $1)=no
+_LT_TAGVAR(inherit_rpath, $1)=no
+_LT_TAGVAR(module_cmds, $1)=
+_LT_TAGVAR(module_expsym_cmds, $1)=
+_LT_TAGVAR(link_all_deplibs, $1)=unknown
+_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
+_LT_TAGVAR(reload_flag, $1)=$reload_flag
+_LT_TAGVAR(reload_cmds, $1)=$reload_cmds
+_LT_TAGVAR(no_undefined_flag, $1)=
+_LT_TAGVAR(whole_archive_flag_spec, $1)=
+_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no
+
+# Source file extension for fc test sources.
+ac_ext=${ac_fc_srcext-f}
+
+# Object file extension for compiled fc test sources.
+objext=o
+_LT_TAGVAR(objext, $1)=$objext
+
+# No sense in running all these tests if we already determined that
+# the FC compiler isn't working. Some variables (like enable_shared)
+# are currently assumed to apply to all compilers on this platform,
+# and will be corrupted by setting them based on a non-working compiler.
+if test yes != "$_lt_disable_FC"; then
+ # Code to be used in simple compile tests
+ lt_simple_compile_test_code="\
+ subroutine t
+ return
+ end
+"
+
+ # Code to be used in simple link tests
+ lt_simple_link_test_code="\
+ program t
+ end
+"
+
+ # ltmain only uses $CC for tagged configurations so make sure $CC is set.
+ _LT_TAG_COMPILER
+
+ # save warnings/boilerplate of simple test code
+ _LT_COMPILER_BOILERPLATE
+ _LT_LINKER_BOILERPLATE
+
+ # Allow CC to be a program name with arguments.
+ lt_save_CC=$CC
+ lt_save_GCC=$GCC
+ lt_save_CFLAGS=$CFLAGS
+ CC=${FC-"f95"}
+ CFLAGS=$FCFLAGS
+ compiler=$CC
+ GCC=$ac_cv_fc_compiler_gnu
+
+ _LT_TAGVAR(compiler, $1)=$CC
+ _LT_CC_BASENAME([$compiler])
+
+ if test -n "$compiler"; then
+ AC_MSG_CHECKING([if libtool supports shared libraries])
+ AC_MSG_RESULT([$can_build_shared])
+
+ AC_MSG_CHECKING([whether to build shared libraries])
+ test no = "$can_build_shared" && enable_shared=no
+
+ # On AIX, shared libraries and static libraries use the same namespace, and
+ # are all built from PIC.
+ case $host_os in
+ aix3*)
+ test yes = "$enable_shared" && enable_static=no
+ if test -n "$RANLIB"; then
+ archive_cmds="$archive_cmds~\$RANLIB \$lib"
+ postinstall_cmds='$RANLIB $lib'
+ fi
+ ;;
+ aix[[4-9]]*)
+ if test ia64 != "$host_cpu"; then
+ case $enable_shared,$with_aix_soname,$aix_use_runtimelinking in
+ yes,aix,yes) ;; # shared object as lib.so file only
+ yes,svr4,*) ;; # shared object as lib.so archive member only
+ yes,*) enable_static=no ;; # shared object in lib.a archive as well
+ esac
+ fi
+ ;;
+ esac
+ AC_MSG_RESULT([$enable_shared])
+
+ AC_MSG_CHECKING([whether to build static libraries])
+ # Make sure either enable_shared or enable_static is yes.
+ test yes = "$enable_shared" || enable_static=yes
+ AC_MSG_RESULT([$enable_static])
+
+ _LT_TAGVAR(GCC, $1)=$ac_cv_fc_compiler_gnu
+ _LT_TAGVAR(LD, $1)=$LD
+
+ ## CAVEAT EMPTOR:
+ ## There is no encapsulation within the following macros, do not change
+ ## the running order or otherwise move them around unless you know exactly
+ ## what you are doing...
+ _LT_SYS_HIDDEN_LIBDEPS($1)
+ _LT_COMPILER_PIC($1)
+ _LT_COMPILER_C_O($1)
+ _LT_COMPILER_FILE_LOCKS($1)
+ _LT_LINKER_SHLIBS($1)
+ _LT_SYS_DYNAMIC_LINKER($1)
+ _LT_LINKER_HARDCODE_LIBPATH($1)
+
+ _LT_CONFIG($1)
+ fi # test -n "$compiler"
+
+ GCC=$lt_save_GCC
+ CC=$lt_save_CC
+ CFLAGS=$lt_save_CFLAGS
+fi # test yes != "$_lt_disable_FC"
+
+AC_LANG_POP
+])# _LT_LANG_FC_CONFIG
+
+
+# _LT_LANG_GCJ_CONFIG([TAG])
+# --------------------------
+# Ensure that the configuration variables for the GNU Java Compiler compiler
+# are suitably defined. These variables are subsequently used by _LT_CONFIG
+# to write the compiler configuration to 'libtool'.
+m4_defun([_LT_LANG_GCJ_CONFIG],
+[AC_REQUIRE([LT_PROG_GCJ])dnl
+AC_LANG_SAVE
+
+# Source file extension for Java test sources.
+ac_ext=java
+
+# Object file extension for compiled Java test sources.
+objext=o
+_LT_TAGVAR(objext, $1)=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code="class foo {}"
+
+# Code to be used in simple link tests
+lt_simple_link_test_code='public class conftest { public static void main(String[[]] argv) {}; }'
+
+# ltmain only uses $CC for tagged configurations so make sure $CC is set.
+_LT_TAG_COMPILER
+
+# save warnings/boilerplate of simple test code
+_LT_COMPILER_BOILERPLATE
+_LT_LINKER_BOILERPLATE
+
+# Allow CC to be a program name with arguments.
+lt_save_CC=$CC
+lt_save_CFLAGS=$CFLAGS
+lt_save_GCC=$GCC
+GCC=yes
+CC=${GCJ-"gcj"}
+CFLAGS=$GCJFLAGS
+compiler=$CC
+_LT_TAGVAR(compiler, $1)=$CC
+_LT_TAGVAR(LD, $1)=$LD
+_LT_CC_BASENAME([$compiler])
+
+# GCJ did not exist at the time GCC didn't implicitly link libc in.
+_LT_TAGVAR(archive_cmds_need_lc, $1)=no
+
+_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
+_LT_TAGVAR(reload_flag, $1)=$reload_flag
+_LT_TAGVAR(reload_cmds, $1)=$reload_cmds
+
+## CAVEAT EMPTOR:
+## There is no encapsulation within the following macros, do not change
+## the running order or otherwise move them around unless you know exactly
+## what you are doing...
+if test -n "$compiler"; then
+ _LT_COMPILER_NO_RTTI($1)
+ _LT_COMPILER_PIC($1)
+ _LT_COMPILER_C_O($1)
+ _LT_COMPILER_FILE_LOCKS($1)
+ _LT_LINKER_SHLIBS($1)
+ _LT_LINKER_HARDCODE_LIBPATH($1)
+
+ _LT_CONFIG($1)
+fi
+
+AC_LANG_RESTORE
+
+GCC=$lt_save_GCC
+CC=$lt_save_CC
+CFLAGS=$lt_save_CFLAGS
+])# _LT_LANG_GCJ_CONFIG
+
+
+# _LT_LANG_GO_CONFIG([TAG])
+# --------------------------
+# Ensure that the configuration variables for the GNU Go compiler
+# are suitably defined. These variables are subsequently used by _LT_CONFIG
+# to write the compiler configuration to 'libtool'.
+m4_defun([_LT_LANG_GO_CONFIG],
+[AC_REQUIRE([LT_PROG_GO])dnl
+AC_LANG_SAVE
+
+# Source file extension for Go test sources.
+ac_ext=go
+
+# Object file extension for compiled Go test sources.
+objext=o
+_LT_TAGVAR(objext, $1)=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code="package main; func main() { }"
+
+# Code to be used in simple link tests
+lt_simple_link_test_code='package main; func main() { }'
+
+# ltmain only uses $CC for tagged configurations so make sure $CC is set.
+_LT_TAG_COMPILER
+
+# save warnings/boilerplate of simple test code
+_LT_COMPILER_BOILERPLATE
+_LT_LINKER_BOILERPLATE
+
+# Allow CC to be a program name with arguments.
+lt_save_CC=$CC
+lt_save_CFLAGS=$CFLAGS
+lt_save_GCC=$GCC
+GCC=yes
+CC=${GOC-"gccgo"}
+CFLAGS=$GOFLAGS
+compiler=$CC
+_LT_TAGVAR(compiler, $1)=$CC
+_LT_TAGVAR(LD, $1)=$LD
+_LT_CC_BASENAME([$compiler])
+
+# Go did not exist at the time GCC didn't implicitly link libc in.
+_LT_TAGVAR(archive_cmds_need_lc, $1)=no
+
+_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
+_LT_TAGVAR(reload_flag, $1)=$reload_flag
+_LT_TAGVAR(reload_cmds, $1)=$reload_cmds
+
+## CAVEAT EMPTOR:
+## There is no encapsulation within the following macros, do not change
+## the running order or otherwise move them around unless you know exactly
+## what you are doing...
+if test -n "$compiler"; then
+ _LT_COMPILER_NO_RTTI($1)
+ _LT_COMPILER_PIC($1)
+ _LT_COMPILER_C_O($1)
+ _LT_COMPILER_FILE_LOCKS($1)
+ _LT_LINKER_SHLIBS($1)
+ _LT_LINKER_HARDCODE_LIBPATH($1)
+
+ _LT_CONFIG($1)
+fi
+
+AC_LANG_RESTORE
+
+GCC=$lt_save_GCC
+CC=$lt_save_CC
+CFLAGS=$lt_save_CFLAGS
+])# _LT_LANG_GO_CONFIG
+
+
+# _LT_LANG_RC_CONFIG([TAG])
+# -------------------------
+# Ensure that the configuration variables for the Windows resource compiler
+# are suitably defined. These variables are subsequently used by _LT_CONFIG
+# to write the compiler configuration to 'libtool'.
+m4_defun([_LT_LANG_RC_CONFIG],
+[AC_REQUIRE([LT_PROG_RC])dnl
+AC_LANG_SAVE
+
+# Source file extension for RC test sources.
+ac_ext=rc
+
+# Object file extension for compiled RC test sources.
+objext=o
+_LT_TAGVAR(objext, $1)=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }'
+
+# Code to be used in simple link tests
+lt_simple_link_test_code=$lt_simple_compile_test_code
+
+# ltmain only uses $CC for tagged configurations so make sure $CC is set.
+_LT_TAG_COMPILER
+
+# save warnings/boilerplate of simple test code
+_LT_COMPILER_BOILERPLATE
+_LT_LINKER_BOILERPLATE
+
+# Allow CC to be a program name with arguments.
+lt_save_CC=$CC
+lt_save_CFLAGS=$CFLAGS
+lt_save_GCC=$GCC
+GCC=
+CC=${RC-"windres"}
+CFLAGS=
+compiler=$CC
+_LT_TAGVAR(compiler, $1)=$CC
+_LT_CC_BASENAME([$compiler])
+_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes
+
+if test -n "$compiler"; then
+ :
+ _LT_CONFIG($1)
+fi
+
+GCC=$lt_save_GCC
+AC_LANG_RESTORE
+CC=$lt_save_CC
+CFLAGS=$lt_save_CFLAGS
+])# _LT_LANG_RC_CONFIG
+
+
+# LT_PROG_GCJ
+# -----------
+AC_DEFUN([LT_PROG_GCJ],
+[m4_ifdef([AC_PROG_GCJ], [AC_PROG_GCJ],
+ [m4_ifdef([A][M_PROG_GCJ], [A][M_PROG_GCJ],
+ [AC_CHECK_TOOL(GCJ, gcj,)
+ test set = "${GCJFLAGS+set}" || GCJFLAGS="-g -O2"
+ AC_SUBST(GCJFLAGS)])])[]dnl
+])
+
+# Old name:
+AU_ALIAS([LT_AC_PROG_GCJ], [LT_PROG_GCJ])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([LT_AC_PROG_GCJ], [])
+
+
+# LT_PROG_GO
+# ----------
+AC_DEFUN([LT_PROG_GO],
+[AC_CHECK_TOOL(GOC, gccgo,)
+])
+
+
+# LT_PROG_RC
+# ----------
+AC_DEFUN([LT_PROG_RC],
+[AC_CHECK_TOOL(RC, windres,)
+])
+
+# Old name:
+AU_ALIAS([LT_AC_PROG_RC], [LT_PROG_RC])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([LT_AC_PROG_RC], [])
+
+
+# _LT_DECL_EGREP
+# --------------
+# If we don't have a new enough Autoconf to choose the best grep
+# available, choose the one first in the user's PATH.
+m4_defun([_LT_DECL_EGREP],
+[AC_REQUIRE([AC_PROG_EGREP])dnl
+AC_REQUIRE([AC_PROG_FGREP])dnl
+test -z "$GREP" && GREP=grep
+_LT_DECL([], [GREP], [1], [A grep program that handles long lines])
+_LT_DECL([], [EGREP], [1], [An ERE matcher])
+_LT_DECL([], [FGREP], [1], [A literal string matcher])
+dnl Non-bleeding-edge autoconf doesn't subst GREP, so do it here too
+AC_SUBST([GREP])
+])
+
+
+# _LT_DECL_OBJDUMP
+# --------------
+# If we don't have a new enough Autoconf to choose the best objdump
+# available, choose the one first in the user's PATH.
+m4_defun([_LT_DECL_OBJDUMP],
+[AC_CHECK_TOOL(OBJDUMP, objdump, false)
+test -z "$OBJDUMP" && OBJDUMP=objdump
+_LT_DECL([], [OBJDUMP], [1], [An object symbol dumper])
+AC_SUBST([OBJDUMP])
+])
+
+# _LT_DECL_DLLTOOL
+# ----------------
+# Ensure DLLTOOL variable is set.
+m4_defun([_LT_DECL_DLLTOOL],
+[AC_CHECK_TOOL(DLLTOOL, dlltool, false)
+test -z "$DLLTOOL" && DLLTOOL=dlltool
+_LT_DECL([], [DLLTOOL], [1], [DLL creation program])
+AC_SUBST([DLLTOOL])
+])
+
+# _LT_DECL_SED
+# ------------
+# Check for a fully-functional sed program, that truncates
+# as few characters as possible. Prefer GNU sed if found.
+m4_defun([_LT_DECL_SED],
+[AC_PROG_SED
+test -z "$SED" && SED=sed
+Xsed="$SED -e 1s/^X//"
+_LT_DECL([], [SED], [1], [A sed program that does not truncate output])
+_LT_DECL([], [Xsed], ["\$SED -e 1s/^X//"],
+ [Sed that helps us avoid accidentally triggering echo(1) options like -n])
+])# _LT_DECL_SED
+
+m4_ifndef([AC_PROG_SED], [
+############################################################
+# NOTE: This macro has been submitted for inclusion into #
+# GNU Autoconf as AC_PROG_SED. When it is available in #
+# a released version of Autoconf we should remove this #
+# macro and use it instead. #
+############################################################
+
+m4_defun([AC_PROG_SED],
+[AC_MSG_CHECKING([for a sed that does not truncate output])
+AC_CACHE_VAL(lt_cv_path_SED,
+[# Loop through the user's path and test for sed and gsed.
+# Then use that list of sed's as ones to test for truncation.
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for lt_ac_prog in sed gsed; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then
+ lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext"
+ fi
+ done
+ done
+done
+IFS=$as_save_IFS
+lt_ac_max=0
+lt_ac_count=0
+# Add /usr/xpg4/bin/sed as it is typically found on Solaris
+# along with /bin/sed that truncates output.
+for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do
+ test ! -f "$lt_ac_sed" && continue
+ cat /dev/null > conftest.in
+ lt_ac_count=0
+ echo $ECHO_N "0123456789$ECHO_C" >conftest.in
+ # Check for GNU sed and select it if it is found.
+ if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then
+ lt_cv_path_SED=$lt_ac_sed
+ break
+ fi
+ while true; do
+ cat conftest.in conftest.in >conftest.tmp
+ mv conftest.tmp conftest.in
+ cp conftest.in conftest.nl
+ echo >>conftest.nl
+ $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break
+ cmp -s conftest.out conftest.nl || break
+ # 10000 chars as input seems more than enough
+ test 10 -lt "$lt_ac_count" && break
+ lt_ac_count=`expr $lt_ac_count + 1`
+ if test "$lt_ac_count" -gt "$lt_ac_max"; then
+ lt_ac_max=$lt_ac_count
+ lt_cv_path_SED=$lt_ac_sed
+ fi
+ done
+done
+])
+SED=$lt_cv_path_SED
+AC_SUBST([SED])
+AC_MSG_RESULT([$SED])
+])#AC_PROG_SED
+])#m4_ifndef
+
+# Old name:
+AU_ALIAS([LT_AC_PROG_SED], [AC_PROG_SED])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([LT_AC_PROG_SED], [])
+
+
+# _LT_CHECK_SHELL_FEATURES
+# ------------------------
+# Find out whether the shell is Bourne or XSI compatible,
+# or has some other useful features.
+m4_defun([_LT_CHECK_SHELL_FEATURES],
+[if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
+ lt_unset=unset
+else
+ lt_unset=false
+fi
+_LT_DECL([], [lt_unset], [0], [whether the shell understands "unset"])dnl
+
+# test EBCDIC or ASCII
+case `echo X|tr X '\101'` in
+ A) # ASCII based system
+ # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr
+ lt_SP2NL='tr \040 \012'
+ lt_NL2SP='tr \015\012 \040\040'
+ ;;
+ *) # EBCDIC based system
+ lt_SP2NL='tr \100 \n'
+ lt_NL2SP='tr \r\n \100\100'
+ ;;
+esac
+_LT_DECL([SP2NL], [lt_SP2NL], [1], [turn spaces into newlines])dnl
+_LT_DECL([NL2SP], [lt_NL2SP], [1], [turn newlines into spaces])dnl
+])# _LT_CHECK_SHELL_FEATURES
+
+
+# _LT_PATH_CONVERSION_FUNCTIONS
+# -----------------------------
+# Determine what file name conversion functions should be used by
+# func_to_host_file (and, implicitly, by func_to_host_path). These are needed
+# for certain cross-compile configurations and native mingw.
+m4_defun([_LT_PATH_CONVERSION_FUNCTIONS],
+[AC_REQUIRE([AC_CANONICAL_HOST])dnl
+AC_REQUIRE([AC_CANONICAL_BUILD])dnl
+AC_MSG_CHECKING([how to convert $build file names to $host format])
+AC_CACHE_VAL(lt_cv_to_host_file_cmd,
+[case $host in
+ *-*-mingw* )
+ case $build in
+ *-*-mingw* ) # actually msys
+ lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32
+ ;;
+ *-*-cygwin* )
+ lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32
+ ;;
+ * ) # otherwise, assume *nix
+ lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32
+ ;;
+ esac
+ ;;
+ *-*-cygwin* )
+ case $build in
+ *-*-mingw* ) # actually msys
+ lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin
+ ;;
+ *-*-cygwin* )
+ lt_cv_to_host_file_cmd=func_convert_file_noop
+ ;;
+ * ) # otherwise, assume *nix
+ lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin
+ ;;
+ esac
+ ;;
+ * ) # unhandled hosts (and "normal" native builds)
+ lt_cv_to_host_file_cmd=func_convert_file_noop
+ ;;
+esac
+])
+to_host_file_cmd=$lt_cv_to_host_file_cmd
+AC_MSG_RESULT([$lt_cv_to_host_file_cmd])
+_LT_DECL([to_host_file_cmd], [lt_cv_to_host_file_cmd],
+ [0], [convert $build file names to $host format])dnl
+
+AC_MSG_CHECKING([how to convert $build file names to toolchain format])
+AC_CACHE_VAL(lt_cv_to_tool_file_cmd,
+[#assume ordinary cross tools, or native build.
+lt_cv_to_tool_file_cmd=func_convert_file_noop
+case $host in
+ *-*-mingw* )
+ case $build in
+ *-*-mingw* ) # actually msys
+ lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32
+ ;;
+ esac
+ ;;
+esac
+])
+to_tool_file_cmd=$lt_cv_to_tool_file_cmd
+AC_MSG_RESULT([$lt_cv_to_tool_file_cmd])
+_LT_DECL([to_tool_file_cmd], [lt_cv_to_tool_file_cmd],
+ [0], [convert $build files to toolchain format])dnl
+])# _LT_PATH_CONVERSION_FUNCTIONS
--- /dev/null
+# Helper functions for option handling. -*- Autoconf -*-
+#
+# Copyright (C) 2004-2005, 2007-2009, 2011-2015 Free Software
+# Foundation, Inc.
+# Written by Gary V. Vaughan, 2004
+#
+# This file is free software; the Free Software Foundation gives
+# unlimited permission to copy and/or distribute it, with or without
+# modifications, as long as this notice is preserved.
+
+# serial 8 ltoptions.m4
+
+# This is to help aclocal find these macros, as it can't see m4_define.
+AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])])
+
+
+# _LT_MANGLE_OPTION(MACRO-NAME, OPTION-NAME)
+# ------------------------------------------
+m4_define([_LT_MANGLE_OPTION],
+[[_LT_OPTION_]m4_bpatsubst($1__$2, [[^a-zA-Z0-9_]], [_])])
+
+
+# _LT_SET_OPTION(MACRO-NAME, OPTION-NAME)
+# ---------------------------------------
+# Set option OPTION-NAME for macro MACRO-NAME, and if there is a
+# matching handler defined, dispatch to it. Other OPTION-NAMEs are
+# saved as a flag.
+m4_define([_LT_SET_OPTION],
+[m4_define(_LT_MANGLE_OPTION([$1], [$2]))dnl
+m4_ifdef(_LT_MANGLE_DEFUN([$1], [$2]),
+ _LT_MANGLE_DEFUN([$1], [$2]),
+ [m4_warning([Unknown $1 option '$2'])])[]dnl
+])
+
+
+# _LT_IF_OPTION(MACRO-NAME, OPTION-NAME, IF-SET, [IF-NOT-SET])
+# ------------------------------------------------------------
+# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise.
+m4_define([_LT_IF_OPTION],
+[m4_ifdef(_LT_MANGLE_OPTION([$1], [$2]), [$3], [$4])])
+
+
+# _LT_UNLESS_OPTIONS(MACRO-NAME, OPTION-LIST, IF-NOT-SET)
+# -------------------------------------------------------
+# Execute IF-NOT-SET unless all options in OPTION-LIST for MACRO-NAME
+# are set.
+m4_define([_LT_UNLESS_OPTIONS],
+[m4_foreach([_LT_Option], m4_split(m4_normalize([$2])),
+ [m4_ifdef(_LT_MANGLE_OPTION([$1], _LT_Option),
+ [m4_define([$0_found])])])[]dnl
+m4_ifdef([$0_found], [m4_undefine([$0_found])], [$3
+])[]dnl
+])
+
+
+# _LT_SET_OPTIONS(MACRO-NAME, OPTION-LIST)
+# ----------------------------------------
+# OPTION-LIST is a space-separated list of Libtool options associated
+# with MACRO-NAME. If any OPTION has a matching handler declared with
+# LT_OPTION_DEFINE, dispatch to that macro; otherwise complain about
+# the unknown option and exit.
+m4_defun([_LT_SET_OPTIONS],
+[# Set options
+m4_foreach([_LT_Option], m4_split(m4_normalize([$2])),
+ [_LT_SET_OPTION([$1], _LT_Option)])
+
+m4_if([$1],[LT_INIT],[
+ dnl
+ dnl Simply set some default values (i.e off) if boolean options were not
+ dnl specified:
+ _LT_UNLESS_OPTIONS([LT_INIT], [dlopen], [enable_dlopen=no
+ ])
+ _LT_UNLESS_OPTIONS([LT_INIT], [win32-dll], [enable_win32_dll=no
+ ])
+ dnl
+ dnl If no reference was made to various pairs of opposing options, then
+ dnl we run the default mode handler for the pair. For example, if neither
+ dnl 'shared' nor 'disable-shared' was passed, we enable building of shared
+ dnl archives by default:
+ _LT_UNLESS_OPTIONS([LT_INIT], [shared disable-shared], [_LT_ENABLE_SHARED])
+ _LT_UNLESS_OPTIONS([LT_INIT], [static disable-static], [_LT_ENABLE_STATIC])
+ _LT_UNLESS_OPTIONS([LT_INIT], [pic-only no-pic], [_LT_WITH_PIC])
+ _LT_UNLESS_OPTIONS([LT_INIT], [fast-install disable-fast-install],
+ [_LT_ENABLE_FAST_INSTALL])
+ _LT_UNLESS_OPTIONS([LT_INIT], [aix-soname=aix aix-soname=both aix-soname=svr4],
+ [_LT_WITH_AIX_SONAME([aix])])
+ ])
+])# _LT_SET_OPTIONS
+
+
+## --------------------------------- ##
+## Macros to handle LT_INIT options. ##
+## --------------------------------- ##
+
+# _LT_MANGLE_DEFUN(MACRO-NAME, OPTION-NAME)
+# -----------------------------------------
+m4_define([_LT_MANGLE_DEFUN],
+[[_LT_OPTION_DEFUN_]m4_bpatsubst(m4_toupper([$1__$2]), [[^A-Z0-9_]], [_])])
+
+
+# LT_OPTION_DEFINE(MACRO-NAME, OPTION-NAME, CODE)
+# -----------------------------------------------
+m4_define([LT_OPTION_DEFINE],
+[m4_define(_LT_MANGLE_DEFUN([$1], [$2]), [$3])[]dnl
+])# LT_OPTION_DEFINE
+
+
+# dlopen
+# ------
+LT_OPTION_DEFINE([LT_INIT], [dlopen], [enable_dlopen=yes
+])
+
+AU_DEFUN([AC_LIBTOOL_DLOPEN],
+[_LT_SET_OPTION([LT_INIT], [dlopen])
+AC_DIAGNOSE([obsolete],
+[$0: Remove this warning and the call to _LT_SET_OPTION when you
+put the 'dlopen' option into LT_INIT's first parameter.])
+])
+
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_LIBTOOL_DLOPEN], [])
+
+
+# win32-dll
+# ---------
+# Declare package support for building win32 dll's.
+LT_OPTION_DEFINE([LT_INIT], [win32-dll],
+[enable_win32_dll=yes
+
+case $host in
+*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-cegcc*)
+ AC_CHECK_TOOL(AS, as, false)
+ AC_CHECK_TOOL(DLLTOOL, dlltool, false)
+ AC_CHECK_TOOL(OBJDUMP, objdump, false)
+ ;;
+esac
+
+test -z "$AS" && AS=as
+_LT_DECL([], [AS], [1], [Assembler program])dnl
+
+test -z "$DLLTOOL" && DLLTOOL=dlltool
+_LT_DECL([], [DLLTOOL], [1], [DLL creation program])dnl
+
+test -z "$OBJDUMP" && OBJDUMP=objdump
+_LT_DECL([], [OBJDUMP], [1], [Object dumper program])dnl
+])# win32-dll
+
+AU_DEFUN([AC_LIBTOOL_WIN32_DLL],
+[AC_REQUIRE([AC_CANONICAL_HOST])dnl
+_LT_SET_OPTION([LT_INIT], [win32-dll])
+AC_DIAGNOSE([obsolete],
+[$0: Remove this warning and the call to _LT_SET_OPTION when you
+put the 'win32-dll' option into LT_INIT's first parameter.])
+])
+
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_LIBTOOL_WIN32_DLL], [])
+
+
+# _LT_ENABLE_SHARED([DEFAULT])
+# ----------------------------
+# implement the --enable-shared flag, and supports the 'shared' and
+# 'disable-shared' LT_INIT options.
+# DEFAULT is either 'yes' or 'no'. If omitted, it defaults to 'yes'.
+m4_define([_LT_ENABLE_SHARED],
+[m4_define([_LT_ENABLE_SHARED_DEFAULT], [m4_if($1, no, no, yes)])dnl
+AC_ARG_ENABLE([shared],
+ [AS_HELP_STRING([--enable-shared@<:@=PKGS@:>@],
+ [build shared libraries @<:@default=]_LT_ENABLE_SHARED_DEFAULT[@:>@])],
+ [p=${PACKAGE-default}
+ case $enableval in
+ yes) enable_shared=yes ;;
+ no) enable_shared=no ;;
+ *)
+ enable_shared=no
+ # Look at the argument we got. We use all the common list separators.
+ lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
+ for pkg in $enableval; do
+ IFS=$lt_save_ifs
+ if test "X$pkg" = "X$p"; then
+ enable_shared=yes
+ fi
+ done
+ IFS=$lt_save_ifs
+ ;;
+ esac],
+ [enable_shared=]_LT_ENABLE_SHARED_DEFAULT)
+
+ _LT_DECL([build_libtool_libs], [enable_shared], [0],
+ [Whether or not to build shared libraries])
+])# _LT_ENABLE_SHARED
+
+LT_OPTION_DEFINE([LT_INIT], [shared], [_LT_ENABLE_SHARED([yes])])
+LT_OPTION_DEFINE([LT_INIT], [disable-shared], [_LT_ENABLE_SHARED([no])])
+
+# Old names:
+AC_DEFUN([AC_ENABLE_SHARED],
+[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[shared])
+])
+
+AC_DEFUN([AC_DISABLE_SHARED],
+[_LT_SET_OPTION([LT_INIT], [disable-shared])
+])
+
+AU_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)])
+AU_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)])
+
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AM_ENABLE_SHARED], [])
+dnl AC_DEFUN([AM_DISABLE_SHARED], [])
+
+
+
+# _LT_ENABLE_STATIC([DEFAULT])
+# ----------------------------
+# implement the --enable-static flag, and support the 'static' and
+# 'disable-static' LT_INIT options.
+# DEFAULT is either 'yes' or 'no'. If omitted, it defaults to 'yes'.
+m4_define([_LT_ENABLE_STATIC],
+[m4_define([_LT_ENABLE_STATIC_DEFAULT], [m4_if($1, no, no, yes)])dnl
+AC_ARG_ENABLE([static],
+ [AS_HELP_STRING([--enable-static@<:@=PKGS@:>@],
+ [build static libraries @<:@default=]_LT_ENABLE_STATIC_DEFAULT[@:>@])],
+ [p=${PACKAGE-default}
+ case $enableval in
+ yes) enable_static=yes ;;
+ no) enable_static=no ;;
+ *)
+ enable_static=no
+ # Look at the argument we got. We use all the common list separators.
+ lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
+ for pkg in $enableval; do
+ IFS=$lt_save_ifs
+ if test "X$pkg" = "X$p"; then
+ enable_static=yes
+ fi
+ done
+ IFS=$lt_save_ifs
+ ;;
+ esac],
+ [enable_static=]_LT_ENABLE_STATIC_DEFAULT)
+
+ _LT_DECL([build_old_libs], [enable_static], [0],
+ [Whether or not to build static libraries])
+])# _LT_ENABLE_STATIC
+
+LT_OPTION_DEFINE([LT_INIT], [static], [_LT_ENABLE_STATIC([yes])])
+LT_OPTION_DEFINE([LT_INIT], [disable-static], [_LT_ENABLE_STATIC([no])])
+
+# Old names:
+AC_DEFUN([AC_ENABLE_STATIC],
+[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[static])
+])
+
+AC_DEFUN([AC_DISABLE_STATIC],
+[_LT_SET_OPTION([LT_INIT], [disable-static])
+])
+
+AU_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)])
+AU_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)])
+
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AM_ENABLE_STATIC], [])
+dnl AC_DEFUN([AM_DISABLE_STATIC], [])
+
+
+
+# _LT_ENABLE_FAST_INSTALL([DEFAULT])
+# ----------------------------------
+# implement the --enable-fast-install flag, and support the 'fast-install'
+# and 'disable-fast-install' LT_INIT options.
+# DEFAULT is either 'yes' or 'no'. If omitted, it defaults to 'yes'.
+m4_define([_LT_ENABLE_FAST_INSTALL],
+[m4_define([_LT_ENABLE_FAST_INSTALL_DEFAULT], [m4_if($1, no, no, yes)])dnl
+AC_ARG_ENABLE([fast-install],
+ [AS_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@],
+ [optimize for fast installation @<:@default=]_LT_ENABLE_FAST_INSTALL_DEFAULT[@:>@])],
+ [p=${PACKAGE-default}
+ case $enableval in
+ yes) enable_fast_install=yes ;;
+ no) enable_fast_install=no ;;
+ *)
+ enable_fast_install=no
+ # Look at the argument we got. We use all the common list separators.
+ lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
+ for pkg in $enableval; do
+ IFS=$lt_save_ifs
+ if test "X$pkg" = "X$p"; then
+ enable_fast_install=yes
+ fi
+ done
+ IFS=$lt_save_ifs
+ ;;
+ esac],
+ [enable_fast_install=]_LT_ENABLE_FAST_INSTALL_DEFAULT)
+
+_LT_DECL([fast_install], [enable_fast_install], [0],
+ [Whether or not to optimize for fast installation])dnl
+])# _LT_ENABLE_FAST_INSTALL
+
+LT_OPTION_DEFINE([LT_INIT], [fast-install], [_LT_ENABLE_FAST_INSTALL([yes])])
+LT_OPTION_DEFINE([LT_INIT], [disable-fast-install], [_LT_ENABLE_FAST_INSTALL([no])])
+
+# Old names:
+AU_DEFUN([AC_ENABLE_FAST_INSTALL],
+[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[fast-install])
+AC_DIAGNOSE([obsolete],
+[$0: Remove this warning and the call to _LT_SET_OPTION when you put
+the 'fast-install' option into LT_INIT's first parameter.])
+])
+
+AU_DEFUN([AC_DISABLE_FAST_INSTALL],
+[_LT_SET_OPTION([LT_INIT], [disable-fast-install])
+AC_DIAGNOSE([obsolete],
+[$0: Remove this warning and the call to _LT_SET_OPTION when you put
+the 'disable-fast-install' option into LT_INIT's first parameter.])
+])
+
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_ENABLE_FAST_INSTALL], [])
+dnl AC_DEFUN([AM_DISABLE_FAST_INSTALL], [])
+
+
+# _LT_WITH_AIX_SONAME([DEFAULT])
+# ----------------------------------
+# implement the --with-aix-soname flag, and support the `aix-soname=aix'
+# and `aix-soname=both' and `aix-soname=svr4' LT_INIT options. DEFAULT
+# is either `aix', `both' or `svr4'. If omitted, it defaults to `aix'.
+m4_define([_LT_WITH_AIX_SONAME],
+[m4_define([_LT_WITH_AIX_SONAME_DEFAULT], [m4_if($1, svr4, svr4, m4_if($1, both, both, aix))])dnl
+shared_archive_member_spec=
+case $host,$enable_shared in
+power*-*-aix[[5-9]]*,yes)
+ AC_MSG_CHECKING([which variant of shared library versioning to provide])
+ AC_ARG_WITH([aix-soname],
+ [AS_HELP_STRING([--with-aix-soname=aix|svr4|both],
+ [shared library versioning (aka "SONAME") variant to provide on AIX, @<:@default=]_LT_WITH_AIX_SONAME_DEFAULT[@:>@.])],
+ [case $withval in
+ aix|svr4|both)
+ ;;
+ *)
+ AC_MSG_ERROR([Unknown argument to --with-aix-soname])
+ ;;
+ esac
+ lt_cv_with_aix_soname=$with_aix_soname],
+ [AC_CACHE_VAL([lt_cv_with_aix_soname],
+ [lt_cv_with_aix_soname=]_LT_WITH_AIX_SONAME_DEFAULT)
+ with_aix_soname=$lt_cv_with_aix_soname])
+ AC_MSG_RESULT([$with_aix_soname])
+ if test aix != "$with_aix_soname"; then
+ # For the AIX way of multilib, we name the shared archive member
+ # based on the bitwidth used, traditionally 'shr.o' or 'shr_64.o',
+ # and 'shr.imp' or 'shr_64.imp', respectively, for the Import File.
+ # Even when GNU compilers ignore OBJECT_MODE but need '-maix64' flag,
+ # the AIX toolchain works better with OBJECT_MODE set (default 32).
+ if test 64 = "${OBJECT_MODE-32}"; then
+ shared_archive_member_spec=shr_64
+ else
+ shared_archive_member_spec=shr
+ fi
+ fi
+ ;;
+*)
+ with_aix_soname=aix
+ ;;
+esac
+
+_LT_DECL([], [shared_archive_member_spec], [0],
+ [Shared archive member basename, for filename based shared library versioning on AIX])dnl
+])# _LT_WITH_AIX_SONAME
+
+LT_OPTION_DEFINE([LT_INIT], [aix-soname=aix], [_LT_WITH_AIX_SONAME([aix])])
+LT_OPTION_DEFINE([LT_INIT], [aix-soname=both], [_LT_WITH_AIX_SONAME([both])])
+LT_OPTION_DEFINE([LT_INIT], [aix-soname=svr4], [_LT_WITH_AIX_SONAME([svr4])])
+
+
+# _LT_WITH_PIC([MODE])
+# --------------------
+# implement the --with-pic flag, and support the 'pic-only' and 'no-pic'
+# LT_INIT options.
+# MODE is either 'yes' or 'no'. If omitted, it defaults to 'both'.
+m4_define([_LT_WITH_PIC],
+[AC_ARG_WITH([pic],
+ [AS_HELP_STRING([--with-pic@<:@=PKGS@:>@],
+ [try to use only PIC/non-PIC objects @<:@default=use both@:>@])],
+ [lt_p=${PACKAGE-default}
+ case $withval in
+ yes|no) pic_mode=$withval ;;
+ *)
+ pic_mode=default
+ # Look at the argument we got. We use all the common list separators.
+ lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
+ for lt_pkg in $withval; do
+ IFS=$lt_save_ifs
+ if test "X$lt_pkg" = "X$lt_p"; then
+ pic_mode=yes
+ fi
+ done
+ IFS=$lt_save_ifs
+ ;;
+ esac],
+ [pic_mode=m4_default([$1], [default])])
+
+_LT_DECL([], [pic_mode], [0], [What type of objects to build])dnl
+])# _LT_WITH_PIC
+
+LT_OPTION_DEFINE([LT_INIT], [pic-only], [_LT_WITH_PIC([yes])])
+LT_OPTION_DEFINE([LT_INIT], [no-pic], [_LT_WITH_PIC([no])])
+
+# Old name:
+AU_DEFUN([AC_LIBTOOL_PICMODE],
+[_LT_SET_OPTION([LT_INIT], [pic-only])
+AC_DIAGNOSE([obsolete],
+[$0: Remove this warning and the call to _LT_SET_OPTION when you
+put the 'pic-only' option into LT_INIT's first parameter.])
+])
+
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_LIBTOOL_PICMODE], [])
+
+## ----------------- ##
+## LTDL_INIT Options ##
+## ----------------- ##
+
+m4_define([_LTDL_MODE], [])
+LT_OPTION_DEFINE([LTDL_INIT], [nonrecursive],
+ [m4_define([_LTDL_MODE], [nonrecursive])])
+LT_OPTION_DEFINE([LTDL_INIT], [recursive],
+ [m4_define([_LTDL_MODE], [recursive])])
+LT_OPTION_DEFINE([LTDL_INIT], [subproject],
+ [m4_define([_LTDL_MODE], [subproject])])
+
+m4_define([_LTDL_TYPE], [])
+LT_OPTION_DEFINE([LTDL_INIT], [installable],
+ [m4_define([_LTDL_TYPE], [installable])])
+LT_OPTION_DEFINE([LTDL_INIT], [convenience],
+ [m4_define([_LTDL_TYPE], [convenience])])
--- /dev/null
+# ltsugar.m4 -- libtool m4 base layer. -*-Autoconf-*-
+#
+# Copyright (C) 2004-2005, 2007-2008, 2011-2015 Free Software
+# Foundation, Inc.
+# Written by Gary V. Vaughan, 2004
+#
+# This file is free software; the Free Software Foundation gives
+# unlimited permission to copy and/or distribute it, with or without
+# modifications, as long as this notice is preserved.
+
+# serial 6 ltsugar.m4
+
+# This is to help aclocal find these macros, as it can't see m4_define.
+AC_DEFUN([LTSUGAR_VERSION], [m4_if([0.1])])
+
+
+# lt_join(SEP, ARG1, [ARG2...])
+# -----------------------------
+# Produce ARG1SEPARG2...SEPARGn, omitting [] arguments and their
+# associated separator.
+# Needed until we can rely on m4_join from Autoconf 2.62, since all earlier
+# versions in m4sugar had bugs.
+m4_define([lt_join],
+[m4_if([$#], [1], [],
+ [$#], [2], [[$2]],
+ [m4_if([$2], [], [], [[$2]_])$0([$1], m4_shift(m4_shift($@)))])])
+m4_define([_lt_join],
+[m4_if([$#$2], [2], [],
+ [m4_if([$2], [], [], [[$1$2]])$0([$1], m4_shift(m4_shift($@)))])])
+
+
+# lt_car(LIST)
+# lt_cdr(LIST)
+# ------------
+# Manipulate m4 lists.
+# These macros are necessary as long as will still need to support
+# Autoconf-2.59, which quotes differently.
+m4_define([lt_car], [[$1]])
+m4_define([lt_cdr],
+[m4_if([$#], 0, [m4_fatal([$0: cannot be called without arguments])],
+ [$#], 1, [],
+ [m4_dquote(m4_shift($@))])])
+m4_define([lt_unquote], $1)
+
+
+# lt_append(MACRO-NAME, STRING, [SEPARATOR])
+# ------------------------------------------
+# Redefine MACRO-NAME to hold its former content plus 'SEPARATOR''STRING'.
+# Note that neither SEPARATOR nor STRING are expanded; they are appended
+# to MACRO-NAME as is (leaving the expansion for when MACRO-NAME is invoked).
+# No SEPARATOR is output if MACRO-NAME was previously undefined (different
+# than defined and empty).
+#
+# This macro is needed until we can rely on Autoconf 2.62, since earlier
+# versions of m4sugar mistakenly expanded SEPARATOR but not STRING.
+m4_define([lt_append],
+[m4_define([$1],
+ m4_ifdef([$1], [m4_defn([$1])[$3]])[$2])])
+
+
+
+# lt_combine(SEP, PREFIX-LIST, INFIX, SUFFIX1, [SUFFIX2...])
+# ----------------------------------------------------------
+# Produce a SEP delimited list of all paired combinations of elements of
+# PREFIX-LIST with SUFFIX1 through SUFFIXn. Each element of the list
+# has the form PREFIXmINFIXSUFFIXn.
+# Needed until we can rely on m4_combine added in Autoconf 2.62.
+m4_define([lt_combine],
+[m4_if(m4_eval([$# > 3]), [1],
+ [m4_pushdef([_Lt_sep], [m4_define([_Lt_sep], m4_defn([lt_car]))])]]dnl
+[[m4_foreach([_Lt_prefix], [$2],
+ [m4_foreach([_Lt_suffix],
+ ]m4_dquote(m4_dquote(m4_shift(m4_shift(m4_shift($@)))))[,
+ [_Lt_sep([$1])[]m4_defn([_Lt_prefix])[$3]m4_defn([_Lt_suffix])])])])])
+
+
+# lt_if_append_uniq(MACRO-NAME, VARNAME, [SEPARATOR], [UNIQ], [NOT-UNIQ])
+# -----------------------------------------------------------------------
+# Iff MACRO-NAME does not yet contain VARNAME, then append it (delimited
+# by SEPARATOR if supplied) and expand UNIQ, else NOT-UNIQ.
+m4_define([lt_if_append_uniq],
+[m4_ifdef([$1],
+ [m4_if(m4_index([$3]m4_defn([$1])[$3], [$3$2$3]), [-1],
+ [lt_append([$1], [$2], [$3])$4],
+ [$5])],
+ [lt_append([$1], [$2], [$3])$4])])
+
+
+# lt_dict_add(DICT, KEY, VALUE)
+# -----------------------------
+m4_define([lt_dict_add],
+[m4_define([$1($2)], [$3])])
+
+
+# lt_dict_add_subkey(DICT, KEY, SUBKEY, VALUE)
+# --------------------------------------------
+m4_define([lt_dict_add_subkey],
+[m4_define([$1($2:$3)], [$4])])
+
+
+# lt_dict_fetch(DICT, KEY, [SUBKEY])
+# ----------------------------------
+m4_define([lt_dict_fetch],
+[m4_ifval([$3],
+ m4_ifdef([$1($2:$3)], [m4_defn([$1($2:$3)])]),
+ m4_ifdef([$1($2)], [m4_defn([$1($2)])]))])
+
+
+# lt_if_dict_fetch(DICT, KEY, [SUBKEY], VALUE, IF-TRUE, [IF-FALSE])
+# -----------------------------------------------------------------
+m4_define([lt_if_dict_fetch],
+[m4_if(lt_dict_fetch([$1], [$2], [$3]), [$4],
+ [$5],
+ [$6])])
+
+
+# lt_dict_filter(DICT, [SUBKEY], VALUE, [SEPARATOR], KEY, [...])
+# --------------------------------------------------------------
+m4_define([lt_dict_filter],
+[m4_if([$5], [], [],
+ [lt_join(m4_quote(m4_default([$4], [[, ]])),
+ lt_unquote(m4_split(m4_normalize(m4_foreach(_Lt_key, lt_car([m4_shiftn(4, $@)]),
+ [lt_if_dict_fetch([$1], _Lt_key, [$2], [$3], [_Lt_key ])])))))])[]dnl
+])
--- /dev/null
+# ltversion.m4 -- version numbers -*- Autoconf -*-
+#
+# Copyright (C) 2004, 2011-2015 Free Software Foundation, Inc.
+# Written by Scott James Remnant, 2004
+#
+# This file is free software; the Free Software Foundation gives
+# unlimited permission to copy and/or distribute it, with or without
+# modifications, as long as this notice is preserved.
+
+# @configure_input@
+
+# serial 4179 ltversion.m4
+# This file is part of GNU Libtool
+
+m4_define([LT_PACKAGE_VERSION], [2.4.6])
+m4_define([LT_PACKAGE_REVISION], [2.4.6])
+
+AC_DEFUN([LTVERSION_VERSION],
+[macro_version='2.4.6'
+macro_revision='2.4.6'
+_LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?])
+_LT_DECL(, macro_revision, 0)
+])
--- /dev/null
+# lt~obsolete.m4 -- aclocal satisfying obsolete definitions. -*-Autoconf-*-
+#
+# Copyright (C) 2004-2005, 2007, 2009, 2011-2015 Free Software
+# Foundation, Inc.
+# Written by Scott James Remnant, 2004.
+#
+# This file is free software; the Free Software Foundation gives
+# unlimited permission to copy and/or distribute it, with or without
+# modifications, as long as this notice is preserved.
+
+# serial 5 lt~obsolete.m4
+
+# These exist entirely to fool aclocal when bootstrapping libtool.
+#
+# In the past libtool.m4 has provided macros via AC_DEFUN (or AU_DEFUN),
+# which have later been changed to m4_define as they aren't part of the
+# exported API, or moved to Autoconf or Automake where they belong.
+#
+# The trouble is, aclocal is a bit thick. It'll see the old AC_DEFUN
+# in /usr/share/aclocal/libtool.m4 and remember it, then when it sees us
+# using a macro with the same name in our local m4/libtool.m4 it'll
+# pull the old libtool.m4 in (it doesn't see our shiny new m4_define
+# and doesn't know about Autoconf macros at all.)
+#
+# So we provide this file, which has a silly filename so it's always
+# included after everything else. This provides aclocal with the
+# AC_DEFUNs it wants, but when m4 processes it, it doesn't do anything
+# because those macros already exist, or will be overwritten later.
+# We use AC_DEFUN over AU_DEFUN for compatibility with aclocal-1.6.
+#
+# Anytime we withdraw an AC_DEFUN or AU_DEFUN, remember to add it here.
+# Yes, that means every name once taken will need to remain here until
+# we give up compatibility with versions before 1.7, at which point
+# we need to keep only those names which we still refer to.
+
+# This is to help aclocal find these macros, as it can't see m4_define.
+AC_DEFUN([LTOBSOLETE_VERSION], [m4_if([1])])
+
+m4_ifndef([AC_LIBTOOL_LINKER_OPTION], [AC_DEFUN([AC_LIBTOOL_LINKER_OPTION])])
+m4_ifndef([AC_PROG_EGREP], [AC_DEFUN([AC_PROG_EGREP])])
+m4_ifndef([_LT_AC_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH])])
+m4_ifndef([_LT_AC_SHELL_INIT], [AC_DEFUN([_LT_AC_SHELL_INIT])])
+m4_ifndef([_LT_AC_SYS_LIBPATH_AIX], [AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX])])
+m4_ifndef([_LT_PROG_LTMAIN], [AC_DEFUN([_LT_PROG_LTMAIN])])
+m4_ifndef([_LT_AC_TAGVAR], [AC_DEFUN([_LT_AC_TAGVAR])])
+m4_ifndef([AC_LTDL_ENABLE_INSTALL], [AC_DEFUN([AC_LTDL_ENABLE_INSTALL])])
+m4_ifndef([AC_LTDL_PREOPEN], [AC_DEFUN([AC_LTDL_PREOPEN])])
+m4_ifndef([_LT_AC_SYS_COMPILER], [AC_DEFUN([_LT_AC_SYS_COMPILER])])
+m4_ifndef([_LT_AC_LOCK], [AC_DEFUN([_LT_AC_LOCK])])
+m4_ifndef([AC_LIBTOOL_SYS_OLD_ARCHIVE], [AC_DEFUN([AC_LIBTOOL_SYS_OLD_ARCHIVE])])
+m4_ifndef([_LT_AC_TRY_DLOPEN_SELF], [AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF])])
+m4_ifndef([AC_LIBTOOL_PROG_CC_C_O], [AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O])])
+m4_ifndef([AC_LIBTOOL_SYS_HARD_LINK_LOCKS], [AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS])])
+m4_ifndef([AC_LIBTOOL_OBJDIR], [AC_DEFUN([AC_LIBTOOL_OBJDIR])])
+m4_ifndef([AC_LTDL_OBJDIR], [AC_DEFUN([AC_LTDL_OBJDIR])])
+m4_ifndef([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH], [AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH])])
+m4_ifndef([AC_LIBTOOL_SYS_LIB_STRIP], [AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP])])
+m4_ifndef([AC_PATH_MAGIC], [AC_DEFUN([AC_PATH_MAGIC])])
+m4_ifndef([AC_PROG_LD_GNU], [AC_DEFUN([AC_PROG_LD_GNU])])
+m4_ifndef([AC_PROG_LD_RELOAD_FLAG], [AC_DEFUN([AC_PROG_LD_RELOAD_FLAG])])
+m4_ifndef([AC_DEPLIBS_CHECK_METHOD], [AC_DEFUN([AC_DEPLIBS_CHECK_METHOD])])
+m4_ifndef([AC_LIBTOOL_PROG_COMPILER_NO_RTTI], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI])])
+m4_ifndef([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE], [AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE])])
+m4_ifndef([AC_LIBTOOL_PROG_COMPILER_PIC], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC])])
+m4_ifndef([AC_LIBTOOL_PROG_LD_SHLIBS], [AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS])])
+m4_ifndef([AC_LIBTOOL_POSTDEP_PREDEP], [AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP])])
+m4_ifndef([LT_AC_PROG_EGREP], [AC_DEFUN([LT_AC_PROG_EGREP])])
+m4_ifndef([LT_AC_PROG_SED], [AC_DEFUN([LT_AC_PROG_SED])])
+m4_ifndef([_LT_CC_BASENAME], [AC_DEFUN([_LT_CC_BASENAME])])
+m4_ifndef([_LT_COMPILER_BOILERPLATE], [AC_DEFUN([_LT_COMPILER_BOILERPLATE])])
+m4_ifndef([_LT_LINKER_BOILERPLATE], [AC_DEFUN([_LT_LINKER_BOILERPLATE])])
+m4_ifndef([_AC_PROG_LIBTOOL], [AC_DEFUN([_AC_PROG_LIBTOOL])])
+m4_ifndef([AC_LIBTOOL_SETUP], [AC_DEFUN([AC_LIBTOOL_SETUP])])
+m4_ifndef([_LT_AC_CHECK_DLFCN], [AC_DEFUN([_LT_AC_CHECK_DLFCN])])
+m4_ifndef([AC_LIBTOOL_SYS_DYNAMIC_LINKER], [AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER])])
+m4_ifndef([_LT_AC_TAGCONFIG], [AC_DEFUN([_LT_AC_TAGCONFIG])])
+m4_ifndef([AC_DISABLE_FAST_INSTALL], [AC_DEFUN([AC_DISABLE_FAST_INSTALL])])
+m4_ifndef([_LT_AC_LANG_CXX], [AC_DEFUN([_LT_AC_LANG_CXX])])
+m4_ifndef([_LT_AC_LANG_F77], [AC_DEFUN([_LT_AC_LANG_F77])])
+m4_ifndef([_LT_AC_LANG_GCJ], [AC_DEFUN([_LT_AC_LANG_GCJ])])
+m4_ifndef([AC_LIBTOOL_LANG_C_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG])])
+m4_ifndef([_LT_AC_LANG_C_CONFIG], [AC_DEFUN([_LT_AC_LANG_C_CONFIG])])
+m4_ifndef([AC_LIBTOOL_LANG_CXX_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG])])
+m4_ifndef([_LT_AC_LANG_CXX_CONFIG], [AC_DEFUN([_LT_AC_LANG_CXX_CONFIG])])
+m4_ifndef([AC_LIBTOOL_LANG_F77_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG])])
+m4_ifndef([_LT_AC_LANG_F77_CONFIG], [AC_DEFUN([_LT_AC_LANG_F77_CONFIG])])
+m4_ifndef([AC_LIBTOOL_LANG_GCJ_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG])])
+m4_ifndef([_LT_AC_LANG_GCJ_CONFIG], [AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG])])
+m4_ifndef([AC_LIBTOOL_LANG_RC_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG])])
+m4_ifndef([_LT_AC_LANG_RC_CONFIG], [AC_DEFUN([_LT_AC_LANG_RC_CONFIG])])
+m4_ifndef([AC_LIBTOOL_CONFIG], [AC_DEFUN([AC_LIBTOOL_CONFIG])])
+m4_ifndef([_LT_AC_FILE_LTDLL_C], [AC_DEFUN([_LT_AC_FILE_LTDLL_C])])
+m4_ifndef([_LT_REQUIRED_DARWIN_CHECKS], [AC_DEFUN([_LT_REQUIRED_DARWIN_CHECKS])])
+m4_ifndef([_LT_AC_PROG_CXXCPP], [AC_DEFUN([_LT_AC_PROG_CXXCPP])])
+m4_ifndef([_LT_PREPARE_SED_QUOTE_VARS], [AC_DEFUN([_LT_PREPARE_SED_QUOTE_VARS])])
+m4_ifndef([_LT_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_PROG_ECHO_BACKSLASH])])
+m4_ifndef([_LT_PROG_F77], [AC_DEFUN([_LT_PROG_F77])])
+m4_ifndef([_LT_PROG_FC], [AC_DEFUN([_LT_PROG_FC])])
+m4_ifndef([_LT_PROG_CXX], [AC_DEFUN([_LT_PROG_CXX])])
--- /dev/null
+#! /bin/sh
+# Common wrapper for a few potentially missing GNU programs.
+
+scriptversion=2013-10-28.13; # UTC
+
+# Copyright (C) 1996-2014 Free Software Foundation, Inc.
+# Originally written by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, 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 <http://www.gnu.org/licenses/>.
+
+# 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.
+
+if test $# -eq 0; then
+ echo 1>&2 "Try '$0 --help' for more information"
+ exit 1
+fi
+
+case $1 in
+
+ --is-lightweight)
+ # Used by our autoconf macros to check whether the available missing
+ # script is modern enough.
+ exit 0
+ ;;
+
+ --run)
+ # Back-compat with the calling convention used by older automake.
+ shift
+ ;;
+
+ -h|--h|--he|--hel|--help)
+ echo "\
+$0 [OPTION]... PROGRAM [ARGUMENT]...
+
+Run 'PROGRAM [ARGUMENT]...', returning a proper advice when this fails due
+to PROGRAM being missing or too old.
+
+Options:
+ -h, --help display this help and exit
+ -v, --version output version information and exit
+
+Supported PROGRAM values:
+ aclocal autoconf autoheader autom4te automake makeinfo
+ bison yacc flex lex help2man
+
+Version suffixes to PROGRAM as well as the prefixes 'gnu-', 'gnu', and
+'g' are ignored when checking the name.
+
+Send bug reports to <bug-automake@gnu.org>."
+ exit $?
+ ;;
+
+ -v|--v|--ve|--ver|--vers|--versi|--versio|--version)
+ echo "missing $scriptversion (GNU Automake)"
+ exit $?
+ ;;
+
+ -*)
+ echo 1>&2 "$0: unknown '$1' option"
+ echo 1>&2 "Try '$0 --help' for more information"
+ exit 1
+ ;;
+
+esac
+
+# Run the given program, remember its exit status.
+"$@"; st=$?
+
+# If it succeeded, we are done.
+test $st -eq 0 && exit 0
+
+# Also exit now if we it failed (or wasn't found), and '--version' was
+# passed; such an option is passed most likely to detect whether the
+# program is present and works.
+case $2 in --version|--help) exit $st;; esac
+
+# Exit code 63 means version mismatch. This often happens when the user
+# tries to use an ancient version of a tool on a file that requires a
+# minimum version.
+if test $st -eq 63; then
+ msg="probably too old"
+elif test $st -eq 127; then
+ # Program was missing.
+ msg="missing on your system"
+else
+ # Program was found and executed, but failed. Give up.
+ exit $st
+fi
+
+perl_URL=http://www.perl.org/
+flex_URL=http://flex.sourceforge.net/
+gnu_software_URL=http://www.gnu.org/software
+
+program_details ()
+{
+ case $1 in
+ aclocal|automake)
+ echo "The '$1' program is part of the GNU Automake package:"
+ echo "<$gnu_software_URL/automake>"
+ echo "It also requires GNU Autoconf, GNU m4 and Perl in order to run:"
+ echo "<$gnu_software_URL/autoconf>"
+ echo "<$gnu_software_URL/m4/>"
+ echo "<$perl_URL>"
+ ;;
+ autoconf|autom4te|autoheader)
+ echo "The '$1' program is part of the GNU Autoconf package:"
+ echo "<$gnu_software_URL/autoconf/>"
+ echo "It also requires GNU m4 and Perl in order to run:"
+ echo "<$gnu_software_URL/m4/>"
+ echo "<$perl_URL>"
+ ;;
+ esac
+}
+
+give_advice ()
+{
+ # Normalize program name to check for.
+ normalized_program=`echo "$1" | sed '
+ s/^gnu-//; t
+ s/^gnu//; t
+ s/^g//; t'`
+
+ printf '%s\n' "'$1' is $msg."
+
+ configure_deps="'configure.ac' or m4 files included by 'configure.ac'"
+ case $normalized_program in
+ autoconf*)
+ echo "You should only need it if you modified 'configure.ac',"
+ echo "or m4 files included by it."
+ program_details 'autoconf'
+ ;;
+ autoheader*)
+ echo "You should only need it if you modified 'acconfig.h' or"
+ echo "$configure_deps."
+ program_details 'autoheader'
+ ;;
+ automake*)
+ echo "You should only need it if you modified 'Makefile.am' or"
+ echo "$configure_deps."
+ program_details 'automake'
+ ;;
+ aclocal*)
+ echo "You should only need it if you modified 'acinclude.m4' or"
+ echo "$configure_deps."
+ program_details 'aclocal'
+ ;;
+ autom4te*)
+ echo "You might have modified some maintainer files that require"
+ echo "the 'autom4te' program to be rebuilt."
+ program_details 'autom4te'
+ ;;
+ bison*|yacc*)
+ echo "You should only need it if you modified a '.y' file."
+ echo "You may want to install the GNU Bison package:"
+ echo "<$gnu_software_URL/bison/>"
+ ;;
+ lex*|flex*)
+ echo "You should only need it if you modified a '.l' file."
+ echo "You may want to install the Fast Lexical Analyzer package:"
+ echo "<$flex_URL>"
+ ;;
+ help2man*)
+ echo "You should only need it if you modified a dependency" \
+ "of a man page."
+ echo "You may want to install the GNU Help2man package:"
+ echo "<$gnu_software_URL/help2man/>"
+ ;;
+ makeinfo*)
+ echo "You should only need it if you modified a '.texi' file, or"
+ echo "any other file indirectly affecting the aspect of the manual."
+ echo "You might want to install the Texinfo package:"
+ echo "<$gnu_software_URL/texinfo/>"
+ echo "The spurious makeinfo call might also be the consequence of"
+ echo "using a buggy 'make' (AIX, DU, IRIX), in which case you might"
+ echo "want to install GNU make:"
+ echo "<$gnu_software_URL/make/>"
+ ;;
+ *)
+ echo "You might have modified some files without having the proper"
+ echo "tools for further handling them. Check the 'README' file, it"
+ echo "often tells you about the needed prerequisites for installing"
+ echo "this package. You may also peek at any GNU archive site, in"
+ echo "case some other package contains this missing '$1' program."
+ ;;
+ esac
+}
+
+give_advice "$1" | sed -e '1s/^/WARNING: /' \
+ -e '2,$s/^/ /' >&2
+
+# Propagate the correct exit status (expected to be 127 for a program
+# not found, 63 for a program that failed due to version mismatch).
+exit $st
+
+# Local variables:
+# 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:
--- /dev/null
+#! /bin/sh
+# test-driver - basic testsuite driver script.
+
+scriptversion=2013-07-13.22; # UTC
+
+# Copyright (C) 2011-2014 Free Software Foundation, Inc.
+#
+# 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 <http://www.gnu.org/licenses/>.
+
+# 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 <bug-automake@gnu.org> or send patches to
+# <automake-patches@gnu.org>.
+
+# Make unconditional expansion of undefined variables an error. This
+# helps a lot in preventing typo-related bugs.
+set -u
+
+usage_error ()
+{
+ echo "$0: $*" >&2
+ print_usage >&2
+ exit 2
+}
+
+print_usage ()
+{
+ cat <<END
+Usage:
+ test-driver --test-name=NAME --log-file=PATH --trs-file=PATH
+ [--expect-failure={yes|no}] [--color-tests={yes|no}]
+ [--enable-hard-errors={yes|no}] [--]
+ TEST-SCRIPT [TEST-SCRIPT-ARGUMENTS]
+The '--test-name', '--log-file' and '--trs-file' options are mandatory.
+END
+}
+
+test_name= # Used for reporting.
+log_file= # Where to save the output of the test script.
+trs_file= # Where to save the metadata of the test run.
+expect_failure=no
+color_tests=no
+enable_hard_errors=yes
+while test $# -gt 0; do
+ case $1 in
+ --help) print_usage; exit $?;;
+ --version) echo "test-driver $scriptversion"; exit $?;;
+ --test-name) test_name=$2; shift;;
+ --log-file) log_file=$2; shift;;
+ --trs-file) trs_file=$2; shift;;
+ --color-tests) color_tests=$2; shift;;
+ --expect-failure) expect_failure=$2; shift;;
+ --enable-hard-errors) enable_hard_errors=$2; shift;;
+ --) shift; break;;
+ -*) usage_error "invalid option: '$1'";;
+ *) break;;
+ esac
+ shift
+done
+
+missing_opts=
+test x"$test_name" = x && missing_opts="$missing_opts --test-name"
+test x"$log_file" = x && missing_opts="$missing_opts --log-file"
+test x"$trs_file" = x && missing_opts="$missing_opts --trs-file"
+if test x"$missing_opts" != x; then
+ usage_error "the following mandatory options are missing:$missing_opts"
+fi
+
+if test $# -eq 0; then
+ usage_error "missing argument"
+fi
+
+if test $color_tests = yes; then
+ # Keep this in sync with 'lib/am/check.am:$(am__tty_colors)'.
+ red='\e[0;31m' # Red.
+ grn='\e[0;32m' # Green.
+ lgn='\e[1;32m' # Light green.
+ blu='\e[1;34m' # Blue.
+ mgn='\e[0;35m' # Magenta.
+ std='\e[m' # No color.
+else
+ red= grn= lgn= blu= mgn= std=
+fi
+
+do_exit='rm -f $log_file $trs_file; (exit $st); exit $st'
+trap "st=129; $do_exit" 1
+trap "st=130; $do_exit" 2
+trap "st=141; $do_exit" 13
+trap "st=143; $do_exit" 15
+
+# Test script is run here.
+"$@" >$log_file 2>&1
+estatus=$?
+
+if test $enable_hard_errors = no && test $estatus -eq 99; then
+ tweaked_estatus=1
+else
+ tweaked_estatus=$estatus
+fi
+
+case $tweaked_estatus:$expect_failure in
+ 0:yes) col=$red res=XPASS recheck=yes gcopy=yes;;
+ 0:*) col=$grn res=PASS recheck=no gcopy=no;;
+ 77:*) col=$blu res=SKIP recheck=no gcopy=yes;;
+ 99:*) col=$mgn res=ERROR recheck=yes gcopy=yes;;
+ *:yes) col=$lgn res=XFAIL recheck=no gcopy=yes;;
+ *:*) col=$red res=FAIL recheck=yes gcopy=yes;;
+esac
+
+# Report the test outcome and exit status in the logs, so that one can
+# know whether the test passed or failed simply by looking at the '.log'
+# file, without the need of also peaking into the corresponding '.trs'
+# file (automake bug#11814).
+echo "$res $test_name (exit status: $estatus)" >>$log_file
+
+# Report outcome to console.
+echo "${col}${res}${std}: $test_name"
+
+# Register the test result, and other relevant metadata.
+echo ":test-result: $res" > $trs_file
+echo ":global-test-result: $res" >> $trs_file
+echo ":recheck: $recheck" >> $trs_file
+echo ":copy-in-global-log: $gcopy" >> $trs_file
+
+# 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:
--- /dev/null
+if OS_UNIX
+CONCURRENCY_STRESS_TEST = concurrency-stress-test
+endif
+
+C_TESTS = \
+ grayscale_to_rgb \
+ rgb_to_bgr \
+ rgb_to_ycbcr \
+ srgb_to_lab_u8 \
+ sanity \
+ babl_class_name \
+ extract \
+ floatclamp \
+ float-to-8bit \
+ hsl \
+ hsva \
+ types \
+ palette \
+ extract \
+ nop \
+ n_components \
+ n_components_cast \
+ models \
+ cairo-RGB24 \
+ $(CONCURRENCY_STRESS_TEST)
+
+TESTS = \
+ $(C_TESTS)
+
+TESTS_ENVIRONMENT = LD_LIBRARY_PATH=$(top_builddir)/babl:$LD_LIBRARY_PATH GI_TYPELIB_PATH=$(top_builddir)/babl BABL_PATH=$(top_builddir)/extensions/.libs
+
+AM_CPPFLAGS = -I$(top_srcdir) -I$(top_srcdir)/babl
+if OS_UNIX
+AM_LDFLAGS = -pthread
+endif
+
+LDADD = $(top_builddir)/babl/libbabl-@BABL_API_VERSION@.la \
+ $(MATH_LIB) $(THREAD_LIB)
+
+EXTRA_DIST=common.inc
+
+noinst_PROGRAMS = \
+ introspect \
+ babl_fish_path_fitness \
+ babl_fish_path_dhtml \
+ babl-html-dump \
+ conversions \
+ formats \
+ $(C_TESTS)
--- /dev/null
+# Makefile.in generated by automake 1.15 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
+
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+VPATH = @srcdir@
+am__is_gnu_make = { \
+ if test -z '$(MAKELEVEL)'; then \
+ false; \
+ elif test -n '$(MAKE_HOST)'; then \
+ true; \
+ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+ true; \
+ else \
+ false; \
+ fi; \
+}
+am__make_running_with_option = \
+ case $${target_option-} in \
+ ?) ;; \
+ *) echo "am__make_running_with_option: internal error: invalid" \
+ "target option '$${target_option-}' specified" >&2; \
+ exit 1;; \
+ esac; \
+ has_opt=no; \
+ sane_makeflags=$$MAKEFLAGS; \
+ if $(am__is_gnu_make); then \
+ sane_makeflags=$$MFLAGS; \
+ else \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ bs=\\; \
+ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
+ esac; \
+ fi; \
+ skip_next=no; \
+ strip_trailopt () \
+ { \
+ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+ }; \
+ for flg in $$sane_makeflags; do \
+ test $$skip_next = yes && { skip_next=no; continue; }; \
+ case $$flg in \
+ *=*|--*) continue;; \
+ -*I) strip_trailopt 'I'; skip_next=yes;; \
+ -*I?*) strip_trailopt 'I';; \
+ -*O) strip_trailopt 'O'; skip_next=yes;; \
+ -*O?*) strip_trailopt 'O';; \
+ -*l) strip_trailopt 'l'; skip_next=yes;; \
+ -*l?*) strip_trailopt 'l';; \
+ -[dEDm]) skip_next=yes;; \
+ -[JT]) skip_next=yes;; \
+ esac; \
+ case $$flg in \
+ *$$target_option*) has_opt=yes; break;; \
+ esac; \
+ done; \
+ test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+target_triplet = @target@
+TESTS = $(am__EXEEXT_2)
+noinst_PROGRAMS = introspect$(EXEEXT) babl_fish_path_fitness$(EXEEXT) \
+ babl_fish_path_dhtml$(EXEEXT) babl-html-dump$(EXEEXT) \
+ conversions$(EXEEXT) formats$(EXEEXT) $(am__EXEEXT_2)
+subdir = tests
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(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)/acinclude.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+@OS_UNIX_TRUE@am__EXEEXT_1 = concurrency-stress-test$(EXEEXT)
+am__EXEEXT_2 = grayscale_to_rgb$(EXEEXT) rgb_to_bgr$(EXEEXT) \
+ rgb_to_ycbcr$(EXEEXT) srgb_to_lab_u8$(EXEEXT) sanity$(EXEEXT) \
+ babl_class_name$(EXEEXT) extract$(EXEEXT) floatclamp$(EXEEXT) \
+ float-to-8bit$(EXEEXT) hsl$(EXEEXT) hsva$(EXEEXT) \
+ types$(EXEEXT) palette$(EXEEXT) extract$(EXEEXT) nop$(EXEEXT) \
+ n_components$(EXEEXT) n_components_cast$(EXEEXT) \
+ models$(EXEEXT) cairo-RGB24$(EXEEXT) $(am__EXEEXT_1)
+PROGRAMS = $(noinst_PROGRAMS)
+babl_html_dump_SOURCES = babl-html-dump.c
+babl_html_dump_OBJECTS = babl-html-dump.$(OBJEXT)
+babl_html_dump_LDADD = $(LDADD)
+am__DEPENDENCIES_1 =
+babl_html_dump_DEPENDENCIES = \
+ $(top_builddir)/babl/libbabl-@BABL_API_VERSION@.la \
+ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
+AM_V_lt = $(am__v_lt_@AM_V@)
+am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
+am__v_lt_0 = --silent
+am__v_lt_1 =
+babl_class_name_SOURCES = babl_class_name.c
+babl_class_name_OBJECTS = babl_class_name.$(OBJEXT)
+babl_class_name_LDADD = $(LDADD)
+babl_class_name_DEPENDENCIES = \
+ $(top_builddir)/babl/libbabl-@BABL_API_VERSION@.la \
+ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
+babl_fish_path_dhtml_SOURCES = babl_fish_path_dhtml.c
+babl_fish_path_dhtml_OBJECTS = babl_fish_path_dhtml.$(OBJEXT)
+babl_fish_path_dhtml_LDADD = $(LDADD)
+babl_fish_path_dhtml_DEPENDENCIES = \
+ $(top_builddir)/babl/libbabl-@BABL_API_VERSION@.la \
+ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
+babl_fish_path_fitness_SOURCES = babl_fish_path_fitness.c
+babl_fish_path_fitness_OBJECTS = babl_fish_path_fitness.$(OBJEXT)
+babl_fish_path_fitness_LDADD = $(LDADD)
+babl_fish_path_fitness_DEPENDENCIES = \
+ $(top_builddir)/babl/libbabl-@BABL_API_VERSION@.la \
+ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
+cairo_RGB24_SOURCES = cairo-RGB24.c
+cairo_RGB24_OBJECTS = cairo-RGB24.$(OBJEXT)
+cairo_RGB24_LDADD = $(LDADD)
+cairo_RGB24_DEPENDENCIES = \
+ $(top_builddir)/babl/libbabl-@BABL_API_VERSION@.la \
+ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
+concurrency_stress_test_SOURCES = concurrency-stress-test.c
+concurrency_stress_test_OBJECTS = concurrency-stress-test.$(OBJEXT)
+concurrency_stress_test_LDADD = $(LDADD)
+concurrency_stress_test_DEPENDENCIES = \
+ $(top_builddir)/babl/libbabl-@BABL_API_VERSION@.la \
+ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
+conversions_SOURCES = conversions.c
+conversions_OBJECTS = conversions.$(OBJEXT)
+conversions_LDADD = $(LDADD)
+conversions_DEPENDENCIES = \
+ $(top_builddir)/babl/libbabl-@BABL_API_VERSION@.la \
+ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
+extract_SOURCES = extract.c
+extract_OBJECTS = extract.$(OBJEXT)
+extract_LDADD = $(LDADD)
+extract_DEPENDENCIES = \
+ $(top_builddir)/babl/libbabl-@BABL_API_VERSION@.la \
+ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
+float_to_8bit_SOURCES = float-to-8bit.c
+float_to_8bit_OBJECTS = float-to-8bit.$(OBJEXT)
+float_to_8bit_LDADD = $(LDADD)
+float_to_8bit_DEPENDENCIES = \
+ $(top_builddir)/babl/libbabl-@BABL_API_VERSION@.la \
+ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
+floatclamp_SOURCES = floatclamp.c
+floatclamp_OBJECTS = floatclamp.$(OBJEXT)
+floatclamp_LDADD = $(LDADD)
+floatclamp_DEPENDENCIES = \
+ $(top_builddir)/babl/libbabl-@BABL_API_VERSION@.la \
+ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
+formats_SOURCES = formats.c
+formats_OBJECTS = formats.$(OBJEXT)
+formats_LDADD = $(LDADD)
+formats_DEPENDENCIES = \
+ $(top_builddir)/babl/libbabl-@BABL_API_VERSION@.la \
+ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
+grayscale_to_rgb_SOURCES = grayscale_to_rgb.c
+grayscale_to_rgb_OBJECTS = grayscale_to_rgb.$(OBJEXT)
+grayscale_to_rgb_LDADD = $(LDADD)
+grayscale_to_rgb_DEPENDENCIES = \
+ $(top_builddir)/babl/libbabl-@BABL_API_VERSION@.la \
+ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
+hsl_SOURCES = hsl.c
+hsl_OBJECTS = hsl.$(OBJEXT)
+hsl_LDADD = $(LDADD)
+hsl_DEPENDENCIES = $(top_builddir)/babl/libbabl-@BABL_API_VERSION@.la \
+ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
+hsva_SOURCES = hsva.c
+hsva_OBJECTS = hsva.$(OBJEXT)
+hsva_LDADD = $(LDADD)
+hsva_DEPENDENCIES = \
+ $(top_builddir)/babl/libbabl-@BABL_API_VERSION@.la \
+ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
+introspect_SOURCES = introspect.c
+introspect_OBJECTS = introspect.$(OBJEXT)
+introspect_LDADD = $(LDADD)
+introspect_DEPENDENCIES = \
+ $(top_builddir)/babl/libbabl-@BABL_API_VERSION@.la \
+ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
+models_SOURCES = models.c
+models_OBJECTS = models.$(OBJEXT)
+models_LDADD = $(LDADD)
+models_DEPENDENCIES = \
+ $(top_builddir)/babl/libbabl-@BABL_API_VERSION@.la \
+ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
+n_components_SOURCES = n_components.c
+n_components_OBJECTS = n_components.$(OBJEXT)
+n_components_LDADD = $(LDADD)
+n_components_DEPENDENCIES = \
+ $(top_builddir)/babl/libbabl-@BABL_API_VERSION@.la \
+ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
+n_components_cast_SOURCES = n_components_cast.c
+n_components_cast_OBJECTS = n_components_cast.$(OBJEXT)
+n_components_cast_LDADD = $(LDADD)
+n_components_cast_DEPENDENCIES = \
+ $(top_builddir)/babl/libbabl-@BABL_API_VERSION@.la \
+ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
+nop_SOURCES = nop.c
+nop_OBJECTS = nop.$(OBJEXT)
+nop_LDADD = $(LDADD)
+nop_DEPENDENCIES = $(top_builddir)/babl/libbabl-@BABL_API_VERSION@.la \
+ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
+palette_SOURCES = palette.c
+palette_OBJECTS = palette.$(OBJEXT)
+palette_LDADD = $(LDADD)
+palette_DEPENDENCIES = \
+ $(top_builddir)/babl/libbabl-@BABL_API_VERSION@.la \
+ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
+rgb_to_bgr_SOURCES = rgb_to_bgr.c
+rgb_to_bgr_OBJECTS = rgb_to_bgr.$(OBJEXT)
+rgb_to_bgr_LDADD = $(LDADD)
+rgb_to_bgr_DEPENDENCIES = \
+ $(top_builddir)/babl/libbabl-@BABL_API_VERSION@.la \
+ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
+rgb_to_ycbcr_SOURCES = rgb_to_ycbcr.c
+rgb_to_ycbcr_OBJECTS = rgb_to_ycbcr.$(OBJEXT)
+rgb_to_ycbcr_LDADD = $(LDADD)
+rgb_to_ycbcr_DEPENDENCIES = \
+ $(top_builddir)/babl/libbabl-@BABL_API_VERSION@.la \
+ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
+sanity_SOURCES = sanity.c
+sanity_OBJECTS = sanity.$(OBJEXT)
+sanity_LDADD = $(LDADD)
+sanity_DEPENDENCIES = \
+ $(top_builddir)/babl/libbabl-@BABL_API_VERSION@.la \
+ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
+srgb_to_lab_u8_SOURCES = srgb_to_lab_u8.c
+srgb_to_lab_u8_OBJECTS = srgb_to_lab_u8.$(OBJEXT)
+srgb_to_lab_u8_LDADD = $(LDADD)
+srgb_to_lab_u8_DEPENDENCIES = \
+ $(top_builddir)/babl/libbabl-@BABL_API_VERSION@.la \
+ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
+types_SOURCES = types.c
+types_OBJECTS = types.$(OBJEXT)
+types_LDADD = $(LDADD)
+types_DEPENDENCIES = \
+ $(top_builddir)/babl/libbabl-@BABL_API_VERSION@.la \
+ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo " GEN " $@;
+am__v_GEN_1 =
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 =
+DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
+depcomp = $(SHELL) $(top_srcdir)/depcomp
+am__depfiles_maybe = depfiles
+am__mv = mv -f
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
+ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
+ $(AM_CFLAGS) $(CFLAGS)
+AM_V_CC = $(am__v_CC_@AM_V@)
+am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
+am__v_CC_0 = @echo " CC " $@;
+am__v_CC_1 =
+CCLD = $(CC)
+LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+ $(AM_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_CCLD = $(am__v_CCLD_@AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
+am__v_CCLD_0 = @echo " CCLD " $@;
+am__v_CCLD_1 =
+SOURCES = babl-html-dump.c babl_class_name.c babl_fish_path_dhtml.c \
+ babl_fish_path_fitness.c cairo-RGB24.c \
+ concurrency-stress-test.c conversions.c extract.c \
+ float-to-8bit.c floatclamp.c formats.c grayscale_to_rgb.c \
+ hsl.c hsva.c introspect.c models.c n_components.c \
+ n_components_cast.c nop.c palette.c rgb_to_bgr.c \
+ rgb_to_ycbcr.c sanity.c srgb_to_lab_u8.c types.c
+DIST_SOURCES = babl-html-dump.c babl_class_name.c \
+ babl_fish_path_dhtml.c babl_fish_path_fitness.c cairo-RGB24.c \
+ concurrency-stress-test.c conversions.c extract.c \
+ float-to-8bit.c floatclamp.c formats.c grayscale_to_rgb.c \
+ hsl.c hsva.c introspect.c models.c n_components.c \
+ n_components_cast.c nop.c palette.c rgb_to_bgr.c \
+ rgb_to_ycbcr.c sanity.c srgb_to_lab_u8.c types.c
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates. Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+ BEGIN { nonempty = 0; } \
+ { items[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique. This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+ list='$(am__tagged_files)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | $(am__uniquify_input)`
+ETAGS = etags
+CTAGS = ctags
+am__tty_colors_dummy = \
+ mgn= red= grn= lgn= blu= brg= std=; \
+ am__color_tests=no
+am__tty_colors = { \
+ $(am__tty_colors_dummy); \
+ if test "X$(AM_COLOR_TESTS)" = Xno; then \
+ am__color_tests=no; \
+ elif test "X$(AM_COLOR_TESTS)" = Xalways; then \
+ am__color_tests=yes; \
+ elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \
+ am__color_tests=yes; \
+ fi; \
+ if test $$am__color_tests = yes; then \
+ red='\e[0;31m'; \
+ grn='\e[0;32m'; \
+ lgn='\e[1;32m'; \
+ blu='\e[1;34m'; \
+ mgn='\e[0;35m'; \
+ brg='\e[1m'; \
+ std='\e[m'; \
+ fi; \
+}
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+ if (++n[$$2] == $(am__install_max)) \
+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+ END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+ test -z "$$files" \
+ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+ $(am__cd) "$$dir" && rm -f $$files; }; \
+ }
+am__recheck_rx = ^[ ]*:recheck:[ ]*
+am__global_test_result_rx = ^[ ]*:global-test-result:[ ]*
+am__copy_in_global_log_rx = ^[ ]*:copy-in-global-log:[ ]*
+# A command that, given a newline-separated list of test names on the
+# standard input, print the name of the tests that are to be re-run
+# upon "make recheck".
+am__list_recheck_tests = $(AWK) '{ \
+ recheck = 1; \
+ while ((rc = (getline line < ($$0 ".trs"))) != 0) \
+ { \
+ if (rc < 0) \
+ { \
+ if ((getline line2 < ($$0 ".log")) < 0) \
+ recheck = 0; \
+ break; \
+ } \
+ else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \
+ { \
+ recheck = 0; \
+ break; \
+ } \
+ else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \
+ { \
+ break; \
+ } \
+ }; \
+ if (recheck) \
+ print $$0; \
+ close ($$0 ".trs"); \
+ close ($$0 ".log"); \
+}'
+# A command that, given a newline-separated list of test names on the
+# standard input, create the global log from their .trs and .log files.
+am__create_global_log = $(AWK) ' \
+function fatal(msg) \
+{ \
+ print "fatal: making $@: " msg | "cat >&2"; \
+ exit 1; \
+} \
+function rst_section(header) \
+{ \
+ print header; \
+ len = length(header); \
+ for (i = 1; i <= len; i = i + 1) \
+ printf "="; \
+ printf "\n\n"; \
+} \
+{ \
+ copy_in_global_log = 1; \
+ global_test_result = "RUN"; \
+ while ((rc = (getline line < ($$0 ".trs"))) != 0) \
+ { \
+ if (rc < 0) \
+ fatal("failed to read from " $$0 ".trs"); \
+ if (line ~ /$(am__global_test_result_rx)/) \
+ { \
+ sub("$(am__global_test_result_rx)", "", line); \
+ sub("[ ]*$$", "", line); \
+ global_test_result = line; \
+ } \
+ else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \
+ copy_in_global_log = 0; \
+ }; \
+ if (copy_in_global_log) \
+ { \
+ rst_section(global_test_result ": " $$0); \
+ while ((rc = (getline line < ($$0 ".log"))) != 0) \
+ { \
+ if (rc < 0) \
+ fatal("failed to read from " $$0 ".log"); \
+ print line; \
+ }; \
+ printf "\n"; \
+ }; \
+ close ($$0 ".trs"); \
+ close ($$0 ".log"); \
+}'
+# Restructured Text title.
+am__rst_title = { sed 's/.*/ & /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; }
+# Solaris 10 'make', and several other traditional 'make' implementations,
+# pass "-e" to $(SHELL), and POSIX 2008 even requires this. Work around it
+# by disabling -e (using the XSI extension "set +e") if it's set.
+am__sh_e_setup = case $$- in *e*) set +e;; esac
+# Default flags passed to test drivers.
+am__common_driver_flags = \
+ --color-tests "$$am__color_tests" \
+ --enable-hard-errors "$$am__enable_hard_errors" \
+ --expect-failure "$$am__expect_failure"
+# To be inserted before the command running the test. Creates the
+# directory for the log if needed. Stores in $dir the directory
+# containing $f, in $tst the test, in $log the log. Executes the
+# developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and
+# passes TESTS_ENVIRONMENT. Set up options for the wrapper that
+# will run the test scripts (or their associated LOG_COMPILER, if
+# thy have one).
+am__check_pre = \
+$(am__sh_e_setup); \
+$(am__vpath_adj_setup) $(am__vpath_adj) \
+$(am__tty_colors); \
+srcdir=$(srcdir); export srcdir; \
+case "$@" in \
+ */*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;; \
+ *) am__odir=.;; \
+esac; \
+test "x$$am__odir" = x"." || test -d "$$am__odir" \
+ || $(MKDIR_P) "$$am__odir" || exit $$?; \
+if test -f "./$$f"; then dir=./; \
+elif test -f "$$f"; then dir=; \
+else dir="$(srcdir)/"; fi; \
+tst=$$dir$$f; log='$@'; \
+if test -n '$(DISABLE_HARD_ERRORS)'; then \
+ am__enable_hard_errors=no; \
+else \
+ am__enable_hard_errors=yes; \
+fi; \
+case " $(XFAIL_TESTS) " in \
+ *[\ \ ]$$f[\ \ ]* | *[\ \ ]$$dir$$f[\ \ ]*) \
+ am__expect_failure=yes;; \
+ *) \
+ am__expect_failure=no;; \
+esac; \
+$(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT)
+# A shell command to get the names of the tests scripts with any registered
+# extension removed (i.e., equivalently, the names of the test logs, with
+# the '.log' extension removed). The result is saved in the shell variable
+# '$bases'. This honors runtime overriding of TESTS and TEST_LOGS. Sadly,
+# we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)",
+# since that might cause problem with VPATH rewrites for suffix-less tests.
+# See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'.
+am__set_TESTS_bases = \
+ bases='$(TEST_LOGS)'; \
+ bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \
+ bases=`echo $$bases`
+RECHECK_LOGS = $(TEST_LOGS)
+AM_RECURSIVE_TARGETS = check recheck
+TEST_SUITE_LOG = test-suite.log
+TEST_EXTENSIONS = @EXEEXT@ .test
+LOG_DRIVER = $(SHELL) $(top_srcdir)/test-driver
+LOG_COMPILE = $(LOG_COMPILER) $(AM_LOG_FLAGS) $(LOG_FLAGS)
+am__set_b = \
+ case '$@' in \
+ */*) \
+ case '$*' in \
+ */*) b='$*';; \
+ *) b=`echo '$@' | sed 's/\.log$$//'`; \
+ esac;; \
+ *) \
+ b='$*';; \
+ esac
+am__test_logs1 = $(TESTS:=.log)
+am__test_logs2 = $(am__test_logs1:@EXEEXT@.log=.log)
+TEST_LOGS = $(am__test_logs2:.test.log=.log)
+TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/test-driver
+TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \
+ $(TEST_LOG_FLAGS)
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp \
+ $(top_srcdir)/test-driver
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ALTIVEC_EXTRA_CFLAGS = @ALTIVEC_EXTRA_CFLAGS@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AR = @AR@
+AS = @AS@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+BABL_API_VERSION = @BABL_API_VERSION@
+BABL_BINARY_AGE = @BABL_BINARY_AGE@
+BABL_CURRENT_MINUS_AGE = @BABL_CURRENT_MINUS_AGE@
+BABL_INTERFACE_AGE = @BABL_INTERFACE_AGE@
+BABL_LIBRARY_VERSION = @BABL_LIBRARY_VERSION@
+BABL_MAJOR_VERSION = @BABL_MAJOR_VERSION@
+BABL_MICRO_VERSION = @BABL_MICRO_VERSION@
+BABL_MINOR_VERSION = @BABL_MINOR_VERSION@
+BABL_REAL_VERSION = @BABL_REAL_VERSION@
+BABL_RELEASE = @BABL_RELEASE@
+BABL_UNSTABLE = @BABL_UNSTABLE@
+BABL_VERSION = @BABL_VERSION@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DIR_SEP = @DIR_SEP@
+DLLTOOL = @DLLTOOL@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+F16C_EXTRA_CFLAGS = @F16C_EXTRA_CFLAGS@
+FGREP = @FGREP@
+GREP = @GREP@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
+MATH_LIB = @MATH_LIB@
+MKDIR_P = @MKDIR_P@
+MMX_EXTRA_CFLAGS = @MMX_EXTRA_CFLAGS@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEP = @PATH_SEP@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+RANLIB = @RANLIB@
+RSVG = @RSVG@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SHREXT = @SHREXT@
+SSE2_EXTRA_CFLAGS = @SSE2_EXTRA_CFLAGS@
+SSE4_1_EXTRA_CFLAGS = @SSE4_1_EXTRA_CFLAGS@
+SSE_EXTRA_CFLAGS = @SSE_EXTRA_CFLAGS@
+STRIP = @STRIP@
+THREAD_LIB = @THREAD_LIB@
+VERSION = @VERSION@
+W3M = @W3M@
+WEBSITE_HOST = @WEBSITE_HOST@
+WEBSITE_LOCATION = @WEBSITE_LOCATION@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target = @target@
+target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+@OS_UNIX_TRUE@CONCURRENCY_STRESS_TEST = concurrency-stress-test
+C_TESTS = \
+ grayscale_to_rgb \
+ rgb_to_bgr \
+ rgb_to_ycbcr \
+ srgb_to_lab_u8 \
+ sanity \
+ babl_class_name \
+ extract \
+ floatclamp \
+ float-to-8bit \
+ hsl \
+ hsva \
+ types \
+ palette \
+ extract \
+ nop \
+ n_components \
+ n_components_cast \
+ models \
+ cairo-RGB24 \
+ $(CONCURRENCY_STRESS_TEST)
+
+TESTS_ENVIRONMENT = LD_LIBRARY_PATH=$(top_builddir)/babl:$LD_LIBRARY_PATH GI_TYPELIB_PATH=$(top_builddir)/babl BABL_PATH=$(top_builddir)/extensions/.libs
+AM_CPPFLAGS = -I$(top_srcdir) -I$(top_srcdir)/babl
+@OS_UNIX_TRUE@AM_LDFLAGS = -pthread
+LDADD = $(top_builddir)/babl/libbabl-@BABL_API_VERSION@.la \
+ $(MATH_LIB) $(THREAD_LIB)
+
+EXTRA_DIST = common.inc
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .c .lo .log .o .obj .test .test$(EXEEXT) .trs
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign tests/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --foreign tests/Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+clean-noinstPROGRAMS:
+ @list='$(noinst_PROGRAMS)'; test -n "$$list" || exit 0; \
+ echo " rm -f" $$list; \
+ rm -f $$list || exit $$?; \
+ test -n "$(EXEEXT)" || exit 0; \
+ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
+ echo " rm -f" $$list; \
+ rm -f $$list
+
+babl-html-dump$(EXEEXT): $(babl_html_dump_OBJECTS) $(babl_html_dump_DEPENDENCIES) $(EXTRA_babl_html_dump_DEPENDENCIES)
+ @rm -f babl-html-dump$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(babl_html_dump_OBJECTS) $(babl_html_dump_LDADD) $(LIBS)
+
+babl_class_name$(EXEEXT): $(babl_class_name_OBJECTS) $(babl_class_name_DEPENDENCIES) $(EXTRA_babl_class_name_DEPENDENCIES)
+ @rm -f babl_class_name$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(babl_class_name_OBJECTS) $(babl_class_name_LDADD) $(LIBS)
+
+babl_fish_path_dhtml$(EXEEXT): $(babl_fish_path_dhtml_OBJECTS) $(babl_fish_path_dhtml_DEPENDENCIES) $(EXTRA_babl_fish_path_dhtml_DEPENDENCIES)
+ @rm -f babl_fish_path_dhtml$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(babl_fish_path_dhtml_OBJECTS) $(babl_fish_path_dhtml_LDADD) $(LIBS)
+
+babl_fish_path_fitness$(EXEEXT): $(babl_fish_path_fitness_OBJECTS) $(babl_fish_path_fitness_DEPENDENCIES) $(EXTRA_babl_fish_path_fitness_DEPENDENCIES)
+ @rm -f babl_fish_path_fitness$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(babl_fish_path_fitness_OBJECTS) $(babl_fish_path_fitness_LDADD) $(LIBS)
+
+cairo-RGB24$(EXEEXT): $(cairo_RGB24_OBJECTS) $(cairo_RGB24_DEPENDENCIES) $(EXTRA_cairo_RGB24_DEPENDENCIES)
+ @rm -f cairo-RGB24$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(cairo_RGB24_OBJECTS) $(cairo_RGB24_LDADD) $(LIBS)
+
+concurrency-stress-test$(EXEEXT): $(concurrency_stress_test_OBJECTS) $(concurrency_stress_test_DEPENDENCIES) $(EXTRA_concurrency_stress_test_DEPENDENCIES)
+ @rm -f concurrency-stress-test$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(concurrency_stress_test_OBJECTS) $(concurrency_stress_test_LDADD) $(LIBS)
+
+conversions$(EXEEXT): $(conversions_OBJECTS) $(conversions_DEPENDENCIES) $(EXTRA_conversions_DEPENDENCIES)
+ @rm -f conversions$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(conversions_OBJECTS) $(conversions_LDADD) $(LIBS)
+
+extract$(EXEEXT): $(extract_OBJECTS) $(extract_DEPENDENCIES) $(EXTRA_extract_DEPENDENCIES)
+ @rm -f extract$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(extract_OBJECTS) $(extract_LDADD) $(LIBS)
+
+float-to-8bit$(EXEEXT): $(float_to_8bit_OBJECTS) $(float_to_8bit_DEPENDENCIES) $(EXTRA_float_to_8bit_DEPENDENCIES)
+ @rm -f float-to-8bit$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(float_to_8bit_OBJECTS) $(float_to_8bit_LDADD) $(LIBS)
+
+floatclamp$(EXEEXT): $(floatclamp_OBJECTS) $(floatclamp_DEPENDENCIES) $(EXTRA_floatclamp_DEPENDENCIES)
+ @rm -f floatclamp$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(floatclamp_OBJECTS) $(floatclamp_LDADD) $(LIBS)
+
+formats$(EXEEXT): $(formats_OBJECTS) $(formats_DEPENDENCIES) $(EXTRA_formats_DEPENDENCIES)
+ @rm -f formats$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(formats_OBJECTS) $(formats_LDADD) $(LIBS)
+
+grayscale_to_rgb$(EXEEXT): $(grayscale_to_rgb_OBJECTS) $(grayscale_to_rgb_DEPENDENCIES) $(EXTRA_grayscale_to_rgb_DEPENDENCIES)
+ @rm -f grayscale_to_rgb$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(grayscale_to_rgb_OBJECTS) $(grayscale_to_rgb_LDADD) $(LIBS)
+
+hsl$(EXEEXT): $(hsl_OBJECTS) $(hsl_DEPENDENCIES) $(EXTRA_hsl_DEPENDENCIES)
+ @rm -f hsl$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(hsl_OBJECTS) $(hsl_LDADD) $(LIBS)
+
+hsva$(EXEEXT): $(hsva_OBJECTS) $(hsva_DEPENDENCIES) $(EXTRA_hsva_DEPENDENCIES)
+ @rm -f hsva$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(hsva_OBJECTS) $(hsva_LDADD) $(LIBS)
+
+introspect$(EXEEXT): $(introspect_OBJECTS) $(introspect_DEPENDENCIES) $(EXTRA_introspect_DEPENDENCIES)
+ @rm -f introspect$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(introspect_OBJECTS) $(introspect_LDADD) $(LIBS)
+
+models$(EXEEXT): $(models_OBJECTS) $(models_DEPENDENCIES) $(EXTRA_models_DEPENDENCIES)
+ @rm -f models$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(models_OBJECTS) $(models_LDADD) $(LIBS)
+
+n_components$(EXEEXT): $(n_components_OBJECTS) $(n_components_DEPENDENCIES) $(EXTRA_n_components_DEPENDENCIES)
+ @rm -f n_components$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(n_components_OBJECTS) $(n_components_LDADD) $(LIBS)
+
+n_components_cast$(EXEEXT): $(n_components_cast_OBJECTS) $(n_components_cast_DEPENDENCIES) $(EXTRA_n_components_cast_DEPENDENCIES)
+ @rm -f n_components_cast$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(n_components_cast_OBJECTS) $(n_components_cast_LDADD) $(LIBS)
+
+nop$(EXEEXT): $(nop_OBJECTS) $(nop_DEPENDENCIES) $(EXTRA_nop_DEPENDENCIES)
+ @rm -f nop$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(nop_OBJECTS) $(nop_LDADD) $(LIBS)
+
+palette$(EXEEXT): $(palette_OBJECTS) $(palette_DEPENDENCIES) $(EXTRA_palette_DEPENDENCIES)
+ @rm -f palette$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(palette_OBJECTS) $(palette_LDADD) $(LIBS)
+
+rgb_to_bgr$(EXEEXT): $(rgb_to_bgr_OBJECTS) $(rgb_to_bgr_DEPENDENCIES) $(EXTRA_rgb_to_bgr_DEPENDENCIES)
+ @rm -f rgb_to_bgr$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(rgb_to_bgr_OBJECTS) $(rgb_to_bgr_LDADD) $(LIBS)
+
+rgb_to_ycbcr$(EXEEXT): $(rgb_to_ycbcr_OBJECTS) $(rgb_to_ycbcr_DEPENDENCIES) $(EXTRA_rgb_to_ycbcr_DEPENDENCIES)
+ @rm -f rgb_to_ycbcr$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(rgb_to_ycbcr_OBJECTS) $(rgb_to_ycbcr_LDADD) $(LIBS)
+
+sanity$(EXEEXT): $(sanity_OBJECTS) $(sanity_DEPENDENCIES) $(EXTRA_sanity_DEPENDENCIES)
+ @rm -f sanity$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(sanity_OBJECTS) $(sanity_LDADD) $(LIBS)
+
+srgb_to_lab_u8$(EXEEXT): $(srgb_to_lab_u8_OBJECTS) $(srgb_to_lab_u8_DEPENDENCIES) $(EXTRA_srgb_to_lab_u8_DEPENDENCIES)
+ @rm -f srgb_to_lab_u8$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(srgb_to_lab_u8_OBJECTS) $(srgb_to_lab_u8_LDADD) $(LIBS)
+
+types$(EXEEXT): $(types_OBJECTS) $(types_DEPENDENCIES) $(EXTRA_types_DEPENDENCIES)
+ @rm -f types$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(types_OBJECTS) $(types_LDADD) $(LIBS)
+
+mostlyclean-compile:
+ -rm -f *.$(OBJEXT)
+
+distclean-compile:
+ -rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/babl-html-dump.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/babl_class_name.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/babl_fish_path_dhtml.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/babl_fish_path_fitness.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cairo-RGB24.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/concurrency-stress-test.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/conversions.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/extract.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/float-to-8bit.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/floatclamp.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/formats.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/grayscale_to_rgb.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hsl.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hsva.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/introspect.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/models.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/n_components.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/n_components_cast.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nop.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/palette.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rgb_to_bgr.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rgb_to_ycbcr.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sanity.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/srgb_to_lab_u8.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/types.Po@am__quote@
+
+.c.o:
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $<
+
+.c.obj:
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+
+.c.lo:
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+
+ID: $(am__tagged_files)
+ $(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ set x; \
+ here=`pwd`; \
+ $(am__define_uniq_tagged_files); \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
+ fi
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ $(am__define_uniq_tagged_files); \
+ test -z "$(CTAGS_ARGS)$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+ list='$(am__tagged_files)'; \
+ case "$(srcdir)" in \
+ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+ *) sdir=$(subdir)/$(srcdir) ;; \
+ esac; \
+ for i in $$list; do \
+ if test -f "$$i"; then \
+ echo "$(subdir)/$$i"; \
+ else \
+ echo "$$sdir/$$i"; \
+ fi; \
+ done >> $(top_builddir)/cscope.files
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+# Recover from deleted '.trs' file; this should ensure that
+# "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create
+# both 'foo.log' and 'foo.trs'. Break the recipe in two subshells
+# to avoid problems with "make -n".
+.log.trs:
+ rm -f $< $@
+ $(MAKE) $(AM_MAKEFLAGS) $<
+
+# Leading 'am--fnord' is there to ensure the list of targets does not
+# expand to empty, as could happen e.g. with make check TESTS=''.
+am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck)
+am--force-recheck:
+ @:
+
+$(TEST_SUITE_LOG): $(TEST_LOGS)
+ @$(am__set_TESTS_bases); \
+ am__f_ok () { test -f "$$1" && test -r "$$1"; }; \
+ redo_bases=`for i in $$bases; do \
+ am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \
+ done`; \
+ if test -n "$$redo_bases"; then \
+ redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \
+ redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \
+ if $(am__make_dryrun); then :; else \
+ rm -f $$redo_logs && rm -f $$redo_results || exit 1; \
+ fi; \
+ fi; \
+ if test -n "$$am__remaking_logs"; then \
+ echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \
+ "recursion detected" >&2; \
+ elif test -n "$$redo_logs"; then \
+ am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \
+ fi; \
+ if $(am__make_dryrun); then :; else \
+ st=0; \
+ errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \
+ for i in $$redo_bases; do \
+ test -f $$i.trs && test -r $$i.trs \
+ || { echo "$$errmsg $$i.trs" >&2; st=1; }; \
+ test -f $$i.log && test -r $$i.log \
+ || { echo "$$errmsg $$i.log" >&2; st=1; }; \
+ done; \
+ test $$st -eq 0 || exit 1; \
+ fi
+ @$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \
+ ws='[ ]'; \
+ results=`for b in $$bases; do echo $$b.trs; done`; \
+ test -n "$$results" || results=/dev/null; \
+ all=` grep "^$$ws*:test-result:" $$results | wc -l`; \
+ pass=` grep "^$$ws*:test-result:$$ws*PASS" $$results | wc -l`; \
+ fail=` grep "^$$ws*:test-result:$$ws*FAIL" $$results | wc -l`; \
+ skip=` grep "^$$ws*:test-result:$$ws*SKIP" $$results | wc -l`; \
+ xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \
+ xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \
+ error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \
+ if test `expr $$fail + $$xpass + $$error` -eq 0; then \
+ success=true; \
+ else \
+ success=false; \
+ fi; \
+ br='==================='; br=$$br$$br$$br$$br; \
+ result_count () \
+ { \
+ if test x"$$1" = x"--maybe-color"; then \
+ maybe_colorize=yes; \
+ elif test x"$$1" = x"--no-color"; then \
+ maybe_colorize=no; \
+ else \
+ echo "$@: invalid 'result_count' usage" >&2; exit 4; \
+ fi; \
+ shift; \
+ desc=$$1 count=$$2; \
+ if test $$maybe_colorize = yes && test $$count -gt 0; then \
+ color_start=$$3 color_end=$$std; \
+ else \
+ color_start= color_end=; \
+ fi; \
+ echo "$${color_start}# $$desc $$count$${color_end}"; \
+ }; \
+ create_testsuite_report () \
+ { \
+ result_count $$1 "TOTAL:" $$all "$$brg"; \
+ result_count $$1 "PASS: " $$pass "$$grn"; \
+ result_count $$1 "SKIP: " $$skip "$$blu"; \
+ result_count $$1 "XFAIL:" $$xfail "$$lgn"; \
+ result_count $$1 "FAIL: " $$fail "$$red"; \
+ result_count $$1 "XPASS:" $$xpass "$$red"; \
+ result_count $$1 "ERROR:" $$error "$$mgn"; \
+ }; \
+ { \
+ echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" | \
+ $(am__rst_title); \
+ create_testsuite_report --no-color; \
+ echo; \
+ echo ".. contents:: :depth: 2"; \
+ echo; \
+ for b in $$bases; do echo $$b; done \
+ | $(am__create_global_log); \
+ } >$(TEST_SUITE_LOG).tmp || exit 1; \
+ mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG); \
+ if $$success; then \
+ col="$$grn"; \
+ else \
+ col="$$red"; \
+ test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG); \
+ fi; \
+ echo "$${col}$$br$${std}"; \
+ echo "$${col}Testsuite summary for $(PACKAGE_STRING)$${std}"; \
+ echo "$${col}$$br$${std}"; \
+ create_testsuite_report --maybe-color; \
+ echo "$$col$$br$$std"; \
+ if $$success; then :; else \
+ echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}"; \
+ if test -n "$(PACKAGE_BUGREPORT)"; then \
+ echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}"; \
+ fi; \
+ echo "$$col$$br$$std"; \
+ fi; \
+ $$success || exit 1
+
+check-TESTS:
+ @list='$(RECHECK_LOGS)'; test -z "$$list" || rm -f $$list
+ @list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list
+ @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
+ @set +e; $(am__set_TESTS_bases); \
+ log_list=`for i in $$bases; do echo $$i.log; done`; \
+ trs_list=`for i in $$bases; do echo $$i.trs; done`; \
+ log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \
+ $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \
+ exit $$?;
+recheck: all
+ @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
+ @set +e; $(am__set_TESTS_bases); \
+ bases=`for i in $$bases; do echo $$i; done \
+ | $(am__list_recheck_tests)` || exit 1; \
+ log_list=`for i in $$bases; do echo $$i.log; done`; \
+ log_list=`echo $$log_list`; \
+ $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \
+ am__force_recheck=am--force-recheck \
+ TEST_LOGS="$$log_list"; \
+ exit $$?
+grayscale_to_rgb.log: grayscale_to_rgb$(EXEEXT)
+ @p='grayscale_to_rgb$(EXEEXT)'; \
+ b='grayscale_to_rgb'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+rgb_to_bgr.log: rgb_to_bgr$(EXEEXT)
+ @p='rgb_to_bgr$(EXEEXT)'; \
+ b='rgb_to_bgr'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+rgb_to_ycbcr.log: rgb_to_ycbcr$(EXEEXT)
+ @p='rgb_to_ycbcr$(EXEEXT)'; \
+ b='rgb_to_ycbcr'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+srgb_to_lab_u8.log: srgb_to_lab_u8$(EXEEXT)
+ @p='srgb_to_lab_u8$(EXEEXT)'; \
+ b='srgb_to_lab_u8'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+sanity.log: sanity$(EXEEXT)
+ @p='sanity$(EXEEXT)'; \
+ b='sanity'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+babl_class_name.log: babl_class_name$(EXEEXT)
+ @p='babl_class_name$(EXEEXT)'; \
+ b='babl_class_name'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+extract.log: extract$(EXEEXT)
+ @p='extract$(EXEEXT)'; \
+ b='extract'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+floatclamp.log: floatclamp$(EXEEXT)
+ @p='floatclamp$(EXEEXT)'; \
+ b='floatclamp'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+float-to-8bit.log: float-to-8bit$(EXEEXT)
+ @p='float-to-8bit$(EXEEXT)'; \
+ b='float-to-8bit'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+hsl.log: hsl$(EXEEXT)
+ @p='hsl$(EXEEXT)'; \
+ b='hsl'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+hsva.log: hsva$(EXEEXT)
+ @p='hsva$(EXEEXT)'; \
+ b='hsva'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+types.log: types$(EXEEXT)
+ @p='types$(EXEEXT)'; \
+ b='types'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+palette.log: palette$(EXEEXT)
+ @p='palette$(EXEEXT)'; \
+ b='palette'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+nop.log: nop$(EXEEXT)
+ @p='nop$(EXEEXT)'; \
+ b='nop'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+n_components.log: n_components$(EXEEXT)
+ @p='n_components$(EXEEXT)'; \
+ b='n_components'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+n_components_cast.log: n_components_cast$(EXEEXT)
+ @p='n_components_cast$(EXEEXT)'; \
+ b='n_components_cast'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+models.log: models$(EXEEXT)
+ @p='models$(EXEEXT)'; \
+ b='models'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+cairo-RGB24.log: cairo-RGB24$(EXEEXT)
+ @p='cairo-RGB24$(EXEEXT)'; \
+ b='cairo-RGB24'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+concurrency-stress-test.log: concurrency-stress-test$(EXEEXT)
+ @p='concurrency-stress-test$(EXEEXT)'; \
+ b='concurrency-stress-test'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+.test.log:
+ @p='$<'; \
+ $(am__set_b); \
+ $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+@am__EXEEXT_TRUE@.test$(EXEEXT).log:
+@am__EXEEXT_TRUE@ @p='$<'; \
+@am__EXEEXT_TRUE@ $(am__set_b); \
+@am__EXEEXT_TRUE@ $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \
+@am__EXEEXT_TRUE@ --log-file $$b.log --trs-file $$b.trs \
+@am__EXEEXT_TRUE@ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \
+@am__EXEEXT_TRUE@ "$$tst" $(AM_TESTS_FD_REDIRECT)
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+ $(MAKE) $(AM_MAKEFLAGS) check-TESTS
+check: check-am
+all-am: Makefile $(PROGRAMS)
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
+mostlyclean-generic:
+ -test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS)
+ -test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs)
+ -test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool clean-noinstPROGRAMS \
+ mostlyclean-am
+
+distclean: distclean-am
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+ distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+ mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: check-am install-am install-strip
+
+.PHONY: CTAGS GTAGS TAGS all all-am check check-TESTS check-am clean \
+ clean-generic clean-libtool clean-noinstPROGRAMS cscopelist-am \
+ ctags ctags-am distclean distclean-compile distclean-generic \
+ distclean-libtool distclean-tags distdir dvi dvi-am html \
+ html-am info info-am install install-am install-data \
+ install-data-am install-dvi install-dvi-am install-exec \
+ install-exec-am install-html install-html-am install-info \
+ install-info-am install-man install-pdf install-pdf-am \
+ install-ps install-ps-am install-strip installcheck \
+ installcheck-am installdirs maintainer-clean \
+ maintainer-clean-generic mostlyclean mostlyclean-compile \
+ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+ recheck tags tags-am uninstall uninstall-am
+
+.PRECIOUS: Makefile
+
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
--- /dev/null
+/* babl - dynamically extendable universal pixel conversion library.
+ * Copyright (C) 2005, Øyvind Kolås.
+ *
+ * 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 3 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, see
+ * <http://www.gnu.org/licenses/>.
+ *
+ */
+
+#include "config.h"
+#include "babl-internal.h" /* needed for babl_log */
+
+static void model_html (Babl *babl);
+static void type_html (Babl *babl);
+static void format_html (Babl *babl);
+static void conversion_html (Babl *babl);
+
+static int each_item (Babl *babl,
+ void *user_data);
+static int show_item (Babl *babl,
+ void *user_data);
+static int hide_item (Babl *babl,
+ void *user_data);
+
+
+int
+main (void)
+{
+ babl_init ();
+
+ printf ("<br/><a href='javascript:");
+ printf ("show(\"x_types\");show(\"x_models\");show(\"x_formats\");show(\"x_conversions\");");
+ babl_type_class_for_each (show_item, NULL);
+ babl_model_class_for_each (show_item, NULL);
+ babl_format_class_for_each (show_item, NULL);
+/* babl_conversion_each (show_item, NULL);*/
+ printf ("'>+</a>");
+
+ printf ("<a href='javascript:");
+ printf ("hide(\"x_types\");hide(\"x_models\");hide(\"x_formats\");hide(\"x_conversions\");");
+ babl_type_class_for_each (hide_item, NULL);
+ babl_model_class_for_each (hide_item, NULL);
+ babl_format_class_for_each (hide_item, NULL);
+ /*babl_conversion_each (hide_item, NULL);*/
+ printf ("'>-</a>");
+
+ printf ("<div class='expander'>");
+ printf ("<div class='expander_title'><a style='font-size:110%%' name='Data-types' href='javascript:toggle_visible(\"x_types\")'>Data types</a></div><div class='expander_content' id='x_types'>\n");
+ babl_type_class_for_each (each_item, NULL);
+ printf ("</div>\n");
+ printf ("</div>\n");
+
+ printf ("<div class='expander'>");
+ printf ("<div class='expander_title'><a style='font-size:110%%' name='Color-models' href='javascript:toggle_visible(\"x_models\")'>Color models</a></div><div class='expander_content' id='x_models'>\n");
+ babl_model_class_for_each (each_item, NULL);
+ printf ("</div>\n");
+ printf ("</div>\n");
+
+
+ printf ("<div class='expander'>");
+ printf ("<div class='expander_title'><a style='font-size:110%%' name='Pixel-formats' href='javascript:toggle_visible(\"x_formats\")'>Pixel formats</a></div><div class='expander_content' id='x_formats'>\n");
+ babl_format_class_for_each (each_item, NULL);
+ printf ("</div>\n");
+ printf ("</div>\n");
+
+/*
+ printf ("<div class='expander'>");
+ printf ("<div class='expander_title'><a style='font-size:110%%' name='Conversions' href='javascript:toggle_visible(\"x_conversions\")'>Conversions</a></div><div class='expander_content' id='x_conversions'>\n");
+ babl_conversion_each (each_item, NULL);
+ printf ("</div>\n");
+ printf ("</div>\n");
+ */
+ babl_exit ();
+
+ return 0;
+}
+
+
+static char normalized_buf[512];
+
+static const char *normalize (const char *str)
+{
+ char *s = normalized_buf;
+
+ strcpy (normalized_buf, str);
+
+ while (*s)
+ {
+ if ((*s >= 'a' && *s <= 'z') ||
+ (*s >= 'A' && *s <= 'Z') ||
+ (*s >= '0' && *s <= '9'))
+ {
+ }
+ else
+ {
+ *s = '_';
+ }
+ s++;
+ }
+ return normalized_buf;
+}
+
+
+static int
+show_item (Babl *babl,
+ void *user_data)
+{
+ printf ("show(\"x_%s\");", normalize (babl->instance.name));
+ return 0;
+}
+
+
+static int
+hide_item (Babl *babl,
+ void *user_data)
+{
+ printf ("hide(\"x_%s\");", normalize (babl->instance.name));
+ return 0;
+}
+
+static int
+each_item (Babl *babl,
+ void *user_data)
+{
+ printf ("<div class='expander'>");
+ printf ("<div class='expander_title'><a href='javascript:toggle_visible(\"x_%s\")'>%s</a></div>\n",
+ normalize (babl->instance.name), babl->instance.name);
+ printf ("<div class='expander_content' id='x_%s'>\n",
+ normalize (babl->instance.name));
+
+
+ switch (babl->class_type)
+ {
+ case BABL_TYPE:
+ type_html (babl);
+ break;
+
+ case BABL_MODEL:
+ model_html (babl);
+ break;
+
+ case BABL_FORMAT:
+ format_html (babl);
+ break;
+
+ case BABL_CONVERSION:
+ case BABL_CONVERSION_LINEAR:
+ case BABL_CONVERSION_PLANE:
+ case BABL_CONVERSION_PLANAR:
+ conversion_html (babl);
+ break;
+
+ default:
+ break;
+ }
+
+ printf ("</div>\n");
+ printf ("</div>\n");
+ return 0;
+}
+
+static void
+model_html (Babl *babl)
+{
+ int i;
+
+ printf ("<dl>");
+ printf ("<dt>components</dt><dd><table class='nopad'>");
+
+ for (i = 0; i < babl->model.components; i++)
+ {
+ printf ("<tr><td class='type'>%s</td></tr>",
+ BABL (babl->model.component[i])->instance.name);
+ }
+ printf ("</table></dd></dl>");
+}
+
+static void
+type_html (Babl *babl)
+{
+ printf ("<dl><dt>bits</dt><dd>%i</dd>", babl->type.bits);
+ printf ("<dt>bytes</dt><dd>%i</dd></dl>", babl->type.bits / 8);
+}
+
+
+static void
+conversion_html (Babl *babl)
+{
+ printf ("\n");
+}
+
+static void
+format_html (Babl *babl)
+{
+ int i;
+
+ printf ("<dl>");
+ printf ("<dt>bytes/pixel</dt><dd>%i</dd>", babl->format.bytes_per_pixel);
+ printf ("<dt>model</dt><dd>%s</dd>", BABL (babl->format.model)->instance.name);
+ printf ("<dt>components</dt><dd><table class='nopad'>");
+
+ for (i = 0; i < babl->format.components; i++)
+ {
+ printf ("<tr><td class='type'>%s</td><td class='component'>%s</td></tr>",
+ BABL (babl->format.type[i])->instance.name,
+ BABL (babl->format.component[i])->instance.name);
+ }
+ printf ("</table></dd></dl>");
+}
+
--- /dev/null
+/* babl - dynamically extendable universal pixel conversion library.
+ * Copyright (C) 2005, Øyvind Kolås.
+ *
+ * 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 3 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, see
+ * <http://www.gnu.org/licenses/>.
+ */
+
+#include "config.h"
+#include <string.h>
+#include <stdio.h>
+#include "babl-internal.h"
+
+struct
+{
+ long klass; const char *name;
+} reference[] = {
+ { BABL_INSTANCE, "BablInstance" },
+ { BABL_TYPE, "BablType" },
+ { BABL_TYPE_INTEGER, "BablTypeInteger" },
+ { BABL_TYPE_FLOAT, "BablTypeFloat" },
+ { BABL_SAMPLING, "BablSampling" },
+ { BABL_COMPONENT, "BablComponent" },
+ { BABL_MODEL, "BablModel" },
+ { BABL_FORMAT, "BablFormat" },
+ { BABL_CONVERSION, "BablConversion" },
+ { BABL_CONVERSION_LINEAR, "BablConversionLinear" },
+ { BABL_CONVERSION_PLANE, "BablConversionPlane" },
+ { BABL_CONVERSION_PLANAR, "BablConversionPlanar" },
+ { BABL_FISH, "BablFish" },
+ { BABL_FISH_REFERENCE, "BablFishReference" },
+ { BABL_IMAGE, "BablImage" },
+ { BABL_SKY, "BablSky" },
+ { 0, NULL }
+};
+
+static int
+test (void)
+{
+ int i = 0;
+ int OK = 1;
+
+ while (reference[i].klass)
+ {
+ if (strcmp (reference[i].name, babl_class_name (reference[i].klass)))
+ {
+ OK = 0;
+ babl_log ("'%s'!='%s'\n", reference[i].name, babl_class_name (reference[i].klass));
+ }
+ i++;
+ }
+ return !OK;
+}
+
+int
+main (int argc,
+ char **argv)
+{
+ babl_init ();
+ if (test ())
+ return -1;
+ babl_exit ();
+ return 0;
+}
--- /dev/null
+#include "config.h"
+#include <stdlib.h>
+#include "babl-internal.h"
+
+int main (void)
+{
+ babl_init ();
+
+ babl_set_extender (babl_extension_quiet_log ());
+ babl_fish_stats (stdout);
+
+ babl_exit ();
+
+ return 0;
+}
--- /dev/null
+/* perform a symmetricality of conversion test on a set of randomized
+ * RGBA data */
+
+#include "config.h"
+#include <stdlib.h>
+#include <math.h>
+#include "babl-internal.h"
+
+#ifndef HAVE_SRANDOM
+#define srandom srand
+#define random rand
+#endif
+
+#define pixels 1024
+int total_length = 0;
+int total_cost = 0;
+int total = 0;
+int ok = 0;
+
+static double test[pixels * 4];
+
+static void
+test_init (void)
+{
+ int i;
+
+ for (i = 0; i < pixels * 4; i++)
+ test [i] = (double) random () / RAND_MAX;
+}
+
+static int qux = 0;
+
+static char *utf8_bar[] = { " ", "·", "▁", "▂", "▃", "▄", "▅", "▆", "▇", "█" };
+/*
+static char *utf8_bar[]= {"!","▁","▃","▅","▇","█","!","!","!"};
+static char *utf8_bar[]={"·", "█", "▇", "▆", "▅", "▄", "▃", "▂", "▁", };
+static char *utf8_bar[]={" ","1","2","3","4","5","6","7","8"};
+*/
+
+static int destination_each (Babl *babl,
+ void *userdata)
+{
+ Babl *source = userdata;
+ Babl *destination = babl;
+
+ qux++;
+ if (qux % babl_formats_count () == qux / babl_formats_count ())
+ printf (" ");
+ else
+ {
+ Babl *temp = babl_fish_path (source, destination);
+
+ if (temp)
+ {
+ printf ("%s", utf8_bar[babl_list_size (temp->fish_path.conversion_list)]);
+ total_length += babl_list_size (temp->fish_path.conversion_list);
+ total_cost += temp->fish_path.cost;
+ ok++;
+ total++;
+ }
+ else
+ {
+ printf (" ");
+ total++;
+ }
+ }
+ return 0;
+}
+
+static int source_no = 0;
+
+static int source_each (Babl *babl,
+ void *userdata)
+{
+ babl_format_class_for_each (destination_each, babl);
+ printf ("──%2i %s\n", source_no++, babl->instance.name);
+ return 0;
+}
+
+int main (void)
+{
+ babl_init ();
+ test_init ();
+
+ babl_set_extender (babl_extension_quiet_log ());
+ babl_format_class_for_each (source_each, NULL);
+ {
+ int i;
+
+ for (i = 0; i < babl_formats_count (); i++) printf ("|");printf ("\n");
+ for (i = 0; i < babl_formats_count (); i++) if (i / 100 == 0) printf ("|");else printf ("%i", (i / 100) % 10);printf ("\n");
+ for (i = 0; i < babl_formats_count (); i++) if (i / 10 == 0) printf ("|");else printf ("%i", (i / 10) % 10);printf ("\n");
+ /* for (i=0;i<babl_formats_count ();i++) printf ("│"); printf ("\n");
+ for (i=0;i<babl_formats_count ();i++) if (i/10==0) printf("│"); else printf ("%i", (i/10)%10); printf ("\n");*/
+ for (i = 0; i < babl_formats_count (); i++) printf ("%i", (i) % 10);printf ("\n");
+ }
+ printf ("total length: %i\n", total_length);
+ printf ("total cost : %i\n", total_cost);
+ /*printf ("ok / total : %i %i %f\n", ok, total, (1.0*ok) / total);
+ */
+
+ babl_exit ();
+
+ return 0;
+}
--- /dev/null
+/* babl - dynamically extendable universal pixel conversion library.
+ * Copyright (C) 2005, Øyvind Kolås.
+ *
+ * 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 3 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, see
+ * <http://www.gnu.org/licenses/>.
+ */
+
+#include "config.h"
+#include <stdio.h>
+#include <stdlib.h>
+#include "babl.h"
+
+static int
+cairo24_rgb_cairo24 (void)
+{
+ int OK = 1, i;
+
+ for (i = 0; i < 256; ++i)
+ {
+ /* Valgrind complains if 'tmp' is not initialized
+ * and the brittle RTTI (BABL_IS_BABL) produces a
+ * crash if it contains { 0x00, 0xb1, 0xba, 0x00 }
+ */
+ unsigned char tmp[4] = { 0, /*0xb1, 0xba, 0x00*/ };
+ /* Valgrind complains if 'output' is not initialized
+ * and the brittle RTTI (BABL_IS_BABL) produces a
+ * crash if it contains 0xbab100
+ */
+ unsigned int output = ~ 0xbab100;
+ unsigned int input = (i * 256 + i) * 256 + i;
+
+ babl_process (babl_fish ("cairo-RGB24", "R'G'B' u8"), &input, &tmp[0], 1);
+ babl_process (babl_fish ("R'G'B' u8", "cairo-RGB24"), &tmp[0], &output, 1);
+
+ if ((input & 0x00ffffff) != (output & 0x00ffffff))
+ {
+ fprintf (stderr , "%08x -> %d %d %d -> %08x\n",
+ input, tmp[0], tmp[1], tmp[2], output);
+ OK = 0;
+ }
+ }
+
+ return OK;
+}
+
+static int
+rgb_cairo24_rgb (void)
+{
+ int OK = 1, i;
+
+ for (i = 0; i < 256; ++i)
+ {
+ /* As above */
+ unsigned int tmp = ~ 0xbab100;
+ unsigned char output[4] = { 0x00, /*0xb1, 0xba, 0x00*/ };
+ unsigned char input[4] = { i, i, i, 17 };
+
+ babl_process (babl_fish ("R'G'B' u8", "cairo-RGB24"), input, &tmp, 1);
+ babl_process (babl_fish ("cairo-RGB24", "R'G'B' u8"), &tmp, output, 1);
+
+ if (input[0] != output[0] || input[1] != output[1] || input[2] != output[2])
+ {
+ fprintf (stderr , "%d %d %d -> %08x -> %d %d %d\n",
+ input[0], input[1], input[2], tmp, output[0], output[1], output[2]);
+ OK = 0;
+ }
+ }
+
+ return OK;
+}
+
+int
+main (void)
+{
+ int OK;
+
+ babl_init ();
+
+ OK = cairo24_rgb_cairo24 () && rgb_cairo24_rgb ();
+
+ babl_exit ();
+
+ return !OK;
+}
--- /dev/null
+
+#include "babl/babl-introspect.h"
+
+#define CHECK_CONV(test_name, componenttype, src_fmt, dst_fmt, src_pix, expected_pix) \
+ { \
+ const Babl *fish; \
+ int i; \
+ fish = babl_fish (src_fmt, dst_fmt); \
+ if (!fish) \
+ { \
+ printf (" %s failed to make fish\n", test_name); \
+ OK = 0; \
+ } \
+ for (i = 0; i < sizeof(src_pix)/sizeof(src_pix[0]); i ++) \
+ { \
+ int c;\
+ componenttype result[10]; \
+ babl_process (fish, src_pix[i], result, 1); \
+ for (c = 0; c < sizeof(expected_pix[i])/sizeof(expected_pix[i][0]); c++) \
+ if (result[c] != expected_pix[i][c]) \
+ { \
+ printf (" %s failed #%i[%i] got %i expected %i\n", test_name, i, c, result[c], expected_pix[i][c]); \
+ OK = 0; \
+ babl_introspect((Babl *)fish); \
+ } \
+ } \
+ }
--- /dev/null
+/* babl - dynamically extendable universal pixel conversion library.
+ * Copyright (C) 2009 Martin Nordholts
+ *
+ * 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 3 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, see
+ * <http://www.gnu.org/licenses/>.
+ */
+
+
+#include "config.h"
+
+#include <math.h>
+#include <pthread.h>
+
+#include "babl.h"
+
+
+#define N_THREADS 10
+#define N_ITERATIONS_PER_THREAD 100
+
+
+static void *
+babl_fish_path_stress_test_thread_func (void *not_used)
+{
+ int i;
+
+ for (i = 0; i < N_ITERATIONS_PER_THREAD; i++)
+ {
+ /* Try to get a fish with an as complex conversion path as
+ * possible
+ */
+ const Babl *fish = babl_fish ("R'G'B'A u16", "YA double");
+
+ /* Just do something random with the fish */
+ babl_get_name (fish);
+ }
+
+ return NULL;
+}
+
+int
+main (int argc,
+ char **argv)
+{
+ pthread_t threads[N_THREADS];
+ int i;
+
+ babl_init ();
+
+ /* Run a few threads at the same time */
+ for (i = 0; i < N_THREADS; i++)
+ {
+ pthread_create (&threads[i],
+ NULL, /* attr */
+ babl_fish_path_stress_test_thread_func,
+ NULL /* arg */);
+ }
+
+ /* Wait for them all to finish */
+ for (i = 0; i < N_THREADS; i++)
+ {
+ pthread_join (threads[i],
+ NULL /* thread_return */);
+ }
+
+ babl_exit ();
+
+ /* If we didn't crash we assume we're OK. We might want to add more
+ * asserts in the test later
+ */
+ return 0;
+}
--- /dev/null
+/* perform a symmetricality of conversion test on a set of randomized
+ * RGBA data */
+
+#include "config.h"
+#include <stdlib.h>
+#include <math.h>
+#include "babl-internal.h"
+
+#define ERROR_TOLERANCE 0.5
+
+static int OK = 1;
+
+static int
+each_conversion (Babl *babl,
+ void *userdata)
+{
+ double error = babl->conversion.error;
+
+ if (error >= ERROR_TOLERANCE)
+ {
+ babl_log ("%s\terror:%f", babl->instance.name, error);
+ OK = 0;
+ }
+ return 0;
+}
+
+int main (void)
+{
+ babl_init ();
+
+ babl_set_extender (babl_extension_quiet_log ());
+ babl_conversion_class_for_each (each_conversion, NULL);
+
+ babl_exit ();
+
+ return !OK;
+}
--- /dev/null
+/* babl - dynamically extendable universal pixel conversion library.
+ * Copyright (C) 2005, Øyvind Kolås.
+ *
+ * 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 3 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, see
+ * <http://www.gnu.org/licenses/>.
+ */
+
+#include "config.h"
+#include <stdlib.h>
+#include <stdio.h>
+#include <assert.h>
+#include "babl.h"
+#include "common.inc"
+
+int
+main (int argc,
+ char **argv)
+{
+ int OK = 1;
+ babl_init ();
+ {
+ unsigned char in[][4] = {{0,1,2,3 },{4,5,6,7 },{8,9,10,11 }};
+ unsigned char out[][1] = { {2 }, {6} , {10} };
+
+ CHECK_CONV("extract B'", unsigned char,
+ babl_format("R'G'B'A u8"),
+ babl_format_new ("name", "B' u8",
+ babl_model ("R'G'B'A"),
+ babl_type ("u8"),
+ babl_component ("B'"),
+ NULL),
+ in, out);
+ }
+
+ babl_exit ();
+ return !OK;
+}
--- /dev/null
+/* babl - dynamically extendable universal pixel conversion library.
+ * Copyright (C) 2005, Øyvind Kolås.
+ *
+ * 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 3 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, see
+ * <http://www.gnu.org/licenses/>.
+ */
+
+#include "config.h"
+#include <stdlib.h>
+#include <stdio.h>
+#include <assert.h>
+#include "babl.h"
+
+#include "common.inc"
+
+
+int
+main (int argc,
+ char **argv)
+{
+ int OK = 1;
+
+ babl_init ();
+
+ //for (i = 0; i < 400000; i++)
+ {
+ {
+ float in[][4] = {{ 0.21582, -0.55, -0.14, 1.0 }, {0.2, 0.3, 0.5, 0.6}, {0.0, 1.0, 2.0, 3.0}};
+ unsigned char out[][4] = {{ 55, 0, 0, 255 }, {51,77,128,153}, {0,255,255,255}};
+
+ CHECK_CONV("float -> u8 1", unsigned char,
+ babl_format("R'G'B'A float"),
+ babl_format("R'G'B'A u8"),
+ in, out);
+ }
+
+ {
+ float in[][4] = {{ 0.21582, -0.55, -0.14, 1.0 }, {0.2, 0.3, 0.5, 0.6}, {0.0, 1.0, 2.0, 3.0}};
+ unsigned char out[][4] = {{ 10, 0, 0, 255 }, {8,19,55,153}, {0,255,255,255}};
+
+ CHECK_CONV("float -> u8 2", unsigned char,
+ babl_format("R'G'B'A float"),
+ babl_format("RGBA u8"),
+ in, out);
+ }
+
+ {
+ float in[][4] = {{ 0.21582, -0.55, -0.14, 1.0 }, {0.2, 0.3, 0.5, 0.6}, {0.0, 1.0, 2.0, 3.0}};
+ unsigned char out[][4] = {{ 55, 0, 0, 255 }, {51,77,128,153}, {0,255,255,255}};
+
+ CHECK_CONV("float -> u8 3", unsigned char,
+ babl_format("RGBA float"),
+ babl_format("RGBA u8"),
+ in, out);
+ }
+
+ {
+ float in[][4] = {{ 0.21582, -0.55, -0.14, 1.0 }, {0.2, 0.3, 0.5, 0.6}, {0.0, 1.0, 2.0, 3.0}};
+ unsigned char out[][3] = {{128, 0, 0}, {124,149,188}, {0,255,255}};
+
+ CHECK_CONV("float -> u8 4", unsigned char,
+ babl_format("RGBA float"),
+ babl_format("R'G'B' u8"),
+ in, out);
+ }
+
+ {
+ float in[][4] = {{ 0.21582, -0.55, -0.14, 1.0 }, {0.2, 0.3, 0.5, 0.6}, {0.0, 1.0, 2.0, 3.0}};
+ unsigned char out[][4] = {{128, 0, 0, 255 }, {156,188,235,153}, {0,156,213,255}};
+
+ CHECK_CONV("float -> u8 5", unsigned char,
+ babl_format("RaGaBaA float"),
+ babl_format("R'G'B'A u8"),
+ in, out);
+ }
+
+ {
+ /* (0.5 / 0.6) * 255 = 212.5, I'm not going to worry about rounding that close... */
+ float in[][4] = {{ 0.21582, -0.55, -0.14, 1.0 }, {0.2, 0.301, 0.49998, 0.6}, {0.0, 3.0, 6.0, 3.0}};
+ unsigned char out[][4] = {{55, 0, 0, 255 }, {85,128,212,153}, {0,255,255,255}};
+
+ CHECK_CONV("float -> u8 6", unsigned char,
+ babl_format("R'aG'aB'aA float"),
+ babl_format("R'G'B'A u8"),
+ in, out);
+ }
+ }
+
+ babl_exit ();
+ return !OK;
+}
--- /dev/null
+/* babl - dynamically extendable universal pixel conversion library.
+ * Copyright (C) 2005, Øyvind Kolås.
+ *
+ * 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 3 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, see
+ * <http://www.gnu.org/licenses/>.
+ */
+
+#include "config.h"
+#include <stdlib.h>
+#include <stdio.h>
+#include <assert.h>
+#include "babl.h"
+
+#include "common.inc"
+
+
+int
+main (int argc,
+ char **argv)
+{
+ int OK = 1;
+ babl_init ();
+ {
+ float in[][4] = {{ 0.21582, -0.55, -0.14, 1.0 }, {0.0, 1.0, 2.0, 3.0}};
+ unsigned char out[][4] = {{ 55, 0, 0, 255 }, {0,255,255,255}};
+
+ CHECK_CONV("float -> u8", unsigned char,
+ babl_format("R'G'B'A float"),
+ babl_format("R'G'B'A u8"),
+ in, out);
+ }
+
+ babl_exit ();
+ return !OK;
+}
--- /dev/null
+/* perform a symmetricality of conversion test on a set of randomized
+ * RGBA data */
+
+#include "config.h"
+#include <stdlib.h>
+#include <math.h>
+#include "babl-internal.h"
+
+
+static int format_check (Babl *babl,
+ void *userdata)
+{
+ babl_log ("%s\tloss: %f", babl->instance.name, babl->format.loss);
+ return 0;
+}
+
+int main (void)
+{
+ babl_init ();
+
+ babl_set_extender (babl_extension_quiet_log ());
+ babl_format_class_for_each (format_check, (void *) 1);
+
+ babl_exit ();
+
+ return 0;
+}
--- /dev/null
+/* babl - dynamically extendable universal pixel conversion library.
+ * Copyright (C) 2005, Øyvind Kolås.
+ *
+ * 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 3 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, see
+ * <http://www.gnu.org/licenses/>.
+ */
+
+#include "config.h"
+#include "babl-internal.h"
+
+#define PIXELS 5
+
+float grayscale_buf [PIXELS] = { -0.1, 0.0, 0.4, 1.0, 2.0 };
+
+float rgb_buf_ref [PIXELS * 3] =
+{ -0.1, -0.1, -0.1, 0.0, 0.0, 0.0, 0.4, 0.4, 0.4, 1.0, 1.0, 1.0, 2.0, 2.0, 2.0 };
+
+float rgb_buf [PIXELS * 3];
+
+static int
+test (void)
+{
+ const Babl *fish;
+ int i;
+ int OK = 1;
+
+
+ fish = babl_fish (
+ babl_format_new (
+ babl_model ("Y"),
+ babl_type ("float"),
+ babl_component ("Y"),
+ NULL
+ ),
+ babl_format_new (
+ babl_model ("RGB"),
+ babl_type ("float"),
+ babl_component ("R"),
+ babl_component ("G"),
+ babl_component ("B"),
+ NULL
+ )
+ );
+
+ babl_process (fish,
+ grayscale_buf, rgb_buf,
+ PIXELS);
+
+ for (i = 0; i < PIXELS * 3; i++)
+ {
+ if (rgb_buf[i] != rgb_buf_ref[i])
+ {
+ babl_log ("index %i is problematic : %f instead of %f",
+ i, rgb_buf[i], rgb_buf_ref[i]);
+ OK = 0;
+ }
+ }
+ if (!OK)
+ return -1;
+ return 0;
+}
+
+int
+main (int argc,
+ char **argv)
+{
+ babl_init ();
+ if (test ())
+ return -1;
+ babl_exit ();
+ return 0;
+}
+
+
+
--- /dev/null
+/* babl - dynamically extendable universal pixel conversion library.
+ *
+ * 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 3 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, see
+ * <http://www.gnu.org/licenses/>.
+ */
+
+#include <math.h>
+#include <stdio.h>
+
+#include "config.h"
+#include "babl.h"
+
+#define CHECK_CONV(test_name, componenttype, src_fmt, dst_fmt, src_pix, expected_pix) \
+ { \
+ const Babl *fish; \
+ int i; \
+ fish = babl_fish (src_fmt, dst_fmt); \
+ if (!fish) \
+ { \
+ printf (" %s failed to make fish\n", test_name); \
+ OK = 0; \
+ } \
+ for (i = 0; i < sizeof(src_pix)/sizeof(src_pix[0]); i ++) \
+ { \
+ int c; \
+ componenttype result[10]; \
+ babl_process (fish, src_pix[i], result, 1); \
+ for (c = 0; c < sizeof(expected_pix[i])/sizeof(expected_pix[i][0]); c++) \
+ if (fabs(result[c] - expected_pix[i][c]) > 0.001) \
+ { \
+ printf (" %s failed #%i[%i] got %lf expected %lf\n", \
+ test_name, i, c, result[c], expected_pix[i][c]); \
+ OK = 0; \
+ } \
+ } \
+ }
+
+
+int
+main (int argc,
+ char **argv)
+{
+ int OK = 1;
+
+ float rgba[][4] = {{1.0 , 1.0 , 1.0 , 1.0},
+ {0.214041, 0.214041, 0.214041, 1.0},
+ {0.0 , 0.0 , 0.0 , 1.0},
+ {1.0 , 0.0 , 0.0 , 1.0},
+ {0.522519, 0.522519, 0.0 , 1.0},
+ {0.0 , 0.214041, 0.0 , 1.0},
+ {0.214041, 1.0 , 1.0 , 1.0},
+ {0.214041, 0.214041, 1.0 , 1.0},
+ {0.522520, 0.050876, 0.522521, 1.0},
+ {0.353069, 0.372000, 0.017878, 1.0},
+ {0.052772, 0.010679, 0.823194, 1.0},
+ {0.012693, 0.414530, 0.052934, 1.0},
+ {0.870621, 0.579515, 0.004228, 1.0},
+ {0.453672, 0.029212, 0.781390, 1.0},
+ {0.850554, 0.181933, 0.081839, 1.0},
+ {0.995195, 0.941644, 0.244979, 1.0},
+ {0.009836, 0.595745, 0.308242, 1.0},
+ {0.036595, 0.019338, 0.315257, 1.0},
+ {0.209470, 0.207646, 0.478434, 1.0}};
+
+ float hsla[][4] = {{0.0, 0.0 , 1.0 , 1.0},
+ {0.0, 0.0 , 0.500, 1.0},
+ {0.0, 0.0 , 0.0 , 1.0},
+ {0.0, 1.0 , 0.500, 1.0},
+ {0.166667, 1.0 , 0.375, 1.0},
+ {0.333333, 1.0 , 0.250, 1.0},
+ {0.5, 1.0 , 0.750, 1.0},
+ {0.666666, 1.0 , 0.750, 1.0},
+ {0.833333, 0.500, 0.500, 1.0},
+ {0.171666, 0.638, 0.393, 1.0},
+ {0.6975, 0.832, 0.511, 1.0},
+ {0.374722, 0.707, 0.396, 1.0},
+ {0.1375, 0.893, 0.497, 1.0},
+ {0.788028, 0.775, 0.542, 1.0},
+ {0.039837, 0.817, 0.624, 1.0},
+ {0.158083, 0.991, 0.765, 1.0},
+ {0.451149, 0.779, 0.447, 1.0},
+ {0.689732, 0.601, 0.373, 1.0},
+ {0.668129, 0.290, 0.607, 1.0}};
+
+ babl_init ();
+
+ CHECK_CONV ("rgba to hsla ", float,
+ babl_format ("RGBA float"),
+ babl_format ("HSLA float"),
+ rgba, hsla);
+
+ CHECK_CONV ("hsla to rgba ", float,
+ babl_format ("HSLA float"),
+ babl_format ("RGBA float"),
+ hsla, rgba);
+
+ babl_exit ();
+
+ return !OK;
+}
--- /dev/null
+/* babl - dynamically extendable universal pixel conversion library.
+ * Copyright (C) 2012, Maxime Nicco <maxime.nicco@gmail.fr>
+ *
+ * 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 3 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, see
+ * <http://www.gnu.org/licenses/>.
+ */
+
+ /*
+ * Adding test fo hsva colorspace
+ *
+ * The test is at 0.001 precision
+ */
+
+#include "config.h"
+#include <stdlib.h>
+#include <math.h>
+#include <stdio.h>
+#include <assert.h>
+#include "babl.h"
+
+#define CHECK_CONV(test_name, componenttype, src_fmt, dst_fmt, src_pix, expected_pix) \
+ { \
+ const Babl *fish; \
+ int i; \
+ fish = babl_fish (src_fmt, dst_fmt); \
+ if (!fish) \
+ { \
+ printf (" %s failed to make fish\n", test_name); \
+ OK = 0; \
+ } \
+ for (i = 0; i < sizeof(src_pix)/sizeof(src_pix[0]); i ++) \
+ { \
+ int c;\
+ componenttype result[10]; \
+ babl_process (fish, src_pix[i], result, 1); \
+ for (c = 0; c < sizeof(expected_pix[i])/sizeof(expected_pix[i][0]); c++) \
+ if (fabs(result[c] - expected_pix[i][c]) > 0.001) \
+ { \
+ printf (" %s failed #%i[%i] got %lf expected %lf\n", test_name, i, c, result[c], expected_pix[i][c]); \
+ OK = 0; \
+ } \
+ } \
+ }
+
+
+int
+main (int argc,
+ char **argv)
+{
+ int OK = 1;
+
+ float rgba[][4] = {{ 1.0, 1.0, 1.0, 1.0 },
+ { 0.2140, 0.2140, 0.2140, 1.0 },
+ { 0, 0, 0, 1.0 },
+ { 1, 0, 0, 1.0 },
+ { 0.5209, 0.5225, 0, 1.0 },
+ { 0, 0.2140, 0, 1.0 },
+ { 0.2140, 1, 1, 1.0 },
+ { 0.2140, 0.2140, 1, 1.0 },
+ { 0.5215, 0.0508, 0.5225, 1.0 },
+ { 0.3509, 0.3710, 0.0178, 1.0 },
+ { 0.0533, 0.0106, 0.8235, 1.0 },
+ { 0.0126, 0.4132, 0.0529, 1.0 },
+ { 0.8709, 0.5754, 0.0042, 1.0 },
+ { 0.4537, 0.0291, 0.7814, 1.0 },
+ { 0.8501, 0.1813, 0.0814, 1.0 },
+ { 0.9954, 0.9418, 0.2448, 1.0 },
+ { 0.0099, 0.5953, 0.3081, 1.0 },
+ { 0.0366, 0.0193, 0.3150, 1.0 }};
+
+ float hsva[][4] = {{ 0.0, 0.0, 1.0, 1.0 },
+ { 0.0, 0.0, 0.5, 1.0 },
+ { 0.0, 0.0, 0.0, 1.0 },
+ { 0.0, 1.0, 1.0, 1.0 },
+ { 0.167, 1.0, 0.75, 1.0 },
+ { 0.333, 1.0, 0.5, 1.0 },
+ { 0.5, 0.5, 1.0, 1.0 },
+ { 0.667, 0.5, 1.0, 1.0 },
+ { 0.833, 0.666, 0.75, 1.0 },
+ { 0.172, 0.779, 0.643, 1.0 },
+ { 0.698, 0.887, 0.918, 1.0 },
+ { 0.375, 0.828, 0.675, 1.0 },
+ { 0.137, 0.944, 0.941, 1.0 },
+ { 0.788, 0.792, 0.897, 1.0 },
+ { 0.040, 0.661, 0.931, 1.0 },
+ { 0.158, 0.467, 0.998, 1.0 },
+ { 0.451, 0.875, 0.795, 1.0 },
+ { 0.690, 0.75, 0.597, 1.0 }};
+
+ babl_init ();
+
+ CHECK_CONV ("rgba to hsva ", float,
+ babl_format ("RGBA float"),
+ babl_format ("HSVA float"),
+ rgba, hsva);
+
+ CHECK_CONV ("hsva to rgba ", float,
+ babl_format ("HSVA float"),
+ babl_format ("RGBA float"),
+ hsva, rgba);
+
+ babl_exit ();
+
+ return !OK;
+}
--- /dev/null
+/* babl - dynamically extendable universal pixel conversion library.
+ * Copyright (C) 2005, Øyvind Kolås.
+ *
+ * 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 3 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, see
+ * <http://www.gnu.org/licenses/>.
+ */
+
+#include "config.h"
+#include "babl-internal.h"
+
+int
+main (int argc,
+ char **argv)
+{
+ babl_init ();
+ babl_introspect (NULL);
+ babl_exit ();
+ return 0;
+}
--- /dev/null
+/* perform a symmetricality of conversion test on a set of randomized
+ * RGBA data */
+
+#include "config.h"
+#include <stdlib.h>
+#include <math.h>
+#include "babl-internal.h"
+
+int OK = 1;
+
+
+static int model_check (Babl *babl,
+ void *userdata)
+{
+ if (!babl_model_is_symmetric (babl))
+ {
+ babl_log ("%s is not symmetric", babl->instance.name);
+ OK = 0;
+ }
+ return 0;
+}
+
+
+int main (void)
+{
+ babl_init ();
+
+ babl_set_extender (babl_extension_quiet_log ());
+ babl_model_class_for_each (model_check, NULL);
+
+ babl_exit ();
+
+ return !OK;
+}
--- /dev/null
+/* babl - dynamically extendable universal pixel conversion library.
+ * Copyright (C) 2005, Øyvind Kolås.
+ *
+ * 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 3 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, see
+ * <http://www.gnu.org/licenses/>.
+ */
+
+
+#include "config.h"
+#include <math.h>
+#include "babl-internal.h"
+
+#define PIXELS 7
+#define COMPONENTS 2048
+#define TOLERANCE 0
+
+float source_buf [PIXELS * COMPONENTS] =
+{
+ 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6,
+ 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6,
+ 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6,
+ 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6,
+ 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6,
+ 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6,
+ 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6,
+ 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6,
+ 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6,
+ 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6,
+ 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6,
+ 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6,
+ 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6,
+ 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6,
+ 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6,
+ 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6,
+ /* the rest of the input buffer is nulls */
+};
+
+unsigned char reference_buf [PIXELS * COMPONENTS] =
+{
+ 26, 51, 77, 102, 128, 153, 26, 51, 77, 102, 128, 153,
+ 26, 51, 77, 102, 128, 153, 26, 51, 77, 102, 128, 153,
+ 26, 51, 77, 102, 128, 153, 26, 51, 77, 102, 128, 153,
+ 26, 51, 77, 102, 128, 153, 26, 51, 77, 102, 128, 153,
+ 26, 51, 77, 102, 128, 153, 26, 51, 77, 102, 128, 153,
+ 26, 51, 77, 102, 128, 153, 26, 51, 77, 102, 128, 153,
+ 26, 51, 77, 102, 128, 153, 26, 51, 77, 102, 128, 153,
+ 26, 51, 77, 102, 128, 153, 26, 51, 77, 102, 128, 153,
+ 26, 51, 77, 102, 128, 153, 26, 51, 77, 102, 128, 153,
+ 26, 51, 77, 102, 128, 153, 26, 51, 77, 102, 128, 153,
+ 26, 51, 77, 102, 128, 153, 26, 51, 77, 102, 128, 153,
+ 26, 51, 77, 102, 128, 153, 26, 51, 77, 102, 128, 153,
+ 26, 51, 77, 102, 128, 153, 26, 51, 77, 102, 128, 153,
+ 26, 51, 77, 102, 128, 153, 26, 51, 77, 102, 128, 153,
+ 26, 51, 77, 102, 128, 153, 26, 51, 77, 102, 128, 153,
+ 26, 51, 77, 102, 128, 153, 26, 51, 77, 102, 128, 153,
+ /* the rest of the reference buffer is nulls */
+};
+
+unsigned char destination_buf [PIXELS * COMPONENTS];
+
+static int
+test (void)
+{
+ int components;
+ int OK = 1;
+
+ for (components = 1; components < 2048; components ++)
+ {
+ const Babl *fish;
+ const Babl *src_fmt;
+ const Babl *dst_fmt;
+ int i;
+
+ src_fmt = babl_format_n (babl_type ("float"), components);
+ dst_fmt = babl_format_n (babl_type ("u8"), components);
+
+ fish = babl_fish (src_fmt, dst_fmt);
+
+ babl_process (fish, source_buf, destination_buf, PIXELS);
+
+ for (i = 0; i < PIXELS * components; i++)
+ {
+ if (abs (destination_buf[i] - reference_buf[i]) > TOLERANCE)
+ {
+ babl_log ("%i-components, pixel %i component %i is %i should be %i",
+ components, i / components, i % components, destination_buf[i], reference_buf[i]);
+ OK = 0;
+ }
+ }
+ }
+ if (!OK)
+ return -1;
+ return 0;
+}
+
+int
+main (int argc,
+ char **argv)
+{
+ babl_init ();
+ if (test ())
+ return -1;
+ babl_exit ();
+ return 0;
+}
--- /dev/null
+/* babl - dynamically extendable universal pixel conversion library.
+ * Copyright (C) 2005, Øyvind Kolås.
+ *
+ * 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 3 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, see
+ * <http://www.gnu.org/licenses/>.
+ */
+
+#include "config.h"
+#include <stdlib.h>
+#include <stdio.h>
+#include <assert.h>
+#include "babl.h"
+#include "common.inc"
+
+int
+main (int argc,
+ char **argv)
+{
+ int OK = 1;
+ babl_init ();
+ {
+ unsigned char in[][4] = {{0,1,2,3 },{4,5,6,7 },{8,9,10,11 }};
+ unsigned char out1[][1] = {{0}, {4}, {8} };
+ unsigned char out2[][2] = {{0,1}, {4,5}, {8,9} };
+ unsigned char out4[][4] = {{0,1,2,3}, {4,5,6,7}, {8,9,10,11} };
+ unsigned char out5[][5] = {{0,1,2,3,0}, {4,5,6,7,0},{8,9,10,11,0} };
+
+ CHECK_CONV("RGBAu8 to n1'", unsigned char,
+ babl_format("R'G'B'A u8"),
+ babl_format_n (babl_type ("u8"), 1),
+ in, out1);
+
+ CHECK_CONV("RGBAu8 to n2'", unsigned char,
+ babl_format("R'G'B'A u8"),
+ babl_format_n (babl_type ("u8"), 2),
+ in, out2);
+
+ CHECK_CONV("RGBAu8 to n4'", unsigned char,
+ babl_format("R'G'B'A u8"),
+ babl_format_n (babl_type ("u8"), 4),
+ in, out4);
+
+ CHECK_CONV("RGBAu8 to n5'", unsigned char,
+ babl_format("R'G'B'A u8"),
+ babl_format_n (babl_type ("u8"), 5),
+ in, out5);
+ }
+ {
+ unsigned char in[][3] = {{0,1,2 },{4,5,6 },{8,9,10 }};
+ unsigned char out1[][1] = {{0}, {4}, {8} };
+ unsigned char out2[][2] = {{0,1}, {4,5}, {8,9} };
+ unsigned char out4[][4] = {{0,1,2,0}, {4,5,6,0}, {8,9,10,0} };
+ unsigned char out5[][5] = {{0,1,2,0,0}, {4,5,6,0,0},{8,9,10,0,0} };
+ unsigned char out6[][6] = {{0,1,2,0,0,0}, {4,5,6,0,0,0},{8,9,10,0,0,0} };
+
+ CHECK_CONV("RGBu8 to n1'", unsigned char,
+ babl_format("R'G'B' u8"),
+ babl_format_n (babl_type ("u8"), 1),
+ in, out1);
+
+
+ CHECK_CONV("RGBu8 to n2'", unsigned char,
+ babl_format("R'G'B' u8"),
+ babl_format_n (babl_type ("u8"), 2),
+ in, out2);
+
+
+ CHECK_CONV("RGBu8 to n4'", unsigned char,
+ babl_format("R'G'B' u8"),
+ babl_format_n (babl_type ("u8"), 4),
+ in, out4);
+
+ CHECK_CONV("RGBu8 to n5'", unsigned char,
+ babl_format("R'G'B' u8"),
+ babl_format_n (babl_type ("u8"), 5),
+ in, out5);
+
+ CHECK_CONV("RGBu8 to n6'", unsigned char,
+ babl_format("R'G'B' u8"),
+ babl_format_n (babl_type ("u8"), 6),
+ in, out6);
+ }
+
+ babl_exit ();
+ return !OK;
+}
--- /dev/null
+/* babl - dynamically extendable universal pixel conversion library.
+ * Copyright (C) 2005, Øyvind Kolås.
+ *
+ * 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 3 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, see
+ * <http://www.gnu.org/licenses/>.
+ */
+
+#include "config.h"
+#include "babl.h"
+
+int
+main (int argc,
+ char **argv)
+{
+ babl_init ();
+ babl_exit ();
+ return 0;
+}
--- /dev/null
+/* babl - dynamically extendable universal pixel conversion library.
+ * Copyright (C) 2005, Øyvind Kolås.
+ *
+ * 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 3 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, see
+ * <http://www.gnu.org/licenses/>.
+ */
+
+#include "config.h"
+#include <stdlib.h>
+#include <stdio.h>
+#include <assert.h>
+#include "babl.h"
+#include "common.inc"
+
+int
+main (int argc,
+ char **argv)
+{
+ int OK = 1;
+ babl_init ();
+ OK = ! babl_format_is_palette (babl_format_n (babl_type ("double"), 3));
+ if(1){
+ unsigned char in[][1] = {{ 0},{ 1},{ 2},{15}};
+ unsigned char out[][4] = {{0,0,0,255},{127,0,0,255},{0,127,0,255},{255,255,255,255}};
+ const Babl *palA;// = babl_new_palette (NULL, 0);
+ //Babl *palB = babl_new_palette (NULL, 0);
+ //
+ babl_new_palette (NULL, &palA, NULL);
+ assert (palA);
+
+ CHECK_CONV("pal to rgba", unsigned char,
+ palA, babl_format("RGBA u8"),
+ in, out);
+ }
+ if(0){
+ unsigned char in[][2] = {{ 0,255},{ 1,255},{ 2,255},{15,200}};
+ unsigned char out[][4] = {{0,0,0,255},{127,0,0,255},{0,127,0,255},{255,255,255,255}};
+ const Babl *palA;// = babl_new_palette (NULL, 0);
+ //Babl *palB = babl_new_palette (NULL, 0);
+ //
+ babl_new_palette (NULL, NULL, &palA);
+ assert (palA);
+
+ CHECK_CONV("pal to rgba", unsigned char,
+ palA, babl_format("RGBA u8"),
+ in, out);
+
+#if 0
+ CHECK_CONV("pal to rgba", unsigned char,
+ palB, babl_format("RGBA u8"),
+ in, out);
+
+ CHECK_CONV("pal to rgba", unsigned char,
+ palA, babl_format("RGBA u8"),
+ in, out);
+#endif
+ }
+#if 0
+ {
+ unsigned char in[][4] = {{0,0,0,255},{140,0,0,255},{0,127,0,255}};
+ unsigned char out[][1] = {{ 0},{ 1},{ 2}};
+
+ CHECK_CONV("rgba to pal", unsigned char,
+ babl_format("RGBA u8"), babl_new_palette ("palC", 0),
+ in, out);
+ }
+
+ {
+ unsigned char in[][4] = {{0,0,0,255},{140,0,0,255},{0,127,0,127}};
+ unsigned char out[][2] = {{ 0,255},{ 1,255},{ 2,127}};
+
+ CHECK_CONV("rgba to pal+alpha", unsigned char,
+ babl_format("RGBA u8"), babl_new_palette ("palD", 1),
+ in, out);
+ }
+
+ /* check with a custom floating point palette, _and_ alpha component */
+ {
+ float palette[] = {
+ 0.5, 1.0,
+ 0.23, 0.42,
+ 1.0, 0.2
+ };
+
+ unsigned char in[][2] = {{ 0,255},{0,127},{ 1,255},{ 2,255}};
+ unsigned char out[][4] = {{128,128,128,255},{128,128,128,127},{59,59,59,107},{255,255,255,51}};
+
+ Babl *pal = babl_new_palette (NULL, 1);
+
+ babl_palette_set_palette (pal, babl_format ("YA float"), palette, 3);
+
+ CHECK_CONV("rgba to YA float pal+alpha", unsigned char,
+ pal, babl_format("RGBA u8"),
+ in, out);
+ }
+
+
+ /* check with a custom floating point palette, _and_ alpha component */
+ {
+ float palette[] = {
+ 0.5, 1.0,
+ 0.23, 0.42,
+ 1.0, 0.2
+ };
+
+ unsigned char in[][2] = {{ 0,255},{0,127},{ 1,255},{ 2,255}};
+ unsigned char out[][4] = {{128,128,128,255},{128,128,128,127},{59,59,59,107},{255,255,255,51}};
+
+ Babl *pal = babl_new_palette (NULL, 1);
+
+ babl_palette_set_palette (pal, babl_format ("YA float"), palette, 3);
+
+ CHECK_CONV("rgba to YA float pal+alpha", unsigned char,
+ pal, babl_format("RGBA u8"),
+ in, out);
+ }
+
+ /* check with a custom floating point palette */
+ {
+ float palette[] = {
+ 0.5, 1.0,
+ 0.23, 0.42,
+ 1.0, 0.2
+ };
+
+ unsigned char in[][1] = {{ 0},{ 1},{ 2}};
+ unsigned char out[][4] = {{128,128,128,255},{59,59,59,107},{255,255,255,51}};
+
+ Babl *pal = babl_new_palette (NULL, 0);
+
+ babl_palette_set_palette (pal, babl_format ("YA float"), palette, 3);
+
+ CHECK_CONV("rgba to float pal", unsigned char,
+ pal, babl_format("RGBA u8"),
+ in, out);
+ }
+#endif
+
+ babl_exit ();
+ return !OK;
+}
--- /dev/null
+/* babl - dynamically extendable universal pixel conversion library.
+ * Copyright (C) 2005, Øyvind Kolås.
+ *
+ * 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 3 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, see
+ * <http://www.gnu.org/licenses/>.
+ */
+
+
+#include "config.h"
+#include <math.h>
+#include "babl-internal.h"
+
+#define PIXELS 3
+#define TOLERANCE 0
+
+unsigned char source_buf [PIXELS * 3] =
+{ 10, 20, 30,
+ 30, 30, 30,
+ 40, 50, 60 };
+
+unsigned char reference_buf [PIXELS * 3] =
+{ 30, 20, 10,
+ 30, 30, 30,
+ 60, 50, 40 };
+
+unsigned char destination_buf [PIXELS * 3];
+
+static int
+test (void)
+{
+ const Babl *fish;
+ int i;
+ int OK = 1;
+
+ fish = babl_fish (
+ babl_format_new (
+ babl_model ("RGB"),
+ babl_type ("u8"),
+ babl_component ("R"),
+ babl_component ("G"),
+ babl_component ("B"),
+ NULL
+ ),
+ babl_format_new (
+ babl_model ("RGB"),
+ babl_type ("u8"),
+ babl_component ("B"),
+ babl_component ("G"),
+ babl_component ("R"),
+ NULL
+ )
+ );
+
+ babl_process (fish, source_buf, destination_buf, PIXELS);
+
+ for (i = 0; i < PIXELS * 3; i++)
+ {
+ if (abs (destination_buf[i] - reference_buf[i]) > TOLERANCE)
+ {
+ babl_log ("%2i (%2i%%3=%i, %2i/3=%i) is %i should be %i",
+ i, i, i % 3, i, i / 3, destination_buf[i], reference_buf[i]);
+ OK = 0;
+ }
+ }
+ if (!OK)
+ return -1;
+ return 0;
+}
+
+int
+main (int argc,
+ char **argv)
+{
+ babl_init ();
+ if (test ())
+ return -1;
+ babl_exit ();
+ return 0;
+}
--- /dev/null
+/* babl - dynamically extendable universal pixel conversion library.
+ * Copyright (C) 2005, Øyvind Kolås.
+ *
+ * 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 3 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, see
+ * <http://www.gnu.org/licenses/>.
+ */
+
+
+#include "config.h"
+#include <math.h>
+#include "babl-internal.h"
+
+#define PIXELS 6
+#define TOLERANCE 0.000001
+
+float source_buf [PIXELS * 3] =
+{ 0.0, 0.0, 0.0,
+ 0.5, 0.5, 0.5,
+ 1.0, 1.0, 1.0,
+ 1.0, 0.0, 0.0,
+ 0.0, 1.0, 0.0,
+ 0.0, 0.0, 1.0 };
+
+float reference_buf [PIXELS * 3] =
+{ 0.0, 0.0, 0.0,
+ 0.735357, 0.0, 0.0,
+ 1.0, 0.0, 0.0,
+ 0.299, -0.168736, 0.5,
+ 0.587, -0.331264, -0.418688,
+ 0.114, 0.5, -0.081312 };
+
+
+float destination_buf [PIXELS * 3];
+
+static int
+test (void)
+{
+ const Babl *fish;
+ int i;
+ int OK = 1;
+
+ fish = babl_fish (
+ babl_format_new (
+ babl_model ("RGB"),
+ babl_type ("float"),
+ babl_component ("R"),
+ babl_component ("G"),
+ babl_component ("B"),
+ NULL
+ ),
+ babl_format_new (
+ babl_model ("Y'CbCr"),
+ babl_type ("float"),
+ babl_component ("Y'"),
+ babl_component ("Cb"),
+ babl_component ("Cr"),
+ NULL
+ )
+ );
+
+ babl_process (fish, source_buf, destination_buf, PIXELS);
+
+ for (i = 0; i < PIXELS * 3; i++)
+ {
+ if (fabs (destination_buf[i] - reference_buf[i]) > TOLERANCE)
+ {
+ babl_log ("%2i (%2i%%3=%i, %2i/3=%i) is %f should be %f",
+ i, i, i % 3, i, i / 3, destination_buf[i], reference_buf[i]);
+ OK = 0;
+ }
+ }
+ if (!OK)
+ return -1;
+ return 0;
+}
+
+int
+main (int argc,
+ char **argv)
+{
+ babl_init ();
+ if (test ())
+ return -1;
+ babl_exit ();
+ return 0;
+}
--- /dev/null
+/* babl - dynamically extendable universal pixel conversion library.
+ * Copyright (C) 2005, Øyvind Kolås.
+ *
+ * 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 3 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, see
+ * <http://www.gnu.org/licenses/>.
+ */
+
+#include "config.h"
+#include "babl-internal.h"
+
+int
+main (int argc,
+ char **argv)
+{
+ babl_init ();
+ if (!babl_sanity ())
+ return -1;
+ babl_exit ();
+ return 0;
+}
--- /dev/null
+/* babl - dynamically extendable universal pixel conversion library.
+ * Copyright (C) 2005, Øyvind Kolås.
+ *
+ * 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 3 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, see
+ * <http://www.gnu.org/licenses/>.
+ */
+
+#include "config.h"
+#include <math.h>
+#include "babl-internal.h"
+
+#define PIXELS 6
+#define TOLERANCE 0
+
+unsigned char source_buf [PIXELS * 3] =
+{ 0, 0, 0,
+ 127, 127, 127,
+ 255, 255, 255,
+ 255, 0.0, 0.0,
+ 0.0, 255, 0.0,
+ 0.0, 0.0, 255 };
+
+unsigned char reference_buf [PIXELS * 3] =
+{ 0, 128, 128,
+ 136, 128, 128,
+ 255, 128, 128,
+ 138, 209, 198,
+ 224, 49, 209,
+ 75, 196, 16 };
+
+unsigned char destination_buf [PIXELS * 3];
+
+static int
+test (void)
+{
+ int i;
+ int OK = 1;
+
+ babl_process (babl_fish ("R'G'B' u8", "CIE Lab u8"),
+ source_buf, destination_buf,
+ PIXELS);
+
+ for (i = 0; i < PIXELS * 3; i++)
+ {
+ if (abs (destination_buf[i] - reference_buf[i]) > TOLERANCE)
+ {
+ babl_log ("%2i (%2i%%3=%i, %2i/3=%i) is %i should be %i",
+ i, i, i % 3, i, i / 3, destination_buf[i], reference_buf[i]);
+ OK = 0;
+ }
+ }
+ if (!OK)
+ return -1;
+ return 0;
+}
+
+int
+main (int argc,
+ char **argv)
+{
+ babl_init ();
+ if (test ())
+ return -1;
+ babl_exit ();
+ return 0;
+}
--- /dev/null
+#include "config.h"
+#include <math.h>
+#include "babl-internal.h"
+
+int OK = 1;
+
+static int type_check (Babl *babl,
+ void *userdata)
+{
+ if (!babl_type_is_symmetric (babl))
+ {
+ babl_log ("%s is not symmetric", babl->instance.name);
+ OK = 0;
+ }
+ return 0;
+}
+
+int main (void)
+{
+ babl_init ();
+
+ babl_set_extender (babl_extension_quiet_log ());
+ babl_type_class_for_each (type_check, NULL);
+
+ babl_exit ();
+
+ return !OK;
+}
--- /dev/null
+AM_CPPFLAGS = -I$(top_srcdir) -I$(top_srcdir)/babl
+
+LDADD = $(top_builddir)/babl/libbabl-@BABL_API_VERSION@.la \
+ $(MATH_LIB) $(THREAD_LIB)
+
+if HAVE_SRANDOM
+noinst_PROGRAMS = \
+ babl-gen-test-pixels
+endif
--- /dev/null
+# Makefile.in generated by automake 1.15 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
+
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+VPATH = @srcdir@
+am__is_gnu_make = { \
+ if test -z '$(MAKELEVEL)'; then \
+ false; \
+ elif test -n '$(MAKE_HOST)'; then \
+ true; \
+ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+ true; \
+ else \
+ false; \
+ fi; \
+}
+am__make_running_with_option = \
+ case $${target_option-} in \
+ ?) ;; \
+ *) echo "am__make_running_with_option: internal error: invalid" \
+ "target option '$${target_option-}' specified" >&2; \
+ exit 1;; \
+ esac; \
+ has_opt=no; \
+ sane_makeflags=$$MAKEFLAGS; \
+ if $(am__is_gnu_make); then \
+ sane_makeflags=$$MFLAGS; \
+ else \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ bs=\\; \
+ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
+ esac; \
+ fi; \
+ skip_next=no; \
+ strip_trailopt () \
+ { \
+ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+ }; \
+ for flg in $$sane_makeflags; do \
+ test $$skip_next = yes && { skip_next=no; continue; }; \
+ case $$flg in \
+ *=*|--*) continue;; \
+ -*I) strip_trailopt 'I'; skip_next=yes;; \
+ -*I?*) strip_trailopt 'I';; \
+ -*O) strip_trailopt 'O'; skip_next=yes;; \
+ -*O?*) strip_trailopt 'O';; \
+ -*l) strip_trailopt 'l'; skip_next=yes;; \
+ -*l?*) strip_trailopt 'l';; \
+ -[dEDm]) skip_next=yes;; \
+ -[JT]) skip_next=yes;; \
+ esac; \
+ case $$flg in \
+ *$$target_option*) has_opt=yes; break;; \
+ esac; \
+ done; \
+ test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+target_triplet = @target@
+@HAVE_SRANDOM_TRUE@noinst_PROGRAMS = babl-gen-test-pixels$(EXEEXT)
+subdir = tools
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(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)/acinclude.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+PROGRAMS = $(noinst_PROGRAMS)
+babl_gen_test_pixels_SOURCES = babl-gen-test-pixels.c
+babl_gen_test_pixels_OBJECTS = babl-gen-test-pixels.$(OBJEXT)
+babl_gen_test_pixels_LDADD = $(LDADD)
+am__DEPENDENCIES_1 =
+babl_gen_test_pixels_DEPENDENCIES = \
+ $(top_builddir)/babl/libbabl-@BABL_API_VERSION@.la \
+ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
+AM_V_lt = $(am__v_lt_@AM_V@)
+am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
+am__v_lt_0 = --silent
+am__v_lt_1 =
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo " GEN " $@;
+am__v_GEN_1 =
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 =
+DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
+depcomp = $(SHELL) $(top_srcdir)/depcomp
+am__depfiles_maybe = depfiles
+am__mv = mv -f
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
+ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
+ $(AM_CFLAGS) $(CFLAGS)
+AM_V_CC = $(am__v_CC_@AM_V@)
+am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
+am__v_CC_0 = @echo " CC " $@;
+am__v_CC_1 =
+CCLD = $(CC)
+LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+ $(AM_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_CCLD = $(am__v_CCLD_@AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
+am__v_CCLD_0 = @echo " CCLD " $@;
+am__v_CCLD_1 =
+SOURCES = babl-gen-test-pixels.c
+DIST_SOURCES = babl-gen-test-pixels.c
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates. Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+ BEGIN { nonempty = 0; } \
+ { items[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique. This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+ list='$(am__tagged_files)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | $(am__uniquify_input)`
+ETAGS = etags
+CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ALTIVEC_EXTRA_CFLAGS = @ALTIVEC_EXTRA_CFLAGS@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AR = @AR@
+AS = @AS@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+BABL_API_VERSION = @BABL_API_VERSION@
+BABL_BINARY_AGE = @BABL_BINARY_AGE@
+BABL_CURRENT_MINUS_AGE = @BABL_CURRENT_MINUS_AGE@
+BABL_INTERFACE_AGE = @BABL_INTERFACE_AGE@
+BABL_LIBRARY_VERSION = @BABL_LIBRARY_VERSION@
+BABL_MAJOR_VERSION = @BABL_MAJOR_VERSION@
+BABL_MICRO_VERSION = @BABL_MICRO_VERSION@
+BABL_MINOR_VERSION = @BABL_MINOR_VERSION@
+BABL_REAL_VERSION = @BABL_REAL_VERSION@
+BABL_RELEASE = @BABL_RELEASE@
+BABL_UNSTABLE = @BABL_UNSTABLE@
+BABL_VERSION = @BABL_VERSION@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DIR_SEP = @DIR_SEP@
+DLLTOOL = @DLLTOOL@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+F16C_EXTRA_CFLAGS = @F16C_EXTRA_CFLAGS@
+FGREP = @FGREP@
+GREP = @GREP@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
+MATH_LIB = @MATH_LIB@
+MKDIR_P = @MKDIR_P@
+MMX_EXTRA_CFLAGS = @MMX_EXTRA_CFLAGS@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEP = @PATH_SEP@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+RANLIB = @RANLIB@
+RSVG = @RSVG@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SHREXT = @SHREXT@
+SSE2_EXTRA_CFLAGS = @SSE2_EXTRA_CFLAGS@
+SSE4_1_EXTRA_CFLAGS = @SSE4_1_EXTRA_CFLAGS@
+SSE_EXTRA_CFLAGS = @SSE_EXTRA_CFLAGS@
+STRIP = @STRIP@
+THREAD_LIB = @THREAD_LIB@
+VERSION = @VERSION@
+W3M = @W3M@
+WEBSITE_HOST = @WEBSITE_HOST@
+WEBSITE_LOCATION = @WEBSITE_LOCATION@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target = @target@
+target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+AM_CPPFLAGS = -I$(top_srcdir) -I$(top_srcdir)/babl
+LDADD = $(top_builddir)/babl/libbabl-@BABL_API_VERSION@.la \
+ $(MATH_LIB) $(THREAD_LIB)
+
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .c .lo .o .obj
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign tools/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --foreign tools/Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+clean-noinstPROGRAMS:
+ @list='$(noinst_PROGRAMS)'; test -n "$$list" || exit 0; \
+ echo " rm -f" $$list; \
+ rm -f $$list || exit $$?; \
+ test -n "$(EXEEXT)" || exit 0; \
+ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
+ echo " rm -f" $$list; \
+ rm -f $$list
+
+babl-gen-test-pixels$(EXEEXT): $(babl_gen_test_pixels_OBJECTS) $(babl_gen_test_pixels_DEPENDENCIES) $(EXTRA_babl_gen_test_pixels_DEPENDENCIES)
+ @rm -f babl-gen-test-pixels$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(babl_gen_test_pixels_OBJECTS) $(babl_gen_test_pixels_LDADD) $(LIBS)
+
+mostlyclean-compile:
+ -rm -f *.$(OBJEXT)
+
+distclean-compile:
+ -rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/babl-gen-test-pixels.Po@am__quote@
+
+.c.o:
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $<
+
+.c.obj:
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+
+.c.lo:
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+
+ID: $(am__tagged_files)
+ $(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ set x; \
+ here=`pwd`; \
+ $(am__define_uniq_tagged_files); \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
+ fi
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ $(am__define_uniq_tagged_files); \
+ test -z "$(CTAGS_ARGS)$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+ list='$(am__tagged_files)'; \
+ case "$(srcdir)" in \
+ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+ *) sdir=$(subdir)/$(srcdir) ;; \
+ esac; \
+ for i in $$list; do \
+ if test -f "$$i"; then \
+ echo "$(subdir)/$$i"; \
+ else \
+ echo "$$sdir/$$i"; \
+ fi; \
+ done >> $(top_builddir)/cscope.files
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-am
+all-am: Makefile $(PROGRAMS)
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool clean-noinstPROGRAMS \
+ mostlyclean-am
+
+distclean: distclean-am
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+ distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+ mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: install-am install-strip
+
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+ clean-libtool clean-noinstPROGRAMS cscopelist-am ctags \
+ ctags-am distclean distclean-compile distclean-generic \
+ distclean-libtool distclean-tags distdir dvi dvi-am html \
+ html-am info info-am install install-am install-data \
+ install-data-am install-dvi install-dvi-am install-exec \
+ install-exec-am install-html install-html-am install-info \
+ install-info-am install-man install-pdf install-pdf-am \
+ install-ps install-ps-am install-strip installcheck \
+ installcheck-am installdirs maintainer-clean \
+ maintainer-clean-generic mostlyclean mostlyclean-compile \
+ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+ tags tags-am uninstall uninstall-am
+
+.PRECIOUS: Makefile
+
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
--- /dev/null
+/* babl - dynamically extendable universal pixel conversion library.
+ * Copyright (C) 2005 Øyvind Kolås
+ * 2013 Daniel Sabo
+ *
+ * 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 3 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, see
+ * <http://www.gnu.org/licenses/>.
+ */
+
+#include <stdlib.h>
+#include <stdio.h>
+
+#define BABL_PATH_NUM_TEST_PIXELS 3072
+#define BABL_CONVERSION_NUM_TEST_PIXELS 128
+#define BABL_FROMAT_NUM_TEST_PIXELS 256
+#define BABL_MODEL_NUM_TEST_PIXELS 512
+#define BABL_TYPE_NUM_TEST_PIXELS 512
+
+static double rand_double (void)
+{
+ return (double) random () / RAND_MAX;
+}
+
+static double rand_range_double (double min, double max)
+{
+ return rand_double () * (max - min) + min;
+}
+
+static void gen_path_pixels (void)
+{
+ int i;
+ srandom (20050728);
+
+ printf ("static const int babl_num_path_test_pixels = %d;\n\n", BABL_PATH_NUM_TEST_PIXELS);
+
+ printf ("static const double babl_path_test_pixels[%d] = {\n", BABL_PATH_NUM_TEST_PIXELS * 4);
+
+ /* add 128 pixels in the valid range between 0.0 and 1.0 */
+ for (i = 0; i < 256; i++)
+ {
+ printf ("%a, %a, %a, %a,\n",
+ rand_double (),
+ rand_double (),
+ rand_double (),
+ rand_double ());
+ }
+
+ /* add 16 pixels between -1.0 and 0.0 */
+ for (i = 0; i < 16; i++)
+ {
+ printf ("%a, %a, %a, %a,\n",
+ rand_range_double (-1.0, 0.0),
+ rand_range_double (-1.0, 0.0),
+ rand_range_double (-1.0, 0.0),
+ rand_range_double (-1.0, 0.0));
+ }
+
+ /* add 16 pixels between 1.0 and 2.0 */
+ for (i = 0; i < 16; i++)
+ {
+ printf ("%a, %a, %a, %a,\n",
+ rand_range_double (1.0, 2.0),
+ rand_range_double (1.0, 2.0),
+ rand_range_double (1.0, 2.0),
+ rand_range_double (1.0, 2.0));
+ }
+
+ for (i = 288; i < BABL_PATH_NUM_TEST_PIXELS; i++)
+ {
+ printf ("%a, %a, %a, %a,\n",
+ rand_double (),
+ rand_double (),
+ rand_double (),
+ rand_double ());
+ }
+
+ printf ("};\n\n");
+
+ printf ("static const int babl_num_conversion_test_pixels = %d;\n\n", BABL_CONVERSION_NUM_TEST_PIXELS);
+
+ printf ("static const double *babl_conversion_test_pixels = babl_path_test_pixels;\n\n");
+
+ printf ("static const int babl_num_format_test_pixels = %d;\n\n", BABL_FROMAT_NUM_TEST_PIXELS);
+
+ printf ("static const double *babl_format_test_pixels = babl_path_test_pixels;\n\n");
+}
+
+static void gen_model_pixels (void)
+{
+ int i;
+ srandom (20050728);
+
+ printf ("static const int babl_num_model_test_pixels = %d;\n\n", BABL_MODEL_NUM_TEST_PIXELS);
+
+ printf ("static const double babl_model_test_pixels[%d] = {\n", BABL_MODEL_NUM_TEST_PIXELS * 4);
+
+ /* add 128 pixels in the valid range between 0.0 and 1.0 */
+ for (i = 0; i < BABL_MODEL_NUM_TEST_PIXELS; i++)
+ {
+ printf ("%a, %a, %a, %a,\n",
+ rand_range_double (-0.2, 1.2),
+ rand_range_double (-0.2, 1.2),
+ rand_range_double (-0.2, 1.2),
+ rand_range_double (-0.2, 1.2));
+ }
+
+ printf ("};\n\n");
+}
+
+static void gen_type_pixels (void)
+{
+ int i;
+ srandom (20050728);
+
+ printf ("static const int babl_num_type_test_pixels = %d;\n\n", BABL_TYPE_NUM_TEST_PIXELS);
+
+ printf ("static const double babl_type_test_pixels[%d] = {\n", BABL_TYPE_NUM_TEST_PIXELS * 4);
+
+ /* add 128 pixels in the valid range between 0.0 and 1.0 */
+ for (i = 0; i < BABL_MODEL_NUM_TEST_PIXELS; i++)
+ {
+ printf ("%a, %a, %a, %a,\n",
+ rand_range_double (0.0, 128.0),
+ rand_range_double (0.0, 128.0),
+ rand_range_double (0.0, 128.0),
+ rand_range_double (0.0, 128.0));
+ }
+
+ printf ("};\n\n");
+}
+
+int main (int argc, char **argv)
+{
+ printf (
+ "/* babl - dynamically extendable universal pixel conversion library.\n"
+ " * Copyright (C) 2005 Øyvind Kolås\n"
+ " * 2013 Daniel Sabo\n"
+ " *\n"
+ " * This library is free software; you can redistribute it and/or\n"
+ " * modify it under the terms of the GNU Lesser General Public\n"
+ " * License as published by the Free Software Foundation; either\n"
+ " * version 3 of the License, or (at your option) any later version.\n"
+ " *\n"
+ " * This library is distributed in the hope that it will be useful,\n"
+ " * but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+ " * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n"
+ " * Lesser General Public License for more details.\n"
+ " *\n"
+ " * You should have received a copy of the GNU Lesser General\n"
+ " * Public License along with this library; if not, see\n"
+ " * <http://www.gnu.org/licenses/>.\n"
+ " */\n"
+ "\n");
+
+ printf ("/* THIS IS A GENERATED FILE - DO NOT EDIT */\n\n");
+
+ gen_path_pixels ();
+ gen_model_pixels ();
+ gen_type_pixels ();
+}
\ No newline at end of file